質問ページ4 / 4


質問ページ4 / 4

質問ページ4/4

概要アニメーションに関して
投稿者Parafla Quality
状態
カテゴリーActionScript
投稿日2010-08-22 (日) 23:50:37
バージョン1.37

質問内容

現在Paraflaを勉強しております。 ASでわからない事があり、質問させて頂きます。

スクリプト内で、ラベルを設定し、キーボードの→を押すと、そのラベルのアニメーションを再生しながら前に進むようにしたいのですが、何故かラベル直下の画像のままで前に進んでしまいます。 これは何が原因なのでしょうか? 書いているスクリプトは

onClipEvent (enterFrame) {
	if (Key.isDown(Key.RIGHT)) {
		gotoAndPlay("●●");
		this._x+=5;
	}
}

になります。 どなたかご教授お願い致します。

回答

  • このASだと●●はスプライト内のラベルということになっていますが… -- 2010-08-23 (月) 02:53:00
  • 質問者です。 -- 2010-08-25 (水) 19:12:44
  • ご回答有難うございます。スプライト内にラベルを作っているのですが、まずかったでしょうか?? -- 2010-08-25 (水) 19:14:20
  • 「前に進ませたい」のもスプライトの中なのでしょうか?「ラベル直下の画像のままで前に進んでしまう」のはメインでの動作なんですよね? そこらへんがはっきり理解できないので問題点もよく解りません-- 2010-08-25 (水) 20:25:14
  • 質問者です。すいません説明不足でした。格闘ゲームを作ろうと思いましてその作業の過程での話です。動かしたいキャラはスプライトにしており、そのスプライト内に、キャラのアニメーションをラベル分けしております。やりたい事は、「メイン上でこのボタンを押したらそのキャラ(スプライト)が予め設定しているアニメーションの動きをしてほしい」という事なのです。上手く説明出来なくてすいません。 -- 2010-08-25 (水) 23:54:36
  • やっと判りました。問題点は二つあります。
    一つ目は、ボタンを押すたびもしくは押し続けるとラベルの先頭に戻ってしまうこと。これはフラグを立てることで解決します。やり方は
    スプライトの0フレームのフレームアクションに
    flag = true;
    スプライトのクリップアクションに
    onClipEvent (enterFrame) {
    	if (Key.isDown(Key.RIGHT)){
    		if(flag){gotoAndPlay("ラベル名");}
    		this._x+=5;
    		flag = false;
    	}
    }
    という感じ 二つ目はラベルの動きが動き終わったところで止まってしまうこと。これは、各ラベルの最後に「アクション フレームジャンプ 0フレームへ」を入れることで解決します。 0フレームに戻れば当然、flag = true;になりますからキー操作ができるようになるわけです
    サンプルpfl.の「キーボードで操作」の項も参考にしてみてください -- 2010-08-26 (木) 17:58:19
  • 投稿者です。分かりやすい説明、有難う御座います。さっそく試してみます。 -- 2010-08-26 (木) 23:34:23
  • 投稿者です。度々すいません。先日ご回答頂いた事を試してみた所、こちららのやり方が間違っているのかもしれませんが、下記の問題が生じてしまいました。少し長文になりますが、ご容赦下さい。flagを入れる事により前回の「ラベル直下の画像のまま前に進む」という問題は解決したのですが、各ラベルの末尾に「フレームジャンプ」指定「0」にしてみたところ、デフォルト(何も押していない状態で実行したいラベル仮にtuujoとし、スプライトの一番上部にあります)に戻るのですが、その後すべてのラベルが上から順に再生されてしまいます。公開されている他者様のソースを拝見させて頂いた所、_PrevLabel?を末尾に持ってこられていたのでそちらを試してみたのですが、こちらの場合は「前進する」ラベルの状態でループしてしまい、RIGHTを離しても画面が変わらなくなってしまいました。ですので、更にRIGHTを離した場合「tuujo」に戻るASを入れてみると「tuujo」には戻るのですが、今度は「tuujo」でループしてしまい、再度RIGHTを押しても反応しなくなってしまいます。色々サイトを拝見させて頂いたのですが、右、上、左、下に移動する方法は載っていてもこれに関しての解説がありませんでしたので困っております。やりたいことは、何も押していない状態では「tuujo」のラベルを再生し、RIGHTを押し続けた場合「前進する」ラベルへ、RIGHTを離した場合は再び「tuujo」へ。ということになります。おそらくこれをそのままASにすればいいのかとは思うのですが、上手く出来ていないのが現状になります。長くなりましたがよろしくお願い致します。 -- 2010-08-30 (月) 15:02:07
  • まず「フレームジャンプ」指定「1」の間違いでしたm(_ _)mそしてフレーム1にあるラベルtuujoの直下にスクリプトflag = true;を書いてください -- 2010-08-30 (月) 19:33:44
  • 投稿者で。フレーム1にジャンプ、tuujoの直下にスクリプトで問題なく出来ました!有難うございます。ただ何故か点滅するようになってしまったのですがこれはどうなっているのでしょうか?? -- 2010-09-03 (金) 00:00:33
  • 点滅するのは押し続けった場合でしょうか?ループしているのかもしれないのでtraceで調べてみてください。 -- 2010-09-03 (金) 20:48:22
  • 投稿者です。どうやらtuujoの直下にスクリプトflag = true(アクション*スクリプト)の部分が1としてカウントされてるようです。これを回避する方法ってあるのでしょうか??何度もすいません。 -- 2010-09-06 (月) 17:29:33
  • カウントとは? -- 2010-09-07 (火) 01:22:17
  • 投稿者です。すいません。点滅するのは押して離した(tuujo)に戻った時に「スクリプトを入れてる所が画像が消えてしまう」ということです。カウントは「フレームカウント」でした。 -- 2010-09-08 (水) 05:56:57
  • なるほど了解。ラベルtuujo画像は固定画面でしょうか?それでしたら画面とスクリプトの順番を逆にしてください。通常画面の場合はスクリプトの前にダミーとして固定画面(通常画面と同じ深度で)の画像を置いてみてください -- 2010-09-08 (水) 08:12:17
  • 投稿者です。有難うございます!おっしゃってた通りしてみたら出来ました!長々お付き合い有難うございました。 -- 2010-09-09 (木) 23:51:50