Обходной путь к известковому наследию, не обеспечивающему доступ к классам извести

Я использую HaxePunk 2.5.6 с OpenFL 3.6.1 и Lime 2.9.1; Я прочитал в выпуске о HaxeFlixel GitHub, что Lime запрещает доступ к его классам по наследству. Это большая проблема, потому что HaxePunk по умолчанию использует устаревшую версию. Я хочу использовать lime.ui.FileDialog открывать и сохранять файлы, но поскольку HaxePunk застрял с устаревшим, очевидно, это не работает (lime.ui.FileDialog читается как null вместо Class<lime.ui.FileDialog>...). Есть ли обходной путь к этому? Я не видел в OpenFL ничего, что могло бы заменить это, поэтому я действительно потерян. Очевидно, я не хочу устанавливать какую-либо дополнительную библиотеку, если это действительно не нужно. С помощью -Dnext или же -Dhybrid при компиляции для переопределения -Dlegacy ломает все, так что это тоже не решение.

Спасибо заранее!

1 ответ

Вы могли бы пойти в <haxelib directory>/lime/2,9,1/legacy и отменить изменения include.xml в соответствующем коммите, удалив эту строку:

<haxeflag name="--macro" value="exclude('lime')" />

Однако, как описано в этой теме, это добавляет зависимость lime.ndll (в отличие от lime-legacy.ndll, который является единственным копируется в /bin для устаревших сборок), так что ваш двоичный файл будет зависать при доставке на другие компьютеры, на которых не установлена ​​Haxe.

Вы можете обойти это, вручную копируя lime.ndll более (или добавить <ndll name="lime" dir="ndll" /> в наследство include.xml), но использование сторонней библиотеки, такой как systools или linc_dialogs, было бы более чистым решением.

Другие вопросы по тегам