更改影片剪辑的属性会停止动画

时间:2011-01-14 16:39:17

标签: flash flash-cs4 flash-cs5

我创建了一个movieclip1:head,第二个movieclip:body

创建了一个使用头部和身体的动画片段并调用该播放器。

我创建了一个简单的动画动画:效果很好!

alt text

然后我将一个班级联合起来:Head.as

package  {

 import flash.display.MovieClip;


 public class Head extends MovieClip {


  public function Head() {
   trace("here");
   //this.alpha = 1;
  }
 }

}

我可以看到跟踪输出:太棒了!

当我取消注释时跟踪this.alpha = 1,动画停止了。

为什么会发生这种情况,如何解决?

2 个答案:

答案 0 :(得分:2)

无法更改时间轴动画对象的属性。最常见的解决方案是执行以下操作。

将头部和身体嵌入自己的容器内。所以,例如,你可能有

- head
  - head_content
- body
  - body_content

这些将是您的实例名称。然后你会像时间一样在时间轴上补充头部和身体,但是通过设置

来改变头部的alpha
head.head_content.alpha = .5;

这样做仍然允许您通过时间轴补间MovieClips / Sprites,并通过ActionScript更改其属性。

这是一个例子:
http://d.pr/O5N8


为了进一步解释为什么你不能这样做...想想除alpha之外的另一个属性,比如像x,y这样的位置属性。如果你放

,你期望你的时间轴补间做什么
this.x = 100;
this.y = -10; 

在您的构造函数中?您希望基于代码的分配优先,还是希望时间轴放置工作?在您的示例中,您可能看起来不太明显,您只是在更改alpha,但alpha也是时间轴可补间属性,因此如果在动画中您正在更改Alpha,您会如何期望Flash的行为?

答案 1 :(得分:-2)

它适用于我的系统。 你必须有别的错误。检查好。