首先,点击下面查看一下效果:
点击浏览该文件原理请参照源文件,尚未统一。大致包含一个横向排列和竖向排列的功能。Mask中的过渡时间间隔是以底片控制调用的。
其余以Mask2.fla为标准。
竖向排列:
-------------
function 启动过渡() {
列数++;
var tar = 影片_遮片列0.duplicateMovieClip("影片_遮片列"+列数, 列数);
tar.当前效果帧 = 当前效果帧;
tar.id = 列数;
tar._x = 列数*阵列间宽;
if (tar._x>遮片宽-阵列间宽) {
delete this.onEnterFrame;
}
updateAfterEvent();
}
列数 = 0;
function 重新阵列(请求对象, 间宽, 间高) {
if (请求对象._parent.id == 0) {
阵列间宽 = 间宽;
阵列间高 = 间高;
this.onEnterFrame = 启动过渡;
}
}
-------------
横向排列代码:(因为同一列是同时过渡的,所以只用for循环排列)
------------
function 开始排列() {
if (this.id == undefined) {
this.id = 0;
}
var i;
for (i=1; this["影片_遮片行"+(i-1)]._y<_parent.遮片高-_parent.阵列间高; i++) {
var tar = 影片_遮片行0.duplicateMovieClip("影片_遮片行"+i, i);
tar._y = this["影片_遮片行"+(i-1)]._y+_parent.阵列间高;
}
max = i;
var i;
for (i=0; i<max; i++) {
this["影片_遮片行"+i].竖向id = i;
this["影片_遮片行"+i].id = this.id*max+i;
this["影片_遮片行"+i].当前效果帧 = _parent.当前效果帧;
_parent.总单元个数 = this["影片_遮片行"+i].id;
}
}
开始排列();
-------
关于更换底图和遮图的代码:
--------
第几张 = 0;
function 底图下一张(id) {
if (id == 总单元个数) {
if (第几张>=底片影片._totalframes) {
底片影片.gotoAndStop(1);
} else {
底片影片.gotoAndStop(第几张+1);
}
}
}
function 遮图下一张(id) {
if (id == 1) {
第几张 += 2;
if (第几张>遮片影片._totalframes) {
第几张 = 2;
}
遮片影片.gotoAndStop(第几张);
}
}
应该支持的更多功能:
* 对外部效果文件的支持(.swf & .xml)
* 随机可变大小和间距排列的效果