Never mind my last response... Was me being dumb lol

I re-created the project as a pure AS3 Project (no mxml) and I get no errors
for type conversion and input params on new Twist(). And no error on
addModifier(twist). Then I realised I called the project Twist --- lol name
conflict. ( self slap lol ).


I will post up articles on my site over the next few days with examples of
all the AS3DMod modifiers in use.

Thanks.

Darcey



Here is full working code:

package
{
import away3d.cameras.HoverCamera3D;
import away3d.containers.Scene3D;
import away3d.containers.View3D;
import away3d.core.render.BasicRenderer;
import away3d.core.utils.Cast;
import away3d.debug.AwayStats;
import away3d.materials.BitmapMaterial;
import away3d.primitives.Plane;
import away3d.primitives.Trident;
 import com.as3dmod.ModifierStack;
import com.as3dmod.core.Vector3;
import com.as3dmod.modifiers.Bend;
import com.as3dmod.modifiers.Twist;
import com.as3dmod.plugins.away3d.LibraryAway3d;
import com.as3dmod.util.Phase;
 import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.geom.Vector3D;


[SWF(frameRate="31", backgroundColor="#FFFFFF")]
//[SWF(width="800", height="600", frameRate="31"}]
//
------------------------------------------------------------------------------------------------
public class AS3TwistTest extends Sprite
{
//
------------------------------------------------------------------------------------------------
// Embedded asssets
/*
[Embed(source='assets/front.jpg')]
private var page1aAsset:Class;
 [Embed(source='assets/back.jpg')]
private var page1bAsset:Class;
*/
//
------------------------------------------------------------------------------------------------
 //
------------------------------------------------------------------------------------------------
// Var defs
//
------------------------------------------------------------------------------------------------
private var away3DContainer:Sprite;
private var away3DStatsContainer:Sprite;
 // Var ini
private var scene:Scene3D;
private var camera:HoverCamera3D;
private var view:View3D;
private var renderer:BasicRenderer;
 private var bMove:Boolean = false;
private var lastPanAngle:Number;
private var lastTiltAngle:Number;
private var lastMouseX:Number;
private var lastMouseY:Number;
 // Primitives
private var plane:Plane;
private var nSegments:Number = 10;
 // Materials
private var bmat1:BitmapMaterial;
private var bmat2:BitmapMaterial;
 // Vars AS3DMod
private var bend:Bend;
private var twist:Twist;
private var twistPhase:Phase;
private var modStack:ModifierStack;
//
------------------------------------------------------------------------------------------------
 //
------------------------------------------------------------------------------------------------
public function AS3TwistTest()
{
// stage
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
 // Containers
away3DContainer = new Sprite();
away3DStatsContainer = new Sprite();
addChild(away3DContainer);
addChild(away3DStatsContainer);
 // Setup Away3D
camera = new HoverCamera3D();
renderer = new BasicRenderer();
 scene = new Scene3D();
view = new View3D();
view.scene = scene;
view.camera = camera;
view.renderer = renderer;
view.x = stage.stageWidth / 2;
view.y = stage.stageHeight / 2;
 // Setup away3d stats (appears to slow the cpu)
var awaystats:AwayStats = new AwayStats(view);
away3DStatsContainer.addChild(awaystats);
 var tr:Trident = new Trident(500,true);
scene.addChild(tr);
 // Setup camera
camera.minTiltAngle = -80;
camera.maxTiltAngle = 80;
camera.panAngle = 150;
camera.tiltAngle = 20;
camera.zoom = 5;
 // Add Away3D to its container UIComponent
away3DContainer.addChild(view);
 // Resize handler
this.addEventListener(Event.RESIZE,handleBrowserResize);
handleBrowserResize();
 // Enter frame handler (make things move)
stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler);
stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandler);
 // Setup materials
//bmat1 = new BitmapMaterial(  Cast.bitmap( new page1aAsset() )  );
//bmat2 = new BitmapMaterial(  Cast.bitmap( new page1bAsset() )  );
 // generate
generateScene();
}
//
------------------------------------------------------------------------------------------------
  //
------------------------------------------------------------------------------------------------
private function generateScene():void
{
//plane = new
Plane({segmentsW:10,segmentsH:10,width:800,height:800,material:new
WireframeMaterial()});
plane = new Plane();
plane.segmentsW = plane.segmentsH = nSegments;
plane.width = 800;
plane.height = 800;
plane.bothsides = true;
//plane.material = bmat1;
//plane.back = bmat2;
scene.addChild(plane);
 // AS3DMod Start
modStack = new ModifierStack(new LibraryAway3d(), plane);
 twist = new Twist(Math.PI/2);
twist.vector = new Vector3(1,0,0);
twistPhase = new Phase();
modStack.addModifier(twist);
}
//
------------------------------------------------------------------------------------------------

  //
------------------------------------------------------------------------------------------------
private function onEnterFrame(event:Event):void
{
// AS3DMod - Animate twist and apply
twistPhase.value += 0.05;
twist.angle = Math.PI / 4 * twistPhase.phasedValue;
trace("twist.angle = " + twist.angle); // Traces anglle from -0.7 to +0.7
this.modStack.apply();
  // Camera movement
if (bMove) {
camera.panAngle = 0.3 * (stage.mouseX - lastMouseX) + lastPanAngle;
camera.tiltAngle = 0.3 * (stage.mouseY - lastMouseY) + lastTiltAngle;
}
 // Hover camera
camera.hover();
 // Render
view.render();
}
//
------------------------------------------------------------------------------------------------
   //
------------------------------------------------------------------------------------------------
private function mouseDownHandler(event:MouseEvent):void
{
lastPanAngle = camera.panAngle;
lastTiltAngle = camera.tiltAngle;
lastMouseX = stage.mouseX;
lastMouseY = stage.mouseY;
bMove = true;
 stage.addEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
}
//
------------------------------------------------------------------------------------------------
//
------------------------------------------------------------------------------------------------
private function mouseUpHandler(event:MouseEvent):void
{
bMove = false;
stage.removeEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
}
//
------------------------------------------------------------------------------------------------
//
------------------------------------------------------------------------------------------------
private function onStageMouseLeave(event:Event):void
{
bMove = false;
stage.removeEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
}
//
------------------------------------------------------------------------------------------------
  //
------------------------------------------------------------------------------------------------
// Browser resize handler (simply adjust view3d center x:0 y:0 at browser
1/2 width and height to keep things in the middle
private function handleBrowserResize(e:Event=null):void
{
this.view.x = stage.stageWidth/2;
this.view.y = stage.stageHeight/2;
}
//
------------------------------------------------------------------------------------------------
   }
}

Reply via email to