2012-09-14 26 views
1

我一直在探索一種有效地使用AS2來檢測整個.swf中的空格鍵的方式,而不管影片剪輯是在什麼位置焦點。我發現了幾個要求AS3或AS2的解決方案,但沒有按照我的要求做。在調整我找到的內容之後,迄今沒有任何東西產生單個檢測到的空格鍵。任何人都可以建議替代品我覺得這是非常明顯的事情,我很想念它!將Actionscript 2中的鍵盤監聽器添加到整個flash動畫中

這裏是我迄今爲止嘗試過(位於第一和唯一的框架內,在時間軸上): 1)

var stageListener:Object = new Object(); 
stageListener.onKeyUp = function() { 
    if(Key.getAscii() == 32){ 
     trace("spaceup"); 
     dostuff; 
    } 
}; 
Stage.addListener(stageListener); 

2)

stage.onKeyUp = function() { 
    if(Key.getAscii() == 32){ 
     trace("spaceup"); 
     dostuff; 
    } 
}; 

3)

_root.onKeyUp = function() { 
    if(Key.getAscii() == 32){ 
     trace("spaceup"); 
     dostuff; 
    } 
}; 

4)

Main.stage.onKeyUp = function() { 
    if(Key.getAscii() == 32){ 
     trace("spaceup"); 
     dostuff; 
    } 
}; 

5)將其中的一個附加到swf中的每個顯示級交互式影片剪輯中。依然沒有!

this.onKeyUp = function() { 
    if(Key.getAscii() == 32){ 
     trace("spaceup"); 
     dostuff; 
    } 
}; 

謝謝任何​​幫助!

回答

2

你的第一次嘗試非常接近。 Key對象是您附加偵聽器的位置,而不是階段。

var keyListener:Object = new Object(); 
keyListener.onKeyDown = function() { 
    if(Key.getCode() == 32){ 
     //do something here for space bar press 
    } 
}; 
Key.addListener(keyListener); 

AS2是相當復古...我希望你有一個很好的理由使用它,而不是AS3

+0

您的解決方案工作就像一個魅力的,所以謝謝!至於AS2,我注意到它是相當複雜的,但我的工作涉及修改其他人許可的代碼,所以不幸的是,我只能添加到原來的,而不是修改或重構它。 – CodeRedd