Ir para conteúdo

POWERED BY:

Arquivado

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

Teodorico

Sites com classes

Recommended Posts

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

}

}

}

Imagem Postada

 

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.