我有这个as3项目,并且在时间轴的第一帧中我尝试加载名为" menu"的swf电影。在这个加载的电影中,我有一个名为" button1"的按钮的实例,我想在这个" button1"中添加一个新的EventListener。我的代码在这里:
var theLoader:Loader = new Loader();
var address:URLRequest = new URLRequest("menu.swf");
theLoader.load(address);
theLoader.contentLoaderInfo.addEventListener(Event.COMPLETE , swfDidLoad);
function swfDidLoad(evt:Event){
if(theLoader.content){
addChild(theLoader);
var button:SimpleButton = theLoader.content.button1;
button.addEventListener(MouseEvent.CLICK, handler1);
}
}
function handler1 (event:MouseEvent):void
{
removeChild(theLoader);
gotoAndStop(10);
};
但是我得到了这个unfind属性错误。我该怎么办?我这样做了吗?
答案 0 :(得分:2)
您收到该错误的原因是因为您尝试访问button1
theLoader.content
这是一个非动态DisplayObject
(这意味着只有明确定义的属性/方法是有效)。您必须先将其转换为MovieClip
( 动态)。
您应该将该行更改为:
var button:SimpleButton = MovieClip(theLoader.content).button1;