Flex 4: захват событий мыши с помощью объектов spark.primitive.path - PullRequest
4 голосов
/ 05 августа 2010

Я пытаюсь захватить события мыши, когда мышь что-то делает поверх 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 art)

_____________________________
|                           |
|             _______       |
|            /      /       |
|           /      /        |
|          /      /         |
|         /      /_____     |
|        /            |     |
|       /             |     |
|      /______________|     |
|                           |
-----------------------------

Это почти работает. Проблема в том, что события мыши генерируются на основе измерений объекта Group, а не Path. Таким образом, если вы наведите курсор мыши слева от пути, который все еще вызывает события мыши, потому что группа - это блок, начинающийся с 0,0 и заканчивающийся в нижней правой части буквы «L».

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

Ответы [ 2 ]

4 голосов
/ 08 августа 2010

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

1 голос
/ 11 января 2011

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

...