Flash与html及服务器的通信

flash与html及服务器的通信 <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 前一段时间有机会接触到 flash编程,学习了一些方法,在次记录以备后用:) 1.html与 flash通信 html要将自己的参数传给 flash内部,我目前知道只有一次机会,也就是 flash播放器加载的时候传入。传入的方法有2种: 1>直接url拼接。也就是模拟get传参。
Html代码 
  1. <object  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="750" height="656">  
  2.  <param name="movie" value='/test/test.swf?param1=mushui&param2=mushui2'>  
  3.  <param name="quality" value="high">  
  4.   <param name="allowScriptAccess" value="sameDomain" />  
  5.  <embed src='/test/test.swf?param1=mushui&param2=mushui2' type="application/x-shockwave-flash"  
  6.   quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" width="750" height="656"></embed>  
  7. </object>  
 <object  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="750" height="656">   <param name="movie" value='/test/test.swf?param1=mushui&param2=mushui2'>   <param name="quality" value="high">    <param name="allowScriptAccess" value="sameDomain" />   <embed src='/test/test.swf?param1=mushui&param2=mushui2' type="application/x-shockwave-flash"    quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" width="750" height="656"></embed>  </object>
在写swf文件地址的时候,在后面拼接参数值对。 在 flash文件中要获得html传入的参数,可以直接用_root.param1和_root.param2获得。想一想应该是_root对象就想js中的window对象是一个全局对象,外部通过播放器传入的参数就是直接放入_root作用域下。 2>通过 FlashVars参数传入 在上面的<object>标签中加入
Html代码 复制代码
  1. <param name="FlashVars" value="param1=mushui&param2=mushui2"/>  
<param name="FlashVars" value="param1=mushui&param2=mushui2"/> 
这种方法应该是模拟了上边的方法, flash获取参数与上边相同 2. flash 与服务器通讯 1>LoadVars类 当只是向服务器发送消息不获得反馈可以用loadVar.send(url,target,[method]):Boolean; 参数介绍:url:请求的地址
 target:[_blank;_top;_self;_parent]
    method:[post|get] 
例如:
var my_lv:LoadVars = new LoadVars();
my_lv.playerName = playerName_txt.text;
my_lv.playerScore = playerScore_txt.text;
my_lv.send("setscore.cfm", "_blank", "POST");

如果要获得返回信息,可以用loadVar.sendAndLoad(url,resutlObject,[method])方法。 参数介绍:url:同上 resultObject:也必须是一个LoadVars对象获得服务器返回的参数。作为容器,通常我们传入发送请求的loadVars对象,用自己作为容器。 服务器返回的参数也是以值对的方式返回。例如:key=value1&key2=value2...的形式。获得返回参数必须要在 loadVar的回调函数onLoad里获得,表明从服务器返回了。在onLoad 的方法里,如果传入发出请求的对象,也就是自己,可以通过this.key获得服务器返回的参数。否则用resultObject对象获得返回的参数。 例如:
var submitListener:Object = new Object();
submitListener.click = function(evt:Object) {
    var result_lv:LoadVars = new LoadVars();
    result_lv.onLoad = function(success:Boolean) {
    if (success) {
        result_ta.text = result_lv.welcomeMessage;
    } else {
        result_ta.text = "Error connecting to server.";
    }
    };
    var send_lv:LoadVars = new LoadVars();
    send_lv.name = name_ti.text;
    send_lv.sendAndLoad("http://www.flash-mx.com/mm/greeting.cfm", result_lv, "POST");
};
submit_button.addEventListener("click", submitListener);

2>XML对象 上面的对象,返回少量数据或文本数据可以,但是要返回大量数据,用xml对象比较适合。它返回的是一个dom对象。在 flash中解析获得数据。 它也有,xml.send()和xml.sendAndLoad(url,XML对象)方法,和上边一样。同样需要在onLoad回调方法里解析dom树。 例子: 1. var my_xml:XML = new XML("<highscore><name>Ernie</name><score>13045</score></highscore>"); my_xml.contentType = "text/xml"; my_xml.send("http://www. flash-mx.com/mm/highscore.cfm", "_blank"); 2. var login_str:String = "<login username=/""+username_txt.text+"/" password=/""+password_txt.text+"/" />"; var my_xml:XML = new XML(login_str); var myLoginReply_xml:XML = new XML(); myLoginReply_xml.ignoreWhite = true; myLoginReply_xml.onLoad = myOnLoad; my_xml.sendAndLoad("http://www. flash-mx.com/mm/login_xml.cfm", myLoginReply_xml); function myOnLoad(success:Boolean) { if (success) { if ((myLoginReply_xml.firstChild.nodeName == "packet") && (myLoginReply_xml.firstChild.attributes.success == "true")) { gotoAndStop("loggedIn"); } else { gotoAndStop("loginFailed"); } } else { gotoAndStop("connectionFailed"); } }
<script type="text/JavaScript"> alimama_pid="mm_10809884_1047205_2647574"; alimama_titlecolor="0000FF"; alimama_descolor ="000000"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="E6E6E6"; alimama_linkcolor="008000"; alimama_bottomcolor="FFFFFF"; alimama_anglesize="8"; alimama_bgpic="7"; alimama_icon="0"; alimama_sizecode="16"; alimama_width=658; alimama_height=60; alimama_type=2; </script> <script src="http://a.alimama.cn/inf.js" type=text/javascript> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值