Просмотр полной версии : Значение переменной в строке адреса
Hey man!
Вопрос следующий - как сделать так, чтобы при загрузке страницы (на которой расположена флеха) флеш знала значение некой переменной в строке адреса браузера. Например я захожу на это страницу
http://чегонибудь.ru/index.php?act=forum
Так вот мне нада чтобы флеха уже знала чему равно значение переменной act
Golovach
21.03.2006, 18:15
proverka = _URL;
Vensky_Hor
21.03.2006, 18:51
Можно распарсить строку адреса javascript-ом и через FSCommand передать переменную в мувик.
Наверное, даю не самый лучший совет, но сама с такой проблемой расправлялась через js :rolleyes:
Vensky_Hor а расскажи плиз поподробней. Или если есть дай какой нить файл я если че сам разбирусь
Vensky_Hor
21.03.2006, 19:00
Пишешь (например на регулярных выражениях) разбор статуса
window.location в js. Потом устанавливаешь нужную переменную
window.document.MYSWF.SetVariable("myVar", "то, что из статуса");
А на ОнЛоад в своём свф просто запрашиваешь фсКомманд с функцией разбора. По-моему так... :rolleyes:
Golovach
21.03.2006, 19:10
Да куда вы огород городите? _URL - стороковое значение, достаточно его разобрать, найти нужную переменную и получить ее значение после знака "=".
Golovach а можно поточнее, а то я с ActionScript не очень дружу (пока=))
Golovach
21.03.2006, 19:31
length - определяет длину строки
substring (mySours, j, 1) - отрезает кусок строки mySours длиной j начиная с первого символа
Задача следующая: определить длину переменной, полученной из _URL.
Далее двигаясь с конца строки осуществлять проверку в цикле на соответствие символов знаку "=". Все что стоит после знака "=" и есть значение твоей переменной. Это по-простому, а если переменных много, то тут придется подучить AS, а потом уже заниматься такой задачей.
Bar_Duck13
22.03.2006, 13:04
При объявлении мувика в хтмл допиши <embed src="ready3.swf?var1=400&var2=2" />. Обычный метод GET. Ты же в PHP генеришь страницу. А во флеш можешь сразу писать trace(var1+' '+var2). И точно так же в <param>.
Homo Sapiens
22.03.2006, 14:28
GET переменные ложатся в _root, соответственно _root.act будет равен "forum"
Не я embed не юзаю из -за него страница невалидна будет.
Homo Sapiens а можешь код написать правильный а то я с action не очень дружу))
Nox Noctis
22.03.2006, 20:43
GET переменные ложатся в _root, соответственно _root.act будет равен "forum"
это в том случае, если ГЕТ-запрос идет к самой свфке. то есть, если написать something.swf?act=dummy
а тут ГЕТ-запрос идет к странице (пхп скрипту), и из строки броузера нужно вынуть то, что пришло, и передать флэшке через FlashVars, как и было сказано выше.
вот тут об этом написано подробнее:
http://noregret.org/tutor/navigation/#3.1
с той лишь разницей, что там рассматривается передача от джаваскрипта значения location.hash, а нужно сделать передачу значения location.search (собственно строка запроса).
Homo Sapiens
22.03.2006, 22:52
Я уже писал ответ на этот вопрос. Воспользуйся поиском.
Nox Noctis да про FlashVars я знаю, но говорю же в этом случае придется юзать тег embed а я его не хочу использовать, из-за него страницы невалидны
Вот, на всякий случай, парсилка УРЛа.
function getUrlValue(Url:String, Name:String):String {
var Pos:Number = Url.indexOf("?");
if(Pos<0)
return "";
Pos = Url.indexOf(Name, Pos);
if(Pos<0)
return "";
return Url.substr(Pos+Name.length+1).split("&")[0];
}
trace(getUrlValue("http://www.act.ru?act=pikachu&number=8", "act"));
trace(getUrlValue("http://www.act.ru?act=pikachu", "act"));
оба trace выводят "pikachu".
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.