[Papervision3D] fantastic site - was this made in papervision?
Mikenku
livelym1 at nku.edu
Fri Jun 27 11:11:52 PDT 2008
Probably not a Papervision3D site - just a simple image "swf" sliding site
with swf movie transitions- one cool trick you can do with sites like this
(and Papervision3D) is to stick animated objects on top of your sliding
image (in the swf) this gives the appearance of 3D - like the animated cow
for example. If you want to do a Pano in Papervision3D stick the image in an
SWF so you can to do the cow trick above - here is the Pano Software for
Flex Papervision3D
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
applicationComplete="myLecData.send()" backgroundGradientColors="[#AEE8F4,
#131617]" backgroundGradientAlphas="[1.0, 1.0]">
<mx:HTTPService id="myLecData" url="XML/myXML.xml"
result="resultHandler(event)" />
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import org.papervision3d.core.proto.CameraObject3D;
import flash.filters.DropShadowFilter;
//Import for Reflection
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.filters.BlurFilter;
//Gradient Bevel Filter
import flash.filters.BitmapFilterQuality;
import flash.filters.GradientBevelFilter;
//Import Papervision Classes
import org.papervision3d.scenes.*;
import org.papervision3d.cameras.*;
import org.papervision3d.objects.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.*;
import org.papervision3d.materials.shadematerials.*;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.lights.*;
import org.papervision3d.render.*;
import org.papervision3d.view.*;
import org.papervision3d.events.*;
import org.papervision3d.core.*;
import org.papervision3d.lights.PointLight3D;
import flash.filters.DropShadowFilter;
import flash.events.KeyboardEvent;
import mx.controls.HSlider;
import caurina.transitions.*;
//Add Cairngorm
import
net.davidtucker.ContactManager.model.SampleModelLocator;
[Bindable] private var modelLocator:SampleModelLocator =
SampleModelLocator.getInstance();
private var numOfItems:int = 15;
private var radius:Number = 300;
private var anglePer:Number = (Math.PI*2) / numOfItems;
// Apply the drop shadow and gradientDevel filter to the
box.
private var dropShadowFilter:DropShadowFilter;
private var gradientBevel:GradientBevelFilter;
private var gradientBevel2:DropShadowFilter;
//Click Variables
private var firstClick:Boolean=false;
private var youClickedMe:Object;
//private var dsf:DropShadowFilter = new
DropShadowFilter(10, 45, 0x000000, 0.3, 6, 6, 1, 3);
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.events.EffectEvent;
import mx.core.UIComponent;
public var angleX:Number = anglePer;
public var dest:Number = 1;
private var theLight:PointLight3D;
//Papervision Engine
private var viewport:Viewport3D;
private var scene:Scene3D;
private var camera: FreeCamera3D;
private var renderer:BasicRenderEngine;
private var planeArray:Array = new Array();
[Bindable]
public var object:Object;
private var arrayPlane:Object;
private var p1:Plane;
private var p2:Plane;
private var p3:Plane;
private var p4:Plane;
//Parameters for Keyboard and Cylinders
private var speed:Number=10; //Forward Back
private var rotspeed:Number=0;
//Rotation
private var highspeed:Number=30; //Flying
//Declare Buttons and Boolen Values Set to false to not execute in
the renderer
private var leftArrow:Boolean = false;
private var rightArrow:Boolean = false;
private var upArrow:Boolean = false;
private var downArrow:Boolean = false;
private var pageUp:Boolean = false;
private var pageDown:Boolean = false;
//Array Collection
[Bindable]
private var allMyData:ArrayCollection;
private function resultHandler(event:ResultEvent):void{
allMyData=event.result.myData.myLecture;
init();
}
//Initiation function
private function init():void
{
viewport = new Viewport3D(pv3dCanvas.width, pv3dCanvas.height,
false, true);
pv3dCanvas.rawChildren.addChild(viewport);
viewport.buttonMode=true;
renderer = new BasicRenderEngine();
scene = new Scene3D();
camera = new FreeCamera3D();
camera.zoom = 5;
camera.z = 0;
createObjects();
addEventListeners();
//dropShadowFilter = new DropShadowFilter(distance, angle, color,
alpha, x blur, y blur, strength, quality, inner shadow boolean, knockout
boolean, hide object boolean);
dropShadowFilter = new DropShadowFilter(10, 45, 0x000000, .5, 5, 5,
1, 1);
//viewport.filters = [filter1 to apply, filter2 to apply];
pv3dCanvas.filters = [dropShadowFilter];
}
//Create Objects function
private function createObjects():void{
for(var i:uint=0; i<allMyData.length; i++)
{
/* var shadow:DropShadowFilter = new DropShadowFilter();
shadow.distance = 10;
shadow.angle = 25; */
var bam1:BitmapFileMaterial = new
BitmapFileMaterial("images/"+allMyData[14-i].myLinks);
bam1.oneSide = false;
bam1.smooth = true;
bam1.interactive = true;
var bam2:BitmapFileMaterial = new
BitmapFileMaterial("images/"+allMyData[14-i].myVideo);
bam2.oneSide = false;
bam2.smooth = true;
bam2.interactive = true;
var bam3:BitmapFileMaterial = new
BitmapFileMaterial("images/"+allMyData[14-i].myLec);
bam3.oneSide = false;
bam3.smooth = true;
bam3.interactive = true;
p1 = new Plane(bam1, 120, 90, 1, 1);
p1.x = Math.cos(i*anglePer) * radius;
p1.z = Math.sin(i*anglePer) * radius;
p1.y = -100;
p1.rotationY = (-i*anglePer) * (180/Math.PI) + 90;
p2 = new Plane(bam2, 120, 90, 1, 1);
p2.x = Math.cos(i*anglePer) * radius;
p2.z = Math.sin(i*anglePer) * radius;
p2.y = 0;
p2.rotationY = (-i*anglePer) * (180/Math.PI) + 90;
p3 = new Plane(bam3, 120, 90, 1, 1);
p3.x = Math.cos(i*anglePer) * radius;
p3.z = Math.sin(i*anglePer) * radius;
p3.y = 100;
p3.rotationY = (-i*anglePer) * (180/Math.PI) + 90;
scene.addChild(p1);
scene.addChild(p2);
scene.addChild(p3);
//scene.addChild(p4);
p1.extra={pIdent:"in"};
p1.extra2={myIdent:3*(allMyData.length-i)-1};
p1.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS,
toggler);
p2.extra={pIdent:"in"};
p2.extra2={myIdent:3*(allMyData.length-i)-2};
p2.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS,
toggler);
p3.extra={pIdent:"in"};
p3.extra2={myIdent:3*(allMyData.length-i)-3};
p3.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS,
toggler);
}
}
private function toggler(event:InteractiveScene3DEvent):void
{
// if the cube's position is "in", move it out else
move it back
if (event.target.extra.pIdent == "in")
{
if(firstClick==true){
moveBack(youClickedMe);
}
trace(event.target.extra2.myIdent);
moveOut(event.target);
}
else
{
moveBack(event.target);
}
firstClick=true;
}
private function moveOut(object:Object):void
{
youClickedMe = object;
trace(object +" my object");
var str:String = object.valueOf();
var re:RegExp = /:/;
var results:Array = str.split(re);
trace (results[0]+" myNumber");
// for each cube that was not selected, remove the
click event listener
for each (var arrayPlane:Object in planeArray)
{
if (arrayPlane != object)
{
arrayPlane.removeEventListener(InteractiveScene3DEvent.OBJECT_PRESS,
toggler);
}
}
//right.enabled=false;
//left.enabled=false;
// move the selected cube out 1000 and rotate 90
degrees once it has finished moving out
Tweener.addTween(object, {scaleX:1.2, time:0.5,
transition:"easeInOutSine", onComplete:rotateCube,
onCompleteParams:[object]});
Tweener.addTween(object, {scaleY:1.2, time:0.5,
transition:"easeInOutSine", onComplete:rotateCube,
onCompleteParams:[object]});
// set the cube's position to "out"
object.extra = {pIdent:"out"};
// move the camera out 1000 and move it the to same
y coordinate as the selected cube
//Tweener.addTween(camera, {x:1000, y:object.y,
rotationX:0, time:0.5, transition:"easeInOutSine"});
}
private function moveBack(object:Object):void
{
// for each cube that was not selected, add the
click event listener back
for each (var arrayPlane:Object in planeArray)
{
if (arrayPlane != object)
{
arrayPlane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, toggler);
}
}
// move the selected cube back to 0 and rotate 90
degrees once it has finished moving back
Tweener.addTween(object, {scaleX:1, time:0.5,
transition:"easeInOutSine", onComplete:rotateCube,
onCompleteParams:[object]});
Tweener.addTween(object, {scaleY:1, time:0.5,
transition:"easeInOutSine", onComplete:rotateCube,
onCompleteParams:[object]});
// set the cube's position to "in"
object.extra = {pIdent:"in"};
// move the camera back to its original position
//Tweener.addTween(camera, {x:0, y:1000,
rotationX:-30, time:0.5, transition:"easeInOutSine"});
//right.enabled=true;
//left.enabled=true;
}
private function goBack():void
{
// for each cube that was not selected, add the
click event listener back
for each (var arrayPlane:Object in planeArray)
{
if (arrayPlane != object)
{
arrayPlane.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, toggler);
}
}
}
private function rotateCube(object:Object):void
{
//object.rotationX = 0;
//Tweener.addTween(object, {rotationZ:0, time:0.5,
transition:"easeOutSine"});
}
private function addEventListeners():void{
this.addEventListener(Event.ENTER_FRAME, render);
}
//Enter Frame Listener function
private function render(e:Event):void{
renderer.renderScene(scene, camera, viewport);
camera.rotationY =myHSlider.value+114;
if(upArrow){
camera.z += speed*Math.cos(camera.rotationY*Math.PI/180);
camera.x += speed*Math.sin(camera.rotationY*Math.PI/180);
}
if(downArrow){
camera.z -= speed*Math.cos(camera.rotationY*Math.PI/180);
camera.x -= speed*Math.sin(camera.rotationY*Math.PI/180);
}
//Move Camera Up and Down
if(pageUp){
camera.x += highspeed;
}
if(pageDown){
camera.x -= highspeed;
}
}
private function moveRight():void
{
dest++;
Tweener.addTween(this, {angleX:dest*anglePer, time:0.5});
//goBack();
}
private function moveLeft():void
{
dest--;
Tweener.addTween(this, {angleX:dest*anglePer, time:0.5});
//goBack();
}
]]>
</mx:Script>
<mx:Canvas width="1014" height="691">
<mx:Canvas id="pv3dCanvas" x="0" y="0" width="1004" height="621"
borderColor="#110101" backgroundColor="#000000" alpha="1.0"
backgroundAlpha="1.0" themeColor="#000000" color="#020202">
</mx:Canvas>
<mx:HSlider id="myHSlider" x="145" y="649" width="725"
tickInterval="5" snapInterval="1" minimum="0" maximum="336" value="-180"
liveDragging="true"/>
</mx:Canvas>
</mx:Application>
package com.unitzeroone.pv3d
{
import flash.events.Event;
import mx.core.MovieClipAsset;
import org.papervision3d.cameras.FreeCamera3D;
import org.papervision3d.materials.MovieMaterial;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.view.BasicView;
public class SpherePano extends BasicView
{
[Embed(source="/assets/pano.swf")]
private var panoAsset:Class;
protected var panoSphere:Sphere;
protected var sphereMat:MovieMaterial;
/**
* @Author Ralph Hauwert
*/
public function SpherePano()
{
//Setup the basic view to do autoscaling, no
interactivity, and use a free camera.
super(0, 0, true, false, FreeCamera3D.TYPE);
init();
startRendering();
}
private function init():void
{
//Set the background to black
opaqueBackground = 0;
//Create the pano material
var movieAsset:MovieClipAsset = new panoAsset();
sphereMat = new MovieMaterial(movieAsset, false);
sphereMat.opposite = true;
sphereMat.animated = true;
//Smooth is heavy, but it makes stuff look
nicer...you could make it switch dynamically.
sphereMat.smooth = true;
//Create the panosphere.
panoSphere = new Sphere(sphereMat, 25000, 30,30);
scene.addChild(panoSphere);
//position the camera in the center of the sphere,
and set it's properties for focus and zoom.
camera.x = camera.y = camera.z = 0;
camera.focus = 300;
camera.zoom = 2;
}
override protected function
onRenderTick(event:Event=null):void
{
//Rotate the camera left and right.
camera.rotationY += (mouseX-(stage.width/2))/50;
//Rotate the camera up and down
camera.rotationX -= (mouseY-(stage.height/2))/50;
//Lock the camera up down rotation so you can't do
"loopings".
if(camera.rotationX <= -90){
camera.rotationX = -90;
}else if(camera.rotationX >= 90){
camera.rotationX = 90;
}
//Render as usual
super.onRenderTick(event);
}
}
}
tom_s wrote:
>
> can anyone tell me if this site is made in papervision?
>
> http://www.aglassandahalffullproductions.com/?campaign_id=cdm01#
> http://www.aglassandahalffullproductions.com/?campaign_id=cdm01#
>
>
> am interested in learning how this site was done if anyone has any links
> they can share?
>
tom_s wrote:
>
> can anyone tell me if this site is made in papervision?
>
> http://www.aglassandahalffullproductions.com/?campaign_id=cdm01#
> http://www.aglassandahalffullproductions.com/?campaign_id=cdm01#
>
>
> am interested in learning how this site was done if anyone has any links
> they can share?
>
--
View this message in context: http://www.nabble.com/fantastic-site---was-this-made-in-papervision--tp18089167p18160861.html
Sent from the Papervision3D mailing list archive at Nabble.com.
More information about the Papervision3D
mailing list