tlecoz
Messages postés40Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention 9 décembre 2007 19 sept. 2007 à 21:40
Je viens de mater la source, c'est cool d'avoir pris le temps de faire un exemple au niveau du _root et au niveau d'un clip
Merci pour les futurs lecteurs/flasheur qui passeront par là
cedriclomb
Messages postés275Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 avril 20101 19 sept. 2007 à 21:38
Lidée de laisser le code en place etait de permettre au ges de comprendre la discussions dans 6 mois mais bon je v le virer
tlecoz
Messages postés40Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention 9 décembre 2007 19 sept. 2007 à 21:21
Je sais pas pourquoi le code affiché sur la page est resté tel quel puisqu'au final c'est mon code qui est dans la source maintenant, et qu'il est (je pense) bien mieux codé.
Sans vouloir te voler la vedette cedriclomb, mais ce n'est pas utile de presenter un code pour presenter un code. L'idée c'est qd meme d'aporter un code utile pour les autres, non ?
Enfin, cela dit, ca m'empeche pas de dormir :)
cedriclomb
Messages postés275Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 avril 20101 19 sept. 2007 à 21:15
Pour ce qui est des source j'avais pas fais gaffe
sinon por le enterFrame sur un object je te signe que MovieClip est un objet donc ca ne me pause aucun problème
normalRead(elem:Object) {
Bien sur que si qu'il se relit normalement puisque tu arrete de l'obliger a remonter il repard dans le bon sens
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 19 sept. 2007 à 21:06
"...function rewind(elem:Object) {
elem.onEnterFrame = function() {..."
Tu as déjà vu un "enterFrame" sur un Object toi ?
"...function normalRead(elem:Object) {
delete elem.onEnterFrame;..."
OK, en imaginant que elem est un MovieClipm tu arrètes effectivement TA lecture, mais le clip ne se met pas pour autant à se lire de facon normal...
perso, pauvre et mal encodé
[3/10]
cedriclomb
Messages postés275Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 avril 20101 17 sept. 2007 à 14:33
Merci tlecoz j'ai mis ton code dans le zip avec un exemple et laissé le miens dans la zone code.
tlecoz
Messages postés40Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention 9 décembre 2007 17 sept. 2007 à 07:11
Hello,
Désolé de mettre mon grain de sel, mais le coup du _currentframe-2 ne me semble pas tres logique.
Du coup, j'ai essayé de faire un petit code simple qui marche dans tout les cas de figure. L'ideal aurait été de faire une classe, mais il est 6 h00 du mat' je reviens de soirée, j'avais la flemme.
J'ai donc fait un prototype (au final, c'est comme une classe extends MovieClip, mais ca s'ecrit plus à l'arrache). J'ai ajouté un evenement 'onChangeSens' qui s'active quand l'animp change de sens.Le code peut sembler un peu long, mais c'est parce qu'il gere tout les cas de figures :
//isNormalRead ---> Booleen , si true --> sens normal, si false --> reverse
//isLoop ---> Booleen , si true --> ca tourne en boucle, si false, ca tourne pas en boucle
MovieClip.prototype.anim = function(isNormalRead,isLoop){
if(isNormalRead == undefined){
//si la variable est indefini , on la definie
isNormalRead = true;
}
if(isLoop == undefined){
//si la variable est indefini , on la definie
isLoop = false;
}
if(this.readType!=isNormalRead){
//si le sens de lecture actuelle est different de celui qu'on veut appliquer
this.readType = isNormalRead;
//on change le sens de lecture actuelle
this.onChangeSens();
//et on active l'evenement onChangeSens
}
if(this.oef == undefined){
//si le clip 'oef' qui va contenir le onEnterFrame n'existe pas, on le construis
this.oef = this.createEmptyMovieClip("oef",this.getNextHighestDepth());
}
if(this.oef.onEnterFrame != undefined){
//si le onEnterFrame present dans le clip oef est actif
delete this.oef.onEnterFrame;
//on le casse, car un onEnterFrame qui dure trop longtemps prend bizarement plus de
//ressource que si on le casse de temps en temps (quitte a le redeclencher
//immediatement apres,c'est ce qu'on fait en l'occurence). Il y a trop peu de
//ressources en flash pour etre avare sur l'optimisation.
}
var th = this;
//je stocke la valeur de this dans une variable pour eviter les probleme de ciblage car
//dans le onEnterFrame, this correspondra à this.oef, et 'th' est beaucoup moins long a
//ecrire que this._parent. Par ailleur cela prend moins de ressource, car lorque j'ecris
//this._parent, je fais une evaluation, alors que ma variable 'th' stocke directement le
//resultat de cette evaluation, et puisqu'on va s'en servir plusieur fois, c'est bcp plus
//optimisé de faire comme cela (dans le sens ou cette evaluation se trouve en dehors du
//onEnterFrame, et n'est donc effectué qu'une fois).Bref c'est mieux à tout point de vue ^^
this.oef.onEnterFrame = function(){
if(!th.readType){
//si on va dans le sens inverse
if(th._currentframe > 1){
//et que l'image actuelle est superieur a la premiere
th.prevFrame();
//on recule d'une image
}else{
//sinon
if(!isLoop){
//si l'anim ne tourne pas en boucle
delete this.onEnterFrame;
//on casse le onEnterFrame;
}else{
//si l'anim tourne en boucle
th.readType = !th.readType;
//on permute le sens de lecture actuelle
th.onChangeSens();
//et on active l'evenement onChangeSens
}
}
}else {
//si on va dans le sens normal
if(th._currentframe != th._totalframes){
//et qu'on est pas arrivé a la derniere image
th.nextFrame();
//on avance d'une image
}else{
//sinon
if(!isLoop){
//si l'anim ne tourne pas en boucle
delete this.onEnterFrame;
//on casse le onEnterFrame;
}else{
//si l'anim toune en boucle
th.readType = !th.readType;
//on permute le sens de lecture
th.onChangeSens();
//et on active l'evenement onChangeSens;
}
}
}
}
}
//on initiale la valeur correspondant au sens de lecture actuelle (pour que l'evenement
//onChangeSens fonctionne correctement.
if(this.readType == undefined){
//je verifie si elle est undefined, car il ne faudrait pas que cette valeur se remette sur true des qu'on arrive a l'image 1
this.readType = true;
}
//je definis l'evenement onChangeSens comme n'importe quel evenement :
_root.onChangeSens = function(){
if(this.readType){
trace("changemenet de sens --> lecture normale");
}else{
trace("changemenet de sens --> lecture inversée");
}
}
//au niveau des bouton ca donne ca :
//pour reverse :
on(release){
_root.anim(false,false);
}
//pour le sens normal :
on(release){
_root.anim(true,false);
}
//pour le pingpong :
on (release) {
if(_root.readType){
_root.anim(false,true);
}else{
_root.anim(true,true);
}
}
Voila ! ^^
Je precise que ce code fonctionne partout, pas uniquement sur _root, mais sur n'importe quel clip contenant une animation.
En esperant avoir aidé certains.
++
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 16 sept. 2007 à 21:02
J'entend pas la valeur de onEnterFrame son contenu. Récupéré le contenu de la fonction et l'éditer.
Si on peut l'éditer alors il suffira d'y intégrer ton script.
Enfin pour la dernière idée :
Au chargement de l'anim on créer un movie clip sur la scène mais pas besoin de mettre quelque chose dedans. L'important c'est ensuite de lui associé un onEnterFrame pour faire tourner ta boucle (c'est ce que l'on recherche)
Dela lors l'utlisateur voudra modifier la lecture d'un clip il faudra qu'il appel une certaine fonction et fournisse le nom du clip (attention au chemin cible, le mieux serai de demander à fournir depuis _root)
Aussi dans un soucis de maniement pour le rendre plus facile. Au lieu d'avoir une fonction pour chaque mode de lecture pourquoi ne pas les rassembler en une seul et d'y ajouter un paramètre permettant de sélectionner le mode de lecture.
Ainsi une seule fonctio a retenir et le nom du mode de lecture à choisir (sans oublier le nom du clip)
Plus facile à intégrer d'ailleur (fonction à placer sur _root avec le script de création de clip pour y ajouter le onEnterFrame (cf début de message)
Voila voila
Blacknight
cedriclomb
Messages postés275Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 avril 20101 16 sept. 2007 à 18:37
Quote :
Oui oui nous ne mettons pas en doute l'utilité de ton animation bien au contraire, nous esseyons de t'aider à ce qu'elle soit plus adaptable.
J'avais bien compris !!
Il n'est pas possible je crois de récupéré la cadence de lecture de ton animation.==>Oh si ca c'est fesable a mon avis y'a surment une propriété, je vais emlucher la doc :p
Quote :
Est t'il possible de récupéré la valeur du onEnterFrame ?
Tu veus dire quoi ??
Tu fais ce comment ?
Dans le genre si on fait un trace de la fonction, cela ne retourne rien ? Dans le cas contraire il suffirai de modifier le contenu de la fonction et d'y ajouter dynamiquement ton script.
Cela me parrait un peu plus réalisable mais des tests snt nécéssaire.
Pour la derniere partie j'arrive franchement pas a visualiser ton idée
Pour ce qui est des problèmes connus, je vais ajouter l'impossibilité de lire les onEnterFrame placé dans les clips a l'envers a moins que tu ais une idée pour ca, mais la franchement j'ai pas le niveau :(
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 16 sept. 2007 à 18:21
Oui oui nous ne mettons pas en doute l'utilité de ton animation bien au contraire, nous esseyons de t'aider à ce qu'elle soit plus adaptable.
Dans le cas où nous ne trouverions pas de solution on onEnterFrame (ce dont je doute quand même) pense à avertir les utilisateurs de ce défaut/problème.
Alors pour remplacer le onEnterFrame.
Il n'est pas possible je crois de récupéré la cadence de lecture de ton animation.
Mais ce que tu pourrais faire c'est un test. Malheuresement cela mangerai 2 frames... Un peu aléatoire comme méthode et surtout plus compliqué.
Bref si tu veux essayer :
Il faudrai éxécuter deux timer dans chaque frame pour tester la vitesse d'éxécution. Le problème également serai que s'il y a du code dans une autre frame cela augmenterai l'interval entre les deux timer.
Donc solutions à ne pas envisager !
Autre solution :
Est t'il possible de récupéré la valeur du onEnterFrame ?
Dans le genre si on fait un trace de la fonction, cela ne retourne rien ? Dans le cas contraire il suffirai de modifier le contenu de la fonction et d'y ajouter dynamiquement ton script.
Cela me parrait un peu plus réalisable mais des tests snt nécéssaire.
Dans le pire des cas il suffirai de créer un clip dynamiquement, invisible qui comporterai le onEnterFrame et ciblerai les clip en lui transmettant le nom.
Il y aurai donc une phase de chargement à créer.
La plus besoin de setInterval et l'utilisateur n'aurait pas grand chose à faire pour intégrer le script.
Creuse cette dernière idée, elle me semble la plus facile à réalisé.
Blacknight
cedriclomb
Messages postés275Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 avril 20101 16 sept. 2007 à 13:02
Le problème avec le setInterval c'est qu'il faut que l'interval soit calculé en fonction de la vitesse de lecture, et si je ne veux pas avoir de décalage mathématique il faut qu'il soit calé sur la vitesse du enterFrame.
De plus si je recule les frames physique les enterFrame AS décrite par Girou ne seront jamais réinverser, mais apres, je pense que la technique pour parer tout ces problème, c'est de bien penser son anim et de calculer ses clips en fonction car je rappelle que ces fonction n'agisse que sur un element et donc si c'est le clip qui est dans le clip ca marche aussi. Du style su un site tu fait un papier qui se déroule bah pour le renrouler ta deux solution ou tu copie les images et tu ls recollent en sens inverse, mais dès que tu modifie un mouvement faut pas zappé l'autre, sinon tu applique la fonction rewind.
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 16 sept. 2007 à 12:53
Bonjour,
Cela expliquerai donc le _currentframe-2
Cependant avec un setInterval tu n'aurait peut être plus ce problème. A voir.
Blacknight
cedriclomb
Messages postés275Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention27 avril 20101 16 sept. 2007 à 12:33
Bonjour,
Blacknight91titi : Bien sur que je connais prevFrame, mais la si tu fais prevFrame tu a un stop car au moment du onEnterFrame tu est déja sur la suivante
Pour les sons si tu veux lire le sons a l'endroit tu n'a qua renrouler un lcip, l'idée c'est que tu peux avoir un clip a l'endroit et l'autre à l'envers et un autre en pingpong (il suffit de bien choisir ta cible)
Girou : Effectivement le setInterval n'est pas con mais on pense pas a tout quand on a une idée et une réalisation faite en 5 minutes :D Je vais voir ce que je peux faire.
cs_mehs
Messages postés1Date d'inscriptiondimanche 16 septembre 2007StatutMembreDernière intervention16 septembre 2007 16 sept. 2007 à 05:23
slt a tt le monde
bon voila la verité : je ss tré deubtant en flash , en fait je ss nul .alors si kelk1 peu m'aidé pr faire ma premiere pa (n'importe cmt)je serai vraimen ...
svp aidééé moi
cs_Girou
Messages postés1203Date d'inscriptionlundi 10 mars 2003StatutMembreDernière intervention23 juillet 20092 15 sept. 2007 à 09:16
Hello,
j'avais également remarqué cette source mais je n'avais pas fait de commentaires.
Blacknight91titi a bien résumé mon avis mais je voudrais ajouter ceci :
Je pense qu'il ne faudrait pas fonctionner avec le onEnterFrame mais avec un setInterval() et cela pour la raison que si on veux appliquer un effet rewind() sur un clip qui a déjà des actions sur le onEnterFrame() ce qui est un cas assez courrant et ben, le rewind va tout simplement ecraser l'ancienne fonction...
P.S. a vérifier avec le setInterval() si il n'y a pas moyen d'accélérer ou de ralentir la lecture de l'animation... ce serait fun :o)
@+
Girou
Blacknight91titi
Messages postés1732Date d'inscriptionjeudi 17 juin 2004StatutMembreDernière intervention 9 mars 20152 14 sept. 2007 à 19:50
Bonjour,
Je n'aurai pas le temps de faire un détailler cette fois ci donc sa ne sera qu'une réaction a l'aperçu du swf.
Je trouve l'idée très original. On connaissait la source postée il y a de cela quelques temps qui permettait de lire un clip a une certaine vitesse mais la création de ces fonctions permettants de lire un clip de divers façon me plait assez.
Et comme tu l'a précisé cela permet de ne pas créer d'animation de "retour" ou divers autre application.
Par contre au niveau du code.. Je crois qu'il y aura quelques truc à revoir. N'a tu jamais entendu parler des fonctions prevFrame() et nextFrame() ? Cela te sera beaucoup plus utile.
Problème de ce code à noter : Pour les sons ce n'est pas évident, il sera lu dans le sens inverses (tout dépend de la manière avec laquelle il est placé/lu dans les frames)
Blacknight
Note : 10/10 pour l'idée mais -1 pour le code (que j'espère te voir corriger) donc un total de 9/10. Bonne continuation
19 sept. 2007 à 21:40
Merci pour les futurs lecteurs/flasheur qui passeront par là
19 sept. 2007 à 21:38
19 sept. 2007 à 21:21
Sans vouloir te voler la vedette cedriclomb, mais ce n'est pas utile de presenter un code pour presenter un code. L'idée c'est qd meme d'aporter un code utile pour les autres, non ?
Enfin, cela dit, ca m'empeche pas de dormir :)
19 sept. 2007 à 21:15
sinon por le enterFrame sur un object je te signe que MovieClip est un objet donc ca ne me pause aucun problème
normalRead(elem:Object) {
Bien sur que si qu'il se relit normalement puisque tu arrete de l'obliger a remonter il repard dans le bon sens
19 sept. 2007 à 21:06
http://www.flashkod.com/code.aspx?ID=44128
et plus vieux :
http://www.flashkod.com/codes/COMMANDE-REWIND-FLASH-FLASH-MX_13813.aspx
"...function rewind(elem:Object) {
elem.onEnterFrame = function() {..."
Tu as déjà vu un "enterFrame" sur un Object toi ?
"...function normalRead(elem:Object) {
delete elem.onEnterFrame;..."
OK, en imaginant que elem est un MovieClipm tu arrètes effectivement TA lecture, mais le clip ne se met pas pour autant à se lire de facon normal...
perso, pauvre et mal encodé
[3/10]
17 sept. 2007 à 14:33
17 sept. 2007 à 07:11
Désolé de mettre mon grain de sel, mais le coup du _currentframe-2 ne me semble pas tres logique.
Du coup, j'ai essayé de faire un petit code simple qui marche dans tout les cas de figure. L'ideal aurait été de faire une classe, mais il est 6 h00 du mat' je reviens de soirée, j'avais la flemme.
J'ai donc fait un prototype (au final, c'est comme une classe extends MovieClip, mais ca s'ecrit plus à l'arrache). J'ai ajouté un evenement 'onChangeSens' qui s'active quand l'animp change de sens.Le code peut sembler un peu long, mais c'est parce qu'il gere tout les cas de figures :
//isNormalRead ---> Booleen , si true --> sens normal, si false --> reverse
//isLoop ---> Booleen , si true --> ca tourne en boucle, si false, ca tourne pas en boucle
MovieClip.prototype.anim = function(isNormalRead,isLoop){
if(isNormalRead == undefined){
//si la variable est indefini , on la definie
isNormalRead = true;
}
if(isLoop == undefined){
//si la variable est indefini , on la definie
isLoop = false;
}
if(this.readType!=isNormalRead){
//si le sens de lecture actuelle est different de celui qu'on veut appliquer
this.readType = isNormalRead;
//on change le sens de lecture actuelle
this.onChangeSens();
//et on active l'evenement onChangeSens
}
if(this.oef == undefined){
//si le clip 'oef' qui va contenir le onEnterFrame n'existe pas, on le construis
this.oef = this.createEmptyMovieClip("oef",this.getNextHighestDepth());
}
if(this.oef.onEnterFrame != undefined){
//si le onEnterFrame present dans le clip oef est actif
delete this.oef.onEnterFrame;
//on le casse, car un onEnterFrame qui dure trop longtemps prend bizarement plus de
//ressource que si on le casse de temps en temps (quitte a le redeclencher
//immediatement apres,c'est ce qu'on fait en l'occurence). Il y a trop peu de
//ressources en flash pour etre avare sur l'optimisation.
}
var th = this;
//je stocke la valeur de this dans une variable pour eviter les probleme de ciblage car
//dans le onEnterFrame, this correspondra à this.oef, et 'th' est beaucoup moins long a
//ecrire que this._parent. Par ailleur cela prend moins de ressource, car lorque j'ecris
//this._parent, je fais une evaluation, alors que ma variable 'th' stocke directement le
//resultat de cette evaluation, et puisqu'on va s'en servir plusieur fois, c'est bcp plus
//optimisé de faire comme cela (dans le sens ou cette evaluation se trouve en dehors du
//onEnterFrame, et n'est donc effectué qu'une fois).Bref c'est mieux à tout point de vue ^^
this.oef.onEnterFrame = function(){
if(!th.readType){
//si on va dans le sens inverse
if(th._currentframe > 1){
//et que l'image actuelle est superieur a la premiere
th.prevFrame();
//on recule d'une image
}else{
//sinon
if(!isLoop){
//si l'anim ne tourne pas en boucle
delete this.onEnterFrame;
//on casse le onEnterFrame;
}else{
//si l'anim tourne en boucle
th.readType = !th.readType;
//on permute le sens de lecture actuelle
th.onChangeSens();
//et on active l'evenement onChangeSens
}
}
}else {
//si on va dans le sens normal
if(th._currentframe != th._totalframes){
//et qu'on est pas arrivé a la derniere image
th.nextFrame();
//on avance d'une image
}else{
//sinon
if(!isLoop){
//si l'anim ne tourne pas en boucle
delete this.onEnterFrame;
//on casse le onEnterFrame;
}else{
//si l'anim toune en boucle
th.readType = !th.readType;
//on permute le sens de lecture
th.onChangeSens();
//et on active l'evenement onChangeSens;
}
}
}
}
}
//on initiale la valeur correspondant au sens de lecture actuelle (pour que l'evenement
//onChangeSens fonctionne correctement.
if(this.readType == undefined){
//je verifie si elle est undefined, car il ne faudrait pas que cette valeur se remette sur true des qu'on arrive a l'image 1
this.readType = true;
}
//je definis l'evenement onChangeSens comme n'importe quel evenement :
_root.onChangeSens = function(){
if(this.readType){
trace("changemenet de sens --> lecture normale");
}else{
trace("changemenet de sens --> lecture inversée");
}
}
//au niveau des bouton ca donne ca :
//pour reverse :
on(release){
_root.anim(false,false);
}
//pour le sens normal :
on(release){
_root.anim(true,false);
}
//pour le pingpong :
on (release) {
if(_root.readType){
_root.anim(false,true);
}else{
_root.anim(true,true);
}
}
Voila ! ^^
Je precise que ce code fonctionne partout, pas uniquement sur _root, mais sur n'importe quel clip contenant une animation.
En esperant avoir aidé certains.
++
16 sept. 2007 à 21:02
Si on peut l'éditer alors il suffira d'y intégrer ton script.
Enfin pour la dernière idée :
Au chargement de l'anim on créer un movie clip sur la scène mais pas besoin de mettre quelque chose dedans. L'important c'est ensuite de lui associé un onEnterFrame pour faire tourner ta boucle (c'est ce que l'on recherche)
Dela lors l'utlisateur voudra modifier la lecture d'un clip il faudra qu'il appel une certaine fonction et fournisse le nom du clip (attention au chemin cible, le mieux serai de demander à fournir depuis _root)
Aussi dans un soucis de maniement pour le rendre plus facile. Au lieu d'avoir une fonction pour chaque mode de lecture pourquoi ne pas les rassembler en une seul et d'y ajouter un paramètre permettant de sélectionner le mode de lecture.
Ainsi une seule fonctio a retenir et le nom du mode de lecture à choisir (sans oublier le nom du clip)
Plus facile à intégrer d'ailleur (fonction à placer sur _root avec le script de création de clip pour y ajouter le onEnterFrame (cf début de message)
Voila voila
Blacknight
16 sept. 2007 à 18:37
Oui oui nous ne mettons pas en doute l'utilité de ton animation bien au contraire, nous esseyons de t'aider à ce qu'elle soit plus adaptable.
J'avais bien compris !!
Il n'est pas possible je crois de récupéré la cadence de lecture de ton animation.==>Oh si ca c'est fesable a mon avis y'a surment une propriété, je vais emlucher la doc :p
Quote :
Est t'il possible de récupéré la valeur du onEnterFrame ?
Tu veus dire quoi ??
Tu fais ce comment ?
Dans le genre si on fait un trace de la fonction, cela ne retourne rien ? Dans le cas contraire il suffirai de modifier le contenu de la fonction et d'y ajouter dynamiquement ton script.
Cela me parrait un peu plus réalisable mais des tests snt nécéssaire.
Pour la derniere partie j'arrive franchement pas a visualiser ton idée
Pour ce qui est des problèmes connus, je vais ajouter l'impossibilité de lire les onEnterFrame placé dans les clips a l'envers a moins que tu ais une idée pour ca, mais la franchement j'ai pas le niveau :(
16 sept. 2007 à 18:21
Dans le cas où nous ne trouverions pas de solution on onEnterFrame (ce dont je doute quand même) pense à avertir les utilisateurs de ce défaut/problème.
Alors pour remplacer le onEnterFrame.
Il n'est pas possible je crois de récupéré la cadence de lecture de ton animation.
Mais ce que tu pourrais faire c'est un test. Malheuresement cela mangerai 2 frames... Un peu aléatoire comme méthode et surtout plus compliqué.
Bref si tu veux essayer :
Il faudrai éxécuter deux timer dans chaque frame pour tester la vitesse d'éxécution. Le problème également serai que s'il y a du code dans une autre frame cela augmenterai l'interval entre les deux timer.
Donc solutions à ne pas envisager !
Autre solution :
Est t'il possible de récupéré la valeur du onEnterFrame ?
Dans le genre si on fait un trace de la fonction, cela ne retourne rien ? Dans le cas contraire il suffirai de modifier le contenu de la fonction et d'y ajouter dynamiquement ton script.
Cela me parrait un peu plus réalisable mais des tests snt nécéssaire.
Dans le pire des cas il suffirai de créer un clip dynamiquement, invisible qui comporterai le onEnterFrame et ciblerai les clip en lui transmettant le nom.
Il y aurai donc une phase de chargement à créer.
La plus besoin de setInterval et l'utilisateur n'aurait pas grand chose à faire pour intégrer le script.
Creuse cette dernière idée, elle me semble la plus facile à réalisé.
Blacknight
16 sept. 2007 à 13:02
De plus si je recule les frames physique les enterFrame AS décrite par Girou ne seront jamais réinverser, mais apres, je pense que la technique pour parer tout ces problème, c'est de bien penser son anim et de calculer ses clips en fonction car je rappelle que ces fonction n'agisse que sur un element et donc si c'est le clip qui est dans le clip ca marche aussi. Du style su un site tu fait un papier qui se déroule bah pour le renrouler ta deux solution ou tu copie les images et tu ls recollent en sens inverse, mais dès que tu modifie un mouvement faut pas zappé l'autre, sinon tu applique la fonction rewind.
16 sept. 2007 à 12:53
Cela expliquerai donc le _currentframe-2
Cependant avec un setInterval tu n'aurait peut être plus ce problème. A voir.
Blacknight
16 sept. 2007 à 12:33
Blacknight91titi : Bien sur que je connais prevFrame, mais la si tu fais prevFrame tu a un stop car au moment du onEnterFrame tu est déja sur la suivante
Pour les sons si tu veux lire le sons a l'endroit tu n'a qua renrouler un lcip, l'idée c'est que tu peux avoir un clip a l'endroit et l'autre à l'envers et un autre en pingpong (il suffit de bien choisir ta cible)
Girou : Effectivement le setInterval n'est pas con mais on pense pas a tout quand on a une idée et une réalisation faite en 5 minutes :D Je vais voir ce que je peux faire.
16 sept. 2007 à 05:23
bon voila la verité : je ss tré deubtant en flash , en fait je ss nul .alors si kelk1 peu m'aidé pr faire ma premiere pa (n'importe cmt)je serai vraimen ...
svp aidééé moi
15 sept. 2007 à 09:16
j'avais également remarqué cette source mais je n'avais pas fait de commentaires.
Blacknight91titi a bien résumé mon avis mais je voudrais ajouter ceci :
Je pense qu'il ne faudrait pas fonctionner avec le onEnterFrame mais avec un setInterval() et cela pour la raison que si on veux appliquer un effet rewind() sur un clip qui a déjà des actions sur le onEnterFrame() ce qui est un cas assez courrant et ben, le rewind va tout simplement ecraser l'ancienne fonction...
P.S. a vérifier avec le setInterval() si il n'y a pas moyen d'accélérer ou de ralentir la lecture de l'animation... ce serait fun :o)
@+
Girou
14 sept. 2007 à 19:50
Je n'aurai pas le temps de faire un détailler cette fois ci donc sa ne sera qu'une réaction a l'aperçu du swf.
Je trouve l'idée très original. On connaissait la source postée il y a de cela quelques temps qui permettait de lire un clip a une certaine vitesse mais la création de ces fonctions permettants de lire un clip de divers façon me plait assez.
Et comme tu l'a précisé cela permet de ne pas créer d'animation de "retour" ou divers autre application.
Par contre au niveau du code.. Je crois qu'il y aura quelques truc à revoir. N'a tu jamais entendu parler des fonctions prevFrame() et nextFrame() ? Cela te sera beaucoup plus utile.
Problème de ce code à noter : Pour les sons ce n'est pas évident, il sera lu dans le sens inverses (tout dépend de la manière avec laquelle il est placé/lu dans les frames)
Blacknight
Note : 10/10 pour l'idée mais -1 pour le code (que j'espère te voir corriger) donc un total de 9/10. Bonne continuation