Flash AS3 連續加載外部若干圖片

轉載:http://sean.huanglijiang.com/article.asp?id=125

//載入圖片
    public function loadClassBgPic():void
    {
      //載入圖片沒有完畢
      bloadBgOver = false;
      //從xml數據中讀取並計算總的下載量
      bmpUrlArr.push(classXml["class"]["pad"]["background"]);
      bmpUrlArr.push(classXml["class"]["title"]["background"]);
      for(var i:uint = 0; i < classXml["class"]["page"].@count; i++)
      {
        bmpUrlArr.push(classXml["class"]["page"]["content"][i]["background"]);
      }
      itotalBmpCount = bmpUrlArr.length;
      iloadedBmpCount = 0;
      //載入第一個圖片
      loadBgPic(bmpUrlArr[iloadedBmpCount]);
    }
    public function loadBgPic(myURL:String):void
    {
      var rd:int = Math.random()*9999;
      //var myURL:String="http://192.168.1.104/flashdialog/flash/fast.jpg";//?"+rd;
      var myRequest:URLRequest = new URLRequest(myURL);
      var myLoader:Loader = new Loader();
      var myVariables:URLVariables = new URLVariables();
      myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,loadBgPicProgress);
      myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadBgPicOK);
      myLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadBgPicError);
      myRequest.method = URLRequestMethod.POST;
      myLoader.load(myRequest);
      //trace("start load");
    }
    public function loadBgPicProgress(e:ProgressEvent):void
    {
      var iloaded:uint = e.bytesLoaded;
      var itotal:uint = e.bytesTotal;
      text_progress.text = "正在載入圖片數據..."+iloaded+" / "+itotal;
    }
    public function loadBgPicOK(e:Event):void
    {
      var mload:Loader = Loader(e.target.loader);
      var bmp:Bitmap = e.target.content as Bitmap;
      //mc_bg.addBmp(bmp);
      //mc_bg.mc_content.addChild(bmp);
      bmp.width = 800;
      bmp.height = 600;
      mload.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS,loadBgPicProgress);
      mload.contentLoaderInfo.removeEventListener(Event.COMPLETE,loadBgPicOK);
      //圖片載入完畢,存儲到MC數組中
      bmpArr[iloadedBmpCount] = new MovieClip();
      bmpArr[iloadedBmpCount].addChild(bmp);
      //將該圖片mc設定到背景裏面去
      mc_bg.addChild(bmpArr[iloadedBmpCount]);
      bmpArr[iloadedBmpCount].visible = false;
      iloadedBmpCount++;
      if(iloadedBmpCount < itotalBmpCount)
      {
        //載入下一個圖片
        loadBgPic(bmpUrlArr[iloadedBmpCount]);
      }else
      {
        iloadedBmpCount = 0;
        bloadBgOver = true;
      }
      showClassBgOver();
    }
    public function loadBgPicError(e:IOErrorEvent):void
    {
      //圖片載入失敗,創建空mc
      bmpArr[iloadedBmpCount] = new MovieClip();
      //將該圖片mc設定到背景裏面去
      mc_bg.addChild(bmpArr[iloadedBmpCount]);
      bmpArr[iloadedBmpCount].visible = false;
      var txt:TextField = new TextField();
      txt.text = "該圖片載入失敗";
      bmpArr[iloadedBmpCount].addChild(txt);
      iloadedBmpCount++;
      //載入下一個圖片
      if(iloadedBmpCount < itotalBmpCount)
      {
        //載入下一個圖片
        loadBgPic(bmpUrlArr[iloadedBmpCount]);
      }else
      {
        iloadedBmpCount = 0;
        bloadBgOver = true;
      }
      showClassBgOver();
    }
    //載入背景圖片完畢,根據當前所處狀態切換顯示不同背景
    public function showClassBgOver():void
    {
      for(var j:uint = 0; j < bmpArr.length; j++)
      {
        bmpArr[j].visible = false;
      }
      switch(gameState)
      {
        case "classPad":
        //題目面板
        bmpArr[0].visible = true;
        break;
        case "inclass":
        //題目主題界面
        bmpArr[1].visible = true;
        break;
        case "classpage":
        //課程頁面,根據當前不同頁號顯示不同背景
        var temp:uint = ipage + 2;
        bmpArr[temp].visible = true;
        break;
      }
    }
以上!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章