Показать сообщение отдельно
Старый 08.02.2013, 02:19
Sintesis вне форума Посмотреть профиль Отправить личное сообщение для Sintesis Найти все сообщения от Sintesis
  № 1  
Ответить с цитированием
Sintesis
 
Аватар для Sintesis

Регистрация: Jul 2008
Сообщений: 912
По умолчанию Глобальный Enter Frame

Как лучше реализовать ентерфрейм, чтоб была возможность добавлять функции в которых есть анимация. Сделал так, но мне кажется это медленно:
Код AS3:
package resources{
	import flash.events.Event;
 
	/**
	 * ...
	 * @author Sintesis
	 */
	public class MyTween{
 
		private var _myFuncVector:Vector.<Function>;
		private var _funcCount:int = 0;
		private var _oldFuncCount:int = 0;
 
		public function MyTween(){
			_myFuncVector = new Vector.<Function>;
		}
 
		public function startTimer():void {
			Dispatcher._stage.addEventListener(Event.ENTER_FRAME, timerListener);
		}
 
		public function stopTimer():void {
			Dispatcher._stage.removeEventListener(Event.ENTER_FRAME, timerListener);
		}
 
		public function setFunc(func:Function):void {
			_myFuncVector.push(func);
			_funcCount = _myFuncVector.length;
		    _oldFuncCount = _myFuncVector.length;
		}
 
		private function timerListener(event:Event):void {
//не нравится, что каждый кадр перебираю вектор _myFuncVector
			while (_funcCount--) {
				_myFuncVector[_funcCount]();
			}
			_funcCount = _oldFuncCount;
		}
	}
}
может есть лучшие решения?