Показать сообщение отдельно
Старый 14.12.2005, 22:12
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 4  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Начал писать когда то, чуть дописал.
Код:
import mx.events.EventDispatcher;
class ru.flasher.helping.managers.MovieClipChanger {
	//event stuff
	private static var initDispatcher = EventDispatcher.initialize(MovieClipChanger.prototype);
	public var addEventListener:Function;
	public var removeEventListener:Function;
	private var dispatchEvent:Function;
	//private properties
	private var __movies_array:Array;
	private var __method:Function = null;
	//Constructor
	public function MovieClipChanger () {
		__movies_array = new Array ();
	}
	//public methods
	public function addMovie(mc:MovieClip):Number {
		__movies_array.push(mc);
		dispatchEvent({type:"add",mc:mc});
		return __movies_array.length;
	}
	public function removeMovie(mc):Object {
		var result:Object = null;
		if(typeof(mc) == "number") {
			result = __movies_array[mc];
			__movies_array.splice(mc,1);
		}else if(typeof(mc) == "movieclip") {
			for(var i:Number=0;i<__movies_array.length;i++) {
				if(__movies_array[i] == mc) {
					result = __movies_array[i]; 
					__movies_array.splice(i,1);
					break;
				}
			}
		}
		dispatchEvent({type:"remove",mc:result});
		return result;
	}
	public function getMovie(index:Number):MovieClip {
		if(index<=__movies_array.length) {
			return __movies_array[index];
		}else{
			return null;
		}
	}
	public function registerMethod(method:Function):Void {
		__method = method;
		dispatchEvent({type:"register" , method:__method});
	}
	public function execute(args:Array):Void {
		dispatchEvent({type:"execute",method:__method};
		for(var i:Number = 0;i<__movies_array.length;i++) {
			__method.apply(__movies_array[i],args);
		}
	}		
	//read only
	public function get length ():Number {
		return __movies_array.length;
	}
	public function get movies ():Array {
		return __movies_array.slice()
	}
}
В Фла файле на сцену кладем мувики (назевем их b1_mc, b2_mc и так далее)
и в первом кадре пишем
Код:
import ru.flasher.helping.managers.MovieClipChanger
var manager:MovieClipChanger = new MovieClipChanger();
manager.addMovie(b1_mc);
manager.addMovie(b2_mc);
manager.addMovie(b3_mc);
manager.removeMovie(b2_mc);
function setText(name:String):Void {
	this._txt.text = this._name;
}
manager.registerMethod(setText);
manager.execute();
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^


Последний раз редактировалось Nirth; 16.12.2005 в 19:14.