Então, s/.
Desde que eu comecei a programar em flash, principalmente quando comecei a usar classes em AS2, eu mantive a palavra chave "this".
Isso é uma das "boas práticas" da linguagem pois quando você tem uma classe e faz this.objeto ou this.propriedade você sabe que se refere a uma propriedade declarada da classe ou de sua superclasse, e não de uma variável criada dentro da função em tempo de execução.
Pode parecer uma "bobagem" e já ouvi muita gente dizer que "polui" o código. Cada um tem uma visão sobre isso. Mas eu já vi cara declarar variável com nome de propriedade da super classe e depois ficar caçando erro sem saber porque. Hoje com programas como FlashDevelop um erro desses é bem mais difícil de acontecer, mas eu sei, lendo o código, que aquele target pertence ao escopo do código e não a uma variável criada em tempo de execução.
Outra coisa que pode ocorrer é o seguinte (mais em AS2, já que em AS3 o sistema de objetos gráficos mudou para o DisplayList):
Sujeito faz um attach de um movie dentro de outro em um looping:
for (var i:Number = 0; i < 10; i++) {
// aqui ele atacha:
this.menu_mc.attachMovie("linkageBt_mc", "bt" + 0, i);
// aqui eu crio uma varável para referenciar o botão que acabei de criar:
var temp_mc:MovieClip = this.menu_mc["bt" + 0];
}
Veja agora que eu sei que "menu_mc" pertence ao escopo de minha classe. Já temp_mc é uma variável que é um "atalho" para o código em vez de ficar escrevendo this.menu_mc["bt" + i]._x = 50 eu posso fazer só temp_mc._x - 50.
Mas se eu fizer algo como this.temp_mc o compilador não vai aceitar, pois não há temp_mc no escopo de minha classe.
É isso.
Abraços.
pp
Edição feita por: Pedropauloalmeida, 15/09/2008, 12:48.