当前位置: 首页 > 工具软件 > Sciter > 使用案例 >

Sciter笔记- 2

滕胜涝
2023-12-01

Sciter帮助文档笔记

提醒:遇到编译成功了。但是一运行就报一个_api 的错误先看是不是输出目录没有丢sciter库(32-64要分好);

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字符串,如<被转为&lt.

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

 
--------------------- 
作者:笨笨D幸福 
来源:CSDN 
原文:https://blog.csdn.net/bbdxf/article/details/26443655 
版权声明:本文为博主原创文章,转载请附上博文链接!

 类似资料: