AS3中的ColorPicker

时间:2010-09-23 08:31:37

标签: flash actionscript-3 actionscript flash-cs5

import fl.controls.ColorPicker;
import fl.events.ColorPickerEvent;

var myColorPicker:ColorPicker = new ColorPicker();
myColorPicker.addEventListener(ColorPickerEvent.CHANGE, changeHandler);
myColorPicker.move(10, 10);
addChild(myColorPicker);

function changeHandler(event:ColorPickerEvent) {
    trace("color changed:", event.color, "(#" + event.target.hexValue + ")");
 trace(myColorPicker.hexValue);
}

我需要函数外的event.target.hexValue值。我正在使用Flash CS5中的操作。

2 个答案:

答案 0 :(得分:2)

var borderColor:uint = 0x000000;

var myColorPicker:ColorPicker = new ColorPicker();
myColorPicker.editable = true;
myColorPicker.move(10, 10);
addChild(myColorPicker);

myColorPicker.addEventListener(ColorPickerEvent.CHANGE, changeHandler);

function changeHandler (event:ColorPickerEvent):void {
    var newuint = uint("0x"+event.target.hexValue);
    borderColor = newuint;
    graphics.lineStyle(2,borderColor,1);
}

答案 1 :(得分:1)

更新:如果您要查找所选颜色的值作为uint,则可以直接使用ColorPicker event.target.selectedColor的{​​{3}}属性或ColorPickerEvent的selectedColor属性{{1 }}


除非您有多个使用相同更改处理程序的颜色选择器,否则event.color的值(或准确的event.target)与可以从中访问的event.currentTarget相同功能之外没有任何问题。因此,您可以在函数外部使用myColorPicker。如果您要访问此代码的代码无法访问myColorPicker.hexValue,则可以将myColorPicker的值作为参数传递给该函数。

如果这不是您想要的,请澄清问题。