Actionscript 2.0 if 和 else 功能不起作用?
Posted
技术标签:
【中文标题】Actionscript 2.0 if 和 else 功能不起作用?【英文标题】:Actionscript 2.0 if and else functions not working? 【发布时间】:2016-02-25 07:49:01 【问题描述】:我在我的按钮上使用这个脚本:
on(release)
var body2:Boolean = true;
answerField = body2
var body1:Boolean = false;
var body3:Boolean = false;
gotoAndStop(2);
这个脚本在我的第二个按钮上:
on (release)
if (body1=true)
gotoAndStop(4);
else if (body2=true)
gotoAndStop(5);
else
gotoAndStop(6);
但由于某种原因,即使 body2=true,我也无法让我的第二个按钮将我带到第 5 帧。
有什么建议吗?
【问题讨论】:
【参考方案1】:您的代码无法正常工作,因为您只是在if
语句中使用了赋值运算符(=
)而不是比较运算符(==
):
if (body1 == true) // you can write it : if(body1)
gotoAndStop(4);
else if (body2 == true) // you can write it : if(body2)
gotoAndStop(5);
else
gotoAndStop(6);
有关 ActionScript 运算符的更多信息,请查看here。
此外,您的Boolean
s 应该使用_global
全局声明,以便在您的代码中的任何地方都可以访问,或者在您的主时间线中可以使用_root.my_var
访问,并且当它们在MovieClip 或Button 代码中声明时,您可以调用它们,例如,使用_root.my_button.myvar
...
所以在你的情况下,假设你的第一个按钮被称为button1
,你的另一个按钮的代码可以是这样的:
if (_root.button1.body1)
gotoAndStop(4);
else if (_root.button1.body2)
gotoAndStop(5);
else
gotoAndStop(6);
编辑:
_global
使用示例:
button1
上的代码:
on (release)
_global.body2 = true;
_global.body1 = false;
_global.body3 = false;
button2
上的代码:
on (release)
trace(body2); // gives : true
trace(body1); // gives : false
希望能有所帮助。
【讨论】:
非常感谢!我无法弄清楚如何以及在何处全局声明我的布尔值?我试过用 _global 简单地替换 var。在我的第一个按钮上,但这给了我错误。 我在使用什么:on(release) _global.body1:Boolean = true; var answerField = _global.body1 _global.body2:Boolean = false; _global.body3:Boolean = false; gotoAndStop(1); @Racetrack 我加了一个小例子说明如何使用_global
,看看吧。以上是关于Actionscript 2.0 if 和 else 功能不起作用?的主要内容,如果未能解决你的问题,请参考以下文章