2009-03-31 17 views
15

In Flash, l'oggetto BitmapData può essere utilizzato per archiviare bitmap nella RAM, quindi è possibile disegnarli in un MovieClip utilizzando il metodo beginBitmapFill().Come si carica un file bitmap in un oggetto BitmapData?

Come si carica un file bitmap esterno (.jpg) in un oggetto BitmapData?

Anche il codice AS3 sarebbe utile.

+2

Non capisco davvero perché hai preso la tua risposta invece di Cotton's. –

+0

Perché volevo una soluzione AS2. Cotton's è AS3. –

risposta

41

codice AS3 per caricare un PNG e "ottenere" la sua bitmapData

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 un appunto. Non è possibile utilizzare un URLLoader per questa – Nande

+0

Un'altra nota. Loader aggiunge alcune informazioni alla bitmap, quindi prova a cambiare alcuni attributi come 'name' direttamente da' event.target.content'. Ma come l'OP che crea una nuova bitmap è buona. – Nande

5

È necessario caricare il file esterno (.jpg) in un MovieClip e attendere che venga caricato.

Quindi acquisire un'istantanea della MovieClip che contiene il file esterno, nel proprio oggetto BitmapData.

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

myBitmap.draw(myMC) 

Vedi Introducing the Image API in Flash 8.

1

fase GUI:
Caricare l'immagine nella libreria (file -> import -> library).
Nel browser della libreria, fare clic con il tasto destro del mouse e selezionare "Proprietà", notare che si tratta di pixel X per Y.
Aprire la scheda "Avanzate".
Selezionare "export per Action Script". Esporta come myImg

Actionscript fase:

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

Facendo riferimento al primo post di cotone.

In realtà ogni immagine è una bitmap in modo tutto quello che dovete fare è

bitmapData = event.target.content.bitmapData 

invece di

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

No, 'LoaderInfo.content' è un oggetto DisplayObject. Tutti i bitmap sono DisplayObjects, ma non tutti DisplayObjects sono bitmap, quindi il cast. Rimuovendo i cast, si sta lavorando attorno alla funzionalità di sicurezza del tipo del linguaggio ActionScript. – Spookbuster

6

prendendo in cotone e sarà, questo visualizzerà il bitmap dopo che è stato caricato:

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); 
}