我正在尝试使用较旧的Flash电影制作一块AS3代码。由约4000个关键帧组成的电影,并且定期向主时间轴添加静态影片剪辑。
在第120帧,将实例名称为playButtonMC
的动画片段添加到舞台。 playButtonMC
内部有button
个名为playButton
的实例。我想将click事件处理程序分配给来自主时间轴的此影片剪辑内的按钮,但是我无法从主时间轴上关键帧#121上的操作获得对影片剪辑的引用。
我试图徒劳无功:
var myMc:MovieClip = stage.getChildByName("playButtonMC") as MovieClip;
trace(myMc);
trace(playButtonMC);
trace(root.playButtonMC);
trace(stage.playButtonMC);
// If I get a reference, I plan to do following to attach event listener.
// Please advise if its incorrect as well
myMc.playButton.addEventListener(MouseEvent.CLICK, doStuff);
function doStuff():void{
trace('called');
}
对trace
的所有来电都会产生null
。
我在任何意义上都不是Flash开发人员,但我已经完成了这项小任务。我知道正确的AS3方式必须通过动态生成影片剪辑并将引用存储在变量中,但此刻,我只是想让它以某种方式工作。
修改
trace(stage.playButtonMC);
实际上会产生错误ReferenceError: Error #1069: Property playButtonMC not found on flash.display.Stage and there is no default value.
答案 0 :(得分:1)
您确定该实例仍然存在吗?
stage!= root
使用root
或使用this
,以防您在MainTimeline实例上拥有代码。绝对不是舞台。
答案 1 :(得分:1)