El método
Loader.loadBytes()
proporciona un modo para que una aplicación genere contenido SWF desde un conjunto de bytes. Sin embargo, los ataques a los datos cargados desde orígenes remotos podrían causar un daño serio cuando se carga el contenido. Esto es cierto cuando se cargan datos en el entorno limitado de la aplicación, donde el contenido SWF generado puede acceder al conjunto entero de las API de AIR.
Existen usos legítimos para la utilización del método
loadBytes()
sin generar código SWF ejecutable. Por ejemplo, se puede usar el método
loadBytes()
para generar datos de imagen para controlar la coordinación de la visualización de la imagen. Asimismo, existen usos legítimos que
si
utilizan la ejecución del código, como la creación dinámica de contenido SWF para reproducción de audio. En AIR, de forma predeterminada, el método
loadBytes()
no
permite cargar el contenido SWF; solo permite cargar contenido de imágenes. En AIR, la propiedad
loaderContext
del método
loadBytes()
tiene una propiedad
allowLoadBytesCodeExecution
, que se puede definir en
true
para permitir explícitamente que la aplicación use
loadBytes()
para cargar contenido SWF ejecutable. El siguiente código muestra la manera de usar esta función:
var loader:Loader = new Loader();
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.allowLoadBytesCodeExecution = true;
loader.loadBytes(bytes, loaderContext);
Si se llama a
loadBytes()
para cargar el contenido SWF y la propiedad
allowLoadBytesCodeExecution
del objeto LoaderContext está definida en
false
(el valor predeterminado), el objeto Loader emite una excepción SecurityError.
Nota:
es posible que esta API cambie en una futura versión de Adobe AIR. Cuando ocurra, tal vez tenga que recompilar el contenido que usa la propiedad
allowLoadBytesCodeExecution
de la clase LoaderContext.