在flex中往往有这样的需求:想调用一个组件类的某个方法,但这个方法中用到了该自定义组件当中的一些组件,所以直接调用就会出错,因为组件还没有初始化完成,要完成这样的功能可能就得设置多个变量,然后初始化完成设为true,然后……,觉得比较麻烦,需要在两个地方都调这个函数(初始化完成后和调用处),不过我这里有个方法可以简化这个过程,好与不好还待验证:
准备两个变量:一个为是否被化完成--isInitalized;一个数据组funcArr;
[data]
private function onComplete(){
isInitalized = true;
while(funcArr.length>0){
(funcArr.shift() as Function).apply(null,funcArr.shift());
}
}
public function outFunc(aParam1:String,aParam2:String):void{
if(isInitalized){
myFunc(aParam1,aParam2);
}
else{
funcArr.push(myFunc);
funcArr.push([aParam1,aParam2]);
}
}
private function myFunc(aParam1:String,aParam2:String):void{
}
[/data]
没有评论:
发表评论