2010-09-23 30 views
1
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中的操作。ColorPicker in AS3

+0

使用[selectedColor(http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/controls/ColorPicker.html#selectedColor)財產 – Amarghosh 2010-09-27 14:07:40

+0

你爲什麼不存儲所需全局變量中的值可以在changeHandler函數之外訪問嗎? – midhunhk 2011-06-21 13:50:39

回答

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); 
} 
+0

看到我更新的答案 – Amarghosh 2010-09-27 14:33:35

1

更新:如果你正在尋找所選顏色作爲UINT的值,你可以直接使用顏色拾取event.target.selectedColorselectedColor財產或的的ColorPickerEvent event.color


color財產,除非你有多個拾色器使用相同的更改處理程序,值爲event.target(或準確地說event.currentTarget),與相同,可以從函數外部訪問而沒有任何問題。因此,您可以在功能外使用myColorPicker.hexValue。如果您要訪問的代碼無權訪問,則可以將值myColorPicker.hexValue作爲參數傳遞給該函數。

如果這不是你想要的,請澄清問題。

+0

這就是我想要做的:我希望'myColorPicker.hexValue'的值變成這樣的東西。 'graphics.Linestyle(2,myColorPicker.hexVale/someVariableName,1)' – masb 2010-09-27 12:21:50

+0

你想要做什麼? - 當你嘗試這個時你有錯誤嗎? – Amarghosh 2010-09-27 12:38:23

+0

是的,但我現在解決了這個問題。代碼絕對不乾淨,易於閱讀,但現在已經夠用了。 – masb 2010-09-27 13:34:12