2011-09-19 3 views
1

ActionScript 3에서 contextMenu를 닫거나 숨길 수 있습니까?AS3 닫기 contextMenu

이벤트 리스너를 실행해야하고 마우스 오른쪽 버튼을 누르면 어떤 일이 발생합니다.

myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler); 
function menuSelectHandler(e:ContextMenuEvent):void{ 
    /** 
    * close the context menu and do something 
    */ 
} 

컨텍스트 메뉴를 표시하거나 닫지 마십시오.

어떻게하면됩니까?

dispatchEvent(new ContextMenuEvent(ContextMenuEvent.MENU_ITEM_SELECT)); 

을하지만 내가 처음 메뉴 항목에 배치 제의 EventListener를 시작 아니에요 :


나는 노력했다. ContextMenu의 항목을 선택했을 때 실행되는 이벤트를 전달하는 방법에 대해 알고 싶습니다.

답변

1

Flash Player에서 오른쪽 클릭을 닫거나 숨기거나 비활성화 할 수 없기 때문에 일부 옵션을 숨길 수 있습니다.

하지만 트릭이 있습니다. JS를 사용하여 오른쪽 클릭을 캡처하고 ExternalInterface를 사용하여 Flash 응용 프로그램 내에서 자신의 오른쪽 클릭을 시뮬레이션 할 수 있습니다.
http://www.lordofduct.com/blog/?p=318
http://www.uza.lt/2007/08/19/solved-right-click-in-as3/
http://blog.another-d-mention.ro/programming/right-click-and-custom-context-menu-in-flash-flex/


이 가진 문제는 브라우저 compatility, 또한 당신은 더 많은 문제를 가지고있는 (W 모드를 변경해야

당신은 여기의 몇 가지 예를 볼 수 있습니다 어떤 경우에는 그것에 대해 검색 할 수 있습니다).
나는 그것을 할 수 없다는 것을 의미하지 않는다 지금까지 모든 응용 프로그램을 보지 못한 전혀 http://code.google.com/p/custom-context-menu/wiki/BrowserSupport

+0

자바 스크립트가 관련되어 있기 때문에 실제로는 내가 원하는 바가 아니지만 그것이 가까워 짐에 따라 가까울 것으로 생각됩니다. – Dinkheller

0

사실 실제로 그것에 대해 아무 것도 할 수 없습니다. 컨텍스트 메뉴의 크기를 몇 가지 항목으로 줄이기 만 할 수 있지만 표시해야 할 항목이 있습니다. 그 이유는 Flash가 마우스 오른쪽 버튼 클릭을 지원하지 않고 ContextMenu의 컨텐트 만 제공하기 때문입니다. 마우스 오른쪽 버튼을 클릭 한 후 컨텍스트 메뉴가 표시되지 않는 Flash 응용 프로그램을 본 적이 있습니까?

+0

이 :) 내가 해결 방법에 대해 생각 :
다음은 호환성에 대한 몇 가지 통계입니다. 오른쪽 클릭 메뉴를 닫는 것과 같은 것을 보여줍니다. 왼쪽 클릭 이벤트를 어떻게 든 시작할 수 있습니까? – Dinkheller