Forums Développement Multimédia

Aller au contenu

Potentiomètre iPhone !!!

CODE Actionscript

2 réponses à ce sujet

#1 Guillaume - FANTABULOUS

    Ceinture Blanche

  • Members
  • Pip
  • 4 messages

Posté 14 December 2011 - 16:33 PM

Bon tout d'abord bonjour à toute la communauté !!!

J'écris ce billet car j'ai un petit soucis pour comme le titre l'indique, la création d'un potentiomètre en AS3 pour une application iPhone.
Pour expliquer simplement le bouton de type potentiomètre permet d'augmenter le temps d' 1s tout les 12° donc au bout de 1 tour le chrono Affiche 30s. La ou cela se complique c'est que quand je continu de tournée le potentiomètre dans le meme sens je souhaiterais que le chrono continu d'augmenter (31, 32, 33 ...).Seulement le problème est que mon chrono repart à zéro...

Pouvez-vous m'aider !!!

voici un bout de mon code :


potentiometre.addEventListener(MouseEvent.MOUSE_DOWN, f_down);
potentiometre.addEventListener(MouseEvent.MOUSE_UP, f_up);
stage.addEventListener(Event.ENTER_FRAME, rafraichir);
                       
function f_down(evt:Event){ active = true; }
function f_up(evt:Event){ active = false; }            
                       
function rafraichir(e:Event)
{
        if( active == true)
        {
                var dx:Number = btn4.x - mouseX;
                var dy:Number = btn4.y - mouseY;
                _angle = getDegrees(getRadians(dx, dy));
                                       
                if(_angleActuelle <= _angle)
                {
                        _angleActuelle = _angle;
                       
                        _sPause = _angleActuelle / 12;
                }
                else if(_angleActuelle >= _angle)
                {
                        _angleActuelle = _angle;
                }
                                       
                // Rotation du bouton potentiomètre
                potentiometre.rotation = _angle;
                                       
                // Affichage du temps
                mc_timer.text = _mPause;
                mc_timer.text = _sPause;
        }
}              
                       
function getRadians(delta_x:Number, delta_y:Number)
{
        var r:Number = Math.atan2(delta_y, delta_x);
       
        if (delta_y < 0)
        {
                r += (2 * Math.PI);
        }
        return r;
}
                       
function getDegrees(radians:Number)
{
        return Math.floor(radians/(Math.PI/180));
}      
 


#2 deuxsucres

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 115 messages

Posté 15 December 2011 - 08:50 AM

Bonjour,

L'affichage doit être une représentation d'une valeur, il ne doit pas stocker la valeur. Dans votre code, vous vous basez sur la position du potentiomètre pour déterminer la valeur temps, ce doit être l'inverse : c'est le potentiomètre qui doit se baser sur la valeur temps pour s'afficher correctement. Votre code devrait ressembler à quelque chose comme ça :



var _time:Number ;

function rafraichir(e:Event) {
potentiometre.rotation
}


 


#3 deuxsucres

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 115 messages

Posté 15 December 2011 - 09:05 AM

Suite à une erreur de manipulation, j'ai validé ma réponse incomplète... que je ne peux pas modifier. voici donc la suite :

Ne pas tenir compte de l'extrait de code précédent. Celui-ci le remplace.


//Valeur temps
var _time:Number ;

//Fonction de mise à jour de l'affichage
function rafraichir(e:Event) {
  mc_timer.text = String(time) ;
  potentiometre.rotation = (time * 12) ;
}
 

Faites varier _time et la fonction rafraichir s'occupera de mettre à jour l'affichage.



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)