Flash AS3 if / else简单问题

时间:2011-08-31 12:25:13

标签: flash actionscript-3

我正在尝试写一个平滑的过渡片,我不知道发生了什么。 我昨晚离开了它,它现在正在工作,我想,现在它不是。

在这里。

function btnclick(event:Event):void
{   
    if(event.target == load1 || load2)
    { 
        trace("working");
    } 
    else 
    {
        trace("not ");
    }
}

在我的舞台上,我有3个按钮,

load1.addEventListener(MouseEvent.CLICK, btnclick);
load2.addEventListener(MouseEvent.CLICK, btnclick);
load3.addEventListener(MouseEvent.CLICK, btnclick);

3个按钮实例

load1, load2 and load3.

当我点击按钮load1或load2时,我得到了跟踪“工作”,但是当我按下按钮load3时,当它应该说“不”时,我仍然“正在工作”

只是为了检查我改变它:

function btnclick(event:Event):void
{
    if(event.target == load1 || load2) 
    {
            trace("working");
    } 
    else if (event.target == load3)
    {
            trace("not ");
    }
}

和同样的问题,他们都说“工作”

我想念的是什么想法?

2 个答案:

答案 0 :(得分:4)

简单的事情:你的病情错了!

if(event.target == load1 || load2) {

评估:

IF (event.target == load1)
OR IF (load2 is not empty)

由于load2是您的按钮,因此始终为true

将其更改为:

if(event.target == load1 || event.target == load2) {

答案 1 :(得分:3)

试试这个:

function btnclick(event:Event):void{


    if(event.target == load1 || event.target == load2) {
           trace("working");
          } else {
               trace("not ");
           }

}

但我建议您使用currentTarget代替target

function btnclick(event:Event):void{


    if(event.currentTarget == load1 || event.currentTarget == load2) {
           trace("working");
          } else {
               trace("not ");
           }

}

代码问题出在event.target == load1 || load2。如果(event.target == load1) || (load2)不是Boolean(load2),则相当于true load2null。因此,event.target == load1 || load2始终是true