この記事のURL

http://www.dango-itimi.com/blog/archives/2006/000896.html


FLASH tips ActionScript3勉強 事始め 手動で配置したステージ上のMC制御

Flash 9 Public Alpha と Flex Builder 2 を利用してAS3を勉強開始。

ネット上のAS3のサンプルを見てみるも、Flash 9のライブラリ内にあるMovieClipを動的に配置(addChildメソッドを利用)するサンプルはあるものの、手動でステージ上に配置したMovieClipの制御方法がわからず少々てこずりました。

解決までの悩んだ経路

1.お約束の Hello World! のみを表示する Sample.as ファイルを作成
2.Flash 9 上で「Document class」として「Sample」クラスを設定
3.パブリッシュしてみて Hello World! が表示されることを確認
4.Flash 9 上で適当な MovieClip を作成しステージ上に配置
5.配置した MovieClip のインスタンス名を mc と設定
6.パブリッシュしてみると以下のエラーが表示

ReferenceError: Error #1056: Sample のプロパティ mc を作成できません。
	at flash.display::Sprite/flash.display:Sprite::constructChildren()
	at flash.display::Sprite$iinit()
	at Sample$iinit()

7.小一時間悩む
8.Sample.as内のプロパティフィールドに次の一行を記述

public var mc:MovieClip;

9.パブリッシュが通る
10.Sample.as内から ステージ上に配置した mc を制御可能に

ううむ、なるほど。今までAS2では、MovieClipを継承したクラスを作成したことがなかったため、この発想はありませんでした。この仕様のおかげで、よりいっそう厳密にプロパティ管理が行え、安全なコーディングが可能になりそうです。

どうしてもソースコード内のプロパティに一々ステージ上のMovieClipのインスタンスを宣言するのが面倒という場合は、Sampleクラスをダイナミッククラスにすればよいようです。プロパティとして mc を宣言していなくても、Sampleクラス内では mc インスタンスを制御できるようになります。但しコンパイル時のチェックが甘くなるので注意。

参考 akihiro kamijo
dynamic クラス

[ FLASH ] [ tips ] 投稿者 siratama : 2006年07月10日 15:29

トラックバック

http://www.dango-itimi.com/blog/mt-tb.cgi/856

コメント

以下コメントを書き込むだけでは、管理人には通知が行われません。通知を行いたい場合、管理人の書き込みに「返信」を押してコメントをしていただくか、あるいは Google+, Twitter へご連絡ください。




[EDIT]