Como assim?
Para alguns esta pergunta pode até ser manjada, mas para a maioria que programa em AS3, pode ser uma pegadinha e também faz diferença em alguns casos. Se você ainda não entendeu, estamos falando de pré-incrementação (++i) e pós incrementação (i++).
A incrementação é efetuada através do operador ++, e serve para incrementar um valor numérico. Por exemplo:
1 2 3 4 | var i:int = 0; i++; trace(i); // 1 |
Como você pode perceber, o valor aumentou em 1. Esse operador é muito comum em situações onde você necessita de um contador e, normalmente, é utilizada em um for.
1 2 3 4 | for (var i:int = 0; i < 10; i++) { trace(i); } |
E é exatamente pelo fato de normalmente usarmos a pós-incrementação (i++) que a maioria não sabe a diferença entre ela e a pré-incrementação. Vamos usá-la então, no nosso for:
1 2 3 4 | for (var i:int = 0; i < 10; ++i) { trace(i); } |
Viu a diferença? Não? É porque esse operador só faz diferença quando atribuído a alguma variável, ou quando é dado saída nele. Um simples teste para mostrar a diferença seria:
1 2 3 4 5 | var i:int = 0; trace(i++); // 0 var j:int = 0; trace(++j); // 1 |
Como você pode ver, i++ retornou 0 e ++j retornou 1. O que acontece é que no caso de ++j o valor é incrementado antes (pré) e depois passado, e no caso de i++ o valor de i é passado e depois incrementado (pós).
Isso é muito útil quando precisamos incrementar um valor e associá-lo a uma variável pois, ao invés de fazermos isso:
1 2 3 4 5 | var i:int = 0; i++; var currentIndex:int = i; |
Podemos fazer simplesmente isso:
1 2 3 4 5 | var i:int = 0; var currentIndex:int = ++i; trace(currentIndex); // 1 |
É isso aí, uma dica simples, mas que provavelmente irá lhe ajudar. Abraço pessoal, em breve um novo post.