我如何从另一个类'addChild'一个DisplayObject3d? (Papervision3D的)

时间:2010-04-05 13:53:17

标签: actionscript

我在整个papervision场景中都是新手。 对于学校作业,我正在制作我自己房间的全景版 一个有6张照片的立方体。它创造了全景,效果很好。

但现在我想在其中添加可点击的对象。其中一个要求 是我的代码是OOP重点。这就是我现在正在尝试的。

目前我有两节课   - Main.as(这里我把全景立方体作为房间)   - photoWall.as(这里我想创建我的第一个可点击对象)

现在我的问题是:我想从photoWall.as添加一个可点击的对象 到我的全景房间。但他没有表现出来?我认为这与某些事情有关 场景。我在Main.as和photoWall.as中使用了一个新场景。未报告任何错误或警告

这是photoWall中的一块。如果我想添加我的对象(photoList):

    private function portret():void
{
    //defining my material for the clickable portret
    var material : BitmapFileMaterial = new BitmapFileMaterial('images/room.jpg');
    var material_list : MaterialsList = new MaterialsList( { front: material, back: material } );

    // I don't know if this is nessecary? that's my problem
    scene = new Scene3D();

    material.interactive = true;

    // make the clickable object as a cube
    var photoList : DisplayObject3D = new Cube(material_list, 1400, 1400, 1750, 1, 4, 4, 4);

    // positioning
    photoList.x = -1400;
    photoList.y = -280;
    photoList.z = 5000;

    //mouse event 
    photoList.addEventListener( InteractiveScene3DEvent.OBJECT_CLICK, onPress);

    // this is my problem! I cannot see 'photoList' within my scene!!!
    scene.addChild(photoList);

    // trace works, so the function must be loaded.
    trace('function loaded'); 
}

希望你们能在这里帮助我。真的很棒!

谢谢,

桑多尔

2 个答案:

答案 0 :(得分:0)

你必须先渲染才能完成任何事情。

丢失: viewport.startRender()

答案 1 :(得分:0)

不,我已经在另一个班级中渲染了所有内容。 我想通了,答案是:我必须让这个课成为 displayobject3d。 而已。你现在在舞台上添加的所有东西都是displayobject3d。

详情或代码..请问。

在这里查看我的小项目的结果:

http://www.sandorkerst.com/papervision/bin