Custom Search
A | A | A | Report content





package
{
  import flash.display.MovieClip;
  import fl.controls.ProgressBar;
  import fl.controls.Button;
  import flash.events.Event;
  import flash.events.ProgressEvent;
  import flash.events.MouseEvent;
  import flash.net.FileReference;
  import flash.net.FileFilter;
  import flash.net.URLRequest;
  
  public class uploader extends MovieClip
  {
    private const UPLOAD_URL:String = "./upload.php";
    private var fileRef:FileReference;
    
    public function uploader()
    {
      init();
    }
    
    public function init():void
    {
      progress_label.text = "Select a file...";
      
      browse_btn.addEventListener(MouseEvent.CLICK, startUpload);
      cancel_btn.addEventListener(MouseEvent.CLICK, cancelUpload);
      
      fileRef = new FileReference();
      fileRef.addEventListener(Event.SELECT, selectHandler);
      fileRef.addEventListener(Event.OPEN, openHandler);
      fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler);
      fileRef.addEventListener(Event.COMPLETE, completeHandler);
      
      progress_bar.source = fileRef;
    }
    
    public function startUpload(evt:MouseEvent):void
    {
      fileRef.browse();
    }
    
    private function selectHandler(evt:Event):void
    {
      var request:URLRequest = new URLRequest(UPLOAD_URL);
      fileRef.upload(request);
    }
    
    private function openHandler(event:Event):void
    {
      progress_label.text = "UPLOADING";
      browse_btn.enabled = false;
      cancel_btn.enabled = true;
    }
    
    private function progressHandler(evt:ProgressEvent):void
    {
      progress_label.text = "UPLOADING - " + Math.round((evt.bytesLoaded / evt.bytesTotal) * 100) + "%";
    }
    
    private function completeHandler(evt:Event):void
    {
      progress_label.text = "COMPLETE";
      browse_btn.enabled = true;
      cancel_btn.enabled = false;
    }
    
    private function cancelUpload(evt:MouseEvent):void
    {
      fileRef.cancel();
      progress_label.text = "UPLOAD CANCELLED";
      browse_btn.enabled = true;
      cancel_btn.enabled = false;
    }
  }
}