
Код AS3:
//Объявляю пакет:
package src
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.ui.Mouse;
import flash.display.Shape;
//Объявляю класс:
public class MouseCursorClass extends MovieClip
{
//Определяю класс Shape (для рисования):
var shape:Shape = new Shape();
//Определяю и устанавливаю класс objectMouseCursor:
var mouseCursor:objectMouseCursor = new objectMouseCursor();
//Объявляю конструктор:
public function MouseCursorClass()
{
//Задаю толщину и цвет линий:
shape.graphics.lineStyle(0,0x000000);
//Определяю как квадрат:
shape.graphics.drawRect(0,0,200,200);
//Добавляю на сцену квадрат:
this.addChild(shape);
//Скрываю настоящий курсор мышки:
Mouse.hide();
//Добавляю на сцену аналог курсора мышки:
stage.addChildAt(mouseCursor,1);
//Запрещаю аналогу курсора мышки быть видимым для настоящего курсора мышки:
this.mouseCursor.mouseEnabled = false;
//Определяю событие обновления кадров:
stage.addEventListener(Event.ENTER_FRAME, updateFrames);
//Определяю событие нажатия кнопки мыши:
addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
}
//Объявляю функцию для события обновления кадров:
public function updateFrames(event:Event):void
{
//Если курсор мышки находится внутри зоны действия, то:
if(mouseX > 0 && mouseX < 200 && mouseY > 0 && mouseY < 200)
{
//Изменяю координату y у аналога курсора мышки:
mouseCursor.y = mouseY;
//Изменяю координату x у аналога курсора мышки:
mouseCursor.x = mouseX;
}
}
//Объявляю функцию для события нажатия кнопки мыши:
public function mouseDown(event:Event):void
{
//Определяю "условие":
switch(event.target.name)
{
//Если настоящим курсором мышки был нажато на объект test, то:
case 'test':
//Вывожу информирование:
trace("Ура. Свершилось чудо! Курсор мышки находясь в зоне действия совершил нажатие объекта test.");
break;
}
}
}
}
Я пока что нашёл только один минус: когда мышка резко выходит из приложения, или поля видимости, то курсор мышки (который созданный) остаётся на некотором расстоянии до окончания зоны действия (пределы 200,200).