我在我的項目中有幾個類不是顯示對象,但他們需要知道我的項目階段(stage.stageWidth,stage.stageHeight)。獲取舞臺尺寸而不使用Singleton?
是否有一種簡單的方法將這些信息傳遞給我的類而不使用使用Singleton或將這些項作爲參數傳遞給構造函數?
我在我的項目中有幾個類不是顯示對象,但他們需要知道我的項目階段(stage.stageWidth,stage.stageHeight)。獲取舞臺尺寸而不使用Singleton?
是否有一種簡單的方法將這些信息傳遞給我的類而不使用使用Singleton或將這些項作爲參數傳遞給構造函數?
如果沒有對所顯示的圖形對象的引用,沒有單例就沒有辦法做到這一點。
您可以將階段的引用存儲在類的靜態屬性中,該屬性可以從應用程序中的任何類訪問。以下是這方面的一個例子:
GlobalVars.as:
package
{
import flash.display.Stage;
public class GlobalVars
{
public static var stage:Stage;
}// end class
}// end package
Main.as:
package
{
import flash.display.Sprite;
public class Main extends Sprite
{
private var _stageAccessor:StageAccessor;
public function Main():void
{
init();
}// end function
public function init():void
{
GlobalVars.stage = stage;
_stageAccessor = new StageAccessor();
_stageAccessor.traceStageWidth(); // output:
_stageAccessor.traceStageHeight(); // output:
}// end function
}// end class
}// end package
StageAccessor.as:
package
{
import flash.display.Stage;
public class StageAccessor
{
public function StageAccessor():void {};
public function traceStageWidth():void
{
trace(GlobalVars.stage.stageWidth);
}// end function
public function traceStageHeight():void
{
trace(GlobalVars.stage.stageHeight);
}// end function
}// end class
}// end package
其實你可以全球化這麼你的答案並不完全正確。 – Taurayi 2011-02-18 18:16:14