Большой Воронежский Форум
» Веб-дизайн>во Flash MX сделать случайный выбор картинок ?
Daria 08:26 12.04.2004
Помогите, пожалуйста !!!
Подскажите, как во Flash MX сделать случайный выбор картинок,
чтобы при каждой загрузке Flash-ролика у меня появлялась бы новая картинка.
Заранее благодарна. Дарья. [Ответ]
acidovsky 15:48 12.04.2004
Daria создай мувик с количеством кадров равным количеству твоих картинок, в каждом кадре по картинке.

Потом, создай кей_фрем в другом слое, и на него повесь
ifFrameIsLoaded { _root.muvik.gotoAndplay(random(10)) }
Где 10- это количество кадров в твоем мувике с картинками, а "muvik" это его имя.
или типа того, но мысль я думаю понятна. [Ответ]
flasher 14:47 14.04.2004
Daria
Идея ACIDovsky только не обязательно мувик делать можно все и к корне ролика положить...
и еще в каждом кадре картинке поставить stop();
а для перехода на нужную картинку сразу после прилоадера (или можно в прелоадер)

n = int(Math.random()*КоличествоКартинок)+НомерКадраПе рвойКартинки;
_root.gotoAndPlay(n); [Ответ]
Random 17:26 14.04.2004
Народ! Вы что совсем, совсем флэш не знаете?! Закачать все картинки (и это в MX то) и показывать только одну!!! Да еще бэкграундные картинки!!!
Картинку надо выбирать серверно, ну на крайняк во флэш загнать массив имен файлов картинок и случаным образом выбирать один эллемент и потом уже качать одну единственную в ролик...
Daria - дерни нашего нынешнего самого модного флэшера. Как его там? Ну который недавно рекламировался и здесь и в вакансиях. Пусть объяснит. Ну если и он не бум-бум, или не захочет возится, обращайся ко мне, я распишу скрипты. Но у меня сейчас со временем опаньки.

Random добавил [date]1081953204[/date]:
И flasher, решение ACIDovsky, если уж на то пошло более правильное, со всех точек зрения.

ЗЫ Блин, народ, вы меня растроили, сорри если оказался резок ... [Ответ]
art 21:03 14.04.2004
Random ну спасибо .. меня Артём зовут.. если конечно про меня речь - если нет , то сори...

Daria Random прав , варианта 2 :


1--есть ПХП на хостинге :


Пишим скрипт на ПХП
################СКРИПТ###################

<?
//Создаём массив картинок имён, допустим 10 штук от 1.jpg до 10.jpg

$img=array("1.jpg","2.jpg","2.jpg","4.jpg","5.jpg" ,"6.jpg","7.jpg","8.jpg","9.jpg","10.jpg");

//Раскручиваем генератор случайного числа

srand((double)microtime()*1000000);

//Устанавливаем имя файла картинки случайным образом

$filename = $img[round(rand(0,sizeof($img)))];

//Открываем файл для чтения
$handle = fopen($filename,"r");

//В переменную $contents читаем все содержимое файла в бинарном виде
$contents = fread ($handle, filesize ($filename));

//Говорим браузеру тип данных, которые собираемся передавать
header("Content-type: image/jpeg");

//Пихаем все это в браузер, а точнее во флешу
print $contents;

//Закрываем файл
fclose($handle);
?>
#############КОНЕЦ СКРИПТ##################

Кладём этот скрипт на сервер назвав его допусим img.php , туда же флешу
в кторой создаём мувик (!!! с выравниванием по левому верхнему углу -ВАЖНО!!!) - допустим мувик move
Туда откуда нужно вызвать загрузку картинки пишем _root.move.loadMovie("img.php");
Вуаля !

Ещё альтернатива, можно применить другой скрипт ПХП :

############СКРИПТ 2####################

<?
//Создаём массив картинок имён, допустим 10 штук от 1.jpg до 10.jpg

$img=array("1.jpg","2.jpg","2.jpg","4.jpg","5.jpg" ,"6.jpg","7.jpg","8.jpg","9.jpg","10.jpg");

//Раскручиваем генератор случайного числа

srand((double)microtime()*1000000);

//Устанавливаем имя файла картинки случайным образом

$filename = $img[round(rand(0,sizeof($img)))];

//пинаем браузер на эту картинку

header("Location: $filename");
?>
################КОНЕЦ СКРИПТ 2###############

Всё остальное то же самое как и для первого скрипта.




1--НЕТ ПХП на хостинге :

На сайт кладём текстовый файлик с именами картинок :
########файл с именами######################
u1=1.jpg&u2=2.jpg&u3=3.jpg&u4=4.jpg&u5=5.jpg&u6=6. jpg&u7=7.jpg&u8=8.jpg&u9=9.jpg&u10=10.jpg
############файл с именами коннец##############
Можно конечно список имён во флешь зашить , но так удобнее если картинки менять надо будет иногда , или их количество..

Кладём этот файл на сервер назвав его допусим img.txt , туда же флешу
в кторой создаём мувик (!!! с выравниванием по левому верхнему углу -ВАЖНО!!!) - допустим мувик move
Туда откуда нужно вызвать загрузку картинки пишем


_root.move.loadVariables("img.txt");
_root.move.onData = function(){
i=u1;
n=1;
while (length(i)<2){n++;
i=eval("u" add n+1);}
_root.move.loadMovie(eval("u" add Math.round(Math.random()*n)));
}


Вуаля !



P.S. Если что намудрил, не пинать !
Не пробовал , писал не внимательно , но истина гдето крайне рядом !
Что непонятно стучитесь в аску номер есть в профайле...
[Ответ]
acidovsky 22:24 14.04.2004
art се это имеет смысл только если размер картинок БОЛЬШОЙ. в остальных случаях нафик надо?

И читать файл в бинарном виде и передавать во флешку, это помоему ты реально НАМУДРИЛ. Помоему лучше именем обойтись...

Тоже повые**сь:

1) Создаем текстовый файл с именами картинок, в каждой строке этого файла по одному именни.
2) читаем файл построчно в массив
3)Случайным образом выбираем номер элемента массива.
4)Передаем выбранную строку с именем файла во влеш.
5)Вуа ля!

плюсы:
1)легко менять кол-во и имена файлов, котороые МОЖНО отображать (фселишьтекст.файл отредоктировать)
2)Обработка ТАКОГО скритпа намного быстрее чем с побитовым считыванием jpg.

с чуством выполненого долга нажимаю кнопку "Ответить". [Ответ]
Random 13:41 15.04.2004
ACIDovsky - в твоем варианте флаш делает два запроса: первый на имя файла, второй на сам файл. Плюс куча возможностей не опытному человеку получит вполне определенные траблы с кешем для первого запроса. И кстати, у нас файлы текстовые кешируются по умолчанию или нет?


art речь шла о тебе ... Но по ходу пьесы я туточки самый модный флашер, пусть и мало практикующий (а что делать, я к Парфенову и так, и эток, а заказчики то у нас слишком солидные для этих дел). Дык, вот у тебя есть одно упущение позволяющие свести на нет все плюсы ACIDovsky, и один не решенный минус, который в совсем правильно постороенном ролике может всплыть. Ну што, блеснешь интелектом? [Ответ]
acidovsky 17:27 15.04.2004
Random уточню:
Пункиы
2,3 и 4 делаем при помощи PHP. [Ответ]
art 18:54 15.04.2004
Random ну вопрос приоритетов спорный

Не совсем понял что ты имел в виду, ну возможно при выводе в пхп надо будет вставит в заголовок запрет кеширования ... а так вроде должно работать ...

ACIDovsky Намудрил конечно ! Но прикольная идейка ...
А твой вариант то же самое что и мой 2 тока мой без использования ПХП , так гораздо удобнее т.к. флеша прекрастно справляеца с выбором случайным картинок... зачем усложнять то ?
[Ответ]
acidovsky 00:09 16.04.2004
All помоему мы Дарью напугали нафик.
Зашла она почита что тут понаписано и решила что флеш это не для неё...

И всем собственно пофик про что тема, лижбы яйцами померяться (и мне в том числе). Вот осознал я это и как-то грусно стало... [Ответ]
Random 10:34 16.04.2004
ACIDovsky - во мысли сходятся. По отношении к Дарье, твой самый первый ответ и был самым правильным. Если указать минусы даного подхода, то он был бы просто идеальным. А вот если бы она спросила как обойти минусы, вот тогда вперед, на мины! А так мы её скорее всего напугали и запутали.

art , запрет то не помешает, но...

На самом деле у каждой задачи есть множество решений. Я как бы уже решил подобную задачу, а возможно кто то из вас найдет более оптимальное решение. Вот собственно и все мое любопытство в этом вопросе... Так что ACIDovsky , не грусти, все вполне себе хорошо. А яйцами померяться можно только по приколу, а если кто то здесь не согласен, то ACIDovsky пошли грустить вместе. [Ответ]
Daria 15:05 22.04.2004
Спасибо огромное вам за советы, у меня всё получилось, как говорили ACIDovsky и flasher. [Ответ]
Вверх