![]() |
|
||||||||||
|
|||||
|
Цитата:
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
да, не очень пример привел - в сторону уводит))) без задачи этой лучше
__________________
скриптограф |
|
|||||
|
orcpochta, Вас непонятно. У вас есть какая то конкретная задача? У конкретной задачи есть конкретная реализация. Скажите задачу - мы Вам скажем, что нужно сделать чтобы заработало. Зачем вы приводите абстрактные примеры, а получая абстрактное решение жалуетесь, что оно абстрактное?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 890
|
а если дети со временем меняют свое содержание? графика там в них какая-нибудь отрисовывается и т.д.?))
__________________
скриптограф |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
Дети детей такие же дети и тоже могут наследоваться. Если есть возможность, то есть вы контролируете весь контент, то метод работает. Если нет, то есть есть таймлайн анимация или контент грузится из вне, то ENTER_FRAME и вперед.
|
|
|||||
|
Прошу прощенья что опять про таймеры, но думаю самый простой вариант такой:
import flash.display.DisplayObject; import flash.events.Event; import flash.events.TimerEvent; import flash.utils.Timer; public class resizeManager { private static var _items:Array = []; private var _timer:Timer; public function resizeManager():void { _timer=new Timer(100); _timer.addEventListener(TimerEvent.TIMER, _update); _timer.start(); } private function _update(e:TimerEvent):void { for each(var item in _items) { if ((item.obj.width != item.width) || (item.obj.width != item.width)) { item.width = item.obj.width; item.height = item.obj.height; item.obj.dispatchEvent(Event.RESIZE); } } } public static function addItem(var obj:DisplayObject):void { _items.push( { "width":obj.width, "height":obj.height, "obj":obj } ); } } ![]() |
|
|||||
|
Цитата:
Если отслеживать рисование - тогда надо делать свою обёртку. Или рисовать только в детях. Про детей - package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.events.Event; /** * ... * @author gloomyBrain */ public class ExtendedSprite extends Sprite { public function ExtendedSprite() { super(); } private function change():void { this.dispatchEvent(new Event(Event.CHANGE)); } override public function addChild(child:DisplayObject):DisplayObject { super.addChild(child); this.change(); return child; } override public function getChildAt(index:int):DisplayObject { return super.getChildAt(index + 1); } override public function get width():Number { return super.width; } override public function set width(value:Number):void { super.width = value; this.change(); } override public function get height():Number { return super.height; } override public function set height(value:Number):void { super.height = value; this.change(); } override public function get x():Number { return super.x; } override public function set x(value:Number):void { super.x = value; this.change(); } override public function get y():Number { return super.y; } override public function set y(value:Number):void { super.y = value; this.change(); } } }
__________________
...вселенская грусть Последний раз редактировалось gloomyBrain; 24.05.2010 в 18:05. |
|
|||||
|
Цитата:
Но orcpochta верно заметил, детей тоже можно перемещать. Я бы сказал, что абсолютного решения нету - таковое в 90% будет избыточным. Лучше смотреть по ситуации, не встречал ещё ниразу проект, в котором бы мне понадобилось знать об изменении ширину, но не было бы достаточно элементарного переопределения сеттера.
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|