0

問題は、2 つのスライダーに対して AS 3.0 を使用して、最初のスライダーが uint だけインクリメントされると、もう一方のスライダーが同じ uint だけ減少し、その逆になるようにコーディングすることです。

4

2 に答える 2

0

Flash Slider クラスのドキュメントは次のとおりです

これが私がそれについて行く方法です:

// Add the sliders to the stage, lets call them `slider1` & `slider2`.
// Store each value of the slider
var slider1Position:Number = slider1.value;
var slider2Position:Number = slider2.value;
// Set liveDragging to true so the CHANGE event is fired continuously
slider1.liveDragging = true;
slider2.liveDragging = true;
// Add event listeners to listen for when they are moved. 
slider1.addEventListener(SliderEvent.CHANGE, onSlider1Changing);
slider2.addEventListener(SliderEvent.CHANGE, onSlider2Changing);

function onSlider1Changing(e:SliderEvent):void {
    var difference:Number = e.value - slider1Position;
    // update the position of the other slider
    slider2.value += difference;
}

function onSlider2Changing(e:SliderEvent):void {
    var difference:Number = e.value - slider2Position;
    // update the position of the other slider
    slider1.value += difference;
}

それを試してみてください。値を手動で設定しても CHANGE イベントが発生しないことを願っています...

于 2013-10-22T09:00:35.250 に答える
0

うまくいきませんでした。スレーブとして (slider1) と (slider2) の間の対話をこのように進めました。

var slider1Position:Number = slider1.value;
var slider2Position:Number = slider2.value;
slider2.value = 100; // max value for the sliders is 100 as an example.

slider1.addEventListener(SliderEvent.CHANGE, onSlider1Changing);

function onSlider1Changing(e:SliderEvent):void {
slider1Position = e.value;
slider2.value = 100 - slider1Position;
}

コード全体に欠けているのは、slider2 がアクティベーターと見なされ、slider1 がスレーブと見なされる別の方法です。

私の質問を気にしないでください。

于 2013-10-23T14:50:56.750 に答える