Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.12.2013, 04:15
BAXTER вне форума Посмотреть профиль Отправить личное сообщение для BAXTER Найти все сообщения от BAXTER
  № 1  
Ответить с цитированием
BAXTER
 
Аватар для BAXTER

Регистрация: Dec 2013
Сообщений: 19
По умолчанию НЕ работают кнопки

Помогите разобраться в простом коде. С помощью цикла создаю 5 кнопок (готовых с библиотеки). Работает только последняя. Что я делаю не так?
Изображения
 

Старый 11.12.2013, 04:46
Dip52 вне форума Посмотреть профиль Отправить личное сообщение для Dip52 Найти все сообщения от Dip52
  № 2  
Ответить с цитированием
Dip52

Регистрация: Aug 2012
Сообщений: 297
Я бы сделал так. В цикле добавил бы:
Код AS3:
button.addEventListener(MouseEvent.CLICK,onCLICK);
Потом бы убрал слушатель событий, который идёт после цикла. И всё.

А так всё логично: ты присваиваешь событие только последней кнопке, так как каждый раз, когда работает цикл, создаются уникальные "кнопки" и после окончания цикла они как бы перестают существовать, если к ним нету обращения (поэтому 4 кнопки без слушателя событий). Потом цикл перестаёт работать и новой кнопке (5) доступен выход за пределы цикла, дальше идёт присваивание слушателя событий, поэтому и у пятой кнопки "слушатель" работает. То есть, четыре предыдущих кнопки просто не вышли за пределы за цикла.

Если непонятно, то попробуй создать пять циклов, в каждом будет создавать по одной кнопке и после каждого цикла будет присваиваться событие.

Старый 11.12.2013, 04:57
BAXTER вне форума Посмотреть профиль Отправить личное сообщение для BAXTER Найти все сообщения от BAXTER
  № 3  
Ответить с цитированием
BAXTER
 
Аватар для BAXTER

Регистрация: Dec 2013
Сообщений: 19
Огромное спасибо!!! Теперь все работает

Старый 11.12.2013, 08:08
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
и после окончания цикла они как бы перестают существовать, если к ним нету обращения
Ничего там не перестает существовать. Кнопки добавляются в дисплей лист. Единственно, что происходит - это перезапись ссылки на кнопку в переменной. А так как после окончания цикла, переменной присваивается ссылка на последнюю кнопку, она там и остается.
Можно сделать так:
Код AS3:
for (var i:int = 0; i < 5; i++) {
    var button:MainButton = new MainButton();
    addChild(button);
}
addEventListener(MouseEvent.CLICK, onClick);
 
function onClick(e:MouseEvent):void {
     if (e.target is MainButton) {
           trace("работает");
     }
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:18.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:18.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.