مزيد من التحكم عند القيام بالرسوم المتحركة في DashCode/Dashboard؟
-
30-09-2019 - |
سؤال
في الآونة الأخيرة ، أعطي لقطة أخرى إلى DashCode ؛)
إنه لشيء رائع. هل أعتقد أنه ليس موثقًا جيدًا. لدي كائن stackLayout مع عرضين فقط فيه ، واثنين من الأزرار التي تبادل المشاهدات مع انتقال. (عرض العرض بيانات صفيف كبير ، list
) الرسوم المتحركة والتحولات تعمل بشكل مثالي. المشكلة هي ، عندما أضغط على زر أثناء قيامه بالرسوم المتحركة ، تبدأ مرة أخرى ويبدو قبيحًا (إذا كان لدي مشاهدات n لمجموعة من مواقف البيانات من الطول ، فلا ينبغي أن يكون هذا يمثل مشكلة ، لكن هذه ليست حالتي).
أريد تعطيل الأزرار أثناء إجراء الرسوم المتحركة.
هل هناك أي رد اتصال أو تفويض أو بأي طريقة يمكنني الحصول على إشعار عند الانتهاء من الرسوم المتحركة؟
هذا ما فعلته:
function _changeView(transitionDirection, newIndex){
//Create transition
var newTransition = new Transition(Transition.SWAP_TYPE, 0.9, Transition.EASE_TIMING);
newTransition.direction = transitionDirection;
//I only have two views. I use currentView's id to calculate not current view id and change text inside of it.
var stackLayout = document.getElementById('stackLayout').object;//stackLayout object
var nextViewId = (stackLayout.getCurrentView().id == 'view1')? '2':'1'; //
//change the text in the view that is going to appear
document.getElementById('text'+nextViewId).innerHTML = list[curIndex];
stackLayout.setCurrentViewWithTransition('view'+ nextViewId, newTransition, false);
}
function goPrevious(event)
{
curIndex--;
if(curIndex < 0){
curIndex = list.length-1;
}
_changeView(Transition.LEFT_TO_RIGHT_DIRECTION, curIndex);
}
function goNext(event)
{
curIndex++;
if(curIndex >list.length - 1){
curIndex = 0;
}
_changeView(Transition.RIGHT_TO_LEFT_DIRECTION, curIndex);
}
المحلول
في النهاية وجدت إجابة على هذا. إليكم كيف فعلت ذلك:
document.getElementById('stackLayout').object.endTransitionCallback=function(stackLayout, oldView, newView) {
//PUT CODE HERE USING stackLayout, oldView, newView to show params
}
في الواقع ، يمكنك العثور على جميع أساليب stacklayout وخصائص في ملف stacklayout.js في مشروعك !!
أتمنى أن يساعدك هذا