首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KineticJS globalCompositeOperation和安卓支持

KineticJS globalCompositeOperation和安卓支持
EN

Stack Overflow用户
提问于 2014-08-26 00:51:18
回答 1查看 75关注 0票数 0

为了能够使用context.globalCompositeOperation,我尝试了几次,并在KineticJS中将其设置为destination-out

我做了一个继承自Kinetic.RectangleKinetic.CustomShape (我的表面让它一点一点消失)。然后我在我的初始化方法中使用了this.sceneFunc()来使用一个自定义方法。这个想法是,根据用户输入,我将绘制一个将从基本矩形中删除的路径。

与在上一个KineticJS库中一样,赋予场景函数的上下文不是常规上下文,我使用context._context来访问本地对象,并使用它来设置我所谓的“删除”路径

代码语言:javascript
复制
customDrawingMethod: function (context) {
  Kinetic.Rect.prototype._sceneFunc.call(this, context);
  if ( I need to remove pieces of my rectangle) {
    var path, point, i, j;
    for each point in my path {
      point = first point;
      if (point !== undefined) {
        context.beginPath();
        context._context.globalCompositeOperation = "destination-out";
        context._context.strokeStyle= "#FC0";
        context._context.lineWidth = 25;
        context._context.lineCap = "round";
        context._context.lineJoin = "round";
        ... the actual drawing goes there...
      }
    }
  }
},

在我的桌面浏览器和大多数模拟器上,一切都运行得很好,但是...我在一些安卓设备(比如三星Galaxy Note )和一些manymo模拟器(https://www.manymo.com/emulators/83/connect)上遇到了问题。问题是,在这些设备上,我的删除路径永远不会绘制,除非我删除了行context._context.globalCompositeOperation = "destination-out";,或者如果只是将destination-out值更改为其他值,如xor (这会产生有趣的结果,但不是我想要的……)

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2015-07-31 20:57:17

我知道现在已经很晚了,但这可能会对其他人有所帮助。

下一个解决方案对我来说是有效的:

代码语言:javascript
复制
canvas.style.opacity = 0.99;
window.setTimeout(function() {
    canvas.style.opacity = 1;
}, 0);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25490663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档