首页 | 互联网 | IT动态 | 网络设备 | 服务器 | IDC | 安全 | Cisco | Windows | Linux | Java | .Net | Oracle | CIW | 华为 | 专题
IT技术 | 网页设计 | 平面设计 | 电子书下载 | 教学视频 | 方案 | 数字网校 | 直播室 | 虚拟考场 | 面授培训 | 搜索 | 博客 | 沙龙 | 论坛
 Dreamweaver | Flash
 Fireworks  | Frontpage
 HTML/CSS  | Javascript
 Photoshop  | CorelDraw
 AuotoCAD   | Illustrator
 Freehand
 3DMax    | Authorware
 Director   | Maya
 PP点点通 | 迅雷 | BT
 eMule | FlashGet | Nero
 Ghost | Outlook | IE
 Maxthon | Office
 QQ | MSN | 网易泡泡
 Skype | 雅虎通 | 新浪UC

最新文章

您现在的位置: 中国IT实验室 >> 网页设计 >> Flash >> Action Script学习 >> 文章正文


用了BitmapData类的图片“环绕”效果


webjx  2006-12-4  佚名  保存本文  推荐给好友  收藏本站


◆ 网页平面多媒体培训、认证考试免费咨询热线:400-700-5807   进入网络咨询平台

这种效果做法很多,网上到处可以搜出一大堆!
本例主要是应用了BitmapData类,仿制很容易。

做法:
处理一张首尾相接的环绕图片,导入Flash库中,打开库,右击图片,选“链接”,“为ActionScript导出“,标识ID名为:pic
场景上什么也不放。最好将场景高度设为与图片一样高。宽度随意,但要小于图片宽度。
在第一帧粘帖如下代码,即可测试:
import flash.display.BitmapData;
import flash.geom.*;
//从库里取图
var picBD:BitmapData = BitmapData.loadBitmap("pic");
var pic_mc:MovieClip = this.createEmptyMovieClip("pic_mc", this.getNextHighestDepth());
pic_mc.attachBitmap(picBD, this.getNextHighestDepth());
//创建用于“过渡”的图
var picBD2:BitmapData = new BitmapData(Stage.width*2, pic_mc._height, false, 0xFF);
var pic_mc2:MovieClip = this.createEmptyMovieClip("pic_mc2", this.getNextHighestDepth());
pic_mc2.attachBitmap(picBD2, this.getNextHighestDepth());
//截取源图的前和后各一部分组成新的图
picBD2.copyPixels(picBD, new Rectangle(0, 0, Stage.width, pic_mc._height), new Point(Stage.width, 0));
picBD2.copyPixels(picBD, new Rectangle(pic_mc._width-Stage.width, 0, Stage.width, pic_mc._height), new Point(0, 0));
//初始化位置
pic_mc2._x = pic_mc._x+pic_mc._width-Stage.width;
pic_mc2._y = pic_mc._y;
//计算两个“常量”,以免下面的帧循环中反复计算
var xa:Number = -(pic_mc._width-Stage.width)/2;
var xb:Number = -(pic_mc2._width-Stage.width)/2;
var v:Number =5;//移动速度初值
this.onEnterFrame = function() {
        pic_mc._x -= v;
        pic_mc2._x -= v;
        //判断不同位置下,pic_mc与pic_mc2有左右关系
        if (pic_mc._x<xa && pic_mc2._x<pic_mc._x) {
                pic_mc2._x = pic_mc._x+pic_mc._width-pic_mc2._width/2;
        } else if (pic_mc._x>xa && pic_mc2._x>pic_mc._x) {
                pic_mc2._x = pic_mc._x-pic_mc2._width/2;
        } else if (pic_mc2._x<xb && pic_mc._x<pic_mc2._x) {
                pic_mc._x = pic_mc2._x+pic_mc2._width/2;
        } else if (pic_mc2._x>xb && pic_mc._x>pic_mc2._x) {
                pic_mc._x = pic_mc2._x-pic_mc._width+pic_mc2._width/2;
        }
};
//鼠标移动,修调速度
this.onMouseMove = function() {
        v=Math.floor((this._xmouse-Stage.width/2)/30);//30为修调系数        
}

FlashVars" VALUE="">

 

【责编:runlz】


 相关文章  推荐文章
Flash制作神奇的互动橡皮刷实例
Flash8模糊滤镜绘制逼真青翠竹林
用Flash AS代码制作美丽光影变幻动画
Flash制作光晕变幻动画特效
Flash制作花丛中的小蜜蜂卡通动画
Flash中有关层的深度处理的常用函数
Flash场景中影片剪辑的修改小技巧
用Flash AS行代码画一棵漂亮的树
软件聚宝盆 非专业也可做出好Flash
用Flash打造简单的下雪动画
  文章评论