Flex Image控件画图问题

来源:百度知道 编辑:UC知道 时间:2024/04/28 22:53:06
用Flex的Image控件载入一个BMP图片后,为什么无法在该Image控件上绘制图形?如何修改,请各位高手解答!
代码大体如下:

定义控件:
<mx:Image id = “MyImage”...>
...

在Script里面实现如下代码:
MyImage.source = 指定的bmd数据...;

然后用MyImage.graphic.drawRect(...)后无法看到我画的矩形

小弟想用Flex实现Photoshop的大致功能,还有诸多问题不懂,诸如选区操作等,如若有高手相救,可联系274356762@qq.com!感激不尽,谢谢!

问题解决后,可追加高分!!
感谢楼下的回答!不加载图像时确实可以正确绘制图形,但绘制的图形不能用bimapdata来获取,我也用了Canvas来存放图形,但是只是在鼠标拖动过程中临时存放的(为实现拖放效果),难道不能在Image上绘制图形而且在用选区选定该区域后,用Bitmapdata来获取该图像以及图形吗?怎么实现呢?

例如:用矩形选区选定某区域,使该区域内的图形以及图像都可以进行移动,变换操作等。我现在用bitmapdata实现了对该选区的图像进行操作,而Image上的图形无法获取。

drawRect是在对象背景上进行矩形绘画的,而Image对象在加载图像后会产生一个对象容器来存放的这个图像,所以会把背景的矩形给遮住了。根据我的理解是这样的。你可以试一下在不加载图像的时候进行绘画矩形来证明是不是这个问题。
如果你要实现PhotoShop那样的功能,我建议你所绘画的图形应该建立一个对象来专门存放(如用Canvas),并且深度级要大于Image,这样才能现实出来。

我自己试了一下,做了一个Demo的程序可以实现连图形一起裁剪出来,希望对你有所帮助。麻烦你说一下你的邮箱,我给你发过去。

可以做一个组合控件啊,在图片上层方一个画图的容器,背景透明,然后想画什么就花什么