2009-10-21 3 views
0

Action Script 3.0을 사용하여 Flash에서 프로젝트 작업 중입니다. 그래픽을 버튼으로 변환하여 프로젝트 전반에 걸쳐 다양한 버튼에 사용할 수 있지만 전체 클래스를 수정하지 않고 스테이지의 새 버튼 인스턴스 만 수정하는 방법을 알 수는 없습니다. 예를 들어, 첫 번째 단추에 고유 한 인스턴스 이름이 있고 "Click Me"라고 불리면 해당 단추의 다른 인스턴스를 스테이지로 가져 와서 새 인스턴스 이름을 지정하고 "다음"이라고 말하면 다시 레이블을 지정하려고 시도합니다. "클릭"버튼을 자동으로 수정하여 "다음"이라고 말합니다. 아무도 나를 도울 수 없으므로 내가 만드는 모든 버튼에 대해 새 클래스를 만들 필요가 없습니다.Action Script 3.0의 버튼 수정

답변

0

이 동작은 정상입니다. 라이브러리에있는 버튼은 인스턴스가 아닙니다. 무대 위로 드래그하면 인스턴스가 생성되지만 텍스트 필드를 바꾸는 것과 같이 무언가를 변경하면 클래스가 변경됩니다.

원하는 것을 얻기위한 한 가지 방법은 버튼 대신 동영상 클립을 만드는 것입니다. 그런 다음 무비 클립에 동적 텍스트 필드를 추가합니다. 내부 동적 텍스트 필드를 가정하고이 작업을 수행하여 각 인스턴스에 대해 이제 텍스트 필드를

myBtn1.buttonMode = true; 
myBtn2.buttonMode = true; 

변경할 수 있습니다 모든 동영상 클립 인스턴스 (그것은 당신의 무대로 라이브러리에서 드래그하면 이름이 있는지 확인)에서 다음 코드를 추가합니다 클립은 txtLabel이라고 : 당신이 국가 전복은 당신이 할 수 원하는 경우

myBtn1.txtLabel.text = "hello"; 
myBtn2.txtLabel.text = "world"; 

는, 첫째, 동영상 클립의 각 상태에 대한 키 프레임을 추가 별도의 레이어 아래 말이에요 텍스트 필드에이 작업을 수행하고 그들에게 프레임 레이블을 제공 각 섹션 :

myBtn1.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver) 

function onMouseOver(e:MouseEvent) 
{ 
    myBtn1.gotoAndStop("OVER_STATE"); 
//can use e.target.gotoAndStop("OVER_STATE") instead so that you can reuse the one 
//function for all buttons. The above is just to illustrate the point. 
} 

SimpleButton 클래스를 확장 한 다음 속성을 추가하여 내부에서 만드는 동적 텍스트 필드를 변경할 수도 있습니다.

관련 문제