![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2007
Сообщений: 76
|
В мануалах ничего такого не нашел, скорее всего такого и нет, но все же...
Есть ли у класса DisplayObject и у мувиклипа в частности какое-нибудь событие, которое автоматически срабатывает при изменении его размеров (не Event.RESIZE для stage, он срабатывает только когда все окно меняет размер)? То есть например есть текстовое поле в мувике, добавили туда текст - высота увеличилась, можно ли это как-то отловить, не дисптча свои события? |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 374
|
Нет такого события. Перепишите width и height и испускайте событие вручную. Или обратите внимание на UIComponent.
|
|
|||||
|
Если не для текста, то унаследуйтесь от требуемого класса и пропишите новые сеттеры на scaleX, scaleY, width, height, которые бы выстреливали требуемое событие. Хотя это не совсем верный подход.
__________________
Дело не в тебе |
|
|||||
import flash.display.Sprite; import flash.events.Event; public class ExtendedSprite extends Sprite { public function ExtendedSprite() { super(); } override public function set width(w:Number):void { super.width=w; dispatchEvent(new Event(Event.RESIZE)); } override public function set height(h:Number):void { super.height=h; dispatchEvent(new Event(Event.RESIZE)); } } |
|
|||||
|
Ну и геттер бы надо переписать, ибо ширину он тогда будет возвращать не у супера.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
В сеттерах ещё и проверять надо текущее значение, чтобы не слать в холостую события. Более того, переопределение сеттеров не поможет отлову изменения размеров детей.
|
|
|||||
|
Регистрация: Jan 2007
Сообщений: 76
|
OK, всем спасибо. Буду юзать собственные события, не так уж это трудно, просто хотелось узнать, существует ли более красивый способ...
|
|
|||||
|
Цитата:
С другой стороны, если дети тоже будут кастомным классом, то нужно просто диспатчить событие ресайза и подписаться на него родителем ![]()
__________________
Дело не в тебе |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 374
|
Поэтому я всегда использую UIComponent
Оно всегда испускает нужные события + у него есть событие ресайза |
|
|||||
|
Зато UIComponent не дружит со scale9grid внутри контейнера или у меня руки кривые
![]()
__________________
Дело не в тебе |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|