In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

forked from: Pv3d Test

Papervision3D検証用 それぞれの要素を変更して検証。
変更したものはfork先
_createViewPortLayer = false;
_interactive = false;
_anime = false;

segment:2, precise=false, smooth=false;
Get Adobe Flash player
by amyneon 03 Feb 2011
/**
 * Copyright amyneon ( http://wonderfl.net/user/amyneon )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/zr7U
 */

// forked from dizgid's Pv3d Test
/**
Papervision3D検証用 それぞれの要素を変更して検証。
変更したものはfork先
_createViewPortLayer = false;
_interactive = false;
_anime = false;

segment:2, precise=false, smooth=false;
*/
package  
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.filters.BlurFilter;
    import net.hires.debug.Stats;
    import org.papervision3d.events.InteractiveScene3DEvent;
    import org.papervision3d.materials.MovieMaterial;
    import org.papervision3d.materials.utils.MaterialsList;
    import org.papervision3d.objects.DisplayObject3D;
    import org.papervision3d.objects.primitives.Cube;
    import org.papervision3d.view.BasicView;
    
    [SWF(backgroundColor="#ffffff", frameRate=60)]
    public class Pv3dTest extends BasicView
    {
        private var field:DisplayObject3D;
        private var _createViewPortLayer:Boolean = false;
        private var _interactive:Boolean = false;
        private var _anime:Boolean = false;
        
        public function Pv3dTest() 
        {
            field = new DisplayObject3D();
            field.name = "field";
            scene.addChild(field);
            
            viewport.interactive = _interactive;
            
            camera.z = -480;
            camera.useClipping = true;
            camera.useCulling = true;
            
            _createRandomCubes();
            
            this.startRendering();
            this.addEventListener(Event.ENTER_FRAME, update);
            
        }
        
        private function update(e:Event):void 
        {
            field.rotationY += 0.3;
        }
        
        private function _createRandomCubes():void
        {
            var objs:Array = [];
            var size:Number = 60;
            var alpha:Number = 1.0;
            
            var p:Number = 2.75;
            var num:int = 4;
            
            var offset:Number = -(size * p * (num - 1)) / 2;
            /*
            var colors:Array = [];
            for (var n:int = 0; n < 6; n++) {
                colors.push(0xffffff * Math.random());
            }
            */
            for (var i:int = 0; i < num; i++) {
                for (var j:int = 0; j < num; j++) {
                    for (var k:int = 0; k < num; k++) {
                        
                        var f0_:Sprite = new TestTexture();
                        var f1_:Sprite = new TestTexture();
                        var f2_:Sprite = new TestTexture();
                        var f3_:Sprite = new TestTexture();
                        var f4_:Sprite = new TestTexture();
                        var f5_:Sprite = new TestTexture();
                        
                        var isAnime:Boolean = _anime;
                        var interactive:Boolean = _interactive;
                        var f0Mat:MovieMaterial = new MovieMaterial(f0_, false, isAnime);
                        var f1Mat:MovieMaterial = new MovieMaterial(f1_, false, isAnime);
                        var f2Mat:MovieMaterial = new MovieMaterial(f2_, false, isAnime);
                        var f3Mat:MovieMaterial = new MovieMaterial(f3_, false, isAnime);
                        var f4Mat:MovieMaterial = new MovieMaterial(f4_, false, isAnime);
                        var f5Mat:MovieMaterial = new MovieMaterial(f5_, false, isAnime);
                        f0Mat.interactive = interactive;
                        f1Mat.interactive = interactive;
                        f2Mat.interactive = interactive;
                        f3Mat.interactive = interactive;
                        f4Mat.interactive = interactive;
                        f5Mat.interactive = interactive;
                        
                        var matList:MaterialsList = new MaterialsList();
                        matList.addMaterial(f0Mat ,"front");
                        matList.addMaterial(f1Mat ,"back");
                        matList.addMaterial(f2Mat ,"left");
                        matList.addMaterial(f3Mat ,"right");
                        matList.addMaterial(f4Mat ,"top");
                        matList.addMaterial(f5Mat ,"bottom");
                        
                        var cube:Cube = new Cube(matList, f0_.width, f0_.width, f0_.width, 2, 2, 2);
                        if(_createViewPortLayer){
                            cube.container = cube.createViewportLayer(viewport);
                        }
                        if(_interactive){
                            cube.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, _rollOverHandler);
                        }
                        cube.x = i * size * p + offset;
                        cube.y = j * size * p + offset;
                        cube.z = k * size * p + offset;
                        
                        _startCubeAnime(cube);
                        
                        field.addChild(cube);
                        
                        objs.push(cube);
                    }
                }
            }
        }
        
        private function _rollOverHandler(e:InteractiveScene3DEvent):void 
        {
            Cube(e.target).container.filters = [new BlurFilter(12, 12)];
        }
            
        
        private function _startCubeAnime(cube_:Cube):void
        {
            this.addEventListener(Event.ENTER_FRAME, function():void { cube_.rotationX += 1.5; cube_.rotationY += 1.0;} );
        }
    }

}

//
    import flash.display.Graphics;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    
    import caurina.transitions.properties.ColorShortcuts;
    import caurina.transitions.Tweener;
    /**
     * ...
     * @author inoook
     */
    internal class TestTexture extends Sprite
    {
        public function TestTexture(str:String = "") 
        {            
            ColorShortcuts.init();
            
            var g:Graphics = this.graphics;
            var size:Number = 50;
            g.beginFill(Math.random()*0xffffff);
            g.drawRect(-size/2, -size/2, size, size);
            g.endFill();
            
            g.beginFill(Math.random()*0xffffff);
            g.drawCircle(0,0, size*0.4);
            g.endFill();
            /*
            this.addEventListener(MouseEvent.ROLL_OVER, _mouseOverHandler);
            this.addEventListener(MouseEvent.ROLL_OUT, _mouseOutHandler);
            
            this.addEventListener(MouseEvent.CLICK, _mouseClickHandler);
            */
        }
        
        private function _mouseClickHandler(e:MouseEvent):void 
        {
            Tweener.addTween(this, { 
                _color:0xff0000,
                time:1, 
                transition:"linear",
                onComplete:function():void {
                    
                }
            } );
        }
        
        private function _mouseOverHandler(e:MouseEvent):void 
        {
            //this.alpha = 0.3;
            Tweener.addTween(this, { 
                _color:0x00ff00,
                time:0.5, 
                transition:"linear",
                onComplete:function():void {
                    
                }
            } );
        }
        
        private function _mouseOutHandler(e:MouseEvent):void 
        {
            //this.alpha = 1.0;
            Tweener.addTween(this, { 
                _color:null,
                time:0.5, 
                transition:"linear",
                onComplete:function():void {
                    
                }
            } );
        }
        
    }