Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   получение переменной из строки заголовка (http://www.flasher.ru/forum/showthread.php?t=88765)

Ясь 30.11.2006 12:17

получение переменной из строки заголовка
 
всем привет.
такая цель:
строка заголовка, например: http://127.0.0.1/index.php?id=5&name=petr
ну и тд и тп.
мне надо во флеше сделать обработчик, что мол, если id = 5, то перейти к такому-то кадру.
так вот собственно подскажите, пожалуйста, как мне извлечь переменную в actionscript из url.
заодно подскажите пожалуйста как это будет выглядеть, если я переменную буду передавать не GET'ом, как написано выше, а POST'ом.
заранее спасибо

ps извините, если это где-то уже обсуждалось, я не смог найти. может не там искал? да и пока что плохо понимаю, что и где правильно искать. не судите строго )

Kikasso 30.11.2006 13:20

Ясь, ищи по слову flashvars - это если при загрузке. Если там php, пусть впечатывает нужные парамерты в object/embed. Рекомендую.
Если POST`ом - флеш сам должен делать запрос. Для этого используются LoadVars и XML.
Обсуждается практически каждую неделю, посмотри по этим словам.

etc 30.11.2006 13:52

Использовать SWFObject для этого.

Ясь 01.12.2006 11:57

ну вот я решил попробовать через этот SWFObject. нашел и скачал по нему небольшую доку, скачал сам swfobject. вот вроде с ним я слегка разобрался (ну т.е. для моей конкретной цели должно хватить). вообщем в php файле (ну тут правда особо php пока что нету, только JS :)) у меня следующее:

Код:

<script type="text/javascript" src="swfobject.js"></script>

<div id="flashcontent"></div>

<script type="text/javascript">
var so = new SWFObject("Untitled-1.swf", "Untitled-1", "550", "400", "7", "#ffffff");
so.addParam("cont", getQueryParamValue("cont"));
so.write("flashcontent");
</script>

а во флеше мне как бы нужен обработчик, что мол если cont = тому-то, то перейти к такому-то кадру, а если cont = этому, то к этому.
я предположительно сделал следующее:
на самом первом кадре на белую область, т.е. не на объект какой-нибудь, а типа на фон (может кстати для этого надо было отдельный слой создавать?) я написал:

Код:

if (cont == "info")
        {
                gotoAndPlay(1);
        }
else if (cont == "music")
        {
                gotoAndPlay(51);
        }
else if (cont == "photos")
        {
                gotoAndPlay(101);
        }
else
        {
                gotoAndPlay(1);
        }

в итоге я получил, что флешка отображается, но работает не корректно, т.е. просто крутит с самого первого кадра и все.
по идее в той документации, что я нашел по SWFObject было написано, что если бы я использовал не getQueryParamValue, т.е. писал бы просто so.addParam("cont", "znachenie"); , то тогда доступ бы к таким переменным во флеше я мог бы получить через _root. я так понимаю, что при использовании getQueryParamValue переменная моя должна быть доступна тоже через _root. но я честно говоря плохо себе представляю, что такое _root. и как мне от туда взять переменную мою. читал мануал, но ничего поэтому поводу толком не понял. я пробовал разными способами, но что-то не получилось. может просто я не знаю элементарного чего-нибудь (синтаксиса, например) и поэтому у меня не получается. подскажите пожалуйста, что именно я должен в моем случае написать.
заранее спасибо

etc 01.12.2006 14:00

_root.cont надо писать, а лучше _level0.cont

з.Ы. То, что самостоятельно нашёл SWFObject — вери гуд.

Ясь 01.12.2006 14:52

так а это где надо написать?
Код:

if (_level0.cont == "info") {
        gotoAndPlay(1);
}

ну и так далее по аналогии? или как?

etc 01.12.2006 15:06

да, так.

Ясь 01.12.2006 18:21

блин, что-то не получается :( где-то собака зарыта....
скорее всего я по не знанию что-то очевидное для тебя делаю совершенно неправильно :) давай попробуем разобраться.
когда я скачал SWFObject, то там в самом файле мне надо что-нибудь править и под себя вписывать?? я лично ничего там не менял.
во флеше, еслои я перед моим обработчиком напишу следующее:

Код:

var cont = "photos";
//ну и дальше пошел обработчик
if (cont == "info")
        {
                gotoAndPlay(1);
        }
else if (cont == "music")
        {
                gotoAndPlay(51);
        }
...
...

то так у меня обработчик срабатывает. т.е. получается обработчик написан правильно (ну я опасался за синтаксис...)
я пробовал делать так:
Код:

if (_level0.cont == "info")
        {
                gotoAndPlay(1);
        }
...
...

так у меня обработчик никак не срабатывает. просто крутиться флешка с самого начала.
также я пробовал делать так:
Код:

var cont = _level0.cont;
if (cont == "info")
        {
                gotoAndPlay(1);
        }
...
...

эффект такой же как в предыдущей ситуации...
подскажи плиз где собака зарыта.

ps на всякий случай: у меня flash mx professional 2004 (version 7.0). ну и на сколько я понял, action script у меня 2.0 (сужу по диалогу экспорта мувика, там при выборе версии action script'а только версии 1.0 и 2.0; ну я конечно сохряняю в 2.0). SWFObject v1.4.4

pps если хочешь, то могу выложить свои файлики, там совсем немного. может так будет проще разобраться?

KidsKilla 01.12.2006 18:25

напиши trace('"'+_level0.cont+'"')

Kikasso 01.12.2006 18:33

Вот корень зла:
Цитата:

so.addParam("cont", getQueryParamValue("cont"));
Тебе надо чтобы это прописалось во flashvars.
пиши так:
Код:

so.addVariable("cont", getQueryParamValue("cont"));


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

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