bitmapData打造随机切凹凸拼图效果[附源码下载]


下午没事做,就弄了个随机切拼图效果,还没做判断,只是个切法的计算,稍后整理下就应该是个成品,嘿嘿~原理主要就是用bitmap进行切图,以前都是用遮照做太占资源.效果如下:
主要代码:puzzle.as
/*
* Puzzle CLASS

* @ CREATED BY: ycccc8202
* @ PURPOSE: 方便制作拼图游戏
* @ DATE:2007.6.10
* Usage example:
* var url:String = "/Files/BeyondPic/2007-6/12/117984810018150686780.jpg";
* var puzzleuzzle = new Puzzle(this, url);
* 设置摆放位置
* puzzle.setPosition(30, 20);
* 设置行/列
* puzzle.setRowAndLine(30, 10);
*/
import com.ycccc.PuzzleGame.MovieClipDrag;
import mx.events.EventDispatcher;
import flash.display.BitmapData;
import flash.geom.Point;
import flash.geom.Matrix;
import flash.geom.Rectangle;
import flash.filters.BevelFilter;
class com.ycccc.PuzzleGame.Puzzle {
/**
* Private members
*/
//////////加载图片长宽///////////
private var _imageW:Number;
private var _imageH:Number;
//////////设置最大宽高///////////
private var _imageMaxW:Number = 800;
private var _imageMaxH:Number = 500;
////////////////////////////////
private var dispatchEvent:Function;
public var addEventListener:Function;
public var removeEventListener:Function;
////////////////////////////////
private var _oldURL:String;
private var _newURL:String;
private var _x:Number;
private var _y:Number;
private var _row:Number;
private var _line:Number;
private var _path:MovieClip;
private var _imageM:MovieClip;
private var _pieceBoard:MovieClip;
private var _imageLoader:MovieClipLoader;
private var _imageBitmap:BitmapData;
private var _pieceW:Number;
private var _pieceH:Number;
private var _pieceMinWH:Number;
private var _pieceD:Number;
///////////内切矩形宽高(通过矩形画近似椭圆)///////////
private var _pieceOW:Number;
private var _pieceOH:Number;
///////////////比例系数///////////////
private var _pieceD_k:Number = 10;
private var _pieceO_k:Number = 4;
private var _pieceOWH_k:Number = 3/4;
/////////////////////////////////
/**
* Constructor
*/
public function Puzzle(path:MovieClip, imageLink:String) {
  EventDispatcher.initialize(this);
  _path = path;
  _newURL = imageLink;
  _imageM = _path.createEmptyMovieClip("imageM", _path.getNextHighestDepth());
  _imageLoader = new MovieClipLoader();
  _imageLoader.addListener(this);
  loadImage(_newURL);
}
/**
* Public methods
*/
public function set _url(url:String) {
  loadImage(url);
}
public function get _url():String {
  return _oldURL;
}
public function set row(r:Number) {
  _row = r;
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/1250.html

你可能感兴趣的:(html,游戏,Flash)