2010-09-23 12 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); 
} 

J'ai besoin de la valeur event.target.hexValue en dehors de la fonction. J'utilise des actions dans Flash CS5.ColorPicker dans AS3

+0

utilisation [selectedColor] (http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/controls/ColorPicker.html#selectedColor) propriété – Amarghosh

+0

pourquoi ne pas stocker le nécessaire valeur dans une variable globale accessible en dehors de la fonction changeHandler? – midhunhk

Répondre

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

voir ma réponse mise à jour – Amarghosh

1

Mise à jour: Si vous êtes à la recherche de la valeur de la couleur sélectionnée comme uint, vous pouvez directement utiliser la propriété selectedColor de ColorPicker event.target.selectedColor ou color propriété du ColorPickerEvent event.color


Sauf si vous avez ramasseurs de couleurs multiples qui utilisent même gestionnaire de changement, la valeur de event.target, (ou event.currentTarget pour être précis), est le même que qui peut être accessible de l'extérieur de la fonction sans aucun problème. Par conséquent, vous pouvez utiliser myColorPicker.hexValue en dehors de la fonction. Si le code auquel vous souhaitez accéder n'a pas accès à , vous pouvez transmettre la valeur myColorPicker.hexValue à cette fonction en tant que paramètre.

Si ce n'est pas ce que vous vouliez, veuillez clarifier la question.

+0

Voici ce que je veux faire: Je veux que la valeur de 'myColorPicker.hexValue' soit quelque chose comme ça. 'graphics.Linestyle (2, myColorPicker.hexVale/someVariableName, 1)' – masb

+0

Où voulez-vous faire cela - avez-vous eu une erreur lorsque vous avez essayé cela? – Amarghosh

+0

oui, mais j'ai résolu le problème maintenant. Le code n'est définitivement pas propre et facilement lisible, mais c'est assez bon pour l'instant. – masb