Flash Builder如何确定要包含哪些sdk库?

时间:2011-07-02 00:05:32

标签: flex flash-builder

在Flash Builder中创建新项目时,如何确定要在构建路径中包含哪些sdk库?

如果我创建一个新的纯 Actionscript 项目并选择Flex 4.1 ,则以下库将显示在构建路径中:

  • playerglobal
  • TextLayout的
  • OSMF
  • 闪存集成
  • 柔性
  • 应用

如果我返回并切换到Flex 3.5 ,则只包括:

  • playerglobal
  • 柔性
  • 应用

如果我制作新的 Flex Web 项目并选择Flex 3.5 ,则其中包含:

  • playerglobal
  • 框架
  • 自动化
  • automation_agent
  • automation_dmv
  • automation_flashflexkit
  • datavisualization
  • QTP
  • RPC
  • 应用

这些值是在Flash Builder中硬编码还是以某种方式从SDK配置文件中读取它们?我查看了所有xml配置文件,如flex-config.xml和air-config.xml,看起来这些信息在任何地方都不存在。

感谢。

3 个答案:

答案 0 :(得分:4)

是的,它内置于框架swc中。您可以在框架目录的/frameworks/build.xml文件中找到引用及其链接位置。

所以你可以编辑这个构建文件,重建swcs然后使用它们,它们会链接你喜欢的方式。

例如,(来自Flex 4.5.1构建文件):

  <target name="authoringsupport" description="Builds authoringsupport.swc">
<compc static-link-runtime-shared-libraries="true" fork="true" output="${basedir}/libs/authoringsupport.swc" include-classes="AuthoringSupportClasses" locale="" accessible="true">
  <source-path path-element="${authoringsupport.dir}/src"/>
  <library-path dir="${authoringsupport.dir}/libs"><include name="FlexContentHolderThumbnail.swc"/></library-path>
  <external-library-path dir="${basedir}/libs">
      <include name="player/${playerglobal.version}/playerglobal.swc"/>
      <include name="framework.swc"/><include name="mx/mx.swc"/>
      <include name="flash-integration.swc"/>
      <include name="textLayout.swc"/>
  </external-library-path>
  <jvmarg line="${compc.jvm.args}"/>
</compc>

所以它在技术上并没有硬编码到flash构建器中,而是在swc中用于那个sdk。 (但你可以改变它,如上所述)。 :d

答案 1 :(得分:4)

经过大量的试验和错误以及使用反编译器的一些检查后,我得到了答案:

  1. Flash Builder从sdk frameworks目录加载flex-config.xml或air-config.xml文件(取决于项目类型)。
  2. 它遍历library-path中列出的每个条目,library-external-path如果它是SWC,则将其添加到类路径中。如果条目是目录,则扫描该目录以获取SWC并包含它们。
  3. 每个项目类型都有一个硬编码的排除列表,告诉Flash Builder哪些SWC会离开类路径。对于一个简单的动作脚本项目,此列表有17个项目。对于Flex Web项目,该列表仅包含flex.swc。此排除列表将写入.actionScriptProperties文件。
  4. 任何剩余的(未排除的)SWC会自动添加到类路径中。 .actionScriptProperties文件中不需要输入。 (即您可以在frameworks / libs目录中抛出任何扩展名为.swc的文件,Flash Builder将包含它。)

答案 2 :(得分:2)

我创建了一个Flex 4.1项目,并在以下位置检查了Flex 4.1 SDK的flex-config。我认为这是构建路径中包含的swc文件的来源 - 它们与我的项目相匹配:

C:\ Program Files \ Adob​​e \ Adob​​e Flash Builder 4 \ sdks \ 4.1.0 \ frameworks \ flex-config.xml

enter image description here