2

я ниже код: (без компиляции все работает отлично)Google Closure Compiler && звуковое событие

var audio = new Audio("audio.ogg"); 
goog.events.listen(audio, 'timeupdate', function(e){ 

ERROR

actual parameter 1 of goog.events.listen does not match formal parameter 
>> found : Audio 
>> required: (EventTarget|goog.events.Listenable|null) 
>> goog.events.listen(this.audio.singing, 'timeupdate', function(e){ 

мой Экстерн

/** 
* @param {string=} src 
* @constructor 
*/ 
var Audio = function(src) {}; 
Audio.prototype.play = function() {}; 

Как я скомпилировать с внутренним событием вроде этого? Спасибо

+0

Где фактическое определение 'Audio'? Вам необходимо предоставить правильную информацию о типе, но мне нужно, чтобы определение дало это. –

ответ

1

Вы должны стараться увеличения вашего Экстерн определение:

goog.require('goog.events.EventTarget'); 
/** 
* @param {string=} src 
* @constructor 
* @extends {EventTarget} 
*/ 
var Audio = function(src) {}; 
Audio.prototype.play = function() {}; 

Edit:

Так получается, что ваша проблема уже были рассмотрены в кодовую Closure Compiler, а затем, что исправление было вернулось , См. the changelog here.

Соответствующая часть этой фиксации я воспроизвожу ниже:

/** 
* @param {string=} src address of the media resource (a URL) 
* @constructor 
* @extends {HTMLAudioElement} 
* @see http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#the-audio-element 
*/ 
var Audio = function(src) {}; 
Смежные вопросы