Carga de archivos de imagen y SWF externos

Para cargar un archivo de imagen o SWF, utilice las funciones globales loadMovie() o loadMovieNum(), el método loadMovie() de la clase MovieClip o el método loadClip() de la clase MovieClipLoader. Para más información sobre el método loadClip(), consulte MovieClipLoader.loadClip() en Referencia del lenguaje ActionScript 2.0.

Para archivos de imagen, Flash Player 8 y versiones posteriores admite el tipo de archivo JPEG (progresivo y no progresivo), imágenes GIF (transparentes y no transparentes, aunque sólo se carga el primer fotograma de un archivo GIF con animación) y archivos PNG (transparentes y no transparentes).

Para cargar un archivo SWF o de imagen en un nivel de Flash Player, utilice la función loadMovieNum(). Para cargar un archivo SWF o de imagen en un clip de película de destino, utilice la función o el método loadMovie(). En cualquiera de esos casos, el contenido cargado reemplaza al contenido del nivel o clip de película de destino especificado.

Cuando se carga un archivo SWF o de imagen en un clip de película de destino, la esquina superior izquierda del archivo SWF o de imagen se sitúa en el punto de registro del clip de película. Dado que este punto suele ser el centro del clip de película, el contenido cargado no aparecerá en el centro. Además, cuando se carga un archivo SWF o de imagen en una línea de tiempo raíz, la esquina superior izquierda de la imagen se sitúa en la esquina superior izquierda del escenario. El contenido cargado hereda la rotación y la escala del clip de película, pero el contenido original del clip de película se elimina.

También puede enviar variables de código de ActionScript con una llamada loadMovie() o loadMovieNum(). Esto es útil, por ejemplo, si la URL que especifica en la llamada de método es un script del servidor mediante el cual se devuelve un archivo SWF o de imagen según los datos que se envían desde la aplicación Flash.

Cuando utilice la función global loadMovie() o loadMovieNum(), especifique el nivel o clip de destino como parámetro. El siguiente ejemplo de código carga el archivo contents.swf de la aplicación Flash en una instancia de clip de película denominada image_mc:

loadMovie("contents.swf", image_mc);

Puede utilizar MovieClip.loadMovie() para conseguir el mismo resultado:

image_mc.loadMovie("contents.swf");

El ejemplo siguiente carga la imagen JPEG image1.jpg en la instancia del clip de película image_mc:

image_mc.loadMovie("http://www.helpexamples.com/flash/images/image1.jpg");

Para más información sobre cómo cargar archivos SWF y de imagen externos, consulte Carga de archivos SWF y la línea de tiempo raíz.

Para precargar archivos SWF y JPEG en instancias de clip de película, se puede utilizar la clase MovieClipLoader. Esta clase proporciona un mecanismo detector de eventos para notificar sobre el estado de las descargas de archivos en clips de película. Para utilizar un objeto MovieClipLoader para precargar archivos SWF y JPEG, debe realizar lo siguiente:

Cree un nuevo objeto MovieClipLoader Puede usar un solo objeto MovieClipLoader para realizar un seguimiento del progreso de descarga de varios archivos o para crear un objeto por separado para el progreso de cada archivo. Cree un nuevo clip de película, cargue el contenido en él y luego cree el objeto MovieClipLoader como se muestre en el código siguiente:

this.createEmptyMovieClip("img_mc", 999);
var my_mcl:MovieClipLoader = new MovieClipLoader();

Cree un objeto detector y cree controladores de eventos El objeto detector puede ser un objeto de ActionScript cualquiera como, por ejemplo, un objeto genérico Object, un clip de película o un componente personalizado.

El ejemplo siguiente crea un objeto detector genérico denominado loadListener y define para sí las funciones onLoadError, onLoadStart, onLoadProgress y onLoadComplete.

// Cree un objeto detector:
var mclListener:Object = new Object();
mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String, status:Number) {
    trace("Error loading image: " + errorCode + " [" + status + "]");
};
mclListener.onLoadStart = function(target_mc:MovieClip):Void {
    trace("onLoadStart: " + target_mc);
};
mclListener.onLoadProgress = function(target_mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number):Void {
    var numPercentLoaded:Number = numBytesLoaded / numBytesTotal * 100;
    trace("onLoadProgress: " + target_mc + " is " + numPercentLoaded + "% loaded");
};
mclListener.onLoadComplete = function(target_mc:MovieClip, status:Number):Void {
    trace("onLoadComplete: " + target_mc);
};

NOTA

 

Flash Player 8 y versiones posteriores permiten comprobar el estado HTTP de una descarga de MovieClipLoader en los detectores de eventos onLoadComplete y onLoadError. Esta capacidad permite comprobar los motivos por los cuales no se cargó el archivo: si se trató de un error del servidor, no se pudo encontrar el archivo, etc.

Registre el objeto detector con el objeto MovieClipLoader Para que el objeto detector reciba los eventos de carga, debe registrarlo con el objeto MovieClipLoader, como se muestra en el siguiente código:

my_mcl.addListener(mclListener);

Inicie la carga del archivo (imagen o SWF) en un clip de destino Para iniciar la descarga de un archivo de imagen o SWF, use el método MovieClipLoader.loadClip(), como se muestra en el siguiente código:

my_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", img_mc);

NOTA

 

Sólo puede usar los métodos MovieClipLoader para realizar un seguimiento del progreso de descarga de los archivos cargados con el método MovieClipLoader.loadClip(). No puede usar la función loadMovie() ni el método MovieClip.loadMovie().

En el ejemplo siguiente se utiliza el método setProgress() del componente ProgressBar para mostrar el progreso de descarga de un archivo SWF. Para más información, consulte Referencia del lenguaje de componentes ActionScript 2.0.

Para visualizar el progreso de la descarga mediante el componente ProgressBar:

  1. Cree un nuevo documento de Flash y guárdelo como progress.fla.
  2. Abra el panel Componentes (Ventana > Componentes).
  3. Arrastre un componente ProgressBar desde el panel Componentes al escenario.
  4. En el inspector de propiedades (Ventana > Propiedades > Propiedades), asigne al componente ProgressBar el nombre my_pb.
  5. Seleccione el fotograma 1 en la línea de tiempo y abra el panel Acciones (Ventana > Acciones).
  6. Añada el código siguiente al panel Acciones:
    var my_pb:mx.controls.ProgressBar;
    my_pb.mode = "manual";
    
    this.createEmptyMovieClip("img_mc", 999);
    
    var my_mcl:MovieClipLoader = new MovieClipLoader();
    var mclListener:Object = new Object();
    mclListener.onLoadStart = function(target_mc:MovieClip):Void {
        my_pb.label = "loading: " + target_mc._name;
    };
    mclListener.onLoadProgress = function(target_mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number):Void {
        var pctLoaded:Number = Math.ceil(100 * (numBytesLoaded / numBytesTotal));
        my_pb.setProgress(numBytesLoaded, numBytesTotal);
    };
    my_mcl.addListener(mclListener);
    my_mcl.loadClip("http://www.helpexamples.com/flash/images/image1.jpg", img_mc);
    
  7. Para probar el documento, seleccione Control > Probar película.

    La imagen se carga en el clip de película img_mc.

  8. Seleccione Archivo > Configuración de publicación > Formatos y asegúrese de que las opciones SWF y HTML están seleccionadas.
  9. Haga clic en Publicar y busque los archivos HTML y SWF en el disco duro.

    Se encuentran en la misma carpeta que progress.fla guardado en el paso 1.

  10. Haga doble clic en el documento HTML para abrirlo en un navegador y observe la animación de la barra de progreso.

    NOTA

     

    Cuando cargue archivos en el entorno de prueba, asegúrese de que carga un archivo sin caché de Internet y no un archivo local si desea ver el funcionamiento de la barra de progreso. Los archivos locales se cargan demasiado rápido, lo que impide ver el progreso. Como alternativa, cargue el archivo SWF y compruebe el documento en un servidor.

Para obtener información relacionada, consulte Carga de archivos SWF y la línea de tiempo raíz. Para más información sobre la clase MovieClipLoader, consulte MovieClipLoader en Referencia del lenguaje ActionScript 2.0. Para obtener información sobre la creación de la animación de una barra de progreso, consulte Creación de una animación de progreso para cargar archivos SWF y de imagen.

Para ver ejemplos de aplicaciones de galerías de fotos, visite la página de ejemplos de Flash en www.adobe.com/go/learn_fl_samples_es. Descargue el archivo zip Samples y vaya a la carpeta ActionScript2.0/Galleries para acceder a los ejemplos.

Estos archivos proporcionan ejemplos de cómo emplear ActionScript para controlar los clips de película dinámicamente mientras se cargan archivos de imagen en un archivo SWF.


Flash CS3

 

Enviarme un mensaje de correo electrónico cuando se añadan comentarios a esta página | Informe de comentarios

Página actual: http://livedocs.adobe.com/flash/9.0_es/main/00001025.html