2011-11-10 10 views
0

後に動作しますので、私には、Flash CS5でスライドショープレゼンテーションを作成しています。コードは非常に基本的ですが、意図したとおりに動作しません。私がボタンを押すか、キーボードの上/右矢印を押すと、次のフレームに行くはずです。しかし、キーボードは一度ボタンを押すだけで動作します。KeyboardEventのは[OK]をMouseEventの

私のコード:

import flash.events.MouseEvent; 
import flash.events.KeyboardEvent; 

slides.stop(); 

addEventListener(KeyboardEvent.KEY_DOWN, keyD); 
FB.addEventListener(MouseEvent.CLICK, nextSld); 
BB.addEventListener(MouseEvent.CLICK, prevSld); 

function keyD(evt){ 
    var k = evt.keyCode; 
    if(k==37||k==38){ 
     prevSld(evt); 
    } 
    if(k==39||k==40){ 
     nextSld(evt); 
    } 
} 
function nextSld(evt){ 
    slides.nextFrame(); 
    } 
function prevSld(evt){ 
    slides.prevFrame(); 
} 

スライドは、私はすべての私のスライドを保存したムービークリップ、(ああ、ところで、私は私のセットアップは最高ではないですけど、私は使用しないことですそれは宗教教室のためのようなものです)。私はちょうど私の問題はここにいないことを確認します、そして多分誰かがこれはおそらく合わないにもかかわらず、問題を指摘することができ、今...

FBは、進むボタンで、あなたはBBが何であるかを推測することができますこのボードに。

+0

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyD);には、スタンドアロンのFlashPlayerでこの問題の存在ですか? – www0z0k

+0

フラッシュムービーにピントがありますか?フォーカスがない限り、キーボードイベントに応答することはできません。通常、これはブラウザのFlashムービーをクリックすることを意味します。 SWFの空白部分をクリックしてから、キーボードを使用してください。 –

答えて

2

変更addEventListener(KeyboardEvent.KEY_DOWN, keyD);

+0

これは恥ずかしいものです。私はこれをやったと思ったが、今はうまくいった。ありがとう。 '関数keyD(EVT::KeyboardEventです):無効{場合(evt.keyCode == Keyboard.DOWNなど|| evt.keyCode == Keyboard.LEFT – MartinHaTh

+1

はところで' flash.ui.Keyboard'クラスは、キーコード定数、非常に有用であります)//など – www0z0k

1

映画にフォーカスがないように見えるので、キーボードイベントを取得する前にムービーをマウスでクリックする必要があります。

+0

さて、私はこれを試しましたが、特にボタンの1つを押さない限り、キーボードは反応しません。映画をクリックするだけで何も起こりません。 – MartinHaTh