0
我學習過「當心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 2012-08-17 00:36:08