PDA

Просмотр полной версии : Отслеживание процесса загрузки XML ки


klafuda_klalafu
30.10.2007, 16:53
помогите может я шо ни так написал однако ...
почему то процесс загрузки xmlки не правильно работает вотщем трейсит Total/Loaded не постепенно по мере загрузки а выдает все разом по окончанию загрузки.
В чем проблема ?


package{
import flash.net.*;
import flash.display.*;
import flash.events.*;
public class albom extends Sprite{
public var Total:Number, Loaded:Number;
public function albom():void{
var XMLloader:URLLoader = new URLLoader();
XMLloader.addEventListener(Event.COMPLETE, completeXMLload);
XMLloader.addEventListener(ProgressEvent.PROGRESS, progressXMLload);
try {
XMLloader.load(new URLRequest("file.xml"));
} catch (error:Error) {
trace("Unable to load requested document.");
}
function completeXMLload(event:Event):void{
trace("end")
}
function progressXMLload(event:ProgressEvent):void{
Total = Number(XMLloader.bytesTotal);
Loaded = Number(XMLloader.bytesLoaded);
trace(Loaded+"/"+Total)
}
}
}
}

vvk80
30.10.2007, 17:48
адобовский пример работает корректно
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.*;

public class URLLoaderExample extends Sprite {
public function URLLoaderExample() {
var loader:URLLoader = new URLLoader();
configureListeners(loader);

var request:URLRequest = new URLRequest("1.xml");
try {
loader.load(request);
} catch (error:Error) {
trace("Unable to load requested document.");
}
}

private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}

private function completeHandler(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace("completeHandler: " + loader.data);

var vars:URLVariables = new URLVariables(loader.data);
trace("The answer is " + vars.answer);
}

private function openHandler(event:Event):void {
trace("openHandler: " + event);
}

private function progressHandler(event:ProgressEvent):void {
trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}

private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}

private function httpStatusHandler(event:HTTPStatusEvent):void {
trace("httpStatusHandler: " + event);
}

private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
}
}

результат загрузки 140kb xml файла
openHandler: [Event type="open" bubbles=false cancelable=false eventPhase=2]
progressHandler loaded:65536 total: 141369
progressHandler loaded:131072 total: 141369
progressHandler loaded:141369 total: 141369
httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=0]
completeHandler: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
.......................

klafuda_klalafu
30.10.2007, 18:56
Да, но при симуляции загрузки с какой нить скоростью... он все равно работает не верно !....
я весь день голову ломаю по етому поводу