- 浏览: 1088305 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
这几天做了一个关于加载和内存变化.以及被加载文件的清除的测试;
小有心得~不敢独享,摆到这里让各位大大拍砖;
代码如下:
public class LoadArrangeMain extends Sprite
{
public function LoadArrangeMain()
{
init();
}
private function init():void {
trace("start Memory : " + System.totalMemory);
loadStart();
}
private function loadStart():void {
var loader:Loader = new Loader();
var loadcontext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
loader.load(new URLRequest("loadSwf.swf"), loadcontext);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandle);
}
private function completeHandle(e:Event):void {
trace("loaded Memory : " + System.totalMemory)
trace(" IS HAS definetion atem? " +ApplicationDomain.currentDomain.hasDefinition("com.loadedSwf.Atem"));
e.currentTarget.removeEventListener(e.type, arguments.callee);
var loader:Loader = e.currentTarget.loader as Loader;
var loadSwf :*= loader.content;
stage.addEventListener(MouseEvent.CLICK, loadSwf.showMessage,false,0,true);
loadSwf = null;
loader.unloadAndStop(true);
loader = null;
//gc();
setTimeout(getDefinition, 3 * 1000);
}
private function getDefinition():void {
trace("unloaded Memory : " + System.totalMemory)
trace(" IS HAS definetion atem? " +ApplicationDomain.currentDomain.hasDefinition("com.loadedSwf.Atem"));
}
private function gc():void {
try {
var local_1:LocalConnection = new LocalConnection();
var local_2:LocalConnection = new LocalConnection();
local_1.connect("foo");
local_2.connect("foo");
}catch (e:Error) {
trace("GC\n")
}
}
}
复制代码
输出结果为:
start Memory : 3006464
loaded Memory : 3866624
IS HAS definetion atem? true
unloaded Memory : 3690496
IS HAS definetion atem? true
加入SWF 后内存增加了 860000 B左右,通过unload 和GC之后 约小了 200000 左右;
那么剩下的是什么呢?
继续测试:
var arr:Array=[];
var loaders:Array=[];
for (var i:int=0;i<50;i++){
arr.push("loadSwf.swf");
}
load();
private function load(e:Event=null):void{
if(arr==ull|| arr.length<1) complete();
var loader:loader=new Loader();
loader.load(new URLRequest(arr.shift()));
loader.contentLoadInfo.addEventLsiener(Event.COMPLETE,load);
loaders.push(loader);
}
private function complete():void{
trace ("loaded memory :"+System.totalMemory);
for each(var loader:Loader in loaders){
laoder.unloadAndStop(false);
loader=null;
}
loaders=null;
setTimerOut(showMemory,3*1000);
}
private function showMemory():void{
trace("lasted Memory:"+System.totalMemory);
}
复制代码
输出结果:
start memory 3035136
loaded memory 7426048
unload memory 4116480
通过后面的输出,我才知道~SWF被unload之后和我以为的清除存在着天壤之别;
它含有的类信息,已经被遍译好留在内存中了,而且如果此类绑到了库的素才,那占用的内存也会更大。
那么,第一个测试中我还给主SWF加了一个MouseEvnet.CLICK的弱引用,侦听器是 loadSwf实例中的公开方法;
常理,我们unload掉 该实例后 弱引用就会被清除了,可结果我测试出乎意料,一直都会响应!也就是 被加载的SWF 实例仍在内存中!
这个原因,深表遗憾,我实在是没有研究出来,我会在后面继续追加,如果有哪位大大知道具体原因,也希望你在跟贴中指点一二。
小有心得~不敢独享,摆到这里让各位大大拍砖;
代码如下:
public class LoadArrangeMain extends Sprite
{
public function LoadArrangeMain()
{
init();
}
private function init():void {
trace("start Memory : " + System.totalMemory);
loadStart();
}
private function loadStart():void {
var loader:Loader = new Loader();
var loadcontext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
loader.load(new URLRequest("loadSwf.swf"), loadcontext);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandle);
}
private function completeHandle(e:Event):void {
trace("loaded Memory : " + System.totalMemory)
trace(" IS HAS definetion atem? " +ApplicationDomain.currentDomain.hasDefinition("com.loadedSwf.Atem"));
e.currentTarget.removeEventListener(e.type, arguments.callee);
var loader:Loader = e.currentTarget.loader as Loader;
var loadSwf :*= loader.content;
stage.addEventListener(MouseEvent.CLICK, loadSwf.showMessage,false,0,true);
loadSwf = null;
loader.unloadAndStop(true);
loader = null;
//gc();
setTimeout(getDefinition, 3 * 1000);
}
private function getDefinition():void {
trace("unloaded Memory : " + System.totalMemory)
trace(" IS HAS definetion atem? " +ApplicationDomain.currentDomain.hasDefinition("com.loadedSwf.Atem"));
}
private function gc():void {
try {
var local_1:LocalConnection = new LocalConnection();
var local_2:LocalConnection = new LocalConnection();
local_1.connect("foo");
local_2.connect("foo");
}catch (e:Error) {
trace("GC\n")
}
}
}
复制代码
输出结果为:
start Memory : 3006464
loaded Memory : 3866624
IS HAS definetion atem? true
unloaded Memory : 3690496
IS HAS definetion atem? true
加入SWF 后内存增加了 860000 B左右,通过unload 和GC之后 约小了 200000 左右;
那么剩下的是什么呢?
继续测试:
var arr:Array=[];
var loaders:Array=[];
for (var i:int=0;i<50;i++){
arr.push("loadSwf.swf");
}
load();
private function load(e:Event=null):void{
if(arr==ull|| arr.length<1) complete();
var loader:loader=new Loader();
loader.load(new URLRequest(arr.shift()));
loader.contentLoadInfo.addEventLsiener(Event.COMPLETE,load);
loaders.push(loader);
}
private function complete():void{
trace ("loaded memory :"+System.totalMemory);
for each(var loader:Loader in loaders){
laoder.unloadAndStop(false);
loader=null;
}
loaders=null;
setTimerOut(showMemory,3*1000);
}
private function showMemory():void{
trace("lasted Memory:"+System.totalMemory);
}
复制代码
输出结果:
start memory 3035136
loaded memory 7426048
unload memory 4116480
通过后面的输出,我才知道~SWF被unload之后和我以为的清除存在着天壤之别;
它含有的类信息,已经被遍译好留在内存中了,而且如果此类绑到了库的素才,那占用的内存也会更大。
那么,第一个测试中我还给主SWF加了一个MouseEvnet.CLICK的弱引用,侦听器是 loadSwf实例中的公开方法;
常理,我们unload掉 该实例后 弱引用就会被清除了,可结果我测试出乎意料,一直都会响应!也就是 被加载的SWF 实例仍在内存中!
这个原因,深表遗憾,我实在是没有研究出来,我会在后面继续追加,如果有哪位大大知道具体原因,也希望你在跟贴中指点一二。
发表评论
-
[转] Actionscript项目嵌入图片(设置九宫格缩放)
2011-07-27 02:04 2355我们知道在Flex项目中,嵌入外部图片,可以使用 [E ... -
8款bitmap操作类
2011-07-15 11:38 08款bitmap操作类Bitmap在我们的开发中使用率很 ... -
[转] 关于获取“焦点”及flash播放器“最小化”心得!
2011-05-18 17:26 0研究了下,当运行的flash播放器,如何获取焦点问题。 也是大 ... -
AS3 ADDCHILD 的又一个BUG
2011-05-15 01:02 0AS3 ADDCHILD 的又一个BUG packa ... -
关于事件冒泡, 只要进入形成了显示列表树的对象们中的一个子节点发出事件就一定会走DOM事件机制
2011-04-19 00:31 0关于事件冒泡, 只要进入形成了显示列表树的对象们中的一个子节 ... -
[转]几种位图渲染角色动画的实现方法的性能差异
2011-04-01 13:01 3411http://bbs.9ria.com/viewthread. ... -
[心得] 关于BitmapData.draw()效率的一点发现
2011-03-23 18:55 0SP位图引擎制作中,目前刚写完MC逐帧转连续BitmapDa ... -
FP10.1的绘制对比测试
2011-03-08 13:41 0http://ghostcat.googlecode.com/ ... -
[转]10万个浮点数排序 算法效率
2011-03-06 00:34 1965http://bbs.9ria.com/viewthread. ... -
[转]ApplicationDomain.currentDomain的细节
2011-02-25 21:09 2785http://flashteam.tencent.com/po ... -
FLASH的包内类的静态变量的默认值无法是包外类
2011-02-25 03:47 0FLASH的包内类的静态变量的默认值无法是包外类 -
[转]区别AS3.0中MOUSE_OVER、ROLL_OVER,MOUSE_OUT、ROLL_OUT
2011-02-25 00:23 1191http://www.yaotaiyang.com/lates ... -
遍历移除时,不要用while(numChildren==0)这是因为在时间轴上是允许某个元件为null,且占据numChildren的一个位置.
2011-01-30 23:55 0另外遍历移除时,不要用while(numChildren==0 ... -
FOR EACH 遍历数组 是按照顺序来遍历的
2010-12-20 20:02 4919FOR EACH 遍历数组 是按照顺序来遍历的 v ... -
Sprite graphics 的极限位置的测试, 105000000
2010-12-20 01:26 0var sp:Sprite = new Sprite() ... -
[心得] FLASH自带的HASHMAP慢的一塌糊涂啊 千万不要使用 超长的STRING类型的KEY
2010-12-07 12:16 2072var dic:Dictionary = new Di ... -
AS3深拷贝的一个测试总结
2010-10-12 22:50 1259package { import flash. ... -
FLASH 数组 POP PUSH UNSHIFT SHIFT测试
2010-09-25 13:59 2124博客地址:http://as3.iteye.com/admin ...
相关推荐
然而,对于那些仍然需要SWF的场合,确保测试在不同浏览器和设备上的兼容性,并尽可能减小文件大小以提高加载速度。 综上所述,透明SWF文件是一种实用的多媒体元素,尤其在网页和课件设计中发挥着重要作用。虽然面临...
用户可能通过浏览器加载这个SWF文件来运行测试。 关于IQ测试软件的知识点可以包括以下几点: 1. **智力测试原理**:IQ测试通常基于多元智能理论,包括逻辑推理、数学能力、语言理解、视觉空间、记忆、处理速度等...
Flash允许将这些资源打包在SWF文件中,或者在运行时动态加载,以优化加载时间和游戏性能。 5. **交互性与用户体验**:良好的游戏体验离不开用户的参与。Flash游戏通常包含丰富的用户交互元素,如鼠标点击、键盘输入...
当图片数据较大时,如何在不影响用户体验的前提下快速加载是需要考虑的问题。 2. **循环播放机制**:图片能够自动循环播放,意味着该系统具备定时器或者状态管理功能,能够在一张图片展示结束后无缝切换到下一张,...
2. 动态效果:如加载动画、过渡效果、粒子特效等,使网页更加生动有趣。 3. 信息展示:通过动态展示,可以使信息传达更有效,比如教程、产品演示等。 4. 广告宣传:透明背景的Flash广告可以更自然地嵌入网页,不破坏...
这种效果通常设计得简单而有趣,能吸引用户的注意力,同时传达出“请稍候”的信息。 【描述】:“下载效果用于网页的等待中……”这段描述进一步明确了“马马虎虎”可能是指在网页下载数据时显示的等待动画或进度...
接下来,我们探讨如何加载和播放SWF文件。在代码中,你需要使用控件的属性和方法来实现这一功能。例如,可以通过设置`Flash1->Movie`属性来指定要播放的SWF文件路径,如`Flash1->Movie = "happy.swf";`。为了启动...
标题 "flash2.0制作的单项选择调用txt里的题目智能题库(入门版)" 描述了一款基于Flash AS2.0技术开发的教育软件,它是一个智能题库系统,能够读取TXT文本文件中的题目,用于创建单选题测试。这个系统对于初学者来...
在使用Flash相册时,应注意优化文件大小以提高加载速度,提供HTML5备选方案以便于移动设备和不支持Flash的浏览器访问,同时确保良好的用户体验,如提供清晰的导航和控制选项。 总结,Flash相册是一种将图片动态...
- 你可以调整Flash对象的尺寸、对齐方式,以及是否在加载页面时自动播放。 5. **优化和测试多媒体** - 插入多媒体后,确保检查文件大小和格式是否适合网页加载。过大或不兼容的文件可能会影响用户体验。 - 使用...
在加载界面中,可以制作一个加载条,展示视频加载进度,同样可以使用ActionScript实现。 **发布** 完成所有编辑后,进行预览测试,确保所有元素正常工作。最后,通过Flash的“文件”→“发布”功能,导出为SWF...
10. **发布与调试**:完成游戏开发后,需要将Flash项目导出为SWF文件,并在各种环境中测试,确保兼容性和稳定性。Flash的调试工具可以帮助开发者定位和修复问题。 通过学习和实践这些知识点,你可以创建出一款像...
在本教程中,我们将探讨如何利用Flash制作基于XML的个人画册,让您的相册变得更加生动有趣。 XML是一种轻量级的、可扩展的标记语言,用于存储和传输数据。在Flash中,XML可以用来组织和控制内容的显示,例如图片的...
例如,`LoadMovie`方法用于加载SWF文件,`Play`方法启动动画播放,`Stop`方法则暂停播放。 4. **ActionScript与VB交互**:Flash中的ActionScript可以与VB进行通信,通过`ExternalInterface`类实现。在ActionScript...
9. **测试与调试**:在Flash CS3的测试模式下运行游戏,确保所有功能正常工作。修复任何程序错误,并根据用户反馈进行调整。 10. **发布与部署**:完成游戏开发后,导出SWF文件,可以嵌入到网页中,或者打包为独立...
5. **测试与发布**:在Flash中进行测试,确保所有功能正常运行,然后发布SWF文件,可以嵌入到网页中,或者作为独立的Flash应用程序。 6. **集成到网站**:将发布的SWF文件嵌入HTML代码中,确保正确设置尺寸和属性,...
1. 测试与调试:在发布前,确保所有功能正常运行,检查并修复可能存在的问题。 2. 优化性能:减少不必要的动画和代码,优化文件大小,提高网站加载速度。 3. 发布设置:根据需求选择不同的发布选项,如HTML文件、SWF...
7. **调试与发布**:开发完成后,开发者会使用Flash Professional的预览和发布功能来测试游戏,并生成最终的.swf文件供用户在线游玩。 通过研究这个压缩包,初学者可以了解到一个基本的Flash小游戏是如何从概念到...
通过将Flash嵌入到网页中,可以实现更加生动有趣的效果。本文将详细介绍如何在HTML页面中嵌入Flash动画,包括必要的代码片段及其作用。 #### 二、基本概念 在开始之前,我们需要了解几个基本的概念: 1. **SWF...
4. **解析XML**:在Flash中加载并解析XML文件,将其中的数据绑定到相应的界面上,完成图片的动态加载。 5. **测试与优化**:在各种浏览器和设备上测试相册的性能和兼容性,根据反馈进行调整和优化。 6. **发布与...