2009-07-15 7 views

Antwort

7

BitmapData-Objekte können nicht direkt zum Bildschirm hinzugefügt werden, da sie keine Nachkommen von DisplayObject sind. Wenn Sie den Inhalt eines BitmapData-Objekts anzeigen möchten, müssen Sie eine Bitmap und die Eigenschaft bitmapData verwenden. Wenn Sie Flex verwenden, müssen Sie sicherstellen, dass Sie die Bitmap in eine Instanz von UIComponent oder einer seiner Unterklassen platzieren. Andernfalls, wenn Sie nur AS3 in Flash verwenden, wird dies Folgendes tun:

package 
{ 
    import flash.display.Bitmap; 
    import flash.display.BitmapData; 
    import flash.display.Sprite; 
    import flash.geom.Point; 

    public class BitmapDataExample extends Sprite 
    { 
     public function BitmapDataExample() 
     { 
      super(); 

      var canvasSize:uint = 100; 
      var size:uint = 5; 
      var bd:BitmapData = new BitmapData (canvasSize, canvasSize, false, 0x000000); 

      var bmp:Bitmap = new Bitmap (bd); 
      addChild(bmp); 

      // everything from this point on is just drawing junk into the BitmapData object 
      var p:Point = new Point (0, 0); 
      for (var y = 0; y < canvasSize; y++) 
      { 
       p.y = y; 

       for (var x = 0; x < canvasSize; x++) 
       { 
        p.x = x; 

        if (p.x % size == p.y % size) 
         bd.setPixel(p.x, p.y, 0x00FF00); 
       } 
      } 
     } 

    } 
} 
5

Hier ist ein Beispiel für eine AIR-Anwendung zusammen geworfen einen Weg zu zeigen, es zu tun, vorausgesetzt, ich die Frage richtig verstanden habe:

<?xml version="1.0" encoding="utf-8"?> 
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()"> 

    <mx:Script> 
     <![CDATA[ 

      import mx.core.UIComponent; 

      private function onCreationComplete():void 
      { 
       // Some sample bitmap data 
       var bmpd:BitmapData = new BitmapData(50, 50, false, 0xFF0000); 

       // Create a new bitmap, created from the data 
       var bmp:Bitmap = new Bitmap(bmpd); 

       // Wrap the bitmap in UIComponent 
       var uic:UIComponent = new UIComponent(); 
       uic.addChild(bmp); 

       // Add your UIComponent to the display list 
       addChild(uic); 
      } 

     ]]> 
    </mx:Script> 

</mx:WindowedApplication> 

Wesentlichen, was Sie wissen müssen, ist, dass Ihr BitmapData- muss zuerst in ein Bitmap-Objekt eingeschlossen werden und dass das resultierende Bitmap-Objekt ein DisplayObject ist, bevor es der Anzeigeliste hinzugefügt werden kann, muss es in eine UIComponent-Instanz eingebettet werden.

Das ist ein Weg, aber wieder, es hängt weitgehend davon ab, was Sie gerade tun wollen, wenn dies in Ihrem Fall nicht ganz zutrifft, zögern Sie nicht, zurück zu schreiben und ich werde mich entsprechend anpassen. Ich hoffe es hilft!

Verwandte Themen