0

我有一个具有不同身体部位的角色:头发、头部、身体、手臂、腿。我用行走动画和站立动画为角色设置了动画。我在每个动画中为角色的头发指定了一个头发实例名称,因此我可以通过 AS3 访问它。假设我有一个不同的影片剪辑,它是不同类型头发的静态图像。我希望能够使用 AS3 将角色的头发更改为那个头发。

实例:模型 = 持有者影片剪辑中的动画影片剪辑。头发 = 模型的孩子,但是是动画的

类:Anim = holdermovieclip(用于更改参考点和调整大小) Hair2 我想将头发更改为 Hair2 的一个实例

anim.model.hair = new Hair2();

当我跟踪它时,它显示对象已更改,但在显示时并未更改。我正在使用 AS3IsoLib,所以这是一个示例代码:

var anim = new Anim();
var hair2 = new Hair2();
anim.model.hair = hair2;
sprites = [anim];

我测试了缩放头发,效果很好,但没有替换实例本身。

我想知道我怎么能做到这一点。如果你玩过一些 MMO 游戏,用户可以选择修改他或她的身体部位。Adventure Quest Worlds 就是一个例子。这就是我想要达到的效果。

4

1 回答 1

0

AS2 语法相当混乱:设置anim.model.hair实际上没有任何意义。以下是您应该如何编写它:

//keep a reference for the previous hair
var previousHair:MovieClip = anim.model.hair;
//copy position, rotation, scale
hair2.transform.matrix = previousHair.transform.matrix.clone(); 
//remove the previous hair from model
anim.model.removeChild(previousHair);
//put the new hair in place
anim.model.addChild(hair2);
//give a new instance name to hair2 so you can access it through anim.model.hair
hair2.name = "hair";
于 2012-04-24T08:20:35.557 回答