【问题标题】:AS3 - AddEventlListener on MovieclipAS3 - 影片剪辑上的 AddEventlListener
【发布时间】:2015-05-16 14:15:47
【问题描述】:

自从我上次在 AS3 中编码以来已经有一段时间了,所以我不记得将 Movieclip 放入舞台然后将其绑定到事件的正确方法。 我这样做了:

  1. 使用此 AS3 代码创建一个空的 MC,其中包含一个空形状和一个空关键帧:

    this.addEventListener(MouseEvent.CLICK, function(){trace("ok");})

  2. 在我需要的时候把MC放到舞台上

不幸的是,当我运行它并尝试单击时,控制台中没有出现任何消​​息。 有什么想法吗?

谢谢

【问题讨论】:

    标签: actionscript-3 flash events


    【解决方案1】:

    另一方面,时间轴剪辑始终具有对舞台的引用,因此如果您将侦听器添加到stage 而不是this,则可以跟踪ok

    【讨论】:

    • 实际上我认为这行不通。舞台上必须有一些东西会首先真正派发点击事件。当你点击一个空的阶段时,它不会派发点击事件。
    • 它应该可以工作。 stage 代表主要绘图区域,它有 displayObjectContainer ,交互式对象......作为祖先。它不能在全球范围内访问,但在进入阶段时它应该可以工作。
    • 是的,但前提是它上面有一个可以实际发送点击事件的孩子,而问题似乎并非如此。创建一个空的flash项目,给stage添加一个click监听器,运行项目然后在运行的时候点击stage的背景,你的监听器很可能不会被调用。
    • 虽然我只是在 Flash Develop 中尝试过并且它工作正常,所以也许我完全错了......
    【解决方案2】:

    为了让对象调度CLICK 事件,必须有一些东西可以点击。空形状没有边界,因此没有可以单击的内容。在形状中填充/绘制某些东西将解决问题。

    this.graphics.beginFill(0);
    this.graphics.drawRect(0,0, stage.stageWidth,stage.stageHeight);
    this.graphics.endFill();
    this.addEventListener(MouseEvent.CLICK, function(){trace("ok");})
    

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
    • @papirtiger - 如果你看过,你会看到这个答案来自作者,它是对这个问题的回答(可能是一个非常糟糕的问题)
    • 我在近距离投票时可能有点快 - 但很难与最初写的评论区分开来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 2017-06-24
    • 2013-12-22
    相关资源
    最近更新 更多