2012-02-22 2 views
0

어떻게하면됩니까?AS3 - 단추를 클릭 한 후 "끝내기"모드로 유지하십시오.

나는 나무 단추가있다. 한 번에 하나만 "선택"되어야합니다. 그들은 서로 다른 애니메이션을 재생합니다.

내가 필요한 것은 다운 상태 인 버튼 (오버, 업, 다운 상태에 따라 다른 bg 색상을 가짐)을 설정하는 것입니다.

간단히 말하면; 단추를 눌렀을 때 버튼이 멈춰 있어야합니다. 그리고 다른 버튼 중 하나를 클릭하면 원래 상태로 돌아가고 새로운 버튼은 다운 상태로 고정됩니다.

내가 플래시, AS3를 사용하고 있습니다 ..

감사합니다! =)

+0

찾았습니다. http://stackoverflow.com/questions/560490/flash-toggle-button –

+0

새 버튼을 눌렀을 때 어떻게 상태를 바꿀 수 있습니까? –

+0

방금 ​​init()에 각 상태를 저장했습니다. 버튼을 클릭 할 때마다 토글을 지 웁니다. (내 자신의 질문에 답할 수 없습니다 .. : P) –

답변

2

은 간단히 말해서 : 당신이 항목이 선택되었다는 것을 보여주기 위해 북부 =는 downState를 설정하면 원래의 북부로 돌아갈 수있는 능력을

을 잃었다. 따라서 upState를 변수로 저장하면 언제든지 다시 돌아갈 수 있습니다.

//capture upstate as a variable 

var buttonUpVar:DisplayObject = button.upState; 

//button stays selected or in downState when released. 

button.upState = button.downState; 

//deselect button by going back to original upState 

button.upState = buttonUpVar; 

최소한의 코드로 완료하십시오.

1

내가 링크 된 솔루션에서이 코드를 시험해보십시오.

private toggledButton:SimpleButton; 

private function buttonToggle(button:SimpleButton){ 
    var currDown:DisplayObject = button.downState; 
    button.downState = button.upState; 
    button.upState = currDown; 
} 

private function clickEvent(e:MouseEvent){ 
    if (toggledButton != e.target) { 
     buttonToggle(e.target); 
     if (toggledButton) 
      buttonToggle(toggledButton); 
     toggledButton = e.target; 
    } 
} 
1
private function onClick(event:MouseEvent):void { 
    if(prevSelected) { 
     //change the skin of selected 
    } 
    //save the current selected button 
    //change the current selected button skin 
} 
관련 문제