在Flex中显示巨大的可滚动图形,第2部分:BitmapData到图像中?

时间:2009-08-06 19:10:57

标签: flex actionscript-3

Clox回答my question如何显示巨大的图形(例如大于8191像素)。

我有代码将一个巨大的加载BitmapData的部分复制到目标BitmapData,它只是我可以显示的大小。

我想我已经设置了封闭画布的滚动条来显示较大图像的大小并允许用户滚动。

现在我需要将选定的像素放在屏幕上。当我尝试将Bitmap组件添加为Canvas的子项时,它会出错,因为Bitmap不是UIComponent。

将目标BitmapData放入Image组件的最佳方法是什么?

如何才能在屏幕上获得像素子集?

1 个答案:

答案 0 :(得分:1)

要显示BitmapData对象,请使用Bitmap类。然后,您可以将位图设置为图像的来源。

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

您还可以使用Graphics将位图数据的像素直接绘制到Canvas的beginBitmapFill对象上。

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