AS3:Sprite 不发送鼠标事件

AS3: Sprite does not dispatch mouse event

我是 as3 新手。我开发了一个 as3 中的小应用程序。但问题是创建的精灵不发送任何鼠标事件[例如:点击]。请任何人指导我并发表评论

   .... private var progressBarHolder:Sprite = new Sprite();
        progressBarHolder.graphics.clear();
        progressBarHolder.graphics.beginFill(0xeaeaea); 
        progressBarHolder.alpha  = 0.5;
        progressBarHolder.graphics.drawRoundRect(0, 0, 80, 25, 0,0); 
        //progressBarHolder.graphics.endFill();
        progressBarHolder.width = progressBarWidth; 
        progressBarHolder.height = 24;
        progressBarHolder.x = 48;
        progressBarHolder.y = _videoModule.getHeight() - 48;
        progressBarHolder.buttonMode = true;
        progressBarHolder.addEventListener(MouseEvent.CLICK, progressBarHolderClick);
        _overlay.addChild(progressBarHolder);
        .....

谢谢!

您的代码是正确的。查找 _overlayprogressBarHolderClick 侦听器。如果 _overlay 的 属性 mouseChildren 或其他父级设置为 false.

,也会发生这种情况

如果您仍然找不到解决方案,请显示更多代码。

代码看起来不错,可能的问题:

  • 您的 sprite 的宽度和高度不为零(progressBarWidth != 0)
  • 鼠标已在父级 (_overlay) 上启用,以确保使用 - progressBarHolder.mouseEnabled = 真;
  • 确保 Z 索引上的 progressBarHolder 上方没有任何东西阻止精灵点击。