如何在Flex中实现透明橡皮擦工具?

时间:2010-12-29 13:33:27

标签: flex

如何在Flex中实现橡皮擦,以便在mx:Image上擦除时,它会使区域透明?

4 个答案:

答案 0 :(得分:2)

        protected function myImage_completeHandler(event:Event):void
        {
            // TODO Auto-generated method stub
            trace("file loaded");
            var tempBdData:BitmapData = new BitmapData(myImage.contentWidth,myImage.contentHeight,true);
            tempBdData.draw(myImage);
            (myImage.content as Bitmap).bitmapData = tempBdData;
        }

    ]]>
</mx:Script>
<mx:Image
    id="myImage"
    source="http://www.google.com/images/logos/ps_logo2.png"
    complete="myImage_completeHandler(event)"
    mouseDown="(myImage.content as Bitmap).bitmapData.setPixel32(event.localX,event.localY,0x00000000)"/>

答案 1 :(得分:1)

也许您可以尝试在BitmapData对象中绘制图像,然后使用函数setPixel32:

示例:

setPixel32 (coordX, coordY, 0x60FF0000);

其中0x60FF0000是:

  • 60(alpha)
  • FF(红色)
  • 00(绿色)
  • 00(蓝色)

答案 2 :(得分:1)

从我见过的大多数擦除功能来看,不是很多我会承认的,它不会变成透明的东西,(改变alpha),而是用背景颜色绘制。

YMMV

答案 3 :(得分:0)

我的方法是将黑色蒙版图像添加到图像组件(通过“蒙版”属性),这对图像最初没有影响,然后在用户单击/拖动的任何地方将白色涂成蒙版图像在图像内。希望有所帮助。