我一直试图让一段代码工作一段时间,但我似乎无法找到它的错误。
我的目标是: 按下按钮,该按钮将生成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);
}
}
答案 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}}