2013-03-07 68 views

回答

0
  1. 創建一個新的Flash的ActionScript 3文檔。保存。

  2. 把你的聲音像名字boom.mp3放在同一個目錄中。

  3. 在舞臺上繪製正方形形狀並將其轉換爲Movie Clip符號。

  4. 在舞臺上總共放置2個此Movie Clip符號的實例。

  5. 調出「動作」面板並添加以下代碼。

下面的代碼,當播放聲音時,只需將鼠標拖動到mc1和mc2碰撞。是與聲音播放的基本碰撞。


import flash.media.Sound; 
import flash.events.MouseEvent; 
import flash.net.URLRequest; 

mc1.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
stage.addEventListener(MouseEvent.MOUSE_UP, drop); 
var sound:Sound=new Sound(); 
sound.load(new URLRequest("boom.mp3")); 

function drag(e:MouseEvent):void 
{ 
    mc1.startDrag(); 
} 

function drop(e:MouseEvent):void 
{ 
    mc1.stopDrag(); 

    if (mc1.hitTestObject(mc2)) 
    { 
     trace("Collision detected!"); 
     sound.play(0); 
    } 
    else 
    { 
     trace("No collision."); 
    } 
} 

如果你想使用的KeyboardEvent試試這個:

function playIsCollision(char:DisplayObject, target:DisplayObject):void 
{ 
    if(char.hitTestObject(target)) 
    { 
     sound.play(0); 
    } 
} 

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler); 

function keyDownHandler(e:KeyboardEvent):void 
{ 
    if(e.keyCode == Keyboard.RIGHT) 
    { 
     trace("right move"); 
     mc1.x += 1; 
     playIsCollision(mc1,mc2); 
    } 
    else if(e.keyCode == Keyboard.LEFT) 
    { 
     trace("left move"); 
     mc1.x -= 1; 
     playIsCollision(mc1,mc2); 
    } 
    else if(e.keyCode == Keyboard.UP) 
    { 
     trace("up move"); 
     mc1.y -= 1; 
     playIsCollision(mc1,mc2); 
    } 
    else if(e.keyCode == Keyboard.DOWN) 
    { 
     trace("down move"); 
     mc1.y += 1; 
     playIsCollision(mc1,mc2); 
    } 
} 

這裏是我的代碼:Collision

+0

Awwww太感謝你了。這將適用於鍵盤事件嗎? – Jen 2013-03-07 23:20:12

+0

而不是拖動我想使用我編輯的鍵盤事件 – Jen 2013-03-07 23:25:51

+0

。請檢查。 – 2013-03-07 23:30:34