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 ;).

Source