- 浏览: 340758 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
junyu_h:
record方式可不可以用啊?我用record在red5那边只 ...
as3.0应用h.264的视频编码 -
letian003:
楼主怎么没把那个包一起放出来呢
AS3实例:框选对象 -
letian003:
楼主怎么没把那个把一起放出来呢
AS3实例:框选对象 -
Mr桀骜不驯:
我想请教一下,当你框选之后,怎么样可以实现鼠标点击其他地方(非 ...
AS3实例:框选对象 -
Poechant:
赞!Michael到此一游。。
FLEX提高篇--------ShareObject对象详解
相关文章:http://greenexe.iteye.com/blog/908202
http://www.mysjtu.com/page/M0/S675/675856.html
我们先来看一个例子:假设游戏当中,玩家按下鼠标,那么游戏场景中出现一个美女A,代码是:
var girl:Girl=new Girl();
addChild(girl);
放开鼠标美女被清除,代码是:
girl.dispose();
girl=null;
如果某个玩家不停地点击鼠标,那么我们的代码将不停的new Girl()。而new Girl()其实是很费时、消耗系统性能。假设new Girl()一次消耗2KB内存,如果某狂人疯狂点一千次,那么我们的Girl类就不断地创建,清除,创建,清除,那么我们的游戏内存直接增加1000*2kb,因为 FLASH是托管的GC清理资源,具体什么时候清理只有GC知道,那么我们的游戏的性能就………可是如果我们有了对象池那又是一种什么情况呢?首先Girl将被new Girl() ,然后girl被放入到对象池中存放,当鼠标按下的时候我们将执行:ObjectPool. borrowObject():取得girl,当鼠标按下我们执行 ObjectPool.returnObject():这样子girl又被放入到对象池中存起来了,执行一千次,由于使用对象池取得girl和放入girl中不涉及到对象的创建和销毁,所以我们的游戏不会导致系统资源的增加。因为girl被访到内存池中存储起来重复利用了。
摘自Adobe的一段
http://help.adobe.com/zh_CN/as3/mobile/WS948100b6829bd5a6-19cd3c2412513c24bce-8000.html
请尽可能使用对象池。
另一个重要优化称为对象池,涉及到不断重复使用对象。在初始化应用程序期间创建一定数量的对象并将其存储在一个池中,
例如 Array 或 Vector 对象。对一个对象完成操作后,停用该对象以免它占用 CPU 资源,然后删除所有相互引用。然而,
不要将引用设置为 null,这将使它符合垃圾回收条件。只需将该对象放回到池中,在需要新对象时可以对其进行检索。
重用对象可减少实例化对象的需求,而实例化对象成本很高。还可以减少垃圾回收器运行的机会,从而提高应用程序运行速度。
使用了对象池后
我们会首先创建出需要的实例,并且把它扔进对象池objectPool
对象池应该是靠单例获取
开始时:初始化的时候直接给池子一定量的对象
使用时:从objectPool里borrow一个
销毁时(释放):return它到objectPool中去
完全释放:池矢量始终引用 Sprite 对象。如果要从内存中完全删除对象,需要对 SpritePool 类使用 dispose() 方法,从而删除所有剩余引用。
了解对象池
对象池的工作原理:
对象池的工作原理的核心有两点:使用和缓存,即对于那些被频繁使用的对象,在使用完后,不立即将它们释放,而是将它们缓存起来,以供后续的应用程序重复使 用,从而减少创建对象和释放对象的次数,进而改善应用程序的性能。
优点:能快速取出对象节省了NEW对象所产生的cpu,时间的消耗。能很好的控制内存的占用,使用时从对象池取出,使用完毕放回。中间不涉及到对象 销毁创建,所以内存占用是定量的。同时如果对象池提前
缺点:对象池同样消耗new同样对象所消耗的时间,对象池从创建到结束消耗定量的内存。对象池只适合大量的对象需要被重复创建使用销毁创建使用销毁 的情况。非提前初始化式内存池,缓存as值类型的对象如:Point反而产生更大的消耗。
package { import flash.utils.Dictionary; import flash.utils.getDefinitionByName; import flash.utils.getQualifiedClassName; /** * 用于显示对象的对象池类 */ public class DisplayObjectPool { private static var instance:DisplayObjectPool; /** * 作为对象池的词典dict */ private var objPoolDict:Dictionary=new Dictionary(); public function DisplayObjectPool() { } public static function getInstance():DisplayObjectPool { if (instance == null) { instance=new DisplayObjectPool; } return instance; } /** * 向对象池中放入对象,以便重复利用 * @param disObj 要的放入对象 */ public function push(oldObj:Object):void { var objName:String=getQualifiedClassName(oldObj); if (oldObj == null) { return; } if (this.objPoolDict[objName] == null) { this.objPoolDict[objName]=[]; } this.objPoolDict[objName].push(oldObj); } /** * 从对象池中取出需要的对象 * @param targetObj 需要的对象类类名,没必要必须是类实例名 类名就可以 * @return 取出的相应对象 * */ public function pop(targetObj:Object):Object { var objName:String=getQualifiedClassName(targetObj); trace(objName); if (this.objPoolDict[objName] != null && this.objPoolDict[objName].length > 0) { return this.objPoolDict[objName].pop() as Object; } var objClass:Class=getDefinitionByName(objName) as Class; var obj:Object=new objClass as Object; return obj; } } }
发表评论
-
as3.0应用h.264的视频编码
2014-05-07 10:54 1274要启用FlashPlayer11中的h.264编码需要导入以下 ... -
AS3实例:框选对象
2012-04-08 11:21 1709代码: package { ... -
AS3实例:分类订阅
2012-04-08 02:45 1280其实也不知道用什么标题好,暂且叫拖动订阅吧,腾讯QQ新闻弹窗有 ... -
AS3图形基础:画虚线矩形框
2012-04-07 19:39 3444画虚线矩形框的需求常常都有,虽然API里没有提供现成的线条样式 ... -
Flash Player 11.3和Adobe AIR3.3新特性
2012-04-06 12:55 1756转自:http://riaoo.com/?p=23 ... -
AS3运动学基础-正弦运动2
2012-04-05 15:08 1303package { import flash. ... -
AS3运动学基础-正弦运动
2012-04-05 14:53 1289package { import flash. ... -
AS3进阶:利用缓冲池显示图片
2012-04-01 16:52 3179无论是开发游戏,还是普通的应用,熟悉bitmapdata类的用 ... -
FLASH BUILDER 4.6 序列号+ 破解
2012-03-27 14:47 78021424-4938-3077-5736-3940-5640 1 ... -
Flash Builder 4 安装提示“安装程序检测到计算机重新启动操作可能处于挂起状态“的解...
2012-03-27 14:06 28861.运行 regedit 打开注册表编辑器。 2.依次展开H ... -
BOX2D基础知识
2012-03-20 17:49 1<!DOCTYPE html PUBLIC " ... -
BOX2D深入浅出1:Hello World Box2D .
2012-03-19 11:36 1839最近工作需要,在研究BOX2D FLASH物理引擎,在9RIA ... -
使用杂点功能制作纹理
2012-03-18 13:19 1016若要修改位图的外观,可以使用 noise() 方法或 perl ... -
AS3优化化:mip映射
2012-03-18 13:16 1106原文来自:http://help.adob ... -
as3.0 滚动位图
2012-03-18 13:13 1380设想您创建了一个街道图应用程序,每次用户移动该图时,都需要您更 ... -
AS3游戏开发线路图
2012-03-07 18:48 937Flash 游戏开发需要掌握的知识结构。 -
AS3基础:圆周运动(2)
2012-03-07 18:18 1050package { import flash. ... -
AS3基础:圆周运动
2012-03-07 17:57 1358package { import flash.dis ... -
AS3基础:图片绕中心点旋转(Matrix)
2012-03-07 17:23 6389接上一篇: package { impor ... -
AS3基础:图片绕中心点旋转
2012-03-07 16:15 5500在flex中,roation是以注册点为中心的,而一般我们的 ...
相关推荐
第二部分:ActionScript 3 面向对象编程;第三部分:ActionScript 3 核心类;第四部分:ActionScript 3主要的Flash Player API;第五部分:ActionScript 3 视觉编程。以ActionScript 3 语言设计的本意和思路,浅深...
ActionScript3是Adobe Flash平台的核心编程语言,用于创建交互式内容、富互联网应用程序(RIA)以及游戏。这个“ActionScript3中文手册”是为开发者提供的一份详细文档,旨在帮助他们理解和掌握ActionScript3的基本...
《Flash ActionScript3殿堂之路》共分5个部分。第1部分:ActionScript 3语言基础;第2部分:ActionScript 3面向对象编程;第3部分:ActionScript 3 核心类;第4部分:ActionScript 3主要的Flash Player API;第5部分...
ActionScript 3.0 是一种强大的面向对象编程语言,它标志着 Flash Player Runtime 演化过程中的一个重要阶段。设计 ActionScript 3.0 的意图是创建一种适合快速地构建效果丰富的互联网应用程序的语言,这种应用程序...
ActionScript3(简称AS3)是Adobe Flash Platform的主要编程语言,用于创建互动式富媒体内容、游戏以及应用程序。本教程是面向中文用户的专业ActionScript3教程,旨在帮助开发者利用Adobe Flash CS3专业软件进行高效...
在深入探讨ActionScript 3类型转换的精妙之前,我们先来回顾一下ActionScript脚本语言,这是一种广泛应用于Adobe Flash平台的编程语言,主要用于创建动态交互式内容、游戏以及动画等。随着版本的演进,ActionScript...
《超级玛丽ActionScript3游戏源码解析》 在IT领域,尤其是游戏开发中,源码是一种宝贵的教育资源。本文将深入探讨“超级玛丽”这一经典游戏的ActionScript3版本源码,帮助开发者理解游戏编程的基本原理和技术细节。...
ActionScript 3是Adobe Flash平台的一种面向对象的脚本语言,主要用于开发Flash和Flex应用程序。随着Flash CS4 Professional的推出,许多设计师和开发者需要从ActionScript 2迁移到ActionScript 3。本指南为设计师和...
此外,事件驱动编程是ActionScript 3的一个重要特性,而观察者模式正好适用于这种场景,可以有效地管理对象间的通信和事件响应。 ### 实践中的应用 在实际开发过程中,熟练掌握设计模式的应用对于编写高质量的...
ActionScript3(简称AS3)是一种面向对象的编程语言,用于创建动态内容,特别是网页动画和互动应用。它是ActionScript2的后续版本,引入了许多改进和新特性,包括更强大的类型系统、更好的性能和增强的API。AS3的...
- **类与对象**:ActionScript3支持面向对象编程(OOP),通过类来定义对象的属性和方法,并利用继承和多态等特性来提高代码的灵活性。 #### 三、基本游戏开发技术 - **Sprite类详解**:Sprite类是ActionScript3中最...
ActionScript3是一种面向对象的编程语言,主要用于开发Adobe Flash平台上的交互式内容。遵循良好的代码规范对于编写可读性高、易于维护的代码至关重要。以下是一些ActionScript3代码规范的关键点: 1. **命名规则**...
ActionScript 3 (AS3) 是一种面向对象的编程语言,主要用于开发Adobe Flash平台上的交互式内容,如网页游戏、应用程序和动画。AS3 API 是一套接口和类库,为开发者提供了丰富的功能来构建这些应用。这篇文档将深入...
在Flash开发中,ActionScript3(AS3)是用于创建交互式内容、游戏以及富互联网应用程序(RIA)的关键编程语言。本资源“flash actionscript3 纯AS3代码_资源加载进度条.rar”显然是一个关于如何使用AS3实现资源加载...
ActionScript3相较于其前代ActionScript2有了显著的提升,包括类型系统、性能优化和面向对象编程的支持。它引入了强类型系统,意味着变量在声明时必须指定数据类型,这有助于减少运行时错误。ActionScript3还支持类...
★国内第一本“面向原因式”(Why-Oriented Book)与国际同步的、... ActionScript 3语言基础,ActionScript 3面向对象编程,ActionScript 3核心类,ActionScript 3主要的Flash Player API,ActionScript 3视觉编程。
在深入探讨Flash ActionScript 3 (AS3) 的殿堂之路之前,我们首先需要理解AS3中的数据类型和变量声明的基本概念。AS3是一门面向对象的编程语言,它的一个核心特性是“一切都是对象”(Everything is an Object)。这...
ActionScript3(AS3)是Adobe Flash平台的核心编程语言,用于创建交互式内容、富互联网应用程序(RIA)以及游戏。这个教程将带你深入理解和掌握AS3的基础和高级特性。 首先,我们关注“ActionScript3教程”这个部分...
这表明内容将包括ActionScript3的基础语法、面向对象编程概念、事件处理、显示列表管理、网络通信、音频和视频处理、以及可能的游戏开发和高级动画制作等主题。 在基础部分,读者将学习如何在AS3中声明变量、函数和...
1. **对象和类**:ActionScript3采用面向对象编程,游戏中的每个元素如蛇、食物、边界等都可以看作是不同的类。这些类定义了各自的属性(如位置、大小、速度)和方法(如移动、碰撞检测)。 2. **事件驱动编程**:...