Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как получить адрес страницы, на которой запущен ролик, и ее параметры? (http://www.flasher.ru/forum/showthread.php?t=123043)

kirea 23.03.2009 18:33

Как получить адрес страницы, на которой запущен ролик, и ее параметры?
 
В дизайне сайта используется в основном флеш. Вид ролика должен зависеть от параметров, переданных в URL.
Тоесть, например, имеем адрес http://www.mydomen.com/index.php?sec...y&theme=people. Как в ролике, размещенном на странице получить эти самые пары параметров: section=gallery , theme=people ?
Заранее спасибо!

BlooDHounD 23.03.2009 18:42

можно передать во флэш через флэшварс, а можно через ExternalInterface.

Яски 23.03.2009 18:54

Код AS3:

if (ExternalInterface.available) {
        var href:String = ExternalInterface.call("window.location.href.toString");
        if (href != null) {
                var variablesInd:int = href.lastIndexOf("?");
                var variables:Array = (variablesInd >= 0) ? href.substr(variablesInd + 1).split("&") : null;
          }
}

С выключенным Java Script работать не будет.

kirea 23.03.2009 19:00

Цитата:

Сообщение от BlooDHounD (Сообщение 807979)
можно передать во флэш через флэшварс, а можно через ExternalInterface.

насколько я знаю, с этим способом взаимодействия наблюдаются проблемы в Опере :( . как учесть и этот момент тоже?

Добавлено через 7 минут
спасибо Яски за содержательный ответ ))))

temofor 25.03.2009 18:17

Не работает данный способ на Mac OS, браузер Safari 4 Beta

Есть еще варианты?

BlooDHounD 25.03.2009 18:20

kirea, с каким из способов?
temofor, у моего соседа работает.

Arif flasher 25.03.2009 18:27

Цитата:

Сообщение от temofor (Сообщение 808499)
Не работает данный способ на Mac OS, браузер Safari 4 Beta

Есть еще варианты?

при вызове свф файла через ПХП, можно в пхп этой страницы назначить какую нибудь переменную (точно не знаю как это делается, так как не сам делал). А вот в флэше пишем это:

Код AS3:

var varName:String;
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
var myFlashVar:String;
for (varName in paramObj)
{
        myFlashVar = String(paramObj[varName]);
}

myFlashVar - в нашем случае получает дату этой переменной, а дальше уже ставим SWITCH statement и дальше уже все понятно я думаю. Вот кусок моего кода:
Код AS3:

switch (myFlashVar)
{
        case "about" :
                menu1_mc.poped = true;
                currentPage = menu1_mc;
                underline_mc.x = currentPage.x;
                underline2_mc.x = currentPage.x;
                break;
        case "service" :
                menu2_mc.poped = true;
                currentPage = menu2_mc;
                underline_mc.x = currentPage.x;
                underline2_mc.x = currentPage.x;
                break;
        case "clients" :
                menu3_mc.poped = true;
                currentPage = menu3_mc;
                underline_mc.x = currentPage.x;
                underline2_mc.x = currentPage.x;
                break;
...


temofor 25.03.2009 18:44

Цитата:

Сообщение от BlooDHounD (Сообщение 808502)
temofor, у моего соседа работает.

Можно код, если не затруднит :away:

Добавлено через 7 минут
Код AS3:

import flash.external.ExternalInterface;
...
if (ExternalInterface.available)
{
        var href:String = ExternalInterface.call("window.location.href.toString");
        if (href != null)
        {
                var variablesInd:int = href.lastIndexOf("?");
                var variables:String = href.substr(variablesInd + 1);
 
                test_txt.text = variables;
        }
}

У меня нужна только одна переменная которая идет после знака "?" в URL.
При запуске в браузере просто виснет флешка, т.е. все что ниже не выполняется.

Странно в AS2 все было проще и работало, может я где-то ошибся?

Добавлено через 9 часов 46 минут
Еще раз добавил папку проекта в доверенную зону Flash Player и заработало.
До этого видемо не добавилось, бывает жеж...


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

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