当我编译w / adobe sdk时,AS3只有应用程序中断,当我编译w / apache sdk时工作(同样的adobe sdk)

时间:2013-12-17 05:16:29

标签: flex air flex4 adobe

当我在adobe sdk(3.90.1210)和apache sdk(包括相同的adobe sdk(3.90.1210)

之间切换时发生了一些奇怪的事情。

我会认为在进行此切换时应该没有差异,因为我的应用程序仅为AS3,没有flex引用,并且底层sdks是相同的

应用程序在两个sdk下构建并运行,但是当我在adobe sdk下运行时,大约一半的图像都没有出现

所以我向下挖,我可以看到没有显示的位图数据对象的HxW设置为零,其他的将它设置为正确的HxW

事实上,这在各种adobe sdks下已经运行了很长时间了,apache sdk中的东西修复了这个问题,想了解它

与此同时,图像中的奇怪与生产过程中被压平或不平衡有关...图像都是png,导入闪存并编译为swc,然后合并为代码

不是一个图形人,希望我不会成为一个......已经戳了戳而且无法想象它的那一面......

建议?

一个想法是通过我们的数百张图片返回并用一些photoshop批处理过程将它们弄平(不平坦?无论如何)...这不会很有趣

或者我可以坚持使用apache sdk ...这让我有点紧张,因为我不知道它带来了什么魔法

想法?还有谁看到这个?

感谢

1 个答案:

答案 0 :(得分:0)

为了避免进一步延伸对主要问题的评论,我会把它归结为答案。

有三个用于Flash开发的官方 SDK。还有其他几个(如Starling)与Adobe没有任何关系,因此我们不会计算这些。

  1. Flash SDK - 这是Flash所有内容的基础,并且仅由 开发。您可以在此SDK中找到您的核心课程(DisplayObjectObjectNumberSystem等)。无论您正在构建什么,每个Flash应用程序都必须包含此SDK。
  2. Flex SDK - Flex是最初由Adobe开发的GUI框架。在大约两年前的v4.6之后,Adobe将该框架捐赠给了Apache。从那时起,Apache一直在开发相当一致的开发框架。我们目前处于4.11,未来几个月将有4.12。这个框架也是开源的,所以部分是社区开发的,部分是Apache开发的。 Flex中有两个主要的不同GUI框架:MX和Spark。 MX不再处于开发阶段,而Spark正在开发中。你不应该混合两者中的组件。
  3. AIR SDK - 这是Adobe Integrated Runtime。 AIR允许您在各种平台上将Flash应用程序作为本机应用程序运行。 AIR SDK是Flash和本机平台之间的桥梁,仅此而已。它由Adobe开发 并且是封闭源代码。除了Adobe承诺在可预见的未来继续支持Flex和MXML之外,Apache没有参与这个项目。
  4. 所以考虑到这些事情,让我们来看看他们是如何互动的。正如我所说,Flash SDK包含在所有Flash应用程序中。 AIR和Flex SDK使用Flash SDK中的类在ActionScript 3(Flex不是用MXML构建)中构建。 AIR SDK用于构建本机应用程序,这是唯一应该使用的应用程序。 Flex SDK是一组GUI组件,可以使构建界面变得简单,并且可以在Web应用程序和AIR应用程序中使用。

    Flex SDK可以在没有AIR SDK的情况下存在,并且AIR SDK可以在没有Flex SDK的情况下存在。两者之间绝对没有依赖。为了统一,Flex和AIR SDK通常组合到一个文件夹中。这个意味着它们是相同的SDK或以任何方式相关,只是这就是SDK的加载方式。这是Adobe多年前在开发Flex时的易用性决策。

    因此,如果您的AS3项目使用相同的AIR SDK版本是您的Flex应用程序,并且在编译AS3时遇到编译器错误,那么必须是您项目中的Flex。可能是用于进行SOAP调用的Formatter或RPC类。您需要找到并摆脱它或从Flex SDK导入正确的SWC文件,假设它不是GUI组件。