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

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

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

Регистрация: Feb 2010
Сообщений: 24
По умолчанию Динамическое создание обработчика событий

Добрый день. Не могу справиться с проблемкой.

Код AS3:
var wall:Sprite = new Sprite();  
addChild(wall);
 
var images:Array = [  
    "mp3.jpg",  
     "tween.jpg",  
    "uploader.jpg" 
];
 
var iLen:uint = images.length;  
var tile:ImageTile;  
for (var i:uint = 0; i < iLen; i++) {
 
    tile = new ImageTile();  
    wall.addChild(tile);
	tile.name = "box"+i;
    tile.x = i % 5 * 210 + 110;  
    tile.y = Math.floor(i / 5) * 210 + 110;
 
	var imageName:String = images[i];  
	var caption:TextField = tile.getChildByName("caption_tf") as TextField;
	tile.btn1.addEventListener(MouseEvent.CLICK, onBtnClicked );
	caption.text = imageName;
 
 
} 
function onBtnClicked(e:MouseEvent):void{
	trace (tile.name);
	}
Этот код работает.. но с всех трех кнопок возвращает имя последнего добавленного спрайта. Как правильно прицепить уникальный обработчик нажатия на "btn1" для каждого спрайта??

Добавлено через 2 часа 17 минут
btnn = new Btn();
tile.addChild(btnn);
btnn.name = "box"+i;

var imageName:String = images[i];
var caption:TextField = tile.getChildByName("caption_tf") as TextField;
btnn.addEventListener(MouseEvent.CLICK, onBtnClicked );
caption.text = imageName;


}
function onBtnClicked(e:MouseEvent):void{
trace (e.currentTarget.name.toString());
}

оказывается можно еще и так сделать).

Старый 22.02.2010, 12:06
ratin вне форума Посмотреть профиль Отправить личное сообщение для ratin Найти все сообщения от ratin
  № 2  
Ответить с цитированием
ratin
 
Аватар для ratin

Регистрация: Sep 2009
Сообщений: 127
И, кстати, вариант с e.currentTarget единственно верный ИМХО.

Старый 22.02.2010, 12:38
ipman вне форума Посмотреть профиль Отправить личное сообщение для ipman Найти все сообщения от ipman
  № 3  
Ответить с цитированием
ipman

Регистрация: Feb 2010
Сообщений: 24
спасибо за комментарий. для меня это важно. я только осваиваю as3.
а вот может кто нибудь подскажет.. если Button не делать как класс а просто разместить так же как и TextField на спрайте.. получиться к нему слушатель прикрутить? или нет?

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

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

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


 


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


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