Je dois ajouter les deux fonctionnalités Redo (ctr+y) et Undo (ctr+z) à une application Flash, et j'avoue ne pas savoir par quoi commencé:oops:
Si quelqu'un a une piste, je suis preneur.
Merci
Version imprimable
Je dois ajouter les deux fonctionnalités Redo (ctr+y) et Undo (ctr+z) à une application Flash, et j'avoue ne pas savoir par quoi commencé:oops:
Si quelqu'un a une piste, je suis preneur.
Merci
une chose sur laquel je m'etais renseigne est le faite de "combiner" deux touche...ctrl+z et ctrl+y pour ton cas...je ne retrouve plus le forum ou c'etait ecrit, donc je te le repete :
la personne disait de faire un tableau, dans lequel tu rentres toutes les nouvelles touches qui sont pressees...si une de ces touches est relachees, tu dois la supprimer de ton tableau...apres tu regardes toutes les touches qui se dedans, et si il reste que ctrl et z ou y, tu peux faire ton undo et redo...
perso j'ai pas tente, ca me parraissait beaucoup trop complique pour une chose si simple...tu est vraiment oblige de combiner deux touches ?
pour le reste, di nous en quoi consiste ton application, on pourra peut etre te donner des pistes pour commencer...:roll:
Merci d'abord,
Mon application consiste en la mise en oeuve d'un outil de dessin de cartes de visites en ligne, donc je dois faire un outil texte, redo undo, ajout d'images, dessin....
J'ai tout juste fini l'outil texte, et je veux entamer le Redo et le Undo, je n'ai pas besoin de combiner deux touches, je voulais juste bien expliquer ce ke je veux.
J'ai deja entendu parler de cette hsitoire de tableau qui m'a un peu 'choqué' étant donné ca complexité...
Si vous avez des pistes a me donner, je vous serais reconnaissant.
Merci d'avance
bonjour,
rien ne t'empeche donc de faire des touches explicites redo undo (des boutons) par contre l'implementation va dépendre de combien de undo successifs possibles et sur quelles opérations de ton animation ??
:?
Je ne sais pas encore concernat l'historique que je veux sauver (ca depend de ce que voudrait le client).
Le undo et redo doivent agir sur tous mon espace de travail (comme sur tous les logiciels), par exemlpe annuler un ajout de texte ou la supression d'une image....
je suis sur une piste qui me semble bonne, mais je ne sais pas commentt sauver mes etats:
Ma classe contiendra ,a priori, les methodes suivantes:
save, upDate, undo ( elle decrementera le niveau dans le tableau d'historique), redo (elle incrementera le niveau).
Mon probleme c'est comment mettre en oeuvre la sauveragrde des etats de mon espace de travail (qui contient un carte, des textes rajoutés, des images, des dessins.....donc differents objets de differentes classes).
J'espere avoir ete clair. Merci pour votre aide
je suppose que tout se fera par l'intermediaire de boutons, j'entends par la que pour créer un texte, il faudra cliquer sur un bouton pour selectionner l'outil texte...ce clic peut deja te donner le type de donnée qu'il faudra effacer ou supprimer par la suite, que tu peux sauvegarder dans un premier tableau...
ensuite, chose qui est plus difficile (je crois), c'est de savoir quel est la manipulation faite...si c'est une création de texte, insertion d'image, tu peux le savoir grace au nom du clip, ou de la zone de texte...pour le déplacement d'un objet sur la carte, ce qu'il faut que tu fasses c'est enregistrer les coordonnées de départ et d'arrivée...de meme pour le redimmensionnement...
je pense que le plus facile serait de passer par le xml...comme ca tu pourrais sauvegarder tes données de facon structurée :
c'est juste un exemple, apres, a toi de voir ce que tu dois sauvegarder afin de bien définir ton action...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <undoredo> <action> <objet>nom de l'objet</objet> <type>type de l'objet</type> <coordonnees x='200' y='200' /> <taille width='200' height='200' /> </action> <action> <objet>nom de l'objet</objet> <type>type de l'objet</type> <coordonnees x='200' y='200' /> <taille width='200' height='200' /> </action> </undoredo>
Une petite remarque avant que la question arrive : ce xml enregistre toutes actions, ca veut dire que si tu veux faire un undo, il faut remonter a la derniere action faite sur un clip...
J'illustre par un exemple (au cas ou):
- action 1 : tu deplaces le clip 32
- action 2 : tu inseres une image
- action 3 : tu redimmensionne le clip 32
et la tu fais un undo...dans ce cas, tu regardes la derniere action effectuée. tu trouves que c'est sur le clip 32...il faut que tu recherche dans ce cas l'avant derniere action faite sur le clip 32 (ici, le deplacement...) et il faut que tu remettes le clip 32 avec les memes propriétés que celles qu'il avait apres le deplacement...c'est assez clair ? :?
sinon tu peux utiliser un tableau en 2D ... genre chaque ligne est une action, et chaque colonne définit ce que tu souhaites enregistrer... le principe de recherche de la derniere action est le meme que celui que j'ai expliqué juste avant...
Ce que je te dis, je ne l'ai jamais fait, je ne sais pas si c'est le plus simple, mais c'est ce que j'essayerais a ta place...:roll:
une derniere precision : tu ne peux pas ecrire directement dans un fichier xml en actionscript, il te faut passer par un language tel que le php...moi qui veut faire un forum en flash et qui n'ai aucune connaissance en php, ca me fait bien chlup :(
Tu confirmes ce que j'ai commencé à faire. Merci pour tes précision.
Le probleme que j'ai rencontré est que j'ai du extendre la classe XMLNode en ajoutant des methodes qui y n'existent pas comme getElement ByTagName ou bien getElementsByAttrValue, qui me permetteront de trouver mes elements dans mon arborescence et de les travailler.
Je posterai une reponse ici une fois ce serait fait et si ca marche.
Merci encore tt le monde