- ベストアンサー
ムービークリップを表示するボタン
ボタンを押すとMC1を指定位置に表示し、 MC1内のフレーム60まで再生する。 ボタンをもう1度押すとMC1内のフレーム60からフレーム80までを再生し、MCを閉じる というものを作りたいのですが どのようにactionscriptを組めば良いでしょうか。 とても基本的な部分だとは思うのですが検索を掛けても思う物が出てこなかったので、宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「MCを閉じる」とは? この意味がわかりませんので, 「MCを消す」 という意味に解釈しておきます。 ◎作成方法例 まず, その MC1 内のタイムラインの編集に移って, MC1 内の フレーム60 のキーフレームに --------------------------- // ストップ stop(); --------------------------- と書きます。 そして,MC1 の フレーム80 のキーフレームに, --------------------------- // このムービークリップを消し去る this.removeMovieClip(); --------------------------- と書きます。 「編集」→「ドキュメントの編集」で,メインのタイムラインの編集に戻って, MC1 をステージ上から削除します。 これで,最初は出没しなくなりますね。 そして, 「ウィンドウ」→「ライブラリ」にチェックが入った状態にして, ライブラリパネルを表示させて, 上で作成した MC1 を選択します。 その MC1 を,「右クリック」→「リンケージ」で, 「リンケージのプロパティ」を表示させます。 そして, □ActionScript に書き出し と □最初のフレームに書き出し にチェックを入れます。 すると, 識別子を付ける部分がアクティブになると思いますから, そこで識別子を付けます。 「MC1」という識別子を付けることにしておきます。 (↑ MC1 は全て半角です。) 後にこの識別子(シンボルの名前)指定で,ライブラリからこのMC1を呼び出します。 ステージ上にボタンを作成します。 そしてそのボタンを選択してボタンに次のようなスクリプトを書きます。 --------------------------------------------- on (release) { // 変数 cnt が未定義 もしくは 2 のとき if (cnt == undefined || cnt == 2) { // 変数 cnt に 1 を代入 cnt = 1; // _root の 深度0 に MC1 を newMC1 という名にして呼びだす _root.attachMovie("MC1", "newMC1", 0); // newMC1 の座標を指定 _root.newMC1._x = 200; _root.newMC1._y = 100; } else { // 変数 cnt が未定義 もしくは 2 ではないとき // 変数 cnt に 2 を代入 cnt = 2; // newMC1 のを 61 フレームから再生 _root.newMC1.gotoAndPlay(61); } } --------------------------------------------- あとは, パブリッシュするか,ムービープレビューしてもらうと動作確認ができます。 お持ちの Flash のバージョンを書かれていらっしゃいませんが, 上のスクリプトなどは,Flash 5 (FlashPlayer5) 以上で作成・使用可能です。 リンケージ と MovieClip.attachMovieメソッドに関しましては, 次の URL が参考になると思います。 「リンケージとは?」 http://1art.jp/flash/le/lessona/lessona.htm ///////////////////////////////////////////////////// ◎その他補足 MCに限らずインスタンスの x,y座標 は, インスタンスの「基準点」が基準となります。 思い通りの場所に表示されない場合は,基準点を見なおしてみてください。 インスタンスの基準点 http://homepage3.nifty.com/ginga-b/MX/inst_refpoint.html この基準点は最初にムービークリップに変換するときに, どの位置にするか選択することができます。 ムービークリップに変換する時点でどこにするかを決めておくことが大切です。 その機会を逃すと面倒ですが, 何も考えずにムービークリップに変換してしまった場合, オニオンスキン や 複数フレーム編集 のボタンを使用して, ムービークリップ内のものを全て選択し, 全ての絵や字やインスタンスをずらすと基準点の位置を相対的に変えることはできます。 第15回 アニメーション作成の手抜きテクニック http://itpro.nikkeibp.co.jp/article/COLUMN/20060705/242544/ →複数フレームをまとめて編集する > どのようにactionscriptを組めば良いでしょうか。 以上で書きましたように, ActionScript のような単純なものだけでは解決しないことばかりです。 「リンケージ」,「基準点」,「複数フレーム編集」 … などを理解したり使用する必要があります。 ActionScript よりもまず, Flash の基本操作や基本仕様を理解することと, それを実際に使用できて,さらに使い慣れることが大切です。
お礼
作成例から補足まで、 丁寧で分かりやすい説明をありがとうございました。 おかげで思う形に作る事が出来ました。 座標指定をする事になるとMCの基準点は重要ですね。 条件分岐のif文についても具体的な使い方を知らなかったので とても勉強になりました。