純粋なAS3を使用してプロジェクトをビルドしています。 AS3でステージの背景色を変更する方法はないかと思っていました...助けてくれてありがとう...
このような:
[SWF(backgroundColor="0xec9900")]
public class Main extends Sprite
{
}
私はこれを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;
}
どこでも使える気がしますが。
これにより、シェイプが作成され、すべての背後にあるステージに追加されます。いつでも色を変更するには: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();
ActionScript 3.0の次の行を使用して背景色を設定できるはずです。黒の場合は0x000000、白の場合は0xFFFFFF、およびその間のすべて。
this.stage.color = 0x00000;
@Wopdoowopが述べたように、初期化時に背景色を設定できますが、動的に変更する場合は、背景として機能する独自のビットマップ/スプライト/ムービークリップを作成する必要があります(コンテンツの残りの部分の下に配置する必要があります。ステージの幅と高さを設定し、そのビットマップ/スプライト/ムービークリップの色を変更します。
[SWF(width='700',height='525',backgroundColor='#000000',frameRate='30')]
public class RunTime extends Sprite {
スプライトを作って、後ろで作ることをお勧めします。これは私がそれをする方法です。
必ず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)
これの利点は、手動またはコードを使用して(必要に応じて)背景を描画し、それをコードに挿入できることです。
アプリケーションオブジェクトの背景色を設定してみてください。