2017-03-03 6 views
2

TextField가있는 단추를 만들고 싶습니다. 레이블은 원하는 경우 AS3에서 변경할 수 있습니다.AS3 : MovieClip의 TextField 변경

SimpleButton으로는이 작업을 수행 할 수 없다는 것을 알았지 만, MovieClip의 타임 라인을 사용하여 앞뒤로 탐색하면 단추의 텍스처를 마우스로 가리키고 클릭했을 때 버튼의 텍스처를 변경할 수있었습니다. 타임 라인의 각 프레임에있는 버튼 위에 세 개의 TextField를 만들었지 만 TextField를 영구적으로 변경할 수있는 방법을 찾을 수 없습니다.

BTN는 무비 클립입니다, L1, 나는 (타임 라인에있는 무비 클립의 프레임을 변경)하고, 버튼을 터치 할 때까지 1

btn.l1.text = "label" 

이 작품은 반환 할 때 1 프레임에 프레임의 텍스트 필드 자사의 레이블은 아무것도 반환하지 않습니다.

내가 본질적으로 알아야 할 것은; 프레임을 변경하는 MovieClip에서 TextField를 영구히 변경하려면 어떻게합니까?

답변

1

3 개의 프레임이 다르거 나 같은가요? 서로 다른 경우 다른 프레임이 완전히 새로운 객체를 갖기 때문에 각 버튼의 텍스트 필드의 텍스트를 변경해야합니다.

2

텍스트 필드에 시간 표시 막대 계층에 하나의 키 프레임 만 있으면 프레임을 변경할 때 텍스트 값이 유지됩니다. 그러나 모든 키 프레임은 텍스트 필드를 다시 만들고 해당 프레임에 도달하면 텍스트를 다시 설정합니다. 키 프레임을 사용하여 텍스트 색상이나 필터를 변경하는 경우 대신 MovieClip에 텍스트 필드를 넣고 MovieClip에 색상 띠가있는 키 프레임을 사용할 수 있습니다 (각 키 프레임이 MovieClip에 동일한 인스턴스 이름을 사용하는 경우 이됩니다). 아니 다시 만들어야합니다).

btn.labelMC.textField.text = "label"; 

텍스트 글꼴이나 스타일 (A 무비 클립이 할 수있는 일을) 변경 키 프레임을 사용하는 경우는, 그 유일한 방법은 재설정 될 것입니다 : 그래서 당신은 같은 것을 한 번 텍스트를 변경할 것

btn.gotoAndStop(2); 
btn.l1.text = "label"; 

당신은 재사용 가능한 클래스를 사용하여이 문제를 분리 할 수 ​​있습니다 다음 .text 때마다 후 프레임을 변경합니다.

+0

+1 @Aaron 가능한 경우 여러 개의 키 프레임을 사용하지 말고 MC 용 클래스를 만드십시오. 그것은 당신의 텍스트를 바꿀 것입니다. – tatactic