翻译:闪刀浪子 www.iflashigame.com http://hi.baidu.com/mr_ziqiang
点这里看LoaderMax使用指导(一)
7、设定区域对image/video/swf进行裁剪
假设你想让一张图片等比缩放以适应到某个区域,但是不希望在区域的边缘留下空白区。怎么做?你可以首先设定scaleMode属性为"proportionalOutside",然后将"crop"属性设置为true。这样可以使图片等比填充整个区域,并且讲超出区域的部分裁剪掉。下面给一段代码:
var loader:ImageLoader = new ImageLoader("1.jpg", {width:200, height:100, scaleMode:"proportionalOutside", crop:true, container:this, x:50, y:70});
8、progress 和 rawProgress有什么不同?(译者注:这个特性需要特别了解)
所有的加载器都有一个"progress"属性来显示"bytesLoades"和"bytesTotal"的比例(即进度)。但是LoaderMax类还多了一个"rawProgress"的属性,这个属性将所有的加载文件同等对待而且与文件大小无关。它在一些特定的场合下会比较有用:比如你发现你的进度条不稳定或者你想忽略文件大小的评估同时不想给你的加载器设定estimatedBytes 。
下面有个例子,可以让你充分了解"progress"和"rawProgress"在各种情景下的比较。你会发现"rawProgress"进度条不会突变,但是相对于以文件大小为计算依据的方式速度会一会儿快,一会儿慢。
点击load()按钮你可以看到"progress"非常精确并且平滑。(这是因为estimatedBytes的值是正确的)接下来你试着改变estimatedBytes的值或者删除estimatedBytes的值看一下省略的时候的运行情况。试着取消“auditSize”的复选框,可以观察“auditSize”为false的情况下是如何运行的。更多有关进度条暴增和回退的问题原因会在下一节做讲解。
9、避免进度条的抖动(暴增或者回退)
不知道你有没有在使用中遇到过进度条暴增活着回退的情况。一般在单一加载的时候不会出现这种情况,但是当你用一个LoaderMax实例去加载多个文件的一些特殊场合会发生这种情况。首先说一下原因和我所使用的方案。
为了精确的计算一组加载器总的进度,我们最关键的是需要知道每一个文件的文件大小。但是在文件还没有开始加载的时候我们如何知道要加载的大小呢?LoaderMax通过两种方式来处理:第一种——在创建你的loader的时候随意指定一个值给"estimatedBytes"属性,就像这样:new
ImageLoader(
"1.jpg"
, {estimatedBytes:
26000
});
estimatedBytes 选项,让LoaderMax自己去计算。
如果你给一个加载器设定了一个"estimatedBytes"值,LoaderMax会根据这个值来计算"progress",直到开始真正加载取到了真实的文件大小值再替换掉它。如果你所设定的值不准确,就会在修正这个文件大小值的时候出现进度条的抖动。具体现象为:如果你所设定的值比真实的文件大小值小很多,就会出现进度条的回退。如果你所设定的值比真实的文件大小值大很多,就会出现进度条的暴增现象。
LoaderMax所采用的第二种解决方式是检查真实文件。默认情况下会查找每一个子加载器是否有"estimatedBytes"设置。一旦发现没有进行设置,就会迅速开启一个URLStream取得真实的文件大小,并立刻关闭再检查下一个。全部检测完毕后,就会按照真实的文件总字节数加载并计算进度。这样做的好处是减少了你的麻烦并且会进度会非常准确。不过会要在开始下载前花费一些检查的时间。
当然你也可以关闭"auditSize"选项或者进行全局设置关闭所有加载器的"auditSize",下面是代码:
var loader:ImageLoader = new ImageLoader("1.jpg", {width:200, //turns auditing off for only this instance:
var queue:LoaderMax = new LoaderMax({auditSize:false});
//changes the default auditSize to false for all LoaderMax instances created after this point
LoaderMax.defaultAuditSize = false;height:100, scaleMode:"proportionalOutside", crop:true, container:this, x:50, y:70});
好了,知道了原因下面我们来看一下如何解决,这里有一些方案共你选择:
比较省事、精确、需要一点额外时间(默认)的方式
忽略
给一个估计的文件大小值设置到estimatedBytes
这种方式需要给一个合适的值,否则过大进度条会暴增,过小进度条会回退。
比较省事、非常不精确、无需额外时间
关闭自动校验长度开关也不给默认的文件大小值,此时文件长度会使用默认的20000字节为长度。
省事、比较精确、无需额外时间
关闭自动校验长度开关改用"rawProgress"来代替"progress"。由于rawProgress的计算方式与文件长度有关仅与文件个数有关,所以没有必要校验文件长度了。
10、每一个文件都会请求两次吗?
不是这样的。事实上只有当你没有设置estimatedBytes并且自动校验长度开关打开的情况下才需要请求两次服务器。多出的这一次是用于校验文件长度的。
11、集成roo swf到LoaderMax进度
加入你要获取一个很大的swf文件,还需要加载很多素材,同时你还希望了解所有这些的进度(包括这个root Swf)。你可以这样来做:
var queue:LoaderMax = new LoaderMax({onProgress:progressHandler, onComplete:completeHandler});
queue.append( new SelfLoader(this) ); //just to include the root swf in the progress calculations
queue.append( ...append your other loaders... );
queue.load();
com.greensock.loading.data包里面的类来设定值对象,并作为参数传给记载器。比如:
12、parse()一个完整的Url数组
有时候你会希望简单的给LoaderMax一个数组,让它自己使用对应的类型去加载。可以用下面的方法来做:
var urls:Array = ["1.jpg", "video.flv", "child.swf", "audio.mp3"];
//activate the types of loaders so that parse() can recognize the appropriate extensions (only necessary once)
LoaderMax.activate([ImageLoader, VideoLoader, SWFLoader, MP3Loader]);
var queue:LoaderMax = LoaderMax.parse(urls, {onComplete:completeHandler}, {autoPlay:false});
queue.prependURLs("http://www.greensock.com/assets/"); //saves us from having to include this in every URL in the array, and makes switching servers very easy.
queue.load();
取得加载的内容用下面的方法:
function completeHandler(event:LoaderEvent):void {
var video:VideoLoader = LoaderMax.getLoader("http://www.greensock.com/assets/video.flv");
addChild( video.content );
video.playVideo();
}
13、取得代码提示和严格的数据类型
如果你不介意文件长度稍微会长一点、代码量会大一些。可以使用
var config:LoaderMaxVars = new LoaderMaxVars();
config.name = "queue1";
config.onComplete = completeHandler;
config.onProgress = progressHandler;
config.maxConnections = 1;
var queue:LoaderMax = new LoaderMax(config);
终于翻译完了,呵呵
- 浏览: 899004 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
chienchia:
请问下,第4步,vpn做了什么使数据包发送到真实网卡,而不会再 ...
如何使用Android系统自带的VPN服务框架 -
fangyafenqidai:
我只要选第二个就可以呢,怒需要选第一个。之后不会有啥问题。正常 ...
Android Studio 超级简单的打包生成apk -
michaelye1988:
不错,很棒!
getcachedir和getexternalcachedir的区别 -
whlei01:
文章棒棒哒
常用的AS3代码 -
whlei01:
很不错 之前打开及时600M的内存 ,现在打开只有300兆了 ...
flash builder内存不够的解决办法
发表评论
-
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 ... -
greensock又出重量级产品 - LoaderMax
2013-05-27 11:30 12051、线性化下载过程 一般的下载队列,是一口气推入n个load ...
相关推荐
可以使用`add()`方法添加资源: ```actionscript bulkLoader.add("image1", "path/to/image1.png"); bulkLoader.add("sound1", "path/to/sound1.mp3"); // 添加更多资源... ``` 这里,"image1"和"sound1"是你...
这时可以使用`LoaderMax`类,它是GreenSock的GSAP库的一部分,提供了更高级的加载管理功能,如并发加载、错误处理和队列控制。 总的来说,“FLASH AS3 loading”涵盖了许多AS3编程的关键概念,包括资源加载、事件...
对于大量资源的加载,可以考虑使用加载队列管理器,如GreenSock的LoaderMax库,以并行或按顺序加载资源,避免阻塞用户界面。 通过分析提供的"loading_as3"项目,我们可以学习如何在实际应用中实现上述概念,包括...
greensock出品的经典的flash as3 开源类,包括最新发布的 LoaderMax(聪明的加载器) LoaderMax的出现却让我为之一振,其作者greensock,个人认为是as界影响力最广的人了。没用过TweenLite、TweenMax的人,还有木有?...
10. **第三方库和框架**:除了标准的Loader类,还有许多第三方库和框架提供了更高级的加载功能,如GreenSock的LoaderMax,它提供了更强大的批量加载和错误处理能力。 综上所述,"br.zip_easy"中的工具可能包含了一...
例如,PV3D的核心类如Scene3D、Camera3D、BasicMaterial等,以及可能用到的额外库如LoaderMax用于加载资源, TweenLite用于动画效果等。 2. **CH13(第13章)**:这一章很可能深入讲解了Papervision3D的高级特性或...
此外,为了提高性能,可以考虑使用`LoaderMax`库或`BulkLoader`类,它们提供了更高级的批量加载和队列管理功能。 总的来说,"flash 图片依次加载"是一个基础但实用的技巧,它涉及到ActionScript的基本用法,如事件...
- **LoaderMAX**:用于加载3D模型,如Collada(.dae)或Wavefront OBJ(.obj)格式。 - **RenderEngine**:负责计算和绘制场景,通常包括基本渲染和高级渲染模式。 4. **场景构建**: 在CH01中,可能涵盖了如何...