2017-04-13 22 views
0

所以我使用flash朋克工作在一款遊戲上,並且我已經創建了一個基礎類,其中包含基於玩家選擇的角色類型的角色屬性。這就是目前爲止這個類的樣子。如何使用參數爲類指定值? - 基本

public class Stats extends Entity 
{ 
     public var ATK:Number; 
     public var ARM:Number; 
     public var SPD:Number; 
     public var WIS:Number; 
     public var CRG:Number; 
     public var STM:Number; 

    public function Stats(ATK:Number=0, ARM:Number=0, SPD:Number=0, WIS:Number=0, CRG:Number=0, STM:Number=0) 
    { 

    } 
    override public function update():void 
    { 
     super.update(); 

    } 
} 

和在當一個按鈕被點擊我想它進行新的統計類的參數另一個類(2,6,2,2,4,4) 所以我

public var SkelStats:Stats = new Stats(2, 6, 2, 2, 4, 4); 

然後將該對象(SkelStats)分配給玩家boss類型varriable。我這樣做

public static var BossType:Stats; 

,然後點擊功能按鈕下的I類添加

Player.BossType = SkelStats; trace(Player.BossType.ATK) 

和跟蹤總是拿出0,除非我改變的統計類本身varriable(ATK)。 (SkelStats)

對不起,如果這太容易混淆,我可以回答任何有關我的代碼的問題,如果有什麼不清楚的話。我只是不確定我在這裏做錯了什麼。

回答

1

我明白了!我所要做的就是將構造函數中的變量存儲在類中。顯然構造函數定義的變量是暫時的。因此,我改變

public var ATK:Number; 
    public var ARM:Number; 
    public var SPD:Number; 
    public var WIS:Number; 
    public var CRG:Number; 
    public var STM:Number; 

這個

public var attack:Number; 
    public var armour:Number; 
    public var speed:Number; 
    public var wisdom:Number; 
    public var courage:Number; 
    public var stamina:Number; 

並添加此

attack = ATK; 
    armour = ARM; 
    speed = SPD; 
    wisdom = WIS; 
    stamina = STM; 
    courage = CRG; 

這個

public function Stats(ATK:Number=0, ARM:Number=0, SPD:Number=0, WIS:Number=0, CRG:Number=0, STM:Number=0) 
{ 

} 

年底類看起來像這樣和作品正是我想要的它到:

public class Stats extends Entity 
{ 
     public var attack:Number; 
     public var armour:Number; 
     public var speed:Number; 
     public var wisdom:Number; 
     public var courage:Number; 
     public var stamina:Number; 

    public function Stats(ATK:Number=0, ARM:Number=0, SPD:Number=0, WIS:Number=0, CRG:Number=0, STM:Number=0) 
    { 
     attack = ATK; 
     armour = ARM; 
     speed = SPD; 
     wisdom = WIS; 
     stamina = STM; 

    } 
} 

在這裏找到所有這些答案:AS3 passing constructor parameters as variables in class