2009-08-06 54 views
0

Clox回答了my question如何顯示巨大的圖形(如大於8191像素)。在Flex中顯示巨大的可滾動圖形,第2部分:將BitmapData顯示到圖像中?

我有代碼將龐大的加載BitmapData的部分複製到一個目標BitmapData,只是我可以顯示的大小。

我想我已經設置了封閉畫布的滾動條來顯示較大圖像的大小,並允許用戶滾動。

現在我需要把選定的像素放在屏幕上。當我嘗試將一個位圖組件添加爲Canvas的子項時,它會得到一個錯誤,因爲Bitmap不是一個UIComponent。

什麼是將目標BitmapData放入Image組件的最佳方法?

我還可以如何獲得屏幕上的像素子集?

回答

1

要顯示BitmapData對象,請使用Bitmap類。然後,您可以將位圖設置爲圖像的來源。

var imageBmp:Bitmap = new Bitmap(myBitmapData); 
var displayImage:Image = new Image(); 
displayImage.source = imageBmp; 
myCanvas.addChild(displayImage); 

您也可以借鑑的位圖數據的像素直接到使用beginBitmapFill畫布的Graphics對象。

var g:Graphics = myCanvas.graphics; 
g.beginBitmapFill(myBitmapData); 
g.drawRect(0, 0, myBitmapData.width, myBitmapData.height);