| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Sep 2009
Beiträge: 2
| itemRenderer
Hallo Flashforum, ich bin neu hier, möchte gerne ein wenig mit Flex experimentieren und habe auch gleich eine Frage: ich habe eine basis.mxml PHP-Code: PHP-Code: Wie greife ich denn korrekt auf die Funktion getText() in der basis.mxml zu? Würde mich über eine Antwort freuen. Geändert von porcupine (22-09-2009 um 12:57 Uhr) |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 302
|
Hi ich würde dein Problem komplett über MXML in einer Datei lösen: Code: <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.collections.*;
[Bindable]
private var myAC:ArrayCollection = new ArrayCollection( [
{ label: "label1", data: "data1" },
{ label: "label2", data: "data2" }
]);
public function getText():String{
return "dies ist mein Text";
}
]]>
</mx:Script>
<mx:DataGrid x="0" y="0" width="100%" height="100%" editable="false" dataProvider="{myAC}" enabled="false">
<mx:columns>
<mx:DataGridColumn dataField="label" headerText="header1"/>
<mx:DataGridColumn dataField="data" headerText="header2">
<mx:itemRenderer>
<mx:Component>
<mx:Canvas width="400" height="300">
<mx:Label x="182.5" y="51" text="{outerDocument.getText()}"/>
</mx:Canvas>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:Application> Dieser Ansatz macht eigentlich nur bei einfachen ItemRenderer Sinn. Mehr Infos zu Inline ItemRenderer gibt es in diesem Artikel: Understanding Flex itemRenderers – Part 1: Inline renderers | Adobe Developer Connection In einem älteren Blogeintrag von mir habe ich noch ein paar Links zum Thema ItemRenderer. Da kannst du ja gerne mal reinschauen: Getting Advanced in Flex | der hess
__________________ Gruß Flo ---- blog.derhess.de ---- My Book Store ---- YouTube iNspIreNewMedia ---- Blog, Flash-Programmierung, Interaction Development und alles andere mit Medien |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Sep 2009
Beiträge: 2
|
Hallo Hess, vielen Dank auch! ![]() Das mit dem outerDocument scheint allerdings nicht zu funktionieren, wenn die beiden Dateien separat sind. Wie greife ich denn von der externen Datei auf outerDocument zu? beste Grüße Hans Geändert von porcupine (22-09-2009 um 14:49 Uhr) |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 302
|
Hi Hans, wie schon oben beschrieben, habe ich den Ansatz von Inline ItemRenderer benutzt. Dort gibt es keine externe Datei. Ich habe deine ItemRenderer Componente direkt in deine DataGrid Column (<mx: DataGridColumn dataField="data" headerText="header2">) Tag eingebunden. Schau dir mal den Part genau an. Der Befehl outerDocument funktioniert nur in Inline Item Renderer - Falls ich in dieser Sache unrecht haben sollte, bitte verbessert mich - andernfalls, wenn du unbedingt den ItemRenderer in einer seperaten Datei definieren möchtest, musst du den Ansatz von External ItemRenderer verwenden. Wie das geht ist hier gut beschrieben: Understanding Flex itemRenderers — Part 2: External renderers | Adobe Developer Connection wie du dabei allerdings auf übergeordnete Funktion zugreifen kannst, muss ich leider passen. Ich weiß nur dass manche ItemRenderer über ein spezielles Attribut den dataProvider der Komponente, die den ItemRenderer benutzt (siehe Seite 3 oder 4 im obigen erwähnten artikel) mit übergeben, ansonsten könntest du noch über das Attribut parent dich nach oben hangeln bis du bei der gewünschten Komponente angekommen bist. Allerdings ist das ne ziemlich häßliche Lösung. Wünsch dir viel Glück dabei!
__________________ Gruß Flo ---- blog.derhess.de ---- My Book Store ---- YouTube iNspIreNewMedia ---- Blog, Flash-Programmierung, Interaction Development und alles andere mit Medien |
| | |
| | #5 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 12.147
|
Sicher, dass du das machen willst? Ich kenne keinen Anwendungsfall, in dem man das machen wollen würde. Dafür sind Renderer nicht gedacht. Im Zweifelsfall noch auf die List über BaseListData auf die Liste zugreifen. Alles andere ist in der Regel falsch.
__________________ http://icodeapps.net | Meet me at the Flex user group Hamburg talking about CoffeeScript |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
LinkBacks (?)
LinkBack zu diesem Thema: http://www.flashforum.de/forum/flex-programmieren/itemrenderer-275868.html | ||||
| Erstellt von | Für | Art | Datum | Hits |
| Getting Advanced in Flex | der hess | Dieses Thema | Refback | 12-10-2009 22:55 | 6 |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| ItemRenderer Verwirrung | Nico B. | Flex programmieren | 3 | 14-08-2009 10:18 |
| combobox nur als itemRenderer | _Zoidberg_ | ActionScript 3 | 1 | 03-03-2009 20:41 |
| bitmapdata im itemrenderer | der_oki | Flex programmieren | 0 | 28-06-2008 15:04 |
| ItemRenderer zuweisen | mukraker | ActionScript 3 | 2 | 19-02-2007 11:08 |
| itemRenderer Problem | mirzahat | ActionScript 3 | 1 | 21-11-2006 06:37 |