Bienvenido a Klr20mg

Cronicas de un desarrollador

Actualmente soy Jefe de Desarrollo del area Flash en Sapotek de México en la cual trabajo desde hace mas de 4 años. Desarrollando aplicaciones en Flash para Web mas comúnmente llamadas (RIAs)

Estas en : Blog » Obteniendo los hijos de un DisplayObject [AS3]
  • Decrease font size
  • Default font size
  • Increase font size
  • color default
  • color verde
  • color azul
Obteniendo los hijos de un DisplayObject [AS3]
AddThis Social Bookmark Button
Post2PDF Print
April 1st, 2008

Está en una clase simple pero muy útil, al menos para mí, que recorre todos los hijos contenidos en un DisplayObject, la clase cuenta con 2 funciones:

getAllChilds

Regresa todos los hijos contenidos en el “target”

getChildsByType

Regresa solo los hijos que sean de un tipo específico, por ejemplo solo MovieClips, o solo Botones.

DisplayObjectUtils

Actionscript:
  1. package net.tmeister.utils
  2. {
  3.     /**
  4.      * @author Enrique Chavez aka Tmeister
  5.      */
  6.     import flash.display.DisplayObject;
  7.     public class DisplayObjectUtils
  8.     {
  9.         /**
  10.          *
  11.          * @param   target
  12.          * @return Array
  13.          */
  14.         public static function getAllChilds(target:*):Array
  15.         {
  16.             var listTmp:Array = []
  17.             for (var a = 0; a <target.numChildren; a++ )   
  18.             {
  19.                 listTmp.push (target.getChildAt(a) )
  20.             }
  21.             return listTmp
  22.         }
  23.         /**
  24.          *
  25.          * @param   target
  26.          * @param   type
  27.          * @return
  28.          */
  29.         public static function getChildsByType(target:*, type:*):Array
  30.         {
  31.             var listTmp:Array = []
  32.             for (var a = 0; a <target.numChildren; a++ )   
  33.             {
  34.                 if (target.getChildAt(a) is type)
  35.                 {
  36.                     listTmp.push (target.getChildAt(a) )
  37.                 }
  38.             }
  39.             return listTmp
  40.         }
  41.     }
  42. }

Su uso es el siguiente:

Primero creamos unos Movieclips y unos botones para tener algo que buscar.

Actionscript:
  1. import net.tmeister.utils.DisplayObjectUtils;
  2. import fl.controls.Button
  3.  
  4. createMovieClips()
  5. createButtons()
  6. getChilds()
  7.  
  8. function createButtons()
  9. {
  10.     for(var a:Number = 0; a<2; a++)
  11.     {
  12.         var tmp:Button = new Button();
  13.         tmp.x = Math.random()*400
  14.         tmp.y = Math.random()*400
  15.         tmp.label = "buton"+a
  16.         addChild(tmp)
  17.     }
  18. }
  19. function createMovieClips()
  20. {
  21.     for(var a:Number = 0; a<5; a++)
  22.     {
  23.         var tmp:MovieClip = new MovieClip();
  24.         tmp.graphics.beginFill(0x2a2a2a, .5)
  25.         tmp.graphics.drawRect(Math.random()*500, Math.random()*300, Math.random()*100, Math.random()*100);
  26.         tmp.graphics.endFill();
  27.         tmp.name = "mc"+a;
  28.         addChild(tmp)
  29.     }
  30. }
  31. function getChilds()
  32. {
  33.     trace("All Childs: " + DisplayObjectUtils.getAllChilds(this) )
  34.     trace("=====================================================================================")
  35.     trace("Movieclips:  " + DisplayObjectUtils.getChildsByType(this, MovieClip))
  36.     trace("=====================================================================================")
  37.     trace("Buttons:  " + DisplayObjectUtils.getChildsByType(this, Button))
  38.  
  39. }

Comentarios

2 Comentarios en “Obteniendo los hijos de un DisplayObject [AS3]”

Muy buena la función getChildsByType, aunque la otra no le encuentro mucha utilidad, ya que es lo mismo hacer target.getChildAt(N); que a list[N], solo que repetimos datos y ocupamos mas recursos xD :P.

Saludos MR.!!

Cep escribio el 1-April-2008 a las 3:46 pm

Oye Me gusta este theme, donde lo puedo conseguir?
Tienes mi correo para decirme o también me puedes decir por medio de tu blog o el mío.
saludos.

Luis Kano escribio el 13-April-2008 a las 1:29 am

Leave a Reply

 Blog editado por:

Enrique Chavez aka Tmeister
Si los codigos de este sitio te han ayudado y gustas ayudar de alguna forma:

 Compra Links

 Suscribete


AddThis Social Bookmark Button

 Archivo

2008
2007
2006
2005
2004