-
关于我
-
跟随我
-
订阅我
-
关注一下
-
最新文章
- [02/13][日记]春节快乐心想事成
- [01/28][Flex]Adobe软件在电影阿凡达中的应用
- [12/30][排名]TIOBE程式語言最新排名-2009年12月版
- [12/30][日记]2009年终岁尾的一些感想
- [12/30][讲座]艾睿网12月份Cmax北京的演讲稿
- [11/28][日记]佛山、广州之行
- [11/21][Acrobat]Acrobat.com改版(包括Mobile版本)
- [11/19][AIR]基于AIR 2.0 的几点猜测
- [11/19][Silverlight]Silverlight 4 beta released!
- [11/18]Flash Player 10.1 and AIR 2.0 消息汇总
[Flex]在Flex中传递参数
友情提示:
由于Flex已经更新到3.0版本,所以本文所写的内容只对Flex1.5有效,在Flex1.5以上的版本中均不好使!
关于Flex2.0及其以上的内容请看这里:http://www.k-zone.cn/zblog/catalog.asp?tags=Flex2&page=1
以前的内容:
有很多朋友都问如何在Flex中的2个"窗体"(以下我也这么称呼)之间进行调用和传递参数
下面我就给大家讲解一下:
1. 调用窗体
A 窗体是一个applicaton窗体 B 窗体是自定义窗体(类似Dialog之类的窗体,本身并不能独立运行)
A 窗体 片断代码如下:
<mx:Script>
<![CDATA[
import mx.containers.TitleWindow;
import mx.managers.PopUpManager;
function ShowDetailDialog(){
var oInitObj:Object = new Object();
oInitObj.title = "FX-Blog Details";
oInitObj.width = 400;
oInitObj.height = 480;
oInitObj.x = 350;
oInitObj.mainApp = this;
oInitObj.strDetailTitle = "aaa";
oInitObj.strDetailDetails = "bbb";
var DetailsDialogInstance:Object = TitleWindow(PopUpManager.createPopUp(_root, B, true, oInitObj, false))
}
]]>
</mx:Script>
<mx:Button label="Click" click="ShowDetailDialog()" width="61"/>
B 窗体 片断代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.macromedia.com/2003/mxml"
closeButton="true"
click="this.deletePopUp();"
alpha="50" initialize="initComponent()">
<mx:Script>
<![CDATA[
public var mainApp:index = null;
public var strDetailTitle:String;
public var strDetailDetails:String;
}
]]>
</mx:Script>
<mx:TextArea" text="{strDetailTitle}" editable="false" width="100%" alpha="0" height="240" vScrollPolicy="auto"/>
<mx:TextArea" text="{strDetailDetails}" editable="false" width="100%" alpha="0" height="240" vScrollPolicy="auto"/>
</mx:TitleWindow>
以上,当在A窗体点击button的时候,触发Click event然后调用ShowDetailDialog这个function,在这个function中红色的字体是必须要注意的,其中strDetailTitle和strDetailDetails这个两个变量就是要传递参数的变量和B窗体中的strDetailTitle和strDetailDetails必须一致,否则在Flex中不认哦。这样当点击button后,就会调用B窗体并且把strDetailTitle和strDetailDetails传递到B窗体的textArea中了
其中
var DetailsDialogInstance:Object = TitleWindow(PopUpManager.createPopUp(_root, B, true, oInitObj, false)
这行代码中的B一定要和A在同一个文件夹中,并且名字和和B的外部名称一致,否则也会失败的!
由于Flex已经更新到3.0版本,所以本文所写的内容只对Flex1.5有效,在Flex1.5以上的版本中均不好使!
关于Flex2.0及其以上的内容请看这里:http://www.k-zone.cn/zblog/catalog.asp?tags=Flex2&page=1
以前的内容:
有很多朋友都问如何在Flex中的2个"窗体"(以下我也这么称呼)之间进行调用和传递参数
下面我就给大家讲解一下:
1. 调用窗体
A 窗体是一个applicaton窗体 B 窗体是自定义窗体(类似Dialog之类的窗体,本身并不能独立运行)
A 窗体 片断代码如下:
<mx:Script>
<![CDATA[
import mx.containers.TitleWindow;
import mx.managers.PopUpManager;
function ShowDetailDialog(){
var oInitObj:Object = new Object();
oInitObj.title = "FX-Blog Details";
oInitObj.width = 400;
oInitObj.height = 480;
oInitObj.x = 350;
oInitObj.mainApp = this;
oInitObj.strDetailTitle = "aaa";
oInitObj.strDetailDetails = "bbb";
var DetailsDialogInstance:Object = TitleWindow(PopUpManager.createPopUp(_root, B, true, oInitObj, false))
}
]]>
</mx:Script>
<mx:Button label="Click" click="ShowDetailDialog()" width="61"/>
B 窗体 片断代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.macromedia.com/2003/mxml"
closeButton="true"
click="this.deletePopUp();"
alpha="50" initialize="initComponent()">
<mx:Script>
<![CDATA[
public var mainApp:index = null;
public var strDetailTitle:String;
public var strDetailDetails:String;
}
]]>
</mx:Script>
<mx:TextArea" text="{strDetailTitle}" editable="false" width="100%" alpha="0" height="240" vScrollPolicy="auto"/>
<mx:TextArea" text="{strDetailDetails}" editable="false" width="100%" alpha="0" height="240" vScrollPolicy="auto"/>
</mx:TitleWindow>
以上,当在A窗体点击button的时候,触发Click event然后调用ShowDetailDialog这个function,在这个function中红色的字体是必须要注意的,其中strDetailTitle和strDetailDetails这个两个变量就是要传递参数的变量和B窗体中的strDetailTitle和strDetailDetails必须一致,否则在Flex中不认哦。这样当点击button后,就会调用B窗体并且把strDetailTitle和strDetailDetails传递到B窗体的textArea中了
其中
var DetailsDialogInstance:Object = TitleWindow(PopUpManager.createPopUp(_root, B, true, oInitObj, false)
这行代码中的B一定要和A在同一个文件夹中,并且名字和和B的外部名称一致,否则也会失败的!


