Flex 4:使用spark.primitive.path对象捕获鼠标事件

时间:2010-08-05 19:18:45

标签: flex4 mouseevent

我试图捕捉鼠标事件,只要鼠标在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'的右下方结束的框。

非常感谢任何有关如何解决此问题(或替代解决方案)的想法。

2 个答案:

答案 0 :(得分:4)

如果您使用SkinnableContainer而不是Group,您将获得您正在寻找的行为。

答案 1 :(得分:1)

尝试封装在Graphic对象(Flex4)中。见那里:http://blog.flexexamples.com/2010/03/22/creating-a-simple-image-map-in-flex-4/