Flash AS编写代码实现三维环视效果

  前段时间在韩国风景网站上看到这种三维环视效果,前景和背景分离的效果,感觉很不错。自己就试着做了一个,今天把原文件和做法共享出来。

  大家先看看我做的这个效果:(鼠标放到图片上即可看到效果) 

点击这里下载源文件

  1、首先找一张云层的图片,要大一点的,可以拼接为环视图片的最好。
  2、找一张风景的环视图片,然后将云层或者天空部分去掉,变成透明的,存为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;
}
}
};
现在直接Ctrl+enter就可以看到效果啦。现在共享我做这个效果时用到的两张图片;

  云层图片:

  风景图片:

时间: 2024-10-30 15:39:53

Flash AS编写代码实现三维环视效果的相关文章

Flash用AS2代码制作图片循环效果

  第一步:新建影片剪辑元件1,放一张照片或其他放到元件1的舞台中间,重复次动作(新建2.3.4....影片剪辑元件,一次放入照片) 第二步:回到主场景,把所有影片剪辑元件依次拖入到主场景图层1第一帧的舞台中,调整器高度宽度,如图"对其"面板进行调整. 第三部:第一帧中输入代码 for (var i in _root) { _root.onEnterFrame = function() { this._x -= 5; /每一帧都使第一帧中的图片向左移动5个像素 if (this._x&

flash-利用 Flash AS3.0编写代码,用户输入数字,系统打印输出星期

问题描述 利用 Flash AS3.0编写代码,用户输入数字,系统打印输出星期 function GetDay (n:Number):String{ var d:Date=new Date(); switch(d.day){ case 0: trace(""星期日""); break; case 1: trace(""星期一""); break; case 2: trace(""星期二""

flash-求教:利用Flash as3.0编写代码,计算奇数和,偶数和。

问题描述 求教:利用Flash as3.0编写代码,计算奇数和,偶数和. 计算3 – 42352 偶数和及奇数和分别为多少?(涉及求余%) 解决方案 var os = 0; // 奇数和 var es = 0; // 偶数和 for (var i=3; i <=42352; i++) { if (i %2 == 0) es = es + i; else os = os + i; }

用FLASH AS实现鼠标画圆的效果

鼠标 在FLASH或PHOTOSHOP中能够很轻松的画出一个圆或者椭圆,怎样做一个作品,让用户可以直接在里面拖动鼠标画出一个圆或者椭圆来呢?下面是BreakDS用AS实现这个效果的讲解-- 预览: 一.基本定义:虽然说不说大家都清楚,但是我还是想讲一下,以免一些人忘得差不多了-- 圆:平面上到定点距离等于定长的点的轨迹.椭圆:平面上到两定点距离和等于定长(定长大于两定点间距离)的点的轨迹. 二.问题描述:画圆和椭圆,使用AS. 三.问题分析: 1.圆呵呵,大多数人看到后肯定想:哼-这不简单,不就

Flash AS3制作茶杯震动gif动画效果

 下面小编就为大家介绍Flash AS3制作茶杯震动gif动画效果,教程很不错哦,也很简单,一起来学习吧! 效果如下:(用鼠标指向右侧的茶壶可以看到震动效果) 制作过程如下: 首先准备一个图片当做背景,如下: 然后再建立一个新图层,导入一个茶壶素材,然后把它转变为影片剪辑,之后命名实例名字. 目前存在两个图层,然后我们再新建立一个放置ACTION的图层,代码如下:   代码如下: var coordX:Number = shaker_mc.x;  var coordY:Number = shak

glulookat-绘制的地形怎么显示不出三维的效果,gluLookAt该怎么设置?

问题描述 绘制的地形怎么显示不出三维的效果,gluLookAt该怎么设置? CMapView::CMapView(){ // TODO: 在此处添加构造代码 m_iClientHeight = 0; m_iClientWidth = 0;} CMapView::~CMapView(){} BOOL CMapView::PreCreateWindow(CREATESTRUCT& cs){ // TODO: 在此处通过修改 // CREATESTRUCT cs 来修改窗口类或样式 return CV

微信公共号的文章中点击一张图片后,自动变为全屏浏览。这是编写代码实现的功能还是手机or微信自带的功能?

问题描述 微信公共号的文章中点击一张图片后,自动变为全屏浏览.这是编写代码实现的功能还是手机or微信自带的功能? 求解!如何不是手机的自带功能如何编写这个代码? 我写了一些放大功能的代码都达不到全屏的那种效果.. 解决方案 这个是通过微信公众平台提供的JsApi接口来实现,点击图片直接调起微信客户端自带的图片播放组件.// 调起微信客户端的图片播放组件进行播放 var srcList = []; $.each($('img'),function(i,item){ if(item.src) { s

Magicodes.NET框架之路——让Magicodes.NET帮你编写代码

时间总是过得很快,而我几乎没有时间来安安静静的写博客和完善文档.不过总算是框架在一直前进,而我的计划是在今年年底(公历)前,让此框架成熟稳定. 在很长一段时间里,我尝试了很多我之前没有接触的技术或者没用过的技术,比如knockoutJs.OData.T4等等,也许走了很多弯路,也许对框架作用并不大,但是却对我而言却很有价值.只有用过了才知道其可用程度和适用场景,没有使用过就没有发言权. 框架也在不断的重构,我不想照抄别人的路子,我只想做一款有特色的框架,安安静静编码,踏踏实实前进,怎么个特色法呢

link中能不能要查询的条件放在treeviw中,请问怎么编写代码实现?

问题描述 link中能不能要查询的条件放在treeviw中,请问怎么编写代码实现? link中能不能要查询的条件放在treeviw中,请问怎么编写代码实现? 解决方案 你可以保存一些参数,然后这个函数解析,linq调用这个方法去判断,如果你想动态执行代码,c#可以动态编译代码的,你搜一下,记不得是动态编译,我博客上也有一个简单的介绍