Project1
标题:
子类方法重定义后super的问题
[打印本页]
作者:
zh99998
时间:
2008-8-20 15:20
标题:
子类方法重定义后super的问题
我在Window_EquipItem里重定义了update方法,想在装备画面的刷新调用这个update而在其他菜单的刷新还调用默认的,但是update里有个super,这样装备画面更新时会两个update都执行,怎么办
(update的定义在Window_Selectable,Window_EquipItem < Window_Item < Window_Selectable) [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
水仙晶女
时间:
2008-8-20 15:44
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zh99998
时间:
2008-8-20 15:50
是VX
作者:
zh99998
时间:
2008-8-20 16:04
= =记错了,是< Window_Item,但是Window_Item没有重定义update,所以还是调用的Sclectable里的
删掉super不行,上面还有super,一直super到Window的
作者:
水仙晶女
时间:
2008-8-20 16:17
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zh99998
时间:
2008-8-20 16:19
thx,不过加反了,应该是如果是Window_EquipItem,那么只调用super
作者:
水仙晶女
时间:
2008-8-20 16:24
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zh99998
时间:
2008-8-20 16:33
呃……
从Window_EquipItem里更新:
Window_EquipItem ==> 重定义过的update ==> Window_Base的update ==>Window的update
其他地方更新:
Window_*** ==> Selectable的update ==> Window_Base的update ==>Window的update
作者:
水仙晶女
时间:
2008-8-20 16:38
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zh99998
时间:
2008-8-20 16:42
嗯,可以了[LINE]1,#dddddd[/LINE]
突然发现我会用alias了哈哈
alias tarot_update update
def update
self.is_a?(Window_EquipItem) ? super : tarot_update
end
作者:
水仙晶女
时间:
2009-6-12 08:00
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1