Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.06.2024, 17:14
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 1  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 480
По умолчанию локальные центры объектов

Всем привет!

Вопрос по центровке экранных объектов. Наверняка уже многократно решён.
Как известно, локальный центр изначально находится в углу (правом-нижнем, по-моему, не суть).
В подавляющем большинстве случаев требуется его установка строго по центру.

Внутри объекта-наследника Sprite пишу:
Код AS3:
	this.x = - this.width / 2;
	this.y = - this.height / 2;
Слетит ли такая центровка, если потом я буду указывать x и y из объекта-родителя?
И как в принципе решается подобная проблематика?
__________________
Не сломано - не чини!

Старый 02.07.2024, 16:37
artem2033 вне форума Посмотреть профиль Отправить личное сообщение для artem2033 Найти все сообщения от artem2033
  № 2  
Ответить с цитированием
artem2033

Регистрация: Nov 2013
Сообщений: 75
Привет, можешь просто расширить функционал обычного спрайта вот так:
Код AS3:
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;
		}
	}

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:15.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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