package { import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IOErrorEvent; import flash.events.ProgressEvent; import flash.events.SecurityErrorEvent; import flash.events.StatusEvent; import flash.net.FileReference; import flash.utils.ByteArray; [Event(name="complete",type="flash.events.Event")] [Event(name="status",type="flash.events.StatusEvent")] public class LocalFileLoader extends EventDispatcher { public function LocalFileLoader() { } private var file:FileReference; public var p2pSharedObject:P2PSharedObject; public function browseFileSystem():void { file = new FileReference(); file.addEventListener(Event.SELECT, selectHandler); file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); file.addEventListener(ProgressEvent.PROGRESS, progressHandler); file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler) file.addEventListener(Event.COMPLETE, completeHandler); file.browse(); } protected function selectHandler(event:Event):void { writeText("fileChosen"); writeText(file.name+" | "+file.size); file.load(); } protected function ioErrorHandler(event:IOErrorEvent):void { writeText("ioErrorHandler: " + event); } protected function securityErrorHandler(event:SecurityErrorEvent):void { writeText("securityError: " + event); } protected function progressHandler(event:ProgressEvent):void { var file:FileReference = FileReference(event.target); writeText("progressHandler: bytesLoaded=" + event.bytesLoaded + "/" +event.bytesTotal); } protected function completeHandler(event:Event):void { writeText("completeHandler"); p2pSharedObject = new P2PSharedObject(); p2pSharedObject.size = file.size; p2pSharedObject.packetLenght = Math.floor(file.size/64000)+1; p2pSharedObject.data = file.data; p2pSharedObject.chunks = new Object(); p2pSharedObject.chunks[0] = p2pSharedObject.packetLenght+1; for(var i:int = 1;i