| 网站首页 | 学校动态 | 学校概况 | 教育教学 | 学生园地 | 留言 | 文档 | 下载 | 
您现在的位置: 南通市八一小学 >> 文档 >> 站长心得 >> 文档正文 用户登录 新用户注册
[图文]纯AS的Loading效果一例(修正其输入错误)            【字体:
纯AS的Loading效果一例(修正其输入错误)
作者:未知    文档来源:本站原创    点击数:    更新时间:2007-7-6    

1、打开你要加Loading的动画,新建一个场景,并把它拖到最前面。
2、在最前面的场景的第一帧上加入下面的AS代码。

源代码: (红色部分为我添加的和修改的部分,蓝色的为弃用的原代码)
//Copyright: 吴杰兴 广东廉江
//本作品可随意复制或修改,但请注明原作者
stop();
sw = 550;
sh = 400;
//
Stage.showMenu = false;
//隐藏讨厌的右键菜单
cs = 60;
//网格的密集程度
r = 2550;
d = r/Math.SQRT2;
//网格的弯曲度
p = Math.PI;
//定义常数PI
createEmptyMovieClip("ln", 1);
ln.lineStyle(0, 0xffffff);
for (var i = 1; i<=cs; i++) {
    ln.moveTo(sw/2+r*Math.cos(i/cs*p), -d+300+r*Math.sin(i/cs*p));
    ln.lineTo(sw/2+r*Math.cos(i/cs*p+p/2), -d+300+r*Math.sin(i/cs*p+p/2));
}
//下面画个颜色渐变的底子
createEmptyMovieClip("bg", 0);
with (bg) {
    colors = [0x6666ff, 0xffffff, 0x660099];
    alphas = [30, 30, 80];
    ratios = [0, 100, 200];
    lineStyle(5, 0x00ff00);
    matrix = {matrixType:"box", x:200, y:115, w:50, h:450, r:p/2};
   beginGradientFill("linear", colors, alphas, ratios, matrix);

    moveTo(-200-sw, -100);
    lineTo(200+sw, -100);
    lineTo(200+sw, 100+sh);
    lineTo(-200, 100+sh);
    lineTo(-200, -100);
    endFill();
}
//
r1 = 50;
r2 = 170;
nu = 32;
//分别为中心圆的3个参数;
cr = 600;
//cr是填色半径
createTextField("te", 5, 75, 100, 160, 100);
te.textColor = 0x9900ff;
//创建文本显示下载的数据
function fo1(nam, de, ro) {
    na = createEmptyMovieClip(nam, de);
    with (na) {
        _y = 40;
        lineStyle(0, 0x000000, 0);
        colors = [0x6666ff, 0xffffff, 0x660099];
        alphas = [130, 130, 20];
        ratios = [0, 120, 200];
        matrix = {matrixType:"box", x:-cr/2, y:-cr/2, w:cr, h:cr, r:p/2};
        beginGradientFill("radial", colors, alphas, ratios, matrix);
        //这里用AS来渐变填充
        moveTo(r1, 0);
        var bl = Math.cos(p/nu);
        for (var i = 1; i<=ro; i++) {
            curveTo(r1*Math.cos(i*p/(nu/2)-p/nu)/bl, r1*Math.sin(i*p/(nu/2)-p/nu)
/bl, r1*Math.cos(i*p/(nu/2)), r1*Math.sin(i*p/(nu/2)));
        }
        lineTo(r2*Math.cos(ro*p/(nu/2)), r2*Math.sin(ro*p/(nu/2)));
        for (var i = ro; i>=1; i--) {
            curveTo(r2*Math.cos(i*p/(nu/2)-p/nu)/bl, r2*Math.sin(i*p/(nu/2)-p/nu)
/bl, r2*Math.cos((i-1)*p/(nu/2)), r2*Math.sin((i-1)*p/(nu/2)));
        }
        lineTo(r1, 0);
        endFill();
    }
}
//此函数用来画中间的圆环,其中圆环是用curverTo的方法作出,这里不作介绍,我将在下个教程中详述
onEnterFrame = function () {
    ab = _root.getBytesLoaded();
    bb = _root.getBytesTotal();
    te.text="下载量:"+int(ab/1024)+"k"+" / "+int(bb/1024)+"k"+"\r百分比:"+int(ab/bb*100)+"%";
    // 获取数据
    sb = int(ab/bb*nu);
    fo1("di", 4, sb);
    di._x = 275;
    di._y = 200;
    di._yscale = 25;
    di._rotation = -30;
    // 调用函数作上面的圆环
    fo1("yz", 3, sb);
    yz._xscale = 100*Math.pow(3, 0.5)/2;
    yz._yscale = 25;
    yz._alpha = 30;
    yz._x = 275;
    yz._y = 360;
    // 在下面再作一个透明的圆环,作为上一个的影子
    //if (ab>>>"       (此代码少输了一个引号及括号)
    if (ab==bb)
        //di.onPress = function() (去掉此代码省得点按钮啦)
         { delete onEnterFrame;
            te.removeTextField();
            di.removeMovieClip();
            yz.removeMovieClip();
            ln.removeMovieClip();
            bg.removeMovieClip();
            play();
        };
    //}  (多了一个括号)
};

因为是纯AS的作品,就不再提供FLA文件了,下面是效果图(JPG格式的,比起SWF的差多了。)



小提示:本机测试Loading效果的简单方法

Ctrl+Enter之后往往看不到Loading效果就开始播放主体动画了,要想清楚地预览到Loading的效果,一个很简单的方法是:Ctrl+Enter之后在测试动画播放状态下再按一次Ctrl+Enter就可以清楚地看到Loading效果了,另外可以改变模拟Modem的速度,在测试动画的窗口中,从Debug菜单中可选择14.4、28.8、56K等几个速度,或自定义。




·上一篇教程:[组图]用AS2.0实现滚动特效
·下一篇教程:使用外部 CSS 来设置 Flash MX 2004 组件外观
【发表评论】【告诉好友】【加入收藏】【打印此文】【关闭窗口】
文档录入:admin    责任编辑:admin 
  • 上一个文档:

  • 下一个文档: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文档
    没有相关文档
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)