动画CC Flash CC:使用带有HTML5画布调用的变量

时间:2017-05-18 13:24:21

标签: javascript html5 flash canvas animate-cc

所以我试图创建一个可以重用变量的函数,但我无法弄清楚如何使用.bind()函数来实现它。我想将target替换为movie_clip_1(或movie_clip_2等) 这是我的Animate CC动作代码:

this.nav_core_btn.addEventListener("click", fl_playClip.bind(this, movie_clip_1));

function fl_playClip(target) {
    this.target.gotoAndPlay(1);

}

错误消息说:

Uncaught ReferenceError: clip_core_inner is not defined

1 个答案:

答案 0 :(得分:0)

确保您的函数正在调用传递给函数体的参数。看到我没有使用this,而是使用target,它作为函数参数传递。

我也嘲笑了这个对象,让你明白:

var btnPlay = document.querySelector('#btnPlay')
var movie_clip_1 = {
  gotoAndPlay: function () {
    console.log('Mock!')
  }
}
btnPlay.addEventListener("click", fl_playClip.bind(this, movie_clip_1));

function fl_playClip(target) {
  target.gotoAndPlay(1);
}

您可以在此处查看实时示例:http://jsbin.com/vozififoze/1/edit?html,js,console,output

如果您阅读我提供的示例,您可以开始回答您自己的问题:

要看看你做错了什么,让我们看看如何正确调用函数this.target.gotoAndPlay,你会注意到它忽略了传递给函数的参数/参数:

function fl_playClip(target) {
  this.target.gotoAndPlay(1);
}

fl_playClip.prototype = {
  target: {
    gotoAndPlay: function () {
      console.log('my gotoAndPlay output!')
    }
  }
}

new fl_playClip(null)

此处的输出为my gotoAndPlay output!