我试图捕捉鼠标事件,只要鼠标在spark.primitive.path
(下面的'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来触发的。因此,如果将鼠标移到仍然触发鼠标事件的路径的左侧,则因为该组是从0开始并且在'L'的右下方结束的框。
非常感谢任何有关如何解决此问题(或替代解决方案)的想法。
答案 0 :(得分:4)
如果您使用SkinnableContainer而不是Group,您将获得您正在寻找的行为。
答案 1 :(得分:1)
尝试封装在Graphic对象(Flex4)中。见那里:http://blog.flexexamples.com/2010/03/22/creating-a-simple-image-map-in-flex-4/