Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.08.2010, 12:32
formid вне форума Посмотреть профиль Отправить личное сообщение для formid Найти все сообщения от formid
  № 1  
Ответить с цитированием
formid

Регистрация: Feb 2007
Сообщений: 30
Сразу к делу

Пример: http://malesya.ru/google/
Исходник в FlashDevelop: http://www.malesya.ru/google/Away3dGoogle.rar
Исходник Flash CS4 :http://www.malesya.ru/google/flashaway3d.rar
Код:
Код AS3:
package 
{ 
        import away3d.cameras.Camera3D; 
        import away3d.containers.ObjectContainer3D; 
        import away3d.containers.Scene3D; 
        import away3d.containers.View3D; 
        import away3d.core.light.PointLight; 
        import away3d.core.math.Number3D; 
        import away3d.materials.ColorMaterial; 
        import away3d.primitives.Cube; 
        import away3d.primitives.Plane; 
        import flash.geom.Point; 
        import flash.display.*; 
        import flash.events.Event; 
        /** 
         * ... 
         * @author Bdrs 
         */ 
        public class Main extends Sprite 
        { 
                private var view:View3D; 
                private var scene:Scene3D; 
                private var cam:Camera3D; 
                private var container:ObjectContainer3D = new ObjectContainer3D; 
                private var container2:ObjectContainer3D = new ObjectContainer3D; 
                private var plane:Plane; 
                private var spriteContainer:Sprite = new Sprite; 
                private var spriteContainer2:Sprite = new Sprite; 
                private var sprite:Sprite = new Sprite; 
                public function Main():void 
                { 
                        if (stage) init(); 
                        else addEventListener(Event.ADDED_TO_STAGE, init); 
                } 
                private function init(e:Event = null):void 
                { 
                        removeEventListener(Event.ADDED_TO_STAGE, init); 
                        stage.scaleMode = StageScaleMode.NO_SCALE; 
                        stage.align = StageAlign.TOP_LEFT; 
                        ////////////////////// Flash constructor 
                        sprite.graphics.beginFill(0xFF0000, .6); 
                        sprite.graphics.drawRect( -50, -50, 100, 100); 
                        spriteContainer.x = stage.stageWidth / 2; 
                        spriteContainer.y = stage.stageHeight / 2; 
                        spriteContainer2.z = 1000; 
                        addChild(spriteContainer) 
                        spriteContainer.addChild(spriteContainer2); 
                        spriteContainer2.addChild(sprite); 
                        /////////////////////   AWAY 3D Constructor 
                        view = new View3D; 
                        view.x=stage.stageWidth/2; 
                        view.y=stage.stageHeight/2; 
                        scene=new Scene3D; 
                        cam = new Camera3D; 
                        cam.z=-1000; 
                        cam.lookAt(new Number3D(0,0,0)); 
                        view.scene = scene; 
                        view.camera = cam; 
                        addChild(view); 
                        var mat:ColorMaterial = new ColorMaterial(0x0000FF); 
                        mat.alpha = .6; 
                        plane = new Plane; 
                        plane.material = mat; 
                        plane.rotationX = 90; 
                        container2.z = 1000; 
                        scene.addChild(container); 
                        container.addChild(container2); 
                        container2.addChild(plane); 
                        addEventListener(Event.ENTER_FRAME, onEF); 
                        stage.addEventListener(Event.RESIZE, onResize); 
                        Resize(); 
                } 
                public function onEF(e:Event):void { 
                        spriteContainer.rotationY = (mouseX / stage.stageWidth - .5) * 90; 
                        container.rotationY = (mouseX / stage.stageWidth - .5) * 90; 
                        spriteContainer.rotationX = -( mouseY/stage.stageHeight-.5) * 90; 
                        container.rotationX = -(mouseY / stage.stageHeight - .5) * 90; 
                        view.render(); 
                } 
                public function onResize(e:Event):void { 
                        Resize(); 
                } 
                private function Resize():void{ 
                        view.x=stage.stageWidth/2; 
                        view.y=stage.stageHeight/2; 
                        spriteContainer.x = stage.stageWidth / 2; 
                        spriteContainer.y = stage.stageHeight / 2; 
                        root.transform.perspectiveProjection.projectionCenter=new 
Point(stage.stageWidth / 2,stage.stageHeight / 2); 
                } 
        }
Как мне кажется проблема в разных фокусах и углах обзора. По умолчанию они такие : В флэше :
root.transform.perspectiveProjection.fieldOfView=55
root.transform.perspectiveProjection.focalLength = 768
в Away3d:
camera.fov =10;
camera focus = 100;

Вопрос конечно специфичный, я уже четвертый день над ним залипаю, но вдруг кто сталкивался.

Ответьте мне что-ли кто-нибудь. Любую глупую идею, а я ее проверю)


Последний раз редактировалось udaaff; 23.08.2010 в 18:10.
Создать новую тему Ответ Часовой пояс GMT +4, время: 17:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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