![]() |
|
||||||||||
|
|||||
|
Пытаюсь передавать переменные из ролика php скрипту и получать ответ, делая var_dump($_POST) заметил, что передаются все переменные, кот. существуют в текущем клипе.
Возможно ли в 5 флеше передавать методом POST только те переменные, которые нужно, а не всё подряд ? Как это сделать по-человечески ? И как правильно потом принять переменные, то есть получить ответ, так как сейчас этот ответ как бы автоматически приходит ? Передаю вот так: loadVariables(_root.scriptName + "?" + myVars, this, "POST"); |
|
|||||
|
Регистрация: Jul 2003
Сообщений: 87
|
sendAndLoad попробуй
http://www.flasher.ru/tutorial/viewtut.php?id=135 тут описано более подробно, правда, там еще и привязка к MySQL, но ты используй что тебе нужно. Мне лично когда-то этот урок помог, может и тебе пригодится. |
|
|||||
|
Спасибо, делаю так:
в первом кадре ролика: 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. Вопрос: Как сделать так, чтобы переход во второй кадр происходил только в том случае, если данные уже все получены ? Или может быть есть более красивые решения ? |
|
|||||
|
Регистрация: Jul 2003
Сообщений: 87
|
Chapters.onLoad=fff
fff-имя функции которая что-то делает с полученными данными и не надо во 2 кадр переходить, я во всяком случае именно так делал |
|
|||||
|
я не совсем врубаюсь, как должна выглядеть эта функция, а главное как убедиться, что всё пришло и данные готовы, не мог бы ты привести пример ?
|
|
|||||
|
Регистрация: Jul 2003
Сообщений: 87
|
Chapter.onLoad=fff
function fff() { юзаем полученные данные(как?-это тебе виднее) } Функция будет вызвана, когда данные получены. |
|
|||||
|
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(); Последний раз редактировалось Krisha; 11.12.2003 в 18:36. |
|
|||||
|
Регистрация: Jul 2003
Сообщений: 87
|
function makeChaptersArray () - это и есть та ф-ция, которая выполняется когда данные получены, вставь сюда код который их обрабатывает и все. Или если хочеш, что-бы данные обрабатывались во 2-м кадре, останови этот ролик на первом а в тело ф-ции makeChaptersArray () вставь gotoAndStop(2)
|
|
|||||
|
Ура!
Ёлы палы ![]() В первом кадре ставим стоп, берем от скрипта данные, обрабатываем их и добавляем в функцию обработки gotoAndPlay(2); Во втором кадре тоже ставим стоп и размещаем мувик, который будет работать с данными. Заработало! Биг сенкс! ![]() |
![]() |
Часовой пояс GMT +4, время: 21:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|