Ir para conteúdo

POWERED BY:

Arquivado

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

mc2010

[Resolvido] filtrar xml no flash

Recommended Posts

boas

eu peguei o código seguinte para gerar uma galeria com dados vindos do xml. Aqui tudo bem a questão é isso vai duplicar o movie clip no numero que esta no xml, tb até aqui tudo óptimo, mas eu queria criar um rollover na imagem se esta no xml tiver um indicação no campo estado como activo, se não tiver qualquer indicação não faz rollover. ja tentei com if e não estou a conseguir....se alguém me poder ajudar

obrigado

 

segue o código

import com.greensock.*

//contentor para as imagens
conteudoAr.setMask (maskAR)

//Crio os MovieClips necessários
var foto:MovieClip = duplicar();
var duplicate:MovieClip = new MovieClip();
var mcl:MovieClipLoader = new MovieClipLoader();

//Monto minhas Arrays
var imagens:Array = new Array();
var estado:Array = new Array();
var promo:Array = new Array();

//Meus Numeros
var max:Number = 0;
var total:Number = 0;
var p:Number = new Number();
var inic:Number = 0;
var page:Number = 1;
var newX:Number;

// valores
var alvoX:Number = alvo._x;
var alvoY:Number = alvo._y;
var alvoWidth:Number = alvo._width;
var alvoHeight:Number = alvo._height;

//Crio os clips a serem carregados
var alvo:MovieClip = _root.createEmptyMovieClip("alvo",-16384);

// carregar XML

var xml:XML = new XML();
xml.ignoreWhite = true;
xml.load("promoAR.xml");
xml.onLoad = function(ok){
if(ok){ 
var cn = xml.firstChild.childNodes;
total = cn.length;
	if(total > 10) max = 0;for(i = 0; i < total; i++){
			imagens[i] = cn[i].attributes.imagens;
			estado[i] =cn[i].attributes.estado;
			promo [i]= cn[i].attributes.promo;
		
					}
	inicia();
	}else { 
		trace('error');
		}
}
function inicia(){
	for(var i:Number = 1; i <= 10; i++){
		newX = i * (170);
		duplicate = foto.duplicateMovieClip("foto-"+i, i, {_x:newX});
		mcl.loadClip(imagens[inic], duplicate);
		inic++;
			

	}
}
function duplicar():MovieClip {
	var mc:MovieClip = _root.createEmptyMovieClip("foto", this.getNextHighestDepth());
	mc._x =0;
	mc._y = 90;
	return mc;
}
function onLoadInit(duplicate){
	scala(duplicate)
	if(duplicate._width < 50){
		duplicate._x = duplicate._x + ((50 - duplicate._width)/2);
	}
	redimensionar(alvo);
	alvo._x = alvoX + (alvoWidth/2) - (alvo._width/2);
	alvo._y = alvoY + (alvoHeight/2) - (alvo._height/2);
	tamanho(duplicate);
	if (estado=="activo"){

			duplicate.onRollOver = function (){
			TweenLite.to (this,0.5,{_alpha:50})
			}
			duplicate.onRollOut = function (){
			TweenLite.to (this,0.5,{_alpha:100})
			}
		}
	}
	/*duplicate.onPress = function(){ 
	
		/*var string = targetPath(duplicate).split("-");
		p = string[1];
		p = p - 1;
		if(max >= 10){
			p = max+p;
		}
		var pic:String = imagens[p].toString();
		mcl.loadClip(pic, conteudoAr);
	}
	*/
}


//adiciono o listener
mcl.addListener(this);

ois

a questão está aqui

if (estado=="activo"){

                        duplicate.onRollOver = function (){
                        TweenLite.to (this,0.5,{_alpha:50})
                        }
                        duplicate.onRollOut = function (){
                        TweenLite.to (this,0.5,{_alpha:100})
                        }
                }

se me arranjarem maneira de isto funcionar, era optimo

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim portuga :P

 

duplicate = foto.duplicateMovieClip("foto-"+i, i, {_x:newX});
duplicate.estado = estado[i];

Ai na hora do if você faz assim:

if(duplicate.estado == "ativo")

Abraços irmãozinho ˆˆ

Compartilhar este post


Link para o post
Compartilhar em outros sites

meu caro amigo

tentei fazer como disseste mas não consegui...mas depois de algum tempo perdido conseguir resolver o problema desta forma:

var string = targetPath(duplicate).split("-");
		p = string[1];
		p = p - 1;
		if (estado[p].toString()=="activo"){
			duplicate.onRollOver = function (){
			trace(estado[p].toString())
					TweenLite.to (this,0.5,{_alpha:50})
			}
			
			duplicate.onRollOut = function (){
			TweenLite.to (this,0.5,{_alpha:100})
				}
		}
}

e pronto agora já faz o efeito consoante o activo.....mais nada....olha podes fechar este post

obrigado mais uma vez

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.