本文转自:http://www.cnblogs.com/artwl/p/3396330.html

近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0,现把学习结果分享一下,希望对新手有帮助。

  ActionScript 3.0简介

  Hello World

  文件读写

  数据存储(SharedObject)

  与JS互调

ActionScript 3.0简介

  ActionScript 3.0 是一种强大的面向对象编程语言,ActionScript 3 符合 ECMAScript Language Specification 第三版。它还包含基于 ECMAScript Edition 4 的功能,比如类、包和名称空间;可选的静态类型;生成器和迭代器;以及非结构化赋值(destructuring assignments)。随着 Web应用程序项目需求的增长,也要求 ActionScript 引擎有重大的突破。ActionScript 3 引入了一个新的高度优化的 ActionScript Virtual Machine(AVM2),与 AVM1 相比,AVM2 的性能有了显著的提高。这使 ActionScript 3 代码的执行速度几乎比以前的 ActionScript 代码快了 10 倍。(本段内容来自百度百科

  ActionScript 3.0 核心语言有很多新特性:

  1、运行时异常处理机制

  2、运行时类型

  3、密封类

  4、闭包方法

  5、使用E4X理论处理XML数据

  6、正则表达式

  7、命名空间

  8、新基元数据类型

Hello World

  这里用一个简单的例子演示如何开发ActionScript 3.0 程序(IDE为Flash CS6),内容包括添加组件,注册事件,跟踪输出。

  1、打开Flash CS6,新建一个ActionScript 3.0 文档,保存为HelloWorld.fla

[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

  注:此处还可以选择“文件”菜单,点击“新建”命令进行新建。

  2、在新建的文档上添加按钮组件

[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

  把组件命名为btnHelloWorld,并设置label值为“Hello World”,如下图所示:

[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

  3、添加文档类(即ActionScript 3.0 代码文件)

[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

  输入类名称“HelloWorld”(可自定义),然后保存(Ctrl + S)或点击输入框后面的“编辑类定义”按钮,会弹出图中的提示框,点确定即可。然后再次点击输入框后面的“编辑类定义”按钮,IDE会自动创建一个HelloWorld类,并打开AS代码编辑界面:

[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

  把文档保存为HelloWorld.as,与HelloWorld.fla在同一目录下。

  4、给按钮组件注册点击事件。

  注册事件要引入 flash.events.MouseEvent 包,注册事件要用 addEventListener(事件类型, 事件处理方法),这个跟JS中的基本一致。

  这里要注意的是,如何取到文档中添加的那个bthHelloWorld按钮呢?不同于JS中我们用ID或TagName或Name去查找,在AS中界面上定义的组件可以直接用实例名称。

  代码如下:

[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

  5、添加跟踪代码:在点击按钮时,输出Hello World!

  AS中的跟踪代码用trace(string),类型于JS中的console.log(),代码如下:

[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

  6、运行,查看效果

  按 Ctrl + Enter 快捷键运行,然后点击界面上的按钮,观察输出面板中的输出:

[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

  至此,HelloWorld DEMO已经完成。怎么样,有JS基础的同学是不是觉得很容易上手?

  不过目前介绍的只是Flash ActionScript 3.0中的冰山一角。

文件读写

  AS 3.0 中的文件读要用到 flash.net.URLLoader 和 flash.net.URLRequest 和 flash.net.URLLoaderDataFormat 包,文件写要用到 flash.net.FileReference 包。另外,对于文件的写更像是文件下载,会弹出一个选择路径的窗口。在AIR中可以用其他方式实现不弹窗的文件写。

  1、文件读取

  文件数据的读取是用 URLLoader 加载一个 URLRequest 。

  URLLoader可用来加载文本文件、二进制数据或外部变量的值。使用方法如下:

[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
var dataLoad:URLLoader = new URLLoader();

//文件路径
var dataFilePath: String = "demo.txt";

//构造URLRequest
var dataRequest: URLRequest = new URLRequest(dataFilePath);

//设置数据格式
dataLoad.dataFormat = URLLoaderDataFormat.TEXT;

//注册加载完成事件
dataLoad.addEventListener(Event.COMPLETE, loadDataComplete);

//开始加载
dataLoad.load(dataRequest);

//数据读取完成后进行处理
private function loadDataComplete(e: Event):void{
    var fileData:String = dataLoad.data;
}
[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

  2、文件写入

  写文件直接用FileReference的save即可,代码如下:

var f:FileReference = new FileReference;
f.save(内容, 文件名);

  我写了一个DEMO,界面如下,界面绘制方式跟上面界绍的一样。

[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

  AS代码如下:

[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
package  {
    
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.net.URLLoaderDataFormat;
    import flash.net.FileReference;
    import flash.text.TextFormat;
    
    
    public class ReadWriteDemo extends MovieClip {
        
        private var dataLoad:URLLoader = new URLLoader();
        private var dataFilePath: String = "demo.txt";
        private var dataRequest: URLRequest = new URLRequest(dataFilePath);
        
        public function ReadWriteDemo() {
            btnFuncInit();
            // constructor code
        }
        
        private function btnFuncInit():void {
            var titleTF:TextFormat = new TextFormat();
            titleTF.size = 30;
            lblTitle.setStyle("textFormat", titleTF);
            
            var btnTF: TextFormat = new TextFormat();
            btnTF.size = 20;
            btnLoad.setStyle("textFormat", btnTF);
            btnSave.setStyle("textFormat", btnTF);
            btnClear.setStyle("textFormat", btnTF);
            txtContent.setStyle("textFormat", btnTF);
            
            btnLoad.addEventListener(MouseEvent.CLICK, loadData);
            btnSave.addEventListener(MouseEvent.CLICK, saveData);
            btnClear.addEventListener(MouseEvent.CLICK, clearData);
        }
        
        private function loadData(evt:MouseEvent):void{
            dataLoad.dataFormat = URLLoaderDataFormat.TEXT;
            dataLoad.addEventListener(Event.COMPLETE, loadDataComplete);
            dataLoad.load(dataRequest);
        }
        
        private function loadDataComplete(e: Event):void{
            txtContent.text = dataLoad.data;
        }
        
        private function saveData(evt:MouseEvent):void {
            var val: String = txtContent.text;
            var f:FileReference = new FileReference;
            f.save( val, "demo.txt");
        }
        
        private function clearData(evt:MouseEvent):void {
            txtContent.text = "";
        }
    }
    
}
[转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-04-18
  • 2021-05-10
  • 2021-08-02
  • 2021-11-21
猜你喜欢
  • 2022-01-23
  • 2022-01-29
  • 2022-02-28
  • 2021-07-04
  • 2021-08-26
  • 2021-07-23
  • 2021-12-04
相关资源
相似解决方案