Показать сообщение отдельно
Старый 19.08.2007, 03:10
dracs вне форума Посмотреть профиль Отправить личное сообщение для dracs Посетить домашнюю страницу dracs Найти все сообщения от dracs
  № 5  
Ответить с цитированием
dracs
 
Аватар для dracs

Регистрация: Aug 2007
Сообщений: 3
Отправить сообщение для dracs с помощью ICQ
Развернуто, наглядно и просто и вопросов не будет:

Предположим, мы хотим отправить кое-что на сервер и получить ответ обратно во Флэш.
Например, мы хотим получить сумму двух чисел.
Пишем такой рнр скрипт:

Код (cохраняем в фале summa.php там где его увидит флэш
для опытов - ложить в корень

Код:
<?
// summa.php
echo $_REQUEST['number_1']+$_REQUEST['number_2'];
?>
А во флеше пишем:


Код
Код:
function mySummFromPhp() {

// создаем объект для связи с сервером:
var get_from_php:LoadVars = new LoadVars();
// вписываем переменные, которые хотим отправить:
get_from_php.number_1 = 5;
get_from_php.number_2 = 3;
// обработчик (произойдет, когда данные с сервера вернутся):
get_from_php.onData = function(data){
    if(data == null){
        trace("связь с сервером потерялась!");
    }else{
        trace("сумма чисел равна "+data);
    }
}
// отправляем:
get_from_php.sendAndLoad(
       'http://example.com/summa.php', //  к кому обращаемся?
       get_from_php, // какой объект среагирует? Пишем себя.
       'POST' // метод.
);
}

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

Код:
mySummFromPhp()
Трассер выдаст решение указанного вопроса.
Если Вы предаете во флэш данные в текстовом формате -не забываем в коде php эху сделать правильно и дать русские буковки cp1251 например в кодировке UTF-8 иначе Вы во флэше получите кракозябры.

Код:
echo iconv("cp1251", "UTF-8", "$ИмяПеременнойPHP");
После того, как понял механизм - то уже не трассируете возвращаемые значения со скрипта php - собственно скрипт может быть любым - а уже присваиваете нужным Вам переменным и все дела.

Надеюсь все понятно.


Последний раз редактировалось dracs; 20.08.2007 в 01:55.