6
votes

Comment faire défiler de manière programmée à la fin d'une textare de Flex Spark lorsqu'une nouvelle ligne est ajoutée?

L'ancienne méthode pour le MX: Textarea ne fonctionne plus. Spécifiquement: xxx

J'ai trouvé cette méthode d'étincelle, mais semble un peu kludgy: xxx

existe une façon plus simple de faire Ceci?


0 commentaires

4 Réponses :


3
votes

C'est ainsi que vous faites avec une textaree d'étincelle, mais vous pouvez toujours essayer de l'envelopper dans un composant de défilement et que vous n'avez pas la textarea elle-même se soucie de défilement:

scroller.verticalScrollBar.value = scroller.verticalScrollBar.maximum;


2 commentaires

Merci. Cela peut avoir travaillé à un moment donné, mais dans le dernier SDK 4.6, j'ai reçu cette erreur "," Spark.comPonents.Textarea "n'est pas assignable à la propriété par défaut," Viewport ', de type "Spark.core.iviewport". " En outre, quel événement appelez-vous le code comme code?


Oui, ça ne marche probablement plus. Vous devrez envelopper le Texarea avec un groupe ou quelque chose. Je ne suis pas trop sûr de ce que vous voulez dire quel événement vous l'appelez sur ...



2
votes

L'étincelle Textarea a une méthode "Appendtext" Cela ajoute au texte et défile automatiquement vers la ligne ajoutée ..


0 commentaires

6
votes

supposer que vous avez xxx pré>

ce qui suit fonctionnera: p>

ta.scroller.verticalScrollBar.value = ta.scroller.verticalScrollBar.maximum;


1 commentaires

N'oubliez pas de validateNow () sinon je ne peux pas être rafraîchie



0
votes
        protected function consoleTextArea_valueCommitHandler(event:FlexEvent):void {
            scrollToTheBottom();
        }

        protected function consoleTextArea_changeHandler(event:TextOperationEvent):void {
            scrollToTheBottom()
        }

        public function scrollToTheBottom():void {
            var scrollBar:VScrollBar = consoleTextArea.scroller.verticalScrollBar;
            scrollBar.value = scrollBar.maximum;
            consoleTextArea.validateNow();

            if (scrollBar.value != scrollBar.maximum) {
                scrollBar.value = scrollBar.maximum;
                consoleTextArea.validateNow();
            }
        }

1 commentaires

Pourquoi cela est-il descendu? Cela fonctionne avec succès pour moi.