Назад в раздел
Сортировка дублированных MovieClip с использованием двумерного массива
div.main {margin-left: 20pt; margin-right: 20pt}
Сортировка дублированных MovieClip с использованием двумерного массива
Этот урок базируется на предыдущем:"Сортировка дублированных 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" элемент, содержащий "использованные" координаты, сокращая длину массива. Ну вот и всё.
Удачи. =JVS©= www.jvs.ru jvsh@mail.ru |
Автор: © JVSh Источник:
http://www.flasher.ru
|
|
|
|