PDA

Просмотр полной версии : Размер символа меняется непредсказуемым образом


Ivantsar
30.11.2005, 16:27
Добрый день!

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

Потом програмно я пытаюсь расположить его нужным образом, отталкиваясь от размеров символа.
Сейчас размер символа во время загрузки и его же размер во всей дальнейшей жизни отличаются.
Т.е. когда я вывожу (trace) его размер при загрузке мувика и потом на событии Stage.onResize, я получаю совершенно 2 разные цифры.

Кто-то сталкивался с такой проблемой?
Спасибо!

MOHCTEP
30.11.2005, 19:13
Resize Stage вродепропорционально массштабирует и вложенный контент. Если надо, чтоб этот символ не изменялся, при событии Stage.onResize, присваивай ему старый размер.

Ivantsar
30.11.2005, 20:03
Дело не в этом. Потом размер символа никаким образом не меняется, хоть как Stage ресайзить.
Разница только между моментом загрузки и последующей жизнью.

MOHCTEP
30.11.2005, 22:11
Странно. Кинь исходник, посмотрю.

Ivantsar
01.12.2005, 01:00
что примечательно, высота символа не меняется.
Хотя это может быть лишь совпадением.

KUZEN
01.12.2005, 01:39
что примечательно, высота символа не меняется.
Хотя это может быть лишь совпадением.

Странно всё это , но если аттачить мувик на сцену то всё в порядке

_root.attachMovie("SendSms", "sendSms", 1);
function Arrange() {
sendSms._x = Stage.width/2;
sendSms._y = 10;
trace(sendSms._width+", "+sendSms._height);
}
Arrange();
var myListener:Object = new Object();
myListener.onResize = Arrange;
Stage.addListener(myListener);

Ivantsar
01.12.2005, 02:22
Спасибо, я попробую такой метод. Может, он мне подойдет.
НО! Как же так!!! Что это за непостоянство флеша.

В принципе, ходить так далеко не надо.
Я беру обычную кнопку, кладу на (обычную) сцену.

И пишу все тот же скрипт, который просто отображает размеры кнопки на разных этапах ее жизни.

Размеры разные... :S

Приатачил.

KUZEN
01.12.2005, 03:14
Всё так и должно быть, потомучто все компоненты строятся програмно, а когда ты в начале трейсишь то показываются начальные размеры кнопки, ну того что там внутри, всякие бордюрчики и т.д. , ты попробуй тоже самое сделать с обычной кнопкой сделанной ыручную ...

Ivantsar
01.12.2005, 14:25
Глючно...

С моим символом происходит нечто подобное? Есть пути, как сделать так, чтобы его размер был детерминированной величиной?

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

KUZEN
01.12.2005, 15:24
В тот момент когда они все загрузятся, onLoad() ...

Antares
01.12.2005, 15:55
Resize Stage вродепропорционально массштабирует и вложенный контент. Если надо, чтоб этот символ не изменялся, при событии Stage.onResize, присваивай ему старый размер.
Гораздо проще Stage.scaleMode = "noScale";

Ivantsar
01.12.2005, 16:25
Спасибо, Kuzen.

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

Так что мне остается присоединится к Клубу Ненавистников Стандартных Контролов.

Antares
01.12.2005, 17:54
Вы ими просто пользоваться не умеете. Компоненты -- спасение. Особенно Data.

KUZEN
01.12.2005, 18:03
Вы ими просто пользоваться не умеете. Компоненты -- спасение. Особенно Data.
Согласен , то есть классные компоненты ... но большинство компонентов весят неприлично много для сети ...