PDA

Просмотр полной версии : При destroyObject TextArea вызывается event focusOut


Azy
26.12.2006, 13:12
Мне по фокусауту нужно получить TextArea.text. При втором focusOut text==undefined. Как победить?
import mx.controls.TextArea;
var textArea:TextArea = _root.createClassObject(mx.controls.TextArea, "textArea", 500);

var listener:Object = new Object();
listener.focusOut = function (eventObject:Object)
{
trace(eventObject.type);


eventObject.target._parent.destroyObject(eventObject.target._name);
};

textArea.addEventListener("focusOut", listener);

etc
26.12.2006, 13:53
Гм, ты же удаляешь объект вроде…

Azy
26.12.2006, 13:56
Угу, удаляю. Свою проблему я решил проверкой if (textArea.text!=undefined). Но это есть хак. А хак не есть гуд =) Интересно как все таки обрубить это.

etc
26.12.2006, 14:05
Обрубить что? У тебя фокус с поля ушел. При удалении объекта что, опять вызывается focusOut? Тогда перед удалением объекта отпишись от его события focusOut, да и всё.

Azy
26.12.2006, 14:08
дык удаление объекта происходит внутри события фокусаут. это разве не имеет значение?
Т.е. если перед строкой
eventObject.target._parent.destroyObject(eventObject.target._name);
убрать ивент - выполнится ли строка?

etc
26.12.2006, 14:11
Конечно выполнится. Что значит убрать евент? Я имею ввиду не убийство метода focusOut, а нормальную отписку listener-а от события textArea.
eventObject.target.removeEventListener('focusOut',this);
Перед удалением объекта.