切换到宽版
  • 2961阅读
  • 0回复

Flash实用技巧:动感星形遮罩 [复制链接]

上一主题 下一主题
离线Kuho
山庄VIP总监

UID: 25

精华: 439
职务: 永久至尊VIP
级别: 一代宗师
 

发帖
2224
金币
183173
道行
1355
原创
976
奖券
237
斑龄
99
道券
1392
获奖
0
 座驾
新明锐
 设备
5DSR+24-70II
 摄影级
大师级
在线时间: 1098(小时)
注册时间: 2005-06-09
最后登录: 2024-11-25
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-02

本例的这个效果做起来就比较简单,我们只需要做的是把两个图片放在不同的图层,然后,上面的图片做一遮罩层,遮罩层最终能覆盖上面整个图片,图像切换完成了。(用FLASH8.0软件)

    具体做法如下:

    1.新建一FLASH文档,创建三个图层。

    2.导入两个图片(最好大小一样),分别放在下面的两个图层,让上面图片刚好能覆盖下面的图片。

    3.在第三层里画一小正方形,转换为元件MC,命名为MASKFIELD,实例名一样。

    4.双击MASKFIELD,进入编辑状态,让元件的原点跟正方形的左上顶点重合。

    5.把正方形转为MC,命名为MASK,实例名一样。

    6.双击MASK,进入编辑状态,让元件的原点跟正方形的左上顶点重合。

    7.在正方形所在图层的第十五帧(帧数可以自己把握)插入一关键帧,然后,对第一帧的正方形进行一些变形(这可以发挥你们的创意与想象力,不过对初学者来说,建议该帧的图形不要完全盖住原来的正方形,否则可能会看不到效果。

    8.在第一帧与第十五帧之间创建形状补间动画,在第十五帧添加AS:stop();

    9.回到主场景,把MASKFIELD所在的图层设为遮罩层。

    10.测试影片,现在可以看到下面图像有一部分被切换成上面的图象了。所以,下一步,就是要复制多个MASK,以实现整个图像最终被切换的效果。

11.关闭测试窗口,继续做。

    12.我们看到,正方形出现的先后顺序没什么规律,这是因为笔者用了随机函数。所以,再插入一图层,写定义随机变量的代码。又因为这是个二维空间,所以最好定义二维数组。

    13.假设正方形的边长为25,图像为400*300,则加代码:

var maxhor=400/25
var maxver=300/25
//这里没采用变量,是防止形变过程影响宽度和高度.
var order=new Array();
for(var hor=0;hor<=maxhor-1;hor++){
  order[hor]=new Array();
  for(var ver =0;ver<=maxver-1;ver++){
    order[hor][ver]=maxver*hor+ver
   }
}//首先对每个方格设置一个索引,用它来控制出场顺序.
//但是该出场顺序是从上到下,从左到右有序出来的,所以要再定义一个随机数组.
for(var hor=0;hor<=maxhor-1;hor++){
 for(var ver=0;ver<=maxver-1;ver++){
  tempvalue=order[hor][ver]
  randhor=random(maxhor)
  randver=random(maxver)
  order[hor][ver]=order[randhor][randver]
  order[randhor][randver]=tempvalue
 }
}
//这是常用的产生随机数组的算法,是一套相对固定的模式.至于打乱顺序的原理如何,自己测试一下就可以体会出来.
//下面定义一个控制出场的最终数组INDEX,利用前面的随机数组来生成.
var index=new Array()
for(var hor=0;hor<=maxhor-1;hor++){
 for(var ver=0;ver<=maxver-1;ver++){
        index[order[hor][ver]]=hor+"_"+ver
  
 }
}
1条评分
lxm3830 金币 +35 辛苦了,感谢您无私奉献的精神! 2009-05-02
山庄提示: 道行不够,道券不够?---☆点此充值☆
 
快速回复
限120 字节
认真回复加分,灌水扣分~
 
上一个 下一个