2012-04-19 1 views
5

Ich muss die GetPixel32 auf ein Objekt in einem Movieclip verwenden.AS3 Traces Bitmap als "[Objekt Shape]"/Bug oder Feature, gehen Lok

, um das Objekt zu erhalten i verwenden:

var bitmap=clip.getChildAt(0); 
//and then 
bitmap.bitmapData.getPixel32(x, y); 

jedoch, obwohl die Childobject ein png ich eine Fehlermeldung erhalten, ist und mit

trace(clip.getChildAt(0)); 

Spuren "[object Shape]"

Konvertiert Flash auch bestimmte Bitmaps in Formen?

Bitte lesen Sie diese fla (http://www.sendspace.com/file/uycmm5), um es selbst zu testen.

Irgendwelche Ideen?

+2

Sieht aus wie 'clip.getChildAt (0)' einfach ist * nicht * a 'Bitmap'. Wenn es 'Shape' sagt, ist es eine' Shape', was soll ich sagen? Zeigen Sie den Code, in dem Sie Ihre untergeordneten Elemente zu 'clip' hinzufügen. – Torious

+0

Um Torious hinzuzufügen, var bitmap: Bitmap = clip.getChildAt (0) als Bitmap; Wenn Bitmap hier null ist, dann ist es definitiv keine Bitmap. –

+0

@Torious: Bitte überprüfen Sie die Fla. Das Objekt ist eine Bitmap. Die Kinder (aka das Png-Bild) sind nicht per Code hinzugefügt, nur in einem Rahmen liegen. – zantafio

Antwort

10

Bitmaps in Flash Zeitleiste platziert werden, um Formen (mit BitmapFill) umgewandelt auf Kompilation, (UPDATE) es sei denn, das Bild in der Bibliothek eine Verknüpfung Namen hat, in diesem Fall ist es wie erwartet funktioniert und kompiliert zu einem Bitmap Objekt.

Sie können jedoch ein neues Bitmap mit dieser Form zeichnen:

var shape:DisplayObject = clip.getChildAt(0); 
var bmp:BitmapData = new BitmapData(shape.width, shape.height, true, 0); 
bmp.draw(shape); 
bmp.getPixel32(x, y); 
+0

Aber das scheint nicht immer der Fall zu sein? In einem anderen Clip mit einem anderen Png wird die Bitmap korrekt als [Objekt Bitmap] ... erkannt! Die Bitmap.draw ist in meinem Fall nicht durchführbar (zu leistungshungrig). – zantafio

+0

@cay Haben Sie Referenzen, um Ihre erste Aussage zu sichern? –

+0

Nein, eigentlich habe ich keinen Hinweis darauf, dies zu bestätigen ... es ist nur meine Erfahrung: Ich habe noch nie herausgefunden, dass ein in der Flash-IDE-Timeline platziertes Bild zu einem Bitmap-Objekt kompiliert wird. @blofeld Könntest du das mal überprüfen? und vielleicht ein paar Schritte, um es zu reproduzieren? (oder poste die fla) – Cay