ya se que van a decirme que deberia primero haber buscado en el foro la respuesta a esto; pero pueden estar seguros de que lo he hecho y no encuentro como solucionar mi problema en específico, esta es la segunda vez que esto me pone en problemas ya que a mi jefe no le gusta que suceda, y por otro lado me interesa mucho saber como hacerlo. Y es lo siguiente:
Tengo un tipo portafolio que llama imagenes pequeñas mediante un xml, las acomoda en filas dentro de un movieclip que tiene scroll, luego al clicar en cada imagen pequeña se carga en diferentes campos de texto la info deseada para cada imagen, al mismo tiempo se carga a un lado la misma imagen en grande...
Mi problema gigantesco es que al cargar cada imagen grande, la primera desaparece por unos instantes hasta que aparece la segunda, trate de solucionarlo porniendo un Loader llamado "cargadorBajo" donde alClicar cargo primero la imagen y cuando termina de cargarse la trato de pasar a otro Loader llamado "cargador" que esta sobre el anterior pero aun asi me da problemas, no todo el tiempo pero en ocasiones si.
aca esta el codigo:
Código :
import mx.transitions.Tween;
import mx.transitions.easing.*;
//var cantidad:Number = 20;
var cantidad:Number;
var columna:Number = 5;
var dirX:Number = 0;
var dirY:Number = 0;
var thumb:MovieClip;
var tin:MovieClip = holder_mc;
tin._x = 20;
tin._y = 20;
//===================================texto
p = 0;
var obj_xml:XML = new XML();
obj_xml.ignoreWhite = true;
obj_xml.onLoad = function(exito) {
xmlNode = this.firstChild;
cantidad = xmlNode.childNodes.length;
if (exito) {
for (var i:Number = 0; i<cantidad; i++) {
//======================================
new Tween(thumb, "_alpha", Regular.easeInOut, 0, 100, 2, true);
cargador.contentPath = obj_xml.firstChild.childNodes[0].attributes.image;
cliente_txt.text = obj_xml.firstChild.childNodes[0].attributes.client;
director_txt.text = obj_xml.firstChild.childNodes[0].attributes.director;
designer_txt.text = obj_xml.firstChild.childNodes[0].attributes.designer;
description_txt.text = obj_xml.firstChild.childNodes[0].attributes.description;
description_txt.wordWrap = true;
description_txt.multiline = true;
thumb = tin.attachMovie("Loader", "mc"+i, i);
thumb.attachMovie("container","cont",this.getNextHighestDepth());
thumb.setSize(50,70);
thumb._x = 65*dirX;
thumb._y = 85*dirY;
thumb.fontSize = 10;
thumb.label = i;
thumb.contentPath = obj_xml.firstChild.childNodes[thumb.label].attributes.thumb;
dirX++;
if (dirX == columna) {
dirX = 0;
dirY++;
}
//===================================== botones
thumb.onRelease = function():Void {
cargadorBajo.contentPath = obj_xml.firstChild.childNodes[this.label].attributes.image;
cliente_txt.text = obj_xml.firstChild.childNodes[this.label].attributes.client;
director_txt.text = obj_xml.firstChild.childNodes[this.label].attributes.director;
designer_txt.text = obj_xml.firstChild.childNodes[this.label].attributes.designer;
description_txt.text = obj_xml.firstChild.childNodes[this.label].attributes.description;
description_txt.wordWrap = true;
description_txt.multiline = true;
this.attachMovie("onClickColor", "clickColor", i);
p = this.label;
trace(this.label);
};
thumb.onRollOver = function():Void {
this._alpha = 50;
//trace(this.label);
};
thumb.onRollOut = function():Void {
var miTween:Tween = new Tween(this, "_alpha", Regular.easeIn, this._alpha, 100, 0.2, true);
};
next_mc.onPress = function():Void {
if(p < cantidad-1) {
loading_gif.play();
loading_gif._alpha = 30;
p++;
cargadorBajo.contentPath = obj_xml.firstChild.childNodes[p].attributes.image;
}
}
prev_mc.onPress = function():Void {
if(p > 0) {
loading_gif.play();
loading_gif._alpha = 30;
p--;
cargadorBajo.contentPath = obj_xml.firstChild.childNodes[p].attributes.image;
}
}
//=============================================
up_mc.onPress = function():Void {
this.onEnterFrame = function():Void {
tin._y += 7;
scrollbar_mc.scroll_mc._y -= 7;
updateAfterEvent();
if (tin._y > 20){
tin._y = 20;
scrollbar_mc.scroll_mc._y = -0.5;
}
}
}
up_mc.onRelease = function():Void {
delete this.onEnterFrame;
}
down_mc.onPress = function():Void {
this.onEnterFrame = function():Void {
tin._y -= 7;
scrollbar_mc.scroll_mc._y += 7;
updateAfterEvent();
if (tin._y < -150){
tin._y = -150;
scrollbar_mc.scroll_mc._y = 195.6;
}
}
}
down_mc.onRelease = function():Void {
delete this.onEnterFrame;
}
//================== Listener
cargador.scaleContent = false;
cargadorBajo.scaleContent = false;
var mientrasCarga:Object = new Object();
mientrasCarga.progress = function(evento) {
loading_gif.play();
loading_gif._alpha = 30;
loaded_txt.text = cargadorBajo.percentLoaded;
trace(cargador.bytesLoaded+" bytes cargados de "+cargador.bytesTotal);
};
var alClicar:Object = new Object();
alClicar.complete = function(evento) {
cargador.contentPath = cargadorBajo.contentPath;
loaded_txt.text = "";
//var miTween:Tween = new Tween(cargadorBajo, "_alpha", Regular.easeIn, 0, 100, 0.3, true);
loading_gif.stop();
loading_gif._alpha = 0;
trace("has cargado la imagen "+cargador.contentPath);
trace("altura de cargadorBajo = "+cargadorBajo._height);
var miTween:Tween = new Tween(stroke_mc, "_height", Regular.easeIn, stroke_mc._height, cargadorBajo._height, 0.1, true);
};
cargadorBajo.addEventListener("progress",mientrasCarga);
cargadorBajo.addEventListener("complete",alClicar);
//=============================
}
} else {
description_txt.text = "no se ha podido cargar correctamente el archivo texto.xml";
}
};
obj_xml.load("texto.xml");
//=========================================
aca dejo el archivo completo por si lo pueden ver, se los agradeceria mucho, y para todo aquel que le sea util aun con ese detalle faltante.
http://realtyguidecr.com/portafolio/portafolio_clab.zip
Muchas gracias desde ya
