在flex module加载module,通过接口初始化加载module问题

本文探讨了在Flash项目中加载AttriWin模块时遇到的问题及解决方案。详细介绍了如何正确实例化AttriDataControl接口并处理跨域问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部分代码:

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值