Показать сообщение отдельно
Старый 28.06.2008, 19:26
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Для этого иногда бывает нужен синглтон - т.е. объект, который можно создать только 1 раз - и его методы будут по факту работать как статические.
Код:
import mx.utils.Delegate;

class StaticTest {
	private static var __i:StaticTest;
	private function StaticTest(){}
	
	public function testFunc0():Void
	{
		trace(this+' static');
		MovieClip(this).onRelease = Delegate.create(this, __i.testFunc1);
	}
	public function testFunc1():Void
	{
		trace(this+' instance');
		MovieClip(this).onRelease = Delegate.create(this, __i.testFunc0);
	}
	public static function testStaticDelegate(mc:MovieClip):Void
	{
		mc.onRelease = Delegate.create(mc, __i.testFunc0);
	}
	public function testInstanceDelegate(mc:MovieClip):Void
	{
		mc.onRelease = Delegate.create(mc, __i.testFunc1);
	}
	public static function getInstance():StaticTest
	{
		if (!__i) __i = new StaticTest();
		return __i;
	}
}
Код:
import StaticTest;
var m:MovieClip = this.attachMovie('a','a',0);
var st:StaticTest = StaticTest.getInstance();
//StaticTest.testStaticDelegate(m);
st.testInstanceDelegate(m);
__________________
Hell is the possibility of sanity