在阵列Flash AS3中的某个特定点做某事

时间:2014-04-24 17:27:50

标签: arrays actionscript-3 flash

我正在制作节奏游戏,我希望改变歌曲到达某一点的时间;但我不知道该怎么做。

这是我的数组控制正在播放的音符(1=Z,2=X,3=N,4=M)

var lvlArray1:Array = new Array(0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,
                                3,0,0,0,3,0,0,0,3,0,0,3,0,0,0,0,0,
                                0,0,0,0,0,1,4,1,4,0,0,0,0,0,0,0,0);

为了控制我的节奏,我有:

//sTempo is how many frames it takes before
//a note is created. Because it's 12, and
//the frame rate is 24, it will take a half of a second
//for a note to be made
var sTempo:Number = 12;

当第40个音符播放时(1,4,1,4开始的地方),我如何改变速度来说6?

我觉得这可能是非常简单的事情,但我的想法只是空白。

感谢您的时间!

1 个答案:

答案 0 :(得分:0)

如果没有太多代码可以继续,这就是我已经熟练的了。

您可以拥有与Dictionary的索引相对应的单独lvlArray1速度更改。而且,只要您要创建新笔记,就可以查看该字典。

示例:

var tempoChanges:Dictionary = new Dictionary();
tempoChanges[39] = 6; // specify a tempo change to 6 for the 40th note (index 39)

// check to see if there's a tempo change for index i
if(tempoChanges[i] != undefined)
{
    // if there is, change the tempo to that value
    sTempo = tempoChanges[i];
}