Flash Player 10中的FileReference.save()函数方法——让Flex在图片中写文字并保存在本地
作者: 李嘉 日期: 2009-12-03 22:49
Flash Player 10中其中一个很酷的新功能就是FileReference.save()方法。它允许Flash Player将用户请求保存在本地系统,这意味着在调用FileReference.save()后就会打开文件保存的对话框。
下面给出一个FileReference.save()的使用例子:
private function snapPic():void{
if(myMessageTxt.text.length > 0){
var bitmapData:BitmapData = new BitmapData(pic.width, pic.height);
bitmapData.draw(pic,new Matrix());
var bitmap : Bitmap = new Bitmap(bitmapData);
var jpg:JPEGEncoder = new JPEGEncoder();
var ba:ByteArray = jpg.encode(bitmapData);
file.save(ba,myMessageTxt.text + '.jpg');
} else {
Alert.show("Please enter your First name","Error");
}
}
if(myMessageTxt.text.length > 0){
var bitmapData:BitmapData = new BitmapData(pic.width, pic.height);
bitmapData.draw(pic,new Matrix());
var bitmap : Bitmap = new Bitmap(bitmapData);
var jpg:JPEGEncoder = new JPEGEncoder();
var ba:ByteArray = jpg.encode(bitmapData);
file.save(ba,myMessageTxt.text + '.jpg');
} else {
Alert.show("Please enter your First name","Error");
}
}
完整的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="800" height="560" layout="vertical" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.graphics.codec.JPEGEncoder;
private var file:FileReference = new FileReference();
private function snapPic():void{
if(myMessageTxt.text.length > 0){
var bitmapData:BitmapData = new BitmapData(pic.width, pic.height);
bitmapData.draw(pic,new Matrix());
var bitmap : Bitmap = new Bitmap(bitmapData);
var jpg:JPEGEncoder = new JPEGEncoder();
var ba:ByteArray = jpg.encode(bitmapData);
file.save(ba,myMessageTxt.text + '.jpg');
} else {
Alert.show("Please enter your First name","Error");
}
}
private function updateText():void{
if(myMessageTxt.text.length > 0){
myMessageLbl.text = myMessageTxt.text + ' says'
} else {
myMessageLbl.text = "";
}
}
]]>
</mx:Script>
<mx:Canvas id="pic">
<mx:Image source="@Embed('hello.jpg')"/>
<mx:Label y="43" fontSize="48" id="myMessageLbl"
horizontalCenter="0" width="100%" textAlign="center"/>
</mx:Canvas>
<mx:HBox horizontalCenter="0">
<mx:Label text="First name"/>
<mx:TextInput id="myMessageTxt" change="updateText()" />
<mx:Button click="snapPic()" label="Save"/>
</mx:HBox>
</mx:Application>
源码下载:Flex在图片中写文字并保存在本地
发表评论
订阅
上一篇
返回
下一篇
标签:

Flash AS 3.0中如何改变系统内置鼠标的样式 (2011-05-03 23:25)
Flash AS 3.0中Eval废除了应该用什么代替呢? (2011-04-24 21:06)
关于Flash中如何写类(面向对象基础)——AS1 (2010-02-21 12:16)
Flash AS3.0中如何改变动态文本TextField字体样式 (2010-01-07 23:56)
Flash As3 直接代码实现百叶窗效果(无需使用遮罩) (2009-11-29 22:38)
WEB开发:关于DIV被Flash挡住问题解决-让DIV浮于FLASH之上 (2009-10-18 22:31)
Flash结婚电子请帖-相约金色海滩-A Love Story在线实例演示 (2009-10-02 08:29)
Flash CS3 CS4中AS 3.0如何实现全屏 (2009-09-16 01:04)
婚礼请柬-结婚请帖-电子请帖-Flash婚姻电子请帖-结婚电子请柬 (2008-11-06 16:12)