Ниже показан финальный код, который должен у вас получиться. Предполагается, что внутри ролика весь код находится на отдельном слое «действия». В код вставлены комментарии для более легкой отладки и дальнейшего изменения проекта. Комментарии начинаются со знака //, при желании их можно опускать.

Основная сцена первый ключевой кадр:

// Связывание звуков из библиотеки с объектными переменными
ms1 = getTimer();
ms2 = getTimer();
c_1 = new Sound();
c_1.attachSound("c_1");
cd1 = new Sound();
cd1.attachSound("cd1");
d_1 = new Sound();
d_1.attachSound("d_1");
dd1 = new Sound();
dd1.attachSound("dd1");
e_1 = new Sound();
e_1.attachSound("e_1");
f_1 = new Sound();
f_1.attachSound("f_1");
fd1 = new Sound();
fd1.attachSound("fd1");
g_1 = new Sound();
g_1.attachSound("g_1");
gd1 = new Sound();
gd1.attachSound("gd1");
a_1 = new Sound();
a_1.attachSound("a_1");
ad1 = new Sound();
ad1.attachSound("ad1");
h_1 = new Sound();
h_1.attachSound("h_1");
c_2 = new Sound();
c_2.attachSound("c_2");
cd2 = new Sound();
cd2.attachSound("cd2");
d_2 = new Sound();
d_2.attachSound("d_2");
dd2 = new Sound();
dd2.attachSound("dd2");
e_2 = new Sound();
e_2.attachSound("e_2");
f_2 = new Sound();
f_2.attachSound("f_2");
fd2 = new Sound();
fd2.attachSound("fd2");
g_2 = new Sound();
g_2.attachSound("g_2");
gd2 = new Sound();
gd2.attachSound("gd2");
a_2 = new Sound();
a_2.attachSound("a_2");
ad2 = new Sound();
ad2.attachSound("ad2");
h_2 = new Sound();
h_2.attachSound("h_2");
// задание констант
// xp - код музыкальной фразы игрока
// sl - слой на котором размещаются мои ноты
// dx - растояние между нотами
// y0 - координата самой нижней ноты
// y0 - координата самой нижней ноты
// dy - растояние между нотами по высоте
// dl - длительность одной шестнадцатой ноты в милисекундах
// start - переменная определяющая режим игры: учеба=0, игра =1.
xp = "";
sl = 100;
dx = 40;
x0 = 70;
y0 = 226;
dy = -6;
dl = 200;
start = 0;
setProperty(exit, _visible, 0);
setProperty(enc, _visible, 0);

Основная сцена второй ключевой кадр:

// задание кода музыкальных образцов
obr1 = new String();
obr1 = obr1+"a_1a_1a_1a_1g_1f_1f_1e_1d_1";
p1 = new String();
p1 = p1+"080808080408080404";
name_song1 = "Во поли береза...";
obr2 = new String();
obr2 = obr2+"e_2dd2e_2dd2e_2h_1d_2c_2a_1";
p2 = new String();
p2 = p2+"080808080808080804";
name_song2 = "К Элоизе";
obr3 = new String();
obr3 = obr3+"e_1c_2h_1a_1gd1a_1c_2h_1a_1";
p3 = new String();
p3 = p3+"080808080808161604";
name_song3 = "Под небом голубым";
obr4 = new String();
obr4 = obr4+"g_1f_1f_1a_1h_1c_2d_2e_2f_2e_2d_2d_2";
p4 = new String();
p4 = p4+"080804080808080808080808";
name_song4 = "Yesterday";
obr5 = new String();
obr5 = obr5+"a_2e_2a_2e_2a_2gd2gd2gd2e_2gd2e_2gd2a_2a_2";
p5 = new String();
p5 = p5+"0808080808080408080808080804";
name_song5 = "Кузнечик";
obr6 = new String();
obr6 = obr6+"e_1a_1c_2h_1a_1c_2a_1h_1a_1f_1g_1e_1";
p6 = new String();
p6 = p6+"080808080808080808080802";
name_song6 = "Крестный отец";
stop();

Основная сцена третий ключевой кадр:

// Разделение кода на ноты
n = eval("obr"+num+".length")/3;
z = 0;
z2 = 0;
sample = new Array();
pausa = new Array();
for (i=1; i<=n; i++) {
sample[i] = eval("obr"+num).charAt(z);
z = z+1;
sample[i] = sample[i]+eval("obr"+num).charAt(z);
z = z+1;
sample[i] = sample[i]+eval("obr"+num).charAt(z);
z = z+1;
p = eval("p"+num).charAt(z2);
z2 = z2+1;
p = p+eval("p"+num).charAt(z2);
z2 = z2+1;
// Формирование нотного стана
if (p == "32") {
pausa[i] = 0*dl;
duplicateMovieClip("n_1-32", "n_1-32"+i, i);
name = "n_1-32"+i;
} else if (p == "16") {
pausa[i] = 1*dl;
duplicateMovieClip("n_1-16", "n_1-16"+i, i);
name = "n_1-16"+i;
} else if (p == "08") {
pausa[i] = 2*dl;
duplicateMovieClip("n_1-8", "n_1-8"+i, i);
name = "n_1-8"+i;
} else if (p == "04") {
pausa[i] = 4*dl;
duplicateMovieClip("n_1-4", "n_1-4"+i, i);
name = "n_1-4"+i;
} else if (p == "02") {
pausa[i] = 8*dl;
duplicateMovieClip("n_1-2", "n_1-2"+i, i);
name = "n_1-2"+i;
} else {
pausa[i] = 16*dl;
duplicateMovieClip("n_1-1", "n_1-1"+i, i);
name = "n_1-1"+i;
}
if (sample[i] == "c_1") {
setProperty(eval(name), _y, y0+0*dy);
} else if (sample[i] == "cd1") {
setProperty(eval(name), _y, y0+0*dy);
duplicateMovieClip("di", "di"+i+n, i+n);
setProperty("di"+i+n, _y, y0+0*dy);
setProperty("di"+i+n, _x, x0+i*dx);
} else if (sample[i] == "d_1") {
setProperty(eval(name), _y, y0+2*dy);
} else if (sample[i] == "dd1") {
setProperty(eval(name), _y, y0+2*dy);
duplicateMovieClip("di", "di"+i+n, i+n);
setProperty("di"+i+n, _y, y0+2*dy);
setProperty("di"+i+n, _x, x0+i*dx);
} else if (sample[i] == "e_1") {
setProperty(eval(name), _y, y0+4*dy);
} else if (sample[i] == "f_1") {
setProperty(eval(name), _y, y0+5*dy);
} else if (sample[i] == "fd1") {
setProperty(eval(name), _y, y0+5*dy);
duplicateMovieClip("di", "di"+i+n, i+n);
setProperty("di"+i+n, _y, y0+5*dy);
setProperty("di"+i+n, _x, x0+i*dx);
} else if (sample[i] == "g_1") {
setProperty(eval(name), _y, y0+7*dy);
} else if (sample[i] == "gd1") {
setProperty(eval(name), _y, y0+7*dy);
duplicateMovieClip("di", "di"+i+n, i+n);
setProperty("di"+i+n, _y, y0+7*dy);
setProperty("di"+i+n, _x, x0+i*dx);
} else if (sample[i] == "a_1") {
setProperty(eval(name), _y, y0+9*dy);
} else if (sample[i] == "ad1") {
setProperty(eval(name), _y, y0+9*dy);
duplicateMovieClip("di", "di"+i+n, i+n);
setProperty("di"+i+n, _y, y0+9*dy);
setProperty("di"+i+n, _x, x0+i*dx);
} else if (sample[i] == "h_1") {
setProperty(eval(name), _y, y0+11*dy);
} else if (sample[i] == "c_2") {
setProperty(eval(name), _y, y0+12*dy);
} else if (sample[i] == "cd2") {
setProperty(eval(name), _y, y0+12*dy);
duplicateMovieClip("di", "di"+i+n, i+n);
setProperty("di"+i+n, _y, y0+12*dy);
setProperty("di"+i+n, _x, x0+i*dx);
} else if (sample[i] == "d_2") {
setProperty(eval(name), _y, y0+14*dy);
} else if (sample[i] == "dd2") {
setProperty(eval(name), _y, y0+14*dy);
duplicateMovieClip("di", "di"+i+n, i+n);
setProperty("di"+i+n, _y, y0+14*dy);
setProperty("di"+i+n, _x, x0+i*dx);
} else if (sample[i] == "e_2") {
setProperty(eval(name), _y, y0+16*dy);
} else if (sample[i] == "f_2") {
setProperty(eval(name), _y, y0+17*dy);
} else if (sample[i] == "fd2") {
setProperty(eval(name), _y, y0+17*dy);
duplicateMovieClip("di", "di"+i+n, i+n);
setProperty("di"+i+n, _y, y0+17*dy);
setProperty("di"+i+n, _x, x0+i*dx);
} else if (sample[i] == "g_2") {
setProperty(eval(name), _y, y0+19*dy);
} else if (sample[i] == "gd2") {
setProperty(eval(name), _y, y0+19*dy);
duplicateMovieClip("di", "di"+i+n, i+n);
setProperty("di"+i+n, _y, y0+19*dy);
setProperty("di"+i+n, _x, x0+i*dx);
} else if (sample[i] == "a_2") {
setProperty(eval(name), _y, y0+21*dy);
} else if (sample[i] == "ad2") {
setProperty(eval(name), _y, y0+21*dy);
duplicateMovieClip("di", "di"+i+n, i+n);
setProperty("di"+i+n, _y, y0+21*dy);
setProperty("di"+i+n, _x, x0+i*dx);
} else {
setProperty(eval(name), _y, y0+23*dy);
}
setProperty(eval(name), _x, x0+i*dx);
}
if (start == 1) {
for (j=1; j<=50; j++) {
duplicateMovieClip("n0", "n0"+j, j);
}
}
i = 1;

Основная сцена четвертый ключевой кадр:

// Проигрывание ноты
eval(sample[i]).start("", 1);
x = getTimer();
y = getTimer();
while ((x-y)<pausa[i]) {
x = getTimer();
}
i = i+1;

Основная сцена пятый ключевой кадр:

// Переход к следующей ноте или остановка
if (i<=n) {
gotoAndPlay(4);
} else {
stop();
}

Основная сцена шестой ключевой кадр, процедура "pausa":

         if (d>80 && d<170) {
p_my = "32";
} else if (d>180 && d<320) {
p_my = "16";
} else if (d>380 && d<620) {
p_my = "08";
} else if (d>850 && d<1150) {
p_my = "04";
} else if (d>2800 && d<2200) {
p_my = "02";
} else {
p_my = "01";
}

Основная сцена седьмой ключевой кадр, процедура "nota":

         if (m == "c_1") {
setProperty(eval(name), _y, y0+0*dy);
} else if (m == "cd1") {
setProperty(eval(name), _y, y0+0*dy);
setProperty(eval(name2), _y, y0+0*dy);
setProperty(eval(name2), _x, x0+(sl-99)*dx);
} else if (m == "d_1") {
setProperty(eval(name), _y, y0+2*dy);
} else if (m == "dd1") {
setProperty(eval(name), _y, y0+2*dy);
setProperty(eval(name2), _y, y0+2*dy);
setProperty(eval(name2), _x, x0+(sl-99)*dx);
} else if (m == "e_1") {
setProperty(eval(name), _y, y0+4*dy);
} else if (m == "f_1") {
setProperty(eval(name), _y, y0+5*dy);
} else if (m == "fd1") {
setProperty(eval(name), _y, y0+5*dy);
setProperty(eval(name2), _y, y0+5*dy);
setProperty(eval(name2), _x, x0+(sl-99)*dx);
} else if (m == "g_1") {
setProperty(eval(name), _y, y0+7*dy);
} else if (m == "gd1") {
setProperty(eval(name), _y, y0+7*dy);
setProperty(eval(name2), _y, y0+7*dy);
setProperty(eval(name2), _x, x0+(sl-99)*dx);
} else if (m == "a_1") {
setProperty(eval(name), _y, y0+9*dy);
} else if (m == "ad1") {
setProperty(eval(name), _y, y0+9*dy);
setProperty(eval(name2), _y, y0+9*dy);
setProperty(eval(name2), _x, x0+(sl-99)*dx);
} else if (m == "h_1") {
setProperty(eval(name), _y, y0+11*dy);
} else if (m == "c_2") {
setProperty(eval(name), _y, y0+12*dy);
} else if (m == "cd2") {
setProperty(eval(name), _y, y0+12*dy);
setProperty(eval(name2), _y, y0+12*dy);
setProperty(eval(name2), _x, x0+(sl-99)*dx);
} else if (m == "d_2") {
setProperty(eval(name), _y, y0+14*dy);
} else if (m == "dd2") {
setProperty(eval(name), _y, y0+14*dy);
setProperty(eval(name2), _y, y0+14*dy);
setProperty(eval(name2), _x, x0+(sl-99)*dx);
} else if (m == "e_2") {
setProperty(eval(name), _y, y0+16*dy);
} else if (m == "f_2") {
setProperty(eval(name), _y, y0+17*dy);
} else if (m == "fd2") {
setProperty(eval(name), _y, y0+17*dy);
setProperty(eval(name2), _y, y0+17*dy);
setProperty(eval(name2), _x, x0+(sl-99)*dx);
} else if (m == "g_2") {
setProperty(eval(name), _y, y0+19*dy);
} else if (m == "gd2") {
setProperty(eval(name), _y, y0+19*dy);
setProperty(eval(name2), _y, y0+19*dy);
setProperty(eval(name2), _x, x0+(sl-99)*dx);
} else if (m == "a_2") {
setProperty(eval(name), _y, y0+21*dy);
} else if (m == "ad2") {
setProperty(eval(name), _y, y0+21*dy);
setProperty(eval(name2), _y, y0+21*dy);
setProperty(eval(name2), _x, x0+(sl-99)*dx);
} else {
setProperty(eval(name), _y, y0+23*dy);
}
setProperty(eval(name), _x, 70+(sl-99)*dx);

Основная сцена восьмой ключевой кадр, процедура "my_music":

         if (p_my == "32") {
duplicateMovieClip("n_1-32", "n_1-32"+sl, sl);
name = "n_1-32"+sl;
} else if (p_my == "16") {
duplicateMovieClip("n_1-16", "n_1-16"+sl, sl);
name = "n_1-16"+sl;
} else if (p_my == "08") {
duplicateMovieClip("n_1-8", "n_1-8"+sl, sl);
name = "n_1-8"+sl;
} else if (p_my == "04") {
duplicateMovieClip("n_1-4", "n_1-4"+sl, sl);
name = "n_1-4"+sl;
} else if (p_my == "02") {
duplicateMovieClip("n_1-2", "n_1-2"+sl, sl);
name = "n_1-2"+sl;
} else {
duplicateMovieClip("n_1-1", "n_1-1"+sl, sl);
name = "n_1-1"+sl;
}
duplicateMovieClip("di", "di"+sl, sl+25);
name2 = "di"+sl;
call("nota");
col = new Color(eval(name));
col.setRGB(0xff0000);
col2 = new Color(eval(name2));
col2.setRGB(0xff0000);

Основная сцена девятый ключевой кадр, процедура "proverka":

         if (xp == ex) {
result = "У вас получилось!";
}

Клавиша рояля до первой октавы:

         on (press) {
ms1 = getTimer();
c_1.start("", 1);
}
on (release) {
m = "c_1";
xp = xp+m;
ms2 = getTimer();
d = ms2-ms1;
call("pausa");
call("my_music");
sl = sl+1;
call("proverka");
}

Кнопка выбора музыкального образца:

         on (release) {
for (j=1; j<=50; j++) {
duplicateMovieClip("n0", "n0"+j, j);
}
ex = obr1;
num = 1;
gotoAndPlay(3);
}
on (rollOver) {
song = name_song1;
}
on (rollOut) {
if (num == 1) {
song = name_song1;
} else {
song = "";
}
}

Кнопка стирания нот музыкального образца:

         on (release) {
for (j=1; j<=50; j++) {
duplicateMovieClip("n0", "n0"+j, j);
}
song = "";
}

Кнопка стирания нот игрока, начало игры заново:

         on (release) {
for (j=100; j<=150; j++) {
duplicateMovieClip("n0", "n0"+j, j);
}
sl=100;
xp = "";
result="";
}

Кнопка перехода в игровой режим:

         on (release) {
// kol_disk - количество музыкальных фрагментов-образцов;
kol_disk = 6;
if (start == 0) {
start = 1;
for (j=1; j<=kol_disk; j++) {
setProperty("disk"+j, _visible, 0);
}
setProperty(exit, _visible, 1);
setProperty(enc, _visible, 1);
song = "Режим игры, будьте внимательны!";
num = random(kol_disk)+1;
ex = eval("obr"+num);
gotoAndPlay(3);
} else {
start = 0;
for (j=1; j<=kol_disk; j++) {
setProperty("disk"+j, _visible, 1);
}
setProperty(exit, _visible, 0);
setProperty(enc, _visible, 0);
}
}