Я почти уверен, что выслеживаю его после вызова init.Здесь я добавил несколько следов и показал код, по которому я вызываю init:
Класс GameScreen вызывает init:
package
{
import flash.display.MovieClip;
public class GameScreen extends MovieClip
{
public var docClass:Test;
public function GameScreen(passed_class:Test)
{
// constructor code
docClass = passed_class;
trace("call init");
_character.init(this);
}
}
}
Класс символов:
package Character {
import flash.display.MovieClip;
public class Character extends MovieClip {
protected var test_declared_early:String = "declared early";
protected var test_declared_late:String;
private var knight:Knight;
public function Character() {
// constructor code
}
public function init(_local_stage:Object){
trace("setting late variable");
test_declared_late = "declared late";
trace("construct a knight");
knight = new Knight("matt");
}
}
}
Knightподкласс:
package Character{
public class Knight extends Character.Character {
private var myName:String;
public function Knight(local_name:String) {
// constructor code
myName = local_name;
trace("in knight constructor, early= " + test_declared_early); //this is not null
trace("in knight constructor, late= " +test_declared_late); //this is null
}
}
}
Вывод всего этого:
call init
setting late variable
construct a knight
in knight constructor, early= declared early
in knight constructor, late= null
Возможно, я не понимаю, что вы, но все равно похоже, что я вызываю init и устанавливаю переменную передЯ прослеживаю это в подклассе.
Спасибо за вашу помощь!