天天看點

air 加載本地圖檔

<a href="http://bbs.9ria.com/forum.php?mod=viewthread&amp;tid=161543&amp;highlight=%E5%8A%A0%E8%BD%BD%E6%9C%AC%E5%9C%B0%E5%9B%BE%E7%89%87">http://bbs.9ria.com/forum.php?mod=viewthread&amp;tid=161543&amp;highlight=%E5%8A%A0%E8%BD%BD%E6%9C%AC%E5%9C%B0%E5%9B%BE%E7%89%87</a>

有很多朋友想加載本地檔案,卻苦于無法擷取檔案路徑?

    有很多朋友問到為什麼API裡FileReference有load()方法和data屬性卻不能使用?

      我也曾經有次困惑,但是如今解決了,現在與大家分享。

    1、要想使用FileReference的load()方法和data屬性需要使用flashplayer 10的版本,sdk3.5(sdk4.0肯定也可以,其他本版各位可以去試試),然後還要添加playerglobal.swc,在你所用的sdk包下面,我這裡的路徑是sdk3.5.0.12683/frameworks/libs/player/10/playglobal.swc,至此OK了,你再使用FileReference.load()或FileReference.data時就不會看到“調用可能未定義的方法”等不舒服的字眼了,吼吼。

    2、下面就可以用load()方法加載圖檔了

    var file:FileReference=new FileReference();

      var loader

air 加載本地圖檔

oader=new Loader();

      private function onClick(e:MouseEvent):void

      {

          file.browse();

          file.addEventListener(Event.SELECT,onSelect);

      }

      private function onSelect(e:Event):void

          file.load();

          file.addEventListener(Event.COMPLETE,onComplete);

          file.removeEventListener(Event.SELECT,onSelect);

      private function onComplete(e:Event):void

          file.removeEventListener(Event.COMPLETE,onComplete);

          loader.loadBytes(file.data);

          loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadComplete);

      private function onLoadComplete(e:Event):void

          var tempData:BitmapData=new BitmapData(loader.width,loader.height,

                                                     false,null);

          tempData.draw(loader);

          var bitmap:Bitmap=new Bitmap(tempData);

          addChild(bitmap);

          loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,

                                                     onLoadComplete);

      }  

繼續閱讀