您所在的位置:QQ首页 > 动画频道 > 脚本示例> 正文

纯ActionScript的Loading效果四例
http://flash.QQ.com   2006年 08月 02日 11:16   闪客帝国  
第 1 2

下一个更精彩:为动态创建MovieClip指定鼠标事件

前言:稍微大一些的Flash作品在播放之前都会有一个Loading预载画面,这考虑到网络的速度,本地浏览不需要等待下载,但传到网上,因为每个用户的网速不同,所以很有必要在我们的作品中加入Loading画面,之前,已经有很多教程是关于Loading制作方法的,今天我们给读者讲述四个纯AS的Loading效果,不懂AS的菜鸟或“代码盲”甚至可以直接复制教程中的代码到自己的作品中,懂AS代码的朋友,可以仔细阅读这些代码,从中学到更多的AS知识,或由此引申出更多的AS Loading效果……感谢作者=棉花糖=、egg616、小郎提供源码和思路--闪客帝国的叶子

一.=棉花糖=的Loading教程

比较简陋

动态显示load百分比

将全部代码拷贝到第一帧,当load完毕后,会自动开始播放

源代码: stop ();

_root . createTextField ( "myload_txt" , 1 , 0 , 0 , 0 , 0 );

with ( _root . myload_txt ) { //设置文本

background = true ; //文本框是否有背景

backgroundColor = 0x336699 ; //文本框的背景颜色

textColor = 0xFFFFFF ; //文本字段中文本的颜色

type = "dynamic" //文本字段为动态文本

selectable = false ; //文本是否可选

autoSize = "center" ; //控制文本字段的自动大小调整和对齐

_x = Stage.width/2; //文本字段的横坐标

_y = Stage.height/2;//文本字段的纵坐标

}

onEnterFrame = function () {

var Loaded = _root . getBytesLoaded ();

var Total = _root . getBytesTotal ();

_root . myload_txt . text = Math . floor (( Loaded / Total )* 100 )+ "%" ;

if ( Loaded == Total ) {

onEnterFrame = null ;

removeMovieClip ( _root . myload_txt );

play ();

}

};

二. egg616的Loading艺术之一

1、制作原理:

世界上所有的loading大概都可以分为三个部分:

1 制造一个循环,用于更新数据。一般来说有两种方法,一种是做成二帧,在第二帧中用gotoAndPlay(1)命令产生循环。另一种是只做一帧,利用onEnterFrame命令产生循环。

2 利用getBytesTotal()与getBytesLoaded()命令获取文件数据。

3 以图形或动画的方式将第二步获取的数据表现出来(一般同时还以文本方式精确表示)

上面的说明,对一个会做LOADING的人来说是很清楚的,但不会做的看了大概还是不会(呵呵)所以下面我们一步一步来,做个简单的例子(不做文本显示数据了):

2、简单的例子(只有两步,相信你有这个耐性):

Ⅰ 打开你一个心爱的动画,新建一个场景,并把它拖到最前面。

Ⅱ 在帧上加入以下的AS动作,即大功告成!

源代码:

stop ();

function dr ( nam , de , d , al ) {

na = createEmptyMovieClip ( nam , de );

na . lineStyle ( d , 0x9900cc , al );

na . _x = 160 ;

na . _y = 280 ;

na . lineTo ( 240 , 0 );

}

//一个画线条的函数,四个参数对应什么,自己看哈

onEnterFrame = function () {

var a = getBytesTotal ();

var b = getBytesLoaded ();

//取得下载的数据

if ( b < a ) {

dr ( "b1" , 0 , 30 , 30 );

dr ( "b2" , 1 , 20 , 30 );

dr ( "b3" , 2 , 20 , 100 );

b3 . _xscale = b / a * 100 ;

//画三条横线,显示下载进度;

} else {

delete onEnterFrame ;

b1 . removeMovieClip ();

b2 . removeMovieClip ();

b3 . removeMovieClip ();

play ();

//下载完毕,删除图形和函数;

}

};

可以按两次Ctrl+Enter进行下载测试,若对AS有恐惧症者,闭着眼睛复制—粘贴即可

下面是这个例子的效果图

下一页
第 [1] [2]
免费订阅】【发表评论】【动画论坛】【  】【关闭
发表评论
 QQ号码:
 QQ密码:
 验证码: 匿名发表
* 请各位网友遵纪守法并注意语言文明。
*《互联网电子公告服务管理规定》
*《全国人大常委会关于维护互联网安全的规定》




关于腾讯 | About Tencent | 服务条款 | 广告服务 | 腾讯招聘 | 腾讯公益 | 客服中心 | 网站导航
Copyright © 1998 - 2008 Tencent Inc. All Rights Reserved
腾讯公司 版权所有