MovieClip.attachMovie()について

Pocket

attachMovieメソッドについての覚書です。

Flashのヘルプ

MovieClip.attachMovie()
Player
Flash Player 5。

シンタックス
my_mc.attachMovie(idName, newName, depth [, initObject])

パラメータ
idName ステージ上のムービークリップに割り当てるライブラリ内のムービークリップシンボルのリンケージ識別子。これは、[リンケージプロパティ] ダイアログボックス内の [識別子] フィールドに入力した名前です。

newname ムービークリップに割り当てる一意のインスタンス名。

depth SWF ファイルが置かれる深度を指定する整数。

initObject 新しく接続するムービークリップに設定するプロパティを含むオブジェクト。このパラメータは、Flash Player 6 以降でのみサポートされています。このパラメータを使用すると、動的に作成したムービークリップは、クリップのパラメータを受け取ることができます。オブジェクトではない initObject は無視されます。initObject のすべてのプロパティは、新しいインスタンス内にコピーされます。initObject で指定されたプロパティは、コンストラクタ関数で使用できます。このパラメータはオプションです。

戻り値
新しく作成したインスタンスへの参照。

重要だと思う点:initObject のすべてのプロパティは、新しいインスタンス内にコピーされます。

簡単なサンプル

円の描画
で幅:10,高さ:10の円を描画する(Shift+ドラッグで真丸の円)。
円をシンボルへ
F8でムービークリップシンボルへ変換。変換ダイアログのオプションを下記のように設定。
名前:clip
識別子:clip
リンケージ:「ActionScriptへ書き出し」,「最初のフレームへ書き出し」をチェック
シンボルの中心を基準点にする。
描画した円(インスタンス)を削除
円はActionScriptのattachMovie関数で動的に書き出すため、ステージから削除しておきます。
ActionScriptの設定
1フレーム目ににActionScriptを設定。

ActionScript

function initObject(){
	this._x = 20;
	this._y = 20;
	this.f = function(){ // — (3)
		this._x += 50; // thisは(1)を指す
	}
}

var initObject = new initObject();
// initObjectのプロパティ(_x,_y,f())はすべてclipObjectにコピーされる。
// 関数もプロパティなので、fもコピーされる
var clipObject = attachMovie('clip','ins',0,initObject);

clipObject.onPress = function() {
	this._y += 50;
	this.f();
}

initObject._alpha = 50; // initObjectに対する操作はステージ上のclipObjectへは影響しない
clipObject._alpha = 50; // clipObjectの不透明度が50%へ
//  _root["ins"]._alpha=50; でもおなじ

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。