2012-05-28 5 views

답변

0

심볼 (예 : Class)에서 마우스 이벤트를 수신하거나 이벤트를 전달할 수 없습니다. 그래서 그것은 의문의 여지가 있습니다.

새 스프라이트 심볼을 만들고 그 안에 사용자 정의 Button을 배치 한 다음 해당 스프라이트 내부의 프레임 스크립트에 리스너를 추가 할 수 있습니다.하지만 정말 엉망입니다.

이것을 수행하는 가장 깨끗한 방법은 Stage에 Event.ADDED의 수신기를 추가하는 것입니다.이 단계는 표시 목록의 아무 곳에 나 새로운 인스턴스 인 DisplayObject이 추가 될 때마다 캐치됩니다. 핸들러 함수를 사용하여 적절한 수신기를 추가합니다. 특수 버튼의 각 인스턴스 :

function onInstanceAdded(event:Event) : void { 
    if(event.target) is MySpecialButton 
     event.target.addEventListener(MouseEvent.CLICK, onSpecialButtonClick); 
} 

function onSpecialButtonClick(event:MouseEvent) : void { 
    doMagicStuffHere(); 
} 

stage.addEventListener(Event.ADDED, onInstanceAdded); 
2

'LinkingButton'과 같은 클래스를 만듭니다. 이 클래스 안에는 원하는 작업을 수행하는 클릭 핸들러가 있습니다.

그러면 클래스를 라이브러리의 심볼에 '연결'해야합니다.

올바르게 완료되면 심볼을 스테이지로 드래그해야하며 곧바로 작동합니다. 또는 코드를 사용하기를 원한다면 간단 할 수도 있습니다 :

var myButton:LinkingButton = new LinkingButton(); 
addChild(myButton);