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

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

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

Регистрация: Jan 2008
Адрес: Minsk Belarus
Сообщений: 107
По умолчанию Вопрос по циклической загрузке клипов в рандомном порядке. Возможно ли?

Дорогие флешеры.
Вновь фрилансерская судьба преподнесла вопрос, который я не в состоянии решить сам.
Ситуация такая:
Код:
Stage.scaleMode = "noscale";
var w = new XML();
all._visible = false;
//LINKS
w.load("links.xml");
w.ignoreWhite = true;
w.onLoad = function() {
	col = this.firstChild.childNodes[0].attributes.number;
	min = 20;
//Создан циклический загрузчик, который по очереди загружает нужное 
//кол-во изображений в сгеннерированные мувики.
	for (i=0; i<col; i++) {
		var k_mc:MovieClip = all.createEmptyMovieClip("k"+i, i);
//Тут генерятся пустышки, на которые будут вешаться ссылки:
		var l_mc:MovieClip = all.l.duplicateMovieClip("l"+i, 200+i);
//Берется для конкретной пустышки, конкретная ссылка из хмл
		l_mc.link = this.firstChild.childNodes[1+i].attributes["logo"+i];
//Присваивается…
		l_mc.onRelease = function() {
			getURL(this.link, "_blank");
		};
//loader
		var mc0Listener:Object = new Object();
		var p0:MovieClipLoader = new MovieClipLoader();
		p0.addListener(mc0Listener);
		p0.loadClip(i+".png", all["k"+i]);
	}
	mc0Listener.onLoadInit = function() {
//После окончания загрузки
		dl = 0;
		all.k0._x = 0;
		for (b=0; b<col; b++) {
			dl += all["k"+b]._width+60;
			bb = 1;
			bb += b;
//Клипы выстраиваются исходя из их ширины один за другим.
			all["l"+b]._width = all["k"+b]._width;
			all["k"+b]._y = (100-all["k"+b]._height)/2;
			all["k"+bb]._x = dl;
			all["l"+b]._y = (100-all["k"+b]._height)/2;
			all["l"+bb]._x = dl;
		}
		max = r-dl;
		all._visible = true;
	};
Вот. Сейчас все грузится последовательно и расставляется соответственно последовательно — один за другим, как кирпичеки.

Вот вопрос:
Заказчик хочет, чтобы клипы каждый раз грузились рандомно. Как осуществить это? К примеру, в папке лежит 50 клипов, их все нужно загрузить на одну горизонталь, и расставить их все в перемешку.
Как быть?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ну так перемешайте массив childNodes перед загрузкой.
__________________
Reality.getBounds(this);

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

Регистрация: Jan 2008
Адрес: Minsk Belarus
Сообщений: 107
Wolsh, большое спасибо. Не покажите как именно это сделать?

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
Wolsh это тут уже делал,поишите в его сообщениях
__________________
Я просто добрый шутник.

Старый 07.11.2008, 18:36
storm_ вне форума Посмотреть профиль Отправить личное сообщение для storm_ Посетить домашнюю страницу storm_ Найти все сообщения от storm_
  № 5  
Ответить с цитированием
storm_
 
Аватар для storm_

Регистрация: Jan 2008
Адрес: Minsk Belarus
Сообщений: 107
scarbo, спасибо конечно за совет. Но у Wolsh всего 1729 сообщений .
Wolsh, отзовитесь пожалуйста.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код:
var tempArr:Array = this.firstChild.childNodes.concat();
var piclength:Number = tempArr.length;
var randomNodes:Array = [];
for(var i = 0; i < piclength; i++)
{
    var q:Number = Math.floor(Math.random()*(tempArr.length-1));
    randomNodes.push(tempArr[q]);
    tempArr.splice(q, 1);
}
trace(randomNodes)
__________________
Reality.getBounds(this);

Старый 07.11.2008, 19:11
storm_ вне форума Посмотреть профиль Отправить личное сообщение для storm_ Посетить домашнюю страницу storm_ Найти все сообщения от storm_
  № 7  
Ответить с цитированием
storm_
 
Аватар для storm_

Регистрация: Jan 2008
Адрес: Minsk Belarus
Сообщений: 107
Wolsh, Спасибо огромное! Выручаете не первый раз!

Старый 07.11.2008, 21:03
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А, блин, косяк нашел - последний остается всегда последним.
Правильно вот так
Код:
var tempArr:Array = this.firstChild.childNodes.concat();
var piclength:Number = tempArr.length;
var randomNodes:Array = [];
for(var i = 0; i < piclength; i++)
{
    var q:Number = Math.floor(Math.random()*(tempArr.length));
    randomNodes.push(tempArr[q]);
    tempArr.splice(q, 1);
}
trace(randomNodes)
__________________
Reality.getBounds(this);

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

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

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


 


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


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