Actionscript 3 时间线实例不在第一帧上
我已经有一段时间没有写动作脚本了,真的需要与时间线集成(在本例中,控制一系列必须以特定顺序发生的帧),我正在尝试弄清楚该怎么做 在前几帧中,我有一个按钮“next_1” 在第10帧,我需要另一个按钮“next_2”。我真的很需要这个按钮不在第一帧(我可能只是让它不可见,但这将创建一个我不想要的可点击区域) 问题是,我没有放在“frame_1”上的任何内容都会在我的文档类中呈现为nullActionscript 3 时间线实例不在第一帧上,actionscript-3,flash-cs5,Actionscript 3,Flash Cs5,我已经有一段时间没有写动作脚本了,真的需要与时间线集成(在本例中,控制一系列必须以特定顺序发生的帧),我正在尝试弄清楚该怎么做 在前几帧中,我有一个按钮“next_1” 在第10帧,我需要另一个按钮“next_2”。我真的很需要这个按钮不在第一帧(我可能只是让它不可见,但这将创建一个我不想要的可点击区域) 问题是,我没有放在“frame_1”上的任何内容都会在我的文档类中呈现为null 有什么解决办法吗?如果可能的话,我宁愿不必在时间线上写脚本(从长远来看,将脚本保存在文档类中似乎更容易).时间
有什么解决办法吗?如果可能的话,我宁愿不必在时间线上写脚本(从长远来看,将脚本保存在文档类中似乎更容易).时间线上的项目是动态创建的,因此如果播放头未到达第10帧,则不会创建下一个_2 最简单的文档类解决方案:
好的,直接摘自“真实世界Flash游戏开发”: 这将在时间轴上的每个帧标签上调度一个事件
private function frameHandler(e:Event):void {
switch(e.type) {
case 'screen_2':
stop();
next_2.addEventListener(MouseEvent.CLICK, click2, false, 0, true)
break;
}
}
然后,您可以为每个帧添加事件侦听器:
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;
}
}
当然,如果您的按钮是动画的一个组成部分,并且不能分离。不过,一个简单的enterFrame处理程序和currentFrameLabel检查就足够了。但是这样你就不能使用很酷的addFrameScript。。。。