Si estas en AS2 lo mejor es utilizar MovieClipLoader para tener control de
la carga.
Te paso una clase que puedes utilizar para precargar las fotos, o cualquier
cosa que quieras cargar:
<code>
//Clase Precargador
class Precargador extends MovieClipLoader {
private var clip_mc:MovieClip;
private var precargador:MovieClip;
public var pelicula:String;
public var xposicion:Number;
public var yposicion:Number;
private var clip:MovieClip;
private var target:MovieClip;
private var callBackFunct:Function;
public function precargar(clip:MovieClip, pelicula:String, xpos:Number,
ypos:Number, callBackFunct:Function){
xposicion=xpos? xpos : 0
yposicion=ypos? ypos : 0
addListener(this);
this.callBackFunct=callBackFunct;
loadClip(pelicula, clip);
}
public function onLoadProgress
(target:MovieClip,bytesLoaded:Number,bytesTotal:Number):Void {
precargador.campo_txt.text= Math.floor((bytesLoaded*100)/bytesTotal)+"%";
precargador.barra._xscale =Math.floor((bytesLoaded*100)/bytesTotal);
target.stop();
}
public function onLoadStart(target:MovieClip):Void {
precargador = _root.attachMovie("precargador","precargador_mc",9833);
precargador._x = xposicion
precargador._y= yposicion
target.stop();
}
public function onLoadInit (target:MovieClip):Void {
target.play();
callBackFunct.call(null,target);
}
public function onLoadComplete (target:MovieClip):Void {
precargador.removeMovieClip();
target.stop();
}
public function onLoadError (target:MovieClip, errorCode:String):Void {
if (errorCode == "URLNotFound") {
trace(errorCode+" ERROR: File not found.");
} else if (errorCode == "LoadNeverCompleted") {
trace(errorCode);
} else {
trace(errorCode);
}
}
}
La utilización Sería asi:
import Precargador
this.createEmptyMovieClip("galeria",1)
var fotos:Array=new Array()
fotos=["foto1.jpg","foto2.jpg"]
function
carga(container:MovieClip,contenido_a_cargar:String,xpos:Number,ypos:Number,callback:Function){
p = new Precargador();
p.precargar(container,contenido_a_cargar,xpos,ypos,callback);
}
function displayGallery(){
for (var i = 0; i<fotos.length; i++) {
galeria.attachMovie("foto_container","foto_container"+i,i)
carga(galeria["foto_container"+i], fotos[i], 0, 0, _colocalafoto)
}
}
var contador:Number=0
function _colocalafoto(){
galeria["foto_container"+contador]._x=galeria["foto_container"+(contador-1)]._x+galeria["foto_container"+(contador-1)]._width
contador++
}
----- Original Message -----
From: "Javier García / H2e" <[EMAIL PROTECTED]>
To: "Lista dedicada a Actionscript" <[email protected]>
Sent: Wednesday, November 07, 2007 5:29 PM
Subject: [ASNativos] Ordenar imagenes con un patron fijo
Agencia de Comunicación Visual :: h2e.es ::
Hola listeros!!
Estoy montando una galería de imágenes y me pasa lo siguiente. Tengo un clip
en el que atacheo tantos cilps de la librería como imágenes tenga. Una vez
atacheado, le cargo su correspondiente imagen desde el servidor y lo coloco
en pantalla con una estructura tal que así:
[] [] [] [] [] [] (cada elemento corresponde a una imagen)
La cuestión es que hay imágenes que son más anchas que otras, entonces
necesito sacar un patrón fijo para que siempre respeten la misma separación
sea cual sea su ancho:
[] [ ] [ ] [] [] [ ] [ ] (aunque la
imagen sea más larga, el patrón es el mismo)
Yo había pensado una fórmula:
this._x = (anterior._x + this._width) + patron
Siendo:
this._x --> el clip que voy a colocar en ese momento;
anterior._x --> es la posición donde se quedó el último clip atacheado.
this._width --> el ancho de dicho clip que voy a colocar.
patron --> el valor fijo de separación entre todos los clips.
Bueno, estoy no funciona; el ._width me devuelve 0.
A ver si alguien me echa un cable. Uso Flash 8 y AS 1
Graciasss!!!
Jg.
-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------
-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------