- 浏览: 899006 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
chienchia:
请问下,第4步,vpn做了什么使数据包发送到真实网卡,而不会再 ...
如何使用Android系统自带的VPN服务框架 -
fangyafenqidai:
我只要选第二个就可以呢,怒需要选第一个。之后不会有啥问题。正常 ...
Android Studio 超级简单的打包生成apk -
michaelye1988:
不错,很棒!
getcachedir和getexternalcachedir的区别 -
whlei01:
文章棒棒哒
常用的AS3代码 -
whlei01:
很不错 之前打开及时600M的内存 ,现在打开只有300兆了 ...
flash builder内存不够的解决办法
1、线性化下载过程
一般的下载队列,是一口气推入n个loader,然后逐个下载,下载完了调用start,开始整个程序。
由于是线性过程,这个时候下载流程比较好控制。假如碰到被下载的一个swf中,又下载别的图片、音乐之类,就成了树形过程了。LoaderMax在这方面的处理是利用一个requireWithRoot 属性,指定该Loader隶属于哪个容器。一旦指定,那么这个Loader所下载内容,就当作容器的一部分。
比如 main.swf > (a.swf > a.mp3) > (b.swf > b.jpg), a.mp3 和 b.jpg都远大于两个swf。
当main在下载的时候,先下a.swf,完了下b.swf。而a.swf中会去下载a.mp3,b.swf则是下载b.jpg。所以很可能出现的情况是a,b.swf都下载好了,还在同时下载a.mp3和b.jpg。但这个时候main已经算下完了,要start了...
如果在a.swf下载a.mp3时设置requireWithRoot = root,b.swf也一样。那么main.swf在a.swf之后下a.mp3,直到a.mp3下载完了,才算a.swf下完。这样就把一个树形流程又改为线性的了。
2、预估文件大小
在下载文件时,都知道有个请求过程,这个过程中文件的总大小是不知道的。这样对显示进度就是个麻烦事儿。像以前碰到公司内网关上安了2b防火墙,进来的数据都隔那儿堵着,等cache满到一定大小才一下子返回。搞得每次在公司看loading都是一闪而过,这不是因为快,是因为前面堵着呢,只能傻等着....LoaderMax在这方面采用了预估文件大小,利用一个estimatedBytes 属性,先假设要下的文件大小是多少。这样一来,即使请求还没来,下载进度还是有的。如果网络不出问题,等到请求返回了,马上就拿精确的文件大小替换预估值,让进度始终保持在用户眼前,而不会傻等。这个属性的默认大小是 20000 (20k)。
3、tween式初始化
这个就不多说了,还是那句话,没用过TweenLite、TweenMax的人还有么?
4、显示对象的对齐
显示对象在下载后有个比较恼人的问题,就是定位和对齐。这个问题其实已经被TransformManager 很好的解决掉了。LoaderMax只是让操作更简单了。
只需在初始对象的属性里面增加width,heighth或scaleX,scaleY(前者优先权大于后者)再配合scaleModes属性就很轻松了。
5、选择性打包
实际上LoaderMax并不是一个万能下载器,他只是一个壳儿,具体的下载交给SWFLoader,XMLLoader,MP3Loader...等等,这样的话,项目中要啥就选啥,可以节约文件大小。编译的时候也不会浪费不必要的时间。
6、并行下载
一般的下载队列,就是逐个下载吧?LoaderMax有个maxConnections 属性,可以设置同时下载数。默认为2。
7、下载信息
还有件比较烦人的事情,就是在定义一个loader后,有时候还要再为之定义个变量,指向下载对象。该指向还必须得在下载好以后才能设置。
这点LoaderMax也封装掉了。LoaderMax.getContent(),而且由于Loader事先就是有类型信息的,像CSSLoader,MP3Loader,所以content在使用上有着很高的可读性。
还有很多,诸如下载流程控制、优先权设置、Loader嵌套性、XML驱动配置、Flex友好等很多特性。有兴趣的自己玩吧。
一般的下载队列,是一口气推入n个loader,然后逐个下载,下载完了调用start,开始整个程序。
由于是线性过程,这个时候下载流程比较好控制。假如碰到被下载的一个swf中,又下载别的图片、音乐之类,就成了树形过程了。LoaderMax在这方面的处理是利用一个requireWithRoot 属性,指定该Loader隶属于哪个容器。一旦指定,那么这个Loader所下载内容,就当作容器的一部分。
比如 main.swf > (a.swf > a.mp3) > (b.swf > b.jpg), a.mp3 和 b.jpg都远大于两个swf。
当main在下载的时候,先下a.swf,完了下b.swf。而a.swf中会去下载a.mp3,b.swf则是下载b.jpg。所以很可能出现的情况是a,b.swf都下载好了,还在同时下载a.mp3和b.jpg。但这个时候main已经算下完了,要start了...
如果在a.swf下载a.mp3时设置requireWithRoot = root,b.swf也一样。那么main.swf在a.swf之后下a.mp3,直到a.mp3下载完了,才算a.swf下完。这样就把一个树形流程又改为线性的了。
2、预估文件大小
在下载文件时,都知道有个请求过程,这个过程中文件的总大小是不知道的。这样对显示进度就是个麻烦事儿。像以前碰到公司内网关上安了2b防火墙,进来的数据都隔那儿堵着,等cache满到一定大小才一下子返回。搞得每次在公司看loading都是一闪而过,这不是因为快,是因为前面堵着呢,只能傻等着....LoaderMax在这方面采用了预估文件大小,利用一个estimatedBytes 属性,先假设要下的文件大小是多少。这样一来,即使请求还没来,下载进度还是有的。如果网络不出问题,等到请求返回了,马上就拿精确的文件大小替换预估值,让进度始终保持在用户眼前,而不会傻等。这个属性的默认大小是 20000 (20k)。
3、tween式初始化
这个就不多说了,还是那句话,没用过TweenLite、TweenMax的人还有么?
4、显示对象的对齐
显示对象在下载后有个比较恼人的问题,就是定位和对齐。这个问题其实已经被TransformManager 很好的解决掉了。LoaderMax只是让操作更简单了。
只需在初始对象的属性里面增加width,heighth或scaleX,scaleY(前者优先权大于后者)再配合scaleModes属性就很轻松了。
5、选择性打包
实际上LoaderMax并不是一个万能下载器,他只是一个壳儿,具体的下载交给SWFLoader,XMLLoader,MP3Loader...等等,这样的话,项目中要啥就选啥,可以节约文件大小。编译的时候也不会浪费不必要的时间。
6、并行下载
一般的下载队列,就是逐个下载吧?LoaderMax有个maxConnections 属性,可以设置同时下载数。默认为2。
7、下载信息
还有件比较烦人的事情,就是在定义一个loader后,有时候还要再为之定义个变量,指向下载对象。该指向还必须得在下载好以后才能设置。
这点LoaderMax也封装掉了。LoaderMax.getContent(),而且由于Loader事先就是有类型信息的,像CSSLoader,MP3Loader,所以content在使用上有着很高的可读性。
还有很多,诸如下载流程控制、优先权设置、Loader嵌套性、XML驱动配置、Flex友好等很多特性。有兴趣的自己玩吧。
package { import com.greensock.events.LoaderEvent; import com.greensock.layout.ScaleMode; import com.greensock.loading.ImageLoader; import flash.display.Sprite; public class MyImage extends Sprite { private var ldr:ImageLoader; public function MyImage() { trace('MyImage::Constructor'); ldr = new ImageLoader('assets/image.jpg', { name:'image.jpg', container: this, width: 800, height: 600, scaleMode : ScaleMode.PROPORTIONAL_INSIDE, requireWithRoot : root, onProgress:onProgress, onComplete:onComplete, onError:onError } ); ldr.load(); } private function onError(e:LoaderEvent):void { trace('MyImage::onError'); trace(e.toString()); } private function onProgress(e:LoaderEvent):void { trace('MyImage::onProgress'); trace(e.toString()); } private function onComplete(e:LoaderEvent):void { trace('MyImage::onComplete'); trace(e.toString()); } } } package { import com.greensock.events.LoaderEvent; import com.greensock.loading.MP3Loader; import flash.display.Sprite; public class MyMusic extends Sprite { private var ldr:MP3Loader; public function MyMusic() { trace('MyMusic::Constructor'); ldr = new MP3Loader('assets/music.mp3', { name:'music.mp3', autoPlay: true, repeat: -1, requireWithRoot : root, onProgress:onProgress, onComplete:onComplete, onError:onError } ); ldr.load(); } private function onError(e:LoaderEvent):void { trace('MyMusic::onError'); trace(e.toString()); } private function onProgress(e:LoaderEvent):void { trace('MyMusic::onProgress'); trace(e.toString()); } private function onComplete(e:LoaderEvent):void { trace('MyMusic::onComplete'); trace(e.toString()); } } } package { import com.greensock.events.LoaderEvent; import com.greensock.loading.LoaderMax; import com.greensock.loading.SWFLoader; import flash.display.Sprite; import flash.events.Event; public class MySWF extends Sprite { private var queue:LoaderMax; public function MySWF() { trace('MySWF::Constructor'); queue = new LoaderMax( { name:'loaderQueue', requireWithRoot : root, onProgress:onProgress, onComplete:onComplete, onError:onError }); queue.maxConnections = 10; queue.append( new SWFLoader('myimage.swf', {container:this}) ); queue.append( new SWFLoader('mymusic.swf') ); queue.load(); } private function onError(e:LoaderEvent):void { trace('MySWF::onError'); trace(e.toString()); } private function onProgress(e:LoaderEvent):void { trace('MySWF::onProgress'); trace(e.toString()); } private function onComplete(e:LoaderEvent):void { trace('MySWF::onComplete'); trace(e.toString()); } } } package { import com.greensock.events.LoaderEvent; import com.greensock.loading.core.LoaderCore; import com.greensock.loading.SWFLoader; import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { private var ldr:LoaderCore; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point ldr = new SWFLoader('myswf.swf', { container:this, onProgress:onProgress, onComplete:onComplete, onError:onError } ); ldr.load(); } private function onError(e:LoaderEvent):void { trace('Main::onError'); trace(e.toString()); } private function onProgress(e:LoaderEvent):void { trace('Main::onProgress'); trace(e.toString()); } private function onComplete(e:LoaderEvent):void { trace('Main::onComplete'); trace(e.toString()); } } }
发表评论
-
as3中颜色矩阵滤镜ColorMatrixFilter的使用
2015-05-11 15:32 1227public static function chan ... -
AS3.0 关于用URLLoader加载外部图片
2015-04-02 17:09 963很多人都想当然的直接用URLLoader加载外部图片然后通 ... -
Flash AS3 让<鼠标点击>穿透上层透明区域,下层对象触发<鼠标点击>事件
2017-10-24 13:54 934问题描述:1. 在Stage上放置2个Sprite, A ... -
关于 AS3 Socket 通信基础(六)
2017-10-24 14:02 7186.处理使用Sockets时候引发的错误. 在程序 ... -
关于 AS3 Socket 通信基础(五)
2015-04-01 16:50 8355.与Socket服务器断开,或者当服务器想与你断开的时候发 ... -
关于 AS3 Socket 通信基础(四)
2015-04-01 16:50 7314.同Socket服务器进行 ... -
关于 AS3 Socket 通信基础(三)
2015-04-01 16:49 12353.从Socket服务器读数据 ... -
关于 AS3 Socket 通信基础(二)
2015-04-01 16:49 936对于Socket对象来说,通过 ... -
AS3 Socket 通信基础(一)
2015-04-01 16:48 1055我们先来搞清几个概念,这有助于我们更加了解网络通信! 1、 ... -
as3.0针对两个独立swf的通信有个专门的类-----LocalConnection
2015-01-16 17:43 1984as3.0针对两个独立swf的通信有个专门的类-----Lo ... -
检测FlashPlayer版本的代码
2014-12-22 14:17 770var versionString:String = Cap ... -
as3.0中复制mc影片剪辑的方法
2014-05-23 16:17 1017方法1——反射方法: var ClassRef:Class ... -
as3类库大全
2014-05-04 16:14 830类库大全地址: http://www.adrianparr ... -
AIR版截屏跟QQ截屏一样 (源码)
2014-04-14 16:54 919两个Demo,一个是Flex项目,另一个是ActionScri ... -
AS3将网址加入收藏夹
2014-01-20 14:22 1058AS3: ExternalInterface.call(& ... -
FLASH AS3 TextField 文本超链接控制示例(新闻列表)
2013-10-30 15:23 1063这两天想自行设计一个唐酷的AS3+XML新闻列表(http:/ ... -
AS3动态文本框支持单击事件
2013-10-30 15:21 1122AS3动态文本框支持单击事件 用TextEvent.LINK ... -
AS3 变灰的代码
2013-08-23 15:32 754var filter:Filter = new ColorMa ... -
AS3 String to Date
2013-08-12 15:57 1715var formatterString:String = &q ... -
[翻译]LoaderMax使用指导(二)
2013-05-27 11:19 893翻译:闪刀浪子 www.iflashigame.com ...
相关推荐
你可以参考“greensock又出重量级产品 - LoaderMax (转) - hili2006的专栏 - 博客频道 - CSDN.NET.URL”这篇博客文章来了解更多关于LoaderMax的信息。 总之,BulkLoader是AS3中一个方便的工具,用于批量加载资源...
greensock-js.zip-2019-03-01版本,超级全的最新版本。 包含TweenMax.js,TweenLite.js,TimelineMax.js,TimelineLite.js,以及EasePack.js和plugins以及utils里的Draggable.js。
"greensock-tweening-platform-as3.zip"这个压缩包很可能是包含GreenSock Tweening Platform for AS3的相关源代码、文档和示例。ActionScript 3是Adobe Flash Professional和Flex Builder中使用的主要编程语言,用于...
标题“greensock-tweening-platform”提及的是一个专门针对AS3(ActionScript 3)的动画缓动平台,这是由GreenSock公司开发的一个强大的动画工具。GreenSock Tweening Platform(GTP)是一个高效的动画库,它允许...
绿袜(GreenSock)是业界知名的动画库,其在AS3(ActionScript 3)版本被称为"greensock-v12-as3"。这个压缩包包含了GreenSock AS3版的核心组件,为开发者提供了一套强大而高效的动画解决方案。下面将详细阐述...
GreenSock提供了一系列强大的工具,如TweenLite、TweenMax、TimelineLite和TimelineMax,它们能够帮助开发者创建出流畅、高性能的动画效果,无论是简单的位移动画还是复杂的序列动画。 2. **Tween技术解析** Tween...
在本文中,我们将探讨"greensock-v12-as3.zip"这个压缩包中的核心组件——TweenMax和TweenLite,以及它们的源码实现,帮助开发者更深入地理解这两个工具的工作原理。 首先,我们来认识一下TweenMax和TweenLite。...
在压缩包文件中,"greensock-js"可能包含了整个GreenSock库的文件,包括TweenMax.js、TimelineLite.js、TimelineMax.js以及可能的其他辅助文件和文档。开发者可以通过引入这些文件到项目中,轻松利用GreenSock的功能...
**绿袜(GreenSock)JS:网页动画的缓动库** 在网页开发中,动态效果是吸引用户注意力和提升用户体验的重要元素。GreenSock JS,简称为GSAP(GreenSock Animation Platform),是一个强大的JavaScript库,专为创建...
在ActionScript 3(AS3)的开发领域中,GreenSock Animation Platform(简称GSAP)是一款备受赞誉的动画库,尤其其AS3版本,即greensock-as3,为开发者提供了强大而灵活的动画解决方案。本文将深入探讨GreenSock AS3...
总之,GreenSock的TweenLite、TweenMax和TimelineLite是前端开发中的重要工具,它们提供了一套强大且灵活的动画解决方案,帮助开发者创造出引人入胜的用户体验。无论你是想要简单的平移和缩放效果,还是复杂的动画...
而"greensock-v12 as2"则是针对ActionScript 2.0版本的GSAP实现,它将强大的动画引擎引入了Flash平台,为AS2开发者提供了高效且灵活的动画解决方案。 1. **Tween引擎概述** Tween(缓动)是动画制作中的一个重要...
而是采用功能更加强大的第三方缓动类,其中用的最多是TweenMax类,这就不得不提greensock官方网站,这个网站是我迄今为止看到提供教程资料最全最直观的缓动类,flash演示文件可以直接显示出代码书写方法并且直观的...
标题中的"flash类文件greensock-as3.zip",实际上是一个包含GreenSock AS3库的压缩包,为开发者提供了一整套工具,以便在Flash项目中快速实现动态效果。这个压缩包中可能包含了GreenSock的主要类库文件,如 TweenMax...
总共299美元+99美元才能得到,心动不如行动……(咋又变做广告了捏 ⊙﹏⊙b汗) 总之,下载就对了 之前有朋友说不知道怎么用: www.greensock.com 有api文档和说明、示例。不过我保证你在那上面下载这类库,上面...
greensock出品的经典的flash as3 开源类,包括最新发布的 LoaderMax(聪明的加载器) LoaderMax的出现却让我为之一振,其作者greensock,个人认为是as界影响力最广的人了。没用过TweenLite、TweenMax的人,还有木有?...
总共299美元+99美元才能得到,心动不如行动……(咋又变做广告了捏 ⊙﹏⊙b汗) 总之,下载就对了 之前有朋友说不知道怎么用: www.greensock.com 有api文档和说明、示例。不过我保证你在那上面下载这类库,上面的...
绿sock,或者更广为人知的是GreenSock动画平台(GSAP),是一款强大的JavaScript库,用于创建流畅、高性能的网页动画。这个工具集以其卓越的性能和丰富的缓动效果而受到开发者们的广泛赞誉。"greensock缓动效果查看...
日前,GreenSock推出了新一代动画引擎平台GreenSock Animation Platform(GSAP) v12,这一代的引擎不仅在Flash动画方面有更多改进,也新引入了对Javascript动画的支持。在Flash和HTML5项目中,你可以使用相同的动画...