根据Actionscript 2中随机生成的数字转到特定帧

时间:2014-06-29 18:30:11

标签: if-statement random actionscript actionscript-2 goto

我一直试图让一段代码工作一段时间,但我似乎无法找到它的错误。

我的目标是: 按下按钮,该按钮将生成1到100之间的随机数(以模拟百分比),然后根据绘制的数字,它将在特定帧上gotoAndStop。

我测试了代码,随机数生成工作正常;但它不会继续到它应该去的框架。相反,它会转到序列中的最后一帧 (例如:这里,它将移动到的帧是151,152,153,...,160,161。 所以错误的代码会生成一个随机数就好了,但不管生成的数字都会一直转到第161帧。

以下是我使用的代码:

on (release) {
TIME = random (100);
if(0 < TIME < 6) {
    gotoAndStop(151);
}
if(5 < TIME < 13) {
    gotoAndStop(152);
}
if(12 < TIME < 33) {
    gotoAndStop(153);
}
if(32 < TIME < 48) {
    gotoAndStop(154);
}
if(47 < TIME < 61) {
    gotoAndStop(155);
}
if(60 < TIME < 72) {
    gotoAndStop(156);
}
if(71 < TIME < 81) {
    gotoAndStop(157);
}
if(80 < TIME < 89) {
    gotoAndStop(158);
}
if(88 < TIME < 95) {
    gotoAndStop(159);
}
if(94 < TIME < 99) {
    gotoAndStop(160);
}
if(98 < TIME < 101) {
    gotoAndStop(161);
}
}

2 个答案:

答案 0 :(得分:0)

您必须明确检查不同的条件:

if(0 < TIME && TIME < 6) { /* ... */}

答案 1 :(得分:0)

您不能像这个0 < TIME < 6一样将变量与其他2个值进行比较,因为它会比较0 < TIME,在此示例中大多数时间会返回布尔true ,然后将其转换为1,以便与6进行比较,true始终为101。 Sames用于0 < TIME && TIME < 6,这就是为什么它始终到达最后一帧。您需要使用on (release) { TIME = random (100); if(TIME < 6) { gotoAndStop(151); } else if(TIME < 13) { gotoAndStop(152); } else if(TIME < 33) { gotoAndStop(153); } else if(TIME < 48) { gotoAndStop(154); } else if(TIME < 61) { gotoAndStop(155); } else if(TIME < 72) { gotoAndStop(156); } else if(TIME < 81) { gotoAndStop(157); } else if(TIME < 89) { gotoAndStop(158); } else if(TIME < 95) { gotoAndStop(159); } else if(TIME < 99) { gotoAndStop(160); } else if(TIME < 101) { gotoAndStop(161); } } 或更有效的替代方案。

{{1}}