actionscript-3 - 如何在AS3中添加键盘交互

标签 actionscript-3 flash audio intellij-idea keyboard-events

在此应用程序中,我有16个不同的按钮,每个按钮播放不同种类的声音。目前,我只能使用鼠标单击来开始播放声音,然后再次单击以停止播放声音,但是现在我希望添加快捷键来访问这些音轨按钮,例如对音轨1按下“q”,对音轨2按下“w”。提示或提示,例如我应该怎么做才能达到目的?非常感谢。

private var _ambientTracks:Array = [ambient1, ambient2, ambient3, ambient4];
private var _effectTracks:Array = [effect1, effect2, effect3, effect4];
private var _melodyTracks:Array = [melody1, melody2, melody3, melody4];
private var _beatTracks:Array = [beat1, beat2, beat3, beat4];

//handle click on track invoke  start / stop functions
private function onTrackClicked(event:MouseEvent):void {
    var track:Sprite = event.currentTarget as Sprite;
    var trackName:String = track.name;
    if (trackName in _playingTracks) {
        stopTrack(track);
        delete _playingTracks[trackName];
    } else {
        startTrack(track);
        _playingTracks[trackName] = trackName;
    }
}

//starts track animation and dispatch event for TrackMixer
private function startTrack(track:Sprite):void {
    Actuate.tween(track, 0.6, {alpha: 0.3}).reflect().repeat();
    dispatchEvent(new ObjectEvent(START_TRACK, track.name, true));

}

//stop track animation and dispatch event for TrackMixer
private function stopTrack(track:Sprite):void {
    Actuate.stop(track, "alpha");
    track.alpha = 1;
    dispatchEvent(new ObjectEvent(STOP_TRACK, track.name, true));
}

最佳答案

这是一个基本概念,与您要达到的目的类似,如果您有很多按键命令,建议使用开关盒,则需要聆听按键并使用特定的按键代码处理要按下的按键。

import flash.display.MovieClip;
import flash.events.KeyboardEvent;

var mc:MovieClip = new MovieClip();
mc.graphics.beginFill(0x000000);
mc.graphics.drawCircle(30,30,30);
mc.graphics.endFill();
stage.addEventListener(KeyboardEvent.KEY_UP,keyUp);

function keyUp(e:KeyboardEvent):void{
        if(e.keyCode == 81){//q
                addChild(mc);
            }
        if(e.keyCode == 87){//w
                if(mc.stage){
                        removeChild(mc);
                    }
            }
    }

关于actionscript-3 - 如何在AS3中添加键盘交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27507479/

相关文章:

android - 如何一个接一个地播放音频文件

actionscript-3 - 爆炸粒子效果

ios - iOS 上的 Flash/AIR 舞台视频 - 这可能吗?表现如何?

ios - 在iPad上的File.browseForSave()

asp.net - 为什么某些 mp4 文件只播放声音?

c# - 使用 PlayOneShot 时如何停止音频

flash - Actionscript 3 和 navigateToUrl 方法

html - Flash 文件在 html 页面中不起作用

actionscript-3 - 为什么我的外部资源没有通过 ActionScript 中的 URL/Loaders 加载(在许多情况下)?

python - 来自 20 多个麦克风的输入