- 博客(48)
- 资源 (17)
- 收藏
- 关注
原创 AS3应用程序模块化开发与ApplicationDomain
当程序越来越大,我们需要把它拆分成多个swf,在需要的时候动态加载。拆分时应该尽量把不同的类编译进唯一的swf,避免因swf文件增多而使整个程序的文件尺寸增大。 按此原则可以拆分出以下两种swf,借助 ApplicationDomain 共享其代码和资源。 模块(Module) 按照程序逻辑,可以拆分出多个“功能模块”,如“注册”、“管理”等等;按照游戏或社区类程序的关卡或场景,可以拆分出不同的“场景模块”。 这些模块不是主程序运行必须的,只在需要的时
2010-08-09 10:09:00 1069
原创 APE物理引擎初探+实例
先去http://www.cove.org/ape/index.htm 下载作者的最新版APE 然后打开说明文档 docs/api/index.html这里一共十二个类,看起来很少,所以初学者可以更有信心了。***************************************************************************************************先简单介绍一下:AbstractCollection 所有群组的抽象类Abstrac
2010-08-30 10:20:00 594
原创 APE物理引擎教程(最少的代码,写最有趣的游戏)
<br />APE 物理引擎有很好的效果,重要的是类很少,简单易学。 <br />看到网上这个引擎的教程还比较少,当初找的好苦,发几个我淘来的,<br />下面几个教程是在做游戏过程中看的:<br />APE物理引擎首页<br />http://www.cove.org/ape/index.htm<br />API文档<br />http://www.cove.org/ape/docs/api/<br />google论坛(有介绍贴图,碰撞检测……)<br />http:
2010-08-29 15:16:00 1220
原创 主流Flash物理引擎分析
<br />最近研究物理引擎,对网上能找到的开源物理引擎做了一下比较,完整的分析报告没有放出来,只放一些分析资料。<br />(一) 2D物理引擎<br /><br />1、 Box2D<br />A、 地址:http://box2dflash.sourceforge.net/,http://box2dflash.boristhebrave.com/docs/2.0.2/manual<br />B、 最后更新日期:还在更新,2.1a版<br />C、 活跃情况:用户活跃,最新的消息在2010年1月,中间
2010-08-29 14:34:00 1450
原创 目前为止所有的AS3物理引擎(AS3 Physics Engine)
<br />AS3物理引擎(AS3 Physics Engine)越来越多,在此收集一下,此页随时更新,欢迎ctrl + D收藏<br /><br />APE <---点此进入<br />APE前身是as2版本的Flade,呼声很高,优点就是清晰简单,一共没有几个类:),目前版本alpha 0.45 ,有API文档和示例,教程有一篇quick start ,在Google Group上有一个论坛可以讨论。svn上一直在更新目前svn上的版本为0.5a<br /><br />=========
2010-08-29 14:28:00 853
转载 11个以上的手把手游戏开发教程
<br /> Flash是个非常灵活的游戏建立工具,大多数时候我们从网上可以找到flash游戏AS3资源比如Zuma-like Flash Game With AS3 Source Code,对于想建立自己游戏的初学者来说,手把手教程是个好的选择。很多网站都提供了免费或付费的flash教程,这儿收集了十一个以上的flash游戏开发手把手教程。慢用!<br /><br />Flash里的高等数学函数<br /><br />许多flash用户想利用自然运动法则做些真正酷的
2010-08-27 09:51:00 780
原创 像素级碰撞的一种算法
<br /> 在flash中,任何形状的元件都是被包含在一个完整的矩形容器里的,此碰撞算法就是根据这一点来获取两个不规则形状的交集,这么说可能你听起来有些不明白,我们来进一步解释一下。<br />假如我们这里有两个不规则形状的MC,即mc1和mc2。如下图:<br /><br /><br />为了更方便于的理解,我将形状做在的容器mc1和mc2用单色的矩形来表示,如下图:<br /><br /><br />此时我们可以很明显的看到两个矩形的交集,根据mc1和mc2深度不同,可以有以下两种情况:<br
2010-08-26 10:45:00 618
原创 游戏效率
<br /> 经过一些代码的测试,得出以下结论,希望能对大家有所帮助。<br /> 首先cacheAsBitmap属性不能滥用,使用以后显示对象会按一个像素一个像素的移动,效果不好,但是对于没有缩放和旋转的平移的矢量图,会显著的提高效率,提高的幅度取决于原矢量图的复杂程度。<br />矢量图动画的缩放平移动画的效率 会比 同样大小的位图的缩放平移动画 的效率低,同样,低多少取决于原矢量图的复杂程度。所以简单的矢量图并不需要替换成位图在做动画。<br />将镜头
2010-08-23 23:17:00 455
原创 AS3实现RPG游戏地图引擎
<br /> 目前已经完成精确到像素的任意不规则形状的碰撞检测算法。同时也考虑将地图信息转为二维数组以便A*自动寻径。这样在操作上用碰撞,AI上用A*,一定能给玩家带来完美的游戏体验。<br /><br />这里的碰撞检测主要依靠封装好的类PPCD(perfectPixelCollisionDetection),它的接口如下:<br /><br />类PPCD:<br /><br />1. 返回发生碰撞的矩形边界:getCollisionRect ( target
2010-08-23 22:59:00 1031
原创 即时战略游戏开发—Rectangle应用实战+Array中被你忽略的方法
<br /> 上一次发了一篇Rectangle对象在游戏开发中的应用的文章,下面还是围绕Rectangle对象介绍一下在即时战略游戏中的实际应用。同时还将会用到数组对象中平时用的不多的几个方法。<br /><br /> 玩过《红警》或者《帝国时代》的朋友应该都知道,这类游戏有一个框选功能。鼠标在屏幕上拉一个框,处在方框之内的都被选中。如图:<br /><br /><br /> 我们这个例子的原型是这样的:<br /><br /> 1、坦克的选择有框选
2010-08-23 22:55:00 576
原创 Rectangle对象在游戏开发中的应用2
<br />上一次发了Rectangle对象的应用,觉得有必要补充一下,希望朋友们活学活用<br /><br />应用三:对两个并不存在的对象进行碰撞检测<br /><br />有的时候你想进行碰撞的两个物体并不存在,那么我们就无法通过正常的hitTest手段检测两个物体是否发生了碰撞。这个时候通过Rectangle对象无疑是最方便的。<br /><br />下面举出两个例子来说明一下这种应用:<br /><br /><br /><br /><br />首先说明上图的假设并不多见,但我只
2010-08-23 22:54:00 422
原创 Rectangle对象在游戏开发中的应用
<br /> 一直知道在flash.geos包里面有一个Rectangle对象却很少用过。无意中试用了一下发现可用的地方还很广。所以一冲动把现在的项目中的很多地方都改成了Rectangle判断了。<br /><br />应用一:屏幕滚屏<br /><br />滚屏是游戏中最常做的一项工作,一般的思路是map.x++ map.y++,然后随时判断map是否走到了头。<br /><br />下面的代码中我用了一张4000*4000的图片来说明两种方式:<br /><br />
2010-08-23 22:51:00 459
原创 MouseEvent的target和currentTarget属性区分
<br /> MouseEvent有target和currentTarget两个属性。这两个属性有区别,target返回的是最先接收到点击的交互物体,而currentTarget返回的是你addEventListener注册的这个对象。见下图:<br /> <br /><br />
2010-08-23 22:50:00 655
原创 谈谈代码重构
<br /> 开发人员可能听到过"bad smell"这个词,这个词用在软件编码中是什么意思呢? 代码还有smell吗?当然没有,正如计算机病毒,bug等词一样,这只是个形象的说法。这个词在这里的意思是代码实现了需求,但是代码却不精炼,冗余,结构混乱,难读懂,难维护,难扩展等等。与之相对应的一个词是"refactor",即代码重构。我们在看些外国人写的程序时可以发现,他们的代码里一般会定义大量的类、接口、方法,类与类,类与接口之间很多是继承和实现的关系,方法的代码行数很少,超过20行
2010-08-22 14:59:00 432
原创 ActionScript3的四种与点有关的操作符:. | .. | … | ::
<br /> 突然回想起很久很久以前,跟同事解说过这几种操作符。它们很特别,都是由点组成,并且是递进式的:一点、两点、三点 以及 四点—— . 、.. 、… 、:: 。分别是如下几个“点操作符”:一点(.):<br />这个操作符大家都用得多了,用来访问类的属性或方法的,例如:Sprite.x、Sprite.addChile();两点(..):<br />不多用 E4X 语法操作 XML 的人会对这个操作符陌生。两点(..)的这个操作符,用于访问 XML 或 XML
2010-08-21 18:10:00 403
原创 flash player 10.1和AIR 1.5.2新增了System.disposeXML()方法
垃圾回收是开发者值得注意的敏感话题。flash player的垃圾回收行为是不可控的。最近,我发现flash player 10.1和AIR 1.5.2新增了System.disposeXML()方法。这又是一个可让开发者手动进行内存释放的方法(虽然只针对 XML 对象)。目前,我所知道的,可进行释放内存的API有(相对把变量赋值为null或其它非正规手段来说):System.disposeXML()BitmapData.dispose()Loader.unloadAndStop()Sy
2010-08-21 17:42:00 739
原创 为什么指定Vector对象的长度,运行速度更快?
<br /> Vector构造函数的fixed参数不是多余的。使用固定长度的Vector对象比长度不固定的Vector要快。这是老早就知道的事情了。但,问起原因,我真的不知道。今天,我在Adobe文档上无意找到答案:每次 Vector 大小增加时,都将分配一个新的内存块。Vector的当前内容会复制到新内存块中。这种额外的分配和复制数据会降低性能。所以,尽量在创建Vector对象时,能将长度设为固定值就设为固定值。
2010-08-21 17:41:00 772
原创 分析flash mmorpg地图的实现
<br />网上看一篇关于目前几个流行flash mmorpg地图实现的分析,这里也想说说自己的一些看法。<br />常见的三种方式:<br />1、整图<br />2、Tile元素拼装<br />3、栅格化切片<br />整图<br /><br />整图加载很好理解直接加载一张背景图。这种方式比较适合小场景(面积不要超过两屏),例如可以用来做悦来客栈、家里的菜园子或者王员外的内院。<br />整图的表现最大的优点就是可以让美工随意发挥,画面可以做得很细致。当然缺点也比较明显无法做得太大,否则加
2010-08-21 17:16:00 689
原创 内存优化——对象池
1:不用的事件及时remove,或者用弱引用2:减少显示对象的使用3:如果对一个对象要频繁使用时,用对象池 关于对象池<br /><br />对象池的工作原理: 对象池的工作原理的核心有两点:使用和缓存,即对于那些被频繁使用的对象,在使用完后,不立即将它们释放,而是将它们缓存起来,以供后续的应用程序重复使用,从而减少创建对象和释放对象的次数,进而改善应用程序的性能。<br />优点:能快速取出对象节省了NEW对象所产生的cpu,时间的消耗。能很好的控制内存的占用,使用时从对象池取出,使用完毕放回。中间不涉及
2010-08-21 15:56:00 704
原创 监视flash player在运行期间的性能表现
<br />我的想法就是在Flash Player运行期间简单的加入一个性能监测工具方便我了解它的一些情况。FrameStats工具会帮助你判断Flash Player是正在执行代码呢还是正在做渲染,抑或两者都在进行。<br />这个工具是用纯粹的AS3来开发的,用下面的代码加入到你的显示对象容器内(DisplayObject Container)。<br /><br /><br /> this.addChild( new FrameStats(this) );<br /><br /><br
2010-08-20 10:08:00 776
原创 使用AS3中的FTE来渲染文本(FLash文本引擎入门)
<br />最近很多开发者都在关注手机游戏的开发,那么我来看看一个新特性(FP10),使用这种方法可以很好的解决跨硬件的问题.<br /><br />FTE (Flash文本引擎)<br />FTE 提供对文本度量、格式和双向文本的复杂控制的低级别支持。设计 FTE 的主要目的在于为开发人员创建文本处理组件提供基础。 在下面简单的例子中,你将会发现使用FTE并不复杂.<br /><br /> 下面代码需要FP10<br /><br /><br /> package {<br />
2010-08-20 09:50:00 1854 1
原创 降低显示列表上的复杂性来提高性能
<br />增加Flash应用程序性能的一种最简单方法是,移除显示列表中所有的隐藏对象,同时使用最少数量的显示对象。 代码将通过遍历整个显示列表来执行,即从显示列表最上层(舞台),到主应用程序类。 Flash Player执行代码,并从上到下重绘显示列表中的所有的孩子,直到到达显示对象。 容器可以使任何继承自DisplayObjectContainer的类,如UIComponent,Group或者Sprite。 <br />下载 (19.12 KB)<br />昨天 23:26<br
2010-08-20 09:44:00 810
原创 关于运行环境 Capabilities
<br />as3.中的 flash.system.Capabilities 类有许多静态方法返回关于播放器和计算机的信息,比如操作系统,语言,音频和视频。通过Capabilities 属性确定用户所拥有的设备的类型,可以向尽可能多的用户提供适当的内容。 更有用的是可以通知服务器发送合适的 SWF 文件,或是通知 SWF 文件变更其播放方式。<br /><br />检测播放器版本<br />version 属性 指定 Flash Player 平台和版本信息。<br />trace("vers
2010-08-14 18:35:00 757
原创 SharedObject保存数据到本地例子
SharedObject 类用于在用户计算机或服务器上读取和存储有限的数据量,类似于浏览器 Cookie。可使用共享对象执行以下操作:(1)保持本地永久性。(2)在 Flash Media Server 上存储并共享数据。(3)实时共享数据。存值:var test:SharedObject = SharedObject.getLocal("test");// 创建一个本地保存数据的对象 test.data.user = "username"; test.d
2010-08-14 17:34:00 1184
原创 采用SharedObject保存数据到本地
<br />SharedObject 类用于在用户计算机或服务器上读取和存储有限的数据量。使用共享对象,可在永久贮存在本地计算机或远程服务器上的多个客户端 SWF 文件和对象之间实现实时数据共享。本地共享对象类似于浏览器 Cookie,远程共享对象类似于实时数据传输设备。为了使用远程共享对象,您需要 Adobe Flash Media Server。 <br />可使用共享对象执行以下操作:保持本地永久性。这是使用共享对象的最简单方法,并且无需使用 Flash Media Server。例如
2010-08-14 17:31:00 950
原创 用setChildIndex()方法来设置显示对象的层深
setChildIndex 方法允许你向上或向下移动显示对象在显示列表内的位置。你可以把显示列表考虑成一个数组,它的索引位置是从第0 层开始的。如果你创建了3 个显示对象,那么他们的位置就是第0,1,2 层。第二层的对象在外面,第0 层的在最里面。 如果你想把某一个影片剪辑移动到所有显示对象的最里层,可以用setChildIndex(myMovieClip,0)执行这条语句之后,其余的对象将会自动往上提升一层,及他们的索引位置都加上了1,原来第0 层的元素移到了第1 层,第1 层的
2010-08-14 17:24:00 3869
原创 as3数据的浅复制和深复制
<br />复制一个数组,是指生成一个新的数组,内容和原有数组一样。数组赋值经常需要用到,比较重要。<br />有两种复制方式:浅复制和深复制。这个概念不是数组特有的。对引用类型的数据复制方式有有浅复制和深复制的区别。<br /><br />1.何时用浅复制?何时用深复制?<br /><br /> 当数组元素全部都是基元数据类型时,即全部是值类型时,复制是没有浅复制和深复制的分别的。若要复制,使用下文中的浅复制方法即可。<br /> 但是当数组元素全部是复杂数据类型,即引用数据
2010-08-13 13:38:00 591
原创 自定义FLEX滚动条滑块样式
在Flex里我们可以使用downArrowSkin,upArrowSkin,trackSkin,thumbSkin方法的设置滚动条的样式..不过由于设计的关系..滚动条的thumbSkin常设置成一个"点"或一个"块"..这个块是固定大小的..不像Flex自带的滚动条会随滚动区域的高度而改变..如果直接设置thumbSkin,那滑块将拉变形~非常难看..这时候我们可以使用verticalScrollBar里的setScrollProperties方法来调整滑块高度..
2010-08-10 22:05:00 1526
原创 Flash游戏开发 大纲
<br />图片来源:<br />http://www.flashas.net/uploads/allimg/100416/1644201616-0.jpg
2010-08-09 10:45:00 488
原创 Flash Player 10.1内部机制(第二部分) - 执行模型之可变跑道
By Xiaowei Lin on April 7, 2010 1:03 AM | No Comments<br />演讲人: Lee Thomason (lthomaso@adobe.com)<br />翻译: 林晓伟 (xwlin@adobe.com)<br /><br />上一篇我们介绍了Flash Player的代码库是如何归并一体以及对Flash平台的后期开发产生的影响,在第二节里,我们将重点讨论Flash Player的体系结构及其对开发人员的影响。<br
2010-08-09 10:43:00 446
原创 二水的blog (一个不错的flash工作者的blog)
<br />http://www.cnblogs.com/sevenyuan/default.html?page=11
2010-08-09 10:37:00 421
原创 一些flash牛人们的Blog
<br />Alex Uhlmann:http://weblogs.macromedia.com/auhlmann/<br /><br />Christophe Coenraets:http://coenraets.org/ 特别推荐<br /><br />Code Slinger:http://blogs.digitalprimates.net/codeSlinger/<br /><br />Deitte:http://www.deitte.com/<br /><br />Doug
2010-08-09 10:29:00 456
原创 如何复制一个加载进来的swf
<br />代码var urlLoader:URLLoader = new URLLoader();<br />urlLoader.addEventListener(Event.COMPLETE, onComplete);<br />urlLoader.dataFormat = URLLoaderDataFormat.BINARY;<br />urlLoader.load(new URLRequest("target.swf"));<br /><br />function onCompl
2010-08-09 10:29:00 506
原创 AS3中实现渐变遮罩的方法
<br />舞台上有两个影片剪辑实例:pic_mc和mask_mc<br />其中pic_mc中是一张位图,<br />mask_mc中是一个绘制的矢量矩形,从左至右使用渐变色添充,在颜色面板中设置左边色标alpha值为0,右边色标alpha值为100.<br />为舞台中的两个实例取实例名:pic_mc和mask_mc.<br />新建AS层,加入如下语句,即可实现渐变遮罩的效果:<br />pic_mc.mask=mask_mc;<br />//下面使用cacheAsBitmap,是为了让遮罩也能随
2010-08-09 10:25:00 856
原创 AS3倒影算法
<br />function createRef(picSource:DisplayObject):void<br />{<br /> // 倒置<br /> var bd:BitmapData = new BitmapData(picSource.width, picSource.height, true, 0x12346f);<br /> var mtx:Matrix = new Matrix();<br /> mtx.d = -1;<br /> mtx
2010-08-09 10:25:00 546
原创 getChildByName()与getChildAt()效率比较
<br />var monClip:MovieClip = new MovieClip();<br />monClip.name = "monOcurrence";<br />addChild ( monClip );<br />var depart:Number = getTimer();<br />for ( var i:int = 0; i< 5000000; i++ )<br />{<br />getChildByName ("monOcurrence");<br />}<b
2010-08-09 10:22:00 981
原创 自定义事件和自定义事件类
<br />正确区分自定义事件和自定义事件类,如果你只是简单地发送一个你自己的事件而不需要更多信息,可以使用<br /> var myInfo:Event=new Event("myOwnEvent");<br />dispatchEvent(myInfo)<br /> <br />来实现,我们看到自定义事件很简单,只需给Event类传入一个特殊的不与内置事件类型重复的字符串即可。<br /> 可以做如下测试: 代码//outer<br />var outer = new Sprite
2010-08-09 10:20:00 590
原创 LoaderInfo类
LoaderInfo 类可提供有关已加载的 SWF 文件或图像文件(JPEG、GIF 或 PNG)的信息。 LoaderInfo 对象可用于任何显示对象。 提供的信息包括<br /><br />加载进度、<br />加载程序的 URL 和加载内容、<br />媒体的字节总数以及媒体的标示的高度和宽度。<br /><br /><br />访问 LoaderInfo 对象: flash.display.Loader 对象的 contentLoaderInfo 属性 -
2010-08-09 10:16:00 521
原创 AS3.0中Matrix类的学习经验(改变注册点、旋转图像)
1.如何使用Matrix类来改变注册点: 做相册功能时一开始最烦的就是注册点在(0,0)的位置,为了能方便的旋转、缩放操作,需要将注册点移动到中心,参考雪の猫的方法,做了简化: 代码var ōbj=this.myImageBitmap; //要改变的图片或影片剪辑var matrix:Matrix = obj.transform.matrix;matrix.tx=0;matrix.ty=0;var halfW:Number = obj.width/2;var halfH:Numbe
2010-08-09 10:13:00 5797
Cocos2d-x实战 Lua卷.pdf
2018-09-11
我所理解的Cocos2d-x ,秦春林编著 ,P4381.pdf
2018-08-29
3D数学基础:图形与游戏开发高清带目录中文版.pdf
2017-07-03
xcode配置iOS10.3开发包
2017-03-29
WebGL编程指南
2016-02-20
用ActionScript开发高级可视化组件
2009-10-05
CSS.Mastery.精通CSS(中文版).part02
2008-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人