#actionscript-3 #math #components
#actionscript-3 #математика #Компоненты
Вопрос:
Я пытаюсь изменить альфа-значение последних дочерних элементов внутри компонента ScrollPane, чтобы переполненные объекты исчезали вместо того, чтобы обрезаться областью прокрутки. Я имею в виду, что чем ближе дочерний элемент находится к вершине или к низу, тем его альфа будет ближе к нулю. Если между полями альфа равна 1;
Я поместил «верхний колонтитул» и «нижний колонтитул» с прозрачными спрайтами в область прокрутки, чтобы иметь пробел для альфа-эффекта, и у меня не было проблем с тем, чтобы сделать это для верхних элементов, вот код:
function scrollListener(event:ScrollEvent):void {
var base = 120;//margins height
var targ = event.currentTarget.getChildAt(3).getChildAt(0);//get container
var scrollY = event.currentTarget.verticalScrollPosition;//get scroll position
for (var n1 = 0; n1 < 10; n1 ) {// loop for the children
var curr = targ.getChildByName("boton" n1);// current children name var
var curr_disp = curr.y-scrollY;
curr.alpha = 1;//default alpha
if(curr_disp < base){//if Y is inferior to margin (var base)
var alfa = ((curr_disp)/base)/2;
curr.alpha = alfa;
}
}
};
sp.addEventListener(ScrollEvent.SCROLL, scrollListener);
Мне нужно сделать то же самое внизу, где, если дочерний элемент находится на нижней границе области прокрутки, его альфа становится равной 0, а если дочерний элемент находится внизу минус 120 (переменная ‘base’), альфа будет равна 1. Я действительно потерян, и мой крайний срок истек. Надеюсь, кто-нибудь может дать мне несколько советов.
Извините за мой плохой английский. Заранее благодарю.
Комментарии:
1. Вероятно, было бы намного проще (и лучше выглядеть) просто использовать маску на панели прокрутки, используя АЛЬФА-режим смешивания
2. Привет. На самом деле это мое временное решение, но я хочу, чтобы дочерний элемент исчезал с простой альфой на основе положения вместо градиента 🙂 Спасибо!
Ответ №1:
Вы можете использовать ту же технику, изменив альфа-символ для нижней части
Вы можете использовать переменные и рассчитать, на сколько альфа должна быть изменена, например, с 1-10, 10 альфа должна быть уменьшена или увеличена таким же образом.