Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.12.2009, 19:08
MaskiShow вне форума Посмотреть профиль Отправить личное сообщение для MaskiShow Найти все сообщения от MaskiShow
  № 1  
Ответить с цитированием
MaskiShow

Регистрация: Feb 2009
Сообщений: 108
По умолчанию Передача переменных php <-> flash

Флешка отправляет с помощью sendAndLoad запрос на сервер, и в ответе должна получать переменные

Код AS1/AS2:
request.sendAndLoad ("script.php", answer, 'POST')
 
answer.onData = function (vars) {
      if (vars == null) {...}
      else{
      _root.data = vars
        }
}
Скрипт отправляет данные с помощью "echo" , и т.о. переменая vars содержит 1 строку. Как нужно отправлять данные во флеш, чтобы иметь во флешке vars.var1, vars.var2...., т.е. уже готовые переменные со значениями.
Например, нужно отправить массив во флешку. Как сделать, чтобы массив был принят во флешке именно как массив?

Старый 14.12.2009, 19:24
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 2  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
Чтобы были готовые переменные используйте обработчик onLoad.
url-переменные строковые. Придется написать или найти код для парсинга строки в массив.

Старый 14.12.2009, 19:28
MaskiShow вне форума Посмотреть профиль Отправить личное сообщение для MaskiShow Найти все сообщения от MaskiShow
  № 3  
Ответить с цитированием
MaskiShow

Регистрация: Feb 2009
Сообщений: 108
А отправлять данные, в частности, во флеш, можно только с помощью "echo"?

Старый 14.12.2009, 19:44
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 4  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
не знаю, возможно стоит спросить в соответствующем разделе..
Вот этим скриптом можно воспользоваться для получения массива из строки http://json.org/json.as

Старый 14.12.2009, 20:09
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ответ сервера формируйте так:

Код:
total=50&var1=value1&var2=value2&var3=value3.. и тд.
Его, например, можно формировать в цикле, приращивая значение строковой переменной:

PHP код:
$sResult = 'total='.$total;
for (
$i = 1; i <= $total; i++) {
  
$sResult .= '&var'.$i.'='.значение;
}
print 
$sResult; 
Зависит от ваших обстоятельств, от вашего скрипта.

Получившуюся строку разбирайте в методе onLoad и загоняйте в массив:
Код AS1/AS2:
var ans:Array = new Array();
answer.onLoad = function (success:Boolean) {
  if (success) {
    for (i = 1; i <= this.total; i++)
      ans[i] = this['var' + i];
    }
  }
}
Имеем во флешке массив, заполненный строковыми распарсенными значениями. Если значение дальше нужны числовые (например, для вычислений), то строковые на лету преобразовываем:
Код AS1/AS2:
ans[i] = Number(this['var' + i]) ;


Последний раз редактировалось mooncar; 14.12.2009 в 20:20.
Старый 18.12.2009, 19:18
MaskiShow вне форума Посмотреть профиль Отправить личное сообщение для MaskiShow Найти все сообщения от MaskiShow
  № 6  
Ответить с цитированием
MaskiShow

Регистрация: Feb 2009
Сообщений: 108
Вопрос по кодировке русского текста при передаче flash <> php <> база данных

Флешка отправляет содержимое текстового поля (русские буквы) скрипту, тот пишет в базу. Чтение просиходит в обратной последовательности.
В этом случае в базе отображается билеберда.

Если в скрипте делать преобразование кодировки
PHP код:
$var = iconv("utf-8", "windows-1251", $_POST['var']); 
и сделать запись в базу, то при просмотре в редакторе базы все отображается нормально.

Флешке при этом отправляется обратно-преобразованная в utf-8 последовательность.

С чем связано такое преобразование кодировки, и правильно ли я использую это преобразование? Хочется знать, как это обычно у людей делается)

Старый 18.12.2009, 19:21
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 7  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Не забывайте еще про одно звено, которое может оказать воздействие на всю цепочку приема-передачи строки - кодировка самого поля БД.

Старый 18.12.2009, 19:27
MaskiShow вне форума Посмотреть профиль Отправить личное сообщение для MaskiShow Найти все сообщения от MaskiShow
  № 8  
Ответить с цитированием
MaskiShow

Регистрация: Feb 2009
Сообщений: 108
Об этом я думал, только не знаю, где и как можно менять кодировку полей базы.
Но тогда возникает вопрос, какую обычно используют кодировку полей базы?... Ведь если прередаем html\php <> база , то никаких перекодирований не надо. Флеш же использует utf-8 (??).

Старый 18.12.2009, 19:51
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 9  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ответ на первый вопрос -
Кодировка задается при создании самой базы или таблицы.
См. тут.
Если использовать для создания phpMyAdmin, то там менять или создавать таблицы достаточно просто.

Если нужно для поля поменять, то примерно так:
Код:
ALTER TABLE `tablename` CHANGE `tel` `tel` VARCHAR( 256 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
По поводу "обычно", не знаю. У меня везде в базах cp1251_general_ci - "Кириллический (многоязычный), регистронезависимый".
Не думаю, что делал это правильно, так как у меня и кириллица принудительно в тех флеш-проектах еще задавалась через System.useCodepage.

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

Цитата:
Флеш же использует utf-8 (??).
- как-то коряво у вас прозвучало. Флеш использует всё, что задает разработчик.

И еще. Эту тему здесь не нужно обсуждать, если что, вопрос у автора другой был. В разделе "Серверные технологии и Flash" нужно.


Последний раз редактировалось mooncar; 18.12.2009 в 20:11.
Старый 18.12.2009, 20:16
MaskiShow вне форума Посмотреть профиль Отправить личное сообщение для MaskiShow Найти все сообщения от MaskiShow
  № 10  
Ответить с цитированием
MaskiShow

Регистрация: Feb 2009
Сообщений: 108
собссно я и есть автор, ...если что

Да, проблема решилась - сменил редактор базы, все стало нормально (есть корректная поддержка UTF-8)


Последний раз редактировалось MaskiShow; 18.12.2009 в 20:31.
Создать новую тему Ответ Часовой пояс GMT +4, время: 06:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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