![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 103
|
Привет.
Столкнулся с такой ситуацией. В рут классе флэшки пишем: События не отправляются. Однако, если подписаться на стейдж, они есть. Если тоже самое обернуть в спрайт, тоже все хорошо, т.е. такая ситуация актуальна только для рут-спрайта. Если слушать событие в фазе захвата, его тоже нет. Есть какое-то объяснение этому? |
|
|||||
|
да вроде бы все логично: графика сама по себе не генерит мышиных событий, их генерит Sprite (точнее InteractiveObject), в котором эта графика находится, а внутри получается нет target'а - нет и события
и да, рут-спрайт здесь не причем, это справедливо для любого спрайта - изнутри графику точно также не 'слышно' Последний раз редактировалось silin; 03.02.2012 в 15:00. |
|
|||||
|
Цитата:
__________________
Дебаггер не предлагать |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 103
|
О как. Спасибо.
|
|
|||||
|
имхо непонятка какая-то насчет DocumentClass'а, что-то тут мэтр попутал
![]() любой спрайт не слушает свою графику, и не только векторную, к слову package { import flash.display.*; import flash.events.*; public class Main extends Sprite { public function Main():void { var test:Sprite = new Test(); addChild(test); test.addEventListener(MouseEvent.CLICK, test_click); } private function test_click(e:MouseEvent):void { // здесь ловим trace( "Main.test_click > e : " + e ); } } } import flash.display.*; import flash.events.*; class Test extends Sprite { public function Test() { addEventListener(MouseEvent.CLICK, this_click, true); graphics.beginFill(0, 1); graphics.drawRect(0, 0, 500, 500); graphics.endFill(); addChild(new Bitmap(new BitmapData(200, 200, false, 0xFF0000))); } private function this_click(e:MouseEvent):void { // здесь не ловим trace( "Test.this_click > e : " + e ); } } |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 103
|
Хм....Забавно. Не только графику, кстати. Объект Видео тоже не слушает. Т.е. получается, что любой контейнер в котором только объекты не дающие событый, не видит собственные события внутри себя.
|
|
|||||
|
упс, извиняюсь: все правильно Мук написал про Vector graphics ignored in main-class instance
public function Main():void { graphics.beginFill(0, 1); graphics.drawRect(0, 0, 500, 500); graphics.endFill(); stage.addEventListener(MouseEvent.CLICK, stage_click); addChild(new Bitmap(new BitmapData(200, 200, false, 0xFF0000))); } private function stage_click(e:MouseEvent):void { // если бы рут ловил свою графику имели бы [object Main] // но имеем всегда [object Stage] trace( "e.target : " + e.target ); } |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|