2013-02-15 36 views
0

我有一个HSlider,它有两个标签,开始年份和结束年份。结束年份每年增加一次,并且我希望滑块上的标签显示最近的关闭年份。使用ActionScript修改flex上的标签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

不做hsStart.invalidateDisplayList(); – 2013-02-15 16:50:07

+0

注释掉hsStart.invalidateDisplayList();没有帮助。我以这种方式开始,但我回过头来评论一下,以确保。 – 2013-02-15 18:52:46

+0

你是什么意思下“显示最近关闭的一年”?您是否想根据程序的使用日期更新您的右侧标签? – Anton 2013-02-15 21:03:15

回答

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> 
+0

我有点困惑,使用最小和最大的作品游泳,但我真的很感激成功。谢谢安东。 – 2013-02-16 17:07:20