Jump to content


Photo

Para Que Serve? (_global)


  • Faça o login para participar
6 replies to this topic

#1 Pitta

Pitta

    12 Horas

  • Usuários
  • 157 posts
  • Sexo:Não informado

Posted 24/06/2008, 16:43

Ola pessoal beleza??? espero ke bem!!!

Tõ com uma dúvida... Sempre vejo a função _global no flash... e não tenho a mina idéia para ke serve

Alguém sabe me dizer o ke faz essa tal _global??? Se alguém tiver um tutorial ou algo do tipo também vai me ajudar...

Fico grato desde de já pela ajuda @braço até mais...(",) (,")

#2 AN Web Designer

AN Web Designer

    Super Veterano

  • Usuários
  • 1861 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 24/06/2008, 16:58

Especificamente o que está tentando fazer ?

E você se refere a variavel global ?


AN :)

#3 Pitta

Pitta

    12 Horas

  • Usuários
  • 157 posts
  • Sexo:Não informado

Posted 24/06/2008, 17:04

É então ja vi essa variável global em monte de trabalho pela net, e num sei pra ke serve, gostaria de saber o ke é realmente e pra serve, para kem sabe posteriormente poder tah trabalhando com ela...

fico grato pela ajuda...(",) (,")

#4 AN Web Designer

AN Web Designer

    Super Veterano

  • Usuários
  • 1861 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 25/06/2008, 10:51

Existem variáveis locais e globais.

Locais podem ser acessadas somente dentro de um objeto específico.

var sala:String = "flash";


Globais podem ser acessadas a partir de qualquer objeto.

_global.sala = "flash";


AN :)

#5 Pitta

Pitta

    12 Horas

  • Usuários
  • 157 posts
  • Sexo:Não informado

Posted 25/06/2008, 14:27

Desculpe-me AN, mais ainda não fikou muito claro pra mim...
Teria como você me dar 1 exemplo de como aplica-la e onde usalo...

Ficaria muito grato, @braços...(",) (,")

#6 AN Web Designer

AN Web Designer

    Super Veterano

  • Usuários
  • 1861 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro

Posted 25/06/2008, 23:54

Hummm :ponder: Hummm :ponder:

Digamos que você está com um objeto em seu palco trabalhando na timeline principal, caso você tenha declarado uma variavel local a mesma, estará disponivel apenas na função deste objeto.

Já, a Variavel global estará disponivel em todas as timelines, exemplo se for um movieclip.


Deu para entender ? ;)


AN :)

#7 Pedropauloalmeida

Pedropauloalmeida

    Fale ao motorista somente o indispensável

  • Usuários
  • 1376 posts
  • Sexo:Masculino
  • Localidade:Santo André SP

Posted 26/06/2008, 07:29

O que o AN falou está certo.
Vou tentar esmiuçar e tentar ampliar o conceito.
O flash trabalha com três tipos de variáveis. As variáveis locais, as variáveis globais e as variáveis de timeline.


Primeiro tipo: variável local.

A variável local é aquela em que você utiliza em quadro específico da timeline. Seja ela qual for. Dentro de um movieClip ou na timeline principal.
Ela só poderá ser acessada quando o flash estiver naquele exato quadro. Saindo dali o flash ignora essa variável.
Você declara uma variável local utilizando a palvra chave "var".
A sintaxe é:
var nomeDaVariavel:TipoDaVariavel = valorDaVariavel;
// exemplos:
var nome:String = "João";
var idade:Number = 35;
var cadastrou:Boolean = false;

O segundo tipo de variável é a variável de timeline.
Vamos supor que você tem um movieClip. Este movieClip possui, digamos, 50 quadros. Ou seja. É uma animação.
Você quer declarar uma variável no quadro 1 e quer recuperar seu valor no quadro 35. (Seja lá por que razão. Em tese eu acho isso um bocado estranho, mas vá lá...).
Se você usar a variável local, isso não vai ser possível. Então, a sintaxe da variável de timeline é:
nomeDaVariavel = valorDaVariavel;
// exemplo:
nome = "João";
idade = 35;
cadastro = false;

Esse tipo de varável fica disponível em toda timeline a que ela pertence. Ou seja. Se você declarar uma variável dessa no frame 1 e der um trace dela no frame 50 da mesma timeline, o flash vai exibir o valor apontado no frame 1. Coisa que declarando a variável com a palavra chave "var" não é possível.
Agpra o que realmente estraga é que você não consegue tipificar essa variável. Ou seja. Você não pode dizer se ela é um número ou uma string ou uma função. Enfim. Você pode cometer erros do tipo:

nome = 35;
cadastro = 'João';


Veja que, assim, uma variável que deveria ser do tipo "String" armazena, sem o flash acusar erros de compilação, um valor numérico. Ou uma variável do tipo booleana (verdadeiro/falso) pode armazenar um valor String etc. Agora. Pense no seguinte cenário: o sujeito tem um flash, pra dizer a palavra correta, porco. Com 130 quadros na timeline principal. Daí lá no quadro 40 ele declara uma variável assim:
primeiraVezQueRoda = true

Depois, lá no quadro 98, escreve
primeiraVezQueRoda = "ok";

Depois no quadro 130 ele quer fazer um
if (primeiraVezQueRoda) etc.

Ferrou. Vai ter que sair caçando até lembrar que lá no quadro 90 ele apontou um valor de "String" pra variável booleana que ele gerou. Então, na verdade, trabalhar com variáveis de timeline (ou trabalhar nos frames sem tipificar o tipo de variável) pode causar esses erros toscos. É claro que aqui eu estou exagerando mas coisas mais sutis podem comprometer, e muito, um projeto. Por vezes perder 1 ou 2 horas tentando "descobrir" o que deu errado. Bom. Você entendeu.



Por fim, o terceiro tipo, as varáveis globais.

Bom, você viu que variáveis locais você só acessa naquele determinado frame.
Variáveis de timeline você acessa de qualquer frame mas da mesma timeline.
E se, então, você quer mesmo fazer uma bagunça generalizada e acessar uma mesma variável de qualquer lugar do seu flash? Imagine um movieClip que está dentro de outro que está dentro de outro que está dentro de .. bem.. Aí nesse movieClip lá nos cafundó você quer pegar uma variável que está em um movieClip lá na timeline principal. É aí que entram as variáveis globais. Variável global pode ser acessada de qualquer lugar. Em qualquer frame. Em qualquer circunstância.

A sintaxe é:
_global.nomeDaVariavel = valorDaVariavel.

Faça um movieClip, jogue ele dentro de 10 movieClips. Nesse movieClip lá no fim da série, coloque
trace("valor: " + _global.teste);

E, na timeline principal, coloque:
_global.teste = 'Testando...';

O flash vai dar o output de "Testando".
Agora. Imagine só. Se usar varíavel de timeline já soa com porquisse (depende do caso. Com muita cautela e economia, elas são úteis), imagine _global. É uma feijoada completa! Pense só se você tem um flash com 90 movieClips. Cada um deles alterando o valor de uma variável global. Daí chega lá no frame 200 o cara não sabe porque o valor virou 20 se devia ser 19. Adivinha só: vai ter que procurar dentro dos seus 90 movieClips onde, e quando aquela variável global está sendo alterada. Vou te dizer. Se eu abro um flash desses e cara me contrata pra alterar, eu prefiro fazer do zero.

Aí você me pergunta. Então como fazer para evitar o uso de variáveis globais e de timeline? Tem como?
A resposta é: claro! Claro que tem. Basta ter planejamento. Todos sabemos que planejamento é a base de qualquer projeto de código que se preze.
No meu blog você vai encontrar uma vídeo-aula que fiz para o iMasters só sobre organização e estruturação em flash. O vídeo é meio antiguinho, mas vale muito a pena conferir.



Agora você sabe pra que serve _global. E sabe, também, que deve evitar seu uso a todo custo. Que isso é sinal de falta de planejamento e organização de escopo.


Abraços

pp




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq