123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- let incId = 1;
- const noop = function () { };
- class GImage {
- static GBridge = null;
- constructor() {
- this._id = incId++;
- this._width = 0;
- this._height = 0;
- this._src = undefined;
- this._onload = noop;
- this._onerror = noop;
- this.complete = false;
- }
- get width() {
- return this._width;
- }
- set width(v) {
- this._width = v;
- }
- get height() {
- return this._height;
- }
- set height(v) {
- this._height = v;
- }
- get src() {
- return this._src;
- }
- set src(v) {
- if (v.startsWith('//')) {
- v = 'http:' + v;
- }
- this._src = v;
- GImage.GBridge.perloadImage([this._src, this._id], (data) => {
- if (typeof data === 'string') {
- data = JSON.parse(data);
- }
- if (data.error) {
- var evt = { type: 'error', target: this };
- this.onerror(evt);
- } else {
- this.complete = true;
- this.width = typeof data.width === 'number' ? data.width : 0;
- this.height = typeof data.height === 'number' ? data.height : 0;
- var evt = { type: 'load', target: this };
- this.onload(evt);
- }
- });
- }
- addEventListener(name, listener) {
- if (name === 'load') {
- this.onload = listener;
- } else if (name === 'error') {
- this.onerror = listener;
- }
- }
- removeEventListener(name, listener) {
- if (name === 'load') {
- this.onload = noop;
- } else if (name === 'error') {
- this.onerror = noop;
- }
- }
- get onload() {
- return this._onload;
- }
- set onload(v) {
- this._onload = v;
- }
- get onerror() {
- return this._onerror;
- }
- set onerror(v) {
- this._onerror = v;
- }
- }
- export default GImage;
|