> > C'est pas "AS3" ça ;-) C'est utiliser les possibilités pourries de
> > AS1/2... et je trouve ça très moche !
>
> Alors tu connais mal le langage.. prototype est toujours dans AS3 et il est
> très très utile de connaitre parfaitement l'utilisation du prototype même en
> AS3 ;) Si tu regardes la classe Array tamarin par exemple tu verras son
> utilisation ou une classe comme celle ci :
>
> http://code.google.com/p/maashaack/source/browse/branches/maashaack_e...

Il est tout à fait possible que je connaisse mal le langage, je suis
assez nouveau dans le monde AS !

Tamarin se doit de rester compatible avec les premières versions d'AS,
et doit donc garder le prototype, c'est normal. Mais le resultat n'est
pas glorieux, et les performances lors dexécution du code s'en
ressenttent vraiment.


>
> Sans l'utilisation du prototype il est impossible en AS3 par exemple de
> rendre une méthode dynamique sur une instance de classe... en gros
> reproduire un comportement style bt.onPress = function ;)

Ben si, tu as le type "Function" qui te permet de faire ça... sans
pour autant changer le prototype de l'objet. Tu mets un champ "public
var btnPress:Function" et voilà :)

Les prototypes vont à l'encontre du "typing", qui justement a été
ajouté à l'AS3 ! Pour surcharger un comportement, tu dérives la
classe, et tu override ta fonction. Ca permet d'avoir un code clair et
rapide. La dynamicité de l'AS est intéressante, mais à utiliser avec
parcimonie, vu que ça ralenti ENORMEMENT l'exécution du code.


>
> Sinon autre petit exemple pratique en AS3 :
>
> var ar:Array = [ [1,2,3],[4,5,6]] ;
>
> trace(ar) ; // 1,2,3,4,5,6
>
> Array.prototype.toString = function() { return "[" + this.join(",") + "]" ;
>
> }
>
> trace(ar) ; // [ [1,2,3],[4,5,6]]
>
> AS3 est un langage basé ECMAScript et donc sur les prototypes hein ;) Et
> dire que c'est pourri pour moi c'est vraiment dommage :)

Oui, pour ça, le prototype, c'est pratique. Après, niveau lisibilité,
je ne suis pas sûr d'être un grand fan. Je préfère dériver Array, et
surcharger son toString() pour lui faire afficher ce que je veux.

Je ne nie pas que les prototypes peuvent être utiles, je n'aime juste
pas le principe de changer la définition d'un objet dynamiquement,
c'est pour ça que l'AS ne peut pas être un vrai langage bien rapide.
L'AS3 a fait un grand pas en augmentant le typing, et il me semble
bien que même si le prototype fait toujours partie de l'AS3, il n'est
pas encouragé du tout. Adobe préconisme l'héritage de classes plutôt
que l'héritage par prototype.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Object.html

Du coup, pour faire du code plus optimisé, il vaut mieux utiliser le
typing fort, donc, pas de prototypes.


>
> Là dessus tu es libre c'est clair :) Mais ton projet aura du mal à être
> maintenu je peux te l'assurer :)
>

Pas forcément ! Ce n'est pas parce que je ne suis pas l'auteur de la
spec que je vais avoir du mal à le maintenir. Certes, j'aurai
probablement une version de retard chaque fois, mais ce n'est pas bien
grave. Au moins, il n'y a pas besoin de temps d'adaptation pour ceux
qui veulent utiliser mon SDK.

>
> > Je vais essayer, ça n'engage à rien, et ça ouvre l'esprit. Tu as
> > complètement raison.
>
> Oui tu n'as pas forcément besoin d'utiliser les outils, juste de voir ce que
> nous faisons ;)

J'ai déjà une vague idée de ce que vous faites, sinon, je ne me serais
pas inscrit sur ce groupe ;-)

Merci,
Jérôme

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "FCNG" de 
Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/FCNG?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à