xml 입력에 따라 숫자가 달라지는 텍스트 필드를 동적으로 만들었습니다. 텍스트 필드는 버튼을 사용할 수 있어야하므로 가장 쉬운 솔루션은 동영상 클립에 넣고 buttonMode는 동영상 클립으로 만드는 것입니다.AS3 플래시 CC 텍스트 필드의 부모 무비 클립의 너비를 설정하려고합니다.
이 계층 구조는 다음과 같습니다 : 주 (무비 클립 확장) -> klankoefening의 (a 무비 클립) -> Textfieldparent의 (a 무비 클립) -> 텍스트 필드
나는 가장 큰 텍스트 필드의 폭이 들어있는 변수 maxw을 가지고 내 모든 Textfieldparents가이 너비를 가지길 원합니다.
나는 이런 식으로 일을하려고 해요 :
//generate textfields
keuzes = new XMLList(lijstOpties.categorie.(@cat == catname));
var nrs:int = keuzes.keuze.length(); //aantal keuzemogelijkheden
var maxw:int = 0; //grootste breedte tf, nodig voor bepalen breedte knoppen
for (var nr:int = 0; nr < nrs; nr++) {
var tf:TextField = createTextfield(werkfmt);
tf.text = keuzes.keuze[nr].toString();
tf.autoSize = "center";
tf.background = true;
tf.backgroundColor = 0xffcc33;
tf.border = true;
tf.borderColor = 0x000000;
tf.name = "keuzetf";
tf.selectable = false;
tf.x = 0;
tf.y = 0;
if (tf.width > maxw) {maxw = tf.width;}
var tfcontainer:MovieClip = new MovieClip();
tfcontainer.buttonMode = true;
tfcontainer.name = keuzes.keuze[nr].toString();
tfcontainer.addChild(tf);
klankoefening.addChildAt(tfcontainer,nr);
}
for (var an:int = 0; an < 3; an++) {
var mcs:MovieClip = klankoefening.getChildAt(an) as MovieClip;
mcs.width = maxw;
trace ("mcs " + mcs.width);
var mtf:TextField = mcs.getChildAt(0) as TextField;
trace ("mtf " + mtf.text);
}
추적 결과는 내가 이상한 찾아
mcs 32.05
mcs 33
mcs 21.25
이다, 내 두 번째 루프에 명시된 때문에 모든 Textfieldparents에 대한 폭
maxw으로 설정해야합니다. 무슨 일 이니?
버튼을 무비 클립에 추가 한 후 버튼의 너비를 설정하는 경우 해당 버튼 내에서 TextField를 늘릴 수 있습니다. – Glitcher