The Chromium Chronicle #33: View AnimationBuilder

व्यू में लेयर पर आधारित ऐनिमेशन का इस्तेमाल करके, वीडियो की परफ़ॉर्मेंस बेहतर हो सकती है. साथ ही, यह भी कम हो सकता है हालाँकि, उन्हें सेट अप करना काफ़ी मुश्किल है. कॉन्टेंट बनाने AnimationBuilder क्लास की मदद से, लेयर के लिए जटिलता को काफ़ी हद तक कम किया जा सकता है और उसे आसानी से पढ़ा जा सकता है ऐनिमेशन.

मान लें कि आपको इन दोनों के बीच लगातार होने वाला क्रॉस-फ़ेड ऐनिमेट करना होगा जैसे कि नीचे दी गई इमेज में दिखाया गया है.

यहां एक उदाहरण दिया गया है कि सीधे लेयर ऐनिमेशन एपीआई का इस्तेमाल करके, ऐसा कैसे किया जा सकता है.

auto primary_title_sequence = std::make_unique<LayerAnimationSequence>();
auto working_sequence = std::make_unique<LayerAnimationSequence>();
primary_title_sequence->set_is_repeating(true);
working_sequence->set_is_repeating(true);

primary_title_sequence->AddElement(CreatePauseElement(OPACITY, base::Seconds(2)));
primary_title_sequence->AddElement(CreateOpacityElement(0.0f, base::Seconds(1)));
primary_title_sequence->AddElement(CreatePauseElement(OPACITY, base::Seconds(2)));
primary_title_sequence->AddElement(CreateOpacityElement(1.0f, base::Seconds(1)));

working_sequence->AddElement(CreatePauseElement(OPACITY, base::Seconds(2)));
working_sequence->AddElement(CreateOpacityElement(1.0f, base::Seconds(1)));
working_sequence->AddElement(CreatePauseElement(OPACITY, base::Seconds(2)));
working_sequence->AddElement(CreateOpacityElement(0.0f, base::Seconds(1)));

primary_title_->layer()->GetAnimator()->StartAnimation(primary_title_sequence.release());
working_->layer()->GetAnimator()->StartAnimation(working_sequence.release());

AnimationBuilder का इस्तेमाल करके, वही इफ़ेक्ट बनाने का तरीका यहां बताया गया है. ऐनिमेशन, स्कोप से बाहर निकलने पर शुरू होता है.

AnimationBuilder()
    .Repeatedly()
    .Offset(base::Seconds(2))
    .SetDuration(base::Seconds(1))
    .SetOpacity(primary_title_, 0.0f)
    .SetOpacity(working_, 1.0f)
    .Offset(base::Seconds(2))
    .SetDuration(base::Seconds(1))
    .SetOpacity(primary_title_, 1.0f)
    .SetOpacity(working_, 0.0f);

इसके बजाय, आपको कौनसा कोड लिखना या पढ़ना चाहिए? सबसे अहम बात, AnimationBuilder ऐनिमेशन में कोई अतिरिक्त ओवरहेड नहीं किया जाता, क्योंकि इसका मक़सद, वीडियो गेम को आसान बनाने कई लेयर पर आधारित ऐनिमेशन बनाए जा सकते हैं. अगली बार इसे आज़माएं ऐनिमेट करना.

ज़्यादा मदद पाने के लिए, ईमेल करें chromium-dev@chromium.org पर जाएं.