Flex上傳本地圖片并提前瀏覽的實(shí)現(xiàn)方法
經(jīng)常會(huì)設(shè)計(jì)一個(gè)這樣的功能,比如更改個(gè)性頭像,這個(gè)個(gè)性頭像最終需要上傳到服務(wù)器的文件系統(tǒng)中,但是程序希望在用戶(hù)選擇后直接有個(gè)預(yù)覽,然后用戶(hù)才進(jìn)行上傳。這個(gè)功能技術(shù)上其實(shí)就是需要對(duì)本地的文件能進(jìn)行讀取。在flash player10中有個(gè)類(lèi)FileReference的類(lèi)可以實(shí)現(xiàn)這個(gè)功能,而實(shí)現(xiàn)對(duì)文件讀取的接口是load( )函數(shù),要注意的是:
a、這個(gè)函數(shù)只能在UI操作中使用,比如用戶(hù)按下按鈕。
b、加載進(jìn)來(lái)后的本地文件無(wú)法在AS中使用
c、這個(gè)接口是一個(gè)異步的過(guò)程,也就不是馬上就加載進(jìn)來(lái),需要加Listener來(lái)操作。
下面是參考代碼
<?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);//增加當(dāng)打開(kāi)瀏覽文件后,用戶(hù)選擇好文件后的Listener
}
private function browseHandler(event:Event):void {
fr.browse([imageTypes]);//打開(kāi)瀏覽文件的dialog
}
private function selectHandler(event:Event):void {
fr.addEventListener(Event.COMPLETE, onLoadComplete);//增加一個(gè)文件加載load完成后的listener
fr.load(); //加載用戶(hù)選中文件
}
private function onLoadComplete(e:Event):void
{
imgPhoto.source = fr.data;
}
]]>
</fx:Script>
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 將非可視元素(例如服務(wù)、值對(duì)象)放在此處 -->
</fx:Declarations>
<mx:Image id="imgPhoto" visible="true" autoLoad="true" width="1000" height="500"/>
<mx:Button id="btnBrowse" label="Browse" click="browseHandler(event)" />
</s:Application>
欄 目:Flex
下一篇:flex chrome瀏覽器調(diào)試出現(xiàn)空白的解決方法
本文標(biāo)題:Flex上傳本地圖片并提前瀏覽的實(shí)現(xiàn)方法
本文地址:http://mengdiqiu.com.cn/a1/Flex/11587.html
您可能感興趣的文章
- 01-11flex調(diào)用webservice中的自定義類(lèi)的方法
- 01-11Flex實(shí)現(xiàn)的上傳攝像頭拍照并將UI保存為圖片
- 01-11Flex字體加粗問(wèn)題只能對(duì)英文的字體加粗
- 01-11flex利用webservice上傳照片實(shí)現(xiàn)代碼
- 01-11Flex控制彈出窗口拖動(dòng)范圍示例代碼
- 01-11flex內(nèi)嵌html網(wǎng)頁(yè)示例代碼
- 01-11Flex中在Tree綁定數(shù)據(jù)后自動(dòng)展開(kāi)樹(shù)節(jié)點(diǎn)的方法
- 01-11Flex彈出窗口請(qǐng)求Action函數(shù)示例
- 01-11Flex中通過(guò)RadioButton進(jìn)行切換示例代碼
- 01-11Flex中TabNavigator設(shè)置Tabs樣式思路及源碼


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-11flex調(diào)用webservice中的自定義類(lèi)的方法
- 01-11Flex實(shí)現(xiàn)的上傳攝像頭拍照并將UI保存
- 01-11datagrid不可編輯行有關(guān)問(wèn)題的控制方法
- 01-11Flex控制彈出窗口拖動(dòng)范圍示例代碼
- 01-11flex利用webservice上傳照片實(shí)現(xiàn)代碼
- 01-11Flex字體加粗問(wèn)題只能對(duì)英文的字體加
- 01-11Flex中在Tree綁定數(shù)據(jù)后自動(dòng)展開(kāi)樹(shù)節(jié)點(diǎn)
- 01-11flex內(nèi)嵌html網(wǎng)頁(yè)示例代碼
- 01-11Flex中通過(guò)RadioButton進(jìn)行切換示例代碼
- 01-11Flex彈出窗口請(qǐng)求Action函數(shù)示例
隨機(jī)閱讀
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實(shí)例總結(jié)
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文