Flash / Flex / ActionScript/Network/Loader

Материал из Web эксперт
Перейти к: навигация, поиск

Add event listener to content loader info

   <source lang="java">

package {

 import flash.display.*;
 import flash.text.*;
 import flash.net.URLRequest;
 import flash.events.*;
 public class Main extends Sprite {
   public function Main(  ) {
     var loader:Loader = new Loader(  );
     addChild( loader );
     
     loader.contentLoaderInfo.addEventListener( Event.OPEN, handleOpen );
     loader.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, handleProgress );
     loader.contentLoaderInfo.addEventListener( Event.ruPLETE, handleComplete );
     
     loader.load( new URLRequest( "image.jpg" ) );
   }
   
   private function handleOpen( event:Event ):void {
     trace( "open" );
   }
   
   private function handleProgress( event:ProgressEvent ):void {
     var percent:Number = event.bytesLoaded / event.bytesTotal * 100;
     trace( "progress, percent = " + percent );
   }
   
   private function handleComplete( event:Event ):void {
     trace( "complete" );
   }
 }

}

       </source>
   
  


Adding a Loader to the display list

   <source lang="java">

package {

 import flash.display.*;
 import flash.net.URLRequest;
 public class Main extends Sprite {
   private var loader:Loader;
   public function Main () {
     loader = new Loader();
     addChild(loader);
     var urlRequest:URLRequest = new URLRequest("sunset.jpg");
     loader.load(urlRequest);
   }
 }

}

       </source>
   
  


Add mouse click listener to a loaded swf

   <source lang="java">

package {

 import flash.display.*;
 import flash.net.*;
 import flash.events.*;
 public class Main extends Sprite {
   private var loader:Loader;
   public function Main(  ) {
     loader = new Loader(  );
     loader.load(new URLRequest("http://yoursite.ru/Module.swf"));
     addChild(loader);
     loader.addEventListener(MouseEvent.CLICK, clickListener);
   }
   private function clickListener (e:MouseEvent):void {
     trace("Module.swf was clicked");
   }
 }

}

       </source>
   
  


Displaying load progress

   <source lang="java">

package {

 import flash.display.*;
 import flash.net.URLRequest;
 import flash.events.*
 import flash.text.*;
 public class Main extends Sprite {
   private var loader:Loader;             // The asset loader
   private var progressOutput:TextField;  // The text field in which
                                          // to display load progress
   public function Main () {
     createLoader();
     createProgressIndicator();
     load(new URLRequest("sunset.jpg"));
   }
   private function createLoader (  ):void {
     loader = new Loader(  );
     loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,
                                               progressListener);
     loader.contentLoaderInfo.addEventListener(Event.ruPLETE,
                                               completeListener);
     loader.contentLoaderInfo.addEventListener(Event.INIT,
                                               initListener);
   }
   private function createProgressIndicator (  ):void {
     progressOutput  = new TextField(  );
     progressOutput.autoSize   = TextFieldAutoSize.LEFT;
     progressOutput.border     = true;
     progressOutput.background = true;
     progressOutput.selectable = false;
     progressOutput.text       = "LOADING...";
   }
   private function load (urlRequest:URLRequest):void {
     loader.load(urlRequest);
     if (!contains(progressOutput)) {
       addChild(progressOutput);
     }
   }
   // Listener invoked whenever data arrives
   private function progressListener (e:ProgressEvent):void {
     // Update progress indicator.
     progressOutput.text = "LOADING: "
                         + Math.floor(e.bytesLoaded / 1024)
                         + "/" + Math.floor(e.bytesTotal / 1024) + " KB";
   }
   private function initListener (e:Event):void {
     addChild(loader.content);  // Add loaded asset to display list
   }
   private function completeListener (e:Event):void {
     removeChild(progressOutput);
   }
 }

}

       </source>
   
  


Handling an event announcing a loaded object"s availability

   <source lang="java">

package {

 import flash.display.*;
 import flash.events.*;
 import flash.net.*;
 import flash.utils.*;
 public class Main extends Sprite {
   private var loader:Loader;
   public function Main(  ) {
     loader = new Loader(  );
     loader.contentLoaderInfo.addEventListener(Event.INIT,
                                               initListener);
     loader.load(new URLRequest("Module.swf"));
   }
   private function initListener (e:Event):void {
     loader.content.addEventListener("ASSETS_READY",
                                     assetsReadyListener);
   }
   private function assetsReadyListener (e:Event):void {
     trace(Object(loader.content).t.text);
   }
 }

}

       </source>
   
  


Load an image using Loader

   <source lang="java">

package {

 import flash.display.Sprite;
 import flash.display.Loader;
 import flash.net.URLRequest;
 
 public class LoadImage extends Sprite {
   
   public function LoadImage() {
     var imageLoader:Loader = new Loader();
     imageLoader.load(new URLRequest("images/trophy.png"));
     addChild(imageLoader);
   }
 }

}

       </source>
   
  


Load-error handling

   <source lang="java">

package {

 import flash.display.*;
 import flash.net.URLRequest;
 import flash.events.*
 import flash.text.*;
 public class Main extends Sprite {
   private var loader:Loader;
   private var progressOutput:TextField;
   public function Main(  ) {
     createLoader(  );
     createProgressIndicator(  );
     load(new URLRequest("sunset.jpg"));
   }
   private function createLoader (  ):void {
     loader = new Loader(  );
     loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,
                                               progressListener);
     loader.contentLoaderInfo.addEventListener(Event.ruPLETE,
                                               completeListener);
     loader.contentLoaderInfo.addEventListener(Event.INIT,
                                               initListener);
     loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,
                                               ioErrorListener);
   }
   private function createProgressIndicator (  ):void {
     progressOutput  = new TextField(  );
     progressOutput.autoSize   = TextFieldAutoSize.LEFT;
     progressOutput.border     = true;
     progressOutput.background = true;
     progressOutput.selectable = false;
     progressOutput.text       = "LOADING...";
   }
   private function load (urlRequest:URLRequest):void {
     loader.load(urlRequest);
     if (!contains(progressOutput)) {
       addChild(progressOutput);
     }
   }
   private function progressListener (e:ProgressEvent):void {
     progressOutput.text = "LOADING: "
                         + Math.floor(e.bytesLoaded / 1024)
                         + "/" + Math.floor(e.bytesTotal / 1024) + " KB";
   }
   private function initListener (e:Event):void {
     addChild(loader.content);
   }
   private function completeListener (e:Event):void {
     removeChild(progressOutput);
   }
   private function ioErrorListener (e:IOErrorEvent):void {
     progressOutput.text = "LOAD ERROR";
   }
 }

}

       </source>
   
  


Loading and Interacting with External Movies

   <source lang="java">

package {

 import flash.display.*;
 import flash.net.URLRequest;
 import flash.events.Event;
 public class LoaderExample extends Sprite {
   
   private var _loader:Loader;
   
   public function LoaderExample(  ) {
     _loader = new Loader(  );
     addChild( _loader );
     
     _loader.contentLoaderInfo.addEventListener( Event.INIT, handleInit );
     
     _loader.load( new URLRequest( "ExternalMovie.swf" ) );
   }
   
   private function handleInit( event:Event ):void {
     var movie:* = _loader.content;
     
     trace( movie.getColor(  ) );
     
     movie.setColor( 0xFF0000 );
   }
 }

}

       </source>
   
  


Loading External Images at Runtime

   <source lang="java">

package {

 import flash.display.*;
 import flash.net.URLRequest;
 public class LoaderExample extends Sprite {
   public function LoaderExample(  ) {
     var loader:Loader = new Loader(  );
     addChild( loader );
     loader.load( new URLRequest( "image.jpg" ) );
   }
 }

}

       </source>
   
  


Main.Swf Listener Receives Notification for an Event Targeted at a Module.swf Display Object

   <source lang="java">

package {

 import flash.display.*;
 import flash.net.*;
 import flash.events.*;
 public class Main extends Sprite {
   private var loader:Loader;
   public function Main(  ) {
     loader = new Loader(  );
     loader.load(new URLRequest("http://yoursite.ru/Module.swf"));
     addChild(loader);
   }
 }

}

       </source>
   
  


Polling for the existence of a loaded object

   <source lang="java">

package {

 import flash.display.*;
 import flash.events.*;
 import flash.net.*;
 import flash.utils.*;
 public class Main extends Sprite {
   private var loader:Loader;
   public function Main(  ) {
     loader = new Loader(  );
     loader.contentLoaderInfo.addEventListener(Event.INIT,
                                               initListener);
     loader.load(new URLRequest("Module.swf"));
   }
   private function initListener (e:Event):void {
     var timer:Timer = new Timer(100, 0);
     timer.addEventListener(TimerEvent.TIMER, timerListener);
     timer.start(  );
   }
   private function timerListener (e:TimerEvent):void {
     if (loader.content.hasOwnProperty("t")) {
       trace(Object(loader.content).t.text);
       e.target.stop(  );
     }
   }
 }

}

       </source>