我创建了一个movieclip1:head,第二个movieclip:body
创建了一个使用头部和身体的动画片段并调用该播放器。
我创建了一个简单的动画动画:效果很好!
然后我将一个班级联合起来:Head.as
package {
import flash.display.MovieClip;
public class Head extends MovieClip {
public function Head() {
trace("here");
//this.alpha = 1;
}
}
}
我可以看到跟踪输出:太棒了!
当我取消注释时跟踪this.alpha = 1,动画停止了。
为什么会发生这种情况,如何解决?
答案 0 :(得分:2)
您无法更改时间轴动画对象的属性。最常见的解决方案是执行以下操作。
将头部和身体嵌入自己的容器内。所以,例如,你可能有
- head
- head_content
- body
- body_content
这些将是您的实例名称。然后你会像时间一样在时间轴上补充头部和身体,但是通过设置
来改变头部的alphahead.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)
它适用于我的系统。 你必须有别的错误。检查好。