网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
12月31日漏签0天
吉里吉里吧 关注:51,259贴子:70,968
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 下一页 尾页
  • 30回复贴,共2页
  • ,跳到 页  
<<返回吉里吉里吧
>0< 加载中...

【教程】简单的熟悉krzdoc

  • 只看楼主
  • 收藏

  • 回复
  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
嗯没错,是z不是2,我好久没用2了...
于是附件和zdoc的地址
http://krkrz.github.io/docs/kirikiriz/j/contents/index.html
至于tjs2doc变化不是太多,所以无所谓了
至于什么类型和启动顺序乱七八糟的我就不说了,之前说过了
另外有一点,z是没有控制台的,报错也全是英文...
什么图像格式乱七八糟的自己去扫zdoc我就懒得说了
我先要在这里说明白的是,我要讲的是从Startup写起的一个练习,顺带,如果想用z的doc再用kag的话,还是用nvl去吧- -


krz.exe
大小:3.79MB下载:38次转存:17次
文件已失效
  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
于是第一步是准备工作,新建一个文件夹把你下载的z的exe扔进去,再再文件夹里建一个Data文件夹
再在Data文件夹里新建一个Startup.tjs文件,然后用记事本打开它......因为这比较方便
于是现在什么都不用写,先文件另存为,把编码改成UTF-8............然后覆盖原先的Startup.tjs
这时候在里面加一句
Scripts.textEncoding = "Shift_JIS";
将之后的脚本读取编码重置回ANSI....如果不用cfu的话,z的默认读取编码是UTF-8...
然后再再后面加一句System.exit();
之后的一部分练习基本是在这两句中间写,因为还不涉及到Window


2025-12-31 17:47:51
广告
不感兴趣
开通SVIP免广告
  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
System类「不可以被new的系统类」
也就是说,这个类并没有构造函数
于是只看方法和成员就OK了,而且在这之中也有一些东西我不会说到因为一时半会根本不用上
因为doc是按照a-z的顺序排的,但是如果要讲的话并非按照这个顺序,所以自己找在哪,用翻译软件自己看去,你别告诉我你连百度都不会用
我在后面加了()的都是方法,不加的就是成员
System.createAppLock( Key )
用于检测二重启动的函数,我想这个玩应在2的Initialize.tjs里已经看过了,而Key就是你检测二重启动的标识
也就是说,你在之前运行的一个kr里面写了
System.inform( System.createAppLock( "CheckLock" ) );
的话,那么现在,它在第一个exe里,弹出的提示窗口是1
而现在再次运行这个exe的话,就会变成0
然而在描述这个函数的时候就有提到过的是,这个Key最好比较特殊,也就是需要唯一性,那么最好的办法自然是在运行路径上做文章
System.exeName
System.exePath
这两个分别是exe的运行路径带exe名称
和不带exe名称的纯粹运行路径
于是如果你往上放System.createAppLock( System.exeName );的话,基本也就没什么冲突了...
那么关于这些值要怎么查看,于是下面
System.inform( Message , Title )
这个非常简单,就是弹出一个提示框,第一个参数是文字,第二个参数是标题
但是需要注意的是如果不是封装一层了的话,Message不能为空
System.getKeyState( Key )
也就是说判断某个键是否是按下的状态
System.shellExecute( Target , Param = "" )
这个八百年用不到一次的运行外部文件的函数...
System.addContinuousHandler( CallBack )
System.removeContinuousHandler( CallBack )
这两个用于大量调用的函数的注册,目测会进行一些内存上的优化
常用于Move之类的那个地方,现在还用不上
System.createUUID()
生成一个全局唯一ID序列,具体是啥样的生成出来看看就完事了
exit是啥我懒得说了,于是下面是成员
System.desktopTop
System.desktopLeft
System.desktopWidth
System.desktopHeight
这是一组桌面的可用矩形坐标,毕竟存在快速启动栏,而启动栏也是占地方的...
System.screenHeight
System.screenWidth
而对应的也就是这一组,这一组的值就是桌面的整个矩形的长宽,也就是当前的显示分辨率
System.title
这个标题是显示在快速启动栏的
至于其他的乱七八糟的路径自己看看值点一点就知道在哪了


  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Storages类「负责文件检测与路径处理的类,虽然好像跟名字不匹配...」
Storage类其实很简单
Storages.isExistentStorage( Storage )这就是个检测文件是否存在的函数
Storages.chopStorageExt( Storage )这就是切掉一个文件的后缀名字符并返回被切掉之后的字符串...
Storages.extractStorageExt( Storage )这就是抽出最后一个拓展名......
Storages.extractStorageName( Storage )这就是在路径中把整个文件名切出来...
Storages.extractStoragePath( Storage )这就是把路径中最后一个文件名清空,把路径提取出来...
Storages.selectFile( Params )
这个相对比较麻烦,这是一个选择的函数...
他传入的是一个字典,别问我字典是啥
var Params = %[
filter : [ "文本文档(*.txt)|*.txt" , "脚本文件(*.tjs)|*.bin" ],
filterIndex : 1,
name : "",
initialDir : System.exePath + "Data/",
title : "选择文件",
save : false,
]
save代表的是你选择还是储存,而且这个Params必须是一个外部变量,因为这个函数本身返回的是真假...所以选择的结果是保存在Params.name的
至于具体是个什么模样,自己试试就行了
于是Storages类终结.......


  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Scripts类「这才是真正负责脚本的类...」
Scripts.execStorage( Storage , Mode = '' , Context = global )
这就是kr负责读取tjs文件的函数...参数列表式是
文件路径,文件解码模式,上下文对象
前两个没啥好说的,最后一个就相当于,你在哪个对象里执行了这个文件的代码...默认是global
Scripts.evalStorage( Storage , Mode = '' , Context = global )
还记得Array.structSave和Dictionary.structSave么...这个就是读取那种数据文件的,
Scripts.exec( Script , Name = '' , Linesof = 0 , Context = global )
这玩应就是扔进去一堆脚本字符去执行...不过这个是可以自定义执行的字符串的
Scripts.eval( Script , Name = '' , Linesof = 0 , Context = global )
这个嘛...就是运算一个表达式,并返回结果,基础功能类似于if的判断但又比if多出很多功能...
Scripts.getClassNames( Object )
这里要传入的是一个已经被实例化的Object,而且故名思义这玩应要的是new的class...
这玩应返回的是一个一维数组,[0]就是当前类的类名,而之后就事有继承关系类的类名顺序排列...
Scripts.compileStorage( Inputfile , Outputfile , Isresult = false , Outputdebug = false , isexpression = false )
这个是将文件转换成字节串编码...然而我怎么感觉没什么卵用还特么特别大...


  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Timer类「关于时间的少不了它...也是在tjs中做Wait的关键」
Timer.Timer( Func , ActionName )
Timer的构造函数,第一个就是传入一个函数,第二个我到现在没用过...
Timer.capacity
也就是当前Timer被允许执行的最大次数
Timer.interval
执行间隔,注意这个间隔是ms不是s....
Timer.enabled
Timer是否执行
Timer.onTimer
这个实际上就是你传入的Func...在运行中替换onTimer就可以达到一个替换函数的效果=-=


  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
事先说明,这个帖子只说说基础就完事了...复杂的暂时不写


  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
于是这个时候Startup.tjs要改了- -
除了最开始的编码转换之外全删
换成
var MYWindow = new Window();
MYWindow.setInnerSize( 800 , 600 );
MYWindow.setPos( ( System.desktopWidth - MYWindow.width ) / 2 , ( System.desktopHeight - MYWindow.height ) / 2 );
MYWindow.caption = "Check_krz";
MYWindow.visible = 1;
于是这样的话,窗口就需要手动关闭了,但是也就不用System.exit()了.......
现在,你的窗口位于你窗口的正中间,你可以改变SetSize那里的值,这并不会影响位置....
你会看到下面快速启动栏中的System.title被重置为了Check_krz,这是因为你没设定System.title...
这两个本身是互不干扰的


2025-12-31 17:41:51
广告
不感兴趣
开通SVIP免广告
  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
所以说在之前的代码之后添加
var MYLayer = new Layer( MYWindow , null );
MYLayer.setPos( 0 , 0 , 800 , 600 );
MYLayer.fillRect( 0 , 0 , 800 , 600 , 0x000000 );
MYLayer.visible = 1;
你就会发现,用户区域已经变黑了...
于是这部分的练习- -||...还是new两个子层慢慢玩吧,比如
var CheckLayer0 = new Layer( MYWindow , MYLayer )
var CheckLayer1 = new Layer( MYWindow , MYLayer )
...........


  • 木树Sub
  • 巡抚
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
为楼主的艰辛回个帖


  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Font类「你每个层中的Layer.font,它控制着层的绘制字体」
Layer.font.getEscHeightX
Layer.font.getEscHeightY
Layer.font.getEscWidthX
Layer.font.getEscWidthY
Layer.font.getGlyphDrawRect
Layer.font.getTextHeight
Layer.font.getTextWidth
...这都是算文字列像素的
Layer.font.angle
文字倾斜角度
Layer.font.height
字号
Layer.font.italic
斜体是否使用
Layer.font.strikeout
这个记得是删除线吧...
Layer.font.underline
下划线


  • 一梦千年远
  • 侍郎
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
前排听课


  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
于是现在我们需要一个wav的音乐文件...【懒得加载插件了
添加这些代码,文件名什么的自己换掉......
var MYBGM = new WaveSoundBuffer( MYWindow );
MYBGM.volume = 100000;
MYBGM.volume2 = 100000;
MYBGM.open( System.exePath + "Data/05.予感.wav" );
MYBGM.play();
MYBGM.position = MYBGM.totalTime / 2;
MYBGM.looping = 1;
System.inform( MYBGM.totalTime );
w终于特么有点声音了。。。。


  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
音乐那一块可以删了..
var MYVideo = new VideoOverlay( MYWindow );
MYVideo.open( System.exePath + "Data/movie_OP.mpg" );
MYVideo.setPos( 0 , 0 );
MYVideo.setSize( 1280 , 720 );
MYVideo.visible = 1;
MYVideo.play();
我这是随便找的视频这么大,所以我改了窗口....根据你们自己找的来
http://pan.baidu.com/s/1o8Oqf26
dll在这里


2025-12-31 17:35:51
广告
不感兴趣
开通SVIP免广告
  • 敬启绝音
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Rect这里基本你拿它当热区用就行了...它里面有一堆的判定
Bitmap就是一个图像的数据类,可以用它保存一些需要频繁读取的图片
ImageFunction就是运算BitMap给它做效果的...
至于那个剪贴板的............扫一眼就会了
这些东西实际上过一遍你大概知道都有些什么东西就行了.....因为应用层面跟这完全不是一个画风


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 30回复贴,共2页
  • ,跳到 页  
<<返回吉里吉里吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示