Flash AS2实例教程:制作360度全景动画效果
网站建设 2021-07-03 14:34www.dzhlxh.cn网站建设
本教程主要用Flash AS2代码来制作360度全景动画效果,效果的过度总体的来说还是比较流畅的,想学习的一起往下看吧。
先看看最终效果图:
1、首先找一张云层的图片,要大一点的,在Photoshop里处理成左右两连续的图最好。
2、找一张风景图片,然后将云层或者天空部分去掉,变成透明的,也在Photoshop里处理成左右两连续的图,存为png透明格式。
3、在主场景第一层第一帧中建立影片剪辑,实例名称为:bg_mc,在bg_mc下创建影片剪辑实例:bg,进入bg编辑,导入刚刚找到的云层图片。对齐坐标为0,0;
4、在主场景第二层第一帧中建立影片剪辑,实例名称为:img_mc,在img_mc下创建影片剪辑实例:img,进入img编辑,导入刚刚处理过的风景图片。对齐坐标为0,0;
5、在主场景第三层第一帧中加入以下AS代码:
复制代码
代码如下:/as----------------------------------------------------
stop();
Stage.showMenu = false;
Stage.scaleMode = "noScale";
fscommand(allowscale, true);
img_mc.img.duplicateMovieClip("img1", 2);//复制前景;
bg_mc.bg.duplicateMovieClip("bg1", 2);//复制云层北京;
page_width = Stage.width;//设置鼠标感应范围宽度
page_height = Stage.height;//设置鼠标感应范围高度;
step = 40;//设置间隔时间;
img_mc.img._x = 0;//初始前景坐标位置;
img_mc.img1._x = -img_mc.img._width;//初始前景被拼合为环视图
bg_mc.bg._x = 0;//初始背景坐标位置;
bg_mc.bg1._x = -bg_mc.bg._width;//初始背景被拼和为环视图;
img_mc._y = 0;//初始前景和背景y轴位置;
bg_mc._y = 0;//
_root.onEnterFrame = function() {//根据帧频持续调用函数;
img_width = img_mc._width/2;//设置前景鼠标检测范围;
bg_width = bg_mc._width/2;//设置背景鼠标检测范围;
if (_root._xmouse>0 && _root._xmouse<page_width && _root._ymouse>0 && _root._ymouse<page_height) {
//判断鼠标是否在场景范围内;
img_mc._x = img_mc._x-(_root._xmouse-page_width/2)/step;//控制前景循环;
bg_mc._x = bg_mc._x-(_root._xmouse-page_width/2)/step*1.3;//控制背景循环,速度比前景快1.3倍;
if (img_mc._x<-(img_width-page_width)) {//以下几个if循环为检测是否超出范围;
img_mc._x = page_width;
}
if (img_mc._x>page_width) {
img_mc._x = page_width-img_width;
}
if (bg_mc._x<-(bg_width-page_width)) {
bg_mc._x = page_width;
}
if (bg_mc._x>page_width) {
bg_mc._x = page_width-bg_width;
}
}
}
stop();
Stage.showMenu = false;
Stage.scaleMode = "noScale";
fscommand(allowscale, true);
img_mc.img.duplicateMovieClip("img1", 2);//复制前景;
bg_mc.bg.duplicateMovieClip("bg1", 2);//复制云层北京;
page_width = Stage.width;//设置鼠标感应范围宽度
page_height = Stage.height;//设置鼠标感应范围高度;
step = 40;//设置间隔时间;
img_mc.img._x = 0;//初始前景坐标位置;
img_mc.img1._x = -img_mc.img._width;//初始前景被拼合为环视图
bg_mc.bg._x = 0;//初始背景坐标位置;
bg_mc.bg1._x = -bg_mc.bg._width;//初始背景被拼和为环视图;
img_mc._y = 0;//初始前景和背景y轴位置;
bg_mc._y = 0;//
_root.onEnterFrame = function() {//根据帧频持续调用函数;
img_width = img_mc._width/2;//设置前景鼠标检测范围;
bg_width = bg_mc._width/2;//设置背景鼠标检测范围;
if (_root._xmouse>0 && _root._xmouse<page_width && _root._ymouse>0 && _root._ymouse<page_height) {
//判断鼠标是否在场景范围内;
img_mc._x = img_mc._x-(_root._xmouse-page_width/2)/step;//控制前景循环;
bg_mc._x = bg_mc._x-(_root._xmouse-page_width/2)/step*1.3;//控制背景循环,速度比前景快1.3倍;
if (img_mc._x<-(img_width-page_width)) {//以下几个if循环为检测是否超出范围;
img_mc._x = page_width;
}
if (img_mc._x>page_width) {
img_mc._x = page_width-img_width;
}
if (bg_mc._x<-(bg_width-page_width)) {
bg_mc._x = page_width;
}
if (bg_mc._x>page_width) {
bg_mc._x = page_width-bg_width;
}
}
}
素材: