Inject Method
Par Gauthier, dans Flash Media Server -# 12 - Fil RSS
Comment injecter rapidement les propriétés et les méthodes d'un objet dans un autre ? Donner une méthode Inject à tout les objets? Chose excessivement simple voyez par vous-même.
Voici le fichier qui va nous servir a étendre le prototype Object
Coté server :
Object.prototype.Inject = function(val, all) { if (typeof (val)=="object") { for (var prop in val) { if (all) { this[prop] = val[prop]; } else { if (this[prop] == undefined) { this[prop] = val[prop]; } } } } else { return; } }; Array.prototype.Inject = Object.prototype.Inject;
on place le fichier injector.asc dans le répertoire scriptlib et il ne nous reste plus qu’a voir ce que cela donne.
Imaginons que votre client se connecte a votre application en transmettant plusieurs variables :
- Name
- City
- Sex
Cote client:
var objUser:Object={Name:"gauthier", City:"Lyon", Sex:"m"}; var nc: NetConnection = new NetConnection(); nc.connect("rtmp://localhost/injectorApp/",objUser);
Coté server :
load("injector.asc") application.onConnect=function (client, objUser) { this.acceptConnection(client) client.Inject(objUser); trace("==============="+client.toString()+"==============="); for (var i in client) { if(typeof(client[i])!="function"){ trace(i+" : "+client[i]); } } trace("=================================") }
ce qui nous donnera en sortie ceci :

Method :
objet.Inject(obj, all)
si all est définit alors dans le cas ou vos deux objet aurait les même propriété ou méthodes l'objet en acquisition écrasera les propriétés ou méthodes de l'objet parent ;).
Commentaires
#1 - Le vendredi 15 septembre 2006 à 19:58, par ekameleon
#2 - Le lundi 18 septembre 2006 à 10:38, par Gauthier
#3 - Le lundi 18 septembre 2006 à 14:18, par ekameleon
#4 - Le lundi 18 septembre 2006 à 14:32, par Gauthier
Ajouter un commentaire