Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Возможности static функций. Вызов внешней функции. (http://www.flasher.ru/forum/showthread.php?t=175730)

MikroAcse 22.02.2012 23:50

Возможности static функций. Вызов внешней функции.
 
Из статика нельзя обратится к this, а также выполнять внешние функции.
Или может я делаю что-то неправильно?
Код AS3:

public static function hideThis(){
this.hide()
}
public function hide(){
trace('ok. hided')
}

Выдает ошибку, что не существует this и hide().

in4core 22.02.2012 23:59

this ссылка на инстанс. в статике инстанса нет - это как бы вам сказать внешняя база ни к чему не привязана

expl 23.02.2012 00:09

hideThis() принадлежит классу
hide() принадлежит объекту. Объектов может быть сколько угодно. Откуда hideThis узнает какой объект Вы имели в виду (его может даже ещё никто не создавал)?

nOobCrafter 23.02.2012 01:29

Код AS3:

private static var _instance:SomeClass;
 
public static function hideThis(){
SomeClass._instance && SomeClass._instance.hide();
}
 
public  function SomeClass(){
    SomeClass._instance = this;
}
 
public function hide(){
trace('ok. hided')
}

но учтите что метод вызовется только в последнего созданного класса, рекомендую почитать про сингтон.

MikroAcse 23.02.2012 01:41

nOobCrafter, спасибо.

in4core 23.02.2012 02:04

Цитата:

nOobCrafter, спасибо.
Чур меня )

TanaTiX 23.02.2012 02:21

Цитата:

Чур меня )
А в соседней теме такие же костыли лепишь...

in4core 23.02.2012 02:57

Цитата:

А в соседней теме такие же костыли лепишь...
Даже не близко. там все как раз стандартно, правда описал коряво вот так и кажется

Wolsh 23.02.2012 11:34

Я думаю, просто надо было спросить автора, что собственно он хотел сделать статическим методом hideThis.
Как бы метод hide для экземпляра есть, явно статический не для того чтоб его продублировать? Или все же..?
Может это такая попытка вызывать hide у экземпляров, не имея на них ссылки?))) Типа класс то импортнул и он всегда доступен)))

Silicium 23.02.2012 14:25

Код:

hide у экземпляров, не имея на них ссылки?
Прям колдовство))


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

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