Flash CS3 a de très nombreuses innovations, y compris les «curieux» pour indiquer au moment de la compilation quelques conseils sur l'écriture de code. Cela arrive, par exemple, lorsque nous traitons avec des objets TextField . J'ai dû ajouter une chaîne à la fin d'un champ TextField avec la notation classique:
1 | + = "Stringa aggiunta" ; . mioTextField_txt texte + = "chaîne en ajoutant"; |
Mais c'est ici que ActionScript 3.0, lorsque vous remplissez le film, je me suis senti (Avertissement) - ou recommandés:
Attention: 3551: Ajout de texte à un TextField avec + = est beaucoup plus lent que d'utiliser la méthode TextField.appendText ().
Cool! Voyons le fait de la méthode SYNOPSIS appendText() dit en réalité:
) applicata a una proprietà
text(ad esempio<strong>someTextField.text += moreText</strong>), in particolare nel caso di un campo di testo con una quantità di contenuto significativa. Ajoute la chaîne spécifiée parnewTextà l'extrémité du champ de texte. Cette méthode est plus efficace qu'un affectation d'addition (+=) propriétés appliquées à untext(par exemple<strong>someTextField.text += moreText</strong>), en particulier dans le cas d'un champ de texte avec une quantité importante de contenu.
Nous faire confiance? Pour vérifier la sécurité:
1 2 3 4 5 6 7 8 9 |
Heure: 9360 - sur ma machine en mode debug. Essayons comme conseillé par le compilateur:
1 2 3 4 5 6 7 8 9 | . getTimer ; les importations flash.utils getTimer.; uint = 0 ; var i: uint = 0; int = getTimer ( ) ; var s: int = getTimer (); i ; i < 10000 ; i ++ ) { pour (i, i <10000; i + +) { ( "Ciao" ) ; . text_txt appendText ("Bonjour"); } int = getTimer ( ) ; var f: int = getTimer (); f - s ) ; trace (f - s); |
Heure: 8415 ![]()
Rien d'exceptionnel ... mais c'est vrai! ). La méthode appendText() est plus rapide et plus puissant pré-incrémentale de l'opérateur ( += ). Pourquoi? La raison la plus évidente est la suivante: l'opérateur ( += ) fonctionne sur n'importe quel type de données. Par ailleurs, dans un langage OO cet opérateur n'est pas structuré comme en C, mais est simplement un «objet». En C + +, par exemple, vous pouvez écraser (remplacer) l'exploitant dans le cadre de la structure de la langue objet lui-même. Finalement appendText() est plus rapide parce que son but est de "bloquer" une chaîne et donc ne fait pas beaucoup de "questions" en elle. L'opérateur ( += ), cependant, devrait fonctionner pour tout type de données et n'est donc pas optimisée pour les cordes. En C, au contraire, l'opérateur ( += ) est une fonction de bas niveau et sera toujours plus rapide qu'un appel à une fonction.










Il n'y a aucun commentaire pour cet article
Laisser un commentaire