Я пытаюсь сделать это, используя только mxml, без тегов , хотя мне не обязательно нужно решение, которое состоит только из mxml.Это было скорее образовательным упражнением, чтобы посмотреть, смогу ли я сделать все это в mxml.
У меня есть пользовательский компонент, который имеет ползунок и текстовый ввод, и их свойства value / text связаны друг с другом.Я использую несколько свойств ползунка в моем компоненте, так что он может рассматриваться как слайдер.
<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" verticalAlign="middle" horizontalGap="0">
<mx:int id="value">{slider.value}</mx:int>
<mx:int id="minimum">0</mx:int>
<mx:int id="maximum">100</mx:int>
<mx:int id="tickInterval">25</mx:int>
<mx:Array id="labels">['0%','50%','100%']</mx:Array>
<mx:HSlider id="slider" liveDragging="true" snapInterval="1"
value="{int(input.text)}"
minimum="{minimum}"
maximum="{maximum}"
tickInterval="{tickInterval}"
labels="{labels}"/>
<mx:Spacer width="25"/>
<mx:TextInput id="input" restrict="0-9" text="{slider.value}" maxChars="3" width="30"/>
<mx:Label text="%"/>
</mx:HBox>
Обратите внимание, что свойство VALUE ползунка привязано к свойству TEXT поля ввода, и наоборотнаоборот.Двусторонняя привязка.Это позволяет пользователю перемещать большой палец или вводить в поле ввода, чтобы выбрать значение, и они остаются синхронизированными друг с другом.
Кроме того, свойство VALUE компонента привязано к свойству VALUE ползунка, так что значениеэтот компонент всегда будет содержать значение ползунка (чтобы компонент можно было использовать как ползунок).
Свойства ползунка также привязаны к свойствам компонента (мин, макс, отметки)
Проблема в том, что я хочу инициализировать значение ползунка из значения компонента, но значение ползунка уже привязано к вводу текста.Могу ли я также привязать его к компоненту?
В моем приложении будет что-то вроде этого:
<local:mycomponent minimum="20" maximum="80" labels="['20','50','80']" value="40"/>
Несколько вещей, которые я пробовал, не работали:
(1) У меня был обработчик инициализации.
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" initialize="slider.value=value">
Это работало, если у моего приложения было
myslider.value = 40;
, но не работало, если у меня было
<local:mycomponent value="40"/>
(2) Я попробовал обработчик creationComplete
(3) Я попробовал mx: binding
<mx:Binding source="slider.value" destination="this.value"/>
Кажется, мне не хватает чего-то простого.