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

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

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

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
По умолчанию [classes] доступ к public var из static function

Интересно, а как осуществить доступ к public var из static function этого же класса.
static function вызывается из другого класса.
__________________
smival.com

Старый 02.03.2007, 09:18
Tardos Mors вне форума Посмотреть профиль Отправить личное сообщение для Tardos Mors Найти все сообщения от Tardos Mors
  № 2  
Ответить с цитированием
Tardos Mors

Регистрация: Jul 2006
Адрес: Новосибирск
Сообщений: 530
Отправить сообщение для Tardos Mors с помощью ICQ
никак, только если передать функции ссылку на экземпляр класса. Или сделать так, что функция сама найдет экземпляр своего класса (например при создании все экземпляры записывать в массив)

Старый 02.03.2007, 10:43
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А это не этот же класс. Экземпляры сами по себе, стат. свойства сами по себе.

Старый 04.03.2007, 12:15
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 4  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
попытался разобраться сам - не получилось.
предлагаю попробовать на примере:
есть класс "classes.player":

Код:
class classes.player
{	
	public function moving()
	{
		var her:MovieClip = arguments[0];
		
		her.onEnterFrame = function()
		{
			if (Key.isDown(Key.UP)) 
			{
				classes.scene.moving(); // сдесь пытаюсь вызывать метод др. класса ("classes.scene") //
			}
		}
	}
}
и класс "classes.scene":
Код:
class classes.scene
{

	public var i:Number = 0;
	
	public static function moving()
	{
		i++;
                trace(i);
	}
}
что в этом случае нужно исправить? Операции над "i" нужно выполнять только в пределах класса "classes.scene".

заранее благодарен.
__________________
smival.com

Старый 04.03.2007, 12:24
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну для начала классы должны иметь имя Player и Scene, а не player и scene.

Во-вторых, экземпляра класса scene не существует, стат. метод не имеет доступа к свойствам экземпляров классов. И вообще, зачем тут статика?
Судя по всему, нужно применять синглтон в данном случае. Т.е. экземпляр scene может быть только один и ссылка на него хранится в статическом свойстве scene. Стат. метод moving использует эту ссылку для изменения переменной в экземпляре scene.

Старый 04.03.2007, 12:28
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 6  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
по первому понятно.
второе: то есть нам нужно завести экземляр класса scene, объявить в этом классе public static var, в котором будет храниться ссылка на экземпляр, и использовать эту ссылку в public static function moving?
__________________
smival.com

Старый 04.03.2007, 12:30
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Именно.
При этом экземпляров не может быть более одного. Это и есть синглтон.

Старый 04.03.2007, 12:47
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 8  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
интересно.
немного не по теме:
вообще мне приходится сталкиваться с множеством проблем при работе с классами.

__etc, мог бы ты порекомендовать какую-нибудь литературу, желательно в электронном виде, по этой тематике?
__________________
smival.com

Старый 04.03.2007, 12:50
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Наврядли, потому как у меня подобной вообще нету
Ну Мука можно почитать (в бумажном виде)…

Старый 04.03.2007, 13:00
$mival вне форума Посмотреть профиль Отправить личное сообщение для $mival Найти все сообщения от $mival
  № 10  
Ответить с цитированием
$mival
 
Аватар для $mival

Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
тогда хотелось бы разрешить текущую проблему.
как ссылку на экземпляр класса "scene" запихать в статическое свойство "scene"? точнее откуда её вобще взять эту ссылку?

UPD: благодарю, уже разобрался.
__________________
smival.com


Последний раз редактировалось $mival; 04.03.2007 в 13:42.
Создать новую тему Ответ Часовой пояс GMT +4, время: 12:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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