gotoAndPlay()跳转到第2帧而不是第3帧

时间:2011-09-07 11:34:06

标签: flash actionscript-3

我对这个问题感到很困惑......

在第一帧中,我编写了以下代码:

stop();
var currentInterInfo:IntersectionInfo = null;
var currentInter:Intersection;
gotoAndPlay("Frame3");

并在第二帧(标记为“Frame2”)中写道:

stop();
trace("Frame2");

并在第3帧(标记为“Frame3”)中写道:

stop();
currentInter = new Intersection(.....); // notes that the constructor of the Intersection class is empty
trace("Frame3");

当我运行它时,我在输出中得到“第2帧”,但结果却得到“第3帧”...... 当我调试时,我得到“第3帧”...... 不知道这里有什么不对...... 我在下面的链接中上传了我的项目,以防你想查看它......

BugReproduce.rar

1 个答案:

答案 0 :(得分:1)

适合我!

这种情况下的情况是:

当您在闪存中编译SWF或加载它时,它会加载所有帧。

所以在这一点上并不是所有的帧都是堆叠的,所以你可以发送到最后一个帧,在这种情况下它是2。

第一帧中的

将您的代码更改为:

import flash.utils.setTimeout;
stop();

var currentInterInfo:IntersectionInfo = null;
var currentInter:Intersection;

setTimeout ( init, 100 )

function init ()
{
    gotoAndPlay("Frame3");
}

或以某种方式阻止应用程序在完全加载之前启动。