0

好吧,切入正题,我相信这个功能导致了我的问题。

function getRandomLabel():String {
    var labels:Array = new Array(24,62,49,74,37);
    var index:Number = Math.floor(Math.random() * labels.length);
    return labels[index];
}
this.gotoAndPlay(getRandomLabel());

这个函数用来随机化上面的5个数字(24,62,49,74,37),这样我的痣(5个痣)就会随机出现。目前正在开发一个打地鼠的Flash游戏

当前场景:2 / 3

不知何故,当我测试播放它时,它会循环回到场景 1 帧 1。

还有一件事,当我试图将“游戏本身”放入场景 2 中时,问题就开始了,而我的其余代码都在场景 2 中(菜单、机制等)。

4

1 回答 1

1

正如安德鲁所说,你什么都没问。你只是暴露你所拥有的,但没有暴露正在发生的事情。好吧,你的功能没有问题。我对 AS 很生疏,但我会这样写:

function getRandomFrame( frameNumbers: Array ): int {
    return frameNumbers[Math.floor( Math.random() * frameNumbers.length )];
}
gotoAndPlay( getRandomFrame( [24, 62, 49, 74, 37] ) );

你得到的是帧号而不是标签,所以我改变了它的名字。由于您正在调用 gotoAndPlay,因此您的电影“播放头”将转到所选帧并播放,直到到达时间线的末尾,默认情况下,电影将重新开始。如果需要停止动画,则需要在所需帧中设置停止。使用 gotoAndStop 而不是 gotoAndPlay 尝试您的代码。电影将转到随机帧并停止。如果您需要获取框架标签,请创建一个字符串数组:

function getRandomLabel( labels: Array ): String {
    return labels[Math.floor( Math.random() * labels.length )];
}
gotoAndPlay( getRandomLabel( ["car", "dog", "music"] ) );

看来你是Flash新手,所以你需要更多地研究你正在处理的工具;)Flash CS5中的ActionScript默认版本是第三个。

于 2012-08-12T03:59:11.460 回答