2015-08-15 2 views
2

Я пытаюсь инициализировать статическое поле класса в Haxe со значением Float, но компилятор жалуется, что инициализатор недействителен.Устанавливает нестатические данные из статической инициализации статического поля в Haxe

У меня нет большого опыта использования Haxe, поэтому, если кто-нибудь может мне помочь, я был бы очень благодарен.

Вот код:

Enemy.hx

А вот ошибка:

cmd

+0

Если 'Lib.current.stage.stageWidth' было статическое поле, она будет работать. Чтобы исправить это, вы также можете сделать радиус не статическим и установить радиус в конструкторе. –

ответ

4

"Invalid доступа к полю" в основном пустая ссылка ошибки, а это означает, что Lib.current.stage является null в то время, когда статические поля инициализируются. В качестве обходного пути, вы можете использовать свойство с геттер, так что он доступен позже:

public static var radius(get, never):Float; 

private static function get_radius():Float 
{ 
    return Lib.current.stage.stageWidth/35; 
} 
+0

Спасибо! Это решило проблему! –

Смежные вопросы