设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 5990|回复: 14
打印 上一主题 下一主题

[搬运汉化] 信息提示插件三个 - CommonPopupCore & GetInformation & PopupMessage

[复制链接]

Lv5.捕梦者

梦石
16
星屑
11223
在线时间
1323 小时
注册时间
2020-3-21
帖子
357

极短23获奖

1
发表于 2021-5-9 00:09:24 | 显示全部楼层
CommonPopupManager.setPopup函数下读取插件指令中的内容时有一个地方写反了。
大概是第565行的
arg[code] = (Number(value) !== NaN) ? value : Number(value);
应该为
arg[code] = (Number(value) !== NaN) ? Number(value) : value ;
修改后测试成功。(字符串的背景色调和图片正常调用)

这里还有一个有趣的事:
如果插件指令的back:后面是非-1和0的数字的话,那么就会按照作者描述的那样读取img/system下的popup_back%d.png(%d是指bakc后的数字)。
但是back:后不是数字的话,就会读取img/picture下的"back后文字.png"。

评分

参与人数 3+3 收起 理由
wazse88 + 1 大佬
1071257831 + 1 NB
白嫩白嫩的 + 1 9大佬666

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv5.捕梦者

梦石
16
星屑
11223
在线时间
1323 小时
注册时间
2020-3-21
帖子
357

极短23获奖

2
发表于 2021-5-9 18:48:42 | 显示全部楼层
本帖最后由 仇九 于 2021-5-9 18:50 编辑
Zeldashu 发表于 2021-5-9 15:07
感谢大佬,确实能正常调用了,只是这个插件调用图片还存在一些问题:

不管是修正前还是修正后 ...


在已经将565行改了的前提下,解决这又一个问题的最简单的办法是将第246行的bitmap.clear();这一条删去或者注释掉。
原因是缓存:
Sprite_Popup.prototype.drawBackRect这个函数是用来绘制图片/背景颜色的,当背景是图片且第一次读取这张图片时,背景图片被载入此函数下的临时变量bitmap里。
mv/mz在读取图片时,也会将这张图片作为缓存储存在ImageManager._imageCache里,这样做是为了下一次读取时直接读取缓存,不再读取源文件,增加重复读取时的效率。
但是在完成所需操作后,函数里执行了bitmap.clear(),这一条指令的作用是将图片清除掉,以节省一些空间。
但这个指令是直接对bitmap操作的,ImageManager._imageCache下此图片的缓存也会被clear掉,这样的话,这张图片的缓存就是空白了。
当第二次读取这张图片时,检测到之前读取过这张图片,所以直接调用了ImageManager._imageCache下这张图片的缓存,但是它已经是空白的了,所以第二次及之后读取时就都读取是一张空白图片了。
这里的问题就在于bitmap与ImageManager._imageCache下此图片的缓存指向的是一个内存地址,所以不能直接clear,一个方法就是直接删掉,毕竟第247行的bitmap = null也已经同步删除了bitmap及缓存,所以这一步是没有意义的。
我的想法:
不过想想删掉缓存也不是个好主意,所以同时把247行的bitmap = null也删去比较好,这样既能保留缓存加快第二次读取速度,bitmap这个指向图片对象的地址的临时变量也会在函数执行完后自动被删掉。
我想,写上clear是一种比较好的习惯吧,但是这里直接clear不合适。
其他:
这些是自学的,所以要是有些地方说错了希望有大佬指正。

评分

参与人数 1+1 收起 理由
Zeldashu + 1 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
16
星屑
11223
在线时间
1323 小时
注册时间
2020-3-21
帖子
357

极短23获奖

3
发表于 2022-10-8 22:57:16 | 显示全部楼层
小秋橙 发表于 2022-10-8 21:00
形如 xxx !== NaN 的式子是恒成立的,应该用 Number.isNaN(+xxx) 来判定吧。

啊,是啊,一年后的我再看我的回复发现的确是这样,发现过去的自己这些点的确不太清楚!感谢你的回答。
不过当时我这样写了居然没有问题,也是幸运了,哈哈哈……

点评

不过我好像一直在用isNaN,那Number.isNaN和isNaN有区别吗……  发表于 2022-10-8 22:58
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-12 17:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表