我正在尝试写一个平滑的过渡片,我不知道发生了什么。 我昨晚离开了它,它现在正在工作,我想,现在它不是。
在这里。
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 ");
}
}
和同样的问题,他们都说“工作”
我想念的是什么想法?
答案 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
load2
为null
。因此,event.target == load1 || load2
始终是true
。