PDA

Просмотр полной версии : Подскажите по flash-галерее или слайдшоу


mebelsklad
14.08.2010, 16:37
Здравствуйте!
На сайте нужно сделать меняющиеся картинки (слайдшоу) типа как на заглавной странице сайта http://www.eldorado.ru/
Посоветовали мне один вариант - готовый swf http://pro.kuban.ru/b/ (исходника нет), подгружающий из файла http://pro.kuban.ru/b/data.xml необходимую информацию - ссылки, картинки, текст.
Всё хорошо и я б установил у себя такой вариант на сайте, но мне нужно, чтобы на разных страницах сайта выводились разные картинки (то есть, нужно подгружать разный data.xml).
Решение такое - в .htaccess пишу
RewriteRule ^data.xml?$ data.php [L]
а data.php уже формирует файл. Но в php скрипт надо передать адрес просматриваемой страницы или какую-то переменную, а дальше выводить
if (тут условие, какое - не знаю)
{
echo ('.......');
}
Собственно, как сделать передачу этой переменной? Или, может быть, есть другой вариант такой вот галереи..?
Заранее спасибо.

Добавлено через 1 минуту
думал, что подойдёт HTTP_REFERER, но не тут-то было. У меня, например, он вообще пуст.

e_gamer
14.08.2010, 16:55
Версия AS?

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

Можно через request загрузить данные, методом GET, т.е. в адресной строке просто указать переменные.

mebelsklad
14.08.2010, 17:12
e_gamer, спасибо, что отозвались.
Я даже не знаю версию AS. То есть, подкинули мне сам swf и всё. Исходника нет, всё настраивается в xml файле. Допустим, указываю я переменные в адресной строке. Что-то типа banner.swf?param=1. Вы это имели в виду?
Но ведь в php скрипт этот параметр не передастся, просто вызовется data.xml и всё :(

e_gamer
14.08.2010, 17:17
Мда.
Чтобы добавить обращение к PHP скрипту нужен исходник.

request должен быть что-то вроде:
'путь до скрипта/скрипт.php?key_code=value'

Если AS2, можно воспользоваться классом LoadVars

mebelsklad
14.08.2010, 17:20
а вообще да, если б можно было, запустив banner.swf c параметром param=1 передать в data.php значение этой переменной, это было бы ответом.
Но нельзя без исходника. А исходника нет.

e_gamer
14.08.2010, 17:23
Запрос делается не к SWF, а к php-скрипту:
'index.php?имя_переменной=ее_значение'

В любом случае нужен исходник, т.к. сейчас, как понял, флешка работает только для 1 сайта. Даже если в XML прописать несколько сайтов, все равно надо дописывать код во флешку.

mebelsklad
14.08.2010, 17:24
А что за loadvars? я во флеше ни бум-бум, мне б вставить галерею с меняющимися фотографиями и забыть.
Может кто-то встречал простую галерею? Такую, как по ссылке, без всяческих наворотов.

Добавлено через 48 секунд
Запрос делается не к SWF, а к php-скрипту:
ну разумеется, этого и хочу!

Добавлено через 1 минуту
e_gamer
у меня 1 сайт.

e_gamer
14.08.2010, 17:53
Без наворотов - просто XML в той же директории, что и флешка на сайте.
И все.
Для каждой флешки свой.

mebelsklad
14.08.2010, 18:03
не вариант - разделов очень много, все по сути в одной папке (index.php?razdel=1, index.php?razdel=1 ...)

e_gamer
14.08.2010, 18:08
Если нужен PHP скрипт при использовании - надо дорабатывать флешку.
По-другому никак.

mebelsklad
14.08.2010, 18:25
e_gamer, я уже понял, что вы не знаете.
но варианты есть - например, получение адреса открытой страницы скриптом или шаманские пляски с .htaccess

e_gamer
14.08.2010, 18:31
Я-то как раз знаю, как заставить общаться сервер на PHP с клиентом на AS.
Причем не только через XML.

Просто задача как понял стоит из разряда "Как бы не ковыряясь в коде все сделать чтоб работало."
Существуют более простые решения, чем танцы с бубном а-ля .htaccess
Они просто требуют небольшого знакомства с документацией.

mebelsklad
14.08.2010, 18:54
кода нет, значит и ковыряться не в чем.
Раньше, когда сюда заходил (лет 5 назад), форум был отдельно, а сайт с исходниками - отдельно.

e_gamer
14.08.2010, 18:56
кода нет, значит и ковыряться не в чем

Если действительно нужен функционал, то значит стоит написать новое приложение.

mebelsklad
14.08.2010, 23:19
а готовых вариантов нету?

Котяра
15.08.2010, 00:23
как я понял - вам нужно показывать разные фото для разных разделов.
Варианты:
1.Создайте папки в которых буду лежать картинки, swf и data.xml
2.Создайте папки в которых буду лежать картинки и data.xml - swf может быть общий для всех но в параметрах swf для разных разделов пропишите разный base с адресом папки.
3. Найдите исходник галереи - полно их.

mebelsklad
15.08.2010, 00:33
Котяра, вы правильно поняли, но:
1. Можно, но мороки с сотней страниц очень много будет.
2. хотел бы я так сделать, но исходника нет, вот и папку прописать не могу.
3. очень долго искал - да полно, но попадаются лишь навороченные с превьюшками и прочей графикой. Такое не годится, нужна простая смена картинок с подписями и ссылкой. А во флеше я не разбираюсь.

JackLondon
15.08.2010, 03:19
Ээ..

$razdel = $_GET['razdel'];
if ($razdel == anyNumber)
{
// а тут пишем в XML новую инфу, в чем проблема-то?
}

mebelsklad
15.08.2010, 03:48
JackLondon, в том, что параметр (переменная) razdel в файл data.xml не передаётся!!!
Мне тут решение подсказали:
var so = new SWFObject("banner.swf?razdel1", "mymovie", "670", "250", "4");
а в data.xml (формируется php-скриптом) читать referer.
Но реферер не всегда передаётся. Некоторые браузеры (причём популярные) просто на это дело забивают.

Котяра
15.08.2010, 11:04
2. хотел бы я так сделать, но исходника нет, вот и папку прописать не могу.
вы не поняли меня - base это параметр который прописывается в html странице
base - . or [base directory] or [URL]. Specifies the base directory or URL used to resolve all relative path statements in the Flash Player movie. This attribute is helpful when your Flash Player movies are kept in a different directory from your other files.
<script type="text/javascript">

var flashvars = {
};
var params = {
base: "dir2/" // папка с data.xml и картинками
};
var attributes = {
};

swfobject.embedSWF("banner.swf", "myContent", "300", "120", "9.0.0",
"expressInstall.swf", flashvars, params, attributes);


</script>

mebelsklad
15.08.2010, 14:59
Котяра, а ведь это мысль! И мысль отменная!
Премного благодарен.