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: 735

// 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

Related posts about flex

Related posts about papervision3d