`
lzth
  • 浏览: 142768 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex 使用module 父子窗口传值 .

阅读更多
[flash=200,200]
一、module

1 overview

module是可以由application加载和卸载的swf文件。通过将application分解成若干个module,可以减小application文件的大小,并减少首次加载的时间。module不能独立于application运行,也不能加载到浏览器窗口,只能通过application加载

2 write

可以通过AS代码或MXML标签定义module

MXML方式:

<?xml version="1.0"?>
<!-- modules/moduletest.mxml -->
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" >
<mx:Label text="Module Test"/>
</mx:Module>

AS方式:必须继承mx.modules.ModuleBase或mx.modules.Module

// modules/asmodules/SimpleModule.as
package {
    import mx.modules.ModuleBase;

    public class SimpleModule extends ModuleBase {
        public function SimpleModule() {
            trace("SimpleModule created");
        }
   
        public function computeAnswer(a:Number, b:Number):Number {
            return a + b;
        }
    }
}

3 compile

可使用命令行mxmlc编译模块。

module的大小依赖于它所包含的组件和类,如果module链接了与application类重叠的类则module会比较大,要减小module的大小,需要把module指向由application包含的具体类。module只包含它需要的类,框架代码及其他依赖代码包含在application中。若用命令行编译,需要为application创建一个linker report,并把这个report放入module的编译选项中

mxmlc: -link-report=report.xml MyApplication.mxml

mxmlc: -load-extern=report.xml MyModule.mxml

4 load

<?xml version="1.0"?>
<!-- modules/ASModuleLoaderApp.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
        <![CDATA[
        import mx.modules.*;

        public function createModule(m:ModuleLoader, s:String):void {
            if (!m.url) {
                m.url = s;
                return;
            }
            m.loadModule();
        }
       
        public function removeModule(m:ModuleLoader):void {
            m.unloadModule();
        }
        ]]>
    </mx:Script>

    <mx:Panel title="Module Example" >
            <mx:VBox id="vb1" label="Column Chart Module">               
                <mx:Button   label="Load"     click="createModule(chartModuleLoader, l1.text)" />
                <mx:Button   label="Unload"  click="removeModule(chartModuleLoader)" />
                <mx:Label id="l1" text="Module1.swf"/>
                <mx:ModuleLoader id="chartModuleLoader"/>                               
            </mx:VBox>
    </mx:Panel>
</mx:Application>



二:窗口传值

子窗口定义

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="296" height="379">
  <mx:Script>
  <![CDATA[
 
   [Bindable]
   public var functionXml:XML;                 //定义子窗口属性

  ]]>
</mx:Script>
</mx:Application>

父窗口定义

import mx.managers.PopUpManager;



private function openFunc(event:MouseEvent):void
{        
    var child:ChildWindow= ChildWindow(PopUpManager.createPopUp(this,ChildWindow,true));

    child.functionXml = XML({xmlData});        //为子窗口传值
   }




[/flash]

<?xml version="1.0"?>
<!-- modules/URLModuleLoaderApp.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
viewSourceURL="srcview/index.html">

<mx:Panel title="Module Example"
  height="90%"
  width="90%"
  paddingTop="10"
  paddingLeft="10"
  paddingRight="10"
  paddingBottom="10">

<mx:Label width="100%"
  color="blue"
  text="Select the tabs to change the panel."/>

<mx:TabNavigator id="tn"
width="100%"
height="100%"
creationPolicy="auto">

<mx:VBox id="vb1"
label="Column Chart Module">

<mx:Label id="l1"
  text="ColumnChartModule.swf"/>
<mx:ModuleLoader url="ColumnChartModule.swf"/>

</mx:VBox>

<mx:VBox id="vb2"
label="Pie Chart Module">

<mx:Label id="l2"
  text="piehchartmodule.swf"/>
<mx:ModuleLoader url="piechartmodule.swf"/>

</mx:VBox>

<mx:VBox id="vb3"
label="Line Chart Module">

<mx:Label id="l3"
  text="linehchartmodule.swf"/>
<mx:ModuleLoader url="linechartmodule.swf"/>

</mx:VBox>

</mx:TabNavigator>
</mx:Panel>

</mx:Application>






linechartmodule.mxml


<?xml version="1.0"?>
<!--ColumnChartModule.mxml -->
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml"
   width="100%"
   height="100%">

<mx:Script>
<![CDATA[

import mx.collections.ArrayCollection;
[Bindable]
public var expenses:ArrayCollection=new ArrayCollection([

{Month: "Jan", Profit: 2000, Expenses: 1500},
{Month: "Feb", Profit: 1000, Expenses: 200},
{Month: "Mar", Profit: 1500, Expenses: 500}]);

]]>
</mx:Script>

<mx:ColumnChart id="myChart"
dataProvider="{expenses}">

<mx:horizontalAxis>

<mx:CategoryAxis dataProvider="{expenses}"
categoryField="Month"/>

</mx:horizontalAxis>

<mx:series>

<mx:ColumnSeries xField="Month"
yField="Profit"
displayName="Profit"/>

<mx:ColumnSeries xField="Month"
yField="Expenses"
displayName="Expenses"/>

</mx:series>

</mx:ColumnChart>

<mx:Legend dataProvider="{myChart}"/>

</mx:Module>
分享到:
评论

相关推荐

    org.springframework.flex-1.0.3.RELEASE.jar.zip

    org.springframework.flex-1.0.3.RELEASE.jar.zip用于JAR包,org.springframework.flex-1.0.3.RELEASE.jar.zip用于JAR包org.springframework.flex-1.0.3.RELEASE.jar.zip用于JAR包org.springframework.flex-1.0.3....

    FlexModule_j2ee Flex 与JSP 整合用的.jar 文件

    在提供的压缩包文件中,readme.txt可能包含了关于如何使用FlexModule_j2ee的详细说明,包括安装步骤、配置指导以及示例代码。而webtier.war文件则可能是一个已经打包好的Web应用,展示了FlexModule_j2ee的使用示例...

    flex-2.5.4a.tar.gz

    这可能是描述中提到的,为何在安装Wireshark时需要使用Flex的原因。 在Flex-2.5.4子目录中,用户通常会找到以下文件和目录: 1. `README`:包含了关于如何编译、安装和使用Flex的说明。 2. `configure`:一个脚本...

    flex-2.6.4.tar.gz

    2. **主程序**:主程序文件,如`flex.c`和`flex.h`,这些文件用于构建Flex词法分析器生成器本身。 3. **配置脚本**:如`configure`,这是一个自动化脚本,用于检测系统环境并创建合适的Makefile来编译Flex。 4. *...

    flex-2.5.4a-29.i386 flex-2.5.4a-29.i386.rpm

    1. **执行文件**:在这里是生成的Flex词法分析器可执行文件,可能命名为`flex`或`flex.exe`。 2. **库文件**:Flex可能依赖的一些库文件,例如`libfl.so`,它们在运行时提供必要的功能支持。 3. **配置文件**:如`/...

    flex-2.5.37.tar.gz

    使用Flex时,你需要创建一个输入文件(如`lexer.l`),在这个文件中定义规则,每个规则描述了一种特定的文本模式及其对应的处理方式。例如,你可以定义一个规则来匹配数字,并将它们转化为整数标记: ```flex %{ #...

    [Flex.3权威指南].(美)塔伯.扫描版.part02

    [Flex.3权威指南].(美)塔伯.扫描版.part02 [Flex.3权威指南].(美)塔伯.扫描版.part02 [Flex.3权威指南].(美)塔伯.扫描版.part02

    flex-2.6.0.tar.gz

    1. `flex.c` 和 `flex.h`:这是Flex生成器的主要源代码和头文件。 2. `l lex.yy.c`:由flex工具根据用户定义的lex规则文件(如`flex.l`)生成的C源代码,包含了词法分析器的核心逻辑。 3. `Makefile`:编译和构建...

    flex3需要用到的flex.war即是lcds.war,现提供下载!

    flex3需要用到的flex.war即是lcds.war,现提供下载! flex.war=lcds.war 此版本为Adobe® LiveCycle® Data Services ES Version 2.6.1

    使用flex布局的前端静态网页.zip

    使用flex布局的前端静态网页.zip使用flex布局的前端静态网页.zip使用flex布局的前端静态网页.zip使用flex布局的前端静态网页.zip使用flex布局的前端静态网页.zip

    FlexModule_j2ee.zip

    FlexModule_j2ee.zip是一个压缩包,包含了将Flex前端技术集成到JSP(JavaServer Pages)和J2EE(Java 2 Platform, Enterprise Edition)后端环境中的示例工程。这个项目旨在展示如何在传统的Web应用中嵌入富互联网...

    FlexModule_j2ee.part1

    the Flex 3 compiler module for J2EE application servers.

    flex-2.6.0.tar.bz2

    flex-2.6.0.tar.bz2

    flexbuild-lsdk2108.tgz LSDK部署包

    flexbuild_lsdk2108.tgz LSDK,解压后执行source setup.env && flex-builder -m ls1043ardb -a arm64下自动下载完整的LSDK。

    flex-2.5.39.tar.gz

    "flex"是这个包的核心组件,它是一个开源工具,用于生成词法分析器(lexer),通常在编译器构造、解析器开发或者处理结构化文本输入时使用。版本号"2.5.39"表示这是flex工具的一个具体发行版,意味着它可能包含了该...

    FlexModule_j2ee Flex JAVA

    不要以为我要5分很高,这个绝对是官网资源,其中包含各位最一直在寻找却找不到即使找到也不好用的 flex-bootstrap-jsp.jar flex-bootstrap.jar flex-webtier-jsp.jar flex-webtier.jar

    微信小程序 - FlexLayout布局源码.zip

    微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip 微信小程序 - FlexLayout布局【源码】.zip ...

    Flex3.Style.Explorer.V3.0

    Flex3.Style.Explorer.V3.0 是一个专为FLEX开发者设计的强大工具,它使得创建和管理CSS(Cascading Style Sheets)样式变得更加直观和高效。在Flex开发中,CSS样式的应用对于构建用户界面的外观和交互性起着至关重要...

    Flex通过servlet连接数据库access.rar

    Flex通过servlet连接数据库access.rar Flex通过servlet连接数据库access.rar Flex通过servlet连接数据库access.rar Flex通过servlet连接数据库access.rar

    Flex3.Style.Explorer.V3.0.Beta

    Flex3.Style.Explorer.V3.0.Beta 是一个专门针对Adobe Flex 3的样式探索工具,它允许开发者和设计师深入地了解和实验Flex 3框架中的CSS(Cascading Style Sheets)样式应用。这个工具的Beta版本提供了对SWF(Small ...

Global site tag (gtag.js) - Google Analytics