2

我的目标是构建一个与基于 3.5B 到 4.6 的 Flex 版本的客户端(其他库和 Flex 应用程序)兼容的 Flex 库。此外,我希望能够在我的库中尽可能使用最新版本的 Flex 功能,尽管与兼容性相比,这是次要问题。

我有必要使用不大于 3.5B 的 Flex 版本吗?

我在使用 3.5B 时遇到的一个特别困难是,当我将 Flex 静态链接到我的库并在 Flex 4.5.1A 项目中使用它时,它会因编译时错误而失败,例如1044: Interface method get baseline in namespace mx.core:ILayoutElement not implemented by class panels:BasePanel.

运行时共享链接似乎在一定程度上解决了这个问题。当我使用 Flex 集的 RSL 为 Flex 3.5B 编译库时,它会生成一个 swc,可以在我的 4.5.1A 项目中干净地编译并且基本上可以工作,但我对静态选项不起作用这一事实感到不舒服。我觉得以这种方式进行运行时链接似乎很奇怪,因为使用 Flex 3 构建的项目是与 Flex 4 进行运行时链接的(为什么运行时链接不会产生相同的接口投诉?)。

运行时链接看起来很松散(也就是说,我什至可以使用 4.6 构建我的原始项目,只是要非常小心,不要使用 4.6 之前的功能并在 3.5 项目中使用它),我对我目前的水平感到不舒服理解。

4

1 回答 1

3

我有必要使用不大于 3.5B 的 Flex 版本吗?

版本之间的 Flex Framework 类有很多变化。因此,保证 SWC 可用于 Flex SDK 的多个版本的唯一方法是不依赖于 Flex SDK。

在 Flex 3.5B 中创建具有 Flex 依赖项的 SWC 库不一定适用于 Flex 4、Flex 4.5 或 Flex 4.6。

我在使用我们的商业组件时遇到了很多麻烦。以AutoCompleteComboBox为例。我们目前有 5 个不同的版本(Flex 3、Flex 3.2、Flex 3.5、Flex 4 和 Flex 4.5)。每个版本都有特定于该 SDK 版本的错误修复。Flex 3.5 是对组件的完全重写,因为对我们组件扩展的 Flex ComboBox 进行了重大更改。

此外,如果您使用的库是在与当前版本不同的 Flex SDK 版本上编译的,有时 Flex 编译器会给出“奇怪的”编译错误,这些错误可以通过使用与主应用程序相同的 SDK 版本重新编译您的库来解决. 我认为这正是你所看到的。

因此,答案是,如果您想将 SWC 与为多个 Flex SDK 版本创建的项目一起使用,那么保证兼容性的唯一方法是在您的 SWC 中不依赖于 Flex SDK。

于 2012-06-13T20:15:48.337 回答