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

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

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

Регистрация: Feb 2013
Сообщений: 21
По умолчанию getTimer

Помогите пожалуйста. Пишу программку. Задумка такая: каждые 3 секунды добавляется 1 шарик, и каждые 2 секунды шарик увеличивается в размере на 1. Проблема с увеличением. Шарик каждые 2 секунды не на единицу увеличивается, getTimer вызывается слишком часто в одном тике энтерфрейфма. Как это можно исправить? Использовать нужно именно getTimer().
Код AS3:
public function Main()
		{
			balls = new Array();
			addBall();
			addEventListener(Event.ENTER_FRAME, onLoop);
		}
		private function onLoop(evt:Event):void 
		{
			if ( getTimer() - passedTime >= 3000)
			{
				addBall();
			}
 			for (var i:int = 0; i < balls.length; i++) 
			{
				if ( getTimer() - passedTime >= 2000)
				{
					balls[i].increaseBall();
				}
				balls[i].move();
			}

Старый 14.03.2013, 01:08
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 2  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Код AS3:
		public function Main()
		{
			_lastTime_addBall = getTimer();
			_lastTime_increaseBalls = getTimer();
 
			balls = new Array();
			addBall();
			addEventListener(Event.ENTER_FRAME, onLoop);
		}
 
		private var _lastTime_addBall : int;
		private var _lastTime_increaseBalls : int;
 
		private function onLoop(evt:Event):void 
		{
			var curTime:int = getTimer();
			if (curTime - _lastTime_addBall >= 3000)
			{
				_lastTime_addBall = curTime;
				addBall();
			}
 
			if (curTime - _lastTime_increaseBalls >= 3000)
			{
				_lastTime_increaseBalls = curTime;
				for (var i:int = 0; i < balls.length; i++) 
				{
					balls[i].increaseBall();
				}
			}
 
			for (i = 0; i < balls.length; i++) 
			{
				balls[i].move();
			}
		}

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

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

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


 


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


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