![]() |
не понятно ведет себя высота контейнера после addchild
добавил swc в проект, содержащую компоненты флеша(кнопки, списки и т.д).
в коде добавляю кнопку var btn:Button = new Button(); btn.label = "123123"; this.actionPanel.addChild(btn); делаю trace размера actionPanel.height до вызова addChild - высота 52. а сразу после - 101. При этом высота кнопки 22(тоже трейсом выводил). Пробовал задать btn.height = 10(к примеру) - но ничего не меняется. При этом если вместо Button() - использовать обычный textField то происходит то же самое. Но если созданному textField задать выосту *.height - то тогда высота контейнера высталвяется правильная после вызова addchild. В чем тут дело? компонент кнопки особенный какой-то? ему надо больше месте? :) |
Ничего особенного. Просто размер текстфилда по умолчанию 100х100, а в кнопке он есть. Поэтому геттер высоты кнопки возвращает высоту ее графики, а контейнер учитывает и высоту текстфилда
|
Не совсем понял.
допустим gettern высоты textfield считает ее реальную высоту целиком. а settern соответственно устаналивает реальную высоту. получается для button геттерны и сеттерны работают только с графикой, а реальный размер не отображают и не ставят соответственно? если так то как мне изменить размер кнопки реальный, а не только ее графики? ведь когда я создаю кнопку new Button() я не создаю отдельно контейнер в котором она нарисована? как к нему обратиться для изменения его размеров? |
Чтобы узнать реальный размер, нужно использовать getBounds.
|
Не стоит надеяться на правильную работу измерителя высоты во флеше. Если нужны точные показатели, создайте свой контейнер и переопределите геттеры высоты и ширины.
Пример: Код AS3:
|
Цитата:
у меня же sprite - actionPanel будет содержать разные компоненты и его размеры будут меняться. как мне получать актуальную информацию и не задавать ее статично? Добавлено через 1 минуту Цитата:
getBounds возвращает мне rectangle где высота точно также выдает 101, как и *.height Добавлено через 4 минуты Цитата:
и потом , получается единственным "точным" способом посчитать реальную (отображаемую) высоту спрайта-контейнера - это пройтись по его детям, найти того у которого "y" самая большая и добавить к нему высоту этого же ребенка? а если там глубина вложенности детей 10, 100, 1000? обходить всех на всех уровнях? |
Цитата:
У вас какая-то проблема притянутая за уши, если честно. Все равно у вас же есть какие-то определенные размеры, в которые должна умещаться ваша панель действий. Поэтому либо ориентируйтесь на эти размеры, либо не используйте флешевские корявые компоненты, а берите либо сторонние, либо делайте собственные, которые будут все правильно возвращать. Цитата:
|
Нашел решение - которое предполагал :)
http://stackoverflow.com/questions/1...iner-correctly Добавлено через 2 минуты Цитата:
|
Стандартные компоненты подходят лишь когда надо по-быстренькому что-то набросать, не обращая внимания на дизайн. Лишь бы работало. Но когда надо делать серьезные проект, эти компоненты никак не подойдут
п.с. Речь не о флексовых компонентах (а то наверняка сейчас найдутся те, кто начнет спорить и приводить их в пример :D) |
Цитата:
|
| Часовой пояс GMT +4, время: 14:31. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.