Section 1
//MainTimeline (perform_fla.MainTimeline)
package perform_fla {
import flash.display.*;
public dynamic class MainTimeline extends MovieClip {
public var _cont;
public function MainTimeline(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
_cont = new M3D_controller();
this.addChild(_cont);
}
}
}//package perform_fla
Section 2
//add_btn (add_btn)
package {
import flash.display.*;
public dynamic class add_btn extends BitmapData {
public function add_btn(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 3
//BaseBG (BaseBG)
package {
import flash.events.*;
import flash.display.*;
public class BaseBG extends Sprite {
var m3d_controller_mc;
var bmp:Bitmap;
var bmpDataFinal:BitmapData;
public function BaseBG(_arg1){
m3d_controller_mc = _arg1;
this.addEventListener(Event.ADDED_TO_STAGE, init);
}
function init(_arg1){
this.removeEventListener(Event.ADDED_TO_STAGE, init);
stage.addEventListener(Event.RESIZE, fitStage);
bmp = new Bitmap();
bmp.opaqueBackground = 0;
bmp.pixelSnapping = "auto";
this.cacheAsBitmap = true;
this.opaqueBackground = 0;
addChild(bmp);
createBitmap();
stage.addEventListener(KeyboardEvent.KEY_DOWN, doKeyDown);
}
function doMouseUp(_arg1){
m3d_controller_mc.bgRelease();
}
function createBitmap(){
}
function setEvent(){
stage.addEventListener(MouseEvent.MOUSE_DOWN, doMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, doMouseUp);
}
function fitStage(_arg1){
createBitmap();
}
function doKeyDown(_arg1:KeyboardEvent){
var _local2:*;
var _local3:*;
_local2 = _arg1.keyCode;
if (_local2 == 32){
m3d_controller_mc.sortMotion(null);
} else {
if ((((_local2 >= 49)) && ((_local2 <= 55)))){
m3d_controller_mc.sortMotion((_local2 - 49));
};
};
}
function doMouseDown(_arg1){
m3d_controller_mc.bgPress();
}
}
}//package
Section 4
//brush_tex (brush_tex)
package {
import flash.display.*;
public dynamic class brush_tex extends BitmapData {
public function brush_tex(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 5
//M3D_CamerEngine (M3D_CamerEngine)
package {
import flash.events.*;
public class M3D_CamerEngine {
var camTG;
var models;
var ls;// = 0
var rot_x;// = 0
var rot_y;// = 0
var rot_z;// = 0
var ym;
var myGY;// = 0
var motionFunc;
var near_z;// = 1
var myL;// = 6
var o_r;
var base_myL;
var wscale;// = 0
var nowType:String;
var splitSquare0;
var splitSquare1;
var splitSquare2;
var splitSquare3;
var book_body;
var fov;// = 70
var far_z;// = 500
var m3d_controller_mc;
var vy;// = 0
var screenH;// = 0
var vr;// = 0
var wx;// = 0
var wy;// = 0
var wz;// = 0
var clipTop;// = 0
var oy;
var s;// = 0
var xm;
var clipLeft;// = 0
var r;// = -2.4
var screenW;// = 0
public function M3D_CamerEngine(_arg1){
camTG = {};
wx = 0;
wy = 0;
wz = 0;
rot_x = 0;
rot_y = 0;
rot_z = 0;
fov = 70;
near_z = 1;
far_z = 500;
clipTop = 0;
clipLeft = 0;
screenW = 0;
screenH = 0;
wscale = 0;
myGY = 0;
r = -2.4;
myL = 6;
base_myL = myL;
s = 0;
ls = 0;
o_r = r;
oy = myGY;
vy = 0;
vr = 0;
super();
m3d_controller_mc = _arg1;
nowType = "normal";
camTG.wx = 0;
camTG.wy = myGY;
camTG.wz = 0;
wx = (Math.cos(r) * myL);
wy = -22;
wz = (Math.sin(r) * myL);
opening();
}
function throwRot(_arg1){
myGY = (myGY + (vy = (vy * 0.9)));
wy = (wy + ((myGY - wy) * 0.2));
camTG.wy = (camTG.wy + ((0 - camTG.wy) * 0.3));
camTG.wx = (camTG.wx + ((0 - camTG.wx) * 0.1));
camTG.wz = (camTG.wz + ((0 - camTG.wz) * 0.1));
r = (r + (vr = (vr * 0.94)));
myL = (myL + ((base_myL - myL) * 0.1));
wx = (Math.cos(r) * myL);
wz = (Math.sin(r) * myL);
if ((((Math.abs(vr) < 0.02)) && ((Math.abs((myGY - wy)) < 0.01)))){
normalMotion();
};
}
function startRot(_arg1){
if (s < 0.5){
s = (s + 0.01);
};
if (ls < 0.5){
ls = (ls + 0.006);
};
myGY = (myGY + ((m3d_controller_mc.mouseY - ym) * 0.05));
wy = (wy + ((myGY - wy) * 0.2));
camTG.wy = (camTG.wy + ((0 - camTG.wy) * 0.3));
camTG.wx = (camTG.wx + ((0 - camTG.wx) * s));
camTG.wz = (camTG.wz + ((0 - camTG.wz) * s));
r = (r + ((xm - m3d_controller_mc.mouseX) * 0.004));
myL = (myL + ((base_myL - myL) * ls));
wx = (Math.cos(r) * myL);
wz = (Math.sin(r) * myL);
vy = (myGY - oy);
oy = myGY;
vr = (r - o_r);
o_r = r;
xm = (xm + ((m3d_controller_mc.mouseX - xm) * 0.6));
ym = m3d_controller_mc.mouseY;
}
function mousePress(){
stopMotion();
xm = m3d_controller_mc.mouseX;
ym = m3d_controller_mc.mouseY;
s = (ls = (vy = (vr = 0)));
if (nowType == "normal"){
motionFunc = startRot;
} else {
if (nowType == "book"){
base_myL = 6.5;
};
};
m3d_controller_mc.addEventListener(Event.ENTER_FRAME, motionFunc);
}
function setData(_arg1){
book_body = _arg1;
}
function culcSplitSquare(){
var _local1:*;
var _local2:*;
_local1 = (far_z * far_z);
_local2 = (1 / Math.sqrt((_local1 + (clipLeft * clipLeft))));
splitSquare0 = {x:(-(far_z) * _local2), y:(-(clipLeft) * _local2)};
splitSquare1 = {x:(far_z * _local2), y:(-(clipLeft) * _local2)};
_local2 = (1 / Math.sqrt((_local1 + (clipTop * clipTop))));
splitSquare2 = {x:(-(far_z) * _local2), y:(clipTop * _local2)};
splitSquare3 = {x:(far_z * _local2), y:(clipTop * _local2)};
}
function mouseRelease(){
stopMotion();
if (nowType == "normal"){
motionFunc = throwRot;
} else {
if (nowType == "book"){
base_myL = 6.5;
};
};
m3d_controller_mc.addEventListener(Event.ENTER_FRAME, motionFunc);
}
function startNormalMode(){
nowType = "normal";
}
function startEngine(){
mouseRelease();
}
function opening(){
var ss:*;
var cc:*;
ss = 0;
cc = 0;
motionFunc = function (){
if (ss < 0.8){
ss = (ss + 0.0015);
};
wy = (wy + ((0 - wy) * ss));
camTG.wy = (camTG.wy + ((0 - camTG.wy) * 0.1));
camTG.wx = (camTG.wx + ((0 - camTG.wx) * 0.1));
camTG.wz = (camTG.wz + ((0 - camTG.wz) * 0.1));
r = (r + 0.01);
myL = (myL + ((12 - myL) * 0.03));
wx = (Math.cos(r) * myL);
wz = (Math.sin(r) * myL);
if (cc == 80){
m3d_controller_mc.bg.setEvent();
m3d_controller_mc.sortMotion(3);
};
if (++cc > 120){
mouseRelease();
};
};
m3d_controller_mc.addEventListener(Event.ENTER_FRAME, motionFunc);
}
function stopMotion(){
if (motionFunc){
m3d_controller_mc.removeEventListener(Event.ENTER_FRAME, motionFunc);
};
}
function culcScale(_arg1, _arg2, _arg3, _arg4){
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
_local5 = (_arg1 - _arg3);
_local6 = (_arg2 - _arg4);
screenW = _local5;
screenH = _local6;
_local7 = Math.tan((((fov / 2) * Math.PI) / 180));
_local8 = (screenH / screenW);
clipLeft = (_local7 * far_z);
clipTop = (clipLeft * _local8);
_local9 = ((_local7 * near_z) * 2);
wscale = ((screenW * near_z) / _local9);
culcSplitSquare();
}
function setModels(_arg1){
models = _arg1;
}
function stopEngine(){
stopMotion();
}
function normalMotion(){
var tgs:*;
var tg:*;
var cc:*;
var cs:*;
var rp:*;
var vy:*;
var tgvx:*;
var tgvy:*;
var tgvz:*;
var gy:*;
var gy2:*;
var cclimit:*;
stopMotion();
tgs = 0;
cc = 1000;
cs = 0;
rp = 0.03;
vy = 0;
tgvx = 0;
tgvy = 0;
tgvz = 0;
cclimit = 90;
motionFunc = function (){
if (++cc > cclimit){
cc = 0;
cclimit = ((Math.random() * 60) + 30);
tg = models[((Math.random() * models.length) >> 0)];
tgs = (Math.random() * 0.1);
cs = (Math.random() * 0.1);
tgs = (cs = 0);
tgvx = ((Math.random() * 0.07) - 0.035);
tgvz = ((Math.random() * 0.07) - 0.035);
gy = ((Math.random() * 8) - 4);
gy2 = 0;
rp = ((Math.random() * 0.06) - 0.03);
base_myL = ((Math.random() * 4) + 7);
};
if (tgs < 0.5){
tgs = (tgs + 0.005);
};
if (cs < 0.5){
cs = (cs + 0.005);
};
gy2 = (gy2 + tgvy);
camTG.wx = (camTG.wx + ((tg.dx - camTG.wx) * tgs));
camTG.wy = (camTG.wy + (((tg.dy + gy2) - camTG.wy) * tgs));
camTG.wz = (camTG.wz + ((tg.dz - camTG.wz) * tgs));
r = (r + rp);
myL = (myL + ((base_myL - myL) * 0.1));
wx = (wx + ((((Math.cos(r) * myL) + tg.dx) - wx) * cs));
wy = (wy + (((tg.dy + gy) - wy) * cs));
wz = (wz + ((((Math.sin(r) * myL) + tg.dz) - wz) * cs));
};
m3d_controller_mc.addEventListener(Event.ENTER_FRAME, motionFunc);
}
}
}//package
Section 6
//M3D_controller (M3D_controller)
package {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.media.*;
import flash.filters.*;
import flash.utils.*;
public class M3D_controller extends Sprite {
var boxs;
var renderInners;
var bg;
var linewrap;
var models;
var _add_btn;
var polygons;
var isBtnDown;// = false
var main_canvas;
var logo_mc;
var pwrap;
var currStatus;
var _txt_mc;
var tex_baseColor;// = 4294967295
var txtcol;// = 0
var brush_bmps1;
var brush_bmps2;
var brush_bmps3;
var brush_bmps5;
var brush_bmps6;
var brush_bmps8;
var over_canvas;
var brush_bmps7;
var brush_bmps0;
var bg_point;
var addBallFunc;
var brush_bmps4;
var bg_point_src:Array;
var vertexs;
var box_high_bmd;
var shadows;
var renderFunc;
var cameraEngine;
var sortMotionFunc;
var charactors;
var main_bmp;
public function M3D_controller(){
bg_point_src = [[3.25, 3.25, 3.25], [0, 3.25, 3.25], [-3.25, 3.25, 3.25], [3.25, 0, 3.25], [3.25, -3.25, 3.25], [0, 0, 3.25], [0, -3.25, 3.25], [-3.25, -3.25, 3.25], [-3.25, 0, 3.25], [3.25, 3.25, 0], [0, 3.25, 0], [-3.25, 3.25, 0], [3.25, 0, 0], [3.25, -3.25, 0], [0, -3.25, 0], [-3.25, 0, 0], [-3.25, -3.25, 0], [3.25, 3.25, -3.25], [0, 3.25, -3.25], [-3.25, 3.25, -3.25], [3.25, 0, -3.25], [3.25, -3.25, -3.25], [0, -3.25, -3.25], [0, 0, -3.25], [-3.25, -3.25, -3.25], [-3.25, 0, -3.25]];
tex_baseColor = 4294967295;
isBtnDown = false;
txtcol = 0;
super();
currStatus = "stop";
this.addEventListener(Event.ADDED_TO_STAGE, init);
}
function bgRelease(){
if (!isBtnDown){
cameraEngine.mouseRelease();
};
isBtnDown = false;
}
function multMtx(_arg1, _arg2){
return ([[(((_arg1[0][0] * _arg2[0][0]) + (_arg1[0][1] * _arg2[1][0])) + (_arg1[0][2] * _arg2[2][0])), (((_arg1[0][0] * _arg2[0][1]) + (_arg1[0][1] * _arg2[1][1])) + (_arg1[0][2] * _arg2[2][1])), (((_arg1[0][0] * _arg2[0][2]) + (_arg1[0][1] * _arg2[1][2])) + (_arg1[0][2] * _arg2[2][2])), ((((_arg1[0][0] * _arg2[0][3]) + (_arg1[0][1] * _arg2[1][3])) + (_arg1[0][2] * _arg2[2][3])) + _arg1[0][3])], [(((_arg1[1][0] * _arg2[0][0]) + (_arg1[1][1] * _arg2[1][0])) + (_arg1[1][2] * _arg2[2][0])), (((_arg1[1][0] * _arg2[0][1]) + (_arg1[1][1] * _arg2[1][1])) + (_arg1[1][2] * _arg2[2][1])), (((_arg1[1][0] * _arg2[0][2]) + (_arg1[1][1] * _arg2[1][2])) + (_arg1[1][2] * _arg2[2][2])), ((((_arg1[1][0] * _arg2[0][3]) + (_arg1[1][1] * _arg2[1][3])) + (_arg1[1][2] * _arg2[2][3])) + _arg1[1][3])], [(((_arg1[2][0] * _arg2[0][0]) + (_arg1[2][1] * _arg2[1][0])) + (_arg1[2][2] * _arg2[2][0])), (((_arg1[2][0] * _arg2[0][1]) + (_arg1[2][1] * _arg2[1][1])) + (_arg1[2][2] * _arg2[2][1])), (((_arg1[2][0] * _arg2[0][2]) + (_arg1[2][1] * _arg2[1][2])) + (_arg1[2][2] * _arg2[2][2])), ((((_arg1[2][0] * _arg2[0][3]) + (_arg1[2][1] * _arg2[1][3])) + (_arg1[2][2] * _arg2[2][3])) + _arg1[2][3])]]);
}
function addBall(){
var rand0:*;
var rand1:*;
var me:*;
if (addBallFunc){
this.removeEventListener(Event.ENTER_FRAME, addBallFunc);
};
isBtnDown = true;
rand0 = 5.5;
rand1 = (rand0 * 0.5);
me = this;
addBallFunc = function (){
models.push(new M3D_Model_Chip(me, ((Math.random() * 8) - 4), ((Math.random() * 8) - 4), 0, ((Math.random() * rand0) - rand1), ((Math.random() * rand0) - rand1), ((Math.random() * rand0) - rand1), null, me[("brush_bmps" + (((Math.random() * 8) + 1) >> 0))]));
_txt_mc.txt.text = models.length;
if (txtcol == 0){
_txt_mc.txt.textColor = 0x767676;
txtcol = 1;
} else {
_txt_mc.txt.textColor = 0x999999;
txtcol = 0;
};
};
this.addEventListener(Event.ENTER_FRAME, addBallFunc);
}
function btUp(){
_txt_mc.txt.textColor = 0x666666;
if (addBallFunc){
this.removeEventListener(Event.ENTER_FRAME, addBallFunc);
};
stage.removeEventListener(MouseEvent.MOUSE_UP, btUp);
}
function stopMain(){
isBtnDown = true;
if (currStatus == "stop"){
startMain();
cameraEngine.startEngine();
sortMotion(null);
} else {
currStatus = "stop";
killSortMotion();
cameraEngine.stopEngine();
stopEngine();
};
}
function stopEngine(){
if (renderFunc){
this.removeEventListener(Event.ENTER_FRAME, renderFunc);
};
}
function killSortMotion(){
if (sortMotionFunc){
this.removeEventListener(Event.ENTER_FRAME, sortMotionFunc);
};
}
function sortMotion(_arg1){
var me:*;
var cc:int;
var _models:*;
var len:int;
var i:int;
var ii:int;
var v:*;
var doMax:*;
var _id:*;
var changeScene_cc:*;
var changeScene_ccLimit:*;
var startcc:*;
var rand0:*;
var rand1:*;
var _max:*;
var r:*;
var r0:*;
var cos:*;
var rp:*;
var rl:*;
var culc0:*;
var culc1:*;
var culc2:*;
var maxp:*;
var _id_src = _arg1;
killSortMotion();
me = this;
cc = 0;
_models = models;
len = _models.length;
doMax = 0;
_id = ((Math.random() * 7) >> 0);
changeScene_cc = 0;
changeScene_ccLimit = ((Math.random() * 140) + 3);
if (_id_src != null){
_id = _id_src;
changeScene_ccLimit = 100;
};
var _local3 = this;
_local3[("sortType" + _id)]();
startcc = 0;
rand0 = 2;
rand1 = (rand0 * 0.5);
_max = (Math.sqrt(len) >> 0);
r = 0;
r0 = 0;
rp = ((Math.random() * 0.3) + 0.1);
rl = ((Math.random() * 1) + 1);
maxp = ((len / 40) >> 0);
if (((!((_id == 5))) && (!((_id == 6))))){
sortMotionFunc = function (){
if (_id == 4){
i = 0;
while (i < _max) {
cos = (Math.cos(r) * rl);
r = (r + rp);
ii = 0;
while (ii < _max) {
v = _models[cc++];
v.gy = cos;
ii++;
};
i++;
};
r0 = (r0 + 0.11);
r = r0;
cc = 0;
i = 0;
while (i < doMax) {
v = _models[i];
if (v.s < 0.5){
v.s = (v.s + v.sp);
};
v.dx = (v.dx + ((v.gx - v.dx) * v.s));
v.dy = (v.dy + ((v.gy - v.dy) * v.s));
v.dz = (v.dz + ((v.gz - v.dz) * v.s));
i++;
};
} else {
i = 0;
while (i < doMax) {
v = _models[i];
if (!v.isMotionComp){
if (v.s < 0.8){
v.s = (v.s + v.sp);
};
culc0 = (v.gx - v.dx);
culc1 = (v.gy - v.dy);
culc2 = (v.gz - v.dz);
v.dx = (v.dx + (culc0 * v.s));
v.dy = (v.dy + (culc1 * v.s));
v.dz = (v.dz + (culc2 * v.s));
if ((((((Math.abs(culc0) < 0.05)) && ((Math.abs(culc1) < 0.05)))) && ((Math.abs(culc2) < 0.05)))){
v.isMotionComp = true;
v.dx = v.gx;
v.dy = v.gy;
v.dz = v.gz;
};
};
i++;
};
};
doMax = (doMax + maxp);
if (doMax > len){
doMax = len;
};
if (++cc >= len){
cc = 0;
};
if (++changeScene_cc > changeScene_ccLimit){
sortMotion(null);
};
};
} else {
if (_id == 5){
changeScene_ccLimit = 60;
sortMotionFunc = function (){
i = 0;
while (i < len) {
v = _models[i];
v.dy = (v.dy + v.vy);
v.vy = (v.vy - 0.06);
if (v.dy < -9){
v.dy = -9;
v.vy = (v.vy * -(v.sp));
v.sp = (v.sp * 0.9);
};
i++;
};
if (++changeScene_cc > changeScene_ccLimit){
sortMotion(null);
};
};
} else {
if (_id == 6){
sortMotionFunc = function (){
i = 0;
while (i < doMax) {
v = _models[i];
v.dx = (v.dx + v.vx);
v.dy = (v.dy + v.vy);
v.dz = (v.dz + v.vz);
i++;
};
doMax = (doMax + 30);
if (doMax > len){
doMax = len;
};
if (++changeScene_cc > changeScene_ccLimit){
sortMotion(null);
};
};
};
};
};
this.addEventListener(Event.ENTER_FRAME, sortMotionFunc);
}
function bgPress(){
if (!isBtnDown){
cameraEngine.mousePress();
};
}
function init(_arg1){
var i:*;
var len:*;
var bmp:*;
var mc:*;
var bmp_w:*;
var bmp_h:*;
var title_mc:*;
var add_btn_bmp:*;
var _stop_btn:*;
var me:*;
var _max:*;
var mc2:*;
var xx:*;
var yy:*;
var zz:*;
var r:*;
var rp:*;
var l:*;
var _size:*;
var _tex:*;
var _scale:*;
var _scale2:*;
var w:*;
var h:*;
var wper:*;
var hper:*;
var cc:*;
var ii:int;
var iii:int;
var bet:*;
var bet2:*;
var offsett:*;
var _filter:*;
var pt0:*;
var _rect:*;
var _tex2:*;
var tmp_rect:*;
var per:*;
var tt:int;
var cTransform:ColorTransform;
var colTrans_red:*;
var colTrans_green:*;
var colTrans_blue:*;
var colTrans_yellow:*;
var colTrans_5:*;
var colTrans_6:*;
var colTrans_7:*;
var colTrans_8:*;
var filter_power:*;
var filter_powercc:*;
var filter_powerpp:*;
var fr:*;
var frp:*;
var mtx_trans:*;
var ww:*;
var hh:*;
var tmp_mtx:*;
var bg_point_scale:*;
var ncc:*;
var func:*;
var event = _arg1;
this.removeEventListener(Event.ADDED_TO_STAGE, init);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.showDefaultContextMenu = true;
stage.frameRate = 40;
stage.quality = "BEST";
stage.addEventListener(Event.RESIZE, fitStage);
boxs = [];
models = [];
vertexs = [];
polygons = [];
renderInners = [];
shadows = [];
bg = new BaseBG(this);
addChild(bg);
bmp_w = 720;
bmp_h = 460;
over_canvas = new BitmapData(bmp_w, bmp_h, false, tex_baseColor);
main_canvas = new BitmapData(bmp_w, bmp_h, false, tex_baseColor);
main_bmp = new Bitmap(main_canvas, "always", false);
addChild(main_bmp);
pwrap = new Sprite();
addChild(pwrap);
_txt_mc = new txt_mc();
addChild(_txt_mc);
_txt_mc.x = 12;
_txt_mc.y = 28;
title_mc = new Sprite();
title_mc.addChild(new Bitmap(new title_txt(0, 0), "always", false));
addChild(title_mc);
title_mc.x = 20;
title_mc.y = 20;
add_btn_bmp = new Bitmap(new add_btn(0, 0), "always", false);
_add_btn = new Sprite();
_add_btn.addChild(add_btn_bmp);
addChild(_add_btn);
_add_btn.x = 128;
_add_btn.y = 40;
_stop_btn = new Sprite();
_add_btn.buttonMode = true;
_stop_btn.buttonMode = true;
me = this;
_add_btn.addEventListener(MouseEvent.MOUSE_DOWN, function (){
event.stopImmediatePropagation();
event.stopPropagation();
me.addBall();
});
_stop_btn.addEventListener(MouseEvent.MOUSE_DOWN, function (){
event.stopImmediatePropagation();
event.stopPropagation();
me.stopMain();
});
_add_btn.addEventListener(MouseEvent.MOUSE_OUT, function (){
stage.addEventListener(MouseEvent.MOUSE_UP, function (){
me.btUp();
});
});
_stop_btn.addEventListener(MouseEvent.MOUSE_OUT, function (){
stage.addEventListener(MouseEvent.MOUSE_UP, function (){
me.btUp();
});
});
_add_btn.addEventListener(MouseEvent.MOUSE_UP, function (){
me.btUp();
});
_stop_btn.addEventListener(MouseEvent.MOUSE_UP, function (){
me.btUp();
});
linewrap = new Shape();
_max = 8;
r = 0;
rp = (6.28 / _max);
l = 4;
_size = 2;
_tex = new brush_tex(0, 0);
_scale = 4;
_scale2 = (_scale * 0.5);
w = _tex.width;
h = _tex.height;
wper = (w / _max);
hper = (h / _max);
cc = 0;
bet = 0.7;
bet2 = (bet * 2);
offsett = (((_max - 1) * bet) * 0.5);
brush_bmps0 = [];
brush_bmps1 = [];
brush_bmps2 = [];
brush_bmps3 = [];
brush_bmps4 = [];
brush_bmps5 = [];
brush_bmps6 = [];
brush_bmps7 = [];
brush_bmps8 = [];
pt0 = new Point(0, 0);
_rect = _tex.rect;
per = 0;
cTransform = new ColorTransform();
colTrans_red = new ColorTransform();
colTrans_green = new ColorTransform();
colTrans_blue = new ColorTransform();
colTrans_yellow = new ColorTransform();
colTrans_5 = new ColorTransform();
colTrans_6 = new ColorTransform();
colTrans_7 = new ColorTransform();
colTrans_8 = new ColorTransform();
colTrans_red.redMultiplier = 0;
colTrans_red.greenMultiplier = 1.2;
colTrans_red.blueMultiplier = 1;
colTrans_green.redMultiplier = 1.2;
colTrans_green.greenMultiplier = 0.4;
colTrans_green.blueMultiplier = 0;
colTrans_blue.redMultiplier = 0.3;
colTrans_blue.greenMultiplier = 0.8;
colTrans_blue.blueMultiplier = 1.2;
colTrans_yellow.redMultiplier = 0.8;
colTrans_yellow.greenMultiplier = 0.5;
colTrans_yellow.blueMultiplier = 1;
colTrans_5.redMultiplier = 0;
colTrans_5.greenMultiplier = 1;
colTrans_5.blueMultiplier = 1;
colTrans_6.redMultiplier = 1.1;
colTrans_6.greenMultiplier = 0.6;
colTrans_6.blueMultiplier = 0.3;
colTrans_7.redMultiplier = 0.4;
colTrans_7.greenMultiplier = 1;
colTrans_7.blueMultiplier = 1.1;
colTrans_8.redMultiplier = 1;
colTrans_8.greenMultiplier = 0.5;
colTrans_8.blueMultiplier = 1;
filter_power = 0;
filter_powercc = -1;
filter_powerpp = (2 / 64);
fr = 0;
frp = (3.14 / 63);
mtx_trans = 0;
tmp_mtx = new Matrix();
i = 0;
while (i < 64) {
_tex2 = new BitmapData((64 - i), (64 - i), true, 0);
per = (_tex2.width / _tex.width);
tt = Math.max(-64, Math.min(64, ((i * 4) - 128)));
cTransform.redOffset = tt;
cTransform.greenOffset = tt;
cTransform.blueOffset = tt;
tmp_mtx = new Matrix(per, 0, 0, per, 0, 0);
_tex2.draw(_tex, tmp_mtx, cTransform, null, _tex2.rect, true);
filter_powercc = (filter_powercc + filter_powerpp);
filter_power = (Math.abs(filter_powercc) * 24);
fr = (fr + frp);
_filter = new BlurFilter(filter_power, filter_power, 3);
tmp_rect = _tex2.generateFilterRect(_tex2.rect, _filter);
brush_bmps0[i] = new BitmapData(tmp_rect.width, tmp_rect.height, true, 0);
brush_bmps0[i].applyFilter(_tex2, tmp_rect, pt0, _filter);
brush_bmps1[i] = brush_bmps0[i].clone();
brush_bmps2[i] = brush_bmps0[i].clone();
brush_bmps3[i] = brush_bmps0[i].clone();
brush_bmps4[i] = brush_bmps0[i].clone();
brush_bmps5[i] = brush_bmps0[i].clone();
brush_bmps6[i] = brush_bmps0[i].clone();
brush_bmps7[i] = brush_bmps0[i].clone();
brush_bmps8[i] = brush_bmps0[i].clone();
brush_bmps1[i].colorTransform(brush_bmps0[i].rect, colTrans_red);
brush_bmps2[i].colorTransform(brush_bmps0[i].rect, colTrans_green);
brush_bmps3[i].colorTransform(brush_bmps0[i].rect, colTrans_blue);
brush_bmps4[i].colorTransform(brush_bmps0[i].rect, colTrans_yellow);
brush_bmps5[i].colorTransform(brush_bmps0[i].rect, colTrans_5);
brush_bmps6[i].colorTransform(brush_bmps0[i].rect, colTrans_6);
brush_bmps7[i].colorTransform(brush_bmps0[i].rect, colTrans_7);
brush_bmps8[i].colorTransform(brush_bmps0[i].rect, colTrans_8);
brush_bmps0[i].dispose();
i = (i + 1);
};
i = 0;
while (i < _max) {
ii = 0;
while (ii < _max) {
iii = 0;
while (iii < _max) {
cc = (cc + 1);
var _local3:Number = cc;
models[_local3] = new M3D_Model_Chip(this, i, ii, 0, ((i * bet) - offsett), ((ii * bet) - offsett), ((iii * bet) - offsett), _tex.getPixel((i * wper), (ii * hper)), this[("brush_bmps" + (((Math.random() * 8) + 1) >> 0))]);
iii = (iii + 1);
};
ii = (ii + 1);
};
i = (i + 1);
};
bg_point_scale = 3;
bg_point = [];
i = 0;
while (i < bg_point_src.length) {
bg_point[i] = {dx:(bg_point_src[i][0] * bg_point_scale), dy:(bg_point_src[i][1] * bg_point_scale), dz:(bg_point_src[i][2] * bg_point_scale)};
i = (i + 1);
};
cameraEngine = new M3D_CamerEngine(this);
cameraEngine.setModels(models);
doFitStage();
_txt_mc.txt.text = models.length;
ncc = 0;
func = function (){
if (++ncc == 1){
me.removeEventListener(Event.ENTER_FRAME, func);
startMain();
};
};
this.addEventListener(Event.ENTER_FRAME, func);
}
function createMtx(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6){
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
_local7 = Math.cos(_arg4);
_local8 = Math.sin(_arg4);
_local9 = Math.cos(_arg5);
_local10 = Math.sin(_arg5);
return ([[_local9, (_local10 * _local8), (_local10 * _local7), _arg1], [0, _local7, -(_local8), _arg2], [-(_local10), (_local9 * _local8), (_local9 * _local7), _arg3]]);
}
function sortType0(){
var _local1:*;
var _local2:int;
var _local3:int;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
_local1 = models;
_local2 = _local1.length;
_local5 = 0.5;
_local6 = (_local5 * 0.5);
_local7 = 14;
_local8 = (_local7 * 0.5);
_local9 = 0;
_local10 = 0;
_local11 = ((Math.PI * 2) / _local2);
_local12 = (_local11 * (((Math.random() * 40) + 1) >> 0));
_local13 = (2 + (Math.random() * 2));
_local14 = 4;
_local15 = ((Math.random() * 0.05) + 0.022);
_local16 = ((_local2 - 50) * 0.004);
_local3 = 0;
while (_local3 < _local2) {
_local4 = _local1[_local3];
_local4.s = 0;
_local4.sp = _local15;
_local4.isMotionComp = false;
if (_local3 < (_local2 - 50)){
_local4.gx = (Math.cos(_local10) * _local14);
_local4.gy = ((_local3 * 0.008) - _local16);
_local4.gz = (Math.sin(_local10) * _local14);
} else {
_local4.gx = ((Math.random() * _local7) - _local8);
_local4.gy = ((Math.random() * _local7) - _local8);
_local4.gz = ((Math.random() * _local7) - _local8);
};
_local9 = (_local9 + _local11);
_local10 = (_local10 + _local12);
_local3++;
};
}
function sortType2(){
var _local1:*;
var _local2:int;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
_local1 = models;
_local2 = _local1.length;
_local7 = 1;
_local8 = (_local7 * 0.5);
_local9 = 14;
_local10 = (_local9 * 0.5);
_local11 = ((Math.random() * 0.05) + 0.022);
_local12 = 0;
_local13 = 1;
while (true) {
if (((_local13 * _local13) * _local13) > _local2){
_local13--;
break;
};
_local13++;
};
_local14 = (0.8 + (Math.random() * 0));
_local15 = ((-((_local13 - 1)) * _local14) * 0.5);
_local3 = 0;
while (_local3 < _local13) {
_local4 = 0;
while (_local4 < _local13) {
_local5 = 0;
while (_local5 < _local13) {
var _temp1 = _local12;
_local12 = (_local12 + 1);
_local6 = _local1[_temp1];
_local6.s = 0;
_local6.sp = _local11;
_local6.isMotionComp = false;
_local6.gx = ((_local3 * _local14) + _local15);
_local6.gy = ((_local4 * _local14) + _local15);
_local6.gz = ((_local5 * _local14) + _local15);
_local5++;
};
_local4++;
};
_local3++;
};
while (_local12 < _local2) {
_local6 = _local1[_local12];
_local6.s = 0;
_local6.sp = _local11;
_local6.vx = ((Math.random() * _local7) - _local8);
_local6.vy = ((Math.random() * _local7) - _local8);
_local6.vz = ((Math.random() * _local7) - _local8);
_local6.isMotionComp = false;
_local6.gx = ((Math.random() * _local9) - _local10);
_local6.gy = ((Math.random() * _local9) - _local10);
_local6.gz = ((Math.random() * _local9) - _local10);
_local12++;
};
}
function sortType5(){
var _local1:*;
var _local2:int;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
_local1 = models;
_local2 = _local1.length;
_local7 = 1;
_local8 = (_local7 * 0.5);
_local9 = 14;
_local10 = (_local9 * 0.5);
_local11 = ((Math.random() * 0.05) + 0.022);
_local12 = 0;
_local13 = (Math.sqrt(_local2) >> 0);
while (_local12 < _local2) {
_local6 = _local1[_local12];
_local6.s = 0;
_local6.sp = 0.5;
_local6.isMotionComp = false;
_local6.vy = (Math.random() * -0.2);
_local12++;
};
}
function sortType6(){
var _local1:*;
var _local2:int;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
_local1 = models;
_local2 = _local1.length;
_local7 = 0.25;
_local8 = (_local7 * 0.5);
_local9 = ((Math.random() * 0.05) + 0.022);
_local10 = 0;
_local11 = (Math.sqrt(_local2) >> 0);
while (_local10 < _local2) {
_local6 = _local1[_local10];
_local6.s = 0;
_local6.sp = 0.5;
_local6.isMotionComp = false;
_local6.vx = ((Math.random() * _local7) - _local8);
_local6.vy = ((Math.random() * _local7) - _local8);
_local6.vz = ((Math.random() * _local7) - _local8);
_local10++;
};
}
function sortType3(){
var _local1:*;
var _local2:int;
var _local3:int;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
_local1 = models;
_local2 = _local1.length;
_local5 = ((Math.random() * 0.05) + 0.022);
_local6 = 0.5;
_local7 = (_local6 * 0.5);
_local8 = 14;
_local9 = (_local8 * 0.5);
_local10 = (0.02 + (Math.random() * 0.025));
_local11 = ((-(_local10) * _local2) * 0.44);
_local12 = (1.2 + (Math.random() * 1));
_local13 = (_local12 * 0.5);
_local3 = 0;
while (_local3 < _local2) {
_local4 = _local1[_local3];
_local4.s = 0;
_local4.sp = _local5;
_local4.isMotionComp = false;
if (Math.random() > 0.05){
_local4.gx = ((_local3 * _local10) + _local11);
_local4.gy = ((Math.random() * _local12) - _local13);
_local4.gz = ((Math.random() * _local12) - _local13);
} else {
_local4.gx = ((Math.random() * _local8) - _local9);
_local4.gy = ((Math.random() * _local8) - _local9);
_local4.gz = ((Math.random() * _local8) - _local9);
};
_local3++;
};
}
function sortType4(){
var _local1:*;
var _local2:int;
var _local3:*;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
var _local16:*;
var _local17:*;
var _local18:*;
var _local19:*;
_local1 = models;
_local2 = _local1.length;
_local7 = 1;
_local8 = (_local7 * 0.5);
_local9 = 14;
_local10 = (_local9 * 0.5);
_local11 = ((Math.random() * 0.05) + 0.022);
_local12 = 0;
_local13 = (Math.sqrt(_local2) >> 0);
_local14 = 0.55;
_local15 = ((-((_local13 - 1)) * _local14) * 0.5);
_local16 = 0;
_local18 = ((Math.random() * 0.3) + 0.05);
_local19 = ((Math.random() * 1) + 1);
_local3 = 0;
while (_local3 < _local13) {
_local17 = (Math.cos(_local16) * _local19);
_local16 = (_local16 + _local18);
_local4 = 0;
while (_local4 < _local13) {
var _temp1 = _local12;
_local12 = (_local12 + 1);
_local6 = _local1[_temp1];
_local6.s = 0;
_local6.sp = _local11;
_local6.vx = (_local6.vy = (_local6.vz = 0));
_local6.isMotionComp = false;
_local6.gx = ((_local3 * _local14) + _local15);
_local6.gy = _local17;
_local6.gz = ((_local4 * _local14) + _local15);
_local4++;
};
_local3++;
};
while (_local12 < _local2) {
_local6 = _local1[_local12];
_local6.s = 0;
_local6.sp = _local11;
_local6.isMotionComp = false;
_local6.gx = ((Math.random() * _local9) - _local10);
_local6.gy = ((Math.random() * _local9) - _local10);
_local6.gz = ((Math.random() * _local9) - _local10);
_local12++;
};
}
function startEngine(){
var me:*;
var _cam:*;
var _camTG:*;
var pi:*;
var _cam_l:*;
var center_x:int;
var center_y:int;
var scale:int;
var ndist:Number;
var _vtxs:*;
var _polys:*;
var vlen:int;
var plen:int;
var dist:Number;
var mc:*;
var i:int;
var ii:int;
var m:*;
var v:*;
var wz:*;
var wy:*;
var _mtx:Array;
var cos_x:*;
var sin_x:*;
var cos_y:*;
var sin_y:*;
var cosx_cosy:*;
var sinx_cosy:*;
var cosx_siny:*;
var sinx_siny:*;
var sx:*;
var sy:*;
var sz:*;
var ssx:*;
var ssy:*;
var sz2:*;
var camx:*;
var camy:*;
var camz:*;
var xsa:*;
var zsa:*;
var wx:*;
var ssz:*;
var xoff:*;
var yoff:*;
var zoff:*;
var _models:*;
var models_len:int;
var view_models:Array;
var view_models_cc:int;
var _renderInners:Array;
var dep_array:Array;
var dep_cc:int;
var func:*;
var gx:int;
var gy:int;
var cc:*;
var _rect:*;
var pt:*;
var mtx:*;
var aa:*;
var bb:*;
var colTrans:*;
var rect:*;
var time:*;
var timeTotal:*;
var brush:*;
var brush_rect:*;
var currBrush:*;
var _filter:*;
var pt0:*;
var emp_mtx:*;
var vzper:*;
var vzlimit:*;
var line_tgs:*;
var line0:*;
var line1:*;
if (renderFunc){
this.removeEventListener(Event.ENTER_FRAME, renderFunc);
};
me = this;
_cam = cameraEngine;
_camTG = _cam.camTG;
pi = (Math.PI / 2);
_models = models;
models_len = _models.length;
_renderInners = renderInners;
cc = 0;
_rect = over_canvas.rect;
pt = new Point(0, 0);
mtx = new Matrix();
aa = 0.5;
bb = 0;
colTrans = new ColorTransform(aa, aa, aa, 0.5, bb, bb, bb, 0);
rect = new Rectangle(0, 0, 8, 8);
time = getTimer();
timeTotal = 0;
brush = new brush_tex(0, 0);
brush_rect = brush.rect;
_filter = new BlurFilter(4, 4, 1);
pt0 = new Point(0, 0);
emp_mtx = new Matrix(1, 0, 0, 1, 0, 0);
vzper = 3.2;
vzlimit = (64 / vzper);
line_tgs = [[0, 1], [1, 2], [2, 8], [0, 3], [1, 5], [3, 5], [5, 8], [3, 4], [5, 6], [8, 7], [4, 6], [6, 7], [2, 11], [11, 19], [8, 15], [15, 25], [7, 16], [16, 24], [2, 8], [11, 15], [19, 25], [8, 7], [15, 16], [25, 24], [17, 18], [18, 19], [9, 10], [10, 11], [17, 9], [18, 10], [9, 0], [10, 1], [18, 23], [17, 20], [25, 23], [23, 20], [24, 22], [22, 21], [23, 22], [20, 21], [20, 12], [21, 13], [12, 3], [13, 4], [20, 21], [12, 13], [22, 14], [16, 14], [14, 13], [6, 14]];
var _local2 = function (){
var _local1:*;
scale = _cam.wscale;
center_x = (720 >> 1);
center_y = (460 >> 1);
_cam_l = _cam.myL;
camx = _cam.wx;
camy = _cam.wy;
camz = _cam.wz;
xsa = (_camTG.wx - camx);
zsa = (_camTG.wz - camz);
_cam.rot_y = -((Math.atan2(-(zsa), xsa) + pi));
_cam.rot_x = -(Math.atan2((camy - _camTG.wy), Math.sqrt(((xsa * xsa) + (zsa * zsa)))));
cos_x = Math.cos(_cam.rot_x);
sin_x = Math.sin(_cam.rot_x);
cos_y = Math.cos(_cam.rot_y);
sin_y = Math.sin(_cam.rot_y);
cosx_cosy = (cos_x * cos_y);
sinx_cosy = (sin_x * cos_y);
cosx_siny = (cos_x * sin_y);
sinx_siny = (sin_x * sin_y);
time = getTimer();
main_canvas.lock();
main_canvas.fillRect(_rect, tex_baseColor);
dep_array = [];
dep_cc = 0;
models_len = bg_point.length;
i = 0;
while (i < models_len) {
v = bg_point[i];
sx = (v.dx - camx);
sy = (v.dy - camy);
sz = (v.dz - camz);
v.z = (ssz = (((-(sx) * cosx_siny) + (sy * sin_x)) + (sz * cosx_cosy)));
if (ssz > 0){
ndist = (scale / ssz);
v.x = (center_x + (((sx * cos_y) + (sz * sin_y)) * ndist));
v.y = (center_y - ((((sx * sinx_siny) + (sy * cos_x)) - (sz * sinx_cosy)) * ndist));
};
i++;
};
linewrap.graphics.clear();
linewrap.graphics.lineStyle(3, 0xECECEC, 1);
i = 0;
while (i < line_tgs.length) {
line0 = bg_point[line_tgs[i][0]];
line1 = bg_point[line_tgs[i][1]];
if ((((line0.z > 0)) && ((line1.z > 0)))){
linewrap.graphics.moveTo((line0.x + 4), (line0.y + 4));
linewrap.graphics.lineTo((line1.x + 4), (line1.y + 4));
};
i++;
};
main_canvas.draw(linewrap);
dep_array = [];
dep_cc = 0;
models_len = _models.length;
i = 0;
while (i < models_len) {
v = _models[i];
sx = (v.dx - camx);
sy = (v.dy - camy);
sz = (v.dz - camz);
v.z = (ssz = (((-(sx) * cosx_siny) + (sy * sin_x)) + (sz * cosx_cosy)));
if ((((v.z > 0)) && ((v.z < vzlimit)))){
ndist = (scale / ssz);
v.x = (center_x + (((sx * cos_y) + (sz * sin_y)) * ndist));
if ((((v.x > -64)) && ((v.x < 720)))){
v.y = (center_y - ((((sx * sinx_siny) + (sy * cos_x)) - (sz * sinx_cosy)) * ndist));
if ((((v.y > -64)) && ((v.y < 460)))){
var _local2 = dep_cc++;
dep_array[_local2] = [v, ssz];
};
};
};
i++;
};
dep_array.sortOn("1", (Array.NUMERIC | Array.DESCENDING));
_local1 = 0;
i = 0;
while (i < dep_cc) {
v = dep_array[i][0];
pt.x = v.x;
pt.y = v.y;
currBrush = v.col_array[((v.z * vzper) >> 0)];
main_canvas.copyPixels(currBrush, currBrush.rect, pt);
i++;
};
main_canvas.unlock();
};
func = _local2;
renderFunc = _local2;
this.addEventListener(Event.ENTER_FRAME, func);
}
function doFitStage(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
_local1 = 0;
_local2 = 0;
_local3 = (720 - _local1);
_local4 = (460 - _local2);
cameraEngine.culcScale(_local3, _local4, _local1, _local2);
}
function sortType1(){
var _local1:*;
var _local2:int;
var _local3:int;
var _local4:*;
var _local5:*;
var _local6:*;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:*;
var _local14:*;
var _local15:*;
_local1 = models;
_local2 = _local1.length;
_local5 = 1;
_local6 = (_local5 * 0.5);
_local7 = 14;
_local8 = (_local7 * 0.5);
_local9 = 0;
_local10 = 0;
_local11 = ((Math.PI * 2) / _local2);
_local12 = (_local11 * (((Math.random() * 40) + 1) >> 0));
_local13 = (3 + (Math.random() * 5));
_local14 = 4;
_local15 = ((Math.random() * 0.05) + 0.022);
_local3 = 0;
while (_local3 < _local2) {
_local4 = _local1[_local3];
_local4.s = 0;
_local4.sp = _local15;
_local4.isMotionComp = false;
_local14 = (Math.cos(_local9) * _local13);
if (Math.random() > 0.06){
_local4.gx = (Math.cos(_local10) * _local14);
_local4.gy = (Math.sin(_local9) * _local13);
_local4.gz = (Math.sin(_local10) * _local14);
} else {
_local4.gx = ((Math.random() * _local7) - _local8);
_local4.gy = ((Math.random() * _local7) - _local8);
_local4.gz = ((Math.random() * _local7) - _local8);
};
_local9 = (_local9 + _local11);
_local10 = (_local10 + _local12);
_local3++;
};
}
function addPolygon(_arg1){
var _local2:*;
_local2 = new Polygon();
polygons.push(_local2);
_arg1.addChild(_local2);
return (_local2);
}
function startMain(){
stage.quality = "LOW";
currStatus = "play";
startEngine();
}
function fitStage(_arg1){
doFitStage();
}
function addVertex(_arg1){
vertexs = vertexs.concat(_arg1);
}
}
}//package
Section 7
//M3D_Model_Chip (M3D_Model_Chip)
package {
import flash.events.*;
public class M3D_Model_Chip {
var s;
var vy;
var z;
var gy;
var vz;
var vx;
var dx;
var dy;
var dz;
var col_array;
var sp;
var isMotionComp;
var gx;
var gz;
var x:int;
var y;
var md3;
public function M3D_Model_Chip(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9){
var _scale:*;
var _scale2:*;
var me:*;
var cc:*;
var rand0:*;
var rand1:*;
var xsa:*;
var ysa:*;
var zsa:*;
var limit:*;
var func:*;
var _md3 = _arg1;
var xx = _arg2;
var yy = _arg3;
var zz = _arg4;
var _dx = _arg5;
var _dy = _arg6;
var _dz = _arg7;
var _col = _arg8;
var _col_array = _arg9;
super();
md3 = _md3;
col_array = _col_array;
_scale = 6;
_scale2 = (_scale * 0.5);
dx = ((Math.random() * _scale) - _scale2);
dy = (((Math.random() * _scale) - _scale2) * 1);
dz = ((Math.random() * _scale) - _scale2);
dx = (dy = (dz = 0));
dy = 7;
me = this;
cc = 0;
gx = _dx;
gy = _dy;
gz = _dz;
rand0 = 1;
rand1 = (rand0 * 0.5);
vx = ((Math.random() * rand0) - rand1);
vy = ((Math.random() * rand0) - rand1);
vz = ((Math.random() * rand0) - rand1);
xsa = 0;
ysa = 0;
zsa = 0;
s = 0;
limit = 0.01;
func = function (){
if (s < 0.8){
s = (s + 0.03);
};
dx = (dx + (((gx - dx) * s) + (vx = (vx * 0.9))));
dy = (dy + (((gy - dy) * s) + (vy = (vy * 0.9))));
dz = (dz + (((gz - dz) * s) + (vz = (vz * 0.9))));
if ((((((Math.abs((gx - dx)) < limit)) && ((Math.abs((gy - dy)) < limit)))) && ((Math.abs((gz - dz)) < limit)))){
me.md3.removeEventListener(Event.ENTER_FRAME, func);
dx = gx;
dy = gy;
dz = gz;
};
};
md3.addEventListener(Event.ENTER_FRAME, func);
}
function setTex(_arg1, _arg2){
}
}
}//package
Section 8
//Polygon (Polygon)
package {
import flash.display.*;
import flash.geom.*;
public class Polygon extends Shape {
var texbmp:BitmapData;
var myColor:Number;
var id:Number;
var hasTex:Boolean;
var texbackbmp:BitmapData;
var m3d_controller_mc;
var uvIDs;
var v0;
var v1;
var v2;
var render:Function;
var res_mtx;
var invmtrx:Matrix;
var uv0;
var uv1;
var uv2;
var myMaterial;
public function Polygon(){
uv0 = {u:0, v:0};
uv1 = {u:0, v:0};
uv2 = {u:0, v:0};
super();
res_mtx = new Matrix();
uvIDs = [];
setEvent();
alpha = 0.8;
}
function renderSingleCopy(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
graphics.clear();
_local1 = (v1.sx - v0.sx);
_local2 = (v1.sy - v0.sy);
_local3 = (v2.sx - v0.sx);
_local4 = (v2.sy - v0.sy);
if (((_local1 * _local4) - (_local2 * _local3)) > 0){
_local5 = invmtrx;
res_mtx.tx = 0;
res_mtx.ty = 0;
res_mtx.a = (_local5.b * _local3);
res_mtx.c = (_local5.c * _local1);
res_mtx.b = (_local5.b * _local4);
res_mtx.d = (_local5.c * _local2);
graphics.beginBitmapFill(texbmp, res_mtx, false, false);
graphics.moveTo(0, 0);
graphics.lineTo(_local1, _local2);
graphics.lineTo(_local3, _local4);
graphics.endFill();
x = v0.sx;
y = v0.sy;
return (true);
};
return (false);
}
function get dep():Number{
return (((v0.sz + v1.sz) + v2.sz));
}
function pressed(){
}
function setData(_arg1, _arg2, _arg3, _arg4, _arg5){
id = _arg1;
v0 = _arg3;
v1 = _arg4;
v2 = _arg5;
m3d_controller_mc = _arg2;
}
function renderBoth(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
graphics.clear();
_local1 = (v1.sx - v0.sx);
_local2 = (v1.sy - v0.sy);
_local3 = (v2.sx - v0.sx);
_local4 = (v2.sy - v0.sy);
_local5 = invmtrx;
res_mtx.tx = (((_local5.tx * _local1) + (_local5.ty * _local3)) + v0.sx);
res_mtx.ty = (((_local5.tx * _local2) + (_local5.ty * _local4)) + v0.sy);
res_mtx.a = ((_local5.a * _local1) + (_local5.b * _local3));
res_mtx.c = ((_local5.c * _local1) + (_local5.d * _local3));
res_mtx.b = ((_local5.a * _local2) + (_local5.b * _local4));
res_mtx.d = ((_local5.c * _local2) + (_local5.d * _local4));
graphics.beginBitmapFill(texbmp, res_mtx, false, false);
graphics.moveTo(v0.sx, v0.sy);
graphics.lineTo(v1.sx, v1.sy);
graphics.lineTo(v2.sx, v2.sy);
graphics.endFill();
return (true);
}
function renderBothCopy_wBack(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
graphics.clear();
_local1 = (v1.sx - v0.sx);
_local2 = (v1.sy - v0.sy);
_local3 = (v2.sx - v0.sx);
_local4 = (v2.sy - v0.sy);
_local5 = invmtrx;
res_mtx.tx = 0;
res_mtx.ty = 0;
res_mtx.a = (_local5.b * _local3);
res_mtx.c = (_local5.c * _local1);
res_mtx.b = (_local5.b * _local4);
res_mtx.d = (_local5.c * _local2);
if (((_local1 * _local4) - (_local2 * _local3)) > 0){
graphics.beginBitmapFill(texbmp, res_mtx, false, false);
} else {
graphics.beginBitmapFill(texbackbmp, res_mtx, false, false);
};
graphics.moveTo(0, 0);
graphics.lineTo(_local1, _local2);
graphics.lineTo(_local3, _local4);
graphics.endFill();
x = v0.sx;
y = v0.sy;
return (true);
}
function renderBothCopy(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
graphics.clear();
_local1 = (v1.sx - v0.sx);
_local2 = (v1.sy - v0.sy);
_local3 = (v2.sx - v0.sx);
_local4 = (v2.sy - v0.sy);
_local5 = invmtrx;
res_mtx.tx = 0;
res_mtx.ty = 0;
res_mtx.a = (_local5.b * _local3);
res_mtx.c = (_local5.c * _local1);
res_mtx.b = (_local5.b * _local4);
res_mtx.d = (_local5.c * _local2);
if (((_local1 * _local4) - (_local2 * _local3)) > 0){
graphics.beginBitmapFill(texbmp, res_mtx, false, false);
} else {
graphics.beginBitmapFill(texbackbmp, res_mtx, false, false);
};
graphics.moveTo(0, 0);
graphics.lineTo(_local1, _local2);
graphics.lineTo(_local3, _local4);
graphics.endFill();
x = v0.sx;
y = v0.sy;
return (true);
}
function setEvent(){
}
function setInverseMtx(){
invmtrx = new Matrix((uv1.u - uv0.u), (uv1.v - uv0.v), (uv2.u - uv0.u), (uv2.v - uv0.v), uv0.u, uv0.v);
invmtrx.invert();
}
function setInverseMtx2(){
invmtrx = new Matrix(0, texbmp.height, texbmp.width, 0, 0, 0);
invmtrx.invert();
}
function removeEvent(){
}
function youClear(){
graphics.clear();
}
function renderBothHigh(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
graphics.clear();
_local1 = (v1.sx - v0.sx);
_local2 = (v1.sy - v0.sy);
_local3 = (v2.sx - v0.sx);
_local4 = (v2.sy - v0.sy);
_local5 = invmtrx;
res_mtx.tx = (((_local5.tx * _local1) + (_local5.ty * _local3)) + v0.sx);
res_mtx.ty = (((_local5.tx * _local2) + (_local5.ty * _local4)) + v0.sy);
res_mtx.a = ((_local5.a * _local1) + (_local5.b * _local3));
res_mtx.c = ((_local5.c * _local1) + (_local5.d * _local3));
res_mtx.b = ((_local5.a * _local2) + (_local5.b * _local4));
res_mtx.d = ((_local5.c * _local2) + (_local5.d * _local4));
graphics.beginBitmapFill(m3d_controller_mc.camTex, res_mtx, false, false);
graphics.moveTo(v0.sx, v0.sy);
graphics.lineTo(v1.sx, v1.sy);
graphics.lineTo(v2.sx, v2.sy);
graphics.endFill();
return (true);
}
function remove(){
}
function renderSingle(){
var _local1:*;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
graphics.clear();
_local1 = (v1.sx - v0.sx);
_local2 = (v1.sy - v0.sy);
_local3 = (v2.sx - v0.sx);
_local4 = (v2.sy - v0.sy);
if (((_local1 * _local4) - (_local2 * _local3)) > 0){
_local5 = invmtrx;
res_mtx.tx = (((_local5.tx * _local1) + (_local5.ty * _local3)) + v0.sx);
res_mtx.ty = (((_local5.tx * _local2) + (_local5.ty * _local4)) + v0.sy);
res_mtx.a = ((_local5.a * _local1) + (_local5.b * _local3));
res_mtx.c = ((_local5.c * _local1) + (_local5.d * _local3));
res_mtx.b = ((_local5.a * _local2) + (_local5.b * _local4));
res_mtx.d = ((_local5.c * _local2) + (_local5.d * _local4));
graphics.beginBitmapFill(texbmp, res_mtx, false, false);
graphics.moveTo(v0.sx, v0.sy);
graphics.lineTo(v1.sx, v1.sy);
graphics.lineTo(v2.sx, v2.sy);
graphics.endFill();
return (true);
};
return (false);
}
function setMaterial(_arg1, _arg2, _arg3, _arg4:Array, _arg5){
var _local6:int;
var _local7:int;
var _local8:int;
var _local9:*;
var _local10:*;
var _local11:*;
var _local12:*;
var _local13:Matrix;
var _local14:*;
var _local15:ColorTransform;
myMaterial = _arg1;
if (_arg1.hasTex){
_local6 = _arg2.width;
_local7 = _arg2.height;
_local9 = {};
_local10 = {};
_local11 = [uv0, uv1, uv2];
_local8 = 0;
while (_local8 < 3) {
uvIDs[_local8] = _arg5[_local8];
_local9 = _arg4[uvIDs[_local8]];
_local10 = _local11[_local8];
_local10.u = Math.round((_local6 * _local9[0]));
_local10.v = Math.round((_local7 * (1 - _local9[1])));
_local8++;
};
myColor = _arg2.getPixel(((((uv0.u + uv1.u) + uv2.u) / 3) >> 0), ((((uv0.v + uv1.v) + uv2.v) / 3) >> 0));
if ((((((_arg1.renderType == "renderSingleCopy")) || ((_arg1.renderType == "renderBothCopy")))) || ((_arg1.renderType == "renderBothCopy_wBack")))){
_local6 = (getLen(uv2, uv0) >> 0);
_local7 = (getLen(uv1, uv0) >> 0);
texbmp = new BitmapData(_local6, _local7, _arg1.transparency, myColor);
_local12 = new Matrix((uv1.u - uv0.u), (uv1.v - uv0.v), (uv2.u - uv0.u), (uv2.v - uv0.v), uv0.u, uv0.v);
_local12.invert();
_local13 = new Matrix(0, _local7, _local6, 0, 0, 0);
_local12.concat(_local13);
texbmp.draw(_arg2, _local12, new ColorTransform(), "normal", new Rectangle(0, 0, _local6, _local7), false);
setInverseMtx2();
if (_arg1.renderType == "renderBothCopy_wBack"){
texbackbmp = new BitmapData(_local6, _local7, _arg1.transparency, myColor);
_local14 = -70;
_local15 = new ColorTransform(1, 1, 1, 1, _local14, _local14, _local14, 0);
texbackbmp.draw(texbmp, new Matrix(), _local15, "normal", new Rectangle(0, 0, _local6, _local7), false);
};
} else {
texbmp = _arg2;
texbackbmp = _arg3;
setInverseMtx();
};
} else {
myColor = _arg1.col;
};
render = this[_arg1.renderType];
}
function getOmote(){
return (((((v1.sx - v0.sx) * (v2.sy - v0.sy)) - ((v1.sy - v0.sy) * (v2.sx - v0.sx))) > 0));
}
function getLen(_arg1, _arg2){
var _local3:*;
var _local4:*;
_local3 = (_arg1.u - _arg2.u);
_local4 = (_arg1.v - _arg2.v);
return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4))));
}
}
}//package
Section 9
//stop_btn (stop_btn)
package {
import flash.display.*;
public dynamic class stop_btn extends BitmapData {
public function stop_btn(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 10
//title_txt (title_txt)
package {
import flash.display.*;
public dynamic class title_txt extends BitmapData {
public function title_txt(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package
Section 11
//txt_mc (txt_mc)
package {
import flash.display.*;
import flash.text.*;
public dynamic class txt_mc extends Sprite {
public var txt:TextField;
}
}//package