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

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

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

Регистрация: Dec 2010
Сообщений: 177
По умолчанию Стиль реализации статического класса

Вариант 1:

Есть статик класс:

Код AS3:
public class Profile
{
	public function Profile(){	
	}
 
	public static function setVar(name:String, value:*):void
	{
		var sharedObject:SharedObject = SharedObject.getLocal(Constant.SHARED_OBJECT_NAME);
			sharedObject.data[name] = value;
			sharedObject.flush();
	}
 
	public static function getVar(name:String):*
	{
			var sharedObject:SharedObject = SharedObject.getLocal(Constant.SHARED_OBJECT_NAME);
			return sharedObject.data[name];
	}
 
	public static function clear():void
	{
			var sharedObject:SharedObject = SharedObject.getLocal(Constant.SHARED_OBJECT_NAME);
			sharedObject.clear();
	}}

Как видно getLocal() вызывается в каждой статической функции. Что, наверное тратит лишние производительные ресурсы.

Вариант 2: можно сделать статическую переменную static var sharedObject:SharedObject;
и один раз получить куки, а далее использовать ее во всех статик функциях.

Код AS3:
public static function init(name:String, value:*):void
{
	sharedObject:SharedObject = SharedObject.getLocal(Constant.SHARED_OBJECT_NAME);
 
}
Но при этом обязательно сначала надо будет вызвать init, а только потом уже остальные функции.


Вариант 3:
при объявлении статической переменной, сразу же ее инициализировать

Код AS3:
public class Profile
{
        sharedObject:SharedObject = SharedObject.getLocal(Constant.SHARED_OBJECT_NAME);
 
	public function Profile(){	
	}
        ...
}

Какой вариант правильнее всего выбрать?

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

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

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


 


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


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