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

Bibliothèques & Frameworks Discussion :

Le move


Sujet :

Bibliothèques & Frameworks

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Le move
    Bonjour,

    je suis en train de découvrir la bibliothèque scriptAculous, mais j'ai plusieurs soucis.

    La première, lorsque je fais un afterFinish, la fonction s’exécute avant l’exécution de l'animation alors que si j'ai bien compris, cela devrai se faire une fois fini.

    La deuxième, je fais une boucle pour que l'image bouge tant qu'un tableau est rempli, mais cela me crée une boucle infinie. J'ai testé avec une boucle de dix incrémentation, et on dirai que les animations se font une fois la boucle finit.

    Je vous donne me code, ça sera peut être un peu plus claire.


    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    //permet de lancer la course
    function depart()
    {
    	var calc=0;
    	// while(tabrun.length>0)//tant que le tableau contient des joueurs, on continue la course// ne foncitonne pas
    	// {
    	// for(var j =0; j<100;j++) //fonctionne mais une fois la boucle terminée
    	// {
    		for(var i =0 ; i<tabrun.length;i++) //pour chaque personne on la fait bouger suivant un random
    		{
    			if(arriver(tabrun[i]))// si l'élément est arrivé alors on la supprime du tableau
    				tabrun.splice(i,1);
    			calc=Math.random()*100;
    			bouger(tab[i],calc);
    			// window.setTimeout(bouger(tab[i],calc),5000);
    			//new Effect.Move(tabrun[i],{ x: calc, y: 0,queue:'end'});
    		}
    	// }
    	// }
    }
     
    //Permet de faire bouger le l'element
    function bouger(element,calc)
    {
    	new Effect.Move(element,{ x: calc, y: 0,queue:'end', afterFinish: arriver(element)});
    }
     
    // permet de vérifier sur l'élement est arrivé ou non => fonctionne
    function arriver()
    {
    	//alert("test");
    	var valeur =($(element).style.left).split("px");
    	if(valeur[0]>=(document.body.offsetWidth-75))
    		return true;
    	return false;
    }


    Merci beaucoup pour votre aide.

  2. #2
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    Vous n'êtes pas le seul à avoir rencontré cet étrange comportement du afterFinish. En fait, il semblerait que pour certains objets, cette méthode ne soit pas définie dans le constructeur et donc il interprète mal la commande et lance directement la fonction demandée dans le afterFinish.

    Il semblerait qu'il faille étendre les méthodes de l'objet de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    new Effect.Move(element,
          Object.extend({ x: calc, 
            y: 0,
            queue:'end', 
            afterFinish: arriver(element)
         }, arguments[1] || {})
    );
    Mais je ne suis pas sûr d'avoir encapsulé la bonne partie. Il ne faut peut-être que le afterFinish.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Comme pour tout gestionnaire d'événement (que ce soit avec Prototype ou en JavaScript "classique"), afterFinish attend un callback, pas le résultat de l'exécution d'une fonction !
    Voir : Les fonctions de rappel (callback) ou les utilisations cachées de eval().

Discussions similaires

  1. demande info de la fonction move dans un module
    Par lechtifred dans le forum Access
    Réponses: 1
    Dernier message: 01/05/2006, 15h04
  2. [VB]déplacement d'un controle image avec la méthode move
    Par marco62118 dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 22/03/2006, 19h03
  3. [Ora 9.2] Rebuild index et move tablespace
    Par scornille dans le forum Oracle
    Réponses: 1
    Dernier message: 03/02/2006, 00h41
  4. Move a table
    Par kameleo10 dans le forum Oracle
    Réponses: 1
    Dernier message: 03/12/2005, 12h56
  5. alter table move
    Par jokos2000 dans le forum Oracle
    Réponses: 7
    Dernier message: 15/06/2005, 13h30

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