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

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

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

Регистрация: Oct 2006
Сообщений: 10
Tip чтение из AMF

Доброго времени.
Работаю со связкой MySQL-> AMF(PHP) -> AS3, а имменно:

1. В РНР-файле (" getdata.php ") класс, где описываются методы-SQL-запросы.
2. Класс amf.as - класс, где описан метод доступа к " getdata.php ":
Код AS3:
package {
import flash.net.Responder; 
import flash.net.NetConnection; 
 
public class Amf {
 private var nc : NetConnection = new NetConnection();  //--
 
 public function Amf(hostname:String) {
  nc.connect(hostname+"/amfphp/gateway.php");  //--коннектимся к серверу и к обработчику amf 
  nc.objectEncoding=3; //--метод кодирования
 }
/**
*Выполняет запросы к amfphp
* wht - сервис и имя запрашиваемой функции (дальше в примере покажу)
* cb - функция, вызываемая при получении ответа
* args - аргументы, которые должны передаться запрашиваемой функции от серверного скрипта, указываются через запятую) т.е. может быть хоть один хоть десять.
*/
 public  function toamf(wht:String, cb : Function, ... args) : void {
  var resp : Responder = new Responder(cb, onFault); //--обработчик ответа сервера, если все ок, то вызываем переданную нам  функцию для ответа (cb), если нет, то функцию сообщения об ошибке.
  nc.call.apply(null,[wht,resp].concat(args)); //--немного непонятно, но вкратце: запускаем функции отсылания запроса на сервер, задаем функцию обратного вызова и параметры + функцию при ошибке выполнения. 
 }  
 private function onFault(res:Object):void { //--при ошибке выполнения запроса
   trace('К севраку не достучались, ответ: ',res);
 }  
}
}
3. Собственно рабочий AS3 ("amftest.as"):
Код AS3:
package {
import flash.display.MovieClip;
import Amf; //--подключаем наш класс
 
public class Amftest extends MovieClip {
 public function Amftest() {
  var amf:Amf=new Amf("http://myservername.ru"); 
  amf.toamf("amftest.getnews.getnews", onGetNews);
  /* в " getdata.php " описана функция: 
        function getnews() { //--выбираем все новости
           return mysql_query('select * from news');
        }
 */
 }
 
 public function onGetNews(o:Object) { 
  trace(o.serverInfo.initialData); 
 }
 
}
}
Рабоает идеально. Вопрос с последним, рабочим AS: как воспользоватся полученными данными? Т.е. получить данные в переменную:
Код AS3:
var result:Object;
.....
 public function onGetNews(o:Object) { 
  result = o;
 }
.....
trace (result);
и становится очевидно, что result ни капли не изменился, т.к. я его вызываю, а onGetNews ещё не сработал.
__________________
Ёж в противогазе


Последний раз редактировалось cn_snipes; 09.02.2010 в 14:52.
Создать новую тему   Часовой пояс GMT +4, время: 15:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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