当我尝试制作乘法条件时。它始终是错误的。你能告诉我我的错吗?感谢
var score:Number = 0;
addEventListener(Event.ENTER_FRAME, totalScore);
function totalScore(e:Event){
if(
to_konten1_1.visible = false &&
to_konten1_2.visible = false &&
to_konten1_3.visible = false &&
to_konten1_4.visible = false &&
to_konten1_5.visible = false &&
score > 20){
gotoAndStop(2);
} else if(
to_konten1_1.visible = false &&
to_konten1_2.visible = false &&
to_konten1_3.visible = false &&
to_konten1_4.visible = false &&
to_konten1_5.visible = false &&
score < 20){
gotoAndStop(3);
}
答案 0 :(得分:2)
我认为这值得解释一下。 if(条件)表达式需要条件为布尔,但不需要。相反,它会尝试按规则数量强制转换给定的表达式,以获得其布尔值。
布尔:A =&gt;甲
分配运算符“ = ”:A = B =&gt;乙
null ,未定义,无效:始终 false 。
数字, int , uint :0 =&gt; false , Number.NaN =&gt; false ,否则 true 。
字符串:“”=&gt; false ,否则 true 。
列表:A,B,C =&gt; C,虽然这个表达式在AS3中没有特别的意义,但它总是返回它的最后一个元素。
任何有效的数组,对象,功能,类或类实例:始终 true < /强>
因此,在您的情况下,您可以将其形式化一点:
function totalScore(e:Event):void
{
if (!anyVisible)
{
if (score > 20)
{
gotoAndStop(2);
}
else if (score < 20)
{
gotoAndStop(3);
}
else // if score == 20
{
// Decide what to do.
}
}
}
function get anyVisible():Boolean
{
var aList:Array = [to_konten1_1, to_konten1_2, to_konten1_3, to_konten1_4, to_konten1_5];
for each (var DO:DisplayObject in aList)
{
if (DO.visible)
{
return true;
}
}
return false;
}
答案 1 :(得分:2)
错误是您使用单个=进行分配,而不是使用双==进行比较。