|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2010
Сообщений: 16
|
Проблема при масштабировании компонента с внутренними компонентами
Вообщем, есть главное окно в него добавляется компонент, в котором есть фон и кнопки. фон и кнопки представляют собой images с графикой..
В главном окне при Resize вычисляю параметры scaleX, scaleY и задаю их соответствующим свойстам основного компонента. Итог. размер окна компонента и всех его кнопок изменяется в соответствии с установленными ScaleX, ScaleY. Но вот беда. кнопки внутри компонента смещаются на 0 - 2 пикселя по всем сторонам по каким-то своим законам. Получается что кнопки внутри панели уже не стоят на своих местах, а есть некрасивые полосы сдвигов. При ScaleX = 1 и ScaleY = 1 никаких проблем снова нет. Подскажите плиз решение. Поиски по форуму не увенчались успехом. Есть вариант места кнопок частично заполнить фоном кнопок и тогда заметно ничего не будет. но можно ли просто правильно позиционировать и масштабировать объекты внутри компонента. Спасибо! |
|
|||||
Регистрация: Oct 2009
Сообщений: 155
|
А объект масштабируешь пропорционально? Возможно в этом и есть проблема.
|
|
|||||
Координаты задаются как Number? Если да - попробуйте округлять до кратного 0.25 или для простоты задать в целых числах.
__________________
interplanety |
|
|||||
Регистрация: Nov 2010
Сообщений: 16
|
координаты width и height неизменны, меняются только scaleX scaleY. Внутренние объекты вообще не трогаю. масштаюируются вместе с компонентом;
координаты внутренних кнопок задаются целым числом. Добавлено через 1 минуту да, объект масштабируется пропорционально по одной стороне. Добавлено через 6 минут var varScaleX:Number; var varScaleY:Number; varScaleX = stage.stageWidth / bcPanel.width; varScaleY = stage.stageHeight / bcPanel.height; if (varScaleX > varScaleY) { varScale = varScaleY; } else { varScale = varScaleX; } bcPanel.scaleX = varScale; bcPanel.scaleY = varScale; sx = int((stage.stageWidth - bcPanel.width * varScale) /2); sy = int((stage.stageHeight - bcPanel.height * varScale) /2); bcPanel.x = sx; bcPanel.y = sy; |
Часовой пояс GMT +4, время: 00:25. |
|
« Предыдущая тема | Следующая тема » |
|
|