如何构建与Flex 3.5B到Flex 4.6等客户端应用程序兼容的Flex库?

时间:2012-06-13 19:56:44

标签: actionscript-3 flex flex4 flex3 rsl

我的目标是构建一个与基于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. < / p>

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

运行时链接显得如此软弱(即,我甚至可以使用4.6构建我的原始项目,并且非常小心,不要使用4.6之前的功能并在3.5项目中使用它),我对它感到不舒服目前的理解水平。

1 个答案:

答案 0 :(得分: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相同的SDK版本重新编译库来解决。你的主应用程序。我认为这正是你所看到的。

因此,答案是,如果您希望将SWC与为多个版本的Flex SDK创建的项目一起使用,则保证兼容性的唯一方法是不要在SWC中与Flex SDK相关联。