首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >挠曲画布和鼠标事件

问挠曲画布和鼠标事件
EN

Stack Overflow用户
提问于 2009-05-15 10:07:22
回答 5查看 8.6K关注 0票数 1

这个简单的代码在一个红色的画布上显示了一个绿色的画布,我希望绿色画布让鼠标下来的事件被他身后的孩子捕捉到--:红色画布。

我该怎么做?

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()">
    <mx:Canvas id="bg" width="100%" height="100%" backgroundColor="white" />

     <mx:Script>
        <![CDATA[

            private function init():void {

            var cvstest:Canvas = new Canvas();
            cvstest.width = 200;
            cvstest.height = 200;
            cvstest.x = 100;
            cvstest.doubleClickEnabled = true;
            cvstest.addEventListener(MouseEvent.DOUBLE_CLICK, dc);
            cvstest.addEventListener(MouseEvent.MOUSE_DOWN, md);
            cvstest.setStyle("backgroundColor",0xff0000);
            this.addChild(cvstest);   


            var cvsselect:Canvas = new Canvas();
            cvsselect.width = 20;
            cvsselect.height = 20;
            cvsselect.x = 140;
            cvsselect.doubleClickEnabled = false;
            cvsselect.mouseChildren = true;
            cvsselect.addEventListener(MouseEvent.MOUSE_DOWN, md2);
            cvsselect.setStyle("backgroundColor",0x00ff00);
            this.addChild(cvsselect);   
            }

         public function dc (e:MouseEvent) : void {
            trace("DOUBLE CLICK ON TEST CANVAS");
        } 
         public function md (e:MouseEvent) : void {
            trace("SINCLICK ON TEST CANVAS");
        } 
        public function md2 (e:MouseEvent) : void {
            trace("GREEN CLICK ON TEST CANVAS");
        } 
        ]]>    
    </mx:Script>
</mx:Application>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-05-15 12:17:52

不要将鼠标向下添加到绿色画布中,即删除行

代码语言:javascript
复制
cvsselect.addEventListener(MouseEvent.MOUSE_DOWN, md2);
票数 0
EN

Stack Overflow用户

发布于 2009-05-15 10:16:26

mouseEnable做错了诡计,还有其他的方法吗?

票数 0
EN

Stack Overflow用户

发布于 2009-05-15 10:27:27

你需要改变你养育孩子的方式。事件“行走”在显示树上。所以你有‘主应用’->‘红色帆布’和‘主应用’>‘绿色画布’。

因此,当您单击绿色画布时,事件永远不会到达红色画布。它将从“主应用程序”转到“绿色画布”&回到“主应用程序”。

您需要做的是让“绿色画布”成为“红色画布”的一个子元素,然后可以将侦听器添加到“红色画布”中,这样就可以侦听从“绿色画布”引发的事件。

如果您这样做,请记住event.target是事件的来源(绿色画布),如果您在“红色画布”内收听,则event.currentTarget将是“红色画布”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/867852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档