import away3d.cameras.*;
import away3d.containers.*;
import away3d.core.utils.*;
import away3d.events.*;
import away3d.materials.*;
import away3d.primitives.*;
//loader for interactive form swf
var loader:Loader;
//engine variables
var scene:Scene3D;
var camera:Camera3D;
var view:View3D;
//signature variables
var Signature:Sprite;
//form variables
var SymbolClass:Class;
var SymbolInstance:Sprite;
//material objects
var material:MovieMaterial;
//scene objects
var plane:Plane;
//navigation variables
var rotateSpeed:Number = 1;
var moveSpeed:Number = 8;
var upFlag:Boolean = false;
var downFlag:Boolean = false;
var leftFlag:Boolean = false;
var rightFlag:Boolean = false;
stage.quality = StageQuality.HIGH;
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
init();
function init():void
{
initForm();
initEngine();
initMaterials();
initObjects();
initListeners();
}
function initForm():void
{
SymbolInstance = new formUI();
}
function initEngine():void
{
scene = new Scene3D();
//camera = new Camera3D({z:-1000});
camera = new Camera3D();
camera.z = -1000;
//view = new View3D({scene:scene, camera:camera});
view = new View3D();
view.scene = scene;
view.camera = camera;
view.addSourceURL("srcview/index.html");
addChild(view);
//add signature
Signature = Sprite(new SignatureSwf());
addChild(Signature);
}
function initMaterials():void
{
//material = new MovieMaterial(SymbolInstance, {interactive:true,
smooth:true});
material = new MovieMaterial(SymbolInstance);
material.interactive = true;
material.smooth = true;
}
function initObjects():void
{
//plane = new Plane({material:material, width:500, height:500,
segmentsW:4, segmentsH:4, yUp:false, bothsides:true});
plane = new Plane();
plane.material = material;
plane.width = 500;
plane.height = 500;
plane.segmentsW = 4;
plane.segmentsH = 4;
plane.yUp = false;
plane.bothsides = true;
plane.pitch(-20);
plane.yaw(20);
plane.roll(10);
scene.addChild(plane);
}
function initListeners():void
{
addEventListener(Event.ENTER_FRAME, onEnterFrame);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
stage.addEventListener(Event.RESIZE, onResize);
onResize();
}
function onEnterFrame(event:Event):void
{
if (Math.abs((stage.mouseY-stage.height/2)/100)>0.2) {
camera.tilt(((stage.mouseY-stage.height/2)/100));
}
if (Math.abs((stage.mouseX-stage.width/2)/100)>0.2) {
camera.pan(((stage.mouseX-stage.width/2)/100));
}
if (upFlag)
plane.pitch(rotateSpeed);
if (downFlag)
plane.pitch(-rotateSpeed);
if (leftFlag)
plane.yaw(rotateSpeed);
if (rightFlag)
plane.yaw(-rotateSpeed);
view.render();
}
function keyDownHandler(e:KeyboardEvent):void {
switch(e.keyCode)
{
case Keyboard.UP:
upFlag = true;
break;
case Keyboard.DOWN:
downFlag = true;
break;
case Keyboard.LEFT:
leftFlag = true;
break;
case Keyboard.RIGHT:
rightFlag = true;
break;
default:
}
}
function keyUpHandler(e:KeyboardEvent):void {
switch(e.keyCode)
{
case Keyboard.UP:
upFlag = false;
break;
case Keyboard.DOWN:
downFlag = false;
break;
case Keyboard.LEFT:
leftFlag = false;
break;
case Keyboard.RIGHT:
rightFlag = false;
break;
default:
}
}
function onResize(event:Event = null):void
{
view.x = stage.stageWidth / 2;
view.y = stage.stageHeight / 2;
Signature.y = stage.stageHeight - Signature.height;
}
I've added to this example only in onEnterFrame code to moze camera by
mouse.... Works perfect when changed material.interactive = false;
On 7 Paź, 01:22, Li <[email protected]> wrote:
> Could you post the swf example and a bit of code? I think that would be
> needed to help you out.
> Sounds like something to do with the way you're using your camera...