Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.12.2012, 14:36
SEMA_KMS вне форума Посмотреть профиль Отправить личное сообщение для SEMA_KMS Найти все сообщения от SEMA_KMS
  № 1  
Ответить с цитированием
SEMA_KMS

Регистрация: Nov 2012
Адрес: Комсомольск-на-Амуре
Сообщений: 13
По умолчанию как поставить функцию на тот момент, когда мышь только заходит на объект?

Не посчитайте дураком, AS 3.0 изучаю недавно)))
Не могу вспомнить и найти в нете как поставить функцию на тот момент, когда мышь только заходит на объект((
Обработчик события, какое событие(я сформулировать не могу).
Нужно что бы объект убегал от мыши , когда мышь только заходит на обьект((
В справке найти не могу, так как к лексикону не привык...
Скидывать нечего, так как мне только этот код и нужен.

Старый 23.12.2012, 14:41
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 2  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Подпишитесь на событие MouseEvent.MOUSE_OVER и будет вам щастье

Старый 23.12.2012, 16:02
Инсайт вне форума Посмотреть профиль Отправить личное сообщение для Инсайт Найти все сообщения от Инсайт
  № 3  
Ответить с цитированием
Инсайт

Регистрация: Dec 2012
Адрес: Ростов-на-Дону
Сообщений: 13
Код AS3:
вашОбъект.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
 
private function onMouseOver(e:MouseEvent):void
{
//тут вставляйте нужный код 
}

Старый 23.12.2012, 16:22
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Надо не на MOUSE_OVER подписываться в этом случае, а на MouseEvent.ROLL_OVER. При MOUSE_OVER событие будет слаться все время, пока мышь перемещается над объектом
если внутри вложены другие объекты реагирующие на мышь, событие будет и на них всплывать


Последний раз редактировалось caseyryan; 24.12.2012 в 07:36. Причина: поправка
Старый 23.12.2012, 17:42
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Надо не на MOUSE_OVER подписываться в этом случае, а на MouseEvent.ROLL_OVER. При MOUSE_OVER событие будет слаться все время, пока мышь перемещается над объектом.
Разница между этими событиями в том, что ROLL_OVER не всплывающее.

Старый 23.12.2012, 17:52
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 6  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
При MOUSE_OVER событие будет слаться все время, пока мышь перемещается над объектом.
Нет. Это не так.
__________________
Отряд Котовскага

Старый 24.12.2012, 01:26
SEMA_KMS вне форума Посмотреть профиль Отправить личное сообщение для SEMA_KMS Найти все сообщения от SEMA_KMS
  № 7  
Ответить с цитированием
SEMA_KMS

Регистрация: Nov 2012
Адрес: Комсомольск-на-Амуре
Сообщений: 13
С private я еще не знаком, и решил вопрос иначе(корявенько наверно и слишком длинно)
Код AS1/AS2:
import com.greensock.*;
import com.greensock.easing.*;
 
mc1.mc.addEventListener(MouseEvent.MOUSE_OVER, mouseOVER);
function mouseOVER(event:MouseEvent):void
{
	TweenLite.to(mc1, 1, {x:Math.random()*800, y:Math.random()*650, ease:Cubic.easeOut});
}
mc1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN);
function mouseDOWN(event:MouseEvent):void
{
	mc1.startDrag();
}
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUP);
function mouseUP(event:MouseEvent):void
{
	mc1.stopDrag();
}
var mcc:Mcc = new Mcc  ;
mcc.x = 400;
mcc.y = 324;
mc1.ok_mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_2);
function mouseDOWN_2(event:MouseEvent):void
{
	mcc.visible = true;
	mc1.visible = false;
	addChild(mcc);
}
mcc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_3);
function mouseDOWN_3(event:MouseEvent):void
{
	mcc.startDrag();
}
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUP_2);
function mouseUP_2(event:MouseEvent):void
{
	mcc.stopDrag();
}
mcc.mcc1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_4);
function mouseDOWN_4(event:MouseEvent):void
{
	mcc.visible = false;
	mc1.visible = true;
	addChild(mc1);
}
Коментарии по коду (кроме тех, типа "че эт за фигня") выслушать рад. Мне очень интересно как это написать короче, правильнее и читабельнее, все таки я только начал изучать AS 3.0)))

Старый 24.12.2012, 07:21
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
С private я еще не знаком, и решил вопрос иначе(корявенько наверно и слишком длинно)
Это свойство для классов. В кадрах оно не используется
Цитата:
Коментарии по коду (кроме тех, типа "че эт за фигня") выслушать рад. Мне очень интересно как это написать короче, правильнее и читабельнее, все таки я только начал изучать AS 3.0)))
А замечания такие:
Ну нужно создавать кучу обработчиков на каждый объект, достаточно одного в каждом случае:
Код AS3:
import com.greensock.*;
import com.greensock.easing.*;
 
var mcc:Mcc = new Mcc() ; // правильнее всегда добавлять скобки, хоть и не всегда это имеет значение
mcc.x = 400;
mcc.y = 324;
 
mc1.mc.addEventListener(MouseEvent.ROLL_OVER, onRollOver);
mc1.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
mc1.ok_mc.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
 
function onRollOver(e:MouseEvent):void {
   TweenLite.to(mc1, 1, {x:Math.random()*800, y:Math.random()*650, ease:Cubic.easeOut});
}
function onMouseUp(e:MouseEvent):void {
      var target:MovieClip = e.target as MovieClip;
      if (target == mc1.mc) {
 
      }
}
function onMouseDown(e:MouseEvent):void {
      var target:MovieClip = e.target as MovieClip;
      if (target == mc1.mc) {
            // тут обрабатываем то, что связано с этим мувиклипом
      } else if (target == mc1.ok_mc) {
 
      } else if (target == mcc) {
 
      } else if (target == mcc.mcc1) {
 
      }
}
Хотя лучше вообще на родительские контейнеры со всплытием подписываться.


Последний раз редактировалось caseyryan; 24.12.2012 в 08:04.
Старый 25.12.2012, 08:12
SEMA_KMS вне форума Посмотреть профиль Отправить личное сообщение для SEMA_KMS Найти все сообщения от SEMA_KMS
  № 9  
Ответить с цитированием
SEMA_KMS

Регистрация: Nov 2012
Адрес: Комсомольск-на-Амуре
Сообщений: 13
Ну вот повозился и вопросы таковы...
Код который я скинул работает, попробовав использовать предложенный не понял и заметил несколько вещей:

Код AS3:
mc1.mc.addEventListener(MouseEvent.MOUSE_OVER, mouseOVER);
mc1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_1);
mc1.ok_mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_2);
 
mcc.mcc1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_3);
mcc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDOWN_4);
 
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUP_1);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUP_2);
Первые три обработчика на разные объекты, к тому же первый на наведении курсора.
Далее еще два то же на разные объекты.
По нижнем двум действительно думал как бы сократить код, но не пойму как проверить в условии какой из Drag"ов работает (stopDrag или startDrag)

По предложенному коду вопрос по поводу имен функции таких к примеру как:
Код:
mc1.ok_mc.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
Выдает ошибку:

Код AS3:
Монтажный кадр 1, слой "Слой 1", кадр 1, строка 59
Warning: 1090: Ошибка миграции: 
Flash Player не запускает обработчик событий onMouseDown автоматически во время выполнения в ActionScript 3.0. 
Сначала нужно зарегистрировать этот обработчик для события, используя addEventListener ("mouseDown", callback_handler).
Или это к AS 2.0?
За предложенный способ все равно спасибо)))

Вообще задумка было такая как во в вложении к посту, хотел пошутить над другом))) Но фишка в том что у меня в компилированном виде все без багов, но у него когда проигрывает, курсор при нажатии на "да" во втором окошке липнет и не отпускается (прикол не удался)
Вложения
Тип файла: swf 111.swf (30.4 Кб, 45 просмотров)


Последний раз редактировалось SEMA_KMS; 25.12.2012 в 12:48.
Старый 25.12.2012, 09:32
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
SEMA_KMS, теги цитирования предназначены для цитирования, а не для оформления кода.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:22.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.