![]() |
Получение значения из addEventListener
К примеру надо передать переменную strIn и получить strOut.
Код AS3:
|
Обработчик не должен возвращать никаких значений.
|
А как тогда сделать возвращение значения из функции загрузки xml-файла?
К примеру Class1 вызывает функцию loadXML из Class2. Мне надо присвоить надписи кнопкам в классе Class1 из данных XML. Неужели данные придётся передавать через глобальные переменные? |
А КОГДА Вы собираетесь присваивать кнопкам надписи? Надеюсь, ПОСЛЕ того, как XMLка загрузится? Вот этим и должен заниматься обработчик. Разбор XML должен быть либо в коде самого обработчика, либо в другой функции, вызываемой из обработчика, возможно с передачей ей XML как параметра вызова, если не хотите хранить данные в приватной переменной.
|
Лисенер значение не вернет
Можно сделать обработчик в Class1 на class2.loader и в нем установить заголовки кнопок. Можно в обработчике в Class2 сделать нечто подобное: Код AS3:
|
Обработчик вызывается из функции загрузки ХМЛ, конечно же после.
Обработчик находится в том же классе что и загрузчик. Но мне надо передать значение в главный класс, из которого вызывается загрузчик. А из загрузчика вызывается обработчик. Порядок вызова ф-ий таков: "Главный класс" => "ф-ия загрузчик" => "ф-ия обработчик" Т.е. в обратном порядке надо получить значения. В загрузчик передаю аргумент просто: строка = функция(аргумент). А как получить значение, если функция является обработчиком события? |
1. Подписать "главный класс" на событие.
2. Если не нужен никак обработчик в главном, то делать разбор в Вашем обработчике и по окончании в нем же диспатчить еще одно событие, ну скажем "parse_complete", на которое подписать "главный класс". Но тогда придется либо написать свое событие, содержащее данные, которые надо передать, либо придется таки завести переменную во втором классе, откуда главный сможет забрать данные, когда они будут готовы. Все просто))) |
Понятно, спасибо всем. Буду делать слушатель в главном классе и из него вызывать обработчик и получать значение.
|
| Часовой пояс GMT +4, время: 14:14. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.