2010-08-07 26 views

Respuesta

23

así:

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

La pregunta es 'Cambiar ** escenario ** fondo ...' y esta respuesta te dice cómo cambiar el color de MXML principal. Principal MXML es un hijo de la etapa. La respuesta correcta es 'stage.color = 0xABCDEF' que dio Peter Gibson. – marbel82

+0

La respuesta de Peter Gibson no es pura AS3 ... – PatrickS

+0

@PatrickS Su respuesta funciona con AS3 puro. Acaba de contaminar su respuesta con basura que no necesitas. – Bitterblue

0

Intenta configurar el backgroundColor del objeto de la aplicación.

+0

Gracias ... ¿podría explicarnos más detalles? Lo intenté en google pero no pude encontrar nada ... Gracias. – FlyingCat

4

Puede configurar el color de fondo en la inicialización, la forma @Wopdoowop mencionado, pero si desea cambiar de forma dinámica lo que se necesita para crear su propio mapa de bits/sprites/clip de película que lo haría actuar como fondo (debe ir por debajo del resto de su contenido y tener ancho y alto de su etapa) y cambiar el color de ese mapa de bits/sprite/movieclip.

9

Esto crea una forma y lo agrega al escenario detrás de todo. Para cambiar el color en cualquier momento, llame al: changeBGColor(0xFF0000) (al rojo)

También mantiene el tamaño del fondo (que cubre toda el área) cuando se cambia el tamaño de las ventanas.

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

Gracias Makram ... pero la forma de Wopdoowop es mucho más fácil ...: D +1 a – FlyingCat

+1

Interresting como una clase abstracta para cada etapa! – snowflake

9

tengo esto en un controlador 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; 
} 

Aunque tengo la sensación de que iba a funcionar en cualquier lugar.

+1

No hay propiedad de 'color' para el escenario? Flash Player 10? –

+0

Podría ser - esto era flex4.6 en Flash Player 11 desde la memoria –

+0

Esta respuesta es casi una respuesta perfecta a la pregunta anterior. Cuando el escenario no es nulo, puedes mirar y pinchar el color del mismo. También hay un evento: 'addEventListener (Event.ADDED_TO_STAGE, onAddToStage);' (simplemente elimine la mierda xml, uso AS3 puro y funciona) – Bitterblue

5

Debería poder utilizar la siguiente línea de Actionscript 3.0 para establecer el color de fondo. 0x000000 para negro, 0xFFFFFF para blanco y cualquier cosa intermedia.

this.stage.color = 0x00000;

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

Sugiero hacer un sprite y luego hacerlo en la parte posterior. Esta es la forma en que lo haría.

Asegúrese de 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) 

una ventaja de esto es que se puede dibujar un fondo (si lo desea), ya sea manualmente o con el código y luego ponerlo en a través del código.

Cuestiones relacionadas