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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.01.2014, 16:33
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 11  
Ответить с цитированием
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
Цитата:
да там делов на 20 рублей
Вы уже второй день делаете, это означает, что Ваше время 48 часов стоит 20рублей?

Старый 15.01.2014, 16:38
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 12  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
Цитата:
Сообщение от alexrunaway Посмотреть сообщение
Я просто создаю текстовое поле динамическое пишу код на кадр и ничего не происходит
Есть проблема, она не имеет решения, есть задача - она всегда имеет решение, чтобы решить проблему, нужно разбить ее на задачи.

По теме, для начала просто создайте текстовое поле, и напишите в нем хоть что нибудь, а то вы пытаетесь запустить сразу все.
я бы делал так.

1. создал текстовое поле, написал в нем текст.
2. создал таймер , запустил его , чтобы таймер посчитал до скольки-то и написал, "я досчитал".
3. Сделал, из числа 1800, допустим, строку из минут и секунд.
4. сделал чтобы эта строка записалась в текстовое поле.
5. Запустил таймер, при каждом тике таймера, из его значения генерировал строку минут и секунд, и записывал ее в текстовое поле.
6. радуемся ^^

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

Регистрация: Nov 2013
Сообщений: 19
Код AS3:
var repeat:uint = 20;
var t:Timer = new Timer(1000, repeat);
var min:uint = 30;
var sec:uint;
t.addEventListener(TimerEvent.TIMER, f)
t.start();
function f(e:TimerEvent) {
 
minutes.text = String(uint(repeat / 60));
seconds.text = String(repeat%60);
 
trace(uint(repeat / 60),repeat%60 );
repeat--
 
if(uint(repeat / 60)==0 && (repeat%60)==0){gotoAndStop(2)};
 
}
таймер застывает на 0:1 хотя должен переходить на второй кадр

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

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
у таймер есть еще событие, когда он закончит считать, тоесть когда он отсчитает 20 раз по 1000мс

Код AS3:
var repeat:uint = 20;
var t:Timer = new Timer(1000, repeat);
var min:uint = 30;
var sec:uint;
t.addEventListener(TimerEvent.TIMER, f)
t.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
t.start();
function f(e:TimerEvent) {
 
minutes.text = String(uint(repeat / 60));
seconds.text = String(repeat%60);
 
trace(uint(repeat / 60),repeat%60 );
repeat--;
}
function onTimerComplete(e:TimerEvent) {
    gotoAndStop(2);
}

Старый 15.01.2014, 19:16
alexrunaway вне форума Посмотреть профиль Отправить личное сообщение для alexrunaway Найти все сообщения от alexrunaway
  № 15  
Ответить с цитированием
alexrunaway

Регистрация: Nov 2013
Сообщений: 19
Прикладываю исходник в CS4: rghost . ru/51674219

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at timer_fla::MainTimeline/f()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()

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

Регистрация: Feb 2012
Сообщений: 1,540
В чем сложность загрузить исходник сюда, на форум?

Старый 15.01.2014, 20:28
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 17  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
вот полный код, только удалите свои текстовые поля
Код AS3:
import flash.text.TextField;
 
stop();
trace("11");
var minutes:TextField = new TextField()
minutes.x = 100;
minutes.y = 100;
addChild(minutes);
 
var seconds:TextField = new TextField()
seconds.x = 210;
seconds.y = 100;
addChild(seconds);
 
var repeat:uint = 1800;
 
var t:Timer = new Timer(1000, repeat);
	t.addEventListener(TimerEvent.TIMER, onTimer);
	t.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
	t.start();
 
 
function onTimer(e:TimerEvent) {
 
	minutes.text = String(uint(repeat / 60));
	seconds.text = String(repeat%60);
 
	repeat--;
}
function onTimerComplete(e:TimerEvent) {
 
   removeChild(minutes);
   removeChild(seconds);
}

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

Регистрация: Feb 2012
Сообщений: 1,540
Вот таймер в данном случае плохая практика.
Тут точность нужна. Всё-таки 30 минут.
Лучше записать getTimer() в начале программы и потом с ним сверяться.
А легче всего будет делать это с Date().

Старый 15.01.2014, 22:36
alexrunaway вне форума Посмотреть профиль Отправить личное сообщение для alexrunaway Найти все сообщения от alexrunaway
  № 19  
Ответить с цитированием
alexrunaway

Регистрация: Nov 2013
Сообщений: 19
Isfet спасибо огромное, а как мне теперь сделать чтобы было не 0:30 а 00:30? формат задать

Добавлено через 1 час 17 минут
MikroAcse можете набросать вариант с Date?))


Последний раз редактировалось alexrunaway; 15.01.2014 в 23:05.
Старый 16.01.2014, 06:50
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 20  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
Цитата:
Сообщение от alexrunaway Посмотреть сообщение
Isfet спасибо огромное, а как мне теперь сделать чтобы было не 0:30 а 00:30? формат задать
в 7 посте вам дали ссылку, как сделать такой формат, возмите оттуда

вот так будет больше точность,
Код AS3:
import flash.text.TextField;
import flash.utils.Timer;
import flash.utils.getTimer;
		stop();
 
		var minutes:TextField = new TextField()
			minutes.x = 100;
			minutes.y = 100;
		addChild(minutes);
 
		var seconds:TextField = new TextField()
			seconds.x = 210;
			seconds.y = 100;
		addChild(seconds);
 
 
		var firstTime:int = getTimer();
 
		addEventListener(Event.ENTER_FRAME, onEnterFrame);
 
		var currentTimeSec:uint;
 
		function onEnterFrame(e:Event) {
 
			currentTimeSec = 1800 - (getTimer() - firstTime) * 0.001;
			minutes.text = String(uint(currentTimeSec / 60));
			seconds.text = String(currentTimeSec % 60);
 
			if (currentTimeSec == 0) {
				onTimerComplete();
			}
		}
		function onTimerComplete() {
 
		   removeEventListener(Event.ENTER_FRAME, onEnterFrame);
		   removeChild(minutes);
		   removeChild(seconds);
		}
P.S.: с Date - как-то коряво получается


Последний раз редактировалось Isfet; 16.01.2014 в 07:12.
Создать новую тему Ответ Часовой пояс GMT +4, время: 02:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
timer
Опции темы
Опции просмотра

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

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


 


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


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