2010-01-22 7 views
0

J'ai un film Flash simple avec le code suivant. L'idée est de passer d'une image à l'autre ou à l'aide de nouveau les touches fléchées du clavier:Actionscript 3.0: événements de clavier et un présentateur à distance

stop(); 

//listen for key press 
stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown); 

//if left or right arrow, go to previous or next frame 
function myKeyDown(e:KeyboardEvent):void { 

switch (e.keyCode) { 
case Keyboard.LEFT : 
prevFrame(); 
break; 

case Keyboard.RIGHT : 
nextFrame(); 
break; 
} 
} 

Donc, cela fonctionne très bien, sauf que je dois utiliser un présentateur Kensington pour contrôler le clavier à distance. Il devrait envoyer une commande keydown à l'ordinateur pour les flèches droite ou gauche, mais cela ne fonctionne pas.

Il fonctionne sur un projet Director hérité que j'ai, en utilisant une syntaxe similaire. Fonctionne également dans PowerPoint.

Toutes les pensées seraient appréciées. Je travaille sur un Mac, mais le film tournera sur les plateformes Windows et Mac en tant qu'application compilée.

+4

Essayez tracer le code clé de votre gestionnaire reçoit lorsque vous appuyez sur un bouton de la télécommande. –

+1

Même suggestion que Anon. Tracez e.keyCode dans votre gestionnaire d'événements myKeyDown. Voyez si vous obtenez une sortie du tout. – sberry

+2

Un autre problème peut être que votre application perd le focus et manque ainsi vos événements clés. Vous pouvez utiliser une minuterie pour ré-acquérir la mise au point toutes les deux secondes pour y remédier. – ZackBeNimble

Répondre

0

Si elle ne jette pas une erreur, vous devez vous concentrer scène et écrire ci-dessous écouteur d'événement

stage.focus = this; 
stage.focusRect = false; 

stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown); 


function myKeyDown(e:KeyboardEvent):void { 

switch (e.keyCode) { 

case Keyboard.LEFT : 

this.currentFrame++; 

break; 

case Keyboard.RIGHT : 

this.currentFrame--; 

break; 
} 

} 
Questions connexes