Comunidad de diseño web y desarrollo en internet online

ayuda para referenciar funciones dentro de clases

Citar            
MensajeEscrito el 07 Jul 2011 04:40 pm
Hola,

quería saber si alguien podía ayudarme con lo siguiente porque ya no sé qué más hacer. :cry: Imagino que es un problema a la hora de referenciar la llamada a una función con respecto a su lugar y la clase principal...Tengo una clase principal y otra secundaria, desde la secundaria quiero llamar a una función de la principal (con la condición de que haya conexión de red) para que postee un xml.

Agradecería cualquier orientación...

El trozo en concreto de la clase principal (funcion a la que quiero llamar)

Código ActionScript :

function generateOutputXML() {
      
      var thisRef:Object = this;
      var outputXML:String = convertQuestionArrToXML();
      if(thisRef.category == "example") {
         outputXML = "";
      }      
      
      var my_lv:LoadVars = new LoadVars();
      my_lv.outputxml = outputXML;
      my_lv.send(configXml.config.outputServletPath[0]._innerData, "_self", "POST");
      ExternalInterface.call("exit");
   }



La parte en concreto de la clase secundaria Controller:

Código ActionScript :

var assessmentEngineObj; // es una instancia de la clase principal

[...]

function conexion(){ //intento de carga de conexion, se inicializa desde Controller.as
      var thisRef:Object = this;
      var myl:LoadVars =new LoadVars();
      myl.onLoad=finishLoading;
      myl.load("http://www.google.es");
         
      }
      
      
   
   function finishLoading(success) // los casos de conexion
      {
      
      var thisRef:Object = this;
      if(success){ //si hay conexion
            
         [b][color=red]thisRef.assessmentEngineObj.generateOutputXML();[/color][/b]// el problema
               
         }else{ *llama a unaalerta de JS para saber que no hay conexion*/
         
         ExternalInterface.call("muestraConfirm"); /
         
            }
      
   }

   function assignFunctions() {
      var thisRef:Object = this;
      
      
      userInterfaceObj.rootMc.confirmMC.btnOkMc.confirmBtn.onRelease = function() {
         if (!thisRef.assessmentEngineObj.isNavigate) {
            
            thisRef.conexion();
            
            
         } 
      };

Por malenka_x

54 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Jul 2011 04:42 pm
Quise poner la llamada en rojo, pero no ha salido :S

Por malenka_x

54 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Jul 2011 06:48 pm
Tienes un problema de scope. Si bien puedes usar referencias para apuntar a tu clase, lo mejor es que lo hagas con Delegate.create para que puedas hacer referencia a cualquier objeto sin tener que usar referencias que se complican (en tu caso creas la referencia en el callback, que ya est{a fuera de scope, con lo cual thisRef no apunta a la clase) Si no has escuchado de Delegate, mirate http://www.actionscript.org/resources/articles/205/1/The-Delegate-Class/Page1.html

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Jul 2011 07:52 am
Muchas gracias! echaré un vistacillo a lo que comentas ;)

Por malenka_x

54 de clabLevel



 

firefox

 

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