在as3里,原来的loadVars方法已经被废弃,而改用一系列的类来实现与后台数据的交互,这些类是:URLLoader,URLLoaderDataFormat,URLStream,URLVariables。
URLLoader 类和原来的loadVars类似,是加载文本,2进制数据,xml,URL数据等信息的有力工具。URLLoader接受一个URLRequest 作为构造的参数,使用load方法来加载数据。URLLoder也可以进行监听,这点也loadVars不同,一个简单的示例如下:
1. //actionscript code
2. var loader:URLLoader = new URLLoader()
3. //声明一个URLRequest
4. var url:URLRequest = new URLRequest(”test.php”)
5. //设置传输方式为POST
6. url.method = URLRequestMethod.POST
7. //声明一个URLVariables
8. var values:URLVariables = new URLVariables()
9. //设置要传输的信息
10. values.message=”hello im flash!”
11. url.data = values
12. //设置以变量-值配对的方式解析数据
13. loader.dataFormat = URLLoaderDataFormat.VARIABLES
14. loader.addEventListener(Event.COMPLETE,loaded)
15. function loaded(e:Event){
16. trace(loader.data)
17. //outPut: phpMessage=im php message!&flashMessage=hello im flash!
18. trace(loader.data.phpMessage)
19. // im php message!
20. trace(loader.data.flashMessage)
21. // hello im flash!
22. }
23. loader.load(url)
1. //test.php code//
2. 3. $flashData = $_POST['message']
4. $phpMessage = 'im php message!'
5. echo "phpMessage=$phpMessage&flashMessage=$flashData"
6. ?>
以上这些就是as3里和后台交互的基础内容,现在你可以在as3里创建这样的交互,获取动态数据来丰富你的程序,在你开始自己动手实验之前,还有一些东西值得注意:
1,记得捕获和处理异常(上述的例子里都是假定在完美的测试环境下运行,所以没有加上异常捕获和处理的代码,但现实中你可能会遇到各种各样的情况)URLLoader可能引发好几种异常情况(详细请参见说明文档)
你应该通过监听ioError和securityError事件,或者通过try-catch来处理他们,即使你确信不会发生这样的问题。
2,文件的编码,这是个常见的问题,经常很多数据变成了乱码,或者解析出错,都是因为编码的问题,我的做法是确保发送的数据和后台传回的数据都是UTF-8格式(因为flash默认编码为utf-8)
AS3加载AS2影片会有一些需要注意的东西,首先它们用的不是一个虚拟机,所以AS3加载AS2影片会被创建成AVM1Movie对象所以许多方面可能会受到影响,虽然很抱歉不知道这个情况怎么处理,参考下官方的说明吧,实在不行就改3.0吧...
AVM1Movie类:
http://help.adobe.com/zh_CN/AS3LCR/Flash_10.0/index.html
AS3与早期版本兼容性
http://help.adobe.com/zh_CN/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7ff9.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)