Comunidad de diseño web y desarrollo en internet online

modificar objetos apenas se muestran

Citar            
MensajeEscrito el 25 May 2009 01:55 pm
Hola,
os pongo una pregunta que postee en otro foro erróneamente. Pido a los administradores que arreglen el desaguisado :)

El tema es que tengo objetos gráficos escritos en flex y quiero cambiar etiquetas desde un action script. Algunos de estos elementos no son visibles hasta el momento en que cambio las etiquetas porque son páginas de un viewstack. Si modifico la etiqueta antes de mostrarlo me da error en tiempo de ejecución, si lo hago justo después me deja el valor por defecto. Os dejo un ejemplo sencillo en el que ocurre esto:

Código :

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">



<mx:Script>

           

           

               <![CDATA[

               import mx.events.FlexEvent;

               

               private function botonCambio():void {

                  

                  visor.selectedChild=segundo;

                  textocambiante.text="Texto cambiado :)";

                  

               }

               

                  ]]>

      

      

         </mx:Script>

   <mx:Panel x="280" y="213" width="250" height="200" layout="absolute">

      <mx:ViewStack x="0" y="0" id="visor" width="230" height="160">

         

         <mx:HBox id="primero" width="100%" height="100%">

            <mx:Button label="Button" click="botonCambio();"/>

         </mx:HBox>

         <mx:HBox id="segundo" width="100%" height="100%">

            <mx:Label x="56" y="70" text="Texto inicial" id="textocambiante"/>

         </mx:HBox>

      </mx:ViewStack>

   </mx:Panel>

   

</mx:Application>


¿Cómo debería hacerlo para que me muestre el texto nuevo?

Por pumy

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 May 2009 03:08 pm
El evento cuando se muestra un child del ViewStack es Event.show si mal no recuerdo (revisa la documentación)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 May 2009 03:55 pm
Era una de las opciones que tenía para solucionarlo. Sin embargo no funcionaba la primera vez, parece ser que el menejador de Show se ejecutaba antes y no mostraba la etiqueta actualizada.

Otra opción era combinar los eventos Show y creationComplete según si era la primera vez que se mostraba o no.

Finalmente lo he hecho con data binding, metiendo en la propiedad text el nombre de la propiedad de la selección de la lista que quería mostrar. Me había perdido un poco porque con variables normales declaradas por mí esto no funciona.

Gracias.

Por pumy

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 May 2009 04:17 pm
El evento creationComplete (si no has cambiado el creationPolicy) se da cuando el primer elemento en el viewStack se renderea, luego va creando cada uno de los nodos al visualizarlo, y se da el show, aunque puede que solo la primera vez que lo visualizas. Anyway, si lo has logrado con databinding es lo más aconsejable

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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