Carga de contenido

Un archivo SWF puede cargar los siguientes tipos de contenido:

Subtemas

Carga de archivos SWF e imágenes
Carga de sonido y vídeos
Carga de archivos SWF e imágenes mediante la etiqueta <img> de un campo de texto
Contenido proporcionado a través de servidores RTMP

Carga de archivos SWF e imágenes

La clase Loader se utiliza para cargar archivos SWF e imágenes (archivos JPG, GIF o PNG). Cualquier archivo SWF que no se encuentre en el entorno limitado local con sistema de archivos puede cargar archivos SWF e imágenes desde cualquier dominio de red. Sólo los archivos SWF de entornos limitados locales pueden cargar archivos SWF e imágenes del sistema de archivos local. Sin embargo, los archivos del entorno limitado local con acceso a la red sólo pueden cargar archivos SWF que se encuentren en el entorno limitado local de confianza o en el entorno limitado local con acceso a la red. Los archivos SWF del entorno limitado local con acceso a la red cargan contenido local que no sean archivos SWF (por ejemplo, imágenes), pero no pueden acceder a los datos del contenido cargado.

Al cargar un archivo SWF de un origen que no es de confianza (por ejemplo, un dominio distinto al del archivo SWF raíz del objeto Loader), es aconsejable definir una máscara para el objeto Loader para evitar que el contenido cargado (que es un elemento secundario del objeto Loader) se dibuje en partes del escenario situadas fuera de la máscara, como se muestra en el siguiente código:

import flash.display.*;
import flash.net.URLRequest;
var rect:Shape = new Shape();
rect.graphics.beginFill(0xFFFFFF);
rect.graphics.drawRect(0, 0, 100, 100);
addChild(rect);
var ldr:Loader = new Loader();
ldr.mask = rect;
var url:String = "http://www.unknown.example.com/content.swf";
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq);
addChild(ldr);

Cuando se llama al método load() del objeto Loader, se puede especificar un parámetro context, que es un objeto LoaderContext. La clase LoaderContext incluye tres propiedades que permiten definir el contexto de uso del contenido cargado:

Para ver más detalles, consulte Especificación del contexto de carga.

Una propiedad importante de un objeto Loader es contentLoaderInfo, que es un objeto LoaderInfo. A diferencia de lo que ocurre con la mayoría de los objetos, un objeto LoaderInfo se comparte entre el archivo SWF que realiza la carga y el contenido cargado, y siempre es accesible para ambas partes. Cuando el contenido cargado es un archivo SWF, éste puede acceder al objeto LoaderInfo a través de la propiedad DisplayObject.loaderInfo. Los objetos LoaderInfo contienen información como el progreso de carga, los URL del cargador y del contenido cargado, o la relación de confianza entre ambos. Para más información, consulte Supervisión del progreso de carga.

Carga de sonido y vídeos

Cualquier archivo SWF que no se encuentre en el entorno limitado local con sistema de archivos puede cargar sonido y vídeo de orígenes de red, a través de los métodos Sound.load(), NetConnection.connect() y NetStream.play().

Sólo los archivos SWF locales pueden cargar medios del sistema de archivos local. Sólo los archivos SWF que se encuentren en el entorno limitado local con sistema de archivos o el entorno limitado local de confianza pueden acceder a los datos de estos archivos cargados.

Hay otras restricciones relativas al acceso de datos desde medios cargados. Para ver más detalles, consulte Acceso a medios cargados como datos.

Carga de archivos SWF e imágenes mediante la etiqueta <img> de un campo de texto

Puede cargar archivos SWF y mapas de bits en un campo de texto mediante la etiqueta <img>, como se muestra en el código siguiente:

<img src = 'filename.jpg' id = 'instanceName' >

Para acceder al contenido cargado de este modo, puede utilizar el método getImageReference() de la instancia de TextField, como se muestra en el código siguiente:

var loadedObject:DisplayObject = myTextField.getImageReference('instanceName');

Sin embargo, tenga en cuenta que los archivos SWF e imágenes que se cargan de este modo se incluyen en el entorno limitado correspondiente a su origen.

Si se carga un archivo de imagen mediante una etiqueta <img> en un campo de texto, puede ser que haya un archivo de política entre dominios que permita el acceso a datos de la imagen. Para comprobar si hay un archivo de política, añada un atributo checkPolicyFile a la etiqueta <img>, como se muestra en el código siguiente:

<img src = 'filename.jpg' checkPolicyFile = 'true' id = 'instanceName' >

Si carga un archivo SWF mediante una etiqueta <img> en un campo de texto, puede permitir el acceso a los datos de dicho archivo SWF a través de una llamada al método Security.allowDomain().

Si utiliza una etiqueta <img> en un campo de texto para cargar un archivo externo (en lugar de usar una clase Bitmap incorporada en el archivo SWF), se crea automáticamente un objeto Loader como elemento secundario del objeto TextField y el archivo externo se carga en dicho objeto Loader, tal y como sucedería si hubiera utilizado un objeto Loader en ActionScript para cargar el archivo. En este caso, el método getImageReference() devuelve el objeto Loader que se creó automáticamente. No es necesario realizar ninguna comprobación de seguridad para acceder a este objeto Loader porque se encuentra en el mismo entorno limitado de seguridad que el código que realiza la llamada.

Sin embargo, si se hace referencia a la propiedad content del objeto Loader para acceder al medio cargado, sí es preciso aplicar las reglas de seguridad. Si el contenido es una imagen, deberá implementar un archivo de política entre dominios y, si es un archivo SWF, deberá hacer que el código del archivo SWF llame al método allowDomain().

Contenido proporcionado a través de servidores RTMP

Flash Media Server utiliza el protocolo RTMP (Real-Time Media Protocol) para proporcionar datos, audio y vídeo. Un archivo SWF carga estos medios mediante el método connect() de la clase NetConnection y pasa un URL RTMP como parámetro. Flash Media Server puede restringir las conexiones y evitar la descarga del contenido, en función del dominio del archivo que realiza la solicitud. Para ver más detalles, consulte la documentación de Flash Media Server.

En medios cargados de orígenes RTMP, no se pueden utilizar los métodos BitmapData.draw() y SoundMixer.computeSpectrum() para extraer datos de sonido y gráficos de tiempo de ejecución.


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/00000353.html