Foros del Web » Creando para Internet » Flash y Actionscript »

importar class en AS3

Estas en el tema de importar class en AS3 en el foro de Flash y Actionscript en Foros del Web. Hola a todos Estoy empezando en esto del AS3 Estoy tratando de hacer un ejemplo sencillo, el tipico "Hello World!" ´pero no me hace nada ...
  #1 (permalink)  
Antiguo 05/02/2008, 06:47
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
importar class en AS3

Hola a todos

Estoy empezando en esto del AS3

Estoy tratando de hacer un ejemplo sencillo, el tipico "Hello World!" ´pero no me hace nada

Este es el "testAS.as"

package testClass
{
public class Greeter
{
public function sayHello():String
{
var greeting:String;
greeting = "Hello World!";
return greeting;
}
}
}


y este el FLA
Hay un campode texto dinamico llamado "mainText"

import testClass.Greeter;
var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello("Bob");


En el classpath le puse la ruta directa al .as, pero me tira el mensaje "A definition for the document class could not be found in the class path, so one will be automatically generated in the swf file upon export"

Gracias de antemano.
  #2 (permalink)  
Antiguo 05/02/2008, 09:08
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: importar class en AS3

Pues la clase debe tener el mismo nombre que el archivo y debe empezar por mayúscula. Si la clase se llama Greeter, el fichero as también debe llamarse así.
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #3 (permalink)  
Antiguo 05/02/2008, 09:13
Avatar de carlxime  
Fecha de Ingreso: marzo-2007
Ubicación: México
Mensajes: 180
Antigüedad: 10 años, 9 meses
Puntos: 6
Re: importar class en AS3

Hola eduvivi,

Pueden ser varias las posibles causas de que tu código no esté funcionando, te las escribo:

- Tu archivo .as debe llamarse igual que tu clase (como menciona Mahalo). En este caso debe ser Greeter.as
- El package testClass significa que tu archivo .as está dentro de un directorio llamado testClass ¿sí lo tienes así?
- Tu función sayHello la tienes definida en el archivo .as como que no recibe parámetros; sin embargo, en el FLA le estás pasando como parámetro un String ("Bob").

El código debería ser:

Código:
// Si no quieres pasarle parámetros a sayHello
import testClass.Greeter;
var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello();

// O bien, si quieres pasarle el parámetro de String tu clase sería:
package testClass
{
	public class Greeter
	{
		public function sayHello(msj:String):String
		{
			var greeting:String;
			greeting = "Hello World! " + msj;
			return greeting;
		}
	}
}
Saludos.
  #4 (permalink)  
Antiguo 05/02/2008, 13:00
 
Fecha de Ingreso: enero-2002
Mensajes: 349
Antigüedad: 15 años, 11 meses
Puntos: 1
Re: importar class en AS3

Hola gracias a todos por su ayuda, funciono muy bien asi, asdemas de agregarle una o dos lineas mas necesarias.

Ahora me esta tirando este error y no logro solucionarlo.

Error: Error #2136: The SWF file file:///D|/FLASH%5Ftrainning/AS3/testClass/main.swf contains invalid data.
at testClass::Greeter/frame1()


Codigo del .as

package testClass{
import flash.display.MovieClip;
public class Greeter extends MovieClip {
public function sayHello(msj:String):String {
var greeting:String;
greeting = "Hello World! " + msj;
return greeting;
}
}
}

Codigo del FLA

import testClass.Greeter;
import flash.text.TextField;
var myGreeter:Greeter = new Greeter();
mainText.text = myGreeter.sayHello("Bob");
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:06.