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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 30.09.2013, 05:32
nelco вне форума Посмотреть профиль Отправить личное сообщение для nelco Найти все сообщения от nelco
  № 1  
Ответить с цитированием
nelco
 
Аватар для nelco

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
По умолчанию книги по основам AS3. Метод NumberUtilities.random

добрый день, не могу понять преимущество метода NumberUtilities.random перед Math.random, в чём принципиальное отличие? подскажите, ведь оно есть, получается?... и ещё в книге написано, что следующий код неправильный:
Код AS3:
package { 
import flash.display.Sprite; 
import ascb.util.NumberUtilities; 
public class RandomLetter extends Sprite { 
public function RandomLetter() { 
for(var i:Number = 0; i < 10000; i++) { 
trace(getRandomLetter()); 
} 
} 
private function getRandomLetter() :String { 
if(NumberUtilities.random(0, 2) == 0) { 
 
return "A"; 
} 
else if(NumberUtilities.random(0, 2) == 1) { 
return "В"; 
} 
else if(NumberUtilities.random(0, 2) == 2) { 
return "C"; 
} 
// Ни одно из предыдущих условий может не выполниться, 
// и метод придет в эту точку без действительной строки, 
return ""; 
} 
} 
>
почему "ни одно из предыдущих условий может не выполниться"? :\



далее написано, что надо загонять значение Number.Utilities в переменную, тогда будет правильно, т.е. вот так надо:
Код AS3:
package { 
import flash.display.Sprite; 
import ascb.util.NumberUtilities; 
public class RandomLetter extends Sprite { 
public function RandomLetterO { 
for(var i:uint = 0; i < 10000; i++) { 
trace(getRandomLetter()); 
} 
} 
private function getRandoml_etter():String { 
// Перед проверкой возвращаемого из random() 
// значения присваиваем его переменной, 
var randomlntegenuint = NumberUtilities. random(0, 2); 
if(randomInteger == 0) { 
return "A"; 
} 
else if(randomInteger == 1) { 
return "B"; 
} 
else if(randomInteger == 2) { 
return "C"; 
} 
return ""; 
} 
} 
}
я не могу разобраться в чём разница, почему первый вариант может вернуть что-то, кроме 0,1,2 ?


Последний раз редактировалось nelco; 30.09.2013 в 09:49.
Старый 30.09.2013, 07:50
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
1) NumberUtilities не относится к стандартным пакетам флеша
2) что это вообще за запись?
Код AS3:
NumberUtilities. random@, 2);
Это вообще в принципе работать не будет. Судя по всему это какой-то кривой скан книги с корявым распознаванием. А должно быть как-то так:
Код AS3:
NumberUtilities. random(1, 2);
Разница вероятнее всего в том, что простой Math.random() генерирует число в промежутке между 0 и 1, а этот генерирует случайное число в промежутке между первым указанным параметром, и последним, по типу rand в php

Старый 30.09.2013, 10:13
nelco вне форума Посмотреть профиль Отправить личное сообщение для nelco Найти все сообщения от nelco
  № 3  
Ответить с цитированием
nelco
 
Аватар для nelco

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
опечатку исправил, извините... и со своим вопросом тоже разобрался - в первом случае кода, действительно, может быть так, что не будет ни одного соответствия...

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

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

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


 


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


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