2012-02-27 6 views
2

<s:Images/>は、そのファイルの階層内のどこに関係なく、どのようにしてMXMLファイルから取得できますか?レベルに関係なく指定されたタイプのすべての子を取得

ので、このために:

<s:Group> 
    <s:Image/> 
    <s:VGroup> 
     <s:Image/> 
     <s:Image/> 
     <s:Image/> 
     <s:HGroup> 
      <s:Image/> 
      <s:Image/> 
     </s:HGroup> 
    </s:VGroup> 
</s:Group> 

私は、彼らがグループ自体またはVGroupコンテナまたはのhgroup内に含まれているかどうかに関係なく、最初のグループからのすべての画像を取得したいです。

どうすればいいですか?

答えて

1

擬似コードで再帰的に、代わりにいるIContainerの

myFunc(IContainer root):void 
{ 
    for(i=0;i<root.numChildren;i++) 
    { 
     curChild = root.getChildAt(i); 
     if(curChild is Image) 
      doSomethingElse(curChild); 
     if(curChild is IContainer) 
      myFunc(curChild); 
    } 
} 

あなたがタグでのFlex 4持っているので、あなたがそのようなのためのインタフェースを見てする必要があります: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/core/IVisualElementContainer.html

3
filterImages([], this); 
protected function filterImages(array:Array, child:Object):Array 
{ 
    for(var i:int = 0; i < child.numChildren; i++) 
    { 
     if(child.hasOwnProperty("getElementAt")) 
     { 
      var subChild:Object = child.getElementAt(i); 
      if(subChild is Image) 
      { 
       array.push(subChild); 
      }else 
      { 
       filterImages(array, subChild); 
      } 
     } 
    } 
    return array; 
} 
関連する問題