使用Flash CC和Createjs的子访问功能

Access function in a child with Flash CC and Createjs

本文关键字:访问 功能 Createjs Flash CC 使用      更新时间:2023-09-26

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

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

我也在尝试这段代码。

exportRoot['target1'].triggerTarget();

可以访问该影片剪辑对象,但我无法访问其中的功能,任何人都可以帮助我吗?

如果您将代码放在时间轴上,并且没有正确限定其范围,它将无法按预期工作(特别是如果您来自 ActionScript 背景)。

例如,这不起作用

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

但这应该:

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

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

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