//舞台属性设置
stage.align=StageAlign.TOP_LEFT;
stage.scaleMode=StageScaleMode.NO_SCALE;
var
selectBox:Sprite =
new
Sprite();
//生成选择框
var
recordX:Number;
//记录初始x坐标
var
recordY:Number;
//记录初始y坐标
var
endX:Number;
//记录结束x坐标
var
endY:Number;
//记录结束y坐标
var
moveX:Number;
//记录移动之后x坐标
var
moveY:Number;
//记录移动之后y坐标
var
myImage:Bitmap;
//显示图片的容器
var
dragFlag:Boolean=
false
;
//用于判断选择框是否正在拖动
var
clickPoint:Point;
//记录开始的选择框对应的舞台坐标点
var
endPoint:Point;
//记录选择框绘制结束后选择框对应的舞台坐标点
initStage();
function
initStage() {
myImage=
new
Bitmap();
addChild(myImage);
bg.addEventListener(MouseEvent.MOUSE_DOWN,startDraw);
//绘制选择框
selectBox.addEventListener(MouseEvent.MOUSE_DOWN,dragSelectBox);
//拖动选择框
selectBox.addEventListener(MouseEvent.MOUSE_UP,stopDragSelectBox);
//停止拖动选择框
}
function
dragSelectBox(_evt:MouseEvent):
void
{
_evt.currentTarget.startDrag();
dragFlag=
true
;
}
function
stopDragSelectBox(_evt:MouseEvent) {
if
(dragFlag==
true
) {
createJPG(mc_image,selectBox,Math.min(selectBox.localToGlobal(clickPoint).x,selectBox.localToGlobal(endPoint).x),Math.min(selectBox.localToGlobal(clickPoint).y,selectBox.localToGlobal(endPoint).y));
selectBox.stopDrag();
dragFlag =
false
;
}
}
//开始绘制
function
startDraw(_evt:MouseEvent):
void
{
stage.addEventListener(Event.ENTER_FRAME,drawSelectBox);
recordX = mouseX;
recordY = mouseY;
clickPoint =
new
Point(recordX,recordY);
}
//绘制选择框
function
drawSelectBox(_evt:Event):
void
{
selectBox.x=selectBox.y=0;
//恢复坐标到原点
selectBox.graphics.clear();
selectBox.graphics.lineStyle(1,0x000000);
selectBox.graphics.beginFill(0xffffff,0.7);
selectBox.graphics.drawRect(recordX,recordY,mouseX-recordX,mouseY-recordY);
selectBox.graphics.endFill();
addChild(selectBox);
stage.addEventListener(MouseEvent.MOUSE_UP,endDraw);
// 鼠标在舞台上放开时的事件
}
//绘制结束
function
endDraw(_evt:MouseEvent):
void
{
stage.removeEventListener(Event.ENTER_FRAME,drawSelectBox);
selectBox.stopDrag();
dragFlag =
false
;
endX = mouseX;
endY = mouseY;
endPoint =
new
Point(endX,endY);
createJPG(mc_image,selectBox,Math.min(recordX,endX),Math.min(recordY,endY));
stage.removeEventListener(MouseEvent.MOUSE_UP,endDraw);
//鼠标在舞台上放开时的事件
}
function
createJPG(m:MovieClip,box:Sprite,originX:Number,originY:Number) {
removeChild(myImage);
var
jpgSource:BitmapData=
new
BitmapData (m.width, m.height);
//先把背景图转换成BitmapData
jpgSource.draw(m);
var
rect:Rectangle =
new
Rectangle(originX,originY,box.width,box.height);
//设置复制的区域和大小
var
pt:Point =
new
Point(0, 0);
//复制到的对象的起始点
var
jpgOut:BitmapData=
new
BitmapData(box.width, box.height);
jpgOut.copyPixels(jpgSource, rect, pt);
//复制区域内容
myImage =
new
Bitmap(jpgOut);
addChild(myImage);
在Flash上点击左键拖动可以复制选中的图片内容到左上角,这个东西的具体用处,大概就是图片信息复制吧。
发表评论
-
AS3 父SWF与子SWF之间传值
2011-02-20 15:19 2617FLASH中 父SWF加载子SWF并向子SWF传值在很多应用上 ... -
flash as3.0 被加载的swf 控制主swf文件触发事件
2011-02-19 14:48 3023比如有两个swf文件 1.swf,2.swf 1.swf ... -
一些很有创意的导航栏设计,给大家分享下。
2011-02-19 11:08 1576希望对各位同学有所帮助。啊哦………… 陆续完善i ... -
浅谈webgame游戏开发技术要点
2011-02-19 11:02 1003写这些只是想和大家交 ... -
aswing
2011-02-19 10:43 857AsWing是一套UI组件框架,纯ActionScript开发 ... -
as3加载外部XML文件
2011-02-18 19:50 1440加载过程如下: 1.使用URLRequ ... -
如何保护swf文件不被反编译软件破解?
2011-02-18 19:42 2172How to protect SWFs from decomp ... -
45度地图编辑器及游戏开发心得
2011-02-15 19:12 1455转载 这个编辑器是本人为公司项目专门开发 的一个功能比较齐 ... -
BulkLoader开源文件加载类
2011-02-09 22:10 1209BulkLoader是一个不错且使用简单的开源加载类, ... -
社区客户端开发技术总结
2011-01-29 22:57 857不管是什么样的项目,都会拆分成一个一个小的模块。最终实现都是些 ... -
“神之惩戒”--国内MMORPG游戏的困局1
2011-01-28 15:13 792《神之惩戒——MMOR ... -
adobe alchemy资料整理
2011-01-28 14:56 2434Adobe 自从2007年中推出了AS3支持 ... -
hitTest(BitmapData.hitTest 方法)
2011-01-25 18:14 1173public hitTest(firstPoint:Poi ... -
AS3使用外部SWF文件的库文件
2011-01-25 15:32 1463在swf文件中使用外部swf文件的库文件,从而达到类似素材 ... -
Flash摄像头游戏课件设计与开发
2011-01-25 11:07 1197[导读] Flash摄像头游戏课件设计与开发 ... -
ps样式介绍
2011-01-22 14:32 852PS样式就是效果的集合。“窗口”“样式”就可以打开样式面板。里 ... -
获取当前SWF的绝对路径
2011-01-20 19:22 1374首先 ,说明我测试的系统地址和网络地址的情况: 某电脑 ... -
PureMVC中观察者模式运用
2011-01-20 09:36 1284刚一个开始看PureMVC,一个字乱,摸不着头脑,不过这个要慢 ... -
获取当前SWF的当前路径
2011-01-19 20:00 1441首先 ,说明我测试的系统地址和网络地址的情况: 某电脑 ... -
Event.INIT Event.COMPLETE 区别
2011-01-19 11:50 1280package{ import flash ...
相关推荐
delphi 找图找色 BitmapData.pas 使用方法请到原作者yeye55的blog查看, http://yeye55blog.blog.163.com/blog/static/19724102120111043252016/
BitmapData.draw方法是ActionScript 3.0中的一个重要功能,主要用在Adobe Flash环境中处理位图数据。这个方法允许开发者将一个显示对象(如Sprite、MovieClip或Bitmap)的可视内容复制到BitmapData对象上,从而实现...
BitmapData.pas 和 kbKernel.pas 这两个文件在IT领域中主要涉及到图像处理和自动化操作,特别是游戏或图形应用中的找图找色功能。在本文中,我们将深入探讨这两个关键概念及其在实际编程中的应用。 首先,...
王者找图对比程序,delphi制作,设定一个图,找另一个图上是否有这个图!
- BitmapDataExample3.as和BitmapDataExample3.swf:可能演示了使用BitmapData.draw()方法绘制DisplayObject,并可能展示了不同的绘制选项,如旋转、缩放或着色。 - BitmapDataExample5.as和BitmapDataExample5.swf...
BitmapData.zip 文件是一个包含 Delphi 开发中使用的 BitmapData 单元的压缩包。这个单元主要是为了实现图像处理和颜色查找功能,对于 Delphi 开发者来说,它提供了一个高效且方便的工具来搜索和操作图像数据。让...
bitmapData.applyFilter(bitmapData, new Rectangle(0, 0, bitmapData.width, bitmapData.height), new Point(), filter); ``` 6. 图像合并与混合模式 利用`merge()`方法,可以将两个BitmapData对象合并,同时可以...
在游戏开发中,BitmapData类是AS3中的一个关键组件,用于处理像素级别的图像数据。这个压缩包"Flex RIA AS3网页游戏 BitmapData CopyPixel用法.rar"显然包含了关于如何在AS3中使用BitmapData的CopyPixel方法来创建或...
在AS3中,我们可以利用BitmapData类来处理图像数据。BitmapData对象可以代表位图图像,允许我们进行读取、写入、操作和绘制像素。以下是实现等比切割的基本步骤: 1. **加载图片**:使用Loader类加载图片资源。你...
croppedBitmapData.copyPixels(bitmapData, bitmapData.rect, new Point(), maskData); croppedBitmapData.unlock(); ``` 3. **显示结果**: 最后,我们可以将裁剪后的BitmapData对象转换为Bitmap对象并添加到...
这段代码的核心在于`captureImage()`函数,它使用`BitmapData.draw()`方法捕获选定区域的图像,并将其设置到剪贴板上。用户可以通过调整舞台上的矩形来改变截取的区域,当释放鼠标时,图像会被截取并复制到剪贴板。 ...
1. 图像处理:AS3CoreLib包含了一个名为`Flash.display.BitmapData`的扩展,使得在AS3中处理图像变得更加便捷。你可以使用这个库来执行像素级别的操作,如颜色转换、滤镜应用、图像缩放和旋转。这对于游戏开发、图形...
- 使用`BitmapData.fillRect`、`BitmapData.copyPixels`等方法来更新位图数据。 #### 六、结论 通过本文的学习,我们了解到BitmapData.hitTest作为一种高级碰撞检测方法,在处理不规则图形之间的碰撞检测时具有...
在 AS3 中,可以使用 `BlendMode.INVERT` 或者通过 `BitmapData.colorTransform` 方法来实现。 ```actionscript private function processInvert():void { bitmapdata.colorTransform(new Rectangle(0, 0, ...
在ActionScript 3 (AS3) 中,加载图片并实现圆滑处理是一个常见的需求,尤其在创建用户界面或游戏时。AS3相比AS2提供了更强大的性能和更现代的编程模型,因此使用AS3来解决这个问题是明智的选择。本文将详细讲解如何...
byte[] pixels = new byte[bitmapData.Stride * bitmapData.Height]; Marshal.Copy(bitmapData.Scan0, pixels, 0, pixels.Length); // 遍历并修改像素 for (int y = 0; y < bitmapData.Height; y++) { for (int x ...
同时,我们还需要使用指针来获得图像的内部数据,因为GDI+中的BitmapData类不提供对图像内部数据的直接访问的方法。 在实现图像处理程序时,我们需要重载窗体的OnPaint()事件函数,以便在程序的主窗体上绘制图像。...
在ActionScript 3 (AS3)中,图形的创建和颜色处理是常见的任务,尤其在开发Flash内容或者Flex应用程序时。本篇文章将深入探讨如何在AS3中设置图形的颜色,并着重讲解如何通过`setPixel()`函数来改变位图的颜色。 ...
在Flash AS3中,截取舞台画面,也称为屏幕快照或截图,是开发者经常需要进行的操作,尤其在游戏开发、交互式应用或者演示中。本文将深入探讨如何使用ActionScript 3.0来实现这一功能,并提供相关知识点。 1. **...