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

PaperVision3D_001

マウスクリックでサイコロが回転します。
Get Adobe Flash player
by michouse 22 Oct 2010
    Embed
/**
 * Copyright michouse ( http://wonderfl.net/user/michouse )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/aX67
 */

package {
    
    import flash.display.*;
    import flash.events.*;
    import flash.filters.*;
    import flash.geom.*;
    
    // PaperVision3D
    import org.papervision3d.core.effects.*;
    import org.papervision3d.core.effects.utils.*;
    import org.papervision3d.view.layer.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.materials.utils.*;
    import org.papervision3d.objects.primitives.*;
    import org.papervision3d.view.*;
    import org.papervision3d.events.*;
    import org.papervision3d.render.*;
    import org.papervision3d.objects.parsers.*;
    import org.papervision3d.lights.*;
    import org.papervision3d.core.math.Quaternion;
    import org.papervision3d.core.math.Matrix3D;
    
    // BeTween
    import org.libspark.betweenas3.BetweenAS3;
    import org.libspark.betweenas3.tweens.IObjectTween;
    import org.libspark.betweenas3.easing.*
    import org.libspark.betweenas3.events.TweenEvent;
    import org.libspark.betweenas3.tweens.ITween;
    import org.libspark.betweenas3.tweens.ITweenGroup;
    
    [SWF(backgroundColor = "0x000000", width = "465", height = "465", frameRate = "60")]

    public class Main extends BasicView {
        
        public var cube:DAE;
        
        public function Main() {

            super(0, 0, true, true);
            
            var light:PointLight3D = new PointLight3D();
            
            cube = new DAE();
            cube.addEventListener(FileLoadEvent.LOAD_COMPLETE, onLoadCompleteHandler);
            cube.load("http://www.piece-web.jp/FLASH/dice/Dice/dice.dae");
            
        }
        
        private function onLoadCompleteHandler(e:FileLoadEvent):void {
            
            scene.addChild(cube);
            
            cube.x = 0;
            cube.y = 0;
            cube.z = 0;
            cube.rotationZ = 45;
            cube.rotationX = 45;
            
            camera.x = 0;
            camera.y = 0;
            camera.z = -500;
            
            startRendering();
            
            addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler);
            addEventListener(MouseEvent.MOUSE_UP, onMouseUpHandler);
            
        }
        
        private function onMouseDownHandler(e:MouseEvent):void {
            addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
        }
        
        private function onMouseUpHandler(e:MouseEvent):void {
            removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
        }
        
        private function onEnterFrameHandler(e:Event):void {
            
             var pos1:Quaternion = Quaternion.createFromMatrix(cube.transform);
             var pos2:Quaternion = Quaternion.createFromEuler(-2, 0, 0, true);
             
             pos2.normalize();
             pos2.mult(pos1);
             pos2.normalize();
             cube.copyTransform(org.papervision3d.core.math.Matrix3D.quaternion2matrix(pos2.x, pos2.y, pos2.z, pos2.w));
        }
        
    }
    
}