![]() |
Динамические кнопки и обработчики
Добрый день, по циклу создаю кнопки. Хочу к ним привязать действия.
В итоге кнопки создаются выводятся на экран но события не обрабатываются. Код AS3:
|
Для оформления своего кода надо использовать теги [as3][/as3]
|
В цикле создаешь кнопки,
далее в этом же цикле создаешь массив, в массив загоняешь каждую кнопочку, массив подписываешь на событие, а в обработчике обратиться к конкретной кнопке можно через, e.target - это объект из массива. |
Еще вопрос, кнопки с Вашей помощью создал код такой:
Код AS3:
Код AS3:
at main_fla::MainTimeline/allElements() |
Код некрасивый. Последний кусок с ошибкой.
Вы передаёте вместо индекса с которого удалить объект сам объект в removeChildAt. Я подозреваю, вы хотели написать просто removeChild. Но так или иначе, один(последний добавленный) элемент массива удалён не будет, сами угадайте, почему. Добавлено через 2 минуты И прикол в том, что вы скорее всего случайно удалили сам MainTimeline из DL :D Поэтому ссылка на stage пропадает, скорее всего, и вылетает эта ошибка. Добавлено через 8 минут Секунду, на лицо непонимание различий между stage.addChild и просто addChild. Объясняю: stage.numChildren == 1 в самом начале. trace(stage.getChildAt(0)); == object MainTimeline. На сцене находится главная линия времени. Когда вы пишете addChild(item), вы неявно используете this.addChild(item), тоесть добавляете item не рядом с MainTimeline, а в дисплей лист самого MainTimeline(который изначально пуст). Удаляя item из stage не удалит объект, который вы добавляли в Main, так как его попросту там нет. Да, stage.contains(item) выдаст true, потому, что этот метод учитывает вложенности. Добавлено через 12 минут P.S. код очень некрасивый. |
vlbuto плиз, напишите тут или пришлите мне пример кода, как сделать, а то давно про это читал, но без примера не врубаюсь, использую другие подходы
|
Попробуйте так, без stage.(removeChildAt)
Код AS3:
|
dimarik, да действительно, такой вариант проходит, и видимо объекты с цены удаляются, судя по логу, но в результате сцена стает черной и ничего на ней невидно. в чем может быть причина?
|
Antonpro, вы мой ответ читали?
|
ZackMercury, безусловно читал, если я правильно понял я случайно удаляю таймлайн, но это было при удалении
Код AS3:
Код AS3:
|
| Часовой пояс GMT +4, время: 20:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.