begin process at 2012 05 29 16:34:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Evènements

 > 

probleme enchainement de fonction


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme enchainement de fonction

dimanche 1 août 2010 à 00:27:42 | probleme enchainement de fonction

loicseg

Bonjour, voilà j'aimerai se faire enchainer plusieurs actions a la suite, dont voici le code :
<SCRIPT>
function move(){
var igrec=window.event.offsetY
var ixe=window.event.offsetX
document.getElementById('sim').style.top=igrec-100+'px';
document.getElementById('sim').style.left=ixe-100+'px';
setTimeout("move2()",1000);
}
function move2(){
var igrec=window.event.offsetY
var ixe=window.event.offsetX
document.getElementById('sim').style.top=igrec-50+'px';
document.getElementById('sim').style.left=ixe-50+'px';
setTimeout("move3()",2000);
}
function move3(){
var igrec=window.event.offsetY
var ixe=window.event.offsetX
document.getElementById('sim').style.top=igrec+'px';
document.getElementById('sim').style.left=ixe+'px';
}
</SCRIPT>
<BODY onclick="move()">
<img src="lit.jpg" id="sim" style="position: absolute; top: 240px; right: 340px;" width="120" height="120"></BODY>

mais cela ne fonctionne pas,
cela provient certainement du settimeout car quand je met juste la fonction suivante cela fonctionne sans probleme sauf ke je nai pas l'effet de deplacement que je souhaite vu que c'est "instantané".
merci d'avance pour votre aide et a bientot
dimanche 1 août 2010 à 00:30:20 | Re : probleme enchainement de fonction

loicseg

ou alors existerai-til de faire un effet de deplacement comme dans un jeu vidéo tel que diablo 2 ?
dimanche 1 août 2010 à 09:23:00 | Re : probleme enchainement de fonction

PetoleTeam

Membre Club
Bonjour,

La première fonction se déclenche sur un click, d'où le window.event.offsetY est bel est bien défini

La deuxième fonction, appelée par un setTimeout ne génère pas de window.event.offsetY donc cela plante

Définies bien ce que tu veux faire avant de continuer, je ne l'ai pas saisi, mais bon il est vrai que j'ai souvent l'esprit embrumé...

... oublies ces fonctions qui ne sont compatibles qu'IExplorer à cause de window.event

;O)
lundi 2 août 2010 à 00:58:02 | Re : probleme enchainement de fonction

loicseg

je ne vois pas comment résoudre le probleme d'enchainement de fonction, j'ai meme essayé avec setinterval.
Ce que je voudrais faire en fait c'est un deplacement de personnage (une image donc) qui se deplacerai là ou le joueur (curseur de la souris) aura cliqué. mais ceci ne doit pas etre instantanée, on doit pouvoir voir le personnage se déplacer.
lundi 2 août 2010 à 01:19:12 | Re : probleme enchainement de fonction

loicseg

voici un code d'un ancien topic sur ce même site

Code Javascript :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>exemple</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>
OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>
OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>
OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>
OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>OO<br/>
************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
<div id="pointer" style="position: absolute; height: 8px; width: 8px; background: #333; display: none"></div>    
    
<script type="text/javascript">
    var isIE =  !!(window.attachEvent && !window.opera) ? true : false;
    
    function getWindowDimensions(){
        var width = document.documentElement['clientWidth'];
        var height = document.documentElement['clientHeight'];
        return {width: width, height: height};
    }
    
    function addEvent(elt, eEvent, fCallBack){
        isIE ? elt.attachEvent('on'+eEvent, fCallBack) : elt.addEventListener(eEvent, fCallBack, false);
    }
    
    function centerView(event){
        var cursorPosition = {
            x: event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)),
            y: event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop))
        }
        document.getElementById('pointer').style.left = cursorPosition.x-4+'px';
        document.getElementById('pointer').style.top = cursorPosition.y-4+'px';
        document.getElementById('pointer').style.display = 'block';
        window.scrollTo(cursorPosition.x-(getWindowDimensions().width/2), cursorPosition.y-(getWindowDimensions().height/2));
    }
    
    addEvent(document, 'click', centerView);
</script>
</body>
</html>


ce code est ce que je veux faire mais seulement le probleme est que le deplacement est instantanée comme pour le precedent code, la page est centrée, c'est deja ca.

je t'invite a regarder une video de diablo 2 sur youtube pour voir ce que je veux faire si tu ne capte toujours pas
lundi 2 août 2010 à 08:54:27 | Re : probleme enchainement de fonction

PetoleTeam

Membre Club
Bonjour,
sur le click :
- tu récupères la position du click qui est la position à atteindre
- tu récupères la position du personnage qui est la position actuelle
- tu déplaces le personnage en X et en Y jusqu'à ce qu'il atteigne la position du click

source pouvant t'aider DIV QUI SUIT LE SCROLLING DE LA PAGE


;O)
mercredi 4 août 2010 à 23:03:07 | Re : probleme enchainement de fonction

loicseg

Merci pour ton aide mais j'ai du mal à voir comment faire un mélange des deux scripts pour arriver à mes fins...
jeudi 5 août 2010 à 10:13:36 | Re : probleme enchainement de fonction

PetoleTeam

Membre Club
Bonjour,
...comment faire un mélange des deux scripts...
Il ne faut pas mélanger les deux scripts mais prendre ce dont tu as besoin dans chacun.

Pour le principe il te suffit de déclencher le mouvement uniquement lorsque tu cliques avec la souris et non sur le scroll de la page...

;O)
jeudi 5 août 2010 à 15:25:18 | Re : probleme enchainement de fonction

loicseg

Heu... oui d'accord mais... je ne vois vraiment pas comment faire...
jeudi 5 août 2010 à 16:54:46 | Re : probleme enchainement de fonction

PetoleTeam

Membre Club
Une bonne technique est de tracer ce que l'on veut obtenir comme résultat quitte à faire un dessin, on arrive mieux à voir ce dont on à besoin

sur le click appel de la fonction SartMove
c'est dans cette fonction que l'on va procéder aux initialisations
- PosX_Deb = position Left de l'objet
- PosY_Deb = position Top de l'objet
- PosX_Fin = position en X du click Mouse, position X à atteindre
- PosY_Fin = position en Y du click Mouse, position Y à atteindre
- Inc_X = vitesse de déplacement suivant l'horizontale
- Inc_Y = vitesse de déplacement suivant la verticale

ensuite on appelle la fonction de déplacement MoveObjet
dans celle ci on récupère la position de l'objet à déplacer
- on calcul la prochaine position
- on compare par rapport à la position d'arrivée
SI pas encore atteint
- on déplace
- on rapelle la fonction
SINON
- on déplace en position finale
FIN SI

voila en gros !
;O)


Cette discussion est classée dans : var, window, event, igrec, ixe


Répondre à ce message

Sujets en rapport avec ce message

apparition d'une fenêtre diamettre, qui apparait à 10 pixels du curseur en javascript et html [ par Barbapapa2 ] Barbapapa2 bonjour tous le monde, J'ai un prb avec une fenêtre qui apparait une fois que je clic sur un lien. Mais que je n'arrive pas à faire aparait Curseur différent pour IE et FireFox en JavaScript et html [ par Barbapapa2 ] Barbapapa2 Bonjour à tous, J'ai un prb entre FireFox et ie??? J'ai un lien contenue dans un DIV qui à l'approche du curseur de ma souris se transforme Popup pas tres stable [ par Barbapapa2 ] Barbapapa2 Bonjour à tous, J'essai d'afficher ma popup mais y a des petits prb : normalement elle est sencé rester et ne partir qu'une fois que je cli Aide javascript scrolling vertical [ par hltyson13 ] bonjour,J'utilise un javascript pour le défilement de news au format texte.le voici:"var ie= do deplacement de plusieurs div [ par pegasus77 ] Bonjour , voila j'essaie de faire une fonction qui me permettra de deplacer plusieurs DIV. j'ai pris un code draganddrop qui me permet de deplacer u window.event ne fonctionne pas sous Netscape6.2 - Mozilla/FireFox [ par jakata ] Hello,j'ai, a nouveau, un petit souci. Le window.event ne fonctionne pas sous Netscape6 et FireFox.J'ai chercher et j'ai trouvé ceci, qui ne fonctionn pb avec popunder [ par ASPerix ] Bonjour,J'ai 2 pages web, je voudrais ouvrir 2 popunders différentes, une dans chaque page. Je voudrais ces 2 popunder s'ouvrent dans 2 fenêtres disti Diaporama Javascript [ par Dominike ] - Dominike -Bonjour à tous !Je vous soumet un petit problème que je n'arrive pas à résoudre seul.J'ai récupéré un Javascript sympa pour créer un diapo probleme script de controle de saisie [ par fredmorvant29 ] bonjour, je suis en train de réaliser le controle de saisie sur mon formulaire.je souhaite tester deux choses : *que l'email soit valide (ça ça mar Evènement onResize [ par initnocsib ] Je souhaite afficher plus ou moins de photos dans un bandeau en fonction de la taille de la fenêtre. voici le code : if (document.body) { var larg =


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,858 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales