2009-03-31 18 views
15

En Flash, el objeto BitmapData se puede usar para almacenar mapas de bits en la RAM, luego puede dibujarlos en un MovieClip usando el método beginBitmapFill().¿Cómo se carga un archivo de mapa de bits en un objeto BitmapData?

¿Cómo se carga un archivo de mapa de bits externo (.jpg) en un objeto BitmapData?

Incluso el código AS3 sería útil.

+2

Realmente no entiendo por qué tomó su propia respuesta en lugar de la de Cotton. –

+0

Porque quería una solución AS2. Cotton's es AS3. –

Respuesta

41

código AS3 para cargar un PNG y "obtener" su bitmapData

fase de interfaz gráfica de usuario
var bitmapData:BitmapData; 

var loader:Loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
    loader.load(new URLRequest("../lib/img.png")); 

function onComplete (event:Event):void 
{ 
    bitmapData = Bitmap(LoaderInfo(event.target).content).bitmapData; 
} 
+0

Solo una nota. No puede usar un URLLoader para este – Nande

+0

Otra nota. Loader agrega algo de información al mapa de bits, por lo que intenta cambiar algunos atributos como 'name' directamente de' event.target.content'. Pero como OP crea un nuevo mapa de bits es bueno. – Nande

5

Tiene que cargar el archivo externo (.jpg) en un MovieClip y esperar a que se cargue.

A continuación, tome una instantánea del MovieClip que contiene el archivo externo, en su objeto BitmapData.

myBitmap = new BitmapData(myMC._width, myMC._height,true,0x00FFFFFF) 

myBitmap.draw(myMC) 

Ver Introducing the Image API in Flash 8.

1

:
cargar la imagen en la biblioteca (archivo -> importar -> biblioteca).
En el navegador de la biblioteca, haga clic con el botón derecho y pulse "Propiedades", observe que es X por Y píxeles.
Abra la pestaña "avanzada".
Seleccione "Exportar para Action Script". Exportar como MyIMG

fase Actionscript:

import flash.display.BitmapData; 
import flash.display.Bitmap; //needed? 
.......... 
var myPic:BitmapData = new myImg(X,Y); 
9

Refiriéndose a la primera profundidad de algodón.

En realidad cada imagen es un mapa de bits por lo que todo lo que necesita hacer es

bitmapData = event.target.content.bitmapData 

en lugar de

bitmapData = Bitmap(LoaderInfo(event.target).content).bitmapData; 
+0

No, 'LoaderInfo.content' es un DisplayObject. Todos los mapas de bits son DisplayObjects, pero no todos los DisplayObjects son mapas de bits, de ahí el elenco. Al eliminar los moldes, está trabajando en torno a la característica de seguridad tipo del lenguaje ActionScript. – Spookbuster

6

tomando de algodón y la voluntad, esto mostrará el mapa de bits después de cargarse:

import flash.display.Bitmap; 
import flash.display.BitmapData; 

var bitmapData:BitmapData; 
var bmVis:Bitmap; 

var loader:Loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); 
    loader.load(new URLRequest("put url here")); 

function onComplete (event:Event):void 
{ 
    trace("loaded!"); 
    bitmapData = event.target.content.bitmapData; 
    bmVis = new Bitmap(bitmapData); 
    this.addChild(bmVis); 
} 
Cuestiones relacionadas