Показать сообщение отдельно
Старый 30.01.2007, 15:18
lowka вне форума Посмотреть профиль Отправить личное сообщение для lowka Найти все сообщения от lowka
  № 14  
Ответить с цитированием
lowka

Регистрация: Sep 2006
Сообщений: 256
Код:
class AdvancedMovie extends MovieClip {
	private var _interval:Number;
	private var _updateAfter:Number;
	private var _fps:Number;
	
	private var initFPS:Number;
	
	private var broadcastMessage:Function;
	public var addListener:Function;
	public var removeListener:Function;
	
	private function AdvancedMovie() {
		super();
		AsBroadcaster.initialize(this);
		this.init(this.initFPS);
	}
	
	private function init(fps:Number):Void {
		this._fps = !isNaN(fps) && fps>0? fps: 1;
		this._updateAfter = Math.round(1000/this.fps);
		if(this._interval){
			clearInterval(this._interval);
		}
		this._interval = setInterval(this, "broadcastOnFPS", this._updateAfter);
	}
	
	private function broadcastOnFPS():Void {
		this.broadcastMessage("onFPS");
	}
	
	public function set fps(value:Number):Void {
		this.init(value);
	}
	public function get fps():Number {
		return this._fps;
	}
}
Использование (вначале нужно создать в библиотеке мувик с идентификатором AdvancedMovie + класс должен быть прописан) :
Код:
import AdvancedMovie;

var FPS:Number = 31;
/*
initFPS значение fps, которое будет у экземпляра после создатия.
*/
var test:AdvancedMovie = AdvancedMovie(this.attachMovie("AdvancedMovie","__test",0, {initFPS: FPS}));
var onFPS:Function = function():Void {
	trace("test.fps="+test.fps);
}
test.addListener(this);
Вроде бы работает.
+
Все действия должны происходить в обработчике события onFPS.


Последний раз редактировалось lowka; 30.01.2007 в 15:27.