Comunidad de diseño web y desarrollo en internet online

Clases: variables externas (galeria de fotos)

Citar            
MensajeEscrito el 12 Nov 2010 11:44 pm
Bueno, pude hacer en as3 el codigo para cargar una imagen, ahora lo que quiero es q vaya cambiando a medida qu apreto un boton, este es mi codigo hasta ahora de la clase carga imagen:

Código ActionScript :

package  
{
   import flash.display.Sprite;
   import flash.net.URLRequest;
   import flash.display.Loader;
   import flash.events.*;
 
   public class cargaImagen extends Sprite
   {
 
      private var url:String = "f1.jpg"
       /*(me gustaria hacer algo como:)
      private var url:String = Urlfoto
      (Urlfoto estaría definida en un frame en el fla.)*/

      public function cargaImagen():void
      {
         var loader:Loader = new Loader();
         loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imagenCargada);
         loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, imagenError);
         loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imagenProgreso);
         loader.load( new URLRequest(url));
      }
 
      private function imagenCargada(e:Event):void {
         //trace("Cargada: " + e);
         addChild(e.target.content);
      }
 
      private function imagenError(e:IOErrorEvent):void {
         //trace("Error: " + e);
      }
 
      private function imagenProgreso(e:ProgressEvent):void {
         //trace("Cargados=" + e.bytesLoaded + " Total=" + e.bytesTotal);
      }
 
   }
 
}


lo que me gustaria saber es como accedo desde esta clase a una variable definida en el frame "galerias", asi de esta forma podria decirle q la imagen la cargue en base a la URL q esta en esa variable, y esta variable la puedo ir cambiando cuando aprete un boton, nose si se entiende.
Si hay otra forma mas comoda de hacerlo diganme, pero de todas formas quiero saber como traer el valor de una variable dentro de un frame a una clase (.as).
Gracias!

Por luco

Claber

110 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 13 Nov 2010 10:31 am
Para evitar que las clases vayan a buscar variables a lugares inciertos, se suele utilizar métodos públicos con parámetros o getter/setters. Por ejemplo, supongamos que le pasas el nombre del archivo a cargaImagen, sería

Código ActionScript :

public function cargaImagen(url:String):void 
      { 
         var loader:Loader = new Loader(); 
         loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imagenCargada); 
         loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, imagenError); 
         loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, imagenProgreso); 
         loader.load( new URLRequest(url)); 
      } 


Ahora el método no tiene que ir a buscar la variable a ningún lado, simplemente lo recibe como parámetro

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Nov 2010 05:32 pm
y como hago para pasarle el parametro URL a la funcion? Con una funcion normal seria:

Código ActionScript :

cargaImagen("f1.jpg")

pero lo q no entiendo de ese class es donde dice que se ejecuta esa funcion cargaImagen.

Por luco

Claber

110 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 14 Nov 2010 12:32 pm
Como lo tienes hecho sería:

var cargador:cargaImagen = new cargaImagen("f1.jpg");

Aunque puedes hacerlo reutilizable cambiando el nombre del método a algo distinto del nombre de la clase, supongamos carga, entonces sería

var cargador:cargaImagen = new cargaImagen();
cargador.carga("f1.jpg");

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.