Изменить размер ширины в процентах

У меня есть два контейнера внутри одного основного контейнера.
Один контейнер имеет ширину 20%, а другой - 80%.
Теперь я хочу скрыть 20% контейнер при нажатии кнопки, поэтому я использую.

<s:Resize id="resizeHide" widthTo="0" target="{fstContainer}"/>

Теперь, при нажатии той же кнопки, я хочу изменить размер этого контейнера на 20%, что будет решением.

Я пытался следовать, но у меня не получилось.

<s:Resize id="resizeShow"  widthTo="20" target="{fstContainer}"/>

Я не могу установить фиксированную ширину. И эффект изменения размера займет только ширину в пикселях.

1 ответ

Решение

Чтобы изменить размер контейнера до 20% от ширины сцены, вы можете просто сделать так:

Ваш Resize эффект:

<s:Resize id="resizeShow" target="{fstContainer}"/>

И тогда для вашей кнопки:

<s:Button id="btn_resize" label="Resize" click="resizeShow.widthTo = stage.stageWidth / 5; resizeShow.play();"/>

РЕДАКТИРОВАТЬ:

Вторым способом является использование привязки данных, например:

<s:Resize id="resizeShow" widthTo="{_20_percent}" target="{fstContainer}"/> 

Объявите привязываемую переменную:

[Bindable] protected var _20_percent:Number;

И затем, вы можете установить его значение, когда создание вашего приложения будет завершено или когда оно будет добавлено на сцену, ...:

protected function on_addedToStage(event:Event):void
{
    _20_percent = stage.stageWidth / 5;
}

protected function on_creationComplete(event:FlexEvent):void
{
    // here of course, as you know, the stage is not yet accessible
    _20_percent = FlexGlobals.topLevelApplication.width / 5;
}

И, конечно, здесь вам нужно использовать только один обработчик событий для установки значения.

Третий способ - создать свой Resize динамический эффект, когда пользователь нажимает кнопку изменения размера:

protected function btn_resize_onClick(event:MouseEvent):void
{
    var resizeShow1:Resize = new Resize();
        resizeShow1.target = fstContainer;
        resizeShow1.widthTo = stage.stageWidth / 5;
        resizeShow1.play();
}

И вам решать, какой способ вы предпочитаете;)

Надеюсь, что это может помочь.

Другие вопросы по тегам