我有一个加载外部 swf 的 swf。加载器 swf 有一个变量,我想从加载的 swf 访问它。我使用MovieClip(parent.parent).myVar
但它返回此错误
TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 card01_fla::MainTimeline/frame1()
加载器 swf 有一个自定义文档类,我认为这是问题所在。
提前致谢。
编辑
这是主 swf 的 as
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);
}
}
}
我正在尝试使用此代码从加载的 swf 访问测试变量
trace(MovieClip(parent.parent).testVar);
编辑#2
如果我addChild(loader)
不在 onCardInit 中,而是在 onViewClick 和加载的 swf 的第一帧中,我有Object(parent.parent).testVar
它可以工作......但为什么它不想在 onCardInit 函数内?