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

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

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

Регистрация: Oct 2014
Сообщений: 15
По умолчанию Создать своё событие

Здравствуйте. Подскажите, пожалуйста, как создать свое событие, чтобы
добавлять его объекту вот так
Код AS3:
object.addEventListener(MouseEvent.MOUSE_HOVER, func);
Хочу добавить событие в класс MouseEvent.
Уже перелистал не мало инфы по этому вопросу, вроде бы туман начинает рассеиваться, но все равно ничего не понятно.
1. Как сделать так, чтобы событие срабатывало по составленному мной условию?
2. Как получить в моем классе ссылку на "object"?
3. Да и самое главное, как добавить событие к MouseEvent?

Старый 25.10.2014, 15:21
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 2  
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Вот если Вы скажите, что готовы отказаться от собственного события с названием класса MouseEvent,
то я могу немного подсказать, не переписывать на форум книгу, а надеясь на то, что Вы понимаете что делаете,
написать отрывистый код.

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

Регистрация: Oct 2014
Сообщений: 15
Ну просто логично, что если событие связано с курсором, то и добавлять его в класс MouseEvent.
А так-то без разницы где оно будет находится, главное получить нужный результат.

Старый 25.10.2014, 16:54
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 4  
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Просто нельзя залезть в класс от adobe и что-то в нем исправить.
Так что красивое слово MouseEvent Вам получить не удаться. Есть способ, но я его не скажу,
он бессмысленный и некрасивый.
И тогда ответы -
1) Вот так послать событие
Код AS3:
объектУнаследованныйОтEventDispatcher.dispatchEvent( new MyMouseEvent( MyMouseEvent,TYPE ) );
2) Передать её туда.
3) Никак.
4) Я подозреваю что Вы задумали, но по Вашем вопросам можно догадаться,
что Вы хотите сделать операцию на открытом сердце, после кулинарного училища.

Старый 25.10.2014, 17:05
Hobey вне форума Посмотреть профиль Отправить личное сообщение для Hobey Найти все сообщения от Hobey
  № 5  
Hobey

Регистрация: Oct 2014
Сообщений: 15
Но это не ответ.(
То ли флеш сложный, то ли я старею. Как же с php было всё просто и красиво...
Думал что на форуме смогут помочь. Просто мне это надо чтобы плеер сделать на сайт. Ради этого сидеть неделю+ и изучать флеш не очень то и охото.
А делать, хоть даже и в маленьком приложении, грязный код не хочется, поэтому и задумал сделать событие.

Старый 25.10.2014, 17:15
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 6  
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Цитата:
Ради этого сидеть неделю+ и изучать флеш не очень то и охото.
Тогда Вы должны понимать, что сидеть и пересказывать Вам книги, тоже не очень хочется.
Цитата:
Как же с php было всё просто и красиво...
Если бы Вы знали php, то у Вас бы сложностей с передачей в класс объекта не было.
В php все тоже самое, как и в as3.
Цитата:
Думал что на форуме смогут помочь.
Вы и в правду думали, что вам сделают плеер?

А вообще то, что Вы задумали, делают не так, но объяснять я вижу смысла нет, время жалко,
да и Вы все равно не поймете.

Старый 25.10.2014, 17:42
Hobey вне форума Посмотреть профиль Отправить личное сообщение для Hobey Найти все сообщения от Hobey
  № 7  
Hobey

Регистрация: Oct 2014
Сообщений: 15
(случайное сообщение)


Последний раз редактировалось Hobey; 25.10.2014 в 17:58.
Старый 25.10.2014, 18:03
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 8  
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Hobey, погуглите "as3 пользовательские события". Попробуйте поменять подход к вашей задаче.
Вам нужно создать класс, расширяющий Event и с ним работать.

Старый 25.10.2014, 18:27
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 9  
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Немного меня запутали...
Создали sprite-container и подписали его
Код AS3:
container.addEventListener( MouseEvent.MOUSE_OVER, overHandler );
container.addEventListener( MouseEvent.MOUSE_OUT, outHandler );
Затем в этот контайнер добавляете кнопки
Код AS3:
container.addChild( button );
Теперь, когда мышка наедет или съедет с кнопки вы получите событие.
По сути это все, но если вам нужно событие именно, когда мышка находится над кнопкой,
чтобы каждый кадр знать её место положение, то нужно в событии over подписываться, а в out
отписываться на событие MOUSE_MOVE.
То есть получается, что мышка наехала н кнопку и пошли события mouseMove, когда съехала,
они прекратились.

Старый 25.10.2014, 18:47
Hobey вне форума Посмотреть профиль Отправить личное сообщение для Hobey Найти все сообщения от Hobey
  № 10  
Hobey

Регистрация: Oct 2014
Сообщений: 15
На да. Т.е. я создаю дочерний класс от MouseEvent
Код AS3:
package {
  import flash.events.MouseEvent;
 
  var event_hover:boolean = 0;
 
  class MouseHover extends EventMouse {
 
    public function MouseHover(type:String) {
      super(type);
    }
 
  }
}
Переменная event_hover отвечает за само событие.
Не понятно:
1. Как внутри этого класса получиться ссылку на "object", если событие добавлялось так
Код AS3:
object.addEventListener("func_MouseHover", outHandler );
2. Как сделать так, чтобы функция func_MouseHover вызывалась тогда, когда переменная event_hover равняется 1

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

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

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


 


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


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