NEWS

2017.10.21 「バージョンごとの機能比較」を更新しました。

  • Web creators

ActionScript

AS2.0とAS3.0の違い

概要

"ActionScript"はFlashの操作画面では設定することができない複雑な処理や双方向性コンテンツを作る事ができるプログラム言語で、Flashのバージョンで作成できるコンテンツが異なるように、"ActionScript"のバージョンによっても実現できる処理が異なります。
ここでは"ActionScript"のバージョン2.0と3.0の違いについて解説します。
(以下、ActionScript2.0を"AS2.0"、ActionScript3.0を"AS3.0"とします)

解説

1.配置したインスタンスにActionScriptを指定できない

AS2.0まではタイムラインと、ステージまたはシンボルに配置したインスタンスを選択してActionScriptを記述できていましたが、AS3.0からは下図のようにインスタンスに対して記述できなくなりました。

現在の選択範囲にアクションを割り当てることはできません

そのため、ActionScriptはタイムラインにのみ記述し、インスタンス個別に処理を適応させるためにはインスタンスのプロパティからインスタンス名を設定した上で、その名前に対してActionScriptを適応します。

2.「_root」が利用できない

AS2.0ではグローバルな変数値やステージから配置したインスタンスを指定するパスとして「_root」を利用しますが、AS3.0からは記述と扱い方が変更となりました。
(参考:パスの指定(_root と this)

エラーでは「プロパティ _rootはサポートされないようになりました。」と表示されるように記述方法が変わっており、例えばステージ上のテキストエリアに対して文字を表示する場合は下記のように記述します。

01
MovieClip(root).インスタンス名.text = "表示する文字列";

また、インスタンスが入れ子になっている場合は次のように記述します。
「.text」はテキストエリアに表示するためのプロパティです。
内部的に値を持つ場合は「.text」は必要ありません。

01
MovieClip(root).親インスタンス名.子インスタンス名.text = "表示する文字列";

3.型の宣言が必要

AS2.0の場合は「変数名 = 値;」という形で特に制限無く変数を扱えていましたが、AS3.0からはvarステートメントを用いて必ず変数名を宣言する必要があります。
文字列や数値を扱う変数の他に、配列でもvarステートメントを用います。

01
02
var 変数名;
変数名 = 数値;

また、AS2.0の場合は変数やテキストエリアで数値を扱う際、"(ダブルクォーテーション)で囲う必要はありませんでしたが、AS3.0で"(ダブルクォーテーション)無しで変数やテキストエリアに入れようとすると「型 int の値が、関連しない型 String に暗黙で型変換されています。」とエラー表示します。
これは、「text」プロパティが文字列(string)扱いとなっているため、そこで扱う値もstring型に合わせなくてはなりません。

上記2.ではテキストエリアに文字列を表示しましたが、数値を表示させる場合は次のように"(ダブルクォーテーション)で囲って記述します。

01
MovieClip(root).インスタンス名.text = "表示する数値";

上記の記述の場合、数値は文字列として扱われるので後々に演算処理したい場合は、"(ダブルクォーテーション)で囲わずに次のように記述します。

01
02
03
var 変数名;
変数名 = 数値;
MovieClip(root).インスタンス名.text = "" + 変数名;

4.外部ファイルにする際はimportとクラス化記述が必要

タイムラインにActionScritpを記述するのではなく、外部ファイル(拡張子:as)として扱う場合、利用するクラスをimportし、「package」によるクラスの宣言が必要になります。
外部ファイル化する場合は次のように記述します。

01
02
03
04
package{
  import パッケージ.クラス;
  以下プログラム記述
}

5.functionの記述方法が異なる

独自の関数を作る事ができる「function」もAS3.0になり型の宣言が必要となりました。
(参考:ActionScriptのオブジェクト化(function)
AS3.0での「function」の記述は次のようになります。

01
02
03
function function名(引数) : 戻り値の型{
  以下プログラム記述
}

ページ上部へ