h=received:message-id:date:from:reply-to:to:subject:mime-version:content-type:content-transfer-encoding;

        
b=DKuM3eufcztzDHr91OLKUmG44ibUF3PIJNBxOdkAFWQxIhm5JOFAfbnQNdeWKCg1tRHxcPBCSkLyU1pv/kFPuPcAfR9jSR2X6P4xDlpLGkx89151oYqjrFN0xVlq/h2LMxM5n3KlEEaQKbicyXoKxgHYHFUmAwGrjE06tMIiDIE=
Received: by 10.39.3.56 with SMTP id f56mr3191247rni;
        Mon, 11 Apr 2005 13:34:33 -0700 (PDT)
Received: by 10.38.126.62 with HTTP; Mon, 11 Apr 2005 13:34:33 -0700 (PDT)
Message-ID: <[EMAIL PROTECTED]>
Date: Mon, 11 Apr 2005 22:34:33 +0200
From: David Mateos <[EMAIL PROTECTED]>
To: [email protected]
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Subject: =?iso-8859-1?q?=5BASNativos=5D_?=
 como acceder a las propiedades de una clase desde un intervalo que esta
        dentro de la misma clase?
X-BeenThere: [email protected]
X-Mailman-Version: 2.1b2
Precedence: bulk
Reply-To: [email protected]
List-Id: Lista dedicada a Actionscript <5dms.com.asnativos.5dms.com>
List-Post: <mailto:[email protected]>
List-Subscribe: <http://list.5dms.com/mailman/listinfo/5dms.com.asnativos>,
        <mailto:[EMAIL PROTECTED]>
List-Unsubscribe: <http://list.5dms.com/mailman/listinfo/5dms.com.asnativos>,
        <mailto:[EMAIL PROTECTED]>
List-Archive: <http://list.5dms.com/mailman/private/5dms.com.asnativos>
List-Help: <mailto:[EMAIL PROTECTED]>
Sender: [EMAIL PROTECTED]
Errors-To: [EMAIL PROTECTED]

Estoy intentando hacer una clase en AS2 que cree "x" clones de un
movieclip dado, y que los coloque en en forma de matriz (osea, tantas
columnas por tantas filas).

Ademas quiero hacerles un gotoAndPlay a todos de forma secuencial, con
un intervalo, pero el problema que tengo es que desde la funcion a la
que llama el intervalo, no puedo acceder a las propiedades de la
clase...

Pego el codigo minimo para que se entienda lo que quiero hacer (mas
abajo pongo la clase entera, por si alguien cree que es aprovechable y
la quiere mejorar):

class Robota {

        var miIntervalo;
        var num:Number = 1;
        var max_num:Number;
        var milisegundos:Number;
        
        function Robota(maximo:Number, tiempo:Number){
                max_num = maximo;
                milisegundos = tiempo;
        }

        function inicia(){
                miIntervalo = setInterval(dispara, milisegundos);
        }
        
        function dispara(){
                num++;
                trace(num);         <-------este trace deberia sacar:
1,2,3,4,5,6,etc  pero saca "undefined"
                if(num > max_num){
                        clearInterval( miIntervalo )
                }
        }
}


Y en la linea de tiempo la instancio:

var miInstancia:Robota = new Robota(99, 1000);    <----   99 llamadas
cada 1 segundo
miInstancia.inicia();        <-----   crea el intervalo


//////////////////////////
////clase 


class Robot {

         //parametros
        public var mc_base:MovieClip;
        public var _xspace:Number;
        public var _yspace:Number;
        public var cols:Number;
        public var filas:Number;
        public var tiempo:Number;
         
         //variables
        public var arr_obj:Array = [];
        public var arr_pos:Array = [];
        public var elIntervalo;
        public var num:Number = 0;

        function Robot(conf:Object){
                mc_base = conf.mc_base;
                _xspace = conf.espaciado[0];
                _yspace = conf.espaciado[1];
                cols = conf.rejilla[0];
                filas = conf.rejilla[1];
                tiempo = conf.secuencia[0];
        }

        function formatea(){
                //genera la cuadricula de posiciones
                var c:Number = 0;
                var j,i:Number;
                for(j=0;j<filas;j++){
                        for(i=0;i<cols;i++){
                                arr_pos[c] = [];
                                arr_pos[c][0] = i * _xspace;
                                arr_pos[c][1] = j * _yspace;
                                c++;
                        }
                }
                //los coloca en su sitio 
                var k:Number;
                for(k=0;k<arr_pos.length;k++){
                        duplicateMovieClip(mc_base, "clon"+k, -100-k);
                        arr_obj[k] = mc_base._parent["clon"+k];
                        arr_obj[k]._x = arr_pos[k][0];
                        arr_obj[k]._y = arr_pos[k][1];
                }
                //
                elIntervalo = setInterval(inicia, tiempo);
        }
        
        function inicia(){
                arr_obj[num].gotoAndPlay(2);
                num++;
                
                if(num > arr_obj.length){
                        clearInterval( elIntervalo );
                }
        }
}


Desde la linea de tiempo:

config = new Object();
config.mc_base = cuadro;
config.rejilla = [9,9];
config.espaciado = [60,60];
config.secuencia = [10, "simple"];
var myRobot:Robot = new Robot(config);
myRobot.formatea();
----------------------------------
Lista ASNativos:[email protected]
http://www.5dms.com/listas
----------------------------------

Responder a