No.1ベストアンサー
- 回答日時:
for や while でループの終了条件が成立せずループから抜け出せなくなった場合、システムのフリーズなど最悪の事態を避けるために、Flash Player は警告を出してスクリプトの実行を中断するかどうかを尋ねてきます。
その警告もこれと同様の措置です。一箇所で処理が延々と繰り返されるだけで先に進めなくなった時、システムを守るために強制的にスクリプトが中断されます。
例えば、関数内で自分自身を呼び出す”再帰呼び出し”において、再帰を終了する条件に不備があるとその警告が出ます。
//***
//呼び出した回数
times = 0;
//自分自身を呼び出す関数
function Self_Call()
{
//呼び出した回数を数える
times++;
trace( times );
//自分自身を再度呼び出す
Self_Call();
}
Self_Call();
//***
関数を呼び出すと、一旦もとの流れから外れて関数で定義された処理を行い、関数が終了すると、もとの流れに戻ってきて続きのスクリプトが実行されます。
ActionScript では関数内で自分と同じ名前の関数を呼び出すこともできますが、その際は、ある条件になったら呼び出しをやめるように設計しなければなりません。
しかし、上記のスクリプトでは呼び出しの終了条件を定めていないため、一度関数が呼び出されると延々と自分自身を呼び出し続け、もとの流れを遠く離れてどんどん支流に逸れていく一方です。
結局、いつまでも最初の Self_Call(); を終了することができないために、もとの流れには二度と戻れません。これはつまり、スクリプトの実行がこの一箇所で滞ってしまってここから先に進めないということなので、再帰呼び出しを 256 回繰り返した時点でスクリプトの実行そのものが強制的に打ち切られます。
ご質問の件は、何が原因で先に進めなくなっているのか分かりませんが、「特定の条件が成立するまで同様の作業を繰り返す」というような再帰的な特性を持つ処理に何か問題があるのではないでしょうか。
再帰呼び出しでは、終了条件を入れたつもりでも実は誤りがあって条件が成立せず、終了できなくなっていることがよくあります。
SharedObject に書き込むデータを収集する・ SharedObject から取り出したデータを解析して利用する処理あたりに、再帰的な特性があるように思います。
データが複雑すぎる入れ子構造になっていないかどうか、解析する時に終了条件がきちんと成立するかどうかなどを、確認してみてはいかがでしょう。
この回答へのお礼
お礼日時:2011/03/10 14:24
大変詳細にご説明いただき有難うございました。
SharedObject でのcookie容量を超えたデータの保存によるエラーかと考えて質問させていただきましたが、システム上の永遠反復によるものだとのことで、システムの設計により解消できるとのことですね。
早速考え直してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Word(ワード) Wordのデータが毎回破損してしまう 1 2022/08/24 11:30
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
- その他(クラウドサービス・オンラインストレージ) OneDrive同期解除後、同期できていなかったローカルファイルを復元できますか? 1 2023/03/25 12:38
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/05/23 15:54
- 国家公務員・地方公務員 公務員試験の勉強依存性です。年齢制限過ぎているのにやたら大卒程度の警察官採用試験や都庁採用試験に拘っ 1 2022/03/29 14:33
- 事件・犯罪 脅迫罪や暴行罪の時効および告訴期間中の安全対策について 2 2022/08/30 15:10
- 法学 なぜ日本の有罪率だけほぼ100%の有罪率になっているのか、本当の理由がわかる方は教えて 1 2022/11/22 20:29
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- 格安スマホ・SIMフリースマホ スマホ 2 2023/02/19 23:39
- LINE LINEのアカウントを削除した場合の、トーク履歴のバックアップについて 2 2023/04/02 19:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクリプトが何に記述されてい...
-
Flash4でloadMovieの完了を知る...
-
外部JPG読み込みでのLoading
-
プリローダーで、画像を下から...
-
フレーム内に移動したい
-
エクセルVBA読み込みアドレスの...
-
cookieの保存について
-
ドキュメントサイズの変更
-
メガネのフレームの買い取りに...
-
スライドプレゼンテーション機...
-
MacBook Airで作成するトレス動...
-
静止画をmov形式で保存する方法
-
円を描くように動くアニメーシ...
-
Flash Liteで作成したFlash待ち...
-
iframeはSEO的に不利になる?
-
2倍速を等速動画に(車載動画)
-
【C++】IDirect3DSurfaceのディ...
-
マイナンバーカードや免許証の...
-
メモリに読み込んだ音源のPlayS...
-
suzuka rollOverで画像が徐々...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ActionScript 2.0 再生・停止
-
ActionScriptで決めた時間だけ...
-
Flash Lite 1.1(KDDI)で日数カ...
-
ムービークリップの位置と角度...
-
外部テキスト読み込み、横スク...
-
フレーム内に移動したい
-
ドロップフレームの計算をエク...
-
Access2010でサブフォームのフ...
-
phpで音を鳴らす
-
フレーム内のオプションボタン...
-
【C#】wavファイルの複数同時再生
-
VB6のスクロールバー付きフレー...
-
C#でDLLファイル読み込みを行う...
-
VBで動的に作成したパネルの上...
-
cisco catalystのトラブルシュ...
-
車の運転時のメガネ 縁なし(...
-
Flashで右クリックメニューにつ...
-
WEBブラウザの重複起動の禁止
-
WebBrowserでgoogle検索するには?
-
URLを隠す、または別アドレスな...
おすすめ情報