Нет, это не то же самое, что и у другого вопроса с тем же именем.Как вы взаимодействуете с js из дротика?
Есть, по-видимому, идентичные пакеты, которые, похоже, делают это, но с разными apis.
- http://dart-lang.github.io/js-interop/docs/js.html
- https://api.dartlang.org/docs/channels/stable/latest/dart_js.html
Почему существуют два?
Какой из них мы должны использовать?
Взаимодействие одно выглядит более новым и имеет лучшее api, но на самом деле не работает. Согласно документации, вы должны быть в состоянии преобразовать этот JavaScript:
var stage = new PIXI.Stage(0xFFFFFF);;
renderer = PIXI.autoDetectRenderer(800, 600);
document.body.appendChild(renderer.view);
В:
var pixi = new js.Proxy(js.context.PIXI.Stage, 0xffffff);
var renderer = js.context.PIXI.autoDetectRenderer(400, 400);
document.body.append(renderer.view);
Но ошибки при попытке скомпилировать:
dart2js
Error occured:/Users/doug/megac/client/public/dart/index.dart:7:27:
Warning: No member named 'PIXI' in class 'Proxy'.
var pixi = new js.Proxy(js.context.PIXI.Stage, 0xffffff);
^^^^^^^^^^^^^^^
Так .. js: дротик? Это то, что вы должны использовать?
Редактировать: Кстати, для тех, кто натыкается на это, есть также открытая ошибка http://code.google.com/p/dart/issues/detail?id=15795&thanks=15795&ts=1388068177 относительно того, как минимизированы операции по мостовому соединению dart-js в настоящий момент. Оригинальная проблема была сообщена в мае 2013 года, и с тех пор с ней не было никаких действий, поэтому не задерживайте дыхание.
Последняя ошибка вы получаете, кажется, доказать, что вы забыли добавить '< script src = "pixi.js"> 'на вашей странице html. –
nope. Это не так. Фактически, js.context ['PIXI'] ['Stage'] отлично работает, документация просто неверна. – Doug
Хорошо, вы просто вводите в заблуждение API-интерфейсы [dart: js] (https://api.dartlang.org/docs/channels/stable/latest/dart_js.html) и [package: js] (http: // pub .dartlang.org/пакеты/JS). –