2011-07-20 6 views
0

私は基本的に水平に移動する静止ムービークリップが79個あり、さらにムービークリップが7個あるゲームを作成しました。ますます動くムービークリップを追加すると、ラグが上昇し始めます。ゲームループは基本的にはムービークリップのx座標をインクリメントするので、ゲームループに問題はないとは思いません。ムービークリップがたくさんあります。

通常は、一定数のムービークリップを超えるとフラッシュが遅れますか? 正常な場合は、ゲームのパフォーマンスを向上させるにはどうすればよいですか?

とにかく、これはゲームループからの更新方法である:あなただけのx軸上の表示オブジェクトを移動する場合

public function update():void 
    { 
     //cek kondisi untuk melakukan spawn char 
     spawnChar(); 

     //cek kondisi untuk melakukan spawn stand(stand diisi oleh pedangang di zona) 
     spawnStand(); 

     //cek tiap char untuk tiap kondisi sekaligus assign depth yg sesuai; 
     for (var i:int=0; i<mArrForeObjects.length; i++) 
     {        
      mArrForeObjects[i].update(); 
      if (mArrForeObjects[i] is Char && mArrForeObjects[i].x > mWorld.MAP_WIDTH * Tile.TILE_WIDTH || mArrForeObjects[i].x < - mArrForeObjects[i].width || mArrForeObjects[i].y > mWorld.MAP_HEIGHT * Tile.TILE_HEIGHT + mArrForeObjects[i].height || mArrForeObjects[i].y < 0) 
      { 
       //jika di luar peta, hapus char ini 
       delChar(i); 
      } 
     } 
    } 

THX

+0

は、一度に画面上のすべての96本のムービークリップはありますか?他の7つは同時に動いていますか? spawnChar、spawnStand、およびdelCarで何が起こっていますか? – Corey

+0

はい、すぐに表示されます。 spawnChar、spawnStandは基本的に特定の条件に基づいたムービークリップを追加するだけです(それはifとcoupleのaddchildです)。そしてdelCharはちょうど映画のムービークリップです。私は問題の原因がその機能にあるとは思わない。 – bysreg

答えて

1

、あなたはcacheAsBitmapをtrueに設定してみてくださいすることができますパフォーマンスを向上させます。または、各オブジェクトのビットマップを共有bitmapDataオブジェクトから再描画することもできます。 Here is an interesting article with a performance test

関連する問題