hola a todos espero se encuentren bien, tambien espero puedan ayudarme, estoy trabajando en una animacion sobre arboles binarios y la estoy haciendo con actionscript, ya puedo insertar, borrar y buscar un nodo y buscar el padre de un nodo, pero ahora me encuentro con un problema, tengo q realizar los recorridos en profundidad del arbol binario y pues tengo mi funcion en c/c++ que funciona correctamente la cual es:

Código :

[cplusplus]
void imprimir_PreOrden(struct nodo *arbol) 
{
    if(arbol!=NULL)     
    {
       printf(" %d " ,arbol->dato);
       imprimir_PreOrden(arbol->izq);
       imprimir_PreOrden(arbol->der);
    }
}
[/cplusplus]

probando esta funcion en c se manda llamar al nodo del lado izquierdo hasta que ya no ahi nodos y despues regresa y manda llamar a cada uno del lado derecho, bueno no se si me explique correctamente jejeje, ahora lo q quiero es migrar esta funcion a actionscript, lo cual ya lo eh hecho de la siguiente manera:

Código :

[js]
PreOrden = function(arbol,contador) 
{
if(contador==0)
   {
      return 0;
   }
   else
   {
      if(arbol!=0)
      {
         vel=12;
         eval("_root.mc_nodo"+arbol).mc_bola.onEnterFrame = function()
         {
            if(vel>0)
            {
            vel--;
            my_color = new Color(eval("_root.mc_nodo"+arbol).mc_bola);
            my_color.setRGB(0x0000FF);
            }
            else
            {
               delete eval("_root.mc_nodo"+arbol).mc_bola.onEnterFrame;
            my_color = new Color(eval("_root.mc_nodo"+arbol).mc_bola);
            my_color.setRGB(0x000000);
            PreOrden(eval("_root.mc_nodo"+arbol).izquierda,contador);
            PreOrden(eval("_root.mc_nodo"+arbol).derecha,contador);

            }
            
         }



                
      }
    }
}

[/js]


bueno les explico preorden recibe dos parametros uno q se llama arbol que es el numero que yo le asigne al nodo principal del arbol binario, y otra que se llama contador que tiene el valor de todos los nodos que estan en el arbol, valido que existan nodos en el arbol y despues compruebo que halla llegado al final del arbol pues el 0 indica que no tiene un nodo a quien apuntar es decir representa mi null en c.

lo que tengo es un nodo como un movieclip con un circulo y sus dos patitas, lo que hago para ver el recorrido es que lo cambio de color por eso puse el onenterframe para mantenerlo por 1 segundo y pueda ser visible cuando termina lo regreso a negro q es su color original, pero aqui viene el problema mando llamar dos veces a la funcion recursiva como en el codigo de c pero el detalle es que no se de que manera decirle a la funcion q manda llamar al nodo del lado derecho se espere pues se ejecutan las dos funciones al mismo tiempo, en lugar de ver nodo a nodo empezando por la izquierda veo a los dos derecha izquierda ponerse en azul, alguien puede decirme como controlo la ejecucion de las funciones o por q se ejecutan asi, o tal ves el onenterframe funciona pero solo hace q la funcion termine y el se sigue ejecutando no tengo ni la menor idea de que sucede si por ser recursiva deberia llamarse el nodo izquierdo siempre hasta q no halla nodos y despues los de la derecha.

disculpen el mensajote jajaja espero puedan ayudarme tambien probe esto con la clase tween y con el metodo onchanged para cambiar el color y onfinished para ejeutar las funciones pero es lo mismoo.....espero puedan ayudarme, saludos a todos