package
{
import flash.display.Bitmap;//Bitmap 类表示用于表示位图图像的显示对象
import flash.display.BitmapData;//BitmapData类可以直接处理位图
import flash.display.DisplayObject;//属性框架Fixjs——显示基类DisplayObject
import flash.display.DisplayObjectContainer;//Fixjs——显示容器基类DisplayObjectContainer
import flash.display.Loader;//进度指示器
import flash.display.MovieClip;//
import flash.display.Shape;//
import flash.events.Event;//
import flash.events.TimerEvent;//
import flash.filters.DropShadowFilter;//滤镜
import flash.geom.Point;//散点图函数
import flash.geom.Rectangle;//数学运算的概念类
import flash.net.URLRequest;//URLRequest 类可捕获单个 HTTP 请求中的所有信息
import flash.text.TextField;//
import flash.display.Sprite;//Sprite 类是基本显示列表构造块:一个可显示图形并且也可包含子项的显示列表节点。
import flash.events.MouseEvent;//
import flash.utils.Timer;//
import flash.display.SimpleButton;
/**
* ...
* @author Jinny
*/
public class Mains extends MovieClip
{
private var image:Bitmap;
private var bitmapdata:BitmapData;
private var loader:Loader=new Loader();
private var pt:Point = new Point(0, 0);
private var p:int = 0;
private var index:int = 4;
private var t:int = 0;
private var id:int; //当前目标id
private var W:Number;
private var H:Number;
private var imgList:Array = new Array();
var img:MovieClip=new MovieClip();
private var Container:Sprite;
private var bgArr:Array = new Array();
private var Level:int = 1;
private var dist:Number=1;
private var Row:int = 8;//容器的行数
private var Col:int = 2;//容器的列数
private var Row_Head:int = 3;//容器的列数
private var isDrag:Boolean = false;
private var isSucces:Boolean=true;
private var isTeacher:Boolean=true;
private var failed:MovieClip ;
private var X_dist:Number=260;//拼图区域与左上角的距离。
private var Y_dist:Number=60;//
private var X_btn:Number=X_dist;//拼图区域与左上角的距离。
private var Y_btn:Number=Y_dist+406+50;//
public function Mains()
{
loadImg();
//start_btn.x=X_btn;
//start_btn.y=Y_btn;
trace("start_btn.x是:"+start_btn.x);
trace("start_btn.y是:"+start_btn.y);
//OK_btn.x=start_btn.x+180;
//OK_btn.y=start_btn.y;
trace("OK_btn.x是:"+OK_btn.x);
trace("OK_btn.y:"+OK_btn.y);
}
public function loadImg()
{
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadComplete)
loader.load(new URLRequest("Main.jpg"));//导入底图
}
public function loadComplete(evt:Event):void
{
var loaders:Loader = Loader(evt.target.loader);
image = Bitmap(loaders.content);
bitmapdata = image.bitmapData;
setinit();
OK_btn.mouseEnabled = false;
start_btn.addEventListener(MouseEvent.CLICK, onStartHandler);
}
public function onStartHandler(evt:MouseEvent):void
{
if (isSucces == false)
{
trace("F")
clearScene();
clearArray();
}
isDrag = true;
start_btn.mouseEnabled = false;
OK_btn.mouseEnabled = true;
start_btn.removeEventListener(MouseEvent.CLICK, onStartHandler);
}
private function setinit()
{
//txt.text = "第" + Level + "关"
W = bitmapdata.width / Col; //设置拼图区域的宽: 图片宽/列数
H = bitmapdata.height / Row;//图片高/行数
trace("W:"+W);
trace("H:"+H);
//装载舞台上的元素的容器
Container=new Sprite();
this.addChild(Container);
BitInit();// 显示待拖动的图块
}
//W = bitmapdata.width / Col; //设置拼图区域的宽: 图片宽/列数
//H = bitmapdata.height / Row;//图片高/行数
public function BitInit() // 显示待拖动的图块
{
for(var i:int=0;i<Row;i++)//先按行复制图块
{
if(i<Row_Head)
{
var bmp:BitmapData = new BitmapData(bitmapdata.width, H, false, 0xff0000ff);
bmp.copyPixels(bitmapdata, new Rectangle(bitmapdata.width, i * H, bitmapdata.width, H), new Point(0, 0));
//创建拼图碎片
var pic:Bitmap = new Bitmap();
pic.bitmapData = bmp //bmp是上面建立的对象
pic.width = bitmapdata.width;
pic.height = H;//碎片大小
var mc:MovieClip= new MovieClip();
mc.addChild(pic);
imgList.push(mc);
//创建一个拼图区域
var bgdata:BitmapData = new BitmapData(bitmapdata.width,H,false,0xff0000ff);//0xff0000ff是拼图区域格子的底色
var bgbmp:Bitmap=new Bitmap();
bgbmp.bitmapData = bgdata;
trace("bitmapdata.width 2是:"+bitmapdata.width);
bgbmp.width=bitmapdata.width;
bgbmp.height=H;
var bg:MovieClip=new MovieClip();
bg.addChild(bgbmp);
bg.x =X_dist;//拼图区域格子坐标160 10 是舞台坐标
bg.y =Y_dist+i * (H + dist) ;//
//bg.x =X_dist;//拼图区域格子坐标160 10 是舞台坐标
// bg.y =Y_dist+i * H ;//
Container.addChild(bg);
bgArr.push(bg);
//mc.x =Math.random() * (100*(Row+1)/Col)+ 620; //碎片放置的位置
//mc.y = Math.random() * 400 + 30;
mc.x =X_dist+bitmapdata.width+50;
mc.y = Math.random() * bitmapdata.height;
mc.rotation = Math.random() * 0;//旋转
var drop:DropShadowFilter= new DropShadowFilter(); //投影效果
drop.distance =1;
drop.angle = 1
mc.filters = [drop];
mc.addEventListener(MouseEvent.MOUSE_DOWN, move)//移动图片,move函数
}
else if(i>Row_Head-1)
{
for(var j:int=0;j<Col;j++)
{
var bmp:BitmapData = new BitmapData(W, H, false, 0xff0000ff);
bmp.copyPixels(bitmapdata, new Rectangle(j * W, i * H, W, H), new Point(0, 0));
//创建一个拼图区域
var bgdata:BitmapData = new BitmapData(W,H,false,0xff0000ff);//0xff0000ff是拼图区域格子的底色
var bgbmp:Bitmap=new Bitmap();
bgbmp.bitmapData = bgdata;
trace("bitmapdata.width 2是:"+bitmapdata.width);
bgbmp.width=W //拼图区域格子宽度
bgbmp.height=H //拼图区域格子高度
var bg:MovieClip=new MovieClip();
bg.addChild(bgbmp);
bg.x =X_dist+ j * (W + dist);//拼图区域格子坐标160 10 是舞台坐标
bg.y =Y_dist+i * (H + dist) ;//
Container.addChild(bg);
bgArr.push(bg);
//创建拼图碎片
var pic:Bitmap = new Bitmap();
pic.bitmapData = bmp //bmp是上面建立的对象
pic.width = W;
pic.height = H;//碎片大小
var mc:MovieClip= new MovieClip();
mc.addChild(pic);
imgList.push(mc);
//mc.x =Math.random() * (100*(Row+1)/Col)+ 620; //碎片放置的位置
//mc.y = Math.random() * 400 + 30;
mc.x =X_dist+bitmapdata.width+50;
mc.y = Math.random() * bitmapdata.height;
mc.rotation = Math.random() * 0;//旋转
var drop:DropShadowFilter= new DropShadowFilter(); //投影效果
drop.distance =1;
drop.angle = 1
mc.filters = [drop];
mc.addEventListener(MouseEvent.MOUSE_DOWN, move)//移动图片,move函数
if (i ==Row - 1 && j == Col - 1)//是循环到随后一步了i最初是0,
{
for (var s:int = 0; s <Row * Col; s++ )
{
Container.addChild(imgList[s]);
}
}
}
}
}
}
public function thumb() //�