AS 3自記類整理ノート:ByteLoader類


index.base.net.byteLoader類解説:基本機能はバイトごとに画像をロードし、swfなどの構造関数public 機能 ByteLoader(url:String) = "") パラメータurlが入ったら、すぐにロードを実行します。ロード ロード方法public 機能 ロードurl:String):voidロード開始、_urlはロードの住所udataです。 データの更新方法public 機能 udata():void更新バッファの可読バイトclose シャットダウン方法public 機能 close():voidクラスは使用済みで、不要なデータをすべて消去し、データストリームを強制的にシャットダウンしてdataをダウンロード停止することもできます。 属性public var data:ByteArayローディングのバイトurlを返します。 属性public var url:Stringはロードされたurl isLoadに戻ります。 属性(読み取り専用)public 機能 get isLoad():Booleanは、プログレスEvent.PROGRESSをロードしているデータがあるかどうかを返します。 イベントロード中のスケジュールは、Event.C.OMPLETEを添付します。 イベントロード完了スケジュール例:import index.base.net.ByteLoader;var bl:ByteLoader = new ByteLoader;bl.load("http://www.xiaos8.com/uploads/pro/50preso3a2.swf");bl.addEvent Listener(Event.C OMPLETE、complette eFun);bl.addEvent Listener(PrograesEvent.PROGS、プログレスFun)機能 compleete Fun(e:Event):void{  var loader:Loader = new Loader;  loader.loadBytes(bl.data)  addChild(loader)  bl.removeevent Listener(Event.C OMPLETE、complette eFun);  bl.removeveEvent Listener(PrograesEvent.PROGRESS、progressFun);  bl.close();  黒い。 = null;機能 プログレスFun(e:PrograesEvent):void{  trace(e.bytes Loaded)  //プログレッシブフォーマットのjpegピクチャであれば、このイベントをリリースする際にバイトを読み込み、Loader.loadByttesでロードすると、ロードしながら表示するソースコードが形成されます。

package index.base.net{ 

  import flash.events.EventDispatcher; 
  import flash.events.ProgressEvent; 
  import flash.events.Event; 
  import flash.utils.ByteArray; 
  import flash.net.URLStream; 
  import flash.net.URLRequest; 

  public class ByteLoader extends EventDispatcher{ 

    public var url:String; 
    public var data:ByteArray; 
    private var stream:URLStream; 

    public function ByteLoader(url:String = ""){ 
      if(url != ""){ 
        load(url); 
      } 
    } 

    //  
    public function load(_url:String):void{ 
      url = _url; 
      data = new ByteArray; 
      stream = new URLStream; 
      stream.load(new URLRequest(url)); 
      stream.addEventListener(Event.COMPLETE,completeFun); 
      stream.addEventListener(ProgressEvent.PROGRESS,progressFun); 
    } 

    //  
    private function progressFun(e:ProgressEvent):void{ 
      if(stream.bytesAvailable == 0) return; 
      updata(); 
      dispatchEvent(e); 
    } 

    //  
    private function completeFun(e:Event):void{ 
      stream.removeEventListener(Event.COMPLETE,completeFun); 
      stream.removeEventListener(ProgressEvent.PROGRESS,progressFun); 
      updata(); 
      if(isLoad) stream.close(); 
      dispatchEvent(e); 
    } 

    //  
    public function updata():void{ 
      if(isLoad) stream.readBytes(data,data.length); 
    } 

    //  
    public function close():void{ 
      if(isLoad) stream.close(); 
      stream = null; 
      data = null; 
    } 

    //  
    public function get isLoad():Boolean{ 
      if(stream == null) return false; 
      return stream.connected; 
    } 
  }