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

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

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

Регистрация: Mar 2015
Сообщений: 64
По умолчанию рандомная активауия функции

Всем доброго времени суток. Создаю цикл день\ночь + простая разновидность погоды: ясно, пасмурно, дождь.
Перемена состояния погоды осуществляется рандомно (с помощью метода Math.random). Принцип следующий:
рандомное число от 0 до 10, если выпадает нужное число (я выбрал 9), то должна выполняться функция.
Функция не выполняется.Вот код:

Код AS3:
//день
var timer:Timer = new Timer(1000, 60);
timer.addEventListener(TimerEvent.TIMER, ftimerday);
function ftimerday (e:TimerEvent) {
	if(timer.currentCount > 59){
		timer.reset();
		timer.stop();
		timer2.start();
		weather = Math.floor(Math.random()*10);
		it_rains = Math.floor(Math.random()*10);
		trace(weather);
		trace(it_rains);
	}
}
timer.start();
 
//ночь
var timer2:Timer = new Timer(1000, 60);
timer2.addEventListener(TimerEvent.TIMER, ftimernight);
function ftimernight (e:TimerEvent) {
	if(timer2.currentCount > 59){
		timer2.stop();
		timer2.reset();
		timer.start();
	}
}
 
//пасмурный или ясный день
var weather:Number;
//идет дождь или нет
var it_rains:Number;
 
//рисуем день, ночь ,пасмурно.
stage.addEventListener(Event.ENTER_FRAME, fevent);
function fevent (e:Event) {
	if (timer.running && weather == 9){
		sky.gotoAndPlay("rain");
	}
	if (timer.running){
		sky.gotoAndPlay("day");
	}
	if (timer2.running && timer.running == false){
		sky.gotoAndPlay("night");
	}
}
 
//дождь
stage.addEventListener(Event.ENTER_FRAME, frain);
function frain (e:Event) {
	   if(sky.currentFrameLabel == "rain" && it_rains == 9){
	      rainrain.alpha = 1;
	      rainrain.x -= 1.4;
	      rainrain.y += 1.4;
	   if (rainrain.x <= 194 && rainrain.y >= 270){
		   rainrain.x = 503;
		   rainrain.y = 24;
	   }
	}else{
		rainrain.alpha = 0;
	}
}
Кто может, помогите пожалуйста.

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,922
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Код не читал, но всё гораздо проще. Существует функция setTimeout:

Код AS3:
setTimeout(hit, int(Math.random()*101));
 
function hit():void
{
    trace("Hello, I appear randomly");
    setTimeout(hit, int(Math.random()*101));
}
__________________
There is no thing in this world that is not simple.

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

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

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


 


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


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