杰瑞科技汇

ActionScript 3.0教程,从零开始学怎么学?

ActionScript 3.0 完整教程

第一部分:基础入门

什么是 ActionScript 3.0?

ActionScript 3.0 (简称 AS3) 是 Adobe Flash Player 和 Adobe AIR 的编程语言,它是一种功能强大的、基于 ECMAScript 标准的面向对象编程语言。

ActionScript 3.0教程,从零开始学怎么学?-图1
(图片来源网络,侵删)

AS3 的主要特点:

  • 性能飞跃:与之前的 AS2 相比,AS3 的性能提升了 10 倍以上,这得益于其全新的虚拟机 AVM2 (ActionScript Virtual Machine 2)。
  • 真正的面向对象:完全支持面向对象编程,包括类、继承、封装、多态等核心概念,结构更严谨。
  • 事件驱动模型:采用事件驱动机制,用户交互(如点击、鼠标移动)或程序内部状态变化都会触发“事件”,你可以编写“事件监听器”来响应这些事件。
  • 强大的显示列表:引入了全新的“显示列表”概念,用于管理屏幕上所有可见对象(影片剪辑、按钮、文本等),使对象的管理和操作更加高效和直观。

开发环境

你需要一个代码编辑器来编写 AS3,最常用的是:

  • Adobe Animate (前身为 Flash Professional):这是最传统和集成的环境,你可以在一个 FLA 文件中同时进行可视化的时间轴操作和 ActionScript 代码编写。
  • Flash Builder (前身为 Flex Builder):一个基于 Eclipse 的专业 IDE,专注于纯代码开发,提供强大的代码提示、调试和项目管理功能,适合大型项目。
  • 第三方代码编辑器:如 Visual Studio Code (配合插件)、FlashDevelop (免费且非常强大) 等。

对于初学者,我们推荐从 Adobe Animate 开始,因为它能让你直观地看到代码如何与视觉元素交互。


第一个程序:"Hello, World!"

在 Animate 中创建一个新的 ActionScript 3.0 项目。

ActionScript 3.0教程,从零开始学怎么学?-图2
(图片来源网络,侵删)

使用时间轴

  1. 在时间轴上选择第一帧。

  2. 打开“动作”面板 (快捷键 F9)。

  3. 输入以下代码:

    ActionScript 3.0教程,从零开始学怎么学?-图3
    (图片来源网络,侵删)
    trace("Hello, World!");
  4. Ctrl + Enter (Windows) 或 Cmd + Enter (Mac) 测试影片,在“输出”面板中,你会看到 "Hello, World!"。

trace() 函数是 AS3 中最常用的调试工具,它会在输出面板中打印信息。

使用外部 ActionScript 文件 (推荐)

这是更专业、更规范的做法,符合面向对象的思想。

  1. 在 Animate 中,选择 文件 -> 新建 -> ActionScript 文件

  2. 保存文件,例如命名为 Main.as

  3. Main.as 中输入代码:

    package {
        import flash.display.MovieClip;
        import flash.text.TextField;
        import flash.text.TextFormat;
        public class Main extends MovieClip {
            public function Main() {
                // 构造函数
                var helloText:TextField = new TextField();
                var format:TextFormat = new TextFormat();
                format.size = 24;
                format.color = 0x000000; // 黑色
                helloText.text = "Hello, World!";
                helloText.setTextFormat(format);
                helloText.x = 100;
                helloText.y = 100;
                this.addChild(helloText); // 将文本添加到显示列表
            }
        }
    }
  4. 回到你的 FLA 文件,在“属性”面板中,将“类”设置为 Main

  5. 测试影片,你将在舞台上看到 "Hello, World!" 文本。


第二部分:核心概念

语法基础

AS3 的语法与 C++、Java、JavaScript 等语言非常相似。

  • 变量与常量

    • 使用 var 关键字声明变量。
    • 强类型是 AS3 的核心特性,必须为变量指定数据类型。
    var myNumber:int = 10;       // 整数
    var myPi:Number = 3.14159;   // 浮点数
    var myName:String = "Alice"; // 字符串
    var isCool:Boolean = true;   // 布尔值
    var myArray:Array = [1, 2, 3]; // 数组
    var myObject:Object = {name: "Bob", age: 30}; // 对象
  • 常量:使用 const 声明,赋值后不能再修改。

    const MAX_PLAYERS:int = 4;
  • 注释

    // 单行注释
    /*
    多行注释
    */

数据类型

数据类型分为两种:

  • 原始数据类型int, uint (无符号整数), Number, String, Boolean,它们存储的是实际的值。
  • 复杂数据类型Object, Array, Date, RegExp 等,它们存储的是对内存中对象的引用。

类型转换: 当需要将一种数据类型转换为另一种时,可以使用构造函数或全局转换函数。

var myString:String = "123";
var myNumber:int = int(myString); // 使用构造函数
var myNumber2:Number = Number(myString); // 使用构造函数
var myNumber3:int = parseInt(myString); // 全局函数,适合解析字符串

运算符

与大多数语言类似,包括:

  • 算术运算符: , , , , (取模)
  • 比较运算符: (值相等), (值和类型都相等), , <, >, <=, >=
  • 逻辑运算符: && (与), (或), (非)

注意:在 AS3 中, 会进行类型转换,而 不会,推荐尽可能使用 以避免意外的行为。

var a:int = 5;
var b:Number = 5.0;
var c:String = "5";
trace(a == b); // true
trace(a == c); // true (5 == "5" 会将 "5" 转换为 5)
trace(a === b); // false (类型不同)
trace(a === c); // false (类型不同)

流程控制

  • 条件语句

    var score:int = 85;
    if (score >= 90) {
        trace("优秀");
    } else if (score >= 60) {
        trace("及格");
    } else {
        trace("不及格");
    }
  • 循环语句

    // for 循环
    for (var i:int = 0; i < 5; i++) {
        trace("i 的值是: " + i);
    }
    // while 循环
    var j:int = 0;
    while (j < 5) {
        trace("j 的值是: " + j);
        j++;
    }
    // for...in 循环 (遍历对象的可枚举属性)
    var myObj:Object = {name: "Tom", age: 25, city: "New York"};
    for (var prop:String in myObj) {
        trace(prop + ": " + myObj[prop]);
    }
    // for each...in 循环 (遍历对象的属性值)
    for each (var value:* in myObj) {
        trace(value);
    }

第三部分:面向对象编程

这是 AS3 的精髓。

类与对象

  • :是创建对象的蓝图或模板,定义了对象的属性和方法。
  • 对象:是类的实例,是真实存在的实体。

创建一个简单的类 Person.as

// Person.as
package {
    public class Person {
        // 属性
        public var name:String;
        public var age:int;
        // 构造函数,在创建对象时自动调用
        public function Person(name:String, age:int) {
            this.name = name;
            this.age = age;
        }
        // 方法
        public function sayHello():void {
            trace("你好,我的名字是 " + this.name + ",我 " + this.age + " 岁。");
        }
    }
}

**在 FLA 文件中使用

分享:
扫描分享到社交APP
上一篇
下一篇