FAIRE GLISSER SELON LA VITESSE DE LA SOURIS

Signaler
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
-
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
-
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/42382-faire-glisser-selon-la-vitesse-de-la-souris

Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
N'hésite pas à annoncer ta mise à jour, je regarderai à nouveau ta source et pourrai peut être te suggéré de nouvelle modification voir t'aider tout simplement dans son optimisation.

Je suis heureux de voir que tu as commencé à corriger les quelques problèmes de code rencontrer.

Blacknight
www.flash-nouvelle.com
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
C'est au niveau du concept, et j'y réfléchirais...
Pour le moment j'ai résolu :
"Je note également deux fonctions similaire dont la seul différence est que dans l'une tu soustrait la variable vitesse et dans l'autre du l'additionne.
Il aurai été plus judicieux d'utiliser un coeficient prenant pour valeur 1 ou -1 déterminant le sens de défilement de tes pages.
Tu gagne déja une quinzaine de ligne de code.

Ligne 58 et 60 : Priviligie _root._ymouse et _root._xmouse plutôt que this._xmouse et this._ymouse
Cela te permet de bien faire référence aux coordonées de la souris celon la scène principale et ainsi ne pas tomber dans des valeurs parfoit négative qui pourrai fausser tes calculs.

Ligne 67, 70 et 72 : Idem que précédement."
Pas le emps pour le reste.
A plus
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
Comment t'y prendre ?

Si c'est au niveau code : AttachMovie

Si c'est au niveau du concept, a toi d'y réfléchir ;)

Blacknight
www.flash-nouvelle.com
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Bonjour,
merci pour tes conseils, je vais essayer de les appliquer, je ne sais pas quand, mais je vais essayer de le faire.
Pour charger les clips depuis la bibliothèque, j'y ai bien pensé, mais je ne voyais vraiment pas comment m'y prendre. //on verra après.
Si j'arrive à quelque chose de convenanble, je ferais les modifs et les signalerais ici même.
Encore merci pour ce petit cours fort appréciable.
Messages postés
1732
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
9 mars 2015
2
Bonjour,

L'idée est intéréssante mais pas assez exploité ici.
Tu devrai donner une plus grande application à ton idée.
Ici le changement de "page" (je vais appeler cela comme sa) est un peu trop aléatoire pour l'utilisateur. Il n'a aucune indication sur la vitesse à exercer pour changer de "page" et arrivé sur celle qu'il souhaite.
Tu pourrai par exemple donner une vue d'ensemble des différents pages à la suite en bas de l'animation en plus petit et mettre un cadre qui se déplace permetant d'indiquer sur quelle "page" on se trouve.
La variation de vitesse pour changer de page est mal calibré, laisse faire une plus grande la souris afin de bien déterminé sa vitesse. Sa permetra à l'utilisateur d'etre plus précis dans son "lancé"

Passons maintenant à la source en elle même.
Tout d'abord sur ta scène.
A mon avis tu aurai mieux faire de ne rien mettre sur ta scène et de placé grâce à l'Action Script les éléments que tu souhaite au fur et à mesure.
Imagine que quelqu'un veuille mettre une centaine de page comme celle-ci, flash devrai donc déplacer deux clips (c'est ce que j'ai crus comprendre sur ta scène) contenant chacun 100 autres clip ?
Fait fonctionner ca sur un viel ordinateur et tu le plante à coup sûr !
Il faut donc que tu n'affiche que l'élément afficher au centre et les deux éléments de chaque coté. Ce n'est pas très dur à mettre en place.

Remarque importante que je ne cesse de répété, change ta vitesse de lecture de ton animation.
Je te rappelle que la percistance rétinienne est d'environ 24 img/s (du mois c'est la cadence de défilement d'image au cinéma) et qu'a 12 img/s on à vraiment l'impression que sa rame.
Augmente ta cadence de lecture et tu te rendra compte que ta source parrait mieux marcher et bien plus fluide !

Etant donné que chaque page est basé sur le même modèle apparement, il aurai été bien plus simple de ne faire qu'un seul clip et de lui appliqué une teinte pour changer sa couleur tu ne crois pas ? Tu gagnerai ainsi en poid.

Passons maintenant au code :
Ligne 18 :
Evite de cumuler plusieurs onEnterFrame
Tu peux en éxécuter un seul, sur ta frame principale afin d'aléger ton code et de préserver les ressources Cpu utiliser.
C'est juste une habitude à prendre mais qui te rendra bien des services.

Je note également deux fonctions similaire dont la seul différence est que dans l'une tu soustrait la variable vitesse et dans l'autre du l'additionne.
Il aurai été plus judicieux d'utiliser un coeficient prenant pour valeur 1 ou -1 déterminant le sens de défilement de tes pages.
Tu gagne déja une quinzaine de ligne de code.

Ligne 58 et 60 : Priviligie _root._ymouse et _root._xmouse plutôt que this._xmouse et this._ymouse
Cela te permet de bien faire référence aux coordonées de la souris celon la scène principale et ainsi ne pas tomber dans des valeurs parfoit négative qui pourrai fausser tes calculs.

Ligne 67, 70 et 72 : Idem que précédement.

Ligne 79 : Au lieu de multiplier une variable par elle même pour la mettre au carré tu peux utiliser la fonction Math.pow(valeur,exp);

Ligne 83, 84, 85 : Inutile, Tu redéfinit ta variable vitesse comme étant égale à elle même.

Ligne 100 : Au lieu de donner une valeur précise au centre de ta scène tu peux de servir de -Stage.width/2
Ainsi lorsque l'on changera la taille de la scène, cela n'aura pas d'influence sur le déroulement de l'animation

Ligne 106 : Pas besoin de mettre chaque terme de la condition entre parenthèse. Le && est prioritaire.

Ligne 100 jusqu'à la fin : Le code peut se réduire à trois-fois rien si tu essai d'afficher uniquement les pages qui sont utile au bon moment.
Idem egalement pour que la ligne 100 plus haut, utilise le l'élement Stage.width pour tes valeurs.
Utilise egalement un coeficient de direction pour savoir quand quel sens tu te trouve et applique le directement sur tes valeurs, tu divisera déja ton code par deux ! (Il ne te restera donc plus que 100 lignes au lieu de 200 pour cette fonciton. Ce qui est déja beaucoup trop.
En placant toutes tes pages en même temp sur ta scène cela t'oblige à vérifier chacune des positions possible du clip conteneur.
En reprenant l'exemple du début, imagine quelqu'un qui veut mettre 100 pages.
Tu as déja 300 lignes de codes pour seulement 4 pages. Je te laisse faire le calcul.
Cela manque donc totalement de souplesse et ne permet pas de s'adapter à des modifications possible.


En résumé ta source comprte une bonne idée, mais très mal exploité et pas du tout modifiable.
Je te conseille de revoir toute l'organisation de ton code et de généralisé un peu afin de donner à ta source plus de souplesse.

Blacknight
www.flash-nouvelle.com

Ps : Je n'ai pas mis de note, j'atend de toi que tu fasse une mise à jour avec une bonne correction de ta source.