我对AS3很新,但我知道基础知识。我正在创建一个绘图应用程序,我想创建一个矩形,每次选择新颜色时,该矩形都会更改为所选的颜色。我可以做简单的事情,如创建矩形等,但对于实际的颜色转换,我有点迷失。我还没有找到一个直接的答案,我希望有人可以指导我正确的方向,谢谢!
答案 0 :(得分:0)
这是一个简单的程序,可以在舞台上创建一个红色按钮。单击时,它将变为蓝色。
import flash.display.MovieClip;
import flash.events.MouseEvent;
var ButtonA:MovieClip = new MovieClip();
ButtonA.buttonMode = true;
ButtonA.graphics.lineStyle(1,0);
ButtonA.graphics.beginFill(0xFF0000,1)
ButtonA.graphics.drawRect(0,0,50,50);
addChild(ButtonA);
ButtonA.x = ButtonA.y = 20;
ButtonA.addEventListener(MouseEvent.CLICK, changeColorHandler, false, 0, true);
function changeColorHandler(event:MouseEvent) : void
{
var obj_color:ColorTransform = new ColorTransform();
obj_color.color = 0x0000ff;
ButtonA.transform.colorTransform = obj_color;
}
这使用了一个click事件,但您可以在处理程序中获取代码并创建自己的颜色设置器功能,您可以从任何地方调用它。即:
function changeColor(obj:MovieClip, newColor:int) : void
{
var obj_color:ColorTransform = new ColorTransform();
obj_color.color = newColor;
obj.transform.colorTransform = obj_color;
}
答案 1 :(得分:0)
要在选择新颜色时更改矩形的颜色,我认为您应该使用来自Flash Professional的颜色选择器控件,请导入颜色选择器控件并附加到您的项目
function ColorPicker_Class()
{
colorPicker=new ColorPicker();
addChild(colorPicker);
colorPicker.x=150;
colorPicker.addEventListener(ColorPickerEvent.CHANGE,onChangeColor);
rect=new Sprite();
rect.x=300; rect.y=250;
addChild(rect);
}
function onChangeColor(event:ColorPickerEvent):void
{
var colorpick:ColorPicker=ColorPicker(event.currentTarget);
rect.graphics.lineStyle(1);
rect.graphics.beginFill(colorpick.selectedColor,1);
rect.graphics.drawRect(0,0,100,100);
}