Comunidad de diseño web y desarrollo en internet online

problema con swapChildren

Citar            
MensajeEscrito el 04 Jul 2008 04:40 pm
hola todos, planteo mi problema para ver si entre ustedes alguno me puede ayudar.

Resulta que estoy desarrollando una aplicación Air y en ella tengo una clase "myWindow" que hereda de TitleWindow. Yo quiero que cuando se pulse sobre algún objeto de esta clase, este se venga al frente. Para poder hacer esto, desde la misma clase, utilicé parentDocument.swapChildren(this, elOtro);.
Todo funciona correctamente hasta que minimizo la aplicación y la vuelvo a restaurar, entonces al pulsar sobre algún objeto myWindow (que no sea el último creado) genera el siguiente error:

Código :

ArgumentError: Error #2025: El objeto DisplayObject proporcionado debe ser un elemento secundario del llamador.
   at flash.display::DisplayObjectContainer/swapChildren()
   at myWindow/goToTop()[C:\Documents and Settings\José Miguel\My Documents\Flex Builder 3\prueba\src\myWindow.mxml:83]
   at myWindow/startMove()[C:\Documents and Settings\José Miguel\My Documents\Flex Builder 3\prueba\src\myWindow.mxml:104]


He revisado el valor de parentDocument y la cantidad de hijos (numChildren), y, antes de minimizar es correcto, pero después de minimizar y restaurar es erróneo.

Por cierto, cuando uso parentDocument.getChildren(), para obtener todos los componentes del padre, obtengo el array con todos los elementos sin ningún problema, eso es lo más raro de todo.

coloco parte del código para ver si puede ayudar.

Código :

            //obtenemos la lista de myWindows.
            var child:Array = parentDocument.getChildren();
                        
            //buscamos la posición del elemento actual en la lista
            for(i=0; i<child.length; i++){
               if(child[i] == this){
                  init = i;
                  break;
               }
            }

            //ahora recorremos la lista desde la posición del elemento actual hasta el final
            //y vamos intercambindo el orden de los "z", pero siempre teniendo en cuenta al
            //elemento actual. al final se mantendrá el mismo orden, pero con el elemento actual
            //en la  parte superior de la lista.
            for(i=init; i<child.length-1; i++)
               parent.swapChildren(this, child[i+1]);
         }

Alguien sabe que puede estar pasando??? Gracias de antemano...

Por xurban

2 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 04 Jul 2008 08:40 pm
bueno...
la verdad es que ya pude solucionar el problema.

tuve que hacerlo de otra manera, mucho más sencilla de lo que esperaba. Sólo use la función setChildIndex(DisplayObject, index).

Por xurban

2 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.