2015-10-01 109 views
0

库: 主机 - 主机 fileicon - 文件AS3添加从函数的对象为一个对象在另一个函数

信息: 主机是一个容器,它有一个面具,我会用这个有很多的称为文件的子对象。在后面的代码中,我希望有一个removeChild(Host),所以当我激活它时,它将删除主机,从而删除所有文件。清洁石板。

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

(对不起它它混淆你)

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

欢迎SO!完全不清楚你在问什么。 – null

+0

它说什么Host.addChild(文件),这应该添加一个文件到主机,这种方式后来当我选择删除主机,它会清除我放入它的所有文件。但我不知道链接是什么,因为我不能只说Host.addChild或this.Host.addChild。对不起,我不清楚我正在努力自己不会说谎,即时消息AS3 –

+0

什么是'主机'?什么是'文件'? – null

回答

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(...); 
+0

这个解释很多!谢谢,我很高兴你能理解它到底哈哈!我试图标记你的答案是有用的,但我现在的排名太低了,如果有什么我可以做的,那么你会告诉我的! –

相关问题