[ActionScript] Cláusula “with”
Algo muito útil para quem programa em ActionScript e pouco difundida, é a cláusula “with”. Ela funciona como um atalho ao objeto que estamos trabalhando, permitindo assim, atribuir valores a ele de forma ágil.
Veja a diferença quando a utilizamos para desenhar um quadrado:
Com “with”:
[cc lang="actionscript3"]
var bg:Shape = new Shape();
with(bg.graphics){
beginFill(0xCCCCCC);
drawRect(0,0,500,500);
endFill();
}
[/cc]
Sem “with”:
[cc lang="actionscript3"]
var bg:Shape = new Shape();
bg.graphics.beginFill(0xCCCCCC);
bg.graphics.drawRect(0,0,500,500);
bg.graphics.endFill();
[/cc]
Note que, sem o “with”, você precisa repetir “bg.graphics.” a cada linha, o que além de pouco produtivo, faz com que o código fique feio.
Outra vantagem ao utilizar essa cláusula é a troca de nome de objetos. No exemplo acima, se por algum motivo, tivessemos que trocar o nome da Shape de “bg” para “fundo”, fariamos isso em apenas uma linha quando utilizamos o “with”, enquanto sem o “with”, fariamos em 3 linhas.
7 comentários
Deixe um comentário!
Alex Ongarato
21/05/2009 22:07É verdade, eu não costumo usar o with não. Mas agora que parei para pensar no que você disse vou começar a usar. Só por curiosidade o With é o sucessor do telltarget (primórdios do flash, lá no flash player 3). Boa dica Alexandre!
Alexandre Bini
21/05/2009 22:09Bem lembrado… o finado tellTarget!
Mario Junior
21/05/2009 22:34Bem lembrado mesmo!
Interessante como realmente o “with” não é divulgado.. e o pior, o porquê do Code Editor do FlexBuilder não reconhecer erros dentro do escopo “with”.
Mas valeu Alexandre.
Eduardo Alves
22/05/2009 09:44Interessante, não sabia da existencia do “with”,
valeu
Eduardo
Sandro Santos
22/05/2009 09:52Opa, boa!! Realmente é uma ótima!
Valeu a dica aí!
Andrews Roberson
22/05/2009 13:45Muito intessante esta clausula msmo, certamente faz diferença em alguns projetos
tanks,
Juliano
25/05/2009 08:37Usei muito isso no delphi rssss
mas não tinha me apercebido que tinha no Flex.
Boa dica.