Ir para conteúdo

POWERED BY:

Arquivado

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

leandroguimaraes

Aplicar o mesmo código a instâncias diferentes

Recommended Posts

Bom pessoal, estou recorrendo a vocês pois estou com uma dúvida, que acredito ser simples, para

os usuários mais experimentes, porém não consegui iniciar uma busca por essa solução.

O meu problema é o seguinte, tenho um arquivo em que fiz um movieclipe para funcionar como

janela contendo explicações sobre determinado assunto, e fiz um botão no qual, quando o usário

clicar, a janela será exibida.

Para construir as janelas, primeiramente eu fiz o desenho da mesma e a converti em um movieclipe.

Depois, inseri dentro do movieclipe da janela, um movieclipe para servir de barra, onde o usuário

pode arrastá-la e por final adicionei um movieclipe para servir de "botão fechar". O código que

estou usando está funcionando perfeitamente bem, porém o problema é que eu tenho 34 dessas

janelas no mesmo arquivo (como os conteúdos das janelas são diferentes, eu as dupliquei usando o

"duplicate symbol" e mudei o conteúdo de cada uma). Então, no fim das contas, eu tenho 34

movieclips nos quais, dentro de cada um deles existe um movieclipe de barra superior e um

movieclipe de botão fechar.

O que estou buscando é alguma diretriz para otimizar o processo de escrever o código, pois, creio

que exista uma maneira mais prática do que copiar o código 34 vezes, mudando apenas os nomes

das instâncias.

 

Vou deixar o link para visualização do .swf, para que a dúvida fique mais clara.

http://www.swfcabin.com/open/1273772882

 

Vou colar aqui o código de uma versão simplificada, na qual eu usei apenas duas janelas e dois

botões, para que o código não fique com quilômetros de tamanho e, no mais, fico desde já agradecido a qualquer boa alma que possa me dar alguma dica de por onde começar, mesmo que seja um "procure saber a respeito de tal tal tal...". Valeu pessoa.

// Código para manter as janelas invisíveis
janela1_mc._visible = false;
janela2_mc._visible = false;

// Código para definir o área de clique da barra superior
janela1_mc.hitArea = area_mc;

// Código para fazer o "drag" da janela
janela1_mc.area_mc.onPress = function () {
	area_mc.startDrag();
	janela1_mc.startDrag();
}

janela1_mc.area_mc.onRelease = function () {
	area_mc.stopDrag();
	janela1_mc.stopDrag();
}

// Código para fechar a janela (tornando-a invisível)
janela1_mc.fechar_mc.onRelease = function () {
janela1_mc._visible = false;
}

// Código para fazer o botão fechar mudar de cor ao passar o cursor por cima
janela1_mc.fechar_mc.onRollOver = function () {
this.gotoAndStop(2);
}

// Código para fazer o botão fechar voltar a cor inicial, ao tirar o cursor de cima
janela1_mc.fechar_mc.onRollOut = function () {
this.gotoAndStop(1);
}

// Código para, ao clicar no botão, a janela correspondente seja exibida, e as janelas demais sejam fechadas
botao1_mc.onRelease = function() {
	janela1_mc._visible = true;
	janela2_mc._visible = false;
}

//Código para o botão mudar de cor ao se passar o cursor por cima
botao1_mc.onRollOver = function() {
	this.gotoAndStop(2);
}
//Código para o botão voltar a cor inicial, ao se tirar o cursor de cima
botao1_mc.onRollOut = function() {
	this.gotoAndStop(1);
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//


// Código para definir o área de clique da barra superior
janela2_mc.hitArea = area_mc;

// Código para fazer o "drag" da janela
janela2_mc.area_mc.onPress = function () {
	area_mc.startDrag();
	janela2_mc.startDrag();
}

janela2_mc.area_mc.onRelease = function () {
	area_mc.stopDrag();
	janela2_mc.stopDrag();
}

// Código para fechar a janela (tornando-a invisível)
janela2_mc.fechar_mc.onRelease = function () {
janela2_mc._visible = false;
}

// Código para fazer o botão fechar mudar de cor ao passar o cursor por cima
janela2_mc.fechar_mc.onRollOver = function () {
this.gotoAndStop(2);
}

// Código para fazer o botão fechar voltar a cor inicial, ao tirar o cursor de cima
janela2_mc.fechar_mc.onRollOut = function () {
this.gotoAndStop(1);
}

// Código para, ao clicar no botão, a janela correspondente seja exibida, e as janelas demais sejam fechadas
botao2_mc.onRelease = function() {
	janela2_mc._visible = true;
	janela1_mc._visible = false;
}

//Código para o botão mudar de cor ao se passar o cursor por cima
botao2_mc.onRollOver = function() {
	this.gotoAndStop(2);
}
//Código para o botão voltar a cor inicial, ao se tirar o cursor de cima
botao2_mc.onRollOut = function() {
	this.gotoAndStop(1);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Amigo a melhor maneira pra você simplificar isso ai, é usando xml. Com o xml, você nao precisará dos 34 movieclips, você precisará de apenas 1. Dai quando você clicar no botao manda ler a proxima linha do xml, ai vai aparecer ja com o conteudo certinho.

 

Digite no google:

Flash + xml.

 

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

kisuke, muito obrigado pela dica. Como o meu conhecimento é, digamos, bastante restrito, eu jamais imaginei que o tal do XML (que eu só conheço por nome) poderia ser a solução. Valeu mesmo pela sujestão, vou dar início as pesquisas agora mesmo.

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.