dojo eventListener на dojox.embed.flash - PullRequest
       2

dojo eventListener на dojox.embed.flash

1 голос
/ 16 декабря 2010

Как вы добавляете EventListener для вставки Flash? (new dojox.embed.Flash) Я пробовал dojo.connect и addEventListener, но ни одна из них не работает

Отрывки:

this.player = new dojox.embed.Flash({
 path: 'http://player.soundcloud.com/player.swf?url='+track.stream_url+'&enable_api=true&player_type=engine&object_id='+this.playerId,
 width: 5,
 height: 5,
 id: this.playerId,
 name: this.playerId,
 minimumVersion: 9,
 allowScriptAccess: 'always'
}, dojo.byId('soundcloud_flash'));

Ни одна из этих работ:

dojo.connect(this.player.movie, 'onMediaBuffering', function(id, data) { console.log('dfg'); obj.progress(data.percent); });
dojo.connect(this.player.movie, 'onMediaBuffering', dojo.hitch(this, function(id, data){ console.log('ergh'); this.progress(data.percent);}));
dojo.connect(dojo.query(this.player.movie)[0], 'onMediaBuffering', function(id, data) { console.log('yu'); obj.progress(data.percent); });
dojo.connect(dojo.query(this.player.movie)[0], 'onMediaBuffering', dojo.hitch(this, function(id, data){ console.log('er'); this.progress(data.percent);}));
dojo.connect(this.player, 'onMediaBuffering', dojo.hitch(this, function(id, data){ console.log('ubg'); this.progress(data.percent);}));
dojo.connect(dojo.byId(this.player), 'onMediaBuffering', dojo.hitch(this, function(id, data){ console.log('asd'); this.progress(data.percent);}));
dojo.connect(dojo.query(this.player), 'onMediaBuffering', dojo.hitch(this, function(id, data){ console.log('asd'); this.progress(data.percent);}));
dojo.connect(dojo.query(this.player), 'onMediaBuffering', function(id, data){ console.log('hj'); this.progress(data.percent);});

Данное событие происходит от плательщика Sound Cloud: https://github.com/soundcloud/Widget-JS-API/wiki

Ответы [ 2 ]

1 голос
/ 17 декабря 2010

Пеллер указал мне правильное направление, это глобальная функция для окна:

 var soundcloud = window.soundcloud = {
    onMediaBuffering: function() {
        console.log('asdasdasd');
    }
}
1 голос
/ 17 декабря 2010

dojox.embed.Flash - это простой механизм для вставки Flash-фильмов, а также прокси-метод, упрощающий вызов методов ActionScript из объекта JS через ExternalInterface.Я не думаю, что он обеспечивает двустороннюю связь или поддерживает события, но вы могли бы достичь этого с помощью Flash API или путем вызова для настройки собственных обратных вызовов.

dojo.connect подходит только длясоединение между функциями JavaScript и не отражается в методах ActionScript.Обратите внимание, что на объекте проигрывателя доступны события onReady и onLoad Javascript, и вы можете подключиться к ним.

Редактировать: если присмотреться к этой библиотеке, я думаю, onMediaBuffer - это метод Javascript, вызываемый Flash-фильмом, но он установленработать над глобальной переменной Javascript под названием soundplayer!Что еще хуже, они установили единовременные предложения для нескольких систем обработки событий из набора инструментов, дублируя шаблон.

Вы можете попробовать что-то вроде этого:

dojo.connect(window.soundplayer, "onMediaBuffer", function(flashId, data){ ... });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...