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

ActionScript 1 & ActionScript 2 Discussion :

quand on charge un niveau, les clips du niveau précédent sont toujours actifs..


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut quand on charge un niveau, les clips du niveau précédent sont toujours actifs..
    Bonjour,

    Je me suis paumée depuis plusieurs jours et je ne m'y retrouve plus !

    J'explique le problème :

    Je créé un niv00.fla sur lequel je n'ai rien d'autre qu'un arrière-plan noir, et un calque actions contenant une image-clé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    loadMovieNum('niv05_intro.swf', 5);
    Ce niv00.swf charge donc un niv05_intro.swf, sur lequel j'ai fait 3 calques :
    - le 1er calque qui représente une image qui apparaît progressivement,
    - le 2e calque qui contient un clip bt_entr (bouton ENTRER sur lequel on cliquera pour entrer),
    - le 3e calque qui contient des actions :
    en frame 20 (au moment de l'apparition du bt_entr) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    play();
    bt_entr.onPress = function ()
    	{
    		loadMovieNum('niv10_desk.swf', 10);
     
    	}
    en frame 80 : pour que l'apparition du fond ainsi que celle du bouton ne tournent pas en boucle.

    Quand l'utilisateur clique sur le bouton ENTRER (bt_entr), cela charge donc un niveau supplémentaire, le niv10_desk.swf
    Sur le niv10_desk.swf, j'ai à nouveau 3 calques :
    - 1 calque pour la nouvelle image qui apparaît progressivement (puisqu'on a cliqué sur 'entrer', on entre donc dans le site avec un nouveau visuel)
    - 1 calque pour l'apparition d'un titre
    - 1 calque pour les actions :
    en frame 20 : en frame 80 : J'en viens donc à mon problème : arrivé sur le niv10_desk.swf, notre curseur peut toujours cliquer sur le bouton 'entrer' qui était sur le niveau dessous(niv05_intro.swf). Et du coup, on peut cliquer indéfiniment et chaque fois refaire apparaitre le niv10_desk.swf !

    Je ne sais plus comment j'avais fait pour éviter cela.

    Je m'y prends sans doute mal dans mon organisation, mais j'aimerais retrouver le moyen pour que le niveau précédent se décharge à partir du moment où j'ai cliqué sur 'entrer'.
    Évidemment vous allez me dire, le niveau précédent ne peut pas se décharger puisque c'est ce niveau qui charge le niveau niv10_desk.swf !!

    Donc où est mon erreur ? et comment dois-je m'y prendre selon vous ?

    Merci beaucoup pour votre aide !


    PS : je suis sur mac osx
    flash cs3
    AS 2

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2006
    Messages
    2 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2006
    Messages : 2 004
    Points : 3 434
    Points
    3 434
    Par défaut
    Bonjour,

    il faut bien décharger les clips après avoir chargé le niveau supplémentaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bt_entr.onPress = function ()
    {
        loadMovieNum('niv10_desk.swf', 10);
        unloadMovieNum(5);
    };
    il y a aussi la solution de ne supprimer que l'écoute de l'évènement press sur le bouton Enter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bt_entr.onPress = function ()
    {
        loadMovieNum('niv10_desk.swf', 10);
        delete this.onPress;
    };

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Salut Beekeep, et merci
    mais dans le 1er code que tu m'as donné, comment cela peut-il fonctionner, puisqu'on est sur le niveau 5 ?
    un niveau ne peut pas se décharger lui-même, c'est ça que je ne comprends pas

    Peux-tu m'expliquer ?
    merci d'avance

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2006
    Messages
    2 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2006
    Messages : 2 004
    Points : 3 434
    Points
    3 434
    Par défaut
    les niveaux sont ceux de l'animation entière,
    le niveau 5 de la première est le même que celui de l'animation chargée.

    et oui un clip peut se supprimer lui même.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    J'ai donc écrit ça dans mon niv05_intro.swf, mais le bouton entrer est tjs actif. Je ne comprends pas ce que je dois faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    play();
     
    bt_entr.onPress = function ()
    {
    	loadMovieNum('niv10_desk.swf', 10);
    	unloadMovieNum(05);
     
    }

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    c'est quand je prévisualise le niv05_intro.swf que je vois que ma souris est tjs active et que le niv05 n'a pas été déchargé.
    Par contre, qd je vais prévisualiser le niv00, qui lui-même charge le niv05, alors là effectivement le unloadMovieNum a fait son effet, le bouton 'entrer' n'est plus actif une fois qu'on a cliqué dessus.
    Faut-il faire cela pour CHAQUE niveau ?
    merci

  7. #7
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2006
    Messages
    2 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2006
    Messages : 2 004
    Points : 3 434
    Points
    3 434
    Par défaut
    Citation Envoyé par anoushka Voir le message
    Faut-il faire cela pour CHAQUE niveau ?
    c'est à dire ?

    comment fonctionne ton animation ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Ok, mon anim' fonctionne comme cela :

    le niv00 charge
    le niv05 , sur lequel apparaît une image, puis un bouton 'entrer'. Quand on clique sur 'entrer', on charge
    le niv10 : on entre dans le site : une image apparaît, des boutons apparaissent. Chaque bouton cliqué charge un niveau différent
    le bouton A charge le niv15
    le bouton B charge le niv25
    le bouton C charge le niv35
    mais quand on est par exemple dans le niv35, il y a une icone cliquable qui charge de nouveau le niv10, en faisant disparaitre le niv35 : donc je t'ai bien interprété, là aussi je mets unloadMovieNum(35) ?

    Ma méthode est-elle correcte ?
    Quelle différence entre les 2 codes que tu as indiqués, plus haut ?

  9. #9
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2006
    Messages
    2 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : octobre 2006
    Messages : 2 004
    Points : 3 434
    Points
    3 434
    Par défaut
    Citation Envoyé par anoushka Voir le message
    mais quand on est par exemple dans le niv35, il y a une icone cliquable qui charge de nouveau le niv10, en faisant disparaitre le niv35 : donc je t'ai bien interprété, là aussi je mets unloadMovieNum(35) ?
    oui ça devrait fonctionner.

    Citation Envoyé par anoushka Voir le message
    Ma méthode est-elle correcte ?
    c'est correct mais pas du tout optimisé vu qu'à chaque fois que l'on revient sur l'animation principale elle est rechargée.

    Citation Envoyé par anoushka Voir le message
    Quelle différence entre les 2 codes que tu as indiqués, plus haut ?
    le premier supprime le clip qui était resté en arrière plan.
    le second rend le bouton enter non cliquable.


    sinon j'aurai une autre bidouille à proposer

    dans chaque animation qui s'ajoute, créer un clip fond qui occupe toute la place.
    Ensuite il suffit de le rendre cliquable pour que les animations d'en dessous ne le soient plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    clipFond.onPress = function()
    {
      useHandCursor = false; // pour ne pas avoir le curseur main
    };

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    octobre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2009
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    c'est correct mais pas du tout optimisé vu qu'à chaque fois que l'on revient sur l'animation principale elle est rechargée.
    Ah. Je m'en doutais.
    J'aimerais bien optimiser mais je ne sais comment faire. Tu sais toi ?

    En tout cas je vais essayer de suivre ta bidouille : c'est à mettre en calque inférieur, dans chaque niv.swf , c'est ça ? et ça doit être transparent j'imagine.. Donc ça, ça devrait rendre non cliquable les niveaux inférieurs.
    Mais c'est quand-même mieux de décharger des niveaux plutôt que de les laisser actifs, non ?

    En fait, je ne sais pas à partir de combien d'octets il vaut mieux décharger des animations, dans la mesure où l'on va les lire sur internet. Je crois qu'il faut tjs décharger les niveaux inférieurs, sinon, le serveur va me dire que je dois payer plus de trafic ou un truc du genre !.....

Discussions similaires

  1. [9.2] forcer les majuscules au niveau de la table
    Par Yorglaa dans le forum Oracle
    Réponses: 3
    Dernier message: 20/04/2006, 12h33
  2. [iframe] [javascript] executer script quand iframe chargé
    Par danyboy85 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/02/2006, 16h22
  3. [FLASH 8] Comment fonctionne les clips
    Par steeves5 dans le forum Flash
    Réponses: 3
    Dernier message: 27/01/2006, 11h23
  4. A quand un flux RSS sur les news?
    Par Invité dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 08/12/2005, 23h47
  5. [FLASH 8] Retrouver les clip sous un clic souris
    Par wwave dans le forum Flash
    Réponses: 4
    Dernier message: 17/11/2005, 14h52

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