В flex установите свойство относительно другого, но затем потеряем соединение - PullRequest
2 голосов
/ 19 мая 2011

Во Flex 3.0 я создал состояние с перетаскиваемыми окнами (код CollapsableTitleWindow, написанный кем-то другим, но это не имеет значения).

Затем я создал новое состояние представления, которое немного меняет положение окон.

<mx:State name="newstate" basedOn="firststate">
    <mx:SetProperty target="{window1}" name="width" value="50%"/>
    <mx:SetProperty target="{window2}" name="x" value="{window1.width + 5}"/>

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

Как я могу привязать x к значению (window1.width + 5) при загрузке, но затем потерять непрерывную оценку вещи?

1 Ответ

2 голосов
/ 20 мая 2011

Вы можете установить свойство x в слушателе событий для одного из событий изменения состояния: enterState , exitState , currentStateChange или currentStateChanging .

Вот документация Adobe .

Вы можете попробовать обработчик события для события enterState:

protected function window1_enterStateHandler(event:FlexEvent):void
{
  window1.percentWidth = 100;
}

UPDATE: Из комментариев Tominator ниже:

Alert.show('before: ' + window1.width.toString() + ' pixels, ' + window1.percentWidth.toString() + '%');  
window1.percentWidth = 50;  
Alert.show('after: ' + window1.width.toString() + ' pixels, ' + window1.percentWidth.toString() + '%');  

В результате я получаю вывод:

до: 458,022705 пикселей, NaN%
после: 458,022705 пикселей, 50%

Вы можете попробовать позвонить window1.validateDisplayList() или validateNow() после установки свойства percentWidth.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...