ActionScript

OOP

オブジェクト指向なActionScriptを習得するにはこちら。

  • [AS3] Observerパターンのサンプルプログラム

    オブジェクト指向プログラミングにおけるデザインパターンに、「Observerパターン」があります。対象オブジェクトの状態が変わるごとに、その情報を必要なインスタンス(Observer)に送る仕組みです。Javaの例をActionScript 3.0に書替えてみましょう。今回は、デザインパターンの解説書として定評のある結城浩著『Java言語で学ぶデザインパターン入門』のサンプルプログラムを題材とします[*1]

    >>全文へ

  • [AS3] クロージャについて

    ActionScript 3.0の関数(メソッド)では、ローカル変数や引数以外のthisを含めた参照はその定義時に決まります。このようなデータ構造を、「クロージャ」と呼ぶことがあります[*1]。関数(メソッド)本体内のthis参照も、それが定義されたインスタンスに定まります。ですからthis参照は、Function.apply()メソッドの第1引数で変えることも基本的にできません(つまり、第1引数に指定するできるのはthisのみになります)。

    >>全文へ

  • ActionScript 2.0で関数内のスコープを確かめる

    ActionScript 2.0における関数内のスコープを、サンプルスクリプトで確かめてみます。this参照がある場合とない場合について、タイムラインの関数とクラスのメソッドでも扱いに少し違いが生じます。なお、このテストは、Flash Professional 8/ActionScript 2.0で行っています。

    >>全文へ

  • [AS3] コンストラクタメソッドとコンストラクタ関数

    「コンストラクタ」は、インスタンスを生成するためのクラスの特別な関数です。そして、クラスに定義された関数はメソッドと呼びます。したがって、「コンストラクタメソッド」と呼ばれることもあります。広い意味では関数つまりfunctionですので、「コンストラクタ関数」と呼んでも差支えはありません。

    >>全文へ

  • [AS3] 静的プロパティと同名のインスタンスプロパティ

    ActionScript 3.0のクラスでは2.0とは異なり、静的プロパティと同名のインスタンスプロパティを定義できることが明記されています

    >>全文へ

  • ActionScript Map

    このダイアグラムは OOP の観点から見た Flash MX ActionScript のビルトイントップレベル object/function object の相関関係を示しています。それぞれの関係は下のテストコードによる検証結果です。

    2つのタイプの関係があり、一つはコンストラクタとそのインスタンスの関係、もう一つはスーパークラスとサブクラスの関係になります。ダイアグラムの中では、前者が実線で、後者が点線で示されています。

    この他の'eval'や'escape'といった変換関数としてのみ使われるfunctionはここには含まれていません。

    >>全文へ

  • TK Tween Engine "dynTweenMX"

    "dynTween"は、ムービークリップにスクリプトで動的にトゥイーンを適用することを可能にします。

    >>全文へ

  • "dynColorTweenMX"

    ムービークリップにカラーの高度な設定を適用しモーショントゥイーンさせた場合と同じ効果をスクリプトのみで実現します。異なるトゥイーンを連続して実行することもワンアクションで可能です。さらにそれらをループさせることも可能です。

    >>全文へ

  • TK Event Engine "eventEngineMX"

    MXでは、
    mc.onEnterFrame = function () {...}
    といった形でイベントメソッドを使うことにより、eventEngineを使わなくても全てのコードを_rootに書くことができるようになりましたが、そのMXで TK Event Engine を使う理由として:
    ・リスナーの管理のしやすさ
    ・リスナーに簡単に引数を渡すことが可能
    ・イベント発生時のリスナーの実行にevalが使われていることによるスピードの速さ
    等が挙げられます。

    >>全文へ

  • チュートリアルを始める前に

    ・フラッシュムービーのパフォーマンスをより効率よく、
    ・パブリッシュするswfのファイルサイズをより小さく、
    ・コードとグラフィックパーツの分離、
    つまりグラフィックパーツの入れ替えを出来る限り容易に、
    ・オーサリング時、目的のコードにできるだけ到達しやすく、
    ・後で見たときにわかりやすく、又再利用しやすくしたい、etc.

    こういったことを可能にするのが OOP(Object Oriented Programming)的
    アプローチを取り入れたActionScriptingです。
    ここでは今後、ECMA(JavaScript等が準拠)+MovieClipの概念とも言える
    ActionScriptの基本構造、又そこでオブジェクト指向的アプローチを実現す
    るステップ等の解説を試みていきます。

    >>全文へ

  • チュートリアル-1 : Intro

    「オブジェクト指向プログラミング(Object-Oriented Programming、以下OOP)ってよく耳にはするけど、一体何?」という疑問をお持ちの方は少なくないと思います。ひとことで表すなら、「OOPとはクラスの概念を用いたプログラミング」と言って良いと思います。
    ここでは基本的に、Flashの言語であるActionScript(以下AS)に限って話を進めますが、そこで、「え、クラス?それも聞いたことはあるけどAS辞書には何の説明もないし、それって一体何?」という疑問が次に出てきます(出てこない方も話の成り行き上おつきあい下さい)。

    >>全文へ

  • チュートリアル-2 : object

    objectの厳密な定義はActionScriptやJavaScriptが準拠するECMA-262に書かれていますが、ここでは単純に「objectはプロパティと呼ばれるデータの集合」と理解しておけば十分でしょう。

    例2
    circle1 = {radius:50}

    例えばメインタイムラインにこう書くと、名前が'radius'、値が50のプロパティを持つobject 'circle1'を_rootのプロパティとして定義することになります。
    つまりswfムービーが再生されこのコードが実行されると、ビルトインMovieClip objectである_rootの1プロパティとして名前が'circle1'で値が{radius:50}というobject値であるobjectが作られます。

    >>全文へ

  • チュートリアル-3 : function

    「オブジェクト指向プログラミング(Object-Oriented Programming、以下OOP)ってよく耳にはするけど、一体何?」という疑問をお持ちの方は少なくないと思います。ひとことで表すなら、「OOPとはクラスの概念を用いたプログラミング」と言って良いと思います。
    ここでは基本的に、Flashの言語であるActionScript(以下AS)に限って話を進めますが、そこで、「え、クラス?それも聞いたことはあるけどAS辞書には何の説明もないし、それって一体何?」という疑問が次に出てきます(出てこない方も話の成り行き上おつきあい下さい)。クラスに関する詳しい説明は後ほどになりますが、例えば私たちが過去に少なくとも一度は書いたことがあるコード:

    例1
    myDate = new Date();

    >>全文へ

  • チュートリアル-4 : ASの基本構造

    ASのビルトイントップレベルFunction objectとビルトイントップレベルobjectにはどういったものがあるか見ていくことにしましょう。

    >>全文へ

  • チュートリアル-5 : prototype

    prototypeは、ビルトイン、ユーザ定義に関わらず全てのFunction objectが持つビルトインプロパティです。そしてそのタイプはobjectです。そのprototypeプロパティが持つプロパティは、そのFunction objectからnew演算子で作られる全てのインスタンスから、そのプロパティ名で参照することができます。

    >>全文へ

  • チュートリアル-6 : __proto__

    全てのオブジェクト、つまりobject, Function object, MovieClip objectは"__proto__"という名のビルトインプロパティを持っています。そしてその__proto__はそれ自体がそのオブジェクトのコンストラクタのprototypeの値(object値)への参照になっています。

    >>全文へ

  • TK Event Engine "eventEngine"v1.30

    ソースファイル(含使用例):

    Download the source fla


    概要:

    == イベントエンジンとは ==

    ソースfla内のステージに置かれているカラのMC "eventEngine"、これがTK Event Engineのエンジンになります。

    >>全文へ

  • TK Tween Engine "dynTween"v1.06

    概要:

    この TK Tween Engine は、ムービークリップに動的にトゥイーンを適用することを可能にします。TK Event Engine アドオンバージョンを使う場合はそのムービークリップには何も書かず、又スタンドアローンバージョンを使う場合はムービークリップに以下のコードを書いておきます。

    onClipEvent (enterFrame) {
    onEnterFrame();
    }

    >>全文へ

  • bigLoop

    Download the source file

    次のようなネストされたforループを実行する場合について考えてみましょう。

    for (k=0; k<=5; k++) {
    for (j=0; j<=5; j++) {
    for (i=0; i<=5; i++) {
    trace(k + " " + j + " " + i);
    }
    }

    }

    >>全文へ

  • MovieClip Inheritance Total Solution Experiment v1.08

    Download the source file

    "MovieClip Inheritance Total Solution"はFlashオーサリングの一つの方法を提案するものです。
    目的はコードとデザインの完全分離、及びパフォーマンスの効率化で、各ムービークリップには何一つ記述せず、すべてカスタムクラスから継承という方法を取ります。

    >>全文へ

  • Inheritance All-Rounder

    == オブジェクトとムービークリップ、いずれにも使用可能な汎用継承メソッド ==

    Download the source file
    (含使用例)

    >>全文へ

インタラクティブな演出をしたいときには、ActionScriptが必須。Flashのバージョンが上がるごとに多機能になってきましたが、覚えることも増えました。まずは基本から始めましょう。