2012-04-19 5 views
5

Ho bisogno di usare GetPixel32 su un oggetto in un Movie Clip.AS3 Traccia bitmap come "[forma oggetto]"/Bug o funzionalità, vai loco

per arrivare a tale oggetto io uso:

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

Tuttavia, anche se la ChildObject è un png ottengo un errore e utilizzando

trace(clip.getChildAt(0)); 

tracce "[Forma oggetto]"

così Flash converte alcune bitmap in forme?

si prega di vedere questo fla (http://www.sendspace.com/file/uycmm5) per testarlo da soli.

Qualche idea?

+2

Sembra 'clip.getChildAt (0)' è semplicemente * non * un 'Bitmap'. Se dice 'Shape' è un' Shape', cosa posso dire? Mostra il codice in cui stai aggiungendo i tuoi figli a 'clip' o così. – Torious

+0

Per aggiungere a Torious, var bitmap: Bitmap = clip.getChildAt (0) come Bitmap; se bitmap è null qui, quindi non è sicuramente un bitmap. –

+0

@Torious: per favore controlla il fla l'oggetto È una bitmap. i bambini (ovvero l'immagine png) non vengono aggiunti via codice, si trovano solo in una cornice. – zantafio

risposta

10

bitmap disposti in linea temporale di Flash vengono convertiti in forme (con bitmapfill) su compilation, (UPDATE) meno che l'immagine nella libreria ha un nome di collegamento, nel qual caso funziona come previsto e compila a una bitmap oggetto.

È possibile comunque tracciare una nuova bitmap con quella 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

Ma quello non sembra essere il caso sempre? In un'altra clip con un diverso png la Bitmap viene identificata correttamente come [oggetto Bitmap] ...! Bitmap.draw non è fattibile nel mio caso (troppo affamato di prestazioni). – zantafio

+0

@ cay hai qualche riferimento per eseguire il backup della tua dichiarazione iniziale? –

+0

No, in realtà non ho alcun riferimento per eseguire il backup ... è solo la mia esperienza: non ho mai trovato che un'immagine inserita nella timeline di Flash IDE venga compilata su un oggetto bitmap. @blofeld potresti ricontrollare questo? e magari postare alcuni passaggi per riprodurlo? (o postare il fla) – Cay