【问题标题】:google closure compiler && audio event谷歌关闭编译器 && 音频事件
【发布时间】:2013-12-17 13:34:41
【问题描述】:

我有以下代码: (无需编译一切正常)

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

错误

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() {};

如何使用这样的内部事件进行编译? 谢谢

【问题讨论】:

  • Audio的实际定义在哪里?您需要提供正确的类型信息,但我需要查看定义以提供该信息。

标签: javascript google-closure-compiler google-closure-library


【解决方案1】:

您当然应该尝试扩充您的外部定义:

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

编辑:

事实证明,您的问题已在 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) {};

【讨论】:

    【解决方案2】:

    闭包编译器提供了应添加到外部列表中的外部

    https://github.com/google/closure-compiler/wiki/Externs-For-Common-Libraries

    有Audio API的叫html5之类的

    【讨论】:

      猜你喜欢
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多