Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 时间线实例不在第一帧上_Actionscript 3_Flash Cs5 - Fatal编程技术网

Actionscript 3 时间线实例不在第一帧上

Actionscript 3 时间线实例不在第一帧上,actionscript-3,flash-cs5,Actionscript 3,Flash Cs5,我已经有一段时间没有写动作脚本了,真的需要与时间线集成(在本例中,控制一系列必须以特定顺序发生的帧),我正在尝试弄清楚该怎么做 在前几帧中,我有一个按钮“next_1” 在第10帧,我需要另一个按钮“next_2”。我真的很需要这个按钮不在第一帧(我可能只是让它不可见,但这将创建一个我不想要的可点击区域) 问题是,我没有放在“frame_1”上的任何内容都会在我的文档类中呈现为null 有什么解决办法吗?如果可能的话,我宁愿不必在时间线上写脚本(从长远来看,将脚本保存在文档类中似乎更容易).时间

我已经有一段时间没有写动作脚本了,真的需要与时间线集成(在本例中,控制一系列必须以特定顺序发生的帧),我正在尝试弄清楚该怎么做

在前几帧中,我有一个按钮“next_1”

在第10帧,我需要另一个按钮“next_2”。我真的很需要这个按钮不在第一帧(我可能只是让它不可见,但这将创建一个我不想要的可点击区域)

问题是,我没有放在“frame_1”上的任何内容都会在我的文档类中呈现为null


有什么解决办法吗?如果可能的话,我宁愿不必在时间线上写脚本(从长远来看,将脚本保存在文档类中似乎更容易).

时间线上的项目是动态创建的,因此如果播放头未到达第10帧,则不会创建下一个_2

最简单的文档类解决方案:

  • 创建一个框架标签数组,如[“label1”、“label2”]
  • 创建sectionIndex变量并将其设置为0
  • 在自己的图层上创建下一个按钮,使其始终显示
  • 单击“下一步”按钮时,递增sectionIndex,然后转到并播放(myLabels[sectionIndex])

  • 好的,直接摘自“真实世界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。。。。