人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

flashのアクションスクリプトについて

下記のコードのflashを表示すると
数十秒後にブラウザがもの凄く重くなります。
解決するコードを教えてください。

お願いします。


onClipEvent (load) {
c = 50;
i = 0;
}
onClipEvent (enterFrame) {
c++;
if (c > 50) {
c = 0;
if(i > 15){ i = 0; }
i++;
_root.attachMovie("ring", "ring"+i, 1+i);
eval("_root.ring"+i)._x = Math.floor(Math.random() * 1000);
eval("_root.ring"+i)._y = Math.floor(Math.random() * 1000);
}
}

●質問者: worldtravel
●カテゴリ:インターネット ウェブ制作
✍キーワード:C++ FLASH Ring アクション コード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● octech
●20ポイント

attachMovieで同じ名前、同じ高さに配置しているので、特に問題ないように見えますが、attachMovieの直前に以下のコードを入れてみてください。

if( eval("_root.ring"+i) != null ){
 eval("_root.ring"+i).removeMovieClip();
}

自分のところの環境ではこれで特に問題がないようです。

◎質問者からの返答

ありがとうございます。

残念ですがあまり変わっていないような気がします...

ブラウザが重くなると言うよりパソコン全体が重くなります。

他にもお心当たりがありましたら皆さんお願いします。


2 ● okmt_masaaki
●100ポイント ベストアンサー

ルートに↓の書いたらいけると思います。

Flashのヘルプの例そのままです。

var intervalId:Number;

var count:Number = 0;

var maxCount:Number = 15;

var duration:Number = 100;

function createMC():Void {

this.attachMovie("ring","ring"+count,count);

this["ring"+count]._x = Math.floor(Math.random() * 1000);

this["ring"+count]._y = Math.floor(Math.random() * 1000);

count++;

if (count >= maxCount) {

count=0;

}

}

intervalId = setInterval(this, "createMC", duration);

◎質問者からの返答

コードまでありがとうございます。

思い通りの動作になりました。

重くもなく快適です。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ