Получение этой ошибки после обновления Chrome с версии 34.0.1847.137 m до 35.0.1916.114 m. Нет проблем с запуском Dart-Code непосредственно в Chromium. Проблема возникает после сборки на JS.
NoSuchMethodError : method not found: 'Symbol("effectAllowed=")'
Receiver: Instance of 'UnknownJavaScriptObject'
Arguments: ["move"]
STACKTRACE:
Error
at dart.wrapException (http://127.0.0.1:4031/main.dart.js:3295:15)
at UnknownJavaScriptObject.Interceptor.noSuchMethod$1 (http://127.0.0.1:4031/main.dart.js:362:15)
at UnknownJavaScriptObject.Object.set$effectAllowed (http://127.0.0.1:4031/main.dart.js:67163:19)
at dart.J.set$effectAllowed$x (http://127.0.0.1:4031/main.dart.js:124901:39)
at _installDraggable_closure0.call$1 (http://127.0.0.1:4031/main.dart.js:115318:9)
at _rootRunUnary (http://127.0.0.1:4031/main.dart.js:27280:14)
at _ZoneDelegate.runUnary$3 (http://127.0.0.1:4031/main.dart.js:33193:58)
at VmTurnZone__onRunUnary_closure.call$0 (http://127.0.0.1:4031/main.dart.js:14287:30)
at VmTurnZone._onRunBase$4 (http://127.0.0.1:4031/main.dart.js:14155:17)
at VmTurnZone._onRunUnary$5 (http://127.0.0.1:4031/main.dart.js:14176:19)
После обновления функция перетаскивания нашего кода больше не работает в JS. Мы используем следующую библиотеку перетаскивания: https://github.com/marcojakob/dart-html5-dnd
Мы используем следующий декоратор:
@Decorator(
selector: '[xpDrag]'
)
class XpDrag{
static final DragHandler dh = new DragHandler();
dom.Element element;
var mouse_down;
var mouse_up;
XpDrag(this.element){
dh.dragGroup.install(element);
mouse_down = element.onMouseDown.listen((e)=>dh.startDrag(e));
}
}
И эти прослушиватели событий:
class DragHandler{
static final DragHandler _singelton = new DragHandler._internal();
dnd.DraggableGroup dragGroup = new dnd.DraggableGroup();
dnd.DropzoneGroup dropGroup = new dnd.DropzoneGroup();
bool listenerRegistered = false;
DragHandler._internal(){
// dragGroup
dragGroup.dropEffect = dnd.DROP_EFFECT_MOVE;
// dropGroup
dropGroup.install(querySelector('#stage'));
dropGroup.accept.add(dragGroup);
}
factory DragHandler(){
return _singelton;
}
void startDrag(Event ele){
if(!listenerRegistered){
listenerRegistered = true;
dragGroup.onDragStart.listen((dnd.DraggableEvent event){
event.draggable.classes.add('dragiconCut');
});
dragGroup.onDragEnd.listen((dnd.DraggableEvent event){
event.draggable.classes.remove('dragiconCut');
});
...
dropGroup.onDrop.listen((dnd.DropzoneEvent event) {
createNewDragElement(event.draggable.getAttribute("id"), event.mouseClientPosition);
});
}
}
У кого-то такая же проблема? Или знает решение? Спасибо.