• ベストアンサー

Actionscript3.0 ストップウォッチ

BlurFiltanの回答

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.3

#1 & #2 です。 #2 のお礼(補足の方ではないです) を読ませていただきましたが, フレームによって違うボタンなどが登場して そのボタンクリックによって別々の動作をさせるのでしたら その フレーム・フレーム… ごとにスクリプトを書いた方が良いと思います。 少なくともドキュメントクラスのスクリプトだけでするのは難しいでしょう。 とりあえずは ステージ上の各フレームに用意するインスタンスを書きます。 「 」内はインスタンス名です。 ◎ フレーム1 に用意するもの  ・ボタンインスタンス「start_btn」 ◎ フレーム2 に用意するもの  ・ボタンインスタンス「ok_btn」  ・ボタンインスタンス「cancel_btn」  ・ダイナミックテキストフィールド「time_txt」   ※↑これは フレーム3 と 4 でも継続表示させる ◎ フレーム3 に用意するもの  ・ダイナミックテキストフィールド「judge_txt」   ※↑これは フレーム4 でも継続表示させる  ・ダイナミックテキストフィールド「time_txt」   ※↑これは フレーム2 から継続表示させる ◎ フレーム4 に用意するもの  ・ダイナミックテキストフィールド「judge_txt」   ※↑これは フレーム3 から継続表示させる  ・ダイナミックテキストフィールド「time_txt」   ※↑これは フレーム2 から継続表示させる ※下の【添付図】をご参考に。   ドキュメントクラスは無くします。 各フレームに書くスクリプト例です。 //---フレーム1-------------------------- //このフレームで再生を停止 stop(); //経過時間を代入する変数の宣言 var old_time:uint; var now_time:uint; //「start_btn」クリック時に 関数 clockStart を実行 start_btn.addEventListener(MouseEvent.CLICK,clockStart); //関数 clockStart の定義 function clockStart(e:MouseEvent) { //変数 old_time にスタート時の時間を代入 old_time = getTimer(); //このイベントリスナーを削除 start_btn.removeEventListener(MouseEvent.CLICK,clockStart); //次のフレーム(フレーム2)で停止 nextFrame(); } //------------------------------------   //---フレーム2-------------------------- //毎フレーム進む時間で 関数 tick を実行 this.addEventListener(Event.ENTER_FRAME,tick); //関数 tick の定義 function tick(e:Event):void { //変数 now_time に今の時間を代入 now_time = getTimer(); //スタート時からの時間差を取得 var mili_sec = now_time - old_time; //~時間の表示文字列を算出~ var s:int = Math.floor(mili_sec / 1000); var minutes:int = Math.floor(s / 60); var seconds:int = s % 60; var mili:int = mili_sec % 1000; //「time_txt」に経過時間を表示 time_txt.text = minutes + ":" + ("0" + seconds).substr(-2,2) +":"+ ("00" + mili).substr(-3,2); } //「ok_btn」クリック時に 関数 okFunc を実行 ok_btn.addEventListener(MouseEvent.CLICK,okFunc); //関数 okFunc の定義 function okFunc(e:MouseEvent) { //このイベントリスナーを削除 ok_btn.removeEventListener(MouseEvent.CLICK,okFunc); //フレーム3 で停止 gotoAndStop(3); } //「cancel_btn」クリック時に 関数 cancelFunc を実行 cancel_btn.addEventListener(MouseEvent.CLICK,cancelFunc); //関数 cancelFunc の定義 function cancelFunc(e:MouseEvent) { //このイベントリスナーを削除 cancel_btn.removeEventListener(MouseEvent.CLICK,cancelFunc); //フレーム4 で停止 gotoAndStop(4); } //------------------------------------   //---フレーム3-------------------------- //毎フレーム進む時間で 関数 tick を実行するのをやめる this.removeEventListener(Event.ENTER_FRAME,tick); //「judge_txt」に 正 を表示 judge_txt.text = "正"; //------------------------------------   //---フレーム4-------------------------- //毎フレーム進む時間で 関数 tick を実行するのをやめる this.removeEventListener(Event.ENTER_FRAME,tick); //「judge_txt」に 誤 を表示 judge_txt.text = "誤"; //------------------------------------   以上のように 「何がどうなったときに,何をどうするのか。」 ということを具体的にしっかりとイメージして 1つずつ確実に動作するようにスクリプトを考えて行けばできると思います。

m0cchi
質問者

お礼

おそくなってしまい申し訳ありません。 確認しました。問題なく操作できました! 丁寧な説明・画像付きでありがとうございます。 すごく分かりやすくて助かりました。 スクリプト見直してひとつひとつ自分でまた噛み砕いてみますね。 本当にありがとうございました!

関連するQ&A

  • FlashのActionScriptについて

    FlashのActionScriptについて Flash CS4(AS2.0)を使用 Flashに関しては初心者で、色々な参考書を見ている中で、 AkutionScriptの書き方に色々なパターンがあって分からなくなりました。 アクションを書き込む際、 (1)専用のActionScriptのフレームを作成してそこに書く (2)ボタンインスタンスに書く (3)対象のシンボルのフレームに書く 上記3つの方法はそれぞれどのような違いがあるのでしょうか?又、どのようにして 使い分けするのでしょうか?

  • ストップウォッチについて

    スタートのボタンとストップのボタンが別々のストップウォッチは有りますか?

  • ストップウォッチについて

    スタート、ストップ、リセットボタンが3つに分かれているストップウォッチを探しています。

  • FlashのActionScriptについて質問です。

    FlashのActionScriptについて質問です。 Flash CS4のAS2.0を使用 ActionScriptの書き方で (1)ボタンインスタンスに書く (2)対象のインスタンスのフレームに書く (3)ActionScript専用のフレームを作成しそこへ書く 参考書等を読んでいるとActionScriptを書くときに、上記3つの方法が あり混乱しています。 それぞれ、どのような違いがあるのでしょうか?また、どのように使い分けるのでしょうか? Flashに関しては、始めたばかりの超初心者です。どうぞ宜しくお願いします。

  • ストップウォッチの改造について

    ストップウォッチのスタート・ストップについて ボタンを押している間は停止で、ボタンを離すと計測を開始するといった改造は可能ですか? その逆で、押している間は計測で離すと停止するでも構いません アドバイスお願いします

  • Actionscript3.0のスキップボタンについて教えてください。

    FlashCS4になり、Actionscriptの組み方が変わってから簡単だった、ループ停止とスキップボタンの作り方がわからなくて悩んでいます。 ちなみに、ループ停止は stop(); スキップボタンは、ボタン(インスタンス名;skip)を作って skip.gotoAndStop(1980); クリックしたらそのまま最後で停止する。 としています。 分かる方いらっしゃいましたらご回答よろしくお願いします><

    • ベストアンサー
    • Flash
  • FLASH8でActionscriptが動きません

    FLASH8のActionscriptを使って簡単なイベント処理を実行したいのですが、うまくいかず困っています。 conts1_btnというインスタンス名を付けたボタンをクリックしたら、Contents1というラベルを付けたフレームに飛ぶという処理です。 以下、そのコードです。 function go_conts1(btn1event) { this.gotoAndPlay("Contents1"); } conts1_btn.addEventListener(MouseEvent.CLICK,go_conts1); FLASH CS3の参考書を見て、記述したのですが8とCS3では記述方法に違いなどあるのでしょうか?宜しくお願いします。

  • JavaScriptのストップウォッチについて

    以下のコードでストップウォッチを作りました ここまではできるのですがここに新たな仕様として ・画面を開いてから3秒後に自動でカウントする というコードを入れたいです ですからスタートボタンをなくしてストップとリセットだけにしたいです 初心者なので変なコードになっているかもしれません その時はこうした方がいい!みたいなことを言っていただけるとすごく助かります どなたかご教授お願いします HTMLコード <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link href="css/aaa.css" rel="Stylesheet" /> </head> <body> <h1>ストップウォッチ</h1> <div id="sec" style="font-size:100px;">0.00</div> <input id="btn_start" type="button" value="Start" onclick="start();"> <input id="btn_stop" type="button" value="Stop" onclick="stop();"> <input id="btn_reset" type="button" value="Reset" onclick="reset();"> <script> var sec = 0.00; var timerId; //スタートボタン function start() { timerId = setInterval(function() { sec += 0.01; document.getElementById('sec').innerHTML = Math.round(sec*100)/100; //もしも0.0で表示したければ10にすること },10); //この数字はカウントの速さ0.00表示の時は10! } //ストップボタン function stop(){ clearInterval(timerId); } //リセットボタン function reset(){ document.getElementById('sec').innerHTML = '0.00'; sec = 0.00; } </script> </body> </html> CSSコード body { background-color:#B2B2B2; } h1 { background-color:#00EFFF; } #sec { background-color:#00EFFF; } #btn_start ,#btn_stop ,#btn_reset { margin-top:25px; background: -moz-linear-gradient(top,#BFD9E5, #63B0CF 50%,#0080B3 50%,#09C); background: -webkit-gradient(linear, left top, left bottom, from(#BFD9E5), color-stop(0.5,#63B0CF), color-stop(0.5,#0080B3), to(#09C)); border: 1px solid #DDD; color: #FFF; width: 60px; padding: 10px 0; }

  • FlashのActionScriptについて

    FlashのActionScriptについて質問です。 Yesか Noを選択する、診断テストみたいなフラッシュを作りたいのです。 1フレームには一番はじめの Yes Noが表示されています。 それのどちらかのボタンをクリックするまで、次のフレームに流れないようにするには、 1フレーム目にstop();でよいのでしょうか? それとも、sotoAndstopとかなのでしょうか? また複数のレイヤーがあるときstop();などのアクションスクリプトは 全部につけなければいけませんか?

  • Flashでボタンをつくっているのですが、actionscriptをつ

    Flashでボタンをつくっているのですが、actionscriptをつかってボタンをクリックさせたいのですが、アクションパネルのところに「現在の選択範囲にアクションを割り当てることはできません。」と表示されてしまいます。 参考書に附属されているflaをみたところ、Actionscript1.0、2.0となっているのですが、作成しているのはActionscript3.0で作っています。 ====== on (release) { /*↑ボタンが押されて離されたら*/ _parent.gotoAndPlay("about"); /*↑「about」ラベルへ移動*/ } ====== このようなscriptをいれたいのですが、うまくいきません。 ムービークリップでボタンを作るまではできました。その後、何かが抜けているのかして上記のようなエラーがでます。 flash初心者のため、どういう風に書いて質問させていただいたらよいのかわからないのですが、参考flaと見比べたときに「シンボル定義」のなかにあるムービークリップがひとつたりませんでした。(このムービークリップは「navigation」というものですのでそれがありません。) 質問するにはあまりにも情報が少ないかもわかりませんが、何卒ご教授いただけると大変助かります。 宜しくお願い致します。

    • ベストアンサー
    • Flash