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

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

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
По умолчанию Почему таймер не останавливается?

Что-то не пойму, остановить таймер мало? Нужно обязательно от слушателя отписываться?

Код AS3:
private var myTimer:Timer = new Timer(60000);
 
myTimer.start();
myTimer.addEventListener(TimerEvent.TIMER, myStatus);
 
public function myStatus(value:String):void {	
	myTimer.stop();
	trace ('Я таймер')//Продолжаем трейсить каждую минуту не смотря на stop
		}

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

Регистрация: Aug 2010
Сообщений: 86
Интересно.. А если поменять местами строки:
myTimer.addEventListener(TimerEvent.TIMER, myStatus);
myTimer.start();
результат не изменится?

Может тогда заточить их в тело конструктора класса?

Вообще, в идеальном мире, должно останавливаться. И точку с запятой в конце трейса добавьте


Последний раз редактировалось honest_man; 26.04.2011 в 01:17.
Старый 26.04.2011, 01:20
Astraport вне форума Посмотреть профиль Отправить личное сообщение для Astraport Найти все сообщения от Astraport
  № 3  
Ответить с цитированием
Astraport
 
Аватар для Astraport

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Цитата:
Интересно.. А если поменять местами строки:
результат не изменится?
Не изменится.
Проблему решил более сложной конструкцией с TIMER_COMPLITE, но сам по себе факт вопиющий.

Старый 26.04.2011, 01:28
andrew911 вне форума Посмотреть профиль Отправить личное сообщение для andrew911 Найти все сообщения от andrew911
  № 4  
Ответить с цитированием
andrew911

Регистрация: Mar 2007
Сообщений: 545
timer.stop() достаточно.

Код у вас странный или приведите его полностью.
Код AS3:
myTimer.start();
myTimer.addEventListener(TimerEvent.TIMER, myStatus);
где находится этот код?

У меня, кстати, отработал один раз.

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

блогер
Регистрация: Sep 2009
Сообщений: 2,463
Записей в блоге: 2
Цитата:
где находится этот код?
Ну пусть в init() который запускается при старте приложения.
В флексе, где я пишу, creationComplite = "init()"

Не могу привести весь код т. к. там 1500 строк. Естественно выдрал только нужное, но будьте уверены, что ничего не забыл.

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Где-то косяк в ваших 1500. Таймер останавливается методом stop.

Старый 26.04.2011, 01:44
andrew911 вне форума Посмотреть профиль Отправить личное сообщение для andrew911 Найти все сообщения от andrew911
  № 7  
Ответить с цитированием
andrew911

Регистрация: Mar 2007
Сообщений: 545
Цитата:
Сообщение от Astraport Посмотреть сообщение
Естественно выдрал только нужное, но будьте уверены, что ничего не забыл.
Компилировали полученный код?
Должно останавливаться.

Возможно, где-то в myStatus вы запускаете его заново.

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
У конструктора существует второй параметр, возможно, стоит им воспользоваться.
Цитата:
public function Timer(delay:Number, repeatCount:int = 0)
repeatCount:int (default = 0) — Определяет количество повторений. Если ноль, таймер повторяет действия бесконечно. Если не равно нулю, таймер запускается указанное количество раз, а затем останавливается.
Объясните, если вас не затруднит, мне вот что: почему типом параметра слушателя TimerEvent'а может быть String? Да, этот код рабочий, но как? Чего я еще не знаю о наследовании или приведении типов?
Цитата:
(TimerEvent --> Event --> Object)


Последний раз редактировалось bav; 26.04.2011 в 01:59. Причина: Орфография.
Старый 26.04.2011, 01:59
andrew911 вне форума Посмотреть профиль Отправить личное сообщение для andrew911 Найти все сообщения от andrew911
  № 9  
Ответить с цитированием
andrew911

Регистрация: Mar 2007
Сообщений: 545
Object приводится к String. К int и Boolean тоже.
Хотя меня такая запись тоже удивила.

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

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Хм, почему тогда подобный код вызывает ошибку?
Код AS3:
var sp:Sprite = new Sprite();
show(sp);
private function show(param:String):void
{
    trace(param);
}
Цитата:
Error: Implicit coercion of a value of type flash.display:Sprite to an unrelated type String.
Цитата:
Sprite --> DisplayObjectContainer --> InteractiveObject --> DisplayObject --> EventDispatcher --> Object

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

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

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


 


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


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