Actionscript 3 如何访问AS3中的更多对象而不为每个对象写一行?

Actionscript 3 如何访问AS3中的更多对象而不为每个对象写一行?,actionscript-3,Actionscript 3,假设我在flash中有5个对象,我想更改它们的一些属性;他们的名字是thing1、thing2等等。当我有3到4部电影时,这很容易,因为我只需要为每一部写一行,但有时会涉及几百个对象 thing1.alpha = 0.5; thing2.alpha = 0.5; thing3.alpha = 0.5; thing4.alpha = 0.5; 而不是这个,我想要这样的东西: var nr: int; for (nr = 1; nr <= 4; nr++){ MovieClip(St

假设我在flash中有5个对象,我想更改它们的一些属性;他们的名字是thing1、thing2等等。当我有3到4部电影时,这很容易,因为我只需要为每一部写一行,但有时会涉及几百个对象

thing1.alpha = 0.5;
thing2.alpha = 0.5;
thing3.alpha = 0.5;
thing4.alpha = 0.5;
而不是这个,我想要这样的东西:

var nr: int;
for (nr = 1; nr <= 4; nr++){
    MovieClip(String("thing" + String(nr))).alpha = 0.5;
}
var-nr:int;

对于(nr=1;nr数组s和循环就是答案

您可以先列出所有对象,然后通过数组访问它们:

var aList:Array = [thing1, thing2, thing3, thing4];
var aThing:DisplayObject;

for each (aThing in aList)
{
    aThing.alpha = 0.5;
}
如果您知道如何构造容器中的对象的名称,则可以访问该对象:

for (var i:int = 1; i <= 4; i++)
{
    var aName:String = "thing" + i;
    var aThing:DisplayObject = getChildByName(aName);

    aThing.alpha = 0.5;
}

(var i:int=1;i数组的
s和循环就是答案

您可以先列出所有对象,然后通过数组访问它们:

var aList:Array = [thing1, thing2, thing3, thing4];
var aThing:DisplayObject;

for each (aThing in aList)
{
    aThing.alpha = 0.5;
}
如果您知道如何构造容器中的对象的名称,则可以访问该对象:

for (var i:int = 1; i <= 4; i++)
{
    var aName:String = "thing" + i;
    var aThing:DisplayObject = getChildByName(aName);

    aThing.alpha = 0.5;
}

用于(var i:int=1;谢谢你,我的智商今天刚刚提高了0.1左右,多亏了你:D我想知道什么样的变量会像对象一样工作,因为直到现在我都避免使用displayobjectcontainer@AlexNegru好的,我已经更新了我的答案,希望你会发现额外的阅读内容很有启发性e是“自动声明阶段实例”的实际选项。一直以来,我都认为flash就是这样工作的。@mitim我认为这是AS1/2天内唯一可用的行为,所以他们将其作为默认选项,以防止人们在迁移到AS3时感到沮丧。我已经使用getChildByName()完成了我的应用程序。这是一个非常有用的函数,在许多其他情况下,它使我的工作更轻松。谢谢你:谢谢你,今天我的智商提高了约0.1。多亏了你:D我想知道什么样的变量会像对象一样工作,因为直到现在我都避免使用displayobjectcontainer@AlexNegru好的,我已经更新了我的答案和希望你会发现额外的阅读内容很有启发性。很好,我从来不知道“自动声明阶段实例”有一个实际的选项。一直以来,我认为flash就是这样工作的。@mitim我认为这是AS1/2天内唯一可用的行为,所以他们将其作为默认选项,以防止人们在迁移到AS3时感到沮丧。我已经使用getChildByName()完成了我的应用程序.这是一个非常有用的功能,在许多其他情况下,它使我的工作更轻松了