每当鼠标在 spark.primitive.path
之上执行某些操作时,我都会 try catch 鼠标事件。 (下面的“L”形)。
我读过的所有内容都表明我需要将路径放在 Group
中对象并将鼠标处理程序附加到该对象上。所以代码看起来像这样..
<s:Group left="10" right="10" top="10" bottom="10" mouseOver="...">
<s:Path data="M 100 300 L 200 50 L 275 50 L 250 150 L 300 150 L 300 300 Z">
<s:stroke>
<s:SolidColorStroke color="0x888888"/>
</s:stroke>
</s:Path>
</s:Group>
...并在屏幕上产生这样的东西(请原谅 ascii 艺术)
_____________________________
| |
| _______ |
| / / |
| / / |
| / / |
| / /_____ |
| / | |
| / | |
| /______________| |
| |
-----------------------------
这几乎有效。问题是鼠标事件是基于 Group 对象的维度而不是 Path 来触发的。因此,如果您将鼠标悬停在仍会触发鼠标事件的路径左侧,因为 Group 是一个从 0,0 开始并在“L”右下角结束的框。
非常感谢有关我如何解决此问题(或替代解决方案)的任何想法。
最佳答案
如果您使用 SkinnableContainer 而不是 Group,您将获得您正在寻找的行为。
关于flex4 - Flex 4 :Capturing mouse events with spark.primitive.path 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3418342/