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

Shaak 23.11.2012 18:43

Клипы в спрайтовый класс и класс в Спрайт
 
Здравствуйте, столкнулся с проблемой, которую не знаю как решить граммотно.
Создаю класс Unit и добавляю в нем еще два класса тело и шасси, которые расширяют класс MovieClip
Код AS3:

package src.module {
        import flash.display.*;
 
        public class Unit extends Sprite{               
 
                var body: CorpusModule = new CorpusModule;
                var chassis: Chassis = new Chassis;
 
                public var select:Boolean = false;
 
                public function Unit() {
                        // constructor code
 
                        this.addChild(body);
                        this.addChild(chassis);
 
                }
 
        }
 
}

Далее добавляю класс юнит на игровой сетке
Код AS3:

                        unit = new Unit;
                        units.push(unit);
                        grid.addChild(units[0]);
                        unit.x = field[1][1].x;
                        unit.y = field[1][1].y;

Добавляю слушатели
Код AS3:

                        for (var l:Number =0; l < units.length; l++)
                        {
                                units[l].addEventListener(MouseEvent.MOUSE_OVER, select);
                                units[l].addEventListener(MouseEvent.MOUSE_OUT, disSelect);
                        }
 
                public function select(e:MouseEvent):Object {
                        grid.addChild(MovieClip(e.target));
                        updateUnits();
                        if ( e.target.hasOwnProperty(select) ) {
                        e.target.select = true
                        };
                        e.target.x -= parallax;
                        e.target.y -= parallax;
                        return e.target;
 
 
                }
 
                private function disSelect(e:MouseEvent):Object {
                        if ( e.target.hasOwnProperty(select) ) {
                        e.target.select = true
                        };
                        e.target.x += parallax;
                        e.target.y += parallax;
                        /*worldScan();*/
                        return e.target;
                }

Так вот, в чем собственно проблема - получается что сами клипы body и chassis не привязаны к сетке, и конструкцией e.target я обращаюсь непосредственно к клипам, а не к спрайтовому классу unit и из-за этого визуально все клипы смещаются на позицию с координатами 0 при наведение на них. Помогите разобраться, как мне прописывать слушатель для этого класса юнит и действия непосредственно над ним, а не над вложенными в него объектами. (в данном примере при наведении на объект unit - он должен сместиться на значение parallax и вернуться обратно, когда мышка не над ним )

PsixokoT 23.11.2012 18:53

currentTarget ?

Shaak 23.11.2012 19:13

Цитата:

Сообщение от PsixokoT (Сообщение 1105813)

как все просто, спасибо!

П.С. все таки как хорошо, что есть такое место где можно задать вопрос и на него ответят - сам бы я еще фиг знает когда решил бы этот вопрос><


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

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