[英]inf actionscript 3 (as3), how to pass parameter in anonymous function?
在as3中,我要添加事件監聽器,然后將匿名函數附加到它:
myBox.addEventListener(MouseEvent.ROLL_OVER,function(e:MouseEvent):void {Alert.show(count,'Alert Box'););
現在,整個代碼循環了n次。 現在,我有n個myBoxes,每當我將鼠標懸停在該框上時,它都將提示該名稱。 但是,我看到的是,每個框都使用count的最后一個值。
如何將參數或值傳遞給匿名函數? (我相信,滾動時只需要一個變量)
您需要通過執行一個函數來創建一個新的作用域:
for (var i:int = 0; i<10; i++)
{
(function(count:int):void
{
myBox.addEventListener(MouseEvent.ROLL_OVER,
function(e:MouseEvent):void { Alert.show(count, 'Alert Box'); });
})(i);
}
而不是依賴索引,獲取事件的currentTarget並獲取其成員之一的值會更簡單(更好)嗎?
myBox.addEventListener(MouseEvent.ROLL_OVER,
function(e:MouseEvent):void
{
Alert.show(UIComponent(e.currentTarget).name, 'Alert Box');
);
如果您絕對必須引用索引,則可以通過
UIComponent(e.currentTarget).parent.getChildIndex(e.currentTarget)
而且,現在我想到了,如果您使用事件模型,甚至根本不需要使它成為匿名函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.