在AS3中为绘图应用程序创建颜色预览

时间:2014-03-14 02:03:30

标签: actionscript-3 canvas colors drawing

我对AS3很新,但我知道基础知识。我正在创建一个绘图应用程序,我想创建一个矩形,每次选择新颜色时,该矩形都会更改为所选的颜色。我可以做简单的事情,如创建矩形等,但对于实际的颜色转换,我有点迷失。我还没有找到一个直接的答案,我希望有人可以指导我正确的方向,谢谢!

2 个答案:

答案 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);
    }