打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
Flex4 合成图片另存为到硬盘
nywrb
>《flex》
2012.10.24
关注
Flex4 合成图片另存为到硬盘
博客分类:
Flex
Flex
Adobe
Flash
UP
.net
Xml代码
<?
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
=
"application1_creationCompleteHandler(event)"
width
=
"660"
height
=
"800"
>
<
fx:Declarations
>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</
fx:Declarations
>
<
fx:Script
>
<![CDATA[
import flash.net.FileReference;
import mx.events.FlexEvent;
import mx.graphics.ImageSnapshot;
import mx.graphics.codec.JPEGEncoder;
import spark.events.IndexChangeEvent;
private var file:FileReference;
private var ImageArray:Array;
private var bitMapArray:Array;
private var currentMoveImage:Image;
private var dx:Number;
private var dy:Number;
private var qyX:Number = 10;
private var qyY:Number = 210;
private var qyWidth:Number = 640;
private var qyHeight:Number = 400;
private var bitmapdata:BitmapData;
[Embed(source='1.gif')]
private var gif1:Class;
[Embed(source='2.gif')]
private var gif2:Class;
[Embed(source='3.gif')]
private var gif3:Class;
[Embed(source='4.gif')]
private var gif4:Class;
[Embed(source='5.gif')]
private var gif5:Class;
[Embed(source='6.gif')]
private var gif6:Class;
[Embed(source='7.gif')]
private var gif7:Class;
[Embed(source='8.gif')]
private var gif8:Class;
[Embed(source='9.gif')]
private var gif9:Class;
[Embed(source='10.gif')]
private var gif10:Class;
[Bindable]private var imgArray:Array = [
{imgSource:gif1},
{imgSource:gif2},
{imgSource:gif3},
{imgSource:gif4},
{imgSource:gif5},
{imgSource:gif6},
{imgSource:gif7},
{imgSource:gif8},
{imgSource:gif9},
{imgSource:gif10}
]
/**
*点击另存为方法
*/
protected function saveas_clickHandler(event:MouseEvent):void
{
bitmapdata = new BitmapData(qyWidth,qyHeight);
var l:int = bitMapArray.length;
for(var i:int = 0;i<l;i++)
{
var bit:Bitmap = bitMapArray[i];
currentMoveImage = ImageArray[i];
var bitdata:BitmapData = bit.bitmapData;
var rect:Rectangle = new Rectangle(0,0,currentMoveImage.width,currentMoveImage.height);
var point:Point = new Point(currentMoveImage.x-qyX,currentMoveImage.y-qyY);
bitmapdata.copyPixels(bitdata,rect,point);
}
saveImg.source = new Bitmap(bitmapdata);
var timer:Timer = new Timer(10,1);
timer.addEventListener(TimerEvent.TIMER_COMPLETE,onTimerComplete);
timer.start();
}
/**
*延时10毫秒等待数据加载完
*/
private function onTimerComplete(event:TimerEvent):void
{
var imgData:ImageSnapshot = ImageSnapshot.captureImage(saveImg,0);
file.save(imgData.data,"image.png");
}
/**
*点击清除
*/
private function clearImg(event:MouseEvent):void
{
for(var i:int = 0;i<ImageArray.length;i++)
{
this.removeElement(ImageArray[i]);
}
ImageArray = [];
bitMapArray = [];
}
private function onChange(event:IndexChangeEvent):void
{
var obj:Object = list.selectedItem;
var bit:Bitmap = new obj.imgSource();
bitMapArray.push(bit);
var img:Image = new Image();
img.source = obj.imgSource;
img.y = 220;
img.x = 20;
img.buttonMode = true;
img.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
ImageArray.push(img);
this.addElement(img);
list.selectedIndex = -1;
}
/**
*鼠标按下
*/
private function onDown(event:MouseEvent):void
{
currentMoveImage = event.target as Image;
dx = mouseX - currentMoveImage.x;
dy = mouseY - currentMoveImage.y;
this.stage.addEventListener(MouseEvent.MOUSE_MOVE,onMove);
this.stage.addEventListener(MouseEvent.MOUSE_UP,onUp);
}
/**
*鼠标移动实现图片拖动
*/
private function onMove(event:MouseEvent):void
{
currentMoveImage.x = mouseX-dx;
currentMoveImage.y = mouseY-dy;
if(currentMoveImage.x<qyX){
currentMoveImage.x = qyX+1;
}
if(currentMoveImage.x+currentMoveImage.width>qyWidth+qyX){
currentMoveImage.x = qyWidth+qyX-1-currentMoveImage.width;
}
if(currentMoveImage.y<qyY){
currentMoveImage.y = qyY+1;
}
if(currentMoveImage.y+currentMoveImage.height>(qyHeight+qyY)){
currentMoveImage.y = qyHeight+qyY-1-currentMoveImage.height;
}
}
/**
*鼠标抬起移除事件
*/
private function onUp(event:MouseEvent):void
{
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMove);
this.stage.removeEventListener(MouseEvent.MOUSE_UP,onUp);
currentMoveImage = null;
}
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
//创建上传下载文件对象
file = new FileReference();
//实例化数组 盛放创建完得图片
ImageArray = new Array();
bitMapArray = new Array();
saveImg.width = qyWidth;
saveImg.height = qyHeight;
k.graphics.lineStyle(1,0x222222,1);
k.graphics.drawRect(qyX,qyY,qyWidth,qyHeight);
k.graphics.endFill();
}
]]>
</
fx:Script
>
<
s:Label
x
=
"23"
y
=
"10"
text
=
"请选择图片进行拼图"
height
=
"23"
color
=
"#F70606"
fontFamily
=
"宋体"
fontSize
=
"15"
/>
<
s:List
x
=
"23"
y
=
"30"
width
=
"611"
itemRenderer
=
"imgRender"
height
=
"158"
id
=
"list"
change
=
"onChange(event)"
>
<
s:layout
>
<
s:HorizontalLayout
/>
</
s:layout
>
<
s:dataProvider
>
<
s:ArrayCollection
source
=
"{imgArray}"
/>
</
s:dataProvider
>
</
s:List
>
<
s:Button
x
=
"11"
y
=
"653"
label
=
"另存为"
id
=
"saveas"
click
=
"saveas_clickHandler(event)"
visible
=
"true"
/>
<
mx:Image
id
=
"saveImg"
visible
=
"false"
/>
<
s:SpriteVisualElement
id
=
"k"
/>
<
s:Button
x
=
"104"
y
=
"653"
label
=
"清除"
click
=
"clearImg(event)"
/>
</
s:Application
>
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
ArcGIS.Server.9.3和ArcGIS API for Flex实现GraphicsLayer上画点、线、面(五)
flash as3.0 像素级的碰撞检测
Flex存储图片到数据库的例子
Flash AS3.0 加载外部资源(图片 MP3 SWF)的两种方式
Windows 8 Image
实时加载Flex皮肤
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×