
            Verwenden Sie zum Zeichnen von Pixeln die
            
             setVector()
            
            -Methode.
           
 
           
            Beim Zeichnen von Pixeln lassen sich einige einfache Optimierungen erzielen, indem die geeigneten Methoden der BitmapData-Klasse verwendet werden. Eine schnelle Möglichkeit, Pixel zu zeichnen, ist die Verwendung der
            
             setVector()
            
            -Methode:
           
           // Image dimensions 
var wdth:int = 200; 
var hght:int = 200; 
var total:int = wdth*hght; 
  
// Pixel colors Vector 
var pixels:Vector.<uint> = new Vector.<uint>(total, true); 
  
for ( var i:int = 0; i< total; i++ ) 
{ 
    // Store the color of each pixel 
    pixels[i] = Math.random()*0xFFFFFF; 
} 
  
// Create a non-transparent BitmapData object 
var myImage:BitmapData = new BitmapData ( wdth, hght, false ); 
var imageContainer:Bitmap = new Bitmap ( myImage ); 
  
// Paint the pixels 
myImage.setVector ( myImage.rect, pixels ); 
addChild ( imageContainer );
           
            Bei langsamen Methoden, wie
            
             setPixel()
            
            oder
            
             setPixel32()
            
            , sollten Sie die Methoden
            
             lock()
            
            und
            
             unlock()
            
            verwenden, um die Ausführung zu beschleunigen. Im folgenden Code werden die Methoden
            
             lock()
            
            und
            
             unlock()
            
            verwendet, um die Leistung zu erhöhen:
           
           var buffer:BitmapData = new BitmapData(200,200,true,0xFFFFFFFF); 
var bitmapContainer:Bitmap = new Bitmap(buffer); 
var positionX:int; 
var positionY:int; 
  
// Lock update 
buffer.lock(); 
var starting:Number=getTimer(); 
  
for (var i:int = 0; i<2000000; i++) 
{ 
    // Random positions 
    positionX = Math.random()*200; 
    positionY = Math.random()*200; 
    // 40% transparent pixels 
    buffer.setPixel32( positionX, positionY, 0x66990000 ); 
} 
  
// Unlock update 
buffer.unlock(); 
addChild( bitmapContainer ); 
  
trace( getTimer () - starting ); 
// output : 670
           
            Die
            
             lock()
            
            -Methode der BitmapData-Klasse sperrt ein Bild und verhindert, dass Objekte, die auf das Bild verweisen, bei einer Änderung des BitmapData-Objekts aktualisiert werden. Wenn beispielsweise ein Bitmap-Objekt auf ein BitmapData-Objekt verweist, können Sie das BitmapData-Objekt sperren, ändern und dann wieder entsperren. Das Bitmap-Objekt wird erst geändert, nachdem das BitmapData-Objekt entsperrt wurde. Um die Leistung zu verbessern, verwenden Sie diese Methode zusammen mit der
            
             unlock()
            
            -Methode vor und nach mehreren Aufrufen der Methode
            
             setPixel()
            
            oder
            
             setPixel32()
            
            . Durch Aufrufen der Methoden
            
             lock()
            
            und
            
             unlock()
            
            werden unnötige Aktualisierungen des Bildschirms vermieden.
           
           
            
             Hinweis:
            
            Bei der Verarbeitung von Pixeln in einer Bitmap, die sich nicht in der Anzeigeliste befindet (doppelte Pufferung), führt diese Technik nicht in allen Fällen zu Leistungssteigerungen. Wenn ein Bitmap-Objekt nicht auf den Bitmap-Puffer verweist, bewirkt die Verwendung von
            
             lock()
            
            und
            
             unlock()
            
            keine höhere Leistung. Flash Player erkennt, dass nicht auf den Puffer verwiesen wird, und die Bitmap wird nicht auf dem Bildschirm gerendert.
           
           
            Methoden, die iterativ über Pixel ausgeführt werden, wie beispielsweise
            
             getPixel()
            
            ,
            
             getPixel32()
            
            ,
            
             setPixel()
            
            und
            
             setPixel32()
            
            , sind normalerweise langsam, besonders auf Mobilgeräten. Verwenden Sie nach Möglichkeit Methoden, die alle Pixel in einem Aufruf abrufen. Verwenden Sie zum Lesen von Pixeln die
            
             getVector()
            
            -Methode, die schneller als die
            
             getPixels()
            
            -Methode ist. Verwenden Sie nach Möglichkeit auch APIs, die sich auf Vector-Objekte stützen, da sie in aller Regel schneller ausgeführt werden.