Ir para conteúdo

POWERED BY:

Arquivado

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

Guilhermecrespo

Menu carregar swf externo dentro do swf principal

Recommended Posts

E ae pessoal do forum Imaster, tudo beleza?

 

Estou precisando de uma ajuda. Já pesquisei na internet e não consegui encontrar, talvez não estou sabendo procurar.

 

Bem fiz um site no estilo FluidLayout, cujo script está funcionando corretamente, e achei um template de um menu estilo Dock Apple e pus no site, SÓ QUE NÃO CONSIGO DE JEITO NENHUM LINKAR OS BOTÕES PARA ABRIR OS SWF´S RESPECTIVOS DENTRO DO PROJETO.

 

Preciso resolver este problema para entregar o projeto. Será que alguém pode me ajudar????

 

vou postar o link onde estão os arquivos.

 

link: http://www.4shared.com/file/Eu5cCo7H/website_guto.html

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o código de como você ta tentando fazer, pois algumas pessoas não conseguem baixar os arquivos, e as vezes nem querem...

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Guilhermecrespo.

 

Li o seu outro tópico e comentei, observe o code que você postou, anotei apenas uma linha:

 

botaoDaVez.onRelease = function():Void {

'onRelease' e 'Void' faz parte da sintaxe do AS2.

 

Seu link para baixar o arquivo não está funcionando, fica melhor acionar o ícone da corrente (inserir link) e colar a url.

 

Siga a sugestão do Matheus, poste o código, pode remover os comentários.

 

 

Abs

 

Consegui baixar o seu arquivo por um link que você postou neste tópico >> http://forum.imasters.com.br/index.php?/topic/376030-como-chamar-swf-externo-com-sub-botao/page__fromsearch__1

 

Você deve estar usando o Flash CS5, ou seja, não foi possível abrir o fla, pois tenho instalado o CS4.

 

Abri os AS 'Main', vi que é um template do FlepStudio em AS3.

 

Mas ao abrir o AS 'Website' você usa o "onRelease', que é da sintaxe do AS2.

 

Um trecho do code, com seus comentários:

 

new FluidObject(footer,footerParam);
			
			//PEGUEI O CÓDIGO NO IMASTER FORUM//
			//OS BOTÕES NO ARQUIVO FLA estão com a extensão MOVIECLIP//
			// Supondo então que você tem três botões, home_btn, produtos_btn e contato_btn.
			Apple.onRelease = function(){
         	// seus códigos aqui...
         	this.enabled = false;
			}

			Configuration.onRelease = function(){
         	// seus códigos aqui...
         	this.enabled = false;
         	/* Já que "produtos_btn" desligou, vamos reativar home_btn e contato_btn, caso eles tenha sido usados 
                 anteriormente e estejam desativados. Senão daqui a pouco todos os botões estarão desativados...*/
         	Apple.enabled = true;
         	Configuration.enabled = true;
			}

			// crio uma lista com todos os botões que desejo:
			var arrBotoes:Array = new Array(Apple, Configuration, Contact);

			// crio uma variável que vai armazenar o último botão clicado, para futura referência.
			var botaoAtual:MovieClip = new MovieClip();

			/* Já que o minha lista arrBotoes pode ter um número enorme de itens, vou fazer um looping que vai passar por todos de uma vez só. Assim todos, quando forem clicados, vão chamar a mesma função, em vez de digitar um onRelease para cada botão. */
			for (var i:Number = 0; i < arrBotoes.length; i++) {
    		var botaoDaVez:MovieClip = arrBotoes[i];
    		botaoDaVez.onRelease = function(){
          	/* Toda vez que um botão for clicado, ele vai sempre chamar uma função chamada 'gerenciarBotoes' e passará a si próprio como um parâmetro*/
          	gerenciarBotoes(this);
     			}
			}

			// Agora escrevo uma função que vai gerenciar qual botão foi clicado e o que deve ser feito em cada caso:
			function gerenciarBotoes(btClicado:MovieClip){
     		// vou armazenar na variável botaoAtual, que criei acima, o botão clicado.
     		botaoAtual = btClicado;

 

Ou seja, não tem como funcionar. As versões do action não são compatíveis.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria de agradecer o retorno de vocês.

 

Estou aprendendo na marra, estou totalmente perdido com relação as sintaxes e faz muito tempo que não mexo no flash.

Desculpem pelos erros!

 

O link é este:

os arquivos referente ao site

 

O código completo é este aqui



package {

	import flash.display.*;
	import flash.events.*;
	import flash.net.*;
	import FluidLayout.*;
	
	
	//inicio do FluidLayout
	public class Website extends MovieClip{		
			
		public function Website()
		{
					
			/* Alinhamento do palco */
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
			
			var title = new Title();
			addChild(title);
		
			var middle = new Middle();
			addChild(middle);
		
			var footer = new Footer();
			addChild(footer);
			
			/* Alinhamento Logo */
			var titleParam = {
				x:0,
				y:0,
				offsetX:0,
				offsetY:0
			}
			new FluidObject(title,titleParam);
			
			/* Alinhamento do SWF EXTERNO */
			var middleParam = {
				x:0.5,
				y:0.5,
				offsetX: -middle.width/2,
				offsetY: -middle.height/2
			}
			new FluidObject(middle,middleParam);
		
			/* Alinhamento do Menu */
			var footerParam = {
				x:0.5,
				y:1,
				offsetX: -footer.width/2,
				offsetY: -footer.height/2
								
			}
			new FluidObject(footer,footerParam);
//fim do FluidLayout

//Inicio do que seria a sintaxe para linkar os SWF´S
			
			
			//PEGUEI O CÓDIGO NO IMASTER FORUM//
			//OS BOTÕES NO ARQUIVO FLA estão com a extensão MOVIECLIP//
			// Supondo então que você tem três botões, home_btn, produtos_btn e contato_btn.
			Apple.onRelease = function(){
         	        // seus códigos aqui...
         	        this.enabled = false;
			}

			Configuration.onRelease = function(){
         	        // seus códigos aqui...
         	        this.enabled = false;
         	        /* Já que "Configuration" desligou, vamos reativar Apple e Contact, caso eles tenha sido usados 
                        anteriormente e estejam desativados. Senão daqui a pouco todos os botões estarão desativados...*/
         	        Apple.enabled = true;
         	        Configuration.enabled = true;
			}

			// crio uma lista com todos os botões que desejo:
			var arrBotoes:Array = new Array(Apple, Configuration, Contact);

			// crio uma variável que vai armazenar o último botão clicado, para futura referência.
			var botaoAtual:MovieClip = new MovieClip();

			/* Já que o minha lista arrBotoes pode ter um número enorme de itens, vou fazer um looping que vai passar por todos de uma vez só. Assim todos, quando forem clicados, vão chamar a mesma função, em vez de digitar um onRelease para cada botão. */
			for (var i:Number = 0; i < arrBotoes.length; i++) {
    		        var botaoDaVez:MovieClip = arrBotoes[i];
    		        botaoDaVez.onRelease = function(){
          	        
                        /* Toda vez que um botão for clicado, ele vai sempre chamar uma função chamada 'gerenciarBotoes' e passará a si próprio como um parâmetro*/
          	        gerenciarBotoes(this);
     			 }
			}

			// Agora escrevo uma função que vai gerenciar qual botão foi clicado e o que deve ser feito em cada caso:
			function gerenciarBotoes(btClicado:MovieClip){
     		        // vou armazenar na variável botaoAtual, que criei acima, o botão clicado.
     		        botaoAtual = btClicado;

     		        // Agora vou ativar todos:
     		        var i:Number = arrBotoes.length;
    		        while(i) {
          	        i--;
          	        arrBotoes[i].enabled = true;    
     		        }
     	
     		        // Bom. Agora que ativei todos, desativo o botão clicado, já que ele é o botão ativo:
     		        btClicado.enabled = false;

     		        // Agora vou fazer um "switch" para dizer o que o flash vai fazer para cada botão desses:
     		        switch (btClicado) {
         	            case Apple:
                            trace("flashdock_tut_home.swf");
                            break;
          	            case Configuration:
                            trace("flashdock_tut_portfolio.swf");
                            break;
          	            case Contact:
                            trace("flashdock_tut_contact.swf");
                            break;
          	       // Caso nenhum dos códigos acima sejam efetuados, dizer que algo deu errado....
         	       default:
                       trace("Não foi encontrada nenhuma ação para o botão: " + btClicado);
     		       }

     		/* Bom. Agora vamos dizer o seguinte: esses botões, todos eles, servem só pra carregar arquivos swf externos. Tem como otimizar isso?
        	 Claro que tem! Podemos retirar o "_btn" do nome e usar o próprio nome do botão para carregar seus respectivos swfs. 
        	 Vamos supor que seu objeto MovieClipLoader que vai carregar os swfs seja "myMCL". Apague o switch acima faça como abaixo:
    		 */
      
      
    		/* Todos os botões no flash devem ter nome de instância terminado por "_btn". Então basta retirar os últimos 4 caracteres para usarmos
        	 a parte desejada do nome. Fazemos isso com o método "substr" que "corta" pedaços de strings. Você pode encontrar mais
        	 informações sobre esse método no help do flash */
     
    		 var swf:String = btClicado._name.substr(0, (btClicado._name.length - 4)) + ".swf";

     		// Agora carregamos o swf desejado no movieClip "middle", por exemplo:
     		middle.loadClip(swf, middle);

     		/* Veja que para isso funcionar, o botão home_btn deve chamar o swf "home.swf" e o botão produtos_btn deve chamar o swf "produtos.swf", etc.
     		Com essa abordagem, se o cliente pedir para inserir o botão "lojas_btn", basta você ir até o array lá no começo do código e adiconar "lojas_btn"
    		no final da lista. O resto ficou tudo automático. Ativa, dessativa, carrega, tudo. Sem mecher em mais código nenhum.*/
		    }
                //FIM DA SINTAXE PARA LINKAR OS SWF´S EXTERNOS
		}
	}
}

Se alguém puder me ajudar com a sintaxe correta, ficarei muito agradecio!

 

Um abraço a todos

 

Olá Pessoal, tudo beleza??

 

Alguém saberia me ajudar?!! Só falta isso para finalizar o site!!

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Guilherme, deve procurar um code adequado em AS3 ou escolher um template ao alcance do seu conhecimento.

 

Se tiver dúdiva em alguma parte, talvez possamos auxiliar.

 

Todos temos nossas ocupações, fica impossível converter AS2 para AS3 a todos que solicitam. Eu, por exemplo, nunca usei AS2, só identifico a sintaxe.

 

A tarefa aqui é auxiliar, não é fazer o serviço dos outros.

 

 

Não é má vontade, isso é procedimento habitual em qualquer fórum, espero que compreenda.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

O FluidLayout ta em as 2? Reescreva essa classe em as 3. Ou mude seu código inicial pra as 2.

Abs

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.