【问题标题】:Changing alpha of an MC on hover在悬停时更改 MC 的 alpha
【发布时间】:2011-04-11 05:11:01
【问题描述】:

这看起来应该对我有用,但显然我做错了什么。我不知道究竟是什么,这显然是一个新手在谷歌上寻找答案的错误,所以我们将不胜感激。

this.addEventListener(MouseEvent.MOUSE_OVER,function() {
        this.alpha=0
        })

在 MC 中,我希望它在鼠标悬停在它上面时变得不可见。我将这段代码放在 MC 中而不是从中创建实例的原因是因为这个 MC 会重复出现很多次。正如使用 trace() 测试的那样,侦听器确实有效。无论出于何种原因,阿尔法都没有。感谢您的帮助。

【问题讨论】:

  • “不起作用”对于任何问题的描述都非常糟糕。它总是需要澄清 - 它是否没有效果,或者逐步淘汰目标剪辑以外的东西,或者其他东西。它怎么不起作用?
  • 显然回答的人理解了这个问题。如果您对要回答的问题足够了解,您就会知道“这个”不会影响其他事情。相反,它会影响“this”(带有代码的 MC)或什么都不影响(在这种情况下)。

标签: actionscript-3 mouseover movieclip


【解决方案1】:

当你使用闭包(使用匿名函数内联)时,你会失去作用域。 this 不是您悬停的对象。

你可以使用

var me:DisplayObject = this;

然后(更正的代码)

addEventListener(MouseEvent.MOUSE_OVER,function(event:MouseEvent):void {
    me.alpha=0
})

请注意,我还在您的侦听器中放置了一个 event:MouseEvent 参数,否则您会收到运行时错误(您不是已经收到了吗?)

【讨论】:

  • 只有在事件中使用外部函数时才会出现事件错误。正如你所说的,闭包永远不会给我错误。我也想知道为什么,但它对我有用。我想这是CS4的事情。还要感谢您澄清它为什么不起作用的原因。
猜你喜欢
  • 2010-11-13
  • 2011-10-21
  • 2015-09-06
  • 1970-01-01
  • 1970-01-01
  • 2014-06-10
  • 2012-06-10
  • 2012-03-13
  • 2016-08-07
相关资源
最近更新 更多