Изменить цвет фона сцены в AS3? - PullRequest
15 голосов
/ 08 августа 2010

Я использую чистый AS3 для создания своего проекта. Мне было интересно, есть ли в любом случае изменить цвет фона сцены через AS3 ... Спасибо за помощь ....

Ответы [ 8 ]

23 голосов
/ 08 августа 2010

как это:

[SWF(backgroundColor="0xec9900")]
public class Main extends Sprite
{
    }
10 голосов
/ 05 февраля 2012

У меня есть это в 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;
}

Хотя у меня есть ощущение, что это сработает где угодно.

9 голосов
/ 08 августа 2010

Это создает форму и добавляет ее на сцену позади всего.Чтобы изменить цвет в любое время, позвоните: 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();
5 голосов
/ 05 июля 2013

Вы можете использовать следующую строку Actionscript 3.0 для установки цвета фона. 0x000000 для черного, 0xFFFFFF для белого и все что между ними.

this.stage.color = 0x00000;

4 голосов
/ 08 августа 2010

Вы можете установить цвет фона при инициализации, как упоминалось в @Wopdoowop, но если вы хотите изменить его динамически, вам нужно будет создать свой собственный растровый / спрайт / мувиклип, который будет действовать как фон (должен быть ниже остальных ваш контент и имеет ширину и высоту вашей сцены) и изменить цвет этого растрового изображения / спрайта / мувиклипа.

1 голос
/ 13 июля 2013
[SWF(width='700',height='525',backgroundColor='#000000',frameRate='30')]
public class RunTime extends Sprite {
0 голосов
/ 29 октября 2016

Я предлагаю сделать спрайт, а затем сделать это в спину. Я бы так и сделал.

Обязательно 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)

плюсом в этом является то, что вы можете нарисовать фон (если хотите) либо вручную, либо с помощью кода, а затем вставить его через код.

0 голосов
/ 08 августа 2010

Попробуйте установить backgroundColor объекта приложения.

...