Giter VIP home page Giter VIP logo

Comments (14)

PengJiyuan avatar PengJiyuan commented on May 30, 2024

抱歉没有及时回复orz...

  1. config中drag设置为false但是没有生效,是个bug,config中所有的配置都不能设置fasle.. 已经修复啦。3.0.0-beta.1

可以直接下载源码或者npm下载.

npm install omg.js@latest
  1. 你的意思是你在canvas上手动添加了个事件(addEventListener) ?要是这样的话确实会有冲突,这个稍等,我会增加一个接口 (在canvas上添加事件) (尽量在今天搞定, 有点儿忙。。)

  2. 主要是现在我正在调整api接口,还没定下来最终的接口规范,一些新功能也在添加中。再加上时间不太够,所以现在使用需要小小的看一下源码。。我的demo中也基本都是最新的了,可以参考一下。
    之后有时间了我会完善一下文档啦,见谅。。

from omg.

mgzu avatar mgzu commented on May 30, 2024

先谢谢您了,百忙之中,能够抽出时间

  1. 首先我更换了版本,依然存在着圆点能够移动的问题,努力找原因ing(囧)。
  2. 其实我想问的是,如何解决重叠的元素之间存的事件冲突,例如位于背景图片之上的圆,当它们同时拥有点击事件时,我想要实现单击圆,圆的单击事件生效,而图片的单击事件并不生效(事实上它生效了)的效果,这个并不知道如何解决
  3. 对于手动添加事件,其实也可以用OMG类库中提供的方法,给背景图片添加单击事件,目前是使用
    stage.element.addEventListener('click',function(evt){ }
    给canvas添加的单击事件,我也尝试了给背景图添加单击事件,这个虽然方式不同,但是效果是一样的,并未存在问题。

PS:chrome debug没找到元素的初始化过程,只能用console.log()的方式找问题,效率较低

from omg.

PengJiyuan avatar PengJiyuan commented on May 30, 2024
  1. enableGlobalTranslate设置为false试试
  2. 我懂了,因为在事件触发的时候,点击到的图形其实是一个重叠的数组,但是只会触发数组最后一个(也就是最上层的一个),这样是比较符合逻辑的。其实是可以添加一个配置,触发全部数组的事件。这个没有冒泡机制,只能模拟,数组重叠的多了不好操控。

from omg.

mgzu avatar mgzu commented on May 30, 2024

不好意思,我的锅,zz了
初始化OMG时将enableGlobalTranslate参数设置错误,现已改成true,终于正常了

    const stage = omg({
        element: document.getElementById('Canvas'),
        width: 750,
        height: 450,
        enableGlobalTranslate: false
    })

from omg.

PengJiyuan avatar PengJiyuan commented on May 30, 2024

@mgzu ,我已经加上了全局的事件接口,用法如下:

stage.mousedown(function(e) {
  console.log(stage.utils.getPos(e));
});

stage.mousemove(function(e) {
  console.log(stage.utils.getPos(e));
});

但是代码没有打包发新版本,可以直接在github上下载源代码用。源码

from omg.

PengJiyuan avatar PengJiyuan commented on May 30, 2024

@mgzu ,已经添加removeChild, removeFirstChild, removeLastChild接口。用法如下:

stage.removeChild(rect);

stage.removeChild([rect, arc, line]);

stage.removeFirstChild();

stage.removeLastChild();

但是代码没有打包发新版本,可以直接在github上下载源代码用。源码

from omg.

mgzu avatar mgzu commented on May 30, 2024

好的,谢谢
请问使用这个全局的事件接口会和canvas内部元素的事件触发重叠么(就是点击元素后,canvas的单击事件会不会触发)

from omg.

PengJiyuan avatar PengJiyuan commented on May 30, 2024

重叠,会触发。

from omg.

mgzu avatar mgzu commented on May 30, 2024

@PengJiyuan
您好,现在要做以下几个功能,您看看是否正确

  1. 更换背景图片和其上的圆(这个会清空所有的child,重新加载图片和圆)
  2. 动态添加的功能,点击canvas,添加圆,点击canvas上的圆,显示相应信息

我目前的思路是

  1. 目前没有接口,我准备使用以下方法清空所有child
        stage.objects.splice(0,stage.objects.length)   //清空对象数组
        stage._objects = null   //也可以使用stage._objects.splice(0,stage._objects.length)
  1. 给一个btn添加点击事件,点击事件中给canvas添加点击事件(最后在移除这个事件)

时间比较紧,写的比较凌乱,不好意思啦

from omg.

mgzu avatar mgzu commented on May 30, 2024

上述清空所有child的方式,存在着元素移除,元素事件未移除的问题,重新添加元素后,会重复执行事件。现在还未找到解决方法

from omg.

PengJiyuan avatar PengJiyuan commented on May 30, 2024

Hi, 我针对你的场景做了一些功能改进。

移除所有元素,新加了一个方法,stage.removeAllChilds(), 这个方法清空stage.objects,但是仅仅是元素清空,事件重置需要重新调用

stage.show()

或者

stage.draw();
stage._event.triggerEvents(); 

使用最新包,直接下载源码或者npm:

npm install omg.js@latest --save

from omg.

mgzu avatar mgzu commented on May 30, 2024

好的
最近一直在忙着优化功能,没怎么看GitHub,谢谢您了

from omg.

PengJiyuan avatar PengJiyuan commented on May 30, 2024

@mgzu 现在已经支持基本的动画了,包括各种曲线的缓动,而且用队列的形式处理无限多个补间动画,最大限度的保障了性能。
之后对动画支持的范围会更加宽广~

Demo: http://omg.js.org

Api接口在README中。

from omg.

mgzu avatar mgzu commented on May 30, 2024

好的,看到更新的动画效果了(tip链接没问题,但是readme中的链接应该有问题 omg.js -> omg)

from omg.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.