我有一个包含位图的动画片段,但我不想增加点击区域。我知道我可以在其后添加透明形状,但这将通过ios进行空中编译,并且我不想引起不必要的重绘。
有没有一种方法可以将矩形定义为点击区域或其他解决方案?
最佳答案
为此有一个特殊的hitArea字段。
const MOUSE_ZONE_SIZE:Number = 10;
const hitArea:Sprite = new Sprite()
hitArea.graphics.beginFill( 0xFFFFFF );
hitArea.graphics.drawRect( -MOUSE_ZONE_SIZE, -MOUSE_ZONE_SIZE, MOUSE_ZONE_SIZE* 2, MOUSE_ZONE_SIZE* 2 );
hitArea.mouseEnabled = false;
hitArea.visible = false;
hitArea.x = bitmap.x
hitArea.y = bitmap.y
bitmap.hitArea = hitArea;
addChild( bitmap );
addChild( hitArea );
不幸的是,即使您重写了InteractiveObject的hitTest *函数,也不会将它们用于鼠标事件的调度:(如果有人知道如何强制Flash使用重写的方法-我也想知道。
关于flash - AS3 : defining hit area,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7728245/