我有一个HSlider,有两个标签,一个起始年份和结束一年。每年结束一年的结束年份增加,我希望滑块上的标签显示最近的结束年份。
我尝试过更改slider.labels [1]&当我在调试中查看它时,它会更改值,但不会在屏幕上显示。我尝试了一个可绑定的变量,我再次看到标签[1]在调试中发生了变化,但是这个值没有显示在屏幕上。
hsStart.labels[0] = acResult[0].RATE_MIN;
hsStart.labels[1] = acResult[0].UP_RANGE;
或
_aryLabels[0] = acResult[0].RATE_MIN;
_aryLabels[1] = acResult[0].UP_RANGE;
hsStart.invalidateDisplayList();
<mx:HSlider minimum="1981" maximum="2000" snapInterval="1" id="hsStart" tickInterval="4" liveDragging="true" labels="{_aryLabels}"
width="527" thumbCount="2" change="updateYear(event);" dataTipFormatFunction="formatSlider" allowThumbOverlap="true" horizontalCenter="190" top="118"
sliderThumbClass="Classes.Input.BigThumbClass" fillColors="[0xff0000, 0x00ff00, 0xff0000, 0x00ff00]"/>
这看起来很简单,任何人都有任何想法吗?
保
答案 0 :(得分:1)
你可以这样做:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" minWidth="955" minHeight="600" creationComplete="init()">
<mx:Script>
<![CDATA[
[Bindable]private var lastYear:int = 2008;
private function init():void
{
updateLabels();
}
protected function onIncYear(event:MouseEvent):void
{
lastYear++;
hsStart.maximum = lastYear;
updateLabels();
}
private function updateLabels():void
{
hsStart.labels = [hsStart.minimum, hsStart.maximum];
}
]]>
</mx:Script>
<mx:HSlider
id="hsStart"
minimum="1981"
maximum="{lastYear}"
snapInterval="1"
tickInterval="4"
liveDragging="true"
width="527"
thumbCount="2"
allowThumbOverlap="true"
horizontalCenter="190"
top="118"
fillColors="[0xff0000, 0x00ff00, 0xff0000, 0x00ff00]"/>
<mx:Button x="698" y="36" label="Increment Year" click="onIncYear(event)"/>
</mx:Application>