FlashPlayer10終於有了重大的改變了,聽到這個好消息,令梅干心情興奮不已,這幾天就將先前正在開發的影像人先丟一邊,把目前FlashPlayer10支援的部分作個總整理,FlashPlayer10支援本機開啟圖檔與儲存,同時還可呈現出中文的字型,這總算解決了先前將文字先載入,檔案大到嚇死人,因此今天花了一點時間,作了一個小範例,將開啟本機圖檔、儲存以及讀入本機字形作個總整,有興趣的朋友們不坊看一看吧!ps.另外感謝好友鬼佑所拍攝的照片,喜歡鬼佑的朋友們,可到他的部落格去喔!有更多好圖。
save2Disk.mxml
<?xml version=“1.0” encoding=“utf-8”?>
mx:Script
<![CDATA[
import mx.controls.Alert;
import mx.graphics.codec.JPEGEncoder;
[Bindable]
private var arr:Array=new Array();
private var file:FileReference = new FileReference();
private function init():void{
//讀取本機端字型
arr=Font.enumerateFonts(true);
arr.sortOn("fontName", Array.CASEINSENSITIVE);
var arrFont:Array=new Array;
for(var i:int=0; i < arr.length; i++)
{
arrFont.push(arr[i].fontName);
}
arr=arrFont;
}
//瀏覽本機圖檔
private function openFileClick():void{
//支援瀏覽的副檔名
var imagesFilter:FileFilter = new FileFilter("Images", "*.jpg;*.gif;*.png");
this.fr.browse([imagesFilter]);
}
//選擇圖檔
private function selectHandler(event:Event):void{
this.fr.load();
}
//開啟後將圖檔載入到image中
private function completeHandler(event:Event):void{
image.source = this.fr.data;
}
//儲存檔案
private function savePic():void{
if(fileNameTxt.text.length > 0){
var bitmapData:BitmapData = new BitmapData(pic.width, pic.height);
bitmapData.draw(pic,new Matrix());
var bitmap : Bitmap = new Bitmap(bitmapData);
bitmap.smoothing=true;
var jpg:JPEGEncoder = new JPEGEncoder(100);
var ba:ByteArray = jpg.encode(bitmapData);
file.save(ba,fileNameTxt.text + ‘.jpg’);
} else {
Alert.show(“請輸入檔名”,”錯誤XD~”);
}
}
private function fontFamily():void
{
T.setStyle(“fontFamily”,this.myfonts.selectedLabel);
}
]]><br />
</mx:Script><br />
<net:FileReference id="fr"
select="selectHandler(event)"
complete="completeHandler(event)"/><br />
<mx:Button label="開啟本機圖檔" click="openFileClick();"/></p>
範例預覽
[範例下載]