筛选器问题:Sprite不再分派MouseEvents

问题描述

| 我正在处理一个非常简单的问题:将BevelFilter应用于精灵后,它似乎不再分派MouseEvents。我试图重新启用buttonMode,但是没有运气。我是否真的缺少基本知识,或者这是Flash错误? DropShadowFilter也会发生这种情况。 编辑:这是一些代码。看来问题出在面具和滤镜的结合上:
        var s:Sprite = new Sprite();
        s.graphics.beginFill(0xff0000,1);
        s.graphics.drawRect(0,50,50);
        s.buttonMode = true;
        s.addEventListener(MouseEvent.CLICK,onClick);
        this.addChild(s);
        s.x = s.y = 100;
        var m:Sprite = new Sprite();
        m.graphics.beginFill(0,1);
        m.graphics.drawRect(0,50);
        s.addChild(m);

        // comment one of these two lines out and it works
        s.filters = [new BevelFilter()];
        s.mask = m;
我试图将mask的mouseChildren,mouseEnabled和buttonMode设置为true,但是没有结果。谢谢!     

解决方法

        我尝试运行您的代码,并得到相同的结果。奇怪。 无论如何,我可以通过创建一个“ container”精灵并在其中应用过滤器来使其工作:
var c:Sprite = new Sprite();
this.addChild(c);

var s:Sprite = new Sprite();
s.graphics.beginFill(0xff0000,1);
s.graphics.drawRect(0,50,50);
s.buttonMode = true;
s.addEventListener(MouseEvent.CLICK,onClick);
c.addChild(s);
s.x = s.y = 100;
var m:Sprite = new Sprite();
m.graphics.beginFill(0,1);
m.graphics.drawRect(0,50);
s.addChild(m);

c.filters = [new BevelFilter()];
s.mask = m;
该解决方案适合您的情况吗?     ,        没有代码,很难确切地说出问题所在。但是设置:
mouseChildren = false;
至少可以消除一些潜在的问题。 我不认为它与BevelFilter直接相关,您是否能够删除BevelFilter并调度MouseEvents?如果真是那样,我会感到惊讶。 另一件事要检查-eventListener在哪里设置?在某种情况下,您是否可能实际上没有添加eventListener? 除了没有代码理论化之外,真的很难做任何事情。     ,        问题在于您要将蒙版添加为要蒙版的对象的子对象,并且没有将蒙版设置为原始对象所在的位置。这是固定代码:
import flash.events.MouseEvent;

var s:Sprite = new Sprite();
s.graphics.beginFill(0xff0000,onClick);
this.addChild(s);
s.x = s.y = 100;
var m:Sprite = new Sprite();
m.graphics.beginFill(0,50);
m.x = m.y = 100;
this.addChild(m);

// comment one of these two lines out and it works
s.filters = [new BevelFilter()];
s.mask = m;

function onClick(e:MouseEvent):void
{
    trace(\'clicked\');
}
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...