lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: ningbnii
打印 上一主题 下一主题

关于LGraphics类的add方法问题

[复制链接]

37

主题

8

好友

9313

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

8#
发表于 2020-1-8 15:42:50 |只看该作者
ningbnii 发表于 2020-1-8 15:40
哦,我现在是将所有的点放到一个数组中,在mouse_move的时候循环所有点去绘制,在mouse_up的时候将数组置 ...

graphics.add加进来的东西,如果不用的话,你需要用graphics.clear来清除的
不回答与技术和引擎不相关的问题
回复

使用道具 举报

7

主题

1

好友

211

积分

帐下督

Rank: 2

7#
发表于 2020-1-8 15:40:14 |只看该作者
lufy 发表于 2020-1-8 15:09
不是的,画面上所有东西,即使它们不动,也是每帧全部擦除然后重绘的,不过开发者不需要关心这些
所谓的有 ...

哦,我现在是将所有的点放到一个数组中,在mouse_move的时候循环所有点去绘制,在mouse_up的时候将数组置空,但是这个时候add方法还在绘制,就会发现刚画的线条没了,所以我想如果add不去自动重复执行就没这个问题了,不知道有没有其他的方式可以解决
回复

使用道具 举报

37

主题

8

好友

9313

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

6#
发表于 2020-1-8 15:09:58 |只看该作者
ningbnii 发表于 2020-1-8 14:59
比如我定义一个画圆的方法,里面调用add去用原生canvas去画的
function drawingCircle() {
  drawing.grap ...

不是的,画面上所有东西,即使它们不动,也是每帧全部擦除然后重绘的,不过开发者不需要关心这些
所谓的有没有重复绘制,就是指在一帧内有没有重复
不回答与技术和引擎不相关的问题
回复

使用道具 举报

7

主题

1

好友

211

积分

帐下督

Rank: 2

5#
发表于 2020-1-8 14:59:54 |只看该作者
本帖最后由 ningbnii 于 2020-1-8 15:01 编辑
lufy 发表于 2020-1-8 14:14
虽然每帧重绘,但每帧就是绘制一遍啊,这个没什么不对的啊
画面上所有东西都是每帧重绘的,不然画面就成了 ...

比如我定义一个画圆的方法,里面调用add去用原生canvas去画的
function drawingCircle() {
  drawing.graphics.add(function (ctx) {
    // 画个圆
ctx.beginPath();
    ctx.arc(100,75,50,0,2*Math.PI);
    ctx.stroke();
    console.log(123);
  })
}

我觉得这个圆应该是静态的吧,我如果想让它动起来,应该是在ENTER_FRAME中添加对它的控制逻辑吧,
如果我没有监听ENTER_FRAME,它应该就绘制一遍才对劲吧
回复

使用道具 举报

37

主题

8

好友

9313

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

地板
发表于 2020-1-8 14:14:53 |只看该作者
ningbnii 发表于 2020-1-8 14:05
哦,就相当于写在了LEvent.ENTER_FRAME事件中吧,是否有方法让它只绘制一遍呢 ...

虽然每帧重绘,但每帧就是绘制一遍啊,这个没什么不对的啊
画面上所有东西都是每帧重绘的,不然画面就成了静态的了
不回答与技术和引擎不相关的问题
回复

使用道具 举报

7

主题

1

好友

211

积分

帐下督

Rank: 2

板凳
发表于 2020-1-8 14:05:48 |只看该作者
lufy 发表于 2020-1-8 13:20
graphics.add所添加的线,是会每帧绘制的(包括画面上所有的可见的对象,都是需要每帧重绘的),所以consol ...

哦,就相当于写在了LEvent.ENTER_FRAME事件中吧,是否有方法让它只绘制一遍呢
回复

使用道具 举报

37

主题

8

好友

9313

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

沙发
发表于 2020-1-8 13:20:05 |只看该作者
graphics.add所添加的线,是会每帧绘制的(包括画面上所有的可见的对象,都是需要每帧重绘的),所以console.log循环触发是正常的
不回答与技术和引擎不相关的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-5-19 21:23 , Processed in 0.053232 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部