Comunidad de diseño web y desarrollo en internet online

problema 2 clases

Citar            
MensajeEscrito el 12 Ago 2010 04:09 pm
hola nuevamente recurro a ustedes..

tengo mi archivo.fla mas 2 clases.. llamadas Teclado.as y Busqueda.as

en mi pelicula en el primer fotograma tengo mi teclado que apunta a la clase Teclado hasta ahi todo bien..

pero en el fotograma 2 tengo un dataGRid que me muestra unos resultados

esto es lo que tengo

Código ActionScript :

package 
{

   // IMPORTAMOS LAS CLASES QUE NECESITAREMOS PARA EL PROYECTO
   import flash.events.*;
   import flash.text.TextField;
   import flash.display.MovieClip;
   import flash.ui.Mouse;

   public class Teclado extends MovieClip
   {
puclib Teclado()
{
static var busqueda:Busqueda = new Busqueda;
}
}

//  Y EN ESTE BOTON QUIERO LLAMAR ESTA CLASE PARA QUE ME CARGE LOS DATOS
// NOSE COMO HACERLO
}
}


en Busqueda tengo

Código ActionScript :

package 
{
   import fl.controls.DataGrid;
   import fl.data.DataProvider;
   import flash.events.Event;
   import flash.display.MovieClip;

   public class Busqueda extends MovieClip
   {
      public function Busqueda()
      {
         // constructor code
         
         dgSepultados.addColumn("NOMBRES");
         dgSepultados.addColumn("APELLIDOPATERNO");
         dgSepultados.addColumn("APELLIDOMATERNO");
         dgSepultados.addColumn("UBICACION");


         dgSepultados.columns[0].width = 70;
         dgSepultados.columns[1].width = 70;
         dgSepultados.columns[2].width = 70;
         dgSepultados.columns[3].width = 150;
         dgSepultados.columns[1].headerText = "APELLIDO PATERNO";
         dgSepultados.columns[2].headerText = "APELLIDO MATERNO";
      
      }


y me dice dgSepultados no definida

siendo que la instancia la tengo asi

que podra ser?

Por SoliD

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Ago 2010 06:28 pm
Si dgSepultados es un datagrid que tienes en el MC al cual asociaste esta clase, agrega antes del constructor:

var dgSepultados:Datagrid;

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Ago 2010 06:42 pm
mm en este caso es un dataGrid que lo inserte en el fotograma 2

me arroja este error

Código :

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
   at Busqueda()
   at Teclado$cinit()
   at global$init()


pero esto lo puse en la otra clase no la que deriva de mi fla...

ahi que asignarle esta variable al que esta en el escenario??

Por SoliD

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Ago 2010 07:06 pm
Bien, ahora la pregunta es, ¿por que instanccias en búsqueda una clase que supongo, está asociada a un MovieClip que está en el segundo fotograma?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Ago 2010 07:10 pm
mira te cuento en mi primer fotograma

tengo un teclado ( teclado en pantalla con botones y todo ) ademas de eso tengo un boton que busca unos datos entones al buscar el boton hace nextFrame(); y es en este boton donde quiero llamar mi clase busqueda en donde me carga esos datos en un dataGrid...

se entiende??

es por ello que en la clase busqueda no me reconoce dgSepultados.. me dice que no tiene una definicion.. me faltara algo??

o estoy haciendo algo mal?
Desde ya muchas gracias

Por SoliD

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Ago 2010 07:13 pm
No hay relación entre ambas. Te diría que crees un Document class, y desde allí crees un setter en la clase teclado que reciba una referencia al datagrid. En líneas generales, te diría que pienses mejor el diseño, pues usar clases de esta forma te traerá solo problemas (es mejor una simple lógica procedural)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Ago 2010 07:35 pm
ups oki..

pero una consulta

al poner esto al lado de la clase

extends MovieClip --> no importo las interfaces del escenario?

Por SoliD

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Ago 2010 07:37 pm
Uff ... esto me suela a ensalada conceptual.
Al extender de MovieClip tienes a tu disposición todos los métodos de la clase MovieClip, y debes hacerlo porque estás asignando la clase a un MovieClip de la biblioteca (o por lo menos eso deberías haber hecho para el MC que contiene al datagrid). Las interfaces son otra cosa. ¿Pensaste en usar un Document Class (clase asociada a todo el fla) para manejar todo esto?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Ago 2010 08:05 pm
ups quise decir instancias.. pense que al extend del movieclip podia acceder a todas las instancias de mi pelicula..

porque si trabajo con la instancia desde mi clase Teclado ahi me funciona perfecto pero cuando la quiero llamar desde Busqueda me dice que no esta definida esa instancia..

Por SoliD

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Ago 2010 08:06 pm
No, el extend de MovieClip indica que heredas todos los métodos y propiedades de la clase (como en cualquier otro lenguaje OOP) pero no tiene nada que ver con las instancias, de ahí la necesidad de un document class desde donde manejes el scope de tu peli

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Ago 2010 08:19 pm
mm es que si hago todo en una clase ( Teclado ) me resulta facil, pero quiero tener las cosas separadas..

entonce tu me dices que con un document class puedo acceder a todas mis instancias de peliculas?

Por SoliD

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Ago 2010 08:23 pm
Correcto, pero ojo "hacer muchas clases" no es un concepto de diseño, y es un error bastante común cuando se empieza con OOP, intenta justificar la necesidad de cada una de ellas o naufragarás en un "overarquitect"

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Ago 2010 08:32 pm
muchas gracias por tus respuesta mira probando me resulto asi...

en mi clase principal Teclado en el boton buscar puse

Código ActionScript :

nextFrame();
            var busqueda:Busqueda = new Busqueda;
            busqueda.formatoDG(dgSepultados);


y en mi clase busqueda puse

Código ActionScript :

public function formatoDG(dg:DataGrid):void
      {
          dg.addColumn("NOMBRES");
         dg.addColumn("APELLIDOPATERNO");
         dg.addColumn("APELLIDOPATERNO");
         dg.addColumn("APELLIDOMATERNO");
         dg.addColumn("UBICACION");


         dg.columns[0].width = 70;
         dg.columns[1].width = 70;
         dg.columns[2].width = 70;
         dg.columns[3].width = 150;
         dg.columns[1].headerText = "APELLIDO PATERNO";
         dg.columns[2].headerText = "APELLIDO MATERNO";
      }



asi me funciona a la perfeccion es ta bien hecho o no?

Por SoliD

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Ago 2010 08:41 pm
Al andar se hace camino, tu sigue pa'lante

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Ago 2010 08:52 pm
jajja ;) gracias!

ahora como esto lo paso por parametro de un metodo.. habra alguna forma para pasarlo como variable local para ocuparlo en toda la clase?

Por SoliD

50 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Ago 2010 08:53 pm
Investiga un poco este término: scope (alcance)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Ago 2010 08:57 pm
okales muchas gracias te pasaste por todo ;)!

Por SoliD

50 de clabLevel



 

firefox

 

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