Ce que tu peux faire c'est un seul flash, qui choisi aléatoirement un gagnant ou un perdant (avec la probabilité de ton choix) :
if (Math.random() < 0.1)
var gagnant:Boolean = true;
else
var gagnant:Boolean = false;
par exemple, va rendre "gagnant" égal à true 1 fois sur 10.
Dès que le joueur commence à gratter, tu envoies le résultats à la base de données, tout simplement. Si l'utilisateur ne gratte que 10% mais que ces 10% suffisent pour savoir si on a perdu ou gagné, ça serait stupide de le forcer à gratter jusqu'au bout !
Pour le grattage, tu fais un clip qui représente la zone à gratter (une surface jaune quoi...), ensuite, quand l'utilisateur gratte, tu le fait dessiner sur un MASQUE, qui va masquer le clip où est afficher le texte "gagné" ou "perdu". (va voir du côté de MovieClip.setMask())
Suppose que la zone à gratter face 100x100.
Tu fais un autre clip "mc_jaune", de 100x100, remplie d'un carré de 100x100 jaune.
Tu places ce clip sur la scène.
Tu fais un clip "mc_txt" de 100x100 avec marqué 'perdu' ou 'gagné' selon la valeur de 'gagnant' (voir plus haut)
Ce clip, tu le poses sur par dessus "mc_jaune".
Ensuite tu fais un clip "mc_masque" de 100x100, vide.
Tu places ce clip aux mêmes coordonées que "mc_txt".
Dans ton code ActionScript, tu transforme "mc_masque" en MASQUE pour "mc_txt" :
=> mc_txt.setMask(mc_masque); // A vérifier, manque peut-être des guillemets
Il ne reste plus qu'à faire la fonction permettant de "peindre" dans le clip "mc_masque". Comme celui-ci est vide au début, on ne verra rien du clip "mc_txt". Si l'utilisateur dessine quelque chose dans le clip, on verra cette empreinte dans le clip "mc_txt" et rien d'autre. On aura donc l'impression que le clip "mc_jaune" est effacé (en fait, il n'est rien ;)).
Courage :)
Donc :
- 1 seul fichier SWF (donc pas de petit malin pour deviner lequel est gagnant)
- Dès que l'utilisateur commence à gratter, envoyer le résultar à la BDD
- Se servir d'un masque pour simuler le grattage