![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 41
|
Есть мувик с рамкой из lineTo (т.е. нарисованной) и с содержанием в виде пары textField и jpeg'a. Вопросов два :
1) Как ресайзнуть мувик чтобы не уплыла рамка ? (если делать просто через ._width то ширина меняется правильно, НО! вместе с ней меняется и отлщина линий - причём пропорционально - если начальный размер был 50 и задаём ._width=250 то толщина рамки из исходных 2 становится (250/50)*2=10 Предположим что рамка прямоугольная (то что наклонные линии уплывут это понятно - но там впринципе понятно как бороться) 2) Как при ресайзе перерисовать содержимое мувика ? т.е. есть какой-нить аналог stage.onResize для отдельно взятых мувиков ? .watch как я понял не работает с _width/_height Если аналог есть, то впринципе понятно - задаём координаты всех вложенных в мувик объектов через дельту по осям например - но как словить момент ресайза ? --- Пока приходит на ум только то, что ресайз мувика есть всегда результат какого-то действия - например в моём случае ресайз привязан к четырём клавишам -> вообще отрисовку можно и на эти клавишы тоже посадить - но может как-то покрасивше можно сделать ? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
1.Если изменения размеров ты делаешь сам (с помощью клавиш), то лучше сразу запускать функцию перерисовки.
2.Можно через onEnterFrame или setInterval проверять размеры текущие с записанными и при не совпадении перерисовывать. Но такой способ ресурсоемкий. Ты можешь ни разу не изменить размер, но проверка будет постоянно осуществляться. Так что, все же лучше первый вариант. |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 41
|
да, впринципе с перерисовкой я так примерно и описал внизу, а как делать ресайз человеческий ?
|
|
|||||
|
Регистрация: Jul 2005
Сообщений: 41
|
Не, всмысле как ресайзнуть нарисованную рамку не перерисовывая её ? Или тоже только перерисовывать ? С содержимым да - всё просто т.к. меняем только атрибуты, которые не требуют удалять и перерисовывать исходник - а вот при изменении _width нарисованной shape имеет место глюк - как с ним то бороться ? или тоже труба и всётаки перерисовывать ?
|
|
|||||
|
[+1.4 - 25.03.2006]
Регистрация: Aug 2002
Адрес: St-Петербург
Сообщений: 92
|
ленивая стала молодежь
а вот во времена пятерки lineTo не было что мешает рамку разбить на две горизонтальные линии + две вертикальные работаешь с ними как с отдельными клипами да и все горизонтальным _width менять, вертикальные при этом двигать вертикальным соответственно _height менять и горизонтальные двигать |
|
|||||
|
МЕГАФЛЭШЕР
Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
|
2rukez
если игнорировать вопрос по толщине рамок, то ответ на вопрос - использовать layout менеджер. это компонент или чаще целый фреймворк который управляет поведением клипов и компонентов при изменении размера. например есть головной компонент, который содержит несколько вложенных в него компонентов. когда ресайзится головной, вложенные в него компоненты реагируют на это событие - скрол растягивается/сжимается по высоте, а текстовое поле и по высоте и ширине. скрол же содержит так же набор компонентов, которые реагируют на изменение высоты и изменяют свои размеры и взаимо положение. и так далее. тут есть несколько подходов. например, стиль html-таблицы - это есть например в swing/java или же во flex. другой вариант, регистрация поведения каждого отдельного компоннента на изменния высоты/ширины - некий конфигурационный язык описания поведения. ну и другие подходы. у меня есть свой собсвенный фреймворк для этого, но в нете есть множество готовых решений. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|