Publicidade
|
|
Page 1 of 1
Controle de timeline-frames AS2 [RESOLVIDO] Animação com flash.
#1
Posted 23 September 2011 - 11:46 AM
Fala galera bele?
Bom estou precisando muito de ajuda;
É o seguinte preciso criar a seguinte animação ou efeito no flash (action 2.0).
1° Na stage tenho varios botoes com instancia (textura 1 / textuta 2 / textura 3, etc);
2° Tambem tenho varios objetos como movieclip com instancia (obt1 /obj2 / obj3, etc).
Dentro da timeline de cada movieclip criei duas layer um AS outra PUXA, na layer puxa existe o MCCLIP com instancia puxa já na layer AS cada frame esta com o seguinte cod...
Frame1= puxa.loadMovie("text.jpg");
Frame2= puxa.loadMovie("text1.jpg");
Frame3= puxa.loadMovie("text2.jpg");
Bom vamos a ajuda que preciso
Cada vez que eu clicar no botão textura1 e depois clicar no obj1 mostra o loadmovie do frame1, si clicar na textura2 e em qualquer um dos objetos mostra oque esta no loadmovie do frame dois, ou seja, ao clicar no btn textura e depois em algum objeto vai para o frame que puxa a textura referente a escolha feita nos botoes texturas, mas isso troca apenas do objeto que foi clicado deixando os demais sem alterar.
Galera não sei se deu para entender mas estou precisando muito desta ajuda, sei que se eu tiver varios objetos vai dar um trabalhão mais ja pesquisei um monte e esta forma ja vai me ajudar muito.
Abraços...
Bom estou precisando muito de ajuda;
É o seguinte preciso criar a seguinte animação ou efeito no flash (action 2.0).
1° Na stage tenho varios botoes com instancia (textura 1 / textuta 2 / textura 3, etc);
2° Tambem tenho varios objetos como movieclip com instancia (obt1 /obj2 / obj3, etc).
Dentro da timeline de cada movieclip criei duas layer um AS outra PUXA, na layer puxa existe o MCCLIP com instancia puxa já na layer AS cada frame esta com o seguinte cod...
Frame1= puxa.loadMovie("text.jpg");
Frame2= puxa.loadMovie("text1.jpg");
Frame3= puxa.loadMovie("text2.jpg");
Bom vamos a ajuda que preciso
Cada vez que eu clicar no botão textura1 e depois clicar no obj1 mostra o loadmovie do frame1, si clicar na textura2 e em qualquer um dos objetos mostra oque esta no loadmovie do frame dois, ou seja, ao clicar no btn textura e depois em algum objeto vai para o frame que puxa a textura referente a escolha feita nos botoes texturas, mas isso troca apenas do objeto que foi clicado deixando os demais sem alterar.
Galera não sei se deu para entender mas estou precisando muito desta ajuda, sei que se eu tiver varios objetos vai dar um trabalhão mais ja pesquisei um monte e esta forma ja vai me ajudar muito.
Abraços...
#2
Posted 29 September 2011 - 09:49 AM
Se eu entendi corretamente, deve ser isso que você precisa.
var frame:Number; //variável para armazenar o id do btn clicado
for (i = i; i<4; i++) {
_root["textura"+i].id = i; //guarda o valor de i, na propriedade id do btn
_root["textura"+i].onRelease = function() {
frame = this.id;//a variável frame armazena o valor da propriedade id do btn clicado.
}
_root["obj"+i].onRelease = function() {
this.gotoAndStop(frame);//vai para o frame, de acordo com o valor da variavel frame.
}
}
#3
Posted 29 September 2011 - 11:57 AM
Eu outra vez Roney.
Bom testei este cod e nao certo não fez nada, sera que eu estou fazendo algo de errado?
Fiz o seguinte, criei uma nova layer e inseri o cod e nada aconteu, tambem conferi se a instancia dos btn e obj estavem corretas e nao deu msm...
Bom testei este cod e nao certo não fez nada, sera que eu estou fazendo algo de errado?
Fiz o seguinte, criei uma nova layer e inseri o cod e nada aconteu, tambem conferi se a instancia dos btn e obj estavem corretas e nao deu msm...
#4
Posted 29 September 2011 - 12:58 PM
Baseado no que o Rony fez. Tente assim:
Pra esse exemplo:
1. No stage tem 3 texturas com instâncias: textura1, textura2, textura3.
2. No stage tem 3 objetos que "receberão texturas", com instâncias: obj1, obj2, obj3.
Cada "objeto" tem 3 frames, em cada frame terá uma textura diferente.
3. Aplique o código no 1º frame:
Arquivo CS4:
http://www.mediafire...ek13i211xpxbzbl
Abraço.
Pra esse exemplo:
1. No stage tem 3 texturas com instâncias: textura1, textura2, textura3.
2. No stage tem 3 objetos que "receberão texturas", com instâncias: obj1, obj2, obj3.
Cada "objeto" tem 3 frames, em cada frame terá uma textura diferente.
3. Aplique o código no 1º frame:
/**********************
* VARIVEIS - configura por aqui
**********************/
var frame:Number = 1; //variável para armazenar o id do btn clicado, por padrão pega a 1º textura
var totalDeTexturas:Number = 3; //total de texturas
var totalDeObjetos:Number = 3; //total de objetos que receberão tetxuras
var nomeTextura:String = "textura"; //nome de instancia dos btns textura. ex: textura1, textura2, textura3....
var nomeObjeto:String = "obj"; //nome de instancia dos objetos btns. ex: obj1, obj2, obj3...
iniciaTudoAqui();
function iniciaTudoAqui():Void
{
configuraTexturas();
configuraObjetos();
}
//controla as texturas que ao serem clicadas armazena qual frame(textura) de um objeto clicado deve ser trocado
function configuraTexturas():Void
{
//aplica evento de clique para total de texturas no stage
for (var i:Number=1; i<=totalDeTexturas; ++i)
{
//textura btns
var t:MovieClip = _root[nomeTextura+i];
t.id = i; //guarda o valor de i, na propriedade id do btn
t.onRelease = function()
{
frame = this.id; //a variável frame armazena o valor da propriedade id do btn clicado.
trace("* Escolheu textura id "+ this.id);
}
}
}
//controla os objetos btns que receberão a tetxura escolhida
function configuraObjetos():Void
{
//aplica evento de clique para total de objetos no stage
for (var i:Number=1; i<=totalDeObjetos; ++i)
{
//objetos btns
var obj:MovieClip = _root[nomeObjeto+i];
obj.gotoAndStop(frame); //vai para na textura padrão(numero da variavel frame)
obj.onRelease = function()
{
/*vai para o frame, de acordo com o valor da variavel frame.
sempre que a textura for clicada, essa variavel mudará.
Obs: Não existe frame 0. Se nenhuma textura for clicada,
por padrão vai poara o frame 1 de texturas*/
this.gotoAndStop(frame);
trace(this._name +" recebeu textura "+ frame);
}
}
}Arquivo CS4:
http://www.mediafire...ek13i211xpxbzbl
Abraço.
#5
Posted 29 September 2011 - 03:37 PM
Rodrigo muito obrigado pela ajuda.
Gostaria de tirar mais uma duvida que na verdade é o que eu preciso mais.
Os objetos podem vir de loadMovie?
Como colocar os objetos dentro de um movie clip, ou seja, os objetos estarão dentro de um movieclip pai e dentro de varios movieclip filho, ou seja, mcpai.mcfilho.mcfilho.obj1.Seria possivel fazer isso?
Abraço...
Gostaria de tirar mais uma duvida que na verdade é o que eu preciso mais.
Os objetos podem vir de loadMovie?
Como colocar os objetos dentro de um movie clip, ou seja, os objetos estarão dentro de um movieclip pai e dentro de varios movieclip filho, ou seja, mcpai.mcfilho.mcfilho.obj1.Seria possivel fazer isso?
Abraço...
#6
Posted 02 October 2011 - 12:23 AM
Um lógica seria essa:
1º carrega todos objetos, depois de todos carregados,... continua
2º configura botões de texturas
3º configura os botões de objetos(arquivos externos carregados anteriormente)
Por isso separei em funções pra cada coisa, pra facilitar perceber qual o caminho que o código percorre.
Utilize a classe MovieClipLoader no lugar do loadmovie, assim, você consegue controlar melhor as coisas com eventos. Pra saber por exemplo, "quando o objeto foi carregado", ou fazer um preloader etc.
Na net você acha vários tutorais de como e porque usar MovieClipLoader:
http://imasters.com.br/artigo/3593
Passos:
1- Peguei cada movieclip objetos que tinha sua texturas e criei um arquivo Flash pra cada um.
Nesse arquivo tem apenas 3 frames com cada textura do suposto objeto. do mesmo modo que foi feito o movieclip no arquivo anterior.
2- Depois, gerei um arquivo swf de cada objeto ficando com nomes: obj1.swf, obj2.swf e obj3.swf. Estes arquivos serão carregados e controlados pelo arquivo principal.
3- Carreguei eles em cada "movieclip alvo" que estão no arquivo principal com nomes de instâncias: obj1, obj2, obj3.
Novo código no arquivo principal ficou assim:
Arquivo CS4:
http://www.mediafire...sh3akk1ibxesyh9
Abraço.
1º carrega todos objetos, depois de todos carregados,... continua
2º configura botões de texturas
3º configura os botões de objetos(arquivos externos carregados anteriormente)
Por isso separei em funções pra cada coisa, pra facilitar perceber qual o caminho que o código percorre.
Utilize a classe MovieClipLoader no lugar do loadmovie, assim, você consegue controlar melhor as coisas com eventos. Pra saber por exemplo, "quando o objeto foi carregado", ou fazer um preloader etc.
Na net você acha vários tutorais de como e porque usar MovieClipLoader:
http://imasters.com.br/artigo/3593
Passos:
1- Peguei cada movieclip objetos que tinha sua texturas e criei um arquivo Flash pra cada um.
Nesse arquivo tem apenas 3 frames com cada textura do suposto objeto. do mesmo modo que foi feito o movieclip no arquivo anterior.
2- Depois, gerei um arquivo swf de cada objeto ficando com nomes: obj1.swf, obj2.swf e obj3.swf. Estes arquivos serão carregados e controlados pelo arquivo principal.
3- Carreguei eles em cada "movieclip alvo" que estão no arquivo principal com nomes de instâncias: obj1, obj2, obj3.
Novo código no arquivo principal ficou assim:
/**********************
* VARIVEIS - configura por aqui
**********************/
var frame:Number = 1; //variável para armazenar o id do btn clicado, por padrão pega a 1º textura
var totalDeTexturas:Number = 3; //total de texturas
var totalDeObjetos:Number = 3; //total de objetos que receberão tetxuras
var nomeTextura:String = "textura"; //nome de instancia dos btns textura. ex: textura1, textura2, textura3....
var nomeObjeto:String = "obj"; //nome de instancia dos objetos btns. ex: obj1, obj2, obj3...
var mcl:MovieClipLoader = new MovieClipLoader(); //usado para carregar arquivo externo
var contadorObjetos:Number = 0; //será usado pra contar quantos foram carregados
iniciaTudoAqui();
/***********************
* EVENTS
**********************/
//Evento do movieClipLoader - onLoadInit
//quando objeto for carregado por completo e iniciado no stage, executa essa função...
this.onLoadInit = function(target:MovieClip):Void
{
contadorObjetos++; //soma contador
//só pode usar os objetos quando todos forem carregados
if(contadorObjetos >= totalDeObjetos)
{
trace(contadorObjetos +" objetos foram carregados!");
configuraTexturas();
configuraObjetos();
}
}
/***********************
* FUNCTIONS
**********************/
function iniciaTudoAqui():Void
{
mcl.addListener(this); //adiciona ouvinte dos eventos da classe MovieClipLoader pra saber quando foi carregado objetos
carregaObjetos(); //1º carrega objetos
}
function carregaObjetos():Void
{
trace("* 1º começa carregar todos os objetos.");
//carrego a quantidade de objetos
for(var i:Number=1; i<=totalDeObjetos; ++i)
{
var obj:MovieClip = _root[nomeObjeto+i]; //nome do mc alvo que vai receber o objeto externo
var url:String = "obj"+i+".swf"; //nome o arquivo: ex: obj1.swf, obj2.swf, obj3.swf...
mcl.loadClip(url, obj); //carrega o objeto externo no alvo
}
}
//controla as texturas que ao serem clicadas armazena qual frame(textura) de um objeto clicado deve ser trocado
function configuraTexturas():Void
{
trace("* 2º configura as texturas.");
//aplica evento de clique para total de texturas no stage
for (var i:Number=1; i<=totalDeTexturas; ++i)
{
//textura btns
var t:MovieClip = _root[nomeTextura+i];
t.id = i; //guarda o valor de i, na propriedade id do btn
t.onRelease = function()
{
frame = this.id; //a variável frame armazena o valor da propriedade id do btn clicado.
trace("* Escolheu textura id "+ this.id);
}
}
}
//controla os objetos btns que receberão a tetxura escolhida
function configuraObjetos():Void
{
trace("* 3º configura os objetos.");
//aplica evento de clique para total de objetos no stage
for (var i:Number=1; i<=totalDeObjetos; ++i)
{
//objetos btns
var obj:MovieClip = _root[nomeObjeto+i];
obj.gotoAndStop(frame); //para na textura padrão(frame 1)
obj.onRelease = function()
{
/*vai para o frame, de acordo com o valor da variavel frame.
sempre que a textura for clicada, essa variavel mudará
Obs: Não existe frame 0. Se nenhuma textura for clicada,
por padrão vai poara o frame 1 de texturas*/
this.gotoAndStop(frame);
trace(this._name +" recebeu textura "+ frame);
}
}
}Arquivo CS4:
http://www.mediafire...sh3akk1ibxesyh9
Abraço.
#7
Posted 05 October 2011 - 02:57 PM
Valeu Rodrigo, vou testar e logo dou retorno se deu certo...
Abraços
Abraços
#8
Posted 07 October 2011 - 10:10 AM
Fala Rodrigo tranquilo?
Bom fiz os teste e era isso msm jque eu precisava, porem gostaria de saber como colocar os objetos dentro de um movieclip, ou seja, esta da seguinte forma obj1.swf, obj2.swf e obj3.swf, dentro de cada obj tem tres frames que corespondem a cada textura, então eu gostaria de colocar estas texturas dentro de um movieclip ficando obj.swf/texturas/frames 1,2,3,etc.
Seria possivel?
Abraços e valeu mesmo...
Junior
Bom fiz os teste e era isso msm jque eu precisava, porem gostaria de saber como colocar os objetos dentro de um movieclip, ou seja, esta da seguinte forma obj1.swf, obj2.swf e obj3.swf, dentro de cada obj tem tres frames que corespondem a cada textura, então eu gostaria de colocar estas texturas dentro de um movieclip ficando obj.swf/texturas/frames 1,2,3,etc.
Seria possivel?
Abraços e valeu mesmo...
Junior
#9
Posted 10 October 2011 - 03:19 PM
Em cada obj.swf, basta criar o mc e inserir os frames com as texturas, e dá um nome de instâncias(ex: texturas) pra esse mc ser controlado pelo swf principal:
Antes, com os frames estando direto na timeline principal de cada obj.swf, o acesso até os frames de cada obj.swf estava assim:
pedaço do código na função configuraObjetos() no arquivo prinicpal
Agora, com movieclip texturas o acesso seria:
Atualiza a função configuraObjetos():
Arquivo CS4:
http://www.mediafire...q4rbg0bb7acdm42
Abraço.
Antes, com os frames estando direto na timeline principal de cada obj.swf, o acesso até os frames de cada obj.swf estava assim:
pedaço do código na função configuraObjetos() no arquivo prinicpal
obj.gotoAndStop(frame); //acesso a timeline principal do arquivo obj.swf
Agora, com movieclip texturas o acesso seria:
obj.texturas.gotoAndStop(frame); //acesso a timeline do mc tetxuras
Atualiza a função configuraObjetos():
//controla os objetos btns que receberão a tetxura escolhida
function configuraObjetos():Void
{
trace("* 3º configura os objetos.");
//aplica evento de clique para total de objetos no stage
for (var i:Number=1; i<=totalDeObjetos; ++i)
{
//objetos btns
var obj:MovieClip = _root[nomeObjeto+i];
obj.texturas.gotoAndStop(frame); //para na textura padrão(frame 1) //acessa texturas mc onde tem 3 frames
obj.onRelease = function()
{
this.texturas.gotoAndStop(frame); //acessa texturas mc onde tem 3 frames
trace(this._name +" recebeu textura "+ frame);
}
}
}Arquivo CS4:
http://www.mediafire...q4rbg0bb7acdm42
Abraço.
#10
Posted 18 October 2011 - 05:42 PM
Rodrigo muito obrigado mesmo era isso msm que eu queria :lol: :lol: :lol:
Share this topic:
Page 1 of 1
Similar Topics
| Topic | Forum | Started By | Stats | Last Post Info | |
|---|---|---|---|---|---|
|
Controladores da Positivo podem recomprar até 2,29% das ações
|
Notícias |
Notícias
|
|
|
|
Criar animação em dhtml
Para criar, utilizar Visual Basic? |
Web Standards |
Marcos Corrêa
|
|
|
|
[Resolvido] http error 405 method not alowed
DW + Mysql |
SQL Server / Access |
ericbr
|
|
|
|
Novo iPhone começa a faltar nos Estados Unidos
|
Notícias |
Notícias
|
|
|
|
Novidades do Flash CS5 – Parte 1
|
Artigos Flash - Portal MXSTUDIO |
Natan
|
|
|
|
Europa quer mais proteção para compra de pacote de viagem pela web
|
Notícias |
Notícias
|
|
|
|
IBM compra empresa de tecnologia de armazenamento de dados XIV
|
Notícias |
Notícias
|
|
|
|
Aprenda a usar a internet, o computador e lucrar com o e-business
|
Notícias |
Notícias
|
|
Publicidade
|
|

Help













