Flash CS3パーティクルシステムアニメーションの最適化
フラッシュができたのでR CS3パーティクルシステムの降雪アニメーションは希望どおりに動作します。雪景色プログラムコードを最適化するときです。前のチュートリアルで作成したアニメーションをテストした場合、おそらくしばらくすると、アニメーションがコンピューターのリソースを処理する傾向があることに気付くでしょう。このチュートリアルでは、アニメーションをより効率的にするいくつかの方法を見ていきます。

コードは現在、1つのイベントリスナーを使用して、アニメーションの新しいフレームをリッスンしています。新しいフレームごとに、スノーフレーク関数(イベントハンドラー)は新しいスノーフレークを作成し、そのスノーフレークをFlash表示リストに追加します。次に、Math.random()を使用して、このスノーフレークの位置とアルファのプロパティをランダム化します。 2番目のイベントリスナーを使用して、新しいフレームごとにsnowfall関数を呼び出します。降雪機能は、雪片がステージの右端または下端を超えて移動したかどうかを確認します。その場合、降雪機能を繰り返す2番目のイベントリスナーを削除します。これにより、1つのスノーフレークの落下が停止し、他のスノーフレークの落下が継続します。スノーフレーク関数の繰り返しにより、降雪アニメーションが作成されます。今やるべきことは、コードをより効率的に変更することです。

方法1

最初の方法では、プログラムにコードを1行だけ追加する必要があります。スノーフレークがステージを超えたかどうかを確認する条件付きステートメントがスノーフォール関数内に既にあり、そうであれば、イベントリスナーを削除し、スノーフレークの落下を停止します。
スノーフレークは移動を停止しますが、ステージの下部に表示されたままです。まだ表示されていて表示リストにあるため、Flashはこのスノーフレークにリソースを費やします。表示リストからスノーフレークを削除すると、リソースが解放され、アニメーションがより効率的になります。表示リストに不要になった雪片を削除するには、removeChildコードを条件ステートメントに追加します。

if(_Snowflake.y> 370 || _Snowflake.x> 550)
{
stage.removeEventListener(Event.ENTER_FRAME、snowfall);
removeChild(_Snowflake);
}
そうしないと
{_Snowflake.y + = 5; _Snowflake.x + = Math.random()* 10; }


ムービーをテストすると、雪片はステージの右端または下端に達すると消え、アニメーションはより効率的になります。

次へ→

Copyright 2018 Adob​​e Systems Incorporated。全著作権所有。 Adobe Systems Incorporatedの許可を得て、Adobe製品のスクリーンショットを転載しました。 Adobe、Photoshop、Photoshop Album、Photoshop Elements、Illustrator、InDesign、GoLive、Acrobat、Cue、Premiere Pro、Premiere Elements、Bridge、After Effects、InCopy、Dreamweaver、Flash、ActionScript、Fireworks、Contribute、Captivate、Flash CatalystおよびFlash Paper米国および/またはその他の国におけるAdobe Systems Incorporatedの[a]登録商標または商標です。