2012-04-19 26 views
5

tôi cần phải sử dụng GetPixel32 trên một đối tượng trong một movieclip.AS3 Theo dõi Bitmap là "[đối tượng Shape]"/Lỗi hoặc tính năng, đi loco

để có được để đối tượng mà tôi sử dụng:

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

Tuy nhiên, mặc dù childobject là một png tôi nhận được một lỗi và sử dụng

trace(clip.getChildAt(0)); 

dấu vết "[đối tượng Shape]"

do đó Flash chuyển đổi các bitmap nhất định thành các hình dạng?

vui lòng xem fla này (http://www.sendspace.com/file/uycmm5) để tự mình kiểm tra.

Bất kỳ ý tưởng nào?

+2

Trông như 'clip.getChildAt (0)' chỉ đơn giản là * không * a 'Bitmap'. Nếu nó nói 'Hình dạng' đó là 'Hình dạng', tôi có thể nói gì? Hiển thị mã nơi bạn đang thêm con của bạn vào 'clip' hoặc hơn. – Torious

+0

Để thêm vào Torious, var bitmap: Bitmap = clip.getChildAt (0) làm Bitmap; nếu bitmap là null ở đây thì nó chắc chắn không phải là một bitmap. –

+0

@Torious: vui lòng kiểm tra fla. đối tượng IS là một bitmap. trẻ em (còn gọi là hình ảnh png) không được thêm vào thông qua mã, chỉ nằm trong một khung. – zantafio

Trả lời

10

Bitmaps đặt trong timeline của Flash được chuyển đổi thành hình dạng (với bitmapfill) về việc lập, (CẬP NHẬT) trừ khi hình ảnh trong thư viện có một cái tên liên kết, trong trường hợp này nó hoạt động như mong đợi và biên dịch cho một Bitmap vật.

Bạn tuy nhiên có thể rút ra một bitmap mới với hình dạng:

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

Nhưng điều đó dường như không phải như vậy? Trong một clip khác với png khác, Bitmap được xác định chính xác là [đối tượng Bitmap] ...! Bitmap.draw không khả thi trong trường hợp của tôi (quá hiệu suất đói). – zantafio

+0

@ có phải bạn có một số tham chiếu để sao lưu câu lệnh ban đầu của mình không? –

+0

Không, thực sự tôi không có tham chiếu đến việc này ... chỉ là kinh nghiệm của tôi: Tôi chưa bao giờ thấy rằng một hình ảnh được đặt trong thời gian của Flash IDE biên dịch thành một đối tượng bitmap. @ blofeld bạn có thể kiểm tra lại điều đó không? và có thể đăng một số bước để tái tạo nó? (hoặc gửi fla) – Cay

Các vấn đề liên quan