pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 2013
-
7 mars 2005 à 19:54
fuzefu
Messages postés3Date d'inscriptionmardi 30 mars 2010StatutMembreDernière intervention10 mai 2011
-
31 janv. 2011 à 16:02
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
fuzefu
Messages postés3Date d'inscriptionmardi 30 mars 2010StatutMembreDernière intervention10 mai 2011 31 janv. 2011 à 16:02
D'ailleurs une fois n'est pas coutume je galère donc si je pouvais te demander un dernier petit coup de main ça serait fantabuleux !
Ze noob en flash.
fuzefu
Messages postés3Date d'inscriptionmardi 30 mars 2010StatutMembreDernière intervention10 mai 2011 31 janv. 2011 à 14:31
Tout d'abord merci beaucoup.
En fait l'idée c'est que les cartes soient simplement visibles durant 2 secondes pour ensuite les chercher une fois retournées.
cs_adv
Messages postés149Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention28 janvier 20112 28 janv. 2011 à 13:47
Salut,
Je viens de regarder ce code (qui date un peu maintenant...). Comme je comprends pas vraiment le but, c'est pas forcément ce que tu cherches.
Tu peux essayer ainsi:
- Clip "classesJeu", Calque "Cartes"
Dans la fonction "clsCarte.prototype.ctrlLoadImg", tu ajoutes les 2 lignes suivantes
après la ligne "this._visible = true; //rendre la carte visible":
1. "this.montrer();"
2. "this.libre = true;"
Ainsi, après leur chargement, les cartes se montrent et sont libres pour être cliquées.
A plus,
adv
fuzefu
Messages postés3Date d'inscriptionmardi 30 mars 2010StatutMembreDernière intervention10 mai 2011 28 janv. 2011 à 11:21
Salut,
Merci énormément pour le code, il fonctionne du tonnere.
J'avais juste une petit question : je galère pour trouver le code qui permettrait d'avoir toutes les cartes retournées dès le début donc si quelqu'un pouvait me donner un coup de pouce là dessus ça serait fabuleux !
Merci encore !
Salut,
Juste pour dire merci, parce que j'ai utilisé ton code. Ca fonctionne super bien. J'ai changé quelques trucs (surtout la présentation et le xml), mais j'ai à peine touché au code.
Si ça t'intéresse, tu peux voir le jeu là: http://lpfmk.free.fr/ Au départ c'est un site qui présente des animations en patamod réalisées par des enfants dans le cadre d'un atelier d'arts plastiques. le memory est fait pour eux, à partir de gravures qu'ils ont dessinées.
Deux petits défauts quand même:
- Pas de boutons pour retourner au menu avant d'avoir fini le memory (pas bien grave, j'en ai rajouté un).
- Les images se chargent par paires, donc quand les images apparaissent, tu peux déduire ou sont les paires. Par exemple, quand il reste deux images à charger, tu sais qu'elles sont identiques. C'est sûr faut le savoir... (là par contre j'ai rien fait parce que ça dépasse mes maigres compétences en AS!)
Merci encore et A+
PS: le site est full-flash. Pour accéder au memory depuis la page d'accueil, il faut cliquer sur la grenouille en haut à droite.
cs_adv
Messages postés149Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention28 janvier 20112 24 mars 2007 à 13:51
Hello,
en VBA?
Ce code est de l'AS1, c'est quand même éloigné de ce que tu cherches. Les structures sont bien différentes.
VBA, c'est bien Visual Basic for Application?
Pour quelle application dois-tu développer ça?
A plus,
adv
coach72
Messages postés2Date d'inscriptionsamedi 3 mars 2007StatutMembreDernière intervention24 mars 2007 24 mars 2007 à 11:01
salut,
J'aimerais savoir comment obtenir ta programmation vba de ton jeu sans passer par le fichier ZIP que je ne peut pas lire
Ton jeu m'intéresse car j'ai un projet à faire et c'est exactement la même chose
Merci
cs_colinus
Messages postés4Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention13 juin 2006 13 juin 2006 à 09:47
Salut ADV,
en fait c'est oki, comme un gros naze j'avais pas uploadé le fichier xml. Alors ça le faisait pas.
Pour un link, pas possible pour l'instant, le site de mon client n'est pas encore public. Je poste ici quand c'est ouvert.
Merci!
colinus
cs_adv
Messages postés149Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention28 janvier 20112 13 juin 2006 à 09:43
Hello,
normalement, il n'y a rien à modifier pour mettre en ligne.
Que ce passe-t-il une fois sur le serveur ?
Je peux tester à une adresse ?
cs_colinus
Messages postés4Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention13 juin 2006 12 juin 2006 à 19:17
Hello tous!
J'arrive à fair fonctionner le memory en local, mais pas une fois uploadé sur le serveur... j'ai pourtant édité le chamin des images dans le fichier xml, mais ça fonctionne pas... j'ai oublié qqch?
Merci!
colinus
cs_j75
Messages postés2Date d'inscriptionmardi 26 avril 2005StatutMembreDernière intervention26 avril 2005 26 avril 2005 à 14:18
ok merci.
cs_adv
Messages postés149Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention28 janvier 20112 26 avril 2005 à 14:02
Hello,
tout le code se trouve dans les 2 symboles "classesJeu" et "classesMenu".
C'était un test afin de centraliser le code, afin de ne pas avoir des petit bout partout.
Voilà, à plus.
adv
PS : les fichiers ont été écrits sour Flash MX
cs_j75
Messages postés2Date d'inscriptionmardi 26 avril 2005StatutMembreDernière intervention26 avril 2005 26 avril 2005 à 11:51
Bonjour,
Je suis peut être un peu bête, mais je n'arrive pas à avoir accès à ton code, mais pourtant ça marche. Je comprends pas tout... Sinon, d'aspect extérieur, je trouve ça bien.
Merci.
PS : J'ai Flash MX 2004.
cs_adv
Messages postés149Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention28 janvier 20112 9 mars 2005 à 22:40
Hello,
je prends très bonne note de ces quelques points. En m'en vais prochainement reécrire une nouvelle versions sur ces bases.
Merci,
adv
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 9 mars 2005 à 19:34
/*
Quelque conseils si tu en souhaites.
Plutot que de te taper du : "this.xmlMenu.firstChild.childNodes ..." à en plus finir ( même si c'est du copier-coller, je devine )tu devrais plus adopter la forme :
*/
var serie = this.xmlMenu.firstChild.childNodes[i].attributes ;
var init = {} ;
init.nom = serie.nom ;
init.tailleImag = int ( serie.tailleImg ) ;
// etc...
/*
De plus si tu est bien organisé ( et tu m'as l'air vu que tes variables d'initialisation ont le mème nom que tes attributs tu pourrait gagner encore du temps et des lignges dans une boucle rapide ;
*/
var serie = this.xmlMenu.firstChild.childNodes[i].attributes ;
var init = {} ;
for ( var i in serie ) {
var value = serie[i] ;
var isString = isNaN ( value ) ;
init[i] = isString ? value : int(value) ;
}
/*
Voir mème encore plus fort passer l'object "attribut en tant qu'init comme l'exemple suivant ; A toi de convertir un Number les données devant être traduite comme telle après ;
*/
var init = this.xmlMenu.firstChild.childNodes[i].attributes ;
//ajouter l'étiquette au menu
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init );
// au lieu de :
clsDebut.prototype.traiteXml = function(){
decY = 25 ;
for (i=0; i<this.xmlMenu.firstChild.childNodes.length; i++){
init={ nom : this.xmlMenu.firstChild.childNodes[i].attributes.nom,
tailleImg : int(this.xmlMenu.firstChild.childNodes[i].attributes.tailleImg),
espaceX : int(this.xmlMenu.firstChild.childNodes[i].attributes.espaceX),cartes en x
espaceY : int(this.xmlMenu.firstChild.childNodes[i].attributes.espaceY),
nbreCol : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbreCol),
nbreLigne : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbreLigne),
nbrePaire : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbrePaire),
repertoire : this.xmlMenu.firstChild.childNodes[i].attributes.repertoire};images de la série
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init);
this.cont["elem" + i]._x = 0;
this.cont["elem" + i]._y = i * decY;
}
}
// tu aurais donc :
clsDebut.prototype.traiteXml = function() {
var series = this.xmlMenu.firstChild.childNodes ;
var i = -1 ;
while ( ++i < series.length ) {
var init = { _y:(i*25) } ; // Le _x etant à 0 autant ne pas le mettre ;
// Attributs : nom, tailleImg, espaceX, espaceY, nbreCol, nbreLigne nbrePaire et répertoire ;
var config = series[i].attributes ;
for ( var a in config ) init[a] = isNaN (config[a]) ? config[a] : int(config[a]) ;
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init );
}
}
/*
Personnellement je préfères.
Sinon je suis d'accord avec toi, partissant du maximun d'extériorisation ; Moins au touche au Fla, mieux sait.
Sinon c'est toujours intéressant de voir du codes fait par des prog de formation se mettant au Flash ;
Plutot que de te taper du : "this.xmlMenu.firstChild.childNodes ..." à en plus finir ( même si c'est du copier-coller, je devine )tu devrais plus adopter la forme :
*/
var serie = this.xmlMenu.firstChild.childNodes[i].attributes ;
var init = {} ;
init.nom = serie.nom ;
init.tailleImag = int ( serie.tailleImg ) ;
// etc...
/*
De plus si tu est bien organisé ( et tu m'as l'air vu que tes variables d'initialisation ont le mème nom que tes attributs tu pourrait gagner encore du temps et des lignges dans une boucle rapide ;
*/
var serie = this.xmlMenu.firstChild.childNodes[i].attributes ;
var init = {} ;
for ( var i in serie ) {
var value = serie[i] ;
var isString = isNaN ( value ) ;
init[i] = isString ? value : int(value) ;
}
/*
Voir mème encore plus fort passer l'object "attribut en tant qu'init comme l'exemple suivant ; A toi de convertir un Number les données devant être traduite comme telle après ;
*/
var init = this.xmlMenu.firstChild.childNodes[i].attributes ;
//ajouter l'étiquette au menu
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init );
// au lieu de :
clsDebut.prototype.traiteXml = function(){
decY = 25 ;
for (i=0; i<this.xmlMenu.firstChild.childNodes.length; i++){
init={ nom : this.xmlMenu.firstChild.childNodes[i].attributes.nom,
tailleImg : int(this.xmlMenu.firstChild.childNodes[i].attributes.tailleImg),
espaceX : int(this.xmlMenu.firstChild.childNodes[i].attributes.espaceX),cartes en x
espaceY : int(this.xmlMenu.firstChild.childNodes[i].attributes.espaceY),
nbreCol : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbreCol),
nbreLigne : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbreLigne),
nbrePaire : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbrePaire),
repertoire : this.xmlMenu.firstChild.childNodes[i].attributes.repertoire};images de la série
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init);
this.cont["elem" + i]._x = 0;
this.cont["elem" + i]._y = i * decY;
}
}
// tu aurais donc :
clsDebut.prototype.traiteXml = function() {
var series = this.xmlMenu.firstChild.childNodes ;
var i = -1 ;
while ( ++i < series.length ) {
var init = { _y:(i*25) } ; // Le _x etant à 0 autant ne pas le mettre ;
// Attributs : nom, tailleImg, espaceX, espaceY, nbreCol, nbreLigne nbrePaire et répertoire ;
var config = series[i].attributes ;
for ( var a in config ) init[a] = isNaN (config[a]) ? config[a] : int(config[a]) ;
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init );
}
}
/*
Personnellement je préfères.
Sinon je suis d'accord avec toi, partissant du maximun d'extériorisation ; Moins au touche au Fla, mieux sait.
Sinon c'est toujours intéressant de voir du codes fait par des prog de formation se mettant au Flash ;
BananaTree
Messages postés337Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention 2 novembre 2010 9 mars 2005 à 18:59
slt,
j'avais pas imaginé un truc dans ce genre.
c'est exellent.
vraiment une bonne astuce.
@+ et bon code
cs_adv
Messages postés149Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention28 janvier 20112 9 mars 2005 à 17:30
Hello,
voici une nouvelle version du memory.
Suite au message de BananaTree, j'avais envie de répartir le code différement dans le fla. Cela m'a permis d'ajouter quelques fonctionnalités.
A plus,
adv
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 9 mars 2005 à 09:28
Ben pour mes codes, désolé, mais je ne peux pas.. pas interessants hors contexte.
Mais un jour, promis s'il ya qqch d'interessant à vous montrer.
novaflash
Messages postés65Date d'inscriptionmardi 4 mai 2004StatutMembreDernière intervention 5 avril 2009 9 mars 2005 à 07:20
Pffff, te decourage pas ADV,
merci au nom des graphistes cools qui apprécient les
contributions quelqu'elles soient.
Qd à Peg, le nombre de fois où j'ai lu ces
remarques aigres sur le code des autres
que s'en est enervant à force...
Peg si au lieu de râler tu nous balancait
tes superbes codes on te promet de trouver
un autre râleur :)
eric
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 8 mars 2005 à 19:03
Bon, on va remettre les choses au point :
Flash est, au départ, un logiciel d'animation sur lequel on a greffé des bouts de code pour donner une certaine intéraction. Malheureusement (oui, car je ne pense pas que ce soit une bonne chose) Depuis Flash MX 2004, on a un virage à 180° qui à trnasformé Flash en un espèce de truc de programmation super développé avec ajout d'un langage bizarre : l'AS2. Il a apparement été créé pour attirer les programmeurs sur ce logiciel qui à la base, je le rappelle, est un logiciel de graphisme vectoriel animé.
Donc comprend que nous, simples graphistes (même si je fais du flash depuis un certain moment et que j'ai commencé comme programmeur) ayons du mal à nous faire à tout ces trucs bizarres qui arrivent directement du monde de la prog pure et dure... autant que vous ne compreniez pas que nous trouvions un flash sans animations complètement inutile et sans interêt ... puisque c'est sa fonction première !
Donc, MX 2004 à créé une fracture entre prog pur et graphiste ... et j'en suis réellement navré !
Peg'
Ps : pour mon solitaire, remets dans le cadre, je commençais à faire de la prog sur flash et c'était sous Flash 4.0 porté en flash 5.0 (un tout petit peu, alors)
cs_adv
Messages postés149Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention28 janvier 20112 8 mars 2005 à 17:45
Hello Peg',
Effectivement, je viens du monde de la programmation. Je me suis mis à Flash, il y a quelques temps afin de voir ce qu'il proposait pour le monde duquel je viens. Les possibilités m'ont parrues très interésentes.
Ensuite, je me suis mis à offrir mes services à des graphistes qui n'ont pas la possibilité de créer ce qu'ils désirent. Il y en a un grand nombre qui n'ont pas le courage, ou les possibilités, de se lancer comme tu l'as fait.
Dès lors, je fréquence périodiquement ce site. J'ai donc constaté qu'il y a beaucoup plus de graphiste que de programmeur qui le fréquente. Un programmeur qui veut apprendre le flash (comme je l'ai fait) et qui télécharge, par exemple, ton solitaire, n'y comprendra absolument rien. Ceci non pas parce que c'est mal fait, mais car c'est beaucoup trop éloigner de ce qu'il sait faire et pas suffisement commenté à son goût.
Voilà un peu pourquoi, je me suis décidé dernièrement à déposser une source sur ce site. Je ne te cache pas que tu ne m'encourage pas à poursuivre.
En ce qui concerne le chargement dynamique des images, en ligne, cela fait le loading de l'animation. Tout d'abord, les images ne sont pas chargée au clique, mais dès que l'animation est chargée. Ensuite, il n'est pas possible de cliquer sur une carte dont l'image n'est pas chargée, car elle n'est pas visible. Je n'arrive pas à comprendre pourquoi tu t'acharnes comme ça sur ces images.
Merci pour ton message, je vais changer le niveau en moyen. A plus,
adv
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 8 mars 2005 à 17:15
Je ne suis pas ok avec toi pour dire que le fait de charger les images à part allège le poids du flash, car au final il faudra tout charger .. alors même si tu charges tes images au clic (ce qui est assez limite pour une vilaine connection) ça fonctionne bien en local (rien à redire) mais cette méthode n'est stable sur le net ...
Ensuite, je n'avais pas vu que tu avais mis ta source au niveau "débutant". Moi je ne connais aucun débutant qui utilise des prototypes ... moi même qui ne suis pas un expert (mais je suis juste un graphiste, donc c'est excusable) je n'en utilise jamais.
Je mets au défi n'importe quel gars qui fait du flash depuis peu de comprendre et réutiliser ta source ...
Peut-être que pour toi, grand programmeur, ça te semble simple, mais n'oublies pas qu'ici c'est pas le cas.
Peg'
cs_adv
Messages postés149Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention28 janvier 20112 8 mars 2005 à 15:05
Hello,
je ne trouve pas ta question bête. Je n'ai simplement jamais pensé à la faire. Je pense également que c'est par mimétisme, car je n'ai jamais vu de code qui le faissait.
C'est donc pour moi plus une sugestion qu'une question.
Merci,
adv
BananaTree
Messages postés337Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention 2 novembre 2010 8 mars 2005 à 13:52
slt,
je pose une peut être quetion bête, mais pourquoi ne pas avoir centralisé toutes les classes ?
@+ et bon code.
cs_adv
Messages postés149Date d'inscriptionvendredi 30 mai 2003StatutMembreDernière intervention28 janvier 20112 8 mars 2005 à 12:16
Merci pour vos commentaires.
J'ai fais cette source suite à la lecture d'un message sur le forum où quelqu'un cherchais un memory comme exemple.
Pour répondre à pegase31 :
L’intérêt de charger les images dynamiquement :
- limite le poids du swf
- l'apparition des cartes fait office de loading
- grande facilité d'adaptation pour différents niveaux de jeu avec des images différentes et le nombre de carte également.
Programmation OO:
- 30 x 8 fonctions (c'est de la POO), rien à dire
- structure simple à lire et à comprendre
Pour le dernier point qui concerne l'absence d'animation :
- le but de ma fréquentation de ce site n'est pas de me la peter. Et de recevoir plein de message, magnifique ce jeu, mais je n'arrive malheureusement rien comprendre au code...
- ce code est une base de travail fonctionnel dans le but de peut-être rendre service et de voir une approche différente de l’utilisation de flash.
et enfin, oui je programme dans d'autres langages (Java, VB, Prolog, Ada, ....), mais ça fait un bon moment que je fais du flash.
adv
SuperDevy
Messages postés842Date d'inscriptiondimanche 24 novembre 2002StatutMembreDernière intervention 2 juillet 2007 7 mars 2005 à 22:31
Moi, je trouve ça correcte. C'est intelligent de charger de images externes : ça pourrai permettre de faire un jeu di style "jouer avec la tête de vos copains" où chaqun upload sa photo le jeu évolue ainsi ...
Sinon, question code, je trouve ça bien : c'est programmé OO AS1.
Question animations, il n'y en a pas. C'est pas grave ! C'est pas parce que l'on fait du Flash qu'on est obligé de faire tout bouger ! L'animation pourrait éventuellement être dans les vignettes (si elles sont remplacées par des swfs.
[8/10]
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 7 mars 2005 à 19:54
Alors déjà, je ne vois pas l'interêt de faire toutes tes images en load, car il aurait été plus simple de toutes les mettre dans l'animation de base plutôt que d'avoir 15 images en vrac dans le site .. flash permet de contenir toutes les images dans un seul fichier et je trouverais ça plus interessant. Même si ça permet de les changer sans recompiler l'animation, ça reste pas pratique !
Ensuite, ton code est sur chaque clip de cartes, soit 30 x 8 fonctions identiques sur l'animation générale .. n'aurais-tu pas pu faire plus simple et tout mettre sur la frame de base en appellant la Timeline de base ?
Pour ce qui est du jeu, question animation, c'est pauvre .. on a l'impression de se retrouver devant un jeu en Vb de base sans possibilités de faire des animations. Flash peut faire tourver des images, les réduire, faire des fades etc .. utilise ces fonctions, ça ne demande pas plus de poids.
Pour les cartes, tu le laisses pas la possibilité de recliquer sur une image pour la reselectionner si tu trouves un double .. ça t'oblige à retenir la place du double trouvé et d'aller cliquer sur la première puis la seconde qui vient de se retourner ... pas trés pratique.
Bref, un petit jeu fait avec un programme moyennement ficelé et moyennement jouable ...
Peg'
PS: tu programme en un autre langage et tu viens de te mettre à Flash, non ?
31 janv. 2011 à 16:02
Ze noob en flash.
31 janv. 2011 à 14:31
En fait l'idée c'est que les cartes soient simplement visibles durant 2 secondes pour ensuite les chercher une fois retournées.
28 janv. 2011 à 13:47
Je viens de regarder ce code (qui date un peu maintenant...). Comme je comprends pas vraiment le but, c'est pas forcément ce que tu cherches.
Tu peux essayer ainsi:
- Clip "classesJeu", Calque "Cartes"
Dans la fonction "clsCarte.prototype.ctrlLoadImg", tu ajoutes les 2 lignes suivantes
après la ligne "this._visible = true; //rendre la carte visible":
1. "this.montrer();"
2. "this.libre = true;"
Ainsi, après leur chargement, les cartes se montrent et sont libres pour être cliquées.
A plus,
adv
28 janv. 2011 à 11:21
Merci énormément pour le code, il fonctionne du tonnere.
J'avais juste une petit question : je galère pour trouver le code qui permettrait d'avoir toutes les cartes retournées dès le début donc si quelqu'un pouvait me donner un coup de pouce là dessus ça serait fabuleux !
Merci encore !
4 mars 2009 à 20:51
Juste pour dire merci, parce que j'ai utilisé ton code. Ca fonctionne super bien. J'ai changé quelques trucs (surtout la présentation et le xml), mais j'ai à peine touché au code.
Si ça t'intéresse, tu peux voir le jeu là: http://lpfmk.free.fr/
Au départ c'est un site qui présente des animations en patamod réalisées par des enfants dans le cadre d'un atelier d'arts plastiques. le memory est fait pour eux, à partir de gravures qu'ils ont dessinées.
Deux petits défauts quand même:
- Pas de boutons pour retourner au menu avant d'avoir fini le memory (pas bien grave, j'en ai rajouté un).
- Les images se chargent par paires, donc quand les images apparaissent, tu peux déduire ou sont les paires. Par exemple, quand il reste deux images à charger, tu sais qu'elles sont identiques. C'est sûr faut le savoir... (là par contre j'ai rien fait parce que ça dépasse mes maigres compétences en AS!)
Merci encore et A+
PS: le site est full-flash. Pour accéder au memory depuis la page d'accueil, il faut cliquer sur la grenouille en haut à droite.
24 mars 2007 à 13:51
en VBA?
Ce code est de l'AS1, c'est quand même éloigné de ce que tu cherches. Les structures sont bien différentes.
VBA, c'est bien Visual Basic for Application?
Pour quelle application dois-tu développer ça?
A plus,
adv
24 mars 2007 à 11:01
J'aimerais savoir comment obtenir ta programmation vba de ton jeu sans passer par le fichier ZIP que je ne peut pas lire
Ton jeu m'intéresse car j'ai un projet à faire et c'est exactement la même chose
Merci
13 juin 2006 à 09:47
en fait c'est oki, comme un gros naze j'avais pas uploadé le fichier xml. Alors ça le faisait pas.
Pour un link, pas possible pour l'instant, le site de mon client n'est pas encore public. Je poste ici quand c'est ouvert.
Merci!
colinus
13 juin 2006 à 09:43
normalement, il n'y a rien à modifier pour mettre en ligne.
Que ce passe-t-il une fois sur le serveur ?
Je peux tester à une adresse ?
12 juin 2006 à 19:17
J'arrive à fair fonctionner le memory en local, mais pas une fois uploadé sur le serveur... j'ai pourtant édité le chamin des images dans le fichier xml, mais ça fonctionne pas... j'ai oublié qqch?
Merci!
colinus
26 avril 2005 à 14:18
26 avril 2005 à 14:02
tout le code se trouve dans les 2 symboles "classesJeu" et "classesMenu".
C'était un test afin de centraliser le code, afin de ne pas avoir des petit bout partout.
Voilà, à plus.
adv
PS : les fichiers ont été écrits sour Flash MX
26 avril 2005 à 11:51
Je suis peut être un peu bête, mais je n'arrive pas à avoir accès à ton code, mais pourtant ça marche. Je comprends pas tout... Sinon, d'aspect extérieur, je trouve ça bien.
Merci.
PS : J'ai Flash MX 2004.
9 mars 2005 à 22:40
je prends très bonne note de ces quelques points. En m'en vais prochainement reécrire une nouvelle versions sur ces bases.
Merci,
adv
9 mars 2005 à 19:34
Quelque conseils si tu en souhaites.
Plutot que de te taper du : "this.xmlMenu.firstChild.childNodes ..." à en plus finir ( même si c'est du copier-coller, je devine )tu devrais plus adopter la forme :
*/
var serie = this.xmlMenu.firstChild.childNodes[i].attributes ;
var init = {} ;
init.nom = serie.nom ;
init.tailleImag = int ( serie.tailleImg ) ;
// etc...
/*
De plus si tu est bien organisé ( et tu m'as l'air vu que tes variables d'initialisation ont le mème nom que tes attributs tu pourrait gagner encore du temps et des lignges dans une boucle rapide ;
*/
var serie = this.xmlMenu.firstChild.childNodes[i].attributes ;
var init = {} ;
for ( var i in serie ) {
var value = serie[i] ;
var isString = isNaN ( value ) ;
init[i] = isString ? value : int(value) ;
}
/*
Voir mème encore plus fort passer l'object "attribut en tant qu'init comme l'exemple suivant ; A toi de convertir un Number les données devant être traduite comme telle après ;
*/
var init = this.xmlMenu.firstChild.childNodes[i].attributes ;
//ajouter l'étiquette au menu
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init );
// au lieu de :
clsDebut.prototype.traiteXml = function(){
decY = 25 ;
for (i=0; i<this.xmlMenu.firstChild.childNodes.length; i++){
init={ nom : this.xmlMenu.firstChild.childNodes[i].attributes.nom,
tailleImg : int(this.xmlMenu.firstChild.childNodes[i].attributes.tailleImg),
espaceX : int(this.xmlMenu.firstChild.childNodes[i].attributes.espaceX),cartes en x
espaceY : int(this.xmlMenu.firstChild.childNodes[i].attributes.espaceY),
nbreCol : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbreCol),
nbreLigne : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbreLigne),
nbrePaire : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbrePaire),
repertoire : this.xmlMenu.firstChild.childNodes[i].attributes.repertoire};images de la série
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init);
this.cont["elem" + i]._x = 0;
this.cont["elem" + i]._y = i * decY;
}
}
// tu aurais donc :
clsDebut.prototype.traiteXml = function() {
var series = this.xmlMenu.firstChild.childNodes ;
var i = -1 ;
while ( ++i < series.length ) {
var init = { _y:(i*25) } ; // Le _x etant à 0 autant ne pas le mettre ;
// Attributs : nom, tailleImg, espaceX, espaceY, nbreCol, nbreLigne nbrePaire et répertoire ;
var config = series[i].attributes ;
for ( var a in config ) init[a] = isNaN (config[a]) ? config[a] : int(config[a]) ;
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init );
}
}
/*
Personnellement je préfères.
Sinon je suis d'accord avec toi, partissant du maximun d'extériorisation ; Moins au touche au Fla, mieux sait.
Sinon c'est toujours intéressant de voir du codes fait par des prog de formation se mettant au Flash ;
A plus et bon courage
PS : ya un temps j'avait aussi fait un "composant" comme ca : http://www.flashkod.com/code.aspx?id=18544...
[7/10]
*//*
Quelque conseils si tu en souhaites.
Plutot que de te taper du : "this.xmlMenu.firstChild.childNodes ..." à en plus finir ( même si c'est du copier-coller, je devine )tu devrais plus adopter la forme :
*/
var serie = this.xmlMenu.firstChild.childNodes[i].attributes ;
var init = {} ;
init.nom = serie.nom ;
init.tailleImag = int ( serie.tailleImg ) ;
// etc...
/*
De plus si tu est bien organisé ( et tu m'as l'air vu que tes variables d'initialisation ont le mème nom que tes attributs tu pourrait gagner encore du temps et des lignges dans une boucle rapide ;
*/
var serie = this.xmlMenu.firstChild.childNodes[i].attributes ;
var init = {} ;
for ( var i in serie ) {
var value = serie[i] ;
var isString = isNaN ( value ) ;
init[i] = isString ? value : int(value) ;
}
/*
Voir mème encore plus fort passer l'object "attribut en tant qu'init comme l'exemple suivant ; A toi de convertir un Number les données devant être traduite comme telle après ;
*/
var init = this.xmlMenu.firstChild.childNodes[i].attributes ;
//ajouter l'étiquette au menu
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init );
// au lieu de :
clsDebut.prototype.traiteXml = function(){
decY = 25 ;
for (i=0; i<this.xmlMenu.firstChild.childNodes.length; i++){
init={ nom : this.xmlMenu.firstChild.childNodes[i].attributes.nom,
tailleImg : int(this.xmlMenu.firstChild.childNodes[i].attributes.tailleImg),
espaceX : int(this.xmlMenu.firstChild.childNodes[i].attributes.espaceX),cartes en x
espaceY : int(this.xmlMenu.firstChild.childNodes[i].attributes.espaceY),
nbreCol : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbreCol),
nbreLigne : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbreLigne),
nbrePaire : int(this.xmlMenu.firstChild.childNodes[i].attributes.nbrePaire),
repertoire : this.xmlMenu.firstChild.childNodes[i].attributes.repertoire};images de la série
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init);
this.cont["elem" + i]._x = 0;
this.cont["elem" + i]._y = i * decY;
}
}
// tu aurais donc :
clsDebut.prototype.traiteXml = function() {
var series = this.xmlMenu.firstChild.childNodes ;
var i = -1 ;
while ( ++i < series.length ) {
var init = { _y:(i*25) } ; // Le _x etant à 0 autant ne pas le mettre ;
// Attributs : nom, tailleImg, espaceX, espaceY, nbreCol, nbreLigne nbrePaire et répertoire ;
var config = series[i].attributes ;
for ( var a in config ) init[a] = isNaN (config[a]) ? config[a] : int(config[a]) ;
this.cont.attachMovie("mcElementMenu", ["elem" + i], i, init );
}
}
/*
Personnellement je préfères.
Sinon je suis d'accord avec toi, partissant du maximun d'extériorisation ; Moins au touche au Fla, mieux sait.
Sinon c'est toujours intéressant de voir du codes fait par des prog de formation se mettant au Flash ;
A plus et bon courage
PS : ya un temps j'avait aussi fait un "composant" comme ca : http://www.flashkod.com/code.aspx?id=18544...
[7/10]
*/
9 mars 2005 à 18:59
j'avais pas imaginé un truc dans ce genre.
c'est exellent.
vraiment une bonne astuce.
@+ et bon code
9 mars 2005 à 17:30
voici une nouvelle version du memory.
Suite au message de BananaTree, j'avais envie de répartir le code différement dans le fla. Cela m'a permis d'ajouter quelques fonctionnalités.
A plus,
adv
9 mars 2005 à 09:28
Mais un jour, promis s'il ya qqch d'interessant à vous montrer.
9 mars 2005 à 07:20
merci au nom des graphistes cools qui apprécient les
contributions quelqu'elles soient.
Qd à Peg, le nombre de fois où j'ai lu ces
remarques aigres sur le code des autres
que s'en est enervant à force...
Peg si au lieu de râler tu nous balancait
tes superbes codes on te promet de trouver
un autre râleur :)
eric
8 mars 2005 à 19:03
Flash est, au départ, un logiciel d'animation sur lequel on a greffé des bouts de code pour donner une certaine intéraction. Malheureusement (oui, car je ne pense pas que ce soit une bonne chose) Depuis Flash MX 2004, on a un virage à 180° qui à trnasformé Flash en un espèce de truc de programmation super développé avec ajout d'un langage bizarre : l'AS2. Il a apparement été créé pour attirer les programmeurs sur ce logiciel qui à la base, je le rappelle, est un logiciel de graphisme vectoriel animé.
Donc comprend que nous, simples graphistes (même si je fais du flash depuis un certain moment et que j'ai commencé comme programmeur) ayons du mal à nous faire à tout ces trucs bizarres qui arrivent directement du monde de la prog pure et dure... autant que vous ne compreniez pas que nous trouvions un flash sans animations complètement inutile et sans interêt ... puisque c'est sa fonction première !
Donc, MX 2004 à créé une fracture entre prog pur et graphiste ... et j'en suis réellement navré !
Peg'
Ps : pour mon solitaire, remets dans le cadre, je commençais à faire de la prog sur flash et c'était sous Flash 4.0 porté en flash 5.0 (un tout petit peu, alors)
8 mars 2005 à 17:45
Effectivement, je viens du monde de la programmation. Je me suis mis à Flash, il y a quelques temps afin de voir ce qu'il proposait pour le monde duquel je viens. Les possibilités m'ont parrues très interésentes.
Ensuite, je me suis mis à offrir mes services à des graphistes qui n'ont pas la possibilité de créer ce qu'ils désirent. Il y en a un grand nombre qui n'ont pas le courage, ou les possibilités, de se lancer comme tu l'as fait.
Dès lors, je fréquence périodiquement ce site. J'ai donc constaté qu'il y a beaucoup plus de graphiste que de programmeur qui le fréquente. Un programmeur qui veut apprendre le flash (comme je l'ai fait) et qui télécharge, par exemple, ton solitaire, n'y comprendra absolument rien. Ceci non pas parce que c'est mal fait, mais car c'est beaucoup trop éloigner de ce qu'il sait faire et pas suffisement commenté à son goût.
Voilà un peu pourquoi, je me suis décidé dernièrement à déposser une source sur ce site. Je ne te cache pas que tu ne m'encourage pas à poursuivre.
En ce qui concerne le chargement dynamique des images, en ligne, cela fait le loading de l'animation. Tout d'abord, les images ne sont pas chargée au clique, mais dès que l'animation est chargée. Ensuite, il n'est pas possible de cliquer sur une carte dont l'image n'est pas chargée, car elle n'est pas visible. Je n'arrive pas à comprendre pourquoi tu t'acharnes comme ça sur ces images.
Merci pour ton message, je vais changer le niveau en moyen. A plus,
adv
8 mars 2005 à 17:15
Ensuite, je n'avais pas vu que tu avais mis ta source au niveau "débutant". Moi je ne connais aucun débutant qui utilise des prototypes ... moi même qui ne suis pas un expert (mais je suis juste un graphiste, donc c'est excusable) je n'en utilise jamais.
Je mets au défi n'importe quel gars qui fait du flash depuis peu de comprendre et réutiliser ta source ...
Peut-être que pour toi, grand programmeur, ça te semble simple, mais n'oublies pas qu'ici c'est pas le cas.
Peg'
8 mars 2005 à 15:05
je ne trouve pas ta question bête. Je n'ai simplement jamais pensé à la faire. Je pense également que c'est par mimétisme, car je n'ai jamais vu de code qui le faissait.
C'est donc pour moi plus une sugestion qu'une question.
Merci,
adv
8 mars 2005 à 13:52
je pose une peut être quetion bête, mais pourquoi ne pas avoir centralisé toutes les classes ?
@+ et bon code.
8 mars 2005 à 12:16
J'ai fais cette source suite à la lecture d'un message sur le forum où quelqu'un cherchais un memory comme exemple.
Pour répondre à pegase31 :
L’intérêt de charger les images dynamiquement :
- limite le poids du swf
- l'apparition des cartes fait office de loading
- grande facilité d'adaptation pour différents niveaux de jeu avec des images différentes et le nombre de carte également.
Programmation OO:
- 30 x 8 fonctions (c'est de la POO), rien à dire
- structure simple à lire et à comprendre
Pour le dernier point qui concerne l'absence d'animation :
- le but de ma fréquentation de ce site n'est pas de me la peter. Et de recevoir plein de message, magnifique ce jeu, mais je n'arrive malheureusement rien comprendre au code...
- ce code est une base de travail fonctionnel dans le but de peut-être rendre service et de voir une approche différente de l’utilisation de flash.
et enfin, oui je programme dans d'autres langages (Java, VB, Prolog, Ada, ....), mais ça fait un bon moment que je fais du flash.
adv
7 mars 2005 à 22:31
Sinon, question code, je trouve ça bien : c'est programmé OO AS1.
Question animations, il n'y en a pas. C'est pas grave ! C'est pas parce que l'on fait du Flash qu'on est obligé de faire tout bouger ! L'animation pourrait éventuellement être dans les vignettes (si elles sont remplacées par des swfs.
[8/10]
7 mars 2005 à 19:54
Ensuite, ton code est sur chaque clip de cartes, soit 30 x 8 fonctions identiques sur l'animation générale .. n'aurais-tu pas pu faire plus simple et tout mettre sur la frame de base en appellant la Timeline de base ?
Pour ce qui est du jeu, question animation, c'est pauvre .. on a l'impression de se retrouver devant un jeu en Vb de base sans possibilités de faire des animations. Flash peut faire tourver des images, les réduire, faire des fades etc .. utilise ces fonctions, ça ne demande pas plus de poids.
Pour les cartes, tu le laisses pas la possibilité de recliquer sur une image pour la reselectionner si tu trouves un double .. ça t'oblige à retenir la place du double trouvé et d'aller cliquer sur la première puis la seconde qui vient de se retourner ... pas trés pratique.
Bref, un petit jeu fait avec un programme moyennement ficelé et moyennement jouable ...
Peg'
PS: tu programme en un autre langage et tu viens de te mettre à Flash, non ?