Как ссылаться на библиотеку JavaScript в Haxe - PullRequest
4 голосов
/ 12 марта 2019

Я читал о гидродинамике и наткнулся на этот потрясающий проект. После сборки я заметил, что маленькое меню опций, которое появляется в демоверсии 1004 *, не отображается.

Итак, поскольку я совершенно новичок в Haxe, я подумал, что добавление маленькой панели параметров графического интерфейса будет большой маленькой проблемой в попытке ознакомиться с Haxe. Тем не менее, я упал на первое препятствие, поскольку я получаю следующую ошибку, пытаясь построить графический интерфейс, который находится поверх эксперимента, как показано в демонстрационной версии:

Uncaught ReferenceError: дата не определена

Внутри каталога маршрутов проектов у меня есть папка src, затем Main.hx; внутри Main.hx внизу функции init() я делаю следующее:

import dat.GUI;

function init():Void {
    //other unrelated code goes here

    var gui = new dat.GUI({autoPlace: true});
    //particle count
    var particleCountGUI = gui.add(particles, 'count').name('Particle Count').listen();
}

Когда я запускаю программу, консоль печатает указанную ошибку.

То, что я сделал:

Внутри project.flow в каталоге маршрутов я сделал ссылку на dat в зависимостях сборки (и скачал dat.gui , конечно).

Я даже пытался использовать другие фреймворки для построения GUI, но я продолжаю получать ошибки в журнале консоли, даже если сборка прошла успешно. Мне повезло, что я добавил панель, но вместо того, чтобы сидеть на вершине эксперимента с жидкостью, он оттолкнул все это, так что между панелью и экспериментом с жидкостью было пространство.

В идеале я хочу воссоздать панель параметров, показанную в демоверсии, но вместо этого сделать ее прокручиваемым списком. Однако мне нужно понять, почему у меня сначала возникают проблемы с dat! 1034 *

1 Ответ

4 голосов
/ 12 марта 2019

Самое простое решение, которое я могу придумать, это добавить это к init() (при условии, что .js находится в корне проекта):

haxe.macro.Compiler.includeFile("dat.gui.min.js");

includeFile()является макросом , который непосредственно встраивает файл в .js, сгенерированный Haxe (по умолчанию вверху файла).Этого достаточно, чтобы пользовательский интерфейс появился для меня:

Альтернативой может быть добавление тега <script> в файл index.html, как описано здесь .Я не достаточно знаком со средством построения потока, чтобы знать, что это сделано в этом случае, но вам нужно найти способ:

  • изменить шаблон index.html, включив в него <script> tag
  • заставьте его скопировать min.js в каталог bin/web.

Так что да, includeFile() определенно кажется более удобным вариантом.:)

...