2010-09-13 18 views
2

Fondamentalement, je veux modifier le constructeur de la classe Object
. Puisque chaque classe étend Objet, j'espère que chaque fois que n'importe quel objet de n'importe quelle classe est instancié, la fonction modifiée
sera appelée.Héritage de prototype Actionscript-3

Je l'ai fait:

Object.prototype.constructor = function(){ 
      trace("it was called;"); 
     }; 

et mettre un point d'arrêt sur l'état de trace.

Mais cela ne s'est pas arrêté là.
L'instruction trace n'a pas été exécutée également.

Des solutions/suggestions?

Répondre

0

Je ne pense pas que ce soit possible en AS-3, mais en AS-2.

2

Dans quel contexte codez-vous? Si vous utilisez Flex Compiler MXMLC (par défaut, si vous êtes dans FlashBuilder), vous pouvez ajouter l'option de compilation -es. Cela devrait permettre à AS3 de se sentir plus comme AS2 et JS et de supporter l'héritage de la chaîne du prototype.

-compiler.es alias -es 

« en utilisant le modèle d'objet sur la base de prototype édition 3 ECMAScript pour permettre impérieuse dynamique des propriétés du prototype. Dans le modèle d'objet sur la base de prototype fonctions intégrées sont mises en oeuvre en tant que propriétés dynamiques des objets prototypes. (Avancé) »

Je ne sais pas, si cela fonctionne bien avec toutes les extensions ajoutées par Adobe à la norme de script ECMA, comme les paquets, les espaces de noms et les classes. Mais vous pourriez essayer.

+0

Dans Flex Builder, lorsque j'ai ajouté l'option de compilation -es, j'ai reçu le message suivant: "Invalide -as3 et -es combinaison. -as3 = true et -es = true.Un des deux peut être 'true'." – dharm0us

+0

Ils ne peuvent pas coexister au niveau du compilateur, mais peuvent être mélangés [en utilisant des espaces de noms] (http://stackoverflow.com/questions/2268276/what-are-the-key-differences-between-javascript-and-actionscript-3/ 12022657 # 12022657). –