旅途笔记

岂有豪情似旧时,花开花落两由之
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

逐渐出现的马赛克遮照

Posted on 2007-04-05 15:38  allonkwok  阅读(258)  评论(0编辑  收藏  举报
首先在场景中导入一个图片 把它转换为影片剪辑
把影片剪辑放在主场景第一针

在该影片剪辑上写下如下AS

onClipEvent (load)//当影片剪辑出现在时间轴上时,执行大括号里的语句 {
               numY = 56;
    numY = 70;;//定义图象显示的尺寸
                numPerFrame = 60//定义针速
    currSquare = 0;
    choices = new Array();
    for (i=0; i<numX*numY; i++) {
        choices.push(i);//定义一个新的数组  并不断增加数组长度
    }
    _root.createEmptyMovieClip("mask", 0);//
    this.setMask(_root.mask);//创建一个影片剪辑 作为遮照
    function drawSquare(x, y) {
        with (_root.mask) {
            moveTo(x, y);
            beginFill(0x000088);
            lineTo(x+10, y);
            lineTo(x+10, y+10);
            lineTo(x, y+10);
            endFill();//画出这个遮照,  形状为10*10象素的方块
        }
    }
}
onClipEvent (enterFrame)//影片剪辑针频不断触发此动作 {
    if (currSquare<numX*numY) {
        for (i=0; i<numPerFrame; i++) {
            j = random(choices.length);
            t = choices[j];
            choices[j] = choices[choices.length-1];随机选择方快出现的时间
            choices.pop();//开始删除数组choices中的元素
            x = t%numX;
            y = Math.floor(t/numX);//返回参数中表达式的下限值
            drawSquare(x*10, y*10);
        }
        currSquare += numPerFrame;
        this._alpha = currSquare/(numX*numY)*100;//设置透明度
    }
}

好了现在可以导出看效果了