2017-04-13 18 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