Flex, Papervision3d: basic scenes, cameras, planes issue
Posted
by user157880
on Stack Overflow
See other posts from Stack Overflow
or by user157880
Published on 2010-04-16T07:37:56Z
Indexed on
2010/04/16
7:43 UTC
Read the original article
Hit count: 762
// Import Papervision3D import org.papervision3d.Papervision3D; import org.papervision3d.scenes.; import org.papervision3d.cameras.; import org.papervision3d.objects.; import org.papervision3d.materials.;
public var scene:Scene3D; public var camera:Camera3D; public var target:DisplayObject3D; public var screenshotArray: Array;//array to store pictures public var radius:Number; public var image:Image;
private function initPapervision():void { target= new DisplayObject3D(); camera= new Camera3D(target); 1067: Implicit coercion of a value of type org.papervision3d.objects:DisplayObject3D to an unrelated type Number. scene= new Scene3D(thisContainer); 1137: Incorrect number of arguments. Expected no more than 0.
scene.addChild( new DisplayObject3D() , "center" );
}
public function handleCreationComplete():void {
image = new Image();
image.source = "one_t.jpg";
image.maintainAspectRatio = true;
image.scaleContent = false;
image.autoLoad = false;
image.addEventListener(Event.COMPLETE, handleImageLoad);
image.load();
initPapervision();
}
public function handleImageLoad(event:Event):void {
init3D();
// onEnterFrame
addEventListener( Event.ENTER_FRAME, loop3D );
addEventListener( MouseEvent.MOUSE_MOVE , handleMouseMove);
}
public function init3D():void {
addScreenshots(20);
}
public function handleMouseMove(event:MouseEvent):void {
camera.y = Math.max( thisContainer.mouseY*5 , -450 );
}
public function addScreenshots(planeCount:Number):void { var obj:DisplayObject3D = scene.getChildByName ("center");
screenshotArray = new Array(planeCount);
var texture:BitmapData = new BitmapData(image.content.loaderInfo.width, image.content.loaderInfo.height, false, 0);
texture.draw(image);
// Create texture with a bitmap from the library
var materialSpace :MaterialObject3D = new BitmapMaterial(texture);
materialSpace.doubleSided = true;
materialSpace.smooth = false;
radius = 500;
camera.z = radius + 50;
camera.y = 50;
for (var i:Number = 0; i < planeCount; i++ )
{
screenshotArray[i] = new Object()
<b>screenshotArray[i].plane = new Plane( materialSpace, 100, 100, 2, 2 );</b>
1180: Call to a possibly undefined method Plane.
// Position plane
var rotation:Number = (360/planeCount)* i ;
var rotationRadians:Number = (rotation-90) * (Math.PI/180);
screenshotArray[i].rotation = rotation;
screenshotArray[i].plane.z = (radius * Math.cos(rotationRadians) ) * -1;
screenshotArray[i].plane.x = radius * Math.sin(rotationRadians) * -1;
screenshotArray[i].plane.y = 100;
screenshotArray[i].plane.lookAt(obj);
// Add to scene
scene.addChild( screenshotArray[i].plane );
}
<b>scene.renderCamera(camera);</b>
<i>1061: Call to a possibly undefined method renderCamera through a reference with static type org.papervision3d.scenes:Scene3D.</i>
}
public function loop3D(event:Event):void {
var obj:DisplayObject3D = scene.getChildByName ("center");
for (var i:Number = 0; i < screenshotArray.length ; i++ )
{
var rotation:Number = screenshotArray[i].rotation;
rotation += (thisContainer.mouseX/50)/(screenshotArray.length/10);
var rotationRadians:Number = (rotation-90) * (Math.PI/180);
screenshotArray[i].rotation = rotation;
screenshotArray[i].plane.z = (radius * Math.cos(rotationRadians) ) * -1;
screenshotArray[i].plane.x = radius * Math.sin(rotationRadians) * -1;
screenshotArray[i].plane.lookAt(obj);
}
//now lets render the scene
<b>scene.renderCamera(camera);</b>
<i>1061: Call to a possibly undefined method renderCamera through a reference with static type org.papervision3d.scenes:Scene3D.</i>
}
]]>
© Stack Overflow or respective owner