15 Stimmen

Hintergrundfarbe der Bühne in AS3 ändern?

Ich verwende reines AS3, um mein Projekt zu erstellen. Ich habe mich gefragt, ob es Möglichkeiten gibt, die Hintergrundfarbe der Bühne über AS3 zu ändern... Danke für die Hilfe....

23voto

PatrickS Punkte 9568

Wie diese:

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

5 Stimmen

Die Frage lautet: "Veränderung Bühne background...' und diese Antwort sagt Ihnen, wie Sie die Farbe der Haupt-MXML ändern können. Main MXML ist ein Kind von stage. Die korrekte Antwort lautet stage.color = 0xABCDEF die Peter Gibson gab.

0 Stimmen

@PatrickS Seine Antwort funktioniert mit reinem AS3. Er hat nur seine Antwort mit Mist verunreinigt, den man nicht braucht.

10voto

Peter Gibson Punkte 17875

Ich habe dies in einer creationComplete Handler

<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;
}

Ich habe aber das Gefühl, dass es überall funktionieren würde.

1 Stimmen

Es gibt keine Eigenschaft "Farbe" für die Bühne? Flash Player 10?

0 Stimmen

Könnte sein - wenn ich mich recht erinnere, war dies flex4.6 auf Flash Player 11

0 Stimmen

Diese Antwort ist eine fast perfekte Antwort auf die obige Frage. Wenn die Stufe nicht Null ist, kann man die Farbe der Stufe sehen und erahnen. Es gibt auch ein Ereignis: addEventListener(Event.ADDED_TO_STAGE, onAddToStage); (entfernen Sie einfach den xml-Mist, ich verwende reines AS3 und es funktioniert)

9voto

Makram Saleh Punkte 8474

So entsteht eine Form, die Sie auf der Bühne hinter allem hinzufügen. Um die Farbe zu ändern, rufen Sie jederzeit an: changeBGColor(0xFF0000) (auf Rot)

Außerdem wird die Größe des Hintergrunds (der den gesamten Bereich abdeckt) beibehalten, wenn die Größe des Fensters geändert wird.

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 Stimmen

Danke Makram... aber der Weg von Wopdoowop ist viel einfacher... :D Trotzdem +1

1 Stimmen

Interessant als abstrakte Klasse für alle Stufen !

5voto

Ian Grayden Punkte 51

Sie sollten die folgende Zeile von Actionscript 3.0 verwenden können, um die Hintergrundfarbe einzustellen. 0x000000 für Schwarz, 0xFFFFFF für Weiß und alles dazwischen.

this.stage.color = 0x00000;

4voto

Maksim Vi. Punkte 8777

Sie können die Hintergrundfarbe bei der Initialisierung festlegen, wie @Wopdoowop erwähnt hat, aber wenn Sie sie dynamisch ändern wollen, müssen Sie ein eigenes Bitmap/Sprite/Movieclip erstellen, das als Hintergrund fungiert (es sollte unter dem Rest des Inhalts liegen und die Breite und Höhe der Bühne haben), und die Farbe dieses Bitmaps/Sprites/Movieclips ändern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X