PDA

Просмотр полной версии : Запутался в событиях


njog
22.06.2012, 12:07
Здравствуйте, хочу сделать свою флеш игру типа "Выход из комнаты". Ну т.е. собирать предметы и вставлять их в нужные места. В тестовом варианте я создал 2 объекта которые должны добавляться на линейку с инвентарем. После того как элемент добавляется я креплю событие mouse_down. Так же у меня есть условие по которому объект №1 должен останавливать stopDrag на объекте fdsa. Короче вот код:

var arr:Array = new Array();

qw.buttonMode = true;
qw.addEventListener(MouseEvent.CLICK, onMC);
mc.buttonMode = true;
mc.addEventListener(MouseEvent.CLICK, onMC);

function onMC (e:MouseEvent):void
{
arr.push(e.target);
for (var i:int = 0; i < arr.length; i++)
{
arr[i].x = 100 * i;
arr[i].y = 250;
arr[i].buttonMode = false;
arr[i].removeEventListener(MouseEvent.CLICK, onMC);
arr[i].addEventListener(MouseEvent.MOUSE_DOWN, onMD);
}
}

function onMD (e:MouseEvent):void
{
e.target.startDrag();
}

function onMU (e:MouseEvent):void
{
if (qw.dropTarget == fdsa) //qw - ключ , fdsa - замок
{
stopDrag();
}
}

Как вы можете видеть у меня не прикреплен слушатель событий mouse_up, я просто не понимаю куда его крепить! Подскажите пожалуйста!!

nOobCrafter
22.06.2012, 13:56
stage.addEventListener(...)
в хендлере надо снимать этот листенер.
arr.push(e.target);
вместо event.target лучше использовтаь event.currentTarget, при условии что вам надо именно обьекты qw и mc добавить в массив.

kukareku
22.06.2012, 14:28
слушатель события mouse_up вешайте в обработчике события mouse_down

КорДум
22.06.2012, 14:41
http://www.flasher.ru/forum/showpost.php?p=1085589&postcount=10
Вот пример.

dimarik
25.06.2012, 22:22
Только не забываем о том, что DisplayObject#stage может быть недоступен по секурным причинам.