Flash CS3: TextField.appendText ()
Lørdag, 15. desember 2007 Flash CS3 har så mange virkelig nytt, inkludert "nysgjerrige" for å indikere når noen tips om å skrive kode. Dette skjer for eksempel når vi har å gjøre med gjenstander TextField Jeg må legge til en streng på slutten av et felt TextField med klassisk notasjon:
- ; mioTextField_txt. tekst + = "lagt String";
Men her er ActionScript 3.0, når fullføre filmen, jeg føler (Advarsel) - eller anbefaler:
Advarsel: 3551: Legge til tekst i en TextField ved + = er ofte en langsommere sammenlignet med hjelp TextField.appendText ().
Fantastico! La oss se det faktum Synopsis metoden appendText() sier:
Legger til den angitte strengen fra parameteren
newTextslutten av teksten i det aktuelle feltet. Denne metoden er mer effektiv enn et tillegg+=brukt på en eiendomtext someTextField.text += moreTexttilfeller et tekstfelt med en vesentlig mengde innhold.
Vi stoler på? For sikkerhets sjekk:
- . getTimer ; import flash. utils. getTimer;
- ; var i: UINT = 0;
- = getTimer ( ) ; var s: int = getTimer ();
- i; i < 10000 ;i++ ) { for (i; i <10000; i + +) (
- ; text_txt. tekst + = "Hei";
- )
- = getTimer ( ) ; var f: int = getTimer ();
- fs ) ; Trace (fs);
Tid: 9360 - på min maskin, i debug-modus. La deretter som anbefales av kompilatoren:
- . getTimer ; import flash. utils. getTimer;
- ; var i: UINT = 0;
- = getTimer ( ) ; var s: int = getTimer ();
- i; i < 10000 ;i++ ) { for (i; i <10000; i + +) (
- "Ciao" ) ; text_txt. appendText ( "Hei");
- )
- = getTimer ( ) ; var f: int = getTimer ();
- fs ) ; Trace (fs);
Tid: 8415 ![]()
Ingenting eksepsjonelt ... Men det er sant! Metoden appendText() er raskere og ytelsen til pre-inkrementelle += Hvorfor? Den mest åpenbare grunnen er: operatør += fungerer på alle typer data. Også i et OO språk denne operatøren er ikke strukturert som i enkle C, men er "dekket". I C + +, for eksempel, kan du overskrive (overstyre) operatøren som del av strukturen av objektorienterte språk selv. I siste instans appendText() er raskere fordi målet er å "henge" en streng, og derfor er det mange "spørsmål" i den. Operatøren += må fungere for alle typer data, og derfor ikke optimalisert for strenger. I C, tvert imot, operatøren += er et lavt nivå og vil alltid være raskere enn en samtale til en funksjon.




















