Teodorico 0 Denunciar post Postado Janeiro 27, 2009 Olá, Estou migrando do AS2 para o AS3 e consequentemente, também para o conceito de Programação Orientada à Objeto. Minha estrutura consiste em um arquivo index.html que carrega um arquivo base (um container), onde por sua vez, serão carregados o topo do site, o menu, o painel de notícias, etc. As classes ficarão dentro de uma pasta chamada "com" enquanto os swfs das seções do site dentro de uma pasta chamada "comum". A estrutura do site é mais ou menos assim (pastas em maiúsculas e arquivos em minúsculas): [RAIZ] index.html [RAIZ > COM] site.as menu.as etc... [RAIZ > COMUM] base.swf menu.swf A idéia é que quando o usuário clicar num item de menu (no menu.swf) seja carregada a respectiva seção. No método construtor do "base.swf" inicializo o site, ou seja, carrego o topo.swf, menu.swf, noticias.swf, etc. Até aí tudo funcionou normalmente. O problema começa quando uso o "menu.as"... Para ilustrar minha dúvida, seguem abaixo um printscreen da tela e o código do menu.as: package { import flash.display.MovieClip; import flash.net.URLRequest; import flash.display.Loader; public class menu extends MovieClip { public var secaoAtual:String = "apresentacao_mc"; public var secaoAnterior:String; public function menu():void { // } public function onOver(evt:MouseEvent):void { evt.target.gotoAndPlay("over"); } public function onOut(evt:MouseEvent):void { evt.target.gotoAndPlay("out"); } public function onClick(evt:MouseEvent):void { // Início do teste trace(""); trace("Traces do onClick"); trace("secaoAtual no menu.as: " + secaoAtual); secaoAnterior = secaoAtual; trace("secaoAnterior no menu.as: " + secaoAnterior); trace(""); // Fim do teste carregarSecao(evt.target.name); } public function carregarSecao(secaoAtual):void { switch (secaoAtual) { case "apresentacao_mc" : trace("Apresentação"); break; case "historia_mc" : trace("História"); break; case "equipe_mc" : trace("Equipe"); break; case "projetos_mc" : trace("Projetos"); break; case "financeiro_mc" : trace("Financeiro"); break; case "colabore_mc" : trace("Colabore"); break; case "loja_mc" : trace("Loja"); break; case "contato_mc" : trace("Contato"); break; } //Início do teste trace(""); trace("Traces do carregarSecao"); trace("secaoAnterior após o click do mouse: " + secaoAnterior); trace("secaoAtual após o click do mouse: " + secaoAtual); trace(""); //Fim do teste } } } Por que a variável secaoAnterior não é atualizada? Ou seja, porque ela mantém o valor original apresentacao_mc? Agradeço antecipadamente qualquer ajuda que receber para evitar popular o post com agradecimentos, ok? Compartilhar este post Link para o post Compartilhar em outros sites
Teodorico 0 Denunciar post Postado Janeiro 27, 2009 Se interessar para alguém, descobri que o erro era por causa do nome das variáveis: package { import flash.display.MovieClip; import flash.net.URLRequest; import flash.display.Loader; public class menu extends MovieClip { public var secaoAtual:String = "apresentacao_mc"; public var secaoAnterior:String; public function menu():void { // } public function onOver(evt:MouseEvent):void { evt.target.gotoAndPlay("over"); } public function onOut(evt:MouseEvent):void { evt.target.gotoAndPlay("out"); } public function onClick(evt:MouseEvent):void { // Início do teste trace(""); trace("Traces do onClick"); trace("secaoAtual no menu.as: " + secaoAtual); secaoAnterior = secaoAtual; trace("secaoAnterior no menu.as: " + secaoAnterior); trace(""); // Fim do teste carregarSecao(evt.target.name); } public function carregarSecao(secaoAtual_aux):void { switch (secaoAtual_aux) { case "apresentacao_mc" : trace("Apresentação"); break; case "historia_mc" : trace("História"); break; case "equipe_mc" : trace("Equipe"); break; case "projetos_mc" : trace("Projetos"); break; case "financeiro_mc" : trace("Financeiro"); break; case "colabore_mc" : trace("Colabore"); break; case "loja_mc" : trace("Loja"); break; case "contato_mc" : trace("Contato"); break; } //Início do teste secaoAtual = secaoAtual_aux; trace(""); trace("Traces do carregarSecao"); trace("secaoAnterior após o click do mouse: " + secaoAnterior); trace("secaoAtual após o click do mouse: " + secaoAtual); trace(""); //Fim do teste } } } Compartilhar este post Link para o post Compartilhar em outros sites