wiki:HowTo/ActionScript2Introduction/Introduction

どんな言語?

Action Script 2 言語の大まかな特徴を以下に列挙します。

基本は JavaScript と同じ

言語仕様は基本的には JavaScript に酷似しています。変数の使い方、演算子、関数の書き方、分岐やループなどの制御命令、無名関数や、それをクロージャとして使えるところまで、同じように書くことができます。

変数の型指定

JavaScript では変数自体に型を持たせることはできませんでしたが、 Action Script 2 では変数を宣言する際に、その変数に代入できる値の型を指定することができます。例えば、数値のみを代入できる変数を宣言するには、以下のように記述します。

var hoge:Number;

このとき、変数 hoge に数値以外のものを代入するようなプログラムを書くと、コンパイルエラーになります。

var hoge:Number;
hoge = 10;      // ok.
hoge = "fuga";  // コンパイルエラー

型指定は関数の引数や戻り値に対しても指定できます。例えば、 3つの数値を引数に取り、その平均を求める関数は、以下のように書くことができます。

function calcAverage3(a:Number, b:Number, c:Number):Number {
    return (a + b + c) / 3;
}

このとき、この関数に渡す引数の型が数値以外であったり、この関数の戻り値を代入する変数が Number 型ではなかったりすると、コンパイルエラーになります。

Java ライクなオブジェクト指向

JavaScript がプロトタイプ型のオブジェクト指向モデルであるのに対して、 Action Script 2 のオブジェクト指向モデルはやや Java に似たスタイルになっています。

例えば、会社の名簿に載せる人の情報を表すオブジェクト Human について、 JavaScript では以下のように記述することになりますが、

// Human オブジェクト定義、兼コンストラクタ
function Human(number, name, age, sex, section, role) {
    this.number = number;
    this.name = name;
    this.age = age;
    // ...
}

// メソッド定義
Human.prototype = {
    "getNumber": function() { return this.number; },
    "getName": function() { return this.name; },
    // ...
};

// オブジェクト生成と利用
var murachi = new Human(1, "Toshiyuki Murayama", 32, "M", "Engineering Department", "President");
var name = murachi.getName();  // "Toshiyuki Murayama"

同様のオブジェクトについて、 Action Script では以下のようにクラスとして記述することができます。

class Human {
    // メンバ変数定義
    var number:Number;
    var name:String;
    var age:Number;
    // ...

    // コンストラクタ
    function Human(number:Number, name:String, age:Number, sex:String, section:String, role:String) {
        this.number = number;
        this.name = name;
        // ...
    }

    // メソッド定義
    function getNumber():Number { return this.number; }
    function getName():String { return this.name; }
    // ...
}

// オブジェクト生成と利用
var murachi:Human = new Human(1, "Toshiyuki Murayama", 32, "M", "Engineering Department", "President");
var name:String = murachi.getName();  // "Toshiyuki Murayama"
Last modified 14 years ago Last modified on Dec 18, 2010, 4:27:32 PM
Note: See TracWiki for help on using the wiki.