2010年新年快乐大家:)刚刚回到Flash界面,并提出一个简单的问题。
我有一部电影(视频播放器),按钮的颜色会发生变化。我已经绘制出按钮并创建了一个1色框(movieClip),它将成为所有按钮的背景。
我已经使用ColorTransform来更改我使用代码创建的矩形的颜色,但是在包含您实际绘制的图形的movieClip中更改颜色的最简单方法是什么。
我需要更改HEX值的movieClip的路径:controls.btn_Sound.colorChip
答案 0 :(得分:2)
我使用ColorMatrixFilter来改变我的Sprites,MCs的颜色属性:
示例:
var matrix:Array = new Array();
matrix=matrix.concat([0.5,0.5,0.5,0,0]);// red
matrix=matrix.concat([0.5,0.5,0.5,0,0]);// green
matrix=matrix.concat([0.5,0.5,0.5,0,0]);// blue
matrix=matrix.concat([0,0,0,1,0]);// alpha
var my_filter:ColorMatrixFilter=new ColorMatrixFilter(matrix);
my_sprite.filters=[my_filter];
在这里,您是a good guide
的链接答案 1 :(得分:2)
如果controls.btn_Sound.colorChip是MovieClip或Sprite,您可以使用绘图API更改其图形属性。
所以而不是:
colorChip = 0xCCCCCC; btnColor_sound.color = colorChip;
这样做:
controls.btn_Sound.colorChip.graphics.beginFill(colorChip, 1);
controls.btn_Sound.colorChip.lineStyle(1, 0x000000);
controls.btn_Sound.colorChip.drawRect(0, 0, 10, 10); // fill in this with your colorChip's dimensions
controls.btn_Sound.colorChip.endFill()
这是一种非常基本的方法。您可能希望每次切换颜色时都清除它,也许修改线条样式。在AS3文档中查找Graphics类和Drawing API,这些应该有助于澄清这一点。