0

我正在 AS3 中构建一个 3D 旋转旋转木马,基于 Keith Peter 的示例。

我已经让旋转木马旋转起来,一切都很好,到目前为止,但我无法确定如何控制它以使其旋转到特定元素。我知道这只是数学,但现在,在紧迫的期限内,我并没有摸索它。任何帮助表示赞赏。

我用下面的代码设置它——目前有 10 个元素,所以每个元素与其余元素的间距为 36 度——但最终可能会有更多或更少的元素,所以它需要使用可变数字。例如,我想说“旋转到元素 4”,它会在那里旋转。

因此,我希望根据我想要去的特定元素来设置 _container.rotationY。所以(伪代码)

function gotoElement($element:int):void {

    _container.rotationY = ?

}

我还需要弄清楚如何将 _container.rotationY 保持在 0 到 360 之间,但我想这是一个简单的模数?

非常感谢任何帮助!谢谢!

private function createCarousel():void
    {

        _container.z = 0;
        addChild(_container);

        for (var i:int = 0; i<_numberOfImages; i++) {
            var angle:Number = Math.PI * 2/_numberOfImages*i;
            var item:JukeBoxAlbum = _images[i];
            item.x = Math.cos(angle) * RADIUS;
            item.z = Math.sin(angle) * RADIUS;
            item.rotationY =  (-360/_numberOfImages)*i + 270;
            _items.push(item)
        }                    

        sortItems();
            addEventListener(Event.ENTER_FRAME,loop,false,0,true);
            stage.addEventListener(MouseEvent.CLICK,click,false,0,true);


    }
4

0 回答 0