Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   loadVariables + POST + PHP (http://www.flasher.ru/forum/showthread.php?t=52552)

Krisha 10.12.2003 17:51

loadVariables + POST + PHP
 
Пытаюсь передавать переменные из ролика php скрипту и получать ответ, делая var_dump($_POST) заметил, что передаются все переменные, кот. существуют в текущем клипе.

Возможно ли в 5 флеше передавать методом POST только те переменные, которые нужно, а не всё подряд ? Как это сделать по-человечески ? И как правильно потом принять переменные, то есть получить ответ, так как сейчас этот ответ как бы автоматически приходит ?

Передаю вот так:

loadVariables(_root.scriptName + "?" + myVars, this, "POST");

sergsa 11.12.2003 15:04

sendAndLoad попробуй
http://www.flasher.ru/tutorial/viewtut.php?id=135
тут описано более подробно, правда, там еще и привязка к MySQL, но ты используй что тебе нужно. Мне лично когда-то этот урок помог, может и тебе пригодится.

Krisha 11.12.2003 16:48

Спасибо, делаю так:

в первом кадре ролика:

chaptersList = new Array();

getChaptersList();

function getChaptersList ()
{
Chapters = new LoadVars();
Chapters.action = 'getChaptersList';
Chapters.sendAndLoad(_root.scriptName, Chapters, 'POST');

Chapters.onLoad = function (success)
{
if (success)
{
this.chaptersList = unescape(this.chaptersList);
this.chaptersList = this.chaptersList.split('|');

for (i=0; i < this.chaptersList.length; i++)
{
_root.chaptersList[i] = this.chaptersList[i].split(',');
}
}
}
}

Данные приходят, но когда ролик переходит во второй кадр я массива _root.chaptersList еще не вижу, и понятно почему, потому, что данные еще не пришли. То есть еще не отработало событые onLoad.

Вопрос: Как сделать так, чтобы переход во второй кадр происходил только в том случае, если данные уже все получены ? Или может быть есть более красивые решения ?

sergsa 11.12.2003 17:05

Chapters.onLoad=fff

fff-имя функции которая что-то делает с полученными данными и не надо во 2 кадр переходить, я во всяком случае именно так делал

Krisha 11.12.2003 17:45

я не совсем врубаюсь, как должна выглядеть эта функция, а главное как убедиться, что всё пришло и данные готовы, не мог бы ты привести пример ?

sergsa 11.12.2003 17:54

Chapter.onLoad=fff
function fff()
{
юзаем полученные данные(как?-это тебе виднее)
}

Функция будет вызвана, когда данные получены.

Пушистик 11.12.2003 17:56

флэш передает ВСЕ перменные...абсолютно все!.....;)

Krisha 11.12.2003 18:34

sergsa

К сожалению это мне не помогло. Событие onClipEvent (load) мувиклипа, который должен работать с пришедшими данными, происходит до того, как данные пришли и были обработаны.

при трейсе последовательность выглядит так:

- before getChaptersList
- inside getChaptersList
- movie loaded
- inside makeChaptersArray

Вот код 1 кадра:

chaptersList = new Array();

function getChaptersList ()
{
trace ("inside getChaptersList");

Chapters = new LoadVars();
Chapters.action = 'getChaptersList';
Chapters.sendAndLoad(_root.scriptName, Chapters, 'POST');

Chapters.onLoad = makeChaptersArray;
}

function makeChaptersArray ()
{
trace ("inside makeChaptersArray");

this.chaptersList = unescape(this.chaptersList);
this.chaptersList = this.chaptersList.split('|');

for (i=0; i < this.chaptersList.length; i++)
{
_root.chaptersList[i] = this.chaptersList[i].split(',');
}
}

trace ("before getChaptersList");
getChaptersList ();
stop();

sergsa 11.12.2003 19:32

function makeChaptersArray () - это и есть та ф-ция, которая выполняется когда данные получены, вставь сюда код который их обрабатывает и все. Или если хочеш, что-бы данные обрабатывались во 2-м кадре, останови этот ролик на первом а в тело ф-ции makeChaptersArray () вставь gotoAndStop(2)

Krisha 11.12.2003 20:07

Ура!
Ёлы палы :)

В первом кадре ставим стоп, берем от скрипта данные, обрабатываем их и добавляем в функцию обработки gotoAndPlay(2);

Во втором кадре тоже ставим стоп и размещаем мувик, который будет работать с данными.

Заработало!
Биг сенкс! :)


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

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