| |||||||
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: Jun 2009
Beiträge: 15
|
Hallo, ich habe ein SWF mit Flash erstellt, dass ich per SWFLoader in meine Flex Anwendung einbinde. Ich kann auch von Flex aus auf die Methoden des SWF zugreifen. Jetzt möchte ich aber von dem SWF auf eine Funktion der Flex Anwendung zugreifen. Ist das möglich? Falls ja wie? Zum Zeitpunkt der Kompilierung kennt das SWF die Flex Anwendung ja nicht. Danke für eure Hilfe! |
| | |
| | #2 (permalink) |
| Perverted Hermit Registriert seit: Mar 2004 Ort: Delmenhorst
Beiträge: 11.856
|
Du kannst in der *.swf Handler für Event.ADDED oder Event.ADDED_TO_STAGE registrieren. Dann weisst du, dass die *.swf parented wurde und somit im SWFLoader hängt. Dann gibt es eine neue root, die ist die Application etc...
__________________ github: https://github.com/floriansalihovic/L18nExample <florian xmlns:speaker="www.beyondtellerrand.com/ffk11/speakers_sessions" xmlns:trainer="http://www.beyondtellerrand.com/ffk11/workshops" /> and @ g+ |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jun 2009
Beiträge: 15
|
Vielen Dank für deine Antwort. das funktioniert auch. aber leider kann ich so keine Funktionen oder Variablen der Flex Anwendung aus dem SWF heraus aufrufen. ich bekomme immer folgende Fehlermeldung: 1119: Zugriff auf eine möglicherweise nicht definierte Eigenschaft flashVar über einen Verweis mit statischem Typ flash.display isplayObjectContainerflashVar ist die Variable. Der code im SWF: Code: addEventListener(Event.ADDED, addedToStage);
function addedToStage(e:Event):void{
trace("addedToStage");
trace("root: "+root);
trace("parent:"+root.parent.parent.parent.flashVar);
} Code: public var flashVar:Number=0; |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jun 2009
Beiträge: 15
|
So, hab die Lösungs selbst gefunden: Code:
addEventListener(Event.ADDED, addedToStage);
function addedToStage(e:Event):void{
Object(root.parent.parent.parent.parent).testFunction();
} |
| | |
| | #5 (permalink) |
| undefined Registriert seit: Jul 2001 Ort: Stuttgart
Beiträge: 1.810
|
da heult der Compiler aber ganz kräftig wenn er das sieht ;o) Ein Interface zu definieren und auf dieses zu casten wäre die sauberer Methode "never touch your childrens children"
__________________ mfg Frank Geändert von mildesign (04-08-2009 um 14:11 Uhr) |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| actionscript 3, flash, flex, swfloader |
| Themen-Optionen | |
| Ansicht | |
| |