flash/flex之UI模块组织,动态加载UI模块

1.

先在项目的src中添加一个文件夹

暂时取名叫Modules

如下图所示

 

2.

右键单击此文件夹

选择“新建”

选择“MXML模块”

弹出界面如图,并按下图填好内容,单击完成

按此方式多添加借个模块

其中一个模块的代码如下

<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009"
           xmlns:s="library://ns.adobe.com/flex/spark"
           xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" width="100%" height="100%">
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
    <mx:DateChooser x="10" y="7"/>
</mx:Module>

注意:顶级元素一定要是<mx:Module>

 

3.

右键单击项目

选择属性,选择flex模块

如图所示:

单击添加

把刚才做的几个模块全部添加进去

 

4.

修改默认包的默认mxml文件的代码

如下:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:Modules="Modules.*">

    <fx:Script>
        <![CDATA[
            protected function linkbutton1_clickHandler(event:MouseEvent):void
            {
                Loader.url = "Modules/module1.swf";
            }
            protected function linkbutton2_clickHandler(event:MouseEvent):void
            {
                Loader.url = "Modules/module2.swf";
            }
        ]]>
    </fx:Script>

    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
    <mx:Accordion x="8" y="8" width="146" height="98%">
        <s:NavigatorContent label="系统" width="100%" height="100%">
            <mx:LinkButton
                x="10" y="10"
                label="系统配置"
                width="124"
                click="linkbutton1_clickHandler(event)"
                color="Blue"
                textDecoration="underline" textAlign="left"/>
            <mx:LinkButton x="10" y="40"
                           label="数据库备份"
                           width="124" 
                           click="linkbutton2_clickHandler(event)"
                           color="#0000FF"
                           textDecoration="underline" textAlign="left"/>       
        </s:NavigatorContent>
        <s:NavigatorContent label="员工" width="100%" height="100%">
        </s:NavigatorContent>
        <s:NavigatorContent label="财务" width="100%" height="100%">
        </s:NavigatorContent>
        <s:NavigatorContent label="审批" width="100%" height="100%">
        </s:NavigatorContent>
    </mx:Accordion>
    <mx:ModuleLoader id="Loader" x="162" y="10" width="910" height="763">
    </mx:ModuleLoader>
</s:Application>

注意编码规范

一个对象的属性,一般一个属性站一行,但同类属性可在同一行,如width与height

 

5.

运行程序看看结果

时间: 2024-07-30 19:47:38

flash/flex之UI模块组织,动态加载UI模块的相关文章

seajs学习之模块的依赖加载及模块API的导出_Seajs

前言 SeaJS非常强大,SeaJS可以加载任意 JavaScript 模块和css模块样式,SeaJS会保证你在使用一个模块时,已经将所依赖的其他模块载入到脚本运行环境中. 通过参照上文的demo,我们结合源码分析在简单的API调用的背后,到底使用了什么技巧来实现各个模块的依赖加载以及模块API的导出. 模块类和状态类 首先定义了一个Module类,对应与一个模块 function Module(uri, deps) { this.uri = uri this.dependencies = d

嵌入式系统中的模块动态加载技术

摘要 提出一种适用于嵌入式系统的模块动态加载技术,设计实现简单,占用资源少,开销小,并且成功运用于DeltaOS.可提高系统的灵活性和扩属性.介招加载与动态链接的原理和应用情况,解释相关术语,描述基本设计思路:详细说明该技术的核心.即模块声明.调用库.两级重定位表,最后给出结论. 关键词 模块 动态加栽 嵌入式系统DeltaOS 引 言随着电子技术的飞速发展,嵌人式设备应用越来越广泛,复杂度也越来越高.这使得硬件和软件设计比例发生了很大变化,软件开发的比重越来越大.然而传统嵌入式开发过程中需要将

AngularJS动态加载模块和依赖的方法分析_AngularJS

本文实例讲述了AngularJS动态加载模块和依赖的方法.分享给大家供大家参考,具体如下: 前言 由于AngularJS是单页面应用框架,在正常的情况下,会在访问页面的时候将所有的CSS.JavaScript文件都加载进来.文件不多的时候,页面启动速度倒不会影响太多.但是一旦文件数太多或者加载的第三方库比较大的时候,就会影响页面启动速度.因此对于应用规模大.文件数比较多或者加载的第三方库比较大的时候,采用动态加载JS或者动态加载模块会极大提升页面的启动速度.本文将介绍如何利用ocLazyLoad

Winform开发框架之客户关系管理系统(CRM)的开发总结系列4-Tab控件页面的动态加载

在前面介绍的几篇关于CRM系统的开发随笔中,里面都整合了多个页面的功能,包括多文档界面,以及客户相关信息的页面展示,这个模块就是利用DevExpress控件的XtraTabPage控件的动态加载实现的,本篇文章主要介绍两种方式的动态加载,一个是对用户控件(UserControl)模块的动态加载,一个是对普通窗体(Form)的动态加载,通过这两种方式,我们有时候可以动态实现很丰富的界面效果. 1.用户控件(UserControl)模块在Tab控件中的动态加载 参考了很多CRM的系统,一般都是把CR

Winform开发客户关系管理系统(CRM)总结 4 Tab控件页面的动态加载

在前面介绍的几篇关于CRM系统的开发随笔中,里面都整合了多个页面的功能,包括多文档界面,以 及客户相关信息的页面展示,这个模块就是利用DevExpress控件的XtraTabPage控件的动态加载实现的, 本篇文章主要介绍两种方式的动态加载,一个是对用户控件(UserControl)模块的动态加载,一个是对 普通窗体(Form)的动态加载,通过这两种方式,我们有时候可以动态实现很丰富的界面效果. 1.用户控件(UserControl)模块在Tab控件中的动态加载 参考了很多CRM的系统,一般都是

javascript开发随笔二 动态加载js和文件_javascript技巧

这时候最好的做法就是按需引入,动态引入组件js和样式,文件load完成后调用callback,运行js.代码还是很简便的 1. 判断文件load完成.加载状态ie为onreadystatechange,其他为onload.onerror 复制代码 代码如下: if(isie){ Res.onreadystatechange = function(){ if(Res.readyState == 'complete' || Res.readyState == 'loaded'){ Res.onrea

JavaScript 模块的循环加载实现方法_javascript技巧

"循环加载"(circular dependency)指的是,a脚本的执行依赖b脚本,而b脚本的执行又依赖a脚本. // a.js var b = require('b'); // b.js var a = require('a'); 通常,"循环加载"表示存在强耦合,如果处理不好,还可能导致递归加载,使得程序无法执行,因此应该避免出现. 但是实际上,这是很难避免的,尤其是依赖关系复杂的大项目,很容易出现a依赖b,b依赖c,c又依赖a这样的情况.这意味着,模块加载机

JavaScript 模块的循环加载

"循环加载"(circular dependency)指的是,a脚本的执行依赖b脚本,而b脚本的执行又依赖a脚本. // a.js var b = require('b'); // b.js var a = require('a'); 通常,"循环加载"表示存在强耦合,如果处理不好,还可能导致递归加载,使得程序无法执行,因此应该避免出现. 但是实际上,这是很难避免的,尤其是依赖关系复杂的大项目,很容易出现a依赖b,b依赖c,c又依赖a这样的情况.这意味着,模块加载机

AngularJs 动态加载模块和依赖_AngularJS

最近项目比较忙额,白天要上班,晚上回来还需要做Angular知识点的ppt给同事,毕竟年底要辞职了,项目的后续开发还是需要有人接手的,所以就占用了晚上学习的时间.本来一直不打算写这些第三方插件的学习笔记,不过觉得按需加载模块并且成功使用这个确实是个好处,还是记录下来吧.基于本兽没怎么深入的使用requireJs,所以本兽不知道这个和requireJs有什么区别,也不能清晰的说明这到底算不算Angular的按需加载. 为了实现这篇学习笔记知识点的效果,我们需要用到: angular:https:/