Comunidad de diseño web y desarrollo en internet online

Eventos en Clases

Citar            
MensajeEscrito el 23 Dic 2005 05:33 pm
Hola a todos!
Tengo la siguiente consulta para hacerles...
Resulta que hice una clase que me levanta un XML, me lo interpreta y lee cada una de las partes, y de acuerdo a eso me parsea un texto en HTML con links y demas... es para hacer la seccion de Noticias en una web, donde uno muestre parte de la noticia y luego redirija a otra parte de Flash la parte de "Ver mas...", en fin, hace mas cosas, pero lo basico es para eso.
Esta clase me devuelve todo el texto parseado en una variable htmlText.
El problema surge de que quiero crear algun evento "dentro" de la clase, para poder saber cuando se ha finalizado la carga de mis noticias, pero no se como hacerlo.
Es decir, me gustaria hacer algo similar a esto:

Código :

var Noticias:GestionNoticias=new GestionNoticias();
Noticias.cargarNoticias("noticias.xml");

Noticias.onLoad=function(sucess){
     if(sucess){
          txtNoticias.htmlText=Noticias.htmlText;
    }else{ 
          trace("No se pudo cargar las noticias...");
    }
}


La cadena ya le hice seguimientos y devuelve todos los valores correctamente, el tema es que al realizar tantas operaciones, si yo asigno directamente el contenido de la clase Noticias.htmlText, digamos que se ejecuta primero la asignacion y luego se resuleve todo lo de la clase, por lo tanto me devuelve UNDEFINED la variable htmlText hasta que se ejecuta la funcion cargarNoticias de la clase.
Agradezco de antemano la ayuda ;)

Saludos!

Por mateando

8 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 23 Dic 2005 06:23 pm
pues es "sencillito" , creas una variable en la clase al estilo

var lanzandoEvento:Function;

después cuando realmente se termine la carga solo tienes que llamar a la función

//ACCIONES
this.lanzandoEvento();
//Más Acciones



Finalmente solo tienes que "reescribir" (más bien declarar) la función "lanzandoEvento" en tu programa

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 26 Dic 2005 08:32 pm
lo otro sería utilizar dispatchEvent y después en el fla utilizar un listener....

Por Altrix

156 de clabLevel



 

Cuba, Ciudad de la Habana

firefox
Citar            
MensajeEscrito el 27 Dic 2005 01:43 pm
tambien puedes utilizar esto :


AQUI

Por geronimo

65 de clabLevel



Genero:Masculino  

mozilla
Citar            
MensajeEscrito el 27 Dic 2005 04:29 pm
Algun BOFH, por favor corrijan ese link









:?

Por La100rra

Claber

5776 de clabLevel

11 tutoriales
4 articulos

Genero:Masculino  

Cd. Juárez, Chihuahua, México.

clabbrowser
Citar            
MensajeEscrito el 27 Dic 2005 06:41 pm
no se de que link hablas lazo... la100rra ^^

Por _CONEJO

BOFH

7639 de clabLevel

17 tutoriales
21 articulos

 

firefox
Citar            
MensajeEscrito el 28 Dic 2005 04:26 pm

Altrix escribió:

lo otro sería utilizar dispatchEvent y después en el fla utilizar un listener....

Gracias a todos por sus contestaciones!!!
Bueno, al final despues de ver las opciones he decidido optar por la clase EventDispatcher tal y como me lo recomendaron.
Pude pasar eventos de manera facil y sin problemas, aunque me sorprendio el "como" lo hace AS 2.0 con respecto a otros lenguajes que he usado. En fin...
Ahora me viene otro problema... resulta que tengo lo siguiente dentro de una función:

Código :

//...
var oNoticias:LoadVars= new LoadVars();
oNoticias.load(sUrlNoticias);
oNoticias.onLoad=function(cargado){
    if(cargado){
        sNoticias=this.cTexto;
        if(sUrlLink.length>0){
            sNoticias+=chr(13)+"<A HREF=\"asfunction:MyFunc,"+sUrlLink+",2\">Leer mas...</A>";
        }
        sHtmlText=sNoticias;
        
        trace("Muestro el resultado:"+sHtmlText)
   
        //  PROBLEMA --- DANGER --- DANGER   
        var eventObject:Object = {target:this, type:'Loaded'}; //<<<--
        dispatchEvent(eventObject);                            //<<<--
        //  SE ME PINCHA EL GLOBO --- DANGER --- DANGER

        trace("segumiento...");
        return true;
   }else{
        trace("No se ha podido cargar esta noticia");
        throw("No se ha podido cargar esta noticia");
        return false;
   }
}
//...


El problema esta en la parte que "resalte", en esa zona no se ejecuta el dispatch, y para peor, probe tratando de ejecutar cualquier funcion que contenga un simple TRACE en su interior y no me muestra nada, lo que indica que no se esta ejecutando las funciones, pero el TRACE que dice "seguimiento" si lo muestra... es como si me ignorara las funciones entre ese tramo y no encuentro la solucion... antes de esta seccion de código tengo otros dispatch y me los detecta correctamente, el problema solo esta en esta seccion de codigo, pero no me doy cuenta de cual es el problema.

Saludos!

Por mateando

8 de clabLevel



Genero:Masculino  

msie

 

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