Kopiera bitmappsdata

Flash Player 9 och senare, Adobe AIR 1.0 och senare

Du kan välja mellan olika metoder för att kopiera bitmappsdata från en bild till en annan: clone() , copyPixels() , copyChannel() , draw() eller drawWithQuality() (metoden drawWithQuality finns i Flash Player 11.3 och senare; AIR 3.3 och senare).

Som namnet anger kan du med metoden clone() klona, eller sampla, bitmappsdata mellan olika BitmapData-objekt. När metoden anropas returneras ett nytt BitmapData-objekt som är en exakt klon av den ursprungliga instans som det kopierats från.

I följande exempel klonas en kopia av en orange (överordnad) fyrkant och klonen placeras bredvid den ursprungliga överordnade fyrkanten:

import flash.display.Bitmap; 
import flash.display.BitmapData; 
 
var myParentSquareBitmap:BitmapData = new BitmapData(100, 100, false, 0x00ff3300); 
var myClonedChild:BitmapData = myParentSquareBitmap.clone(); 
 
var myParentSquareContainer:Bitmap = new Bitmap(myParentSquareBitmap); 
this.addChild(myParentSquareContainer); 
 
var myClonedChildContainer:Bitmap = new Bitmap(myClonedChild); 
this.addChild(myClonedChildContainer); 
myClonedChildContainer.x = 110;

Med metoden copyPixels() kan du snabbt och lätt kopiera pixlar mellan olika BitmapData-objekt. Metoden tar en rektangulär ögonblicksbild (definieras av parametern sourceRect ) av källbilden och kopierar den till ett annat rektangulärt område (av samma storlek). Platsen för den nyligen ”inklistrade” rektangeln definieras i parametern destPoint .

Metoden copyChannel() samplar ett fördefinierat färgkanalsvärde (alfa, röd, grön eller blå) från ett BitmapData-källobjekt och kopierar det till en kanal för ett BitmapData-destinationsobjekt. Anrop till den här metoden påverkar inte de andra kanalerna i destinationsobjektet.

Metoderna draw() och drawWithQuality() ritar (eller återger) det grafiska innehållet från en käll-sprite, ett filmklipp eller något annat visningsobjekt till en ny bitmapp. Om du använder parametrarna matrix , colorTransform , blendMode och destinationsparametern clipRect kan du ändra det sätt som den nya bitmappen återges på. Med den här metoden används vektorrenderaren i Flash Player och AIR för att generera data.

När du anropar draw() eller drawWithQuality() skickar du källobjektet (en sprite, ett filmklipp eller något annat visningsobjekt) som den första parametern, enligt nedanstående:

myBitmap.draw(movieClip);

Om några omformningar (färg, matris o.s.v.) har tillämpats på källobjektet efter att det ursprungligen lästs in, kopieras dessa inte över till det nya objektet. Om du vill kopiera omformningarna till den nya bitmappen måste du kopiera värdet för egenskapen transform från ursprungsobjektet till egenskapen transform för det bitmappsobjekt som använder det nya bitmappsobjektet.