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

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

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

Регистрация: Jul 2011
Сообщений: 79
По умолчанию Вынести Events в отдельный класс

Здравствуйте.

Есть класс Scene в котором находятся stage(инициализация(stagealign и прочее),добавление объектов и т.д.).

Естественно в этом классе происходит подписка всех событий(на stage подписывается события мыши и клавы(Ещё не добавил),на объекты подписываются события мыши).

Соответственно все подписки событий и функции типа
Код AS3:
private function onMouseDown (e:MouseEvent):void	
private function onMouseMove (e:Event):void
Хочется вынести в отдельный класс.
сейчас подписка у меня производится так
Код AS3:
private function onParceComplete(e:Event):void
			{
				e.target.removeEventListener(Event.COMPLETE, onParceComplete);
				addCamerafromXML(xmlpar.getCamarray());
				addObjectfromXML(xmlpar.getObjarray());
				AddEventsToStage();
			}
			private function AddEventsToStage():void
			{
			stage.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
			stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
			stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUp);
			stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
			stage.addEventListener(Event.RESIZE, onResize);
			needEvents();
			}
		private function needEvents():void {
				for (var i:int = 0; i < MyObjArray.length; i++)
				{
				if (MyObjArray[i].needEvents())
				{
					ContArray[i].addEventListener(MouseEvent3D.MOUSE_OVER, onMouseOver);	
					ContArray[i].addEventListener(MouseEvent3D.MOUSE_OUT, OnMouseOut);	
					ContArray[i].addEventListener(MouseEvent3D.CLICK, onMouseClick);
				}
			}
		}
Соответственно как в класс контроллер передать stage. Объекты, камер(ы) думаю передавать в виде массивов.
Должен ли класс контроллера расширять Sprite или EventDispatcher?

И ещё хочется знать что лучше хранить объекты класс MyObject в Array или в Типизированном Vector<MyObject>? Если второе то можно примерчик использования?

Бонусный вопрос,для тех кто шарит в 3D в частности Alternativa3D 8
Когда работаешь просто во флэше без 3D. Объект отрисовывается на плоскости и чтобы его переместить мышью методом Drag&Drop достаточно присвоить значения x,y мыши объекту.

В случае с 3D когда присваиваешь объекту он в локальных координатах перемещается,а мне нужно(читай "хочется") чтобы он перемещался как в случае с 2D. Чтобы например передвинуть в глубь
поворачиваешь камеру и двигаешь.
Как сделать Drag&Drop 3D объекта как с 2D? (Завтра хочу попробовать e.target as Object и подвинуть).

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

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

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


 


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


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