Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/10/2005, 10:55
Avatar de stock
stock
 
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
MyMovieClipLoader v1.1

Hola amigos!! nadamas para presentarle y poner a su disposicion la version actualizada de una clase que realize hace tiempo y que se encuentra por este foro.

Ok, esta clase MyMovieClipLoader tiene como proposito cargar imagenes o swf's externos, lo que hace es correr una animacion del cargador que tu quieras que aparesca a la hora de la carga, luego cuando la carga a terminado se ejecuta una funcion que tu especifiques que quieras que ocurra cuando la carga es completada.

aqui la clase MyMovieClipLoader.as
Código PHP:
/*
 * Author: Crysfel Villa
 * Created: Saturday, August 13, 2005 6:45:23 PM
 * Modified: Thursday, October  06, 2005 11:10:17 AM
 * Version:  1.1
 */
 
class MyMovieClipLoader extends MovieClipLoader{
    private var 
mcCargando:MovieClip;
    private var 
mcTarget:MovieClip;
    private var 
bytesCargados:Number;
    private var 
ancho:Number,alto:Number;
    private var 
funcion:Function = null;
    
    public function 
MyMovieClipLoader(cargador:MovieClip,fn:Function){
        
mcCargando cargador;
        
funcion fn;
        
trace(mcCargando);
    }
    
    public function 
myLoadClip(url:String,target:MovieClip):Void{
        var 
myListener:Object = new Object(); 
        
mcTarget target;
        
this.addListener(myListener);
        
this.loadClip(url,target);
        
trace("hacemos el loadClip");
    }
    
    public function 
setTamanio(an:Number,al:Number):Void{
        
ancho an;
        
alto al;
        
//trace(ancho +" x " + alto);
        
mcTarget._width an;
        
mcTarget._height al;
    }
    
    public function 
onLoadStart target_mc:MovieClip ):Void
    
{
        
//trace("no hacemos nada en este evento :)");
    
}
    
    
//Cuando haces el TestMovie no funciona :( porque??
    //no lo se, pero cuando lo subes a la web, funciona perfecto :)
    
public function onLoadProgress(target:MovieClip,loadedBytes:Number,totalBytes:Number):Void
    
{
        
bytesCargados Math.floor((loadedBytes*100)/totalBytes);
        
mcCargando.gotoAndStop(bytesCargados);
    }
    
    public function 
onLoadComplete(target_mc:MovieClip):Void
    
{
        
mcCargando._visible false;
        
mcCargando.removeMovieClip();
        
//disparamos la funcion que querremos que se ejecute al 
        //finalizar la carga :)
        
funcion();
        
trace("Termino la carga");
    }
    
    public function 
onLoadInit target_mc:MovieClip ):Void
    
{
        
//trace("no hacemos nada en este evento");
    
}
    
    public function 
onLoadError target:MovieCliperror:String ):Void
    
{
        
trace ("No se pudo cargar el objeto en = " target);
        
trace ("ERROR  = " error);
    }

para usarla crea un archivo AS que se llame MyMovieClipLoader.as y pega todo el contenido anterior, luego en donde necesites utilizarla (en el FLA) hacemos algo como esto:

Código PHP:
//importamos la clase, debe de estar en el mismo directorio que
//el FLA para que funcione bien
import MyMovieClipLoader;
//en este caso YO le llame mcAnim a un MC que de 100 Frames de duracion
//que contiene la animacion de la carga, lo hago invisible al momento inicial
mcAnim._visible false;

//cuando se presione un boton "btn"
btn.onRelease = function():Void{
    
//hago visible la animacion de la carga
    
mcAnim._visible true;
    
//creo un objeto de la clase MyMovieClipLoader, pasandole como parametros
    //al constructor la animacion de la carga, y la funcion a ejecutarse al
    //terminar la carga
    
var c:MyMovieClipLoader = new MyMovieClipLoader(mcAnim,hola);
    
//una vez construido el objeto, le paso los parametros del archivo
    //externo que quiero cargar, y le paso el MC donde quiero que cargue
    //en este caso una imagen
    
c.myLoadClip("imagen.jpg",mcDestino);
}

//esta funcion es la que le paso en el constructor
function hola():Void{
    
//instrucciones a ejecutarse cuando termine la carga
    
trace("ya termino y ahora ejecuto mis instrucciones :D");
    
//pones todo lo que quieras que ocurra!! :D

puedes poner en la funcion hola lo que quierrais, y pues no necesariamente se debe llamar "hola", le puedes llamar como gustes unicamente no olvides cambiarle tambien al constructor del objeto MyMovieClipLoader

preguntas?? comentarios?? posteen