SimpleButton는 InteractiveObject의
서브 클래스로서 마우스의 조작에 따라 버튼처럼 행동할 수 있다. Flash authoring tool로
버튼 심볼을 작성하면 4개의 프레임이 생기는데 SimpleButton
에도 각각의 프레임에 대응하는 프롭퍼티가 존재한다.
public upState : DisplayObject //
업 상태의 표시 오브젝트
public overState : DisplayObject // 오버 상태의 표시 오브젝트
public downState : DisplayObject // 다운 상태의 표시 오브젝트
public hitTestState : DisplayObject // 히트
테스트용 오브젝트
이상의 4개의 프롭퍼티에 대응하는 마우스 조작 상태로 의도된 표시를
표현한다. DisplayObject 를 설정하는 것이
SimpleButton의 기본적인 사용 방법이다.
var myButton:SimpleButton = new SimpleButton();
addChild(myButton);
// 각 스테이트용의 오브젝트를 작성(하나의 Shape를 공유)
var stateShape:Shape = new Shape();
stateShape.graphics.lineStyle(2, 0x202020);
stateShape.graphics.beginFill(0xFF0000);
stateShape.graphics.drawRect(10, 10, 50, 50);
// 버튼 오브젝트의 프롭퍼티를 설정
myButton.upState = stateShape;
myButton.downState = stateShape;
myButton.overState = stateShape;
myButton.hitTestState = stateShape;
SimpleButton에는 위 4개의
상태 오브젝트 외에 아래와 같은 프롭퍼티가 있다.
public trackAsMenu : Boolean // 메뉴와 같은 사용법을 할 것인가
public enabled : Boolean // 버튼을
유효하게 할 것인가
public useHandCursor : Boolean // 커서의 모양을 핸드커서 형태로 것인가
trackAsMenu는 마우스를 눌렀다가 다른 장소에서 마우스를 놓았을
경우에서도 click 이벤트를 받고 싶은 경우에 사용한다. 보통 click 이벤트는 동일 오브젝트상에서 마우스를 클릭하는 행위를 하지 않으면 dispatch
되지 않지만 trackAsMenu를 true로
해 두면 다른 오브젝트상에서 마우스를 놓아도 적용된다. SimpleButton 오브젝트상에서 마우스를
놓았을 경우에도 그 SimpleButton 오브젝트에 click 이벤트가
dispatch된다. 메뉴를 만들 때 유용하다.
enabled 프롭퍼티는 버튼의 유효/ 무효를 선택할 수 있다. enabled를 false로 설정하면 실제 마우스를 조작해도 외형상은 반응하지 않는 것 처럼 보이지만 이벤트는 dispatch된다.
useHandCursor 프롭퍼티는 디폴트가 true다. 보통은 특별히 신경 쓸 필요는 없을 것 같다.