смена курсора над кнопкой @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 15 ] 
*   Список форумов / Технологии изображения / Flash » ответить » создать топик « | »
Автор Сообщение
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Заголовок сообщения: смена курсора над кнопкой
Сообщение Добавлено: 16 Апрель 2007, 18:20:41 
всегда мучал вопрос:
если курсор наведен на кнопку(мувиклип) и имет вид руки как обычно при наведении на кнопку,
а потом делаем mybutton.useHandCursor=false курсор меняется на стрелку,
а после mybutton.useHandCursor=true но курсор остается стрелкой.

как сделать так чтобы он снова менялся на вид руки ?

вот пример http://flashtown.org/flash/usehandcursor.swf
исходник http://flashtown.org/flash/usehandcursor.fla


Последний раз редактировалось Eduard 16 Апрель 2007, 22:21:13, всего редактировалось 1 раз.
Мигель Муж.
участник
75
Сообщения: 1453
Зарегистрирован: 09.01.04
Откуда: http://design-cafe.ru
Сообщение Добавлено: 16 Апрель 2007, 19:27:16 
А можно ситуацию в которой это видно? )))
Как ни кручу - не понял, в чем суть.
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Сообщение Добавлено: 16 Апрель 2007, 19:43:56 
Мигель, если на клип повесить on(release) {} а внутри сделать на первом кадре this.useHandCursor=true а на например 10м кадре this.useHandCursor=false , т.е. получится что они по очереди будут все время срабатывать, наводим курсор и видим что он не меняется обратно на "руку", только если мышкой подвигать …
eddy444 Муж.
Модератор
315
Сообщения: 14467
Зарегистрирован: 05.05.03
Откуда: NSK
Сообщение Добавлено: 16 Апрель 2007, 19:50:01 
ну сам и сказал. зачем внутрито по очереди? сделай снаружи без очереди.
а вообще вдимо нужно ему всетаки событие овер както получить интересно ели клип шевельнуть скриптово - сработает?
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Сообщение Добавлено: 16 Апрель 2007, 22:18:25 
вот пример http://flashtown.org/flash/usehandcursor.swf
исходник http://flashtown.org/flash/usehandcursor.fla
ctrlaltdel Муж.
соучастник
13
Сообщения: 866
Зарегистрирован: 17.02.05
Сообщение Добавлено: 16 Апрель 2007, 22:59:13 
Код:
bt.onPress = function() {
   bt.play();
   if (n == 1) {
      bt.useHandCursor = true;
      a1._visible = true;
      a2._visible = false;
      n = 0;
   }
   else {
      bt.useHandCursor = false;
      a1._visible = false;
      a2._visible = true;
      n = 1;
   }
};

проверил - работает

_________________
Вы смеётесь над нами , потому что мы отличаемся от вас,
а мы смеёмся над вами, потому что вы НЕ отличаетесь друг
от друга


Последний раз редактировалось ctrlaltdel 16 Апрель 2007, 23:49:03, всего редактировалось 1 раз.
@st@l@vist@
участник
70
Сообщения: 1606
Зарегистрирован: 20.03.03
Откуда: St.Petersburg
Сообщение Добавлено: 16 Апрель 2007, 23:42:49 
Eduard, помоему тебе заняться нечем ;)

Код:

   Key.addListener(this);
   
   var clip = createEmptyMovieClip("clip", 1);
      clip.onPress = null;
      clip._x = clip.defaultX = Stage.width / 2;
      clip._y = Stage.height / 2;
      clip.lineStyle(180, 0x0);
      clip.moveTo(0,0);
      clip.lineTo(0, .25);
   
   function onKeyDown()
   {
      clip.onRollOut = restore;
      clip.useHandCursor = !clip.useHandCursor;
      clip._x = -1000;
   }
   
   function restore()
   {
      this.onRollOut = null;
      this._x = this.defaultX;
   }
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Сообщение Добавлено: 17 Апрель 2007, 00:01:20 
ctrlaltdel, да именно при нажатии срабатывает что я показал в примере, а из внешнего скрипта нехочет.
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Сообщение Добавлено: 17 Апрель 2007, 00:04:42 
@st@l@vist@, чето слишком запутанный способ , надо будет завтра глянуть, может даже пойму :laugh:
@st@l@vist@
участник
70
Сообщения: 1606
Зарегистрирован: 20.03.03
Откуда: St.Petersburg
Сообщение Добавлено: 17 Апрель 2007, 00:13:50 
Eduard, ну что тут думать то :) Если откинуть строки создающие клип, рисующие в нем круг и создающие пустой обработчик на onPress, чтобы клип стал кнопкой, то все просто:

1) Запомнили значение свойства _x в переменной defaultX (defaultX = _x).
2) По нажатию любой кнопки на клавиатуре меняем курсор (useHandCursor = !useHandCursor).
3) Чтобы сработали события кнопки и обновился курсор смещаем клип (_x = -1000).
4) Как только это событие (onRollOut) срабатывает, возвращаем клип на его законное место (_x = defaultX)

Но по мне, такие вещи фиксить - глупо, можно потерять в других компонентах проекта.
Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Сообщение Добавлено: 17 Апрель 2007, 09:19:41 
@st@l@vist@, да неудобно, я надеялся что есть функции которые отвечают за "фокус" курсора, но раз никто не сказал, значит наверное нету.
Мигель Муж.
участник
75
Сообщения: 1453
Зарегистрирован: 09.01.04
Откуда: http://design-cafe.ru
Сообщение Добавлено: 17 Апрель 2007, 12:13:40 
Вот в одном кадре
Код:
Mouse.hide();
this.useHandCursor = false;
Mouse.show();

Вот в другом
Код:
Mouse.hide();
this.useHandCursor = true;
Mouse.show();



В Вашем исходнике достаточно добавить в конце функции onKeyDown()

Mouse.hide();
Mouse.show();
@st@l@vist@
участник
70
Сообщения: 1606
Зарегистрирован: 20.03.03
Откуда: St.Petersburg
Сообщение Добавлено: 17 Апрель 2007, 12:56:17 
Мигель, да, ты прав, так проще обновить курсор.

Только, тогда уж достаточно просто Mouse.show() - оно и так обновляет курсор.
Код:
   
   Key.addListener(this);
   
   var clip = createEmptyMovieClip("clip", 1);
      clip.onPress = null;
      clip._x = Stage.width / 2;
      clip._y = Stage.height / 2;
      clip.lineStyle(180, 0x0);
      clip.moveTo(0,0);
      clip.lineTo(0, .25);
   
   function onKeyDown()
   {
      clip.useHandCursor = !clip.useHandCursor;
      Mouse.show();
   }

Eduard Муж.
участник
61
Сообщения: 1629
Зарегистрирован: 24.09.03
Откуда: St.Petersburg , Moscow
Сообщение Добавлено: 17 Апрель 2007, 14:24:07 
Мигель, :beer: гениально, то что нужно
Мигель Муж.
участник
75
Сообщения: 1453
Зарегистрирован: 09.01.04
Откуда: http://design-cafe.ru
Сообщение Добавлено: 17 Апрель 2007, 15:47:51 
@st@l@vist@, точно )
+1.

Ну вот и породили коллективное решение в два слова))

Всем участникам обсуждения выдаётся орден Мышиного укротителя.
Можно упиться пивом.
*   Список форумов / Технологии изображения / Flash « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 15 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100