如何使用ActionScript 3.0更改Flash文档的背景?

时间:2010-10-16 22:24:45

标签: flash actionscript-3 actionscript flash-cs5

让我先说一下这个问题,我说我是一名.NET开发人员,只是帮助一个朋友完成他正在进行的项目。

我一直在网上寻找一些我觉得应该很简单的东西。这就是我所拥有的:

  1. 标准Flash CS5文档,其中一层称为背景。
  2. 该文档与名为“Game”的类相关联,该类扩展了MovieClip。
  3. 我在调用'Initialize'方法后在'Game'类中执行一些逻辑。
  4. 我想在运行时将文档的背景颜色更改为其他颜色(例如,不同的颜色,渐变或图片)。简单吧?也许不吧。我无法弄清楚。一些.NET友好的灵魂可以解释如何解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

如果你想让背景改变颜色,而不是画它,javascript可能是解决这个问题的好方法。

你改变的将取决于嵌入代码,但你想要改变的参数是bgcolor。

在原型中,javascript看起来像这样:

$('yourFlashContainerId').down('[name="bgcolor"]').writeAttribute('value','#000000');

在flash中绘制它,你可以这样做:

var bg:Sprite = new Sprite();
bg.graphics.beginFill(0x000000);
bg.graphics.drawRect(0,0,stage.stageWidth, stage.stageHeight);
bg.graphics.endFill();
bg.x = 0;
bg.y = 0;
addChildAt(bg,0);

这将绘制一个黑色背景的正方形(更改第2行的十六进制以更改颜色),将其大小设置为舞台的大小,将x和y设置为0,然后将其添加到底部显示堆栈。

这两种方法中的任何一种都应该有效。

编辑:还有另一种方式:

您还可以将wmode参数设置为“透明”,并更改包含div背景颜色。

假设你的flash嵌入有以下内容:

<param name="wmode" value="transparent">

原型:

$('yourFlashContainerId').setStyle({'background-color':'#000'});

jQuery的:

$('#yourFlashContainerId').css({'background-color':'#000'});

天然:

document.getElementById('yourFlashContainerId').style.background-color="#000";

答案 1 :(得分:1)

您可以在设计时创建所需的背景,为方便起见,将它们放在不同的图层上。将每个背景转换为MovieClip - 每个都有自己的实例名称(bg1,bg2等)。

在构造函数中,您可以通过设置其.visible属性来规定哪些背景可见以及哪些背景不可见:

bg1.visible = true;
bg2.visible = false; etc.

如果要更换背景,只需更改可见性属性即可。使用此方法,您可以拥有各种背景 - 位图图像,渐变,纯色等。

答案 2 :(得分:0)

文档颜色实际上是在嵌入HTML中设置的。要获得动态背景颜色,我建议您使用背景动画片段,在需要时绘制颜色。绘制颜色可以使用drawing API