![]() |
Лучший способ назначения обработчиков событий для MoveClip в разных кадрах.
У меня есть приложение (Flash, AS 3) с несколькими табами. Каждый таб на отдельном Key Frame. На каждом табе есть контролы - текстовые области, кнопки и т.п. На них надо повесить обработчики событий.
Я пробовал так. this.gotoAndStop(2); trace(AddResource);//null AddResource.addEventListener(MouseEvent.CLICK,AddRes);//error Здесь AddResource - это кнопка fl.controls.Button, AddRes - функция. Не работает, т.к. когда вызывается addEventListener AddResource еще null, не создан. Я нашел 3 полу-решения 1. Я пробовал делать setTimeout - но его сложно подобрать, он разный будет. Да и задержка ненужная появляется. 2. Тут (http://stackoverflow.com/questions/1...-another-frame) предлагают поместить ВСЕ контролы на первый кадр, а ненужные сделать невидимыми. Мне это решение не нравится т.к. их тогда несколько дюжин будет на первом кадре, большая часть невидимая и как это поддерживать - непонятно. 3. Тут (http://stackoverflow.com/questions/3...nted-to-one-ob) советовали поместить код в Actons. Это мне тоже, честно говоря, не очень нравится - размазывать код по всем файлам проекта, хранить его не только в *.as Как лучше решить эту проблему? Есть ли решение лучше? Или надо брать одно из этих трех? Спасибо. |
каждый таб - отдельный класс.
при смене таба делать addChild при этом убирая текущий |
Event.FRAME_CONSTRUCTED дождитесь после перехода.
|
Я добавил в конструкторе основного класса обработчик вида
Код AS3:
Код AS3:
1119: Access of possibly undefined property FRAME_CONSTRUCTED through a reference with static type Class. Я как-то не так работаю с эти событием? |
| Часовой пояс GMT +4, время: 09:02. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.