Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

maregito

Estudos de flash

Recommended Posts

Olá pessoal!quase sempre estou por aqui tirando umas duvidas, a procura de algum tutorials e etc.Pois bem, estou quase sempre uzando coisa que conheço mais ou menos, ou até não conheço, mais uso! é bom e é ruim, pois você realiza seu trabalho, porem nem sempre entende o que fez ou porque fez.Dai resouvi me dedicar a fundo mesmo que o tempo seja pouco, pelo menos no futuro, este tempo sera melhor utilizado não é mesmo! http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif .tenho pesquizado, buscado, feito testes até livro ja comprei, agora vim até aqui para com a juda de vcs esclarecer, tirrar o restos de duvidas que tiver... em fim trocar uma ideia e ver se o estou estudando ta certo.outros podem se sentir a vontade para responde e perguntar ok http://forum.imasters.com.br/public/style_emoticons/default/joia.gif vamos movimentar isto aqui http://forum.imasters.com.br/public/style_emoticons/default/devil.gif .estou certo quando digo que:_root é o indereço absoluto, This é o relativo e _parent é para subir um nivel?outra pergunta boa é a do amigo AEMaster

qual a diferença e quando usamos?*Os tratadores de eventos:on {} e onClipEvent{};

bom galera estas são as primeiras depois pergunto mais! ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim você ta certo _root pode ser o "ponto de partida" para qualquer objeto no palco Ex: "_root.bicicleta" ou "_root.bicicleta.roda"

 

This é para se referir ao proprio objeto, geralmente quando você coloca o um codigo nele

Ex:

meu_MC.onEnterFrame=function(){trace(this._x)//exibe a posição X do proprio objeto}

 

_parent é quando você quer se referir ao "nivel superior", no exemplo acima, se do objeto "roda" você querer referenciar o objeto bicicleta, seria assim

roda.onEnterFrame=function(){   trace(_parent._x)//exibe a posição X do objeto bicicleta, pois roda esta dentro de bicicleta}

 

 

 

on {} você usa num evento de um botão

 

onClipEvent{}; você usa num evento de um MovieClip

Compartilhar este post


Link para o post
Compartilhar em outros sites

No flash existem 2 tipos de estrutura de programação.Uma é quando você quer colocar o código no próprio mc, botão, etc.Para trabalhar dessa forma, basta selecionar o MC, por exemplo, e abrir o painel de actions.Nas actions, colocamos o código dessa forma:onClipEvent("enterFrame") { trace("fez o enter frame");}O mesmo efeito é conseguido trabalhando com o outro tipo de estrutura de programação que é a programação na timeline.Este tipo de programação (que eu acho muito melhor), refere-se ao MC pelo seu nome de instancia... fica muito melhor de editar códigos e concentra o grosso da programação em um só lugar.Para fazer a mesma ação acima, basta instanciar o movieclip de bola, por exemplo, e clicar na timeline.Abrindo o painel de actions, digitamos:bola.onEnterFrame = function() { trace("fez o enter frame");}Vai fazer a mesmíssima coisa.... o mesmo ocorre com o comando with().se fizermos assim:with("instancia_do_mc") { _x = 10;}ou assim:instancia_do_mc._x = 10;vai dar no mesmo...Espero ter ajudado em alguma coisaFalows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imagine que a estrutura dos MCs é igual a estrutura de diretórios no seu computador...C:\ é a raiz... assim como no flash, é o _root.C:\windows\ é uma pasta dentro da raiz... equivale a um MC na timeline principal.C:\windows\system32 é uma pasta que está dentro de uma pasta que está na raiz. Equivale a um MC dentro de um MC que está na timeline principal.Vamos supor que eu estou dentro da pasta system32. se eu quero chamar um programa que está em C:\programa.exe, eu tenho que mostrar onde que está esse programa...No caso do flash eu mostro o caminho do MC:_root.programaeu poderia executar o programa de outra forma, endereçando ele dessa forma:_parent._parent.programa //volto 2 pastas (MC's) e executo o programa.Agora imagine que eu pego todo o conteúdo de C:\ e coloco dentro de uma outra pasta ficando assim:C:\total\programa eC:\total\windows\system32Se eu quiser manter o código funcionando, ao usar o _root.programa, não vai funcionar pois o programa não está mais na raiz, está dentro do "total".Em contra partida, o _parent._parent.programa vai funcionar pois ele continua 2 pastas (MC) acima dele...Essa idéia de mover tudo para uma outra pasta é o que acontece quando importamos umswf dentro de outro...o swf importado não terá a raiz no mesmo local....é uma analogia que ajuda bastante a entender o sistema de endereçamento de MCs.Falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos supor q você tenha dois MovieClips no palco

 

"carro_mc" e "arvore_mc"

 

e dentro de "carro_mc" existe outro MovieClip chamado "roda_mc"

 

 

agora vamos supor q exista um codigo dentro do "roda_mc", que ative a ação "stop()" no palco, seria assim

 

 

onClipEvent (MouseUp) {

_root.arvore_mc.stop()

}

 

 

eu usei o "_root" na frente pra dizer pro flash q o movieClip esta na linha principal

 

 

você usa o "_root" pra referenciar um MC q está na linha pricipal, porém se o codigo estivesse no "carro_mc", seria assim

 

 

onClipEvent (MouseUp) {

arvore_mc.stop()

}

 

 

repare q eu naum utilizei o "_root", pq os dois MCs estão na mesma linha de tempo(na _root)

 

 

 

 

olha esse tutorial ai ,é bom pra explicar isso

 

http://www.mxstudio.com.br/download/action...mxportugues.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif que bom to aprendendo muito!!!

Vaçeu galera!

 

Continuando os estudos.

entãos se eu tiver um filme com 5 frames e uma camada, no primeiro e no ultimo tenho stop, no 2 tenho a action que cria o MC, no 3 do a ele o valor de _alpha=50, no 4 diminuo o seu atamanho até sumir.

 

é assim que funciona a action na timeline?

 

Outra coisa quando falamos em criar o MC, falamos dele vazio ou ele com forma, cor e etc...

So mais uma pergunta e possivel criar um MC vazio com tamanho certo ex: 200x200px?

Compartilhar este post


Link para o post
Compartilhar em outros sites

quando você cria um MC usando o createEmptyMovieClip ele esta vazio e com largura e altura = 0depois de criar você tem q usar os metodos lineTo, para desenhar o MCtipo assim_root.createEmptyMovieClip("quadrado",0)quadrado.lineStyle(5, 0xff00ff, 100);quadrado.beginFill(0xFF0000);quadrado.moveTo(10, 10);quadrado.lineTo(100, 10);quadrado.lineTo(100, 100);quadrado.lineTo(10, 100);quadrado.lineTo(10, 10);quadrado.endFill();isso cria um quadrado

Compartilhar este post


Link para o post
Compartilhar em outros sites

mt boa a explicação de você's... agora entendi de vez "_root" e "_parent" ja q você's são bons mesmo nisso e estão aqui....daria pra descrever no mesmo esquema mais detalhes sobre "this";é q ja entendi... mas se existir algum caso especial para q eu ñ possa me confundir mais na frente.. acho q este seria o momento ideal pra se saber!obrigado!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O this é usado quando você quer falar com o objeto em si....

 

por exemplo, se eu colocar na timeline essa ação:

 

bt1.onRelease = function() {

trace(this._x);

}

 

Ele irá ter como saída a posição _x do botão bt1.

 

Traduzindo o código acima:

 

Quando soltar o botão do mouse após o clique em cima do "bt1", executar a função:

escreva no output a posição _x do botão.

 

Ai pode aparecer uma pergunta: "Mas eu poderia colocar bt1._x no lugar de this..." e eu digo que sim, poderia... mas você só pode fazer isso porque sabe o nome da instância do botão... agora imagine uma classe que atribua alguns métodos ao movieclip relacionado... a classe não tem como "saber" qual a instância do MC para poder criar ações para ele... principalmente por causa que uma classe pode gerar N MCs e todos com as mesmas ações, mas controlando a sí próprios...

 

O this quer dizer este o objeto que estamos tratando... o objeto que recebe os métodos...

 

Costumo pensar assim:

"Essa ação que estou atribuindo ao MC vai pegar a posição _x de quem??" se a reposta for "Dele mesmo", quer dizer que podemos usar o this.

 

é um pouco complicado de entender... um pouco inútil se não usado com classes, mas é fundamental para programações orientadas a objeto...

 

Falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

mt boa a explicação de você's...

agora entendi de vez "_root" e "_parent" ja q você's são bons mesmo nisso e estão aqui....

 

daria pra descrever no mesmo esquema mais detalhes sobre "this";

mais um pouquinho do msmo, :) .... na teoria

 

caminhos relativos e absolutos são caminhos msmo, ou seja a rota para o destino da action, o endereço do mc.

O caminho absoluto é a informação de localização completa de uma instância de mc, se comparado ao endereço postal, onde você diz o bairro, a rua, o número e o cep. Nesse caso o ponto de origem do mc é a linha de tempo principal (por isso de se usar o _root p/ endereçar)

 

O caminho relativo é um caminho de uma linha de tempo p/ outra, e é útil dentro de clipes de filmes que contêm vários clipes de filmes aninhados.

Uma vez li q para facilitar podemos pensar na relação entre um travesseiro e a cama. O travesseiro está localizado em cima da cama, você pode mover a cama para onde qzer dentro do quarto, mas a relação entre a cama e o travesseiro continuará o msmo.

Então, você pode mover o mc (pai) de uma linha de tempo para outra sabendo q os mc(filhos) dentro dele ainda funcionarão, bem como poderá controlá-los através de actions na linha de tempo dentro do mc(pai)

 

O caminho relativo leva em consideração como ponto inicial o local onde estamos inserindo a ação, então para você referenciar uma timeline q está acima da timeline atual você usa o _this._parent

onde _this refere-se a linha de tempo atual de onde action está sendo chamada

e _parent refere-se a linha de tempo atual na linha de tempo pai

 

tipo se eu tenho uma animação de uma carinha q espirra

 

cabeca_mc>>>espirro_mc

 

cabeca_mc (timeline principal) espirro_mc (dentro de cabeca_mc)

 

se eu qzer q espirro_mc controle cabeca_mc posso digitar assim: this._parent

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif gente gostei de ver, aprendi coisa pra caramba! muito bom e esse dicionario de ection script e D+, valeu eder!!!

 

Bom seguindo os estudos.

 

agora e sobre cordenadas no pauco, sei que por padrão é o canto superior esquerdo, pergunta; tem como mudar o padrão? ex tenho um pauco de 200x200 e ponho o centro para ser bem no meio onde no padrão seria 100x100.

 

Ja os MC podemos dizer, quando apertamos F8, e quando criamos ele via action?

E os botões?

 

:huh: é isso ai gente boa vamo la!

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora e sobre cordenadas no pauco, sei que por padrão é o canto superior esquerdo, pergunta; tem como mudar o padrão? ex tenho um pauco de 200x200 e ponho o centro para ser bem no meio onde no padrão seria 100x100.

isso eu naum sei, você pode colocar um MC no meio do palco, e fazer o q você quer na time-line desse MC, pois as coordenadas x e y dele, quando estiverem no 0, será o equivalente a metada das ordenadas do palco(isso se ele estiver exatamente no meio)

Ja os MC podemos dizer, quando apertamos F8, e quando criamos ele via action?E os botões?

naum existe diferença no AS, você cria um Mc normal com creatEmptyMovieClip, ai dá uma ação pra ele
creatEmptyMovieClip("botao",0)botao.lineStyle(5, 0xff00ff, 100);botao.beginFill(0xFF0000);botao.moveTo(10, 10);botao.lineTo(100, 10);botao.lineTo(100, 100);botao.lineTo(10, 100);botao.lineTo(10, 10);botao.endFill();
agora dá a ação de botão
botao.onPress=function(){	trace("ola eu sou um botão")}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enterframe: Tratador de evento q executa determinada açao quando cai no respectivo frame..esta afirmaçao e correta?por favor gostaria que você's me dessem uma explicaçao mais popular deste comando.essas explicaçoes detalhadas ajudam mt..grato..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enterframe: Tratador de evento q executa determinada açao quando cai no respectivo frame..

 

esta afirmaçao e correta?

 

por favor gostaria que você's me dessem uma explicaçao mais popular deste comando.

 

essas explicaçoes detalhadas ajudam mt..

 

grato..

enterFrame é um evento usado juntamente com um tratador de evento, qdo ele ocorre as ações q são declaradas entre as chaves são executadas:

 

meuMovieClip.onEnterFrame = Function(){

comandos q deseja executar

}

 

Qdo atríbuimos um evento onEnterFrame a um mc, queremos q o conjunto de comando dentro do evento sejam executados a cada atualização do frame.

 

ou tbém

 

onClipEvent(enterFrame) {

comandos q deseja executar

}

 

As ações no comando onClipEvent(enterFrame) são executadas toda vez que o filme chega naquele frame.

Compartilhar este post


Link para o post
Compartilhar em outros sites

seria correto dizer que quando escrevemos uma action na time line on.Enterframe, assim que o frame da action for alcansado ele sera execultado i ficará assim, ao contrario das actionsque são posta na timeline que são execultadas e realizam seu papel e param?

 

http://forum.imasters.com.br/public/style_emoticons/default/blush.gif espero tenha sido entendido!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/public/style_emoticons/default/blush.gif olá gente esativo um pouco Muito ocupado mais agora estou de volta!

 

vou começar dando sequencia aos estudos de flash e depois explicarei minha duvida até porque acho que sirva como objeto de nosso estudos.

 

Ja falamos muito sobre caminho e tal, agora gostaria de entender melhor o onEnterFrame e o setInterval, ja li que melhor que uzar enterframe é melhor uzar o setinterval, fiz alguns teste.

Tive dificuldades na hora de fazer tudo com enterframe na time line, so tive mais sucesso pondo a ação dentro do MC, ja o setInterval tive mais sorte em trabalhar com ele na time line, o que me atrapalhoe foi o trabalho com function, o que gostaria que falassemos depois.

 

Ok agora minha duvida:

 

estou querendo fazer uma animação com camadas (em torno de 6) elas se movimenta no eixo X e ao final montam uma imagem, a bronca é que quero fazer tudo via action script, ou no minimo que as actio esteja na time line e não dentro do MC, porem ja fiz varias tentativa mas levo pau.

 

bom é isso espero tenha sido entendido

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.