Как использовать собственные настраиваемые курсоры мыши из приложений Flash?

Наиболее распространенный способ изменения курсора в приложениях Flash основан на простом сокрытии собственного курсора ОС и отображении изображения (нарисованного проигрывателем Flash Player) внутри Flash. прямоугольник, где будет (скрытый) курсор. Это то, что, например, делает mx.managers.CursorManager. Причина, по которой я считаю этот подход неприемлемым, заключается в том, что Flash Player недостаточно быстро обновляет графику курсора, что приводит к некоторой очень видимой задержке в движении курсора, что, на мой взгляд, является довольно фундаментальным. проблема удобства использования и раздражение, из-за чего все приложение кажется медленнее, чем оно есть на самом деле.

С другой стороны, я заметил, что CSS _2 _ property в браузерах работает так, как должна, т. е. нет видимой задержки в перемещении курсора при использовании его для реализации настраиваемого курсора мыши.

Итак, мой вопрос: есть ли способ использовать свойство CSS cursor (или любой другой метод, не связанный с запаздыванием и медленным перемещением курсора) для изменения курсора поверх прямоугольника Flash?

Я уже пытался изменить свойство стиля cursor для элемента Flash (или Div оболочку вокруг элемента Flash) с помощью JavaScript, но, похоже, не смог заставить его работать. Кто-нибудь успешно что-то подобное делал?


person hasseg    schedule 15.11.2008    source источник


Ответы (6)


Родные курсоры доступны в бета-версии Flash Player 10.2. Так что вам стоит попробовать! См .: http://www.bytearray.org/?p=2373

person Christophe    schedule 01.12.2010

Я не верю, что Flash может использовать специальные системные курсоры. За 6 лет работы Flash-разработчиком я ни разу не слышал о подобной функциональности или взломе.

person Matt W    schedule 15.11.2008

Я понимаю ваши жалобы, я тоже был разочарован тем, насколько медленным может быть обновление дисплея. Подумать о решении использовать CSS для установки стиля курсора в браузере, хотя это интересный подход ... Пахнет, но, в первую очередь, вы можете реализовать контроль над атрибутом курсора CSS из ActionScript с помощью ExternalInterface. Таким образом, вы могли предположительно связаться с контейнером HTML, вызвав некоторый Javascript для изменения CSS страницы HTML во время выполнения. Не уверен на 100%, что это сработает, но, возможно, стоит попробовать, если вы в отчаянии. В противном случае, вероятно, рекомендуется использовать CursorManager.

person jpencola    schedule 16.11.2008

CursorManager - это то, что нужно, но у меня не было проблем с лагами.

Если вы еще не видели его, ознакомьтесь с классами Colin Moock CustomMousePointer. У него есть несколько примеров AS3 и пример кода из его книги Essential AS3, размещенной на http://www.moock.org/eas3/examples/. Прокрутите вниз или найдите ссылку Custom Mouse Pointer. Это под заголовком главы 22.

Между прочим, код в этих примерах изначально предназначался для использования разработчиками Flash, поэтому вы можете оптимизировать некоторые из них для Flex, используя объекты, недоступные во Flash-реализации AS3.

person Ross Henderson    schedule 17.11.2008

Я считаю, что Flash Player 10 изначально позволяет вам выбирать ibar, перетаскивать руку, палец или обычные курсоры, но если вы используете Flash 9, это невозможно, и я не верю, что взлом CSS также сработает.

Мой совет - используйте событие MOUSE_MOVE, чтобы расположить графику и установить как можно более высокую частоту кадров (например, 50 кадров в секунду).

person Iain    schedule 17.11.2008

Фактически вы могли бы сделать это, написав ExternalInterface, который вызывает javascript для обновления курсора мыши. Здесь будет хорошо работать функциональность jQuery, и я этим занимаюсь на своем новом сайте-портфолио для кнопок и различных областей флэш-приложения.

Новое портфолио еще не готово, но должно появиться в течение ближайших недель или двух, для тех, кому интересно, оно будет на http://chrismcintoshdesigns.com

person Chris    schedule 10.10.2010