iapp教程

2014-11-27 10:50:21 -0500
《裕语言》速成开发手册
我的应用iApp开发交流 QQ群:239547050

《裕语言》是一基于java的扩展性脚本语言,丰富的类库定置简单快速开发你的应用程序,让开发过程变得娱乐化大众化。《裕语言》是由游改乐计算编程工程师 黄裕先生 定制以及实现原型代码,其代码简单方便的编写体验是一大亮点,目前还会有更多强大的功能完善中。iApp是基于裕语言平台上运行的应用程序,全面想公众开放开放平台,任何有兴趣的人都可以参与开放设计自己的程序。

【s 变量】
用法:
申明变量
//可以赋数值
s a = 123
//可以赋字符串
s a = "123"
//可以副其他变量
s b = a

说明:
变量类似一个箱子,你可以把数据储存在里面,等需要的时候就取出来使用,可以改变它装你想要装的数据。裕语言中的变量是可以根据赋值,而自动转换的,所有无需申明数据类型。

提示:
变量的定义规范, 以 “s ”开头。 然后加上自己自定义的变量名,比如“abc、 nihao、sfw123、www_zzw”变量不允许全部为数字,不允许掺杂符号,请不要使用太长的变量名,不推荐使用中文作为变量名。

空值:
如果访问一个没有声明的变量,将返回“null”空值类型,这个不对等于字符的 'null'。
判断是否空值的咧子:(这里我们不知道变量“abc”是否空值)
f(abc == null)
{
syso("是null")
}

【.或// 注释语句】
用法
.这个是变量“a”它的值等于“1”
s a = 1
//这个是变量“b”它的值等于“2”
s b = 2

说明:
注释语句符号可以用“.” 也可以用“//”,以注释符号开头的正行,将会被代码执行器无视。通常用于给自己标示代码的含义

提示:
不支持代码尾部使用注释语句,注释行必须开头为注释符,举错误的例:

s a = 1 //这个是变量“a”它的值等于“1”
//这个是变量“b”它的值等于“2” s b = 2

【syso 打印】
用法:
syso("1314")
可以打印出数据,代码同等于 System.out.println("1314"),可以在测试时菜单,选择 syso日志查看打印数据。

【f 判断语句】
用法:
s a = 1
s b = 1
f(a == b)
{
syso("等于")
}
else
{
syso("不等于")
}

s a = "nimei"
s b = "nimei"
f(a == b)
{
syso("等于")
}
else
{
syso("不等于")
}

s a = 1
s b = 2
f(!a == b)
{
syso("等于")
}
else
{
syso("不等于")
}

s a = 1
s b = 2
s c = 3
f(a < b && b < c)
{
syso("等于")
}
else
{
syso("不等于")
}

s a = 1
s b = 2
s c = 2
f(a == b || b == c)
{
syso("等于")
}
else
{
syso("不等于")
}

说明:
条件判断语句,用于两个值的比较,常用于判断值是否对等与数值的大小,判断数据需要同类型数据对比。表达式返回的“是”,那么将执行 { 代码 } 里面的代码。“否”将执行else后面的代码(不支持运算表达式,咧:a+b=2)

支持运算符(返回 是 与 否):
== 是否对等
!= 是否不等于
>= 是否大于或等于
<= 是否小于或等于
> 是否大于
< 是否小于
?* 字符串开通是否相同
*? 字符串结尾是否相同
? 字符串是否被包含
上面三个举咧:
s a = "abcdef"
f(a ?* "abc") 返回“是”
f(a *? "def") 返回“是”
f(a ? "cde") 返回“是”

支持逻辑运算符:
|| 或者
&& 并且
! 反意

【w 循环】
用法:
//这将循环99次
s a = 99
w(a > 0)
{
syso(a)
s(a - 1, a)
}

说明:
条件循环语句,比较值的变化,然后进行循环执行 { 代码 } 里面的代码。当条件为“否”的时候会停止循环,条件“是”的话,将一直循环执行。
支持运算符(返回 是 与 否):(跟 f 语句 一样,请参考)

【for 循环】
用法:
for(1; 20)
{
syso("循环20次")
}

s a = 1
s b = 10
for(a; b)
{
syso("循环10次")
}

说明:
参数可以给予另个参数,一个为初始循环的值,一个是最大循环值。

【t 新线程】
用法:
t()
{
syso("新线程里执行代码")
}

说明:
启用新线程,去执行一些需要执行很久的代码。比如把下载文件,获取网页,大量的文件操作,可以放入新线里执行。这里线程的概念,启用新的线程帮你处理代码,这样不会影响到主线程。

【tw 提示】
用法:
tw("你好")

说明:
用于提醒用户,界面显示时长大约为 2秒钟。弹出代码中的文字,来提醒用户。

【fd 删除文件】
用法:(将删除SD卡根目录的abc.zip文件)
s a = "abc.zip"
fd(a, b)
tw(b)

说明:
用于删除指定的文件,是否成功返回字符:“true”或 “false”

提示:同时将创建变量“b”,作为记录返回的值。(通用于下面的)

【fe 文件是否存在】
用法:(将判断SD卡根目录的abc.zip文件是否存在)
s a = "abc.zip"
fe(a, b)
tw(b)

说明:
用于判断指定的文件存在,是否存在返回字符:“true”或 “false”

【fs 文件大小】
用法:(将获取SD卡根目录的abc.zip文件占用的大小)
s a = "abc.zip"
fs(a, b)
tw(b)

说明:
用于判断指定的文件存在,是否存在返回数值单位(字节),若获取失败将返回 “-1”。
转换为KB:
s a = "abc.zip"
fs(a, b)
s(b/1024, b)
tw(b)
转换为MB:
s2(b/1024/1024, b)
//保留所有小数
sn(b/1024/1024, b2)


【fr 读取文本】
用法:(将读取SD卡根目录的abc.txt文件里面的内容)
s a = "abc.txt"
fr(a, b)
tw(b)

s a = "abc.txt"
s b = "utf-8"
fr(a, b, c)
tw(c)

说明:
用于读取文本文件的数据内容。

【fra 读取文本】
用法:(将读取安装包内assets文件夹内的abc.txt文件里面的内容)
s a = "abc.txt"
fra(a, b)
tw(b)

s a = "abc.txt"
s b = "utf-8"
fra(a, b, c)
tw(c)

说明:
用于读取文本文件的数据内容。

【fw 写入文本】
用法:(将文本数据写入至SD卡根目录的abc.txt文件里面)
s a = "abc.txt"
s b = "我是一个txt文件的内容"
fw(a, b)

s a = "abc.txt"
s b = "我是一个txt文件的内容"
s c = "utf-8"
fw(a, b, c)

【fc 复制文件】
用法:(在SD卡根目录abc.txt文件拷贝一个新的副本至abc2.txt)
s a = "abc.txt"
s b = "abc2.txt"
fc(a, b, c)
tw(c)

说明:
用于复制文件,创建一个新的副本文件。是否成功返回字符:“true”或 “false”

【fl 文件列表】
用法:(获取一个目录的文件列表)
s a = "dir"
fl(a, b)
for(c; b)
{
syso(c)
}

说明:上面咧子是获取sd卡根目录文件夹“dir”里面的所有子目录以及文件,并获取结果传入变量“b”,并用for循环,来读取变量“b”里面的列表数据,并把列表数据复制给变量“c”,其中代码会自动创建并赋值好变量:b、c

提示:
看似有些复杂,理解了就简单了, 这里的变量“b”类型是一个数组,里面包含了一个数据列表。通过for循环可以顺序读取这个列表。并每次循环把每列的数据赋值给变量“c”

【ft 转移文件】
用法:(将SD卡根目录的abc.txt转移至abc3.txt)
s a = "abc.txt"
s b = "abc3.txt"
ft(a, b, c)
tw(c)

说明:
用于转移文件。是否成功返回字符:“true”或 “false”

【fdir 获取SD卡根目录路径】
用法:(获取根目录路径并赋值至变量“a”)
fdir(a)
tw(a)

说明:
通过获取根目录路径,就可以计算文件的绝对路径。

【fuz 解压单个zip】
用法:(将根目录文件abc.apk压缩包里的AndroidManifest.xml文件,解压到根目录AndroidManifest2.xml)
s a = "abc.apk"
s b = "AndroidManifest.xml"
s c = "AndroidManifest2.xml"
fuz(a, b, c, d)
tw(d)

说明:
通过上面代码可以实现压缩包解压部分的文件,并返回赋值至变量“d”解压文件的数量

【fuzs 解压整个zip】
用法:(将根目录文件abc.apk压缩包解压至根目录文件夹abcdir,会自动创建)
s a = "abc.apk"
s b = "abcdir"
fuzs(a, b, c)
tw(c)

说明:
通过上面代码将解压整个压缩包至指定文件,并赋值至变量“c”,是否成功返回字符:“true”或 “false”

【fo 打开文件】
用法:(将根目录打开安装abc.apk文件)
s a = "abc.apk"
fo(a)

说明:
可以调用系统工具打开不同的文件。

【s 计算表达式】
用法:(用于计算表达式)
s a = 12
s b = 13
s(a + b, c)
//将提示:25
tw(c)

s a = 60
s b = 14
s(a / (b + 12), c)
//将提示:2 (自动去除了小数)
tw(c)

说明:
用于计算数据表达式,不支持逻辑表达式。

【s2 计算表达式】
说明:
功能跟上面的一样,但这个会保留2位小数。

【ss 变量相加】
用法:
s a = "123"
s b = "789"
ss(a + "456" + b, c)
//将提示:123456789
tw(c)

说明:
将字符串数据相连,并赋值至变量“c”。

【sr 替换字符】
用法:
s a = "123456789"
s b = "456"
s c = "."
sr(a, b, c, d)
//将提示:123.789
tw(d)

说明:
用于替换字符

【sj 截取字符】
用法:
s a = "123456789"
s b = "34"
s c = "8"
sj(a, b, c, d)
//将提示:567
tw(d)

说明:
用于截取数据部分字符

【sl 数据数组】
用法:
s a = "12;12;12;12;12"
s b = ";"
sl(a, b, c)

for(d; c)
{
//将打印5次:12
syso(d)
}

说明:
将把变量“a”的字符串,切割成一个数组,以字符“.”为分割字符。并用循环顺序打印出数据。

【siof 获取字符位置】
用法:
s a = "123456789"
s b = "3"
s c = 0
siof(a, b, c, d)
//将提示:2
tw(d)

说明:
从前面向后面进行匹配。字符位置以0计算,若无为每月找到将返回 -1

【slof 获取字符位置】
用法:
s a = "123456789"
s b = "4"
s c = 8
slof(a, b, c, d)
//将提示:3
tw(d)

说明:
从后面向前面进行匹配。字符位置以0计算,若无为每月找到将返回 -1

【ssg 截取字符】
用法:
s a = "abcdefghijk"
ssg(a, 2, 6, b)
//将提示:defg
tw(b)

说明:
根据字符的位置进行截取字符,若失败将变量“b”赋值 null

【slg 获取字符长度】
用法:
s a = "123456789"
slg(a, b)
//将提示:9
tw(b)

说明:
顾名思义。失败变量“b”将赋值 -1

【strim 去除头尾空格】
用法:
s a = " 123456789 "
strim(a, b)
//将提示:123456789
tw(b)

说明:
常用于去除后进行判断头尾字符。

【slower 转换为小写】
用法:
s a = "AiufSUscN"
slower(a, b)
//将提示:aiufsuscn
tw(b)

说明:
常用于转换为小写后进行判断。

【supper 转换为大写】
用法:
s a = "AiufSUscN"
supper(a, b)
//将提示:AIUFSUSCN
tw(b)

说明:
常用于转换为大写后进行判断。

【stop 暂停代码】
用法:
tw("1")
stop(1000)
tw("2")
stop(1000)
tw("3")
stop(1000)
tw("4")

说明:
每次执行 stop(1000) 将暂停1秒后,再执行下面代码。单位为毫秒:1000毫秒 = 1秒

【hs 获取网页】
用法:
t()
{
s a = "http://wap.baidu.com/"
hs(a, null, null, b)
tw(b)
}

2,提交post数据:
t()
{
s a = "http://wap.baidu.com/"
hs(a, "title=你好&text=你好吗?", "utf-8", b)
tw(b)
}

说明:
这里先开了一个线程,然后在线程里执行获取网页源码的工作,开线程是担心有些主线程界面。

【hd 下载文件】
用法:(下载文件至SD卡根目录 abc.apk)
t()
{
s a = "http://abc.com/abc.apk"
s b = "abc.apk"
hs(a, b, c)
tw(c)
}

说明:
开个线程,然后在里面下载一个文件。并存到SD卡。下载结果将赋值到变量“c”
返回的赋值:
0 下载成功
-1 下载失败

【hw 访问网页】
用法:
s a = "http://wap.baidu.com/"
hw(a)

说明:
使用内置浏览器访问网页。
可用于下载文件:
s a = "http://abc.com/abc.apk"
hw(a)

【ug 获取控件属性】
用法:(1为:控件ID,第二个参数为控件属性标签,然后赋值到变量)
ug(1, "type", a)
ug(1, "show", b)
ug(1, "text", c)
ug(1, "textcolor", d)
ug(1, "txtsize", e)
ug(1, "x", f)
ug(1, "y", g)
ug(1, "w", h)
ug(1, "h", i)
ug(1, "url", f)
ug(1, "checked", g)

//可获取浏览器控件标题
ug(1, "title", h)

ss(a + ";" + b + ";" + c + ";" + d + ";" + e + ";" + f + ";" + g + ";" + h + ";" + i, a)
tw(a)

说明:
根据输入来返回不同的控件数据。注意:有些控件没有指定属性,将返回null。下面有属性介绍,可参考。

【us 设置控件属性】
用法:(1为:控件ID,第二个参数为控件属性标签,第三个是需要赋值的数据或变量)

控件状态:0为可视,8为隐藏
us(1, "show", 0)

//控件文本:你好
us(1, "text", "你好")

//字体颜色:黑色
us(1, "textcolor", -16777216)

//字体大小:12dip
us(1, "txtsize", 12)

//编辑框设置密码模式:true 或 false
us(1, "password", "true")

//编辑框为空默认显示的字符
us(1, "hint", "这里输入")

//文本形态(如:居中,居右...)适用于编辑框控件,文本控件
说明:TOP:48;BOTTOM:80;RIGHT:5;LEFT:3;....
us(1, "gravity", 48)

//设置图片拉伸:(CENTER、CENTER_CROP、CENTER_INSIDE、FIT_CENTER、FIT_END、FIT_START、FIT_XY、MATRIX)
us(1, "scaletype", "FIT_XY")

//设置图标:根据系统图标id
us(1, "imgrid", 17301567)

//设置图标:根据SD卡图片位置
us(1, "imgsdf", "abc.png")

//设置图标:根据用户图标位置
us(1, "imgaf", "abc.png")

//设置背景颜色:-1为白色,0为透明
us(1, "background", -1)

//设置背景透明度:0至255,越小越透明
us(1, "backgroundalpha", 100)

//设置浏览器控件访问
us(1, "url", "http://wap.baidu.com")

//设置多选控件选中状态
us(1, "checked", "true")

//设置控件x位置坐标
us(1, "x", 60)

//设置控件y位置坐标
us(1, "y", 60)

//设置控件尺寸宽
us(1, "w", 50)

//设置控件尺寸高
us(1, "h", 50)

【uigo 跳转界面】
用法:(输入界面文件名,跳转指定的界面)
uigo("abc.iyu")

说明:
可以界面之间的转换,扩展新的界面。

【utw 弹出界面】
用法:(在原有的界面弹出界面)
s a = "界面标题"
s b = "界面内容"
s c = "确定"
s d = "取消"
utw(a, b, c, d)
{
syso("点击了确定")
}
else
{
syso("点击了取消")
}

说明:
常用于询问用户当前的操作

【end 结束界面】
用法:
end()

说明:
调用后,将结束当前的界面。 并返回原来的界面。如果原来没有界面,将退出应用。

【sran 生产范围随机数】
用法:(生产一个 100 至 1000的随机数)
sran(100, 1000, a)
tw(a)

说明:
有时候需要利用到随机机制,可以利用这个来开发!

【fa 将安装包assets文件夹里的文件复制到SD卡】
用法:(复制安装包本身里面assets文件夹的文件)
s a = "data.zip"
s b = "data.zip"
fa(a, b, c)
tw(c)

说明:
复制安装包内assets里面的文件到SD卡上,可用于作为需要加载初始数据。返回赋值字符:true 或 false
开发的时候将文件复制到 /iApp/app/工程ID/assets/里面。然后就可以打包到 apk里了

【sgsz 指定访问数组维数】
用法:(根据序号访问数组)
s a = "12;34;56;78;90"
s b = ";"
sl(a, b, c)
sgsz(c, 2, d)
tw(d)

说明:
数组可以进行列表形式存储数据,常用于数据列表。注意的是序号是从0开始的。数组总行数如果是5,那序号最大为4

【sgszl 访问数组总行数】
用法:
s a = "12;34;56;78;90"
s b = ";"
sl(a, b, c)
sgszl(c, d)
tw(d)

说明:
可以获取到长度,更准确的访问数组

【fj 压缩文件或文件夹至zip】
用法:
s a = "adc.txt"
s b = "abc.zip"
fj(a, b, c)
tw(c)

说明:
压缩文件。返回赋值字符:true 或 false

【bfm 播放音频】
用法:
s a = "abc.mp3"
bfm(a)

s a = "http://www.abc.com/abc.mp3"
bfm(a)

s a = "abc.mp3"
bfm(a, b)
//播放
//bfms(b, "st")
//暂停
//bfms(b, "pe")
//停止
//bfms(b, "sp")
//是否在播放
//bfms(b, "ip", c)
//tw(c)
//一直循环播放
//bfms(b, "sl", "true")

说明:
可以直接访问安装包里面的音频文件,也可以访问sd卡上的。默认优先播放SD卡上的音频文件

【html标签支持】
用法:
s a = "(html)<a href="http://wap.baidu.com">百度</a>"
us(1, "text", a)

说明:
文本控件,和多选框都支持!

【ula 列表添加内容】
用法:(a:列表样式,b1:项id,b2:项标题,c:赋值变量列表)
s a = "t"
s b1 = "123"
s b2 = "标题"
ula(a, b1; b2, c)


s a = "it32"
s b1 = "123"
s b2 = "tu.png"
s b3 = "标题"
ula(a, b1; b2; b3, c)

s a = "itt"
s b1 = "123"
s b2 = "tu.png"
s b3 = "标题"
s b4 = "介绍"
ula(a, b1; b2; b3; b4, c)

说明:
将列表里添加内容,将内容添加到列表完毕后,可直接设置给列表控件ID。


[列表样式介绍]
t:显示一个文本控件;当点击后,返回一个数组:0:b1;1:b2
it32:显示一个图标,一个标题;当点击后,返回一个数组:0:b1;1:b2;2:b3
it52:显示一个图标,一个标题;当点击后,返回一个数组:0:b1;1:b2;2:b3
itt:显示一个图标,一个标题,一个介绍;当点击后,返回一个数组:0:b1;1:b2;2:b3;3:b4
itt2:显示一个图标,一个标题,一个介绍;当点击后,返回一个数组:0:b1;1:b2;2:b3;3:b4


【uls 列表显示内容】
用法:(id:控件id,a:列表样式,c:列表内容,d:项被点击后赋值数组变量)
s a = "t"
s b = "标题"
ula(a, b, c)

s id = 4
uls(id, a, c, d)

说明:
先通过列表添加内容, 然后在把列表内容设置到列表控件上显示。点击控件后,将把选择项内容赋值到数组变量“d”,然后通过访问数组获得你想要的数据。
图标支持:SD卡上的图片,系统图标,安装包内的图标;如果你想设置安装包内的图标,那么需要自己将图标复制到工程目录:\iApp\app\(id)\Userimg 里面,不然无法打包到安装包内。

在列表点击事件里可以利用数组变量“d”来获取你想要的数据:
sgsz(d, 0, cc3)
tw(cc3)

【usms 发送短信】
用法:
s a = "10086"
s b = "0"
usms(a, b)

或 直接发送(需要一级权限)

s a = "10086"
s b = "0"
usmsgo(a, b)

【ucall 拨打电话】
用法:
s a = "10086"
ucall(a)

或 直接拨打(需要一级权限)
s a = "10086"
ucallgo(a)

【time 当前时间】
用法:
s a = 0
time(a, b)
tw(b)

说明:
第一个参数为时间类型,第二个赋值变量

[数字类型]
0:2014-07-07 09:10:08
1:2014/07/07 09:10:08
2:2014-07-07
3:09:10:08
4:18144133553151
5:2014年07月07日 09:10:08
[字符类型]
Y 年
m 月
d 日
H 时
M 分
S 秒
a/A 星期几

【fi 判断路径是否文件夹】
用法:
s a = "abc"
fi(a, b)
tw(b)

说明:
指定路径,判断是否为目录文件夹,返回:true 或 false

【swh 获取屏幕分辨率】
用法:
s a = "w"
swh(a, w)
s a = "h"
swh(a, h)
s a = "hh"
swh(a, hh)
ss("宽:" + w + " 高:" + h, wh)
tw(wh)

【浏览器控件】
添加好之后,需要在载入事件里加入指定转向地址
用法:
us(控件ID, "url", "http://wap.baidu.com")

【stobm 汉子转换编码字符】
用法:(你 转换 %E4%BD%A0)
stobm("你", "utf-8", b)
tw(b)

说明:
有些时候网络操作的时候,网址需要带有字符参数,就可以把这个汉字转换下。

【sutf8to 将UTF-8编码字符转换中文】
sutf8to("%E4%BD%A0", b)
tw(b)

【uycl 隐藏状态栏】
用法:
//隐藏
uycl("true")
//不隐藏
uycl("false")

说明:
隐藏手机顶部的状态栏

【ushsp 设置横屏或竖屏】
用法:
//横屏
ushsp("hp")
//竖屏
ushsp("sp")

说明:
设置屏幕的显示方式,注意的是设置后载入事件将重新执行

【fra 读取安装包assets文件夹文本】
用法:(将读取assets文件夹的abc.txt文件里面的内容)
s a = "abc.txt"
fra(a, b)
tw(b)

s a = "abc.txt"
s b = "utf-8"
fra(a, b, c)
tw(c)

说明:
用于读取文本文件的数据内容。

【bfv 播放视频】
用法:(播放SD卡上的视频文件)
s a = "abcd.mp4"
bfv(a)

说明:
此方法将全屏播放SD卡上的视频文件

【endcode 结束执行】
用法:
s a = 1
s b = 1
f(a == b)
{
tw("会提示")
//结束执行代码
endcode
}
tw("不会提示")

说明:
可用于提前结束执行代码,也可以用于模块的函数结束。

【模块与函数】
1.创建一个模块:
在程序文件列表,新建一个模块名“mokuai”

2.在模块mokuai.myu里定义各种函数:
fn hanshu(a, b)
ss(a + b, c)
tw(c)
end fn
fn hanshu(a)
tw(a)
end fn

3.在事件里根据模块对象来调用函数:
s a = "abc"
s b = "def"
fn mokuai.han
«Newer      Older»
Comment:
Name:

Back to home

Subscribe | Register | Login | N