Comunidad de diseño web y desarrollo en internet online

link html en campo dinamico y clase

Citar            
MensajeEscrito el 17 Jun 2008 02:27 am
Saludos a todos....

Tengo esta clase (he quitado fragmentos de codigo para no hacer larga la lectura):

Código :

class trying {
   public var campo:TextField;
   public function trying(cual:TextField) {
      campo=cual;
      var string:String="";
      string+= "<a href='asfunction:clicko,hiciste click'>click aqui</a><br>";
      cual.html=true;
      cual.htmlText=string;
   }
   public function clicko(infoXml:String) {
      trace("click en " + infoXml);
   }
}

Trato de ejecutar la funcion clicko(), al hacer click en el vinculo html que esta en la variable string, que despues asigno a un campo de texto:

En mi fla tengo:

Código :

import trying
//--
var prueba:trying=new trying(txt)


O sea, en mi fla tengo un campo de texto dinamico llamado "txt"... en su contenido aparece el vinculo "<a href='asfunction:clicko,hiciste click'>click aqui</a><br>" que es importado de la clase trying, metodo trying() ... al hacer click en el, tendria ejectarse el metodo clicko()... pero no sucede nada, no funciona :(

Gracias por cualquier ayuda.

Por deftones_sv

86 de clabLevel



 

El Salvador

firefox
Citar            
MensajeEscrito el 17 Jun 2008 12:47 pm
Es un problema de scope, se ejecuta al nivel de la línea de tiempo, no de tu clase. Tendrás que poner la función en la línea de tiempo donde esté tu textfield, aunque puedes intentar un path absoluto a la instancia de tu clase

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Jun 2008 02:30 pm
:o :?
Bueno, por el momento tube que quitar la funcion clicko de la clase y ponerla en un archivo.as separado, y en mi fla puse esto:

Código :

import trying
#include "funcionClicko.as"

Y hasta el momento funciona bien...la duda que tengo es que no se que tan correcto sea hacer eso en AS2, por aquello de buenas practicas de programacion.

Gracias solisarg

Por deftones_sv

86 de clabLevel



 

El Salvador

firefox
Citar            
MensajeEscrito el 17 Jun 2008 03:57 pm
Bueno, lo del asfunction es viejito y adolece del mismo problema que muchos callbacks de AS2: no respetan el scope de donde son llamados. Cuando es un callback normal (un onLoad por ejemplo) se puede usar la clase Delegate, pero en este caso en particular solo se me ocurre usar una ruta directa a la instancia de tu clase, aunque no se si funcione:

string+= "<a href='asfunction:miInstancia.miMetodo,hiciste click'>click aqui</a><br>";

probalo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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