2010-08-07 10 views

Répondre

23

comme ceci:

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

La question est 'Change ** stage ** background ...' et cette réponse vous indique comment changer la couleur du MXML principal. Main MXML est un enfant de scène. La réponse correcte est 'stage.color = 0xABCDEF' qui a donné Peter Gibson. – marbel82

+0

réponse de Peter Gibson n'est pas AS3 pur ... – PatrickS

+0

@PatrickS Sa réponse travaille avec AS3 pur. Il a juste pollué sa réponse avec des conneries dont tu n'as pas besoin. – Bitterblue

0

Définissez la backgroundColor de l'objet d'application.

+0

Merci ... voulez-vous s'il vous plaît expliquer plus de détails? J'ai essayé Google mais je n'ai rien trouvé ... Merci. – FlyingCat

4

Vous pouvez définir la couleur d'arrière-plan lors de l'initialisation, la façon @Wopdoowop mentionné, mais si vous voulez changer vous dynamiquement besoin de créer votre propre bitmap/sprite/MovieClip qui serait agir comme un fond (devrait aller au-dessous du reste de votre contenu et avoir la largeur et la taille de votre étape) et changer la couleur de ce bitmap/sprite/movieclip.

9

Ceci crée une forme et l'ajoute à la scène derrière tout. Pour changer la couleur à tout moment, appelez: changeBGColor(0xFF0000) (en rouge)

Elle conserve également la taille de l'arrière-plan (couvrant toute la zone) lorsque les fenêtres sont redimensionnées.

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

Merci Makram ... mais la manière de Wopdoowop est beaucoup plus facile ...: D +1 si – FlyingCat

+1

Interressant comme une classe abstraite pour tous les stades! – snowflake

9

J'ai cela dans un gestionnaire 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; 
} 

Bien que j'ai le sentiment qu'il travaillerait partout.

+1

Il n'y a pas de propriété 'color' pour la scène? Flash Player 10? –

+0

Peut-être - ce fut flex4.6 sur Flash Player 11 de la mémoire –

+0

Cette réponse est presque une réponse parfaite à la question ci-dessus. Lorsque stage n'est pas nul, vous pouvez jeter un coup d'œil et en piquer la couleur. Il y a aussi un événement: 'addEventListener (Event.ADDED_TO_STAGE, onAddToStage)' (il suffit de retirer la merde xml, j'utilise AS3 pur et cela fonctionne) – Bitterblue

5

Vous devriez pouvoir utiliser la ligne suivante d'Actionscript 3.0 pour définir la couleur d'arrière-plan. 0x000000 pour le noir, 0xFFFFFF pour le blanc et n'importe quoi entre.

this.stage.color = 0x00000;

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

Je suggère faire un sprite puis faire dans le dos. C'est comme ça que je le ferais.

Assurez-vous 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) 

un plus à ce sujet est que vous pouvez dessiner un arrière-plan (si vous voulez) soit manuellement, soit avec le code, puis le mettre dans à travers le code.

Questions connexes