- ベストアンサー
フラッシュプレイヤーのバージョンを7にあげるとストップウォッチが作動しなくなる理由は?
- 質問者は、テキストエリアにスクロールバーを設置するために、Flashプレイヤーのバージョンを6から7に上げたところ、ストップウォッチが動かなくなった
- 具体的な使用環境は、Windows XPとFlash MX 2004
- 一体何が原因でストップウォッチが動かなくなるのか、理由を教えてほしい
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>> ソースが長くて申し訳ありません。 こういう場合は長い方が良いです。 勝手に予想して,付け足す部分を考える必要がなくなりますから。 次のスクリプト↓でうまく行くのではないでしょうか? (他に原因があるかもしれないので自信なしですが。) ---------------------------------------------------- function restartTimer() { hours = "00"; minutes = "00"; seconds = "00"; milli = "00"; // ★↓この初期値が必要です。 pauseLength = 0; buttonPressTime = getTimer()/1000-pauseLength; pause(); } // ★↓restartTimer を1回実行しないと, // 初期値定まりません。 restartTimer(); // function pause() { pauseTime = getTimer()/1000; timing = false; } // function unpause() { unpauseTime = getTimer()/1000; pauseLength = (unpauseTime-pauseTime)+pauseLength; timing = true; } // _root.onEnterFrame = function() { totalTime = getTimer()/1000-pauseLength; goTime = totalTime-buttonPressTime; // if (timing) { hours = Math.floor(goTime/3600); minutes = Math.floor((goTime/3600-hours)*60); seconds = Math.floor(((goTime/3600-hours)*60-minutes)*60); // ★大文字小文字↓に注意(goTime の T) milli = Math.floor((goTime-(seconds+(minutes*60)+(hours*3600)))*100); } }; unpausebutton.onRelease = function() { unpause(); pausebutton._visible = 1; unpausebutton._visible = 0; result._visible = 0; }; // (↓勝手に予想して付け足しました) pausebutton.onRelease = function() { pause(); pausebutton._visible = 0; unpausebutton._visible = 1; result._visible = 1; }; ------------------------------------------------ ★印が付いて射いる部分が,訂正部分です。 訂正部分の大半は初期値の設定に関することで, 1箇所だけが大文字小文字のケアレスミスです。 Flash Player 7 からは, 加算後代入などや IF判定する場合, 変数に初期値が必要です。 未定義の変数は,何も加算できませんし,falseでもありません。 例えば, A = A+5; trace(A); FlashPlayer6では, デフォルトで初期値のない変数の初期値は 0 になりますから, A = A + 5; は A = 0 + 5; となり, trace(A); は 5 になります。 FlashPlayer7では, デフォルトで初期値のない変数の初期値は undefined (見つからず)ですから, A = A + 5; は A = undefined + 5; となり, trace(A); は NaN (非数) となります。 あと,最初の関数 function restartTimer() は,スクリプトからはいつ実行されるのかわかりませんが, これを実行しないと,初期値の大前提が定まりませんから, すぐ下に, // ★↓restartTimer を1回実行しないと, // 初期値定まりません。 restartTimer(); を入れました。 その他,大文字小文字も区別(別のもの)とされますから,要注意です。 簡単に言うと, 「ないものはない!(決して0ではない)」,「大文字と小文字は違う!」 という当たり前のことが当たり前になったということです。
お礼
返事が遅くなって大変申し訳ありません。 アドバイスいただいた通りにやってみたところ、ストップウォッチが作動しました。 本当にありがとうございます。 わかりやすい説明もいれて下さって、本当にありがとうございます。理解する事ができました。