Flex, Papervision3d: basic scenes, cameras, planes issue
- by user157880
// 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>
}
]]