flash as3与后台php交互用户注册例子,as3与PHP后台交互2

怎么样,是不是也很方便的实现了as3和后台的数据传输?恩,现在我们的程序可以双向交互数据了,但这只是一些简单的数据,如果你要传输带有结构的数据,(熟悉as2的人都知道loadVars可以自动解析下载数据的结构),让我们先按loadVars的方式来尝试下,看看URLLoader是不是能自动的解析下载的数据。

//actionscript

code

varloader:URLLoader

= new URLLoader();

//声明一个URLRequest

varurl:URLRequest

= new URLRequest("test.php");

//设置传输方式为POST

url.method

= URLRequestMethod.POST;

//声明一个URLVariables

varvalues:URLVariables

= new URLVariables();

//设置要传输的信息

values.message="hello im

flash!";

url.data

= values;

loader.addEventListener(Event.COMPLETE,loaded);

functionloaded(e:Event){

trace(loader.data);

//outPut: phpMessage=im php

message!&flashMessage=hello im

flash!

trace(loader.data.phpMessage);

// thorw Error;

trace(loader.data.flashMessage);

// thorw Error;

}

loader.load(url);

//test.php

code//

$flashData

= $_POST['message'];

$phpMessage

= 'im php

message!';

echo"phpMessage=$phpMessage&flashMessage=$flashData";

?>

可以看到,数据被完全下载下来了,但是却没有被解析,还抛出了异常,那么是不是URLLoader就不能自动解析数据了呢?不是,相反

URLLoader提供了多种数据解析方式供你选择。这些数据解析方式都在URLLoaderDataFormat里,他们是:BINARY-以2进制的方式解析

TEXT-以文本的方式解析

VARIABLES-以变量-值配对的方式解析。URLLoader的dataFormat属性提供了对解析方式的选择,好,我们再来修改下程序使它变的更完美些:

//actionscript

code

varloader:URLLoader

= new URLLoader();

//声明一个URLRequest

varurl:URLRequest

= new URLRequest("test.php");

//设置传输方式为POST

url.method

= URLRequestMethod.POST;

//声明一个URLVariables

varvalues:URLVariables

= new URLVariables();

//设置要传输的信息

values.message="hello im

flash!";

url.data

= values;

//设置以变量-值配对的方式解析数据

loader.dataFormat

= URLLoaderDataFormat.VARIABLES;

loader.addEventListener(Event.COMPLETE,loaded);

functionloaded(e:Event){

trace(loader.data);

//outPut: phpMessage=im php

message!&flashMessage=hello im

flash!

trace(loader.data.phpMessage);

// im php

message!

trace(loader.data.flashMessage);

// hello im

flash!

}

loader.load(url);

//test.php

code//

$flashData

= $_POST['message'];

$phpMessage

= 'im php

message!';

echo"phpMessage=$phpMessage&flashMessage=$flashData";

?>

以上这些就是as3里和后台交互的基础内容,现在你可以在as3里创建这样的交互,获取动态数据来丰富你的程序,在你开始自己动手实验之前,还有一些东西值得注意:

1,记得捕获和处理异常(上述的例子里都是假定在完美的测试环境下运行,所以没有加上异常捕获和处理的代码,但现实中你可能会遇到各种各样的情况)URLLoader可能引发好几种异常情况(详细请参见说明文档)

你应该通过监听ioError和securityError事件,或者通过try-catch来处理他们,即使你确信不会发生这样的问题。

2,文件的编码,这是个常见的问题,经常很多数据变成了乱码,或者解析出错,都是因为编码的问题,我的做法是确保发送的数据和后台传回的数据都是UTF-8格式(因为flash默认编码为utf-8)

最后希望这篇文章能对你有所帮助,也欢迎你留言讨论相关的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值