2010-10-16 67 views
4

让我先说这个问题,说我是一名.NET开发人员,只是帮助一个朋友开展他正在开发的项目。如何使用ActionScript 3.0更改Flash文档的背景?

我一直在网上寻找我认为应该很简单的东西。以下是我的:

  1. 标准Flash CS5文档,其中一层称为背景。
  2. 该文档与一个名为'Game'的类关联,该类扩展了MovieClip。
  3. 我在调用'Initialize'方法后在'Game'类中执行了一些逻辑。

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

回答

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"; 
+0

在舞台上绘制精灵真的是改变背景色的最好方法吗?看起来对我来说很奇怪,因为舞台本身有一个可以在Flash中定义的背景。 – 2010-10-16 22:51:53

+1

在IDE中,你实际上并没有改变背景颜色,你只是告诉flash,如果你发布为html文件,将其设置为默认的背景颜色。如果将wmode参数设置为透明,则背景将一起消失,并且可以更改包含div的背景颜色以获得相同的效果。 – Jesse 2010-10-16 22:54:31

0

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

1

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

在构造函数中,你可以规定其背景是可见的,哪些是通过设置其属性。可见不可见:

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

如果你想换背景,只是改变能见度属性。使用这种方法,你可以有各种各样的背景 - 位图图像,渐变,普通的颜色等。