[转] 你是as3老鸟吗?但是有些你可能目前都不知道的东西
你是as3老鸟吗?如果以下内容对你有莫大的帮助,请顶下!
一:加载swf库中的图片
new 的过程就是图片解压缩的过程。处于 Class 状态时,图片占用的内存和 SWF 文件中这个图片占用的磁盘空间一致,而一旦通过 new 解压成无压缩的 BitmapData 后,占用的内存会急剧增加。
不管是 PNG、JPG,还是矢量动画,new 之后的体积都会比原来大得多,因此不要随便将资源实例化后暂存。这个实例化过程理所当然是比较费时的,可能会出现卡的现象,但预先实例化,内存占用上是有很大区别的。
此外,如果选择设置 LoaderContext 使得全部资源加载到同一个域的话,有冲突的链接名是以先来先到的原则处理,即如果两个资源链接名相同,以先加载的对象为准。
二:将素材图片打包成一个SWF好处
打包成 SWF 有一个优点,SWF 可以让 JPEG 支持透明通道。一般来说,JPEG 压缩率高而不支持透明通道,PNG 压缩率低支持透明通道。将 PNG 导入 FLA 然后设置成 JPEG 压缩后,就能在压缩的同时保留透明通道,可以让支持透明通道的图片体积大大减小。
打包成 SWF 后,加载快且易于管理,是推荐方式。但这种做法限定你必须一次性加载所有资源,不能按需加载,有一定的局限性。比较适合加载 UI 皮肤,以及需要立即显示的图标等等。
还有一点需要注意:SWF 舞台上的内容,即使不显示出来也会消耗资源,因此请务必保证在发布时舞台为空。
三:不要直接用 Loader 加载文件
不同文件有不同的加载方式,文本和二进制文件只能通过 URLLoader 加载,而 PNG、JPG、SWF 等文件则可以通过 Loader 和 URLLoader 两种方式加载。如果资源需要长期保存,建议全部用 URLLoader 方式加载,在需要获取资源时,再通过 Loader 的 loadBytes 方法解析已经加载的二进制数据,之后再显示。
这样做目的是为了节省内存,因为 Loader 加载的资源会自动实例化(解码),PNG、JPG 会展开成无压缩的 BitmapData,SWF 舞台的内容也会全部实例化,他们会占用大量内存。先用 URLLoader 将他们作为二进制数据加载,需要时再解码实例化,就不会出现这个问题。
四:并发加载多文件加载还有一个问题:浏览器对并发下载数有限制,而这个限制和 Flash Player 的机制有冲突,所以一般情况下 Flash Player 同时发起的加载请求数最好不要超过5个, 否则加载事件可能会失效。为了解决这个问题,大部分人的解决方案都是采取队列加载,一次只加载一个文件。这在文件数量较小、单文件体积较大时并没有问题,但是当文件数量多、单文件体积小时,由于每次加载完一个文件后,重新请求下一个文件时需要等待服务器响应一段时间才开始加载,这样会浪费很多带宽,文件数量多时这个缺陷不能忽略,最多可能消耗2至3倍的加载时间。为了解决这个问题,我们需要一种特殊的队列加载模块,可以同时加载,但是同时加载的文件数量不能超过某个值。基本思路就是在加载完一个文件后,检查正在进行加载的文件数量,小于定值就取队列中的下一个地址新建加载,否则就什么都不做。
五:哈希表缓存当加载文件数量特别大的时候(诸如数百个),注意不要只使用数组保存。你可以创建一个 Dictionary,然后将名称作为键加载内容作为值,做一个哈希表,以后都直接通过名称从这个哈希表取值,会比遍历数组查找名称快很多。
六:主 SWF 加载问题SWF 必须加载完所有类后才能开始运行并显示图像,这样一来,第一个主 SWF 加载自己时就无法显示加载进度。解决这个问题有两种办法:一种办法很老但是实用,就是创建一个小 SWF 先显示出来,专门用来加载主 SWF,主 SWF 加载完毕后它就完成了使命。实际上这并不麻烦也是最稳定的一种方案。另一种方式是利用 Frame 元标签。在主 SWF 类名上面添加
[Frame(factoryClass="加载类类名")]
即可指定一个类作为加载类,它会在主 SWF 未加载完之前显示。这个类是一个两帧 MovieClip,当它自己加载完毕后,就可以反射出主 SWF 的内容并实例化。
转载自:http://bbs.9ria.com/thread-243034-1-1.html
[转] 你是as3老鸟吗?但是有些你可能目前都不知道的东西的更多相关文章
- 漫谈程序员(十一)老鸟程序员知道而新手不知道的小技巧之Web 前端篇
老鸟程序员知道而新手不知道的小技巧 Web 前端篇 常充电!程序员只有一种死法:土死的. 函数不要超过50行. 不要一次性写太多来不及测的代码,而是要写一段调试一段. UI和编码要同步做. 多写注释方 ...
- 【补】英语对IT工作者的重要性
浅谈程序员的英语学习 作为在中国工作的程序员,不懂得英语似乎也不妨碍找到好工作,升职加薪.但程序员这个工种则稍有不同,因为程序,尤其是高级语言,基本上都是由英语和数字表达式构成的.英语对于程序员十 ...
- [转]关于AS3 Socket和TCP不得不说的三两事
磨刀不误砍柴工,让我们从概念入手,逐步深入. 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络 ...
- [转]as3事件流机制彻底理解
题记: 看过网上一些as3事件流的教程,觉得大多都讲得不甚清楚,让人不能直观的理解事件流.而这篇教程以将事件流过程比喻成捕鱼过程,形象简单. 在此基础上对于as3事件流总算有了全面的理解.事件流机制说 ...
- 博文Contents<1--到200—>
====================-------------- 前言:博客中的随笔文章.并非都是笔者的原创文章.有些是听别人说的.有些是书上摘录的.有些是百度的.有些是别人博客的文章.有些是自己 ...
- 全面理解Context
出处:http://blog.csdn.net/lmj623565791/article/details/40481055,本文出自:[张鸿洋的博客] 本文大多数内容翻译自:http://www.do ...
- 路由器WDS桥接教程
因为有吧友买了此款路由又不会桥接,因此做这个教程.老鸟自动路过,废话不多说,下面开始讲解. 1.wifi密码破解和路由器用户名和密码部分请自行解决,我只讲桥接部分.首先,在浏览器里输入192.168. ...
- 由IEnumerable和IEnumerator的延伸
相信大家在学习c#的时候,经常会看到IEnumerable.IEnumerator这样的接口或返回类型,在写代码时经常会对数组或List集合进行遍历.那IEnumerable和IEnumerator是 ...
- PowerShell管道入门,看看你都会不(管道例子大全)
PowerShell的一个重中之重的功能就是管道(pipeline),本文从浅入深,一步一步详解管道的使用方法和例子,来看看有没有你所不知道的吧,如果全知道,恭喜你已经很厉害啦--适用于所有Power ...
随机推荐
- .NET垃圾回收:非托管资源,IDispose和析构函数的结合
http://blog.jobbole.com/85436/ 原文出处: 田小计划 欢迎分享原创到伯乐头条 前面一篇文章介绍了垃圾回收的基本工作原理,垃圾回收器并不是可以管理内存中的所有资源.对于 ...
- .NET Core On Mac 第一步,配置环境
话说.NET Core出来这么久了,也没搞搞,实在是羞愧难当啊.既然选择了开始那就不能半途而废啊..NET 跨平台了,那我就用Mac试试吧. 安装步骤一:安装Homebrew 其中会遇到权限不够的问题 ...
- Action、Action<T>、Func<T> 匿名函数的写法
void ht_HLB_Set(Dictionary<int, int> dic) { //匿名函数 Action<int> fun = (int jhShare_Iid) = ...
- 无线路由器WDS简要
A,B两台无线路由器,B去桥接A.在B中保持A相同的无线信道.在B中关闭DHCP.--A,B两台的SSID和无线安全设置都是独立的,无线安全可同可不同.
- Spring学习 Ioc篇(二 )
5.spring依赖注入的方式 方法一:使用构造器方式进行注入 1.dao的类和接口 package com.cvicse.dao.impl; import com.cvicse.dao.Person ...
- python学习-day12:列表、元祖、字典介绍和内置
list:列表 >>>----可以被修改.修改成元素,元素可以使单独的数字,也可以是:新的list. 通过:链表..每个元素存储的时候,同时会指向下一个元素. 二.list编辑修改方 ...
- [转载]强烈推荐学习的blog
膜拜大牛 原文出处:http://hedengcheng.com/?p=676 ACM Queue (Architecting Tomorrow’s Computing) 网址:http://queu ...
- linux 文档处理命令
1. 将用户信息数据库文件和组信息数据纵向合并为一个文件/1.txt(覆盖) 2.将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加 3.将/1.txt./2.txt两个文件 ...
- CSS组件架构的设计思想
不管是设计思想,还是架构,都可以总结为一个词:AO模式.A表示Append,即“附加”的意思,O表示Overwrite,即“重写”的意思.所有的CSS组件都是沿用这种思想来设计的.这也是CSS的特性, ...
- java连接mysql :No Suitable Driver Found For Jdbc 解决方法
今天出现编码出现了No suitable driver found for jdbc,又是找遍了网上的资料,基本上都说是以下个问题: 一是:连接URL格式出现了问题(Connection con ...