使用对象名称更改对象

Posted

技术标签:

【中文标题】使用对象名称更改对象【英文标题】:Use an objects name to make changes to the object 【发布时间】:2020-05-08 01:57:09 【问题描述】:

我创建了一个对象的多个实例,每个实例都有自己的实例名称,最后带有数字。我想遍历这些名称(它们最后有数字),修改那里的属性,然后通过实例名称而不是实际的对象实例将它们推送到一个数组。

if (instance60.currentFrame == 4)

    array.push("instance60")

第一个实例 60 是指对象本身,而第二个实例 60 只是一个推送的字符串

【问题讨论】:

您可以使用 DisplayObjectContainer.getChildByName(...) 方法通过 String 形式的名称访问某些容器的显示子项。 如果您开始通过引用而不是名称来跟踪新创建的对象,总体上会更好。也就是说,你在某处创建一个new Apple(),将它添加到一个苹果数组中,然后迭代并对它们做任何需要的事情。 【参考方案1】:

我认为您要做的是设置一个键值对。

关键是你以后如何找到对对象的引用

instances["instance"+60] = instance60;

你可以循环使用类似的东西:

for(var i:uint=0;i<instances.length;i++)
   instances["instance"+i] = new Sprite();
   instances["instance"+i].x = 20;
   instances["instance"+i].y = 20*i;    
   //etc...

但是,虽然它有它的用途,但在这种情况下,无论如何你都在迭代一个整数值,所以,鉴于它可以在大型数组上运行得更快,为什么不将它们存储在数组中的位置呢?

for(var i:uint=0;i<instances.length;i++)
       instances[i] = new Sprite();
       instances[i].x = 20;
       instances[i].y = 20*i;
       this.addChild(instance[i]);    
       //etc...
    

【讨论】:

以上是关于使用对象名称更改对象的主要内容,如果未能解决你的问题,请参考以下文章

Blender 更改了我的对象的名称

如何使用 JavaScript spread... 语法更改对象的一个​​字段,该字段属于数组并通过名称-值对访问?

我想更改 SOAP Endpoint 请求对象名称

我想更改 SOAP Endpoint 请求对象名称

是否可以更改 Java Swing jList 中项目的名称*显示*?

在转换为 XML 之前更改 JSON 对象中的属性名称