Изменить курсор мыши на растровое изображение (Flex 4)? - PullRequest
0 голосов
/ 24 июня 2010

В Flex 4, как я могу изменить курсор на растровое изображение, определенное в время выполнения ?Все примеры, которые я видел, используют CursorManager.setCursor, чтобы установить курсор на класс, указанный во время компиляции.

То, что я хочу сделать, это изменить курсор на растровое изображение, bitmapData которого определяется контекстом.

Ответы [ 3 ]

2 голосов
/ 25 июня 2010
package cursor
{
import flash.display.BitmapData;
import flash.display.PixelSnapping;

import mx.core.BitmapAsset;

public class RuntimeBitmap1 extends BitmapAsset
{

    public static var staticBitmapData:BitmapData;

    public function RuntimeBitmap1()
    {
        super(staticBitmapData);
    }
}
}

Использование:

var bitmapData:BitmapData = new BitmapData(50, 50, false, 0x88888888);
RuntimeBitmap1.staticBitmapData = bitmapData;
cursorManager.setCursor(RuntimeBitmap1, 0);
1 голос
/ 01 ноября 2010

Я хотел нарисовать UIComponent как курсор.

Мне удалось это с помощью комбинации ответа Максима и этой статьи Flex Cookbox .Единственное изменение, которое я должен был сделать в ответе Максима, было следующим:

public function RuntimeBitmap1()
{
    super(RuntimeBitmap1.staticBitmapData);
}

В противном случае staticBitmapData в конструкторе был пустым.

0 голосов
/ 25 июня 2010

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

  1. Создайте свой курсор типа Bitmap, используя изображение по вашему выбору.Вы также можете динамически устанавливать bitmapData во время выполнения.
    
    var DEFAULT_CURSOR_IMAGE : Class;
    var myCursorBitmap : Bitmap;
    ...
    myCursorBitmap = new DEFAULT_CURSOR_IMAGE();<br>
    
  2. Зарегистрируйтесь, чтобы получать события перемещения мыши и соответственно обновлять положение курсора.
    
    function onMouseMove(event : MouseEvent) : void
    {
       myCursorBitmap.x = event.localX;
       myCursorBitmap.y = event.localY;
    }<br>
    
  3. Скрыть настоящий курсор с помощью мыши.hide ().

  4. Показать свой пользовательский курсор.Вы можете обновить форму курсора позже, динамически задавая bitmapData.

    
    addChild(myCursorBitmap);
    ...
    myCursorBitmap.bitmapData = myNewCursor;<br>
    

Чтобы восстановить курсор по умолчанию, удалите растровое изображение курсора со сцены и вызовите Mouse.show ().

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