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

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

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

Регистрация: Apr 2010
Сообщений: 137
По умолчанию Собственный модификатор доступа

Привет. Можно ли как-то переменным/функциям модификатор доступа указывать такой, чтобы их было видно в текущей папке, и во всех папках, которые на остальные уровни ниже.
Для чего: пишется к примеру библиотека с именем Lib, в ней есть класс LibMain.as, а в этом классе есть функция LibMain.cool(), и я хочу, чтобы эту функцию было видно из Lib/Mega/MegaClass.as, но не видно было из самого корневого as файла. Т.е. public не подходит. Namespace`ами как-то решается?

Старый 28.11.2014, 00:22
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 2  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Нет, нельзя и namespace это не то.

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Вроде как
Код AS3:
internal var ....
позволяет доступ всем кто находится в одном пакете с этим классом. Правда с подпапками не уверен.

Старый 28.11.2014, 01:18
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
protected - доступно наследникам
internal - на уровне пакета
__________________
Марк Tween

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

Регистрация: Apr 2010
Сообщений: 137
Нет, не то, про все 4 модификатора доступа знаю, прекрасно понимаю как работают, видимо просто неудачно объяснил, что хочу. Но думаю, если бы такое решение существовало бы, то кто нибудь обязательно понял бы). Видимо структура неправильная у меня, раз такое потребовалось.

Старый 28.11.2014, 02:51
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 6  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Правильная не правильная, но у меня тоже такие потребности часто бывают
и я тоже, как и Вы жалею, что интернал со вложенными каталогами не работает.

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

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

Старый 28.11.2014, 08:50
Партизан вне форума Посмотреть профиль Отправить личное сообщение для Партизан Найти все сообщения от Партизан
  № 8  
Ответить с цитированием
Партизан
 
Аватар для Партизан

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Да, вы можете использовать namespace как собственный модификатор доступа.

Код AS3:
package pack 
{
 
 
	/**
	 * ...
	 * @author Mikhail Klabukov
	 */
	public class ClassA 
	{
		private var my:Namespace=new Namespace('myNamespace');
 
		public function ClassA() 
		{
 
		}
 
		my function a():void {
			trace('with namespace');
		}
 
		public function a():void {
			trace('no namespace')
		}
 
	}
 
}
Код AS3:
package pack 
{
	/**
	 * ...
	 * @author Mikhail Klabukov
	 */
	public class ClassB 
	{
 
		public function ClassB() 
		{
			var ms:Namespace = new Namespace('myNamespace')
			var classA:ClassA = new ClassA()
			classA.ms::a()
		}
 
	}
 
}
Можно передавать namespace по ссылке, импортировать. Можно использовать конструкцию
Код AS3:
use namespace my//Ваш namespace
classA.a()
http://help.adobe.com/ru_RU/as3/lear...0204-7f9e.html

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от Партизан Посмотреть сообщение
Да, вы можете использовать namespace как собственный модификатор доступа
Спасибо за наглядный пример! Никогда не пользовался нэймспэйсами, но хоть теперь увидел как это работает.

Старый 28.11.2014, 13:34
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 10  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Цитата:
Да, вы можете использовать namespace как собственный модификатор доступа.
Но он все равно не будет соответствовать желаемому.

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

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

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


 


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


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