![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 18
|
Здраствуйте!
После некоторых трудностей, сделал слайдшоу рисунки, который загружает картинки из сервера. При воспроизведения слайдшоу флеш файл можут загрузить/отправить данные. Получить параметры картинки, отправить запрос про клика, и тд. Все прекрасно работает на Firefox, Opera. Но на IE появляется проблемы, после первых-третых загрузок флеш вообще не загружает данные. Отправлять может. На каждом секунду 2 раза загружаю данные через класс URLLoader(вырезка из кода): var msgLoader:URLLoader;
var timer:Timer;
function setTimer() {
timer = new Timer(500);
timer.addEventListener("timer", loadMessages);
timer.start();
msgLoader = new URLLoader();
msgLoader.addEventListener(Event.COMPLETE, getMessages);
}
function loadMessages(event:TimerEvent):void {
request = new URLRequest("http://localhost/index.php");
msgLoader.load(request);
}
...
Заранее благодарю. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А кто сказал, что за 500 мс данные успеют загрузиться? Там вообще полный хаос начнется…
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 18
|
__etc, пока на локальном серваке работает.
miramax, спасибо. Попробую. |
|
|||||
|
Надо таймер запускать в обработчике complete. Что бы только ПОСЛЕ предыдущей загрузки началась следующая.
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 18
|
Пробовал способ [b]miramax[b].
Но все равно не работает. Потом для теста так сделал. Написал маленький скрипт, который при каждой обращении добавляет строка параметров к файл. Теперь можно узнать сколько обращения будет к скрипту. Во флеше: Потом обработчике COMPLETE(объект msgLoader:URLLoader) добавляю символ на TextField. На флеше все работает. Он отправляет запрос на сервер и получает ничего. А РНР код только 3 строка добавляет к файлу. Как-то запросы флеш ролика на пути пропадает. |
|
|||||
|
Может проблема в кэшировании браузера?
|
|
|||||
|
Цитата:
Для избежания кэширования нужно или отправлять POST запросы или каждый раз изменять GET запрос. Функция noCache гарантирует уникальность строки запроса. function loadSendMsg(event:TimerEvent):void {
timer.stop();
request = new URLRequest("http://localhost/SP/test/get.php?antiCache="+noCache());
loader.load(request);
}
function noCache():String{
var d:Date = new Date();
return d.getHours()+'_'+d.getMinutes()+"_"+d.getSeconds()+"_"+Math.random();
}
Последний раз редактировалось miramax; 11.07.2007 в 20:36. |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 18
|
Проблема не в кешировании. Проверил.
|
|
|||||
|
Регистрация: Jun 2007
Сообщений: 18
|
Еще один тест.
Просто создал ролик с таким кодом: package {
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.display.MovieClip;
import flash.text.*;
public class URLLoaderTest extends MovieClip {
var loader:URLLoader;
var request:URLRequest;
var timer:Timer;
var variables:URLVariables;
var text:TextField;
public function URLLoaderTest() {
text = new TextField();
text.autoSize = TextFieldAutoSize.LEFT;
text.border = true;
addChild(text);
text.appendText("start\n");
variables = new URLVariables();
timer = new Timer(500);
timer.addEventListener("timer", loadSendMsg);
timer.start();
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, loadComplete);
}
function loadComplete(event:Event):void {
text.appendText("Msg loaded - " + String(loader.data) + "\n");
timer.start();
}
function loadSendMsg(event:TimerEvent):void {
timer.stop();
request = new URLRequest("http://localhost/SP/test/get.php");
loader.load(request);
}
}
}
Только первый вызов loader.load(request) обращает на сервер. В файле число строк - 1. Если запустить этот ролик на Firefox и Opera проблем не будет. IE шестая. На седмом не пробовал. Странно. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|