/**
* 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/tY2z
*/
package {
import flash.filters.GlowFilter;
import flash.geom.*;
import flash.display.*;
import flash.events.*;
public class FlashTest extends Sprite {
var triangles:Shape = new Shape();
var tes:Shape = new Shape();
var cof:Number = 7;
var line_:Boolean = false;
var w:Number = (cof * 16);
var w2:Number = w / 2;
var coord:Vector.<Number> = new Vector.<Number>();
var uv:Vector.<Number> = new Vector.<Number>();
var tex:BitmapData;
var Yw:Number = stage.stageWidth;
var Yh:Number = stage.stageHeight;
var rotX:int;
var rotY:int;
var speed:Number = 3;
var fl:Number = 200;
var fil:GlowFilter = new GlowFilter(0xfd2e7e,1,50,50,1);
//
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);
public function FlashTest() {
// write as3 code here..
addChild(triangles);
addChild(tes);
//
point(-w2,-w2, w2,0);
point(-w2,-w2,-w2,1);
point( w2,-w2,-w2,2);
point( w2,-w2, w2,3);
//
point(-w2, w2, w2,4);
point(-w2, w2,-w2,5);
point( w2, w2,-w2,6);
point( w2, w2, w2,7);
//
BD();
addEventListener(Event.ENTER_FRAME,fr);
addEventListener(MouseEvent.CLICK,cl);
}
function BD(){
tex = new BitmapData(w,w,false);
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 * cof,i * cof,cof,cof),
(colCode[g] == 1) ? 0xacacac :
(colCode[g] == 2) ? 0x909090 :
(colCode[g] == 3) ? 0x6a6a6a :
(colCode[g] == 4) ? 0x626262 : 0xfd2e7e);
g ++;
}
}
}
function fr(event:Event){
rotX = (mouseY < (Yh / 2)) ? -speed : (mouseY > (Yh / 2)) ? speed : 0;
rotY = (mouseX < (Yw / 2)) ? -speed : (mouseX > (Yw / 2)) ? speed : 0;
draw();
}
function point(x_:Number,y_:Number,z_:Number,n:Number){
var p:Shape = new Shape();
p.x = x_ + (Yw / 2);
p.y = y_ + (Yh / 2);
p.z = z_;
addChildAt(p,n);
}
function draw(){
coord.length = 0;
uv.length = 0;
tes.graphics.clear();
tes.graphics.beginFill(0xff3300);
for(var pn:int = 0; pn < 8; pn ++){
getChildAt(pn).transform.matrix3D.appendTranslation(-Yw/2,-Yh/2,0);
getChildAt(pn).transform.matrix3D.appendRotation(rotX,Vector3D.X_AXIS);
getChildAt(pn).transform.matrix3D.appendRotation(rotY,Vector3D.Y_AXIS);
getChildAt(pn).transform.matrix3D.appendTranslation(Yw/2,Yh/2,0);
//
if(line_) tes.graphics.drawCircle(getChildAt(pn).x,getChildAt(pn).y,5);
var t:int = fl / (fl + getChildAt(pn).z);
coord.push(getChildAt(pn).x,getChildAt(pn).y);
uv.push(
(pn == 0 || pn == 4) ? 0 :
(pn == 1 || pn == 5) ? 0 :
(pn == 2 || pn == 6) ? 1 : 1);
//
uv.push(
(pn == 0 || pn == 4) ? 1 :
(pn == 1 || pn == 5) ? 0 :
(pn == 2 || pn == 6) ? 0 : 1);
//uv.push(t);
}
//
triangles.graphics.clear();
if(line_) triangles.graphics.lineStyle(3,0x066ff);
triangles.graphics.beginFill(0x0066ff,.4);
triangles.graphics.beginBitmapFill(tex);
triangles.graphics.drawTriangles(coord,
Vector.<int>([1,0,3, 3,2,1, 4,5,6, 6,7,4, 0,4,7, 7,3,0, 5,1,2, 2,6,5, 3,7,6, 6,2,3, 1,5,4, 4,0,1]),
uv,TriangleCulling.NEGATIVE);
triangles.graphics.endFill();
triangles.filters = [fil];
}
function cl(event:MouseEvent){
line_ = (line_) ? false : true;
}
}
}