赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 25775 |
最后登录 | 2007-4-13 |
在线时间 | 0 小时 |
Lv1.梦旅人 (禁止发言)
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 0 小时
- 注册时间
- 2006-10-5
- 帖子
- 75
|
以下引用美兽于2007-3-28 7:43:26的发言:
是JAVA的风格,对于这种时间杀手式的工作,实在力有所不及。
{/gg}这种不是Java的风格,跟java毫无关系,只是UI类库我参考了java的类库设计。。。
{/wx}这个商店是仿《大话西游IIonline》的,弹出的概念--如打开一个QQ窗口,只是弹出一个对话框在顶部,其它下面的东西正常显示,而RM默认是$sence切换的。。
{/fd}可能是你们习惯于RM的默认风格了,如果有用过其它语言来设计用户界面的会明白
——什么是组件及组件化带来的便利
简单地说,组件可以像积木一样搭起一个窗口,而每个组件内部是自己维护描绘和事件的,这样统一又便于重复使用,如按钮和标签,放到哪个窗口中都可以,只需要设置一些参数
而默认RMXP的UI并不是这样,UI类不是很通用,通常是定制的,普通常用的控件也找不到,而是用一种较为简单的方式,如Window_Selectable,这个东西可以作为列表、选项、表格的父类
一句话,RMXP默认UI类,用来设计自定义的,比较复杂的窗口时就非常不好用!
{/kuk}举个简单的例子,就拿商店
如果用Window_ShopCommand,有3个按钮,“购买”,“买卖”,“取消”,每次更新,我们都判断这3个按钮哪个被按下了,然后转向相应的事件处理函数,3个按钮时没什么关系,如果有5个,10个,那是不是要写case when 0...when 10 ?
如果用Button组件,可以为每个Button指定按下时的事件
@btn1.action = Proc.new{buy_action}
@btn2.action = Proc.new{sell_action}
@btn3.action = Proc.new{close}
......
而且每个按钮支持用图片背景(3张图片,分别为普通、鼠标移上,按下),或者其它修改,都容易多了,因为泾渭分明,修改这个组件的时候只要做到标准化就大大提高重用率!
谢谢,口水洒了一地{/gg}{/cy}
PS:第一次发帖,好多人鼓励我{/hx}我会努力的 |
|