·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

如何实现Flash与asp/php/.net的通信(2)

时间:2011-06-25 16:38blueidea.com
二、使用LoadVars loadVariables提供了一种简单的方法让我们可以从服务器端的ASP或者PHP页面载入变量,除了使用GET方法,它还可以使用POST方法将客户端提交的数据传递给服务器。然而在处理大量客户端与服务器端交互

二、使用LoadVars
loadVariables提供了一种简单的方法让我们可以从服务器端的ASP或者PHP页面载入变量,除了使用GET方法,它还可以使用POST方法将客户端提交的数据传递给服务器。然而在处理大量客户端与服务器端交互的信息时,使用过多的loadVariables语句会让整个程序的维护性和可读性变得复杂。在Flash MX的Action中,新增加了一个LoadVars的对象,并将它和XML,XMLSocket对象一起归纳于Client/Server对象之下。LoadVars 对象是 loadVariables 动作的替代方法,它能够提供一种更好的结构向服务器发送和返回信息。一个典型的LoadVars对象使用的例子如下:
 

  1. //构造一个新的LoadVars对象  
  2. myload = new LoadVars();  
  3. //设定myload的动作,以便服务器验证  
  4. myload.action = "post";  
  5. //验证和服务器连接的函数  
  6. myload.onLoad = function(success) {  
  7. //如果和服务器成功连接则…  
  8. if (success) {  
  9. //如果验证动作成功则…  
  10. if (this.conn == "1") {  
  11. //将返回对象中的output变量赋值给场景中var为output的Dynamic Text框  
  12. _root.output = this.output;  
  13. }  
  14. } else {  
  15. //如果和服务器连接不成功则返回失败消息,需要检查路径是否正确  
  16. _root.output = "Can't connect to Server";  
  17. }  
  18. };  
  19. //Dynamic Text的初始值为一个等待消息  
  20. _root.output = "Waiting for response...";  
  21. //将myload下的变量发送到服务器端,并将服务器返回的数据结果放在myload对象中  
  22. myload.sendAndLoad("http://localhost/test/return.asp", myload, "post");  
  23. //myload.sendAndLoad("http://localhost:8001/test/return.php",myload, "post");  

在场景中以一个var名为output的Dynamic Text框来接受来自服务器的消息。使用LoadVars,我们可以利用sendAndLoad方法将一个LoadVars的实体下的所有变量发送出去,并将服务器返回的数据结果存储到一个目标对象中,其中conn,output都是从服务器发送回来的,我们还利用了其onLoad事件函数来检验其是否将信息发送到了服务器页面,再利用从服务器传回来的数据(this.conn)来验证信息是否正确。服务器页面的代码如下:
ASP return.asp:

  1. <%@ Language="JScript" %>   
  2. <%   
  3. var str_Msg;   
  4. var action;   
  5. var conn;   
  6. action = Request.Form("action");   
  7. if (action == "post"){   
  8. str_Msg = "OK! return a Msg to you!";   
  9. conn = 1;   
  10. }   
  11. Response.write("conn=" + conn + "&output=" + str_Msg);   
  12. %> 

PHP return.php:

  1. <?php   
  2. $action = $HTTP_POST_VARS["action"];   
  3. if ($action == "post") {   
  4. $str_Msg = "OK! return a Msg to you!";   
  5. $conn = 1;   
  6. }   
  7. echo "conn=" . $conn . "&output=" . $str_Msg;   
  8. ?> 

如果本例执行成功,则会在Flash Player中出现成功画面,如图所示。如果失败,则返回失败消息(一般都是路径出错)

 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器