我使用Flash Professional CC 2015和AS3。打开之前使用AS2编写的flashfile时,它表示必须将一些内容转换为AS3。我认为这是自动完成的。但为此,有两个相同的错误消息
“错误消息:在eq”之前期待正确的paren,请参阅第二列。它在AS2中完美运行,如何改变以便在AS3中运行?我玩弄它,但无法解决它。
在Flash AS2中,我使用了这个:
cat1_mc.onEnterFrame = function(){
if((catlocated eq "Task 1 completed!") & (catfoodlocated eq "Task 2 completed!")){
door_btn._visible = true;
door_btn.enabled = true;
}
}
我是AS的初学者。我也想知道,为什么这里的eq意味着相等,但在其他命令中,你使用“=”,而不是“eq”。反正
答案 0 :(得分:2)
逻辑AND需要 &&
而不是&
和逻辑EQUALS需要 ==
而不是eq
你也不需要内括号,但这不是一个真正的错误
cat1_mc.onEnterFrame = function(){
if(catlocated == "Task 1 completed!" && catfoodlocated == "Task 2 completed!"){
door_btn._visible = true;
door_btn.enabled = true;
}
}
我是AS的初学者。我也想知道,为什么这里的eq意味着相等,但在其他命令中,你使用“=”,而不是“eq”
equals
的概念在任何编程或脚本语言(AFAIK)中都有两个含义。
=
,可以读作make x equal 15
==
,eq
,检查等式does x equal 15?
并返回true或false 某些语言使用eq
,neq
,lt
等代替==
,!=
,<
的原因(IMO)等等是为了让初学者更加友好地理解。随着程序员对ActionScript功能的要求越来越高,语言变得越来越强大,并且放弃了其中一些惯例。当处理AS3中的事件处理程序和垃圾收集等高级概念时,入口障碍会更高一些。