![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 483
|
Всем привет!
Вопрос по центровке экранных объектов. Наверняка уже многократно решён. Как известно, локальный центр изначально находится в углу (правом-нижнем, по-моему, не суть). В подавляющем большинстве случаев требуется его установка строго по центру. Внутри объекта-наследника Sprite пишу: Слетит ли такая центровка, если потом я буду указывать x и y из объекта-родителя? И как в принципе решается подобная проблематика?
__________________
Не сломано - не чини! |
|
|||||
|
Регистрация: Nov 2013
Сообщений: 75
|
Привет, можешь просто расширить функционал обычного спрайта вот так:
public class MySprite extends Sprite { private var _pivotX:Number; private var _pivotY:Number; private var _x:Number; private var _y:Number; public function MySprite() { _x = 0; _y = 0; _pivotX = 0.5; _pivotY = 0.5; } public function get pivotX():Number { return _pivotX; } public function set pivotX(value:Number):void { _pivotX = value; super.x = _x - width * _pivotX; } public function get pivotY():Number { return _pivotY; } public function set pivotY(value:Number):void { _pivotY = value; super.y = _y - height * _pivotY; } override public function get x():Number { return _x; } override public function set x(value:Number):void { _x = value; super.x = _x - width * _pivotX; } override public function get y():Number { return _y; } override public function set y(value:Number):void { _y = value; super.y = _y - height * _pivotY; } override public function set width(value:Number):void { super.x = _x - value * _pivotX; super.width = value; } override public function set height(value:Number):void { super.y = _y - value * _pivotY; super.height = value; } } |
|
|||||
|
Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 483
|
Благодарю. Примерно чего-то такое и предполагал, но самому делать неохота было
![]()
__________________
Не сломано - не чини! |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|