- 浏览: 1084751 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (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组件源代码
http://hi.baidu.com/mr_ziqiang/blog/item/4ed3436658325f2bab184c06.html
翻译:闪刀浪子 www.iflashigame.com http://hi.baidu.com/mr_ziqiang 2、随心所欲的使用单独的加载器 3、在XML中定义你要加载的文件 首先定义一个xml文件: <?xml version="1.0" encoding="iso-8859-1"?> 下面你的加载代码: LoaderMax.activate([ImageLoader]); //这一句其实是为了引入ImageLoader这个类 function completeHandler(event:LoaderEvent):void 下面让我们在XML文件中定义两个LoaderMax节点,第一个自动加载一个不自动加载。在这里我们通过设置prependURLs 属性定义一个基本的url,可以让后面录入简化。 下面是需要加载的XML: <?xml version="1.0" encoding="iso-8859-1"?> 接下来的ActionScript里,XMLLoader将自动解析所有的加载器,不过只会自动加载第一个LoaderMax节点中的内容,因为他的"load"属性设置为"true"。xmlloader加载完成之后,这些内容也完成了加载。我们还可以继续加载第二个LoaderMax中的内容。代码如下: LoaderMax.activate([ImageLoader, SWFLoader, VideoLoader]); function completeHandler(event:LoaderEvent):void { 4、简单的进度条设置 代码如下: var queue:LoaderMax = new LoaderMax({onProgress:progressHandler}); function progressHandler(event:LoaderEvent):void { 5、统计下载速率或者耗时 var kbps:Number = (loader.bytesLoaded / loader.loadTime) / 1024; 如果计算完成下载需要多长时间可以这样: var secondsLeft:Number = (1 / loader.progress) * loader.loadTime; 6、让video/image/swf 的大小适应区域 var loader:ImageLoader = new ImageLoader("1.jpg", {width:200, height:100, container:this}); 默认情况下他会通过拉伸来适应你设置的尺寸。如果你希望按照比例来缩放显示以适应区域,可以设置scaleMode属性为“proportionalInside”. 这种情况下水平或者垂直方向可能会多出空余位置,你可以设置“hAlign” and “vAlign” 属性来确定水平适应还是垂直适应(默认值都为"center")。如果你希望改变区域的填充颜色可以设置"bgColor"属性。 下面的例子是将图片加载到一个200*100红色背景的区域中,等比缩放,并设置x和y位置属性: var loader:ImageLoader = new ImageLoader("1.jpg", {width:200, height:100, scaleMode:"proportionalInside", bgColor:0xFF0000, container:this, x:50, y:70}); 还有一个好处是放置图片的ContentDisplay对象会立即创建,你可以放在场景的任何位置,添加鼠标事件等等(意思就是说创建一个imageLoader实例后不用等加载就能马上设置)。例如添加一个鼠标事件可以这样来写: loader.content.addEventListener(MouseEvent.CLICK, clickHandler); 重要提示:
原文:http://www.greensock.com/loadermax-tips/
1、SWFLoader和ImageLoader的content 和rawContent有何不同?
content属性取得的是包含了真实内容的容器,而rawContent取得的是真实加载内容。这样做的一个主要原因是在真实的内容加载完成之前就能添加到显示列表或者添加其他的事件。
真实内容(rawContent)可以是图片、MovieClip、Loader或者Video,所以包装的容器也提供也提供一致的对象类型。同时还提供一些非常方便的缩放和裁剪功能。所以你一般使用content属性就行了,除非你需要直接访问SWFLoader和ImageLoader加载的真实内容。
下面提供一个简单的例子: var loader:SWFLoader = new SWFLoader("child.swf",
{onComplete:onLoadSWF, width:200, height:100});
//加载开始之前就可以添加到显示列表
addChild(loader.content);
loader.load();
function onLoadSWF(event:LoaderEvent):void {
var mc:MovieClip = loader.rawContent; //取得真实的内容并调用他的一个函数
mc.myCustomFunction(); 里调用了加载到的swf中的一个类
}
如下面的例子一样,如果你只是要加载一个swf文件,则可以直接使用SWFLoader而无需使用LoaderMax进行包装。
//以下方式完全将swfLoader当做类似于Loader一样用了
var loader:SWFLoader = new SWFLoader("child.swf", {onComplete:completeHandler});
loader.load();
//addChild(loader) 直接添加到显示列表没有任何问题
//用上面的代码方式就行了,不需要像下面这样
var queue:LoaderMax = new LoaderMax({onComplete:completeHandler});
queue.append( new SWFLoader("child.swf") );
queue.load();
当你有多个loader需要加载的时候才应该考虑将loader放入到LoaderMax里面。LoaderMax会管理列表中的每一个loader,汇报他们的进度。
你知道吗,XMLLoader会在你加载的XML文件中自动查找LoaderMax关联的数据,并根据你的定义自动创建正确实例来加载他们。例如,你可以在XML数据中定义两张需要自动加载的图片。
<data>
<ImageLoader url="1.jpg" name="image1" load="true" />
<ImageLoader url="2.jpg" name="image2" load="true" />
</data>
var loader:XMLLoader = new XMLLoader("data.xml", {onComplete:completeHandler,estimatedBytes:50000});
loader.load();
{
var image1:Bitmap = LoaderMax.getLoader("image1").rawContent;
var image2:Bitmap = LoaderMax.getLoader("image2").rawContent;
}
<data>
<LoaderMax name="queue1" prependURLs="http://www.greensock.com/assets/images/" load="true">
<ImageLoader url="1.jpg" name="image1" width="200" height="150" scaleMode="proportionalInside" alpha="0" />
<ImageLoader url="2.jpg" name="image2" width="400" height="300" scaleMode="proportionalOutside" crop="true" />
</LoaderMax>
<LoaderMax name="queue2" prependURLs="http://www.greensock.com/assets/" load="false">
<SWFLoader url="swf/child.swf" name="child" autoPlay="false" />
<VideoLoader url="video/video.flv" name="video" width="400" height="300" scaleMode="stretch" autoPlay="false" />
</LoaderMax>
</data>
var loader:XMLLoader = new XMLLoader("data.xml", { onComplete:completeHandler, estimatedBytes:50000 } );
trace("XML and queue1 loaded!");
addChild( LoaderMax.getContent("image1") );
addChild( LoaderMax.getContent("image2") );
//grab the LoaderMax named "queue2" that was defined in the XML and start loading it now
//取得xml文件中名字为"queue2"的LoaderMax开始加载
var queue2:LoaderMax = LoaderMax.getLoader("queue2");
queue2.addEventListener(LoaderEvent.COMPLETE, queue2CompleteHandler);
queue2.load();
}
function queue2CompleteHandler(event:LoaderEvent):void {
trace("queue2 loaded!");
}
LoaderMax里获取精确的加载进度实在是简单到不能再简单了,你只要设置你的进度条对象bar.scaleX=progress就搞定了。
//...append various loaders...
queue.load();
myProgressBar.scaleX = event.target.progress;
}
LoaderMax里每一个加载器(loader)都有一个loadTime属性,他会告诉你加载中消耗了多少时间,你也可以用来计算下载速率。
trace("下载速率为:"+kbps)
这是一种比较常见的需求,有一个固定了大小的区域,你需要让加载进来的video/image/swf适应区域的大小。比如:你有一个缩略图的网格,但是你的实际图片大小与缩略图的规定大小并不一致或者是未知的。没问题,你可以直接设置图片的宽度和高度来适应你的区域大小。
function clickHandler(event:MouseEvent):void {
trace("clicked image associated with loader: " + event.currentTarget.loader);
}
如果你想改变区域的尺寸到缩放后的内容的尺寸,可以设置ContentDisplay的"fitWidth"和"figHeight"属性。
发表评论
-
greenSock新老库
2012-08-07 13:25 0老库-做项目的时候比新库完全不抖啊 -
Starling开发的游戏源码
2012-07-26 17:13 0Starling开发的游戏源码 -
一个基于STARLING的TOWER塔防游戏
2012-07-24 15:27 0一个基于STARLING的TOWER塔防游戏 -
HttpStatusConfig --一个HTTP 协议返回的 解析说明类
2012-04-18 16:40 0package guwanyuan.qicool.game ... -
HTTP/1.1协议规范(中文归纳版)
2012-04-18 16:39 2113一、介绍(introduction) ... -
[转] [Flash/Flex] 加载SWF性能VS影片剪辑性能
2012-03-15 22:29 0http://bbs.9ria.com/viewthread. ... -
水果忍者鼠标跟随特效制作[转载]
2012-03-01 16:06 2449实现这效果其实比较简单,主要是思路~! package ... -
greensock-as3
2012-02-23 21:26 0greensock-as3 -
禁止输入文本可以粘贴
2012-02-10 13:15 2316//禁止输入文本粘贴动作 private static ... -
江湖情缘游戏里的跳的类
2012-02-08 23:55 0package com.app.role.montions ... -
ColorMatrixFilter - 获得相应颜色的色调 函数
2012-02-08 23:03 0/**获得相应颜色的色调的滤镜**/ public sta ... -
[教程] 路点导航(Waypoint Navigation)
2011-12-31 00:51 0前言:这个不难,所以知道的童鞋不要喷,不知道的童鞋也不要怕,要 ... -
ARPG游戏引擎设计思路
2011-12-31 00:48 00.整体结构 下载 (32.92 KB ... -
Embed绑定XML与txt文本文件
2011-12-28 15:54 4648使用Embed标签可以将图片绑定到swf中并显示,那么我 ... -
Flash_Rich_Text_Editor(完美的富文本编辑器)
2011-12-27 17:55 0Flash_Rich_Text_Editor(完美的富文 ... -
弹弹堂测试
2011-12-08 04:21 0弹弹堂测试弹弹堂测试 -
一些DEMO
2011-11-28 17:42 0一些DEMO一些DEMO -
[转]三次贝尔曲线
2011-11-10 01:09 1923http://bbs.9ria.com/viewt ... -
[心得] 完美解决as3在ie中初始化时stageWidth和stageHeight为0的问题
2011-11-03 00:46 2938先看下面的一段脚本,这是比较经典的初始化脚本: pa ... -
五子棋算法详解
2011-10-31 04:14 0五子棋算法详解五子棋算法详解五子棋算法详解
相关推荐
你可以参考“greensock又出重量级产品 - LoaderMax (转) - hili2006的专栏 - 博客频道 - CSDN.NET.URL”这篇博客文章来了解更多关于LoaderMax的信息。 总之,BulkLoader是AS3中一个方便的工具,用于批量加载资源...
这时可以使用`LoaderMax`类,它是GreenSock的GSAP库的一部分,提供了更高级的加载管理功能,如并发加载、错误处理和队列控制。 总的来说,“FLASH AS3 loading”涵盖了许多AS3编程的关键概念,包括资源加载、事件...
2. **ActionScript 3.0**:Flash开发主要使用的编程语言,Loader类就是ActionScript 3.0的一部分,它提供了加载和管理外部资源的功能。 3. **加载过程**:在AS3中,创建Loader对象,指定加载的目标URL,然后添加到...
例如,PV3D的核心类如Scene3D、Camera3D、BasicMaterial等,以及可能用到的额外库如LoaderMax用于加载资源, TweenLite用于动画效果等。 2. **CH13(第13章)**:这一章很可能深入讲解了Papervision3D的高级特性或...
此外,为了提高性能,可以考虑使用`LoaderMax`库或`BulkLoader`类,它们提供了更高级的批量加载和队列管理功能。 总的来说,"flash 图片依次加载"是一个基础但实用的技巧,它涉及到ActionScript的基本用法,如事件...
greensock出品的经典的flash as3 开源类,包括最新发布的 LoaderMax(聪明的...LoaderMax的出现却让我为之一振,其作者greensock,个人认为是as界影响力最广的人了。没用过TweenLite、TweenMax的人,还有木有? 呵呵。
对于大量资源的加载,可以考虑使用加载队列管理器,如GreenSock的LoaderMax库,以并行或按顺序加载资源,避免阻塞用户界面。 通过分析提供的"loading_as3"项目,我们可以学习如何在实际应用中实现上述概念,包括...
《Papervision3D Essentials 》是一本深入讲解Papervision3D技术的专业书籍,而"source code1"则可能是指书中第一章至第四章的源代码实例。Papervision3D是一个用于Adobe Flash平台的开源三维(3D)图形引擎,它允许...