2

たとえば、ラベルにスライダーのカスタム値を表示したい

スライダー値が 0 の場合、ラベル テキストは 250 スライダー値が 1 の場合、ラベル テキストは 333 スライダー値は、2 の場合、ラベル テキストは 543 スライダー値は、3 の場合、ラベル テキストは 9342

私はこれが初めてで、どんな助けも大歓迎です。私のサンプルコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Panel x="199" y="141" width="250" height="200">
    <s:HSlider id="ValueSlider" x="74" y="68" maximum="3" minimum="0" stepSize="1"/>
    <s:Label id="ValueLabel" x="109" y="38" text="Label"/>
</s:Panel>

@Whiteagle のおかげで、これは現在の状態ですが、「コンポーネントの実装に解決できませんでした」というエラーが表示されます

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<mx:Script>
    <![CDATA[
        import mx.events.SliderEvent;
        protected function ValueSlider_changeHandler(event:SliderEvent):void
    {
        ValueLabel.text = ValueSlider.value;
            if(ValueSlider.value == "0")
            ValueLabel.text = "150";
            if(ValueSlider.value == "1")
            ValueLabel.text = "333";
            if(ValueSlider.value == "2")
            ValueLabel.text = "543";
            if(ValueSlider.value == "3")
            ValueLabel.text = "9342";
    }
    ]]>
</mx:Script>
<s:Panel x="199" y="141" width="250" height="200">
    <s:HSlider id="ValueSlider" x="74" y="68" maximum="5" minimum="0" stepSize="1"/>
    <s:Label id="ValueLabel" x="109" y="38" text="Label"/>
</s:Panel>

4

1 に答える 1

0

change イベントを追加して、ラベルの text プロパティを変更するだけです。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <mx:Script>
    <![CDATA[

        import mx.events.SliderEvent;

        protected function ValueSlider_changeHandler(event:SliderEvent):void
        {
            ValueLabel.text = ValueSlider.value; // You could also use event.currentTarget or similar to obtain the element that dispatched the event, I prefered to refer to it directly for this example.
            // Add your logic here. For instance:
            if(ValueSlider.value == "0") // I'm using an if just for demonstration purposes, if you want to do one check per value you may want to consider using a switch.
                ValueLabel.text = "300";
                ...
        }

    ]]>
    </mx:Script>
    <s:Panel x="199" y="141" width="250" height="200">
        <s:HSlider id="ValueSlider" x="74" y="68" maximum="3" minimum="0" stepSize="1" change="ValueSlider_changeHandler(event)" />
        <s:Label id="ValueLabel" x="109" y="38" text="Label"/>
    </s:Panel>
</s:Application>
于 2012-11-03T17:37:06.317 に答える