나는 SimpleButtons '텍스트 필드에 대한 뭔가를 시도하고, 다음 코드를 내놓았다했습니다. 희망이 도움이됩니다. 이합니까 무엇
public class GenericTextButton extends flash.display.SimpleButton {
public var buttonText:String;
private var tfs:Vector.<TextField>;
public function GenericTextButton():void
{
tfs=new Vector.<TextField>();
var tc:DisplayObjectContainer;
var i:int;
// now let's init embedded TFs
// trace((upState as DisplayObjectContainer).numChildren); // wow there's property available! YES
if (upState is DisplayObjectContainer) {
tc=(upState as DisplayObjectContainer);
for (i=0;i<tc.numChildren;i++)
if (tc.getChildAt(i) is TextField) tfs.push(tc.getChildAt(i) as TextField);
} // now same with overState and downState
if (overState is DisplayObjectContainer) {
tc=(overState as DisplayObjectContainer);
for (i=0;i<tc.numChildren;i++)
if (tc.getChildAt(i) is TextField) tfs.push(tc.getChildAt(i) as TextField);
}
if (downState is DisplayObjectContainer) {
tc=(downState as DisplayObjectContainer);
for (i=0;i<tc.numChildren;i++)
if (tc.getChildAt(i) is TextField) tfs.push(tc.getChildAt(i) as TextField);
}
// trace(name+' has '+tfs.length+' textfields'); // 3 !!!! Unbelieveable, but true
}
public function setText(the_text:String):void {
for (var i:int=0;i<tfs.length;i++) tfs[i].text=the_text; // and NOW we can do as simple as this
}
}
: 당신은 다음 즉시 사용자가 제공하는 무엇에 그 버튼의 모든 텍스트를 변경하려면 사용할 수 setText()
방법이있을 것이다, 대신 SimpleButton의, GenericTextButton의 후손로 버튼 인스턴스를 선언합니다. SimpleButton의 내부 구조를 열거하고, 거기에있는 모든 TextField를 잡고, 쉽게 참조 할 수 있도록 Vector에 저장합니다.
내 대답이 만족 스럽다면 대답 아래에있는 "진드기"를 클릭하여 허용으로 표시하십시오.이 질문은 귀하와 비슷한 문제가있는 다른 사람들에게 도움이되며이 질문을 찾을 수 있습니다. – Vesper