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

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

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

Регистрация: Jan 2015
Сообщений: 3
Question Ошибка при создании экземпляра класса

Есть два файла. Один основной, другой класс.
Код класса:
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.*;
	import flash.utils.Timer;
	import org.osmf.events.TimeEvent;
 
	public var rlHour:Number=0; //переменная для часов
	public var rlDay:Number=1; //переменная для дней
	public var rlMonth:Number=1; //переменная для месяцев
	public var rlYear:Number=0; //переменная для лет
	public var strMonth:String=monthStrArray[rlMonth]; //переменная для названия месяцев, выводит из массива с месяцами непосредственно текущий месяц
	public var monthStrArray:Array=["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"]; //массив с месяцами
	public var mnthCountDays:Array=[31,28,31,30,31,30,31,31,30,31,30,31];
	public var thisYear:Number=2015;
	public var rlDate:String;
	public class RealTime extends Sprite
	{
 
		public var millTimer:Timer= new Timer(10000); //переменная таймера миллисекунд 
		millTimer.addEventListener(TimerEvent.TIMER, RealTime); //слушатель таймера- его определение
		millTimer.start(); //запуск таймера
 
		public function RealTime()
		{
 
		}
		public function millTimerFunc(event:TimeEvent):void { //функция обновления часов от таймера миллисекунд
			rlHour+=1;
			rlDate="Сейчас", thisYear;
			if(rlHour==24) {
				rlDay+=1;
				rlHour=0;
				millTimer.reset();
				if(rlDay==mnthCountDays[rlMonth]) {
					rlMonth+=1;
					rlDay=1;
					if(rlMonth==12) {
						rlYear+=1;
						thisYear+=1;
						rlMonth=1;
					}
				}
			}
 
		}
 
	}
}
Код основного файла:
Код AS3:
package
{
 
	import flash.display.Sprite;
	import flash.events.*;
	import flash.utils.Timer;
 
	import org.osmf.events.TimeEvent;
 
 
 
	public class RealGame extends Sprite
	{
 
		public function RealGame()
		{
			var datDate= new RealTime;
			trace(datDate.thisYear);
 
		}
	}
}
Пытаюсь создать экземпляр класса RealTime и потом соответственно вывести в трейс одну из его переменных. Уже при создании экземпляра над самим классом в иерархическом списке появляется значок ошибки.
Какая это именно ошибка - не уточняет, не показывает где ошибка в коде, но тем не менее при попытках отладки предупреждает о ее наличии, а при игнорировании и запуске в трейс ничего не выводится.
Стоит Flash Builder 4.6
Наведите на путь верный, будьте любезны.
Изображения
 


Последний раз редактировалось Wolsh; 21.01.2015 в 00:53.
Старый 21.01.2015, 00:39
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
louizrazer, изображения надо прикреплять к сообщению, а не заливать на файлопомойки. Расширенный режим > Управление вложениями.
Для оформления своего кода надо использовать теги [as3][/as3]

Добавлено через 9 минут
1. У Вас код находится прямо в теле класса, что недопустимо — он должен быть размещен в теле функции.
2. У Вас по таймеру вызывается конструктор класса.

Добавлено через 18 минут
Вот эти строки
Код AS3:
		millTimer.addEventListener(TimerEvent.TIMER, RealTime); //слушатель таймера- его определение
		millTimer.start(); //запуск таймера
должны находиться в теле функции, они не могут висеть в теле класса — только объявления переменных.
Вызывать по таймеру функцию-конструктор это нонсенс. В чем логика? Кроме того, функция-обработчик события должна принимать параметром объект события — то есть в Вашем случае, конструктор должен принимать экземпляр TimerEvent как аргумент.
__________________
Reality.getBounds(this);

Старый 21.01.2015, 01:16
louizrazer вне форума Посмотреть профиль Отправить личное сообщение для louizrazer Найти все сообщения от louizrazer
  № 3  
Ответить с цитированием
louizrazer

Регистрация: Jan 2015
Сообщений: 3
Вот как сейчас выглядит код и ошибка не исчезла
Код:

Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.*;
	import flash.utils.Timer;
 
	import org.osmf.events.TimeEvent;
 
 
	public class RealTime extends Sprite
	{
		public var rlHour:Number=0; //переменная для часов
		public var rlDay:Number=1; //переменная для дней
		public var rlMonth:Number=1; //переменная для месяцев
		public var rlYear:Number=0; //переменная для лет
		public var strMonth:String=monthStrArray[rlMonth]; //переменная для названия месяцев, выводит из массива с месяцами непосредственно текущий месяц
		public var monthStrArray:Array=["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"]; //массив с месяцами
		public var mnthCountDays:Array=[31,28,31,30,31,30,31,31,30,31,30,31];
		public var thisYear:Number=2015;
		public var rlDate:String;
		public var millTimer:Timer= new Timer(10000); //переменная таймера миллисекунд
 
		public function RealTime()
		{
			millTimer.addEventListener(TimerEvent.TIMER, millTimerFunc); //слушатель таймера- его определение
			millTimer.start(); //запуск таймера
 
		}
		public function millTimerFunc(event:TimeEvent):void { //функция обновления часов от таймера миллисекунд
			rlHour+=1;
			rlDate="Сейчас", thisYear;
			if(rlHour==24) {
				rlDay+=1;
				rlHour=0;
				millTimer.reset();
				if(rlDay==mnthCountDays[rlMonth]) {
					rlMonth+=1;
					rlDay=1;
					if(rlMonth==12) {
						rlYear+=1;
						thisYear+=1;
						rlMonth=1;
					}
				}
			}
 
		}
 
	}
}
Если моя ошибка именно в построении конструкции, то почему она появляется только тогда когда я пытаюсь создать экземпляр?

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
TimeEvent != TimerEvent

Добавлено через 42 секунды
плохо
Код AS3:
public function millTimerFunc(event:TimeEvent):void
хорошо
Код AS3:
public function millTimerFunc(event:TimerEvent):void
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 21.01.2015, 04:51
louizrazer вне форума Посмотреть профиль Отправить личное сообщение для louizrazer Найти все сообщения от louizrazer
  № 5  
Ответить с цитированием
louizrazer

Регистрация: Jan 2015
Сообщений: 3
Проблема решена.
Всем спасибо.


Последний раз редактировалось louizrazer; 21.01.2015 в 06:29.
Создать новую тему Ответ Часовой пояс GMT +4, время: 15:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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