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

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

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

Регистрация: Jul 2011
Сообщений: 20
По умолчанию Таймер в моем коде не работает(старт таймера есть)

Код AS3:
package 
{
	import com.adobe.fms.events.PeerStatusEvent;
	import flash.events.*;
	import flash.ui.Keyboard;
	import flash.filters.*;
	import flash.display.*;
	import flash.geom.*;
	import flash.utils.Timer;
 
 
	public class Main extends Sprite
	{
		public var BG_clouds:clouds;
		public var BG_sun:bg_sun;
		public var BG_sky:bg_sky;
		public var BG:bg;
		public var BG_back:bg_back;
		public var BG_back2:bg_back;
		public var BG2:bg;
 
		public var player_RUNNER:player_runner;
		public var player_KNIGHT_speed:Number = 0;
		public var player_KNIGHT:player_knight;
		public var RunRunGame:P2PGame;
 
		public var player_runner_timer:Timer = new Timer(1000);
 
		public const SERVER:String = "rtmfp://p2p.rtmfp.net/";
		public const DEVKEY:String = "YOUR_CIRRUS_DEVKEY";
 
		public function Main()
		{
			addEventListener(Event.ADDED_TO_STAGE, AppInit);
		}
		public function AppInit(e:Event)
		{
			var sun_glow_color:uint = uint("0xECEE8E");
			var sun_glow:GlowFilter = new GlowFilter(sun_glow_color,1.0,20,20,1);
			var player_runner_mBlur:BlurFilter = new BlurFilter(4,0,1);
 
			BG_sky = new bg_sky();
			addChild(BG_sky);
			BG_sky.x = 275;
			BG_sky.y = 200;
 
			BG_sun = new bg_sun();
			addChild(BG_sun);
			BG_sun.x = 500;
			BG_sun.y = 50;
			BG_sun.filters = [sun_glow];
 
			BG_back = new bg_back();
			addChild(BG_back);
			BG_back.x = 0;
			BG_back.y = 275;
 
			BG_back2 = new bg_back();
			addChild(BG_back2);
			BG_back2.x = 0;
			BG_back2.y = 275;
 
			BG = new bg();
			BG.x = 8;
			BG.y = 210;
			addChild(BG);
 
			BG2 = new bg();
			addChild(BG2);
			BG2.x = 550;
			BG2.y = 210;
 
			BG_clouds = new clouds();
			addChild(BG_clouds);
			BG_clouds.scaleX = 0.8;
			BG_clouds.scaleY = 0.8;
			BG_clouds.x = 700;
			BG_clouds.y = 100;
 
			player_RUNNER = new player_runner();
			player_KNIGHT = new player_knight();
 
			addChild(player_RUNNER);
			player_RUNNER.x = 500;
			player_RUNNER.y = 355;
			player_RUNNER.scaleX = 2;
			player_RUNNER.scaleY = 2;
			player_RUNNER.filters = [sun_glow]
			;
			addChild(player_KNIGHT);
			player_KNIGHT.x = 225;
			player_KNIGHT.y = 360;
 
			setChildIndex(app_mask,numChildren-1 );
			stage.addEventListener(KeyboardEvent.KEY_DOWN, player_KNIGHT_controls);
			stage.addEventListener(KeyboardEvent.KEY_DOWN, player_RUNNER_controls);
			stage.addEventListener(Event.ENTER_FRAME, player_KNIGHT_update);
			stage.addEventListener(Event.ENTER_FRAME, bg1_move);
			stage.addEventListener(Event.ENTER_FRAME, bg2_move);
			stage.addEventListener(Event.ENTER_FRAME, bg_back_move);
			stage.addEventListener(Event.ENTER_FRAME, bg_back_move2);
			stage.addEventListener(Event.ENTER_FRAME,clouds_update);
			player_runner_timer.addEventListener(TimerEvent.TIMER_COMPLETE,pl_runner_timerCompl);
			player_runner_timer.start();
 
			trace("RunRunGame was initialized");
		}
		public function pl_runner_timerCompl(event:TimerEvent)
		{
			trace("1");
			var player_RUNNERParticle = new player_runner();
			player_RUNNERParticle.x = 500;
			player_RUNNERParticle.y = 355;
			player_RUNNERParticle.scaleX = 2;
			player_RUNNERParticle.scaleY = 2;
			addChild(player_RUNNERParticle);
			player_RUNNERParticle.x -=  2;
		}
		public function bg1_move(e:Event)
		{
			BG.x -=  10;
			if (BG2.x == 0)
			{
				BG.x = 550;
			}
		}
		public function bg2_move(e:Event)
		{
			BG2.x -=  10;
			if (BG.x == 0)
			{
				BG2.x = 550;
			}
		}
		public function clouds_update(e:Event)
		{
			BG_clouds.x -=  0.5;
			if (BG_clouds.x == -250)
			{
				removeChild(BG_clouds);
				var low:Number = 0.5;
				var high:Number = 1;
				var clouds_scale:Number = Math.floor(Math.random() * (1+high-low)) + low;
				BG_clouds = new clouds();
				addChild(BG_clouds);
				BG_clouds.x = 600;
				BG_clouds.y = Math.floor(Math.random() * 100);
				BG_clouds.scaleX = clouds_scale;
				BG_clouds.scaleY = clouds_scale;
 
			}
		}
		public function bg_back_move(e:Event)
		{
			BG_back.x -=  1;
			if (BG_back2.x == 0)
			{
				BG_back.x = 550;
			}
		}
		public function bg_back_move2(e:Event)
		{
			BG_back2.x -=  1;
			if (BG_back.x == 0)
			{
				BG_back2.x = 550;
			}
		}
		public function player_RUNNER_controls(e:KeyboardEvent)
		{
			if (e.keyCode == 37)
			{
				player_KNIGHT_speed -=  1;
			}
		}
		public function player_KNIGHT_controls(e:KeyboardEvent)
		{
			if (e.keyCode == 32)
			{
				player_KNIGHT_speed +=  1;
			}
		}
		public function player_KNIGHT_update(e:Event)
		{
			player_KNIGHT_speed -=  0;
			player_KNIGHT.x +=  player_KNIGHT_speed;
 
		}
	}
 
}
Странно, но при всей правильности кода.. Таймер отказывается трейсить и работать(ошибок не выдает ни при компиляции, ни при рантайме)... в чем причина?

Добавлено через 1 минуту
З.Ы. таймер "player_runner_timer"


Последний раз редактировалось pspmannikita; 06.09.2011 в 21:06.
Старый 06.09.2011, 21:30
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Так вы подписали таймер на его окончание (TimerEvent.TIMER_COMPLETE), а как я понял нужно на TimerEvent.TIMER.

Старый 06.09.2011, 21:37
pspmannikita вне форума Посмотреть профиль Отправить личное сообщение для pspmannikita Найти все сообщения от pspmannikita
  № 3  
Ответить с цитированием
pspmannikita

Регистрация: Jul 2011
Сообщений: 20
так мне нужно,чтобы при окончании этих миллисекунд производился трейс

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Э... ну вы попробуйте хотя бы....
Вы создали таймер с 1000мс, то есть он будет "тикать" каждую секунду. Но что бы словить этот "тик" нужно подписать таймер на соответствующее событие - TimerEvent.TIMER.
А TimerEvent.TIMER_COMPLETE - срабатывает тогда, когда ваш таймер "оттикает" нужное кол-во раз, но при создании таймера вы не указали ограничение, так что это событие не сработает никогда.

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

Регистрация: Jun 2011
Сообщений: 153
pspmannikita он и так будет при окончании, так что TimerEvent.TIMER
всё что в функции таймера выполняется в конце времени, т.е. если таймер на 5 секунд стоит то код выполнится не сразу а через 5 секунд

Старый 06.09.2011, 21:51
pspmannikita вне форума Посмотреть профиль Отправить личное сообщение для pspmannikita Найти все сообщения от pspmannikita
  № 6  
Ответить с цитированием
pspmannikita

Регистрация: Jul 2011
Сообщений: 20
неее... у меня даже просто TIMER не работает... не трейсит и все... такое чувство,что что то мешает таймеру..

Старый 06.09.2011, 22:04
2Sun вне форума Посмотреть профиль Отправить личное сообщение для 2Sun Найти все сообщения от 2Sun
  № 7  
Ответить с цитированием
2Sun
[+1 24.05.11]
[+1 09.08.11]
 
Аватар для 2Sun

Регистрация: Mar 2011
Сообщений: 101
Код AS3:
public var player_runner_timer:Timer = new Timer(1000, 0);
 
player_runner_timer.addEventListener(TimerEvent.TIMER,pl_runner_timerCompl);

Старый 06.09.2011, 22:09
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 8  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Ему мешает бесконечность.
Так трудно посмотреть, когда диспатчится TimerEvent.TIMER_COMPLETE?
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 06.09.2011, 23:46
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 9  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
pspmannikita, в другой раз будете постить простынь, не поленитесь минимизировать ее до размера, позволяющего воспроизвести поведение. Иначе сложно для восприятия.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 07.09.2011, 00:27
Newred вне форума Посмотреть профиль Отправить личное сообщение для Newred Посетить домашнюю страницу Newred Найти все сообщения от Newred
  № 10  
Ответить с цитированием
Newred
 
Аватар для Newred

Регистрация: May 2010
Адрес: Киев, Украина
Сообщений: 140
Записей в блоге: 2
Код AS3:
var timer:Timer = new Timer(1000,10); 
 
timer.addEventListener(TimerEvent.TIMER_COMPLETE,timer_comlete);// выполнится после 10 тиков 1 раз
timer.addEventListener(TimerEvent.TIMER,timer_timer); // выполнится 10 раз
timer.start();

Ваш случай
Код AS3:
var timer:Timer = new Timer(1000); 
 
timer.addEventListener(TimerEvent.TIMER_COMPLETE,timer_comlete);// не выполняется, так как таймер бесконечный
timer.addEventListener(TimerEvent.TIMER,timer_timer); // будет  выполнятся каждую секунду
timer.start();
строку из вашего кода
Код AS3:
player_runner_timer.addEventListener(TimerEvent.TIMER_COMPLETE,pl_runner_timerCompl);
замените на
Код AS3:
player_runner_timer.addEventListener(TimerEvent.TIMER, pl_runner_timerCompl);


Последний раз редактировалось Newred; 07.09.2011 в 00:30.
Создать новую тему Ответ Часовой пояс GMT +4, время: 19:49.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
AS3 , error , timer , код
Опции темы
Опции просмотра

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

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


 


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


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