![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2013
Сообщений: 8
|
Помещаю ComboBox в Sprite, затем изменяю размеры спрайта, в который помещён комбобокс, и получается вот такая беда:
см. изображение в прикреплении Может кто сталкивался с таким? |
|
|||||
|
Нужно просто найти элемент меню(dropdown) и отмасштабировать либо его, либо вложенные элементы, как описано ниже.
http://www.kirupa.com/forum/showthre...opmenu-scaling: var combobox:ComboBox = _box; combobox.dropdown.getChildAt(2).scaleY = combobox.dropdown.getChildAt(2).scaleX = this.scaleY; this.addEventListener(Event.ENTER_FRAME, enterframe); function enterframe(pEvent:Event):void{ combobox.dropdown.y = this.y + ((combobox.y + combobox.height) * this.scaleY); |
|
|||||
|
Регистрация: Apr 2013
Сообщений: 8
|
мне изачально пришла в голову такая же мысль
но на практике оказалось, что количество вложенных спрайтов гораздо больше чем один, поэтому масштабируется далеко не тот в который я поместил комбобокс, а искать тот спрайт, который масштабируется, крайне утомительное занятие (да и бесполезное) как мне видится наиболее приближённым решением что-то между этим: this.list.y = this.localToGlobal(new Point(this.x, this.y) ).y - (this.height + this.startHeight) в примерах этого кода this - это это ссылка на класс, расширяющий класс ComboBox печально конечно что это не окончальное решение. Вобщем нехватает какого-то коэффициента, на который нужно умножить или разделить |
|
|||||
|
Модрон-ветеринар
|
А если компонент не масштабировать? Я точно не помню, к тому же речь о компоненте AS3, но разве у него нет нативного метода, изменяющего видимый размер?
__________________
Идите первым! |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А не так ли?
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Apr 2013
Сообщений: 8
|
Цитата:
только там не прибавлять, а вычитать, тогда позиция выпадающего списка в самый аккурат получается: осталось решить как поправить ширину и высоту выпадающего списка при масштабировании |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну Вы могли сразу посчитать коэфициент масштабирования, запросив глобальные координаты точек this.x и this.x + this.width и узнав таким образом "новую" ширину, поделить ее на this.width — вот и скейл.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Apr 2013
Сообщений: 8
|
Цитата:
Получилось то что нужно: |
|
|||||
|
Регистрация: Mar 2015
Адрес: Ставрополь
Сообщений: 10
|
Простите за поднятие древней темы, однако столкнулся с такой же проблемой масштабирования. Увеличиваю спрайт на котором ComboBox, при этом видимая часть ComboBox'a увеличивается пропорционально скейлу спрайта, а выпадающий список остается такого же размера, как и до скейла. Не пойму что-то, как тс использовал код из предыдущего поста.
|
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,282
|
вроде у всех компонентов есть родной метод setSize, который точно знает как надо компонент тянуть
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|