使用三级嵌套swf鼠标悬停时gotoandplay的奇怪行为

时间:2014-11-06 09:41:42

标签: actionscript-3 flash flex

我有一个swf-A,只要在某个对象上触发MOUSE_OVER事件,就会使用gotoAndPlay加载并播放swf-B。将鼠标悬停在对象上时,播放swf-B的动画,一切正常。

object.addEventListener(MouseEvent.MOUSE_OVER,handleMouseEvent);

[Embed(source = "B.swf")]
public static var EmbedSwf:Class;
[Bindable]public var _swf:MovieClipLoaderAsset = new EmbedSwf();

private function handleMouseEvent(e:Event):void{
  MovieClip(Loader(_swf.getChildAt(0)).content).gotoAndPlay("animation_start");
}

然而,当我将swf-A嵌入到另一个swf-C中时,当鼠标超过swf-B时,不会播放swf-B的动画,而是在将鼠标放在swf-B上并移出后播放。 (出现的时机很奇怪)

我已确认鼠标事件已正确触发。我还将swf-C的mouseEnabled设置为false,并将swf-A设置为使用与swf-C相同的ApplicationDomain。

由于当swf-A没有嵌入swf-C时没有发生问题,我认为问题可能来自嵌入。当swf-A嵌入到swf-C中时,我是否想念一些东西?

这是我第一次在这个网站上询问。如果我的问题还不够,请告诉我。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。问题的一个原因是包装swf-C(flex-4.6)的flex版本高于包裹的swf-A(flex-3.4.1.10084A)并且它引起了奇怪的行为。

我降级了包装swf-C的flex版本,一切顺利。