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

  1. #1
    Membre à l'essai
    Tourner autour d'un objet (convertir AS3 en JS)
    Bonjour,

    J'ai 16 images d'un objet en 3D pris par une caméra qui tourne autour à 360°. Mais j'aurais des numéros de 1 à 16, ça serait pareil. J'ai importé chacune de mes images dans des images clés à la suite sur un calque d'une animation adobe flash/animate HTML5 canvas. Je souhaite écrire un script (JavaScript) pour que la position de la souris sur l'axe X détermine l'image qui sera lue. Ainsi, en bougeant la souris, ça donnera le sentiment de tourner autour de l'objet.

    J'ai le script en AS3 qui fonctionne :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    import flash.events.Event;
     
    stop();
     
    function bougeDeLa(e:Event){
    	var image:Number = mouseX/1024*16;
    	gotoAndStop(Math.floor(image));
    }
    stage.addEventListener(MouseEvent.MOUSE_MOVE, bougeDeLa);


    J'essaie de le convertir en JavaScript, mais ça ne marche pas :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    this.stop();
     
    // Les 2 lignes qui suivent s'inspirent des fragments de code
    var frequency = 3;
    stage.enableMouseOver(frequency);
    this.addEventListener("mouseover", fl_MouseOverHandler);
     
    function fl_MouseOverHandler()
    {
    	var image = Math.floor(stage.mouseX/1024*16);
    	this.gotoAndStop(image);
    }

    Où est mon erreur ?

    Merci

  2. #2
    Membre à l'essai
    J'ai trouvé la solution :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    this.stop();
     
    var scenario = this;
     
    document.getElementById("canvas").addEventListener("mousemove", tourneAutour);
     
    function tourneAutour()
    {
    	var image = Math.floor(stage.mouseX/400*16); // 400 est la largeur de la scène et 16 le nombre d'image
    	scenario.gotoAndStop(image);
    }



###raw>template_hook.ano_emploi###