Comunidad de diseño web y desarrollo en internet online

Duda de novato...

Citar            
MensajeEscrito el 12 Sep 2007 03:23 pm
Buenas!! Estoy emplezando con esto del flex y de AS, y he leído algo sobre clases, así que me he decidido a hacer mi primer ejemplo. A ver que estoy haciendo mal...

Tengo una clase llamada Ejemplo.as

Código :

package 
{
    public class MiEjemplo 
    {
        public function dimeHola():String 
        {
            var greeting:String;
            greeting = "Hello World!";
            return greeting;
        }
    }
}



Y quiero llamar a la función dimeHola() desde una aplicación, asÍ:

Código :

<mx:Script>
   <![CDATA[
      var misaludo:MiEjemplo=new MiEjemplo();
      misaludo.dimeHola();
   ]]>
</mx:Script>


Pero me dá error :crap: Alguna idea?

Por Prometeo2006

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Sep 2007 03:41 pm
Te falta la función MiEjemplo()

Código :

package 
{
    public class MiEjemplo 
    {
        public function MiEjemplo(){

        }

        public function dimeHola():String 
        {
            var greeting:String;
            greeting = "Hello World!";
            return greeting;
        }
    }
}


Sin esa función no puedes instanciar la clase.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 12 Sep 2007 03:55 pm
1. Has de importar la clase
2. Has de definir las variables como publicas
3. La función dimeHola() es una función recursiva con lo que has de colocar el String que devuelve dentro de una variable
4. Has de asignar ese String a algun componente de flex para ver algun resultado

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
   <![CDATA[
     import MiEjemplo
     public var misaludo:MiEjemplo = new MiEjemplo();
     [Bindable]
     public var misaludo2:String = misaludo.dimeHola();
   ]]>
</mx:Script>
   <mx:Label text="{misaludo2}"/>
</mx:Application>

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 12 Sep 2007 04:46 pm
Hola! Muchas gracias a los dos, pero ninguna solución me funciona...Con la respuesta de Sir Zeta Von Guillez, me sale el error:

Código :

1046: La anotación de tipo no es una constante en tiempo de compilación


en la declaración:

Código :

   public var misaludo:MiEjemplo=new MiEjemplo();


Alguna otra idea? Muchas gracias a los por vuestra ayuda!!

Por Prometeo2006

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Sep 2007 06:52 pm

Código :

1046: La anotación de tipo no es una constante en tiempo de compilación

Eso es por que no encuentra la clase MiEjemplo.
¿tienes el archivo MiEjemplo.as al lado del archivo mxml?

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 13 Sep 2007 07:11 am
Sí, ambos están en el directorio raíz, es decir, uno al lado del otro.

Gracias de nuevo!

Por Prometeo2006

122 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Oct 2007 02:52 am
No se si ahun te sirva por el tiempo que ha pasado, pero segun yo tu funcion dime hola regresa una cadena



public function dimeHola():String { var greeting:String; greeting = "Hello World!";
return greeting; }
Y la mandas llamr de manera correcta pero necesitas una variable cadena donde se almacene
var cadena:String;
cadena=misaludo.dimeHola();

Nota: Lo mas seguro esque por el tiempo pasado tu ya lo allas resuelto pero espero que sirva para alguien mas XD

Por Langarica

1 de clabLevel



Genero:Masculino  

msie

 

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