Comunidad de diseño web y desarrollo en internet online

Hace un "refresco" del escenario

Citar            
MensajeEscrito el 30 Ene 2006 06:38 pm
Saludos,
necesito hacer un refresco del escenario, porque tengo el siguiente problema:
Cargo una serie de imagenes usando las rutas a la carpeta en la que están leyendo un archivo xml que recupero desde un php.
La imágenes no tiene un tamaño establecido, por lo que las redimensiono en tiempo de ejecución y las sitúo en el escenario.
No sé por qué, pero parece que no le "da tiempo", y me descoloca todo el escenario.
Sin embargo, si vuelvo a ejecutar esa función nuevamente, sí me las coloca bien. Supongo que al tener las imagenes en la caché, trabaja mejor.

La solución que veo, es actualizar el escenario uan vez que están cargadas.
He estado buscando en el foro, y he encontrado que se puede hacer con updateAfterEvent(), pero ésto sólo funciona en un onClipEvent, o con la funcion setInterval, y yo no uso ninguna de ellas.
El código lo lanzo al pulsar un botón, que ejecuta una función que tengo el código del fotograma de la liea principal.
Para llamar a la función uso..

Código :

on (release){
   this._parent._parent.CrearXML("VERA");
}

Función ...

Código :

//Función de lanzamiento de la consulta y creación de los Alquileres
function CrearXML(slocalidad:String):Void {
   _root.DestinoXML._y = 320;
   var xmlVal:XML = new XML();
   var url:String = "buscar.php?localidad="+slocalidad;
   //****  ****var url:String = "buscar.xml";
   xmlVal.load(url);
   xmlVal.ignoreWhite = true;
   xmlVal.onLoad = function(bSuccess:Boolean) {
      if (bSuccess) {
         var xnAlquileres:XMLNode = xmlVal.firstChild;
         var aNumAlquileres:Array = xnAlquileres.childNodes;
         //Eliminamos los Objetos del Contenedor
         EliminarObjetos();
         ///_root.MoverAlquileres = true;
         _root.ImagenesInferior._alpha = 25;
         if (aNumAlquileres.length == null) {
            _root.TextoBusqueda.text = "No se han encontrado resultados para "+slocalidad+".";
         } else {
            _root.TextoBusqueda.text = "Se han encontrado "+aNumAlquileres.length.toString()+" posibles alquileres en "+slocalidad+".";
         }
         var xnAlquiler:XMLNode = xnAlquileres.firstChild;
         for (var i = 0; i<aNumAlquileres.length; i++) {
            //Creamos los objetos según los nodos de alquileres
            var AlquilerMC:MovieClip = _root.DestinoXML.attachMovie("Alquiler", "Alquiler"+i, i);
            if (i == 0) {
               AlquilerMC._x = 0;
               AlquilerMC._y = 0;
            } else {
               if (i%4 == 0) {
                  nFila++;
                  AlquilerMC._x = 0;
                  //Posicion del anterior + Alto del clip + separacion
                  AlquilerMC._y = nUltimo_y+160+6;
                  //AlquilerMC._y = nUltimo_y+220+6;
               } else {
                  //Posicion del anterior + Ancho del clip + separacion
                  AlquilerMC._x = nUltimo_x+170+6;
                  AlquilerMC._y = nUltimo_y;
               }
            }
            AlquilerMC.descripcion.text = unescape(xnAlquiler.firstChild.toString());
            AlquilerMC.referencia.text = unescape(xnAlquiler.attributes["referencia"].toString());
            AlquilerMC.tipo.text = unescape(xnAlquiler.attributes["tipo_inmueble"].toString());
            AlquilerMC.sid = unescape(xnAlquiler.attributes["id"].toString());
            
            //Carga de la Imagen
            var ImagenAlquiler:MovieClip = AlquilerMC.ContenedorImagen.attachMovie("Loader", "CargaImagen", 200);
            
            if (xnAlquiler.attributes["foto1"].toString() == "") {
               ImagenAlquiler.contentPath = "../imagenes/"+"nophotoalquiler.jpg";
            } else {
               ImagenAlquiler.contentPath = "admin/images_alquileres/"+xnAlquiler.attributes["id"].toString()+"/"+xnAlquiler.attributes["foto1"].toString();
            }
            
            //ImagenAlquiler.load(); mas abajo
            //ImagenAlquiler.setSize(160, 115);
            ImagenAlquiler.setSize(110, 79);
            ImagenAlquiler.scaleContent = true;
            ImagenAlquiler.load();
            //ME LO LLEVA MAS ARRIBA PARA VER SI CARGA LA IMAGEN MEJOR
            //if (xnAlquiler.attributes["foto1"].toString() == "") {
            //   ImagenAlquiler.contentPath = "../imagenes/"+"nophotoalquiler.jpg";
            //} else {
            //   ImagenAlquiler.contentPath = "admin/images_alquileres/"+xnAlquiler.attributes["id"].toString()+"/"+xnAlquiler.attributes["foto1"].toString();
            //}
            
            var nUltimo_x:Number = AlquilerMC._x;
            var nUltimo_y:Number = AlquilerMC._y;
            var xnAlquiler:XMLNode = xnAlquiler.nextSibling;
            //Cambio al siguiente nodo
            _root.BorrarResultados._visible = true;
            updateAfterEvent();
         }
      } else {
         trace("Error en la lectura del xml");
      }
   };
}


Ayuda por favor ....

Por AguaRas

93 de clabLevel



 

msie
Citar            
MensajeEscrito el 30 Ene 2006 07:40 pm
Yo tenia el mismo problema, lo solucioné con un movie clip de 2 fotogramas, el primer fotograma de este movie clip solamente tiene un stop, pero el siguiente "retamaña y posiciona" la imagen, asi, una vez que cargo la imagen le digo a este movieclip reacomoda_mc.play(); y se encarga de todas esas operaciones.

puedes checar un ejemplo de lo que te digo en mi pagina web, seccion gallery.

Por H3r3j3

290 de clabLevel

1 tutorial

Genero:Masculino  

Desarrollador Multimedia

firefox

 

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