Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Как сохранить переменную при рефрэше страницы с флэш-роликом? (http://www.flasher.ru/forum/showthread.php?t=21338)

Черчедан 15.10.2001 16:26

Как сохранить переменную при рефрэше страницы с флэш-роликом?
 
Штука в чем:
Есть ХТМЛ-страница. Вверху на ней есть ролик swf. В него вложен другой swf с первым кадром gotoAndPlay (t) и вторым кадром Stop
Дальше идёт анимация.
На таймлайне коренного ролика есть несколько кнопок, по нажатию которых переменной t присваиваются значения 20, 40 и т.д. (в зависимости от кнопок) и анимация проигрывается уже соотв. с 20-го 40-го и т.д. кадров во вложенном ролике. Кроме того, по нажатию кнопок, загружается соответственная ХТМЛ-страница с этим же роликом. Всё было бы чудесно, но проблема такая:
При переходе со страницы на страницу (т.е. рефрэше swf-ролика) переменная t не сохраняется. Суть в том, чтобы переменная t не пропадала, а сохранялась при рефрэше страницы. Где сохранялась и как, я смутно догадываеюсь, но очень надеюсь, что кто-нибудь мне подскажет где копать.
Если есть где исходники или почитать - был бы очень признателен.

SPV 15.10.2001 16:29

Эту переменную можно дополнительно хранить либо в родительском документе (если есть фрэймы), либо пихай её в куки ява-скриптом.

Черчедан 15.10.2001 16:36

>Эту переменную можно дополнительно хранить либо в родительском документе (если есть фрэймы), либо пихай её в куки ява-скриптом.

Фрэймы использовать не могу.
Если дополнительно хранить, то как?
Как переменную в куки зашивать, то как?

Мне всего лишь похожий исходник, если есть конечно - я постараюсь разобраться.
Или если это не сложно, то напиши как.

Буду благодарен

SPV 15.10.2001 16:59

Эта задача схожа с той, которую я недавно помогал решить - навигация по сайту кнопкой BACK в браузере... В твоём случае можно сделать так:
создать такие ява-функции:
Код:

<script>
function setCookie(cookieName, cookieValue) {
  document.cookie = cookieName + "=" + escape(cookieValue);
}
function getCookie(cookieName) {
  var prefix = cookieName + "=";
  var cookieStartIndex = document.cookie.indexOf(prefix);
  if (cookieStartIndex == -1) return;
  var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
  if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
  return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
}
</script>

Потом из флэша при изменении переменной t запоминать её в куках:
Код:

getURL("javascript:setCookie('t','"add t add"') void(0)");
Теперь остаётся переписать кусок ХТМЛя с флэшом, генеря его динамически и передавая переменную t из куков:
Код:

<script>
document.writeln('<object ...>');
document.writeln('<param name="movie" value="my.swf?t='+getCookie('t')+'">');
...
document.writeln('<embed src="my.swf?t='+getCookie('t')+'" swliveconnect="true" ...>');
document.writeln('</object>');
</script>


Черчедан 15.10.2001 18:12

Сделал всё как по тексту. Страница выдает:
http://.../java%20script:setCookie('t','')%20void(0)

По нажатию кнопки у меня следующее:
on (press, dragOut) {
tellTarget ("_root.issue-frames") {
t = "21";
}
getURL ("news.html");
getURL ("java script:setCookie('t','" add t add "') void(0)");
}

может я что не так увязал с этими гетюэрэл-ами ?

SPV 15.10.2001 18:21

on (press, dragOut) {
tellTarget ("_root.issue-frames") {
t = "21";
}
getURL ("java script:setCookie('t','" add t add "');void(0)");
getURL ("news.html");
}

1. Сначала куки, потом переход на страницу.
2. Пробела в слове "java script" ставить не нужно - это форум сам его вставляет, гад :):):)


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

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