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

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

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

Регистрация: Mar 2011
Сообщений: 7
По умолчанию ExternalInterface JS(AJAX)

Всем добрый день, сталкнулся вот с какой проблемой в AS я делаю вызов

Код AS3:
var response:Object = ExternalInterface.call('get_config');
trace(response);
в js

PHP код:
function get_config()
{
    $.
ajax({
        
type"POST",
        
url"/ajax/get_config",
        
data: {},
        
dataType'json',
        
success: function(data){
            return 
data;
        }
    });

и почему то в AS приходит значение null хоть в консоли показывает что запрос ajax прошел нормально и ответ не нул а JSON

Подскажите пожалуйста в чем может быть проблема, почему возвращаеться не JSON

Старый 21.10.2011, 15:17
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 2  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
Что-то мне подсказывает, что ExternalInterface ждет моментального ответа от JS, а JS в свою очередь ждет ответа от сервера. Попробуйте лучше добавить еще callBack в AS и вызывать его JS'ом на success, и уже там обрабатывать.
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 21.10.2011, 15:24
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 3  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
не знаю jquery хорошенько, но , судя по коду, у вас функция которую запрашивает флеш и не возвращает ничего. так?

Старый 21.10.2011, 16:02
FenixGnom вне форума Посмотреть профиль Отправить личное сообщение для FenixGnom Найти все сообщения от FenixGnom
  № 4  
Ответить с цитированием
FenixGnom

Регистрация: Mar 2011
Сообщений: 7
Там получаеться что приходит null я пробывал делать что бы в AS через setTimeout через 2 секунды только запрашивало результат все равно получаю null так же проверял если в JS прописать

PHP код:
function get_config()
{
    $.
ajax({
        
type"POST",
        
url"/ajax/get_config",
        
data: {},
        
dataType'json',
        
success: function(data){
            return 
'{"json":"JSON"}';
        }
    });

тогда во AS приходит нормальный результат

Старый 21.10.2011, 16:31
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 5  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
тогда через addCallback() зарегистрируйте функцию js и отдавайте в неё результат запроса, а она уже пусть дернет флешку

Старый 21.10.2011, 16:33
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 6  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
попробуйте так :

Код AS3:
ExternalInterface.addCallback("asCallback" , trace);
var response:Object = ExternalInterface.call('get_config');
trace(response);

Код:
function get_config()
{
    $.ajax({
        type: "POST",
        url: "/ajax/get_config",
        data: {},
        dataType: 'json',
        success: function(data){
            document[player].asCallback(data);
        }
    });
}
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 21.10.2011, 17:23
trng вне форума Посмотреть профиль Отправить личное сообщение для trng Найти все сообщения от trng
  № 7  
Ответить с цитированием
trng

Регистрация: Jun 2011
Сообщений: 212
Когда в аяксе возникнет событие "success" и вызовется анонимная функция "function(data)" заранее неизвестно. Поэтому без addCallback таки никак.
P.S.
А к чему такие сложности с аяксом?
Если вы сами вызываете "ExternalInterface.call('get_config')", то почему вместо этого вы не можете получить данные с "/ajax/get_config" тем же urlloader-ом прямо в AS?

Старый 21.10.2011, 17:52
FenixGnom вне форума Посмотреть профиль Отправить личное сообщение для FenixGnom Найти все сообщения от FenixGnom
  № 8  
Ответить с цитированием
FenixGnom

Регистрация: Mar 2011
Сообщений: 7
Спасибо большое за помощь, с аадкалбак все теперь правельно работает

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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