1

大家好,我在使用 createjs 的 flash cc 上的程序有问题。我有一个实例名称为“target1”的影片剪辑。在其中,我有一个名为 的函数triggerTarget(),但是当我尝试在影片剪辑“target1”上访问此函数时,它总是显示TypeError:target1.triggerTarget is not a function. 这是我的代码:

var that=this;
that['target1'].triggerTarget();

我也在尝试这段代码。

exportRoot['target1'].triggerTarget();

我可以访问那个movieclip对象,但我无法访问它里面的函数,有人可以帮我吗?

4

1 回答 1

0

如果您将代码放在时间线上,但没有正确确定它的范围,它将无法按预期工作(尤其是如果您来自 ActionScript 背景)。

例如,这不起作用

function triggerTarget() {
    gotoAndPlay("frame");
}

但这应该:

this.triggerTarget = function() {
    this.gotoAndPlay("frame");
}

在第二个示例中,函数作为对象的一部分存在,因此您可以在该对象上调用它。第一个示例在它的范围内定义了它,但它基本上是匿名的,并且没有办法访问它。

不幸的是,这是 JavaScript 的现实。时间线代码没有隐式范围,因此您必须了解事物的定义方式。

于 2015-03-12T16:14:24.287 回答