iLeichun

当前位置: 首页 > 个人日志

as3获取php的变量值(1)

分类:个人日志   来源:原创   时间:2012-05-23 22:08:03

本文将介绍如何用as3获取php的变量值,这种方法是通过as3先加载远程的php,然后读取其中的变量值,为方便理解与阅读,代码不长,欢迎阅读,并希望指出其中的不足此处。

PHP代码 (test1.php):

不推荐写成这种含html代码的形式:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>测试as3如何读取php的变量值</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php   

    /**
     * 使用本方法的缺点是向as传值的输出语句(下文的echo语句)之后不能再有输出。
     * 解决办法:可以在该输出语句的最后面再加上一个变量,而这个变量在as3中是不需要接收的,例如改成:   
     * echo "&coun=".$country."&pro=".$province."&city=";
     */
    $country = "中国<br />";
    $province = "福建";
    //as3读取是是coun、pro属性值,前面的“&”不能缺少,否则该属性将读取不到
    echo "&coun=".$country."&pro=".$province;
?>
<!-- 注意:本行及后面的行也会当做是pro属性的值被as3接收,所以本行及以后的行是多余的 -->
</body>
</html>

 推荐改成这种纯php代码的形式:

<?php
    $country = "中国<br />";
    $province = "福建";
    //as3读取是是coun、pro属性值,前面的“&”不能缺少,否则该属性将读取不到
    echo "&coun=".$country."&pro=".$province;
?>
 

AS3代码 (Test1.as):

package
{
 import fl.controls.Button;
 
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.events.MouseEvent;
 import flash.net.URLLoader;
 import flash.net.URLLoaderDataFormat;
 import flash.net.URLRequest;
 import flash.net.URLVariables;
 import flash.text.TextField;
 import flash.text.TextFieldAutoSize;
 import flash.text.TextFormat;
 
 /**
  * 测试as3与php之间的交互方法1
  * 本方法通过加载远程php来读取其中输出的变量值
  * @author Administrator
  */
 public class Test1 extends Sprite
 {
  
  /**
   * 定义点击按钮
   */  
  private var _btn:Button;
  
  /**
   * 文本框
   */  
  private var _showTf:TextField;
  
  /**
   * 测试as3与php之间的交互
   */  
  public function Test1() {
   _btn = new Button();
   _btn.label = "请点击";
   _btn.move(0, 0);
   addChild(_btn);
   
   _showTf = new TextField();
   _showTf.autoSize = TextFieldAutoSize.LEFT;
   _showTf.defaultTextFormat = new TextFormat(null, 12, 0xff0000);
   _showTf.wordWrap = true;
   _showTf.border = true;
   _showTf.text = "内容文本框1";
   _showTf.width = 660;
   _showTf.x = 110;
   _showTf.y = 0;
   addChild(_showTf);
   
   _btn.addEventListener(MouseEvent.CLICK, loadPhp);
  }
  
  /**
   * 开始加载php
   * @param event
   */  
  private function loadPhp(event:MouseEvent):void {
   _showTf.text = "";
   
   var urlLoader:URLLoader = new URLLoader();
   urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;

   //注意此处是使用http请求的方式作为加载地址,而不能直接写成相对位置或绝对位置,例如“/test1.php”
   urlLoader.load(new URLRequest("http://localhost:8081/as3php/test1.php"));
   urlLoader.addEventListener(Event.COMPLETE, onCompletedHandle);
  }
  
  /**
   * 加载php完成
   * @param event
   */  
  private function onCompletedHandle(event:Event):void {
   var mydata:URLVariables = URLVariables((event.currentTarget as URLLoader).data);
   _showTf.text = "国家是:" + mydata.coun + " 省份是:" + mydata.pro;
  }
  
 }
}

 

欢迎继续阅读下一篇文章:as3获取php的变量值(2)

 

更多