2010-08-07 63 views

回答

23

這樣的:

[SWF(backgroundColor="0xec9900")] 
public class Main extends Sprite 
{ 
    } 
+4

問題是'Change ** stage ** background ...',這個答案告訴你如何改變主MXML的顏色。主要的MXML是舞臺上的一個孩子。正確的答案是給了彼得吉布森的'stage.color = 0xABCDEF'。 – marbel82 2013-06-03 21:36:35

+0

彼得吉布森的答案不是純粹的AS3 ... – PatrickS 2014-01-25 06:52:11

+0

@帕特里克他的答案適用於純粹的AS3。他只是用你不需要的廢話污染了他的答案。 – Bitterblue 2014-04-28 05:45:48

0

嘗試設置應用程序對象的backgroundColor。

+0

謝謝...你能解釋更多細節嗎?我試過谷歌,但找不到任何.....謝謝。 – FlyingCat 2010-08-07 23:40:16

4

您可以設置背景顏色初始化,@Wopdoowop提到的方式,但如果你要動態地改變它,你將需要創建自己的位圖/精靈/影片剪輯那會充當背景(應該在內容的其餘部分之下並且具有舞臺的寬度和高度)並更改該位圖/ sprite/movieclip的顏色。

9

這會創建一個形狀並將其添加到所有背後的舞臺上。要隨時更改顏色,請撥打:changeBGColor(0xFF0000)(至紅色)

它還在窗口大小調整時保持背景大小(覆蓋所有區域)。

import flash.display.Sprite; 
import flash.events.Event; 

var default_bg_color:uint = 0xffffff; 

var bgshape:Sprite; 
stage.align = "TL"; 
stage.scaleMode = "noScale"; 

function initBG() 
{ 
    bgshape = new Sprite(); 
    bgshape.graphics.beginFill(default_bg_color); 
    bgshape.graphics.drawRect(0,0,stage.stageWidth, stage.stageHeight); 
    addChildAt(bgshape, 0); 
    stage.addEventListener(Event.RESIZE, resizeBGWithStage); 
} 
function changeBGColor(color:uint) 
{ 
    bgshape.graphics.beginFill(color); 
    bgshape.graphics.drawRect(0,0,stage.stageWidth, stage.stageHeight); 
} 
function resizeBGWithStage(e:Event) 
{ 
    try { 
     bgshape.width = stage.stageWidth; 
     bgshape.height = stage.stageHeight; 
    } catch(e){} 
} 

initBG(); 
+0

謝謝Makram ...但Wopdoowop的方式更容易...:D +1雖然 – FlyingCat 2010-08-08 13:44:26

+1

Interresting作爲每個階段的抽象類! – snowflake 2011-01-19 10:47:10

9

我有這樣的一個creationComplete處理

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       creationComplete="on_init();"> 

private function on_init():void { 
    stage.color = 0x000000; 
} 

雖然我有一種感覺,將在任何地方工作。

+1

舞臺沒有「顏色」屬性嗎? Flash Player 10? – 2012-02-29 20:53:28

+0

可能 - 這是從內存的Flash Player 11 flex4.6 – 2012-03-01 00:54:03

+0

這個答案几乎是上述問題的完美答案。當舞臺不是空的時候,你可以窺視並戳出它的顏色。還有一個事件:'addEventListener(Event.ADDED_TO_STAGE,onAddToStage);'(只是刪除xml廢話,我使用純粹的AS3,它的工作原理) – Bitterblue 2014-04-28 05:43:22

5

您應該可以使用下面的Actionscript 3.0行來設置背景顏色。黑色爲0x000000,白色爲0xFFFFFF,介於兩者之間。

this.stage.color = 0x00000;

1
[SWF(width='700',height='525',backgroundColor='#000000',frameRate='30')] 
public class RunTime extends Sprite { 
0

我建議做一個精靈,然後在後面做。這是我會這樣做的方式。

確保import flash.display.Sprite;

var bkg:Sprite=new Sprite(); 
//replace the 0x000000 with a hex code. 
bkg.graphics.beginFill(0x000000, 1) 
bkg.graphics.drawRect(0,0,stage.stageWidth,stage.stageHeight) 
bkg.graphics.endFill() 
addChild(bkg) 

關於這個好處是,你可以繪製背景(如果你想)手動或使用代碼,然後把它放在通過代碼。