/**
* Copyright maxs.maxs.90 ( http://wonderfl.net/user/maxs.maxs.90 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/8UXi
*/
package {
import flash.geom.*;
import flash.events.*;
import flash.display.*;
public class FlashTest extends Sprite {
//
var colCode:Array = new Array(
2,2,2,2,3,3,1,2,2,1,3,3,2,2,2,2,
2,1,1,1,2,3,1,1,1,1,3,2,1,1,1,2,
2,1,1,2,3,3,3,4,4,3,3,3,2,1,1,2,
2,1,2,3,3,3,3,4,4,3,3,3,3,2,1,2,
3,2,3,3,3,3,3,4,4,3,3,3,3,3,2,3,
3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,
1,1,3,3,3,2,5,1,1,5,2,3,3,3,1,1,
2,1,4,4,4,2,5,5,5,5,2,4,4,4,1,2,
2,1,4,4,4,2,5,5,5,5,2,4,4,4,1,2,
1,1,3,3,3,2,1,5,5,1,2,3,3,3,1,1,
3,3,3,3,3,3,2,2,2,2,3,3,3,3,3,3,
3,2,3,3,3,3,3,4,4,3,3,3,3,3,2,3,
2,1,2,3,3,3,3,4,4,3,3,3,3,2,1,2,
2,1,1,2,3,3,3,4,4,3,3,3,2,1,1,2,
2,1,1,1,2,3,1,1,1,1,3,2,1,1,1,2,
2,2,2,2,3,3,1,2,2,1,3,3,2,2,2,2);
//
var coord:Vector.<Number> = new Vector.<Number>();
var uv:Vector.<Number> = new Vector.<Number>();
//
var line_:Boolean = true;
var st:Number = 7;
var w:Number = st * 8;
var fl:Number = 200;
var rotX:int = 0;
var rotY:int = 0;
var tex:BitmapData = new BitmapData(16 * st,16 * st,false);
var triangles:Sprite = new Sprite();
//
public function FlashTest() {
// write as3 code here..
addChild(triangles);
triangles.x = stage.stageWidth / 2;
triangles.y = stage.stageHeight / 2;
triangles.z = 1;
BM();
addEventListener(Event.ENTER_FRAME,fr);
addEventListener(MouseEvent.CLICK,cl);
//
}
function fr(event:Event){
//
vr();
//
rotY = (720 / stage.stageWidth) * mouseX;
rotX = (720 / stage.stageHeight) * mouseY;
}
function BM(){
var g:int = 0;
for(var i:int = 0; i < 16; i ++){
for(var j:int = 0; j < 16; j ++){
tex.fillRect(new Rectangle(j * st,i * st,st,st),
(colCode[g] == 1) ? 0xacacac :
(colCode[g] == 2) ? 0x909090 :
(colCode[g] == 3) ? 0x6a6a6a :
(colCode[g] == 4) ? 0x626262 : 0xfd2e7e);
g ++;
}
}
}
function vr(){
coord.length = 0;
uv.length = 0;
for(var i:int = 0; i < 2; i ++){
for(var j:int = 0; j < 4; j ++){
var x_:int = Math.cos( ((90 * j) + rotY + 45) * (Math.PI / 180) ) * Math.sqrt((w * w) + (w * w));
var z_:int = Math.sin( ((90 * j) + rotY + 45) * (Math.PI / 180) ) * Math.cos( rotX * (Math.PI / 180) ) * Math.sqrt((w * w) + (w * w));
var y_:int = Math.sin( rotX * (Math.PI / 180) ) * w;
var t_ = fl / (fl + z);
coord.push(x_);
coord.push(
(i == 0) ? -w : w
);
uv.push(
(j == 0) ? 0 :
(j == 2) ? 1 :
(j == 3) ? 0 : 1
);
uv.push(
(j == 0) ? 0 :
(j == 2) ? 0 :
(j == 3) ? 1 : 1
);
uv.push(t_);
}
}
//
triangles.graphics.clear();
if(line_) triangles.graphics.lineStyle(3,0x0066ff);
triangles.graphics.beginFill(0xff9900);
triangles.graphics.beginBitmapFill(tex);
triangles.graphics.drawTriangles(coord,
Vector.<int>([0,1,2, 0,3,2, 4,5,6, 4,7,6, 4,0,3, 3,7,4, 2,1,5, 2,5,6, 7,3,2, 2,6,7, 1,0,4, 4,5,1]),
uv,TriangleCulling.NEGATIVE);
triangles.graphics.endFill();
}
function cl(event:MouseEvent){
line_ = (line_) ? false : true;
}
}
}