好的,我不知道为什么会这样。
我创建了一个扩展Sprite类的Item类,Item类基本上有一些复选标记&目前的标签。
然后我尝试做的是运行for循环的项目并创建我想在y轴上一个接一个地放置的Item类,所以我正在读取Item.height属性以找到y列表中的下一个项目。
问题是由于某些原因,无论在每个Item类中有多少个复选标记和标签,都会在底部的Sprite高度上添加额外75个像素(改变高度)项目类)。
知道为什么要添加它以及如何删除它?
我无法搞清楚这一点,我尝试动态计算和设置Item.height属性,但是当我这样做时,Sprite只是被裁剪。
答案 0 :(得分:1)
在正确设置UI组件的大小(默认高度为100像素)之前,需要一到两帧。
要防止此行为,请在您添加的每个Flash UI组件上调用validateNow()
。
var s:Sprite = new Sprite();
var label:Label = new Label();
label.text = "hello";
label.x = 0;
s.addChild(label);
var check:CheckBox = new CheckBox();
check.label = "hello";
check.x = 50;
s.addChild(check);
addChild(s);
trace(s.height); // output: 100
label.validateNow();
check.validateNow();
trace(s.height); // output: 28