0

髪、頭、体、腕、脚など、体の部分が異なるキャラクターがいます。ウォークアニメーションとスタンドアニメーションでキャラクターをアニメートしました。AS3を介してアクセスできるように、これらの各アニメーションでキャラクターの髪に髪のインスタンス名を付けました。別の種類の髪の静止画像である別のムービークリップがあるとします。AS3を使ってキャラクターの髪の毛をその髪の毛に変えられるようにしたいと思います。

インスタンス:モデル=ホルダーmovieclip内のアニメーションmovieclip。髪=モデルの子ですが、アニメートされています

クラス:Anim =ホルダームービークリップ(参照ポイントの変更とサイズ変更用)Hair2髪をHair2のインスタンスに変更したい

anim.model.hair = new Hair2();

トレースすると、オブジェクトが変更されていることが示されていますが、表示されているものは変更されていません。AS3IsoLibを使用しているので、次のコード例を示します。

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

ヘアのスケーリングをテストしましたが、これは正常に機能しますが、インスタンス自体は置き換えられません。

どうすればこれを達成できるのだろうと思っていました。一部のMMOゲームをプレイした場合、ユーザーは自分の体の部分を変更するオプションがあります。例として、AdventureQuestWorldsがあります。それが私が達成したい効果です。

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 に答える