赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 3197 |
最后登录 | 2024-6-22 |
在线时间 | 40 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 80
- 在线时间
- 40 小时
- 注册时间
- 2012-7-3
- 帖子
- 98
|
refresh无非就是一个方法,你调用它或者不调用它,它都在那里。
教程中说的是一个需要调用大量资源的方法并不是特指名字叫做refresh的。
refresh一般用来处理图像,可以理解为重画。这也是和update的区别。
举个栗子{:2_257:}- #encoding:utf-8
- #==============================================================================
- # ■ Window_Help
- #------------------------------------------------------------------------------
- # 显示特技和物品等的说明、以及角色状态的窗口
- #==============================================================================
- class Window_Help < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对象
- #--------------------------------------------------------------------------
- def initialize(line_number = 2)
- super(0, 0, Graphics.width, fitting_height(line_number))
- end
- #--------------------------------------------------------------------------
- # ● 设置内容
- #--------------------------------------------------------------------------
- def set_text(text)
- if text != @text
- @text = text
- refresh
- end
- end
- #--------------------------------------------------------------------------
- # ● 清除
- #--------------------------------------------------------------------------
- def clear
- set_text("")
- end
- #--------------------------------------------------------------------------
- # ● 设置物品
- # item : 技能、物品等
- #--------------------------------------------------------------------------
- def set_item(item)
- set_text(item ? item.description : "")
- end
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh
- contents.clear
- draw_text_ex(4, 0, @text)
- end
- end
复制代码 这个是VA的Window_Help
来看看他是怎么使用 refresh的
{:2_253:}首先看 refresh里到底有什么- def refresh
- contents.clear #内容清空
- draw_text_ex(4, 0, @text) #写字
- end
复制代码 啊,很简单的两句,写的是重绘这个Help窗口。先清空,然后画上文字。
在这里可以看出refresh 的常规用法:重绘窗口内容
{:2_253:}其次来看 哪里调用了refresh这个方法- #--------------------------------------------------------------------------
- # ● 设置内容
- #--------------------------------------------------------------------------
- def set_text(text)
- if text != @text
- @text = text
- refresh
- end
- end
复制代码 在这,设置内容。如果内容和上一次的内容差异,那么调用 refresh来重画窗口=>更新一下文字内容。
例如物品窗口,每一次更改物品指针,都会调用帮助窗口的 set_text来更新一下内容。
由此可见,refresh不是窗口创建完了就没事了,当窗口需要更新重画的时候,还要调用它。
{:2_251:}废话完毕,现在开始逐条回答楼主问题:
Q:这个refresh方法和其他方法相比有特殊的地方吗?我用其他方法而不用refresh会有区别吗?
A:无,至少我认为没有区别,他们都是方法,无非就是名字问题,可能大部分人都习惯遵循使用refresh方法而不是再去定义一个莫名其妙的方法
虽然他们的功能或许一样。
Q:哪些命令应该由refresh处理呢?
A:重绘窗口内容
免责声明:这个帖子是本人稀里糊涂路过时所留,本人脚本为自学,没有接受过系统培训,如果有纰漏或错误之处还望各位大神大触及时指出纠正,以免误人子弟。
|
评分
-
查看全部评分
|