2014-02-11 4 views
1

Я хочу создать (рулетку) моделирование вращающихся колес в FLASH.Вращающееся колесо во вспышке AS3

Я хочу получить номер, в котором вращающееся колесо (рулетка) остановится перед индикатором.

Вот ссылка, которая демонстрирует, что я хочу на самом деле. 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++; 
     } 
    } 
} 

И вот работает код же.

Любая помощь будет важна для меня. Спасибо заранее.

+0

Доля фрагмент кода, а не только выход. – loxxy

+0

вы можете использовать Math.random, чтобы получить номер, на котором он должен стоять, и установить вращение перед тем, как начать вращаться. Остальное легко. анимация цикла, которая останавливается там, где она была запущена. –

ответ

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

} 
0

Разделить 360 градусов в множестве возможностей. Постарайтесь сохранить округлую ценность, но это не является обязательным требованием.

Используя TweenLite или TweenMax, сделайте поворот. Я уверен, что есть фрагмент за то, что вы хотите. Оставайтесь, играйте с настройками ослабления.

Когда колесо останавливается и события onComplete активируются, см., Где в вашем массиве ваша стойка вращения.

Как если бы вы разделили 360 на 36 опций, вы получили бы 10 градусов между каждым элементом. Таким образом, поворот 54 будет означать его на 5-м элементе (округлить вниз). 249 будет означать 24-й элемент.

Вы просто делаете

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

, чтобы получить индекс myArrayOfOptions.

Вы можете взять его оттуда.

Cheers!

Смежные вопросы