Затык в следующем - при нажатии на кнопку start запускается function updateNumber().
updateNumber() - должна переопределять значение литерала объектов
param1.stopImageNumber,
param2.stopImageNumber,
param3.stopImageNumber
Однако переопределения не происходит.
Подозреваю, что новые значения остаются в локальной области видимости.
Как переопределить значения литерала объектов
CODE (javascript):
скопировать код в буфер обмена
скопировать код в буфер обмена
- $(function(){
- // функция генерации случайного значения
- function randomInteger(min, max) {
- var rand = min - 0.5 + Math.random() * (max - min + 1);
- rand = Math.round(rand);
- return rand;
- }
- // задаём интервал для генерации случайного значения
- var numMin = 0;
- var numMax = 5;
- var win = true // переключатель возможности выигрыша
- var a;
- // функция генерации нового случайного значения stopImageNumber
- function updateNumber(){
- if(win){// совпадения допускаются
- param1.stopImageNumber = randomInteger(numMin, numMax);
- param2.stopImageNumber = randomInteger(numMin, numMax);
- param3.stopImageNumber = randomInteger(numMin, numMax);
- }
- else{// совпадения НЕ допускаются
- param1.stopImageNumber = randomInteger(numMin, numMax);
- param2.stopImageNumber = randomInteger(numMin, numMax);
- param3.stopImageNumber = randomInteger(numMin, numMax);
- // в случае совпадения
- if(param2.stopImageNumber == param1.stopImageNumber &&
- param2.stopImageNumber == param3.stopImageNumber){
- param2.stopImageNumber = param1.stopImageNumber + 1;
- param3.stopImageNumber = param1.stopImageNumber - 1;
- }
- }
- }
- // задаём параметры 1-го слота
- var param1 = {
- speed : 5,
- duration : 1,
- stopImageNumber : a,
- startCallback : function() {
- $('.start').attr('disabled', 'true');
- $('.stop').removeAttr('disabled');
- },
- slowDownCallback : function() {
- $('.stop').attr('disabled', 'true');
- },
- stopCallback : function($stopElm) {
- $('.start').removeAttr('disabled');
- $('.stop').attr('disabled', 'true');
- }
- }
- // задаём параметры 2-го слота
- var param2 = {
- speed : 10,
- duration : 2,
- stopImageNumber : a
- }
- // задаём параметры 3-го слота
- var param3 = {
- speed : 8,
- duration : 2,
- stopImageNumber : a
- }
- // применяем метод roulette() к слотам
- var rouletter1 = $('div.roulette-1');
- rouletter1.roulette(param1);
- var rouletter2 = $('div.roulette-2');
- rouletter2.roulette(param2);
- var rouletter3 = $('div.roulette-3');
- rouletter3.roulette(param3);
- // обработчики кнопок
- $('.stop').click(function(){
- rouletter1.roulette('stop');
- rouletter2.roulette('stop');
- rouletter3.roulette('stop');
- });
- $('.stop').attr('disabled', 'true');
- $('.start').click(function(){
- rouletter1.roulette('start');
- rouletter2.roulette('start');
- rouletter3.roulette('start');
- updateNumber(); // запуск апдейта
- });
- });