Форум 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=174806)

Kadmus 03.02.2012 00:38

Как получить прямую ссылку на обьект вызвавший событие?
 
Хочу использовать метод addChild для обьекта которий уже был добавлен на рабочую область посредством нажатия на него. Вот кусок кода:
Код AS3:

var myDragElement:Array = new Array();
for(i=0;i<zahody.length;i++) {
        myDragElement[i] = new CDragElement(350,zahody[i]);
        addChild(myDragElement[i]);
        myDragElement[i].addEventListener(MouseEvent.MOUSE_DOWN,drag);
}
myGroupWindow = new CGroupWindow(myDragElement,500);//здесь для элементов myDragElement опять
                                            //cработало addChild тем самим добавив элементы
                                            //внутрь myGroupWindow
addChild(myGroupWindow);
 
function drag(e:MouseEvent):void {
        addChild(e.currentTarget);// !!! меня интересует эта строчка
        e.currentTarget.startDrag();
}

в результате возникает ошибка:
1118: Implicit coercion of a value with static type Object to a possibly unrelated type flash.display: DisplayObject.

я так понимаю я не могу использовать addChild для e.currentTarget. Как мне получить прямую ссылку на обьект, ну или както по другому решить проблему?

elder_Nosferatu 03.02.2012 00:58

В код не вникал, но сообщение говорит о том, что addChild() просит DisplayObject, а вы суете ему какой нить Object, который может и не DisplayObject вообще...

Сделайте замену
Код AS3:

addChild(e.currentTarget);// !!! меня интересует эта строчка

на
Код AS3:

addChild(e.currentTarget as DisplayObject);// !!! это меня уже не интересует :)


Kadmus 03.02.2012 01:42

Большое спасибо, теперь работает.

HardCoder 03.02.2012 01:46

И еще, если хотите получить ссылку на обьект, по которому кликнули, то currentTarget здесь не рулит. Здесь рулит target.

dimarik 03.02.2012 01:49

Цитата:

Как получить прямую ссылку на обьект вызвавший событие?
Бывают обратные ссылки?

По существу: обычно в обработчике это
Код AS3:

event.target;


ЗЫ "Как получить прямую ссылку на обьект, вызвавший событие?"


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

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