Artigos com a tag 'appendText ()'

Flash CS3: TextField.appendText ()

Flash CS3 tem tantas inovações, incluindo o "estranho" para especificar a compilar algumas dicas sobre como escrever código. Isso acontece, por exemplo, quando estamos lidando com objetos TextField . Eu tive que adicionar uma string para o fim de um campo TextField com a notação clássica:

1
+ = "Stringa aggiunta" ; . mioTextField_txt texto + = "string acrescentando";

Mas isso é ActionScript 3.0, ao terminar o filme, eu senti (Aviso) - ou recomendados:

Aviso: 3551: Anexar texto a um TextField usando + = é muitas vezes mais lento do que usando o método TextField.appendText ().

Cool! Vamos ver o fato de a SINOPSE método appendText() na verdade diz:

) 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. Adiciona a cadeia especificado por newText no final do campo de texto. Este método é mais eficiente do que uma atribuição de adição ( += ) propriedades aplicados a um text (por exemplo, <strong>someTextField.text += moreText</strong> ), em particular no caso de um campo de texto com uma quantidade significativa de conteúdo.

Nós confio? Para verificar a segurança:

1
2
3
4
5
6
7
8
9
. getTimer ; flash.utils importação getTimer.;

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

Tempo: 9360 - na minha máquina, no modo de depuração. Vamos tentar como aconselhado pelo compilador:

1
2
3
4
5
6
7
8
9
. getTimer ; flash.utils importação getTimer.;

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

Time: 8415 ;)

Nada de grande ... mas é verdade! ). O método appendText() é mais rápido e mais poderoso operador pré-incremento ( += ). Por quê? A razão mais óbvia é a seguinte: o operador ( += ) funciona em qualquer tipo de dados. Além disso, em uma linguagem OO este operador não está estruturado como em C, mas é simplesmente "oggettato". Em C + +, por exemplo, pode substituir (substituir) o operador, como parte da estrutura da língua próprio objecto. Em última análise appendText() é mais rápido porque seu objetivo é "corrigir" a uma corda e, portanto, não fazer muitas perguntas "" nele. O operador ( += ), no entanto, deve funcionar para qualquer tipo de dados e, portanto, não é otimizado para as cordas. Em C, pelo contrário, o operador ( += ) é uma função a um nível baixo e será sempre mais rápido do que uma chamada para uma função.

Leia mais ...


Pare SOPA