- 浏览: 32307 次
- 性别:
- 来自: 广州
最新评论
-
damoqiongqiu:
貌似和Timer有冲突,还有TweenMax包似乎也会有一些异 ...
AS3强制启动GC(垃圾回收器)的trick -
vinlam:
真的可以吗?
清空一个数组的新方法 -
smithfox:
"换个角度来看Flash是不支持多线程的,所以6核、 ...
关于Actionscript3的事件驱动代码执行机制 -
smithfox:
你确信 信息来自于 http://jacksondunstan ...
清空一个数组的新方法
文章列表
在AS3里面,我们用的最多的容器就是Array和Vector了,作为一个容器,我们有一个最重要的一个功能就是需要清空。我们常用的方法就是:
array = [];
这个方法看起来挺简单,简洁,对不?
但考虑你有一段循环,需要每次循环都要获得一个空的容器,而且上次的计算结果不需要保留。如果使用这个方法的话,循环N次,就会产生N个需要被垃圾回收的数组。我们知道,AVM进行垃圾回收是有性能代价的,反复的new和置空的代价更是,那么我们有没有一个新的方法来清空一个现有的容器而不需要丢掉它呢。我们会想到使用容器的splice方法,可以使用如下:
...
关于神秘的mm.cfg文件!
DisplayGPUBlendsetting 显示出当前硬件加速的工作细节
今天做一个简单的面板的视后发现了一个奇怪的问题,就是使用Flash CS4进行预览,当面板显示出来时候,Flash CS4 就会崩溃。检查了各个方面,发现最大嫌疑是一个有导出类的原件。它是使用一个有两帧的MovieClip来模拟的一个CheckBox,第一帧没有勾,第二帧打上了勾。
开头我怀疑是绑定类的问题。这个原件有绑定类,那个绑定类继承的是Movieclip类。我也检查过库中原件的属性面板,的确原件的类型为“影片剪辑”。而且这个导出类的构造函数也没有参数,可以直接拖动到舞台上面使用。
检查了这么久没有结果,开始怀疑Flash Player 版本的问题,于是使用 1 ...
这里是翻译的文章部分摘录,原文是:http://www.adobe.com/devnet/flashplayer/articles/fplayer10_1_hardware_acceleration.html
尽管硬件加速可以大幅度提升SWF的性能,但是SWF的内容设计依然重要。谨记一件事情:以前在软件渲染看起来一切 ...
近来用Flash CS4做项目的时候遇到了Flash Player版本导致的性能问题,目前使用的版本是2010年2月份发布的10.0.45.2。问题表现为大量的BitmapData快速轮换渲染导致的画面瞬间停顿、破碎。
之前我们也遇到过类似的问题,无法解决,通过升级Flash Player版本后,问题消失。
试了一下,果然将Player版本更新到Flash Professional CS5自带的10.1.53.64之后,问题消失,画面十分流畅,CPU占用也下去了。于是开始研究下是否考虑升级开发针对的版本。
为了保证未来上线后,大多数人都能满足版本要求,于是上网查询了一下目 ...
我们在调试Flash程序的时候,trace是必不可少的。如果你使用Flash CS系列IDE来调试Flash程序的话,trace中的内容会在output/输出框中显示出现。但是实际上,我们可以更进一步地看到Flash Player运行时内部的调试信息,这个对某些高手对Flash虚拟机进行极端性能调优的时候十分的有用。
所有的关键就在于一个名字叫做mm.cfg的文件,这个文件在就在你的%USER_PROFILE%下面,举例:
XP系统: C:\Documents and Settings\你的用户名
Vista 或 Win7: C:\Users\你的用户名
...
好久没有继续更新了,难得远道国庆放假,得好好归纳下才行。
之前在做项目的时候,需要在一个MovieClip的时间轴的两个时刻执行帧脚本,但是在使用addFrameScript函数的时候发现了它的一些比较出乎意料的行 ...
在Ticore's Blog中找到了一个hack方法,哈哈,使scrollrect立即生效!
//*/
// Force DisplayObject update dimensions
var bmpData:BitmapData = new BitmapData(1, 1);
bmpData.draw(mc);
//*/
转自 http://www.asarea.cn/showdiary.jsp?id=160
假如有以下代码:
package
{
/**
* ...
* @author longpeijin
*/
public class PanelType
{
public static const FLOAT:String = "Float";
public function PanelType()
{
}
}
}
还有另外一个类:
package
{
import flash.display.DisplayObject;
/**
* ... ...
近来项目中要用到ExternalInterface来调用JS设置主页和收藏夹,于是根据网上的方法搞了一下,收藏夹没问题,可主页就是死活不出来。
后来发现在HTML中的Flash属性设置wmode为Opaque就可以了,真是个奇怪的问题。可能默认的window模式是有独立的窗口句柄,opaque模式的时候渲染效率低,但是没有自己的句柄,是在浏览器中的,所以没有权限的问题。
看了外国人JOSH TYNJALA写的一篇博客文章《Be a good SWF citizen, listen for Event.UNLOAD》,里面讲到说,被loader加载的代码本身最好要监听Event.Unload事件,来进行手动的引用清楚,好让虚拟机进行GC。
但是这里有几个引申出来的问题:
这个事件需要手动对外部的loader调用unload方法才能发出,如果我在外面压根就不调用unload方法会怎么样呢?
unload方法到底干了些什么事情?他会把loader.content置空?这个如果我手动写一个dispose方法,然后调用,在将loader的引用置空,有啥区 ...
今天闲着看了看Flash的内存垃圾回收机制,发现网上有这么个用法:
try{
new LocalConnection().connect("foo");
new LocalConnection().connect("foo");
}catch(e:*){
}
他们据说是AVM2在某些错误发生的时候一定会启动一次GC,所以只要手动引发一次错误就可以了。
我也做了一下实验,new 出来100 个MovieClip,然后手动将每一个置NULL,然后再生成,反复10来次。 发现基本上垃圾对象只有在大于1000个左右才会被主动回收(也不一定是10 ...
google到的一些信息:
1. array type -- 泛型数组,这个得支持下!!
2. operator overloading -- 运算符重载?或许有用
3. generators
4. Vector class
5. destructuring assignment -- 析构?
6. triple-quoted strings
7. lexical block scoping
以及一些有用的东西
* string indexing
* slicing syntax
感觉上这次的AS向C++靠拢的感觉