flex图片剪裁
发布时间:2011-06-27 19:48:03 文章来源:www.iduyao.cn 采编人员:星星草
flex图片裁剪
//构造函数
public function testSprite()
{
this.loadImg();
this.createSmallCanvas();
}
//装载图片
public function loadImg(): void{
var loader: Loader = new Loader();
var url: String = "http://localhost/1.gif";
var urlRequest: URLRequest = new URLRequest(url);
loader.load(urlRequest);
this.addChild(loader);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
}
//图片装载成功后,创建一个sprite显示图片
private function loadComplete(e: Event): void{
var loader: Loader = Loader(e.target.loader);
imgmap = loader.content as Bitmap;
//下两行为图片缩放比例,但缩放后不能裁剪正确的图像位置
// imgmap.scaleX = .3;
// imgmap.scaleY = 0.35;
var imgCanvas: Sprite = new Sprite();
imgCanvas.x = 20;
imgCanvas.y = 20;
this.addChild(imgCanvas);
imgCanvas.graphics.lineStyle(1, 0x000000);
imgCanvas.graphics.beginFill(0xcccccc, 0.5);
imgCanvas.graphics.drawRoundRect(0,0,200,200,10,10);
imgCanvas.graphics.endFill();
imgCanvas.addChild(imgmap);
//蒙版,超出此imgCanvas的区域不显示
imgmap.mask = this.imgMask();
this.createCut();
}
private function imgMask(): Shape{
var mask: Shape = new Shape();
mask.x = 20;
mask.y = 20;
this.addChild(mask);
mask.graphics.beginFill(0xffffff,0.5);
mask.graphics.drawRect(0,0,200,200);
mask.graphics.endFill();
return mask;
}
//创建要裁剪的框
private function createCut(): void{
cutCanvas.x = 70;
cutCanvas.y = 70;
this.addChild(cutCanvas);
cutCanvas.graphics.lineStyle(1, 0xffffff);
cutCanvas.graphics.beginFill(0xffffff,0);
cutCanvas.graphics.drawRect(20,20,40,40);
cutCanvas.graphics.endFill();
cutCanvas.addEventListener(MouseEvent.MOUSE_DOWN, startDragHandler);
cutCanvas.addEventListener(MouseEvent.MOUSE_UP, endDragHandler);
}
private function startDragHandler(e: MouseEvent): void{
offsetx = e.stageX - cutCanvas.x;
offsety = e.stageY - cutCanvas.y;
cutCanvas.addEventListener(MouseEvent.MOUSE_MOVE, draggingHandler);
}
private function draggingHandler(e: MouseEvent): void{
cutCanvas.x = e.stageX - offsetx;
cutCanvas.y = e.stageY - offsety;
e.updateAfterEvent();
}
private function endDragHandler(e: MouseEvent): void{
this.showCutImg();
cutCanvas.removeEventListener(MouseEvent.MOUSE_MOVE, draggingHandler);
}
//创建显示裁剪后的图片的Sprite
private function createSmallCanvas(): void{
smallImgCanvas.x = 280;
smallImgCanvas.y = 20;
this.addChild(smallImgCanvas);
smallImgCanvas.graphics.lineStyle(1,0xfffeee);
smallImgCanvas.graphics.beginFill(0x000000,0.5);
smallImgCanvas.graphics.drawRect(0,0,40,40);
smallImgCanvas.graphics.endFill();
}
//裁剪图片
private function showCutImg(): void{
var newdata: BitmapData = imgmap.bitmapData.clone();
var area: Rectangle = new Rectangle(cutCanvas.x-1, cutCanvas.y-1, cutCanvas.width, cutCanvas.height);
var nd: BitmapData = new BitmapData(cutCanvas.width, cutCanvas.height);
nd.copyPixels(bd,new Rectangle(1,1,window.width-1,window.height-1),new Point(0,0));
var newImg: Bitmap = new Bitmap(nd);
smallImgCanvas.addChild(newImg);
}
转载http://kingapex.iteye.com/blog/299349修改
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
flex连接数据库编程
刚学了flex。用flex写了个程序,实现和数据库连接,但是老出问题,如下:
调用可能未定义的方法 deleteUser (通过 s...
-
AdvancedDataGrid 的节点对象怎么读取?
<?xml version= "1.0 " encoding= "utf-8 "?>
<mx:Application xmlns:mx=...
-
<mx:SWFLoader 加事件后卸载不干净
<mx:SWFLoader id="tb" source="topbar.swf" complete="tb_completeHandler(event)"/>
public...
-
flashDevelop 项目错误
我创建了一个Flex项目,该项目只包含一个文件,名为Main.mxml。
XML code
<?xml version="1.0" encoding="u...
-
类型1067:Array 类型值的隐式强制指令的目标是非相关类型
新下载了Flash Builder 4来学习flex。按照网上的一个例子写,但出现上面...
-
Flex导出Excel怎么做?要详细代码和说明。谢谢
如题。
------解决方案--------------------
给你一个网上的例子,希望对你有帮助,不...
-
flex google map问题!
最近在做flex地图,我看网上说的属性我这里都打不出来,是不是sdk版本不同啊。
我实在官网下的,是map_flex_1_20....
-
flex4.0的spark控件不能被qtp10.00的对象查看器识别
各位大侠:
我刚才qtp做flex的自动化测试,使用的flash builder是4.0版本...
-
Channel definition, mx.messaging.channels.RTMPChannel, can not be found.
我从CSDN上下载了一个FLEX+J2EE的教程,但是一步一步...
-
flex 控制键盘的响应间隔
如有个keyboaedevent的mousedown监听,里面就一句代码 trace("a");
怎么控制键盘按下后输出a的时间间隔
...