Get Adobe Flash player

[ActionScript] Cláusula “with”

Autor: Alexandre Bini | Data: 21/05/2009 | Tags: , , , , | Categoria: ActionScript, Flash

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

  1. Alex Ongarato
    21/05/2009 22:07
    1

    É 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!

  2. Alexandre Bini
    21/05/2009 22:09
    2

    Bem lembrado… o finado tellTarget!

  3. Mario Junior
    21/05/2009 22:34
    3

    Bem 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.

  4. Eduardo Alves
    22/05/2009 09:44
    4

    Interessante, não sabia da existencia do “with”,
    valeu

    Eduardo

  5. Sandro Santos
    22/05/2009 09:52
    5

    Opa, boa!! Realmente é uma ótima!
    Valeu a dica aí!

  6. Andrews Roberson
    22/05/2009 13:45
    6

    Muito intessante esta clausula msmo, certamente faz diferença em alguns projetos :D
    tanks,

  7. Juliano
    25/05/2009 08:37
    7

    Usei muito isso no delphi rssss
    mas não tinha me apercebido que tinha no Flex.
    Boa dica.

Deixe um comentário!





Assine o nosso feed!

Aqui...

é um espaço colaborativo. Se você tem algo muito legal a dizer, envie pra gente no voraz@voraz.com.br

Categorias




Arquivo

Links