2008-12-05 54 views
1

是否可以在Flash(cs4)SWF文件中使用Flex 3组件/代码?如何在Flash文件中使用FLEX 3组件?

我知道它可能在相反的方向。

+0

有人知道是否可以用Flex 4来完成? – msemelman 2010-11-18 02:40:02

+0

我经常这样做 - 创建一个As3库项目,转到属性编译器设置(FB4),浏览到flashbuilde 4 \ .. sdks \ libs - 选择flex.swc。使用命名空间mx_internal;我使用mx.collections.ArrayCollection相当有用所以它的有用 – MikeW 2012-03-06 06:25:17

回答

1

通过我的最小测试看起来您在构建“纯粹AS3”项目时不能使用Flex组件。(我们可以开始称它为PAS3或类似“passé”或“pastry”):

我做了一个公认的有限测试,创建一个AS类作为“文档类”的测试项目,会实例化和addChild一个mx.controls.Button。我将hasseg提到的路径中的整个mx包复制到项目源路径中。

这是我发现:

  1. 通过去除一定Version.as文件使用mx_internal,我得到的Flash IDE编译我的测试项目没有任何警告。尽管如此,舞台上没有出现。
  2. 使用Flex Builder(以及flex编译器,显然)我也设法编译了这个项目,没有错误。我在代码中加入了断点,并观察它在调试器中自行构建。这些组件完美实例化,但仍然没有出现在舞台上。这个swf也使浏览器无数次崩溃。
1

我自己并没有在“纯AS3”项目中使用Flex代码,但我不明白为什么你不能这么做。

你可以从那里下载Flex SDK并获得Flex组件,无论是作为一个swc文件(下/frameworks/libs)和AS3源代码(/frameworks/projects/framework/src下)。

0

一般来说,你需要使用MXML初始化Flex框架和使用Flex组件。从Adobe

迈克钱伯斯说:

没有在一个AS项目仅使用Flex框架的支持。虽然这在理论上是可行的,但您必须手动引导Flex处理的很多应用程序初始化代码(这些代码相当复杂)。 - Source

要了解复杂程度,您可以告诉编译器保留从MXML生成的中间AS3文件。打开AS3项目属性并将-keep-generated-actionscript设置为编译器的参数。编译你的项目,然后查看obj/generated文件夹。使用Flex 4,我得到了13个小文件,其中主文件扩展了spark.components.Application并覆盖了一些方法。

所以这是可能的,但你可能不想这样做。 Flex的目的是让你的生活更轻松,而不是更难。