Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как узнать имя кликнутого child-элемента (http://www.flasher.ru/forum/showthread.php?t=146602)

Castro 12.11.2010 16:04

Как узнать имя кликнутого child-элемента
 
Есть главный мувик main, в нём вложено ещё несколько мувиков.
Можно ли как-то присвоив лиснер на главный мувик узнать на какой из мувиков внутри его кликнули (типа узнать instance name) ?

КорДум 12.11.2010 16:06

e.target

bav 12.11.2010 16:13

Код AS3:

package 
{
        import flash.display.MovieClip;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.MouseEvent;
 
        /**
        * @author bav
        */

        public class Main extends Sprite
        {               
                public function Main():void
                {
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        var main:MovieClip = new MovieClip();
                        var first:MovieClip = new MovieClip();
                        var second:MovieClip = new MovieClip();
 
                        main.name = "main";
                        first.name = "first";
                        second.name = "second";
 
                        main.addChild(first);
                        main.addChild(second);
                        addChild(main);
 
                        first.graphics.beginFill(0xFF0000);
                        first.graphics.drawRect(0, 0, 50, 30);
                        first.graphics.endFill();
 
                        second.graphics.beginFill(0x0000FF);
                        second.graphics.drawRect(55, 0, 50, 30);
                        second.graphics.endFill();
 
                        main.addEventListener(MouseEvent.CLICK, clickHandler);
                }
 
                private function clickHandler(e:MouseEvent):void
                {
                        trace((e.target as MovieClip).name);
                }
        }
}


КорДум 12.11.2010 17:36

bav, надеюсь, что это просто пример, написанный на коленке. Вложенные функции, нет типизации у e.target и намек на код в кадре...

bav 13.11.2010 12:20

Да, так и есть. Был применен коленчатый метод. Исправляю выше.


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

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