Слушайте события объекта JS из Dart

Мне нужно прослушивать ready событий из объекта JS (wavesurfer.js). Я инициализирую объект с помощью:

var wavesurfer = context['WaveSurfer'];

И вызовите его функцию init с помощью:

wavesurfer.callMethod('init', [mapOptions]);

Но я не могу прослушивать готовые события, как в этом коде JS:

wavesurfer.on('ready', function () {
   wavesurfer.play();
});

Я нашел решения для подобных проблем, таких как здесь, но все они используют функции, которые кажутся устаревшими. такие как js package scoped() и Callback.many().

Любые указатели приветствуются.


person Nawaf Alsulami    schedule 02.02.2014    source источник
comment
Не могли бы вы прислать мне несколько фрагментов кода того, как вы реализовали wavesurfer-js в Dart, потому что я также хотел отобразить этот пользовательский интерфейс во Flutter Web.   -  person Maadhav Sharma    schedule 30.09.2020


Ответы (1)


С дротиком: js:

wavesurfer.callMethod('on', ['ready', () {
  wavesurfer.callMethod('play');
}]);
person Alexandre Ardhuin    schedule 02.02.2014
comment
Потрясающий. Это почти идентично коду JS. У меня все еще есть эта проблема. context['WaveSurfer.Timeline']; должен возвращать объект JS после того, как wavesurfer будет ready, как эквивалент JS Object.create(WaveSurfer.Timeline);. Но он возвращает null. Понятия не имею почему. Я протестировал эквивалент JS на той же веб-странице, и он работает. - person Nawaf Alsulami; 02.02.2014
comment
Связана ли проблема со способом создания экземпляра объекта с точкой посередине? - person Nawaf Alsulami; 02.02.2014
comment
Вы должны использовать context['WaveSurfer']['Timeline'], чтобы получить эквивалент WaveSurfer.Timeline. - person Alexandre Ardhuin; 02.02.2014
comment
Александр. Ты восхитителен. Большое вам спасибо за вашу помощь. - person Nawaf Alsulami; 02.02.2014