[AS3] Donner des propriétés en masse à un objet

Donner des propriétés en masse à un objet [AS3] - Flash/ActionScript - Programmation

Marsh Posté le 31-07-2009 à 17:46:58    

Salut les AS-treux !
 
Dites, existe t-il une solution miracle en AS3 pour donner des propriétés en masse à un objet lors de son instanciation  ?
Je veux en faite éviter de repéter monObjet.maPropriete = valeur ...
Par exemple, sur le framework Away3D, on peut definir les propriétés d'un cube nouvelement créé de cette manière :

Code :
  1. var monCube:Cube = new Cube( { x:2, y:3, z:15, alpha:0.5, rotationY:62, width:35, ... } );


Le tout dans l'ordre qu'on veut bien entendu... Existe-t'il l'équivalent en natif en AS3 ?
Comment m'y prendre si je dois créer une fonction moi même (notament dans les argument de celle-ci, pour pouvoir mettre propriété:valeur sans prendre en compte de l'ordre...)
 
Merci :)


Message édité par abais le 31-07-2009 à 17:47:23

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 31-07-2009 à 17:46:58   

Reply

Marsh Posté le 31-07-2009 à 19:05:17    

tu pourrais le faire avec  ...args

 

grenre :
function test(...args)

 

test(x, v, t ,t ,t ,t ,t, ,t ,t, e,e, e ,e)

 

et tu recuperes  ls valeur avec le tableau  "args"


Message édité par stealth35 le 31-07-2009 à 19:08:37
Reply

Marsh Posté le 31-07-2009 à 20:12:01    

Tu m'excuseras mais je n'ai rien compris ! ou tu veux en venir  ? :pt1cable: ...
C'est quoi ce typage "..." deja ?


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 31-07-2009 à 21:06:41    


Well, je ne connais rien en AS3, mais ça ressemble beaucoup à du javascript ton code.
 
Si c'est la même chose, tu peux déclarer un objet avec notation JSON, du style :

Code :
  1. var monCube = {x:2, y:3, z:15, alpha:0.5, rotationY:62, width:35}


Ça va te créer un objet monCube avec les propriétés x, y, z, alpha, rotationY et width déjà déclarée.
 
Si tu veux ajouter les propriétés à un objet existant, utilise soit une fonction et parcours le tableau "arguments", ou duplique les propriétés d'un objet ad-hoc. Par exemple pour copier les propriétés de "monCube" dans un objet "monObjet", utilise :

Code :
  1. for (var i in monCube)
  2.    monObjet[i] = monCube[i]


Ou via une fonction :

Code :
  1. function addProp(monObjet)
  2. {
  3.    for (var i = 1; i < arguments.length; i += 2)
  4.        monObjet[arguments[i]] = arguments[i+1]
  5. }


Qui s'utilise de la sorte :

Code :
  1. addProp(monObjet, "x", 2, "y", 3, "z", 15, "alpha", 0.5, "rotationY", 62, "width", 35)


Reply

Marsh Posté le 01-08-2009 à 13:19:38    

Tiens, je connaissais cette nomenclature "JSON" comme tu dis, mais je n'avais jamais testé en AS3,et ça fonctionne bien, merci tpierron !

 
Code :
  1. function addProp (_cible:Object, _properties:Object)
  2. {
  3.         for (var i in _properties)
  4.       _cible[i] = _properties[i]
  5. }
  6.  
  7. addProp(monObjet,{x:250,y:56});


Message édité par abais le 01-08-2009 à 13:20:37

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 01-08-2009 à 19:17:24    

Reply

Marsh Posté le 02-08-2009 à 12:43:46    


Thx stealth :) je ne connaissais pas ce ...args, c'est bon à connaitre tout ça !


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed