我正在學習ActionScript 3,此刻,在此處教程http://www.senocular.com/flash/tutorials/as3withmxmlc/。它描述了一個簡單的應用程序,它將球放在舞臺上並讓用戶拖動它。但它有缺陷,尤其是因爲它不處理用戶將指針拖離舞臺的情況。這讓我想到了一個更好的辦法來處理案件。對於初學者,我正在考慮如何處理MOUSE_UP事件。我想寫的東西是這樣的:ActionScript 3,處理鼠標事件案例
public class Test extends Sprite
{
public function Test(stage:Stage)
{
mySprite = SomeSpriteClass()
stage.addEventListener(MouseEvent.MOUSE_UP, handleStageMouseUp);
mySprite.addEventListener(MouseEvent.MOUSE_UP, handleSpriteMouseUp);
}
private function handleStageMouseUp(event:MouseEvent):void {
// how do I determine here if there was also a MOUSE_UP on the Sprite?
// Perhaps I could check the click coordinates of 'event' to see if
// they are superimposed on the Sprite.
}
private function handleSpriteMouseUp(event:MouseEvent):void {
// I don't need this method if I can handle all cases in the
// method above.
}
}
這一議題的出現是與事件模型ActionScript3的使用,我不知道如何尋找涉及事件的組合情況。另外,正如我在handleStageMouseUp()上面的註釋中所寫的,我可以檢查是否在'mySprite'上發生了鼠標事件(我會怎麼做?)
我真的很想做的是能夠結合我所有的情況邏輯在這樣的事情:
private function handleAllCases(...):void {
if (..mouse up on stage but not sprite..) {
.. handle case ..;
} else if (.. mouse up on both stage and sprite ..) {
.. handle case .. ;
}
}
有沒有辦法做到這一點,或者更好的方式來思考呢?
看起來不錯。我喜歡你的回答,但我還沒有足夠的聲望。 – composerMike
如果這樣可以正確回答問題,則應將其標記爲正確(單擊答案旁邊的檢查大綱)。這將有效地解決問題並幫助您獲得聲譽,因此您可以在未來做諸如upvote之類的事情。 –