PDA

Просмотр полной версии : отследить появления файла на сервере


2Borik
23.04.2008, 20:14
Задача заключается в следующем, необходимо отследить появление файла на сервере. Имя файла известно когда он появится нет, если появился то выполняется определенный код если не появился то ждем когда появится.
что то не могу сообразить делаю вот так
var loader:LoadVars = new LoadVars();
var intervalID:Number = setInterval(callback, 500);
function callback():Void {
loader.load("name.txt?rand="+Math.random());
onEnterFrame = function():Void {
if (!loader.loaded && loader.getBytesTotal()>0) {
clearInterval(intervalID);
trace(Math.round(loader.getBytesLoaded()/loader.getBytesTotal()*100));
} else if (loader.getBytesTotal()>0) {
trace("ok")
delete onEnterFrame;
}
};
}

TanaTiX
23.04.2008, 20:22
я бы использовал только сетинтервал без онэнтерфрэймов и onLoadError при попытке загрузки - должно хватить.

silin
24.04.2008, 00:23
не знаю насколько это надсадно для плеера, но можно по каждой неудачной загрузке запускать новую, пока не загрузим:
var loader:LoadVars=new LoadVars();
loader.onLoad = function(ok:Boolean){
if (ok){
trace("OK");
}else{
loader.load("name.txt");
}
}
loader.load("name.txt");
а лучше бы серверу и поручить отслеживать, "не царское это дело,.."

2Borik
25.04.2008, 07:54
Вообщем сделал вот так если кого интересует.
this.createEmptyMovieClip("fileSearch",1);
var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadStart = function():Void {
dataLoad();
};
listener.onLoadError = function(fileSearch:MovieClip, message:String):Void {
if (loop<300) {
loop++;
if (message="URLNotFound") {
loader.addListener(listener);
loader.loadClip(nameFile,fileSearch);
}
}
};
function dataLoad():Void {
var loader:LoadVars = new LoadVars();
loader.load(nameFile);
loader.onData = function():Void {
trace("ok")
delete loader;
};
}