2008-11-14 12:39
全局变量D
[某D的KRKR笔记本]DLL插件的应用(09/1/2更新)
[b]利用win32ole.dll读入unicode文本[/b]
一开始的起源是这个:
[url]http://hpcgi1.nifty.com/gutchie/wifky/wifky.pl?p=%B5%C8%CE%A4%B5%C8%CE%A4%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%A4%CB%B4%D8%A4%B9%A4%EB%A5%E1%A5%E2+-+win32ole.dll#p1.3.2[/url]
想想既然可以写当然是可以读的了...于是就实验了一下...幸好win32ole相关的东西满大街都是说明,所以就随手弄了个实验记录下.
用来读取"E://实验用工程/function.ks"(自己随便搞的脚本),并显示出来.
[code]
*start
[iscript]
//载入插件
Plugins.link("win32ole.dll");
var objFileSystem = new WIN32OLE("Scripting.FileSystemObject");
//打开文件
var objTextFile = objFileSystem.OpenTextFile("E://实验用工程/function.ks",1,false,-1);
//参数:文件名,读写方式(只读1/只写2/续写8),不存在是否新建(true/false),编码(系统默认-2/UNICODE-1/ASCII 0)
//把所有内容读入变量f.LoadScript
f.LoadScript=objTextFile.ReadAll();
//用数组f.脚本记录每行的内容
f.脚本=f.LoadScript.split('\r\n',,true);
//垃圾回收
objTextFile.Close();
invalidate objTextFile;
invalidate objFileSystem;
[endscript]
;逐行显示脚本
[eval exp="f.循环=0"]
*循环
[nowait]
[emb exp="f.脚本[f.循环]"][r]
[endnowait]
[eval exp="f.循环++"]
[jump target=*循环 cond="f.循环<f.脚本.count"]
[s]
[/code]
[b]使用dirlist.dll读取某个文件夹下的所有文件名[/b]
代码 FROM 船长 某日Q群内记录...=_=
[code]
@loadplugin module=dirlist.dll
@iscript
var list = getDirList("c:/");
dm(list.count);
for(var i=0; i<list.count; i++)
{
dm(list[i]);
dm("\n");
}
@endscript
[/code]
[b]使用addFont.dll加载不位于windows font文件夹下的字体文件(.ttf/.otf)[/b]
鉴于预渲染字体的大小不好调整,
而把字体包进安装程序,在玩家的系统文件夹下面装东西又很流氓,这个方法值得一试.
字体文件和普通素材一样,丢在素材文件夹里即可.
缺点是不支持9X系统...嗯,win2000及以上都OK...==b
[code]
@loadplugin module=addFont.dll
[iscript]
System.addFont("字体文件名.ttf", true);
[endscript]
[/code]
[[i] 本帖最后由 全局变量D 于 2009-1-2 17:17 编辑 [/i]]
2009-7-19 22:49
jasson15
大大,addFont的功用是做什麼嗎?引數有兩個,我想問的是:
第一個引數中,字型包一定只能是ttf或otf嗎?
第二個引數的True,False是做什麼用的?
最後,addFont的效果是什麼?會在selectFont()中多加進指定的字型嗎?(好像不會),還是說當用到選字型的時候,也就是用face=""(可能是deffont或是font)時,就會自己加進去?
我是這樣寫的:
@loadplugin module=addfont.dll
@eval exp="System.addFont('MSJH.ttf', true)"
@deffont face="微軟正黑體"
最後還是沒效...
另外,我是用XP的...應該可以才對啊= =
2009-7-21 22:29
全局变量D
1.是的
2.是否在字体选择菜单里可见(就是菜单栏上的字体框里)
繁体XP可能无效...Vista好像可以.
但是有些字体,像是你说的微软正黑体,很可能是在机器里有装的情况下用font face指定都无法正常显示的,那样的话当然用addfont也没效果了.(那字体没被KR识别出来.)