Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Возвращение переменной
Flash Zone Forum > Macromedia Flash > ActionScript
gorillaz
У меня такая возникла проблема, что flash подгружается у меня из 1 файла, и загружается во все остальные. Проблема заключается в том, что каждый раз у меня обновляется flash. Я попробовал сделать так, но у меня в чем-то ошибка.
Код
<param name="FlashVars" value="url=<?=$_SERVER['REQUEST_URI']?>" />

А потом проверяется во flash
Код
if (url == index.php){
    фон.gotoAndStop(1);
}
else{
    фон.gotoAndPlay(67);
}
Duncon
Как-то замысловато, попробуй объяснить получше или наглядно показать.
Строчки типа: "подгружается у меня из 1 файла, и загружается во все остальные", наводят на размышления о вопросах мироздании и проблемах глобального потепления в Уганде..
tiHo
Цитата(Duncon @ 30.06.2007 - 23:37) *
Как-то замысловато, попробуй объяснить получше или наглядно показать.
Строчки типа: "подгружается у меня из 1 файла, и загружается во все остальные", наводят на размышления о вопросах мироздании и проблемах глобального потепления в Уганде..

а у меня о изчезновении цивилизации Майя
biggrin.gif
gorillaz
НУ короче подскажите в чем ошибка ( идея такая чтобы flash не перезагружалась при переходи на другие странице).
Код
<param name="FlashVars" value="url=<?=$_SERVER['REQUEST_URL']?>" />

Код
if (url == index.php){
    фон.gotoAndStop(1);
}
else{
    фон.gotoAndPlay(67);
}
Duncon
Я думаю что у тебя играет ролик и при переходе по ссылке ролик стартует с начала, верно?
(О сегодня кажись телепатия пашет laugh.gif )
gorillaz
ДА
Duncon
Вариант номер раз- rolleyes.gif в момент выхода со страницы запросить переменную из флешки в каком кадре она сей час играет и передать эту переменную следующей странице, она в свою очередь ее примет и флешка считывает переменную и стартует с того же места (думаю полюбому будет задержка)

Два- фреймы, что не гуд для индексации

Три- Ajax, что думается тоже не гуд для индексации (никак руки не дойдут)
tiHo
мона попробывать так:

вставляеш флешку через jscript:

Код
<script>

document.write('<object>')
document.write('<embed src="fl.swf" quality="high" ')
document.write('flashvars="INurl='+window.location.href+'&"')
document.write('scale="noscale" bgcolor="#ffffff" width="400" height="400" name="fl" align="middle"/></object>')

</script>


тут мы передаем во флешку текст всей адресной строки браузера.

теперь нада во флешке уже вытащить допустим последний символ строки, и проверить его (если равен 1 то ето главная. все остальное - второстипенное) :

пиши в первый кадр:

Код
var href:String = INurl.charAt(INurl.length - 1);
if (href !== "1")
{
    vivod.text = "ето не главная страница (" + href + ")";
}
else if (href == "1")
{
    vivod.text = "главная страница!!(" + href + ")";
}
else
{
    vivod.text = "ето по ходу дела вообще не страница.. (" + href + ")";
}


вот исходник: Скачать(пароль fz)

вот как работает:

пример вызова:

главная страница: http://tiho.clan.su/test/urlvar/index.html?1
тоже главная: http://tiho.clan.su/test/urlvar/index.html...uot;%:"%:1
не главная страница: http://tiho.clan.su/test/urlvar/index.html?2
и ета : http://tiho.clan.su/test/urlvar/index.html?12

вообщем все адреса на которых последний символ строки является ЕДИНИЦА, все главные.
также можеш поставить дополнительные проверки чтобы проверять адрес на нужную цифру. но в твоей проблеме хватит и етого.

PS> раз уж ты создал тему, то могбы подробнее обяснить народу че те надо, и как будут вызываться страницы. возможно ктото и сказал бы тебе тоже самое. а то ты только мне в аське показал что будут вызываться в виде index.php?action=1
MustLive
Цитата
У меня такая возникла проблема, что flash подгружается у меня из 1 файла, и загружается во все остальные. Проблема заключается в том, что каждый раз у меня обновляется flash. Я попробовал сделать так, но у меня в чем-то ошибка.
Код
<param name="FlashVars" value="url=<?=$_SERVER['REQUEST_URI']?>" />

А потом проверяется во flash
Код
if (url == index.php){
    фон.gotoAndStop(1);
}
else{
    фон.gotoAndPlay(67);
}

gorillaz

Твой код не работает из-за ошибки. В AS коде, где проверяется значение url.

Сам алгоритм вполне рабочий, нужно лишь корректно его реализовать. Если бы внимамательно присмотрелся к своему AS коду (а для этого необходимы знания Флеша и Акшон Скрипта, и в этом тебе могут помочь чтение хелпа, нашего форума и нашей рассылки), то ты бы заметил ошибку.

Запись "url == index.php" синтаксически и логически неверная. Ты должен сравнивать переменную url (которя является строкой) со строкой, а не с неизвестно чем (у тебя вышло, что ты url сравниваешь со свойством php объекта index). Строку ты д.б. заключить в кавычки, т.е. записать "index.php":
Код
if (url == "index.php")

Но для правильной работы алгоритма этого не достаточно (т.к. нужно правильно использовать REQUEST_URI). $_SERVER['REQUEST_URI'] выдаёт полный путь текущего скрипта, поэтому и проверять нужно полный путь (во флеше).

Если у тебя вызывается скрипт http://site.ru/index.php, то путь будет "/index.php". Если вызывается скрипт http://site.ru/index.php?param=1, то путь будет "/index.php?param=1". И этот путь передаётся во флеш. Поэтому ты должен проверять полный путь.

Для определения вызова главной страницы (http://site.ru/index.php) используй следующий код:
Код
if (url == "/index.php"){
    фон.gotoAndStop(1);
}
else{
    фон.gotoAndPlay(67);
}

И тогда данный алгоритм будет работать как положено.
gorillaz
Mustlive Спасибо!!!
tiHo У тебя как-то все замудренно!!!
tiHo
:P
MustLive
gorillaz

Всегда пожалуйста.

Цитата

tongue.gif

Саша, вот так этот смайл пишется для движка IPB smile.gif (чтобы заменял картинкой).

Duncon

Твои три примера были излишними, по той причине, как я уже сказал в предыдущем посте, что алгоритм предложеный gorillaz-ом вполне рабочий, нужно лишь корректно код написать (на AS).

Ребята.

Для данной задачи можно использовать как серверный вариант (на PHP или других языках), который изначально привёл gorillaz, или клиентский вариант (на ява скрипте), предложеный tiHo. Оба варианта предполагают использование флешварсов для передачи параметра флешке (о текущей странице).

Серверный вариант подходит для сайтов поддерживающих серверные скрипты. Тогда при генерации страницы автоматически будет создаваться флешварс, который будет передаваться флешке. Для бесплатных же хостингов (без поддержки серверных скриптов), пригодится вариант предложены Сашей - флешварсы будут генерироваться на ява скрипте и передаваться флешке. Здесь используется клиентская технология и будет большей нагрузка на клиента (в отличии от серверного варианта). Но сама нагрузка минимальна, здесь важнее другой аспект - что у некоторых людей ява-скрипт м.б. отключён, и поэтому код не сработает. В этой связи более оптимальным будет код с использованием серверных скриптов (если таковые поддерживаются), как в приведённом мною примере.

Код на Акшон Скрипте м.б. как в моём примере или как в примере tiHo. Мой вариант универсальный, он будет работать при любой структуре сайта (нужно лишь полный путь указывать), Сашин вариант расчитан на специфическую структуру страниц сайта (страница определяется по последнему символу). Замечу, что при использовании номеров страниц, номер может состоять из нескольких цифр (11, 21, 101), и в этом случае алгоритм Саши сработает неверно, и определит главную на других страницах, (определять по последней цифре - это в корне неправильный подход). В данном случае нужна прверка вхождения подстроки в строку (определять номер после знака "=" для параметра action). Поэтому стоит выбрать оптимальный алгоритм проверки (например, универсальный, как в моём примере).
alexart
Но ничего не мешает изменить Сашин скрипт (во флеше) на такой:
Код
var nomer:String = INurl.slice(INurl.indexOf("?")+1); // это и даст нам номер - все, что в URL находится после знака "?"
Русская версия IP.Board © 2001-2009 IPS, Inc.