学院首页 新闻频道 学院概况 网络学院 院系设置 师资介绍 教学成果 招生就业 实践基地 校园文化 视频 论坛
  ◎    网络学院首页
  ◎    影视动画
  ◎    动漫设计
  ◎    影视广告
  ◎    视觉传达
  ◎    环境艺术
  ◎    人物形象
  ◎    电脑艺术
  ◎    电视摄像
  ◎    电视制作
  ◎    多媒体
  ◎    摄影专业
  ◎    播音主持
  ◎    影视表演
  ◎    新闻采编
  ◎    编导专业
  ◎    电视网络
  ◎    电视制片
  ◎    师生交流
  ◎    意见采纳
  ◎    我要投稿
 
 
    您认为网络学院那些栏目仍然需要加强?
专业新闻
理念论文
软件教程
作品赏析
专业资源

  
    您最想了解哪一类型的专业知识?
理念文献
软件教程
素材资源
作品赏析

  



让Flex像Flash那样传递参数
作者:ai829    文章来源:闪客帝国    点击数:    更新时间:2006-9-28

 

众所周知,在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。

文章录入:雷建威    责任编辑:雷建威 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
      相 关 文 章
    《特洛伊》:电脑特技登峰造极
    2006上半年好莱坞动画总结及下半年展望
    沉睡多年的德国动画
    美国:从1900年的第一部动画开始
    NFB:世界电影人向往的圣地
    萨格勒布的学派精神
    重视学术研究 促进动画繁荣
    美术和CG的关系
    国产动画能否撑起“黄金档”?
    以产品开发为中心,国产动漫业密谋突围之策
     
    最新热门图片  

    动漫角色欣赏 1

    动漫角色欣赏2

    从蚝油·邪神·时弊看…

    动漫产业丰满产业链是…
    最 新 热 门
    最 新 推 荐
    关于我们 广告服务 法律声明 联系方式 常见问题 中国生活网 留言 论坛 帮助
    广播电影电视管理干部学院版权所有 Copyright 2001-2006 ARFT.net All Rights Reserved
    感谢动易网络科技有限公司友情提供技术支持,山西艺龙影视信息中心(有限公司)运营