[Resolvido] filtrar xml no flash
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
Discussão (3)
Carregando comentários...