나는 "Flex 모듈에서 싱글 톤에주의하십시오" http://www.devahead.com/blog/2010/03/beware-of-singleton-in-flex-modules/ 그리고 많은 정보가 다른 내용의 다른 모듈을 알려주지 만, 제 경우에는 작동하지 않습니다! 다른 모듈이 같은 정적 객체를 사용하는 이유는 무엇입니까? 모듈 넓은 싱글 톤을 사용하려고하지만 응용 프로그램 넓은 싱글 톤처럼 작동합니다. 누군가 모듈 단독 싱글 톤을 만드는 방법을 알려줄 수 있습니까? 나는 당신의 문제는 모듈에로드 된 상황과 관련이 생각Flex에서 동일한 싱글 톤을 만드는 다른 모듈에서 다른 싱글 톤을 얻는 방법은 무엇입니까?
<s:Application>
<s:ModuleLoader id="A" creationComplete="loadAModule()"/>
<s:ModuleLoader id="B" creationComplete="loadBModule()"/>
</s:Application>
//-----------AModule
<s:Module>
var aITx:ITx=Tx.newInstant();//Tx extend ITX
tracc(aITx.instantId);
...
</s:Module>
//-----------BModule
<s:Module>
var aITx:ITx=Tx.getInstance();//Tx extend ITX
tracc(aITx.instanceID);
...
</s:Module>
//-----singleton class
public class Tx extends EventDispatcher implements ITx
{
public function Tx()
{
// Add listeners
addEventListeners();
}
private static var instance:Tx;
public static function getInstance():Tx
{
if (!instance)
{
instance = new Tx();
// Generate a random instance ID
instance._instanceID = Math.round(Math.random() * 100);
trace("create new itx id="+instance.instanceID);
}else{
trace("use old itx id="+instance.instanceID);
}
return instance;
}
protected var _instanceID: Number = NaN;
public function get instanceID(): Number
{
return _instanceID;
}
}
감사합니다. 나는 당신이 옳다고 생각합니다. 하지만 싱글 톤을 사용하고 모든 것을 다시 작성하는 것을 포기했습니다. 이제 모든 것은 괜찮습니다. – user1559053