Ich habe eine swf, die eine externe SWF laden. Der Loader swf hat eine Variable, auf die ich vom geladenen swf zugreifen möchte. Ich benutze MovieClip(parent.parent).myVar
aber es zurückgeben diesen FehlerWie Zugriff auf Eltern MovieClip-Variable von geladenen SWF
TypeError: Error #1009: Cannot access a property or method of a null object reference. at card01_fla::MainTimeline/frame1()
Der Lader swf eine benutzerdefinierte Dokumentenklasse hat, die ich denke, das Problem ist.
Vielen Dank im Voraus.
EDIT
Dies ist der als der Haupt-SWF ist
package
{
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.text.TextField;
/**
* ...
* @author chchrist
*/
public class CardSender extends Sprite
{
private var loader:Loader;
private var viewButtonArray:Array;
private var sendButtonArray:Array;
private var cardContainer:Sprite;
public var testVar:String
public function CardSender() {
testVar = "it worked!!!";
init();
}
private function init() {
viewButtonArray = [cardsenderMC.view01, cardsenderMC.view02, cardsenderMC.view03, cardsenderMC.view04];
for each(var viewButton in viewButtonArray) {
viewButton.buttonMode = true;
viewButton.addEventListener(MouseEvent.CLICK, onViewClick);
}
}
private function onViewClick(e:MouseEvent):void {
var cardName = "card"+e.target.name.substring(4)+".swf";
loader = new Loader();
loader.load(new URLRequest(cardName));
loader.contentLoaderInfo.addEventListener(Event.INIT, onCardInit);
}
private function onCardInit(e:Event):void {
addChild(loader);
var content:* = loader.content;
content.closeButton.addEventListener(MouseEvent.CLICK, onCloseClick);
}
private function onCloseClick(e:MouseEvent):void {
removeChild(loader);
}
}
}
und ich versuche, die Testgröße aus der geladenen swf mit diesem Code für den Zugriff auf
trace(MovieClip(parent.parent).testVar);
EDIT # 2
Wenn ich addChild(loader)
nicht im onCardInit sondern im onViewClick und im ersten Frame des geladenen swf habe habe ich Object(parent.parent).testVar
es funktioniert ... aber warum will es nicht in der onCardInit Funktion sein?
welches wirft null - eltern oder parent.parent? – Amarghosh
parent.parent wirft null – chchrist
was erhält man für 'trace (parent); - Was ist sein Datentyp? – Amarghosh