Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [...] Трехмерный сайт (http://www.flasher.ru/forum/showthread.php?t=175715)

Sated 22.02.2012 20:49

Трехмерный сайт
 
Доброго времени суток

Хочу написать сайт, который представляет собой куб изнутри, на гранях interactive MovieMaterial, чтобы можно было более удобно с ним управляться при просмотре информации, использую Away3D 4beta, Flex SDK 4.6, FlashDevelop и компилю под Flash Player 11.1, чтобы не было ограничений по картинке 2880*2880, все пишется с использованием ActionScript3.0. Есть главный модуль main.as, основной класс SatedClass.as и его наследник Skybook.as:

Код AS3:

import away3d.cameras.Camera3D;
        import away3d.containers.Scene3D;
        import away3d.containers.View3D;
 
        import flash.display.Sprite;
        import flash.events.Event;
 
        public class SatedClass extends Sprite
        {
                protected var camera: Camera3D;
                protected var scene: Scene3D;
                protected var view: View3D;
 
                public function SatedClass()
                {
                        initEngine();
                        initListener();
                        Draw();
                }
 
                protected function initEngine(): void
                {
                        view = new View3D();
                        view.antiAlias = 4;
                        scene = view.scene;
                        camera = view.camera;                       
                        addChild(view);
                        view.x = stage.stageWidth / 2;
                        view.y = stage.stageHeight / 2;
                        view.z = 2000;
                }
 
                protected function initListener(): void
                {
                        addEventListener(Event.ENTER_FRAME, onEnterFrame);
                }
 
                protected function onEnterFrame(event: Event): void
                {
                        view.render();
                }
 
                protected function Draw(): void {}
 
        }

Код AS3:

import away3d.core.base.Object3D;
        import away3d.primitives.Skybox;
        import away3d.cameras.Camera3D;
        import away3d.sprites.Sprite3D;
        import flash.events.*;
        import flash.display.*;
        import away3d.materials.MovieMaterial;
        import away3d.core.utils.Cast;
 
        public class Skybook extends SatedClass
        {
                [Embed(source="../1.swf", mimeType="application/octet-stream")]
                private var index1:Class;
                [Embed(source="../2.swf", mimeType="application/octet-stream")]
                private var index2:Class;
                [Embed(source="../3.swf", mimeType="application/octet-stream")]
                private var index3:Class;
                [Embed(source="../4.swf", mimeType="application/octet-stream")]
                private var index4:Class;
                [Embed(source="../5.swf", mimeType="application/octet-stream")]
                private var index5:Class;
                [Embed(source="../6.swf", mimeType="application/octet-stream")]
                private var index6:Class;
 
                protected var myskyBox: Skybox;
                protected var up, down, right, left: Boolean;
                protected var roundObject:Shape = new Shape();
 
                [SWF(width=600, height=600, backgroundColor="#000000", frameRate="90")]
 
                public function Skybook()
                {
                        super();
                }
 
                protected override function Draw(): void
                {
                        super.Draw();
                        myskyBox = new Skybox(
                                                                new MovieMaterial(new index1(),
                                                                                                  {
                                                                                                          interactive: true,
                                                                                                          smooth: false
                                                                                                  }
                                                                                                  ),
                                                                new MovieMaterial(new index2(),
                                                                                                  {
                                                                                                          interactive: true,
                                                                                                          smooth: false
                                                                                                  }
                                                                                                  ),
                                                                new MovieMaterial(new index3(),
                                                                                                  {
                                                                                                          interactive: true,
                                                                                                          smooth: false
                                                                                                  }
                                                                                                  ),
                                                                new MovieMaterial(new index4(),
                                                                                                  {
                                                                                                          interactive: true,
                                                                                                          smooth: false
                                                                                                  }
                                                                                                  ),
                                                                new MovieMaterial(new index5(),
                                                                                                  {
                                                                                                          interactive: true,
                                                                                                          smooth: false
                                                                                                  }
                                                                                                  ),
                                                                new MovieMaterial(new index6(),
                                                                                                  {
                                                                                                          interactive: true,
                                                                                                          smooth: false
                                                                                                  }
                                                                                                  )
                                                                );
 
                        scene.addChild(myskyBox);
                }
 
                protected override function initListener(): void
                {
                        super.initListener();
 
                        this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
                        stage.addEventListener(KeyboardEvent.KEY_DOWN,OnKeyDown);
                }
 
                protected function OnKeyDown(e: KeyboardEvent): void
                {
                        switch (e.keyCode)
                        {
                                case 38: //UP ARROW
                                        up = true;
                                        break;
                                case 40: //DOWN ARROW
                                        down = true;
                                        break;
                                case 37: //LEFT ARROW
                                        left = true;                                       
                                        break;
                                case 39: //RIGHT ARROW
                                        right = true;                                       
                                        break;
                        }
                }
 
                protected override function onEnterFrame(event: Event): void
                {
                        view.render();
 
                        if (up)
                        {
                                up = false;
 
                                scene.rotationX += 9;
                        }
 
                        if (down)
                        {
                                down = false;
 
                                scene.rotationX -= 9;
                        }
 
                        if (left)
                        {
                                left = false;
 
                                scene.rotationY += 9;
                        }
 
                        if (right)
                        {
                                right = false;
 
                                scene.rotationY -= 9;
                        }
                }
        }

Все бы ничего, вот только все компилируется, ошибок нет никаких при компиляции, но ничего не показывается, чистый белый экран Flash Playera...не могли бы подсказать, в чем может быть проблемка?

Добавлено через 1 минуту
и еще, я думаю, что нет разницы в том, что все ли файлы классов хранятся в папке проекта или нет, у меня проект лежит в одном месте, а SatedClass.as и его наследник Skybook.as на другом логическом диске

redefy 22.02.2012 21:57

Цитата:

использую Away3D 4beta
Ага, как же... Здесь Away3D 4.0 даже близко не пахнет....

Sated 22.02.2012 22:26

Цитата:

Ага, как же... Здесь Away3D 4.0 даже близко не пахнет....
а как исправить? мануала не нашел по использованию away3d 4, пробовал для версии away3d 3.6, все равно не показывает, в самом проекте flashdevelop главным файлом является main.swf, приведенные выше файлы просто присоединены, в Flash Professional CS 5.5 просто открывал и говорил где мои файлы *.as использовать, в каком *.fla, а тут я не знаю, как их использовать, видимо мои добавленные в папку src проекта файлы SatedClass.as и его наследник Skybook.as просто не используются и не вызываются, но как исправить я тоже не знаю...


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

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