2010-11-29 82 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); 

    }