MacRoger 0 Denunciar post Postado Julho 7, 2010 prezados expert em Flash, Peguei um componente (menu) para usa-lo no meu site e estou tendo problema para que o mesmo faça LoadMovie em um MovieClip (alvo) dos SWF's externos. Veja aqui o componente para analise (esse componente é FREE) >>> Download do componente Clique aqui Agradeço a todos que puderem me ajudar nesta tarefa. Grato. Roger. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 7, 2010 Bom sem alterar o código do mlk em muito O que você pode fazer é na parte dos parametros do botões colocar o nome dos swf no lugar dos links E ai dar um duplo clic sobre o componente para abrir o mesmo E na parte de ActionScript na linha 88: getURL(links[this.i],"_blank"); Altere para loadMovie(links[this.i], nome do movieClip que vai carregar o conteúdo); Da pra fazer isso... se lhe interessar teste Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Giovani 104 Denunciar post Postado Julho 7, 2010 MacRoger, eu alterei o título seu tópico conforme as regras deste fórum. Se ainda não leu, acesse o link: http://forum.imasters.com.br/index.php?app=core&module=help Espero que sua dúvida seja sanada. Compartilhar este post Link para o post Compartilhar em outros sites
MacRoger 0 Denunciar post Postado Julho 7, 2010 Olá berseck, Fiz exatamente isso que você falou e nada. Segue abaixo a actionscript modificada por mim (tal como você disse) //Função para eventos de ida e volta da animação (Movie Clip) - sem prototypes function goFrame(mc):Void { //delete this.onEnterFrame; if (mc._currentframe<mc._totalframes) { mc.onEnterFrame = function() { mc.nextFrame(); if (mc._currentframe == mc._totalframes) { delete mc.onEnterFrame; } }; } } function backFrame(mc):Void { delete mc.onEnterFrame; mc.onEnterFrame = function() { mc.prevFrame(); if (mc._currentframe == 1) { delete mc.onEnterFrame; } }; } ////////////////////////////////////////////////////////////////////////////////// //travamento deste frame como _root para a multiplicação de MovieClips this._lockroot = true; //contar quantidades de menus que estão no componente qtd = menu.length; //função de botão pressionado - os demais voltam ao estado normal function fcn() { for (i=0; i<menu.length; i++) { if (i != selecionado) { _root['b'+i].enabled = true; _root['b'+i].useHandCursor = true; backFrame(_root['b'+i]); } } } //multiplicação dos botões pelo for (meu preferido hehe) for (i=0; i<qtd; i++) { //duplicando botões botao.duplicateMovieClip('b'+i,_root.getNextHighestDepth()); //dou o nome de b para os botões multiplicados b = _root['b'+i]; //sempre tenho que fazer isso para transformar os botoes em arrays b.i = i; //defino a distancia de cada um deles b._y += i*64; //essa parte é gerada automaticamente o numero dos botões que aparece b.numero.texto.text = "0"+(this.i+1); b.numero2.texto.text = "0"+(this.i+1); //aqui eu declaro o titulo dos botões b.titulo.texto.text = menu[this.i]; b.titulo2.texto.text = menu[this.i]; //aqui eu declaro a descrição deles b.desc.texto.text = descricao[this.i]; var my_color:Color = new Color(b.mcBg.mcG); my_color.setRGB(cor); // my_mc turns red //b.mcBg.mcG.setRGB("0x" + cor); _global.selecionado = 0; goFrame(_root['b'+0]); _root['b'+0].enabled = false; _root['b'+0].useHandCursor = false; //quando se passa o mouse em um deles acontece b.onRollOver = function() { /*o goFrame foi a função que eu criei para dar o Play no botão, a diferença é que ele de onde estiver passa a seguir o próximo frame e no meu ponto de vista isso é melhor por que não uso tanta memória e nem preciso ficar me matando pra entender aqueles prototypes*/ goFrame(this); }; b.onRollOut = function() { /*o backFrame foi a outra função que eu criei para voltar a animação de onde ela estiver para o primeiro frame e la limpar a função da memória para não deixar o filme puxar muitos recursos do pc, a diferença é que a partir do frame que ela estiver ela volta*/ backFrame(this); }; b.onRelease = function() { _global.selecionado = this.i; this.enabled = false; this.useHandCursor = false; fcn(); loadMovie(links[this.i],alvo); }; unloadMovie(botao); } Quando eu coloco desta forma (_root.loadMovie(links[this.i],alvo); ) ele chama o SWF mas não vai para o MovieClip (vazio) alvo. Ele faz o LoadMovie mas não tira o anterior e fica por cima do outro. Te agradeço a atenção, se puder me dar mais força nisso agradeço. Não sou tão expert em flash para tal problema. Roger. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 7, 2010 ???? Não entendi?? Ele se você mandar 2 loadMovie em 1 MovieClip ele vai sempre substituir 1 pelo outro. Tente fazer _root.alvo pois como você ta dentro do botão... ele não ta acessando o root. Talvez isso resolva seu problema. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
MacRoger 0 Denunciar post Postado Julho 7, 2010 Olha ai o que fiz, mas não deu certo, help me!!!! //Função para eventos de ida e volta da animação (Movie Clip) - sem prototypes function goFrame(mc):Void { //delete this.onEnterFrame; if (mc._currentframe<mc._totalframes) { mc.onEnterFrame = function() { mc.nextFrame(); if (mc._currentframe == mc._totalframes) { delete mc.onEnterFrame; } }; } } function backFrame(mc):Void { delete mc.onEnterFrame; mc.onEnterFrame = function() { mc.prevFrame(); if (mc._currentframe == 1) { delete mc.onEnterFrame; } }; } ////////////////////////////////////////////////////////////////////////////////// //travamento deste frame como _root para a multiplicação de MovieClips this._lockroot = true; //contar quantidades de menus que estão no componente qtd = menu.length; //função de botão pressionado - os demais voltam ao estado normal function fcn() { for (i=0; i<menu.length; i++) { if (i != selecionado) { _root['b'+i].enabled = true; _root['b'+i].useHandCursor = true; backFrame(_root['b'+i]); } } } //multiplicação dos botões pelo for (meu preferido hehe) for (i=0; i<qtd; i++) { //duplicando botões botao.duplicateMovieClip('b'+i,_root.getNextHighestDepth()); //dou o nome de b para os botões multiplicados b = _root['b'+i]; //sempre tenho que fazer isso para transformar os botoes em arrays b.i = i; //defino a distancia de cada um deles b._y += i*64; //essa parte é gerada automaticamente o numero dos botões que aparece b.numero.texto.text = "0"+(this.i+1); b.numero2.texto.text = "0"+(this.i+1); //aqui eu declaro o titulo dos botões b.titulo.texto.text = menu[this.i]; b.titulo2.texto.text = menu[this.i]; //aqui eu declaro a descrição deles b.desc.texto.text = descricao[this.i]; var my_color:Color = new Color(b.mcBg.mcG); my_color.setRGB(cor); // my_mc turns red //b.mcBg.mcG.setRGB("0x" + cor); _global.selecionado = 0; goFrame(_root['b'+0]); _root['b'+0].enabled = false; _root['b'+0].useHandCursor = false; //quando se passa o mouse em um deles acontece b.onRollOver = function() { /*o goFrame foi a função que eu criei para dar o Play no botão, a diferença é que ele de onde estiver passa a seguir o próximo frame e no meu ponto de vista isso é melhor por que não uso tanta memória e nem preciso ficar me matando pra entender aqueles prototypes*/ goFrame(this); }; b.onRollOut = function() { /*o backFrame foi a outra função que eu criei para voltar a animação de onde ela estiver para o primeiro frame e la limpar a função da memória para não deixar o filme puxar muitos recursos do pc, a diferença é que a partir do frame que ela estiver ela volta*/ backFrame(this); }; b.onRelease = function() { _global.selecionado = this.i; this.enabled = false; this.useHandCursor = false; fcn(); _root.alvo.loadMovie(links[this.i]); }; unloadMovie(botao); } berseck você fez o download do componente para ver como ele funciona? Acima nos posts tem o link para download. Preciso usar este componente, mas teria outra forma de fazer ele funcionar? Grato. Roger. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 7, 2010 Ok fiz um POG aqui porque o flash tava com preguiça e eu tbm... Flash principal que carrega os botões: var alvo:MovieClip = _root.createEmptyMovieClip("alvo", 1); var botoes:MovieClip = _root.createEmptyMovieClip("botoes", 2); //Aqui transformo o MC numa variavel global a ser acessada de qualquer lugar _global.mc = alvo; alvo._x = 250; alvo.loadMovie("houses/public_html/images/2page-img1.jpg"); botoes._x = 0; botoes._y = 0; botoes.loadMovie("botoes.swf"); E no action dos botões: b.onRelease = function() { _global.selecionado = this.i; this.enabled = false; this.useHandCursor = false; fcn(); loadMovie(links[this.i], _global.mc); }; Abraços Compartilhar este post Link para o post Compartilhar em outros sites
MacRoger 0 Denunciar post Postado Julho 8, 2010 Bom Dia! berseck, Legal este script, mas sou um pouco leigo em actionscript. o que vem a ser POG? Funcionou legal... Agora é o seguinte: O MovieClip (vazio) ALVO que coloquei no stage principal terei que deletar, pois no seu script você cria um ALVO, certo? Agora vem outra pendega, quando testo o filme principal ele já tem que fazer o LoadMovie do HOME no alvo que seu script cria... ...como fazer esta actionscrit para inseri-la no frame do filme principal? Quando se testa o filme o menu (componente) já vem com o botão HOME ativado, ai tem que carregar o SWF HOME externo automático. Obrigado pela sua atenção, mais uma vez... Roger. Prezado berseck... no seu script onde tem: alvo.loadMovie("houses/public_html/images/2page-img1.jpg"); Fiz da seguinte forma, coloquei o HOME.swf alvo.loadMovie("home.swf"); Carregou de primeira, agora quando se testa o filme já carrega o HOME e o botão do menu já esta ativado...beleza! RESOLVIDO, FUNCIONOU TUDO CERTINHO :joia: :joia: Você foi a luz no fundo do tunél... Fico muito grato à atenção dada a mim. Caso venha precisar de design feito em photoshop estou aqui para o que quiser, OK! Valew! Roger. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Julho 8, 2010 Eu botei algo pra carregar ali porque era teste... Não que tu tivesse aquele arquivo rs Como sempre meu código é só um exemplo de como deve ser feito Que bom que conseguiu. Abraços Compartilhar este post Link para o post Compartilhar em outros sites