This discussion is very interesting, so I would like to offer my
approach of attaching/construction of visual classes. I am open for
optimization hints.
I am using something like this:
1) THE CLASS EXTENDING MOVIECLIP
class com.path.MyVisual extends MovieClip
{
public static var _SYMBOL_NAME:String = "__Packages.com.path.MyVisual";
public static var _SYMBOL_OWNER:Function = MyVisual;
public static var _SYMBOL_LINKED =
Object.registerClass(_SYMBOL_NAME,_SYMBOL_OWNER);
private var __width:Number;
private var __text:String;
public static function create(target:MovieClip, initObject:Object,
depth:Number, name:String):MyVisual
{
depth = (depth!=undefined?depth:target.getNextHighestDepth());
name = (name!=undefined?name:"myVisual"+depth);
return MyVisual(target.attachMovie(MyVisual._SYMBOL_NAME, name,
depth, initObject));
}
public static function createInitObject(width:Number,
text:String):Object
{
return {
__width: width,
__text: text};
}
private function MyVisual()
{
// I can use __width and __text here, if I like so.
}
}
2) THE "CONSTRUCTION" OF AN INSTANCE
I use the static create/createInitObject methods. The latter gives me
its signature when the editor supports code completion. This way, it
feels like a constructor and I get the correct type returned:
var mv:MyVisual = MyVisual.create(this, MyVisual.createInitObject(200,
"Hello World"));
Have fun,
Matthias
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com