Доброго времени суток
Хочу написать сайт, который представляет собой куб изнутри, на гранях 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 на другом логическом диске