マルチメディア技術
- 第1回 Flash概要(4月14日)
- 第2回 アニメーション基礎(4月21日)
- 第3回 アニメーション応用(4月28日)
- 第4回 シンボルとインスタンス基礎(5月12日)
- 第5回 シンボルとインスタンス応用(5月19日)
- 第6回 もぐらたたきゲーム1[タイムラインの制御](5月26日)
- 第7回 もぐらたたきゲーム2[プロパティの制御](6月2日)
- 第8回 りんごひろいゲームを作る1[関数とイベントハンドラ](6月9日)
- 第9回 りんごひろいゲームを作る2[インスタンスの指定と衝突判定](6月16日)
- 第10回 インベーダーゲームを作る1[インターバルとフラグ](6月23日)
- 第11回 インベーダーゲームを作る2[サウンドの使用1](6月30日)
- 第12回 MP3プレイヤーの作成[サウンドの使用2](7月7日)
第5回 ムービークリップインスタンスの動的生成(10月27日)
本日の課題
- インスタンスの動的生成を使ったムービーを作成する
- サンプル:
- サンプルソースのダウンロード:081027_f.zip
ムービークリップインスタンスの動的生成
- たくさんのインスタンスを配置する必要がある場合やインスタンスの数を動的に変化させたい場合などはインスタンスを動的に生成することで処理が簡単になる
- インスタンスの動的生成にはステージに配置済みのインスタンスを複製する方法とリンケージシンボルから生成する方法がある
- 空のインスタンスを生成することも可能
インスタンスの動的複製
- インスタンスの複製にはduplicateMovieClipメソッドを使う
- 書式:インスタンス.duplicateMovieClip("新しいインスタンス名", インスタンスの深度, プロパティリスト)
- プロパティリストは省略可能
- 例:
// my_mcをコピーしてcopy_mcという名前のインスタンスを生成する // オプションでX座標Y座標を指定している my_mc.duplicateMovieClip("copy_mc", 100, {_x:0, _y:0}); - 複製されたインスタンスの初期座標は元のインスタンスと同じになる
リンケージシンボルからのアタッチ
- タイムラインに配置されていないムービークリップから動的にインスタンスを生成するにはムービークリップをリンケージシンボルとして書き出す必要がある
- リンケージシンボルにはシンボル名とは別に識別子を付ける必要がある
- リンケージシンボルからインスタンスを生成することをアタッチという
- インスタンスのアタッチにはattachMovieメソッドを使う
- 書式:attachMovie("識別子", "新しいインスタンス名", インスタンスの深度, プロパティリスト);
- 例:
// mySymbolという識別子のムービークリップから // my_mcという名前のインスタンスを生成する // 深度はgetNextHighestDepth()を使って最前面に配置 var newDepth:Number = this.getNextHighestDepth(); _root.attachMovie("mySymbol", "my_mc", newDepth); - 複製されたインスタンスの初期座標は原点になる
インスタンスの削除
- 動的に生成されたインスタンスは不要になったときには削除する必要がある
- 例:
// 動的に生成されたmy_mcというインスタンスを削除する my_mc.removeMovieClip();
課題評価ポイント
- クラス定義ファイルが正しく作成できているか?(20点)
- リンケージシンボルの設定が正しくできているか?(20点)
- ムービークリップのアタッチが正しくできているか?(20点)
- インスタンス名や深度の管理が正しくできているか?(20点)
- 効果的なムービーが作成できたか?(20点)
ファイル名に全角文字や記号を使わないこと
Flashファイル(*.fla)とASファイル(*.as)を提出する
提出期限は授業日の週の水曜日の午後9時
ブログパーツ