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

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

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

Регистрация: Oct 2002
Адрес: Москов сити.
Сообщений: 48
Question Неповторяющийся рандом.

Друзья, бьюсь уже 3 дня. думал обойтись без помощи форума, да видать по-другому невозможно.
Есть следующая задумка (почти реализованная):
Мувик из N кадров, на каждом кадре стоп, в каждом кадре разные объекты, назовем его БИБЛИОТЕКА.
Мувик в который вставлен БИБЛИОТЕКА (назовем его ВЫБОРКА) и прописано следующее:
--------------------------------------------------------
Код:
onClipEvent (load) {
	var playscene=[1,2,3,4,5,6,7,8,9];
	n=random(playscene.length);
	this.gotoAndStop(n);
	playscene.splice(n,1);
}
--------------------------------------------------------
Идея такая - рандомно выбирается кадр из БИБЛИОТЕКА, и в ВЫБОРКА отображается соответсвенно.
Затем есть еще один мувик, содержащий ВЫБОРКА и код: дубликат симбл.
Итого пытаюсь получить но не получается: чтобы дублированные объекты генерились рандомно, но ни один из них не повторялся. Генерятся рандомно, но иногда бывают повторения.

В экшене я не очень шарю, но понимать вроде могу. Книжка под боком. ПЫтался сделать это (основано на исходнике генерящем неповторябщися рандом из 10 цифр):
--------------------------------------------------------
Код:
onClipEvent (load) {
	Temp = "";
	i = 1;
while (Number(i)<>11) {
	rnd = random(10);
	x = 1;
	while (Number(x)<>Number((Number(length(Temp))+1))) {
		if ((substring(Temp, x, 1)) eq rnd) {
			rnd = "";
		}
		x = Number(x)+1;
	}
	if (rnd ne "") {
		Temp = rnd;
		i = Number(i)+1;
	}
}
	this.gotoAndStop(temp);
}
--------------------------------------------------------
Итог тот=же, повторения наблюдаются.

Может я просто неправильно мыслю. Если есть другой путь, пожалуйста подскажите. Могу выслать исходник, который я вымучиваю из исходника смарт клип.


Последний раз редактировалось iNils; 06.01.2007 в 19:45.
Создать новую тему   Часовой пояс GMT +4, время: 18:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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