決定,我想提出一個簡單的計算器在我的IT級的任務。它有3個文本框,用戶可以添加自己的號碼,箱子與他們的「0」裏面開始,就表明用戶應該在這裏寫號。我想做的事,是有這樣的零走爲用戶把重點放在盒子。去除對象的事件偵聽通過陣列
因爲我有3個箱子,我想使事件監聽調用一個函數,刪除文字和事件監聽,而不是編寫相同的代碼3次。
使用包含不同文本框的數組,我設法調用它們,並根據需要更改文本,但EventListener未被刪除,因此用戶寫入的文本在關注文本再次
///////////////////////////////////////////////////////////////////////////////////
//The Array containing all the TextFields
var textFieldArr:Array = new Array(txtNumber1,txtNumber2,txtNumber2)
function onFocus(i:int){
return function (evt:FocusEvent){
textFieldArr[i].text = "";
textFieldArr[i].removeEventListener(FocusEvent.FOCUS_IN, onFocus(i))
}
}
//Calls up the onFocus function and declares variable i
txtNumber1.addEventListener(FocusEvent.FOCUS_IN, onFocus(0));
txtNumber2.addEventListener(FocusEvent.FOCUS_IN, onFocus(1));
txtNumber3.addEventListener(FocusEvent.FOCUS_IN, onFocus(2));
///////////////////////////////////////////////////////////////////////////////
謝謝你一堆!你的解釋清除了我的一切! – user3351024
問:在你的「removeEventListener」線爲什麼是偵聽器函數「onFocusEvent」而不是「onFocusIn」? – Craig
感謝您注意到這一點;這是一個錯字。我修好了它。 – mfa