Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Прием GET параметра (http://www.flasher.ru/forum/showthread.php?t=192604)

StasHappy 16.01.2013 21:00

Прием GET параметра
 
Вечер добрый друзья.

Сразу скажу, особыми знаниями в ActionScript не блещу.
Имеется ссылка:

"http://www.site.ru/user=StasHappy"

Как можно взять содержимое Get параметра user и вставить вот сюда:

Код AS3:

var request:URLRequest = new URLRequest(СЮДА);

Где-то читал, что можно воспользоваться классом URLLoader. Пытался разобраться с ним сам, так ничего и не понял...

Делаю внешний прелоадер, который:
1. Берет ссылку из GET параметра
2. Отображает прогресс загрузки
3. По окончинии, загружает в себя принятый swf файл.

iflamberg 16.01.2013 21:14

Не, не, не. С URLLoader+URLRequest можно отправить GET или POST cgi-скрипту и получить от него ответ.
Делается примерно так:
Код AS3:

            var url:String = "http://www.[yourDomain].com/application.jsp";
            var request:URLRequest = new URLRequest(url);
 
            var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "guest";
            request.data = variables;
            request.method = URLRequestMethod.POST;
 
            var urlLoader:URLLoader = new URLLoader();
            urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
            urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);
            urlLoader.load(request);
 
function urlLoader_complete(evt:Event):void {
    lbl.text = urlLoader.data.lastName + "," + urlLoader.data.firstName;
    addChild(lbl);
}

А тебе, как я понимаю, нужно взять с открытой страницы браузера параметры, которые были переданы странице с помощью метода GET, и использовать их дальше в своей флешке?

StasHappy 16.01.2013 21:23

Цитата:

А тебе, как я понимаю, нужно взять с открытой страницы браузера параметры,
То есть с адресной строки.. Нет, чуть чуть не так. В интернете нашел урок, по вставке Flash ролика на страницу. Цитирую:
Цитата:

Вставка флеш на сайт методом Flash Satay
Код:

<object type="application/x-shockwave-flash" data="loader.swf?path=myContent.swf" width="280" height="600"/>
<param name="movie" value="/banners/simply.swf" /> 
<p>Альтернативное содержимое</p>
</object>

Стоит отметить, что для большинства флеш приложений так или иначе нужно использовать прелоадер. В данном слечае путь к загружаемому файлу передается через атрибут data и Get-переменную → data="loader.swf?path=myContent.swf", можно передавать путь и другими способами, например, через FlashVars
Прелоадеру(loader.swf) передается параметр patch. Вот с этого все и пошло у меня. Единственное, нужно как то выдернуть переменную patch и использовать ее в коде прелоадера.:)

Добавлено через 19 минут
За пример, огромное спасибо. Очень рад что помогли.

То есть, вот тут мы прописываем домен:
Код AS3:

var url:String = "http://www.[yourDomain].com/application.jsp";

А здесь прописываем GET параметр:
Код AS3:

variables.exampleUserLabel = "guest";

Правильно все понял?:)

alatar 16.01.2013 21:57

Цитата:

Сообщение от StasHappy (Сообщение 1116047)
Единственное, нужно как то выдернуть переменную patch и использовать ее в коде прелоадера.:)

В вашем прелоадере
Код AS3:

var url:String = loaderInfo.parameters.path;

Добавлено через 1 минуту
Для почитать
http://help.adobe.com/ru_RU/FlashPla...tml#loaderInfo
http://help.adobe.com/ru_RU/FlashPla...tml#parameters

StasHappy 17.01.2013 01:42

Ребят. По правде говоря, у меня ничего не получается. Может кто-нибудь потратит чуть своего времени и напишет мне код? А то чувствую, сам не справлюсь... Можно было бы конечно изучить Flash технологии, но ради одного прелоадера... думаю не стоит.
Эх, жалко. Вечер пролетел впустую...

GBee 17.01.2013 02:02

Покажите код? Alatar вам прально написал.

StasHappy 17.01.2013 02:31

Код(первый кадр):

Код AS3:

var ldr:Loader = new Loader();
var url:String = loaderInfo.parameters.path;
if(url!=null) {
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,swf_loaded);
ldr.load(new URLRequest(url));
 
function swf_loaded(e:Event):void{
        nextFrame();
        }
}
stop();

Второй кадр:
Код AS3:

addChild(ldr);


Что если вот так попробовать?

Добавлено через 1 час 40 минут
Ребят. Вроде что-то вышло у меня. Единственное, если указать в переменной path , несуществующий файл(ссылку), выходит вот такая ошибка:
Error #2044: Необработанный IOErrorEvent:. text=Error #2036: Загрузка не завершена.
Можно ли поставить какую либо проверку, на этот счет. Скажем, если загрузка прошла с ошибкой, делаем stop().

alatar 17.01.2013 04:19

Подпишитесь на IOErrorEvent и обрабатывайте.

StasHappy 17.01.2013 04:25

Цитата:

Подпишитесь на IOErrorEvent и обрабатывайте.
Добавил эти строки:

Код AS3:

ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,swf_error);
 
function swf_error(e:Event) {
        removeEventListener(Event.COMPLETE,swf_loaded);
}

Добавлено через 1 час 8 минут
Еще один ньюнс.
Некоторые flash'ки, вызывают ошибку:
SecurityError: Error #2070: Нарушение изолированной среды: вызывающий объект...итд.

На одном сайте, посоветовали прописать вот это:
Код AS3:

Security.allowDomain("*");

А вот куда прописать, не подметили. Есть идеи?:)

GBee 17.01.2013 09:51

Одна тема - один вопрос.
Прописать в загружаемую флешку, этим она как бы говорит - что берите меня, кто хотите.


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

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