Ir para conteúdo

POWERED BY:

Arquivado

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

leozinhosd

[Resolvido] Site Menu Rollover + Carregamento

Recommended Posts

Falae Galera, tudo bem contigo? Vocês poderiam me explicar um problema que estou tendo no flash e não estou conseguindo resolver?

 

Tipo,

 

Vou explicar mais ou menos a estrutura que eu estou fazendo aqui. Um site em flash, existe uma página chamada master.fla e nela contém as actions para chamar os swfs externos, o meio que estou utilizando para carregar essas páginas é atraves de xml, e tipo as páginas são carregadas em um movie clip que é gerado dinamicamente através de uma função. A função para gerar os movie clips é:

function criarMovieclips(nomeMC:String, posicaoX:Number, posicaoY:Number):Void {
 
 this.attachMovie("mc_carregar", nomeMC, this.getNextHighestDepth());
 this[nomeMC]._x = posicaoX;
 this[nomeMC]._y = posicaoY;
 
}

E para criar os movie clips eu chamo a função dando nome de instância para elas e dizendo suas coordenadas x e y:

criarMovieclips("mcmenu", 0, 0);
criarMovieclips("mctopo", 50, 50);
criarMovieclips("mchome", 288, 309);
criarMovieclips("mchistoria", 288, 309);
criarMovieclips("mceventos", 288, 309);
criarMovieclips("mccontatos", 288, 309);
criarMovieclips("mccasas", 288, 309);
criarMovieclips("mcfotos", 288, 309); 

Ai depois de criadas os mcs, vem o xml. Essa estrutura que eu tenho, está vindo tudo externo. 

O meu xml está assim:

var carregaXML = XML;
carregaXML = new XML();
carregaXML.ignoreWhite = true;
var bannersLoad:MovieClipLoader;
bannersLoad = new MovieClipLoader();
carregaXML.onLoad = function(sucesso:Boolean):Void  {
 if (sucesso) {
  
  pgtopo = this.firstChild.childNodes[0].attributes.swf;
  bannersLoad.loadClip(pgtopo, mctopo);
  
  pgmenu = this.firstChild.childNodes[1].attributes.swf;
  bannersLoad.loadClip(pgmenu, mcmenu);
  
  pghome = this.firstChild.childNodes[2].attributes.swf;
  bannersLoad.loadClip(pghome, mchome);
  
  pghistoria = this.firstChild.childNodes[3].attributes.swf;
  bannersLoad.loadClip(pghistoria, mchistoria);
  
  pgeventos = this.firstChild.childNodes[4].attributes.swf;
  bannersLoad.loadClip(pgeventos, mceventos);
  
  pgcontato = this.firstChild.childNodes[5].attributes.swf;
  bannersLoad.loadClip(pgcontato, mccontatos);
  
  pgcasas = this.firstChild.childNodes[6].attributes.swf;
  bannersLoad.loadClip(pgcasas, mccasas);
  
  pgfotos = this.firstChild.childNodes[7].attributes.swf;
  bannersLoad.loadClip(pgfotos, mcfotos);
  
 } else {
  trace("XML ERRO");
 }
};
carregaXML.load("paginasXML.xml");
Problema:

 

Em relação ao menu, é um rollover e eu queria que quando o usuário clicasse por exemplo em história, ficasse marcado e também fizesse o carregamento do swf dentro do MC criado na página master e assim por diante, quando o usuário clicasse em casas, ele ficasse marcado e tb gerar o carregamento. Eu já tentei fazer algumas maneiras que sabia mas não consegui. Vocês sabem como posso ober isso?

 

Brigadão

 

Leo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ué crie o menu que não to vendo ali... e faça uma função de categorias que faça o MC que seria o menu andar para o frame marcado quando estiver nele... etc...

 

Mas você teria que criar uma função para tal... pois isso não é padrão... fora que se você usar botão mesmo... não tem como fazer andar. pois você não pode dar gotoAndPlay ou stop em botão nem nextframe... tem que ser movieclip

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falae Berseck, tudo bem contigo? Eu não entendi direito o que você disse. Tipo, eu tenho um fla chamado pgmenu.fla e dentro dele está apenas a animação do rollover, em uma página de action externa eu consegui fazer apenas isso:

 

mc_menu.mc_btnhome.onRollOver = mc_menu.mc_btnhistoria.onRollOver =

mc_menu.mc_btncasas.onRollOver = mc_menu.mc_btneventos.onRollOver = function():Void {

 

this.gotoAndPlay("inicio");

 

}

 

mc_menu.mc_btnhome.onRollOut = mc_menu.mc_btnhistoria.onRollOut =

mc_menu.mc_btncasas.onRollOut = mc_menu.mc_btneventos.onRollOut = function():Void {

 

this.gotoAndPlay("volta");

 

}

 

mc_menu.mc_btnhistoria.onRelease = function():Void {

 

trace(":: Testando ::");

 

}

 

O "inicio" e "volta" são rótulos que eu coloquei em um frame para marcar a animação do rollover. Ali em cima o mc_btnhome, mc_btnhistoria e etc são os nomes dos botões do menu que está dentro de mc_menu

 

Abraços

 

Leo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então se você já tem o botão release...

 

mc_menu.mc_btnhistoria.onRelease = function():Void {

trace(":: Testando ::");

}

Basta por ai dentro um load... e um contador de categoria...

 

Por exemplo

mc_menu.mc_btnhistoria.onRelease = function():Void {
bannersLoad.loadClip(pghistoria, mchistoria);
mc_menu.mc_btnhistoria.gotoAndStop(2); //Por exemplo... sendo que no 2 frame ele vai tar de uma outra cor indicando q to naquela categia
//Ai aqui em baixo todos os outros botões vão ter gotoAndStop(1);
}

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falae berseck,

 

Tipo, a parte do carregamento funcionou, sendo que a parte do mc_menu.mc_btnhistoria.gotoAndStop(2); não funciona, nem eu fazendo através de rotulo, nem a pau eu to conseguindo fazer ele funcionar..

 

Abraços

 

Leo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O caminho do botão ta correto???

 

Eu to achando que não heim...

 

vai no botão que você quer a ação e só por curiosidade coloca

on(release){
trace("this");
}
Com esse código ele vai dar o caminho dele.... você pega esse caminho e troca ali antes do gotoAndStop(2);

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falae berseck,

 

Eu tb pensei que poderia ser o caminho, mas se eu der um trace("teste"); eu consigo escrever o teste, eu estou falando com o mc certo, só não consigo colocar o trem para funcionar.

 

Abs

 

Leo

Compartilhar este post


Link para o post
Compartilhar em outros sites

????????

 

Se você coloca

mc_menu.mc_btnhistoria.onPress = function(){
trace('teste');
}

Ele ta retornando teste???

 

Se estiver tu que ta fazendo bagunça por ai....

 

Pq assim seu botão estaria funcionando perfeitamente.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falae berseck,

 

Tipo, consegui com ajuda de um amigo, fazer a parte do menu funcionar, de uma outra maneira, sendo q agora a duvida é na hora de quando eu clicar "onRelease", no botão chamado história, ocultar o conteudo que esta no palco e ocultar o outro. Parece simples, mas tipo olhada a maneira q eu consegui fazer com que o menu funcionasse:

 

/***************AS MENU****************/

folha menu.as:

 

 

var mc_menu:MovieClip;

var mc_btnhome:MovieClip;

var mc_areahome:MovieClip;

 

var atual:MovieClip = mc_menu.mc_btnhome;

 

mc_menu.mc_btnhome.gotoAndStop(10);

mc_menu.mc_btnhome.swf = "mchome.swf";

mc_menu.mc_btnhistoria.swf = "mchistoria.swf";

mc_menu.mc_btncasas.swf = "mccasas.swf";

mc_menu.mc_btneventos.swf = "mceventos.swf";

mc_menu.mc_btnalbum.swf = "mcfotos.swf";

 

mc_menu.mc_btnhome.onRollOver = mc_menu.mc_btnhistoria.onRollOver =

mc_menu.mc_btncasas.onRollOver = mc_menu.mc_btneventos.onRollOver =

mc_menu.mc_btnalbum.onRollOver = function():Void {

 

if (atual != this) {

this.gotoAndPlay("inicio");

}

 

}

 

 

mc_menu.mc_btnhome.onRollOut = mc_menu.mc_btnhistoria.onRollOut =

mc_menu.mc_btncasas.onRollOut = mc_menu.mc_btneventos.onRollOut =

mc_menu.mc_btnalbum.onRollOut = function():Void {

 

if (atual != this) {

this.gotoAndPlay("volta");

}

 

}

 

 

mc_menu.mc_btnhome.onRelease = function():Void {

 

if (atual != this) {

atual.gotoAndPlay("volta");

this.gotoAndStop("click");

atual = this;

_root.alvo.loadMovie(this.swf);

 

}

 

}

 

 

mc_menu.mc_btnhistoria.onRelease = function():Void {

 

if (atual != this) {

atual.gotoAndPlay("volta");

this.gotoAndStop("click");

atual = this;

_root.alvo.loadMovie(this.swf);

 

}

trace("teste historia");

}

 

 

mc_menu.mc_btncasas.onRelease = function():Void {

 

if (atual != this) {

atual.gotoAndPlay("volta");

this.gotoAndStop("click");

atual = this;

_root.alvo.loadMovie(this.swf);

 

}

trace("teste casas");

}

 

 

 

mc_menu.mc_btneventos.onRelease = function():Void {

 

if (atual != this) {

atual.gotoAndPlay("volta");

this.gotoAndStop("click");

atual = this;

_root.alvo.loadMovie(this.swf);

 

}

trace("teste eventos");

}

 

 

mc_menumc_btnalbum.onRelease = function():Void {

 

if (atual != this) {

atual.gotoAndPlay("volta");

this.gotoAndStop("click");

atual = this;

_root.alvo.loadMovie(this.swf);

 

}

trace("teste album");

}

 

 

/*******PAGINA MASTER********/

 

//Essa página master é a página principal, que carrega o menu, e assim os outros swfs.

 

EM UM FRAME EU TENHO UMA FUNÇÃO QUE GERA OS MCS ONDE OS CONTEÚDOS SERÃO CARREGADOS.

 

 

function criarMovieclips(nomeMC:String, posicaoX:Number, posicaoY:Number):Void {

 

this.attachMovie("mc_carregar", nomeMC, this.getNextHighestDepth());

this[nomeMC]._x = posicaoX;

this[nomeMC]._y = posicaoY;

 

}

 

 

criarMovieclips("mcmenu", 0, 0);

criarMovieclips("mctopo", 50, 50);

criarMovieclips("mchome", 288, 309);

criarMovieclips("mchistoria", 288, 309);

criarMovieclips("mceventos", 288, 309);

criarMovieclips("mccontatos", 288, 309);

criarMovieclips("mccasas", 288, 309);

criarMovieclips("mcfotos", 288, 309);

 

 

EM OUTRO FRAME DEPOIS DESSE, EU TENHO O XML:

 

var carregaXML = XML;

carregaXML = new XML();

carregaXML.ignoreWhite = true;

var bannersLoad:MovieClipLoader;

bannersLoad = new MovieClipLoader();

carregaXML.onLoad = function(sucesso:Boolean):Void {

if (sucesso) {

 

pgtopo = this.firstChild.childNodes[0].attributes.swf;

bannersLoad.loadClip(pgtopo, mctopo);

 

pgmenu = this.firstChild.childNodes[1].attributes.swf;

bannersLoad.loadClip(pgmenu, mcmenu);

 

pghome = this.firstChild.childNodes[2].attributes.swf;

bannersLoad.loadClip(pghome, mchome);

 

pghistoria = this.firstChild.childNodes[3].attributes.swf;

bannersLoad.loadClip(pghistoria, mchistoria);

 

pgeventos = this.firstChild.childNodes[4].attributes.swf;

bannersLoad.loadClip(pgeventos, mceventos);

 

pgcontato = this.firstChild.childNodes[5].attributes.swf;

bannersLoad.loadClip(pgcontato, mccontatos);

 

pgcasas = this.firstChild.childNodes[6].attributes.swf;

bannersLoad.loadClip(pgcasas, mccasas);

 

pgfotos = this.firstChild.childNodes[7].attributes.swf;

bannersLoad.loadClip(pgfotos, mcfotos);

 

} else {

trace("XML ERRO");

}

};

carregaXML.load("paginasXML.xml");

 

 

O problema Eu não conseguindo, fazer com que quando eu clico em algum botão o conteudo que esta sendo exibido saia e entre o conteudo relacionado ao botão. Por exemplo, assim que eu rodo a página master, o conteudo dela começa a rodar, mas nao consigo fazer com que quando eu clico em historia por exemplo o conteudo da home saia e a da historia entre e assim para os demais links. Entende? Como eu posso fazer isso? Antes de tudo, brigadào pelas explicações e paciência...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Berseck,

 

Posso te enviar 4 arquivos por e-mail para você ver oq eu estou errando? Tem como você mandar um alô para leo.oliveira07@gmail.com ?

 

Abraços

 

Leo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Berseck,

 

Não precisa não, funcionou na boa. É que no xml eu estava carregando os outros mcs, entao o conteudo de história estava carregando logo quando iniciava a página master.

 

Brigadão pela força meu velho, estou aprendendo ainda e bato cabeça em mta coisa ainda. Valeu mesmo pela paciência ae..

 

Abraços!!!

 

Leo

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.