アプリ版:「スタンプのみでお礼する」機能のリリースについて

5フレーム目で3秒止めて10フレーム目に移動というようなフラッシュを作りたいと思っています。

フレーム数を増やすのではなく、
アクションスクリプトを使ってできないでしょうか。


既にアニメーションを作ってしまって、
少し変更したいなぁと思っているので^^;

A 回答 (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/FN030 …


~~~ ~~~ ~~~ ~~~

あと,せっかく質問されて,
ほぼ同じ回答というのも悪いので,作成上の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 と フレームラベル についての説明でした。
    • good
    • 0
この回答へのお礼

ありがとうございます。
応用すればよかったのですね^-^

お礼日時:2005/12/16 01:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!