Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 动作脚本3-使声音仅在物体接触时播放一次_Flash_Actionscript 3_Wav_Playback - Fatal编程技术网

Flash 动作脚本3-使声音仅在物体接触时播放一次

Flash 动作脚本3-使声音仅在物体接触时播放一次,flash,actionscript-3,wav,playback,Flash,Actionscript 3,Wav,Playback,我有一个煎锅、培根和BaconCooking.wav。我想在把培根放到烤架上时演奏wav。如果我移动培根直到它刚好接触到烤盘,wav播放得很好,但是如果我继续在烤盘上拖动培根mc,wav会变得很响并且失真,几乎就像它同时播放多个wav实例一样 private function __handleSliceDown($evt:MouseEvent):void { slice1_mc.startDrag(true); } private function __handleSliceUp($e

我有一个煎锅、培根和BaconCooking.wav。我想在把培根放到烤架上时演奏wav。如果我移动培根直到它刚好接触到烤盘,wav播放得很好,但是如果我继续在烤盘上拖动培根mc,wav会变得很响并且失真,几乎就像它同时播放多个wav实例一样

private function __handleSliceDown($evt:MouseEvent):void {
    slice1_mc.startDrag(true);
}

private function __handleSliceUp($evt:MouseEvent):void {
    slice1_mc.stopDrag();
    addEventListener(Event.ENTER_FRAME, __checkHit);     
}

private function __checkHit($evt:Event):void {
    if (this.slice1_mc.hitTestObject(griddle_mc)) {
        if (!hitting) {
            sc = BaconCooking.play();    
        }
    }
}
如何使wav正确播放

编辑:

 private function __checkHit($evt:Event):void {
             if (this.slice1_mc.hitTestObject(griddle_mc)) {    
                if(isPlaying){
                    sc = BaconCooking.play(); 
                    isPlaying = true;
                }
             }else{
                 isPlaying = false;
                 sc.stop();
                    }
             }
  • 默认情况下,isplay是一个布尔值,设置为false

编辑:由于默认情况下isPlaying为false,因此它从一开始就不会播放声音。您的if声明应为:

 if(!isPlaying){
 <code to play sound
 }
if(!isplay){
现在你有了
if(isplay){
,但是如果(!isplay){
,那不应该是
if吗


我会这样做:当两个对象命中测试时,如果为false,则将isplay布尔值设置为true,然后播放声音。只有当对象不再碰撞时,isplay布尔值才能再次变为false。

我做了一些编辑,但它们不正确,因为现在声音根本不会播放。