Sciter帮助文档笔记
Script Classes之Global:
全局变量:(由引擎管理支持)
stdin、stdout、stderr
全局函数:
1、Eval(input : string|stream [, env :object ] ) :
例子:var env = { one:1,two:2 };var res = eval( "one + two"; // 结果是1+2= 3
parseData(input :string|stream ):
例子: var v = parseValuel("3.1415926"); // 和eval类似,不过不执行脚本,比较安全
emit( input :string|stream, output :stream [, env:object ] )
// 将输入计算后,输出到输出
load( source [, asServerScript] ) :true|false
例子:load( "c:/myscripts/test.js"); 等价于var s = Stream.openFile("c:/myscripts/test.js","r");load( s );
5、loaddc ( source ) : true | false //加载二进制文件
6、compile ( input : filename | Stream, output:filename | Stream [, asServerScript : true | false ] ) : true | false // 将输入编译之后写出,也可以用来被loaddc加载
7、store ( filename | stream, value ) : true | false//写出二进制文件
8、fetch ( filename | stream ) : value | null // 恢复先前的值写入文件
9、hash ( value ) : integer // 计算hash值
10、membersOf ( obj: object | function ) : map(object)
例子:function Foo() { ... }
Foo.bar = 1; //adding property 'bar' to the Foo function (that is an object too)
for(var (k,v) in Foo ) ... //here you should see k equal to #bar on some iteration
11、rand ( maxNumber ) : integer // 返回0 - maxNumber 的随机数
12、gc ( ) : undefined // 调用垃圾清理器
13、crackUrl ( url:string ) : object // 解析url字符串,返回以下的值:
·port - integer, tcp/ipport number;
·protocol - string,protocol like "http", "file", etc.;
·hostname - string, hostname;
·anchor - string, anchor;
·username - string;
·password - string;
·params - string,parameters of http GET request
·dir - string, directory
·name - string, filenamewithout extension
·ext - string, extension
·name_ext - string,filename with extension.
14、symbol ( string ) : symbol // 看不懂干啥的
15、color (r: int, g: int, b: int [, opacity: int |float]) : color
16、em ( v: int | float ) : length,
17、pr ( v: int | float ) : length
18、px ( v: int | float ) : length
19、cm ( v: int | float ) : length
20、pt ( v: int | float ) : length
21、dip ( v: int | float ) : length
22、flex ( v: int | float ) : length, flex unitvalue
Script Classes之Object:
属性:className、length
方法:
1、this ( ) // 构造函数,返回对象本身
2、toString () : string
3、toLocaleString ( ) : string //返回 "[object Object]".
4、valueOf ( ) : value // 返回对象本身
5、clone ( ) : value // 复制对象本身,并返回
6、exists ( tag: value, [deep = false] ) : true |false // 检查tag属性是否存在
7、remove ( tag: value ) : void // 移除tag属性
8、call ( func: function, [p1:value, p2:value, ...pN:value [, argv: array] ] ) : value // 主动调用函数,可变参数
9、show ( [out: Stream] ) : void // 用作调试,打出类名和属性表及值
10、eval ( what: string | Stream [, namespace:object] ): value // 计算表达式的值
11、propertyAt ( tag: value ) : value // 查看属性的值,等价于obj.tag 写法
12、seal ( [strict:true|false] ) : object //对对象的结构进行加锁,增删属性数目都会报错,但是可以访问修改已经存在的属性
13、isSealed ( [strict:true|false] ) : true | false| undefined // 是否被加锁
14、freeze ( [strict:true|false] ) : object // 冻结对象,比seal更严格,不能修改值
15、isFrozen ( [strict:true|false] ) : true | false| undefined
16、addObserver ( observer:function ) : undefined //添加监视函数的变化,具体内容自己看
17、removeObserver ( observer:function ) : undefined// 移除监视
18、referenceOf ( namespace:object, path:string ) : (collection:object, key:symbol|string)// dot分割字符串为键值对
Script Classes之Array :
属性:length、[index] 、[begin .. end]
方法:
1、Array ([value1 [, value2 [, ... valueN ]]]) // 创建新数组,如var a = new Array(...);
2、toLocaleString () returns: string // 逗号分割的值列表
3、toString () returns: string // 同上
4、valueOf () returns: string // 同上
5、clone () returns: array // 复制并返回数组
6、push ([value1 [, value2 [, ... valueN ]]])returns: value // 添加成员
7、shift () returns: value | undefined // 移除第一元素
8、pop () returns: value | undefined // 移除最后一个元素
9、unshift (value) returns: value | undefined // 在第一个位置添加元素
10、concat ([value1 [, value2 [, ... valueN ]]])returns: array // 添加数组,和push返回值不一样
11、join ([delimeter]) returns: string // 返回指定分隔符的数组值列表
12、reverse () returns: array // 反向排序
13、slice (start[, end]) returns: array |undefined // 分割数组,去除一部分
14、splice (start[, end]) returns: array | undefined// 分割数组,保留一部分
15、sort ( [compareFunction] ) returns: array // 数组排序,需提供排序函数
16、indexOf ( value [, notfound = -1] ) returns: int| notfound // 获取序号
17、lastIndexOf ( value [, notfound = -1] ) returns:int | notfound // 反向获取序号
18、remove ( index:int ) returns: value |nothing // 去除指定位置的元素
19、removeByValue ( value ) returns: value | nothing// 去除数组中的值的元素,只处理第一个
20、map ( callback: function [, thisObject] ) :array
例子:var numbers = [1, 2, 3]; var squares = numbers.map(:el:el*el); //make new array of squares of numbers in original array. squares will be [1, 4,9] at this point.
21、reduce ( callback:function [, initialValue] ) :value
例子:var total = [0, 1, 2, 3].reduce( :a, b: a + b); // total is 6 at this point.
22、filter ( callback: function [, thisObject] ) :array
例子:var filtered = [12, 5, 8, 130, 44].filter(:el:el > 10); // filtered is [12, 130,44] here
23、addObserver ( observer:function ) : undefined
24、removeObserver ( observer:function ) : undefined
Script Classes之String:
属性:
Length, [index], [begin .. end]
方法:
1、toInteger ([defaultValue]) : integer |defaultValue | (undefined) // [whitespace] [{+ | -}] [0 [{ x | X }]][digits]
2、toFloat ([defaultValue]) : float | defaultValue |(undefined) // [whitespace] [sign][digits] [.digits] [ {d | D | e | E}[sign]digits]
3、toNumber ([defaultValue]) : integer | float |defaultValue | (undefined) // 更常用
4、toString () : string // 返回自身
5、toHtmlString () : string // 返回符合html规则的字符串
6、toUrlString () : string // 同上
7、substring (start [,end]) : string | undefined // 截取字符串,end=负数,表述从右计数
8、substr (start [,length]) : string |undefined // 截取字符串, 如果 start=负数,表示从右计数
9、slice (start [,end]) : string | undefined // ==substring
10、Concat ( [string1[, string2[, ... [, stringN]]]]) : string // 将字符串加到一起
11、charAt ( index ) : string. // []
12、charCodeAt ( index ) : integer | undefined //返回的是值,非字符
13、indexOf ( substring [,start] ) : integer // 搜索字符串,-1
14、lastIndexOf ( substring [,start] ) :integer // 反向搜索,-1
15、lexicalCompare ( what , [ caseInsensitive: true| false ] ) : integer // 字符串比较,> 0 <
16、Match ( regexp ) : string | array of strings |null value // 正则匹配
17、Match ( string ) ' RegExp object instance | nullvalue // 正则匹配
18、Replace ( regexp, replaceBy: string | function ): string // 正则替换
例子: var s = "212F"; vartest = /(\d+(?:\.\d*)?)F\b/g;
function f2c(str, g1) { return((g1.toNumber() - 32) * 5/9) + "C"; }
stdout.printf("%V\n", s.replace(test, f2c ));
19、Search ( regexp ) : integer // 正则查找,-1
20、Split (separator[, limit]) : string //分割文本
21、fromCharCode ([code1[, code2[, ...[, codeN]]]]): string // static, 根据code生成文本
22、toLowerCase () : string
23、toUpperCase () : string
24、Trim ( [#left | #right] ) : string
25、urlEscape () : string
26、urlUnescape () : string
27、htmlEscape () : string
28、htmlUnescape () : string
29、$ ( ... ) : string // static method,
例子: var pt = { x:12, y:42 }; varmsg = String.$(coordinates are x:{ pt.x } y:{ pt.y });
30、Printf ( format, [value1[, value2[, ...[,valueN]]]]) : string // 同C/C++的format,额外的
%v and %V - 可以接受任何类型的变量
%S - 所有的都被转为HTML字符串,如<被转为<.
31、Scanf ( format: string ) : array // 同C/C++中的format, 额外的 %N - 支持整数和小数.
Script Classes之Date:
本地时间:
Day(1-x), month(1-12), year(), hour(0-23),minute(0-59), second(0-59),millisecond(0-999), dayOfWeek(0(monday)-6),firstDayOfWeek(0-6); //Date.firstDayOfWeek
UTC时间:
UTCDay(1-x), UTCmonth(1-12), UTCyear(),UTChour(0-23), UTCminute(0-59), UTCsecond(0-59),UTCmillisecond(0-999),UTCdayOfWeek(0(monday)-6),
方法:
1、[new Date] ( [string | year, month, day [, hour[, minute [, second [, millisecond ]]]]]] ) // 为空, 则当前时间
2、toString () : string
3、toUTCString () : string
4、toISOString ( [asUTC: false|true ] )
5、toLocaleString ( [longFormat] ) returns: string
6、valueOf () returns: float // milliseconds since midnight, January 1,1970 UTC.
7、Parse ( string ) returns: float | undefined // Static method.
8、UTC ( year, month, day [, hour [, minute [,second [, millisecond ]]]]] ) returns: float | undefined // Static method.
9、setTime ( milliseconds ) returns: float
10、monthName ( longFormat ) returns: string
11、dayOfWeekName ( longFormat ) returns: string
12、isDaylight ( ) : true | false
13、timeZoneOffset ( ) : integer
14、timeZoneName ( ) : string
Script Classes之Float:
常量: MIN,MAX
方法:
toFloat ( ) : float
toInteger ( ) : int
toString ( )
toHtmlString () : string
toUrlString () : string
valueOf ( ) : float
Min ( ... ) : float //Static method ,Float.min(1.0, 2.0, 3.0) will return 1.
Max ( ... ) : float // Static method -Float.max(1.0, 2.0, 3.0) will return 3.0.
isNaN ( ) : true|false // is number
isFinite ( ) : true|false
Morph ( from, to, ratio ) : float // = (to - from)* ratio + from;
Script Classes之Integer:
常量: MIN, MAX
方法:
toFloat ( ) : float
toInteger ( ) : int
toString ( [radix: int] ) : string // 10(default), 8 or 16.
toHtmlString ( [radix: int] ) : string
toUrlString ( [radix: int] ) : string
valueOf () : int
Min ( ... ) : int
Max ( ... ) : int
Limit ( min:int, max:int ) : int // 限定在min和max之间
Script Classes之RegExp:
属性:
Length, input, source, index, lastIndex, [index]
方法:
This (regular-expresion [,flags]) // var re = new RegExp(...);
Test (input) : true | false // 检查是否符合正则的表述
Exec (input) : null | RegExp object //执行正则
Script Classes之Color:
Color(r,g,b,a|opacity); // 全局函数
属性:
R( 0-255), g( 0-255), b( 0-255), a( 0-255),opacity( 0.0-1.0 ,opacity是a的百分比形式 )
方法:
Rgba (r: int, g: int, b: int [, opacity: int |float]) : color
Hsv (hue: float | angle, saturation: float, value:float [, opacity: int | float]) : color
Hsl (hue: float | angle, saturation: float,lightness: float [, opacity: int | float]) : color
Tint ( luminance: float [, saturation: float[, hue:float | angle]] ) : color
Parse ( text: string ) // formats: "#RGB""#RRGGBB" "rgb(r,g,b)" "rgba(r,g,b,a)""red", etc.
toString ( [#RGB | #rgb | #rgba] ) : string /// #RGB - outputs color as"#RRGGBB"; #rgb - outputs color as "rgb(r,g,b)" string;#rgba - as "rgba(r,g,b,a)" string.
toInteger ( ) : int
toHSV ( ) : float,float,float .
toHSL ( ) : float,float,float
Morph ( from : color, to:color, ratio: float ) :color // = (to - from) * ratio + from
Script Classes之Color:
单位:
#em - emfont units; // 字体大小为单位, 相对大小
#ex - exfont units; // 字体大小为单位, 相对大小
#pr -percents '%'; //百分比, 相对大小
#fx -flex units (in h-smile CSS core): 1fx = '1*' or '100%%'; // 弯曲单位, 相对大小
#px -pixels, usually device dependent; // 设备相关像素, 相对大小
#in -inches; // 英寸, 1英寸=2.54厘米
#cm -centimeters; // 厘米
#mm -millimeters; // 毫米
#pt -typographical point (1/72 of inch) // 印刷体的像素
#pc -typographical pica (1/12 of point) // 皮卡
#dip -device independent pixels ( 1/96 of inch ) // 设备无关像素
Script Classes之Function:
属性:
Name, fullName, length, optionals
方法:
[this] ([arg1:string [, arg2:string [, ...argN:string]],] functionBody:string) // 构造函数
Call ( thisObj: object [, p0:value, ... pN:value] ): value //
Apply ( thisObj: object [,p0:value, ... pN:value][, argv:array] ) : value
Exists ( tag: value, [deep = false] ) : true |false // 检查tag是否存在
Remove ( tag: value ) : void // 去掉tag
propertyAt ( tag: value ) : value // 查询tag
Seal ( [strict:true|false] ) : object // 冻结,参考Object
isSealed ( [strict:true|false] ) : true | false |undefined //参考Object
Freeze ( [strict:true|false] ) : object //参考Object
isFrozen ( [strict:true|false] ) : true | false |undefined //参考Object
Script Classes之Function:
属性:(常量)
E( log e), LN2(log 2),LN10(log 10),LOG2E(log 2e),LOG10E(log 10 e), PI(3.1415...), SQRT1_2(0.5的均方), SQRT2(2的均方)
方法:
Abs ( integer | float ) // 取绝对值
Sin、Cos ( integer | float ) returns: float
Tan ( integer | float ) returns: float
Atan ( integer | float, [integer | float] )returns: float
Asin、Acos ( integer | float ) returns: float
Sqrt ( integer | float ) returns: float
Ceil ( float ) returns: integer // >=的最小整数
Floor ( float ) returns: integer // <=的最大整数
Exp ( integer | float ) returns: float // e的次幂
Log、log2、log10 ( integer | float ) returns:float // 对数
Pow ( number, exponent ) returns: float |integer // 任意数的次幂
Script Classes之Stream:
属性:
isInput, isPipe, proxy(Pipe only), pending(Pipeonly), encoding(utf-8/none), name
方法:
1、openFile (file-name [,mode]) : stream | null // Static method.
2、openSocket ("address:port" [, timeout[,numberOfAttempts:1 ] ] ) : stream | null // Static
例子:var sock = Stream.openSocket( "www.terrainformatica.com:80", 5 /*seconds timeout*/ );
if( !sock ) return;
sock.println("GET http://www.terrainformatica.com/main.whtmHTTP/1.0");
sock.println("User-Agent: TIScript[en]");
sock.println("");
while( true )
{
var s = sock.readln();
if(s == undefined) break;
stdout.println(s);
}
3、openString ([initialSize:int |initialValue:string]) : stream // Static method.
4、openPipe ( [receiver: function [, proxy: object]]) : stream
例子:
function receiverOut(data) { Log.print(data,false); }
function receiverErr(data) { Log.print(data,true); }
// callback interface
var iface = { foo: function(v1,v2) { stdout.printf("got a call of'foo' with %V,%V\n",v1,v2); return v1 + v2; } };
view.open(f, Stream.openPipe( null, iface ), // call interface for thealien
Stream.openPipe( receiverOut ), // stdout
Stream.openPipe( receiverErr ) //stderr
);
5、toString ( ) : stream
6、Close ( [returnString:true|false] ) : string |true | false
7、Print ( string ) : true | false // 等价于 stream << string; .
8、$ ( ... ) : true | false // 输出附加的内容流
9、println ( string ) : true | false
10、$n ( string ) : true | false
11、printf ( format:string, [value1[, value2[, ...[,valueN]]]]) : true | false
12、scanf ( format: string ) : array
13、putc ( char-code ) : true | false // 等价于 stream<< charcode;
14、getc ( ) : integer | undefined // EOF
15、Readln ( ) : string | undefined
16、Send (methodName: symbol [, .. ] ) : value //(Pipe only)
17、post (methodName: symbol [, .. ] ) : undefined// (Pipe only)
Script Classes之Bytes:
属性:
[index], length, type, name // 一般用于接收或发送数据使用
方法:
This ( numBytes: integer ) // 构造函数
toString ( [encoding:string] ) returns: string
// 例子: var str =bytes.toString("UTF-8"); returns a string from UTF-8 encoded bytes.
Save ( filename:string ) returns: true|false
Load ( filename:string ) returns: Bytes // Static method
Script Classes之System:
属性:
Language, country
常量:
IS_READONLY - int, scanFiles callback/attributes, file/dir is readonly.
IS_DIR -int, scanFiles callback/attributes, file is directory(folder).
IS_HIDDEN -int, scanFiles callback/attributes, file/dir is marked as hidden.
IS_SYSTEM -int, scanFiles callback/attributes, file/dir is marked as internal for thesystem.
MOBILE_OS -true for the mosciter that is running on mobile platform, false otherwise.
DESKTOP_OS -true for the sciter running on desktop PC/platform, false otherwise.
OS - symbol,on Windows it is one of these:
#Windows-98 #Windows-98-SE #Windows-ME #Windows-CE - Windows CE or Windows Mobile
#Windows-NT4 #Windows-2000 #Windows-2003 #Windows-XP #Windows-Vista #Windows-7
方法:
scanFiles ( path:string [, callback:function] ):integer // function callback( filename:string, attributes: integer ): bool
home ([relpath:string]) returns: string // 返回程序所在的根目录
path (system-folder: symbol [,relpath:string])returns: string //
#SYSTEM #SYSTEM_BIN #PROGRAM_FILES #USER_APPDATA
#COMMON_APPDATA #USER_DOCUMENTS #COMMON_DOCUMENTS
Script Classes之Storage:
属性:
Root, autocommit
方法:
open ( file-name [, autocommit] ) returns: storage| null // static
close () // Commits all data if autocommit is setto true.
commit () // all data
createIndex (type [, unique]) returns: Index | null// Supported types: #integer, #float, #date, #string.
Script Classes之Index:
属性:
Length, asc, [key], [begin .. end]
方法:
add ( key, val [, replace: true|false ] ) :true|false // 重复的会被替换
remove ( key [,obj] ) returns: true | false
select ( min-key, max-key [, ascent [,start-inclusive [, end-inclusive]]] ) returns: selection object.
// 默认值:ascent = true, start-inclusive =true, end-inclusive = true
// 例子:var sel = index.select(minVal,maxVal, true); for( var obj in sel ) {... }
Script Classes之XMLScanner:
常量:
ERROR, EOF, HEAD, HEAD_END, EMPTY_HEAD_END, TAIL,ATTR, TEXT, CDATA, PI, DOCTYPE
属性:
Value, attribute, tag
方法:
Token () returns : int // 返回一个常量。使用完全限定的形式,例如XMLScanner.HEAD,XMLScanner.TAIL