Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Papervision camera.orbit ругается (http://www.flasher.ru/forum/showthread.php?t=122217)

3Desian 04.03.2009 22:51

Papervision camera.orbit ругается
 
Всем привет. Вот странный глюк. Есть такой пример

Код AS3:

package
{
    import flash.display.Sprite;
    import flash.events.Event;
 
    import org.papervision3d.cameras.Camera3D;
    import org.papervision3d.materials.ColorMaterial;
    import org.papervision3d.objects.primitives.Plane;
    import org.papervision3d.render.BasicRenderEngine;
    import org.papervision3d.scenes.Scene3D;
    import org.papervision3d.view.Viewport3D;
 
    public class ExampleCamera3D extends Sprite
    {
        private var scene    :Scene3D;
        private var camera    :Camera3D;
        private var viewport  :Viewport3D;
        private var renderer  :BasicRenderEngine;
        private var material  :ColorMaterial;
        private var material2 :ColorMaterial;
        private var object    :Plane;
        private var object2  :Plane;
        private var angle    :int;
 
        public function ExampleCamera3D()
        {
            init();
            listen();
        }
 
        private function init():void
        {
            initScene();
            initCamera();
            initViewport();
            initRenderer();
            initMaterial();
            initObject();
        }
 
        private function initScene():void
        {
            scene = new Scene3D();
        }
 
        private function initCamera():void
        {
            camera  = new Camera3D();
            camera.x = 0;
            camera.y = 0;
            camera.z = -1000;
        }
 
        private function initViewport():void
        {
            viewport                  = new Viewport3D();
            viewport.autoScaleToStage = true;
            addChild(viewport);
        }
 
        private function initRenderer():void
        {
            renderer = new BasicRenderEngine();
        }
 
        private function initMaterial():void
        {
            material            = new ColorMaterial(0x000000);
            material.doubleSided = true;
 
            material2            = new ColorMaterial(0xff0000);
            material2.doubleSided = true;
        }
 
        private function initObject():void
        {
            object  = new Plane(material);
            object.x = 0;
            object.y = 0;
            object.z = 0;
            scene.addChild(object);
 
            object2  = new Plane(material2);
            object2.x = 0;
            object2.y = 0;
            object2.z = 1000;
            scene.addChild(object2);
        }
 
        private function listen():void
        {
            addEventListener(Event.ENTER_FRAME, handleEnterFrame);
        }
 
        private function handleEnterFrame(e:Event):void
        {
            camera.orbit(90, angle++);
            renderer.renderScene(scene, camera, viewport);
        }
    }
}

НО при компеляции выдаётся ошибка
1061: Call to a possibly undefined method orbit through a reference with static type org.papervision3d.cameras:Camera3D. camera.orbit(90, angle++); Не пойму почему. На сайте с примером всё работает, а у меня нет. Почему он ругаецо на строчку camera.orbit(90, angle++);.:wacko:

А пишу : camera.hover( 0,(200-mouseX)*.01, (200-mouseY)*.01); и это работает. Тока почему же... если у меня PV3D 2?

mre 05.03.2009 12:31

Значит версия pv3d у Вас отличается от той, для которой написан пример.

3Desian 05.03.2009 15:21

У меня Public Alpha 2.0 - Great White как оказалось.
Работает только:
Код AS3:

if (MouseDOWN>=1){
camera.hover( 0,(Xmouse-mouseX)*0.005, -2);
}
stage.addEventListener(MouseEvent.MOUSE_DOWN, DownMouse);
function DownMouse(event:Event): void
        {MouseDOWN = 1;}
stage.addEventListener(MouseEvent.MOUSE_UP, UpMouse);
function UpMouse(event:Event): void
{MouseDOWN = 0;}

Но не так как мне нужно. Я бы хотел, что бы при зажатой кнопке и перемещении мыша от точи нажатия, вращалась и камера вокруг объекта ЖЁСТКО... но она как то себя ведёт не так. Плавно при нажатой мыше и если отпустить мыш, то резко тормазит, а если нажать мышь в другом месте, то вообще крутиться в другую сторону... Помогите кто может, уже мозг сломал весь.

Добавлено через 39 минут
Мне нужно, что бы камера вокруг объекта не плавно крутилась, а жёстко. Т.е. на сколько влево мышь подвинул, на столько градусов и повернулась она вокруг объекта, а camera.hover делает плавность и камера иногда летает над объектом, если резко крутануть. Я понимаю, что для этого есть вариант привягки камеры к невидимому Cube и вращать только его, но как привязать... вот вопрос. Хэлп ми, плиз... я уже огорчённый весь.

Yuorik 20.03.2009 12:43

http://ddblog.vfs.com/2008/01/27/pap...t-on-all-axis/

maxxtr 28.07.2011 12:38

Подскажите пожалуйста, что означает информация в OUTPUT при компеляции:

INFO: Papervision3D 2.0.0 (March 12th, 2009)
INFO: Viewport autoScaleToStage : Papervision has changed the Stage scale mode. // Эта строчка меня почему-то смущает, что она обозначает?

Почему-то при компеляции ошибок не возникает, но сам swf получается пустой, т.е. ничего не видно и ничего не происходит


Часовой пояс GMT +4, время: 02:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.