Обнаружил сегодня интересную штуку. Если сделать в классе вот так
Код AS3:
private static var _achievements:Array = [
new Achievement(100, 1, AchievementCondition.KILL_ZOMBIES),
new Achievement(101, 100, AchievementCondition.KILL_ZOMBIES),
new Achievement(102, 500, AchievementCondition.KILL_ZOMBIES),
new Achievement(103, 1000, AchievementCondition.KILL_ZOMBIES),
new Achievement(104, 5000, AchievementCondition.KILL_ZOMBIES),
new Achievement(105, 10000, AchievementCondition.KILL_ZOMBIES),
new Achievement(106, 50000, AchievementCondition.KILL_ZOMBIES),
new Achievement(107, 100000, AchievementCondition.KILL_ZOMBIES),
new Achievement(201, 10, AchievementCondition.KILL_BOSSES),
new Achievement(202, 50, AchievementCondition.KILL_BOSSES),
new Achievement(301, 10, AchievementCondition.SPEND_TIME_IN_GAME),
new Achievement(302, 60, AchievementCondition.SPEND_TIME_IN_GAME),
new Achievement(303, 120, AchievementCondition.SPEND_TIME_IN_GAME),
new Achievement(304, 120, AchievementCondition.SPEND_TIME_IN_GAME),
new Achievement(305, 300, AchievementCondition.SPEND_TIME_IN_GAME),
new Achievement(306, 30, AchievementCondition.SPEND_TIME_IN_GAME),
new Achievement(401, 10, AchievementCondition.COLLECT_WEAPONS),
new Achievement(501, 10, AchievementCondition.COLLECT_KEYS),
new Achievement(502, 50, AchievementCondition.COLLECT_KEYS),
new Achievement(503, 100, AchievementCondition.COLLECT_KEYS),
new Achievement(601, 5, AchievementCondition.COLLECT_ARTEFACTS),
new Achievement(602, 50, AchievementCondition.COLLECT_ARTEFACTS),
new Achievement(603, 100, AchievementCondition.COLLECT_ARTEFACTS),
new Achievement(604, 500, AchievementCondition.COLLECT_ARTEFACTS),
new Achievement(701, 2, AchievementCondition.PASS_CHAPTER),
new Achievement(702, 10, AchievementCondition.PASS_CHAPTER),
new Achievement(703, 20, AchievementCondition.PASS_CHAPTER)
];
А сам класс Achievement объявить в том же файле как internal, то в рантайме вывалится ошибка
Стало быть статики инициализируются раньше, чем internal классы. Если же Achievement вынести как отдельный класс, все работает отлично. Так же будет если переменную сделать не статической.
п.с. это не вопрос почему так происходит, а просто решил поделиться инфой)