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 8] Gestion avec un MovieClipLoader


Sujet :

Flash

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 37
    Points
    37
    Par défaut [FLASH 8] Gestion avec un MovieClipLoader
    Bonjour,
    Je charge une série d'image avec un MovieClipLoader, ceci dans une boucle, sachant qu'a un moment l'image chargé n'existera pas, et cela me donnera le nombre d'image max sur ma série. J'ai fait un listener pour l'erreur onLoadError.
    Malheureusement, la boucle tourne jusqu'au dernier index, même si depuis longtemps les images a chargées n'existent pas. Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var monChargeur:MovieClipLoader = new MovieClipLoader();
     
    var loadListener:Object = new Object();
     
    loadListener.onLoadError = function(target_mc:MovieClip, errorCode:String) {
    		NombreImage=i+1;
    		trace(i);
    }
     
    monChargeur.addListener(loadListener);
    et voici la boucle de chargement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    for (var i : Number=0 ; i<15 ; i++)
    {
    	if (monChargeur.loadClip(image[i],clipgeneral[i]))
    	{
    	}
    	else
    	{
    		i=14;
    	}
    }
    image est un tableau contenant le nom des images a charger, ["photo1.jpg...,photo14.jpg]. Pour raison d'essai, il n y a plus de fichier après photo10.jpg.

    Je pense que la fonction loadclip doit créer une tache indpendante, et que le code continu en parallèle, mais cela ne fait pas mon affaire, j'aimerais que le onLoadError se déclenche pour l'image photo11.jpg qui n'existe pas.
    Merci de votre aide.

    Michel

  2. #2
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    si j'ai bien compris ton probleme tu veux que ta boucle s'arrete lors de la 1ere erreur de chargement !

    dans ce cas tu dois modifier ton systeme de boucle pour que l'image suivante ce charge lorsque la précédente est chargé.

    onLoadInit ou onLoadComplete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    loadListener.onLoadInit= function(target_mc:MovieClip, errorCode:String) {
      this.load(image suivante)
    }

  3. #3
    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
    Un chargement initié ne peut pas être arrêté.
    Si ton but est de récupérer le nombre de photos, vaut mieux que tu mettes dans un fichier le nombre de photos que tu as (en dur ou par script serveur si tu peux)
    Tu charges ce fichier (cf LoadVars) avant puis tu inities le bon nombre de chargement


    Ps : Pense à préciser la version de Flash que tu utilises - Merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 37
    Points
    37
    Par défaut
    J'ai rajouté a mon listener:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    loadListener.onLoadInit= function(target_mc:MovieClip, errorCode:String) {
      chargeOk=true;
    }
    et dans ma boucle de chargement j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	var chargeOk=false;
    	monChargeur.loadClip(image[i],clipgeneral[i])
    	while (!chargeOk)
    	{
    	}
    Et la cela bloque, Flash me dit qu'un script le ralentie et qu'il faut l'arrêter. En bref ma boucle while ... prends quasiment toutes les ressources. Gasp! Faudrait peut-etre mettre une fonction d'attente dans la boucle while, mais je ne connais pas d'instruction pour cela, ou alors vous voyez un moyen plus simple?
    Merci encore et encore ...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 37
    Points
    37
    Par défaut
    En réponse a freeqreq, d'abord merci, ensuite j'utilise Flash8.
    Je ne veux pas mettre en dur le nombre d'image car en fait, je cherche à faire une sorte de diaporama personnalisé, qui sera ensuite mis dans différent répertoire, et chaque "occurence" devra se débrouiller pour trouver le nombre de photos dispos dans ce répertoire. Par exemple, il y aura un répertoire fleur avec mon diaporama et 5 photos, un répertoire escalade avec mon diaporama et 14 photos ..etc j'appelle ensuite le diaporama voulu, et dynamiquement il s'autodébrouille avec les photos du répertoire. Mon idée est de n'avoir plus a retoucher le fichier flash, juste a rajouter une photo par si ou par la pour la mise a jour du site.
    Voila, en même temps c'est une sorte d'exercice pour mieux maitriser action-script, ce qui même pour un "habitué" de la programmation (Delphi, C), n'est pas toujours évident (quoique cela aide beaucoup quand même).

  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 j'avais bien compris ton pb.
    C'est bien pour cela que je te recommendais de récupérer le nombre de photos hors flash. Ton animation ne changera pas.
    Dans ton repertoire images, tu mets un fichier images.txt par exemple avec
    Dans chaque répertoire tu auras ce fichier que tu chargeras (cf LoadVars) avant de charger tes photos.
    Par ailleurs, si tu as à ta disposition un langage serveur (php, asp.net ...), tu peux même faire un script qui compte le nombre de photo les photos sans que tu y aies à le modifier à la main quand tu rajoutes une photo.

  7. #7
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    si tu veux absolument rester sur ton idée, ceci doit fonctionner a condition que la tableau "clipgeneral" soit bien rempli de clip !
    tant qu'il n'y a pas d'erreur il tente de recuperer la suivante sinon il zappe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var i = 0;
    var NombreImage = 0;
     
    var monChargeur:MovieClipLoader = new MovieClipLoader();
    var loadListener:Object = new Object();
     
    loadListener.onLoadInit = function(target_mc:MovieClip, errorCode:String) {
      NombreImage=i;
      this.loadClip(image[i], clipgeneral[i]);
      i += 1;
    }
    monChargeur.addListener(loadListener);
     
    this.loadClip(image[i], clipgeneral[i]);

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 43
    Points : 37
    Points
    37
    Par défaut
    Merci cela marche très bien, le diaporama commence à avoir une belle allure.

  9. #9
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    mais le code fait la gueule

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/01/2006, 20h30
  2. [FLASH MX] Problème avec l'objet Date
    Par n_tony dans le forum Flash
    Réponses: 13
    Dernier message: 22/03/2005, 13h44
  3. [FLASH MX] Bouton avec états différents
    Par Chucky69 dans le forum Flash
    Réponses: 5
    Dernier message: 24/08/2004, 12h01
  4. [FLASH MX]soucis avec gotoAndStop()
    Par matN59 dans le forum Flash
    Réponses: 2
    Dernier message: 18/06/2004, 19h03
  5. [flash MX] probleme avec setinterval et clearinterval
    Par yacinechaouche dans le forum Flash
    Réponses: 3
    Dernier message: 15/04/2004, 12h07

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