2009-10-16 62 views
8

我正在開發一個flex應用程序,並且我想爲它添加一個上下文菜單。我知道這個代碼:在flex中的右鍵單擊上下文菜單中隱藏默認選項

var myMenu:ContextMenu = new ContextMenu(); 
myMenu.hideBuiltInItems(); 
var defaultItems:ContextMenuBuiltInItems = myMenu.builtInItems; 
defaultItems.print = false; 

var item:ContextMenuItem = new ContextMenuItem("Go to google"); 
myMenu.customItems.push(item); 
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler); 

this.contextMenu = myMenu; 

但我有一個問題。該菜單顯示了四個默認選項(設置,關於閃光...)我想隱藏它們。使用defaultItems.print = false;我隱藏了打印選項,但我不知道如何隱藏其他人。 有誰知道如何做到這一點? 謝謝。

+0

Kezem可以找到,我就遇到了這個問題,在Flex應用程序這是更換的Java Swing應用程序太工作。在上下文菜單中顯示了一些功能,而設置內容讓我們的用戶感到困惑。我在網上做了一些挖掘,找到了我在下面描述的解決方案。 – 2009-10-16 13:45:51

回答

9

至於ContextMenu參考說,

您不能從上下文菜單中刪除設置菜單 項。 「設置」菜單項在Flash的 中是必需的,以便用戶可以訪問影響其隱私的 設置以及在其計算機上訪問存儲的 設置。您也 無法刪除關於菜單項, 這是必需的,以便用戶可以 找出他們正在使用的Flash Player 的哪個版本。

所以你只需要與SettingsAbout項目生活。有關其他默認項目,請參閱ContextMenuBuiltInItems的參考。

+0

總是有一個解決方法。看看我的答案。 – 2009-10-16 13:44:25

14

有一種技術可以在Flash中從上下文菜單中隱藏設置,關於閃光等。高級概念是在HTML容器中使用JavaScript來禁用SWF頂部的右鍵單擊。捕獲事件,然後使用ExternalInterface API將其轉發給Flex應用程序,該API允許您從JavaScript調用Flex功能。調用Flex應用程序中定義的函數,以僅顯示您想要的菜單項的自定義ContextMenu。這回避了Flash/Flex中的硬連線行爲,其中右鍵單擊總是導致ContextMenu與Settings,About stuff出現。

的詳細解說可以在這個link.

+0

非常哈克但很酷! :-) – nalply 2010-11-18 12:32:14

相關問題