决定,我想提出一个简单的计算器在我的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