Обходной путь к известковому наследию, не обеспечивающему доступ к классам извести
Я использую 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, было бы более чистым решением.