Comunidad de diseño web y desarrollo en internet online

Forzar a componentes suscritos a actualizar

Citar            
MensajeEscrito el 15 Oct 2007 07:03 pm
Hola

Bueno, estoy añadiendo una funcionalidad a mi app flex de que cambie de idioma a como te plazca, y estoy intentando hacerlo en caliente, es decir, un combo con la opcion de elegir y que al momento se pida la peticion al server, que me llene un Array [ que esta en un singleton ], y que los controles suscritos a ese Array se actualizen inmediatamente que ocurra el cambio, pero ... no me actualiza . ??

como puedo forzar a los suscritos, [si se le puede llamar asi ..] a que se actualizen.. cuando su proveedor ha cambiado ....

espero haberme explicado bien ... ^^

Saludos

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 16 Oct 2007 10:04 pm
Con DataBinding, no tienes que hacer nada, lo hace en automático.

Asignale a tu array el atributo de: [Bindable] y ya.


Saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 17 Oct 2007 12:06 pm
Si. ya esta asignado ... ?? esa es la incognita .. ??

salu2

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 17 Oct 2007 02:00 pm
Puedes mostrarnos como asignas el valor y donde declaras el Array?

^^

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 17 Oct 2007 03:03 pm
ahh un detalle la aplicacion esta enganchada con MDM Zinc.. y ademas lo que lleno es un Object no un array .. ^^ ...

esta funcion es la que carga los idiomas... value--> 2 o 3 me indica la columna que he de coger en el dataset...

Código :

public function loadLang(value:int):void
      {
         //Carga el lenguaje especificado en el valor value....
         var temp:ArrayCollection = new ArrayCollection();
         var t:Object = new Object();
         
         if(Conexion(BDName))
         {
            mdm.Database.ADO.select("SELECT id_word,key,sp,en from Idioma order by key");
            var dataSet:Array = mdm.Database.ADO.getData();
            var provider:Object = new Object();
            
            for(var i:int=0;i<dataSet.length;i++)
                provider[dataSet[i][1].toString()] = dataSet[i][value].toString();
         }
         Idioma.getInstance().__SetLanguaje = provider; //Se lo asigno al singleton que se encarga de eso
         //temp = null;
      }


Idioma.as

Código :

public class Idioma
   {
      private static var instancia:Idioma;
      [Bindable] public var _palabra:Object; //<--- esta es la que contiene todo..
      
      public static function getInstance():Idioma
      {
         if( instancia==null ) instancia = new Idioma();
         return instancia;
      }
      
      public function getKey(key:String):String 
      {
         return _palabra[key]; 
      }   
      
      public function set __SetLanguaje(value:Object):void
      {
         _palabra = value;
      }
   }


y lo uso de esta manera... Ej:

Código :

<mx:DataGridColumn headerText="{ Idioma.getInstance().getKey('descr') }" dataField="description"/>


"Espero no haber hecho muchas barbaridades ... :lol: "

saludos

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 17 Oct 2007 03:24 pm
Pero es que el binding no tiene inteligencia. :lol:

Declaras la variable _palabra, pero en la asignación núnca la usas, mira que el Binding es rechulo, pero no al grado de deducir.

Prueba esto:

Código :

<script>
   function getPalabra(value:Object, key:String)
   {
     return value[key];
   }
</script>
 headerText="{ getPalabra(Idioma.getInstance()._palabra, 'descr') }"


^^

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 17 Oct 2007 07:50 pm
Si que funciono Dano ... todavia estoy sangrando en el cerebro pero funcionoo.......

gracias por responder...

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox

 

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