如何检测画布边框上的点击,而不是其内容?在Flex中

时间:2011-08-29 18:32:31

标签: flash flex actionscript-3 flex-builder-3

如何检测画布边框上的点击,而不是其内容?

我知道我可以验证范围event.mouseX(Y),但是我的画布有圆角,在某些情况下看起来像是一个圆圈,有没有办法知道画布的边框是否在指针下面?

我有:

Canvas.setStyle ("borderColor", 0xFF0000);
Canvas.setStyle ("borderStyle", "solid");
Canvas.setStyle ("BorderThickness", 10);

3 个答案:

答案 0 :(得分:0)

以10px的厚度判断,如果用户点击边框或画布,真正的问题是什么?您是否在单击画布时调用了事件侦听器?如果是这样,也许您应该优化这些侦听器以调整从画布内容调度的事件而不是画布本身。

答案 1 :(得分:0)

我对这个特定主题不是很了解,但您是否想过设置某种选择机制?

您可以拥有一个永远不会显示的图形缓冲区,但可以将所有内容绘制到。你想要区分的每件事都用不同的颜色画出来。这样,对于任何鼠标事件,您都可以找出鼠标所在的位置,包括将以其自己的颜色绘制的边框,并将相应的事件传递给该对象。

如果您找不到任何其他方法,可能只是作为最后的手段有用。

答案 2 :(得分:0)

使用实际内容制作一张比前面10px大的画布怎么样?然后那个后面的画布注册了一个点击而前面的那个没有你的实际内容。