- 浏览: 125486 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhanchaojiang:
...
Flash使用到数学、物理的公式 -
沈冠军:
太好啦,呵呵···
用Flex Builder创建第一个Flex AIR程序 -
zht110227:
代码能加上点注释吗?看着效果更好。
Flex的通信方式(N)——URLLoader -
yangkd548:
可能是SWF是2.0的原因吧,你用3.0的试试吧
Flex与Flash的交互_1(初级简单示例) -
aotie:
你好我套用你的模式!做为什么这句 flashMc=flashC ...
Flex与Flash的交互_1(初级简单示例)
下面这个类封装了3个公共的静态方法,简单的碰撞检测可以直接使用complexHitTestObject,需要更加复杂的,那就需要看明白下面的代码,并使用3个公共的静态方法
这个类是一个外国人写的,原文地址如下:
http://www.tink.ws/blog/as-30-hittest
这个类是一个外国人写的,原文地址如下:
http://www.tink.ws/blog/as-30-hittest
package ws.tink.display { import flash.display.BitmapData; import flash.display.BlendMode; import flash.display.DisplayObject; import flash.display.Sprite; import flash.geom.ColorTransform; import flash.geom.Matrix; import flash.geom.Point; import flash.geom.Rectangle; public class HitTest { public static function complexHitTestObject( target1:DisplayObject, target2:DisplayObject, accurracy:Number = 1 ):Boolean { return complexIntersectionRectangle( target1, target2, accurracy ).width != 0; } public static function intersectionRectangle( target1:DisplayObject, target2:DisplayObject ):Rectangle { // If either of the items don't have a reference to stage, then they are not in a display list // or if a simple hitTestObject is false, they cannot be intersecting. if( !target1.root || !target2.root || !target1.hitTestObject( target2 ) ) return new Rectangle(); // Get the bounds of each DisplayObject. var bounds1:Rectangle = target1.getBounds( target1.root ); var bounds2:Rectangle = target2.getBounds( target2.root ); // Determine test area boundaries. var intersection:Rectangle = new Rectangle(); intersection.x = Math.max( bounds1.x, bounds2.x ); intersection.y = Math.max( bounds1.y, bounds2.y ); intersection.width = Math.min( ( bounds1.x + bounds1.width ) - intersection.x, ( bounds2.x + bounds2.width ) - intersection.x ); intersection.height = Math.min( ( bounds1.y + bounds1.height ) - intersection.y, ( bounds2.y + bounds2.height ) - intersection.y ); return intersection; } public static function complexIntersectionRectangle( target1:DisplayObject, target2:DisplayObject, accurracy:Number = 1 ):Rectangle { if( accurracy <= 0 ) throw new Error( "ArgumentError: Error #5001: Invalid value for accurracy", 5001 ); // If a simple hitTestObject is false, they cannot be intersecting. if( !target1.hitTestObject( target2 ) ) return new Rectangle(); var hitRectangle:Rectangle = intersectionRectangle( target1, target2 ); // If their boundaries are no interesecting, they cannot be intersecting. if( hitRectangle.width * accurracy <1 || hitRectangle.height * accurracy <1 ) return new Rectangle(); var bitmapData:BitmapData = new BitmapData( hitRectangle.width * accurracy, hitRectangle.height * accurracy, false, 0x000000 ); // Draw the first target. bitmapData.draw( target1, HitTest.getDrawMatrix( target1, hitRectangle, accurracy ), new ColorTransform( 1, 1, 1, 1, 255, -255, -255, 255 ) ); // Overlay the second target. bitmapData.draw( target2, HitTest.getDrawMatrix( target2, hitRectangle, accurracy ), new ColorTransform( 1, 1, 1, 1, 255, 255, 255, 255 ), BlendMode.DIFFERENCE ); // Find the intersection. var intersection:Rectangle = bitmapData.getColorBoundsRect( 0xFFFFFFFF,0xFF00FFFF ); bitmapData.dispose(); // Alter width and positions to compensate for accurracy if( accurracy != 1 ) { intersection.x /= accurracy; intersection.y /= accurracy; intersection.width /= accurracy; intersection.height /= accurracy; } intersection.x += hitRectangle.x; intersection.y += hitRectangle.y; return intersection; } protected static function getDrawMatrix( target:DisplayObject, hitRectangle:Rectangle, accurracy:Number ):Matrix { var localToGlobal:Point; var matrix:Matrix; var rootConcatenatedMatrix:Matrix = target.root.transform.concatenatedMatrix; localToGlobal = target.localToGlobal( new Point( ) ); matrix = target.transform.concatenatedMatrix; matrix.tx = localToGlobal.x - hitRectangle.x; matrix.ty = localToGlobal.y - hitRectangle.y; matrix.a = matrix.a / rootConcatenatedMatrix.a; matrix.d = matrix.d / rootConcatenatedMatrix.d; if( accurracy != 1 ) matrix.scale( accurracy, accurracy ); return matrix; } } }
发表评论
-
Flash网页游戏的技术内容
2013-06-07 09:55 0经过5年的从业经历,现在应该对Flash网页游戏的工作内容 ... -
安全沙箱问题实例
2012-10-12 15:14 960安全沙箱问题实例 案例1: swf加载资源需要知道资源的地址 ... -
Flash使用到数学、物理的公式
2012-02-17 12:40 1333基本三角函数的计算: ... -
FlashDevelop配置、使用随笔
2011-12-20 17:19 2924安装基础配置见 1、http://www.cnblogs.co ... -
动画旋转移动、沿鼠标绘制轨迹移动
2011-08-01 15:12 1689package common{ import core ... -
常用资源备份
2011-05-06 13:19 11321、显示到该trace位置的 ... -
Flash 程序屏幕自适应的实现
2010-12-10 15:09 3742首先确定一个最外层的容器,针对于一下两种情况作处理 1、其内部 ... -
FD编辑器变量高亮插件
2010-12-10 15:06 1222FD变量高亮插件(放在Plugins下) 在代码和左侧边框都可 ... -
禁止Flash右键菜单,禁止放大,左上对齐
2010-08-17 15:17 1749//禁止Flash右键菜单 this.contextMe ... -
加载并使用其他Swf中的类
2010-08-15 16:54 0加载其他的SWF到当前SWF的主域,并可以实例化加载的SWF中 ... -
Flash CS3联合Flash Develop开发的配置
2010-07-20 10:38 1851两个编辑器的关联配置 1.安装Flash CS3编辑器 2.安 ... -
Flash Develop的快捷键
2010-05-19 13:24 2005flashdevelop的快捷键很多 ... -
获取当前Flash的SWF文件所在文件夹绝对路径(AS项目和Flex Web项目)
2010-05-07 11:29 10103首先,说明我测试的系统地址和网络地址的情况: 某电脑一:fil ... -
Flash音乐频谱制作 频率(转)
2010-05-05 15:42 2035音乐频谱的效果,截图的效果: 源码及编译后的SWF见附件 ... -
AS 与 js 交互示例
2010-02-10 17:19 1354ActionScript/Flash代码 package ... -
Flash常用的交互信息加密的方式汇总
2010-02-10 16:16 1279常用的通信加密方式有:MD5(主用用途是验证数据的完整性)、R ... -
模仿下拉列表下拉和收起的动画效果
2010-02-10 15:55 1175/** * 实现下拉列表、弹出菜单出现和隐藏时缓动的效 ... -
拖动元件延时跟随的动画效果
2010-02-10 15:37 823/** * 实现拖动延时效果的代码 */ p ... -
创建Flash CS3组件(二) Flash CS3组件体系
2009-12-29 09:44 1606在Flash MX 2004时代,组件体系相当庞大.核心有U ... -
request.ContentType的可取值
2009-10-26 15:48 3746服务器送给客户端的数据包类型可以是text/html文本,也可 ...
相关推荐
iOS 碰撞检测 ,包含不规则的碰撞,封装成一个类,方便调用
这次做了一个并没有什么用的不规则图形碰撞检测, 代码还是蛮简单的,不过并不建议真的用来做游戏引擎中的检测部分,这个效率不够,玩玩看还可以。 并没有用双缓冲,只是做了一个Demo233
1. AABB包围盒 在游戏中,为了简化物体之间的碰撞检测运算,通常会对物体创建一个规则的几何外形将其包围 2. 二维场景中的AABB碰撞检测原理
易语言不规则图片的选择与拾取源码,不规则图片的选择与拾取,碰撞检测
js画出来的不规则线条,可以按照一定的规则来画图
本例子就是实现根据图片,实现Button的不规则展现,主要是CRgn和对CButton的重写比较简单
android以不规则图片为边框,切割另外的图片.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
仿照微信发送和显示图片为不规则的泡泡型图片,找了好久的
插件描述:TweenMax不规则图片切换特效. 参考示例:http://www.jq22.com/jquery-info6215
Android不规则图片合成,不规则相框合成 [注意:本资源来自网络,如有侵权,请联系我删除,谢谢。]
不规则图片按钮mfc实现 不规则图片按钮mfc实现
TweenMax不规则图片切换特效
可以不显示png图片(其他类型图片应该也可以)透明部分,实现不规则窗口。另有双缓冲的使用,已封装成类,使用方法简单,还有GDI+的使用已经dll和头文件,用VS2008编译通过。
项目中遇到一些不规则的图片作品需要合成,给一张不规则的png图片(比如圆形图片,中间是白色的圆形区域,外面是透明区域),需要将用白色区域裁剪用户图片并且要求效率不低于1s 解决方案 先声明我是转载的 我用过...
上传不了图片,纯文字 让我怎么描述呢? 这是一段可以改变不规则图片颜色的java代码,想知道具体的是什么,装上试试就知道了~~
该列子实现了不规则图形作为背景图片时的效果
现在HTML5大热,但看了很多介绍,都是重点介绍CANVAS而相对忽略了SVG,我个人感觉这两个技术结合,优势互补,利用SVG的交互性和CANSVAS的绘图能力,才能更好地发挥各自的作用。 以前用纯SVG做到一个拼图的DEMO,...
实现窗口(例如按钮,对话框)等的不规则贴图,图片可以是bmp png 很容易看懂,代码可以重用,
这个例子曾将在vckbase中出现过,我将其完整代码写出,供大家参考。 将一幅bmp精灵图片显示出来,不受背景图片的影响
根据该文http://blog.csdn.net/ctpxyza/article/details/11094655 copy的demo,不过由于计算量较大,不建议使用到Listview等需要添加众多图片的场景中