在Flash AS2中确定,但在AS3错误消息中:在eq之前期望正确的paren

时间:2015-12-11 11:59:03

标签: actionscript-3 flash actionscript-2

我使用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”。反正

1 个答案:

答案 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)中都有两个含义。

  • Asignemnt:=,可以读作make x equal 15
  • 平等:==eq,检查等式does x equal 15?并返回true或false

某些语言使用eqneqlt等代替==!=<的原因(IMO)等等是为了让初学者更加友好地理解。随着程序员对ActionScript功能的要求越来越高,语言变得越来越强大,并且放弃了其中一些惯例。当处理AS3中的事件处理程序和垃圾收集等高级概念时,入口障碍会更高一些。