Как использовать Jangaroo для преобразования одной функции As3 в javascript?
Я наткнулся на Дженгуру, и он, кажется, обеспечивает то, что мне нужно. Проблема в том, что для его использования документы говорят, что мне нужно настроить Maven.
У меня действительно есть одна функция, так что все это немного излишне.
Идеальным решением было бы что-то похожее на Telerik Code Converter ( http://converter.telerik.com/), но для AS3.
1 ответ
Я только что обновил документацию о том, как использовать Jangaroo в качестве инструмента командной строки:
https://github.com/CoreMedia/jangaroo-tools/wiki/Stand-Alone-Compiler
Выполнив шаги с 1 по 6, вы можете скомпилировать свой единственный класс следующим образом:
mkdir joo\classes
jooc -v -g SOURCE -classpath %JOOLIBS%\jangaroo-runtime.jar -sourcepath . -d joo\classes GACodec.as
Обратите внимание, что сгенерированный файл JavaScript GACodec.js
работает только вместе со средой исполнения jangaroo. На вики-странице продолжаются инструкции о том, как получить работающее веб-приложение. Для вашего класса, вам просто нужно распаковать jangaroo-runtime.jar
:
"%JAVA_HOME%\bin\jar" -xf %JOOLIBS%\jangaroo-runtime.jar
Затем вы можете запустить свой класс из крошечного HTML-файла, который выглядит так:
<script src="joo/jangaroo-runtime.module.js"></script>
<script>
joo.classLoader.import_("GACodec");
joo.classLoader.complete(function() {
alert(new GACodec().encode("FOOBAR!"));
});
</script>
Испытывая ваш код, я заметил, что для его работы необходимо внести небольшие изменения: Jangaroo не генерирует неявный код инициализации для типизированных локальных переменных. В вашем коде есть как минимум две строки, в которых целочисленная переменная объявлена, но не инициализирована явно. ActionScript установил бы его 0
, но Дженгуру нет. В любом случае, лучше сделать явную инициализацию, и если вы это сделаете, то есть в вашем исходном коде заменить
var i:int;
от
var i:int = 0;
насколько я могу судить, кажется, работает!
И последнее, я считаю, что использовать Maven проще, чем устанавливать Jangaroo SDK, поскольку вам просто нужно установить Maven один раз, и он позаботится обо всех необходимых загрузках и сделает обновление до последней версии Jangaroo быстрым: просто увеличьте номер версии Jangaroo в своем pom.xml
и Maven позаботится обо всем остальном.