22/09/2009

Défilement d'un TextArea avec des boutons

Si l'on souhaite faire défiler le contenu d'un textArea sans passer par sa scrollbar mais par des boutons bien indépendant (ce qui permet de les positionner exactement où l'on veut), il est nécessaire de faire une fonction utilisant "VerticalScrollPosition ou HorizontalScrollPosition"
Dans le cas d'un défilement vertical:
<mx:Script>
  <![CDATA[
    import mx.events.SliderEvent;
    private function prev(MonId:TextArea):void {
    var pos:int = MonId.verticalScrollPosition-1;
    var min:int = 0;
    var value:int = Math.max(min, pos);
    MonId.verticalScrollPosition = value;
    }

private function next(MonId:TextArea):void {
    var pos:int = MonId.verticalScrollPosition+1;
    var max:int = MonId.maxVerticalScrollPosition;
    var value:int = Math.min(pos, max);
    MonId.verticalScrollPosition = value;
    }

  ]]>
</mx:Script>
MonId:TextArea , MonId sera l'id de mon champs à renseigner dans l'appel de la fonction du bouton, TextArea correspond au type de l'objet auquel sera affecté la fonction. Supprimer sa scrollbar par défaut en mettant 'verticalScrollPolicy="off"'

<mx:TextArea width="144" height="132" verticalScrollPolicy="off"
id="IdDeMonChamps_txt" text="du texte en veux tu en voilà,..."/>
<mx:Button  label="Vers le haut" click="prev(IdDeMonChamps_txt);"/>
<mx:Button  label="Vers le bas" click="next(IdDeMonChamps_txt);"/>

Aucun commentaire:

Enregistrer un commentaire