2010-07-13 61 views
0

我有一个Flex库项目,它具有Flex特定的类和Air特定的类。Flex库项目:NativeMenu与ContextMenu

当我在Air项目中引用库时,编译器会抱怨mx.containers.Panel中的重写contextMenu,它说param应该是NativeMenu类型(而不是ContextMenu)。如果我切换到NativeMenu,那么它编译好。

问题是当我在Flex项目中引用库时。这次它抱怨说它不知道NativeMenu的类型。如果我尝试将其更改回ContextMenu,则会出现与上述相同的错误。

我搜索谷歌无济于事(发现别人遇到相同问题:http://forums.adobe.com/thread/598791?tstart=-1

的文档不帮助太多要么,除了说明上面:http://livedocs.adobe.com/flex/3/langref/flash/display/InteractiveObject.html#contextMenu

我我认为它不可能混合我想要的Flex vs Air SDK,但我希望可能有人想到了这一点。

谢谢!

回答

0

您无法真正使用同一个项目定位Web Flash Player和桌面播放器。

我建议将尽可能多的功能封装到库项目中。然后创建一个Flex项目和一个AIR项目,都使用相同的库项目。

每个相应的项目都可以扩展或替换不同的功能。

+0

感谢您的回复。您的建议存在的问题是,有时它会影响图书馆的目的。在我的情况下,库包含一些处理Air仅NetworkInfo类的通用代码。 NativeMenu是一个不幸的副产品。 – gmoniey 2010-07-13 20:51:44

+0

图书馆项目的目的是在多个项目之间共享代码;我不确定我的建议如何打败图书馆的目的。从逻辑角度来看,您想要用于基于Web的Flex应用程序的库不应包含任何AIR特定的代码。就像您要在Flash Pro中使用的库一样,不应该包含任何Flex特定的代码。 – JeffryHouser 2010-07-13 21:15:55

+0

我想也许我最初的解释并不完全清楚。我的问题是图书馆有Air&Flex代码。当在AIR项目中使用库时,一切都很好。当在FLEX项目中使用库时,出现上述错误。不幸的是,就我而言,将功能下移到库是导致此问题的原因。 – gmoniey 2010-07-14 21:11:23

0

我不确定这是否是完全相同的问题,但我遇到了能够引用Flex库项目中的AIR库的问题,并找到了(相当简单的)解决方案。

使用Flash Builder 4.5创建Flex Library项目时(右键单击.. New .. Flex Library Project),在底部会出现一个“包含Adobe Air Libraries”复选框。必须检查该内容,否则将不包含AIR库。

当您选择在下拉列表中使用的SDK/AIR版本时,该消息还应指出您的应用程序所需的最低AIR版本。