外界与Flex Application的交互处理(之传递参数)
来源:互联网 发布:仓库管理数据流程图 编辑:程序博客网 时间:2024/05/21 10:36
在现实应用中,涉及到很多地方,外部页面需要与flex application进行参数或者数据的交互,甚至相互行为影响。今天先来看看外部页面传递参数给flex application。
但首先还得介绍一个swfobject的开源。swfobject使得在页面中嵌入flash文件更加容易简易。那种传统的<object id="xxx">之类的引入flash的方式,确实有很多弊端和不足。而swfobject则让你的页面处理更为简洁。具体就不介绍了,可参考 http://code.google.com/p/swfobject/ ,或中国参考手册:http://farthinker.cn/2007/12/27/swfobject-2_0-doc-translation 。
俺就是采用swfobject来引入flash,并传递参数的。一下是一个简单的例子:
view plaincopy to clipboardprint?
<mce:script. type="text/javascript" src="swfobject.js" mce_src="swfobject.js"></mce:script>
<mce:script. type="text/javascript"><!--
var flashvars = {
fetchProcessDefURL: "http://localhost:8080/ProcessContentServlet",
fetchProcessDefID: "<%=processDefID%>"
};
var params = {};
var attributes = {};
swfobject.embedSWF("flowdesigner.swf", "myContent", "100%", "100%", "9.0.0",
"expressInstall.swf",flashvars,params,attributes);
// --></mce:script>
<body>
<div id="myContent">
</div>
</body>
<mce:script. type="text/javascript" src="swfobject.js" mce_src="swfobject.js"></mce:script>
<mce:script. type="text/javascript"><!--
var flashvars = {
fetchProcessDefURL: "http://localhost:8080/ProcessContentServlet",
fetchProcessDefID: "<%=processDefID%>"
};
var params = {};
var attributes = {};
swfobject.embedSWF("flowdesigner.swf", "myContent", "100%", "100%", "9.0.0",
"expressInstall.swf",flashvars,params,attributes);
// --></mce:script>
<body>
<div id="myContent">
</div>
</body>
上面的代码,就是往 flowdesigner.swf 文件中传递了两个参数。这两个参数则可以在flex中application complete事件处理中被获取(加入你是希望在flash被加载的同时获取到)。
view plaincopy to clipboardprint?
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
applicationComplete="appComplete()">
<mx:Script>
<!--[CDATA[
public function appComplete():void{
var fetchProcessDefURL:String = this.loaderInfo.parameters.fetchProcessDefURL;
var fetchProcessDefID:String = this.loaderInfo.parameters.fetchProcessDefID;
//遍历所有参数
var keyStr:String;
var valueStr:String;
var paramObj:Object = this.loaderInfo.parameters;
var urlvarsData:String = "";
for (keyStr in paramObj) {
if(keyStr!="fetchProcessDefURL"){
valueStr = String(paramObj[keyStr]);
urlvarsData = "&"+keyStr+"="+valueStr+urlvarsData;
}
}
urlvarsData = urlvarsData.substr(1);
var params:URLVariables = new URLVariables(urlvarsData);
//fetchProcessDefinitionHttpService上一个http service请求
fetchProcessDefinitionHttpService.url=fetchProcessDefURL;
fetchProcessDefinitionHttpService.method="GET";
fetchProcessDefinitionHttpService.send(params);
}
]]-->
</mx:Script>
</mx:Application>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
applicationComplete="appComplete()">
<mx:Script>
<!--[CDATA[
public function appComplete():void{
var fetchProcessDefURL:String = this.loaderInfo.parameters.fetchProcessDefURL;
var fetchProcessDefID:String = this.loaderInfo.parameters.fetchProcessDefID;
//遍历所有参数
var keyStr:String;
var valueStr:String;
var paramObj:Object = this.loaderInfo.parameters;
var urlvarsData:String = "";
for (keyStr in paramObj) {
if(keyStr!="fetchProcessDefURL"){
valueStr = String(paramObj[keyStr]);
urlvarsData = "&"+keyStr+"="+valueStr+urlvarsData;
}
}
urlvarsData = urlvarsData.substr(1);
var params:URLVariables = new URLVariables(urlvarsData);
//fetchProcessDefinitionHttpService上一个http service请求
fetchProcessDefinitionHttpService.url=fetchProcessDefURL;
fetchProcessDefinitionHttpService.method="GET";
fetchProcessDefinitionHttpService.send(params);
}
]]-->
</mx:Script>
</mx:Application>
如上面代码所以,在ApplicationComplete事件处理方法中利用 loaderInfo.parameters来获取相应的参数。
在上面的例子中,会在application complete完成后,发送一个http service请求。有关http service的处理此处就不再累赘介绍了,外面的资料太多。
- 外界与Flex Application的交互处理(之传递参数)
- 外界与Flex Application的交互处理(之传递参数)
- 外界与Flex Application的交互处理(之传递参数)
- 外界与Flex Application的交互处理(之嵌入html)
- 外界与Flex Application的交互处理(之嵌入html)
- 外界与Flex Application的交互处理(之嵌入html)
- 外界与Flex Application的交互处理(之嵌入html)
- .NET与外界交互字符串的处理
- PB与外界的交互方式
- PowerBuilder与外界的交互方式
- PowerBuilder与外界的交互方式
- Flex和Red5的交互 及对象参数传递
- flex 学习笔记之 Application与子component交互的两个方法
- C++与C#交互的参数传递
- Java与Flex学习笔记(13)----Flex中解析地址栏传递的参数
- C#与C++交互之——参数传递
- cookie,request,session与application页面之间参数的传递
- java与flex交互时的乱码问题如何处理
- c++ windows api (-)
- linux常见命令的列表
- 排序算法
- stringstream的用法
- 从初始化文件谈Linux系统的Shell编程
- 外界与Flex Application的交互处理(之传递参数)
- windows+lighttpd+php+flash cs3搭建随意拖放视频网站(1)-lighttpd的搭建
- mysql 5.0存储过程学习总结
- rpm、tar.gz、tar.bz2三大软件包安装Linux下的软件&&安装包的解压
- Mac Application GDB Usage
- typedef用法小结
- GCC 编译动态库和静态库
- Struts2国际化
- GDB调试程序