Comunidad de diseño web y desarrollo en internet online

carga de XML

Citar            
MensajeEscrito el 03 Feb 2010 05:12 am
Disculpen nuevamente.. devido a q no pude resolver q se interrumpa la carga de un XML.

explico mi problema.
estoy trbajando con una galeria en flash con XML.. tengo categorias, y cada categoria carga muchas mininaturas q al clikearlas visualizan la imagen ampliada..
Mi problema es q cada XML contiene cientos de imagenes, por lo cual si en el transcurso de la carga de estas se accede a otra categoria q carga otro XML, este no comienza asta q el anterior (q ya se dejo de usar por q cambiamos de categoria)alla termina su carga..
entonces como no puede resolver el cancelar la carga de un XML al cambiar de categoria, lo q se me ocurrio es q no se cargen todas las miniaturas a la vez, si no q lo hagan mientras vallan apareciendo en patalla (desplazando un scroll en el que se encuentran).

pego el codigo.. aver si alguien pude ayudarme o darme alguna otra idea para resolver mi problema..


import mx.transitions.Tween;
import mx.transitions.easing.*;

var lstThumb:Object = new Object();
var mclThumb:MovieClipLoader = new MovieClipLoader();

var lstImg:Object = new Object();
var mclImg:MovieClipLoader = new MovieClipLoader();

var space:Number = 0;
var speed:Number = 2;
var xmlFile:String = "apertura.xml";


var xml:XML = new XML(xmlFile);
var idAtual:Number = new Number();

//
lstThumb.onLoadInit = function(mc:MovieClip) {
mc._parent.pre._visible = false;
var a:Tween = new Tween(mc, "_alpha", Regular.easeOut, 1, 150, 1, true);
mc._xscale = 70;
mc._yscale = 70;
};
mclThumb.addListener(lstThumb);
//
lstImg.onLoadStart = function(mc:MovieClip) {
mc._alpha = 0;
pre.bar._xscale = 0;
pre._visible = false;
};

lstImg.onLoadProgress = function(mc:MovieClip, loaded:Number, total:Number) {
var pct:Number = Math.round(loaded/total*100);
pre.bar._xscale = pct;
};

lstImg.onLoadInit = function(mc:MovieClip) {
pre._visible = false;
mc._x = (Stage.width-mc._width)/2;
mc._y = 108.2;

var amc:Tween = new Tween(mc, "_alpha", Regular.easeOut, 1, 150, 1, true);
amc.onMotionFinished = function() {
var num:String = new String(fn[idAtual].attributes.caption);
if (num == undefined || num == "undefined" || num == "") {
} else {
caption.valuew = num;
}
};
};

mclImg.addListener(lstImg);

xml.ignoreWhite = true;

xml.onLoad = function(sucess) {
if (sucess) {
fn = xml.firstChild.childNodes;
total = fn.length;
for (var j:Number = 0; j<total; j++) {
var btn:MovieClip = menu.thumb.attachMovie("thumb", "thumb"+j, j);
btn._x = (btn._width+space)*j;
btn.id = j;
btn.onRollOver = function() {
this.border.gotoAndStop(2);
};
btn.onRollOut = function() {
this.border.gotoAndStop(1);
};
btn.onRelease = function() {
loadImg(this.id);
};
mclThumb.loadClip(fn[j].attributes.thumb,btn.img);
}
loadImg(idAtual);

//
} else {
trace("Error!");
}
};

xml.load(xmlFile);

function loadImg(id:Number) {
idAtual = id;
for (var j:Number = 0; j<total; j++) {
menu.thumb["thumb"+j].enabled = true;
menu.thumb["thumb"+j].border.gotoAndStop(1);
}
menu.thumb["thumb"+id].enabled = false;
menu.thumb["thumb"+id].border.gotoAndStop(3);


texto.text = (idAtual+1);

var ha:Tween = new Tween(holder, "_alpha", Regular.easeOut, holder._alpha, 0, 1, true);
ha.onMotionFinished = function() {
mclImg.loadClip(fn[id].attributes.src,holder);
};
}
//
this.onEnterFrame = function() {
if (!menu.hitTest(_root._xmouse, _root._ymouse)) {
var bm:Tween = new Tween(menu, "_y", Regular.easeOut, menu._y, (Stage.height-20), 1, true);
menu.thumb.scroll = false;
} else {
var bm:Tween = new Tween(menu, "_y", Regular.easeOut, menu._y, (Stage.height-menu._height), 1, true);
menu.thumb.scroll = true;
}
if (_root._ymouse>500 and _root._ymouse<600) {
myVar=true;
}
with (menu.thumb) {
if (_width>Stage.width) {
if(_root._xmouse>0 and _root._xmouse<20 and myVar==true ){

_x = _x+((0-(_root._xmouse/Stage.width*(_width-Stage.width+100)-(1-_root._xmouse/Stage.width)*10))-_x)*speed/100;
}
if(_root._xmouse>800 and _root._xmouse<1024 and myVar==true ){
_x = _x+((0-(_root._xmouse/Stage.width*(_width-Stage.width+10)-(1-_root._xmouse/Stage.width)*10))-_x)*speed/3000;
}
} else {
_x = (Stage.width-_width)/2;
}
}
};

Por qwertyvir

2 de clabLevel



 

safari
Citar            
MensajeEscrito el 03 Feb 2010 11:43 am
La verdad yo personalmente y muchos aqui no leeremos la fucking pared de código que has puesto, es demasiado largo. Postea la sección que te trae problemas no todo.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 03 Feb 2010 12:31 pm
Esta es la parte donde creo se podria modificar algo para solucionar mi problema... Igual el codigo en si no tien problemas anda perfecto, pero carga todas las imagenes contenidas en el scroll, mi idea es q lo haga mientras se abanza sobre este ,, es decir mientras van apareciendo en pantalla...
gracias ..

xml.onLoad = function(sucess) {
if (sucess) {
fn = xml.firstChild.childNodes;
total = fn.length;
for (var j:Number = 0; j<total; j++) {
var btn:MovieClip = menu.thumb.attachMovie("thumb", "thumb"+j, j);
btn._x = (btn._width+space)*j;
btn.id = j;
btn.onRollOver = function() {
this.border.gotoAndStop(2);
};
btn.onRollOut = function() {
this.border.gotoAndStop(1);
};
btn.onRelease = function() {
loadImg(this.id);
};
mclThumb.loadClip(fn[j].attributes.thumb,btn.img);
}
loadImg(idAtual);

//
} else {
trace("Error!");
}
};

xml.load(xmlFile);

function loadImg(id:Number) {
idAtual = id;
for (var j:Number = 0; j<total; j++) {
menu.thumb["thumb"+j].enabled = true;
menu.thumb["thumb"+j].border.gotoAndStop(1);
}
menu.thumb["thumb"+id].enabled = false;
menu.thumb["thumb"+id].border.gotoAndStop(3);

Por qwertyvir

2 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.