dots3

by Scmiz
♥0 | Line 115 | Modified 2011-04-25 22:28:59 | MIT License
play

ActionScript3 source code

/**
 * Copyright Scmiz ( http://wonderfl.net/user/Scmiz )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/6JmU
 */

package {
	import flash.display.Bitmap;
	import flash.display.BitmapData;
    import flash.events.Event;
    import flash.display.Sprite;
    import org.papervision3d.view.BasicView;
    import org.papervision3d.objects.DisplayObject3D;
    import org.papervision3d.objects.primitives.Cube;
    import org.papervision3d.materials.ColorMaterial;
    import org.papervision3d.materials.utils.MaterialsList;
    import org.papervision3d.lights.PointLight3D;
    import org.papervision3d.materials.shadematerials.GouraudMaterial;
	import org.papervision3d.materials.BitmapMaterial;

    public class FlashTest extends Sprite {
        public function FlashTest() {
			
            var view:BasicView = new BasicView(465, 465);
            this.addChild(view);
            
            view.camera.zoom = 50;
            
            var container:DisplayObject3D = new DisplayObject3D();
            container.rotationZ = 5.0;
            view.scene.addChild(container);

            var light:PointLight3D = new PointLight3D(false);
            light.x = 500;
            light.y = 300;
            light.z = -100;
            container.addChild(light);
			
			var array:Array = new Array();

			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);

			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);
			array.push(1, 1, 1, 1, 1, 1, 1, 1);

			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);

			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);
			array.push(0, 0, 1, 1, 1, 1, 1, 1);

			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);

			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);
			array.push(0, 0, 0, 0, 1, 1, 1, 1);

			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);

			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);
			array.push(0, 0, 0, 0, 0, 0, 1, 1);

            var mat:GouraudMaterial = new GouraudMaterial(light, 0xf0f0f0);
            var materials:MaterialsList = new MaterialsList();
            materials.addMaterial(mat, "all");
			
			var size:Number = 30;
			for (var y:uint = 0; y < 8; ++y) {
			for (var x:uint = 0; x < 8; ++x) {
			for (var z:uint = 0; z < 8; ++z) {
				var data:uint = array[(y * 64) + (z * 8) + x];
				if (data > 0) {
					var cube:Cube = new Cube(materials, size, size, size);
					cube.x = -105 + (size * x);
					cube.y = -105 + (size * y);
					cube.z = -105 + (size * z);
					container.addChild(cube);
				}
			}}}

            view.startRendering();

            var proc:Function = function(e:Event):void {
                container.rotationY += 0.5;
            };
            this.addEventListener(Event.ENTER_FRAME, proc);

        }
    }
}