c'est quoi prototype ? - Flash/ActionScript - Programmation
Marsh Posté le 27-08-2004 à 23:49:05
tu fais bien, prototype ça sert pas à ça
prototype ça sert à ajouter des méthodes à une classe.
exemple.
Code :
|
voilà, une fois que j'ai créé mon proto, je peux utilise invert() avec tous les nombres de l'animation.
c'est très pratique.
tu peux aussi le faire avec une classe perso :
Code :
|
enfin en tous cas, l'utiliser avec des propriétés c'est vraiment inutile.
si tu es sous 2004, ces problèmes ne se posent plus puisque maintenant, l'as2 est vraiment OO.
la technique que tu utilises n'est valable que lorsque ton objet est unique. à ce moment là en effet, pas besoin de créer de classe comme je viens de le faire.
si par contre, tu dois en avoir plusieurs, il vaut mieux faire de l'objet c'est clair.
si t'as des questions
Marsh Posté le 27-08-2004 à 23:58:18
Citation : et ensuite pour les propriétés de mon objet(on appele ça des instances ?) |
nan.
une instance c'est un objet qui apartient à une classe.
quand tu fais :
var myXml=new XML();
ou var s=new Sound();
myXml et s sont des instances des classes XML et Sound.
s.load(.. ); ça c'est une méthode (une fonction de la classe)
s.truc=12; ça c'est un attribut
Marsh Posté le 28-08-2004 à 08:13:43
Merci
Mais je ne comprends pas très bien
Je suis en train de lire ce tutoriel:
http://www.flash-france.com/action [...] ticleid=16
Et je ne vois toujours pas la différence entre:
Chien=function(){
this.pattes=4
}
brutus= new chien();
rantanplan= new chien();
medor=new chien();
et:
Chien= function(){}
Chien.prototype.pattes=4;
brutus= new chien();
rantanplan= new chien();
medor=new chien();
medor.poilLong=true;
Je ne vois pas ce que prototype fait de plus, car dans le premier exemple si j'écris: trace(brutus.pattes); il retourne 4 alors je vois pas pourquoi je mettrais prototype pour définir pattes = 4; C'est l'utilité de plus que je ne comprends pas
Marsh Posté le 29-08-2004 à 14:42:06
la différence c'est que tu ajoutes la propriété en dehors de la définiction de la classe.
Code :
|
Marsh Posté le 29-08-2004 à 14:44:20
mais donc, de préférence directement dans la définition de la classe.
mais sinon, en as1 tu peux aussi faire de l'héritage
j'espère que c'est pas trop confus.. ça fait un bout de temps que j'ai pas fait de poo en as1.
à ton service pour d'autres questions
Marsh Posté le 27-08-2004 à 22:57:41
Dans un code source d'un jeu basé sur des tiles:
game.Tile0 = function () { };
game.Tile0.prototype.walkable = true;
game.Tile0.prototype.frame = 1;
Que veut dire prototype ?
si j'écris game.Tile0.frame = 1; ça ne ferait pas la même chose ?
Merci de m'éclairer, j'ai lu des tutoriels, mais j'ai jamais vraiment compris l'utilité de prototype.
Moi quand je crée un object je fais
obj = new Object();
et ensuite pour les propriétés de mon objet(on appele ça des instances ?) j'écris par exemple:
obj.name = "allo";
obj.machin = 25;
mais je n'utilise pas prototype.