2009-10-16 8 views
8

Pracuję nad aplikacją flex i chcę dodać do niej menu kontekstowe. Mam to z tym kodem:Ukryj domyślne opcje w menu kontekstowym z kliknięciem prawym przyciskiem myszy

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; 

Ale mam problem. Menu pokazuje cztery domyślne opcje (Ustawienia, Flash ...) Chciałbym je ukryć. Z defaultItems.print = false; Ukryłem opcję drukowania, ale nie wiem, jak ukryć innych. Czy ktoś wie, jak to zrobić? Dzięki.

+0

Kezem, wpadłem na ten problem zbyt pracującego na aplikacji Flex, który został zastępujący huśtawce aplikację Java. W menu kontekstowym widoczna była pewna funkcjonalność, a ustawienia powodowały dezorientację naszych użytkowników. Zrobiłem trochę kopania online i znalazłem rozwiązanie, które opisałem poniżej. –

Odpowiedz

9

jako odniesienie dla ContextMenu mówi

Nie można usunąć ustawienia menu pozycję z menu kontekstowego. Element menu Ustawienia jest wymagany w aplikacji Flash, aby użytkownicy mieli dostęp do ustawień wpływających na prywatność i przechowywanie ich na komputerach. Ty też nie możesz usunąć pozycji menu Informacje, , która jest wymagana, aby użytkownicy mogli uzyskać informacje o używanej wersji odtwarzacza Flash Player .

Po prostu musisz żyć z elementami Settings i About. W przypadku innych domyślnych pozycji zobacz odniesienie dla ContextMenuBuiltInItems.

+0

Zawsze istnieje obejście. Sprawdź moją odpowiedź. –

14

Istnieje technika ukrywania ustawień, flash itp. Z menu kontekstowego we Flashu. Koncepcja wysokiego poziomu polega na użyciu JavaScript w kontenerze HTML, aby wyłączyć kliknięcie prawym przyciskiem myszy na górze pliku SWF. Przechwytuj zdarzenie, a następnie przesyłaj je do aplikacji Flex za pomocą interfejsu API ExternalInterface, który umożliwia wywoływanie funkcji Flex z JavaScript. Wywołaj funkcję zdefiniowaną w aplikacji Flex, aby wyświetlić niestandardowe menu kontekstowe z wybranymi elementami menu. Powoduje to odejście od zachowania przewodowego w programie Flash/Flex, gdzie kliknięcie prawym przyciskiem myszy powoduje zawsze Menu kontekstowe z Ustawieniami, Informacje o materiałach.

szczegółowy opis trasy można znaleźć na tej link.

+0

bardzo hacky, ale fajnie! :-) – nalply

Powiązane problemy