Ir para conteúdo

POWERED BY:

Arquivado

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

Dynho

Movies clips criados via código

Recommended Posts

Pessoal, tenho um script que via código cria vários movieclips vazios, adiciona fotos a eles, e os posiciona no palco com espaço de 20px entre eles. Outro código é encarregado de fazer esses mc's se moverem horizontalmente na tela.

 

Acontece que esses clips tem que ter uma função para quando clicados abrir uma janela popup com a imagem correspondende. Essas imagens são chamadas via XML, e nesse arquivo XML que é gerado pelo PHP já tem a largura e a altura que a popup deve ter. Mas como os clips são gerados via código e não tem um "botão" dentro deles, não consigo fazer a função GetURL funcionar.

 

Minha primeira dúvida é:

 

Da mesma forma que criamos movieclips vazios, tem como criar também botões e adicionálos a esse movie clip vazio? Tudo dinamicamente?

 

Outra dúvida:

 

A função GetURL não está funcionando creio eu porque os mc's estão dentro de um onEnterFrame e isso creio eu gera um novo movie clip a cada evento. Como eu poderia resolver isso?

 

Como disse acho que o ideal seria já embutir no movieclip vazio um botão mas não achei como fazer isso.

 

Alguém pode me ajudar? Abaixo segue o código que estou tentando fazer funcionar:

 

var Posicao:Number = 0; // Posição Inicial

var TamanhoTotal:Number = 0; // Seto o tamanho total, inicialmente com zero

 

objXML=new XML();

objXML.ignoreWhite=true;

objXML.onLoad=processa;

objXML.load("xml/galeria.xml");

 

function processa() {

var rootNode:XMLNode = this.firstChild;

var mcTotal:Number = rootNode.childNodes.length;

 

for (i=1; i < mcTotal; i++){ // Com esse for eu coloco os clips no palco. Mas não consigo colocar um botão neles pra gerar o evento que chama a popup

var nodeDados:XMLNode = rootNode.childNodes;

 

_root.createEmptyMovieClip(_root["Produto" + i], i);

loadMovie(nodeDados.childNodes[0].childNodes, _root["Produto" + i]); // Aqui crio o clip, e aqui que acho que deveria poder colocar um botão

 

_root["Produto" + i]._x = Posicao;

 

Posicao += 160;

 

_root.mvLeft.swapDepths(_root["Produto" + i]);

_root.mvRight.swapDepths(_root["Produto" + i]);

}

TamanhoTotal = Posicao - 160;

moverEsquerda(mcTotal,TamanhoTotal,txtURLs); // Aqui eu chamo a função que vai começar o movimento pra esquerda

}

 

_global.direcao = ""; // Essa variável global armazenará a última chamada que foi feita, se para esquerda ou para direita

 

function moverEsquerda(txtQuant,txtTamanhoTotal){ // Aqui começa a movimentação. Reparem que passei 2 parâmetros e que os tranformo em variáveis globais

_global.Quant = txtQuant;

_global.txtURLs = txtURLs;

_global.TamanhoTotal = txtTamanhoTotal;

_global.direcao = "esquerda";

delete _root.onEnterFrame;

_root.onEnterFrame = function(){

for (i=Quant; i >= 1; i--){

if (_root["Produto" + i]._x < -280){ // Esse primeiro ifpega os clips menor que -280 para depois recolocálos na coordenada mais alta do lado direito

x_recoloca = 0;

w_recoloca = 0;

for (j=Quant; j >= 1; j--){ // Esse for pega o clip com menor coordenada _x, recalcula e joga o clip em questão pra ultima posição à direita

if (_root["Produto" + j]._x > 0){

x_atual = getProperty( _root["Produto" + j], _x );

if (x_atual > x_recoloca){

x_recoloca = x_atual;

}

}

}

_root["Produto" + i]._x = x_recoloca + 140 + 20; // Como cada clip tem 140px somo esse valor a 20px que é o espaço entre eles

}

_root["Produto" + i]._x -= 5; // Continua com o movimento

}

 

// Esse for é apenas para parar o clip quando o mouse passar por cima de algum deles.

// Daí a importância da variável _global.direcao criada antes

for (i=Quant; i >= 1; i--){

_root["Produto" + i].onRollOver = function() {

delete _root.onEnterFrame;

}

_root["Produto" + i].onRollOut = function() {

if (_global.direcao == "esquerda"){

_root.moverEsquerda(_global.Quant,_global.TamanhoTotal);

}else{

_root.moverDireita(_global.Quant,_global.TamanhoTotal);

}

}

}

}

}

 

function moverDireita(txtQuant,txtTamanhoTotal){ // Praticamente a mesma coisa da outra função só que faz o inverso

_global.Quant = txtQuant;

_global.TamanhoTotal = txtTamanhoTotal;

_global.direcao = "direita";

delete _root.onEnterFrame;

_root.onEnterFrame = function(){

for (i=Quant; i >= 1; i--){

if (_root["Produto" + i]._x > TamanhoTotal){

x_recoloca = 0;

w_recoloca = 0;

for (j=Quant; j >= 1; j--){

if (_root["Produto" + j]._x < 0){

x_atual = getProperty( _root["Produto" + j], _x );

if (x_atual > x_recoloca){

x_recoloca = x_atual;

}

}

}

_root["Produto" + i]._x = x_recoloca - 140 - 20;

}

_root["Produto" + i]._x += 5;

}

for (i=Quant; i >= 1; i--){

_root["Produto" + i].onRollOver = function() {

delete _root.onEnterFrame;

}

_root["Produto" + i].onRollOut = function() {

if (_global.direcao == "esquerda"){

_root.moverEsquerda(_global.Quant,_global.TamanhoTotal);

}else{

_root.moverDireita(_global.Quant,_global.TamanhoTotal);

}

}

}

}

}

 

Agora o código dos botões de direita e esquerda:

 

Botão para Esquerda:

 

on (press){

_root.moverEsquerda(_global.Quant,_global.TamanhoTotal);

}

 

Botão para Direita

 

on (press){

_root.moverDireita(_global.Quant,_global.TamanhoTotal);

}

 

Estrutura do arquivo XML:

 

<?xml version="1.0" encoding="utf-8"?>

<galeria>

<imagens>

<thumbs>galerias/imgThumbs/miniFOTO14.jpg</thumbs>

<imagem>galerias/imgGrande/FOTO14.jpg</imagem>

<titulo>Tec Per 1</titulo>

<descricao>Descrio 1</descricao>

<largura>400</largura>

<altura>350</altura>

</imagens>

<imagens>

<thumbs>galerias/imgThumbs/miniFOTO15.jpg</thumbs>

<imagem>galerias/imgGrande/FOTO15.jpg</imagem>

<titulo>Tec Per 1</titulo>

<descricao>Descrio 2</descricao>

<largura>400</largura>

<altura>350</altura>

</imagens>

<imagens>

<thumbs>galerias/imgThumbs/miniFOTO16.jpg</thumbs>

<imagem>galerias/imgGrande/FOTO16.jpg</imagem>

<titulo>Tec Per 1</titulo>

<descricao>Descrio 3</descricao>

<largura>400</largura>

<altura>350</altura>

</imagens>

<imagens>

<thumbs>galerias/imgThumbs/miniFOTO17.jpg</thumbs>

<imagem>galerias/imgGrande/FOTO17.jpg</imagem>

<titulo>Tec Per 1</titulo>

<descricao>Descrio 4</descricao>

<largura>400</largura>

<altura>350</altura>

</imagens>

</galeria>

 

Quem quiser ver esse script em ação pode ir na seguinte url: www.tecper.com.br/indextexte.php

 

Como verão, só preciso que abra a popup com a imagem para finalizar esse flash.

 

Fico no aguardo de possíveis ajudas.

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.