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

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

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

Регистрация: Jun 2008
Сообщений: 11
По умолчанию рандомные картинки из XML

Привет,

Задача стоит такая:
Из XML файла подгружается картинка с описанием и линком. Нужно, чтобы рандомно менялись по 4 картинки.

Удалось добиться, чтобы подгружались картинки подряд.. например 2,3,4,5... а хочется, чтобы было 2,7,1,3 и без повторений.

Код рандома теперь таков:
Код AS1/AS2:
function loadImages() {
	var min = 0;
	var max = total-3;
	var p1 = min + Math.floor (Math.random() * (max));
	var p2 = p1+1;
	var p3 = p1+2;
	var p4 = p1+3;
	if (loaded == filesize) {
		picture._alpha = 0;
		picture.loadMovie(image[p1], 1);
		desc_txt.text = description[p1];
		btn = link[p1];		
		picture2._alpha = 0;
		picture2.loadMovie(image[p2], 1);
		desc_txt2.text = description[p2];
		btn2 = link[p2];
		picture3._alpha = 0;
		picture3.loadMovie(image[p3], 1);
		desc_txt3.text = description[p3];
		btn3 = link[p3];
		picture4._alpha = 0;
		picture4.loadMovie(image[p4], 1);
		desc_txt4.text = description[p4];
		btn4 = link[p4];	
	}
}
код получился явно не через то место... и очень хочется его оптимизировать. Увы, я не программист ))

Чтобы картинки менялись после определённого количества времени сделал таким образом:
Код AS1/AS2:
setInterval(function() {gotoAndPlay(1);}, 10000);
просто заставляя проигрывать мувиклип ещё раз.. это тоже явно не оптимальный вариант.

и прелодер явно тоже оптимизируется ))


Простите за грамматику.
Жду коментариев ))
Вложения
Тип файла: zip xml_i_4_kartinki.zip (102.7 Кб, 113 просмотров)

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

Регистрация: Jan 2009
Адрес: Одесса
Сообщений: 309
Отправить сообщение для Fatality с помощью ICQ
Вот код возвращающий 4 случайных значения из массива:
Код AS1/AS2:
var arr:Array = ["a", "b", "c", "d", "e", "f", "g", "h", "j"];
 
function RandoMyCity(a:Array):Array
{
	var arr1:Array = a.slice();
	var arr2:Array = [];
	for (i=0; i<4; i++)
	{
		arr2.push(arr1.splice(Math.random()*arr1.length, 1));
	}
	return arr2;
}
 
trace(RandoMyCity(arr));
Цитата:
просто заставляя проигрывать мувиклип ещё раз.. это тоже явно не оптимальный вариант.
нет, не оптимальный, лучше весь код поместить в функцию и вызывать эту функцию setTomeout-ом.

Старый 30.01.2009, 13:54
ambu вне форума Посмотреть профиль Отправить личное сообщение для ambu Посетить домашнюю страницу ambu Найти все сообщения от ambu
  № 3  
Ответить с цитированием
ambu

Регистрация: Jun 2008
Сообщений: 11
Не получаеться массив из XML передать этой функции :/


Последний раз редактировалось ambu; 30.01.2009 в 17:40. Причина: не просмотрел хелп о массивах ))
Старый 30.01.2009, 18:16
Fatality вне форума Посмотреть профиль Отправить личное сообщение для Fatality Найти все сообщения от Fatality
  № 4  
Ответить с цитированием
Fatality
 
Аватар для Fatality

Регистрация: Jan 2009
Адрес: Одесса
Сообщений: 309
Отправить сообщение для Fatality с помощью ICQ
А каким интересно образом вы пытаетесь его передать ?

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

Регистрация: Jun 2008
Сообщений: 11
есть переменная total, которая выдаёт общее количество записей в хмл.
Пытаюсь её разбить на составляющие 1, 2, 3 и т.п. .. потом перемешать и подставить место этого
Код AS1/AS2:
var p1 = min + Math.floor (Math.random() * (max));
var p2 = p1+1;
var p3 = p1+2;
var p4 = p1+3;
времени потратил много.. но ничего не получилось

Добавлено через 2 минуты
кстати, спасибо за setTimeout. Стало значительно лутше и без глюков ))

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

Теги
random , xml

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

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


 


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


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