4

让我先说我本质上是一名 .NET 开发人员,只是在帮助一位朋友完成他正在从事的项目。

我一直在网上搜索一些我认为应该很简单的东西。这是我所拥有的:

  1. 具有一层称为背景的标准 Flash CS5 文档。
  2. 该文档与一个名为“Game”的类相关联,该类扩展了 MovieClip。
  3. 在调用“初始化”方法后,我正在“游戏”类中执行一些逻辑。

我想在运行时将文档的背景颜色更改为其他颜色(例如,不同的颜色、渐变或图片)。很简单,对吧?也许不吧。我想不通。一些对 .NET 友好的灵魂能否解释一下如何解决这个问题?

4

3 回答 3

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 背景颜色。

假设您的闪存嵌入具有以下内容:

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

原型:

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

jQuery:

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

本国的:

document.getElementById('yourFlashContainerId').style.background-color="#000";
于 2010-10-16T22:44:30.593 回答
1

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

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

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

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

于 2011-01-10T12:08:39.770 回答
0

文档颜色实际上是在嵌入的 HTML 中设置的。要获得动态背景颜色,我建议您使用背景影片剪辑,以便在需要时将颜色绘制到其中。绘制可以使用绘图 API绘制颜色。

于 2010-10-16T22:33:35.107 回答