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

Reply via email to