Здравствуйте.
Есть класс 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 и подвинуть).