论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

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

文章类别:Flash | 发表日期:2008-9-21 19:42:35

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

做法:
处理一张首尾相接的环绕图片,导入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为修调系数        
}
源文件上来了: BitmapData做环绕效果.rar
视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058