说多了墨迹,直接帖代码
MyClassFactory 类 如下:
import flash.display.DisplayObject;
import mx.core.ClassFactory;
import mx.states.OverrideBase;
public class MyClassFactory extends ClassFactory
{
public function MyClassFactory(generator:Class=null)
{
super(generator);
}
private var eventArray:Array=new Array();
private var _properties:Array=new Array();
public function addInitEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0,useWeakReference:Boolean=false):void{
eventArray.push({type:type,listener:listener,useCapture:useCapture,priority:priority,useWeakReference:useWeakReference});
}
public function addInitProperties(key:String,value:*):void{
_properties.push({key:key,value:value});
}
override public function newInstance():*{
trace("MyClassFactory.newInstance();");
var obj:*=super.newInstance();
var event:Object;
if(eventArray!=null&&eventArray.length>0&&obj as DisplayObject){
var i:int=0;
for(i=0;i<_properties.length;i++){
event=_properties[i];
if(event.value is Function){
obj[event.key]=event.value();
}els