zoukankan      html  css  js  c++  java
  • As 动态载入模块Bug【原创】

      昨天Flex项目升级,从3.5的SDK升级到4.0,中间出现不少问题,截止至现在刚刚解决最大的问题就是swf模块动态载入的问题。 

    3.5代码如下:

    //加载显示Widget
    private function loadWidget(id:Number, url:String, preload:String):void
    {
    info
    =ModuleManager.getModule(url);
    info.data
    ={id: id, preload: preload == "" ? url : preload};
    info.addEventListener(ModuleEvent.READY, widgetReadyHandler);
    info.load(
    );
    if (url != "")
    {
    this.cursorManager.setBusyCursor();
    }
    }

    之前代码一直这么写没问题,但是到4.0的SDK之后出现动态加载的模块样式无法使用,怀疑是样式管理器没有继承到子模块,于是使用new 的方式添加对象:

    var widget:GridWidget = new GridWidget();
    widgetBox.addChild(widget as DisplayObject);

    上面这种方式没有问题,果然和猜测的一样,奇怪的是3.5并没有这样的问题,4.0的BUG?

    无意中想到,既然样式管理器会丢失,难道没有载入指定样式的方法吗?答案是有的,在载入的时候可以指定相关参数

    //加载显示Widget
    private function loadWidget(id:Number, url:String, preload:String):void
    {
    info
    =ModuleManager.getModule(url);
    info.data
    ={id: id, preload: preload == "" ? url : preload};
    info.addEventListener(ModuleEvent.READY, widgetReadyHandler);
    info.load(
    null,null,null,FlexGlobals.topLevelApplication.systemManager);
    if (url != "")
    {
    this.cursorManager.setBusyCursor();
    }
    }

    注意红色代码,这里指定了moduleFactory:IFlexModuleFactory,方法的注释说明为:调用者的 moduleFactory。moduleFactory 的一个用途是确定已加载模块的父样式管理器

    至此终于解决 该问题!

     

  • 相关阅读:
    JavaWeb学习笔记
    IDEA环境配置里的一些error
    python库之argparse
    Burpsuite模块—-Intruder模块详解
    Burpsuite使用指南
    kali学习wiki
    用Flask 实现文件服务器(包含docker版本)
    ubuntu Nginx+tomcat 部署web项目
    python测试开发工具库汇总(转载)
    屏幕截图小工具的制作过程问题记录 python PIL pynput pyautogui pyscreeze
  • 原文地址:https://www.cnblogs.com/myssh/p/1955202.html
Copyright © 2011-2022 走看看