Join Virtual JavaScript Days 2026 and Get a Free Participation Certificate – Register Now!

Creating Beautiful Drawings Using Sencha Ext JS – Part 2

December 16, 2015 1856 Views

Get a summary of this article:

Show

In Part One of this series, we learned about sprites and their attributes, how they differ from configs, and how to change them. All of the changes we made to our examples were applied immediately. In this article, we’ll look at animating our sprites.

Sprite Animations

In the Draw package, we animate sprites using animation modifiers that apply changes to sprite attributes.

The animation modifier of a sprite can be accessed via its getAnimation accessor method. The two main configs of an animation modifier are duration and easing. Let’s use those to animate a sample circle sprite:

circleSprite.setAnimation({
    duration: 1000,
    easing: 'elasticOut'
});
// Now this change to circle radius will animate automatically.
circleSprite.setAttributes({
    r: 100
});

Open in a fiddle

elasticOut is a built-in easing function. You can see all of these functions with previews in this Charts Kitchen Sink example.

Additionally, multiple attributes can be animated at once. For example, let’s change our initial three values to the following:

cx: 50,
cy: 50,
r: 30

Let’s also modify the easing:

easing: 'bounceOut'

Finally, let’s animate both horizontal and vertical centers of the circle:

circleSprite.setAttributes({
    cx: 200,
    cy: 200
});

Sencha Ext JS

Open in a fiddle

Notice how both attributes animate in sync, as both attributes use the same easing and animation duration.

But what if we want to have different animation durations for different attributes? We can do this using the customDurations config of the animation modifier:

circleSprite.setAnimation({
    duration: 1000,
    easing: 'bounceOut',
    customDurations: {
        cy: 3000
    }
});

Sencha Ext JS

Open in a fiddle

This will make the vertical center attribute (cy) animate 3 times more slowly than other sprite attributes (in this case, horizontal center, cx).

Finally, we can have custom easings assigned to specific attributes as well:

customEasings: {
    cx: 'easeOut'
}

Sencha Ext JS - Circle Sprite 3

Open in a fiddle

It’s important to note that animation is not limited to the simple number attributes we’ve examined in this guide. You can also animate colors, arrays, and even text!

For example, try animating color and array changes:

Sencha Ext JS - Circle Sprite 4

Open in a fiddle

Conclusion

As you can see, animating sprites is incredibly easy and flexible. The animation API is powerful enough to create beautiful and realistic animations right out of the box!

Have fun experimenting!

If you’d like to learn about sprite transformations, check out part 3 in this guide. You’ll find part 1 and part 2 of this blog series in the guide as well.

Recommended Articles

5 JavaScript Libraries Enterprise Teams Should Avoid Building From Scratch

Enterprise teams routinely invest substantial developer time building JavaScript libraries that already exist as mature, production-grade solutions. This article covers five high-cost component categories that…

How to Evaluate UI Component Libraries: 10 Criteria That Actually Matter

Choosing a UI component library shapes development velocity and application quality for years. This guide covers the ten criteria that matter most when enterprise teams…

Creating a Mobile Application with Ext JS and Capacitor

Introduction Modern mobile applications demand rich user experiences, cross-platform compatibility, and rapid development cycles. In this document, you will learn how Ext JS and Capacitor…

Building Real-Time Dashboards with WebSockets and Frontend Frameworks

Real-time dashboards have become essential in industries where users need instant visibility into changing data. Whether monitoring financial transactions, logistics operations, industrial systems, application health,…

Front-End Frameworks Compared in 2026: Performance, Use Cases, and Trade-offs

Front-end framework selection in 2026 centers on three critical decisions: complete platform versus ecosystem assembly, performance at enterprise scale, and long-term maintenance costs. Ext JS…

Enhancing Component Logic: A Developer’s Guide to Ext JS Plugins

In the world of Ext JS, reusability is king. While subclassing a component is a common approach to extend functionality, it often leads to rigid…

View More
JS Days Popup