Comunidad de diseño web y desarrollo en internet online

Delegate.create()

Citar            
MensajeEscrito el 18 Ene 2007 05:43 pm
¿Cómo debo utilizar Delegate.create() si lo que quiero es llamar al evento onLoadProgress, ¿Cómo paso los parámetros target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number, con Delegate.create?
Entiendo que podemos llamar a una función así, listener.eventoquesea = Delegate.create(this, funcion_callback), pero dónde pasamos los parámetros que necesite una funcón cualquiera?

Por saulo

43 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Ene 2007 06:32 pm
NO necesitas Delegate para eso. Haz un addListener(this), donde this se refiere a tu clase. Igual que lo hago aquí, pero agregando parámetros.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 18 Ene 2007 06:48 pm
Puedes mirar esto.

Por dmvalverde

150 de clabLevel



Genero:Masculino  

Extremadura

firefox
Citar            
MensajeEscrito el 18 Ene 2007 06:50 pm
Perdona si soy un poco pesado, pero es que esto de las clases es demasiado nuevo para mi :crap:
¿Entonces cómo le paso los parámetros? He probado esto pero evidentemente no funciona, dice que espera un ) o ,

Código :

listener.onLoadProgress = addListener(this, target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number);

Por saulo

43 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Ene 2007 06:55 pm

Código :

class TuClase{
function TuClase(){
var ldr:MovieClipLoader=new MovieClipLoader();
ldr.addListener(this)
}
private function onLoadProgress(param1,param2,...,paramN){
trace(param1);
}
}

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox
Citar            
MensajeEscrito el 18 Ene 2007 07:03 pm
Me volveré loco!!! :shock: Creía que con tu maravillosa intervenciójn acabaría con el problema per el panel de salida me dice esto: "Atributo utilizado fuera de una clase.
private function onLoadProgress (target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number);", junto con los demás eventos de MovieClipLoader. Aquí te dejo el código para que le heches una miradita a ver si ves un de esas cagadas garrafales:

Código :

import mx.transitions.Tween;
import mx.transitions.easing.*;
class veu_img{
   //propiedades
   private var scope:MovieClip;
   private var carregador:MovieClipLoader;
   private var listener;
   private var colorFonsBar:String = '0xcccccc';
   private var colorBar:String = '0x000000';
   private var marge:Number = 10;
   private var alcada:Number = 1;
   private var amplada:Number = 150;
   private var startX:Number =-(amplada/2);
   private var startY:Number =-(alcada/2);
   //constructor
   public function veu_img(clip:MovieClip){
      carregador = new MovieClipLoader();
      carregador.addListener(this)
      listener = new Object();
      listener.addListener(this)
   }
   //métodos
   private function veure_cb(img:String):Void{
      createEmptyMovieClip("empty",getNextHighestDepth());
      private function onLoadStart (target_mc:MovieClip);
         empty._x=clip._x; empty._y=clip._y;
         empty.createEmptyMovieClip("preload",getNextHighestDepth());
         empty.preload._x=empty.preload._y=0;
         empty.preload.moveTo(startX, startY);
         empty.preload.beginFill(colorFonsBar, 80);
         empty.preload.lineTo(startX+amplada, startY);
         empty.preload.lineTo(startX+amplada, startY+alcada);
         empty.preload.lineTo(startX, startY+alcada);
         empty.preload.lineTo(startX, startY);
         empty.preload.endFill();
         var startX:Number = 0;
         var startY:Number = 0;
      }
      private function onLoadProgress (target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number);
         percent = Math.round((bytesLoaded/bytesTotal)*amplada);
         empty.preload.createEmptyMovieClip("prebar",getNextHighestDepth());
         empty.preload.prebar.moveTo(startX, startY);
         empty.preload.prebar.beginFill(colorBar, 100);
         empty.preload.prebar.lineTo(startX+percent, startY);
         empty.preload.prebar.lineTo(startX+percent, startY+alcada);
         empty.preload.prebar.lineTo(startX, startY+alcada);
         empty.preload.prebar.lineTo(startX, startY);
         empty.preload.prebar.endFill();
         empty.preload.prebar._x=empty.preload.prebar._y=0;
   
      }
      private function onLoadComplete (target_mc:MovieClip){
         empty.preload.removeMovieClip();
      }
      private function onLoadInit (target_mc:MovieClip){
         empty._visible=false;
         empty._x-=(empty._width/2);
         empty._y-=(empty._height/2);
         var width = clip._width;
         var height = clip._height;
         var xscale:Number = ((empty._width+(marge*2))*100)/clip._width;
         var yscale:Number = ((empty._height+(marge*2))*100)/clip._height;
         miXTween = new mx.transitions.Tween(clip, "_xscale", Strong.easeOut, 100, xscale, 1.5, true);
         miYTween = new mx.transitions.Tween(clip, "_yscale", Strong.easeOut, 100, yscale, 1.5, true);
         miYTween.onMotionFinished = function() {
            empty._visible=true;
            var tweenAlpha:Tween =  new Tween (empty, "_alpha", Strong.easeInOut, 0, 100, 1, true);
         }
      }
      //carregador.addListener(listener);
      carregador.loadClip(img,empty);
   }
   private function veure(img:String){
      empty._visible=false;
      miXTween.yoyo();
      miYTween.yoyo();
      miYTween.onMotionFinished = function() {
         veure_cb(img);
      }
   }
}


Agradezco enormemente tu ayuda :wink:

Por saulo

43 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Ene 2007 07:22 pm
esas funciones van FUERA del constructor de la clase.

Por Zah

BOFH

4290 de clabLevel

27 tutoriales
5 articulos

  Bastard Operators From Hell Editores

Zaragoza, España

firefox

 

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