Documentación de Flash CS3 |
|||
| Aprendizaje de ActionScript 2.0 en Adobe Flash > Utilización de imágenes, sonido y vídeo > 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 |
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.
my_pb.
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);
La imagen se carga en el clip de película img_mc.
Se encuentran en la misma carpeta que progress.fla guardado en el paso 1.
|
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