【发布时间】:2013-11-19 21:11:00
【问题描述】:
我正在尝试使一段 AS3 代码与较旧的 Flash 电影一起使用。包含约 4000 个关键帧并定期将静态影片剪辑添加到主时间轴的影片。
在第 120 帧上,将实例名称为 playButtonMC 的影片剪辑添加到舞台。 playButtonMC 内部有一个名为 playButton 的 button 实例。我想从主时间轴将单击事件处理程序分配给此影片剪辑内的按钮,但我无法从主时间轴上的关键帧 #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.
【问题讨论】:
标签: actionscript-3 flash events