مزيد من التحكم عند القيام بالرسوم المتحركة في DashCode/Dashboard؟

StackOverflow https://stackoverflow.com/questions/4335864

سؤال

في الآونة الأخيرة ، أعطي لقطة أخرى إلى 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 في مشروعك !!

أتمنى أن يساعدك هذا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top