㈣一直試圖通過在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