rid*_*rid 2 flash actionscript actionscript-3
我有一个Flash项目,必须显示大量不规则形状的位图(大约10000),我想知道鼠标当前的位图.如果鼠标位于位图的透明部分上,则不应将其视为鼠标悬停.
一种方法是计算命中区域,然后用Sprite包含位图的另一个位图替换每个位图,用计算的命中区域替换另一个位图Sprite,然后设置hitArea属性.但这非常低效,结果完全无法使用.
最有效的方法是什么?
在容器上试试这个:
var hits:Array = getObjectsUnderPoint(new Point(mouseX, mouseY));
if(hits.length > 0)
{
var bitmap:Bitmap = hits[0] as Bitmap;
var color:uint = bitmap.bitmapData.getPixel32(bitmap.mouseX, bitmap.mouseY);
if(color >>> 24 > 0)
{
trace('hit: '+bitmap);
}
}
Run Code Online (Sandbox Code Playgroud)
如果位图重叠,则迭代hits.您还可以设置透明度的阈值.
| 归档时间: |
|
| 查看次数: |
978 次 |
| 最近记录: |