コードは問題をかなりよく示しています、私は無関係なものをすべて切り取りました。
ゲーム開始時に2〜4人の親族を作成する
function createInitialKinsmen()
{
for (var k:int = 1; k < 3 + Math.round(Math.random() * 2; k++)
{
if (k == 1)
{
createKinsmen(0);
trace ("player");
}
else
{
createKinsmen(1);
trace ("starting kinsmen");
}
}
}
キンズメン作成機能
function createKinsmen(arrivalTypeVar:int)
{
var newKinsmen = new kinsmen;
listPanel.kinsmenDivider.addChild(newKinsmen);
totalKinsmen++;
totalKinsmenAlive++;
newKinsmen.name = "kinsmen" + totalKinsmen;
newKinsmen.arrivalType = arrivalTypeVar;
}
キンズメンクラス
public class kinsmen extends MovieClip
{
var arrivalType:int;
function kinsmen()
{
trace(this.name);
if (this.arrivalType = 0)
{
trace("player");
}
if (this.arrivalType = 1)
{
trace("starting kinsmen");
}
}
}
出力は次のようになります。
kinsmen1
player
player
kinsmen2
starting kinsmen
starting kinsmen
kinsmen3
starting kinsmen
starting kinsmen
kinsmen4
starting kinsmen
starting kinsmen
しかし、代わりに言う:
kinsmen1
player
player
kinsmen2
player
starting kinsmen
kinsmen3
player
starting kinsmen
kinsmen4
player
starting kinsmen
これは、arrivalType変数が渡されていないことを意味します。ハードコードされた変数を渡すことができるようですが、現時点では、kinsmen movieclip内にアルファ0の正方形があり、そのx位置がコンストラクターのarrivalTypeの値を決定しますが、これは確かに良い習慣ではありません。これを行うためのより良い方法はありますか?