Flash Player 10中的FileReference.save()函数方法——让Flex在图片中写文字并保存在本地

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");
    }
}
完整的代码如下:
<?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 + &apos;.jpg&apos;);
                } else {
                    Alert.show("Please enter your First name","Error");
                }
            }
            
            private function updateText():void{
                if(myMessageTxt.text.length > 0){
                    myMessageLbl.text = myMessageTxt.text + &apos; says&apos;
                } else {
                    myMessageLbl.text = "";
                }
            }
        ]]>
    </mx:Script>
    <mx:Canvas id="pic">
        <mx:Image source="@Embed(&apos;hello.jpg&apos;)"/>
        <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 Flex
评论: 0 | 引用: 0 | 阅读: 2113 | 打印 | 打包 | 转发
发表评论
昵 称: 密 码:
网 址: 邮 箱:
验证码: 验证码图片 选 项:
头 像:
内 容:
  • 粗体
  • 斜体
  • 下划线
  • 插入图像
  • 超链接
  • 电子邮件
  • 插入引用