| 패키지 | flash.ui |
| 클래스 | public final class ContextMenu |
| 상속 | ContextMenu EventDispatcher Object |
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
ContextMenu 객체를 지정된 버튼, 무비 클립 또는 텍스트 필드에 첨부하거나 전체 무비에 첨부할 수 있습니다. 이 작업을 수행하려면 Button, MovieClip 또는 TextField 클래스의 menu 속성을 사용합니다. menu 속성에 대한 자세한 내용은 Button.menu, MovieClip.menu 및 TextField.menu를 참조하십시오.
ContextMenu 객체에 새 항목을 추가하려면 ContextMenuItem 객체를 만든 다음 객체를 ContextMenu.customItems 배열에 추가합니다. 컨텍스트 메뉴 항목 작성에 대한 자세한 내용은 ContextMenuItem 클래스 항목을 참조하십시오.
Flash Player에는 다음과 같은 세 가지 유형의 컨텍스트 메뉴가 있습니다. 표준 메뉴는 Flash Player에서 마우스 오른쪽 버튼을 클릭했을 때 나타나고, 편집 메뉴는 선택 가능하거나 편집 가능한 텍스트 필드를 마우스 오른쪽 버튼으로 클릭했을 때 나타나며, 오류 메뉴는 SWF 파일을 Flash Player로 로드하지 못했을 때 나타납니다. 표준 메뉴와 편집 메뉴만 ContextMenu 클래스를 이용하여 수정할 수 있습니다.
사용자 정의 메뉴 항목은 항상 Flash Player 컨텍스트 메뉴의 맨 위에, 내장 메뉴 항목 위에 표시되며, 구분 표시줄이 내장 메뉴 항목과 사용자 정의 메뉴 항목을 구분합니다. 컨텍스트 메뉴에 사용자 정의 항목을 15개까지 추가할 수 있습니다. 컨텍스트 메뉴에서 [설정] 메뉴 항목을 제거할 수는 없습니다. 사용자가 자신의 컴퓨터에서 개인 정보 및 저장에 영향을 주는 설정에 액세스할 수 있으려면 Flash에 [설정] 메뉴 항목이 필요합니다. 또한 [정보] 메뉴 항목도 제거할 수 없습니다. 이 항목은 사용 중인 Flash Player의 버전을 사용자가 확인하는 데 필요합니다.
ContextMenu 객체의 메서드를 호출하려면 먼저 ContextMenu() 생성자를 사용하여 해당 객체를 만들어야 합니다.
참고 사항
| 속성 | 다음에 의해 정의됨 | ||
|---|---|---|---|
| builtInItems : ContextMenuBuiltInItems
ContextMenuBuiltInItems 클래스의 forwardAndBack, loop, play, print, quality, rewind, save 및 zoom 속성이 있는 객체입니다.
| ContextMenu | ||
![]() | constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
| Object | |
| customItems : Array
ContextMenuItem 객체의 배열입니다.
| ContextMenu | ||
![]() | prototype : Object
[static]
클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
| Object | |
| 메서드 | 다음에 의해 정의됨 | ||
|---|---|---|---|
|
ContextMenu 객체를 만듭니다.
| ContextMenu | ||
![]() |
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다.
| EventDispatcher | |
|
지정된 ContextMenu 객체의 복사본을 생성합니다.
| ContextMenu | ||
![]() |
이벤트를 이벤트 흐름으로 전달합니다.
| EventDispatcher | |
![]() |
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다.
| EventDispatcher | |
![]() |
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
| Object | |
|
지정된 ContextMenu 객체에서 [설정]을 제외한 모든 내장 메뉴 항목을 숨깁니다.
| ContextMenu | ||
![]() |
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
| Object | |
![]() |
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
| Object | |
![]() |
EventDispatcher 객체에서 리스너를 제거합니다.
| EventDispatcher | |
![]() |
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
| Object | |
![]() |
지정된 객체의 문자열 표현을 반환합니다.
| Object | |
![]() |
지정된 객체의 프리미티브 값을 반환합니다.
| Object | |
![]() |
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다.
| EventDispatcher | |
| 이벤트 | 요약 | 다음에 의해 정의됨 | ||
|---|---|---|---|---|
![]() | Flash Player가 운영 체제에서 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | ||
![]() | Flash Player가 운영 체제에서 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher | ||
| 사용자가 컨텍스트 메뉴를 처음 생성할 때, 그러나 컨텍스트 메뉴의 내용이 표시되기 전에 전달됩니다. | ContextMenu | |||
| builtInItems | 속성 |
builtInItems:ContextMenuBuiltInItems [read-write]
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
ContextMenuBuiltInItems 클래스의 forwardAndBack, loop, play, print, quality, rewind, save 및 zoom 속성을 갖는 객체입니다. 이러한 속성을 false로 설정하면 지정된 ContextMenu 객체에서 해당 메뉴 항목이 제거됩니다. 이들 속성은 열거 가능하며 기본적으로 true로 설정되어 있습니다.
public function get builtInItems():ContextMenuBuiltInItems
public function set builtInItems(value:ContextMenuBuiltInItems):void
참고 사항
| customItems | 속성 |
customItems:Array [read-write]
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
ContextMenuItem 객체의 배열입니다. 배열 내의 각 객체는 사용자가 정의한 컨텍스트 메뉴 항목을 나타냅니다. 이 속성을 사용하여 사용자 정의 메뉴 항목을 추가, 삭제 또는 수정할 수 있습니다.
새 메뉴 항목을 추가하려면 ContextMenuItem 객체를 만든 다음 Array.push()와 같은 메서드를 사용하여 customItems 배열에 추가합니다. 메뉴 항목 작성에 대한 자세한 내용은 ContextMenuItem 클래스 항목을 참조하십시오.
public function get customItems():Array
public function set customItems(value:Array):void
참고 사항
| ContextMenu | () | 생성자 |
public function ContextMenu()
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
ContextMenu 객체를 만듭니다.
참고 사항
| clone | () | 메서드 |
public function clone():ContextMenu
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
지정된 ContextMenu 객체의 복사본을 생성합니다. 복사본은 원본 메뉴 객체의 모든 속성을 상속합니다.
반환값ContextMenu — 원본 메뉴 객체의 모든 속성이 포함된 ContextMenu 객체입니다.
|
| hideBuiltInItems | () | 메서드 |
public function hideBuiltInItems():void
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
지정된 ContextMenu 객체에서 [설정]을 제외한 모든 내장 메뉴 항목을 숨깁니다. 디버거 버전의 Flash Player를 실행하는 경우에는 [디버깅] 메뉴 항목이 표시됩니다. SWF 파일에서 원격 디버깅을 사용하지 않는 경우에는 이 항목이 흐리게 표시됩니다.
이 메서드는 표준 컨텍스트 메뉴에 표시되는 메뉴 항목만 숨기며 편집 메뉴와 오류 메뉴에 표시되는 항목에는 영향을 주지 않습니다.
이 메서드는 my_cm .builtInItems의 모든 부울 멤버를 false로 설정합니다. my_cm .builtInItems에서 원하는 내장 항목에 해당하는 멤버를 true로 설정하여 항목을 선택적으로 표시할 수도 있습니다.
참고 사항
| menuSelect | 이벤트 |
flash.events.ContextMenuEvent
flash.events.ContextMenuEvent.MENU_SELECT
| 언어 버전 : | ActionScript 3.0 |
| Player 버전 : | Flash Player 9 |
사용자가 컨텍스트 메뉴를 처음 생성할 때 컨텍스트 메뉴의 내용이 표시되기 전에 전달됩니다. 프로그램에서는 이를 통해 메뉴를 표시하기 전에 컨텍스트 메뉴 항목 집합을 수정할 수 있습니다. 사용자가 포인팅 장치의 오른쪽 버튼을 클릭하면 컨텍스트 메뉴가 생성됩니다.
menuSelect 이벤트 객체의 type 속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles | false |
cancelable | false; 취소할 기본 비헤이비어가 없습니다. |
contextMenuOwner | 메뉴가 연결된 표시 목록 객체입니다. |
currentTarget | 현재 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
mouseTarget | 사용자가 컨텍스트 메뉴를 표시하기 위해 마우스 오른쪽 버튼으로 클릭한 표시 목록 객체입니다. |
target | 표시될 ContextMenu 객체입니다. target은 표시 목록에서 이벤트 리스너를 등록한 객체가 아닐 수도 있습니다. 표시 목록에서 현재 이벤트를 처리 중인 객체에 액세스하려면 currentTarget 속성을 사용합니다. |
ContextMenuExample 클래스를 사용하여 스테이지에서 기본 컨텍스트 메뉴 항목을 제거하고 새 메뉴 항목을 추가합니다. 이 항목을 클릭하면 스테이지에 있는 사각형의 색상이 바뀝니다. 이는 다음 단계로 이루어집니다.
myContextMenu 속성이 선언되어 새 ContextMenu 객체에 할당되고 redRectangle 속성(Sprite 유형)이 선언됩니다.removeDefaultItems() 메서드를 호출하여 인쇄를 제외한 모든 내장 컨텍스트 메뉴 항목을 제거합니다.addCustomMenuItems() 메서드를 호출하여 Red to Black라는 메뉴 항목을 defaultItems 배열에 추가합니다. 이때 배열의 push() 메서드를 사용합니다. menuItemSelect 이벤트 리스너가 ContextMenuItem 객체에 추가되고, 연관된 메서드 menuItemSelectHandler()가 호출됩니다. 이 메서드는 trace()를 사용하여 몇 가지 명령문을 출력합니다. 이 작업은 컨텍스트 메뉴를 열고 Red to Black을 선택할 때마다 수행됩니다. 또한 빨강 사각형이 제거되고 검정 사각형으로 바뀝니다.menuSelect 유형의 이벤트 리스너가 관련 메서드인 menuSelectHandler와 함께 추가됩니다. 여기에서는 사용자가 컨텍스트 메뉴의 항목을 열 때마다 trace()를 사용하여 세 가지 명령문을 출력합니다.addChildren()은 빨강 사각형을 그리고 이를 표시 목록에 추가하여 즉시 표시되게 합니다.myContextMenu가 redRectangle Sprite의 컨텍스트 메뉴에 할당되어 마우스 포인터가 사각형 위에 있을 때만 사용자 정의 컨텍스트 메뉴가 표시되도록 합니다.
package {
import flash.ui.ContextMenu;
import flash.ui.ContextMenuItem;
import flash.ui.ContextMenuBuiltInItems;
import flash.events.ContextMenuEvent;
import flash.events.ContextMenuEvent;
import flash.display.Sprite;
import flash.display.Shape;
import flash.text.TextField;
public class ContextMenuExample extends Sprite {
private var myContextMenu:ContextMenu;
private var menuLabel:String = "Reverse Colors";
private var textLabel:String = "Right Click";
private var redRectangle:Sprite;
private var label:TextField;
private var size:uint = 100;
private var black:uint = 0x000000;
private var red:uint = 0xFF0000;
public function ContextMenuExample() {
myContextMenu = new ContextMenu();
removeDefaultItems();
addCustomMenuItems();
myContextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, menuSelectHandler);
addChildren();
redRectangle.contextMenu = myContextMenu;
}
private function addChildren():void {
redRectangle = new Sprite();
redRectangle.graphics.beginFill(red);
redRectangle.graphics.drawRect(0, 0, size, size);
addChild(redRectangle);
redRectangle.x = size;
redRectangle.y = size;
label = createLabel();
redRectangle.addChild(label);
}
private function removeDefaultItems():void {
myContextMenu.hideBuiltInItems();
var defaultItems:ContextMenuBuiltInItems = myContextMenu.builtInItems;
defaultItems.print = true;
}
private function addCustomMenuItems():void {
var item:ContextMenuItem = new ContextMenuItem(menuLabel);
myContextMenu.customItems.push(item);
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler);
}
private function menuSelectHandler(event:ContextMenuEvent):void {
trace("menuSelectHandler: " + event);
}
private function menuItemSelectHandler(event:ContextMenuEvent):void {
trace("menuItemSelectHandler: " + event);
var textColor:uint = (label.textColor == black) ? red : black;
var bgColor:uint = (label.textColor == black) ? black : red;
redRectangle.graphics.clear();
redRectangle.graphics.beginFill(bgColor);
redRectangle.graphics.drawRect(0, 0, size, size);
label.textColor = textColor;
}
private function createLabel():TextField {
var txtField:TextField = new TextField();
txtField.text = textLabel;
return txtField;
}
}
}
이 페이지에 의견 추가되면 전자 메일 알림 받기 | 의견 보고서
현재 페이지: http://livedocs.adobe.com/flash/9.0_kr/ActionScriptLangRefV3/flash/ui/ContextMenu.html