LECTURE INVERSÉE (ANIMATION FRAME PAR FRAME)

Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009 - 29 juil. 2006 à 10:34
tomaninho Messages postés 5 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 21 mars 2008 - 11 mars 2008 à 13:45
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/38819-lecture-inversee-animation-frame-par-frame

tomaninho Messages postés 5 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 21 mars 2008
11 mars 2008 à 13:45
Bon code merci
SgTTom Messages postés 1 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 22 février 2008
16 janv. 2008 à 11:22
Bonjour,

en effet ce code marche.
J'aurais seulement une question:
Je suis en train de crééer une présentation en flash.
J'ai plusieurs slide, avec transition sur ma time line.
Je passe du premier au second avec un bouton play() tout simplement.
J'ai mis le code sur la frame du second slide pour revenir sur le premier par la même transition et il s'arrete avec clearInterval( Intervalle ); placé sur la frame du premier slide.

La est le problème, pour retourner ensuite à la deuxième, ça ne marche plus.

Quelqu'un saurais m'aider? merci
tlecoz Messages postés 40 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 9 décembre 2007
23 sept. 2007 à 05:23
"propose la version debutant et la version pour utilisateur experimentés ^^"

Il n'y a pas de version debutant ou experimentée. Il y a une bonne et mauvaise version. Mauvaise parce que tu fabrique une fonction 'precedente' ne fait qu'appeler la fonction 'prevFrame', c'est illogique donc mauvais. Ce n'est pas parce que ca marche au final qu'on peut trouver cela logique. Je pense au contraire que le debutant n'a pas besoin qu'on l'embrouille et qu'il se dise des truc du genre "prevFrame, je ne peux l'utiliser que dans une fonction"
cs_OneWAY Messages postés 19 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 25 septembre 2007
3 avril 2007 à 15:48
Bah... (c'est vieux ce truc)
Le code du bouton (il manque pas de "}"), il faut le mettre, outre sur un bouton, dans une frame qui n'est pas la première et le "clearInterval( Intervalle );" sur la frame où doit s'arrêter le retour en arrière...
Je ne vois pas quoi dire d'autre.
Pancake aux fruits Messages postés 1 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 3 avril 2007
3 avril 2007 à 12:25
Bonjour si j'associe cet AS au bouton ( et apres avoir rajouter un "}" a la fin de code) mon anim (environ 80 images) ne se lit pas à l'envers, en fait rien ne se passe.
Je débute merci pour votre aide.
cs_OneWAY Messages postés 19 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 25 septembre 2007
8 mars 2007 à 23:30
Le code posté fonctionne ! Les messages postés sont des alternatives, mais mon code marche !

(Faudrait tester avant de crier au loup !)
kais_thabet Messages postés 1 Date d'inscription jeudi 29 juin 2006 Statut Membre Dernière intervention 8 mars 2007
8 mars 2007 à 22:49
S'il vous plait, la version finale qui marche mettez le code
Merci
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
23 déc. 2006 à 20:27
var IntervalId:Number = setInterval(prevFrame,80);

je prefere preciser le type personnellement
spidermario Messages postés 121 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 14 mars 2009 1
23 déc. 2006 à 16:17
If faudrait donc faire
var Intervalle=setInterval(prevFrame,80);
spidermario Messages postés 121 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 14 mars 2009 1
23 déc. 2006 à 16:16
OneWay >> setInterval(prevFrame(), 80); ne marche pas à cause des parenthèses, du coup, la fonction prevFrame est appelée puis retourne void, qui est passé en argument à la fonction setInterval au lieu de la fonction prevFrame elle-même.
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
1 août 2006 à 00:08
oui je sait, mais tu devrait mettre ton code version debutant et le sien version experimenter. Sa permettrait a chaqu'un de savoir quel code etudier et utilise selons leur besoin

non?
cs_OneWAY Messages postés 19 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 25 septembre 2007
31 juil. 2006 à 22:33
top30 viens de le faire... Les expérimentés, comme tu dis, n'ont nullement besoin de commentaires... Et puis, je ne diarais pas que son code est d'un niveau expérimenté, il n'est pas très compliqué, mais efficace.
Tant que ça marche, il n'y a aucune raison de se lancer dans du code, en tout cas si Flash est utilisé dans un cadre privé... Après, s'il est du quotidien dans le monde du travail, ce n'est plus le même niveau...
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
31 juil. 2006 à 21:48
propose la version debutant et la version pour utilisateur experimentés ^^
cs_OneWAY Messages postés 19 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 25 septembre 2007
31 juil. 2006 à 21:33
Je suis tout à fait d'accord avec toi (ce n'est pas parce que c'est ma première source que je n'y connais rien. Ton script est bien meilleur, je l'avoue, mais crois-tu qu'un débutant vas y comprendre grand chose... Un "débutant" qui "débute" avec Flash n'y connais rien en AS, donc si tu lui fous un tel truc dans les pattes, il va retourner jouer aux billes...
Faut pas être si méchant avec les nouveaux (je précise que je ne me sens pas viser, je ne pense pas être un débutant, ou alors je me goure).

Encore un qui veut se la péter, mais t'as raison, tu montres ce que tu sais faire...



"Moins t'as de confiture, plus tu l'étale"
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
31 juil. 2006 à 20:42
function rewind( mcTarget, nFrame )
{
clearInterval( mcTarget.interval ) ;
//
if ( mcTarget._currentframe != nFrame||1 ) {
mcTarget.interval = setInterval( mcTarget, "prevFrame", 50 ) ;
}
}

monClipTest.gotoAndStop(50) ;
rewind( monClipTest, 10 ) ;
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
29 juil. 2006 à 13:49
(petit details, pour les commentaire long utilie /* */)

Bon le code ne me sera pas specialement utilise et il est bien commenter et assez court. En meem temps c'est pas tres dure vu la longueur mais bon. Sources qui servira au debutant pour gerer les frames, 8/10 (note relative au niveau de la source bien sur)
cs_OneWAY Messages postés 19 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 25 septembre 2007
29 juil. 2006 à 13:46
je reprend mon code :

function precedente() { prevFrame(); }
var Intervalle;
Intervalle = setInterval (precedente, 80);


Je n'ai qu'une ligne de plus, et deux ou trois, ca fatiguerai qui...
Tu remarqueras le "var Intervalle" et le "Intervalle = ..."
Il faut définir cette variable et lui affilier la valeur setInterval(...)

car "clearInterval();", ça ne fonctionne pas, il lui faut une variable à effacer (donc stopper).
clearInterval( Intervalle ); reprend le nom de la variable définit plus haut.

clearInterval(...) est nécessaire, même obligatoire, car son abscence accompagnerait celle de l'arrêt...
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
29 juil. 2006 à 13:33
si il faut une fonction, alors

function Frame_precedente() { return prevFrame(); };
setInterval(Frame_precedente(), 80);
cs_OneWAY Messages postés 19 Date d'inscription jeudi 13 juillet 2006 Statut Membre Dernière intervention 25 septembre 2007
29 juil. 2006 à 13:25
Cette présentation est faite telle, pour les débutants, j'ai utilisé la fonction setInterval comme elle est présenté dans l'aide du logiciel, pour qu'il s'y retrouve plus facilement.

J'ai faillit répondre "oui, bien évidement" à cette question, mais j'ai tésté...
Comme toi, je pensais que c'était possible, mais l'intervalle n'agit pas, et je ne comprends pas pourquoi...
L'aide précise un usage : setInterval(NomDeFonction, intervalle [, param1, param2, ..., paramN])
et rajoute NomDeFonction : Un nom de fonction ou une référence à une fonction anonyme.
C'est l'"anonyme" qui me fait penser que toute fonction "reconnue" par Flash, ne fonctionnera pas ("reconnue" = en bleu).

Mais de toute façon, je rédige mon code, quelque soit le langage, d'une seule façon :
Je définis les constantes, les variables, les fonctions qui seront utilisées, ensuite je code.
C'est juste pour une plus grande clarté.
Sannazzarotiti Messages postés 228 Date d'inscription jeudi 1 septembre 2005 Statut Membre Dernière intervention 12 avril 2009
29 juil. 2006 à 10:34
en une ligne sa ne marche pas?

setInterval(prevFrame(), 80);
Rejoignez-nous