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

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

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

Регистрация: May 2009
Адрес: Kiev
Сообщений: 66
Question Как правильно прописать random'ный переход на кадр

Здравствуйте. В as2 я писала
Код AS1/AS2:
gotoAndStop('l'+random(10));
, где l1, l2 - это были метки кадров, куда нужно было попасть произвольным образом.
Как правильно написать это в as3, пожалуйста, подскажите?

Старый 20.10.2013, 16:51
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 2  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Код AS3:
Math.floor(Math.random()*10)+1
даст числа в интервале 1..10
__________________
return this...

Старый 20.10.2013, 16:57
Графиня вне форума Посмотреть профиль Отправить личное сообщение для Графиня Найти все сообщения от Графиня
  № 3  
Ответить с цитированием
Графиня

Регистрация: May 2009
Адрес: Kiev
Сообщений: 66
А как сделать чтобы именно попадал на те кадры, которые отмечены метками l1, l2, l3?
Или хотя бы в диапазоне только с 12 по 48 кадры?

Старый 20.10.2013, 17:07
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 4  
Ответить с цитированием
Akopalipsis
Banned

Регистрация: Mar 2013
Сообщений: 1,864
Код AS3:
var array:Array = [l1, l2, l3];
var length:int = array.length;
var randomFrame:int = Math.round(Math.random() * length);
И потом используете - вставляете в метод, который кадры выбирает.
Код AS3:
array[randomFrame] as String;

Старый 20.10.2013, 17:14
Графиня вне форума Посмотреть профиль Отправить личное сообщение для Графиня Найти все сообщения от Графиня
  № 5  
Ответить с цитированием
Графиня

Регистрация: May 2009
Адрес: Kiev
Сообщений: 66
Цитата:
И потом используете - вставляете в метод, который кадры выбирает.
А как вставить в метод?
Если мне нужно просто чтобы с этого кадра без любых других действий был переход, как это нужно прописать?
В as2 все это одной строчкой прописывалось, а в as3 какие-то сложности на ровном месте, увы (.

Старый 20.10.2013, 17:17
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 6  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Цитата:
Сообщение от Графиня Посмотреть сообщение
А как сделать чтобы именно попадал на те кадры, которые отмечены метками l1, l2, l3?
Или хотя бы в диапазоне только с 12 по 48 кадры?
Код AS3:
var maxL:Number = 3;
var rand:Number = Math.floor(Math.random()*maxL)+1;
gotoAndStop('l'+rand);

Цитата:
Сообщение от Akopalipsis Посмотреть сообщение
Код AS3:
var array:Array = [l1, l2, l3];
var length:int = array.length;
var randomFrame:int = Math.round(Math.random() * length);
И потом используете - вставляете в метод, который кадры выбирает.
Код AS3:
array[randomFrame] as String;
Код AS3:
var array:Array = ['l1', 'l2', 'l3'];
Код AS3:
var randomFrame:int = Math.round(Math.random() * length-1);
__________________
return this...

Старый 20.10.2013, 17:19
Графиня вне форума Посмотреть профиль Отправить личное сообщение для Графиня Найти все сообщения от Графиня
  № 7  
Ответить с цитированием
Графиня

Регистрация: May 2009
Адрес: Kiev
Сообщений: 66
AlexCooper, классно, СПАСИБО!!!

Старый 20.10.2013, 17:23
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 8  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
а лучше вообще использовать floor, так как крайние границы имеет вдвое меньше вероятности генерации чем другие.
Связанно это с тем Math.round округляет до ближайшего целого числа, т.е. 0.4 округлит к 0, а 0.51 к 1, соответственно при генерации интервала 0..3
Math.round( 0 ... 0.5 ) = 0 (интервал 0.5)
Math.round( 0.51 ... 1.5 ) = 1 (интервал 1.0)
Math.round( 0.51 ... 2.5 ) = 2 (интервал 1.0)
Math.round( 2.51 ... 3.0 ) = 3 (интервал 0.5)
__________________
return this...

Старый 20.10.2013, 17:31
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 9  
Ответить с цитированием
Akopalipsis
Banned

Регистрация: Mar 2013
Сообщений: 1,864
Полезная информация, Спасибо!

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

Регистрация: Feb 2012
Сообщений: 1,540
Держите:
Код AS3:
var min:int = 12;  // минимальный кадр, 1 (единица) - первый кадр
var max:int = 48; // максимальный кадр
var frame:int = Math.random() * (max + 1 - min) + min; // получим число от min до max, x∈[min;max]
gotoAndStop("l" + frame);


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

Теги
random , Рандом
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

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


 


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


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