插件集合帖
foobar2000插件包v0.0.4
提问的规范和技巧,发问帖必看。
foobar2000插件兼容性与故障检测
Foobar20000.9.6.8增强版8.22new!
Beta版本汉化更新 0.9.6.5 B1
Foobar2000基础帮助中心
无损音乐资源共享
标题格式化和媒体库查询表达式帮助 Foobar2000 1.0.1 Final 汉化版发布 new! changelog升级日志与翻译0.9.5.4 b1-0.9.6.2

[FUI配置] FUI 零件共享

[ 5898 查看 / 34 回复 ]

从CUI到PUI到CUI+SSP再到FUI,切身体会到原来梦中的Foobar2000当前只有用FUI才能打造。
自4月以来,FUI在短短一个多月里连珠炮式发布37个版本。个人在第一时间体验过其中的35个版本。虽然现在使用0.2.1,但0.0.1和0.0.5这两个版本依然值得怀念。
0.2.1实际应用已经四个多月,总体上十分稳定,高效,顺眼。完全可以作为日常使用,不必处于尝试的阶段。
如果搞过PUI和SSP,其实FUI的代码并不难。有时甚至觉得还比前者更合理,方便。
我不懂日语,英文也是一知半解,仍旧可以整出一个可用且符合个人习惯的界面来。所以,相信广大Foobar2000爱好者也可以从FUI这里感觉到这个界面的功能性。
我一直有一个想法,想把一些已经形成某项功能的独立代码整理出来与诸君共享和交流。这些代码,我们可以形象称之为零件。好长一段日子成天折腾新系统,现在新系统稳定下来了。回来看到论坛的FUI专栏业已成立,所以,又把这件事从想变成做了起来。
这些零件虽然不是完整的一个配置,但它们是组建配置的半成品件,在许多时候完全可以完美地取代功能类似的插件,从而促使实现以最少的插件实现一样多的功能,对最终成品相当有益处。所以放到FUI配置栏目中来。如果没有大不合适的话,从二楼开始,由我起头开始陈列FUI零件。希望得到大家的批评指正,更希望大家共同参与,把自己满意的零件分享出来。
如果您也愿意分享出零件,请至少表明以下这几个方面的内容,好方便用家。
1.零件功能
2.代码
3.使用方法以及注意事项


零件索引:

1.Autohide 靠边隐 27楼  作者:joh316
2.
3.

最后编辑kmpfor 最后编辑于 2009-11-04 10:09:55
本主题由 管理员 Smoking 于 2009-9-26 19:19:25 执行 设置精华/取消 操作
分享 转发
TOP

零件陈列 一

Nowplaying 找回当前节目功能
代码:
$pl_active(%pl_playingname%)$pi_select(%pl_activename%,%pi_playingindex%)
方法:
1.将代码复制到“TF”处,直接使用。
2.进一步制作成主菜命令,可供其他插件调用。
3.实例:这个例子实现在某个位置产生操作功能,当无播放状态下,点击可以播放,当播放状态,点击可以定位到当前播放节目,而右击具备暂停及继续播放功能。最后一句是功能提示。
//--now playing--
$map(%_id%,lbuttondown:'
$if(%playback_isplaying%
,$pl_active(%pl_playingname%)$pi_select(%pl_activename%,%pi_playingindex%)
,$mainmenu_execute('Playback/Play')
)',
rbuttonup:'$mainmenu_execute('Playback/Play or Pause')'
)
$map_rect(%_result%,0,0,$calc(0.5*%_cwidth%),$calc(0.07*%_cheight%))
$tooltip(%_id%,Now Playing / Pause<rightclick>,0,0,$calc(0.5*%_cwidth%),$calc(0.07*%_cheight%),font-name:Calibri,font-size:16)

Skip 跳过节目功能
代码:
$if(%skip%,$playback_control(next),)
方法:
把代码放在 New track 代码框任意处,建议置于起始处。既然路过,后面的代码也就没必要再读了。
注意:一旦跳过功能生效,跳过的节目就不会再播放。所以,设计按钮的时候要考虑到这一点。不然的话,要想再播放这个节目就难办了。
在这里,我们这样来处理,在同一个位置,用右键实现跳过的操作,用左键实现取消跳过的操作。因为跳过功能具备生杀大权,所以给它一个不常用的右键。

Skip As 跳过包含禁止字符的节目功能
代码:
//--skip As--
$if($or(
$regexpi(%title%,'(伴奏'),
$regexpi(%title%,'\(伴奏'),
$regexpi(%title%,'\(卡拉OK'),
$regexpi(%title%,'\(伴唱\)')
$regexpi(%title%,'off vocal'),
$regexpi(%title%,'less vocal')
),$playback_control(next),)
方法:
放在On Playback New Track 内,建议与Skip放在一起。两者可以分开,这样便于各自再加条件。如果不加条件,也可以合并。

Rating 曲目分级功能
代码:
//--rating--
$for(i,0,5,1,'
$puts(ax1,$calc(0.5*%_cwidth%))
$puts(ay,$calc(0.08*%_cheight%))
$puts(bw,30)
$puts(bh,16)
$tooltip(%_id%,Rating: %i%,$get(ax1),$calc($get(ay)+$get(bh)*%i%),$get(bw),$get(bh),font-name:Calibri,font-size:19)
$map(%_id%,lbuttondown:\"$contextmenu_execute(\"Custom Database/Set Rating %i%\",playing)\")
$map_rect(%_result%,$get(ax1),$calc($get(ay)+$get(bh)*%i%),$get(bw),$get(bh))
',escape:true)
方法:放在使用窗口的Open中,如果多窗口使用,先在User建一个功能性字段。
注意:1.有时放在Resize中,由于多次刷新,会意外地生出许多提示。如果一定要这么放的话,这时需要对Tooltip做个清除的处理。2.如果使用官方插件分级,Custom Database/Set Rating 这个地方做相应的修改就行了。

Rating Album 专辑分级功能
代码:
//--rating album---
$hash(ax,32)
$hash(ay,0)
$hash(bw,20)
$hash(bh,$calc(0.06*%_cheight%))
$for(i,0,5,1,'
$tooltip(%_id%,Rating Album: %i%,$calc(%ax%+%bw%*%i%),%ay%,%bw%,%bh%,font-name:Calibri,font-size:16)
$map(%_id%,lbuttondown:\"$contextmenu_execute(\"Custom Database/0%i%\",playing)\")
$map_rect(%_result%,$calc(%ax%+%bw%*%i%),%ay%,%bw%,%bh%)
',escape:true)
方法:与曲目分级功能相仿。但是不支持官方分级插件。

Playback Order 播放模式切换功能
代码:
//--Playback Order--
$popupmenu_remove(popup_pO)
$popupmenu_create(popup_pO)
$popupmenu_additem(popup_pO,Playback Order,'')
$popupmenu_additem(popup_pO,-sep1,'')
$popupmenu_additem(popup_pO,Default,'$mainmenu_execute('Playback/Order/Default')',
check:'$if($strcmp(%playback_orderindex%,0),1,0)')
$popupmenu_additem(popup_pO,Repeat playlist,'$mainmenu_execute(Playback/Order/Repeat $char(40)playlist$char(41))',
check:'$if($strcmp(%playback_orderindex%,1),1,0)')
$popupmenu_additem(popup_pO,Repeat track,'$mainmenu_execute(Playback/Order/Repeat $char(40)track$char(41))',
check:'$if($strcmp(%playback_orderindex%,2),1,0)')
$popupmenu_additem(popup_pO,Shuffle albums,'$mainmenu_execute(Playback/Order/Shuffle $char(40)albums$char(41))',
check:'$if($strcmp(%playback_orderindex%,5),1,0)')
$popupmenu_additem(popup_pO,Shuffle folders,'$mainmenu_execute(Playback/Order/Shuffle $char(40)folders$char(41))',
check:'$if($strcmp(%playback_orderindex%,6),1,0)')
$popupmenu_additem(popup_pO,Shuffle tracks,'$mainmenu_execute(Playback/Order/Shuffle $char(40)tracks$char(41))',
check:'$if($strcmp(%playback_orderindex%,4),1,0)')
$popupmenu_additem(popup_pO,Random,'$mainmenu_execute('Playback/Order/Random')',
check:'$if($strcmp(%playback_orderindex%,3),1,0)')
方法:
放在同窗口的Open中,然后由Map或者Button等调用。
如果将在多个窗口中调用,看情况确定放主窗口Open中,或者在User中建一个功能性字段。

Playlist Switcher 播放列表切换功能
代码:
//--switcher--
$popupmenu_remove(popup_4)
$popupmenu_create(popup_4)
$popupmenu_additem(popup_4,Playlist Switcher,'')
$popupmenu_additem(popup_4,-sep1,'')
$for(i,0,$calc(%pl_count%-1),1,'
$puts(list_Active,\"$pl_active($pl_getname(\"%i%\"))\")
$popupmenu_additem(popup_4,$ifequal(%i%,%pl_playingindex%,◆,$ifequal(%i%,%pl_activeindex%,■,  ))$pl_getname(%i%),$get(list_Active))
',escape:true)
方法:在User中建一功能性字段,然后放On Init 和On Playlist Activate等(比如列表建立、更名、删除)生成实际列表名单,以备命令调用。
最后编辑kmpfor 最后编辑于 2009-09-26 14:29:39
TOP

零件陈列 二

上一摊我们首先介绍了找回节目功能。这个功能看似很平凡,代码也十分简单,但它的应用却很必需很频繁。记得当初用PUI就仅仅因为这个“激活当前播放”功能而用了整一个CUI插件。
再说这个$if(%skip%,$playback_control(next),)跳过功能,这个示例其实也可以举一反三,比如你可以跳过无星(专辑同时也无星)的节目等等,当你的WAV都配了一个CUE,此时,可以仿这个功能跳过文件后叠为WAV的节目……简单一串代码,它的功能远强于那个Skip_dll插件。不但功能远强,而且可以在操作界面安插开关,应用无比灵活。
与跳过功能相配套的是单轨分级功能和专辑分级功能。这两个分级代码采用的定位法,分级结果可以采用定位,也可以对中。相当灵活。同时在定位和显示上,也可以做得很漂亮也可以做得很简洁。示例中的单轨分级布局是竖的,专辑分级是横。这个可以根据实际情况任意调整。顺便说一下,代码中有用Puts,也有用Hash的,前者要在循环内部,后者不必,它有全局性。通常能用Puts的地方最好别用Hash。总之,这个分级功能与整体界面很完美搭配,用起来会比用Track_info_mod等插件做的好得多。
播放模式切换与用WSHM做出来的相仿,只是一个钩一个点的区别。
上一摊的最后一个播放列表切换器,这是基本的列表切换。还可以在这个菜单上加上新建、更名、删除列表等功能,这样的话也就取代了那“下拉列表切换器”插件。也用不着PSS中普遍放不开的CUI中的列表切换器。而且这个比下拉那个好侍候。
紧接列表切换器,我们这一次就阵列一下节目切换功能:
Itemlist switcher 节目切换功能
代码:
//--Item Switcher--
$if($or($strcmp(%AtW_artist_state%,no_embed),$strcmp(%AtW_cControl_state%,no_embed)),
$popupmenu_remove(Itemlist)
$popupmenu_create(Itemlist)
//$popupmenu_additem(Itemlist,Item Switcher,'')
//$popupmenu_additem(Itemlist,-sep1,'')
$for(i,$calc(%pi_playingindex%-7),$calc(%pi_playingindex%+8),1,'
$puts(item_Focus,\"$pi_select(%pl_playingname%,\"%i%\",select:true,focus:true)$playback_control(play)\")
$popupmenu_additem(Itemlist,$ifequal(%i%,%pi_playingindex%,◆,$ifequal(%i%,%pi_activeindex%,■,  ))$if2($wstrsplit($pl_getmeta(\"%title%\",%pl_playingname%,%i%),30,0),^_^)
,$get(item_Focus))
',escape:true)

方法:这个放在New Track中,建议放在尾部。这里我们给这个功能加一个条件,就是If这一句。有了这个条件,当我们不需要的时候,它就不会每曲都要运算一次,节约能源。这个应当算好习惯。
注意:通常这个功能用于悬浮窗或者单独出现的控制台中。需要这个功能的时候需要开启 播放跟随光标。这个例子支持显示30个汉字60个英文。如果想全句显示可以拿掉$wstrsplit(X,30,0),X部分留着。
接着要整理 ArtViwer 专辑图片功能。这个功能我们可以定制多种很不同的显示需求,情况比较复杂。下一摊我们再仔细陈说。这里说句闲话。现在可能普遍认为FUI很难。其实它真的没有想象的那么难。PUI和PSS都过来了,我觉得FUI不会比它们难。难的是它还没有被熟悉。其实我对计算机知识非常外行,我是一个音乐深度爱好者,对音乐下的功夫一千倍于对Foobar2000的研究。因为音乐的需要我们用起Foobar2000,因为音乐的需要我们选择FUI。
最后编辑kmpfor 最后编辑于 2009-10-02 15:48:15
TOP

也曾有折腾FUI的冲动,但看过bense与jensen那篇长长的论战之后,决定转向CUI,但看到FUI能省去系统窗口,有点让我冲动,看到楼主也在研究FUI,精神可佳,但我更希望楼主能拿出一个配置完整的界面来,让我们来学习,目前只有bense 一个FI可供参考,实例实在是太少了,
    另外FUI有很长一段时间没有更新了,也不知道作者是否还有更新的打算,如果作者都放弃了,我们也就没意义了……
    之前讨论FUI最大的问题是效率问题和刷新问题,也不知道是否有所改善? 你也提到“总体上十分稳定,高效,顺眼”,你一定有自己的配置了,把你的配置打包上来吧。
音乐知我心,我魂随律动
TOP

回复 4# gdzqj88 的帖子

“看过bense与jensen那篇长长的论战之后”
请问他们的长篇论战何在?可否给个链接?我很久没来了,看来漏掉许多精彩。

FUI最大的问题肯定不是效率和刷新。这个问题属于CUI+PPS。
FUI最大的问题是我们对它不熟悉。甚至还没接触就不敢接触了。

FUI已经经历37个版本,可以说它是超速成长的。几个月不更新。说明什么我也不知道。但是,几个月用下来,起码自己知道即使不再更新,以现状用下去也可以满意相当长的时间。至少,当前没有别的更好的选择。总之,虽然问题存在,也有一些已知的小Bug,但不影响整体应用。

5月份的时候,我曾经发上来一个完整的配置。不过那是全屏用的,只有一种屏幕尺寸可用。同时我在改用两个插件后,没有处理好,存在一处闪烁的问题。然后忙别的去了。

近段时间因为一台新本本要用,就开始改造。现已基本完工。不过还是英文的。我感觉本坛里不喜欢英文的,多少担心发了也是白发。其实,我也想过要做成中文的,但是最终会做得一些中文的一些英文。因为主要插件没人汉化。我最多只能做到表面中文的。
TOP

我接触过FUI一段时间,太复杂了,而且我找不到非日文的说明文档。我觉得FUI注定只能成为很小众的玩意。
TOP

回复 6# fancojazz 的帖子

http://foobar2000.ru/forum/index.php?PHPSESSID=6601d50ab888b15d7fc5765c5f09c621&/topic,1798.msg24333.html#msg24333

这里有人通过G自动翻译了。有些译得离谱了,不过可以参考。聊胜无。

要有翻成中文的就棒了。

互相学习,广泛交流,只要经得考验的好,总有大众起来的一天。
TOP

不好意思,是我搞错了,我说的那个贴子是你发起的那个,跟bense等高手讨论了很多的那个长贴,讨论最多的还是刷新和效率问题,如果我要尝试FUI,肯定是要能隐藏windows窗口边框,并且不在全屏下使用。否则我不会用它。但现在感觉很难入手,主要是它的语法现在基本看不懂。……,要不然,很想去尝试一下FUI。
音乐知我心,我魂随律动
TOP

回复 8# gdzqj88 的帖子

这个我就有印象了。也许他们做得更深入,所以在前头遇到了刷新和效率的问题。我一直就不觉得这是什么大问题。

我现在,不,是一直以来,刷新都很迅速,效率也很高。

如果英文能接受的话,过些日子,我把非全屏的发出来,那肯定是无标题栏的。边框还是要的,当然也可以不要。做成可要可不要的也行。总之,夸张地说,几乎是只有想不到,难有做不到。

我放了一张现在的图在原来贴中,感兴趣的话,先看看。您可以想象一下无边框的情景。如果您一定要无边框,我可以单独给定制。(查一下FUI专栏就看到了)
TOP

我还是要FI那种有边框的,但不是系统那种窗口边框。很期待你的配置,我要慢慢来学。
音乐知我心,我魂随律动
TOP

呵呵,的确FUI很小众。这个当初我没有想到,难道是全代码控制吓退了?又或者刷新的困难吓退了尝试的人?

我的F1,如果你使用过,感到刷新效率有问题吗?应该没有。关于刷新,主要是它不是自动的,而是代码控制的,这是和PSS的根本区别,如果你掌握了技巧,不管是否去掉标题栏,刷新效率都没有问题,但有一点,当去掉标题栏时,刷新窗口会闪烁,使用标题栏则刷新不闪烁,如果内嵌了窗口,则不管是否使用标题栏,都会闪烁。
首先,说下窗口的刷新技巧:在Resize里:
开头写:$clearobject(%_id%,redraw:false,event:resize)
结尾写:$updatewindow(%_id%)
中间写那些执行代码。
需要刷新窗口时,比如On Playback New Track,使用:$updatewindow(MAINART,event:resize)
这样的原理,其实就是,刷新前,清除所有的本窗口的对象。
这样刷新就没问题了。

其次,bug是有的,我使用了许多许多的技巧,最后都正常使用了,使你感觉不到他们的存在。当然,当你自己开发时,你一定会遇到这些bug。而你读我的代码可能,不一定知道我是怎样避免了他们的,所以你即使使用了首先的方法,还是会感到FUI没办法使用。这需要你多方面尝试。

其中一个bug是:按钮的movectrl问题。你resize一个窗口,随着窗口大小移动的按钮,会在窗口出现多个按钮,乱七八糟。我使用了两个技巧来避免它:1、在load里生成按钮,同时在某个固定的不随窗口大小移动的位置生成所有的按钮。2、在resize里movectrl到它的位置,这就没有问题了。

另外一个bug是:FUI对相对路径的支持问题,主要发生在窗口内的子面板身上,比方说PSS和ELPlaylist,使用
$imageabs(x,y,w,h,'./tag/mood/mood.png',nokeepaspect,,200)
会在刷新几次后,丢失相对路径,找不到图片了,最后只好改设了绝对路径避免。

现在,我的F1,已经使用技巧避免了这个问题,不需要设置绝对路径也没有这些问题了,这都是千万次尝试得到的技巧。
当初发布有人要求懒人包,我说办不到,就是因为这个绝对路径,现在没问题了,我打一个懒人包,随便解压后,就可以使用了。或者在新安装的foobar里,导入F1配置,直接使用就可以了,不需要再设定什么,连txt也省略了。

还有一个bug,就是滚轮代码不工作。其实我写的封面代码里是有滚轮切换的,但它就是不工作,我也没有找到问题所在。它的刷新速度比WSHmod和封面插件比也不落后。

最后,使用FUI,我现在能做到这样:一切在FUI、WSHmod、ELPlaylist里的变量都能使用图形界面来设定:包括背景图片,颜色,字体(名称大小颜色),语言(任何系统支持的语言,和内核无关),封面来源一次搞定,多个地方使用,内嵌布局等等,这样的设想就是说,使用者不再需要懂任何的FUI代码,就能使用了和设置自己想要的样子了。

这需要很多时间,暂时就做了个开头,证明了所有的设想都是可以实现的。除了ELPlaylist里的封面来源,还要看下代码页,其他的变量就统一在图形界面里一次搞定就可以了。部分功能在CUI+PSS下一样能实现,不是全部能做到。
最后编辑bense 最后编辑于 2009-09-27 17:59:13

                     

不是所有时间久远的都可以成为经典,不是所有的人都可以重新演绎经典。

在那片青色的山坡我要埋下所有的歌,等待着终于有一天成为世间的传说 。

TOP

当初诟病CUI+PSS的时候,和现在的局面又不同了。CUI和PSS、WSHmod时不时更新,FUI从0.2.1再没更新。一进一退,优劣可能互换,现在还不能说CUI就好过FUI了,但是很多性能都赶上来了,PSS全局变量的出现,WSHmod的更新都弥补和补充了许多新性能给CUI,这对FUI却意义不大,因为它的绝大部分功能都已经在FUI里提供了,不需要借助这些插件实现,并且PSS和WSHmod实现和FUI实现的区别也不大。

问题是FUI不再更新,我是否还有必要花大精力下去,实现所有的界面因素,图形界面设定,表示怀疑。
总的说,还是喜欢FUI的控制方式,它不容易上手的原因就是,修改要懂代码,懂代码也不一定找到它在哪个过程了,好在有个general的All Scripts过程,所有的代码都在,copy出来,查找很方便就知道要修改的代码在哪里。
相对而言,还是非常不欣赏CUI的控制方式。散落在无数个地方,调整起来更困难。

如果作者不放弃,我还是觉得FUI的方式优越,如果cui不放弃,而fui放弃,那就没办法比较了。

最近我偶尔也在想,如果出现一个WSH UI会怎样?最后的感觉是更加曲高和寡,使用者更少,能驾驭,有兴趣驾驭的人,还是全球那么几个人而已,因为技术门槛更高了。可能这也是UI开发者迟迟不想搞的原因。但不管怎么说,WSHmod绝对是个划时代的NB插件!
最后编辑bense 最后编辑于 2009-09-26 22:51:35

                     

不是所有时间久远的都可以成为经典,不是所有的人都可以重新演绎经典。

在那片青色的山坡我要埋下所有的歌,等待着终于有一天成为世间的传说 。

TOP

如果WSH UI出现,我觉得一定不会少人用的。代码复杂度不是问题,PSS和PUI那种乌七八糟的代码都那么多人用。FUI用的人少,我认为其主要原因在于没有英文的说明文档。日文的文档对老外来说就是天书,也只有日本人能做出几个界面来,除了日本人,世界上最能看懂日文的人,也就是我们中国人了~~~另外FUI在HA论坛上没有先驱者做宣传和培训,也造成了FUI在“闭塞”的老外中无人知晓的情况……
而WSH UI就不一样了,虽说门槛高,但懂JS货VB脚本的人绝对百倍于懂TF脚本的人(原因就不用说了),而且这些人中不乏专业的程序员,插件作者只要给出简单的接口说明(这个可以用VC自动生成),有脚本基础的人就能迅速上手。
WSH UI才是真正划时代的UI,我一直在期待,Arco和Theo都已经让我失望了………………

另外,“CUI的控制方式”我认为是非常好的,注意这里特指的是“CUI”,CUI的设计理念及其默认的面板都非常的完善,是PSS这种畸形的插件破坏了它完善的界面解决方案,想搞的很帅而又基于这种本来就不以帅为目的的UI插件,结果就搞出了现在这种不伦不类的界面解决方案……造成了很多麻烦,其实默认的CUI加上albumart、albumlist等插件做出来的界面,还是非常稳定好用的。
我的作品,全部在我的Blog里首发,欢迎访问:
jensen.blog.5d.cn
TOP

我承认CUI稳定,除此外,也是乏善可陈。
撇开PSS,丢开ELPlaylist。单纯用cui,光是播放列表视图,要设定的选项页,无法计数。常规、分组、分栏、全局;每个分栏,又分选项、脚本;每个脚本又分显示、样式、排序;全局又有样式、变量。。。乘下来,数不清,翻又翻,翻到头都晕,只有脑残才会开发这种形式!
全世界,脑残少之又少,所以,基本没有人再使用cui的播放列表视图!但是,它的列表视图出来的效果还不比ELPlaylist差!我也承认!
但这种方式,就是脑残!!!我从开始,到现在,到将来,都不打算改变看法!再翻颜色、字体、分栏用户界面还有六个选项卡等着你!没有人能数得清它用了多少选项卡!!!每个选项卡里又散放着无数的输入框,下拉框,单选多选,我真是搞不明白,多简单的问题,搞这么复杂。

我始终都认为:CUI作者不知道什么叫:界面友好!
我们都用过千百个软件,用户界面而言,cui是我见过最蠢的!CUI作者一定是个脑袋极其复杂的家伙,这家伙极其聪明,我认为一定是。可以说比98%的cui使用者都聪明。这世界就是这样,你跟所有人都不同,那就是个精神病,只好送精神病院!

ELPlaylist的毛病缺点也不少。但就是广泛得到运用,毫无疑问,它比CUI自带的播放列表更容易控制!

CUI,不得已而使用之。
撇开具体技术细节和bug,就整个UI的架构,FUI比CUI高不知道多少数量级!弄通了它的简单的技巧,实在是感觉到它将复杂的问题简单化,与CUI的方向是截然的反向。cui是将简单的问题引向复杂,貌似上手简单,点一点,选一选就可以用了,其实,它复杂得很!几乎包罗了一切界面要用的东西。而FUI诞生时间太短,甚至有一些的低级的bug,他妈又不管,预示着这些bug可能到它死都不可能再改善,FUI就显得匆忙而粗糙。

就按钮而言,CUI自带的是全世界有史以来最丑陋的了。从DOS3.0时代起,我从没有这么丑陋的按键。FUI没有这么丑,是因为它连按钮都不提供,哈哈。如果不学习它的代码,fui就是没办法用,一点用处也没有。
从DA上观察,98%以上都只是用CUI的布局框放入个PSS,写代码。再就是它的专辑列表和列表切换器。其他它提供的无数选项卡,几乎没有人用了。CUI的作者时不时更新,还坚持着所有的架构,甚至保留FCS的支持,我不懂得还有人用fcs吗?这个我是不懂的,0.83只支持fcs吗?不知道,不敢乱说。如果CUI作者不是脑残,世界上98%的使用CUI+PSS的就是脑残了!虽然PSS也不是什么好东西,代码字体小,编辑框小,功能差劲。但PSS和ELPlaylist的唯一好处就是比CUI的控制方式,友好点。
记得好像wy1975发布过一款复古的纯cui界面,我很是喜欢,像这么让我一见倾心的界面实在不多见。要我自己开发,真的做不到。

FUI,其实就是一个CUI+PSS的合体,把所有的控制都给了代码,并且参照编程语言,给出了许多的事件,我当初做F1,也是初用,没有学习范本,吃了许多的苦头,问候了无数次作者的家人,最后用几行代码就搞定了窗口的刷新,其他的问题就好办了,中途几乎放弃,试验了几乎它提供的所有的字段和函数,能用它干的,就尽量用它,就想看看到底它怎么样,结果它干得都还算满意。现在看,不知道作者是否放弃了。我现在再写,就会选择FUI+WSHmod的方式。FUI就是个窗口和面板分离器,完成布局就可以了,能用WSHmod干的就不用FUI干,效率还会更好些。

FUI作者也是个很奇怪的日本鬼子,v0.0.1 2009/04/03----v0.2.1 2009/05/10,几乎一个月更新了无数次,平均每天一个版本,然后玩起失踪。也不做推广,sample也做得极其幼稚。你当自己写了个永恒适用的版本吗?哈哈!业余时间,一个月更新下,也给点信心,不是人没了吧?哈哈哼哼。我当初学习用它,只是冲着作者频繁的更新去的!作者这么卖力,一定会越来越好的,结果呢?从我开始学习的第一天,它就消失了,我要早知道这样,我一秒钟都不会浪费给fui。作者都消失了,就算我有推广的热心和能力,也没有给人推荐的胆量,因为它没有生命力啊。再过几个月,FUI没有更新,我感觉会放弃。用到哪天算哪天吧。我当初还幻想它不停修改,很快会完善呢,结果,就这样了?就,这样?这不是涮我吗?

不用PSS+ELPlaylist,还不如DUI+迷你歌词,什么烦恼也没有,而且DUI的确很好。从0.9.5到如今,历经数十版本,DUI还是没有更新。peter绝对是个执着的人!!!

对fb2k,我始终认为不妥协功能和易用的前提下,界面做得越漂亮越好!peter当初离开winamp开发组,据说是嫌开发组一味注重界面皮肤的华丽,愤尔另起炉灶。但,你不能走向另一个极端,界面简洁是美,简单就是另外一回事了。虽然,我也从没有一刻认为winamp曾经有过什么华丽的皮肤。
苹果凭一款手机,就横行全世界,只有一个字:美!外观、图标,功能和技术没有什么绝对优势,靠一款手机打遍全球无敌手,只有苹果做得到,也只有它才有胆量和全球的移动服务商掰手腕,Nokia绝对不敢,如果Nokia只生产一款手机,保证立刻垮台。苹果电脑也一个路数,就是漂亮!peter绝对不是苹果的拥趸,除了Windows平台,他哪儿也不去!

反观fb2k,你看看下面的官方截图,有无数的歌曲,有无数的封面,你不能截个好看点的?截个漂亮点的封面会死人吗?我从没有见过比这个更丑更恶心的封面截图了。这应该多少反映作者的审美取向,看看丑陋的鬼头logo,Google下名称foobar的来历,处处都透着peter对这一切的不在意,不用心,刻意地用心地避开一切可能使foobar看上去好看点,好听点的名称等因素。如果我是论坛的新人,骂fb2k,以丑为美,令人恶心,不知道有多少人出来骂我:不喜欢,滚。
的确,我坚持用foobar,的确我认为foobar就两个字形容:丑陋。

peter的审美,绝对是有问题的。CUI绝对符合peter以丑为美的恶趣味。


 附件: 您所在的用户组无法下载或查看附件
最后编辑bense 最后编辑于 2009-09-27 18:30:37

                     

不是所有时间久远的都可以成为经典,不是所有的人都可以重新演绎经典。

在那片青色的山坡我要埋下所有的歌,等待着终于有一天成为世间的传说 。

TOP

原帖由 gdzqj88 于 2009-9-26 15:55:00 发表
    也曾有折腾FUI的冲动,但看过bense与jensen那篇长长的论战之后,决定转向

难道这是2009年本坛最大的预言。
看来良师益友真的开战了。我十分爱看两位的谈论,他们总是风趣中闪烁出智慧的光辉。让人不被照耀一下都不可能。在率真坦诚的交流中,受益非浅的总是桶里空空待装的我。对于这样的谈论,我习惯象对待代码一样,仔仔细细地拜读着,甚至反复阅读,生怕因读错一空格从而理解错了全文的含义。那多可惜啊!
现在
jensen坚守CUI期待WSH UI,
bense提倡FUI+WSHM。
sen <> nse
天生的一对jensenbensejensenbensensensense……。
我一时间突然象失语一样,丧失判断力的思考力。
只是心里话说出来,我既比较屈服于现实,又总回不到过去。有什么用什么,尽可能用好能用的。因此,现阶段我单纯使用FUI。JS我一点都不懂,如果WSH UI真的出来了,界时那一定专门去听课,一定要啃出一点血来。
最后编辑kmpfor 最后编辑于 2009-09-27 21:10:18
TOP

误会啊。怎么把我们对立起来了,jensen是我良师,一直以来教我很多。
我谈不上,提倡FUI+WSHM,原因就是FUI前途未卜,如果永不再更新,就没有价值了。我是就整个UI的构想比较,FUI好过CUI,毕竟它出现晚。CUI的结构太散乱,它可能考虑版本的向下兼容,整个结构并没有改进,即使已经没有人用的部分,作者也没有根据新出现的一些趋势,吸收其他插件的优点,做出结构调整,但所有人已经习惯或被迫习惯了CUI里放个PSS,写代码控制面板,不用它,没有选择。
FUI,明显还是粗糙,虽然我使用中不记得有因为它的bug崩溃过。现在的它还留有许多许多的明显的bug。之所以迟迟没有动手做那些图形设置的工作,原因就是怀疑fui作者放弃了,如果时有更新,我早就完善f1到图形界面搞定所有设置的工作,让使用者不必或少动代码。我甚至设想了国际语言支持,只需要文本翻译一些字符串和简单短语,整个界面语言就变成了你想要的语言,任何系统和字体支持的,对fui和fb2k的推广应该帮助很大。

WSH UI,如果有,当然理论上更好,不管是效率,还是现实效果上,都有无限的遐想空间,对于还没有诞生,甚至会否诞生的东东,争论就没有意义了。
对于FUI,和CUI,也不好说坚持什么,一个从不更新的东西,如果死于0.2.1版本,那我得收回所有我说过的话。如果某天,FUI又回来,再次高频率更新,我会给他好多bug报告,外加很多改进建议,那时候再说提倡不晚。

有些观点,我还是坚持的,就是外观要漂亮,虽然我做的不够漂亮,但不妨碍我坚持这样的观点,我一早说过很多次了,只是没有强烈表达而已。强烈表达也容易遭人误解,容易让人感觉你为了漂亮,就忽略功能和易用性,把这些严格对立起来,好像你使用简单的外表,功能易用就一定强吗?我是努力想协调好,在自己能做到的范围内。

我一直在界面上放很多按钮,并且在按钮分组位置安排方面,花费很多精力,用心,就是为了易用性,所有快捷按钮对我蛮重要,因此,PSS是我厌弃的东西,虽然我也用过很多。它的按钮点击没有动作,悬浮有动作,这个我开始就觉得作者脑袋坏了,上下文支持一贯不好,现在改善了多少了呢?一个分离器,做好布局就可以了,为何要去抢那些绘图,绘制文本,按钮,命令的饭碗呢?就是PSS作者,对cui这些方面不满意。有那精力,再架设个单独的UI算了。估计PSS作者,没有FUI的功力,虽然很多想法是类似的,但FUI在很短时间内,单就和PSS对应的部分比较,易用更好,功能更全,当然它操控着整个UI,很难在一个层面上去和PSS比较。

如果FUI还活着,我倒是觉得有前途,它小众不是因为完全代码控制,更大的原因是作者不更新,没有人推广。没有人推广,还是因为作者的放弃,多少有点可惜,好像是fb2k UI 史上的流星。
如果有天,fui死了,DUI还是0.9.5,我照样要回归cui,当然这不代表我会说cui的好,我只是反对爱屋及乌,可能我爱的程度不够,感觉它就是丑,就是不能接受,未必做好看就一定不稳定。诟病peter的审美取向,我并不觉得我说错了什么,我就是觉得它从一个极端走向了另一个极端。但允许插件,还是一个开放的心态,给fb带来无限的生命力。
最后编辑bense 最后编辑于 2009-09-28 10:34:58

                     

不是所有时间久远的都可以成为经典,不是所有的人都可以重新演绎经典。

在那片青色的山坡我要埋下所有的歌,等待着终于有一天成为世间的传说 。

TOP

路过 路过 不折腾的路过
Asion's Blog

.......哦 是这样? 嗯
TOP

路过,很不赞同bense关于peter是丑陋代名词的说法!这只能说明世界是丰富都才的,人人都是独一无二与众不同的,个人的审美观因个人得文化背景、成长环境而千差万别!要求或认为人人的审美观和自己一致是相当不理性的!我个人是对peter的审美有一定的认同!
TOP

回复 18# slyhuman 的帖子

1、我不反对你的不赞同;
2、我没有说peter是丑陋的代名词。我说他审美取向有问题,与你的解读有出入;
3、审美观千差万别是自然现象,我没有要求他和我一致;
4、peter对声音的审美,fb2k在音乐文件管理方面的取向,以及fb2k软件的结构设计,我还是认可的;
5、peter对视觉的审美,绝对存在问题。这个不是以我的标准产生的想法,谈不上不理性;现在和将来,他不改变,我就不会改变看法;
6、我历来反对人云亦云,爱屋及乌,追风捧臭脚。
我说过,就算了。

别来和我讨论fb2k的外观是否美的问题,这太难互相说服。论坛里常看到简单就是美的说法,个人极不认同。简洁是种美,简单更多和简陋发生联系。什么是简洁?DUI的按钮就是简洁。什么是简陋?CUI缺省的按钮,就是简陋。你认为cui美极了,我也反对不了。

                     

不是所有时间久远的都可以成为经典,不是所有的人都可以重新演绎经典。

在那片青色的山坡我要埋下所有的歌,等待着终于有一天成为世间的传说 。

TOP

回复 19# bense 的帖子

求同存异!
TOP