Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Онлайн передача данных (http://www.flasher.ru/forum/showthread.php?t=190452)

Ktulhu999 24.12.2012 17:37

Онлайн передача данных
 
Проблема следующая:
Нужно как то сделать передачу данных которая будет проверяться в РеалТайм режиме (онлайн).
данные изменяются постоянно, и нужно отлавливать и показывать также быстро, как они и записываются.

Т.е. как вообще сделать Клиент Сервер на ActionScript 3.0, если пишешь сам код на Флешь Буилдере, без кадровых анимашек...

нужно чтобы передача данных работала в обработчике событий:

Код AS3:

private function onEnterFrame(e:Event):void {
// обработка событий
// показать данные Пользователь1 (допустим. данные берутся из user1.txt)
}

С сохранением проблем нет, а вот с загрузкой есть, не грузиться в онлайн режиме, работает несколько секунд, делает 2-3 итерации и глохнет!

Может кто сталкивался с такой проблемой?

dimarik 24.12.2012 17:45

Ktulhu999, для оформления кода используйте теги [as3][/as3]

NikolyA 24.12.2012 17:53

Ktulhu999, а сами как делаете загрузку, покажите код

Ktulhu999 24.12.2012 18:12

Покажу на примере Отображения времени:

Инициализируем переменные:
Код AS3:

private var urlRequest:URLRequest = new URLRequest("gettime.php");
private var urlLoader:URLLoader = new URLLoader();

Потом Инициализируем данные:
Код AS3:

urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES; 
urlLoader.addEventListener(Event.COMPLETE, onComplete);

Где:
Код AS3:

protected function onComplete(event:Event):void {
mes1.appendText(loader.data.curtime+"\n"); // Вывод в Текстовое поле данных вернувшихся из PHP
}

Потом в Обработчике событий кадров:
Код AS3:

private function onEnterFrame(e:Event):void {
urlLoader.load(urlRequest); // обращаемся к PHP и берем оттуда дату
}

А вот и сам PHP:
PHP код:

<?php
    $curtime
=date("d.m.Y - h.i.s");
    echo 
'curtime='.$curtime;
?>

При запуске, проходит где то проходов 30-40 - И всё виснит... потом если убрать Фокус с окна, отвисает, или работает в фоновом режиме, либо намертво Умирает... (((

Добавлено через 29 минут
Неожиданное рядом!
Всем Спасибо! НО...

Думал уже всё, пойду за верёвкой и мылом, как вдруг дружище запустил это дело на IE,
а потом я и сам запустил на IE - Всё работает как часы, не глючит. не тормозит не зависат...

новый вопрос: Почему Зависает данный процесс в браузерах Firefox и Chrome, а в IE - работет!?
И главное: Как это починить? Кто знает?

Nooob 24.12.2012 23:31

Код AS3:

private function onEnterFrame(e:Event):void {
urlLoader.load(urlRequest); // обращаемся к PHP и берем оттуда дату
}

Каждый кадр шлёшь запрос. Нельзя так делать.
Причиной может быть то, что этих запросов очень много появляется (или может просто реюзается тот же URLLoader без получения ответа на предыдущий запрос), максимум 15 вроде можно. Нужно делать очередь запросов, где каждый следующий запрос будет ждать ответа на предыдущий если в очереди не пусто, ну и запрос должен проходить валидацию на то что нужно ли всё ещё отправлять его или нет, так как предыдущий запрос может изменить данные.
А если тебе нужно всегда поддерживать соединение и получать информацию при изменении, используй сокет клиент-сервер.

goWalk 25.12.2012 01:53

Вместо onEnterFrame функции напиши это:
Код AS3:

{
    loadUpdate();
}
 
private function loadUpdate():void {
    urlLoader.load(urlRequest);
    urlLoader.addEventListener(Event.COMPLETE, onCompleteLoadingUpdate);
}
private function onCompleteLoadingUpdate(e:Event):void {
    urlLoader.removeEventListener(Event.COMPLETE, onCompleteLoadingUpdate);
    update(urlLoader.data);
    loadUpdate();
}
private function update(data:String):void {
    trace('Загрузка завершена, тут выполните свои действия после загрузки.');
}


Ktulhu999 25.12.2012 10:13

Друзья, всем спасибо...

Перепробовал любые способы, и потоковые данные, и ограничение доступа, и последовательное обращение, и даже обращение с паузой, пофигу... Проблема Осталась та же!

В IE - работает "ВСЁ", в Файере не работает "НИЧЕГО"... так что начинаю подозревать, что есть может какая то трабла с выводом данных, может быть сам TextField глючит, или это фундаментальная ошибка в FireFox... напишу им в поддержку, может это их касяк!

Всем спасибо.

caseyryan 25.12.2012 10:42

Цитата:

напишу им в поддержку, может это их касяк!
Бесполезная трата времени. Плагин то не их, а адобовский. А в адоби это даже читать не будут.
Тем более что нет в текстфилде никаких проблем.

iNils 25.12.2012 10:46

Цитата:

Сообщение от Ktulhu999 (Сообщение 1111705)
или это фундаментальная ошибка в FireFox... напишу им в поддержку, может это их касяк!

Это косяк кривого кода, браузер тут точно не причем.

Ktulhu999 25.12.2012 19:08

Цитата:

Сообщение от iNils (Сообщение 1111717)
Это косяк кривого кода, браузер тут точно не причем.

Я код представил! что в нем интересно кривого? По мне так вообще ничего нет, просто вывод запрошеных данных в цикле, и совершенно не важно сколько раз я беру запрос. Я бы согласился бы с этим утверждением, если бы сам Сервер Вешало, от запросов к одному и тому же фалу N*M раз... Но с этим все в порядке!

и тогда вообще Как Вы объясните, что мой "кривой" код в IE - работает, а в FireFox-е - нет????


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

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