Flash CS5 3D立方体中心点不';行不通

Flash CS5 3D立方体中心点不';行不通,flash,actionscript,3d,flash-cs5,cs4,Flash,Actionscript,3d,Flash Cs5,Cs4,我正在使用下面的动作脚本旋转我的立方体 我怎么会有这样的问题,它从错误的中心点旋转,即使我把它设置在中间 我知道这可以通过使用动作脚本来完成,只是想知道语法或任何简单的建议 function cubeRotate(e:Event){ mycube3d.rotationY = mycube3d.rotationY+1; mycube3d.rotationX = mycube3d.rotationX+1; } stage.addEventListener(Event.ENTER_F

我正在使用下面的动作脚本旋转我的立方体

我怎么会有这样的问题,它从错误的中心点旋转,即使我把它设置在中间

我知道这可以通过使用动作脚本来完成,只是想知道语法或任何简单的建议

function cubeRotate(e:Event){
    mycube3d.rotationY = mycube3d.rotationY+1;
    mycube3d.rotationX = mycube3d.rotationX+1;

}
stage.addEventListener(Event.ENTER_FRAME,cubeRotate);
如果您试图通过拖动白色圆圈来更改Flash IDE中的“中心点”,请尝试 将“mycube3d”(或其内容)附在另一部电影中,并将其移动到所需的中心位置

因为
.rotationY
将围绕对象的零坐标旋转对象,并忽略ide的中心设置。

设置点(book,book.width/2,book.height/2);
setRegPoint(book, book.width / 2, book.height / 2);

function setRegPoint(obj:DisplayObjectContainer, newX:Number, NewY:Number):void {

    var bounds:Rectangle = obj.getBounds(obj.parent);
    var currentRegZ:Number = obj.z - bounds.top;

    var zOffset:Number = -50 - currentRegZ;

    obj.z += zOffset;

    for(var i:int = 0; i < obj.numChildren; i++) {
        obj.getChildAt(i).z -= zOffset;
    }
}

function cubeRotate(e:Event){    
  book.rotationY = book.rotationY+1    
  book.rotationX = book.rotationX+1    
}

stage.addEventListener(Event.ENTER_FRAME,cubeRotate)
函数设置点(obj:DisplayObjectContainer,newX:Number,NewY:Number):void{ 变量边界:矩形=obj.getBounds(obj.parent); var currentRegZ:Number=obj.z-bounds.top; var zOffset:Number=-50-currentRegZ; 对象z+=zOffset; for(变量i:int=0;i
您使用什么API绘制立方体?(例如Flash Player 10的绘图API、第三方3D API:Away3D/PV3D等)您如何绘制立方体?您使用的是第三方3D API,立方体是基本体还是从文件加载的网格?你能提供定义/设置mycube3d的代码吗?我已经解决了这个问题,将在另一篇文章中发布完整的项目。