Пустое пространство холста не запускает события во Flex - PullRequest
1 голос
/ 06 декабря 2011

Пустое пространство холста не запускает события.

Моя проблема в том, что у меня есть холст в приложении, которое показывает диаграмму, состоящую из разных фигур, но пустые места холста не вызывают нужные мне события в качестве ролловера.

Можете ли вы сказать мне, как я могу сделать так, чтобы мой холст вызывал события даже в пустых местах?

Я установил цвет фона, mouseEnabled, color, border, alpha, opaqueBackground и т. Д., И ничего не работает.

Я использую Flex 4, и мне нужно использовать только mx: Canvas.

Вот регистрация слушателя события:

canDiagram.addEventListener(MouseEvent.ROLL_OVER, function(event:MouseEvent):void{if(actualCursor != null){CursorManager.setCursor(actualCursor,2,-10,-10);}},true);
canDiagram.addEventListener(MouseEvent.ROLL_OUT, function(event:MouseEvent):void{CursorManager.removeAllCursors();},true);

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Вам нужно убедиться, что вы установили цвет backgroundColor вместе с установкой backgroundAlpha на 0. Это гарантирует, что он все еще прозрачен, и ваши события мыши будут срабатывать.Вот мой тестовый холст, который я использовал, чтобы заставить его работать

<mx:Canvas x="104" y="107" width="215" height="134" backgroundAlpha="0" 
           backgroundColor="#FFFFFF" rollOut="canvas1_rollOutHandler(event)"
           rollOver="canvas1_rollOverHandler(event)">
</mx:Canvas>
0 голосов
/ 06 декабря 2011

Обычно проблему такого типа можно устранить, установив backgroundColor и установив backgroundAlpha равным 0.

Вы говорите, что уже пробовали;Вы можете опубликовать пример своего определения Canvas?

Я бы также добавил оператор трассировки или что-то подобное в ваши обработчики событий, просто чтобы убедиться, что они на самом деле не вызываются.У меня были ситуации, когда я не мог понять, почему какое-то конкретное событие не было запущено, только чтобы узнать, что это было, но мой обработчик просто не делал то, что я ожидал.

...