Comunidad de diseño web y desarrollo en internet online

Alcanzar una variable de la aplicacion desde un componente

Citar            
MensajeEscrito el 28 Jun 2007 11:00 pm
Saludos a toda la comunidad, estube revisando los post del Foro y solo me encontre con un tema similar pero no le entendi muy bien (me disculparan). Lo que trate de hacer es que desde un componente mxml fabricado por mi alcance una variable que se encuentra en el mxml principal, es decir la aplicación.

Ya utilice el metodo de Application.application.nombre_variable pero al momento de ejecutarse, Flex me marca un error de que el objeto al que intento acceder es nulo y previamente lo declare y asigne un valor inicial.

Tambien intente hacerlo como en Flash CS 3, declare un objeto del tipo objeto y lo iguale a root, pero en este caso me marca error pues no reconoce la variable.

¿Alguien me puede explicar bien como alcanzar una variable ubicada en la aplicacion desde un componente mxml personalizado???

Muchas gracias por su atención y ayuda, espero no molestarlos con esto que a lo mejor les paresca muy sencillo.

Hasta pronto, que tengan buen dia.

Les dejo un fragmento del codigo....

En la aplicacion tengo...

Código :

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="secciones.*" initialize="Inicio()">
   <mx:Script>
      <![CDATA[
         // esta es la variable que quiero alcanzar desde los componentes
                     [Bindable]
         public var Examenes:Array;
         
         private function Inicio():void{
            Examenes = new Array();
         }
      ]]>
   </mx:Script>
   <mx:ApplicationControlBar dock="true" left="0" top="0" height="45">
   </mx:ApplicationControlBar>
   <mx:Canvas width="100%" height="100%" left="0" top="0">
      <mx:TabNavigator width="95%" tabHeight="30" height="98%" horizontalCenter="0" top="10">
         <ns1:examenes label="Exámenes">
         </ns1:examenes>
         <ns1:cuestionario label="Cuestionarios">
         </ns1:cuestionario>
      </mx:TabNavigator>
   </mx:Canvas>
</mx:Application>


En mi componente examenes tengo....

Código :

<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" verticalAlign="middle" horizontalAlign="center" width="100%" height="100%">
   <mx:Script>
      <![CDATA[
         import mx.events.CollectionEvent;
         import mx.collections.ArrayCollection;
         import mx.core.Application;
         
                     // Aqui es donde trato de llamar a la variable de la aplicacion
         [Bindable]
         private var Examen:Array= Application.application.Examenes;
              ]]>
   </mx:Script>

Por heberto

263 de clabLevel

1 tutorial

1 ejemplo

 

Morelia, Michoacán

safari
Citar            
MensajeEscrito el 29 Jun 2007 12:25 am
Yo haría una clase Model y pones allí las variables. Haces un método getInstance de modo que sólo haya una instancia ejecutándose en la aplicación. Es lo más manejable, creo yo. Busca sobre la clase ModelLocator (creo que era así) de Cairngorm:

Código :

[Bindable]
   public class AppModelLocator implements ModelLocator
   {
public static var reference:AppModelLocator;
      
      public static function getInstance():AppModelLocator 
      {
         if (reference == null){
            reference = new AppModelLocator();
         }
         return reference;
      }

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 29 Jun 2007 01:07 am
Zah, en un término mas común, y de patrones, recomiendas aplicar el patrón singleton, yo haría lo mismo que tú. ^^

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

clabbrowser
Citar            
MensajeEscrito el 29 Jun 2007 01:08 am
Anotado ^^

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox

 

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