使用对象名称更改对象
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...
【讨论】:
以上是关于使用对象名称更改对象的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript spread... 语法更改对象的一个字段,该字段属于数组并通过名称-值对访问?