Создание экстернов Haxe для EaselJS

Будучи новичком как в JavaScript, так и в Haxe, у этого может быть простой ответ, но я обнаружил, что у Haxe есть порт externs в GoogleCode для EaselJS, но они устарели и соответствуют более ранней версии. Мне удалось исправить ошибки, возникающие во время компиляции, но я все еще опасаюсь, что не уловил все новые имена переменных и функций.

Мой вопрос: есть ли простой способ генерировать экстерны для большой библиотеки JS, такой как EaselJS?


person Alex B    schedule 18.01.2012    source источник


Ответы (3)


Возможно, вы захотите взглянуть на работу Джошуа Граника с BuildJS:

http://www.joshuagranick.com/blog/2011/10/14/use-buildjs-to-make-externs-for-haxe-js-automatically/

По сути, есть инструмент под названием JSDuck, который должен компилировать документацию для библиотек JavaScript и может выводить в JSON. Он использовал выходные данные JSON в сочетании со своей библиотекой buildjs для создания расширений haxe.

Он использовал его для Sencha Touch, а я использовал его для ExtJS, но оба они являются продуктами Sencha, и известно, что их стиль кодирования работает с JSDuck. Вы можете попробовать его с EaselJS, если он работает, то BuildJS должен генерировать довольно точные экстерны.

В противном случае вы можете попытаться найти автора исходных расширений EaselJS и посмотреть, могут ли они предоставить обновление или помочь вам создать точное обновление. С большинством разработчиков haxe вы можете легко связаться, используя список рассылки или группы google:

http://groups.google.com/group/haxelang?hl=en

person Jason O'Neil    schedule 19.01.2012

Я немного опоздал с ответом, но вы можете найти последние (v0.5.0) экстерны для EaselJs здесь:

https://github.com/Fintan/easelhx

Я сгенерировал их с помощью BuildHx (https://github.com/jgranick/buildhx), который теперь может анализировать комментарии YUIDoc, а затем протестировал их, перенеся некоторые примеры кода, сопровождающие исходный код EaselJs.

person fintan    schedule 19.11.2012

Верно, я пытался установить инструмент Джошуа, но столкнулся с проблемой с JSDuck.

В примере, на который вы ссылаетесь, JSDuck должен иметь параметр --json, но последняя версия, похоже, устарела. Я пробую некоторые другие, используя файл конфигурации:

{    
"--out": "out",
"--guides": "json",
"--warnings": ["all"],
"--": [
    "src/easeljs/"
]}

Но это не работает. Кажется, что параметр guides терпит неудачу, независимо от того, что я пытаюсь.

Создание файла json дает мне этот вывод:

C:/Users/mycmp/AppData/Local/Temp/ocr374A.tmp/lib/ruby/gems/1.8/gems/jsduck-3.3.0/lib/jsduck/json_duck.rb:36:in `read': Permission denied - K:/Vault/Haxe/myproj/json (Errno::EACCES)

Поэтому я не уверен, что делать дальше. Было бы здорово заставить это работать для многих библиотек.

Кстати, я использую последнюю версию JSDuck и Windows 7.

person Makai Media    schedule 19.01.2012
comment
Вместо --json (который был удален) используйте --export=full. Параметр --guides не имеет никакого отношения к экспорту. Запустите jsduck --help=full для обзора всех параметров. - person Rene Saarsoo; 12.03.2012