Nested Container Input

Demonstrates how to handle input events on a Sprite that is nested inside multiple levels of Containers.

Nested Container Input, running
800 × 600
GitHub
class Example extends Phaser.Scene
{
    preload ()
    {
        this.load.setBaseURL('https://cdn.phaserfiles.com/v410');
        this.load.image('eye', 'assets/pics/lance-overdose-loader-eye.png');
    }

    create ()
    {
        const container1 = this.add.container(100, 100);
        const container2 = this.add.container(200, 200);

        const sprite = this.add.image(0, 0, 'eye').setInteractive();
        
        container1.add(container2);
        container2.add(sprite);

        // container1.setVisible(false);

        sprite.on('pointerover', function ()
        {
            console.log('over');
            this.setTint(0xff0000);
        });

        sprite.on('pointerout', function ()
        {
            console.log('out');
            this.clearTint();
        });
    }
}

const config = {
    scale: { mode: Phaser.Scale.FIT },
    type: Phaser.AUTO,
    width: 800,
    height: 600,
    backgroundColor: '#010101',
    parent: 'game-container',
    scene: Example
};

const game = new Phaser.Game(config);

More in Container52 examples