package {
import flash.display.Sprite;
import com.zjj.RectShape;
import flash.events.MouseEvent;
import flash.sensors.Accelerometer;
public class Main extends Sprite{
private var indexShape:Array = new Array(1,2,3,4,5,6,7,8);
private var map:Array = new Array(new Array(3),new Array(3),new Array(3));
private var arrangement:Array = new Array(new Array(0,0),new Array(40,0),new Array(80,0),new Array(0,40),new Array(40,40),new Array(80,40),new Array(0,80),new Array(40,80),new Array(80,80));
public function Main(){
init();
}
public function init():void{
var kuang:Sprite = new Sprite();
kuang.graphics.lineStyle(3,0xff0000);
kuang.graphics.drawRect(0,0,120,120);
kuang.graphics.endFill();
kuang.x = 215;
kuang.y = 140;
addChild(kuang);
for(var i:uint = 0;i<3;i++){
for(var t:uint = 0;t<3;t++){
map[i][t] = 1;
}
}
for(var n:uint = 1;n<=8;n++){
var no:uint = Math.floor(Math.random()*indexShape.length);
var number:uint = indexShape[no];
indexShape.splice(no,1);
var rect:RectShape = new RectShape(number);
rect.mouseChildren = false;
var weizhi:uint = Math.floor(Math.random()*arrangement.length);
var arr:Array = arrangement[weizhi];
arrangement.splice(weizhi,1);
rect.x = arr[0];
rect.y = arr[1];
rect.X = arr[0]/40;
rect.Y = arr[1]/40;
kuang.addChild(rect);
map[arr[0]/40][arr[1]/40] = 0;
//添加鼠标点击事件
rect.addEventListener(MouseEvent.CLICK,dong);
}
}
private function dong(evt:MouseEvent):void{
var left:uint = evt.target.X-1;
var right:uint = evt.target.X+1;
var up:uint = evt.target.Y-1;
var down:uint = evt.target.Y+1;
if(left != 4294967295 && map[left][evt.target.Y] == 1){
map[evt.target.X][evt.target.Y] = 1;
map[left][evt.target.Y] = 0;
evt.target.X = left;
evt.target.x -= 40;
}else if(right != 3 && map[right][evt.target.Y] == 1){
map[evt.target.X][evt.target.Y] = 1;
map[right][evt.target.Y] = 0;
evt.target.X = right;
evt.target.x += 40;
}else if(up != 4294967295 && map[evt.target.X][up] == 1){
map[evt.target.X][evt.target.Y] = 1;
map[evt.target.X][up] = 0;
evt.target.Y = up;
evt.target.y -= 40;
}else if(down != 3 && map[evt.target.X][down] == 1){
map[evt.target.X][evt.target.Y] = 1;
map[evt.target.X][down] = 0;
evt.target.Y = down;
evt.target.y += 40;
}
}
}
}
package com.zjj{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
public class RectShape extends Sprite{
private var x_zb:uint;
private var y_zb:uint;
public function RectShape(indexs:uint){
init(indexs);
}
private function init(index:uint):void {
this.graphics.beginFill(0x00ff00);
this.graphics.lineStyle(1,0x000000,1);
this.graphics.drawRect(0,0,40,40);
this.graphics.endFill();
var txt:TextFormat = new TextFormat();
txt.size = 30;
var num_txt:TextField = new TextField();
num_txt.selectable = false; //属性是否能被选择
num_txt.text = String(index);
num_txt.width = 40;
num_txt.height = 40;
num_txt.x = 0;
num_txt.y = 0;
num_txt.setTextFormat(txt);
num_txt.autoSize = TextFieldAutoSize.CENTER;
this.addChild(num_txt);
}
public function get X():uint{
return x_zb;
}
public function set X(n:uint):void{
x_zb = n;
}
public function get Y():uint{
return y_zb;
}
public function set Y(n:uint):void{
y_zb = n;
}
}
}
更多详情请点击 http://blog.sina.com.cn/zhaojianjunzjj