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

Kuruki 07.11.2008 22:03

Координаты объекта, повернутого и вложенного в другой объект
 
Привет! Не могу никак разобраться с localToGlobal.
Пример. smallBall - это один шарик (синий), bigBall - это другой шарик(красный), который вложен в клип container. Все это лежит на сцене (Main).
Мне нужно, чтобы центр синего шарика совпал с центром красного. Это я сделал:
Код:

package
{
        import flash.display.MovieClip;
        import flash.display.Sprite;
        import flash.events.MouseEvent;
        import flash.geom.Point;
       
        public dynamic class Main extends Sprite
        {
                public var sBall:MovieClip;
                public var bBall:MovieClip;
               
                public function Main()
                {
                        init();
                        this.sBall.addEventListener(MouseEvent.CLICK, changeCoors);
                }
                public function init():void
                {
                        this.sBall = this.smallBall as MovieClip;
                        this.bBall = this.container.bigBall as MovieClip;
                }
                public function changeCoors(event:MouseEvent):void
            {
                        var localCoors:Point = new Point(this.bBall.x, this.bBall.y);
                        var globalCoors:Point = this.bBall.localToGlobal(localCoors);
                        this.sBall.x = globalCoors.x - this.bBall.x;
                        this.sBall.y = globalCoors.y - this.bBall.y;
            }
        }
}

Но если красный шарик повернуть на некоторый угол, то данный код уже не работает как надо. Какие изменения нужно внести? Полагаю тут нужно полученные координаты домножать на синусы/косинусы. Проблема еще и в том, что нужно поворачивать надо не только сам красный шарик, но и его родителя....
Данный пример (шарики еще не повернуты) в аттаче

silin 07.11.2008 22:49

все проще:
Код:

public function changeCoors(event:MouseEvent):void
{
        var globalCoors:Point = bBall.localToGlobal(new Point());
        sBall.x = globalCoors.x;
        sBall.y = globalCoors.y;
}


Kuruki 07.11.2008 23:18

:rolleyes: Да уж... синусы, косинусы... :D Спасибо, silin!


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

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