【空间教程】一帧做出飘雪效果 (13/725)

< 上一篇下一篇 >
本帖地址: 复制地址

修改 回帖 引用 楼主: 苦涩青梅

用户形象图片

1.导入任意一张你喜欢的背景图片到舞台然后锁定!(锁不锁无所谓)
2.新建图层二选中图层二第一帧按F9(打开动作面版)粘贴下面语句,回车测试.OK,一帧搞定!

脚本如下:

fallSnow(this, 100, [550, 400]);
function fallSnow(path, num, size) {
for (var i = 0; i<num; i++) {
path.createEmptyMovieClip("s"+i, i);
var mc = path["s"+i];
mc._x = random(size[0]);
mc._y = random(size[1]);
mc.ro = [1, -1][random(2)];
mc.xtime = random(20);
mc.startTime = 0;
mc.id = Math.pow(i, 1/2);
createSnow(mc, mc.id/2.5, "0xffffff", 20*mc.id);
}
var loop = function () {
updateAfterEvent();
for (var i = 0; i<num; i++) {
var mc = path["s"+i];
mc._rotation += mc.ro*5;
mc._x += mc.id*mc.ro/10;
mc._y += mc.id/2;
mc.startTime++;
scanTar(mc);
scanEdge(mc, size);
}
};
var interval = setInterval(loop, 10);
}
function createSnow(mc, radius, c, alpha) {
with (mc) {
moveTo(0, -radius);
beginFill(c, alpha);
lineStyle(0, "0x000000", 0);
for (var i = 1; i<=6; i++) {
var a1 = -Math.PI/6+i*Math.PI/3;
var a2 = i*Math.PI/3;
lineTo((radius/5)*Math.sin(a1), -(radius/5)*Math.cos(a1));
lineTo(radius*Math.sin(a2), -radius*Math.cos(a2));
}
endFill();
}
}
function scanTar(mc) {
if (mc.startTime>=mc.xtime) {
mc.startTime = 0;
mc.xtime = random(20);
mc.ro = [1, -1][random(2)];
}
}
function scanEdge(mc, size) {
if (mc._x>size[0]) {
mc._x = 0;
} else if (mc._x<0) {
mc._x = size[0];
}
if (mc._y>size[1]) {
mc._y = 0;
}
}
回到帖子顶部

回帖 引用 1楼丶.★欣er.

用户形象图片

姐姐辛苦了..我去试试看..嘿嘿..
回到帖子顶部

回帖 引用 2楼可兒

用户形象图片

 支持,原来那么简单的啊~
回到帖子顶部

回帖 引用 3楼″季后シ约定

用户形象图片

这个AS早就有
回到帖子顶部

回帖 引用 4楼″季后シ约定

用户形象图片

// Action script...

// [Action in Frame 1]
function fallSnow(path, num, size)
{
    for (var _loc2 = 0; _loc2 < num; ++_loc2)
    {
        path.createEmptyMovieClip("s" + _loc2, _loc2);
        var _loc1 = path["s" + _loc2];
        _loc1._x = random(size[0]);
        _loc1._y = random(size[1]);
        _loc1.ro = [1, -1][random(2)];
        _loc1.xtime = random(20);
        _loc1.startTime = 0;
        _loc1.id = Math.pow(_loc2, 5.000000E-001);
        createSnow(_loc1, _loc1.id / 2.500000E+000, "0xffffff", 20 * _loc1.id);
    } // end of for
    var _loc3 = function ()
    {
        updateAfterEvent();
        for (var _loc2 = 0; _loc2 < num; ++_loc2)
        {
            var _loc1 = path["s" + _loc2];
            _loc1._rotation = _loc1._rotation + _loc1.ro * 5;
            _loc1._x = _loc1._x + _loc1.id * _loc1.ro / 10;
            _loc1._y = _loc1._y + _loc1.id / 2;
            ++_loc1.startTime;
            scanTar(_loc1);
            scanEdge(_loc1, size);
        } // end of for
    };
    var _loc4 = setInterval(_loc3, 10);
} // End of the function
function createSnow(mc, radius, c, alpha)
{
    with (mc)
    {
        moveTo(0, -radius);
        beginFill(c, alpha);
        lineStyle(0, "0x000000", 0);
        var i = 1;
        while (i <= 6)
        {
            var a1 = -5.235988E-001 + i * 3.141593E+000 / 3;
            var a2 = i * 3.141593E+000 / 3;
            lineTo(radius / 5 * Math.sin(a1), -radius / 5 * Math.cos(a1));
            lineTo(radius * Math.sin(a2), -radius * Math.cos(a2));
            ++i;
        } // end while
        endFill();
    } // End of with
} // End of the function
function scanTar(mc)
{
    if (mc.startTime >= mc.xtime)
    {
        mc.startTime = 0;
        mc.xtime = random(20);
        mc.ro = [1, -1][random(2)];
    } // end if
} // End of the function
function scanEdge(mc, size)
{
    if (mc._x > size[0])
    {
        mc._x = 0;
    }
    else if (mc._x < 0)
    {
        mc._x = size[0];
    } // end else if
    if (mc._y > size[1])
    {
        mc._y = 0;
    } // end if
} // End of the function
fallSnow(this, 100, [550, 400]);

偶的

青梅姐那个AS,,在开始这里设置大小
fallSnow(this, 100, [550, 400]);自己更改数值
回到帖子顶部

回帖 引用 5楼芷汐

用户形象图片

我咋粘贴的时候提示错误呢
回到帖子顶部

回帖 引用 6楼香烟

用户形象图片

 这个教程很好,不是错误芷汐是你少了一个动作
看到没有  教程后面评分那里还有一个"}"
回到帖子顶部

回帖 引用 7楼芷汐

用户形象图片

引用 香烟 (379561284)在 2008年8月17日 14:28:55的发表:
 这个教程很好,不是错误芷汐是你少了一个动作
看到没有  教程后面评分那里还有一个"}"
         谢谢大叔了...
回到帖子顶部

回帖 引用 8楼[楼主] 苦涩青梅

用户形象图片

引用 ″季后シ约定 (381151664)在 2008年8月17日 6:35:57的发表:
// Action script...

// [Action in Frame 1]
function fallSnow(path, num, size)
{
    for (var _loc2 = 0; _loc2 < num; ++_loc2)
    {
        path.createEmptyMovieClip("s" + _loc2, _loc2);
        var _loc1 = path["s" + _loc2];
        _loc1._x = random(size[0]);
        _loc1._y = random(size[1]);
        _loc1.ro = [1, -1][random(2)];
        _loc1.xtime = random(20);
        _loc1.startTime = 0;
        _loc1.id = Math.pow(_loc2, 5.000000E-001);
        createSnow(_loc1, _loc1.id / 2.500000E+000, "0xffffff", 20 * _loc1.id);
    } // end of for
    var _loc3 = function ()
    {
        updateAfterEvent();
        for (var _loc2 = 0; _loc2 < num; ++_loc2)
        {
            var _loc1 = path["s" + _loc2];
            _loc1._rotation = _loc1._rotation + _loc1.ro * 5;
            _loc1._x = _loc1._x + _loc1.id * _loc1.ro / 10;
            _loc1._y = _loc1._y + _loc1.id / 2;
            ++_loc1.startTime;
            scanTar(_loc1);
            scanEdge(_loc1, size);
        } // end of for
    };
    var _loc4 = setInterval(_loc3, 10);
} // End of the function
function createSnow(mc, radius, c, alpha)
{
    with (mc)
    {
        moveTo(0, -radius);
        beginFill(c, alpha);
        lineStyle(0, "0x000000", 0);
        var i = 1;
        while (i <= 6)
        {
            var a1 = -5.235988E-001 + i * 3.141593E+000 / 3;
            var a2 = i * 3.141593E+000 / 3;
            lineTo(radius / 5 * Math.sin(a1), -radius / 5 * Math.cos(a1));
            lineTo(radius * Math.sin(a2), -radius * Math.cos(a2));
            ++i;
        } // end while
        endFill();
    } // End of with
} // End of the function
function scanTar(mc)
{
    if (mc.startTime >= mc.xtime)
    {
        mc.startTime = 0;
        mc.xtime = random(20);
        mc.ro = [1, -1][random(2)];
    } // end if
} // End of the function
function scanEdge(mc, size)
{
    if (mc._x > size[0])
    {
        mc._x = 0;
    }
    else if (mc._x < 0)
    {
        mc._x = size[0];
    } // end else if
    if (mc._y > size[1])
    {
        mc._y = 0;
    } // end if
} // End of the function
fallSnow(this, 100, [550, 400]);

偶的

青梅姐那个AS,,在开始这里设置大小
fallSnow(this, 100, [550, 400]);自己更改数值

嗯,约定的似乎更全,我也是从网上看到的,发这里和大家共享下而已,不知道早有人发过了
回到帖子顶部

回帖 引用 9楼stōry

用户形象图片

                     支持!
回到帖子顶部

回帖 引用 10楼╱``「亂゛﹖

用户形象图片

这个很简单啊  喜欢   
回到帖子顶部

回帖 引用 11楼_陌↘浅唱

用户形象图片

   在哪粘贴???我咋不会也 
回到帖子顶部

回帖 引用 12楼stōry

用户形象图片

来支持青梅姐了!姐姐好棒!
回到帖子顶部

回帖 引用 13楼滢↘Ю℡鈥蟲

用户形象图片

青梅姐 怎么代码错误?55555
回到帖子顶部
个人信息
  • 荣誉+3
  • 荣誉+2
  • 荣誉+1
  • 荣誉-1
  • 荣誉-2
  • 荣誉-3
发表留言
  • 文章不错!
  • 精华好文!
  • 支持原创文章!
  • 帖子图文并茂,好!
  • 真知灼见,说得好!
  • 恶意广告
  • 违规内容
  • 严重灌水
  • 重复发帖
  • 标题党
你确定要删除此楼层吗
扣20点经验值

快速回复进入高级回复

插入图片 选择表情

验证码 看不清?换一张(不区分大小写)

[完成后按Ctrl+Enter发表]
[回复须知]