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 :

[flashMX2004Pro] Scrollbar et son code ActionScript


Sujet :

Flash

  1. #1
    Inscrit Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Points : 179
    Points
    179
    Par défaut [flashMX2004Pro] Scrollbar et son code ActionScript
    Bonjour à tous,

    Je suis sur une scrollbar depuis un moment (vu qu'ils ont eu la bonne idée de la virer dans cette version de flash pour le textarea que j'aime moins ) donc je fais une chose simple : texte dynamique avec deux boutons pour faire descendre et monter le texte.

    mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    on(press){
    	this.contenu.scroll --;
    }
    Certes efficace MAIS je vois mal l'utilisateur enchaîner les clics pour faire monter ou descendre le texte... D'où la recherche d'un code pour que si l'on laisse appuyé (ou en rollOver dessus en continue) le bouton le texte continue à défiler et non s'arrêter à un décalage.

    Merci d'avance !

  2. #2
    Membre du Club
    Profil pro
    Webmaster
    Inscrit en
    Décembre 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2006
    Messages : 50
    Points : 55
    Points
    55
    Par défaut
    Pas de réponse direct à ta question, mais pourqoui ne pas utiliser plutot un rollover ?

    le texte défil tant que la souris est placé sur le bouton de défilement...

    C'est comme ca que je fais mes scroll personnalisés, en terme de naviguation c'est tout fait convenable...

    Sinon, il faut gérer les évènement de souris, et là, il n'est plus vraiment question d'un simple bouton à mon avis...

    Bon courage, A+
    Gyome.

  3. #3
    Membre régulier Avatar de BoudBoulMan
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 100
    Points : 116
    Points
    116
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    on(press){
         onClipEvent(enterFrame){
              this.contenu.scroll --;
         }
    }
    on(release){
         onClipEvent(enterFrame){
              //arrêter la boucle
         }
    }
    La forme des pyramides le prouve, l'homme a toujours eu tendance à en faire de moins en moins.

  4. #4
    Inscrit Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Points : 179
    Points
    179
    Par défaut
    Merci à vous deux pour vos réponses.

    Boudboulman :

    Ce sont des boutons ; donc l'onClipEvent ne peut marcher avec un actionScript sur eux. J'ai tenté de les passer en clip mais ça semble pas non plus fonctionner...

    Gyome:

    J'ai essayé avec un rollOver mais le résultat est le même : j'ai beau rester dessus ça n'active qu'un décalage d'un niveau. Il faut enlever le curseur et revenir dessus pour faire descendre un second niveau et ainsi de suite...

    Merci encore à vous deux tout de même

  5. #5
    Membre régulier Avatar de BoudBoulMan
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 100
    Points : 116
    Points
    116
    Par défaut
    Désolé, je ne suis pas habitué aux gestionnaires on() et onClipEvent(),
    je te conseille de créer un clip qui sera une sorte de bouton et de passer par les méthode onPress et onEnterFrame de la méthode MovieClip.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var bouton:MovieClip = nom_occurrence_du_clip;
     
    bouton.onPress = function() {
         this.onEnterFrame(){
              this.contenu.scroll --;
         }
    }
    bouton.onRelease = function() {
         this.onEnterFrame = null;
    }
    bouton.onReleaseOutside = function(){
         this.onEnterFrame = null;
    }
    Ce code est à placer dans la scène principale.
    La forme des pyramides le prouve, l'homme a toujours eu tendance à en faire de moins en moins.

  6. #6
    Inscrit Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Points : 179
    Points
    179
    Par défaut
    J'ai essayé ton second code ; malheureusement il me met une erreur de syntaxe, provenant du onEnterFrame(). Il semble ne l'accepter que comme variable.

    J'ai donc modifié pour ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var bouton:MovieClip = bas;
    bouton.onPress = function() {
         this.onEnterFrame = this.contenu.scroll --;
    }
    bouton.onRelease = function() {
        this.onEnterFrame = null;
    }
    bouton.onReleaseOutside = function(){
         this.onEnterFrame = null;
    }
    Je n'ai plus d'erreur de script mais rien ne se produit

  7. #7
    Membre régulier Avatar de BoudBoulMan
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 100
    Points : 116
    Points
    116
    Par défaut
    T'es sûr que ça ne fonctionne pas? Moi je l'ai testé et ça marche nickel.
    J'avais fait une petite anim où on peut bouger une boule de haut en bas grâce à deux boutons.

    Tu peux la télécharger ici en bas.

    Sinon j'ai trouvé un bon tuto ici ainsi qu'un package.
    Fichiers attachés Fichiers attachés
    La forme des pyramides le prouve, l'homme a toujours eu tendance à en faire de moins en moins.

  8. #8
    Inscrit Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Points : 179
    Points
    179
    Par défaut
    Merci pour ton fichier mais malheureusement erreur d'ouverture (format inattendu) - j'ai 2004 professionnel je sais pas quelle est ta version.

    Sinon dans le tuto que tu m'as donné je suis allé voir : y'a un scrollbar effectivement mais le résultat est le même, à savoir que laisser pressé la flèche ne continue pas à faire défiler le texte, ce qui est mon principal soucis

    Merci encore pour toute ton aide ^^

  9. #9
    Membre régulier Avatar de BoudBoulMan
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 100
    Points : 116
    Points
    116
    Par défaut
    Citation Envoyé par sanosuke85
    Merci pour ton fichier mais malheureusement erreur d'ouverture (format inattendu) - j'ai 2004 professionnel je sais pas quelle est ta version.
    J'utilise Macromedia Flash 8

    Citation Envoyé par sanosuke85
    Sinon dans le tuto que tu m'as donné je suis allé voir : y'a un scrollbar effectivement mais le résultat est le même, à savoir que laisser pressé la flèche ne continue pas à faire défiler le texte, ce qui est mon principal soucis
    Ouai, mais le package, lui, permet de faire défiler le contenu tout en restant appuyer.
    La forme des pyramides le prouve, l'homme a toujours eu tendance à en faire de moins en moins.

  10. #10
    Inscrit Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Points : 179
    Points
    179
    Par défaut
    Encore merci pour ton aide Tu m'as donné pas mal d'éléments pour que je puisse m'en sortir seul logiquement. Je vous tiendrai au courant de l'évolution de mes recherches

  11. #11
    Inscrit Avatar de sanosuke85
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 206
    Points : 179
    Points
    179
    Par défaut
    Bien j'ai pu enfin trouver une solution qui me convient. Je vous la donne au cas où, ça peut servir pour d'autres

    Avant Flash MX et la composantes «ScrollBar», le défilement d'un «texte dynamique multiligne» était contrôlé par la propriété «scroll», de 1 à «maxscroll». D'avantage utilisé pour des sauts fixes, ancre ou paragraphe, il permet toujours un défilement fluide comme le montre l'exemple suivant.

    À retenir. Toujours utiliser un élément Texte dynamique ou «Dynamic Text». En ligne multiple ou «Multiline»


    1. Création d'un élément texte

    1. Avec l'outil «A» dans la palette d'outils, glisser sur la scène la zone du texte et utiliser le carré en bas de cette zone pour définir l'espace visible du texte. Assurez-vous que l'outil «A» est bien sélectionné.
    2. Texte DynamiqueOuvrez la fenêtre des propriétés [CTRL+F3]. Spécifier que votre texte est dynamique; «Dynamic Text» ou «Input text».
    3. MultiligneSélectionnez multiligne ou «Multiline».
    4. Nom de variableIl est très important de donner un nom de variable, par exemple «monTexte». C'est avec ce nom de variable qu'il est ensuite possible de cibler le «monTexte».

    2. Initialiser le texte dynamique
    Sur l'action du cadre (frame action), initialisez la valeur du texte dynamique, la variable «monTexte». Noter qu'il est possible de forcer un saut de ligne avec la barre oblique et un N (\n).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _root.monTexte = "Votre texte sur plusieurs lignes.\n\nPlusieurs paragraphe..."
    3. Exemple simple: Contrôle du défilement au clic
    L'important est de bien cibler le texte dynamique, à l'aide de son nom de variable; «monTexte». Et de jouer avec la valeur de la propiété scroll. Anisi:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // passer à la ligne suivante
    monTexte.scroll = monTexte.scroll + 1;
     
    // remonte d'une ligne
    monTexte.scroll = monTexte.scroll - 1;
     
    // Paser à la ligne 100
    monTexte.scroll = 100;
    Tester en glissant un bouton sur la scène avec un de ses 3 codes :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    on (release) {
      monTexte.scroll += 1;
    }
     
    on (release) {
      monTexte.scroll -= 1;
    }
     
    on (release) {
      monTexte.scroll = 100;
    }

    3. Exemple avancé: Défilement semi-continu avec «rollOver» comme l'exemple plus haut
    Contrairement à un défilement au clic, la position du défilement semi-continu doit être précisée à chaque instant. C'est pourquoi le contrôle est en «enterFrame», sous la condition du «survole de la souris». Le rôle des deux boutons se limite à maintenir l'état du défilement, soit; Vers le haut (-1), vers le bas (+1) et sans défilement (0). Il faut donc un «movieClip» et deux boutons. L'idéal est de tout mettre dans le même «movieCLip».

    a. Cliquer sur l'élément «Texte dynamique» pour le convertir en «movieCLip» [F8] et donner un nom d'instance à ce nouveau «movieCLip», Pourquoi pas «twTexteDefil»! Dans l'action de «twTexteDefil», ajouter ce code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    onClipEvent (load) {
      // Initialiser la direction à zéro
      this.direction = 0;
    }
    onClipEvent (enterFrame) {
      // Test inutile mais plus rapide qu'une assignation.
      // Ensuite, incrémentation selon la direction
      if (this.direction<>0) this.monTexte.scroll += this.direction;
    }


    Noter le principe d'addition d'une direction positive/négative. Additionner un nombre négatif résulte en une soustraction. Par exemple x += -1; équivaut à x = x -1

    b. Ajouter deux boutons et le code qui détermine la direction. Noter le nom d'instance «twTexteDefil» :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // Bouton vers le haut
    on (rollOver) {
      // Direction -1
      _root.twTexteDefil.direction = -1;
    }
    on (press, release, releaseOutside, rollOut, dragOut) {
      // Direction 0
      _root.twTexteDefil.direction = 0;
    }
     
    // Bouton vers le bas
    on (rollOver) {
      // Direction +1
      _root.twTexteDefil.direction = +1;
    }
    on (press, release, releaseOutside, rollOut, dragOut) {
      // Direction 0
      _root.twTexteDefil.direction = 0;
    }
    Tout y est clairement indiqué ; si vous avez besoin n'hésitez pas à télécharger le code source donné, ça aide à mieux comprendre. Enfin, au lieu d'un on(rollOver), j'ai mis un on(press), ce que je cherchais à la base.

    PS : ne pas oublier dans on(press,rollOut......) de mettre "rollOver" à la place de "press" pour les deux boutons.

    Encore merci pour ceux qui ont répondu et au plaisir
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Comment bien déboguer son code ?
    Par D[r]eadLock dans le forum Débuter
    Réponses: 47
    Dernier message: 02/04/2024, 16h06
  2. protection fiable de son code actionscript ?
    Par philip40 dans le forum Flash
    Réponses: 3
    Dernier message: 02/02/2008, 21h25
  3. Passer son code du C en C++
    Par Mynautor dans le forum OpenGL
    Réponses: 4
    Dernier message: 07/02/2005, 03h14
  4. Propriété de son code source.
    Par chocobn49 dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 06/07/2004, 14h40
  5. [mise en page] pour bien indenter son code
    Par bihorece dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/08/2003, 16h14

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