- ベストアンサー
アクションスクリプト「if」に関するご相談
- FLASH8、OSwinXP、初心者の方がアクションスクリプト「if」に関するご相談です。クリップにマウスオンするとダイナミックテキストの数字がカウントダウンされるという機能を作成していますが、スクリプトの動作が正しくなく困っています。
- 1つ目のスクリプトでは、カウントダウンを50で止めたいのにスルーしてどこまでもカウントダウンしてしまいます。2つ目のスクリプトでは、カウントダウンが50で止まるのですが、マウスオンした瞬間にundefinedが表示されてしまいます。どうすれば良いでしょうか。
- undefinedが出ないで100から始まり、50で止まるようなスクリプトを教えていただけると助かります。また、同様の問題について情報を探していますが、見つからないため、関連ページなども教えていただけるとありがたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
変数contになにも代入されていないので、undefinedと出るのだと思います。 以下のようにすれば出来ると思います。 this.onEnterFrame = function() { cont = 100; //← _root.texbox_mc.hhh = cont; hoge -= 1; cont = (snt+hoge); if (cont<50) { cont = 50; } } } ASを学ぶなら、Flashゲーム講座 & アクションスクリプトサンプル集がオススメです。 http://hakuhin.hp.infoseek.co.jp/main/as.html
その他の回答 (1)
- solLight
- ベストアンサー率47% (30/63)
ANo.1の者です。前回はソースを間違えてしまいました。 onClipEvent (load) { cont = 100; } on (rollOver) { cont--; if (cont<50) cont = 50; _root.texbox_mc.hhh = cont; } とすれば出来ると思います。
お礼
たびたびありがとうございます!!
補足
たびたびのご回答ありがとうございます!! しかしながらこれはうまく動きませんでした…。 マウスオンしても何もおこりませんでした。 試しに _root.texbox_mc.hhh = cont; をif{ }から取り出し、 on (rollOver) { cont--; _root.texbox_mc.hhh = cont; if (cont<50) {cont = 50; } } としてみたのですが、これもだめでした…。マウスオンするたびに1ずつ減るだけで…。 しかしすっきりしたスクリプトなので、感心いたしました。 rollOverにenterFrameをネストするのはどうしたらいいんだろうと思っていたんですが、こういうやり方もあるんですね。 いろいろありがとうございます! しかし未だわからぬ状態です。いろいろ試してはいるものの、なにか方法はないもんでしょうか。
お礼
さっそくのご回答ありがとうございます!! しかしながら…その行を足されることによって今度はカウントさえもされません…私の操作がわるかったのでしょうか。 将来的には動的な数値をsntとかhogeに代入しようと思っていますので onClipEvent (load) 内で定義したいんです…。(←これは質問本題と離れる可能性があるので別の話として流してください) とにかくundefinedが1コマ目に出ず、カウントダウンし、50で止まってくれるための解決法はございませんでしょうか? onClipEvent (load) { hoge = 1;//(1) snt = 100;//(2) } on (rollOver) { this.onEnterFrame = function() { _root.texbox_mc.hhh = cont; hoge -= 1; cont = (snt+hoge);//←contにonClipEventで定義した数値(1)、(2)を代入したい if (cont<50) { cont = 50; } } } ▲余談:不思議なのは行を入れ替えただけで振る舞いが変わることです。アクションスクリプトはスクリプトを一度全部読み込んでから実行すると読んだことがありますが、やはり行の順番次第で動かなかったときもあったんだなと思ったりもします…。