該代碼很好地說明了這個問題,我將所有不相關的東西都刪除了。如何將變量傳遞給新的孩子? [flash AS3]
創建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變量沒有被通過。這似乎是硬編碼的變量可以通過,因此,此刻我有一個與alpha 0在親族動畫片內的正方形,它的x位置決定了arrivalType在構造函數中的值,但這肯定不是好的做法,有沒有更好的方法來做到這一點?
TR在你的條件下將'='改爲'==' – www0z0k 2013-02-12 06:57:11
@ www0z0k很好,這將是一個問題......我仍然認爲他需要將args傳遞給他的構造函數。他的構造函數邏輯執行,然後他設置所述邏輯依賴的變量。 – 2013-02-12 20:32:56