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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.01.2009, 17:23
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 1  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
По умолчанию random без повторений

Здравствуйте.
Есть цикл при помощи которого грузятся картинки. Цикл проходит 5 раз (к примеру). В цикле картинки грузятся в случайном порядке при помощи
Код AS1/AS2:
Math.floor(Math.random ()* 5)
Проблема в том что Math.random за 5 раз выдаёт одинаковые цифры и грузятся одинаковые картинки..
Подскажите как можно сделать random без повторений?
Спасибо!

Старый 24.01.2009, 17:45
Division вне форума Посмотреть профиль Отправить личное сообщение для Division Найти все сообщения от Division
  № 2  
Ответить с цитированием
Division
 
Аватар для Division

Регистрация: Jul 2008
Адрес: Украина, Херсон
Сообщений: 635
Отправить сообщение для Division с помощью ICQ
Можно создать массив из пяти элементов [0,1,2,3,4] и перемешать его. Потом просто проходишь по нему и грузишь картинки.
__________________
while(1) {}

Старый 24.01.2009, 17:48
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 3  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Да! Как раз то что нужно! Как создать массив я знаю, а как можно перемешать его?

Старый 24.01.2009, 17:49
Division вне форума Посмотреть профиль Отправить личное сообщение для Division Найти все сообщения от Division
  № 4  
Ответить с цитированием
Division
 
Аватар для Division

Регистрация: Jul 2008
Адрес: Украина, Херсон
Сообщений: 635
Отправить сообщение для Division с помощью ICQ
Тебе не надо проходить по нему в случайном порядке. Тебе надо его перемешать. Несколько раз поменять случайные элементы друг с другом местами.

глянь тут
__________________
while(1) {}


Последний раз редактировалось Division; 24.01.2009 в 18:37.
Старый 24.01.2009, 17:55
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 5  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Цитата:
Сообщение от Division Посмотреть сообщение
Тебе не надо проходить по нему в случайном порадке. Тебе надо его перемешать.
Да, я понял. Глупость написал и удалил.

Цитата:
Сообщение от Division Посмотреть сообщение
Несколько раз поменять случайные элементы друг с другом местами.
Спасибо за подсказку, буду думать.

Старый 24.01.2009, 18:17
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 6  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
Ну, вообще-то я уже поднимал данный вопрос.
(Надо поискать)


Последний раз редактировалось Zik.; 24.01.2009 в 18:20.
Старый 24.01.2009, 18:29
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 7  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Искал, что-то не нашел... И как нашел решение? Если глянуть темы через твой профиль найду?

Добавлено через 5 часов 4 минуты
Если кому-нибудь будет полезным вот перемешивание элементов в массиве

Код AS1/AS2:
Array.prototype.shuffle = function( b )
{
 var i = this.length, j, t;
 while( i ) 
 {
  j = Math.floor( ( i-- ) * Math.random() );
  t = b && typeof this[i].shuffle!=='undefined' ? this[i].shuffle() : this[i];
  this[i] = this[j];
  this[j] = t;
 }
 
 return this;
};
Как применить
Код AS1/AS2:
var a = new Array(1,2,3,4,5);
alert( a.shuffle() );
Источник

Добавлено через 5 часов 5 минут
В принципе вариант работающий. Но хотелось бы подобный рандом без массива. Кто с подобным сталкивался? Прошу подсказать.

Старый 26.01.2009, 12:29
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 8  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Цитата:
Сообщение от Art_133 Посмотреть сообщение
...Но хотелось бы подобный рандом без массива...
Без массива не знаю. Нужно ведь запоминать номера как-то.
Но без перемешивания запросто:
Код AS1/AS2:
// Задаем кол-во картинок
var k:Number = 5;
var s = [];
/ заполняем массив. Без него, ну, ни как...
for (var i:Number = 0; i<k; i++) {
	s[i] = [i+1];
}
while (s.length) {
	var p = s.splice(random(s.length), 1);
	trace(p);
}

Старый 26.01.2009, 12:57
chingachgoog вне форума Посмотреть профиль Найти все сообщения от chingachgoog
  № 9  
Ответить с цитированием
chingachgoog
Banned
[+4 01.02.09]
[+1 01.02.09]
 
Аватар для chingachgoog

блогер
Регистрация: Nov 2006
Адрес: Moscow
Сообщений: 2,145
Записей в блоге: 7
http://flasher.ru/forum/showthread.p...587#post779587

Старый 27.01.2009, 22:39
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 10  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
спасибо за советы!

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

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

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


 


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


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