[Flash] Héritage multiple

Héritage multiple [Flash] - Divers - Graphisme

Marsh Posté le 30-04-2004 à 12:07:19    

Quelqu'un sait comment on peut s'y prendre pour faire de l'héritage multiple? J'ai juste trouvé ça (http://www.flashfanatiker.de/blog/archives/000014.html) et j'arrive pas à y appliquer...
Je sais que c'est p't'être un peu plus pour la section programmation mais bon j'ai pas eu la moindre réponse là-bas et vu qu'ici on fait un peu d'ActionScript...


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 30-04-2004 à 12:07:19   

Reply

Marsh Posté le 30-04-2004 à 13:55:25    

Pas mieux?
 
J'ai aperçu un bouquin qui a l'air d'en parler... j'perds pas espoir...
http://www.eyrolles.com/Scan/MaxiScan/9782212110685.jpg


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 30-04-2004 à 13:56:09    

http://www.calindex.com/livre-info [...] t-xml.html


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 30-04-2004 à 14:00:19    

Par héritage multiple tu veux qu'une sous-classes hérite de plusieurs classes à la fois ?

Reply

Marsh Posté le 30-04-2004 à 14:01:18    

spectro caster a écrit :

Par héritage multiple tu veux qu'une sous-classes hérite de plusieurs classes à la fois ?


Exactement... [:wlitw]


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 30-04-2004 à 14:05:45    

N'oublie pas ceci :
 
non autorisé:
class C extends A, B {}
 
autorisé:
class B extends A {}
class C extends A, B {}

Reply

Marsh Posté le 30-04-2004 à 14:08:04    

drapal (des fois que je me remette à l'AS)

Reply

Marsh Posté le 30-04-2004 à 14:16:35    

spectro caster a écrit :

N'oublie pas ceci :
 
non autorisé:
class C extends A, B {}
 
autorisé:
class B extends A {}
class C extends A, B {}


C'est de l'ActionScript2? Parc'que moi j'suis sous Flash MX (donc AS1.0) et extends j'ai pas trouvé... ou alors cette fonction n'est pas documentée...


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 30-04-2004 à 14:19:08    

Et pis bon, de toute manière:
 

Code :
  1. class B extends A {}
  2. class C extends A, B {}


ça équivaut à

Code :
  1. class B extends A {}
  2. class C extends B {}[/


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 30-04-2004 à 14:19:56    

moins le "[/" à la fin... ça a merdouillé...


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 30-04-2004 à 14:19:56   

Reply

Marsh Posté le 30-04-2004 à 14:25:45    

Banane masquee a écrit :

C'est de l'ActionScript2?


 
 
oui, je bosse exclusivement en AS2  :jap:  
 
 

Reply

Marsh Posté le 30-04-2004 à 14:29:18    

Damned... Enfin, quoi qu'il en soit, c'est pas de l'héritage multiple ce que tu m'as montré, ça revient à de l'héritage simple... Mais merci qd-mm...


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 30-04-2004 à 16:18:02    

Bon alors j'ai cherché un peu dans mon coin et voilà à quoi j'ai abouti pour un ersatz d'héritage multiple:
 

Code :
  1. /***********************************************************/
  2. /***********************************************************/
  3. /***                                                     ***/
  4. /***  LES PARAMETRES ET LES METHODES DE LA SUPER-CLASSE  ***/
  5. /***     DOIVENT ETRE DEFINIES DANS SON CONSTRUCTEUR     ***/
  6. /***    POUR QUE LES SOUS-CLASSES PUISSENT EN HERITER    ***/
  7. /***                                                     ***/
  8. /***              PAS DE SURCHARGE POSSIBLE              ***/
  9. /***   IL FAUT BIEN S'ASSURER POUR CHAQUE SOUS-CLASSE    ***/
  10. /*** QU'IL N'Y AIT PAS DE NOM DE PARAMETRE OU DE METHODE ***/
  11. /*** EN COMMUN QUAND ON PASSE :                          ***/
  12. /***     - DE LA SOUS-CLASSE A UNE DE SES SUPER-CLASSES  ***/
  13. /***     - D'UNE SUPER-CLASSE A UNE AUTRE                ***/
  14. /*** (SAUF SI EVENTUELLEMENT LES VALEURS SONT LES MEMES) ***/
  15. /***                                                     ***/
  16. /***********************************************************/
  17. /***********************************************************/
  18. Object.prototype.implement = function() {
  19. this.base = arguments.shift();
  20. this.base.apply(this, arguments);
  21. delete this.base;
  22. }


 
Donc là après, pour faire hériter une classe d'une autre, il suffit de mettre dans son constructeur un appel à cette fonction implement avec comme paramètres le nom de la superclasse dont on veut hériter ainsi que les paramètres de son constructeur.
Pour être plus clair, rien de tel qu'un petit exemple:
 

Code :
  1. Pere = function(a,b) {
  2. this.a = a;
  3. this.b = b;
  4. this.sum = a+b;
  5. this.prop = function () {
  6.  trace("Somme : " + this.sum);
  7. }
  8. }
  9. Mere = function(a) {
  10. this.a = a;
  11. this.oppose = -this.a;
  12. this.propr = function() {
  13.  trace("Opposé : " + this.oppose);
  14. }
  15. }
  16. Fils = function(a,b) {
  17. this.implement(Pere,a,b);
  18. this.implement(Mere,a);
  19. this.product = a*b;
  20. }


---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Marsh Posté le 10-05-2004 à 09:01:02    

Après de plus amples recherches et en ayant consulté des gens qui ont bien la tête dedans, voilà un code beaucoup moins crado pour faire de l'héritage multiple en flash:
 

Code :
  1. Function.prototype.extend = function(parent) {
  2.    for (var i in parent.prototype) {
  3.       this.prototype[i] = parent.prototype[i];
  4.    }
  5. }
  6. Pere = function() {
  7.    // Code ici ...  
  8. };
  9. Pere.prototype.doIt = function() {
  10.    // Code ici ...  
  11. };
  12. Mere = function() {
  13.    // Code ici ...  
  14. };
  15. Mere.prototype.doItNow = function() {
  16.    // Code ici ...  
  17. };
  18. Fils = function() {};
  19. Fils.extend(Pere);
  20. Fils.extend(Mere);


Message édité par Banane masquee le 10-05-2004 à 12:42:49

---------------
Il y a 10 sortes de personnes. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas. *** Utilitaire pour MJ du jeu du dico
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed