2008-12-15 71 views
0

我有麻烦我的部件时PARAMS已更改为更新:软硬度:invalidateData

package mycompany 
{ 

    import flash.events.Event; 
    import mx.events.SliderEvent; 
    import mx.controls.HSlider; 
    import mx.controls.sliderClasses.Slider; 

    public class FromToSlider extends HSlider 
    { 

     /* from: */ 

     private var _from:int; 

     [Bindable] 
     public function get from():int 
     { 
      return _from; 
     } 

     public function set from(value:int):void 
     { 
      this._from = value; 
      this.values[0] = value; 
      invalidateProperties(); 
     } 

     /* //from */ 

     /* to: */ 

     private var _to:int; 

     [Bindable] 
     public function get to():int 
     { 
      return _to; 
     } 

     public function set to(value:int):void 
     { 
      this._to = value; 
      this.values[1] = value; 
     } 

     /* //to */ 

     override public function initialize():void 
     { 
      super.initialize(); 
      addEventListener(SliderEvent.CHANGE, handleChange, false, 0, true); 
     } 

     protected function handleChange(event:SliderEvent):void 
     { 
      var ct:Slider=Slider(event.currentTarget); 
      this.from = ct.values[0]; 
      this.to = ct.values[1]; 
     } 

    } 
} 

当我设置“从”和“到”拇指没有更新。我试过invalidateProperties,但没有奏效。

回答

1

在invalidateProperties()后添加对invalidateDisplayList()的调用。这将确保Flex在下一个关键帧上重绘组件。

您还应该在'set to()'函数中添加相同的内容。