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

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

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

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

Добрый день!

Вопрос, мне в Nape периодически требуется удалять слушателя событий "Event.ENTER_FRAME, spaceStep", который вызывает
Код AS3:
 
		private function spaceStep(e:Event):void
		{
			space.step(1 / stage.frameRate);
		}
у меня в приложении получилась кривая архитектура, уже потратил пару дней, ради того, что хоть как-то привести в порядок, но теперь возникла необходимость отключать обработку физики при определённых событиях, что в итоге выльется, либо ещё больших костылях, либо снова переписывать основную логику, а писать придётся много + придётся переделать добрую половину классов.

так вот, можно ли сделать класс, который будет иметь лишь один экземпляр, т.е. где бы я не написал class = new Class(), я бы получал ссылку именно на один этот экземпляр. Смотрел в сторону static, но чёт я его не понял, т.к. тогда я не могу создать слушателя событий

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

Добавлено через 45 минут
ещё глюк нашёл, иногда, после удаления слушателя для space.step(1 / stage.frameRate); тело продолжает немного двигаться, еле-еле, потом останавливается

Добавлено через 48 минут
что интересно, меняется положение только по оси Y, но через trace координаты остаются неизменными


Последний раз редактировалось neonoviiwolf; 20.09.2015 в 16:29.
Старый 20.09.2015, 16:52
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 2  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Цитата:
можно ли сделать класс, который будет иметь лишь один экземпляр
Шаблон singletone

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

Регистрация: Jun 2014
Сообщений: 558
Цитата:
Сообщение от illuzor Посмотреть сообщение
Шаблон singletone
блин, сто раз натыкался, раньше не мог понять что это вообще, а щас чёт сразу въехал
теперь подмывает переписать всё архитектуру приложения, это крайне улучшит всю стройность, так как таких шаблонов мне штук 7 нужно будет, станет в разы легче разбираться в коде

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

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Сильно злоупотреблять не стоит.
А вообще, советую книгу.

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

Регистрация: Oct 2006
Сообщений: 2,283
классический синглтон:
Код AS3:
public class MySingletonClass
{
	private static var _instance:MySingletonClass = new MySingletonClass();
	function MySingletonClass() {
			if (_instance != null) throw Error("can not instanciate singleton");
	}
	public static function getInstance():MySingletonClass{
		return _instance;
	}
}
использование:
Код AS3:
var singleton:MySingletonClass=MySingletonClass.getInstance();
при попытке создать экземпляр самому через new кинет ошибку.
Хорошо подходит для разного рода менеджеров(звук,сеть etc)

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

Регистрация: Jun 2014
Сообщений: 558
Цитата:
Сообщение от undefined Посмотреть сообщение
классический синглтон:
Код AS3:
public class MySingletonClass
{
	private static var _instance:MySingletonClass = new MySingletonClass();
	function MySingletonClass() {
			if (_instance != null) throw Error("can not instanciate singleton");
	}
	public static function getInstance():MySingletonClass{
		return _instance;
	}
}
использование:
Код AS3:
var singleton:MySingletonClass=MySingletonClass.getInstance();
при попытке создать экземпляр самому через new кинет ошибку.
Хорошо подходит для разного рода менеджеров(звук,сеть etc)
спасибо!

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

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

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


 


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


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