DESSINER ET REPLAY ^^

nekosan3 Messages postés 10 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 21 juin 2011 - 8 sept. 2006 à 15:01
thebestprog Messages postés 41 Date d'inscription samedi 2 septembre 2006 Statut Membre Dernière intervention 20 octobre 2006 - 15 oct. 2006 à 08:54
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/39469-dessiner-et-replay

thebestprog Messages postés 41 Date d'inscription samedi 2 septembre 2006 Statut Membre Dernière intervention 20 octobre 2006
15 oct. 2006 à 08:54
merci scara 51

c'est juste qu'on ma envoyer des messages perso,
qui demandent plus d'explication ...
thebestprog Messages postés 41 Date d'inscription samedi 2 septembre 2006 Statut Membre Dernière intervention 20 octobre 2006
13 oct. 2006 à 18:41
tous est bien expliqué dans mon flash

Mais quand même je vais encore expliquer mon flash vue que c'est pas encore trés claire :

Faut dire que les array dirigent tous dans mon flash , c'est ou je
Stocke mes position ,mes couleur ,mes taille , à chaque seconde c'est a dire à chaque
OnenterFrame .

Mes bouton de couleur (qui sont a gauche) sont nommé b1,b2..b6 ,donc lorsque , vue
Que j'ai mis on press dans un for ,alors ,si je clique sur l'un d'eux ,ca va directement
Vers l'array nommé arr et il charge le couleur qui correspond a ce bouton , de même pour les
Bouton s de taille ,t1 ,t2..t7

Puis avec les methode de dessins ,(line style , line to ,move to ,?) je crée un AS qui
Me permet de dessiner (avec les donner de mes array au niveau de couleur et de taille)

La j'ai rencontr é un problème ?je doit tous dessiner dans une endroit précis ,le carreaux blanc ombré donc j'ai utiliser un hittest de tel facon que le souris ne dessine que lorsque il est
Au dessus de mon carreaux blanc ombré

Bien sur ,tout au long de mon dessin le couleut changent avec a.lineStyle(taille,couleur,100)

C'est a dire que lorsque je clique sur un bouton couleur ,mon array de couleur change ,ensuite
Couleur change ainsi le couleur de mon dessin change ,de même pour la taille
Et toute au long de mon dessin je stocke mes couleur dans mes array de stockage :

arrx[k] et arry[k] stockage de position
arrcol[k] de couleur
arrtai[k] de taille


Aussi il y?a une autre chose importante c'est l'utilité de arrchang[k] , ce dernier
Détecte si je clique plus sur le souris ,ou si je clic pas ,et il stocke tous cela sous forme d'un boolean . donc il marque toujours true mais si je click plus (onMouseup ) la dernière array (k-1) devient false et ainsi se forme un séquence du genr e(true?true,false,true?.)

Et enfin lorsque je clique sur? display ton chef d'ouvre? (c'est le bouton nommé bb )
Les array commencent a travaillé ,tous est bien stock é donc tous se refait tous seul
Grâce au donné stocké dans les array

a.clear() supprime ton dessin créé manuellement


if ((arrcol[j]!=arrcol[j-1])|(arrchang[j-2]==false)){pp.moveTo(arrx[j],arry[j])
sur ce As se trouve l'utilité de arrchang[j-2] ,s'il est false le dessin automatique s'arrête ,car mon array(arrchang) me rappelle qu'il y?a une relève de souris a cette instant la
alors qu'est ce qu'il fait ,au lieu de faire un lineTo il fait un Moveto (qui ne dessine pas
mais va à une endroit précis seulement )
enfin lorsque tous est dessin é(j==arrx.length-1 ,j atteint le dernier élément de mon array) je supprime mon boucle (on enterframe) et hop tous est nickel

enfin j'espère que j'ai bien expliquer ^^
thebestprog Messages postés 41 Date d'inscription samedi 2 septembre 2006 Statut Membre Dernière intervention 20 octobre 2006
6 oct. 2006 à 16:22
j'ai pas voulu l'intégrer dans un projet ,c'est juste une idée

qui m'est venu a l'esprit .alors ,je l'est réaliser ^^.
scara 51 Messages postés 94 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 18 septembre 2007
4 oct. 2006 à 11:41
lol, en fait vi c ce que je voulais dire. Mé après réflexion, c pa une bonne idée :S .

Mé par contre je reste curieux de savoir lorsque tu as fait cette source, à quelle projet tu voulais l'intégrer.

Merci
thebestprog Messages postés 41 Date d'inscription samedi 2 septembre 2006 Statut Membre Dernière intervention 20 octobre 2006
2 oct. 2006 à 14:05
tu veux dire que je doit la metre au niveau débutant ?
scara 51 Messages postés 94 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 18 septembre 2007
11 sept. 2006 à 13:42
Ce doit pas être la première du genre, mais elle est remarquablement bien commentée. Bravo pour ça.

MAIS je vais quand même essayer de critiquer un peu : l'utilité, j'arrive pas en trouver (sauf peut-être pour un replay dans un jeu) et le niveau initié, c un peu abusé ...
thebestprog Messages postés 41 Date d'inscription samedi 2 septembre 2006 Statut Membre Dernière intervention 20 octobre 2006
8 sept. 2006 à 21:27
ok pas de probleme ^^ ,j'ai fait un mis a jour dan mon flash elle est maintenant commenté :

dessin.swapDepths(1) //je met le feulle de dessin en profendeut basse//
arr=new Array(0x990000,0x0000FF,0xCCFF00,0xCC0000,0x00FF00,0x9900FF,0x999999,0x000000,0x66CCFF,0xFF66FF) ;//dans arr je stoque les couleurs //
var j:Number=k=0;
arrx=new Array();//dans arrx je stocke les les position quand je dessine selon les x//
arrchang=new Array();//je stock ici un variable boolean qui me dit le temps d'appuie et de ralevement du souris //
arry=new Array();//dans arrx je stocke les les position quand je dessine selon les y//
arrcol=new Array();//je syocke les couleurs qui en changé au cours du temps //
arrch=new Array();
arrtai=new Array();//je sock la taille qui a changé //
couleur=0x000000;//couleur initiale//
taille=1 ;//taille initiale //
for (o=0;o<7;o++){
this["t"+o].id=o // l'indice o du bouton //
this["t"+o].onPress=function(){ //si on click sur l'un des bouton en bas changé le taille selon l'indice du bouton 1 ,2 ...7//
taille=this.id ;
}
}
for (i=0;i<10;i++){
this["b"+i].id=i
this["b"+i].onPress=function(){ //ici les bouton qui changent les couleurs stocké dans arr //
couleur=arr[this.id] ; //parr exemple si je clicke sur b3 ,this.id sera égal a 3 alors arr[3] =0xCC0000 c'est le rouge //
}
}
this.createEmptyMovieClip("a",this.getNextHighestDepth()) //je créé un clip vide//
onMouseDown = function() {//lorsqu'on clique sur le pointeur //
p.clear() //j'éface le replay//
this.createEmptyMovieClip("a",1000)//et je commence a dissiner//

arrcol[0]=0x000000;//couleur initiale noir//
a.lineStyle(taille,couleur,100)//son taille et son couleur et son alpha //
arrx[0]=_xmouse;//cordonné initiale//
arry[0]=_ymouse;
a.moveTo(arrx[0],arry[0])
a.onEnterFrame=function(){//la boucle se repete et a chaque fois je dessine un petit ligne//
if (dessin.hitTest(_xmouse,_ymouse,false)){//cela ne marche que si le souris est sur la feuille de dessin//
k=k+1
arrx[k]=_xmouse//je stoke les valeurs de souris//
arry[k]=_ymouse
a.lineTo(arrx[k],arry[k])//et je fais line to vers ces point//
arrx[k]=_xmouse
arrcol[k]=couleur;//de meme pours le couleurs//

arrtai[k]=taille;//aussi la taiile//
arrchang[k]=true;//je stoke que le souris est cliqué//
}
}
}
onMouseUp=function(){//lorsque le souris n'est plus pressé//
arrchang[k-1]=false//je stocke ca dans la valeurs précedente de arrchang//
delete a.onEnterFrame;} //et je suprime la boucle//
bb.onPress=function(){ //lorsque je press sur le bouton bb qui est en faite replay ton chef d'ouvre//
k=0;//je rénitialise k//
j=0;////aussi j//
a.clear()//et je suprime mon dessin puisque tous est stocké dans des array//
this._parent.createEmptyMovieClip("pp",1000)//je refais presque la meme chose mais avec les valeurs stocké avec un clip vide denomme pp//

pp.moveTo(arrx[1],arry[1])
pp.onEnterFrame=function(){//et encore la boucle qui dessine tous seul cette fois ci//

j=j+1;
if ((arrcol[j]!=arrcol[j-1])|(arrchang[j-2]==false)){pp.moveTo(arrx[j],arry[j])//tous réside ici :si arrchang ou arrcol changent il ne dessine plus mais il fait une moveTo vers la prochaine point//
}else {
pp.lineStyle(arrtai[j], arrcol[j],100)
pp.lineTo(arrx[j],arry[j])//dans le cas contraire je dessine normalement //
if (j==arrx.length-1){delete pp.onEnterFrame;j=0} //si j'arrive au dernier terme de arrx je suprime la boucle ,le dessin et replayé//
}
}

}
nekosan3 Messages postés 10 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 21 juin 2011
8 sept. 2006 à 15:01
hello thebestprog, je veux bien te croire quand tu mets en niveau initié, mais pourrais tu commenter ton code ? surtout sur le code qui "replay", j'aimerais bien comprendre.
Rejoignez-nous