1

誰かが私を助けることができますか?16進数のcolorPicker値を変数に格納してから、varbackoutの値をtextInputにキャストしたいと思います。textInputは、私が選択した魔女のhexcolorを表示するためのものです。

したがって、textInputに0x000000が表示されることを意味します。

私が今やったことは非常に単純です。フレックスcolorPickerをtextInputに直接バインドしました。しかし、最初にcolorPickerの値をvarに保存してから、それをtextInputに吐き出して、選択した値を確認したいと思います。

数字の0で始まる色の値を選択すると、数字の先頭にある0が削除され、0より大きい数字のみが吐き出されます(000033は33になり、FF0000はFF0000のままです)。値全体をキャッチするか、何らかの関数を記述して、ドロップされた0の数を把握し、それを0xと連結したいと思います。それらすべてをvarに格納し、flexTextInputにバインドします。しかし、私はそれを行う方法がわかりません。誰かが私がしなければならないことを知っていますか?

これは私が持っているものです。

<?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

選択したカラーチョーサーの色はuintであり、あなたがする必要があるのはこれを16進数に変換することです。私はあなたのために簡単なグーグルをして、ここで解決策を見つけました

これが私自身の見解です

<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 に答える