【问题标题】:Mouse Over in whole Stage?鼠标悬停在整个舞台上?
【发布时间】:2011-04-15 15:31:38
【问题描述】:

当用户将鼠标放在我的 Flash 阶段时,我想运行一个 Actionscript 函数。 不在舞台上的特定按钮/图像中,而只是在舞台上。 但是,当尝试在舞台上使用鼠标悬停动作时,我收到以下消息: "这个动作需要在舞台上选择一个对象。"

那么,我怎样才能在整个舞台上使用鼠标呢?

【问题讨论】:

    标签: flash actionscript


    【解决方案1】:

    在 AS3 中,当鼠标离开舞台时有一个事件,因此您可以执行类似的操作来获取用户鼠标是否在舞台上。

    var _mouseOnStage : Boolean = true; stage.addEventListener(MouseEvent.MOUSE_LEAVE, onMouseLeave); stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); 函数 onMouseLeave(e:MouseEvent) : void { _mouseOnStage = 假; } 函数 onMouseMove(e:MouseEvent):void{ _mouseOnStage = 真; }

    【讨论】:

      【解决方案2】:

      你需要有一些可以点击的东西,比如一些图形绘图。

      如果您用相同大小的矩形填充舞台,然后向舞台添加事件侦听器,它应该会识别它。

      【讨论】:

      • 嗯...我尝试在与舞台“一样大”的图层中添加一个矩形,并在此矩形中使用 mouseover() 事件。问题是,当其他按钮位于该层上方并且您将鼠标移动到这些按钮(在舞台上方)时,mouseover() 不起作用。它仅在将鼠标移动到矩形上方按钮之间的“空白点”上时才有效
      • 好的,这是因为舞台层位于显示列表中的按钮之上,并且覆盖了它们的事件侦听器。您应该使用 addChildAt(button, 0); 确保按钮在显示列表中更高。方法调用。您是否将按钮添加为背景矩形的子级?如果您发布了一些代码,那将非常有用。
      • 嗯,是的,写完之后我以为我错了..忽略我。
      猜你喜欢
      • 2014-07-01
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      • 2011-08-04
      • 2018-09-03
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      相关资源
      最近更新 更多