2009-08-31 4 views
3

Flex Builder 3で2つのビルドを生成する方法:1つは "-use-network = true"、もう1つは "-use-network = false"ですか?私は<strong>2つの</strong>異なる展開シナリオの下で実行する必要はありますFlexアプリケーションの構築だ

まず、アプリケーションはウェブ上でホストされます。 SWFは、Flex Builder 3のデフォルトビルドフラグ"-use-network=true"であるネットワークアクセスを必要とするように、いくつかの外部リソース(イメージ、テキスト)をロードします。私は特別なことをする必要はありません。それだけで動作します。

第2に、SWFをホストしているindex.htmlを起動するために、自動実行を有効にしてアプリケーションがCDに書き込まれます。 SWF まだは、サブフォルダ内のCDにある同じ外部リソースをロードできる必要があります。これらのファイルはCD上にあるため、ローカルと見なされるため、フラッシュセキュリティでは、"-use-network=false"のフラグを使用してSWFを構築する必要があります。 FlexプロジェクトのPropertiesダイアログの "Flex Compiler"にある "Additional compiler arguments"テキストボックスに追加します。

期待どおり動作しますが、退屈なの場合は、そのフラグを追加または削除するためにFlex Builderプロジェクトの設定を手動で変更する必要があります。

理想的には、私はちょうどたら、プロジェクトをビルドし、複数の出力フォルダがしたい:ネットワーク展開シナリオのための1、およびローカル展開シナリオのために別のものを。

これを行うにはどうすればよいですか?移動する方法をAntに移すか、より単純な方法がありますか? Antのビルド構成が正しい場合、そのような複数のビルド構成を共有する例がありますか?

ありがとうございました!

答えて

7

あなたがAntビルドの周りに頭を抱えたら、あなたの人生はずっと楽になります。複数のビルドファイルをビルドすることは1つのビルドファイルと同じですが、適切な設定でビルド内に追加のタスクを追加するだけです(複雑な操作も可能ですが、複雑さが増します)。

したがって、 Flex Ant Tasks example from the docsに拡大し、このような何か作業をする必要があります(テスト済みではない):

<?xml version="1.0" encoding="utf-8"?> 
<!-- myMXMLCBuild.xml --> 
<project name="My App Builder" basedir="." default="main"> 
    <taskdef resource="flexTasks.tasks" classpath="${basedir}/flexTasks/lib/flexTasks.jar" /> 
    <property name="FLEX_HOME" value="C:/flex/sdk"/> 
    <property name="APP_ROOT" value="apps"/> 
    <property name="DEPLOY_DIR" value="c:/jrun4/servers/default/default-war"/> 
    <target name="main" depends="clean, compile1, compile2"> 
    </target> 
    <target name="compile1"> 
     <mxmlc 
      file="${APP_ROOT}/Main.mxml" 
      output="${DEPLOY_DIR}/Main.swf" 
      actionscript-file-encoding="UTF-8" 
      keep-generated-actionscript="true" 
      incremental="true" 
      use-network="true" 
     > 
      <!-- Get default compiler options. --> 
      <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/> 

      <!-- List of path elements that form the roots of ActionScript 
      class hierarchies. --> 
      <source-path path-element="${FLEX_HOME}/frameworks"/> 

      <!-- List of SWC files or directories that contain SWC files. --> 
      <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true"> 
       <include name="libs" /> 
       <include name="../bundles/{locale}" /> 
      </compiler.library-path> 

      <!-- Set size of output SWF file. --> 
      <default-size width="500" height="600" /> 
     </mxmlc> 
    </target> 
    <target name="compile2"> 
     <mxmlc 
      file="${APP_ROOT}/Main.mxml" 
      output="${CD_DEPLOY_DIR}/Main.swf" 
      actionscript-file-encoding="UTF-8" 
      keep-generated-actionscript="true" 
      incremental="true" 
      use-network="false" 
     > 
      <!-- Get default compiler options. --> 
      <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/> 

      <!-- List of path elements that form the roots of ActionScript 
      class hierarchies. --> 
      <source-path path-element="${FLEX_HOME}/frameworks"/> 

      <!-- List of SWC files or directories that contain SWC files. --> 
      <compiler.library-path dir="${FLEX_HOME}/frameworks" append="true"> 
       <include name="libs" /> 
       <include name="../bundles/{locale}" /> 
      </compiler.library-path> 

      <!-- Set size of output SWF file. --> 
      <default-size width="500" height="600" /> 
     </mxmlc> 
    </target> 
    <target name="clean"> 
     <delete dir="${APP_ROOT}/generated"/> 
     <delete> 
      <fileset dir="${DEPLOY_DIR}" includes="Main.swf"/> 
     </delete> 
    </target> 
</project> 

を注意点として、あなたは日食/ Flash Builderであなたがかもしれないとしてもincrease the memory now Antのビルドを実行しようとしている場合。

関連する問題