| Package | flash.ui |
| Class | public final class ContextMenu |
| Inheritance | ContextMenu EventDispatcher Object |
ContextMenu object는, 특정의 버튼이나 무비 클립, 텍스트 필드 object, 또는 무비 전체에 관련지을 수가 있습니다. 그 때, Button 클래스, MovieClip 클래스, TextField 클래스의 menu property를 사용합니다. menu property의 상세한 것에 대하여는, Button.menu, MovieClip.menu, 및 TextField.menu 를 참조해 주세요.
Flex 에서는, 어플리케이션내의 최상정도 레벨의 컴퍼넌트에만 context menu가 있습니다. 예를 들어, DataGrid 컨트롤이 TabNavigator 컨테이너 또는 VBox 컨테이너의 아이인 경우, DataGrid 컨트롤은 독자적인 context menu를 가질 수가 없습니다.
ContextMenu object에 새로운 아이템을 추가하려면 , ContextMenuItem object를 작성해, 그 object를 ContextMenu.customItems 배열에 추가합니다. context menu 아이템의 작성의 상세한 것에 대하여는, ContextMenuItem 클래스를 참조해 주세요.
Flash Player 에는 3 종류의 context menu가 있습니다. 이것들은, Flash Player 를 오른쪽 클릭했을 때에 표시되는 표준 메뉴, 선택 가능 텍스트 필드 또는 편집 가능 텍스트 필드를 오른쪽 클릭했을 때에 표시되는 편집 메뉴, Flash Player 에의 SWF 파일의 로드가 실패했을 때에 표시되는 에러 메뉴입니다. ContextMenu 클래스에서 수정할 수 있는 것은, 표준 메뉴와 편집 메뉴 뿐입니다.
커스텀 메뉴 아이템은, 항상 Flash Player context menu의 맨 위에, 즉, 어느 가시 빌트인 메뉴 아이템보다 위에 표시됩니다. 빌트인 메뉴 아이템과 custom 메뉴 아이템의 사이에는 separator가 표시됩니다. context menu에 추가할 수 있는 custom 아이템은 15 아이템 이내입니다. context menu로부터 [설정] 메뉴 아이템을 삭제할 수 없습니다. [설정] 메뉴 아이템은, 유저가 프라이버시나 컴퓨터의 기억 area에 작용하는 설정에 액세스 할 수 있도록(듯이)하기 위한 , Flash 에 필수의 메뉴 아이템입니다. 또, 사용하고 있는 Flash Player 의 버젼을 유저가 확인하기 위해서 필요한 [Macromedia Flash Player 8 에 대해] 메뉴 아이템도 삭제할 수 없습니다.
ContextMenu object의 Methods를 호출하기 전에,ContextMenu() constructor 을 사용해 ContextMenu object를 작성할 필요가 있습니다.
See also
| property | 정의 | ||
|---|---|---|---|
| builtInItems : ContextMenuBuiltInItems
ContextMenuBuiltInItems 클래스의 다음의 불형 property를 가지는 object입니다.
forwardAndBack,loop,play,print,quality,rewind,save, 및 zoom. | ContextMenu | ||
![]() | constructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor 함수에의 참조입니다.
| Object | |
| customItems : Array
ContextMenuItem object의 배열입니다.
| ContextMenu | ||
![]() | prototype : Object
[static]
클래스 또는 함수 object의 prototype object에의 참조입니다.
| Object | |
| Methods | 정의 | ||
|---|---|---|---|
| ContextMenu ()
ContextMenu object를 작성합니다.
| ContextMenu | ||
![]() | addEventListener (type:String , listener:Function , useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
event listener objects를 EventDispatcher object에 등록해, listener가 이벤트의 통지를 받도록(듯이) 합니다.
| EventDispatcher | |
| clone ():ContextMenu
지정된 ContextMenu object의 복사를 작성합니다.
| ContextMenu | ||
![]() | dispatchEvent (event:Event ):Boolean
이벤트를 event 플로우(flow)에 dispatch합니다.
| EventDispatcher | |
![]() | hasEventListener (type:String ):Boolean
EventDispatcher object에, 특정의 event 타입에 대해서 등록된 listener가 있을지 어떨지를 확인합니다.
| EventDispatcher | |
![]() | hasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
| Object | |
| hideBuiltInItems ():void
[설정] 을 제외해, 지정된 ContextMenu object내의 모든 빌트인 메뉴 아이템을 비표시로 합니다.
| ContextMenu | ||
![]() | isPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
| Object | |
![]() | propertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
| Object | |
![]() | removeEventListener (type:String , listener:Function , useCapture:Boolean = false):void
EventDispatcher object로부터 listener를 삭제합니다.
| EventDispatcher | |
![]() | setPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
| Object | |
![]() | toString ():String
지정된 object의 string 표현을 돌려줍니다.
| Object | |
![]() | valueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
| Object | |
![]() | willTrigger (type:String ):Boolean
지정된 event 타입에 대해, 이 EventDispatcher object 또는 그 조상에게 event listener가 등록되어 있는지 어떤지를 확인합니다.
| EventDispatcher | |
| 이벤트 | 일람 | 정의 | ||
|---|---|---|---|---|
| menuSelect | 유저가 최초로 context menu를 생성했을 때에, context menu의 내용이 표시되기 전에 dispatch됩니다. | ContextMenu | ||
| builtInItems | property |
builtInItems:ContextMenuBuiltInItems [read-write]
ContextMenuBuiltInItems 클래스의 다음의 불형 property를 가지는 object입니다. forwardAndBack,loop,play,print,quality,rewind,save, 및 zoom. 이러한 property를 false 로 설정하면, 대응하는 메뉴 아이템이, 지정한 ContextMenu object로부터 삭제됩니다. 이러한 property는 열거할 수가 있어 디폴트에서는 true 로 설정되어 있습니다.
public function get builtInItems():ContextMenuBuiltInItems
public function set builtInItems(value:ContextMenuBuiltInItems ):void
See also
| customItems | property |
customItems:Array [read-write]ContextMenuItem object의 배열입니다. 배열내의 각 object는, 정의한 custom context menu 아이템을 나타냅니다. 이 property를 사용해, 이러한 custom 메뉴 아이템을 추가, 삭제, 변경할 수가 있습니다.
새로운 메뉴 아이템을 추가하려면 , ContextMenuItem object를 작성합니다. 다음에 Array.push() 등을 사용해, 작성한 object를 customItems 배열에 추가합니다. 메뉴 아이템의 작성의 상세한 것에 대하여는, ContextMenuItem 클래스를 참조해 주세요.
public function get customItems():Array
public function set customItems(value:Array ):void
See also
| ContextMenu | () | constructor |
public 함수 ContextMenu()ContextMenu object를 작성합니다.
See also
| clone | () | Methods |
public function clone():ContextMenu 지정된 ContextMenu object의 복사를 작성합니다. 복사로서 작성된 object는, 원의 메뉴 object의 모든 property를 Inheritance합니다.
반환값ContextMenu —
원의 메뉴 object의 모든 property를 가지는 ContextMenu object입니다.
|
| hideBuiltInItems | () | Methods |
public function hideBuiltInItems():void [설정] 을 제외해, 지정된 ContextMenu object내의 모든 빌트인 메뉴 아이템을 비표시로 합니다. 디버그판의 Flash Player 가 실행되고 있는 경우, 디버그의 메뉴 아이템은 표시됩니다만, 리모트 디버그가 유효화되어 있지 않은 SWF 파일에 대해서는 회색 표시됩니다.
이 Methods는, 표준 context menu에 표시되는 메뉴 아이템만을 비표시로 합니다. 편집 메뉴 및 에러 메뉴에 표시되는 메뉴 아이템에는 영향을 주지 않습니다.
이 Methods는,my_cm. builtInItems 의 모든 불형 property를 false 로 설정하는 것으로써 기능합니다. 빌트인 아이템을 개별적으로 표시하려면 ,my_cm. builtInItems 의 그 아이템에 대응하는 멤버를 true 로 설정합니다.
See also
| menuSelect | event |
flash.events.ContextMenuEvent
flash.events.ContextMenuEvent.MENU_SELECT
유저가 최초로 context menu를 생성했을 때에, context menu의 내용이 표시되기 전에 dispatch됩니다. 이것에 의해, context menu를 표시하기 전에, 프로그램에 의해 context menu 아이템세트를 변경할 수 있습니다. 유저는, pointing device를 오른쪽 클릭하는 것으로써, context menu를 생성합니다.
menuSelect event object의 type property의 값을 정의합니다.
이 이벤트에는, 다음의 property가 있습니다.
| Property | Value |
|---|---|
bubbles | false |
cancelable | false 는, 캔슬하는 디폴트의 동작이 없는 것을 나타냅니다. |
contextMenuOwner | 메뉴를 관련지을 수 있는 표시 리스트 object입니다. |
currentTarget | event listener로 Event object를 액티브하게 처리하고 있는 object입니다. |
mouseTarget | 유저가 context menu를 표시하기 위해서 오른쪽 클릭한 표시 리스트 object입니다. |
target | 표시되는 ContextMenu object입니다. target 는, 반드시 event listener를 등록한 표시 리스트내의 object라고는 할 수 없습니다. 현재 이벤트를 처리하고 있는 표시 리스트내의 object에 액세스 하려면 ,currentTarget property를 사용합니다. |
ContextMenuExample
(을)를 사용해, 디폴트의 context menu 아이템을 스테이지로부터 삭제해, 새로운 메뉴 아이템을 추가합니다. 새로운 메뉴 아이템을
클릭하면, 스테이지상의 사각형의 색이 변경됩니다. 여기에서는 다음의 순서를
실행합니다.
myContextMenu 가 선언되어 새로운 ContextMenu
object에 할당할 수 있어 Sprite 형의 property redRectangle 가 선언됩니다. removeDefaultItems() 가 불려 갑니다. 이 Methods에 의해, 모든 빌트인 문맥
메뉴 아이템이 삭제됩니다. 다만, 프린트를 제외합니다. addCustomMenuItems() 가 불려 갑니다. 이 Methods에 의해,
Red to Black 메뉴 선택이라는 이름의 아이템이 defaultItems 배열에 배치됩니다. 배열의
push() Methods가 사용됩니다. menuItemSelect event listener가
ContextMenuItem object에 추가되어 관련지을 수 있는 Methods는 menuItemSelectHandler() 라는 이름입니다.
이 Methods는 trace() 를 사용해,
context menu가 액세스 되어 Red to Black 가 선택될 때마다, 몇개의 명령문(statement)를 출력합니다. 또, 붉은 사각형은
삭제되어 흑색의 사각형에 값환됩니다. menuSelect 의 event listener가,
관련하는 Methods menuSelectHandler 와 함께 추가됩니다. 이 Methods는,
trace() 를 사용해, context menu의 아이템이 열릴 때마다, 3 개의 명령문(statement)를 단순하게 출력합니다. addChildren() 는, 적색의 사각형을 묘화 해, 그것을
표시 리스트에 추가합니다. 이 사각형은, 표시 리스트에 즉석에서 표시됩니다. myContextMenu 가 redRectangle 스프라이트의 context menu에 할당할 수 있습니다.
이 때문에, custom context menu가 표시되는 것은, 마우스 포인터가 사각형 위에 있는 경우만입니다.
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://flexdocs.kr/docs/flex2/langref/flash/ui/ContextMenu.html