Comunidad de diseño web y desarrollo en internet online

OOP en AS3 -> Usar URLRequest desde una Clase

Citar            
MensajeEscrito el 24 Ene 2010 07:36 pm
Estoy teniendo un dilema para poder ejecutar desde mi Document Class, o cualquier Clase en realidad el siguiente código:

Código ActionScript :

var req:URLRequest = new URLRequest("testing.swf");
var loader:Loader = new Loader()
loader.load(req);
addChild(loader);


Cuando lo ejecuto Flash responde:

Código ActionScript :

1046: Type was not found or was not a compile-time constant: URLRequest.
1046: Type was not found or was not a compile-time constant: Loader.
1180: Call to a possibly undefined method URLRequest.
1180: Call to a possibly undefined method Loader.
1180: Call to a possibly undefined method addChild.


Por lo que el error me dicta, asumo que me faltan las Clases dentro de mi Clase, por lo cual intente poner:

Código ActionScript :

import flash.display.DisplayObject;


Luego intente:

Código ActionScript :

import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.LoaderInfo;
import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;


Pero eso solo me redujo el problema a los siguientes errores:

Código ActionScript :

1046: Type was not found or was not a compile-time constant: URLRequest.
1180: Call to a possibly undefined method URLRequest.
1180: Call to a possibly undefined method addChild.


¿Alguien me podría indiciar como solucionar este problemita? Gracias de antemano y disculpen si quedo larga la explicación.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 24 Ene 2010 07:59 pm
Hola,
en una clase AS3 hay que importar todos los objetos que vayas a usar, así que si tu clase extiende a MovieClip tienes que importar:

Código ActionScript :

import flash.display.MovieClip;
import flash.net.URLRequest;
import flash.display.Loader;

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ene 2010 08:18 pm
Muchas gracias, sabia eso, pero no sabia que libreria importar je

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 24 Ene 2010 08:25 pm
Hernán, otra vez cuando te pase eso, ve aquí
http://livedocs.adobe.com/flex/3/langref/
y busca (Ctrl + f) el nombre de la clase que necesites, para saber qué tienes que importar.
Aunque generalmente el IDE de flash importa las cosas solo...

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 24 Ene 2010 08:27 pm
La verdad es que al principio cuesta acordarse de importar todo.
PD: Un truquillo para cargas externas: puedes usar el evento complete para añadir tu loader al stage. Así si no carga correctamente no se añade a la lista de visualización. Si además añades un ioerrorevent puedes gestionar los problemas de carga.
Ejemplo:

Código ActionScript :

package
{
   import flash.display.MovieClip;
   import flash.display.Loader;
   import flash.net.URLRequest;
   import flash.events.Event;
   import flash.events.IOErrorEvent;
   
   public class Main extends MovieClip
   {
      private var _urlRequest:URLRequest;
      private var _loader:Loader;
      
      public function Main()
      {
         _urlRequest = new URLRequest("testing.swf");
         _loader = new Loader();
         _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loaderErrorHandler);
         _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
         _loader.load(_urlRequest);
      }
      
      private function loaderErrorHandler(event:IOErrorEvent):void
      {
         _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, loaderErrorHandler);
         _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
         trace("Error al cargar: " + event);
      }
      
      private function completeHandler(event:Event):void
      {
         _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, loaderErrorHandler);
         _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
         trace("cargado");
         addChild(_loader);
      }
   }
}

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ene 2010 08:44 pm

Zah escribió:

Hernán, otra vez cuando te pase eso, ve aquí
http://livedocs.adobe.com/flex/3/langref/
y busca (Ctrl + f) el nombre de la clase que necesites, para saber qué tienes que importar.
Aunque generalmente el IDE de flash importa las cosas solo...


Gracias por el tip, no tenía ni idea de eso. Es muy útil.


isidoro escribió:

La verdad es que al principio cuesta acordarse de importar todo.
PD: Un truquillo para cargas externas: puedes usar el evento complete para añadir tu loader al stage. Así si no carga correctamente no se añade a la lista de visualización. Si además añades un ioerrorevent puedes gestionar los problemas de carga.
Ejemplo:

Código ActionScript :

package
{
   import flash.display.MovieClip;
   import flash.display.Loader;
   import flash.net.URLRequest;
   import flash.events.Event;
   import flash.events.IOErrorEvent;
   
   public class Main extends MovieClip
   {
      private var _urlRequest:URLRequest;
      private var _loader:Loader;
      
      public function Main()
      {
         _urlRequest = new URLRequest("testing.swf");
         _loader = new Loader();
         _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loaderErrorHandler);
         _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
         _loader.load(_urlRequest);
      }
      
      private function loaderErrorHandler(event:IOErrorEvent):void
      {
         _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, loaderErrorHandler);
         _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
         trace("Error al cargar: " + event);
      }
      
      private function completeHandler(event:Event):void
      {
         _loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, loaderErrorHandler);
         _loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler);
         trace("cargado");
         addChild(_loader);
      }
   }
}


Si lo del complete lo tenía pero estoy intentando comprender todas las bases del nuevo esquema sin liarme. De hecho como primer ejercicio cree toda una libreria de cargas de fotos y bla bla bla. Pero lo que no quiero es programar en el Keyframe, sino moverme por el sistema de Clases que propone Flash, lo cual esta bastante liado de entender por la falta de documentación.

Prometo una vez lo entienda armar un artículo al respecto para corregir los problemas que tiene un aprendiz de AS3 para entender el desenvolvimiento más extendido.

Saludos, Hernán . -

PD. Desde ya, muchas gracias por su ayuda . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 24 Ene 2010 09:37 pm
Tambies podes usar el IDE FlashDevelop que te inserta los import a medida que vas creando los objetos. Ahora que estas usando clases en vez de meter código en la linea de tiempo, te recomiendo que te pases a FlashDevelop. El IDE de as3 en flash deja mucho que desear.

http://www.flashdevelop.org/

Saludos

Por GustavoV

Claber

136 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ene 2010 09:49 pm

GustavoV escribió:

Tambies podes usar el IDE FlashDevelop que te inserta los import a medida que vas creando los objetos. Ahora que estas usando clases en vez de meter código en la linea de tiempo, te recomiendo que te pases a FlashDevelop. El IDE de as3 en flash deja mucho que desear.

http://www.flashdevelop.org/

Saludos


Gracias por el consejo, voy a probarlo y luego te cuento. Gracias !!!

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox

 

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