首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

flash中用Bit地图Data类制作图片“环绕”效果

2012-10-27 
flash中用BitmapData类制作图片“环绕”效果这种效果做法很多,网上到处可以搜出一大堆!本例主要是应用了Bitm

flash中用BitmapData类制作图片“环绕”效果

这种效果做法很多,网上到处可以搜出一大堆!
本例主要是应用了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._xxa?&&?pic_mc2._x>pic_mc._x)?{
????????????????pic_mc2._x?=?pic_mc._x-pic_mc2._width/2;
????????}?else?if?(pic_mc2._xxb?&&?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做环绕效果.swf

附件
:
BitmapData做环绕效果.fla
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/625.html

热点排行