2016-09-06 1 views
-1

bonjour en essayant de faire mon bouton gotoAndStop comme balayage au lieu d'appuyer sur. mais il fonctionne qu'une seule fois, le second cadre je fais ne fonctionne plus et je ne sais pas l'erreur s'il vous plaît aidez-moi, merciSwipe Gesture, As3

Multitouch.inputMode = MultitouchInputMode.GESTURE; 


story1chapter3.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe); 
function onSwipe (e:TransformGestureEvent):void{ 
if (e.offsetX == 1) { 
//User swiped towards right(back button) 
story1chapter3.x += 100; 
gotoAndStop(31); 
} 
if (e.offsetX == -1) { 
//User swiped towards left(next) 
story1chapter3.x -= 100; 
gotoAndStop(159); 
} 
} 

ce code fonctionne, mais lorsque je tente de faire un autre code même que celui dans différents formuler sa ne fonctionne plus, je change aussi le nom d'instance il coutume dupplicate

Multitouch.inputMode = MultitouchInputMode.GESTURE; 


story1chapter2.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe); 
function onSwipe2 (e:TransformGestureEvent):void{ 
if (e.offsetX == 1) { 
    //User swiped towards right(back button) 
story1chapter2.x += 100; 
gotoAndStop(30); 
} 
if (e.offsetX == -1) { 
    //User swiped towards left(next) 
    story1chapter1.x -= 100; 
    gotoAndStop(27); 
    } 
    } 

PS J'essaie aussi de changer onSwipe2 à onSwipe, mais l'erreur vient de dire son double

Répondre

0

Eh bien, ce n'est pas la manière propre de le faire en ayant deux simila r fonctionne mais c'est un autre sujet :) Je suppose que le problème est que lorsque vous faites le balayage la deuxième fois, les deux écouteurs d'événements obtiennent l'événement swipe et tous les deux tentent de gotoAndPlay. Essayez de retirer l'écouteur d'événement sur swipe:

story1chapter3.addEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe); 
function onSwipe (e:TransformGestureEvent):void{ 
    if (e.offsetX == 1) { 
    //User swiped towards right(back button) 
    story1chapter3.x += 100; 
    story1chapter3.removeEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe); 
    gotoAndStop(31); 
} 
    if (e.offsetX == -1) { 
    //User swiped towards left(next) 
    story1chapter3.x -= 100; 
    story1chapter3.removeEventListener(TransformGestureEvent.GESTURE_SWIPE , onSwipe); 
    gotoAndStop(159); 
} 
} 

Une meilleure approche serait d'avoir un seul écouteur d'événement sur la scène et ont une fonction qui rapprocherait le lecteur au chapitre droite selon l'endroit où vous êtes actuellement, alors vous auriez pas besoin de mess avec plusieurs fonctions, mais ont tout en un seul endroit

+0

donc si je fais un autre code je peux utiliser à nouveau la fonction onSwipe? donc la fonction de removeEvent est donc je peux faire une autre fonction sur Swipe? ai-je raison? Je suis désolé je ne comprends vraiment pouvez-vous me donner l'im de code suivant en disant que ne fonctionne pas vraiment, qui est celui –

+0

i encore, utilisez la fonction ne peux pas onSwipe sur un autre cadre, il est encore dire la définition de la fonction double –

+0

Non, dans cet exemple, vous avez encore besoin les deux fonctions. Le removeEventListener indique simplement à la première fonction d'arrêter d'écouter l'événement de balayage afin que seulement votre deuxième fonction les obtienne. Vous aurez également besoin de quelque chose de similaire dans votre deuxième fonction: story1chapter2.addEventListener (TransformGestureEvent.GESTURE_SWIPE, onSwipe2); Oh, je viens de remarquer que vous devez spécifier onSwipe2 dans votre deuxième écouteur d'événement, sinon tous les événements iront à l'onSwipe (qui est votre problème principal pour le moment je suppose) :) – Philarmon