`

Flex ModuleLoader向Module(模块)传递参数实例

    博客分类:
  • Flex
阅读更多

参考: http://www.myflexhero.com/share/flex-hero-flex4/flex-hero-components/flex-module/278  

 

开发中我们一般会用到Module,有时候我们在调用该Module后需要向其传递参数。传递参数的方式很多,比如使用事件的方式。

            这里我使用ModuleLoader提供的特征进行传递参数使用示例。代码写的还算简单,我相信你能看明白。

关于在模块中获取url中的参数,请参见Flex loaderInfo swf模块获取url传递的参数一文。

(你可以点击这里(Click here to see the effect in new window)新开窗口查看效果,点击这里(View Source)查看源码):

[点击按钮后请稍候片刻,经测试需要一定时间下载该模块,且界面没有提示(因为我没有添加加载提示,加载提示效果请查看Flex ModuleLoader和ModuleManager的区别、ModuleManager加载模块实例一文)。]

 

 

 主文件源码
<?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"
viewSourceURL="srcview/index.html">
<fx:Script>
<![CDATA[
import com.myflexhero.MyFlexHeroTest;

import mx.events.ModuleEvent;
import mx.modules.ModuleLoader;

protected function clickEvent(event:Event):void
{
var general:ModuleLoader = new ModuleLoader();
general.url="com/myflexhero/MyFlexHeroTest.swf";
general.addEventListener(ModuleEvent.READY,readyModule);
addElement(general);
}

private function readyModule(event:ModuleEvent):void{
var ml:ModuleLoader=event.target as ModuleLoader;
//这里的MyFlexHeroTest则是MyFlexHeroTest.swf对应的mxml类
//如果你选择下载源码,我测试时写的是Share.swf。
var ichild:MyFlexHeroTest = ml.child as MyFlexHeroTest;
if(ichild){
ichild.loginName = "MyFlexHero,Welcome!";
}
}

]]>
</fx:Script>
<s:Button label="点击传入" click="clickEvent(event)"/>


</s:Application>

 

 

副文件 MyFlexHeroTest源码

 

<?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="400" height="300" creationComplete="module1_creationCompleteHandler(event)">
	<fx:Declarations>
		<!-- 将非可视元素(例如服务、值对象)放在此处 -->
	</fx:Declarations>
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import mx.events.FlexEvent;
			public var loginName:String;
 
 
			protected function module1_creationCompleteHandler(event:FlexEvent):void
			{
				Alert.show("传入的参数:"+loginName);
			}
 
		]]>
	</fx:Script>
</mx:Module>
 

 

分享到:
评论

相关推荐

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

    总结来说,Flex的`ModuleLoader`是动态加载模块的强大工具,而通过`ModuleInfo`传递参数则使模块间的数据交互变得更加灵活。理解这一机制对于创建可扩展、可维护的Flex应用至关重要。在实际开发中,合理利用这些特性...

    Flex模块化开发实例

    使用Flex Builder或Adobe Animate CC等工具,可以通过创建新的Module项目来生成模块。在模块项目中,我们可以编写组件、服务和业务逻辑代码。 4. **模块加载**: Flex提供了`mx.modules.ModuleLoader`组件,用于...

    flex module实例

    Flex模块(Flex Module)是Adobe Flex框架中的一个重要概念,它允许开发者将大型应用程序分解为多个独立的、可重用的组件,这些组件被称为模块。在Flex应用中,模块可以按需加载,从而优化应用程序的启动时间和内存...

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

    1. **事件监听**:模块可以通过发布自定义事件或使用内置事件(如FlexEvent.MODULE_LOAD)来传递信息。主应用程序或其他模块可以通过添加事件监听器来接收这些事件并处理。 2. **接口**:模块可以实现一个或多个...

    cairngorm3 module的学习

    `cairngorm3ModuleTest`这个文件很可能是包含一个或多个Cairngorm 3模块的测试项目。这个项目可能包括了模块的实现、命令类、视图组件、模型对象以及相关的事件和代理。通过分析和运行这个示例,你可以更直观地了解...

Global site tag (gtag.js) - Google Analytics