【发布时间】:2011-06-22 13:35:16
【问题描述】:
我正在尝试仅使用 mxml,不使用
我有一个自定义组件,它有一个滑块和文本输入,它们的值/文本属性绑定在一起。我在组件中显示了滑块的一些属性,以便可以将其视为滑块。
<?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 属性,因此该组件的值将始终包含滑块的值(以便组件可以像滑块一样使用)。
滑块的属性也绑定到组件的属性(最小值、最大值、刻度线)
问题是我想从组件的值初始化滑块的值,但是滑块的值已经绑定到了textinput。我也可以将它绑定到组件吗?
我的应用程序会有这样的内容:
<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"/>
我好像漏掉了一些简单的东西。
【问题讨论】:
标签: actionscript-3 actionscript mxml