маленький пример:

Код:
class MovieUtils {
public static function applyClassTo (movie:MovieClip, Class:Function):Boolean {
if ((movie = MovieClip (movie)) != null) {
movie.__proto__ = Class.prototype;
movie.constructor = Class;
movie.constructor.apply (movie);
return true;
} // end if
return false;
}
public static function createEmptyClassMovie (Class:Function, parent:MovieClip, name:String, depth:Number):MovieClip {
var mc:MovieClip = null;
if (MovieClip (parent) != null) {
mc = parent.createEmptyMovieClip (name, depth);
return (applyClassTo (mc, Class)) ? mc : null;
} // end if
return mc;
}
class Factory {
private var __target:MovieClip = null;
public function Factory (target:MovieClip){
__target = target;
}
public function build ():Void {
for (var i:Number = 0; i < 4; i++) {
var mc:CustomMovie = CustomMovie (
MovieUtils.createEmptyClassMovie (CustomMovie, __target, 'item' + i, i));
mc._x = 105 * i;
mc._y = 0;
} // end if
}
}
class CustomMovie extends MovieClip {
public function CustomMovie () {
beginFill (0x000000, 100);
moveTo (0, 0);
lineTo (100, 0);
lineTo (100, 100);
lineTo (0, 100);
lineTo (0, 0);
endFill ();
onRollOut ();
}
public function onRollOver ():Void {
_alpha = 20;
}
public function onRollOut ():Void {
_alpha = 100;
}
}
}
использование

Код:
(new Factory (this)).build ();