2014-02-12 36 views
0

Main.as我確定設備屏幕大小。然後我採取這一信息的屏幕類,像這樣:爲我的遊戲屏幕設置全局變量

new Screen(_width, _height); 

現在我想通過_width,_height到菜單遊戲,班,我已經延長屏幕

這是我應該怎麼做呢?

+0

假設'Screen'暴露了你傳遞給構造函數的值,它們是否應該在'Menu'和'Game'中作爲它們擁有的屬性在擴展它時擁有? – Marty

+0

我只是想'Screen'來保存'Menu'和'Game'的值,以便知道應用程序的寬度。我應該以完全不同的方式做這件事嗎? – Tom

+0

這三個類中的任何一個都是您的文檔類?文檔類是定義屏幕大小的最佳位置,並可能將它們存儲在靜態屬性中,以便您可以輕鬆地在別處引用它們。 – Marty

回答

1

從您的文檔類Main,你可以更容易地達到你想要什麼樣的本:

public class Main extends Sprite 
{ 

    private static var _width:int; 
    private static var _height:int; 


    public function Main() 
    { 
     _width = stage.stageWidth; 
     _height = stage.stageHeight; 
    } 


    public static function get width():int{ return _width; } 
    public static function get height():int{ return _height; } 

} 

使用,如:

trace(Main.width, Main.height); 

inb4 static is bad:這是一個不變的值,在遊戲/應用程序的很多領域都很有用。在我看來,它是靜態應用的完美例子。

+0

謝謝,這是有道理的,但這是最佳做法嗎? – Tom

+1

@Tom我相信這對於這種特殊場景來說是一個很好的方法。儘管如此,您應該謹慎使用相同的方法來處理不太通用的多用途數據。 – Marty

+0

我想以同樣的方式臨時存儲高分嗎? – Tom

1

嘗試在主類中添加靜態瓦爾:

public static var appWidth :int; 
public static var appHeight :int; 

您定義它們後,您可以隨時隨地訪問他們對你這樣的代碼:

var myHeight:int = Main.appHeight; 

希望這可以幫助你。

,如果你想將其添加到屏幕,而不是主,你可以像這樣一樣和訪問值:

var myWidth :int = Screen.appWidth; 
var myHeight :int = Screen.appHeight;