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