一个好老好老的老程序员了。
全部博文(915)
分类: 系统运维
2011-06-09 12:58:17
AS3中用FileReference的load()方法加载本地图片,本文由AirSquare作。
有很多朋友想加载本地文件,却苦于无法获取文件路径?
有很多朋友问到为什么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.loader=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);
}