好奇心に駆られて、FlexApplicationで使用されるライフサイクルを理解しようとしています。
それで、私はこの議論について少し研究しました。FlashPlayerで使用される2つの重要な概念は次のとおりです。
- SWFフレーム:グラフィカルコードをコードとして含む論理ユニットです
- Flash Playerフレーム:Flashランタイムが画面を更新するために使用し、frameRateプロパティで定義される時間間隔です。
もしそうなら、これら2つの概念の関係を説明していただけますか?特に、彼らは一緒にペアになっているのですか?
主なルールは次のとおりです。FlashPlayerはswfでストリーミングします。完全なSWFフレームが読み取られるまで、FlashPlayerはそれをレンダリングできません。
私が理解する必要があることを説明しようと思います。簡単にするために、SWFFR1とSWFFR2の2つのフレームアプリケーションがあるとします。
一般に(たとえばCS4では)フレームは、as3コードを付加できる論理ユニット(ShowFrameタグで区切られる)と見なされます。これは、swfファイルの簡略化されたバージョンだと思います。
- ヘッダー//frameRateはここで定義されます
- シンボル、クラスなど…//これはFR1 === ShowFrame ===
- シンボル、クラスなど…//これはFR2です===ShowFrame===終了
FR1とFR2の2つのフレームがある場合、FlashはFR1の実行を開始し、次のフレーム(FR2)に進みます。実行を停止しない場合、Playerは実行し、FR1とFR2に含まれるコードを無限ループでレンダリングします。逆に、FR2などで実行を停止すると、フラッシュプレーヤーはFR2に含まれるコードの実行をループします。
では、Flash PlayerフレームはSWFフレームごとに何度も発生する可能性がありますか?
FR1がダウンロードしているとき(FR1が完全にロードされていないとき)、enterFrameイベントはありますか?FR1が完全にロードされたときに最初のframeEventが発生しますか?FR1はどの期間レンダリングされますか?別のシナリオでは、停止コマンドをFR1に呼び出した場合、指定したレートでenterFrameを取得します(現在のフレームはFR1です)。その間、FR2はダウンロード中です。終了したら、次のフレーム(FR2)に進みます。FR2はどの期間レンダリングされますか?Flash PlayerはFR2を次の時間間隔にレンダリングしようとしますか?
この単純なシーケンスを考慮に入れてください。
- FR1はダウンロード中です
- FR1は完全にダウンロードされています
- FR1はstop()メソッドを呼び出し、その間FR2はダウンロード中です
- FR2は完全にダウンロードされています
- FR2に移動
- FR2はstop()メソッドを呼び出します
- 等々
Flash PlayerのenterFrameイベントが発生したときに、アンダースコアを付けていただけますか?
お時間をいただきありがとうございます。よろしくお願いいたします。Flex_Addicted。