首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当类使用Ant时,只包含Flash Player类,而不是来自库项目的AIR

当类使用Ant时,只包含Flash Player类,而不是来自库项目的AIR
EN

Stack Overflow用户
提问于 2012-11-27 03:53:27
回答 2查看 576关注 0票数 0

我有一个通用库项目(支持浏览器、移动和桌面配置文件)和一个Flex项目,它在浏览器中运行,并依赖于这个库。当我从Flash Builder内部调试或创建主应用程序的版本时,它在浏览器中运行良好。但是,当我从Ant任务创建SWF时,我在运行时收到多个错误:

错误:

代码语言:javascript
复制
VerifyError: Error #1014: Class flash.data::SQLConnection could not be found.

错误:

代码语言:javascript
复制
ReferenceError: Error #1065: Variable _class_embed_css_Assets_swf_1175738391_mx_skins_cursor_BusyCursor_347371275 is not defined.

错误:

代码语言:javascript
复制
ReferenceError: Error #1065: Variable _class_embed_css_Assets_swf_1175738391_cursorStretch_1614050290 is not defined.

错误:

代码语言:javascript
复制
ReferenceError: Error #1065: Variable ImageButtonSkin__embed_mxml_Assets_swf___brokenImage_1468354307 is not defined.

这是我的ANT任务:

代码语言:javascript
复制
<!-- Build and output the Application.swf -->
<target name="Compile Flex" >

    <mxmlc file="${PROJECT_MXML_APPLICATION}" output="${PROJECT_OUTPUT_SWF}">

        <include-libraries dir="${FCLIB_BIN}" append="true">
            <include name="FcLibrary.swc" />
        </include-libraries>

    </mxmlc>
</target>

看起来AIR类正在被编译到SWF中。看起来defaults.css is可能会被FcLibrary defaults.css覆盖。我也不知道该怎么解决。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-27 06:24:13

我通过引用源路径而不是包含SWC解决了这个问题。

代码语言:javascript
复制
<target name="Compile Flex" >

    <mxmlc file="${PROJECT_MXML_APPLICATION}" output="${PROJECT_OUTPUT_SWF}">

        <source-path path-element="${FCLIB_SRC}"/>

    </mxmlc>
</target>

FCLIB_SRC应该类似于"/Users/user/Documents/Workspace/FCLibrary/src".

票数 0
EN

Stack Overflow用户

发布于 2012-11-28 01:20:35

  1. include-library不是要使用的标记。它的确切意思是“将整个库放入生成的SWF中,不管它是否在我的代码中被引用。因此,尝试将其更改为带有子节点的<library-path dir="/where/is/your/library/">从一开始就不是一个为两个运行时编译FcLibrary.swc的好主意。只需为其中任何一个单独构建即可。还要检查您没有在其中嵌入任何外来代码。例如,我所说的外来代码指的是Flex框架代码。除非你之前编译过
  2. 并且你知道你在做什么,否则你会想要引用你最终的build。
  3. ,除非你之前编译过SDK并且你知道你在做什么,否则不要对SDK源代码进行编译。这在时间上是不好的,而且它确实使编译过程变得复杂。例如,一些来源依赖于PBJ编译器的存在,另一些来源假设某些目录包含资产,或者某些路径包含库、区域设置或其他设置,这在第一次可能会出错。
  4. 您注释中的错误是无关的,但它的含义是:您已经使用static-link-runtime-shared-libraries="false"进行了编译,也就是说,您已经指示编译器生成代码,该代码将从它认为它们所在的位置加载RSL。当在使用Flex框架的项目上工作时,这通常是一件好事,因为它可以处理框架库的多次加载,并可以为您的应用程序节省一些缓存。但是,问题是您没有授予Flash player对错误消息中提到的目录的访问权限。默认情况下,在用于访问网络的SWF中加载本地文件是受限制的。要启用它,请转到http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html并将您的目录添加到允许列表中。通常,您的开发环境会为您完成这项工作(您实际上可以在本地完成,也不需要访问internet ),但第一种方法更简单。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13572082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档