Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Добавить событие на несколько объектов (http://www.flasher.ru/forum/showthread.php?t=165787)

ЗлОй ПрОграММер 26.08.2011 19:18

Добавить событие на несколько объектов
 
Загружаю в класс 5 картинок, они хранятся в массиве texts, затем добавляю их на сцену
Код AS3:

addChild(texts[0]); 
addChild(texts[1]);
addChild(texts[2]);
addChild(texts[3]);
addChild(texts[4]);

мне нужно создать одно событие MOUSE_DOWN которое бы реагировало на нажатие по одной из картинок
и двигало бы вправо на 1 ед. ту на которую нажали

хотел сделать так
addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
Код AS3:

private function MouseDown(e: MouseEvent): void
{
//----------------------------------------------------------------------
  e.currentTarget.x ++;
  e.target.x ++  Тоже не работает
//----------------------------------------------------------------------
}


BezDelnik 26.08.2011 19:25

Код AS3:

for (var i:int=0; i<texts.length; i++) {
    texts[i].addEventListener(MouseEvent.MOUSE_DOWN, onClick);
}
 
function onClick(event:MouseEvent):void {
    event.currentTarget.x++;
}


КорДум 26.08.2011 19:28

Код AS3:

(event.currentTarget as DisplayObject).x++


GBee 26.08.2011 19:30

у всех элементов массива
Код AS3:

mouseChildren = false;

подписать контейнер, как хотел автор и
Код AS3:

target.x++


ЗлОй ПрОграММер 26.08.2011 19:31

BezDelnik я уже пробовал вешать события так как вы написали, внутри них код не работает
КорДум и GBee попробую сделать так как вы написали

Добавлено через 5 минут
не один из предложенных способов не сработал
GBee. Забыл написать что в texts содержаться битмапы, у них нет свойства mouseChildren
КорДум при вашем коде двигаются все картинки

Код AS3:

private function MouseDown(e: MouseEvent): void
{
//----------------------------------------------------------------------
  (e.currentTarget as DisplayObject).x++
//----------------------------------------------------------------------
}


КорДум 26.08.2011 20:02

Я лишь показал кастование. Замените на target.

ЗлОй ПрОграММер 26.08.2011 20:19

Код AS3:

private function MouseDown(e: MouseEvent): void
{
//----------------------------------------------------------------------
  (e.target as DisplayObject).x++
//----------------------------------------------------------------------
}

всё равно движутся все

КорДум 26.08.2011 20:30

Что покажет trace(e.target)?

ЗлОй ПрОграММер 26.08.2011 20:33

имя класса cTexts, т.е. весь класс двигается а не отдельный его child

fish_r 26.08.2011 20:35

Ну да-к а чо им всем не двигаться? Вы же двигаете контейнер с ними. Разметите их в контейнеры каждую,
а потом в один общий контейнер, тогда свойство target будет указывать на кликнутую битмапу.


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

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