㈣一直试图通过在ActionScript中的addEventListener事件如来传递参数...如何通过addEventListener传递语句?
target.addEventListener("pComp", rakeSoil(target));
,但我得到的错误。
㈣试图谷歌,但没有运气:/
感谢,如果你做:)
㈣一直试图通过在ActionScript中的addEventListener事件如来传递参数...如何通过addEventListener传递语句?
target.addEventListener("pComp", rakeSoil(target));
,但我得到的错误。
㈣试图谷歌,但没有运气:/
感谢,如果你做:)
尝试增加一个额外的方法为你的事件侦听器:
target.addEventListener ("pComp", targetListener);
...
private function targetListener (event:Event):void {
rakeSoil (event.currentTarget);
}
如何,这是你想要的回答:
{
var target:EventDispatcher = ...;
Function rakeSoil = function (e:Event):void
{
// handle target
}
target.addEventListener("pComp", rakeSoil);
}
rakeSoil是一个一流的功能(或关闭),当事件被调度时,它将被调用,并且你可以访问它中的'target'。
编辑:
目标作为事件的一部分已经过去了,无论是event.currentTarget
或event.target
将是你想要的。
如果您想要传递其他内容,请创建一个自定义事件。将该属性添加到自定义事件。
我一直觉得匿名函数是更多的麻烦比他们的价值。我只会遵循标准的事件处理程序代码布局。它更正式,会花更多的精力在前面,但没有歧义,这是更具可读性当您返回到它从现在起一年(减少头刮时间):
// Target extends EventDispatcher
private var target:Target;
public function listenToTarget();
{
target = new Target();
target.addEventListener("pComp", pCompHandler);
}
private function pCompHandler(event:Event):void
{
target.rakeSoil();
}
虽然,现在我更仔细地看待它,为什么你有这个对象做一些Target应该能够独立处理的东西?
或者,如果您有能力,您可以让rakeSoil参与事件,然后访问currentTarget,而不是接受currentTarget。 – 2014-10-02 14:56:51