Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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 AS3帧脚本立即执行,而不是在指定时执行_Actionscript 3_Flashdevelop_Flash Cs6 - Fatal编程技术网

Actionscript 3 AS3帧脚本立即执行,而不是在指定时执行

Actionscript 3 AS3帧脚本立即执行,而不是在指定时执行,actionscript-3,flashdevelop,flash-cs6,Actionscript 3,Flashdevelop,Flash Cs6,我有下面的代码,它应该添加一个MovieClip,并向MovieClip添加一个帧脚本,在剪辑播放完毕后执行。但是,下面显示的代码会在添加MovieClip后立即触发帧脚本,我不知道为什么 function debugClick(e:MouseEvent) : void { nextLevAnim = new NextLevelAnim(); gfx.addChild(nextLevAnim); nextLevAnim.addFrameScript(nextLevAnim.t

我有下面的代码,它应该添加一个
MovieClip
,并向
MovieClip
添加一个帧脚本,在剪辑播放完毕后执行。但是,下面显示的代码会在添加
MovieClip
后立即触发帧脚本,我不知道为什么

function debugClick(e:MouseEvent) : void
{    
  nextLevAnim = new NextLevelAnim();
  gfx.addChild(nextLevAnim);
  nextLevAnim.addFrameScript(nextLevAnim.totalFrames, NextLevel);
}

function NextLevel() : void
{
  nextLevAnim.addFrameScript(nextLevAnim.totalFrames, null);

  // Actions....
}

我尝试过使用更简单的示例,效果很好,
MovieClip
有21帧长,我尝试过通过
totalFrames
totalFrames-1
触发帧脚本,没有任何想法

在这种情况下,什么是
totalFrames
变量?您是否尝试过
trace()
it?我非常确定它没有包含
nextLevAnim
中总帧数的正确值,您可能应该使用
nextLevAnim.totalFrames

嗯,我没有使用过多少
addFrameScript
,所以我无法判断是什么导致了问题,但您可以尝试使用hack

使用OneInterFrame侦听器并检查当前帧是否等于帧数(-1)。 这并不理想,但如果你一直坚持下去,它可能就行了


addFrameScript
而言,我的猜测是它不起作用,因为addMovieClip直到循环的渲染部分才生效,所以添加的子帧的总帧数仍然为0。您可以为
OnAddedStatage
onAdded
添加侦听器,并在
MovieClip
初始化后添加addFrameScript事件处理程序

很抱歉,这是一个打字错误,应该是
nextLevAnim.totalFrames
。我使用trace来确定函数
NextLevel()
是在框架脚本声明时调用的,而不是在nextLevAnim完成播放时调用的。确切的意思是什么?我尝试了
totalFrames-1
,得到了相同的结果。这意味着它是nextLevAnim.totalFrames-1。你是否在NextLevelAnim中包含了stop()?这就是我现在所做的,并不理想,但如果它有效,它就有效!