打印

[特效] 这种马赛克效果跟其他的有点不同

在看网站时无意中发现了http://www.stxingquan.com/,网站中的马赛克效果挺漂亮的.
我在百度上找了,但都没有这样的效果,有的也都是点点消失的感觉, 经典里好像也没有. 教程有的说在PS里先一张张做,再导入到FLASH中, 应该不会是这样的吧. 用AS的话,我也没能找到. 大家帮帮忙!!
这种马赛克效果经典之前有人做过,是用as做的~


附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!
这个SWF的图片应该是放在底层的MC中
MC有几帧,每帧有不同的图片。然后随机跳帧,达到每次随机显示图片的效果。
然后用BitmapData类获取图像,复制一个,两个图片交替遮罩,并有震动效果。
斑竹说的很都道理啊,能否写出来教教大家呢?
路虽远,行必至!

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
的确不错,效果非常漂亮

TOP

复制内容到剪贴板
代码:
function mozaic()
{
    var pixelSize = 100;
    var _loc4 = 1.000000E-002;
    this.createEmptyMovieClip("pixelated_mc", 1);
    this.createEmptyMovieClip("mozaicEngine", 2);
    mozaicEngine.onEnterFrame = function ()
    {
        var _loc3 = new flash.display.BitmapData(photoSet._width / pixelSize, photoSet._height / pixelSize, false);
        pixelated_mc.attachBitmap(_loc3, 1);
        var _loc2 = new flash.geom.Matrix();
        _loc2.scale(1 / pixelSize, 1 / pixelSize);
        _loc3.draw(photoSet, _loc2);
        pixelated_mc._width = photoSet._width;
        pixelated_mc._height = photoSet._height;
        if (pixelSize == 1)
        {
            contents.play();
            pixelated_mc.removeMovieClip();
            this.removeMovieClip();
            delete this.onEnterFrame;
        }
        else
        {
            pixelSize = pixelSize * 9.000000E-001;
            if (pixelSize <= 1)
            {
                pixelSize = 1;
            } // end if
        } // end else if
    };
} // End of the function
闪客精灵破解出来的...虽然有点点小加密.不过大概的清楚了吧!

[ 本帖最后由 zijiguang 于 2008-10-9 17:17 编辑 ]
我们拥有共同的梦想,在此刻我们相信永恒,我们相处的短暂时光,都将成为我们美好难忘的回忆.我相信,我们的誓言会成为永恒......
~FOREVER HOT~
http://myhot.0033.cn/ ----紫*极光

TOP

引用:
原帖由 zijiguang 于 2008-10-9 17:14 发表

function mozaic()
{
    var pixelSize = 100;
    var _loc4 = 1.000000E-002;
    this.createEmptyMovieClip("pixelated_mc", 1);
    this.createEmptyMovieClip("mozaicEngine", 2);
    mozaicEngine ...
请问这个mozaic()
如何使用呢,
可否举一下例子

TOP

已找到答案了!楼上的这段代码只是部分,还要对图片在一些代码处理的,
不过还是谢谢楼上

TOP

请教楼上的高手,他是如何装载图片的,我实在没法看得明白

TOP

什么都不做..
在帧上放上图片,F8成MovieClip,然后取实例名为photoSet,并且加上我上面的代码.
最后在代码后面加一句mozaic();调用就行了..

如果放在网上的话要注意加载延迟.推荐将上面的AS和图片放在第一帧,然后第二帧使用:
stop();
mozaic);
测试看效果就知道了..

中间有句垃圾代码:
contents.play();
去掉也没关系..其它的不用动就行了..

[ 本帖最后由 zijiguang 于 2008-10-10 09:40 编辑 ]
我们拥有共同的梦想,在此刻我们相信永恒,我们相处的短暂时光,都将成为我们美好难忘的回忆.我相信,我们的誓言会成为永恒......
~FOREVER HOT~
http://myhot.0033.cn/ ----紫*极光

TOP

复制内容到剪贴板
代码:
function mozaic(mc) {
    var pixelSize = 100;
    this.createEmptyMovieClip("pixelated_mc", 1);
    this.createEmptyMovieClip("mozaicEngine", 2);
    mozaicEngine.onEnterFrame = function() {
        var mozaicMap = new flash.display.BitmapData(mc._width/pixelSize, mc._height/pixelSize, false);
        pixelated_mc.attachBitmap(mozaicMap, 1);
        var mozaicMatrix = new flash.geom.Matrix();
        mozaicMatrix.scale(1/pixelSize, 1/pixelSize);
        mozaicMap.draw(mc, mozaicMatrix);
        pixelated_mc._x = mc._x;
        pixelated_mc._y = mc._y;
        pixelated_mc._width = mc._width;
        pixelated_mc._height = mc._height;
        if (pixelSize == 1) {
            pixelated_mc.removeMovieClip();
            this.removeMovieClip();
            delete this.onEnterFrame;
        } else {
            pixelSize = pixelSize*0.9;
            if (pixelSize<=1) {
                pixelSize = 1;
            }
        }
    };
}
因为效果不错.对上面的代码重写了下.去掉无用的代码和加密的乱码.
添加指定mc的参数.可以对任何mc进行这种马赛克效果了.前提是mc中有内容,如果加载外部内容请注意加载延迟.还有..mc的注册点是左上角...
结帖吧!~
我们拥有共同的梦想,在此刻我们相信永恒,我们相处的短暂时光,都将成为我们美好难忘的回忆.我相信,我们的誓言会成为永恒......
~FOREVER HOT~
http://myhot.0033.cn/ ----紫*极光

TOP

引用:
原帖由 zijiguang 于 2008-10-10 09:31 发表
什么都不做..
在帧上放上图片,F8成MovieClip,然后取实例名为photoSet,并且加上我上面的代码.
最后在代码后面加一句mozaic();调用就行了..

如果放在网上的话要注意加载延迟.推荐将上面的AS和图片放在第一帧,然后 ...
谢谢分享,我昨天已经成功取得,只是不明几幅图随机调用的效果是如何做成的,

我就是看到你的回复去找工具分析的,但是里面的代码根本看不明白,
复制内容到剪贴板
代码:
function ()
{
    \x03 = 30 % 511 * 5;
    return (eval("\x03"));
} // End of the function
var \x01 = 388 + \x04\x05();
for (\x01 = eval("\x01") - 131; eval("\x01") == 784; \x01 = eval("\x01") - 438)
{
} // end of for
if (eval("\x01") == 305)
{
    \x01 = eval("\x01") - 99;
   
} // end if
if (eval("\x01") == 662)
{
    \x01 = eval("\x01") - 660;
   
   
} // end if
if (eval("\x01") == 2)
{
    \x01 = eval("\x01") + 344;
   
} // end if
if (eval("\x01") == 54)
{
    \x01 = eval("\x01") + 608;
    if (false)
    {
    }
    else
    {
        \x01 = eval("\x01") - 660;
    } // end else if
   
} // end if
\x01 = eval("\x01") - 152;
\x01 = eval("\x01") - 562;
var null = true;
if (eval("\x01") == 559)
{
    \x01 = eval("\x01") - 353;
   
} // end if
if (eval("\x01") == 511)
{
    \x01 = eval("\x01") + 48;
   
   
} // end if
if (eval("\x01") == 407)
{
    \x01 = eval("\x01") + 104;
    if (!null)
    {
    }
    else
    {
        \x01 = eval("\x01") + 48;
    } // end else if
   
} // end if
\x01 = eval("\x01") + 439;
\x01 = eval("\x01") + 317;
if (eval("\x01") == 540)
{
    \x01 = eval("\x01") - 271;
   
} // end if
if (eval("\x01") == 269)
{
    \x01 = eval("\x01") + 270;
   
} // end if
if (eval("\x01") == 851)
{
    \x01 = eval("\x01") - 168;
   
} // end if
if (eval("\x01") == 539)
{
    \x01 = eval("\x01") + 312;
    if (eval("\x0f"))
    {
    }
    else
    {
        \x01 = eval("\x01") - 168;
    } // end else if
   
} // end if
if (eval("\x01") == 683)
{
    \x01 = eval("\x01") - 104;
   
}
else
{
    if (eval("\x01") == 579)
    {
        \x01 = eval("\x01") - 579;
        
    } // end if
   
} // end else if
请求指点!谢谢

TOP

引用:
原帖由 zijiguang 于 2008-10-10 09:48 发表

function mozaic(mc) {
       var pixelSize = 100;
       this.createEmptyMovieClip("pixelated_mc", 1);
       this.createEmptyMovieClip("mozaicEngine", 2);
       mozaicEngine.onEnterFrame = function() {
              var mozaicM ...
哈哈,大侠搞错了吧!这里是蓝色,不是CSDN啊,如何结贴啊

TOP

引用:
谢谢分享,我昨天已经成功取得,只是不明几幅图随机调用的效果是如何做成的,
我就是看到你的回复去找工具分析的,但是里面的代码根本看不明白,
随机很简单,在调用mozaic(mc)之前,先让mc随机显示某一帧,你可以将图片分别放在mc的1到10帧或更多帧,然后选让mc随机gotoAndStop()在某一帧,然后再mozaic(mc);
引用:
哈哈,大侠搞错了吧!这里是蓝色,不是CSDN啊,如何结贴啊!
还没上大侠的等级..也不混CSDN...结帖的意思是指不用再讨论下去了..已经有结果了..东西我已经整理好了..直接存下现成的拿去用就行了..

[ 本帖最后由 zijiguang 于 2008-10-10 11:52 编辑 ]
我们拥有共同的梦想,在此刻我们相信永恒,我们相处的短暂时光,都将成为我们美好难忘的回忆.我相信,我们的誓言会成为永恒......
~FOREVER HOT~
http://myhot.0033.cn/ ----紫*极光

TOP

明白,谢谢大侠指点!
我知道应该如何做了!
好久没有用FLASHB 了,全都丢了

TOP

引用:
原帖由 nocolor 于 2008-10-10 10:07 发表

谢谢分享,我昨天已经成功取得,只是不明几幅图随机调用的效果是如何做成的,

我就是看到你的回复去找工具分析的,但是里面的代码根本看不明白,

function ()
{
    \x03 = 30 % 511 * 5;
    return (eval( ...
这是加密过的代码啊!

TOP