Автор: © JVSh
Этот урок базируется на предыдущем:"Сортировка дублированных
MovieClip" и отличается от последнего только использованием двумерного
массива.
Поэтому я не буду расписывать его
подробно, а только укажу на детали, которые эти примеры отличают друг от
друга.Вот подробный
код: //=====================================================================// pos=[[50,50],[100,50],[150,50],[50,100],[100,100],[150,100],[50,150],[100,150],[150,150]]; for(i=1;i<=9;i++){ a=random(pos.length); x=pos[a][0]; y=pos[a][1]; _root.attachMovie("ball",
"ball"+i, i); eval("ball"+i)._x =
x; eval("ball"+i)._y =
y; eval("ball"+i).gotoAndStop(i); pos.splice(a,
1); } //=====================================================================// В
первой строке кода мы создаем двумерный массив "pos", который в каждом
элементе массива содержит второй массив, с координатами для горизонтальной и
вертикальной
оси.
pos=[[50,50],[100,50],[150,50],[50,100],[100,100],[150,100],[50,150],[100,150],[150,150]];
можно
писать и так, если вам привычнее:
pos=new Array(); pos[0]=new
Array(50,50); pos[1]=new Array(50,100); pos[2]=new
Array(50,150); pos[3]=new Array(100,50); pos[4]=new
Array(100,100); pos[5]=new Array(100,150); pos[6]=new
Array(150,50); pos[7]=new Array(150,100); pos[8]=new
Array(150,150);
По сравнению с первой строкой выглядит
"потяжелее". Оба блока кода работают одинаково, хотя Смольный
(Smolniy), рекомендует воздерживаться от квадратных скобок...Соответственно
первый элемент каждого маленького массивчика содержит горизонтальную координату,
а второй - вертикальную.
a=random(pos.length);
С этой строкой мы
уже встречались, она задавала нам номер позиции в массиве, откуда мы брали
координаты. Сейчас, с её помощью, мы будем брать сразу пару
координат.
x=pos[a][0]; y=pos[a][1];
А вот теперь мы определим
переменные для горизонтальных и вертикальных координат: для этого мы из массива
"pos" из элемента [a] берём значение элемента [0] для "x" и
значение элемента [1] для "y".
eval("ball"+i)._x =
x; eval("ball"+i)._y =
y; eval("ball"+i).gotoAndStop(i);
Как и в предыдущем
примере, задаём сдублированным мувикам их новые координаты, и останавливаем их
на кадре с номером соответствующем переменной
"i".
pos.splice(a, 1);
И последняя строка, которая
убирает из массива "pos" элемент, содержащий
"использованные" координаты, сокращая длину массива. Ну вот и
всё.
|