2

私たちのアプリケーション (ゲーム) では、十分な速度で実行できない場合があります。明らかに、速度を上げたいと考えていますが、その間にこれが発生すると、多くの問題が発生します (または、問題が発生していない場合は、2 つの問題が関連しています)。私たち自身の機能との関連性が最も低いのは、組み込みの Alert.show() メソッドが機能しなくなることです。通常、全画面の透明なボックスが表示されますが、実際のポップアップは表示されません。これは Flex が利用可能なすべてのサイクルを他のタスクに与えているためだと思います。

明確にするために、Flex のコア部分は、この状況では単に機能していません。たとえば、新しい要素が画面に追加され、すべてが発生し、メイン表示キャンバスで addChild() メソッドが呼び出されるコードをステップ実行しましたが、要素が表示されません。その後、更新ループを無効にすると、要素が突然表示されます。

したがって、Flex がまったく同じコードを実行することになっているかどうかに関係なく、どういうわけかそれは何らかの奇妙な方法でブロックされています。前述のとおり、Flex の Alert.show() メソッドでさえ機能しません。

4

3 に答える 3

4

すべての Flash コンテンツはフレームごとに実行されます。Flash は 1 フレーム分のコードを実行してから画面を更新し、次のフレームの更新まで待機します。

Flash が指定されたフレームレートに追いつけない場合、発生するのは、フレーム更新の間に待機する代わりに、その間に待機することなくできるだけ速く更新することだけです。したがって、目に見える唯一の違いは、フレームの更新頻度が低いことです。パフォーマンス上の理由で、コードがスキップされたり、イベントが削除されたり、画面の再描画がスキップされたりすることはありません (新しいバグが見つかった場合を除きます)。

したがって、最も可能性の高い原因は、時間に大きく依存するコード (同じフレームで 2 つのタイマーがトリガーされることを期待するコードなど) に問題があるか、誤診されている他の問題があることです。(たとえば、速度低下がバグの原因ではなく、速度低下の原因となっているバグがある可能性があります。)

于 2008-09-25T03:01:39.483 に答える
0

Flex に独自の追加のパフォーマンス処理があるかどうかはよくわかりません。しかし、純粋なアクション スクリプトの場合、発生する唯一のことは、フレームレートがクロールまで遅くなることです。通常はすべてが遅くなります。非常に大量の透明またはマスクされたオブジェクトをスタックすると、奇妙な動作が発生する可能性がありますが、それはもっと目立つはずです。

そして、Flex でゲームを作成することはあまり良い考えではない (フレームワークのパフォーマンス オーバーヘッドのため) と言うのは少し遅いと思います ;)

于 2008-09-24T11:46:36.393 に答える
0

私は FLEX 3 (actionscript3) でゲームを作るのが好きです。これは、Flash CS3 と比較すると、実際には非常に便利なソリューションです。手間のかからない優れたデバッグ環境です。もちろん、どちらが優れているかはゲーム スタイルによって異なります。多くのグラフィックスが必要な場合は Flash の方が好きかもしれませんが、Flex では外部の画像やコンポーネントなどを使用できます。ここで Flex XML プロジェクトについて話しているわけではないことに注意してください。

パフォーマンスの問題への回答: たとえば古い MacOSX マシンを使用して、非常に遅いマシンで何が起こるかを確認できます。いくつかの解決策は次のとおりです。 - マシンが古い場合、x++ y++ ピクセルを超えるオブジェクトを移動します。

タイマーを使用して、マシンの速度を検出できます..

于 2008-09-24T12:34:11.787 に答える