Flash / Flex Курсоры - PullRequest
       10

Flash / Flex Курсоры

5 голосов
/ 09 января 2009

Я работаю над приложением Flex, которое загружает внешние ресурсы Flash, созданные в CS3. Я только что читал о том, как я могу использовать класс Flex mx.managers.CursorManager для явного изменения курсора мыши. Но в идеале я хотел бы установить свойство курсора мыши для некоторых элементов в загруженном Flash SWF, чтобы при наведении курсора на этот элемент курсор автоматически менялся, и мне не приходилось реагировать на события мыши.

Возможно ли это? Flash поддерживает это в DisplayObject или что-то еще?

Кажется, Flash SWF переопределяет меня. Некоторые объекты автоматически отображают курсор мыши при наведении курсора мыши, и я не вижу способа отключить это на DisplayObject?

Ответы [ 2 ]

4 голосов
/ 09 января 2009

Чтобы установить курсор «Рука», при наведении курсора мыши на элемент необходимо указать следующие свойства:

  <mx:VBox 
       useHandCursor="true"
       mouseChildren="false"
       buttonMode="true">

Однако это работает только для ручного курсора. Также позаботьтесь об обязательном атрибуте mouseChildren . Вы должны либо установить значение false, чтобы получить курсор для всех содержащихся элементов, либо указать атрибуты useHandCursor и buttonMode для всех элементов. Однако побочный эффект настроек mouseChildren до false заключается в том, что все события мыши ( mouseOver , mouseOut , click, ...) на дочерних элементах больше не будет работать.

Если вы хотите использовать курсор, отличный от ручного курсора, боюсь, у вас есть только две возможности:

  • Заменить стандартный ручной курсор на курсор
  • Используйте события mouseOver и mouseOut для программной установки курсора.
2 голосов
/ 11 января 2009

В любом объекте, унаследованном от Sprite, чьи свойства buttonMode и useHandCursor имеют значение true, вы по умолчанию получите курсор в виде руки при наведении на него курсора. Некоторые объекты делают это по умолчанию, правильно; Button и LinkButton - примеры, которые вы, вероятно, заметили. Просто установив для useHandCursor значение false для любого из этих компонентов, достаточно просто отключить курсор в виде руки, даже если его свойство buttonMode (отвечающее за диспетчеризацию событий щелчка) имеет значение true.

Если вы хотите установить курсор на что-либо еще в mouseOver, вам придется реагировать на события мыши; нет никакого способа обойти это. В зависимости от вашей цели проектирования, вы можете как-то прервать эту работу, возможно, унаследовав от какого-то другого объекта и затем переопределив его поведение по умолчанию, но в той или иной форме среда выполнения должна знать, что вы хотите обработать эти события мыши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...