Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.05.2013, 13:09
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 11  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Вы получили xml с вопросами/ответами, пропарсили его и перенесли в массив, потом случайным образом перемешали массив и уже после этого выводите вопросы по-одному.
__________________
Oomph

Старый 20.05.2013, 18:18
Idon'tKnow вне форума Посмотреть профиль Отправить личное сообщение для Idon'tKnow Найти все сообщения от Idon'tKnow
  № 12  
Ответить с цитированием
Idon'tKnow

Регистрация: Apr 2013
Сообщений: 77
Цитата:
Сообщение от Idon'tKnow Посмотреть сообщение
Код AS3:
var randomIndex:int = Math.floor( Math.random() * myList.excercise.length);
Точно также добивается рандомность. Индекс вопроса = Округление по меньшему.(Колво вопросов * Рандом).

Старый 20.05.2013, 18:30
AlexTrin вне форума Посмотреть профиль Отправить личное сообщение для AlexTrin Найти все сообщения от AlexTrin
  № 13  
Ответить с цитированием
AlexTrin
[+1 05.06.13]

Регистрация: Mar 2013
Сообщений: 42
Код AS3:
question_id == Math.floor( Math.random() * LANG.excercise.length()-1)
не получается

Старый 20.05.2013, 18:42
Idon'tKnow вне форума Посмотреть профиль Отправить личное сообщение для Idon'tKnow Найти все сообщения от Idon'tKnow
  № 14  
Ответить с цитированием
Idon'tKnow

Регистрация: Apr 2013
Сообщений: 77
-1 не нужно делать. Представьте ситуацию, у Вас 3 вопроса, их индексы:
0, 1, 2. Если Рандом вернет 0,999, а количество вопросов = 3, то у Вас выйдет вот что:
Код AS3:
Math.floor(2,997 - 1);
=
Код AS3:
Math.floor(1,997);
А теперь что такое Math.floor? - Возвращает наименьшее значение числа или выражения, заданного параметром val. Наименьшее значение — это ближайшее целое число, которое не превышает или равняется заданному числу или выражению. (c адоб дат кам).

Т.е у Вас никогда последний элемент не вызовется, т.к 1, 997 округлится к 1. От 0 до 1 Вас будут выпадать 2 значения.

Старый 20.05.2013, 18:55
AlexTrin вне форума Посмотреть профиль Отправить личное сообщение для AlexTrin Найти все сообщения от AlexTrin
  № 15  
Ответить с цитированием
AlexTrin
[+1 05.06.13]

Регистрация: Mar 2013
Сообщений: 42
Работает только по порядку :
Код AS3:
if(question_id == LANG.excercise.length()) {
trace('end test');
return;
А рандомно не хочет:
Код AS3:
if(question_id == Math.floor( Math.random() * LANG.excercise.length)) {
trace('end test');
return;

Старый 20.05.2013, 18:58
Idon'tKnow вне форума Посмотреть профиль Отправить личное сообщение для Idon'tKnow Найти все сообщения от Idon'tKnow
  № 16  
Ответить с цитированием
Idon'tKnow

Регистрация: Apr 2013
Сообщений: 77
Не уверен, но вроде как что-то типа такого должно быть:

Код AS3:
if(question_id == LANG.excercise.length -1) {
trace('end test');
return Math.floor( Math.random() * LANG.excercise.length)) ;
}
А вообще, если Вы вот этот код используете.

Код AS3:
function nextAnswer(event:MouseEvent) : void {
 if(question_id == myList.excercise.length()) {
    trace('end test');
    return;
 }       
 if (answerTxt.text == myList.excercise[question_id].answer) {
    question_id++;
    questionTxt.text = myList.excercise[question_id].question;
 }
}
То вот как должно быть, вроде.

Код AS3:
function nextAnswer(event:MouseEvent) : void {
 if(question_id == myList.excercise.length -1) {
    trace('end test');
    return;
     }  
question_id = Math.floor( Math.random() * myList.excercise.length);
 if (answerTxt.text == myList.excercise[question_id].answer) {
    question_id++;
     }
    questionTxt.text = myList.excercise[question_id].question;
}

Старый 20.05.2013, 19:02
AlexTrin вне форума Посмотреть профиль Отправить личное сообщение для AlexTrin Найти все сообщения от AlexTrin
  № 17  
Ответить с цитированием
AlexTrin
[+1 05.06.13]

Регистрация: Mar 2013
Сообщений: 42
Код AS3:
if(question_id == LANG.excercise.length -1) {
trace('end test');
return Math.floor( Math.random() * LANG.excercise.length) ;
}
Таким образом почему то идет все равно по порядку.

Старый 20.05.2013, 19:08
Idon'tKnow вне форума Посмотреть профиль Отправить личное сообщение для Idon'tKnow Найти все сообщения от Idon'tKnow
  № 18  
Ответить с цитированием
Idon'tKnow

Регистрация: Apr 2013
Сообщений: 77
Цитата:
Сообщение от AlexTrin Посмотреть сообщение
Код AS3:
if(question_id == LANG.excercise.length -1) {
trace('end test');
return Math.floor( Math.random() * LANG.excercise.length) ;
}
Таким образом почему то идет все равно по порядку.
Потому что этот код выдает Рандомный вариант только для последнего вопроса.

Старый 20.05.2013, 19:13
AlexTrin вне форума Посмотреть профиль Отправить личное сообщение для AlexTrin Найти все сообщения от AlexTrin
  № 19  
Ответить с цитированием
AlexTrin
[+1 05.06.13]

Регистрация: Mar 2013
Сообщений: 42
Код AS3:
function nextAnswer(event:MouseEvent) : void {
 if(question_id == myList.excercise.length -1) {
    trace('end test');
    return;
     }  
question_id = Math.floor( Math.random() * myList.excercise.length);
 if (answerTxt.text == myList.excercise[question_id].answer) {
    question_id++;
     }
    questionTxt.text = myList.excercise[question_id].question;
}
Этот метод зацикливает тест на 1 вопросе, постоянно только первый вопрос

Старый 20.05.2013, 19:29
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 20  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Зачем такой геморой , когда array.shuffle() - примеров полно в нете, сделайте тасовку в массиве, а про xml забудьте , нечего его постоянно дергать. Один раз достаточно все записать
__________________
Марк Tween

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:33.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:33.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.