2016-06-07 1 views
-2

기본적으로 spark TextArea에는 '잘라 내기', '복사', '붙여 넣기', '삭제'등의 옵션이있는 ContextMenu가 내장되어 있습니다.Actionscript 3의 텍스트 영역에서 기본 컨텍스트 메뉴를 비활성화하는 방법은 무엇입니까?

이 ContextMenu를 맞춤 설정으로 바꾸고 싶지만 기본 설정을 사용 중지하는 데 문제가 있습니다.

첫 번째 사용자 지정 항목을 추가 한 후 기본 ContextMenu를 가져오고 두 번째 시간부터 사용자 지정 ContextMenu를 가져옵니다.

<s:TextArea id="txtArea" width="100%" height="100%" borderVisible="false" focusAlpha="0.01" 
      verticalScrollPolicy="off" selectionHighlighting="always" styleName="TextBox" 
      needsSoftKeyboard="true" focusRect="false" buttonMode="true" useHandCursor="true" mouseChildren="true"/> 

을 그리고 마우스 오른쪽 버튼을 누른 상태에서 영역을 텍스트로의 ContextMenu 사용자를 추가하는 다음 코드를 사용하여 :

나는 텍스트 영역에 대해 다음 코드를 사용하고

eventMap.mapListener(view.txtArea , MouseEvent.RIGHT_MOUSE_DOWN ,onRightMouseDown); 

private function onRightMouseDown(e:MouseEvent):void 
    { 
     var item1:ContextMenuItem = new ContextMenuItem("Cancel", true); 
     var item2:ContextMenuItem = new ContextMenuItem("Select", true); 

     var contextMenu:ContextMenu = new ContextMenu(); 
     contextMenu.hideBuiltInItems(); 
     contextMenu.customItems.push(item1); 
     contextMenu.customItems.push(item2); 

     view.txtArea.contextMenu = contextMenu; 
    } 

그러나 나는 모른다 왜 기본 ContextMenu가 처음으로 오는지.

아무도 왜 그런 일이 일어나고 있는지 또는 내가 잘못하고있는 곳을 알 수 있습니까?

답변

1

최초의 마우스 오른쪽 버튼 클릭이 발생할 때까지 원래의 상황에 맞는 메뉴가 표시되는 이유는 처음으로 마우스를 끄는 이유입니다. 또한 마우스 오른쪽 버튼으로 클릭 할 때마다 상황 별 메뉴를 불필요하게 다시 작성합니다.

이 문제를 해결하려면 onRightMouseDown 함수에있는 코드를 가져 와서 클래스 생성자에 넣거나 필요없는 경우 swf를 실행하자마자 실행해야합니다. . 이것은 한 번만 발생하면됩니다.

+0

안녕하세요 @ Glitcher 나는 클래스 생성자에 내 코드를 넣으려고했는데 또한 작성 완료 코드를 넣으려고했는데 두 경우 모두에서 첫 번째 마우스 오른쪽 버튼으로 클릭하면 기본 컨텍스트 메뉴가 나타납니다. – Ashish

0

나는 전체 응용 프로그램

addEventListener(MouseEvent.RIGHT_CLICK, function (... rest):void 
{ 
}) 

에 추가했고 defaultContextMenu가 비활성화되었습니다.

1

다음과 같은 코드가 내 문제를 해결 :

var contextMenu = new ContextMenu(); 
contextMenu.hideBuiltInItems(); 
contextMenu.clipboardMenu = false; 
contextMenu.addItem(new ContextMenuItem("Start Select")); 
contextMenu.addItem(new ContextMenuItem("Start Copy")); 

(txtArea.textDisplay as RichEditableText).contextMenu = contextMenu; 

대신에 우리는이 문제를 해결할 것입니다 그 후 위와 같이 richEditableText에 넣어 않을 경우, TextArea 컨트롤에 직접 사용자 정의 컨텍스트 메뉴 퍼팅.

관련 문제