<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
minWidth="1024" minHeight="768"
creationComplete="init()">
<s:layout>
<s:VerticalLayout gap="20" horizontalAlign="center" paddingBottom="25" paddingLeft="25" paddingRight="25" paddingTop="25"/>
</s:layout>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
private var _fileReference:FileReference=new FileReference();
private var _byteArray:ByteArray;
private var _bitmapData:BitmapData;
//Loader 类可用于加载 SWF 文件或图像(JPG、PNG 或 GIF)文件。使用 load() 方法来启动加载。
private var _loader:Loader=new Loader();
private function init():void
{
//在文件加载操作成功完成时分派。
_fileReference.addEventListener(Event.COMPLETE,fileReferenceCompleteHandler);
}
private function fileReferenceCompleteHandler(event:Event):void
{
//data : ByteArray--[只读] 成功调用 load() 方法之后代表所加载文件中的数据的 ByteArray 对象。
_byteArray=_fileReference.data;
//contentLoaderInfo属性:返回与正在加载的对象相对应的 LoaderInfo 对象。
//LoaderInfo 对象在 Loader 对象和加载的内容对象之间共享。LoaderInfo 对象提供有关加载的文件的加载进度信息和统计。
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderCompleteHandler);
_loader.loadBytes(_byteArray);
}
private function loaderCompleteHandler(event:Event):void
{
//content : DisplayObject--[只读] 包含使用 load() 或 loadBytes() 方法加载的 SWF 文件或图像(JPG、PNG 或 GIF)文件的根显示对象。
var _bitmap:Bitmap=Bitmap(_loader.content);
_bitmapData=_bitmap.bitmapData;
img.source=_bitmap;
}
private function fileReferenceSelectHandler(event:Event):void
{
//开始加载用户选择的本地文件
_fileReference.load();
}
protected function button1_clickHandler(event:MouseEvent):void
{
//文件过滤器
var _imageTypes:FileFilter = new FileFilter("图片(*.jpg, *.jpeg, *.gif, *.png)", "*.jpg; *.jpeg; *.gif; *.png");
//显示一个文件浏览对话框,让用户选择要上载的文件。
//参数:一个 FileFilter 实例数组,用于过滤在对话框中显示的文件。如果省略此参数,则显示所有文件。
_fileReference.browse([_imageTypes]);
//监听文件选择事件
_fileReference.addEventListener(Event.SELECT,fileReferenceSelectHandler);
}
]]>
</fx:Script>
<s:Button label="选择..." click="button1_clickHandler(event)"/>
<s:BitmapImage id="img" maxHeight="600" maxWidth="800"/>
</s:Application>