『壹』 FLASH AS3.0怎样实现数据的存储与读取
楼上说的是把数据存进Cook里面了,cook被清除了就没有了。
目前flash在各方个面的应用越来越广,而flash也不单只是注重自身绚丽的效果,也需要和外界程序交换数据,以实现更强大的功能,随着as3的到来,flash和外部交互的方式也越来越简便和合理化。今天就在这里谈谈as3和后台数据的交互(这里选择as3+php架构,其他配置同理)。
在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)
『贰』 flash中利用as打开本地文件夹的方法
// 加载包
import flash.net.FileReference;
// 定义 FileReference 对象
var fileRef:FileReference = new FileReference();
// 定义 监听对象
var fileLsn:Object = new Object();
// 定义 文件类型数组 FileReference 对象的 browse 方法的参数
// description: 描述
// extension : 扩展名列表
var fileTyp:Array = new Array({description:"Image files", extension:"*.jpg;*.gif"}, {description:"Document files", extension:"*.txt;*.doc"});
btnBrowse.onRelease = function() {
// 打开 "选择文件" 对话框
fileRef.browse(fileTyp);
};
『叁』 flash 怎么用 as3.0 实现打开本地文件夹、用默认程序打开本地文件。
Flash Player是不行的,要用最新的AIR2.0就可以以文件默认方式打开程序。
http://bbs.blueidea.com/thread-2950734-1-1.html
『肆』 as3.0怎么读取本地文件,不是txt,我要读取文件二进制数据然后保存一个bytearray变量。
import flash.net.URLLoader;import flash.net.URLRequest;import flash.events.Event;
var txtLoad:URLLoader = new URLLoader();//txt.txt文本以UTF-8的编码保存。var txtURL:URLRequest = new URLRequest("txt.txt");txtLoad.addEventListener(Event.COMPLETE, showContent);txtLoad.load(txtURL);function showContent(evt:Event):void{ TT.text = evt.target.data;}
//附源文件,用CS5打开。
『伍』 你好,我想问下:如何在flash as3.0中 生成本地txt文件
as3.0不可以直接操作文件,只能借助fscommand。
给你一个参考网页,http://blog.sina.com.cn/s/blog_3ecb9b110100a8cs.html
如果是air可以用file类直接输入,查看file类。