2008-12-15 6 views
0

J'ai du mal à mes composants à mettre à jour lorsque les params a changé:Flex: 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]; 
     } 

    } 
} 

Quand je mets « de » et « à » les pouces ne sont pas mises à jour. J'ai essayé invalidateProperties mais cela n'a pas fonctionné.

Répondre

1

Ajoutez un appel à invalidateDisplayList() après invalidateProperties(). Cela garantira que Flex redessine le composant sur l'image clé suivante.

Vous devez également ajouter la même chose à la fonction 'set to()'.