私は音楽プレーヤーで作業しており、作業中のプレイリストがありますが、多くの曲が追加された場合に画面外に出ないように、プレイリストを短くする必要があります。そのために、マスクとスクロールバーを作成しました。曲名はプレイリストにあり、いつでも新しい曲を追加できます。
function startDragging2(MouseEvent)
{
Playlistslider.playlistSliderHandle.startDrag(false,rectangle2);
dragging = true;
}
function stopDragging2(MouseEvent)
{
if(dragging)
{
dragging = false;
Playlistslider.playlistSliderHandle.stopDrag();
}
}
function adjustY(Event)
{
var myY:Number = Playlistslider.playlistSliderHandle.y;
CollectionMC.y = (myY * -CollectionMC.numChildren); <--------
}
今私がやりたいことは、曲名を含む親ムービークリップの位置をスクロールバー ハンドルが決定するようにすることです。下にスクロールすると、リストにある曲の数を超えないようにしたい. 現在はスクロールしていますが、十分ではないため、リスト全体が表示されません。
必要なのは、スライダー ハンドルの y 位置に対する親ムービークリップの y 位置を決定する単純な数式です。
前もって感謝します、
ミラノ。
編集: 追加するのを忘れていました。最初の名前は Y:20 にあります。Y:40 で 2 番目。3 番目の Y:60 など
編集 2: この数式では近いですが、常に 6 つの名前 (120 Y) のスペースをスクロールしすぎてしまいます。
var myY:Number = Playlistslider.playlistSliderHandle.y;
CollectionMC.y = -(myY * (CollectionMC.numChildren / 6));
編集 3: 簡単にするために、マスクとスクロールバーの高さを 100 に変更しました。マスク内に 5 つの名前を表示できるようになりました。5 曲を追加するとスクロールバーが表示されますが、すべての曲がマスク内に収まるため、使用時に下にスクロールすることは想定されていません。しかし、別の名前を追加すると、下にスクロールして6番目の名前が表示され、最初の名前が表示されないようにする必要があります。しかし、代わりに、追加した曲の数に関係なく、マスクのサイズ(100)を想定よりもさらに下にスクロールします。
EDIT 4:解決策を見つけました。正しい式は次のとおりです。
CollectionMC.y = (((CollectionMC.numChildren - 5) * -0.2) * myY);