
- 本栏最新文章
- Flash AS实例教程:简单的loading 04-02
- 一个很头痛的SWF加载问题 04-01
- 用Flash去创作什么? 04-01
- 精简Flash文件体积的几个小技巧 04-01
- Flash简单实现网页中的Flash动画全屏 04-01
- flash与后台的交互 04-01
- flash缓入缓出运动 04-01
- Flash AS制作上升的水泡效果动画 03-31
- AS柔化函数(解决马赛克) 03-31
- flash+webservice 乱码问题解决一例 03-31

- 本栏推荐文章
- Photoshop教程:水灵灵的美女调出来 12-30
- AS3与后台交互 12-21
- AS3通俗教程---AS3自身loading制作 12-19
AS3通俗教程---AS3自身loading制作
简介:我也来学着写教程 ,希望能对大家有所帮助,若发现问题欢迎指正!先说主场景舞台有内容的项目(如MV)的做法:有人问是不是new一个loader,然后loader.load(this),其实根本没这么麻烦,很简单,在文档类构造函 ...
我也来学着写教程 ,希望能对大家有所帮助,若发现问题欢迎指正!
先说主场景舞台有内容的项目(如MV)的做法:
有人问是不是new一个loader,然后loader.load(this),其实根本没这么麻烦,很简单,在文档类构造函数里写上:loaderInfo.addEventListener(ProgressEvent.PROGRESS,你的处理函数)就行了,处理函数这样写:
function 你的处理函数(e : ProgressEvent){
trace(e.bytesLoaded/e.bytesTotal);
}
就行了,简单吧!
再说界面代码分离项目(主舞台内容靠AS生成)的做法:
这个容易出错,常见错误是按照上面MV的loading一样做,这样的结果是loading一出来就是100%,
原因在于界面代码分离项目主时间轴通常只有一帧,而flash会默认在第一帧导出类,并在此之后调用文档类的构造函数,也就是说progress事件的侦听是在加载完成后才起作用,当然看不到进度了!
解决方法一,双文件法(代码见回复),这种方法实际是绕过去了:
建立loader.as, 建loader.fla并设loader为文档类
建立main.as, 建main.fla并设main为文档类
在loader.as中
new一个Loader实例 loader,并用load方法载入main.swf
在 loader.contentLoaderInfo上添加progress和complete侦听
在progress处理函数中更新textField,并在complete处理函数将loader.content添加到舞台
在main.as中
构建舞台内容
解决方法二,双帧法,这才是真正解决:
但有个小遗憾是主时间轴是2帧,但已经不错了,呵呵
建立loader.as,再建立fla文件,保证主时轴有两帧且都为关键帧
在fla中:
建立一个空Mc,将此Mc拖到主场景的第二帧
双击编辑空元件,再将此元件的时间轴改为两帧且都为关键帧,进入第二帧,将库中所有链接到类的元件拖到舞台
将所有链接到类的元件的链接属性中的“在第一帧导出”取消掉:
在loader.as中
建立textField并推入舞台, 构造函数中为loaderInfo添加progress和complete侦听
在progress处理函数中更新textField,并在complete处理函数中再添加enter_frame侦听
在enter_frame处理函数中构建舞台内容,并移除enter_frame侦听,也就是说让enter_frame处理函数执行一次就可以了
先说主场景舞台有内容的项目(如MV)的做法:
有人问是不是new一个loader,然后loader.load(this),其实根本没这么麻烦,很简单,在文档类构造函数里写上:loaderInfo.addEventListener(ProgressEvent.PROGRESS,你的处理函数)就行了,处理函数这样写:
function 你的处理函数(e : ProgressEvent){
trace(e.bytesLoaded/e.bytesTotal);
}
就行了,简单吧!
再说界面代码分离项目(主舞台内容靠AS生成)的做法:
这个容易出错,常见错误是按照上面MV的loading一样做,这样的结果是loading一出来就是100%,
原因在于界面代码分离项目主时间轴通常只有一帧,而flash会默认在第一帧导出类,并在此之后调用文档类的构造函数,也就是说progress事件的侦听是在加载完成后才起作用,当然看不到进度了!
解决方法一,双文件法(代码见回复),这种方法实际是绕过去了:
建立loader.as, 建loader.fla并设loader为文档类
建立main.as, 建main.fla并设main为文档类
在loader.as中
new一个Loader实例 loader,并用load方法载入main.swf
在 loader.contentLoaderInfo上添加progress和complete侦听
在progress处理函数中更新textField,并在complete处理函数将loader.content添加到舞台
在main.as中
构建舞台内容
解决方法二,双帧法,这才是真正解决:
但有个小遗憾是主时间轴是2帧,但已经不错了,呵呵
建立loader.as,再建立fla文件,保证主时轴有两帧且都为关键帧
在fla中:
建立一个空Mc,将此Mc拖到主场景的第二帧
双击编辑空元件,再将此元件的时间轴改为两帧且都为关键帧,进入第二帧,将库中所有链接到类的元件拖到舞台
将所有链接到类的元件的链接属性中的“在第一帧导出”取消掉:
在loader.as中
建立textField并推入舞台, 构造函数中为loaderInfo添加progress和complete侦听
在progress处理函数中更新textField,并在complete处理函数中再添加enter_frame侦听
在enter_frame处理函数中构建舞台内容,并移除enter_frame侦听,也就是说让enter_frame处理函数执行一次就可以了


