Flash 与性能实验笔记:对象池
今天一个下午在和civet_Dr.M.进行讨论,讨论很多关于flash 性能方面的问题,这些讨论暂时看不到什么结果,也不能总结出一套很完整的方案。不过flash和内存之间的使用是一个很重要议题。其中我们讨论了一个对象池的问题。在java当中有线程池的概念,其中原理跟对象池是差不多的。我们知道当我们创建对象时候,就需要向内存申请空间,这部分是必须的开销,当我们不需要对象的时候,就需要把他相关的引用和监听都清除掉,确保对象完全被安全释放掉。但是在这两个过程当中,创建和销毁会给虚拟机带来很多工作。当你不断创建,同时在某一条件下进行销毁。这两个过程,带来额外的开销。对效率带了一些的影响。为了减少这些操作。civet_Dr.M. 我的一个网友,他的指导思想如下
ivet_Dr.M. 19:39:56
1. 要实例的时候从池里拿
2. 不用的实现丢回池里
3. 池里的不够用就new一些
我觉得最基本就这些原则而已
civet_Dr.M. 19:40:14
2. 不使用的实例丢回池里
根据他的方法,创建对象是需要的,但是当我们删除对象的时候,有时候可以对对象进行一些特别的处理,重用这些对象,对效率会带来一定的提升。
关于对象池的使用,可以到这里观看ivet_Dr.M. 演示的一部分使用。
http://wonderfl.net/c/9ESp
参考他的写法:也尝试制作一个。对象池使用在创作粒子特效的时候尤为重要,因为粒子效果会产生很多粒子数目,这些数目也不是一个小数目,如果创建太多对象必然导致开销很大,对已经产生的对象进行回收处理,这未尝不是一个好事。当中对象池使用还有很多提出的观点会值得去探讨。
下面的代码为:创建一系列的对象进行匀速运动。其中
var ball:Ball=getClass(); 在这里用法是很有趣的。不过这个粒子数目并不是很多。故此如果更多达到一定的情况的时候,需要使用位图进行优化。这个也是一个猜想。至于可行性如何?值得思考
package
{
import flash.display.Sprite;
import flash.events.*;
public class Main extends Sprite
{
private var pool:Array=new Array();//对象池
private var contain:Sprite=new Sprite();//容器
private var speed:int=5;
public function Main()
{
init();
}
private function init():void
{
addChild(contain);
//addChild(new Stats());//监控内存使用情况
stage.addEventListener(MouseEvent.CLICK,onClickHandler);
}
pri
相关文档:
在字典中的说明不够充分让大家去理解,所以开始还是要重复说明一下。Matrix矩阵就像个数组,排列方式是以列与行组
成。在flash 8中所提供的是3 x 3矩阵,3x3的矩阵可以定义出一个3D计算,但在Flash 8中只供2D的计算,即 x 和 y
的计算,那么我们来看看这个矩阵的定义
以上的每个字母都有各自 ......
配合焦点图flash使用,原来是取得最新的图片文章,然后把相关信息作为参数传递给flash播放。
focus.asp代码如下:
<!--#Include File="conn.asp" -->
<!--#Include File="include/inc.asp"-->
<%
'首页焦点页面
'by winston
'2010/05/15
Dim QueryArray
Dim FocusLinks,FocusP ......
自己写的程序,希望对大家有帮助,其实这片flash十分的悲剧,只有4个block,1MB的空间,长期放可执行代码用的,短期放数据,十分的不合适...
void DelayTime( void )
{
u8 i ;
for( i = 0 ; i < 10 ; i++ ) ;
}
void atWriteCmd( u8 cmd )
{
SSPSend( &cmd , 1) ;
}
void atWriteData(u8 * buf , u32 nBytes ......
Architecture: i386, amd64
Configure your system to use lenny-backports by adding this line to your sources.list
deb http://www.backports.org/debian lenny-backports main contrib non-free
How to install flashplugin-nonfree :
apt-get update
apt-get install flashplugin-nonfree
How to update flash ......