• ベストアンサー

Flash 8 レベル反復

Flash8 Win-XP で作業しています。 SharedObject を利用したデータを制作していますが、ある「btn_script」を押すと、 1 つのアクション内で 256 レベルの反復を超えました。 無限ループの可能性があります。 このムービーではこれ以上のアクションの実行は無効になります。 と「出力」されます。 この警告はなにを意味するものでしょうか? ・データ全体に関する「警告」でしょうか? ・このスクリプトのみに関する「警告」でしょうか? ご存知の方教えていただけませんでしょうか?

  • mcx
  • お礼率50% (23/46)
  • Flash
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

for や while でループの終了条件が成立せずループから抜け出せなくなった場合、システムのフリーズなど最悪の事態を避けるために、Flash Player は警告を出してスクリプトの実行を中断するかどうかを尋ねてきます。 その警告もこれと同様の措置です。一箇所で処理が延々と繰り返されるだけで先に進めなくなった時、システムを守るために強制的にスクリプトが中断されます。 例えば、関数内で自分自身を呼び出す”再帰呼び出し”において、再帰を終了する条件に不備があるとその警告が出ます。 //*** //呼び出した回数 times = 0; //自分自身を呼び出す関数 function Self_Call() { //呼び出した回数を数える times++; trace( times ); //自分自身を再度呼び出す Self_Call(); } Self_Call(); //*** 関数を呼び出すと、一旦もとの流れから外れて関数で定義された処理を行い、関数が終了すると、もとの流れに戻ってきて続きのスクリプトが実行されます。 ActionScript では関数内で自分と同じ名前の関数を呼び出すこともできますが、その際は、ある条件になったら呼び出しをやめるように設計しなければなりません。 しかし、上記のスクリプトでは呼び出しの終了条件を定めていないため、一度関数が呼び出されると延々と自分自身を呼び出し続け、もとの流れを遠く離れてどんどん支流に逸れていく一方です。 結局、いつまでも最初の Self_Call(); を終了することができないために、もとの流れには二度と戻れません。これはつまり、スクリプトの実行がこの一箇所で滞ってしまってここから先に進めないということなので、再帰呼び出しを 256 回繰り返した時点でスクリプトの実行そのものが強制的に打ち切られます。 ご質問の件は、何が原因で先に進めなくなっているのか分かりませんが、「特定の条件が成立するまで同様の作業を繰り返す」というような再帰的な特性を持つ処理に何か問題があるのではないでしょうか。 再帰呼び出しでは、終了条件を入れたつもりでも実は誤りがあって条件が成立せず、終了できなくなっていることがよくあります。 SharedObject に書き込むデータを収集する・ SharedObject から取り出したデータを解析して利用する処理あたりに、再帰的な特性があるように思います。 データが複雑すぎる入れ子構造になっていないかどうか、解析する時に終了条件がきちんと成立するかどうかなどを、確認してみてはいかがでしょう。

mcx
質問者

お礼

大変詳細にご説明いただき有難うございました。 SharedObject でのcookie容量を超えたデータの保存によるエラーかと考えて質問させていただきましたが、システム上の永遠反復によるものだとのことで、システムの設計により解消できるとのことですね。 早速考え直してみます。

関連するQ&A

  • シャボン玉を消えるようにしたい。FLASH

    FLASH8を使用しています。 シャボン玉のムービークリップをクリックすると、 ムービークリップ内の動画(*シャボン玉が割れる)が再生されます。 その後、このムービークリップが消えるようにしたい(ループしてしまう)のですが、 どうやったら良いのか分かりません。 シャボン玉のムービークリップに、 クリックしたら消えるスクリプトだと、*動画が再生されずに消えてしまいます。 よろしくお願いします。

  • 携帯FLASHのスクリプト

    アクションスクリプト初心者です、質問よろしくお願いいたします。 ランダムでまばたきするなどの簡単なループアニメをflash4(MX)で書き出して、携帯で観覧できるアニメーションを作っています。 アクションスクリプトの勉強も兼ねて、そのループアニメに「1」ボタンを押すと花がフェードインして消える、と言ったボタン対応のアニメーションに挑戦中です。フレーム1でstopさせて、フレーム2にそれぞれインスタンス名をつけたシンボルを設置させています。ボタンにはこんな風に書いてみました↓ on (keyPress "1") { _root.hana.play(); } on (keyPress "2") { _root.hoshi.play(); } on (keyPress "3") { _root.heart.play(); パソコン上ではちゃんと動いてくれたのですが、flash4では対応していないスクリプトがあるようで携帯では動いてくれませんでした。 そこでお教え頂きたいのですが、このようなボタン(キー)に反応したアニメを作る場合flash4(flash lite)ではどのようにスクリプトを書いたらいいのでしょうか…? 携帯向けフラッシュを作成された事のある方、FLASH4に詳しい方、どうかご教授よろしくお願いいたしますm(__)m

    • ベストアンサー
    • Flash
  • phpによるflashにデータを読み込む

    お世話になっております。 現在、MySQLのデータをFlashにで表示させたいですが、なかなか うまく行きません。(MySQL -> PHP ->flash) どなたか、ご教授よろしくお願いします。 http://oshiete1.goo.ne.jp/qa5664918.html こちらの php ファイルで表示されるデータをflashに読み込ませて flashに表示させたいです。 flashに書いたアクションスクリプトは http://oshiete1.goo.ne.jp/qa5673292.html にあります。 php側はブラウザで打つとちゃんとデータが出力されます。問題としては、flash側のアクションスクリプトの問題だと思いますが、、、 実際どのカテゴリー投稿したらいいか困って、両方出します。 ぜひ、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • Flash MCのモーショントウィーン

    Flash CS5 ActionScript 3.0にて制作しています。 ムービークリップに動きをつけて色を変更するスクリプトを書いています。 ・ボタン1を押すとムービークリップの色が変わる ・ボタン2を押すと10フレーム目に飛んでモーショントウィーン それぞれ機能は正常に動くのですが、ボタン1を押した後にボタン2を押すとモーショントウィーンが動きません。 ボタン2を押した後にボタン1を押す場合は動きます。 ムービークリップのインスタンス名はtest として下記のようなスクリプトを書いています。 どなたか、お力をお貸し下さい。 よろしくお願い致します。 btn.addEventListener(MouseEvent.CLICK, black); black(event:MouseEvent):void { var color = new flash.geom.ColorTransform(0, 0, 0, 1); test.transform.colorTransform = color; } btn2.addEventListener(MouseEvent.CLICK, btn2); function btn2(event:MouseEvent):void{ gotoAndPlay("10"); }

    • ベストアンサー
    • Flash
  • Flashにて斬新なホームページ。ループ。

    お世話さまです。 斬新なホームページの制作を考えております。 ファミコンのドラクエのマップようにずっと下の方に移動すると またページ上部にもどっているような 無限ループするようにつくれるのでしょうか。 当方、Flash8、Dream weaverを使用しております。 道楽に付き合わせてすみませんが、 どなたかご存知の方がいらっしゃったら よろしくお願い致します。

  • Flash Liteで作成したFlash待ち受け画像をループ再生する方法

    超初歩的な質問になりますが、Flash Lite1.1で作成したFlash待ち受け画像を携帯上でループ再生する方法を教えて下さい。 Flash講座などでswfファイル自体にループ再生するよう指示するアクションスクリプトの書き方を探して試してみましたが、ループしませんでした。auのFlash lite対応機種2台で試しました。 単に書き方が間違っているのでしょうか?それとも、ループ再生させるアクションスクリプトはFlash liteには対応していないのでしょうか?何か別の方法があるのでしょうか?アクションスクリプトは全くわからないので、検討もつかないという状態です。 どうぞ宜しくお願いします。

  • フラッシュ サウンドのフェードアウト(シーン終わりで自動的に)

    はじめまして。アクションスクリプトに不慣れで、 うまくいかなくなってしまったので、質問させてください。 フラッシュムービーを制作しているのですが on/offボタンでBGMがループして鳴るような設定を 以下を参考にさせていただき、つけました。 http://oshiete1.goo.ne.jp/qa1789705.html そしてさらに私がしたいことは、 「その音をつけたシーン」が終わる直前で、 フェードアウトしながら音を消してから次のシーンに行くことなのですが(音を鳴らしていた場合)、 その際はタイムラインにどのようにアクションスクリプトを記入すればよいのでしょうか??。 それとも、on/offのオブジェクトにアクションスクリプトをつけるべきなのでしょうか?。 stopAllSounds();を記入すると「プツっ」といきなり音楽が途切れてしまいますよね。 そこで自分なりに調べて.setVolumeなども試してみましたが、どうもうまくいきません。 私が勉強不足なので、簡単なことなのかもしれないのですが、 どなたか詳しい方、お教えいただければとてもうれしいです。

    • ベストアンサー
    • Flash
  • Flashでのトゥイーンとレイヤー

    Flash4.0で本と格闘しながらムービーを制作しています。 アクション以外のものはだいたいわかりました。 が、本には「1つのレイヤーで1つのキャラクターだけしか入れられない」とありました。 たとえば、花の芽が出て葉が出て、蕾から花咲くまで滑らかに表現するとしたら、 やはりレイヤーをそれぞれ分けなければいけないのでしょうか。 OSはWin2000です。

  • 【これどうやって作ればいいの!?】Flashを使っ

    最近、Flashを使ったムービーの制作依頼がきました ざっとですが以下が詳細です。 ・7インチの画面に本物のミニカーを置き、そのミニカーが  あたかも走っているように見える道(コース)をアニメーションで作って欲しい ・コースのムービーは基本ローテーションでずっと流す ・スタートからゴールまでのムービーが繰り返されるが、  単調な直線ではなく、途中カーブや、整備士の人がでてきて  修理するなどのおもしろさも入れて欲しい 制作費用は35000円くらいでやってほしいと言われたのですが、 少々割に合わない気もしています‥ 制作行程としては、Illustrator等で道(コース)のイラストを作成し、 それをフラッシュ(現在のAnimate)上に張り付け、タイムラインで 一周するムービーを作り、アクションスクリプトで繰り返し のようにしようかと考えているのですが、もっといい方法、 またはご指摘等アドバイスいただけますと幸いです。 あまりFlashを使って何かを制作してきた訳でもないので、 自分のやり方に不安を感じてます よろしくお願いいたします。

  • Flashでアルファが効かない

    文字のフェードイン・フェードアウトを設定するため、アルファを利用してますが、今まではきちんと作動したのに、今回に限り、ムービープレビューで見ると、アルファが反映されてません。制御→再生ではうまく見えますが、制御→ムービープレビューではうまくみえません。何か根本的な環境設定でしょうか?Flash 9でaction script2.0で制作してます。こんなの初めて、パニックです。有識者の方々、ご指導の程、よろしくお願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう