Artikel Tagged 'getTimer ()'

Flash CS3: TextField.appendText ()

Flash CS3 hat so viele Neuerungen, darunter die "ungerade" zu kompilieren einige Tipps zum Schreiben von Code angeben. Dies passiert zum Beispiel, wenn wir es mit Objekten zu tun TextField . Ich musste einen String an das Ende eines Feldes hinzufügen TextField mit der klassischen Schreibweise:

1
+ = "Stringa aggiunta" ; . mioTextField_txt text + = "string Zugabe";

Aber das ist ActionScript 3.0, beim Ausfüllen des Films, fühlte ich mich (Warnung) - oder empfohlen:

Warning: 3551: Anhängen von Text an ein TextField mit + = ist um ein Vielfaches langsamer als mit der Methode TextField.appendText ().

Kühlen Sie! Mal sehen, die Tatsache der Methode SYNOPSIS appendText() eigentlich sagt:

) 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. Fügt den String durch Angabe newText am Ende das Textfeld ein. Diese Methode ist effizienter als ein Neben-Zuweisung ( += ) Eigenschaften aufgebracht, um einen text (z. B. <strong>someTextField.text += moreText</strong> ), insbesondere bei einem Textfeld mit einer signifikanten Menge von Inhalten.

Wir vertrauen? Um die Sicherheit zu überprüfen:

1
2
3
4
5
6
7
8
9
. getTimer ; Import flash.utils getTimer.;

uint = 0 ; var i: uint = 0;
int = getTimer ( ) ; var s: int = getTimer ();
i ; i < 10000 ; i ++ ) { für (i, i <10000; i + +) {
+ = "Ciao" ; . text_txt + Text = "Hallo";
}
int = getTimer ( ) ; var f: int = getTimer ();
f - s ) ; trace (f - s);

Zeit: 9360 - auf meinem Rechner, im Debug-Modus. Versuchen wir, wie durch den Compiler empfohlen:

1
2
3
4
5
6
7
8
9
. getTimer ; Import flash.utils getTimer.;

uint = 0 ; var i: uint = 0;
int = getTimer ( ) ; var s: int = getTimer ();
i ; i < 10000 ; i ++ ) { für (i, i <10000; i + +) {
( "Ciao" ) ; . text_txt appendText ("Hallo");
}
int = getTimer ( ) ; var f: int = getTimer ();
f - s ) ; trace (f - s);

Zeit: 8415 ;)

Nichts Großes ... aber es ist wahr! ). Die Methode appendText() ist schneller und leistungsfähiger Pre-inkrementelle Operator ( += ). Warum? Der offensichtlichste Grund ist folgender: der Operator ( += ) funktioniert auf jedem Typ von Daten. Außerdem ist in einer OO-Sprache Dieser Operator ist nicht wie in C, sondern ist einfach strukturiert "oggettato". In C + +, zum Beispiel, können Sie überschreiben (Override) der Betreiber im Rahmen der Struktur des Objekts Sprache an sich. Letztlich appendText() ist schneller, weil ihr Ziel ist es "reparieren" in einen String und somit nicht tun viele "Fragen" in ihm. Der Operator ( += ), muss jedoch für jede Art von Daten zu arbeiten und wird daher nicht für die Saiten optimiert. In C, im Gegenteil, der Operator ( += ) ist eine Funktion auf einem niedrigen Niveau und wird immer schneller als das Aufrufen einer Funktion sein.

Mehr ...


Stoppen Sie SOPA