Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.05.2008, 15:54
400kg вне форума Посмотреть профиль Отправить личное сообщение для 400kg Найти все сообщения от 400kg
  № 1  
Ответить с цитированием
400kg

Регистрация: Nov 2007
Сообщений: 51
По умолчанию Сортировка. В чем ошибка?

Ситуация такая. Турнирная таблица игроков. В итоге считаются победы и набранные очки в играх. В случае равного количества побед - выше становится тот у кого больше очков. Вот код.

Код:
var rec_array:Array = new Array();
rec_array.push( { wins: 12, points: 186} );
rec_array.push( { wins: 3, points: 71} );
rec_array.push( { wins: 2, points: 36} );
rec_array.push( { wins: 1, points: 30} );
rec_array.push( { wins: 0, points: 37} );
rec_array.push( { wins: 0, points: 20} );
rec_array.push( { wins: 0, points: 100} );
rec_array.push( { wins: 0, points: 5} );
rec_array.push( { wins: 3, points: 25} );


rec_array.sortOn(["wins", "points"], 18);
for (y=0; y<rec_array.length; y++) {
	trace("wins: "+rec_array[y].wins+"  points: "+rec_array[y].points);
}
В чем ошибка ? Почему в итоге какая-то странная сортировка. Вроде бы сделал все "по книжке".

Подскажите плиз... Очень нужно.


Последний раз редактировалось 400kg; 12.05.2008 в 16:16.
Старый 12.05.2008, 15:59
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Что значит странная в вашем понимании и что должно быть?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 12.05.2008, 16:08
400kg вне форума Посмотреть профиль Отправить личное сообщение для 400kg Найти все сообщения от 400kg
  № 3  
Ответить с цитированием
400kg

Регистрация: Nov 2007
Сообщений: 51
Должна быть основная последовательность WINS. И только в случае равенства WINS должна происходить сортировка по POINTS. А сейчас сортируется просто по POINTS как я понял.

Вот так должно быть по задумке отсортировано:

wins: 12 points: 186
wins: 3 points: 71
wins: 3 points: 25
wins: 2 points: 36
wins: 1 points: 30
wins: 0 points: 37
wins: 0 points: 20
wins: 0 points: 10
wins: 0 points: 5


Последний раз редактировалось iNils; 12.05.2008 в 16:13.
Старый 12.05.2008, 16:13
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
У меня так
Цитата:
wins: 12 points: 186
wins: 3 points: 71
wins: 2 points: 36
wins: 1 points: 30
wins: 0 points: 37
wins: 0 points: 20
wins: 0 points: 10
wins: 0 points: 5
У вас публикация под какую версию?

Надо использовать кнопку , а не создавать несколько сообщений подряд.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 12.05.2008, 16:18
400kg вне форума Посмотреть профиль Отправить личное сообщение для 400kg Найти все сообщения от 400kg
  № 5  
Ответить с цитированием
400kg

Регистрация: Nov 2007
Сообщений: 51
Сорри. Случайно нажал. Под седьмую версию публикация.

А вот этот код какой результат дает у вас ?

Код:
var rec_array:Array = new Array();
rec_array.push( { wins: 12, points: 186} );
rec_array.push( { wins: 3, points: 71} );
rec_array.push( { wins: 2, points: 36} );
rec_array.push( { wins: 1, points: 30} );
rec_array.push( { wins: 0, points: 37} );
rec_array.push( { wins: 0, points: 20} );
rec_array.push( { wins: 0, points: 100} );
rec_array.push( { wins: 0, points: 5} );
rec_array.push( { wins: 3, points: 25} );


rec_array.sortOn(["wins", "points"], 18);
for (y=0; y<rec_array.length; y++) {
	trace("wins: "+rec_array[y].wins+"  points: "+rec_array[y].points);
}


Последний раз редактировалось iNils; 12.05.2008 в 16:23.
Старый 12.05.2008, 16:24
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Хелп:
Цитата:
The ability to use different options parameters on multiple sort fields was added in Flash Player 8.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 12.05.2008, 16:27
400kg вне форума Посмотреть профиль Отправить личное сообщение для 400kg Найти все сообщения от 400kg
  № 7  
Ответить с цитированием
400kg

Регистрация: Nov 2007
Сообщений: 51
Опа... Спасибо! =)

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:19.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:19.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.