scrollbar - action a repeter tant que le bouton est enfoncé

scrollbar - action a repeter tant que le bouton est enfoncé - Flash/ActionScript - Programmation

Marsh Posté le 26-11-2008 à 14:50:53    

Bonjour tout le monde,
 
J'essaye de créer une scrollbar a l aide de 2 boutons (bt_down & bt_up).
Actuellement, j arrive a faire en sorte de monter ou baisser le texte de mon textField du nombre de lignes que je souhaite a un clic (onPress) mais j'aimerais que le texte se déplace tant que le bouton est enfoncé.
 
Voici le code fonctionnant actuellement :
 
bt_down.onPress = function () { txtContent.scroll++; }
bt_up.onPress = function () { txtContent.scroll--; }
 
Merci d'avance pour vos propositions et solutions.

Reply

Marsh Posté le 26-11-2008 à 14:50:53   

Reply

Marsh Posté le 26-11-2008 à 15:16:21    

Je pense que tu es obligé de passer par l'venement enterFrame...
 
on enterFrame = function() {
bt_down.onPress = function () { txtContent.scroll++; }
bt_up.onPress = function () { txtContent.scroll--; }  
}


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 26-11-2008 à 15:17:20    

Je me trompe peut être, je ne tate pas trop les Scrolls :)


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 26-11-2008 à 15:36:01    

merci je vais tester.
par contre je ne sais pas trop ou ajouter ton code car j'ai testé sur mon clip actions et sur les boutons présents sur ma scène et j ai toujours le meme message d'erreur :
 
**Erreur** Séquence = Séquence 1, calque = action, image = 1 :Ligne 33 : Les événements souris ne sont autorisés que pour les occurrences bouton
     on enterFrame = function() {
 
Total des erreurs ActionScript : 1   Erreurs signalées : 1
 
merci beaucoup de ta réactivité ! ;)

Reply

Marsh Posté le 26-11-2008 à 15:45:49    

oui, je vois... tu peux tricher !
 

Code :
  1. // j'initialise 2 variables qui ecouteront les boutons
  2. var btnDownPress:boolean = false;
  3. var btnUpPress:boolean = false;
  4. // Je modifie ces 2 dernière en fonction de l'état des boutons
  5. bt_down.onPress = function () {btnDownPress = true}
  6. bt_down.onRelease = function () {btnDownPress = false} // sinon il reste sur true à jamais !
  7. bt_up.onPress = function () {btnUpPress = true }
  8. bt_up.onRelease = function () {btnUpPress = false}
  9. // .... Et enfin
  10. on enterFrame = function() {
  11.   if(btnDownPress){txtContent.scroll++}
  12.   if(btnDownPress){txtContent.scroll--}
  13. }


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 26-11-2008 à 16:00:50    

**Erreur** Séquence = Séquence 1, calque = action, image = 1 :Ligne 47 : Les événements souris ne sont autorisés que pour les occurrences bouton
     on enterFrame = function() {
 
Total des erreurs ActionScript : 1   Erreurs signalées : 1
 
 
J'ai toujours la même erreur mais je comprend bien la logique.
Je pense que mon seul problème est que je ne comprends pas pourquoi je n'arrive pas a utiliser "on enterFrame" correctement.
Une fois ce problème fixé cela devrait rouler comme sur des roulettes ^^


Message édité par La_puce le 26-11-2008 à 16:01:27
Reply

Marsh Posté le 26-11-2008 à 16:07:59    

Et bien, t'es en AS 2 ?


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 26-11-2008 à 16:17:38    

On travaille sur Flash MX Professionnal 2004 donc il me semble oui.

Reply

Marsh Posté le 26-11-2008 à 16:21:22    

ok, je vais jeter un zieux !


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 26-11-2008 à 16:28:26    

Bordel, faute de frappe, onEnterFrame et non on enterFrame !!!

Code :
  1. // j'initialise 2 variables qui ecouteront les boutons
  2. var btnDownPress:Boolean = false;
  3. var btnUpPress:Boolean = false;
  4. // Je modifie ces 2 dernière en fonction de l'état des boutons
  5. bt_down.onPress = function () {btnDownPress = true}
  6. bt_down.onRelease = function () {btnDownPress = false} // sinon il reste sur true à jamais !
  7. bt_up.onPress = function () {btnUpPress = true }
  8. bt_up.onRelease = function () {btnUpPress = false}
  9. // .... Et enfin
  10. onEnterFrame = function() {
  11.   if(btnDownPress){MonTextBox.scroll++}
  12.   if(btnUpPress){MonTextBox.scroll--}
  13. }


Message édité par abais le 26-11-2008 à 16:46:52

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 26-11-2008 à 16:28:26   

Reply

Marsh Posté le 26-11-2008 à 16:34:37    

http://wiki.mediabox.fr/tutoriaux/flash/scrollbar


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 26-11-2008 à 16:43:16    

merci beaucoup :D
je teste ça de suite et je croise les doigts !
(entre 2 lignes de codes ^^ car coder les doigts croisés ce n'est pas évident :) )

Reply

Marsh Posté le 26-11-2008 à 16:47:48    

j'ai édité plus haut, ça fonctionne chez moi, mais je te conseille d'utiliser la class ScrollBar de flash ;)


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 26-11-2008 à 17:01:49    

pendez moi ....  :fou:  
je crois qu'il est temps que je termine ma journée j'ai vraiment du mal ce soir  :sweat:  
 
c'est bon ton code corrigé fonctionne chez moi aussi :)
je vais essayer d'intégrer le tuto que tu m'as filé plus tard mais uniquement si je suis dans les temps pour le projet car il me faut un truc de présentation le plus opérationnel possible pour début de semaine prochaine et je ne pourrai pas avancer cette semaine a partir de demain après-midi...
 
heureusement grâce a toi, je quitte le boulot ce soir sur une lueur d'espoir !
Merci beaucoup de ton aide ! Elle m'est vraiment très précieuse  :)  
 
bonne soirée ! (enfin.. piouufff  :pt1cable: )


Message édité par La_puce le 26-11-2008 à 17:37:15
Reply

Marsh Posté le 26-11-2008 à 18:07:27    

Bwarf, t'as de la chance d'être une ch'tie, je t'aurais réclamé une bière sinon...


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 27-11-2008 à 05:32:35    

Et en exclue pour vous, une classe de Scroll que j'ai fait il y a longtemps.
 
http://zedlefou.free.fr/asToto/cla/Scroll.as
Et son fichier d'exemple
http://zedlefou.free.fr/img/test-scroll.fla
 
L'utilisation est simplissime:
Vous avez besoin de 3 clips.
1. le clip a scroller
2. le clip qui sert de masque pour la zone a afficher.
3. la forme de la fleche de scroll
 
Ce dernier doit etre dans la bibliotheque avec comme nom de liaison "flech".
 
Ces 3 clips doivent avoir leurs points d'origines en haut a gauche, sinon ca marche pas. C'est a dire, quand tu selectionnes tout dans ton clip, x et y doivent etre a 0.
 
Et une fois que les clips sont crees, le code ce resume a 2 lignes:
import Scroll;
var foo = new Scroll(this, targ_mc, mask_mc);
 
C'est pas magique ?
 
Mon seul regret, c'est de n'avoir pas eu le temps de rebosser dessus pour faire des petits ascenseurs.
 
 


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 27-11-2008 à 11:27:06    

:) Merci Zed, je te pique ça
Pour les ascenseurs ça me parait simple à faire, mais autant utiliser la class de flash non ?


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 27-11-2008 à 11:46:59    

Do It Yourself :o


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
Reply

Marsh Posté le 27-11-2008 à 11:52:29    

Salut Zed
Merci pour tes sources.
Mais bon, pas la peine de prendre la mouche :P
En tout cas c'est sympa de prendre le temps de répondre ;)
 
Abais, je pense que je vais garder ma solution temporaire encore un moment :( d'autres trucs a régler avant ! )
Mais je vais essayer d'utiliser la classe Flash maintenant que j'ai déjà préparé le terrain :)
 
Bon j'arrête de traîner sur les fofo il faut que ça avance mon projet... hop hop hop ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed