Comunidad de diseño web y desarrollo en internet online

Función que asigna/cambia propiedades/atributos de un objeto.

Citar            
MensajeEscrito el 09 May 2011 08:47 pm
Saludos cordiales a todos espero que esto sea de utilidad, comento un poco como se me ocurrió, un día un poco agotado de crear un lista de propiedades/atributos que quería cambiar o definir en un constructor, se me ocurrió una rutina que recorriera todo por sí misma independiente de los atributos que se deseen cambiar.

Código ActionScript :

//Llamada a función setAtributes
setAtributes(clip, {buttonMode:true, enabled:true, visible:true, alpha:0.1});
 
//
function setAtributes(clipRecibido:*, objRecibido:Object):void{
//clipRecibido es el clip al que se desea realizar cambios.
//objRecibido es el objeto que trae todos los atributos a cambiar más sus valores.
//básicamente es un constructor que está dentro de una clase.
    if(objRecibido){
        for(var id:String in objRecibido){
            var val:Object              = objRecibido[id]; 
            clipRecibido[id]            = val;
        }
    }
}


Espero le sea de ayuda alguien.

Saluda Atte.
Claudio Barrera Asencio.
TNS en Computación e Informática.

Por polo_W12

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 May 2011 09:04 pm
Eso lo hacía el objeto de inicialización en el attachMovie (AS2), pero es cierto que en AS3 ya no existe más el attachMovie, así que si alguien necesita meter propiedades en una clase dinámica (como Object o MovieClip) puede usar tu método

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 May 2011 09:14 pm

solisarg escribió:

Eso lo hacía el objeto de inicialización en el attachMovie (AS2), pero es cierto que en AS3 ya no existe más el attachMovie, así que si alguien necesita meter propiedades en una clase dinámica (como Object o MovieClip) puede usar tu método

Jorge


¡Si!, es cierto con la diferencia que entrego el método para que puedan desarrollar muchas más ideas basadas en ésta, espero que le sirva a alguien, a mí se me ocurren un sin fin de utilidades basados en la misma estructura...

Saluda Atte.
Claudio Barrera Asencio.
TNS en Computación e Informática.

Por polo_W12

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Jun 2011 02:54 pm
Basados en la misma estructura se me ocurre la siguiente estructura aunque es un poco básica, cree una clase que recibe múltiples Objetos y les asigna Listener, sin necesidad des escribir mucho código.

Código ActionScript :

package{
   
   import flash.display.*;
   
   public class Events{
      
      
      public static function addListenerNClips(a:Array, b:Object=null, c:Object=null):void{
         for each (var clip:* in a){ 
            addListenerClip(clip, b, c);
         } 
      }
      
      public static function addListenerClip(a:*, b:Object=null, c:Object=null):void{
         var clip:*                           = a;
         if(c){
            setPropClip(clip, c);
         }
         if(b){
            createNewListener(a, b);
         }
      }
      
      public static function addListenerButton(a:MovieClip, b:Object=null, c:Object=null):void{
         var button:*                        = a;
         if(c){
            setPropClip(button, c);
         }
         if(b){
            createNewListener(button, b);
         }
      }
      
      public static function createNewListener(clip:*, obj:Object):void{
         for(var id:String in obj){
            var val:Object                      = obj[id];
            clip.addEventListener(id, val);
         }
      }
      
      public static function setPropClip(clip:*, obj:Object):void{
         if(obj){
            for(var id:String in obj){
               var val:Object                   = obj[id]; 
               clip[id]                     = val;
            }
         }
      }
      
      public static function setPropNClips(xClips:Array, obj:Object):void{
         for each (var clip:* in xClips){ 
            setPropClip(clip, obj);
         } 
      }      
            
      
   }
}


La clase se utiliza de la siguiente manera:

Código ActionScript :

import Events;
//agrego valores a un arreglo, así es mucho más fácil trabajar.
var xClips:Array    = [clip0, clip1, clip2, clip3];
//luego llamo los metodos de la clase sin instanciar no es necesario.
//el primer argumento contiene el arreglo con los clips.
//el segundo argumento contiene un objeto con los Listener a Agregar.
//el tercer argumento contiene un objeto con las propiedades a asignar/modificar del objeto.

Events.addListenerNClips(xClips, {mouseDown:funcionDown, rollOver:rollOver}, {enabled:true, disabled:true, color:0xff00ff});

function funcionDown(a:MouseEvent):void{
   trace("Down in:", a.currentTarget.name);
}

function rollOver(a:MouseEvent):void{
   trace("Over in:", a.currentTarget);
}


Saluda Atte.
Claudio Barrera Asencio.
TNS. en Computación e Informática.

Por polo_W12

6 de clabLevel



 

firefox

 

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