天天看點

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為修調系數        

}

附件上來了:

[img]/Files/BeyondPic/2006-11/22/20061122155252627.gif[/img]

[url=http://space.flash8.net/bbs/member.php?action=credits&view=getattach]附件[/url]

:

[url=http://space.flash8.net/bbs/attachment.php?aid=313047]BitmapData做環繞效果.swf[/url]

[img]/Files/BeyondPic/2006-11/22/20061122155252627.gif[/img]

[url=http://space.flash8.net/bbs/member.php?action=credits&view=getattach]附件[/url]

:

[url=http://space.flash8.net/bbs/attachment.php?aid=313048]BitmapData做環繞效果.fla[/url]

本文轉自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/625.html