画布的空白区域不会触发事件。
我的问题是,我在一个应用程序中有一个画布,它显示了一个由不同数字组成的图表,但是画布上的空白位置不会触发我需要的事件,如滚动。
你能告诉我如何让我的画布触发事件,即使在空白的空间?
我已经设置了背景颜色,mouseEnabled,颜色,边框,alpha,不透明背景等,没有任何工作
我正在使用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);
您需要确保将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>
通常,这类问题可以通过设置backgroundColor和backgroundAlpha为0来解决。
你说你已经试过了;你可以张贴你的画布定义的一个例子吗?
我还会在事件处理程序中放置跟踪语句或类似的东西,只是为了确保它们实际上没有被调用。我曾经遇到过这样的情况,我无法弄清楚为什么一个特定的事件没有触发,只是发现它被触发了,但我的处理程序只是没有按照我的预期进行。