![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
package{ import flash.events.Event; public class LOLEvent extends Event{ public static const LOL:String = 'lol'; private var _lol:String; public function get lol():Stirng{ return this._lol; } public function LOLEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, lol:String=''){ super(type, bubbles, cancelable); this._lol = lol; } public override function clone():Event{ return new LOLEvent(super.type, super.bubbles, super.cancelable, this._lol); } } } Последний раз редактировалось MrPoma; 08.02.2010 в 15:04. |
|
|||||
|
Сейчас попробую)
Добавлено через 55 минут хм...класс работает, спасибо) Но как мне его использовать в качестве реагирования на клик и наведение/отведение мышки?
__________________
uglan |
|
|||||
|
В качестве реагирования на клик и наведение/отведение мышки нужно использовать функцию принимающую параметр MouseEvent
Если повесить эту функцию на несколько объектов, то нужно использовать e.target и e.currentTarget (Вам уже об этом говорили, но Вы это игнорируете) |
|
|||||
|
Modus ponens
|
Когда срабатывает колбек то ситуации в которой ваша переменная объявленная в классе слушателе или в классе диспатчере недоступна просто не может быть потому что обе эти области видимости вам будут извесны в колбеке, первая - this, вторая - Event#target / Event#currentTarget - вы просто не там ищите. А передать дополнительные параметры в функцию у которой сигнатура это не позволяет не возможно никак, более того, это протовоестесственно и абсолютно противоречит здравому смыслу.
__________________
Hell is the possibility of sanity |
|
|||||
|
Цитата:
Цитата:
Цитата:
__________________
uglan Последний раз редактировалось uglan; 08.02.2010 в 18:29. |
|
|||||
|
Modus ponens
|
Противоестественно то, что функции задан тип: Event->void, задан не вами, а API которые вы изменить не можете. Т.е. это все равно, что вы бы жаловались на то, что переменной булевого типа не получается присвоить строку. Естественно не получится. А по поводу ответа - прочитайте еще раз предыдущее сообщение, там он как бы уже присутствует.
__________________
Hell is the possibility of sanity |
|
|||||
|
Большое спасибо! Я уже сказал что не понял как мне воспользоваться этими советами и было бы здорово если ответ был бы немного доступнее. Я не претендую на профи в cs3. А ваш совет все равно что отправить меня читать хелп по as3, там ответ есть, я не сомневаюсь. Для чего тогда этот форум?
__________________
uglan |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Обстановка накаляется?))) Давайте-ка все выдохнем.
uglan, дело в том что Вы обрабатываете не просто вообще событие, а совершенно конкретное событие наведения курсора на объект. Вы подписались на него. Именно на него. При наступлении именно конкретно этого события создается и рассылается совершенно конкретный Объект События. Этот самый Объект События является ЕДИНСТВЕННЫМ и предопределенным параметром, передаваемым в функцию-обработчик ЭТОГО КОНКРЕТНОГО события. Ваш обработчик не должен принимать в качестве параметра ничего, кроме объекта события именно того Класса, на который он подписан. В данном случае это MouseEvent, и событие Мыши никак не предполагает передачу сообщений - это мышь, а не окно чата. Вы используете стандартное событие, и не пытайтесь его перестроить под свое видение - оно идеально для тех целей, для которых создано. О наведении мыши на объект оно рассказывает абсолютно все подробности. Но Вам хочется совершенно другого - Вам не нужны параметры мыши, Вам нужны параметры объекта. Он - в переменной target. Вот теперь думаем. Раз Вы не можете завести нужное поле msg:String у этих объектов (их Класс не динамический), то наверное стоит воспользоваться утилитой Dictionary, позволяющей "привязать" к любому Объекту какое-то значение или ссылку. private var _planeMessages:Dictionary = new Dictionary(); _planeMessages[plane1] = "я первый план"; _planeMessages[plane2] = "я второй план"; _planeMessages[plane3] = "я третий план";
__________________
Reality.getBounds(this); |
|
|||||
|
Вау!) Спасибо. Вот теперь действительно понятная и полезная информация.
Попробовал — все работает как надо))) СПАСИБО!
__________________
uglan Последний раз редактировалось uglan; 09.02.2010 в 13:20. |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 3
|
Wolsh, спасибо, очень понятно написал, попробовала пример сделать, такая же проблема была. Получилось все в лучшем виде. Респект тебе и уважуха
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|