Привет! Не могу никак разобраться с 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;
}
}
}
Но если красный шарик повернуть на некоторый угол, то данный код уже не работает как надо. Какие изменения нужно внести? Полагаю тут нужно полученные координаты домножать на синусы/косинусы. Проблема еще и в том, что нужно поворачивать надо не только сам красный шарик, но и его родителя....
Данный пример (шарики еще не повернуты) в аттаче