IT- 클래스에서 과제를위한 간단한 계산기를 만들고 있습니다. 그것은 사용자가 자신의 숫자를 추가 할 수있는 3 개의 텍스트 박스를 가지고 있으며, 박스는 사용자가 숫자를 여기에 써야한다고 표시하기 위해 그 안에 "0"으로 시작합니다. 내가하고 싶은 것은 사용자가 상자에 초점을 맞추면이 제로가 사라지게하는 것입니다.배열을 통해 결정된 객체에서 EventListener 제거
3 개의 상자가 있기 때문에 동일한 코드를 3 번 쓰는 대신 EventListener가 텍스트와 EventListener를 제거하는 함수를 호출하도록하고 싶습니다.
다른 텍스트 상자가 포함 된 배열을 사용하여 해당 텍스트를 호출하고 원하는대로 텍스트를 변경했지만 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'라인에서 왜 'onFocusIn'대신 'onFocusEvent'수신기 기능이 있습니까? – Craig
주의 해 주셔서 감사합니다. 오타 였어. 나는 그것을 고쳤다. – mfa