部分代码:
private var minfo:IModuleInfo;
private var interAttri:AttriDataControl=null;
import Core.AttriDataControl;
import mx.modules.ModuleManager;
private function init():void
{
minfo = ModuleManager.getModule(modulesource+"AttriWin.swf");
minfo.addEventListener(ModuleEvent.READY,loadComplete);
minfo.load();
}
private function loadComplete(evt:ModuleEvent):void
{
obj=minfo.factory.create() as DisplayObject;
this.addChild(obj);
interAttri=obj as AttriDataControl;
interAttri.CollectAttributeData(getx,gety,getz,getdata);
}
在主程序加载的module中使用某功能需要再加载一为AttriWin的module界面,AttriDataControl为定义好的接口,为名为AttriWin的module实现其定义部分,通过CollectAttributeData初始化AttriWin出错,提示找不到方法或对象。
调试:运行到“interAttri=obj as AttriDataControl”,interAttri始终为null。
原因:可能是域的问题,主程序不能将obj 转化为AttriDataControl类型
解决:在主程序中定义一个AttriDataControl接口变量
import Core.AttriDataControl;
private var AttriInter:AttriDataControl;