FlexでMXMLファイルを使用する場合と通常のactionscriptクラスを使用する場合のオーバーヘッドはどれくらいですか?

StackOverflow https://stackoverflow.com/questions/264043

  •  06-07-2019
  •  | 
  •  

質問

ActionScriptファイルを作成するよりも、埋め込まれたスクリプトを使用してMXMLクラスを作成する方がはるかに簡単です。

ただし、MXMLファイルを使用すると、ファイルサイズの面でどのようなオーバーヘッドが発生するのか疑問に思いました。パフォーマンスについては特に心配していませんが、関連性がある場合は、調査結果に興味があります。

明らかに、レイアウトを持つUIコンポーネントについて話しています。 MXMLは視覚化と変更が非常に簡単ですが、何がコンパイルされるのか正確にはわかりません。わずかな違いがあることを望んでいます。

役に立ちましたか?

解決

同じ機能を使用する場合、MXMLはswfをさらに大きくすることはありません。

サイズに影響を与えるのは、Flex SDKとそのコンポーネントの使用です。 MXMLまたはAS3で宣言するかどうかにかかわらず、それらを使用しており、それらのコードはswfに組み込まれています。同様に、Flex RSLを参照しているため、Flexを直接swfに組み込む必要がない場合、どちらの場合も同じサイズになります。データバインディングは多くのイベントとリスナーを作成するため、膨張を引き起こす可能性がありますが、AS3ユーティリティ関数でデータバインディングメカニズムを宣言した場合と同じです。

MXMLは中間AS3コードを生成するため、自分で作成するよりも冗長になる可能性があるため、そこから追加のサイズを確認できます。それを覗いてみると(一般的に理解するのに良い)、生成されたコードを保持するコンパイラ指令で見ることができます。

  

差出人: http://www.flashguru.co.uk / flex-2-compilation-hidden-goodies

     
      
  1. ナビゲータパネルでFlexプロジェクトを右クリックします。
  2.   
  3. コンテキストメニューからプロパティを選択します。
  4.   
  5. プロパティウィンドウでFlexコンパイラを選択します。
  6.   
  7. 追加のコンパイラに-keep-generated-actionscriptを入力します   引数’フィールド。
  8.   
  9. [OK]をクリックして‘変更を適用します。
  10.   
  11. 「実行」ボタンをクリックしてFlexプロジェクトをビルドします。
  12.   
  13. ナビゲータパネルでFlexプロジェクトをもう一度右クリックします。
  14.   
  15. コンテキストメニューから[更新]を選択します。
  16.   
  17. ナビゲータのFlexプロジェクトの下に新しいフォルダが表示されます   ‘ generated’という名前のパネル
  18.   

これは、コンパイラがどこで正しい(または間違った)ことを行っているかを実際に見ることができるため、プロジェクトのデバッグとプロファイリングを開始したら行うべき良いことです。

他のヒント

Flexフレームワークを含めると(MXMLまたは純粋なActionscriptを介して)、最終的なSWFのサイズが大幅に増加します。

1つのボタンで構成されるFlashムービーを作成しました。 MXMLバージョンは175Kでしたが、非Flex Actionscriptバージョンは2Kでした。

私は自分で使用していませんが、このプロジェクトは、より少ない膨張で(一部の)Flex機能を取得することを約束しているようです:

http://code.google.com/p/e4xu/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top