在as3中很多时候需要只能选中png中可视区域,即透明区域“感觉可以穿透”。两张png重叠的时候,鼠标可以分别响应它们的事件。如下图所示:
在网上搜索的时候,看到有人没用其它额外的类,自己写了一个例子。地址在这里:http://www.shch8.com/blog/post/71.html 有demo可以下载(例子需要使用flash cs4+才能打开)
比较巧妙的是这一段核心代码:
if (bitmapData.getPixel32(i,j))
{
png_mc.graphics.drawRect(i,j,1,1);
}
}
}
png_mc.graphics.endFill();
png_mc.removeChildAt(0);
{
png_mc.graphics.drawRect(i,j,1,1);
}
}
}
png_mc.graphics.endFill();
png_mc.removeChildAt(0);
可以看出它是对图片使用循环,取它的每一个像素然后进行判断(我觉得对于大的图片效率可能存在问题---猜测~)
而国外很早以前就有现成的类了“InteractivePNG”,文档在这里:http://www.mosessupposes.com/utilities/InteractivePNG.html 示例和类的下载地址:http://www.mosessupposes.com/utilities/
自己用flex简单的写了一个demo:
>