IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH MX2004 PRO] Bug scrollPane


Sujet :

Flash

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 85
    Points : 50
    Points
    50
    Par défaut [FLASH MX2004 PRO] Bug scrollPane
    Bonjour a tous,

    J'ai un problème avec la scrollPane. J'ai créé une animation flash toute simple qui est un rectangle qui s'agrandit.
    Dans ma scrollPane, je charge donc cette animation flash. Les barres de défilement ne s'active pas et pourtant lorsqu'on se sert de la molette de la souris, ca fait défiler ...

    Voici un exemple :
    http://membres.lycos.fr/dens63/scrollPane/scrollPane.html

    Pour que ca fasse défiler, appuyer sur le rectangle rouge puis utiliser la molette de la souris ... Et la miracle le contenu défile...

    Est-ce que quelqu'un aurait une solution pour éviter ce bug ??

    Merci d'avance !!

  2. #2
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Salut,
    je n'ai pas compris si tu veux que les scrollbars apparaissent ou pas.
    A priori, ton animation fait la taille de ton scrollPane donc elles ne doivent apparaitre et il ne devrait pas être possible de faire défiler (bug).
    Mais d'après ton message, j'ai l'impression que tu les veux.
    Joue peut-etre avec hScrollPolicy et vScrollPolicy ou sinon regarde http://www.developpez.net/forums/viewtopic.php?t=213539 si cela peut t'aider.
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 85
    Points : 50
    Points
    50
    Par défaut
    escuse moi, j'ai du mal m'exprimer. En effet, il est normal que les barres de défilement n'apparaissent pas et je ne veux pas qu'elles apparaissent. C'est justement pourquoi j'aimerais que le contenu ne défile pas quand on se sert de la molette. C'est un bug de flash mais qui est quand meme assez genant et malheureusement, je ne vois pas du tout comment je peux faire pour y remédier

  4. #4
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Ok no pb, donc tu es dans le même cas que moi (tu te sens moins seul ).
    Malheureusement, je ne sais pas non plus
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 85
    Points : 50
    Points
    50
    Par défaut
    dis moi qu'est-ce que tu penses d'un truc de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    form = new Object();
    form.scroll = function(objEvt){
          maScrollPane.vPosition = 0;
    }
    maScrollPane.addEventListener("scroll", form);
    Cela permet de forcer la position verticale à 0 dans le panneau défilant... Il suffirait de faire un test juste avant afin de permettre le défilement possible quand la barre de défilement est active...

  6. #6
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Oui cela peut etre une solution. Le pb est de savoir si les scrollBar sont visible ou pas.
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  7. #7
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    sinon il y a aussi l'évènement onmousewheel,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    mouseListener = new Object();
     
    mouseListener.onMouseWheel = function (null,myscroll) {
    	if (myscroll != undefined){		
    		myscroll._parent.vPosition=0;
    	}
    } 
     
    Mouse.addListener(mouseListener);
    Tu peux bien sûr détecter si les barres de défilement sont actives ou pas!

    Voilà

  8. #8
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Petit ajout pour compléter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    myscroll.vScrollPolicy="Off"; //Initialisation de vscrollpocily
    mouseListener = new Object();
    mouseListener.onMouseWheel = function (null,myscroll) {
    	if (myscroll != undefined){		
    		if(myscroll._parent.vScrollPolicy=="Off"){
    		 myscroll._parent.vPosition=0;
    		}
    	}
    } 
     
    Mouse.addListener(mouseListener);

  9. #9
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Soit j'ai pas compris soit ça ne marche pas
    Le probleme c'est que vScrollPolicy et hScrollPolicy testent si les scrollbars sont actives mais pas si elles sont visibles et nécessaires.

    ex:
    scrollpane 100x100 et clip contenu 50x50
    vScrollPolicy et hScrollPolicy à "ON"
    Les scrollars ne sont pas visibles car pas nécessaires mais le bug du scroll est toujours présent.
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  10. #10
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    mais ce cas ne s'applique que lorsqu'on ne veut pas permettre à l'utilisateur de scroller.

    Donc en fait, on ne doit pas se soucier du fait que les scrollbars soient visibles ou pas puisque flash les mets automatiquement si elles sont nécessaires.

    Il ne les mettra pas que si on lui dit explicitement de ne pas les mettre. Donc, si on lui dit de ne pas les mettre, il faut ajouter ce listener pour éviter qu'on puisse scroller avec la molette, sinon on s'en fout et on laisse scroller avec la molette

  11. #11
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Bon je crois que l'on se cromprend pas
    Mais c'est peut-etre dû au fait que mon pb est peut-être légérement différent de celui de dens63 (encore que ).
    J'ai un scrollpane dans lequel j'ajoute dynamiquement des clips (dont je ne connais pas la taille) donc je ne peux pas joué sur les hScrollPolicy et vScrollPolicy, il faut que je les laisse à "auto".
    Quand les clips ajoutés sont plus grands que le scrollpane, les scrollbars sont visibles et il n'y a pas de pb.
    Le pb intervient lorsque le clip est plus petit que le scrollpane. Les scrollbars ne sont pas visibles car pas nécessaires. Là si on scroll avec la souris, le clip se déplace alors qu'il ne devrait pas
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  12. #12
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 85
    Points : 50
    Points
    50
    Par défaut
    Mais c'est peut-etre dû au fait que mon pb est peut-être légérement différent de celui de dens63 (encore que ).
    non non on a bien exactement le meme problème

    De mon coté, j'ai essayé de voir si je pouvais trouver le nom d'occurence de la scrollBar verticale mais en vain...

    Une solution pourrait peut-etre etre la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    form = new Object();
    form.scroll = function(objEvt){
         if (maScrollPane.spContentHolder._height <= 300)
        {
             maScrollPane.vPosition = 0;
        }
    }
    maScrollPane.addEventListener("scroll", form);
    300 correspond à la taille de ma scrollPane (je voulais faire maScrollPane._height mais les valeurs renvoyées sont fausses)

  13. #13
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Citation Envoyé par freegreg
    Bon je crois que l'on se cromprend pas
    Mais c'est peut-etre dû au fait que mon pb est peut-être légérement différent de celui de dens63 (encore que ).
    J'ai un scrollpane dans lequel j'ajoute dynamiquement des clips (dont je ne connais pas la taille) donc je ne peux pas joué sur les hScrollPolicy et vScrollPolicy, il faut que je les laisse à "auto".
    Quand les clips ajoutés sont plus grands que le scrollpane, les scrollbars sont visibles et il n'y a pas de pb.
    Le pb intervient lorsque le clip est plus petit que le scrollpane. Les scrollbars ne sont pas visibles car pas nécessaires. Là si on scroll avec la souris, le clip se déplace alors qu'il ne devrait pas
    Ok j'ai tout pigé maintenant, j'essayerai d'y jeter un oeil mais ça ne sera pas pour aujourd'hui, donc si tu trouves avant, fais nous partager ta solution.

  14. #14
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Biensûr, comme toujours
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  15. #15
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Bon ben, d'après mes investigations, il semble impossible de détecter si la scrollbar verticale est affichée ou non! Donc, à part tester la taille du contenu et la taille du conteneur, je ne vois pas d'autres solution. Etant donné que la scroll verticale peut-être affichée même si la hauteur du contenu est inférieure à la hauteur du scrollpane, c'est pas une technique précise à 100% mais au moins elle peut permettre de limiter les dégats.

    Autre solution beaucoup plus brutale, empêcher purement et simplement l'utilisation de la molette.

  16. #16
    Expert éminent

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Points : 8 779
    Points
    8 779
    Par défaut
    Citation Envoyé par stephaneey
    Bon ben, d'après mes investigations, il semble impossible de détecter si la scrollbar verticale est affichée ou non! Donc, à part tester la taille du contenu et la taille du conteneur, je ne vois pas d'autres solution. Etant donné que la scroll verticale peut-être affichée même si la hauteur du contenu est inférieure à la hauteur du scrollpane, c'est pas une technique précise à 100% mais au moins elle peut permettre de limiter les dégats.

    Autre solution beaucoup plus brutale, empêcher purement et simplement l'utilisation de la molette.
    Je suis arrivé à la même conclusion
    Avant toutes questions, consultez nos différentes ressources disponibles gratuitement : XML, Développement Web, Flash/Flex, (X)HTML, CSS, JavaScript, AJAX, ASP
    Offres d'emploi développeur Web

  17. #17
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 85
    Points : 50
    Points
    50
    Par défaut
    Oui, on arrive tous les trois à la meme conclusion...

    Merci à vous deux (freegreg et stephaneey) pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH MX2004 PRO] Pbm de scrollPane
    Par reno.rkcrew dans le forum Flash
    Réponses: 1
    Dernier message: 18/08/2005, 15h14
  2. [FLASH MX2004] Actionscript et ScrollPane
    Par meslaey dans le forum Flash
    Réponses: 20
    Dernier message: 10/07/2005, 03h20
  3. Réponses: 18
    Dernier message: 19/08/2004, 15h11
  4. [FLASH MX2004 PRO] Remplacer un caractere
    Par alex57 dans le forum Flash
    Réponses: 2
    Dernier message: 17/08/2004, 19h50
  5. [FLASH MX2004 PRO] Problème étrange avec LoadClip...
    Par josemoroide dans le forum Flash
    Réponses: 6
    Dernier message: 04/08/2004, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo