![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2013
Сообщений: 22
|
У меня есть: класс привязанный к Символу и основной класс
Когда в основном классе возникает событие CLICK, как поймать его в классе привязанном к Символу |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Вчера, пока отдыхал от getTimer, решил сделать пример баблинга, сделать для того, чтобы самому закрепить
знания, но столкнулся с непонятным мне явлением. Почему если нарисовать документ класс и подписать его на клики, он не ловит события? я конечно понимаю, что сам доккласс не кто не будет отрисовывать, но это не важно, для меня важно понять, почему он события не ловит? |
|
|||||
|
Клик может быть только по непрозрачной области.
Документ-класс - это просто контейнер. Пока ты в нем что-то не нарисуешь, или не добавишь в него - кликов не будет.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
Почему? Цитата:
package a_test { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; public class Main extends Sprite { private var _container:Sprite; public function Main() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(event:Event=null):void { removeEventListener(Event.ADDED_TO_STAGE, init); graphics.beginFill(0xC5AC21); graphics.drawRect(0, 0, 800,600); graphics.endFill(); addEventListener(MouseEvent.CLICK, clickHandler); } private function clickHandler(event:MouseEvent):void { trace(this, event.type); } } } |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
но ведь это может и ещё где то вылезти. По этому, если кто то знает по чему так, расскажите. |
|
|||||
private function init(event:Event=null):void { removeEventListener(Event.ADDED_TO_STAGE, init); var spr:Sprite = new Sprite(); spr.graphics.beginFill(0xC5AC21); spr.graphics.drawRect(0, 0, 800,600); spr.graphics.endFill(); addChild(spr); addEventListener(MouseEvent.CLICK, clickHandler); } Короче графикс это не интерактивный объект. Потому не кликается. Но вообще слегка непонятно. Если подписаться не на мейн а на тот же спрайт - то кликаться будет. Призываю в тред товарищей задротов кто там теоретическую поддержку может оказать ![]() Возможно у документ-класса особые настройки какие-то. Потому что с любыми другими спрайтами заливка графикса конает и всегда конала. Добавлено через 8 минут Еще больше интересного увидишь если графикс будет не прямоугольный а круглый ![]() Рекомендую поекспериментировать с кликами по прозрачным уголкам и свойствами mouseEnabled, mouseChildren.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Цитата:
- основной класс -- класс символа --- символ Задача решается легко. Но нужно поглядеть как вы пытаетесь сделать то что хотите. Ну и не совсем понятно что же именно вы пытаетесь.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Цитата:
__________________
...вселенская грусть |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:44. |
|
|
« Предыдущая тема | Следующая тема » |
|
|