Flex 4: захват событий мыши с помощью объектов spark.primitive.path

Я пытаюсь зафиксировать события мыши всякий раз, когда мышь делает что-то поверх 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,0 и заканчивающееся в нижней правой части буквы «L».

Любые мысли о том, как я могу решить это (или альтернативное решение), очень ценятся.


person Jason    schedule 05.08.2010    source источник


Ответы (2)


Если вы используете SkinnableContainer вместо группы, вы получите то поведение, которое ищете.

person Jeff Graves    schedule 08.08.2010

Попробуйте инкапсулировать в графический объект (Flex4). См. здесь: http://blog.flexexamples.com/2010/03/22/creating-a-simple-image-map-in-flex-4/

person Breizo    schedule 11.01.2011