使用 addChild() 时,MovieClip 没有播放动画

Posted

技术标签:

【中文标题】使用 addChild() 时,MovieClip 没有播放动画【英文标题】:MovieClip did not play animation when using addChild() 【发布时间】:2013-03-29 09:42:58 【问题描述】:

我正在尝试制作一个简单的 Flash 游戏。

我一直在搜索这个问题,但找不到任何对我有帮助的问题/答案,所以这里是:

我正在尝试使用addChild() 来生成口袋妖怪影片剪辑

    var comPkm:MovieClip = new bulbasaur;
    comPkm.x = 620;
    comPkm.y = 270;
    comPkm.height = 80;
    comPkm.width = 77;
    addChild(comPkm);
    comPkm.gotoAndPlay("idle");

问题是:口袋妖怪的“空闲”姿势根本不玩。 但是,如果我将口袋妖怪直接放到时间线上,它会起作用。 知道什么是错的,解决方案是什么?谢谢:)

【问题讨论】:

comPkm.gotoAndPlay("idle");这是文档的类名,还是在时间上是 idel 还是在时间轴主舞台上的影片剪辑中处于空闲状态 comPkm = 实例名称; “idle”是第 1 帧的标签。在第 1 帧内,有另一个动画剪辑在移动。 comPkm.gotoAndStop("idle")? 不工作,两种都试过了。无论如何谢谢:-) 【参考方案1】:

很遗憾,设置 MovieClip 的某些属性会导致该剪辑不播放动画。设置 x、y、高度或宽度会中断时间线动画。没有任何消息的无声失败让我困惑了好几次。一种解决方法是创建父占位符并让 ActionScript 修改父或子。示例:

comPkm.parent.x = 620;
comPkm.parent.y = 270;
comPkm.parent.height = 80;
comPkm.parent.width = 77;

相关:Scaling onstage MovieClip w/ "scaleX" breaks timeline animation ...really?

如果修改包含补间动画的 MovieClip 对象的以下任何属性,则播放头将在该 MovieClip 对象中停止:alpha、blendMode、filters、height、opaqueBackground、rotation、scaleX、scaleY、scale9Grid、scrollRect、变换、可见、宽度、x 或 y。但是,它不会停止该 MovieClip 对象的任何子 MovieClip 对象中的播放头。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/MovieClip.html

根据我的经验,播放头永久损坏,忽略未来对 gotoAndPlay 的调用。

【讨论】:

以上是关于使用 addChild() 时,MovieClip 没有播放动画的主要内容,如果未能解决你的问题,请参考以下文章

使用flex如何动态的获取数据,生成饼图或曲线图。我是新手,请高手指教

AS3绘制API线条绘制和DropShadow

AS3曲线绘制API和Glow

AS3绘制正方形模糊和渐变填充

如何从库中动态添加对象?

变量 addChild 没有定义?