• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flex und AIR > Flex allgemein

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-08-2009, 11:24   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2009
Beiträge: 15
Exclamation SWFLoader und Flex

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!
Dr.Rock ist offline   Mit Zitat antworten
Alt 04-08-2009, 12:18   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
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...
Omega Psi ist offline   Mit Zitat antworten
Alt 04-08-2009, 12:55   #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.displayisplayObjectContainer

flashVar 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); 
}
und die Variable in Flex:

Code:
public var flashVar:Number=0;
ich möchte gerne aus dem SWF eine Funktion der Flex Anwendung aufrufen.
Dr.Rock ist offline   Mit Zitat antworten
Alt 04-08-2009, 13:09   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2009
Beiträge: 15
Smile

So, hab die Lösungs selbst gefunden:

Code:
addEventListener(Event.ADDED, addedToStage); 

function addedToStage(e:Event):void{
	Object(root.parent.parent.parent.parent).testFunction(); 
}
so oft parent aufrufen, bis man das "Hauptobjekt" der Flexanwendung bekommt. dann das ganze zum Object casten und die gewünschte Funktion aufrufen oder die gewünschte Variable setzen.
Dr.Rock ist offline   Mit Zitat antworten
Alt 04-08-2009, 14:09   #5 (permalink)
undefined
 
Benutzerbild von mildesign
 
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)
mildesign ist offline   Mit Zitat antworten
Alt 05-08-2009, 09:06   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2009
Beiträge: 15
Smile

Könntest du dazu bitte ein Beispiel posten?
Würde mir sehr helfen. ich bin natürlich an einer besseren Lösung interessiert
Dr.Rock ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
actionscript 3, flash, flex, swfloader

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele