2010-11-16 15 views
0

Ceci est une question si simple, mais apparemment tous les forums où ActionScript est discuté (ou du moins tous ceux sur google) ne sont pas très bien géré.Donner/obtenir une référence à (ou le nom de) un UIScrollBar dans un TextArea

J'ai un textArea. Il a un UIScrollbar. Je veux être capable de référencer cette barre de défilement. J'ai entendu dire qu'il y avait une fonction update(), et que cela pourrait me sauver des choses inexplicables que ce damnable UIScrollbar est en train de faire.

(BTW, actionscript = langue blague)

+1

Juste un commentaire. Vous n'avez peut-être pas remarqué, mais votre question ressemble à ceci: «J'ai un problème très simple, mais je n'arrive pas à le résoudre parce que la langue est une blague et que les gens qui discutent ne peuvent pas se réunir. Cette attitude aide rarement. Au lieu de cela, essayez de chercher un peu par vous-même (par exemple, lire les documents de l'API si vous utilisez des composants n'est pas une mauvaise idée), puis expliquez votre problème avec autant de détails que possible. ce qui est raisonnable); aussi, expliquant ce que vous avez essayé et n'a pas fonctionné aide habituellement. –

Répondre

0

Dans votre classe il suffit d'écrire:

private var usb:UIScrollBar = new UIScrollBar(); 

et voilá, USB est votre référence.

1

Lorsque la barre de défilement est ajoutée à TextArea, elle distribue l'événement ADDED. Vous pouvez attraper sa barre de défilement comme ceci:

textArea.addEventListener(Event.ADDED, onTextAreaChildAdded); 

private function onTextAreaChildAdded(event:Event):void { 
    if (event.target is UIScrollBar) { 
     //you got it 
     var scrollBar:UIScrollBar = event.target as UIScrollBar; 
    } 
} 

L'événement avec barre de défilement sera déclenché une fois. Il y a aussi beaucoup d'autres choses qui s'ajoutent dans TextArea, donc la vérification de type est nécessaire.

tu sais blagues et serait cool^_^

Edit: mal ... Véritable solution semble être juste textArea.verticalScrollBar.

+0

Pourquoi ce casher n'est-il pas? Il ne reconnaît pas theScrollBar dans la fonction interne: if (event.target est UIScrollBar) { var theScrollBar: UIScrollBar = événement.target comme UIScrollBar; \t \t displayWindow.addEventListener (Event.RESIZE, \t \t updateIt fonction \t() {theScrollBar.update();}); \t} La barre de défilement se trouve dans la fenêtre d'affichage .. – Amalgovinus

+0

Désolé, je ne comprends pas ... Est-ce que le code après '// vous l'avez' est exécuté (vérifiez avec trace)? Cette barre de défilement doit être dans TextArea (si vous attrapez ses événements). – alxx

+0

Ah, vous avez raison, il n'est pas du tout frappé .. la barre de défilement n'est pas ajoutée par programmation, alors peut-être qu'il n'y a pas de Event.ADDED pour cela. C'est mon intuition, de toute façon ... Je me demande s'il existe un moyen de nommer un UISCrollbar qui n'est pas ajouté par programmation. Le suivi de tous les événements event.targets ajoutés montre que seuls les skins de la barre de défilement sont détectés. Ce n'est pas le UIScrollbar lui-même. hmm. – Amalgovinus