У динамически созданного объекта Sprite есть Margin / Padding в нижней части - PullRequest
0 голосов
/ 18 сентября 2010

Хорошо, я понятия не имею, почему это происходит.

Я сделал класс Item, который расширяет класс Sprite, класс Item в основном имеет несколько галочек и меток на данный момент.

Затем я пытаюсь выполнить цикл элементов for и создать классы Item, которые я хочу разместить один за другим по оси Y, поэтому я читаю свойство Item.height, чтобы найти y следующего пункта в списке.

Проблема в том, что по какой-то причине всегда добавляется дополнительные 75 пикселей к высоте спрайта внизу, независимо от того, сколько галочек и меток имеется в каждом классе элементов (изменяя высоту элемента класс).

Есть идеи, почему это добавляется и как его можно удалить?

У меня проблемы с выяснением этого, я пытался динамически вычислять и устанавливать свойство Item.height, но когда я это делаю, Sprite просто обрезается.

1 Ответ

1 голос
/ 18 сентября 2010

Требуется один или два кадра, пока размер компонента пользовательского интерфейса не будет правильно установлен (высота по умолчанию равна 100 пикселям).

Чтобы предотвратить такое поведение, вызовите validateNow() для каждого добавляемого компонента Flash UI.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...