OOP
オブジェクト指向なActionScriptを習得するにはこちら。
-
オブジェクト指向プログラミングにおけるデザインパターンに、「Observerパターン」があります。対象オブジェクトの状態が変わるごとに、その情報を必要なインスタンス(Observer)に送る仕組みです。Javaの例をActionScript 3.0に書替えてみましょう。今回は、デザインパターンの解説書として定評のある結城浩著『Java言語で学ぶデザインパターン入門』のサンプルプログラムを題材とします[*1]。
2010.10.30 | 野中 文雄 | [AS 3][ActionScript][OOP][野中ゼミ]
コメント (1) -
ActionScript 3.0の関数(メソッド)では、ローカル変数や引数以外のthisを含めた参照はその定義時に決まります。このようなデータ構造を、「クロージャ」と呼ぶことがあります[*1]。関数(メソッド)本体内のthis参照も、それが定義されたインスタンスに定まります。ですからthis参照は、Function.apply()メソッドの第1引数で変えることも基本的にできません(つまり、第1引数に指定するできるのはthisのみになります)。
2008.12.17 | 野中 文雄 | [AS 3][ActionScript][OOP][Tips][野中ゼミ]
コメント (0) -
ActionScript 2.0で関数内のスコープを確かめる
ActionScript 2.0における関数内のスコープを、サンプルスクリプトで確かめてみます。this参照がある場合とない場合について、タイムラインの関数とクラスのメソッドでも扱いに少し違いが生じます。なお、このテストは、Flash Professional 8/ActionScript 2.0で行っています。
2008.03.06 | 野中 文雄 | [ActionScript][OOP][Tips][野中ゼミ]
コメント (0) -
「コンストラクタ」は、インスタンスを生成するためのクラスの特別な関数です。そして、クラスに定義された関数はメソッドと呼びます。したがって、「コンストラクタメソッド」と呼ばれることもあります。広い意味では関数つまりfunctionですので、「コンストラクタ関数」と呼んでも差支えはありません。
2008.01.26 | 野中 文雄 | [AS 3][ActionScript][OOP][野中ゼミ]
コメント (0) -
ActionScript 3.0のクラスでは2.0とは異なり、静的プロパティと同名のインスタンスプロパティを定義できることが明記されています。
2007.01.07 | 野中 文雄 | [AS 3][ActionScript][OOP][野中ゼミ]
コメント (0) -
このダイアグラムは OOP の観点から見た Flash MX ActionScript のビルトイントップレベル object/function object の相関関係を示しています。それぞれの関係は下のテストコードによる検証結果です。
2つのタイプの関係があり、一つはコンストラクタとそのインスタンスの関係、もう一つはスーパークラスとサブクラスの関係になります。ダイアグラムの中では、前者が実線で、後者が点線で示されています。
この他の'eval'や'escape'といった変換関数としてのみ使われるfunctionはここには含まれていません。
2002.12.01 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
"dynTween"は、ムービークリップにスクリプトで動的にトゥイーンを適用することを可能にします。
2002.06.06 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
ムービークリップにカラーの高度な設定を適用しモーショントゥイーンさせた場合と同じ効果をスクリプトのみで実現します。異なるトゥイーンを連続して実行することもワンアクションで可能です。さらにそれらをループさせることも可能です。
2002.06.06 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
TK Event Engine "eventEngineMX"
MXでは、
mc.onEnterFrame = function () {...}
といった形でイベントメソッドを使うことにより、eventEngineを使わなくても全てのコードを_rootに書くことができるようになりましたが、そのMXで TK Event Engine を使う理由として:
・リスナーの管理のしやすさ
・リスナーに簡単に引数を渡すことが可能
・イベント発生時のリスナーの実行にevalが使われていることによるスピードの速さ
等が挙げられます。2002.06.04 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
・フラッシュムービーのパフォーマンスをより効率よく、
・パブリッシュするswfのファイルサイズをより小さく、
・コードとグラフィックパーツの分離、
つまりグラフィックパーツの入れ替えを出来る限り容易に、
・オーサリング時、目的のコードにできるだけ到達しやすく、
・後で見たときにわかりやすく、又再利用しやすくしたい、etc.こういったことを可能にするのが OOP(Object Oriented Programming)的
アプローチを取り入れたActionScriptingです。
ここでは今後、ECMA(JavaScript等が準拠)+MovieClipの概念とも言える
ActionScriptの基本構造、又そこでオブジェクト指向的アプローチを実現す
るステップ等の解説を試みていきます。2002.05.07 | 加藤 達雄 | [ActionScript][OOP]
コメント (2) -
「オブジェクト指向プログラミング(Object-Oriented Programming、以下OOP)ってよく耳にはするけど、一体何?」という疑問をお持ちの方は少なくないと思います。ひとことで表すなら、「OOPとはクラスの概念を用いたプログラミング」と言って良いと思います。
ここでは基本的に、Flashの言語であるActionScript(以下AS)に限って話を進めますが、そこで、「え、クラス?それも聞いたことはあるけどAS辞書には何の説明もないし、それって一体何?」という疑問が次に出てきます(出てこない方も話の成り行き上おつきあい下さい)。2002.05.07 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
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が作られます。2002.05.07 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
「オブジェクト指向プログラミング(Object-Oriented Programming、以下OOP)ってよく耳にはするけど、一体何?」という疑問をお持ちの方は少なくないと思います。ひとことで表すなら、「OOPとはクラスの概念を用いたプログラミング」と言って良いと思います。
ここでは基本的に、Flashの言語であるActionScript(以下AS)に限って話を進めますが、そこで、「え、クラス?それも聞いたことはあるけどAS辞書には何の説明もないし、それって一体何?」という疑問が次に出てきます(出てこない方も話の成り行き上おつきあい下さい)。クラスに関する詳しい説明は後ほどになりますが、例えば私たちが過去に少なくとも一度は書いたことがあるコード:例1
myDate = new Date();2002.05.07 | 加藤 達雄 | [ActionScript][OOP]
コメント (2) -
ASのビルトイントップレベルFunction objectとビルトイントップレベルobjectにはどういったものがあるか見ていくことにしましょう。
2002.05.07 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
prototypeは、ビルトイン、ユーザ定義に関わらず全てのFunction objectが持つビルトインプロパティです。そしてそのタイプはobjectです。そのprototypeプロパティが持つプロパティは、そのFunction objectからnew演算子で作られる全てのインスタンスから、そのプロパティ名で参照することができます。
2002.05.07 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
全てのオブジェクト、つまりobject, Function object, MovieClip objectは"__proto__"という名のビルトインプロパティを持っています。そしてその__proto__はそれ自体がそのオブジェクトのコンストラクタのprototypeの値(object値)への参照になっています。
2002.05.07 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
TK Event Engine "eventEngine"v1.30
ソースファイル(含使用例):
概要:== イベントエンジンとは ==
ソースfla内のステージに置かれているカラのMC "eventEngine"、これがTK Event Engineのエンジンになります。
2002.02.02 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
TK Tween Engine "dynTween"v1.06
概要:
この TK Tween Engine は、ムービークリップに動的にトゥイーンを適用することを可能にします。TK Event Engine アドオンバージョンを使う場合はそのムービークリップには何も書かず、又スタンドアローンバージョンを使う場合はムービークリップに以下のコードを書いておきます。
onClipEvent (enterFrame) {
onEnterFrame();
}2002.02.02 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
次のようなネストされたforループを実行する場合について考えてみましょう。
for (k=0; k<=5; k++) {
for (j=0; j<=5; j++) {
for (i=0; i<=5; i++) {
trace(k + " " + j + " " + i);
}
}
}2002.01.30 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
MovieClip Inheritance Total Solution Experiment v1.08
"MovieClip Inheritance Total Solution"はFlashオーサリングの一つの方法を提案するものです。
目的はコードとデザインの完全分離、及びパフォーマンスの効率化で、各ムービークリップには何一つ記述せず、すべてカスタムクラスから継承という方法を取ります。2002.01.24 | 加藤 達雄 | [ActionScript][OOP]
コメント (0) -
== オブジェクトとムービークリップ、いずれにも使用可能な汎用継承メソッド ==
Download the source file
(含使用例)2002.01.24 | 加藤 達雄 | [ActionScript][OOP]
コメント (0)