Flash CS3: TextField.appendText ()

Flash CS3 tiene tantas innovaciones, incluyendo el "extraño" para especificar a recopilar algunos consejos sobre cómo escribir código. Esto sucede, por ejemplo, cuando se trata de objetos TextField . He tenido que añadir una cadena al final de un campo TextField con la notación clásica:

1
+ = "Stringa aggiunta" ; . mioTextField_txt texto + = "cadena agregó que";

Pero eso es ActionScript 3.0, al terminar la película, me sentí (advertencia) - o recomendados:

Advertencia: 3551: Añadir texto a un TextField empleando + = es mucho más lento que usando el método de TextField.appendText ().

Cool! Vamos a ver el hecho de que la SINOPSIS método appendText() en realidad dice:

) 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. Añade la cadena especificada por newText al final del campo de texto. Este método es más eficiente que una asignación de suma ( += ) que se aplican a un text (por ejemplo, <strong>someTextField.text += moreText</strong> ), en particular en el caso de un campo de texto con una cantidad significativa de contenido.

Confiamos? Para verificar la seguridad:

1
2
3
4
5
6
7
8
9
. getTimer ; flash.utils importación getTimer.;

uint = 0 ; var i: uint = 0;
int = getTimer ( ) ; var s: int = getTimer ();
i ; i < 10000 ; i ++ ) { for (i, i <10000; i + +) {
+ = "Ciao" ; . text_txt texto + = "Hola";
}
int = getTimer ( ) ; var f: int = getTimer ();
f - s ) ; trace (f - s);

Tiempo: 9360 - en mi máquina, en modo de depuración. Vamos a tratar según lo aconsejado por el compilador:

1
2
3
4
5
6
7
8
9
. getTimer ; flash.utils importación getTimer.;

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

Hora: 8415 ;)

Nada grande ... pero es la verdad! ). El método appendText() es más rápido y más potente de pre-incremento del operador ( += ). ¿Por qué? La razón más obvia es la siguiente: el operador ( += ) funciona en cualquier tipo de datos. Además, en un lenguaje orientado a objetos de este operador no está estructurado como en C, pero es simplemente "oggettato". En C + +, por ejemplo, puede sobrescribir (anular) el operador como parte de la estructura de la lengua objeto en sí mismo. En última instancia appendText() es más rápido porque su objetivo es "arreglar" a una cadena y por lo tanto no hace muchas preguntas "," en ella. El operador ( += ), sin embargo, debe funcionar para cualquier tipo de datos y por lo tanto no está optimizada para las cuerdas. En C, por el contrario, el operador ( += ) es una función en un nivel bajo y siempre será más rápida que una llamada a una función.

No hay comentarios para esta entrada

Deja un comentario

TAG PERMISOS XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de inserción:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Deje de SOPA