質問ページ4 /
147
質問内容 †
初心者で右も左も分かりませんが、よろしくお願いいたします。
こちらのParaFla!Wikiにありますサンプルの「言葉をしゃべる」を参考に、押すたびに違うメッセージが表示されるボタンを作っております。
text = "メッセージ";
stop();
という形式のスクリプトを同じラベルの中にいくつか並べました。
ボタンの方は、
on (release){
_root.message_window.gotoAndPlay("ラベル名");
}
となっております。
プレビューしてみると、ボタンを1回クリックするとメッセージAが、もう一度クリックするとメッセージBが問題なく表示されます。
更にもう一度クリックするとメッセージCが表示されるようにしたいのですが、3回目のクリックでメッセージAに戻ってしまいます。
いろいろ調べてみたのですがどうすればいいのか分かりません…。
説明がへたくそで申し訳ないですが、対処法分かる方よろしくお願いいたします。
パソコンの操作すらままならない初心者ですので、できるだけ分かりやすくご説明頂ければ幸いです、すみません。
回答 †
- message_windowはスプライトのインスタンス名ですか?ボタンと表示テキストエリアはそれぞれメインorスプライトのどちらの階層にあるのですか? --
- インスタンス名です。テキストはメインの中の「message_window」内にあり、ボタンはメインの中の「main_window」のそのまた中のスプライト内にあります。 -- 投稿者?
- サンプルの「言葉をしゃべる」を参考にしたのにラベルを使う意味が解りません。またstop();がどのスプライトに対してのものでしょうか。またラベルを使うならgotoAndPlay?ではなくgotoAndStop?にする必要があるのかもしれません。ともかくどうゆう構造になっているかがはっきりしないのでは答えかねます --
- 言葉をしゃべる」ではメインにすべて設置してありましたが、都合上スプライトに分ける必要がありまして、すこしアレンジする過程でラベルを使ったのですが、もしかしたらすごく的外れなことをしているかもしれません…。stop();は記述したスプライト自身にはたらくと思っていたのですが間違っていますか…?gotoAndStop?にするとメッセージAで止まってしまいました…。関係なさそうなところをカットしたサンプルを添付してみました。説明がへたくそなのでこちらをご参照くだされば幸いです…。 -- 投稿者?
- play();はラベルに関係なく続きを再生します。gotoAndPlay?("ラベル名");はラベルに飛んで再生します。サンプルを拝見しましたが、ラベルに戻ったということです。尚、メッセージBへだけは飛ぶことができるのは、ParaFlaの仕様による動作であり、ここでの説明はややこしくなるので割愛します --
- なるほど…!押すたびにラベルの先頭に戻っていたのですね。gotoAndPlay?("ラベル名")をplay(フレーム数)にすることで続きのメッセージ表示することができました、ありがとうございます!しかし、もうひとつ問題が…ボタンをクリックした1回目は反応せず、2回目にメッセージA、3回目にメッセージB…というようにひとつずつずれて表示されてしまうようです。解決方法はありませんか…? -- 投稿者?
- 「停止」を二つ入れているからです。要するに一回目のクリックでは一つ目の停止を飛び越えただけということ --
- できましたー!ひとつ前のカウントだから関係ないと思いきや…Flash作成難しいですね…地道にがんばります。長々とおつきあいありがとうございました! -- 投稿者?
Menu
最新の15件
2023-08-05
2021-08-08
2020-04-16
2019-04-23
2019-02-17
2018-08-15
2017-11-18
2017-05-07
2017-04-11
2017-04-07
2017-04-04
2017-03-27
2017-03-26
2013-05-24
2013-08-27
人気の5件
Edit Menu
843 Hits
Total: 17.6 MB
text: 1.5 MB
attached: 16.1 MB