闪光灯AS3中的旋转轮

时间:2014-02-11 06:53:24

标签: actionscript-3 flash spinning

我想在FLASH中创建(轮盘)旋转轮模拟。

我想得到一个数字,那个(轮盘)旋转轮将停在指示器前面。

以下是展示我想要的内容的链接。 http://zytwebdev.zoomyourtraffic.in/amol_zytwebdev/roullete/R1_wheel2.swf

section = new Array();

section[0] = "1";
section[1] = "2";
section[2] = "3";
section[3] = "4";
section[4] = "5";
section[5] = "6";
section[6] = "7";
section[7] = "8";
section[8] = "9";
section[9] = "10";
section[10]= "11";
section[11]= "12";
section[12]= "13";
section[13]= "14";
section[14]= "15";
rotate = 0;

//button press
button.onPress = function()
{
    spinWheel();
}

//create a function to speed the wheel, slow it down, stop then display result
function spinWheel()
{
    speed = 10; //the speed the wheel rotates
    count = 0;
    button.enabled = false; //while the wheel is spinning disable the button
    limit = random(40)+10; //random time for the wheel to spin before slowing down
    onEnterFrame = function()
    {
        rotate += speed;
        degrees = rotate; // DEBUG print the rotation

        //trace(degrees+" Deg");
        if (rotate>359)
        {
            rotate = rotate - 360;
        }
        //slow the wheel down
        if (count>limit)
        {
            if (speed>0)
            {
                speed -= 1.3
            } 
            else
            {
                //stop the wheel
                speed = 0;
                onEnterFrame = false;
                button.enabled = true; //enable the button

                prize = section[Math.floor(rotate/24)] ; //display the result
                printsection = Math.floor(rotate/24); // DEBUG print the section number
                trace(prize);
            }
        }
        //move wheel if speed is greater than 0
        if (speed>0){
            wheelHolder.wheel._rotation = rotate;
            count++;
        }
    }
}

以下是相同的工作代码。

任何帮助对我来说都很重要。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

我疯了这个简单的轮子4ya。 http://b3vad.persiangig.com/Drop/Untitled-1.swf

package {

import flash.display.MovieClip;
import flash.events.MouseEvent;


public class main extends MovieClip {


    public function main() {
        addEventListener(MouseEvent.CLICK,clcks);
    }

    public function clcks(e:MouseEvent):void {
        if (e.target.name == "doit") {
            var rr = Math.round(Math.random()*360);
            spn.rotation=-rr;
            spn.play();
            trace(Math.round(rr/22.5));
        }
    }
}

}

答案 1 :(得分:0)

在一系列可能性中划分360度。尽量保持圆值但不是必需的。

使用TweenLite或TweenMax进行旋转。我相信你想要的是一个片段。否则,请使用缓动设置。

当轮子停止并触发onComplete事件时,请查看数组中旋转的位置。

就像你在36个选项中划分360一样,你会在每个元素之间得到10度。所以54旋转意味着它在第5个元素(向下舍入)。 249轮换意味着第24个元素。

你刚才

Math.floor( myWheel.rotation / ( 360 / myArrayOfOptions.length ) )

获取myArrayOfOptions的索引。

你可以从那里拿走它。

干杯!