AS3将函数中的对象添加到另一个函数中的对象中

时间:2015-10-01 19:07:47

标签: actionscript-3 flash object methods

库: 主持人 - 主持人 fileicon - 文件

信息: 主机是一个容器,它有一个掩码,我将使用它来拥有许多被称为文件的子对象。稍后在代码中我希望有一个removeChild(Host),所以当我激活它时,它将删除Host,从而删除所有文件。干净的石板。

文件本身只是一个对象,我的其余代码工作正常,但无论何时将它们添加到主机,它都不会工作...... 显然,在这里您看到Host实际上是在hostSetup函数中创建的,文件将在addfiles函数中创建,但我需要在两者之间进行通信以将文件添加到主机中。 -Re写了这篇文章,希望能让它更容易理解。

(抱歉,它让你感到困惑)

function hostSetup()
{
    addChild(Host);
    addChild(HostMask);
}
function addFiles()
{
    Host.addChild(file);
}

1 个答案:

答案 0 :(得分:0)

变量Host是函数initHost()中的局部变量。在功能之外是未知的。

要使其他函数addFiles()可用,您必须在函数外声明变量。

来自这个

function initHost()
{
    var Host:host = new host();

到这个

var Host:host;
function initHost()
{
    Host = new host();

然后您应该能够将子项添加到该容器中:

Host.addChild(file);

当然,在执行此操作之前,必须确保执行函数initHost()以确保对象存在。

按照惯例,变量名称应以小写字母开头,类名(链接名称)应以大写字母开头。我强烈建议遵循该惯例。理想情况下,您的代码看起来像这样:

var host:Host;
function initHost()
{
    host = new Host();

host.addChild(...);