Показать сообщение отдельно
Старый 30.05.2006, 15:41
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 12  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
Не надо нам дестракторов

Обычные Объекты удаляются только GarbageCollector
delete удаляет только ссылку

MovieClip & TextField особые объекты
они создаются только через методы
createEmpytMovieClip, attachMovie, createTextField, removeTextField, removeMovieClip
Код:
class SomeMovie extends MovieClip {
	
	public static var linkageID:String = 'someMovie';
	public static var initialized:Boolean = Object.registerClass (linkageID, SomeMovie);
	
	
	public static function create (	parent:MovieClip, 
									instanceName:String, 
									instanceDepth:Number ):SomeMovie {
										
		return SomeMovie (parent.attachMovie (linkageID, instanceName, instanceDepth));
	}
	
	/**
	* при таком создании нету надобности в 
	* 	public static var linkageID:String = 'someMovie';
	* 	public static var initialized:Boolean = Object.registerClass (linkageID, SomeMovie);
	*/
	public static function create1 ( 	parent:MovieClip,
										instanceName:String,
										instanceDepth:Number,
										arg:Array 	):SomeMovie {
											
		var mc:MovieClip = parent.attachMovie (linkageID, instanceName, instanceDepth);
		if (mc == undefined) {
			return null;
		} // end if
		
		mc.__proto__ = SomeMovie.prototype;
		mc.constructor = SomeMovie;
		mc.constructor.apply (mc, arg);
		
		return SomeMovie (mc);
	}
	
	public static function create2 ( 	parent:MovieClip,
										instanceName:String,
										instanceDepth:Number,
										arg:Array 	):SomeMovie {
		
		var mc:MovieClip = parent.createEmptyMovieClip (instanceName, instanceDepth);
		if (mc == undefined) {
			return null;
		} // end if
		
		mc.__proto__ = SomeMovie.prototype;
		mc.constructor = SomeMovie;
		mc.constructor.apply (mc, arg);
		
		return SomeMovie (mc);		
	}
	
	public function SomeMovie () {
		trace ('isMovieClip: ' + (_totalframes >= 1));
		
		var e:Number = arguments.length;
		for (var i:Number = 0; i < e; i++) {
			trace (i + ' >> ' + arguments [i]);
		} // end for
	}
	
}

var a:SomeMovie = SomeMovie.create (this, 'test1', 1);

var b:SomeMovie = SomeMovie.create1 (this, 'test2', 2);
b._x = 150;
b._y = 150;

var c:SomeMovie = SomeMovie.create2 (this, 'test3', 3, [1, 2, 'asdasdas']);