1

有人可以帮帮我吗?我想将一个十六进制 colorPicker 值存储在一个变量中,然后将 var backout 的值转换为 textInput。textInput 只是为了查看我选择的女巫十六进制颜色。

因此意味着在 textInput 中看到 0x000000。

我现在所做的非常简单,我将 flex colorPicker 直接绑定到我的 textInput。但我想先将 colorPicker 中的值存储在 var 中,然后将它吐回 textInput 以查看我选择的值。

当我选择一个以数字 0 开头的颜色值时,它会在数字的开头删除 0,只吐出大于 0 的数字。(000033 变为 33,FF0000 保持 FF0000)。我想捕获整个值或编写某种函数来确定删除了多少个 0 并将其与 0x 连接在一起。将所有内容存储到 var 中并将其绑定到 flex TextInput。但我不知道该怎么做。有人知道我必须做什么吗?

这就是我所拥有的。

<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" 
           layout="vertical" 
           width="100%" 
           height="100%">


<mx:ColorPicker id="bgColor"/>
<mx:TextInput text="{bgColor.selectedColor.toString(16)}"/>

<mx:Canvas width="100" height="100" backgroundColor="{bgColor.selectedColor}"/>

</mx:Module>

感谢

DJ

4

1 回答 1

2

colorchosers 选择的颜色是一个 uint,您需要做的就是将其转换为十六进制。我为你做了一个快速的谷歌,并在这里找到了解决方案

这是我自己的看法

<mx:ColorPicker id="bgColor" change="colourChange()"/>
<mx:TextInput id="txtColour" />

<mx:Canvas width="100" height="100" backgroundColor="{bgColor.selectedColor}"/>

<mx:Script>
    <![CDATA[

        private function colourChange():void
        {
           var hexString:* = bgColor.selectedColor.toString(16).toUpperCase();
           var cnt:int = 6 - hexString.length;
           var zeros:String = "";

           for (var i:int = 0; i < cnt; i++) 
           {
                zeros += "0";
           }

           txtColour.text =  "#" + zeros + hexString;
        }

    ]]>
</mx:Script>

请原谅上面的错误代码格式!!!

于 2009-12-11T12:32:26.557 回答