站长网 Unix Flex上传本地图片并提前浏览的实现方法

Flex上传本地图片并提前浏览的实现方法

经常会设计一个这样的功能,比如更改个性头像,这个个性头像最终需要上传到服务器的文件系统中,但是程序希望在用户选择后直接有个预览,然后用户才进行上传。这个功能技术上其实就是需要对本地的文件能进行读

经常会设计一个这样的功能,比如更改个性头像,这个个性头像最终需要上传到服务器的文件系统中,但是程序希望在用户选择后直接有个预览,然后用户才进行上传。这个功能技术上其实就是需要对本地的文件能进行读取。在flash player10中有个类FileReference的类可以实现这个功能,而实现对文件读取的接口是load( )函数,要注意的是:

a、这个函数只能在UI操作中使用,比如用户按下按钮。
b、加载进来后的本地文件无法在AS中使用
c、这个接口是一个异步的过程,也就不是马上就加载进来,需要加Listener来操作。

下面是参考代码

复制代码 代码如下:


<?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/mx” minWidth=”955″ minHeight=”600″
creationComplete=”creationCompleteHandler(event)”>
<fx:Script>
<![CDATA[
import flash.net.FileReference;
import flash.net.FileFilter;
import flash.events.IOErrorEvent;
import flash.events.Event;

private var fr:FileReference;
private var imageTypes:FileFilter;

private function creationCompleteHandler(event:Event):void {
fr = new FileReference();
imageTypes = new FileFilter(“Images (*.jpg, *.jpeg, *.png, *.gif)”,”*.jpg; *.jpeg; *.png; *.gif;”)
fr.addEventListener(Event.SELECT, selectHandler);//增加当打开浏览文件后,用户选择好文件后的Listener
}

private function browseHandler(event:Event):void {
fr.browse([imageTypes]);//打开浏览文件的dialog
}

private function selectHandler(event:Event):void {
fr.addEventListener(Event.COMPLETE, onLoadComplete);//增加一个文件加载load完成后的listener
fr.load(); //加载用户选中文件
}

private function onLoadComplete(e:Event):void
{
imgPhoto.source = fr.data;
}

]]>
</fx:Script>
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!– 将非可视元素(例如服务、值对象)放在此处 –>
</fx:Declarations>
<mx:Image visible=”true” autoLoad=”true”/>
<mx:Button label=”Browse” />
</s:Application>

本文来自网络,不代表站长网立场,转载请注明出处:https://www.zwzz.com.cn/html/server/unix/2021/0525/6277.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部