Fabric JS自定义旋转图标仅在iPhone&的Google Chrome浏览器中可见 [英] Fabric js custom rotate icon is not visible in only iphone's google chrome browser

查看:0
本文介绍了Fabric JS自定义旋转图标仅在iPhone&的Google Chrome浏览器中可见的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在Fabric js中创建了一个编辑器。我正在使用定制的旋转图标,这并不是只有在iPhone的谷歌Chrome中才能看到。请给我一个解决方案。 我用于自定义图标的代码

isVML = function() { return typeof G_vmlCanvasManager !== 'undefined'; };
            // overriding _drawControl method
            fabric.util.object.extend(fabric.Object.prototype, {
                hasRotatingPoint: true,   
                cornerSize: 25,
                _drawControl: function(control, ctx, methodName, left, top) {
                    if (!this.isControlVisible(control)) {
                        return;
                    }
                    var size = this.cornerSize;
                    isVML() || this.transparentCorners || ctx.clearRect(left, top, size, size);

                    if(control !== 'mtr')
                        ctx['fillRect'](left, top, size, size);

                    var SelectedIconImage = new Image();
                    if(control === 'mtr') {
                        SelectedIconImage.src = 'http://s1.postimg.org/6lqguc8rf/rotate.jpg';
                        ctx.drawImage(SelectedIconImage, left, top, size, size);
                    }
                }
            });

这是jsfiddle

推荐答案

可能是图像加载问题。

http://jsfiddle.net/2XZHp/85/

    if(control === 'mtr') {
            if (this.isLoaded) {
                  ctx.drawImage(this.selectedIconImage, left, top, size, size);
            } else {
                var self = this;
                this.selectedIconImage.onload = function() {
                self.isLoaded = true;
                ctx.drawImage(self.selectedIconImage, left, top, size, size);
            }
            this.selectedIconImage.src = this.iconSrc;
         } 
    }

首先将您的小提琴更新到Fabricjs 1.5.0,此功能在1.4.0上不起作用。

如您所见,您在每次绘制帧时都会重新加载图标。这根本不是最佳选择,并且可能会导致draImage函数绘制一个静止刷新的图像元素。

在iPhone上尝试此小提琴并检查它是否工作正常,可能不是一开始选择,但至少是在移动对象时。

这篇关于Fabric JS自定义旋转图标仅在iPhone&的Google Chrome浏览器中可见的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆