- ベストアンサー
5フレーム目で3秒止めて7フレーム目に移動。
5フレーム目で3秒止めて10フレーム目に移動というようなフラッシュを作りたいと思っています。 フレーム数を増やすのではなく、 アクションスクリプトを使ってできないでしょうか。 既にアニメーションを作ってしまって、 少し変更したいなぁと思っているので^^;
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
前回のご質問, 「簡単な連打ゲームを作りたい。 」 の 回答No.1の 「簡単なサンプル2 」, setInterval を使う方法でうまくいきませんでしたか? ===================== レイヤーを2レイヤーにして,10フレームにする。 上のレイヤーをスクリプト用のレイヤーと勝手に決めて, フレーム5 をキーフレームにして以下のようにスクリプトを書く。 ----------------------------- //ストップ stop(); // go_10flame を 一定時間後に実行 go_10flame = setInterval(function () { // フレーム10 に行ってストップ gotoAndStop(10); // この go_10flame をクリア clearInterval(go_10flame); // 3000ミリ秒(3秒)後に }, 3000); ----------------------------- 下レイヤーの フレーム5 と フレーム10 もキーフレームにして それぞれステージ上に 「5」 や 「10」 と書く。 (単なる目印なので何でも良い。) 1 5 10 □ レイヤー 筆・・|○ []|○ []| □ レイヤー 筆・・|○ []|●|○ []|●| 「5」と書く↑「10」と書く↑ ===================== これで行けるでしょう。 gotoAndStop(10); とか gotoAndPlay(10); とか _root.gotoAndStop(10); とかは適当に変えてくだされば良いです。 詳しくは前回同様こちらを参考にしてみてください↓。 参考URL 「外部SWFムービー内のfunctionをロード直後に呼出す」 http://www.fumiononaka.com/TechNotes/Flash/FN0304001.html ~~~ ~~~ ~~~ ~~~ あと,せっかく質問されて, ほぼ同じ回答というのも悪いので,作成上の1テクニックを書いておきます。 >> 既にアニメーションを作ってしまって、 >> 少し変更したいなぁと思っているので^^; と書かれていますが,こういうことは他の人でもよくあることです。 簡単に言うと, 「フレームを挿入すると,以降のフレーム数がズレるのでフレームを挿入出来ない。」 と言うことですよね。 これは, gotoAndStop(10); とかいう具合に,フレーム数で goto するフレームをしていしているのでそういうことになります。 フレームラベルに goto するように書いておけば,フレーム数がズレても大丈夫ですよ。 上の例で行くと,タイムラインで,上のレイヤーのフレーム10 を空白キーフレームにして 1 5 10 □ レイヤー 筆・・|○ []|○ []|○| □ レイヤー 筆・・|○ []|●|○ []|●| その上のレイヤーのフレーム10 を選択したまま,下のプロパティパネルを見てください。 右の方に フレーム [ <フレームラベル> ] となっている部分があって,<フレームラベル> の部分が書きかえられると思います。 ここに好きな名前を付けてください。 例えば daikon と付けたとしておきます。 すると, daikon と書いて他の場所をクリックしたとたんに, 上のレイヤーのフレーム10 に 赤旗 が立つはずです。 これがフレームにラベル名が付いた状態です。 それで,このラベル名に goto するようにスクリプトを書けば, フレーム数が変わっても,いつも daikon に飛ぶスクリプトになります。 上のスクリプトに当てはめると, ------------------------------- //ストップ stop(); // go_daikon を 一定時間後に実行 go_daikon = setInterval(function () { // フレーム"daikon" に行ってストップ gotoAndStop("daikon"); // この go_daikon をクリア clearInterval(go_daikon); // 3000ミリ秒(3秒)後に }, 3000); ------------------------------- こんな感じです。 gotoAndStop("daikon"); こんな具合にダブルクォーテーションで囲んで書けばそれがフレームラベルの意味になります。 フレーム5 と フレーム10 の間にフレームを挿入しても,また,フレーム6~9 を削除しても, 赤旗は動くので,いつも daikon に飛ぶスクリプトになります。 当然,ボタンにも書けます。 ------------------------ on (release) { gotoAndPlay("daikon"); } ------------------------ ------------------------ on (release) { _root.gotoAndPlay("daikon"); } ------------------------ こんな具合に。 以上,setInterval と フレームラベル についての説明でした。
お礼
ありがとうございます。 応用すればよかったのですね^-^