Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, fiz um código que adiciona no palco imagens JPG vindas de um formulário XML. Nesse mesmo código tenho dois eventos onEnterFrame que move as imagens da direita para a esquerda. Bom, o problema é que essas imagens, estão em dois diretórios. Um diretorio de Thumbs e outro com as imagens em tamanho original. Quando o usuário clica numa das imagens, a mesma deveria ser aberta em tamanho original em uma popup.
Até aí, beleza. Só que não consigo, de forma nenhuma, passar os parâmetros para o getURL! Vou postar o código abaixo e vai ficar mais claro o que estou tentando fazer. Já tentei colocar os parâmetros vindos do XML em variáveis _global, já tentei public, já tentei como nesse último exemplo até o prototype e nada. Se vocês repararem, coloqueis alguns loops para ver se o sistema estava recebendo as imagens, e está. Mas quando coloco esse loop dentro de um evento onRelease por exemplo as variáveis são perdidas e passam a ser enviadas para o comando getURL como undefined.
O que posso fazer para que o Flash mantenha esses dados em cacha, em sessão, em qq coisa que eu possa acessários das funções onRelease que por si só estão dentro das funções que move os clips para esquerda ou direita? Alguém sabe me dizer pq há essa perda das variáveis?
Fico no aguardo de toda e qualquer ajuda.
var Posicao:Number = 0; // Posição Inicial
var contador:Number = 0;
var TamanhoTotal:Number = 0; // Seto o tamanho total, inicialmente com zero
// A função que armazena os dados vindo do XML
function Dados(txtThumbs, txtImagem, txtTitulo, txtDesc, txtAltura, txtLargura) {
_root.Thumbs = txtThumbs;
_root.Imagem = txtImagem;
_root.Titulo = txtTitulo;
_root.Desc = txtDesc;
_root.Altura = txtAltura;
_root.Largura = txtLargura;
};
objXML=new XML();
objXML.ignoreWhite=true;
objXML.onLoad=processa;
objXML.load("xml/galeria.xml");
// A função que processa os dados do xml, cria os movieclips, anexa a eles as imagens jpg e os posiciona no palco para depois chamar a função
// que os move para a esquerda.
function processa() {
var rootNode:XMLNode = this.firstChild;
var mcTotal:Number = rootNode.childNodes.length -1;
for (i=0; i <= mcTotal; i++){
var nodeDados:XMLNode = rootNode.childNodes*;*
** // Chamo aquele objeto criado anteriormente e vou adicionando nele as informações do xml**
Object.prototype["Imagem"+i] = nodeDados.childNodes[1].childNodes;
_root.createEmptyMovieClip("Produto" + i, i);
loadMovie(nodeDados.childNodes[0].childNodes, _root["Produto" + i]);
_root["Produto" + i]._x = Posicao;
Posicao += 160;
_root.mvLeft.swapDepths(_root["Produto" + i]);
_root.mvRight.swapDepths(_root["Produto" + i]);
}
TamanhoTotal = Posicao - 160;
** // Depois de anexar e posicionar os clips chamo a função que começa a movê-los para a esquerda**
moverEsquerda(mcTotal,TamanhoTotal,txtImagem);
}
_global.direcao = ""; // Essa variável global armazenará a última chamada que foi feita, se para esquerda ou para direita
//Aqui começa a função que move os clips colocados no palco para a esquerda
function moverEsquerda(txtQuant,txtTamanhoTotal,txtImagem){
_global.Quant = txtQuant;
_global.TamanhoTotal = txtTamanhoTotal;
_global.direcao = "esquerda";
_global.Imagem = txtImagem;
// Aqui fiz um loop pra ver se o conteúdo de Object.prototype["Imagem"+i] ainda estava acessível, e estava.
// for (i=0; i <= Quant; i++){
// trace("java script:MM_openBrWindow('[http://www.meusite.com.br/amplia.php?foto="+Object.prototype](http://www.meusite.com.br/amplia.php?foto=%22+Object.prototype)["Imagem"+i]+"','ampliacao','status=yes,scrollbars=yes,resizable=yes,width=400,height=350')");
// }
delete _root.onEnterFrame;
_root.onEnterFrame = function(){
// Outro loop para ver se Object.prototype["Imagem"+i] ainda tinha o conteúdo, e ainda tinha
// for (i=0; i <= Quant; i++){
// trace("java script:MM_openBrWindow('[http://www.meusite.com.br/amplia.php?foto="+Object.prototype](http://www.meusite.com.br/amplia.php?foto=%22+Object.prototype)["Imagem"+i]+"','ampliacao','status=yes,scrollbars=yes,resizable=yes,width=400,height=350')");
// }
for (i=0; i <= Quant; i++){
// Mais um trace para ver se até aqui ainda tinha conteúdo em Object.prototype["Imagem"+i]. E ainda tinha.
//trace("java script:MM_openBrWindow('[http://www.meusite.com.br/amplia.php?foto="+Object.prototype](http://www.meusite.com.br/amplia.php?foto=%22+Object.prototype)["Imagem"+i]+"','ampliacao','status=yes,scrollbars=yes,resizable=yes,width=400,height=350')");
if (_root["Produto" + i]._x < -280){
x_recoloca = 0;
w_recoloca = 0;
for (j=0; j <= Quant;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;
}
// Outro loop pra ver se o conteúdo de Object.prototype["Imagem"+i] ainda estava acessível, e estava.
// for (i=0; i <= Quant; i++){
// trace("java script:MM_openBrWindow('[http://www.meusite.com.br/amplia.php?foto="+Object.prototype](http://www.meusite.com.br/amplia.php?foto=%22+Object.prototype)["Imagem"+i]+"','ampliacao','status=yes,scrollbars=yes,resizable=yes,width=400,height=350')");
// }
for (i=0; i <= Quant; i++){
// Outro loop (pra variar) pra ver se o conteúdo de Object.prototype["Imagem"+i] ainda estava acessível, e estava.
// for (i=0; i <= Quant; i++){
// trace("java script:MM_openBrWindow('[http://www.meusite.com.br/amplia.php?foto="+Object.prototype](http://www.meusite.com.br/amplia.php?foto=%22+Object.prototype)["Imagem"+i]+"','ampliacao','status=yes,scrollbars=yes,resizable=yes,width=400,height=350')");
// }
_root["Produto" + i].onRollOver = function(Imagem) {
delete _root.onEnterFrame;
}
_root["Produto" + i].onRollOut = function() {
if (_global.direcao == "esquerda"){
_root.moverEsquerda(_global.Quant,_global.TamanhoTotal,_global.Imagem);
}else{
_root.moverDireita(_global.Quant,_global.TamanhoTotal,_global.Imagem);
}
}
// Aqui nesse loop Object.prototype["Imagem"+i] ainda permanecia com os dados (tb pra variar).
// for (i=0; i <= Quant; i++){
// trace("java script:MM_openBrWindow('[http://www.meusite.com.br/amplia.php?foto="+Object.prototype](http://www.meusite.com.br/amplia.php?foto=%22+Object.prototype)["Imagem"+i]+"','ampliacao','status=yes,scrollbars=yes,resizable=yes,width=400,height=350')");
// }
_root["Produto" + i].onRelease = function(){
//getURL("java script:MM_openBrWindow('http://www.meusite.com.br/amplia.php?foto="+txtImagem+"','ampliacao','status=yes,scrollbars=yes,resizable=yes,width=400,height=350')");
// Aqui danou-se tudo. O objeto Object.prototype["Imagem"+i] simplesmente zera, perde todo o conteúdo. Porque? Porque está dentro do onRelease?
// Fora do onRelease os dados são mantidos, mas pq quando coloco dentro do onRelease eles somem?
trace("java script:MM_openBrWindow('http://www.meusite.com.br/amplia.php?foto="+Object.prototype["Imagem"+i]+"','ampliacao','status=yes,scrollbars=yes,resizable=yes,width=400,height=350')");
}
}
}
}
// Daqui pra baixo é a função que move os clips para a direita mas a lógica é a mesma, e os problems também.
function moverDireita(txtQuant,txtTamanhoTotal,txtImagem){
_global.Quant = txtQuant;
_global.TamanhoTotal = txtTamanhoTotal;
_global.direcao = "direita";
_global.Imagem = txtImagem;
for (i=0; i <= Quant; i++){
_global.ImagemG = Imagem;
* trace(txtImagem**);*
}
delete _root.onEnterFrame;
_root.onEnterFrame = function(){
for (i=0; i <= Quant; i++){
if (_root["Produto" + i]._x > TamanhoTotal){
x_recoloca = 0;
w_recoloca = 0;
for (j=0; j <= Quant;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=0; i <= Quant; i++){
_root["Produto" + i].onRollOver = function() {
delete _root.onEnterFrame;
}
_root["Produto" + i].onRollOut = function() {
if (_global.direcao == "esquerda"){
_root.moverEsquerda(_global.Quant,_global.TamanhoTotal,_global.Imagem);
}else{
_root.moverDireita(_global.Quant,_global.TamanhoTotal,_global.Imagem);
}
}
_root["Produto" + i].onRelease = function() {
getURL("java script:MM_openBrWindow('http://www.meusite.com.br/amplia.php?foto="+txtImagem+"','ampliacao','status=yes,scrollbars=yes,resizable=yes,width=400,height=350')");
trace("java script:MM_openBrWindow('http://www.meusite.com.br/amplia.php?foto="+Imagem+"','ampliacao','status=yes,scrollbars=yes,resizable=yes,width=400,height=350')");
}
}
}
}
É isso galera. Espero que alguém possa ter uma luz ao analisar esse código pq poxa, tá difícil e to quase desistindo viu.
Obrigdao a toda e qualquer ajuda desde já.
Carregando comentários...