Рассмотрим, для начала простейший способ.
Нарисуем какой-нибудь курсор и преобразуем его в символ. Имя — cursor.
Добавим его на сцену и слоем выше напишем следующий код.
cursor.startDrag();
Запустим. Вроде все нормально, однако нарисованный курсор не всегда находится под реальным курсором.
Поэтому добавим параметр true.
cursor.startDrag(true);
Итак, хороший результат.
Осталось лишь убрать реальный курсор.
Mouse.hide();
[swfobj src="http://cyber-page.ru/wp-content/uploads/2011/01/2.swf"]
Способ второй. Функция startDrag() удобна, однако можно обойтись и без нее с помощью простого события enterFrame.
stage.addEventListener(Event.ENTER_FRAME, dragF);
function dragF(e:Event):void {
cursor.x=mouseX;
cursor.y=mouseY;
}
Код немного больше, но работает также. Если вы забыли про функцию startDrag(), то можно выкрутиться таким образом.
Хорошо, а теперь, предположим, мы не хотим засорять сцену и библиотеку лишними объектами. Плюс к этому курсор и вообще, растровые изображения могут значительно увеличить размер SWF-приложения. В маленьких играх это конечно не заметно, однако при больших масштабах за размером следует следить.
Рассмотрим специальный класс Loader.
Сохраним FLA-файл в отдельной папке, или на рабочем столе. В ту же директорию положим картинку курсора в любом формате изображений, лучше с прозрачным фоном. К примеру, вот эту.
Затем создадим переменную, которая будет служить загрузчиком внешних данных. Вообще, класс Loader служит для загрузки внешних SWF данных, и изображений различного формата.
var cursor:Loader = new Loader();
Мы создали переменную, теперь назначим ей путь для подгрузки:
cursor.load(new URLRequest("cursor.gif"));
Где cursor.gif — это наш курсор в папке с проектом.
С помощью метода load и его параметра URLRequest, мы загрузили файл из корневой папки. Также можно указывать полный путь к файлу, а также к файлам из Интернета.
Добавляем загруженный файл на сцену.
addChild(cursor);
[swfobj src="http://cyber-page.ru/wp-content/uploads/2011/01/31.swf"]
Отлично, все загрузилось. Осталось привязать это изображение к курсору.
Mouse.hide(); // Убираем стандартный курсор
stage.addEventListener(Event.ENTER_FRAME, dragF);
function dragF(e:Event):void {
cursor.x=mouseX;
cursor.y=mouseY;
}
И с помощью события привязываем курсор к движениям мышки.
[swfobj src="http://cyber-page.ru/wp-content/uploads/2011/01/41.swf"]
Вот и все, с помощью простых функций и стандартных событий, мы научились уникальному методу создания курсоров и загрузки файлов в целом.
1 коммент.:
но при добавлении обьектов на сцену, этот курсор непременно скроется за ними. я бы добавил строчку
cursor.mouseEnabled = false;
теперь работает)
Отправить комментарий