| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | /** * @example Image * * A Component subclass that adds a value to an image */Ext.require('Ext.panel.Panel');Ext.define('Ext.ux.Image', {    extend: 'Ext.Component', // subclass Ext.Component    alias: 'widget.managedimage', // this component will have an xtype of 'managedimage'    autoEl: {        tag: 'img',        src: Ext.BLANK_IMAGE_URL,        cls: 'my-managed-image'    },     // Add custom processing to the onRender phase.    // Add a ‘load’ listener to the element.    onRender: function() {        this.autoEl = Ext.apply({}, this.initialConfig, this.autoEl);        this.callParent(arguments);        this.el.on('load', this.onLoad, this);    },     onLoad: function() {        this.fireEvent('load', this);    },     setSrc: function(src) {        if (this.rendered) {            this.el.dom.src = src;        } else {            this.src = src;        }    },    getSrc: function(src) {        return this.el.dom.src || this.src;    }});Ext.onReady(function() {    var image = Ext.create('Ext.ux.Image');    Ext.create('Ext.panel.Panel', {        title: 'Image Panel',        height: 200,        renderTo: Ext.getBody(),        items: [ image ]    })    image.on('load', function() {        console.log('image loaded: ', image.getSrc());    });    image.setSrc('http://www.sencha.com/img/sencha-large.png');    });
 |