missouriЦитата
Для того, чтобы центр мыши приходился на центр мувика, надо просто в режиме радактирования символа его перетащить на маленький такой крестик.
Ещё центр объекта (который также носит имя "точка регистрации" и "точка центра") можно задать при создании мувиклипа или другого объекта. Опять же в ручном режиме, когда создаётся новый объект или на основе текущего выделения.
Цитата
у меня мувик создается программно во время работы приложения методами moveTo и lineTo. Как мне в этом случае заставить его центрироваться так же?
Программно же, с помощью action script, изменить центр возможности не имеется. По крайней мере для флеша версии МХ включительно мне такие возможности не ведомы (и хелпу флешевому тоже).
В этом случае люди учитывают центр при работе с объектами.
При создании объектов возможны два случая: 1) "центр" в центре, и 2) "центр" в левом верхнем углу.
Для обоих случаев программно учитывается и распологается объект необходимым образом на экране. При этом при использовании moveTo и lineTo следует помнить, что данными методами учитываются "центры" объектов, к которым они применяются:
Код
myMovieClip.moveTo (x, y)
Parameters
x An integer indicating the horizontal position relative to the registration point of the parent movie clip.
y An integer indicating the vertical position relative to the registration point of the parent movie clip.
Т.е. с учётом "центра" сдвигается объект таким образом, чтобы он распологался в нужном месте экрана. И с учётом последующих moveTo и lineTo и других объектов.
При этом приходится иметь дело с двумя вариантами первоначального расположения "центра". Чтобы избавится от данной мороки возможно использовать метод getBounds.
Код
myMovieClip.getBounds(targetCoordinateSpace)
Parameters
targetCoordinateSpace The target path of the Timeline whose coordinate system you want to use as a reference point.
Returns
An object with the properties xMin, xMax, yMin, and yMax.
Например чтобы расположить два клипа clip и clip2 бок о бок, необходимо:
Код
clipBounds = clip.getBounds(_root);
clip2._x = clipBounds.xMax;