Existe-t-il une "méthode automatique" pour transformer un "objet" en un type de données de modèle personnalisé dans ActionScript 3?Transmettre l'objet ActionScript au modèle
Exemple:
package Example{
public class ExampleModel{
private _id:int;
private _randomAttribute:String;
public function ExampleModel(){
_id = 0;
_randomAttribute = "";
}
public function get id():int{
return _id;
}
public function set id(value:int):void{
_id = value;
}
public function get randomAttribute():String{
return _randomAttribute;
}
public function set randomAttribute(value:String):void{
_randomAttribute = value;
}
}
}
Ensuite,, laisse supposer dans une partie de mon code que j'ai quelque chose comme ceci:
var _obj:Object = new Object();
_obj.id = 1;
obj.randomAttribute = "Hello World";
Ce que je veux serait quelque chose comme:
var _exampleModel:ExampleModel = obj as ExampleModel;
Mais quand je fais cela, le résultat sur _exampleModel est nul. Des idées? Merci.
EDIT:
Selon la réponse de Manish, tout ce que je changé était le type de p var, ce qui me permet de passer par toutes sortes d'attributs:
public function fromObject(obj:Object):void{
//p:* includes every type of attributes.
for (var p:* in obj)
if (this.hasOwnProperty(p))
// Set private var directly.
this["_" + p] = obj[p];
}
Merci Manish et rcdmk. La réponse de Manish était suffisante pour moi et selon rcdmk le commentaire, le p: String ne concerne pas le type de données que la boucle va traverser, c'est en fait le nom de la propriété, ce qui est logique car chaque nom est un Chaîne.
Pouvez-vous nous en dire plus sur les raisons pour lesquelles vous essayez d'atteindre cet objectif? Cela va à l'encontre de la conception d'ActionScript, et il y a probablement un meilleur moyen d'atteindre vos objectifs. –
Lorsqu'un utilisateur double-clique sur un enregistrement sur un dataGrid, j'ouvre automatiquement un état différent qui contient le formulaire pour cette entité et remplit tous les champs avec son registre (dataGridId.selectedItem).Mais c'est un objet et quand je vais l'envoyer pour PHP, je "cast" manuellement le formulaire entier à un modèle personnalisé. Si je peux lier le formulaire avec le Modèle, je n'ai plus besoin de parcourir tous les champs et de définir l'attribut Modèle un par un. –