ActionScript: Возможна ли относительная ширина DisplayObject?

Можно ли сделать, например, ширину 100% для любого дочернего объекта DisplayObject относительно его родителя, как в HTML?

Например, чтобы сделать автоматическое изменение размера на этапе изменения размера.

Чтобы не перерисовывать весь пользовательский интерфейс вручную.


person Somebody    schedule 09.03.2013    source источник


Ответы (2)


Как я обычно справляюсь с этим, у меня есть собственный класс, который расширяет Sprite, который прослушивает Event.RESIZE на сцене, а затем переопределяет эту функцию в каждом классе, поскольку обычно у меня нет единого решения для того, как я хочу, чтобы отображаемые объекты действовали при изменении размера. . Вы могли бы изменить это, чтобы работать для ваших целей.

public class ResizeableSprite extends Sprite {

    public function ResizeableSprite()
    {
        addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
        addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage, false, 0, true);
    }

    protected function onResize(eventObject:Event):void {
        // override
    }

    protected function onAddedToStage(eventObject:Event):void {
        root.stage.addEventListener(Event.RESIZE, onResize, false, 0, true);
    }

    protected function onRemovedFromStage(eventObject:Event):void {
        root.stage.removeEventListener(Event.RESIZE, onResize);
    }

    public function destroy():void {            
        removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
        removeEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage);
    }
}
person Scott    schedule 09.03.2013
comment
Спасибо друг. Интересная идея. Я сделал немного иначе. Я создал массив с обратными вызовами для каждого элемента пользовательского интерфейса и прокручиваю его через одно событие onResize. - person Somebody; 09.03.2013

если вы хотите, чтобы это было сделано на всей сцене, используйте точный размер
stage.scaleMode=StageScaleMode.EXACT_FIT;
документация здесь
или используйте Flex

person Ayoub Kaanich    schedule 09.03.2013