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

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

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

Регистрация: May 2011
Сообщений: 39
Question Остановка "таймера"

Добрый вечер.
Есть готовый проект, в котором таймер реализован за счет "часов".

Паузы через кнопку "Пауза" в проекте осуществляются через stage.frameRate = 0.
Таймер останавливается.
Но после нажатия кнопки "Продолжить" stage.frameRate изменяется на нужное кол-во кадров, а таймер перескакивает вперед, т.е. он в это время все-равно считает.
Как правильно его затормозить, чтобы пауза была паузой.

Спасибо.

Таймер описывается в source\ru\nsab\player\Clock.as
Сам интерфейс в source\ru\nsab\player\AukPlayer.as
Вложения
Тип файла: rar сс.rar (3.05 Мб, 65 просмотров)

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Таймер не зависит от frameRate, он дальше будет считать.
У любого Timer есть методы pause и stop, используйте их.
__________________
adobe AS3 manual

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

Регистрация: May 2011
Сообщений: 39
Цитата:
Сообщение от strangedk Посмотреть сообщение
У любого Timer есть методы pause и stop, используйте их.
Да, это я знаю.
Он запускается через функцию Clock, а вот остановить не получается никак. Уже много вариантов перепробовала.

Код AS3:
public function Clock() {
	_timer.addEventListener(TimerEvent.TIMER, onTimer);
	_timer.start();
	updateClock();
	}
updateClock вычисляет время, Clock запускает таймер _timer, onTimer вызывает updateClock.
Как его остановить?

Старый 12.12.2012, 08:46
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 4  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Код AS3:
package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
 
	/**
	 * @author SlavaRa
	 */
	public class Main extends Sprite {
 
		public function Main():void {
			super();
			if (super.stage) {
				this.super_addedToStageHandler();
			} else {
				super.addEventListener(Event.ADDED_TO_STAGE, this.super_addedToStageHandler);
			}
		}
 
		private var _timer : Timer;
 
		private function super_addedToStageHandler(event:Event = null):void {
			super.removeEventListener(Event.ADDED_TO_STAGE, this.super_addedToStageHandler);
 
			this._timer = new Timer(100, 0);
			this._timer.addEventListener(TimerEvent.TIMER, this.timer_timerHandler);
			this._timer.start();
			trace("timer started");
		}
 
		private function timer_timerHandler(event:TimerEvent):void {
			this._timer.removeEventListener(TimerEvent.TIMER, this.timer_timerHandler);
			this._timer.stop();
			trace("timer stopped");
		}
 
	}
 
}
пожалуйста
__________________
местонахождение

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

Регистрация: May 2011
Сообщений: 39
1 - у вас класс Main extends Sprite - у меня он другой.

2 - есть другой файл AukPlayer.as , в котором прописаны кнопки со сцены. Нужно привязать ваш timer_timerHandler к кнопке Паузы. Как это сделать в другом файле? Проблем с прописыванием в as таймера нет.

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

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
У вас в файле ExternalClipsList.as в строчках 33 и 42 плеер вроде приостанавливается, нет?

Код AS3:
(this.parent as AukPlayer).playerPause();
До таймера с таким кодом я и не знаю как достучаться, да и не особо хочется думать. Разве что синглтон прилепить
Код не похож на ваш, и явно видны наследия AS2. Извините
__________________
adobe AS3 manual

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

Регистрация: May 2011
Сообщений: 39
ExternalClipsList.as
да, там обращение к clipList, который ставит на паузу объекты сцены.
А мне нужно сам таймер доделать. Все остальное останавливается отлично по кнопкам.

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

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

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


 


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


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