0

Flex Web アプリケーションの swf ファイルだけを更新すると、次のエラーが発生します。

Flex エラー #1001: RSL とのダイジェストの不一致

これが発生する理由は理解していますが (RSL の catalog.xml にあったダイジェストが、Flex Web アプリケーションの swf ファイルが期待するものと一致しないため)、Flex Web アプリケーションだけを正常に更新する方法が見つかりません。私の質問は、Flex 3.6 SDK で ANT を使用してこれを行うにはどうすればよいですか?

すべての RSL の compc タグで「compute-digest」プロパティを false に設定して、Flex Web アプリケーションがダイジェスト値を無視するようにしました。

<compc compiler.as3="true" 
  output="${temp-swc-dir}/@{name}.swc" 
  incremental="false" 
  fork="false" 
  compiler.show-deprecation-warnings="false" 
  compiler.verbose-stacktraces="${VERBOSE}" 
  compute-digest="false"
  >

しかし、mxmlc が実行されると、ダイジェストに関する言及に失敗します。mxmlc タグに変更が必要なものはありますか?

<mxmlc file="${target-dir}/@{build-directory}/revolution/src/${SWF_NAME}.mxml" 
    output="${target-dir}/@{build-directory}/${SWF_NAME}.swf" 
    actionscript-file-encoding="UTF-8" 
    keep-generated-actionscript="false" 
    incremental="false" 
    debug="@{qa-build}" 
    fork="false" 
    static-link-runtime-shared-libraries="false" 
    use-network="true"
    >

    <runtime-shared-library-path path-element="${target-dir}/@{build-directory}/swc/as3corelib.swc">
        <url rsl-url="rsl/as3corelib.swf" />
    </runtime-shared-library-path>

    <runtime-shared-library-path path-element="${target-dir}/@{build-directory}/swc/asx.swc">
        <url rsl-url="rsl/asx.swf" />
    </runtime-shared-library-path>

    <runtime-shared-library-path path-element="${target-dir}/@{build-directory}/swc/top-level-tools.swc">
        <url rsl-url="rsl/top-level-tools.swf" />
    </runtime-shared-library-path>

    <source-path path-element="${target-dir}/@{build-directory}/revolution/src" />

    <!-- 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/libs" append="true">
        <include name="framework.swc" />
    </compiler.library-path>

    <compiler.library-path dir="${target-dir}/@{build-directory}/swc" append="true">
        <include name="*.swc" />
    </compiler.library-path>

    <compiler.library-path dir="${target-dir}/@{build-directory}/revolution/libs" append="true">
        <include name="*.swc" />
    </compiler.library-path>

</mxmlc>
4

1 に答える 1

0

Flex にはダイジェストを更新するためのツールが付属していると思います。「ダイジェスト」といいます。Wiki でサードパーティの SWC ライブラリから RSL を作成するために必要な手順を文書化しました ... RSL と SWC が一致しなくなったように見えます。https://dev.c-ware.de/confluence/display/PUBLIC/Creating+RSLs+from+your+3rd+party+libs したがって、使用している SWC から RSL を作成する場合は、安全側。

于 2014-01-17T15:25:33.073 に答える