Проблема с пользовательским курсором AS3.0

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.

Проблема с пользовательским курсором AS3.0

Сообщение wapifz » 06 фев 2012, 18:26

Всем привет.
Нужно было сделать зону, в которой будет виден курсор, который помещен в контейнер. Сделал, но что-то не правильно.
Вот кусок кода.
  1. zone.addEventListener(MouseEvent.MOUSE_MOVE,cursorMove);
  2. function cursorMove(event:MouseEvent):void
  3. {
  4.     addChild(cursor);
  5.     Mouse.hide();
  6.     logs.appendText("Перемещение внутри \n");
  7.     cursor.x = event.stageX;
  8.     cursor.y = event.stageY;
  9.     event.updateAfterEvent();
  10. }
  11. zone.addEventListener(MouseEvent.MOUSE_OUT,cursorOut);
  12. function cursorOut(e:MouseEvent)
  13. {
  14.     removeChild(cursor);
  15.     Mouse.show();
  16.     logs.appendText("Удаляем курсор \n");
  17. }

Что тут неправильно? Когда курсор находится в зоне, он все время мигает.
Исходник прилагается.
http://rghost.ru/36374755
wapifz

 
Автор темы
Сообщения: 19
Зарегистрирован: 10 окт 2011, 14:33
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Проблема с пользовательским курсором AS3.0

Сообщение bodnar » 06 фев 2012, 19:26

курсор прячется при каждом движении мышки а показывается при выведении
почему тогда не прятать курсор только при наведении? MouseEvent.MOUSE_OVER так кажется

Да и вообще, чтобы сделать польховательский курсор лучше пользоваться MouseCursorData http://help.adobe.com/ru_RU/FlashPlatfo ... rData.html
Встроенный курсор внедрен непосредственно через механизм курсора операционной системы и является более эффективным средством для отображения пользовательского курсора, чем использование экранного объекта. Курсор можно анимировать, предоставив несколько изображений с помощью свойства data и установив частоту кадров.
Обязательно к прочтению: ActionScript 3.0 Ошибки среды выполнения
Аватара пользователя
bodnar
Модератор
Модератор
 
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41
Благодарил (а): 16 раз.
Поблагодарили: 185 раз.

Re: Проблема с пользовательским курсором AS3.0

Сообщение wapifz » 06 фев 2012, 19:49

32х32 - маловат будет курсор. В исходнике же у меня не настоящий символ курсора ;)
Сейчас попробую MOUSE_OVER заюзать.

UPD
Убрал функцию с MOUSE_OUT, но как тогда осуществить удаление курсора, если же пользователь передвинул курсор ЗА границу "зоны" ?
При создании слушателя с MOUSE_OUT, курсор все равно исчезает и появляется заново.
wapifz

 
Автор темы
Сообщения: 19
Зарегистрирован: 10 окт 2011, 14:33
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.

Re: Проблема с пользовательским курсором AS3.0

Сообщение sanych_dv » 07 фев 2012, 02:16

ROLL_OVER - убираем мышь и показываем свой курсор
MOUSE_MOVE - двигаем курсор
ROLL_OUT - убираем свой курсор и показываем мышь
sanych_dv
Разработчик
Разработчик
 
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52
Благодарил (а): 1 раз.
Поблагодарили: 77 раз.

Re: Проблема с пользовательским курсором AS3.0

Сообщение wapifz » 07 фев 2012, 12:40

sanych_dv

Сделал как ты сказал - все равно постоянно он появляется и исчезает.
Сам посмотри.
http://rghost.ru/36386195
Что не так то?
wapifz

 
Автор темы
Сообщения: 19
Зарегистрирован: 10 окт 2011, 14:33
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.

Re: Проблема с пользовательским курсором AS3.0

Сообщение gaponj88 » 07 фев 2012, 12:48

Так попробуй:
zone.addEventListener(MouseEvent.MOUSE_MOVE, function (e:MouseEvent) {
addChild(cursor);
Mouse.hide();
logs.appendText("Перемещение внутри \n");
e.updateAfterEvent();
cursor.x = mouseX;
cursor.y = mouseY;

}
Аватара пользователя
gaponj88

 
Сообщения: 433
Зарегистрирован: 21 окт 2011, 12:26
Благодарил (а): 20 раз.
Поблагодарили: 26 раз.

Re: Проблема с пользовательским курсором AS3.0

Сообщение bodnar » 07 фев 2012, 13:38

wapifz
ахахах, какая занятная штука, :lol:
что-то тут в uiloader не так
ибо без него этот код работает отлично
а когда над ним прячется курсор он почему то выбрасывает событие MOUSE_OUT
Обязательно к прочтению: ActionScript 3.0 Ошибки среды выполнения
Аватара пользователя
bodnar
Модератор
Модератор
 
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41
Благодарил (а): 16 раз.
Поблагодарили: 185 раз.

Re: Проблема с пользовательским курсором AS3.0

Сообщение wapifz » 07 фев 2012, 13:48

gaponj88
Одно говно.

bodnar
А ведь надо использовать UIloader...
Есть ли другие альтернативы, кроме startDrag (тоже не работает), MouseCursorData (Не подойдет к требованиям) и обычного перемещения?

Может тогда другие компоненты, например, от yahoo попробовать?

UPD
Да нет, этот код и с обычными мувиками не работает корректно.
wapifz

 
Автор темы
Сообщения: 19
Зарегистрирован: 10 окт 2011, 14:33
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.

Re: Проблема с пользовательским курсором AS3.0

Сообщение sanych_dv » 07 фев 2012, 14:00

  1.  
  2. import flash.events.MouseEvent;
  3. cursor.source = myCur;
  4. zone.source = zoneSource;
  5.  
  6. var shadow:DropShadowFilter = new DropShadowFilter();
  7. shadow.distance = 5;
  8. shadow.color = 0x999999;
  9. shadow.alpha = 0.5;
  10. shadow.angle = 45;
  11. cursor.filters = [shadow];
  12. cursor.visible = false;
  13.  
  14. // ОБРАТИТЕ ВНИМАНИЕ
  15. cursor.mouseChildren = true;
  16.  
  17. addChild(cursor);
  18.  
  19. logs.appendText("Создан курсор \n");
  20.  
  21. zone.addEventListener (MouseEvent.ROLL_OVER, cursorOver);
  22. function cursorOver (e:MouseEvent){
  23. cursor.visible = true;
  24.     Mouse.hide();
  25.     logs.appendText("ROLL_OVER \n");
  26. }
  27. zone.addEventListener (MouseEvent.MOUSE_MOVE, cursorMove);
  28. function cursorMove (e:MouseEvent){
  29.     cursor.x = e.stageX;
  30.     cursor.y = e.stageY;
  31.     e.updateAfterEvent();
  32.     logs.appendText("MOUSE_MOVE \n");
  33. }
  34. zone.addEventListener(MouseEvent.ROLL_OUT, cursorOut);
  35. function cursorOut(e:MouseEvent){
  36. cursor.visible = false;
  37.     Mouse.show();
  38.     logs.appendText("ROLL_OUT \n");
  39. }
  40.  
  41.  


И центруем курсор в символе так, чтобы в центре была заливка. Или прозрачный квадрат снизу. Исходник: http://ifolder.ru/28563237
sanych_dv
Разработчик
Разработчик
 
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52
Благодарил (а): 1 раз.
Поблагодарили: 77 раз.

Re: Проблема с пользовательским курсором AS3.0

Сообщение wapifz » 07 фев 2012, 14:35

sanych_dv

Можешь сохранить для CS4?
У меня CS5. и от CS5.5 не открывает
wapifz

 
Автор темы
Сообщения: 19
Зарегистрирован: 10 окт 2011, 14:33
Благодарил (а): 7 раз.
Поблагодарили: 0 раз.

След.

Вернуться в Программирование на Flash



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron