Mes débuts avec les objets et prototypes et setInterval

Mes débuts avec les objets et prototypes et setInterval - Flash/ActionScript - Programmation

Marsh Posté le 27-06-2006 à 15:28:27    

Bonjour à tous !
 
Voila j'ai decidé de passer au niveau supérieur, et utiliser donc les prototypes... j'ai à peu pres capté comment ça marche.. mais c pas encore ça !  
 
deja j'aimerai votre avis sur ma sémantique, j'aimerai que tous mes objets apparaissent les uns apres les autres.. (et pas tous en même temps !) pour cela j'ai décidé d'utiliser setInterval... jusque là ça fonctionne tres bien...
j'arrive donc à afficher mon premier niveau de menu XML... par contre le deuxieme niveau.. ça bug... et j'arrive pas trop à savoir pourquoi.. je me dis qu'il y a un truc qui cloche des le premier niveau.. bref.. je vais vous donner un bout de code... si vous arrivez à comprendre quelquechose.. c cool ! et si vous pouvez m'aider en plus... ça serait encore plus cool !!!!
 
deja voici le resultat de mon programme :
 
http://www.freedfromparis.com/flash_version/
 
et voici le bout de code (ne riez pas !!!)
 

Code :
  1. import mx.transitions.Tween;
  2. import mx.transitions.easing.*;
  3. _root.flag_fr.onPress=changeLangue;
  4. _root.flag_uk.onPress=changeLangue;
  5. if(!_root.langue)
  6. {
  7. _root.langue="fr";
  8. }
  9. var textFormatOver:TextFormat=new TextFormat();
  10.  textFormatOver.font= "virtualDJ";
  11.  textFormatOver.size= 10;
  12.  textFormatOver.color=0xFF6600;
  13.  var textFormatOut:TextFormat=new TextFormat();
  14.  textFormatOut.font= "virtualDJ";
  15.  textFormatOut.size= 10;
  16.  textFormatOut.color=0xAAAAAA;
  17.  var textFormatOver2:TextFormat=new TextFormat();
  18.  textFormatOver.font= "virtualDJ";
  19.  textFormatOver.size= 8;
  20.  textFormatOver.color=0xFF6600;
  21.  var textFormatOut2:TextFormat=new TextFormat();
  22.  textFormatOut.font= "virtualDJ";
  23.  textFormatOut.size= 8;
  24.  textFormatOut.color=0xAAAAAA;
  25. function newMenuXML(fichier)
  26. {
  27. _root.menuXML = new XML();
  28. _root.menuXML.ignoreWhite=true;
  29. _root.ImageArray = new Array();
  30. _root.menuXML.onLoad=extractData;
  31. _root.menuXML.load(fichier);
  32. }
  33. newMenuXML("menu.xml" );
  34. function extractData(success){
  35. _global.itemList=this.firstChild;
  36. _global.itemLenght=this.firstChild.childNodes.length;
  37. _global.i=0;
  38. showItem=setInterval(afficheItem,100);
  39. }
  40. MovieClip.prototype.afficheItem=function(){
  41. thisMC=_root.menu;
  42. thisMC.createEmptyMovieClip("item_"+_global.i,thisMC.getNextHighestDepth());
  43. item=thisMC["item_"+_global.i];
  44. item.id=_global.i;
  45. item.createTextField("txt_item",thisMC.getNextHighestDepth(),0,0,0,0);
  46. item["txt_item"].autoSize = "left";
  47. item["txt_item"].selectable=false;
  48. item["txt_item"].border=false;
  49. item["txt_item"].embedFonts=true;
  50. if(_root.langue=="fr" )
  51. {
  52.  item["txt_item"].text=_global.itemList.childNodes[_global.i].attributes.labelfr;
  53. }else if (_root.langue=="uk" )
  54. {
  55.  item["txt_item"].text=_global.itemList.childNodes[_global.i].attributes.labeluk;
  56. }
  57. if(!_global.nextPosX)
  58. {
  59.  _global.nextPosX=item._x;
  60. }
  61. item["txt_item"].setTextFormat(textFormatOut);
  62. item["txt_item"]._x=_global.nextPosX+5;
  63. with(item)
  64. {
  65.  lineStyle (1, 0xFF6600, 100);
  66.  moveTo (_global.nextPosX, 2);
  67.  lineTo (_global.nextPosX, 10);
  68. }
  69. _global.nextPosX=_global.nextPosX+item._width+5;
  70. item.onRollOver=setRollOver;
  71. item.onRollOut=setRollOut;
  72. item.onPress=displaySubItems;
  73. if(_global.i==_global.itemLenght-1){
  74.  clearInterval(showItem);
  75.  }else{
  76.  _global.i++
  77. }
  78. }
  79. MovieClip.prototype.afficheItem2=function(id){
  80. if(!_global.i2)
  81. {
  82. _global.i2=0
  83. }
  84. clearInterval(displaySubItems);
  85. thisMC=_root.menu;
  86. thisItemLength=_global.itemList.childNodes[id].childNodes.length;
  87. if(_global.i2>=thisItemLength)
  88. {
  89.  clearInterval(itemsLevel2);
  90. }
  91. else
  92. {
  93. thisMC.createEmptyMovieClip("item2_"+_global.i2,thisMC.getNextHighestDepth());
  94. item=thisMC["item2_"+_global.i2];
  95. item.xml=_global.itemList.childNodes[id].childNodes[_global.i2];
  96. item.createTextField("txt_item",thisMC.getNextHighestDepth(),0,15,0,0);
  97. item["txt_item"].autoSize = "center";
  98. item["txt_item"].border=false;
  99. item["txt_item"].embedFonts=true;
  100. item["txt_item"].text=item.xml.attributes.labelfr;
  101.  _global.itemLength2=_global.itemList.childNodes[id].childNodes.length;
  102.  item["txt_item"].setTextFormat(textFormatOut);
  103.  if(!_global.nextPosX2)
  104.  {
  105.   _global.nextPosX2=thisMC["item_"+id]._x;
  106.   trace
  107.  }
  108.  item["txt_item"]._x=_global.nextPosX2;
  109.  with(item)
  110. {
  111.  lineStyle (1, 0xFF6600, 100);
  112.  moveTo (_global.nextPosX2, 10);
  113.  lineTo (_global.nextPosX2, 18);
  114. }
  115.  _global.nextPosX2=_global.nextPosX2+item._width+5;
  116.  if(_global.i2<_global.itemLength2-1)
  117.  {
  118.  _global.i2++;
  119.  }
  120. }
  121. }
  122. MovieClip.prototype.deleteItems=function(id){
  123. clearInterval(displaySubItems);
  124. trace("item to delete : "+_global.i2);
  125. thisItem=_root.menu;
  126. trace("item to delete : "+thisItem["item2_"+5]);
  127. thisItem["item2_"+_global.i2].onEnterFrame=function(){
  128.  if(this._alpha>0)
  129.  {
  130.  this._alpha-=50
  131.  }
  132.  else
  133.  {
  134.   delete this.onEnterFrame;
  135.   this.removeMovieClip();
  136.   trace("item exists ? :"+_root.menu["item2"+_global.i2]);
  137.   if(_global.i2>0)
  138.  {
  139.   _global.i2--;
  140.  }
  141.  }
  142.  if(_global.i2==0)
  143.  {
  144.   clearInterval(deletingItems);
  145.   itemsLevel2=setInterval(afficheItem2,120,id);
  146.  }
  147. }
  148. }
  149. MovieClip.prototype.setRollOver=function(){
  150. this.txt_item.setTextFormat(textFormatOver);
  151. new mx.transitions.Tween(line, "_width", mx.transitions.easing.Elastic.easeOut, 1,this.txt_item._width, 1, true);
  152. new mx.transitions.Tween(line, "_x", mx.transitions.easing.Elastic.easeOut, line._x,this.txt_item._x, 1, true);
  153. //line1._width=this.txt_item._x+this.txt_item._width;
  154. }
  155. MovieClip.prototype.setRollOut=function(){
  156. this.txt_item.setTextFormat(textFormatOut);
  157. new mx.transitions.Tween(line, "_width", mx.transitions.easing.Elastic.easeOut, this.txt_item._width,1, 1, true);
  158. new mx.transitions.Tween(line, "_x", mx.transitions.easing.Elastic.easeOut, line._x,-1, 1, true);
  159. }
  160. MovieClip.prototype.setPressed=function(){
  161. this.txt_item.setTextFormat(textFormatOver);
  162. this.enabled=false;
  163. }
  164. MovieClip.prototype.displaySubItems=function(){
  165.   if(_global.i2>0)
  166.   {
  167.    trace("---------------------------------------------------------------" )
  168.    trace("deleting items for number: "+this.id)
  169.    deletingItems=setInterval(deleteItems,50,this.id);
  170.   }
  171.   else
  172.   {
  173.   _global.i2=0;
  174.   trace("---------------------------------------------------------------" )
  175.   trace("Add items for number: "+this.id)
  176.   itemsLevel2=setInterval(afficheItem2,120,this.id);
  177.   }
  178. }
  179. function changeLangue()
  180. {
  181. showItem=setInterval(afficheItem,100);
  182. }


 
 
bref... c pour l'instant un peu le gros bordel ! mais justement j'aimerai savoir comment proceder pour pas que ce soit le bordel ! quitte à tout refaire ! mais j'aimerai vos techniques et vos conseils !.. j'ai lu plein de tutos sur la POO avec flash et les prototypes (media-box) mais ya encore plein de trucs qui m'echappent.. surtout au niveau de l'algorithmie.
 
 
Merci d'avance
 
Freed

Reply

Marsh Posté le 27-06-2006 à 15:28:27   

Reply

Marsh Posté le 27-06-2006 à 22:16:14    

euh...les prototypes et les setInterval, c'est juste du domaine de la syntaxe. Avant d'apprendre la syntaxe (ce qui est censé être rapide, bête et méchant, au passage), il faut apprendre la grammaire.
 
là, c'est un peu comme si tu te lançais dans la construction d'une maison avec des connaissances de maçon : ça va pas tenir debout, mais les joints sont propres. On s'en fout que les joints soient propres.
 
Ce n'est pas de "l'algorithmie", c'est de "l'architecture logicielle", qui est encore une autre discipline. Là faudrait que tu pécho un bouquin d'architecture logicielle et que tu potasses (ah oui, au fait, on apprend à coder dans les livres, pas dans les tutos - les tutos c'est juste pour la syntaxe, c'est très accessoire).
 
Habituellement, on apprend les notions de bases de l'architecture logicielle orienté objet via le langage Java. On considère classiquement "Design Pattern:Head First", "Object-Oriented Software Engineering w/ UML, Patterns and Java" comme des bonnes références. Pour Flash spécifiquement, le Moock, à savoir "Essential Actionscript 2.0" de Colin Moock chez O'Reilly.
 
tu n'y couperas pas.

Reply

Marsh Posté le 27-06-2006 à 22:32:22    

Mmmmh en plus, même si tu as bien compris le "comment" des prototypes, tu n'as peut-être pas bien compris le "pourquoi" ...
 
Ici, à partir de maintenant, le moindre movieclip que tu vas créer va automatiquement posséder les fonctions afficheItem, deleteItem, .. etc  
 
Je ne vois pas trop l'intérêt ...
 
Un prototype sert à ajouter des fonctionnalités à toute une classe ...
cf ici , l'exemple du "invert" de raytaller ...
 
Maintenant, tu fais ce que tu veux hein  [:airforceone]


Message édité par Mr Mala le 27-06-2006 à 22:33:16
Reply

Marsh Posté le 27-06-2006 à 23:08:44    

alors peut etre que si j'utilise des simples "fonctions" cela peut suffir ?
ou alors une classe ? (mais là je sais pas faire non plus pour l'instant)

Reply

Marsh Posté le 28-06-2006 à 00:27:23    

prototypes = forme d'implémentation de la programmation orienté objet sous Actionscript v1 (jusque Flash MX). C'est la même implémentation utilisée dans Javascript (ECMA-262).
 
classes = forme d'implementation de la programmation orienté objet sous Actionscript v2 (à partir de Flash MX 2004). C'est la même implémentation décrite dans la norme ECMAscript 4 (l'hypothétique Javascript 2). Proche de Java plus que du C++ : héritage multiple implémenté par les interfaces, utilisation d'un modéle de délégation d'évenements, par exemple.
 
On préférera les classes aux prototypes, cela va de soit. Les protos sont intéressants si tu fais de la maintenance sur des projets existants, pour développer 'from scratch' ça n'a aucun sens.
 
Ici, tu as un objet aux limites définies (une encapsulation évidente) qui est ton menu. Tu auras donc au moins une classe de menu - qui peut éventuellement contenir une classe MenuItem, suivant la complexité des roll-overs et actions associées aux items de ce menu.
 
Moins évident, tu dois aussi créer une classe MenuData, qui se chargera uniquement de pomper le XML, et de le traduire sous une forme plus simple que l'objet XML que tu reçois actuellement, qui a une syntaxe assez lourde (firstChild.childNodes[foo].etc...). Ta classe MenuData s'appelle un 'parser XML'. Idéalement elle hériterait de la classe XML standard par composition, elle renverrait un tableau d'Object, éventuellement assez profond, mais forcément plus facile à manipuler. Elle peut aussi gérer, en plus de la lecture, l'opération inverse qui est l'écriture de fichiers XML (pour quand tu développeras des back-offices...). Tu dois aussi gérer en interne à cette classe le parcours de données, en lui ajoutant des méthodes plus pratiques telles que getCategories():Array ou getItemsByCategories(pCategory:String):Array, qui allégeraient un peu ton code.
 
Et apprends les aspects théoriques du développement et de l'architecture logicielle, parce que là tu vas stagner à faire du code procédural pouilleux inexploitable en production (du script et des fonctions quoi...sur ce dev-là tu vois que tu touches déjà les limites de ce qu'on peut faire en procédural).

Message cité 2 fois
Message édité par craps_youpla le 28-06-2006 à 00:36:08
Reply

Marsh Posté le 28-06-2006 à 01:13:35    

donc si je comprends bien.. il faut décortiquer chaque fonction du programme.. et en faire des classes bien définies... et ensuite mon objet fera appel à ces différentes classes pour en sortir un resultat  ?
 
(xcusez moi d'etre relou... mais j'ai tres tres envie de faire les choses bien.. et je sais que maintenant mon objectif c'est de faire de la POO pour faire les choses bien ! et pour combler une bonne partie de mes lacunes.. je sais que j'en suis capable.. mais c'est une façon de penser completement différente de ce que j'ai pu faire jusqu'à present)

Message cité 1 fois
Message édité par freed102 le 28-06-2006 à 01:20:42
Reply

Marsh Posté le 28-06-2006 à 10:40:28    


 
Et ben voilà, tout est dit ! [:otakonleboss]  
 

freed102 a écrit :

donc si je comprends bien.. il faut décortiquer chaque fonction du programme.. et en faire des classes bien définies... et ensuite mon objet fera appel à ces différentes classes pour en sortir un resultat  ?


 
Heuuuu non ..
Ton objet EST ta classe qui contient des fonctions/fonctionnalités propres ...

Reply

Marsh Posté le 28-06-2006 à 14:18:50    

craps_youpla a écrit :

prototypes = forme d'implémentation de la programmation orienté objet sous Actionscript v1 (jusque Flash MX). C'est la même implémentation utilisée dans Javascript (ECMA-262).
 
classes = forme d'implementation de la programmation orienté objet sous Actionscript v2 (à partir de Flash MX 2004). C'est la même implémentation décrite dans la norme ECMAscript 4 (l'hypothétique Javascript 2). Proche de Java plus que du C++ : héritage multiple implémenté par les interfaces, utilisation d'un modéle de délégation d'évenements, par exemple.
 
On préférera les classes aux prototypes, cela va de soit. Les protos sont intéressants si tu fais de la maintenance sur des projets existants, pour développer 'from scratch' ça n'a aucun sens.
 
Ici, tu as un objet aux limites définies (une encapsulation évidente) qui est ton menu. Tu auras donc au moins une classe de menu - qui peut éventuellement contenir une classe MenuItem, suivant la complexité des roll-overs et actions associées aux items de ce menu.
 
Moins évident, tu dois aussi créer une classe MenuData, qui se chargera uniquement de pomper le XML, et de le traduire sous une forme plus simple que l'objet XML que tu reçois actuellement, qui a une syntaxe assez lourde (firstChild.childNodes[foo].etc...). Ta classe MenuData s'appelle un 'parser XML'. Idéalement elle hériterait de la classe XML standard par composition, elle renverrait un tableau d'Object, éventuellement assez profond, mais forcément plus facile à manipuler. Elle peut aussi gérer, en plus de la lecture, l'opération inverse qui est l'écriture de fichiers XML (pour quand tu développeras des back-offices...). Tu dois aussi gérer en interne à cette classe le parcours de données, en lui ajoutant des méthodes plus pratiques telles que getCategories():Array ou getItemsByCategories(pCategory:String):Array, qui allégeraient un peu ton code.
 
Et apprends les aspects théoriques du développement et de l'architecture logicielle, parce que là tu vas stagner à faire du code procédural pouilleux inexploitable en production (du script et des fonctions quoi...sur ce dev-là tu vois que tu touches déjà les limites de ce qu'on peut faire en procédural).


 
Je commence à capter un peu l'idée... maintenant ce que j'arrive pas trop à capter.. c comment on assemble tout ça pour que ça agisse par exemple sur un seul element de ma page, là je vais créer plein de classes... mais apres ? dans chaque classe je fais appel aux autres classes ? par exemple dans la classe "menu" je vais appeler la classe "loadXML" puis la classe "menuItem" etc etc ?
 
 
... deja est-ce que je suis sur la bonne voie :
 

Code :
  1. class menuData{
  2. var XMLContent:String;
  3. var XMLLenght;
  4. function menuDataL(file:String){
  5.  this.XMLfile= new XML();
  6.  this.XMLfile.ignoreWhite=true;
  7. this.XMLfile.onLoad=extractData;
  8. this.XMLfile.load(file);
  9. }
  10. function extractData(success){
  11. this.XMLContent=this.firstChild;
  12. this.XMLLenght=this.firstChild.childNodes.length;
  13. }
  14. }


Message édité par freed102 le 28-06-2006 à 14:30:48
Reply

Marsh Posté le 28-06-2006 à 14:53:52    

ya t il un moyen de ne pas mettre les .as dans le dossier macromedia/flash 8.0 .. blablabla ? si je veux le mettre dans mon dossier de travail je peux ?

Reply

Marsh Posté le 28-06-2006 à 15:01:20    

j'ai trouvé (parametres de publication)

Reply

Marsh Posté le 28-06-2006 à 15:01:20   

Reply

Marsh Posté le 28-06-2006 à 15:21:13    

donc voila... j'ai fait ça :
 
ma classe :  

Code :
  1. class menuData{
  2. var XMLContent:XMLNode;
  3. var XMLFile:XML;
  4. var XMLLenght;
  5. var filename:String;
  6. function menuData(file:String){
  7.  this.XMLFile= new XML();
  8.  this.XMLFile.ignoreWhite=true;
  9. this.XMLFile.onLoad=extractData;
  10. this.XMLFile.load(file);
  11. this.filename=file;
  12. }
  13. function extractData(success){
  14.  trace("ok" )
  15. this.XMLContent=XMLFile.firstChild;
  16. this.XMLLenght=XMLFile.firstChild.childNodes.length;
  17. }
  18. }


 
et dans flash j'ai fait ça :

Code :
  1. import menuData;
  2.  var XMLMenu=new menuData("menu.xml" );
  3.  trace("XMLMenu :" +XMLMenu.XMLContent);


 
mais il me retourne :
XMLMenu :undefined
 
et si je fais :
 
trace("XMLMenu :" +XMLMenu.filename);
 
il me retourne :
 
XMLMenu :menu.xml
 
... donc là ya un truc qui m'echappe

Reply

Marsh Posté le 28-06-2006 à 15:45:20    

Bon déjà si tu veux faire du "bon" AS2, faut apprendre à typer tes variables :
 
var XMLMenu:menuData = new menuData("menu.xml" );
 

Reply

Marsh Posté le 28-06-2006 à 15:49:11    

ok pour ça mais je n'arrive pas à pointer mes firstchild, childnodes etc etc ! il me dit tout le temps :
 
Il n'existe aucune propriété nommée 'firstChild'.
 

Code :
  1. class menuData{
  2. var XMLContent:XMLNode;
  3. var content:String;
  4. var XMLFile:XML;
  5. var XMLLenght:Number;
  6. var level:Number;
  7. var item:Number;
  8. var filename:String;
  9. function menuData(file:String,level,item){
  10.  this.XMLFile= new XML();
  11.  this.XMLFile.ignoreWhite=true;
  12. this.XMLFile.onLoad=extractData;
  13. this.XMLFile.load(file);
  14. this.filename=file;
  15.  this.level=level;
  16.  this.item=item;
  17. }
  18. function extractData(success){
  19. trace(this)
  20. this.content=this.firstChild.childNodes[this.level].childNodes[this.item].attributes.labelfr;
  21. XMLLenght=XMLContent.firstChild.childNodes.length;
  22. }
  23. }


 
si je fais trace(this) il me retourne tout le contenu du XML;
mais apres j'en fais quoi ?


Message édité par freed102 le 28-06-2006 à 15:51:30
Reply

Marsh Posté le 28-06-2006 à 18:35:52    

oulala ! la nage totale ! j'ai essayé de me pencher sur les static, private, public... et bah j'arrive à rien du tout ! lol !  
 

Code :
  1. class menuClip{
  2. //propriétés
  3. //concernant le clip parent
  4. var __clip:MovieClip;
  5. var __id:String;
  6. //concernant le XML
  7. var __filename:String;
  8. static var XMLFile:XML;
  9. static var XMLContent:XMLNode;
  10. static  var __content:String;
  11. static var __XMLLength:Number;
  12. //concernant l'item en cours
  13. var __level:Number;
  14. var __item:Number;
  15. var __itemNumber:String;
  16. //constructeur
  17. function menuClip(MC){
  18.  this.__clip=MC;
  19. }
  20. //Chargement du XML
  21.  function loadXML(file:String,level,item){
  22.  menuClip.XMLFile= new XML();
  23.  menuClip.XMLFile.ignoreWhite=true;
  24.  menuClip.XMLFile.onLoad=extractData;
  25.  menuClip.XMLFile.load(file);
  26.  trace(file)
  27. }
  28. //Extraction des données XML
  29. private static function extractData(success){
  30.  var __root : XMLNode = menuClip.XMLFile.firstChild.firstChild;
  31.  menuClip.__content=__root.firstChild.childNodes[0].childNodes[0].attributes.labelfr;
  32.  menuClip.__XMLLength=__root.firstChild.childNodes.length;
  33.  trace("menu item : "+menuClip.__content)
  34. }
  35. //retourne le contenu
  36. function getContent()
  37. {
  38.  return menuClip.__content;
  39. }
  40. }


je sais même pas si mes fonctions sont executées (les trace ne répondent pas... c peut etre normal ? )


Message édité par freed102 le 28-06-2006 à 18:36:37
Reply

Marsh Posté le 28-06-2006 à 19:44:59    

lol, c'est exactement ce que j'écrivais dès mon premier post. La syntaxe c'est trivial - tu as parfaitement réussi à coder rapidement quelques classes (qui buggent un chouia, certes, mais t'as tracé).
 
et comme j'écrivais dans mon premier post, c'est totalement inutile ce que tu as codé aujourd'hui, vu que tu maîtrises pas les concepts sous-jacents à tout ça.
 
en l'occurrence tu dois faire appel à ton code d'exécution ("passer une méthode en référence", ça s'appelle aussi un callback) depuis ta méthode extractData, sinon ton XML est pas encore chargé alors que tu essaies déjà de le lire.
 

Citation :

donc si je comprends bien.. il faut décortiquer chaque fonction du programme.. et en faire des classes bien définies...


 
Oui, et la méthode de décorticage s'appelle "UML" (ou simplement "improviser à l'arrache", selon les projets). En Flash, les projets sont plus petits, donc on modélise rarement, on se contente juste d'utiliser des structures-types d'interactions entre objet qui reviennent souvent qque soit le langage. On appelle ça des "design-pattern". Par exemple, là tu utilises le design-pattern du DataObject, un objet qui sert à encapsuler des données (MenuData).
 
...et si tu te sors pas les doigts du cul à acheter un bouquin et à apprendre à vraiment développer, tu arriveras à rien...en plus c'est une honte, t'assimiles à toute vitesse, je comprends pas pourquoi tu te fais pas ton petit apprentissage rapide de la POO avec Java en solo, t'en as pas pour longtemps.


Message édité par craps_youpla le 28-06-2006 à 19:48:51
Reply

Marsh Posté le 28-06-2006 à 19:53:52    

y'a 'thinking in patterns' gratos sur le site de l'auteur, il est pas fini mais c'est un bon bouquin, en plus y'a des patterns assez exotiques, je l'utilise réguilèrement en production sur de l'AS2, le code est en Java - mais le code c'est trivial ;) : http://www.mindviewinc.com/

Reply

Marsh Posté le 28-06-2006 à 20:27:15    

merci pour tous tes conseils ! je suis en train de regarder ton "thinking in patterns" but... it is all in anglishe !!!! lol ! je vais avoir les cheveux qui poussent à l'intérieur tres vite ! lol ! surtout que mon imprimante est HS ! je vais demander à ma reum de me l'imprimer demain!

Reply

Marsh Posté le 28-06-2006 à 21:26:49    

en fait en regardant les "design patterns" ça me fait beaucoup penser aux "ordinogrammes" qu'on m'a appris à faire en PHP... c la même idée.. c dessiner toute l'architecture du programme avant de le mettre en oeuvre... (c dans le même esprit que la modelisation de merise aussi)

Reply

Marsh Posté le 17-02-2009 à 15:06:18    

Je reprend le fil de la discussion, j'espère que fred est encore là, ceux sont les mêmes questions, à peu près. Seulement moi, c'est graphique! et là!... j'ai des classes,un pack même,mais je sais pas comment les tester. par exemple les lib pix , c'est des classes certes mais pour les voir, comment fait on?!  
un script as, ce lis ce décortique? s'appel? quoi?
aidez moi
je suis au pied du mur avec bloc et toutoutoutout

Reply

Marsh Posté le 23-02-2009 à 04:06:13    

Fais un nouveau topic ...


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Sujets relatifs:

Leave a Replay

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