FLASH下载

设为首页
繁體中文
闪客留言

 首页 | FLASH动画 | FLASH专辑 | FLASH短片 | FLASH游戏 | FLASH歌曲 | FLASH教程 | Flash播放器代码
您当前的位置:flash下载 -> FLASH教程 -> FLASH技巧 -> 文章内容  
栏目导航 相关文章
· FLASH基础 · FLASH实例教程
· FLASH技巧 · AS教程


让Flex像Flash那样传递参数

作者:转载  来源:[闪客]  发布时间:2006-5-22 21:18:32  编辑人:[FLASH教程]

减小字体 增大字体


  众所周知,在Flash中是这样传递参数的:

代码:

var myloadvars:LoadVars = new LoadVars();
myloadvars.load("test3.jsp");
myloadvars.onLoad = function(success){
if (success){
var a:String = this.myVars;
trace(a);
}
}

  在Flex中比较常见的都是用WEBService,HTTPServive等来和后台进行数据通信的,通常是用XML做为通讯介质的,但有时候,在数据量不大,对结构化要求不高是,我们依然希望采用在Flash中比较熟悉的LoadVars,下面介绍如何让Flex像Flash那样传递参数:

  首先,我们要有个输出参数的Jsp

test3.jsp:
代码:

<%@ page contentType="text/html;charset=utf-8"%>
<%
out.println("&myVars=ai829");
%>

  其次,在mxml里有两种方式实现像Flash那样通讯

  第一种方法就是用LoadVars:

LoadVars.mxml:
代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" initialize="initApp();">

<mx:Script>
<![CDATA[
import mx.utils.*;

function initApp(){
var myloadvars:LoadVars = new LoadVars();
myloadvars.load("test3.jsp");
myloadvars.onLoad = function(success){
if (success){
var a:String = this.myVars;
alert(a);
}
}
}
]]>
</mx:Script>
</mx:Application>

以上是老方法,就不多说了,况且很不安全.

第二种方法就是用HTTPService,一般在用HTTPService时resultFormat默认是XML,现在我们要把它改成flashvars.
这样我们就像Flash那样传递参数,又可以用Flex的whitelist来保证安全,一举两得!

flashvars.mxml
代码:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" initialize="initApp();">

<mx:HTTPService id="hs_01" url="test3.jsp" showBusyCursor="true" result="onLoad();" resultFormat="flashvars"/>

<mx:Script>
<![CDATA[
import mx.utils.*;

function initApp(){
/*var myloadvars:LoadVars = new LoadVars();
myloadvars.load("test3.jsp");
myloadvars.onLoad = function(success){
if (success){
var a:String = this.myVars;
alert(a);
}
}*/
hs_01.send();

}
function onLoad(Void):Void{

var a:String = hs_01.result.myVars;
alert(a);
txt.text=hs_01.result.myVars;
}
]]>
</mx:Script>
<mx:TextInput id="txt" />
</mx:Application>

  注意在接收数据时一定要把接收数据的function放到result里,这样才能正常工作.result就相当于LoadVars 里的那个onLoad method。

[] [返回上一页] [打 印]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [查看评论>>>]