`
jinyanhui2008
  • 浏览: 321046 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

flex ModuleLoader 问题【代码加载的时候可能会加载失败】

    博客分类:
  • Flex
阅读更多

大家在通过代码实现 flex ModuleLoader 的时候,可能会发现,即使你做了监听,仍然有时候会加载失败的,就像如下的监听:

// moduleLoader.addEventListener(ModuleEvent.READY, ready);
// moduleLoader.addEventListener(ModuleEvent.ERROR, error);
// moduleLoader.addEventListener(ModuleEvent.SETUP, setup);
// moduleLoader.addEventListener(ModuleEvent.UNLOAD, unload);

  
还是会经常时灵时不灵的的出现异常。

所以只能自己找别的方式来实现,最后我通过自己写“监听”方式实现的。

if(url != ""){
    var moduleLoader:ModuleLoader = new ModuleLoader();
    moduleLoader.url = url;
    canvas.addChild(moduleLoader);
    setTimeout(moduleLoaderSetTimeOut, 1000);
}

 

这段代码是判断加载的url地址不等于空,则执行加载操作。

canvas是我实现已经new好的一个空的,里面没数据。备用的,但是一定是要存在的。

我在类的开始 private var canvas:Canvas = new Canvas(); new了一下,并设置他的显示状态为false

private function moduleLoaderSetTimeOut():void{
var moduleLoader:ModuleLoader = canvas.getChildren()[0] as ModuleLoader;
if(moduleLoader.child != null){//在这里判断是否加载完成
   var canvsShow:ModuleExt = moduleLoader.child as ModuleExt;//moduleLoader..moduleFactory.create() as ModuleExt; //在这里得到了我加载完了最终想要的控件
   index.rightMain.addNewCanvas(canvsShow, null);//这里是我自己实现的方法,就是要将我的到的控件放到这里面
  canvas.removeAllChildren();//然后将canvas中的组件清空。
}else{
   setTimeout(moduleLoaderSetTimeOut, 10);//如果为空的话,继续调用moduleLoaderSetTimeOut方法,直到数据加载成功
}
}

 

通过简单的几行代码我们可以完美解决通过代码加载失败的情况了。

4
0
分享到:
评论

相关推荐

    flex中moduleLoader加载module时传递参数源代码

    在Flex开发中,`ModuleLoader` 是一个关键组件,它允许开发者动态地加载MX模块(即Flex模块,独立的SWF文件)。`ModuleLoader` 的主要功能是将模块的加载过程与应用程序的其余部分分离,这有助于实现代码的模块化和...

    flex一个动态添加卸载Module的例子

    这将卸载Module,释放其占用的资源,但请注意,这并不意味着Module的类将从内存中完全移除,因为Flex可能会缓存已加载的Module以提高性能。 3. **示例代码**: 在`main.mxml`中,可能包含一个按钮,点击后加载或...

    Flex从入门到实践——源代码(10章)

    源代码会展示如何设置和加载不同语言的资源文件,以适应全球用户。 通过深入研究这个压缩包中的10个章节源代码,你可以逐步掌握Flex开发的核心技术,并能够运用到实际项目中去。这不仅有助于理论知识的巩固,也有利...

    Flex中Module间的通讯和在Application中的切换

    在Flex中,模块(Module)是一种可重用的组件,可以被加载到主应用程序(Application)中,以实现代码的模块化和复用。 在Flex中,模块间的通信主要通过以下几种方式实现: 1. **事件监听**:模块可以通过发布...

    Flex 基于Module模块的开发资料完整版

    - **定义**:在 Flex 中,模块是实现了 `IFlexModuleFactory` 接口的 SWF 文件,可以在运行时动态加载和卸载,从而提供代码的动态加载能力。 - **原理**:Flex 应用程序由两种类型的 SWF 文件组成:Application...

    Flex之模块化

    博文链接指向的是作者nealmi在iteye上的博客文章,虽然具体内容无法直接展示,但通常这类博客会详细解释如何在Flex项目中设置和使用模块,包括创建模块文件、配置模块加载器、处理模块间的通信问题以及解决可能遇到...

    flex 模块化 modules文档

    1. **使用`ModuleLoader`**:`ModuleLoader`是Flex框架提供的用于加载模块的核心类。它可以异步加载SWF文件,并且提供了事件通知机制来跟踪加载进度。 2. **加载事件**:加载过程中会触发一系列事件,例如`...

    flex module ppt

    随着应用的发展,MXML和ActionScript代码会变得越来越庞大,导致启动时间延长。使用Flex Module,开发者可以将大型应用拆分为多个模块,这样在启动时仅加载必要的部分,从而改善了启动速度。此外,模块化也有助于...

    Flex模块化开发实例

    Flex提供了`mx.modules.ModuleLoader`组件,用于在运行时动态加载模块。可以通过设置`source`属性来指定要加载的模块URL,或者通过`loadModule`方法传递模块的标识符。 5. **模块生命周期**: - **初始化**:模块...

    Adobe Flex迷你教程 -- 合理使用Module分割项目以及对Module的使用

    在Flex项目中,Module是一种可重用的、可独立加载的代码单元,它可以被视为一个单独的应用程序部分,可以在需要时动态加载到主应用程序中。这种设计模式允许开发者将大型项目分解为更小、更易管理的部分,从而提高...

    flex 模块化modules源码例子

    3. **模块加载器**:`mx:ModuleLoader`组件是负责加载和卸载模块的核心组件。它可以设置属性如`source`来指定模块的URL,或者使用`moduleFactory`属性来指定自定义的模块工厂。 4. **模块生命周期**:Flex模块有其...

    flex module实例

    Flex模块(Flex Module...在ITEYE分享的这个实例中,开发者可能通过具体的代码示例和演示,详细展示了如何创建、加载、卸载模块以及如何在模块间传递信息。通过学习这个实例,开发者能够更好地理解和掌握Flex模块技术。

    Flex Module专题

    这个专题可能涵盖如何利用Flex模块化提升代码复用性、优化加载性能以及改善大型项目管理。 在Flex中,模块(Module)是一种可以独立加载和卸载的代码单元,它允许开发者将一个大的应用程序分解为多个小的、可管理的...

    Flex精通_66013.rar

    2. **Flex 3 Cookbook 中文版**:`Flex_3_Cookbook_中文版.pdf`是一本实践导向的指南,书中包含了大量解决实际问题的代码示例和技巧,涵盖了Flex 3中的组件使用、数据绑定、图表显示、布局管理等内容。通过这本书,...

    Flex晋级培训

    - **E4x应用**:E4x(ECMAScript for XML)是一种用于处理XML数据的JavaScript扩展,虽然不是直接与自定义组件相关,但在Flex中处理XML数据时可能会用到。 ### 总结 以上是对“Flex晋级培训”PPT内容的一个详细...

    flex页面跳转及数据绑定

    5. **ModuleLoader**:ModuleLoader可以加载并显示不同的Module模块,通过加载不同模块来实现页面跳转。这种方式适用于大型项目,可以提高应用的加载速度。 接下来,我们讨论Flex的数据绑定。数据绑定是Flex中一种...

    Flex 模块化应用程序开发

    2. **模块加载器**:`mx:ModuleLoader`标签是Flex中用来加载和显示模块的主要容器。在这个例子中,我们创建了一个名为`currentModule`的`ModuleLoader`实例,并为其添加了`ready`事件处理器`readyModule`。 - `...

    modular

    3. **导入模块**: 在主应用程序中,通过`<mx:ModuleLoader>`组件来引用和加载模块。可以指定模块的URL,或者在本地文件系统中引用模块SWF。 4. **通信与协作**: 主应用程序和模块之间可以通过事件、公开接口或...

Global site tag (gtag.js) - Google Analytics