2010-11-29 99 views
2

如何在ActionScript 3.0中更改屏幕背景顏色?以及如何在ActionScript3.0中將一個屏幕導航到另一個屏幕; 我已經在我的項目使用的按鈕,當我點擊該按鈕本屏幕應該是看不見的,另外屏幕應該在onclick方法我這樣調用來如何在ActionScript 3.0中更改屏幕背景顏色?

presentscree.visible = FALSE; nextscreen:NextScreen = new NextScree(); nextscreen.visible = true;

但沒有結果;誰可以幫我這個事 ?

+0

請編輯的代碼,只是意識到我忘了一個行背景顏色的變化! – PatrickS 2010-11-30 03:02:13

回答

3

您需要將屏幕添加到DisplayList,否則它將根本不可見。

var nextScreen : NextScreen = new NextScreen(); 
addChild(nextScreen); 

您可以更改屏幕的背景顏色是這樣的:

graphics.beginFill(0xBBBBBB, 1); 
graphics.drawRect(0, 0, 800, 600); 
graphics.endFill(); 

或者,如果你想改變SWF背景顏色:

package 
{ 

    [SWF(frameRate="30", backgroundColor="0xFFFFFF", width="800", height="600")] 
    public class MyDocumentClass extends Sprite 
    { 
     public function MyDocumentClass() 
     { 
      super(); 
     } 
    } 
} 
+0

實現了這兩個東西,但融化了,即使導航沒有完成,顏色並沒有改變。 – ramsbh 2010-11-29 11:14:15

0

調用此函數任何時候你想改變背景顏色

private function backgroundColor(color:uint):void 
{ 
    with(this.graphics) 
    { 
    clear(); 
    beginFill(color); 
    drawRect(0 , 0 , Capabilities.screenResolutionX, Capabilities.screenResolutionY); 
    endFill(); 
    } 
} 

    //example 
    backgroundColor(0x990000); 

要更改屏幕,您可以將所有屏幕添加到一個數組

private var screens:Array = [screen1 , screen2 , ...screenN]; 

//Assuming that all the screens have been added to the DisplayList 
private function selectScreen(index:int):void 
{ 
     //Ensure that the index is within bounds 
     if(index >= screens.length) 
     return; 

     for(var i:int ; i < screens.length ; ++i) 
     { 
      if(i != index) 
      screens[i].visible = false; 
      else 
      screens[i].visible = true;    
     } 
} 

//You could also add your screens with this 
public function addScreen(screen:DisplayObject):void 
{ 
     if(screens == null) 
      screens = []; 

     //add the screen to the Array 
     screens.push(screen); 

     //hide the screen 
     screen.visible = false; 

     //add the screen to the Display List 
     addChild(screen); 

    }