(Flash Professional,AS3)
我正在开发一个自定义头像系统,您可以在其中选择各种手势和颜色。例如,我有一个“头发”动画片段,有10个发型。每个帧都有一个不同发型的动画片段(HairStyle1,HairStyle2等)。我还有一个colorPicker来改变颜色。
这是我的代码:
var hairColor:ColorTransform;
hairColor = mc_myAvatar.hair.colorLayer.transform.colorTransform;
hairColor.color = 0xCCCC00;
mc_myAvatar.hair.colorLayer.transform.colorTransform = hairColor;
这正确地改变了初始颜色。我有一个“nextHair”按钮将mc_myAvatar.hair推进到下一帧。当我单击该按钮时,我收到一条错误消息,指出我有一个空对象引用。我添加了一个跟踪,mc_myAvatar.hair.colorLayer在第2帧为空。为什么???我已经在第2帧中将HairStyle2命名为“colorLayer”。
我认为问题与我使用不同类/动画片段的相同名称有关,但我不知道如何解决问题......
我在hairStyle影片剪辑下方添加了一个方形影片剪辑,命名方形“colorLevel”,并从我的hairStyle剪辑中删除了该名称。当我单击下一个按钮时,正方形会正确地保持帧与帧之间的颜色。然而,拥有一个正方形对我没有多大好处。 :(
我尝试将hairStyle图层转换为蒙版。但是,这样做会导致另一个“空对象”错误 - mc_myAvatar.hair.colorLayer在第1帧之后为空。我甚至尝试在所有帧(没有关键帧)上“跨越”我的colorLevel,认为这会给我一个使用movieclip。没运气。同样的错误!
这是怎么回事?为什么我在动画片段中明确定义了这些空对象?
我也愿意接受有关更好地制作多种帧和颜色的建议。