2011-03-17 79 views
1

我想遍历舞台中的所有对象,我不知道如何去做。 这是通过我以前使用C#和javascript的经验即兴创作的。如何查找舞台上所有类型的对象?

  1. 首先,我需要正确的列表/数组与所有阶段的孩子。
  2. 我需要检查他们的类型。我有一个特殊的自定义类,它只扩展Sprite的一些附加属性。

有人精通actionscript 3.0谁可以显示正确的方法吗?

for(var obj:DisplayObject in DisplayObjectContainer) { 
    if(typeof obj == "Pic") { 

回答

5

最容易的是使用“is”运算符来表示对象的类。

一个例子:

for(var i:int = stage.numChildren - 1; i>=0; i--) { 
    if(stage.getChildAt(i) is Pic) { 
     // Do stuff with members of Pic class 
+0

'var obj:DisplayObjectContainer'中的DisplayObject只有在DisplayObjectContainer是一个数组或向量时才会起作用。否则,frankhermes找到displayObject的孩子的方法就是走这条路 – Daniel 2011-03-17 19:56:07

+0

@Daniel你完全正确。我错误地使用OPs循环,没有意识到它没有工作。它现在应该工作。 – 2011-03-17 23:47:48

2

我不认为你可以得到这样的一个DisplayObjectContainer的孩子。您可能需要这样做:

for(var i=0;i<container.numChildren;i++) 
{ 
    if(container.getChildAt(i) is Pic) doSomething(); 
} 

其中container是DisplayObjectContainer。

+0

var n:uint = container.numChildren; for(var i:uint = 0; i 2011-03-17 22:30:26