Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Carregando comentários...