1

我想在 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++;
        }
    }
}

这是相同的工作代码。

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

4

2 回答 2

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));
        }
    }
}

}
于 2014-02-12T08:55:53.680 回答
0

在一系列可能性中划分 360 度。尝试将其保持为整数,但这不是必需的。

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

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

就像如果你将 360 分为 36 个选项,你会在每个元素之间得到 10 度。所以 54 次旋转意味着它在第 5 个元素(向下舍入)。249 次旋转意味着第 24 个元素。

你只是做

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

获取 myArrayOfOptions 的索引。

你可以从那里拿走它。

干杯!

于 2014-02-11T08:10:24.967 回答