flash on 2010-4-29
♥0 |
Line 78 |
Modified 2010-04-30 03:22:20 |
MIT License
archived:2017-03-20 14:41:13
ActionScript3 source code
/**
* Copyright selflash ( http://wonderfl.net/user/selflash )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/eS39
*/
package {
import flash.display.Sprite;
import flash.events.*;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.core.render.AbstractRenderEngine;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.*;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.objects.primitives.*;
public class FlashTest extends Sprite {
private var _viewport1:Viewport3D;
private var _viewport2:Viewport3D;
private var _viewport3:Viewport3D;
private var _scene1:Scene3D;
private var _scene2:Scene3D;
private var _scene3:Scene3D;
private var _render1:BasicRenderEngine;
private var _render2:BasicRenderEngine;
private var _render3:BasicRenderEngine;
private var _camera1:Camera3D;
private var _camera2:Camera3D;
private var _camera3:Camera3D;
private var _currentCamera:Camera3D;
private var _world:DisplayObject3D;
private var _sphere1:Sphere;
private var _sphere2:Sphere;
private var _sphere3:Sphere;
public function FlashTest() {
_initialize3D();
}
private function _initialize3D():void {
_viewport1 = new Viewport3D( 0, 0, true, false, true, true );
addChild( _viewport1 );
_viewport2 = new Viewport3D( 0, 0, true, false, true, true );
_viewport2.y = 100;
addChild( _viewport2 );
_viewport3 = new Viewport3D( 0, 0, true, false, true, true );
addChild( _viewport3 );
_scene1 = new Scene3D();
_scene2 = new Scene3D();
_scene3 = new Scene3D();
_render1 = new BasicRenderEngine();
_render2 = new BasicRenderEngine();
_render3 = new BasicRenderEngine();
_camera1 = new Camera3D();
_camera1.z = -1000;
_camera2 = new Camera3D();
_camera2.x = -1000;
_camera2.y = -500;
_camera2.z = -1000;
_camera3 = new Camera3D();
_camera3.x = 1000;
_camera3.z = -2000;
_currentCamera = _camera1;
_sphere1 = new Sphere( new WireframeMaterial( 0xFF00FF, 1 ) );
_sphere1.x = 500;
_scene1.addChild( _sphere1 );
_sphere2 = new Sphere( new WireframeMaterial( 0x00FFFF, 1 ) );
_sphere2.x = 0;
_scene2.addChild( _sphere2 );
_sphere3 = new Sphere( new WireframeMaterial( 0x0000FF, 1 ) );
_sphere3.x = -500;
_scene3.addChild( _sphere3 );
_camera2.target =_sphere2;
addEventListener( Event.ENTER_FRAME, _onRenderTick );
}
private function _onRenderTick( e:Event ):void {
_render1.renderScene( _scene1, _currentCamera, _viewport1 );
if( _camera1.z < -900 || _camera1.z > -800 )_render1.renderScene( _scene2, _currentCamera, _viewport2 );
_render1.renderScene( _scene3, _camera2, _viewport3 );
//_camera1.z ++;
//_viewport1.x ++;
_sphere1.x --;
_sphere2.x --;
_sphere3.x --;
}
}
}