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

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

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

Регистрация: Oct 2007
Сообщений: 24
Отправить сообщение для Artureg с помощью ICQ
По умолчанию Синглтон :) АС3 возможно?

Будет ли этот код соответсвовать аналогичному коду в Java?
т.е. будет ли создаватся только один екземпляр данного класса? Или у АС3 свои правила написания синглтона?

Код:
package kos.util{
	public class Imager{
		
		private var imager:Imager = null;
		
		
		
		private function Imager(){}
		
		static public function getInst():Imager{
			if (imager==null)
				imager = new Imager();
			return imager;
		}
	
	}
}

Старый 25.10.2007, 23:00
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Так нельзя. В флексе есть пути обхода для синглтонов.

Приватные конструкторы запрещены.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

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

Регистрация: Oct 2007
Сообщений: 24
Отправить сообщение для Artureg с помощью ICQ
А без использования флекса?
А если сделать конструктор пабликом но сознательно его не вызывать?

Старый 25.10.2007, 23:16
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 4  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Цитата:
но сознательно его не вызывать?
Так и делают. можно еще залочить конструктор.

Код:
package com.seeqpod.services
{
	public class SingletonExample
	{
		public static function get instance():SingletonExample
		{
			if(_instance == null)
			{
				locked = false;
				_instance = new SingletonExample();
				locked = true;
			}
			
			return _instance;
		}
		private static var _instance:SingletonExample = null;
		private static var locked:Boolean = true;
		
		
		public function SingletonExample()
		{
			if(SingletonExample.locked)
			{
				throw new Error('this is Signleton class, use instance property instead');
				return;
			}			
		}
	}
}
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

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

Регистрация: Oct 2007
Сообщений: 24
Отправить сообщение для Artureg с помощью ICQ
Спасибо, это лишнее. Если достаточно просто не обращатся к конструктору напрямую, это будет в самый раз.

Старый 25.10.2007, 23:28
vooparker вне форума Посмотреть профиль Отправить личное сообщение для vooparker Посетить домашнюю страницу vooparker Найти все сообщения от vooparker
  № 6  
Ответить с цитированием
vooparker
 
Аватар для vooparker

Регистрация: Apr 2006
Адрес: Kursk, Russia
Сообщений: 523
Отправить сообщение для vooparker с помощью ICQ
вот ссылки в тему:
http://yarovoy.com/2007/10/24/single...ctionscript_3/
http://yarovoy.com/2007/10/20/single...tatic_members/
__________________
Челябинские флешеры настолько суровы, что пишут код во Flash IDE

Старый 25.10.2007, 23:38
Artureg вне форума Посмотреть профиль Отправить личное сообщение для Artureg Найти все сообщения от Artureg
  № 7  
Ответить с цитированием
Artureg
 
Аватар для Artureg

Регистрация: Oct 2007
Сообщений: 24
Отправить сообщение для Artureg с помощью ICQ
Спасибо

Старый 26.10.2007, 01:08
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 8  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
с локом странный пример
зачем лок, если можно проверяеть есть ли экземпляр?

Кстати генерация ошибки не всегда нужна.
Например SharedObject не генерит ошибки, хотя синглтон
Код:
package {

	public class SingletonExample {

		private static const _instances:Dictionary = new Dictionary();

		public static function getInstance(param:Object):SingletonExample {
			var instance:SingletonExample = _instances[param];
			if (!instance) {
				_instances[param] = instance = new SingletonExample();
				instance.init(param);
			}
			return instance;
		}

		public function SingletonExample() {
			super();
		}

		private function init(param:Object):void {
			// инициализация
		}

	}
}
UPD: очипятался


Последний раз редактировалось BlooDHounD; 26.10.2007 в 11:24.
Старый 26.10.2007, 01:44
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 9  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Цитата:
Например SharedObject не генерит ошибки, хотя синглтон
SharedObject это не Singleton это Multiton.

Пример с локом легко трансформируется в Multiton.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 26.10.2007, 02:46
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 10  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
извините не знал один фиг лок лишний.

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

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

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


 


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


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