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 :

Comment faire un effet d'alpha pendant le chargement d'un clip externe


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut Comment faire un effet d'alpha pendant le chargement d'un clip externe
    Bonjour, sur ma scène j'ai différentes images qui se chargent et se redimenssionnent pour apparaitre en vignette. J'ai fait ce code :

    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
    this._parent._parent.createEmptyMovieClip("container", this.getNextHighestDepth());
    var mclListener = new Object();
    mclListener.onLoadInit = function(target_mc) 
    {
    	//target_mc._width = 50;
    	//target_mc._height = 50;
        //target_mc._x = 292;
    	//target_mc._y = 170;
    }
    mclListener.onLoadProgress = function(target, bytesLoaded, bytesTotal) 
    {
    	--> ICI la fonction ALPHA
            // celle ci ne fonctionne pas
            target_mc._alpha ++ = 5;
    }
    var mcl = new MovieClipLoader();
    mcl.addListener(mclListener);
    mcl.loadClip("images/Thumbs1.swf", this._parent._parent.container);
    Je voudrais faire en sorte qu'à l'état initial, traget_mc._alpha =0, et qu'au fur et à mesure du chargement il passe à 100. J'en ai essayé une mais ça ne fonctionne pas, quelqu'un aurait une idée ? merci d'avance.

  2. #2
    Membre Expert
    Avatar de jean philippe
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 062
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 062
    Par défaut
    salut
    avant de jouer sur les propriétés de clip, il faut vérifier que l'image est totalement chargée
    pour ce faire il faut mettre le code de l'alpha dans le onLoadInit()

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    D'accord, j'ai déclaré l'alpha en disant :
    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
    this._parent._parent.createEmptyMovieClip("container", this.getNextHighestDepth());
    var mclListener = new Object();
    mclListener.onLoadInit = function(target_mc) 
    {
    	//target_mc._width = 50;
    	//target_mc._height = 50;
        //target_mc._x = 292;
    	//target_mc._y = 170;
    	target_mc._alpha = 0;
    }
    mclListener.onLoadProgress = function(target, bytesLoaded, bytesTotal) 
    {
    	target_mc._alpha ++ = 5;
    }
    var mcl = new MovieClipLoader();
    mcl.addListener(mclListener);
    mcl.loadClip("images/Thumbs1.swf", this._parent._parent.container);
    Mais maintenant il y a une erreur "La partie gauche de l’opérateur d’affectation doit être une variable ou une propriété" sur la ligne target_mc._alpha ++ = 5; !!

  4. #4
    Membre expérimenté
    Homme Profil pro
    Creative Technologist
    Inscrit en
    Avril 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Creative Technologist

    Informations forums :
    Inscription : Avril 2007
    Messages : 126
    Par défaut
    Y'a plusieurs problèmes dans ce que tu as écrit.

    Pour ton erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    target_mc._alpha ++ = 5;
    Cette ligne n'a pas de sens... ++ c'est un incrément, c'est à dire que tu ajoutes 1, et += est une addition, tu ajoutes une valeur. Les deux lignes suivantes sont valides, mais pas la tienne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    target_mc._alpha += 5;
    target_mc._alpha ++;
    Ensuite, tu additionnes 5 à chaque fois que la méthode onLoadProgress est déclanchée, c'est à dire à chaque frame tant que ton image n'est pas chargée. En fait, tu n'as aucune idée du temps de chargement, et ce temps varie selon l'image, la machine et l'état du réseau. Si ton image se charge trop vite, ton alpha sera par exemple à 35 en fin de chargement (pas complètement à 100), et si elle se charge trop lentement, tu vas te retrouver avec un alpha genre à 345, ce qui n'est pas non plus ce que tu cherches.
    Si tu veux être à 0 en début de chargement et à 100 en fin, il faut que tu codes un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    target_mc._alpha = 100*bytesLoaded/bytesTotal;
    Enfin, tu fais une erreur de conception. Un chargement progressif ne veut pas dire qu'on voit de plus en plus l'image. En effet, si tu veux mettre ton image à 25%, il faut bien que tu connaisses l'image en entier...
    En fait, ton image ne peut pas être affichée par Flash tant que toutes les données n'on pas été chargées... ce qui va se passer avec un code comme tu l'écris, c'est que ton clip va être transparent avec un alpha qui augmente, mais rien dans le clip, tu ne verras donc rien, et au moment où l'image sera complètement chargée, elle s'affichera, et ton alpha sera justement à ce moment là à 100. Tu va donc ne rien voir durant le chargement, et ton image va apparaître d'un seul coup à 100%.

    En gros, ce que tu veux faire n'est pas possible. La seule chose que tu puisses faire, c'est que rien ne soit affiché pendant le chargement, et qu'à la fin du chargement tu fasses apparaître l'image avec un fondu de 0 à 100% d'alpha en quelques secondes. Mais tu auras donc bien un temps au début où rien ne sera affiché.
    Libre à toi alors, pendant ce temps, de faire une anim quelconque d'attente, mais qui n'utilise pas l'image en cours de chargement.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Ok j'ai compris ce que tu veux dire. Par exemple je pourrais faire une feinte et afficher une miniature de l'image qui va se charger, miniature qui apparait lorsque le chargement commence, passe de alpha 0 à alpa à 100, puis disparait lorsque l'image est completement chargée, c'est ça ? du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    mclListener.onLoadProgress = function(target, bytesLoaded, bytesTotal) 
    {
    this.Anim1._alpha = 100*(bytesLoaded/bytesTotal);
    }
    que je mets cette animation ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Creative Technologist
    Inscrit en
    Avril 2007
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Creative Technologist

    Informations forums :
    Inscription : Avril 2007
    Messages : 126
    Par défaut
    Oui, ça peut être une solution. Soit ta miniature est dans la bibliohèque de ton FLA, soit il va falloir aussi la charger. Mais si elle est petite, son chargement sera rapide.

    Essaye un code, et si ça marche pô, renvoie-le

    Bonne chance !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/02/2010, 13h02
  2. Comment faire un effet de survol sur un hover
    Par jadey dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 07/09/2009, 17h47
  3. Réponses: 9
    Dernier message: 18/06/2009, 19h31
  4. [Conception] Comment faire pour bloquer une valeur pendant 24H
    Par lolodelp dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/07/2006, 15h46
  5. [VB6][impression]Comment faire des effets sur les polices ?
    Par le.dod dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 08/11/2002, 10h31

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