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

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

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

Регистрация: Jun 2014
Сообщений: 558
По умолчанию Помогите понять проблему в слушателе

Доброго!
Столкнулся со странной и новой для меня проблемой. Я пытаюсь создать слушатель в классе, а меня ругают, что я не переопределил метод, но переопределять нечего, класс наследуется от мувика, где только картинка раст и усё. Конечно можно просто назвать иначе и всё нормально, но хочу понять откуда проблема появилась, в других классах, в которых теже события, теже названия функций всё нормально и отлично работает.
Код AS3:
package ClassGame.Object.PointerAndRoundSpeed
{
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.events.MouseEvent;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	import EventClass.UserEvent;
	import Singleton.SpeedWorld.SpeedWorld.SpeedWorld;
	import Singleton.SpeedWorld.SpeedWorldSingleton;
 
	public class PointerAndRoundSpeed extends roundSpeed_mc
	{
 
		public function PointerAndRoundSpeed()
		{
			this.scaleX = 0.5;
			this.scaleY = 0.5;
			this.addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private var pointerSpeed:pointerSpeed_mc = new pointerSpeed_mc();
 
		private function init(e:Event):void
		{
			this.removeEventListener(Event.ADDED_TO_STAGE, init);
			this.addEventListener(Event.REMOVED_FROM_STAGE, removeInit);
			this.x = stage.stageWidth / 2;
			this.y = -stage.stageHeight * 0.11;
 
			if (pointerSpeed.stage == null)
			{
				pointerSpeed.scaleX = this.width / pointerSpeed.width;
				this.addChild(pointerSpeed);
			}
			pointerSpeed.rotation = Math.random() * 360;
 
			this.addEventListener(Event.ENTER_FRAME, pointUpdate);
			stage.addEventListener(UserEvent.PAUSE, pause);
			stage.addEventListener(UserEvent.PLAY, play);
		}
 
		private function play(e:UserEvent):void
		{
 
		}
 
		private function pause(e:UserEvent):void
		{
 
		}
 
		/**
		 * pointUpdate() поведение при старте
		 */
		private var stopBooleanRoundSpeed:Boolean = true;
		private var quantityRoundSpeed:int = 0;
 
		private function pointUpdate(e:Event):void
		{
			if (stopBooleanRoundSpeed)
			{
				if (this.y < stage.stageHeight / 2)
				{
					this.y += stage.stageHeight * 0.05;
					if (this.y >= stage.stageHeight / 2)
					{
						this.y = stage.stageHeight / 2;
						stopBooleanRoundSpeed = false;
					}
				}
			}
			else
			{
				if (quantityRoundSpeed <= 10)
				{
					this.y -= stage.stageHeight * 0.012;
					quantityRoundSpeed++;
				}
				else if ((quantityRoundSpeed > 10) && (quantityRoundSpeed <= 20))
				{
					this.y += stage.stageHeight * 0.012;
					quantityRoundSpeed++;
				}
				else if ((quantityRoundSpeed > 20) && (quantityRoundSpeed <= 25))
				{
					this.y -= stage.stageHeight * 0.01;
					quantityRoundSpeed++;
				}
				else if ((quantityRoundSpeed > 25) && (quantityRoundSpeed <= 30))
				{
					this.y += stage.stageHeight * 0.01;
					quantityRoundSpeed++;
				}
				else
				{
					this.removeEventListener(Event.ENTER_FRAME, pointUpdate);
					this.addEventListener(Event.ENTER_FRAME, arrowUpdate);
					stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownPointer, false, 1);
					stage.addEventListener(MouseEvent.CLICK, clickPointer, false, 1);
					stage.focus = stage;
				}
			}
		}
		/**
		 * постепенно увеличивает скорость вращения стрелки
		 */
		private var quantitySpeedPointer:Number = 3;
 
		private function arrowUpdate(e:Event):void
		{
			pointerSpeed.rotation += quantitySpeedPointer;
			if (quantitySpeedPointer < 10)
				quantitySpeedPointer += 0.2;
		}
 
		private function clickPointer(e:Event):void
		{
			stage.removeEventListener(MouseEvent.CLICK, clickPointer);
			stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownPointer);
			this.removeEventListener(Event.ENTER_FRAME, arrowUpdate);
 
			coefficientPointer();
 
			stage.dispatchEvent(new UserEvent(UserEvent.START_FLAG_2, true, false));
 
			e.stopImmediatePropagation();
			stage.addEventListener(Event.ENTER_FRAME, endRoundSpeed);
		}
 
		private function keyDownPointer(e:KeyboardEvent):void
		{
			if (e.keyCode == 32)
			{
				stage.removeEventListener(MouseEvent.CLICK, clickPointer);
				stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownPointer);
				this.removeEventListener(Event.ENTER_FRAME, arrowUpdate);
 
				coefficientPointer();
 
				stage.dispatchEvent(new UserEvent(UserEvent.START_FLAG_2, true, false));
 
				stage.addEventListener(Event.ENTER_FRAME, endRoundSpeed);
				e.stopImmediatePropagation();
			}
		}
 
		private var speedWorld:SpeedWorld;
 
		private function coefficientPointer():void
		{
			speedWorld = SpeedWorldSingleton.getSpeedWorldSingleton.getSpeedWorld;
			var coefficient:Number;
 
			if (rotation < 0)
			{
				rotation *= -1;
				if (rotation < 60)
					coefficient = 5 / 6;
				if ((rotation >= 60) || (rotation < 120))
					coefficient = 1;
				if ((rotation >= 120) || (rotation < 180))
					coefficient = 5 / 6;
			}
			else
			{
				if (rotation < 60)
					coefficient = 4 / 6;
				if ((rotation >= 60) || (rotation < 120))
					coefficient = 3 / 6;
				if ((rotation >= 120) || (rotation < 180))
					coefficient = 4 / 6;
			}
			speedWorld.setSpeedWorld = speedWorld.getMaxSpeedWorld * coefficient;
			speedWorld.setCoefficientPointer = coefficient;
		}
 
		private var timer:Timer = new Timer(700);
 
		private function endRoundSpeed(e:Event):void
		{
			stage.removeEventListener(Event.ENTER_FRAME, endRoundSpeed);
			timer.addEventListener(TimerEvent.TIMER, timerHandler);
			timer.start();
		}
 
		private function timerHandler(e:Event):void
		{
			timer.stop();
			timer.removeEventListener(TimerEvent.TIMER, timerHandler);
			this.addEventListener(Event.ENTER_FRAME, removeTimer);
		}
 
		private function removeTimer(e:Event):void
		{
			if (this.y > -stage.stageHeight * 0.2)
				this.y = this.y - 15;
			else
			{
				this.removeEventListener(Event.ENTER_FRAME, removeTimer);
				stage.dispatchEvent(new UserEvent(UserEvent.REMOVE_POINTER_AND_ROUND_SPEED, true, false));
			}
		}
 
		private function removeInit(e:Event):void
		{
			this.removeEventListener(Event.REMOVED_FROM_STAGE, removeInit);
			this.removeEventListener(Event.ENTER_FRAME, pointUpdate);
			this.removeEventListener(Event.ENTER_FRAME, arrowUpdate);
			stage.removeEventListener(MouseEvent.CLICK, clickPointer);
			stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownPointer);
			stage.removeEventListener(Event.ENTER_FRAME, endRoundSpeed);
			timer.removeEventListener(TimerEvent.TIMER, timerHandler);
			this.removeEventListener(Event.ENTER_FRAME, removeTimer);
 
			this.addEventListener(Event.ADDED_TO_STAGE, init);
 
			stopBooleanRoundSpeed = true;
			quantityRoundSpeed = 0;
			quantitySpeedPointer = 3;
			timer.stop();
		}
	}
}
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 82
Размер:	213.6 Кб
ID:	32099  

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
У суперкласса MovieClip есть метод play()

А что, название пакета Object никаких коллизий не вызывает?
Что конкретно заставляет Вас нарочно не соблюдать конвенции?
__________________
Reality.getBounds(this);

Старый 21.02.2016, 22:44
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 3  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
Цитата:
Сообщение от Wolsh Посмотреть сообщение
У суперкласса MovieClip есть метод play()

А что, название пакета Object никаких коллизий не вызывает?
Что конкретно заставляет Вас нарочно не соблюдать конвенции?
спасибо, буду знать, а про имя пакета, как-то без задней мысли дал имя, переименовал
А учитывая, что клипа как такового нет, там просто спрайт лежит, мож стоит переопределить его? Дабы везде одинаково было, не?

Добавлено через 9 минут
хм, по умолчанию мувик проигрывается, пока не вызван метод stop(), это играет роль, если я наследуюсь от мувика, хоть там и один кадр с одним спрайтом, есть необходимость останавливать мувик?

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
как-то без задней мысли дал имя
Не надо делать ничего без задней мысли)
И вообще, пиши по конвенциям. Названия пакетов никогда не пишутся с большой буквы
__________________
Ко мне можно и нужно обращаться на ты)

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

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

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


 


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


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