![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
|
Интересно, а как осуществить доступ к public var из static function этого же класса.
static function вызывается из другого класса.
__________________
smival.com |
|
|||||
|
никак, только если передать функции ссылку на экземпляр класса. Или сделать так, что функция сама найдет экземпляр своего класса (например при создании все экземпляры записывать в массив)
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А это не этот же класс. Экземпляры сами по себе, стат. свойства сами по себе.
|
|
|||||
|
Регистрация: 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") //
}
}
}
}
class classes.scene
{
public var i:Number = 0;
public static function moving()
{
i++;
trace(i);
}
}
заранее благодарен.
__________________
smival.com |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну для начала классы должны иметь имя Player и Scene, а не player и scene.
Во-вторых, экземпляра класса scene не существует, стат. метод не имеет доступа к свойствам экземпляров классов. И вообще, зачем тут статика? Судя по всему, нужно применять синглтон в данном случае. Т.е. экземпляр scene может быть только один и ссылка на него хранится в статическом свойстве scene. Стат. метод moving использует эту ссылку для изменения переменной в экземпляре scene. |
|
|||||
|
Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
|
по первому понятно.
второе: то есть нам нужно завести экземляр класса scene, объявить в этом классе public static var, в котором будет храниться ссылка на экземпляр, и использовать эту ссылку в public static function moving?
__________________
smival.com |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Именно.
При этом экземпляров не может быть более одного. Это и есть синглтон. |
|
|||||
|
Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
|
интересно.
немного не по теме: вообще мне приходится сталкиваться с множеством проблем при работе с классами. __etc, мог бы ты порекомендовать какую-нибудь литературу, желательно в электронном виде, по этой тематике?
__________________
smival.com |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Наврядли, потому как у меня подобной вообще нету
![]() Ну Мука можно почитать (в бумажном виде)… |
|
|||||
|
Регистрация: Oct 2005
Адрес: Russia, Irkutsk
Сообщений: 742
|
тогда хотелось бы разрешить текущую проблему.
как ссылку на экземпляр класса "scene" запихать в статическое свойство "scene"? точнее откуда её вобще взять эту ссылку? UPD: благодарю, уже разобрался.
__________________
smival.com Последний раз редактировалось $mival; 04.03.2007 в 13:42. |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|