Controller3D beta
♥0 |
Line 103 |
Modified 2012-02-08 18:16:26 |
MIT License
archived:2017-03-30 21:57:54
ActionScript3 source code
/**
* Copyright bradsedito ( http://wonderfl.net/user/bradsedito )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/iR7y
*/
package
{
import flash.utils.ObjectInput;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import com.greensock.*;
import com.greensock.easing.*;
public class Main extends Sprite
{
private const SW:Number=stage.stageHeight;
private const SH:Number=stage.stageWidth;
private const SD:Number=3000;
public var pp:PerspectiveProjection;
public var real:Sprite;
public var mirror:Sprite;
public var objects:Array = new Array();
public var objects3D:Array = new Array();
public function Main()
{
pp=transform.perspectiveProjection;
pp.projectionCenter = new Point(SW/2,SH/2);
pp.fieldOfView=60;
var bg:Shape = new Shape();
bg.graphics.beginFill(0);
bg.graphics.drawRect(0,0,SW,SH);
bg.graphics.endFill();
addChild(bg);
objects.push(".");
objects.push(".");
objects.push(".");
objects.push(".");
var obj_01:Object3D = new Object3D( 100,62,Math.random()*SW,Math.random()*SH,Math.random()*SD );
objects3D.push( obj_01 );
mirror = new Sprite();
addChild(mirror);
mirror.x = SW/2;
//mirror.y = SH/2+250;
real = new Sprite();
addChild(real);
real.x = SW/2;
real.y = SH/2;
//real.y=SH/2-150;
var textFormat:TextFormat = new TextFormat();
textFormat.font = "Arial";
textFormat.bold = true;
textFormat.size = 24;
textFormat.align = TextFormatAlign.CENTER;
for (var i:int=0; i < objects.length; i++)
{
// REAL
var text:TextSprite = new TextSprite( objects[i],textFormat,0x0066ff );
var _obj3d:Object3D = new Object3D( 100,62,Math.random()*SW-SW/2,Math.random()*SH-SH/2,Math.random()*SD-SD/2 );
text.x = Math.random() * 600-300;
text.y = Math.random() * 200-100;
text.z = Math.random() * 600-300;
//text.rotationX = Math.random()*360;
//text.rotationY = Math.random()*360;
//text.rotationZ = Math.random()*360;
real.addChild( text );
real.addChild( _obj3d );
// MIRROR
/*
var mText:TextSprite = new TextSprite( objects[i],textFormat,0x000099 );
mText.rotationX = -text.rotationX;
mText.rotationY = text.rotationY;
mText.rotationZ = -text.rotationZ;
mText.scaleY = -1;
mText.scaleZ = -1;
mText.x = text.x;
mText.y = -text.y;
mText.z = text.z;
mirror.addChild(mText);
*/
}
addEventListener(Event.ENTER_FRAME, xEyePoint);
}
public function xEyePoint(e:Event):void
{
pp.projectionCenter=new Point( SW/2,SH/2 );
//pp.projectionCenter=new Point(SW/2,mouseY);
var eyePoint:Vector3D = new Vector3D(SW/2, SH/2, -pp.focalLength);
//var eyePoint:Vector3D = new Vector3D(SW/2, mouseY, -pp.focalLength);
TweenMax.to( real,1, {rotationX:(mouseY / SH * 480 - real.rotationX) * 0.1,rotationY:(mouseX / SW * 480 - real.rotationY) * 0.1, ease:Quad.easeOut});
//real.rotationY += (mouseX / SW * 480 - real.rotationY) * 0.1;
//mirror.rotationY = real.rotationY;
}
}
}
import flash.display.*;
import flash.text.*;
class Object3D extends Sprite
{
public function Object3D( objW:Number,objH:Number,objX:Number,objY:Number,objZ:Number ):void
{
var _id:uint;
var _shape:Shape = new Shape();
var canvas:Sprite = new Sprite();
canvas.x = objX;
canvas.y = objY;
canvas.z = objZ;
canvas.graphics.beginFill( 0xffffff,1 );
canvas.graphics.drawRect( -objW/2,-objH/2,objW,objH );
canvas.graphics.endFill();
canvas.addChild( _shape );
addChild( canvas );
}
}
import flash.display.*;
import flash.text.*;
class TextSprite extends Sprite {
public function TextSprite( str:String,tf:TextFormat,nColor:int ):void {
var text:Sprite = new Sprite();
var field:TextField = new TextField();
field.antiAliasType = AntiAliasType.ADVANCED;
field.autoSize=TextFieldAutoSize.LEFT;
field.defaultTextFormat = tf;
field.text = str;
field.textColor= nColor;
field.x -= field.width/2;
field.y -= field.height/2;
text.addChild(field);
addChild(text);
}
}