2014-03-14 37 views
1

我是AS3的新手,但我知道基本知识。我正在创建一个绘图应用程序,并且我想创建一个矩形,以便在每次选择新颜色时更改为所选颜色。我可以做简单的事情,例如创建矩形等,但对于实际的颜色转换,我有点失落。我还没有找到与此直接的答案,我希望有人能指导我在正确的方向,谢谢!在AS3中为绘图应用程序创建颜色预览

+0

闪光Professional拥有一个颜色选择器组件;了解您是使用Flash Pro还是构建纯粹的ActionScript项目会很有帮助。 –

回答

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; 
} 

此使用点击事件,但你可以采取的处理程序中的代码,并创建自己的颜色设置器的功能,你可以在任何地方,你想打电话。即:

function changeColor(obj:MovieClip, newColor:int) : void 
{ 
    var obj_color:ColorTransform = new ColorTransform(); 
    obj_color.color = newColor; 
    obj.transform.colorTransform = obj_color; 
} 
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); 
    } 
相关问题