我在我的项目中有几个类不是显示对象,但他们需要知道我的项目阶段(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