2012-04-19 16 views
5

necesito usar el GetPixel32 en un objeto en un clip de película.Rastreo de mapa de bits de AS3 como "[forma de objeto]"/error o función, volviendo loco

con el fin de llegar a ese objeto i uso:

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

sin embargo, a pesar de que la ChildObject es un png consigo un error y el uso de

trace(clip.getChildAt(0)); 

trazas "[forma del objeto]"

¿Flash convierte ciertos mapas de bits en formas?

Consulte este fla (http://www.sendspace.com/file/uycmm5) para probarlo usted mismo.

¿Alguna idea?

+2

Parece que 'clip.getChildAt (0)' es simplemente * no * es un 'Bitmap'. Si dice 'Shape' es' Shape', ¿qué puedo decir? Muestre el código donde está agregando a sus hijos al 'clip' más o menos. – Torious

+0

Para agregar a Torious, mapa de bits var: Bitmap = clip.getChildAt (0) como mapa de bits; si el mapa de bits es nulo aquí, entonces definitivamente no es un mapa de bits. –

+0

@Torious: compruebe el fla. el objeto ES un mapa de bits. los niños (también conocidos como la imagen png) no se agregan a través del código, simplemente se encuentran en un marco. – zantafio

Respuesta

10

mapas de bits colocados en la línea de tiempo de Flash se convierten en formas (con bitmapfill) en la compilación, (ACTUALIZACIÓN) menos que la imagen en la biblioteca tiene un nombre de vinculación, en cuyo caso funciona como se esperaba y se compila en un mapa de bits objeto.

sin embargo, puede dibujar un nuevo mapa de bits con que se forma:

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

¿Pero eso no parece ser el caso siempre? En otro clip con png diferente, el mapa de bits se identifica correctamente como [bitmap de objeto] ...! Bitmap.draw no es factible en mi caso (demasiado hambriento de rendimiento). – zantafio

+0

@cay ¿tiene alguna referencia para respaldar su declaración inicial? –

+0

No, en realidad no tengo ninguna referencia para respaldar esto ... es solo mi experiencia: nunca he encontrado que una imagen colocada en la línea de tiempo de Flash IDE se compile en un objeto de mapa de bits. @blofeld ¿podrías verificarlo? y tal vez publicar algunos pasos para reproducirlo? (o publique el fla) – Cay

Cuestiones relacionadas