![]() |
|
||||||||||
|
|
|
|||||
|
Я работал MX 2004
там стоят фильтры на прием аргументов возможно в 6-ки это и вызывает глюк Попробуй убери скобки: вместо arr.sortOn(["y", "x"]); напиши arr.sortOn("y", "x"); Нет подрукой 6-ки чтоб проверить, но должно сработать Если сработает назовите меня Super Mega Gosu Отцом ![]() |
|
|||||
|
Регистрация: Apr 2003
Адрес: DC
Сообщений: 4,489
|
Цитата:
__________________
flash/flex/unity |
|
|||||
|
Регистрация: Nov 2003
Сообщений: 290
|
Sergey"iLoveYou",
arr = [];
arr.push({x:1, y:8});
arr.push({x:1, y:5});
arr.push({x:1, y:9});
arr.push({x:1, y:7});
arr.push({x:1, y:6});
arr.push({x:1, y:1});
arr.push({x:3, y:4});
arr.push({x:9, y:5});
arr.push({x:2, y:9});
arr.push({x:5, y:2});
arr.push({x:7, y:6});
arr_len = arr.length;
function sortarr(par) {
for (var i = 0; i<arr_len; i++) {
for (var k = i+1; k<arr_len; k++) {
if (arr[i][par]>arr[k][par]) {
sx = arr[i].x;
sy = arr[i].y;
arr[i].x = arr[k].x;
arr[i].y = arr[k].y;
arr[k].x = sx;
arr[k].y = sy;
}
}
}
}
function printarr() {
for (var i = 0; i<11; i++) {
trace("x : "+arr[i].x+" | "+"y : "+arr[i].y);
}
}
printarr();
trace("=======");
sortarr("x");
printarr();
trace("=======");
sortarr("y");
printarr();
x : 1 | y : 8 x : 1 | y : 5 x : 1 | y : 9 x : 1 | y : 7 x : 1 | y : 6 x : 1 | y : 1 x : 3 | y : 4 x : 9 | y : 5 x : 2 | y : 9 x : 5 | y : 2 x : 7 | y : 6 ======= x : 1 | y : 8 x : 1 | y : 5 x : 1 | y : 9 x : 1 | y : 7 x : 1 | y : 6 x : 1 | y : 1 x : 2 | y : 9 x : 3 | y : 4 x : 5 | y : 2 x : 7 | y : 6 x : 9 | y : 5 ======= x : 1 | y : 1 x : 5 | y : 2 x : 3 | y : 4 x : 1 | y : 5 x : 9 | y : 5 x : 7 | y : 6 x : 1 | y : 6 x : 1 | y : 7 x : 1 | y : 8 x : 1 | y : 9 x : 2 | y : 9 Flash 6 MX |
|
|||||
|
Слишь hr
Пробывал убрать скобки: вместо arr.sortOn(["y", "x"]); напиши arr.sortOn("y", "x"); жутко интиресно ![]() |
|
|||||
|
Регистрация: Nov 2003
Сообщений: 290
|
Jlekc,
arr = []; arr[0] = {x:1, y:10}; arr[1] = {x:2, y:30}; arr[2] = {x:5, y:10}; arr[3] = {x:3, y:10}; arr[4] = {x:2, y:20}; arr[5] = {x:3, y:20}; arr[6] = {x:7, y:20}; arr[7] = {x:4, y:20}; for (var i = 0; i<arr.length; i++) { trace('x : '+arr[i].x+' | '+'y : '+arr[i].y); } arr.sortOn("y", "x"); trace('after'); for (var i = 0; i<arr.length; i++) { trace('x : '+arr[i].x+' | '+'y : '+arr[i].y); } выводит: x : 1 | y : 10 x : 2 | y : 30 x : 5 | y : 10 x : 3 | y : 10 x : 2 | y : 20 x : 3 | y : 20 x : 7 | y : 20 x : 4 | y : 20 after x : 1 | y : 10 x : 3 | y : 10 x : 5 | y : 10 x : 4 | y : 20 x : 7 | y : 20 x : 2 | y : 20 x : 3 | y : 20 x : 2 | y : 30 |
|
|||||
|
а меня:
x : 1 | y : 10 x : 2 | y : 30 x : 5 | y : 10 x : 3 | y : 10 x : 2 | y : 20 x : 3 | y : 20 x : 7 | y : 20 x : 4 | y : 20 after x : 3 | y : 10 x : 5 | y : 10 x : 1 | y : 10 x : 2 | y : 20 x : 3 | y : 20 x : 7 | y : 20 x : 4 | y : 20 x : 2 | y : 30 посмотри синтаксис функции sortOn. В хелпаке всегда есть рабочий пример. Или достать нормальный флеш ( у всех работает ) ![]() |
|
|||||
|
Регистрация: Nov 2003
Сообщений: 290
|
а мне то нужно
after x : 1 | y : 10 x : 3 | y : 10 x : 5 | y : 10 x : 2 | y : 20 x : 3 | y : 20 x : 4 | y : 20 x : 7 | y : 20 x : 2 | y : 30 ![]() |
|
|||||
|
Регистрация: Nov 2003
Сообщений: 290
|
Ребята, выручайте...
Что делать то? Может кто иной способ сортировки предложит? Другой Flash сейчас возможности нет достать. ![]() |
|
|||||
|
пишу, скоро будет
![]()
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
|
wanted
Регистрация: Sep 2002
Сообщений: 1,737
|
: hr :, предложенный мной алгоритм работает, только он не учитывает, как выясняется, все твои требования. подумаю -- переделаю. а ты тоже без дела не сиди -- поищи в инете алгоритмы сортировки двумерных массивов.
__________________
вот тебе, революционный единоличник! вот тебе кулачество! вот тебе Союзкиножурнал! |
![]() |
Часовой пояс GMT +4, время: 15:12. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|