我有这门课,我们称之为:Klass。
Klass 类的构造函数有一个参数,该参数是一个默认值为 null 的数组。
我在另一个类中创建了一个类 Klass 的对象,我们称之为:“MotherClass”。
现在是当它变得奇怪时,在我实例化对象 Klass 之后,再次调用 Klass 的构造函数,就在 MotherClass 的构造函数结束之后(我放置了一个断点,我一步一步地跟随),构造函数参数为空。
问题是,我没有第二次调用 Klass 构造函数的任何东西的堆栈跟踪,不知道什么会再次调用该构造函数......
有任何想法吗?
谢谢。
(Klass 实现了一个接口,我正在使用数组创建一个实例,不确定这是否会影响任何东西)
按要求添加代码:
这是MotherKlass类:
public class Unit extends EntityVO{
public function Unit(level:int = 1)
{
//init vars and stuff
//...
//
initLevelData();
applyLevel = level;
}
private function initLevelData():void {
levelData[1] = [500, [[Spawn, this.entityToSpawn.type, this.entityToSpawn.level, 120]], "unit_level1"];
levelData[2] = [1000, [[Spawn, this.entityToSpawn.type, this.entityToSpawn.level, 90]], "unit_level2"];
levelData[3] = [2000, [[Spawn, this.entityToSpawn.type, this.entityToSpawn.level, 80]], "unit_level3"];
levelData[4] = [5000, [[Spawn, this.entityToSpawn.type, this.entityToSpawn.level, 60]], "unit_level4"];
}
override public function set applyLevel(level:int):void {
power = power / maxPower * levelData[level][0];
maxPower = levelData[level][0];
behavior = levelData[level][1];
for (var i:int = 0; i < behavior.length; i ++){
_behaviorSteps[i] = new behavior[i][0](behavior[i].slice(1));
_behaviorReqs.push(_behaviorSteps[i].req);
}
}
}
}
}
这是克拉斯:
public class Spawn {
public class Spawn implements IBehavior
{
private var _entityType:String;
private var _entityLevel:int;
private var _spawnRate:int;
public function Spawn(params:Array = null){
//had to put the if because of the second weird call to the constructor with null
if(params){
_entityType = params[0];
_entityLevel = params[1];
_spawnRate = params[2];
}
}
}
}
}