已经有一段时间了,因为我必须编写Actionscript,真的需要与时间轴集成(在这种情况下,控制必须按特定顺序发生的一系列帧)和我我想弄清楚要做什么。
在前几帧中,我有一个按钮“next_1”。
在第10帧,我需要另一个按钮“next_2”。我真的非常需要这个按钮不在第一帧(我可能只是让它看不见,但这会创建一个我不想要的可点击区域。)
问题是,我没有把任何“frame_1”放在我的Document类中呈现为null。
这有什么解决方案吗?如果可能的话,我宁愿不必在时间轴上编写我的脚本(从长远来看,将它保存在文档类中似乎更容易)......
答案 0 :(得分:1)
时间轴上的项目是即时创建的,因此如果播放头未到达第10帧,则不会创建next_2。
最简单的文档级解决方案:
答案 1 :(得分:0)
好的,直接取消了“真实世界Flash游戏开发”:
/**************************************************
* FRAME LABELS *
**************************************************/
private function enumerateFrameLabels():void {
for each (var label:FrameLabel in currentLabels) {
addFrameScript(label.frame-1, dispatchFrameEvent);
}
}
private function dispatchFrameEvent():void {
dispatchEvent(new Event(currentLabel, true));
}
这将在时间轴上的每个帧标签处调度一个事件。
然后您可以为每个帧添加事件侦听器:
addEventListener("name_of_my_framelabel", frameHandler);
addEventListener("another_framelabel", frameHandler);
并编写一个switch语句,以便在按钮实际显示在时间轴上时为其添加事件侦听器。
private function frameHandler(e:Event):void {
switch(e.type) {
case 'screen_2':
stop();
next_2.addEventListener(MouseEvent.CLICK, click2, false, 0, true)
break;
}
}