Gracias Manuel por otra clase magistral.

o.

-----Mensaje original-----
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En
nombre de Manuel de la Higuera
Enviado el: lunes, 03 de octubre de 2005 17:59
Para: [email protected]
Asunto: RE: [ASNativos] añadir métodos a la clase Array

Utilizo un método estático por cuestiones de practicidad. Es más que
probable que te interese aleatorizar un array de cualquier procedencia y
no
exclusivamente los Arrays que has creado a partir de la extensión
(imagínate
un DataProvider, por ejemplo). Para esos casos, te interesa que se pueda
realizar sobre cualquier array evitando la necesidad de utilizar tu
extensión de Array. 

En ActionScript 1, puedes directamente manipular el prototype de la
clase
Array, haciendo que el método esté disponible para cada Array; esta
opción
también es válida, pero no deja de ser un cañonazo para matar a una
mosca (y
te puedes encontrar, antes o después, con 300 cañonazos innecesarios si
mantienes ese método).

Para utilizarlo desde la otra clase, simplemente tendrías que hacer
ArrayRandomizer.randomize(array) una vez importada la clase de
ArrayRandomizer. Para codificarlo, exáctamente igual que si se tratase
de un
prototype, pero sustituyendo this por el nombre del parámetro que le
pasas
como Array. 

La clase podría resultar en algo así:

class ArrayRandomizer {
        static public function randomize(arr) {
                arr.sort(function() { return random(2) })
        }
}

Y para testarlo:

a = new Array(1,2,3,4,5);
ArrayRandomizer.randomize(a);

M.



> -----Mensaje original-----
> De: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] En nombre de óscar
> Enviado el: lunes, 03 de octubre de 2005 17:42
> Para: [email protected]
> Asunto: RE: [ASNativos] añadir métodos a la clase Array
> 
> ¿Porqué un método estático? ¿Cómo lo utilizaría desde otra clase?
> 
> Gracias.
> 
> o.
> 
> -----Mensaje original-----
> De: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] En nombre de Manuel de la 
> Higuera Enviado el: lunes, 03 de octubre de 2005 16:41
> Para: [email protected]
> Asunto: RE: [ASNativos] añadir métodos a la clase Array
> 
> Es posible hacerlo extendiendo la clase Array pero no resulta 
> demasiado práctico (y el exceso de extensiones resultan 
> perjudiciales a la larga).
> Yo,
> personalmente, optaría por una clase con su correspondiente método
> estático:
> 
> class ArrayRandomizer {
>       static public randomize(arr:Array):Array {
>               ...
>               return arr;
>       }
> }
> 
> M.
> 
> 
> 
> > -----Mensaje original-----
> > De: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] En nombre de óscar Enviado el: 
> > lunes, 03 de octubre de 2005 16:22
> > Para: [email protected]
> > Asunto: [ASNativos] añadir métodos a la clase Array
> > 
> > Hola a todos,
> >  
> > Estoy comenzando a pelearme con la OOP en AS2 y me surgen 
> millones de 
> > dudas… aquí va una de las básicas: ¿Cómo puedo añadir un 
> nuevo método 
> > a las clases Number, String o Array?
> >  
> > Me gustaría implementar un método para desordenar un array. 
> > En AS1 lo haría con prototypes, pero ¿como sería en AS2? 
> > Supongo que extendiendo la clase Array, ¿no?
> >  
> > ¿Alguien me puede dar una pista?
> >  
> > Gracias. 
> > ----------------------------------
> > Lista ASNativos:[email protected]
> > http://www.5dms.com/listas
> > ----------------------------------
> > 
> 
> ----------------------------------
> Lista ASNativos:[email protected]
> http://www.5dms.com/listas
> ----------------------------------
> 
> ----------------------------------
> Lista ASNativos:[email protected]
> http://www.5dms.com/listas
> ----------------------------------
> 

----------------------------------
Lista ASNativos:[email protected]
http://www.5dms.com/listas
----------------------------------

----------------------------------
Lista ASNativos:[email protected]
http://www.5dms.com/listas
----------------------------------

Responder a