as3 調用外部資源檔(swf檔案、圖片檔案)

來源:互聯網
上載者:User

 一、目標

     1.  在aa.swf中調用bb.swf

     2. bb.swf中有一個動態文本 txt1,aa.swf調用後,更改此文本的顯示內容

 

 

二、步驟

    產生bb.swf檔案

      1.建立bb.fla,並在上面加入一個動態文本,名命為"txt1"。 txt1的初始顯示為"hello"

      2.Ctrl + Enter運行 bb.fla, 會產生bb.swf檔案

 

    調用bb.swf

      1.建立aa.fla,在時間軸加如入代碼

         ch();

         function ch() {
             //調用swf檔案部分
             var lr:LoadResource = new LoadResource('bb.swf', 120, 200);
             lr.addEventListener(Event.COMPLETE, cc);
             addChild(lr);
   
            //調用圖片部分
            //var lr:LoadResource = new LoadResource('http://img1.gtimg.com/gamezone/pics/21519/21519683.jpg', -1, -1);
            //lr.addEventListener(Event.COMPLETE, cc);
            //addChild(lr);
         }
         function cc(e:Event) {
             //改變swf檔案中MC對象的屬性
             var mc:MovieClip = MovieClip(e.target.content);
             mc.txt1.text = 'bbbb';

             //改變圖片的顯示內容
             //e.target.content.height = 100;
             //e.target.content.width = 100;
             //e.target.content.alpha = .5;
         }

 

       說明:上面代碼中將圖片調用部分注釋掉了,需要測試調用圖片的,可自行開啟

 

 

三、通用調用資源類

      package {
          import flash.display.Bitmap;
          import flash.display.BitmapData;
          import flash.display.Loader;
          import flash.display.MovieClip;
          import flash.display.DisplayObject;
          import flash.events.*;
          import flash.net.URLRequest;

          //載入資源(swf jpg png gif)
          public class LoadResource extends MovieClip {
              private var _url:String;    //待請求的URL
              private var _height:int;  //MC的高度
              private var _width:int;   //MC的寬度
       
              //本次載入的內容(注意: 1.要在拋出Event.COMPLETE事件後,才能使用 2.載入swf檔案時,該變數是MovieClip; 載入圖片時,該變數是Bitmap)
              public var content:DisplayObject;        
       
              public function LoadResource(url:String, h:int, w:int) {
                 _url = url;   
                 _height = h;
                 _width  = w;           
                 configureAssets();
             }

              private function configureAssets():void {
                  var loader:Loader = new Loader();  //此處用的是 flash.display.Loader,而不是URLLoader
                  loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
                 loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

                  var request:URLRequest = new URLRequest(_url);
                  loader.load(request);
           
                  addChild(loader);
              }

              private function completeHandler(e:Event){
                  content = e.target.content;           
           
                  //設定返回對象的寬和高
                  if(_height != -1){
                      content.height = _height;
                  }
                  if(_width != -1){
                      content.width = _width;
                  }
           
                  dispatchEvent(e);   //拋出一個”Event.COMPLETE“事件,讓調用層可以做一些額外處理           
             }

              private function ioErrorHandler(event:IOErrorEvent):void {
                 trace("Unable to load image: " + event.text);
              }
          }
      }

 

 

四、其它

    Loader載入過來的資料類型:
          Loader 是用來代替原來MovieClip 的loadMovie 功能,用於載入外部的圖片檔案,SWF檔案。

          * 如果載入圖片檔案(jpg,gif,png等)時,Loader.content 得到資料類型是Bitmap 對象;
          * 如果載入SWF檔案(flash 9 版本)時,Loader.content 得到資料類型是MovieClip 對象;
          * 如果載入SWF檔案(flash 9 以前版本) 時, Loader.content 得到資料類型是AVM1Movie 對象;

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.