2010-07-13 57 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版本。