AS3 - SIMULATION DE GRILLE D'ÉDITION

aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 - 30 juil. 2011 à 23:21
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 - 21 août 2011 à 02:37
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/53414-as3-simulation-de-grille-d-edition

aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
21 août 2011 à 02:37
top30 MERCI d'éviter la vulgarité
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
17 août 2011 à 13:50
je suis évidemment d'accord à 200%, mais vu le nombre de gens qui ne savent même pas faire de classes, j'ai carrément zappé cette partie ...

Peg'
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
17 août 2011 à 13:47
Aerobite... Le plus ergonomique et évolutif est relatif, tout comme la beauté.
Mais c'eset vrai qu'une une mise en Classe aurait été plus "claire".

Class VirtualGrid( stage:Stage, area:Rectangle, columns:uint, rows:uint );
extends EventDispatcher

Class VirtualGridEvent( type:String, stageX:Number, stageY:Number, $column:uint, $row:uint, cellWidtth:Number, cellHeight:Number ) ;

Ou quelque choise comme ceci afin de capturer juste les click...

var myGrid :Virtualgrid= new VirtualGrid( this.stage, new rectangle(10,10,200,300), 5, 10 );
myGrid,addEventListener( "click" onGridClick );

non ???
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
17 août 2011 à 13:34
J'ai ai faite des trés con aussi !
Pas loin de celle-ci !AH AH AH Lol...

= )
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
17 août 2011 à 13:30
Rien, au contraire, c'était un compliment ;)
Je disais simplement que tes sources était d'un niveau tels qu'eles n'étaient pas accessible au commun des mortels.

Peg'
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
17 août 2011 à 13:25
Je m'absente 5 minutes et j'en prend plein la gueule !!!
Qu'est-ce que j'ai à voir moi, ici ????
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
31 juil. 2011 à 00:23
C'est effectivement la finalité que j'avais présumée.
Ceci dit un dernier point, le stage.addeventlistener sur ton mouse move,c'est pas terrible.
Tu vas les accumuler et risquer quelques complictions pour une insertions dans un script plus vaste ou il faut etre méticuleux sur les ajouts et suppressions d'écouteurs.

Je serais plutot parti sur un drag drop perso avec accrochage de la forme sur la grille virtuelle pendant le mousemove et lors du click
De cette facon tu as un potentiel ergomique et évolutif, autrement plus conséquent

Cordialement
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
31 juil. 2011 à 00:02
Non, c'est pas le but non plus, c'est "pédagogique".

Peu importe l'interaction au clic encore une fois, c'est à toi d'adapter selon ton besoin.
C'est un truc pour éviter d'engorger inutilement la mémoire. Beaucoup de gens ne connaissent pas ce truc, j'en vois des tonnes.

Mais je m'en sert comme base pour créer un éditeur de niveau avec un bitmap à reconstituer par bouts de tiles piochés dans un tileSet, tout en stockant les données dans un tableau, enregistré ensuite en données brutes dans un fichier.

La finalité n'est pas de faire un truc "qui tue", mais de donner une petite astuce compréhensible par tous.
Et partager un peu de mon savoir sans couler les moins à l'aise de nous. (Il suffit de voir les sources de Top30 pour s'en convaincre)

Peg'
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
30 juil. 2011 à 23:51
Re,
mouai, mouai, ton code n'est pas "à proprement parlé" une alternative à une grille de boutons car, tu n'as aucune interaction réelle ou virtuelle avec tes shapes; pb soulevé dans le 1er post,ou tu (re)trace sans vérification sur ta zone.

C'est uniquement le stage qui interagie meme si tu virtualise un tramage sur ce dernier, cela reste un stage avec un Math.floor sur les coordonnées souris.

Je veux pas te sembler rabat-joie, mais c'est pas du grand peg' tout ca!!!!
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
30 juil. 2011 à 23:33
Le but de cette source est de montrer qu'il n'est pas nécessaire de créer une grille de boutons pour obtenir une interaction "en grille".
Le nombre de cases donnés est très facilement modifiable en changeant la taille du bloc de base (actuellement 16x16).
L'interaction au clic n'est ici qu'arbitraire, juste pour prouver que l'on a bien l'interaction. Peu importe ce qu’elle fait, ce n'est pas le but premier ...

Mais actuellement, il n'y a pas les 640 éléments d'affiché, juste un Shape de curseur et un écouteur sur la scène. Rien de plus ... Ce qui est le but.

Je montre simplement comment "découper" un espace donné en grille de taille définis, tout en gardant l'interaction et définir les coordonnées réelles de la grille.

Peg'
aerolyte Messages postés 465 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 4 mai 2013 1
30 juil. 2011 à 23:21
Bonjour pégase, je n'ai pas encore poussé très loin le décortiquage de ton code, toutefois, je suis dubitatif quand à ton astuce.

En effet le faite de grossir un bloc à 16 pixels de coté, me semble un poil léger,
car tu n'as pas du tout 32768 éléments à afficher mais uniquement 640 (32*20).
Du coup je ne saisie plus la finalité, Peut-etre que je me trompe?

Pour ma part j'aurais aimé voir un bout de code avec un réel plus, par exemple une optimisation du dessin par exemple si tu clic sur une cellule vide a coté d'une autre, au lieu de rajouter un shape, tu aggrandis celle a coté.

D'autre part, il semblerait (je n'ai pas encore testé), que tu ne controle pas si ta zone cliqué contient deja une shape.
C'est pas dramatique, mais ca limite quelque peu les possibilités

Cordialement
Rejoignez-nous