论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

学习【从Flash as2到Flash as3】中全新的加载(Loading)机制

文章类别:Flash AS | 发表日期:2009-8-2 17:53:21

学习【从Flash as2到Flash as3】中全新的加载(Loading)机制

做一个loading预加载的效果相信大家都已经非常熟悉了,不管是用onEnterFrame还是setInterval,还是更高级的MovieClipLoader。可当开始用Flash as3的时候,便连一个最简单的loading都无从下手了。是不是Flash as3中的loader更加复杂,难以控制呢。其实不是的,在Flash as3中引入了一个全新的类LoaderInfo,这个类可作用于任何的可显示对象(display object),这个对象里包含了加载过程检测、加载地址、加载对象的内容、加载对象总字节数(和加载过程中的字节数)、加载对象的宽度高度等等非常多的内容(内容太多了,更多的大家可以去看帮助)。

有2种方式可以访问LoaderInfo对象:
1)访问flFlash ash.display.Loader对象的contentLoaderInfo属性;
2)任何一个可显示对象(display object)都有loaderInfo属性;

注意:每个SWF文档的主类的实例有loaderInfo属性,每个Loader有loaderInfo属性,同时它有一个contentLoaderInfo属性,通过这个属性你可以访问到Loaded对象的loaderInfo。具体可以看下图:


下面还是老习惯,来例子示范。
首先来一个loading外部文件的例子:
复制内容到剪贴板
代码:
var request:URLRequest = new URLRequest("flashrek.swf");
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
function loadProgress(event:ProgressEvent):void {
    var percentLoaded:Number = event.bytesLoaded/event.bytesTotal;
    percentLoaded = Math.round(percentLoaded * 100);
    trace("Loading: "+percentLoaded+"%");
}
function loadComplete(event:Event):void {
    trace("Complete");
}
loader.load(request);
addChild(loader);
这里要注意loader的load方法只接受URLRequest对象作为参数;另外就是ProgressEvent类,比较简单,看帮助就好了。

    关于自身loading部分,可以利用SWF文档的主类的实例自身的loaderInfo属性来做。方法可以参看一下我在15楼的代码。
更多具体信息可以参看我的blog:http://www.flashrek.com/article.asp?id=10。有什么建议大家都可以提出来,一起探讨。

另外,大家可以看看Preloaders in AS3:http://www.bit-101.com/blog/?p=946

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058