<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
	<title>iApp教程</title>
	<link>https://qiulai.wodemo.net/</link>
        <item>
        <title><![CDATA[Untitled]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/entry/521246]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Fri, 19 Jul 2019 11:56:41 +0800]]></pubDate>
        <description><![CDATA[. 19日聊天记录..png]]></description>
    </item>
        <item>
        <title><![CDATA[跳转]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/entry/520859]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Thu, 11 Jul 2019 00:21:42 +0800]]></pubDate>
        <description><![CDATA[魔域计件工资查询]]></description>
    </item>
        <item>
        <title><![CDATA[魔域工资查询v1.2]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/entry/520842]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Wed, 10 Jul 2019 18:04:49 +0800]]></pubDate>
        <description><![CDATA[. moyu.apk]]></description>
    </item>
        <item>
        <title><![CDATA[魔域工资查询1.1]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/entry/510936]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Sat, 15 Jun 2019 00:00:37 +0800]]></pubDate>
        <description><![CDATA[. 魔域计件工资查询.apk]]></description>
    </item>
        <item>
        <title><![CDATA[魔域]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/entry/510135]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Thu, 30 May 2019 23:01:54 +0800]]></pubDate>
        <description><![CDATA[. 魔域工资单查询.apk]]></description>
    </item>
        <item>
        <title><![CDATA[post参数提取器v1.05]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/entry/509489]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Thu, 16 May 2019 22:57:26 +0800]]></pubDate>
        <description><![CDATA[一键提取网页post表单参数，自带测试功能，适用于网站建设、软件开发等. post参数提取器v1.05.apk. Screenshot_2019-02-17-06-47-44-88.jpg. Screenshot_2019-02-17-06-48-21-41.jpg. Screenshot_2019-02-17-06-48-08-08.jpg]]></description>
    </item>
        <item>
        <title><![CDATA[post参数提取器1.05.apk]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/file/501429]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Sun, 17 Feb 2019 06:41:09 +0800]]></pubDate>
        <description><![CDATA[File Size: 3.5 MiBVersion: 1.02ID：com.post.qiulai&nbsp;|&nbsp;<a href="https://qiulai.wodemo.net/browse/501429">Browse</a>&nbsp;|&nbsp;<a href="https://qiulai.wodemo.net/meta/501429">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[iApp教程(示例)]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/entry/333401]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Fri, 13 Mar 2015 14:38:57 +0800]]></pubDate>
        <description><![CDATA[========
【倒计时】
s id=这里填写文本id
t()
{
ss(&quot;正在倒计时60秒&quot;,b)
us(id,&quot;text&quot;,b)
s a=60
for(1;60)
{
f(a==1)
{
.这里还可以加其代码
us(id,&quot;text&quot;,&quot;倒计时完成&quot;)
endcode
}
s(a-1,a)
ss(&quot;正在倒计时&quot;+a+&quot;秒&quot;,c)
us(id,&quot;text&quot;,c)
stop(1000)
}
}



《作者：猫吓狗》

【启动图画面】


s id=这里填写图片控件id
s go=&quot;这里是启动后进入的第一个界面文件名&quot;

uycl(&quot;true&quot;)
.这个是隐藏状态栏

swh(&quot;w&quot;, w)
.获取屏幕宽度

swh(&quot;h&quot;, h)
.获获取屏幕高度

us(id,&quot;w&quot;,w)
.设置添加的图片控件的宽度为屏幕的宽度

us(id,&quot;h&quot;,h)
.设置添加的图片控件的高度为屏幕的高度

us(id,&quot;x&quot;,0)
.设置控件x坐标

us(id,&quot;y&quot;,0)
.设置控件y坐标

us(id, &quot;scaletype&quot;, &quot;FIT_XY&quot;)
.这个是设置图片控件为拉伸

t()
{
stop(3000)
uigo(go)
end()
}
.设置3秒后跳转


注：一般启动画面在mian.iyu初始文件设置，跳转后的界面任意定义。


《作者：猫吓狗》


【点击两次退出】


.按两次返回键退出那个原来需要在载入事件中将变量赋值,不好管理代码,所以改了以下,只需要把代码写入重写返回键就可以了,也可以写在按钮中做双击事件,

f(a==1)
{
end()
}
else
{
s a=1
tw(&quot;再按一次退出&quot;)
t()
{
stop(2000)
s a=0
}
}


《作者：星辰》


【文字移动】

s q2=&quot;这里输入移动文字&quot;
s id=这里输入文本id

swh(&quot;w&quot;,w)
slg(q2,q3)
t()
{
s q=1
s q1=w
s q4=1
s q6=0
us(id,&quot;x&quot;,w)
w(q==1)
{
ssg(q2,q6,q4,q5)
us(id,&quot;text&quot;,q5)
us(id,&quot;x&quot;,q1)

f(q4==q3)
{
s q4=q3
}
else
{
s(q4+1,q4)
}


s(q1-15,q1)
.15是调跳出速度，使用全中文数值调大，全英文调小


stop(200)
f(q1&lt;10)
{
s q=0
w(q==0)
{
ssg(q2,q6,q3,q7)
us(id,&quot;text&quot;,q7)

s(q6+1,q6)
f(q6==q3)
{
us(id,&quot;text&quot;,&quot;&quot;)
s q1=w
s q4=1
s q6=0
us(id,&quot;x&quot;,w)
s q=1
}
stop(200)
}
}
}
}

《作者：猫吓狗》



【状态栏推送通知】

ftz(a,b,c,d)

.a为栏态栏显示的即时提醒
.b为通知栏的标题
.c为通知栏的内容
.d为点击后的连接地址

如：

t()
{
ftz(&quot;百度&quot;,&quot;百度&quot;,&quot;有新内容&quot;,&quot;http//:wap.baidu.com&quot;)
}

《作者：猫吓狗》


【向QQ发起临时会话】

t()
{
s id=这里填写你的输入框id
ug(id,&quot;text&quot;,qq)
s ss=&quot;&amp;&quot;
s v=&quot;http://wpa.qq.com/msgrd?v=3&quot;
ss(v+ss+&quot;site=qq&quot;+ss+&quot;menu=yes&quot;+ss+&quot;uin=&quot;+qq,uu)
s r=&quot;base.html&quot;
s rr=&quot;&lt;META HTTP-EQUIV=&quot;Refresh&quot; CONTENT=&quot;0;URL=&quot;
ss(rr+uu+&quot;&quot;&gt;&quot;,rt)
fw(r,rt)
fo(r)

}

《作者：by丶萌萌小夏夏》
qq：1075625244



【iApp初始化二进制可执行文件】

s bb=&quot;/data/data/org.theitxproject.itxtoolbox0000000000/files/busybox&quot;
.把org.theitxproject......改成自己的包名称，把busybox改成需要初始化的文件名

t()
{
fa(&quot;busybox&quot;,bb,ifsucc)
.把assets里面的二进制可执行文件复制到/data/data/包名称/files 内
f(ifsucc==&quot;false&quot;)
{
.判断是否复制成功
tw(&quot;文件加载失败！&quot;)
}
else
{
ss(&quot;/system/bin/chmod 744 &quot;+bb,run)
esl(run,false,&quot;&quot;)
.设置权限，你是拥有者，所以无需root，这条可是设置为 读写执行
}
}

.分离自iTX Toolbox 2.0.4


《作者：信疯哥得永生》

【设置密码框】

s id=这里填写输入框id
us(id, &quot;password&quot;, &quot;true&quot;)


《作者：心已为她死》

【自动检测更新实例】
f(acu!=&quot;false&quot;)
.判断是否允许检查更新，可以省略
{
t()
{
.tw(&quot;正在检查更新，请稍后……&quot;)
 s ver=&quot;2.0.5&quot;
.设置当前版本号
 hs(&quot;http://bbs.itxtech.ga/software/v/nver.txt&quot;,null,null,getdata)
.获取更新数据
sutf8to(getdata,getdata)
.进行utf8转码
f(getdata!=&quot;&quot;)
{
syso(getdata)
.以;为标志进行文本分割
sl(getdata,&quot;;&quot;,getdata)
sgsz(getdata,0,nver)
.得到最新版本
sgsz(getdata,1,dl)
.得到下载地址
sgsz(getdata,2,rz)
.得到更新日志
sgsz(getdata,3,size)
.得到文件大小
syso(nver)
syso(dl)
syso(rz)
syso(size)
f(nver!=&quot;null&quot;)
{
f(nver!=ver)
{
uigo(&quot;ug.iyu&quot;)
.载入更新窗口
.进行窗口初始化
}
.else
.{
.tw(&quot;当前已是最新版！&quot;)
.}
}
.else
.{
.tw(&quot;检查失败！&quot;)
.}
}
}
}

《作者：信疯哥得永生》


【空白输入框判断】
s id1=帐号输入框id
s id2=帐号输入框id
ug(id1,&quot;text&quot;,t1)
ug(id2,&quot;text&quot;,t2)
f(t1==&quot;&quot; || t2==&quot;&quot;)
{
tw(&quot;输入不能为空，请重新输入&quot;)
}
else
{
uigo(&quot;hello.iyu&quot;)
}


《作者：a.✘ — LL开发商 》

【免费飞信发送信息】

t()
{
s hao=&quot;13800138000&quot;
//上面写你飞信账号

s mi=&quot;123456&quot;
//写你飞信密码

s you=&quot;1008611&quot;
//写你要发的飞信好友账号

s sms=&quot;你要发的信息&quot;
//写你发的内容

s fu=&quot;&amp;&quot;
ss(&quot;http://faduanxin.sinaapp.com/?phone=&quot;+hao+fu+&quot;pwd=&quot;+mi+fu+&quot;to=&quot;+you+fu+&quot;msg=&quot;+sms,url)
hs(url,null,null,so)

}

《作者：by丶萌萌小夏夏》
qq：1075625244


【QQ空间尾巴生成器】

s id1=这里输入qq号输入框id
s id2=这里输入内容输入框id
s id3=这里输入是否需要蓝色多选项id
s id4=这里是显示文本id

ug(id1,&quot;text&quot;,qqn)
ug(id2,&quot;text&quot;,xiaowb)
ug(id3,&quot;checked&quot;,ifch)
s du1=&quot;[em]e10002[/em]{uin:&quot;
s du2=&quot;,nick:&quot;
s du3=&quot;,who:1}&quot;
f(ifch==&quot;false&quot;)
{
s qqn=0
s iffull=&quot;true&quot;
}
else
{
f(qqn!=&quot;&quot;)
{
s iffull=&quot;true&quot;
}
else
{
s iffull=&quot;false&quot;
}
}
f(xiaowb!=&quot;&quot;&amp;&amp;iffull==&quot;true&quot;)
{
ss(du1+qqn+du2+xiaowb+du3,xwb)
us(id4,&quot;text&quot;,xwb)
}
else
{
tw(&quot;请填写完整信息！&quot;)
}

《作者：信疯哥得永生》


【人品计算器】

s id=这里输入名字输入框id
s id1=这里是显示文本id

ug(id,&quot;text&quot;,gg)
f(gg==&quot;&quot;)
{
tw(&quot;输入你的名字再计算人品!&quot;)
}
else
{
t()
{
s fu=&quot;&amp;&quot;
s url=&quot;http://api.weiqq.cc/api.php?type=rp&quot;
ss(url+fu+&quot;msg=&quot;+gg,urls)
hs(urls,null,null,rp)
us(1,&quot;text&quot;,rp)
}
}

《作者：by丶萌萌小夏夏》
qq：1075625244


【打印文字，带光标、图标】

s id=文字输入框id
s id1=输出字符文本id


t()
{
s r=&quot;true&quot;
s go=1
s k=0
w(r==&quot;true&quot;)
{
ug(id,&quot;text&quot;,dd)
//获取文本或者输入框需要打印的字

stop(300)
//停就300毫秒

ssg(dd,k,go,h)
//截取打印数据

ug(id1,&quot;text&quot;,tt)
//获取输出的打印数据

s(k+1,k)
//k值加1

s(go+1,go)
//go值加1

ss(tt+h+&quot;|&quot;,h)
//前面打印的字加上现在打印的字
us(id1,&quot;text&quot;,h)
//打字带图标

sr(h,&quot;|&quot;,&quot;&quot;,h)
//去除图标

us(id1,&quot;text&quot;,h)
//打字不带图标

}

}

《作者：by丶萌萌小夏夏》
qq：1075625244



【暂停后执行】

s a=暂停的时间

t()
{
stop(a)
.这里加上暂停后代码
}


可用于启动程序时停顿


《作者：龙哥》

【手机号归属地查询】

s id=这里填写手机号输入框id
s id1=这里是显示文本id

ug(id,&quot;text&quot;,sjh)
us(id1,&quot;text&quot;,&quot;&quot;)
f(sjh!=&quot;&quot;)
{
s gsd=&quot;http://www.096.me/api.php?mode=txt&amp;phone=&quot;
t()
{
ss(gsd+sjh,uuu)
syso(uuu)
hs(uuu,null,null,gsd2)
syso(gsd2)
f(gsd2?&quot;不是合法的手机号码&quot;)
{
tw(&quot;查询失败，请检查手机号是否正确！&quot;)
}
else
{
f(gsd2!=&quot;null&quot;)
{
sj(gsd2,&quot;||&quot;,&quot;||&quot;,gsd3)
sr(gsd3,&quot; &quot;,&quot;&quot;,gsd3)
syso(gsd3)
us(id1,&quot;text&quot;,gsd3)
}
else
{
tw(&quot;网络不给力啊！&quot;)
}
}
}
}
else
{
tw(&quot;请填写手机号！&quot;)
}

《作者：信疯哥得永生》

【清除输入框和输出框内容】

s id=这里填输入框或输出框ID

ug(id,&quot;text&quot;,a)
f(a==&quot;&quot;)
{
tw(&quot;数据己清除！&quot;)

}
else
{
us(id,&quot;text&quot;,&quot;&quot;)
}


《作者：鹏鹏》


【根据地理位置获取经纬度】


s id=这里是位置输入框id
s id1=这里是文本显示结果id

ug(id,&quot;text&quot;,geo)
s geoapi=&quot;http://gc.ditu.aliyun.com/geocoding?a=&quot;
f(geo!=&quot;&quot;)
{
sr(geo,&quot; &quot;,&quot;&quot;,geo)
sr(geo,&quot;n&quot;,&quot;&quot;,geo)
t()
{
stobm(geo,&quot;utf-8&quot;,geo)
ss(geoapi+geo,geogo)
hs(geogo,null,null,geoback)
f(geoback!=&quot;null&quot;)
{
syso(geoback)
s dh=&quot;,&quot;l&quot;
s dkh=&quot;}&quot;
sj(geoback,&quot;{&quot;lon&quot;:&quot;,dh,lon)
sj(geoback,&quot;&quot;lat&quot;:&quot;,dkh,lat)
ss(&quot;经度:&quot;+lon+&quot;n纬度:&quot;+lat,jwd)
syso(lon)
syso(lat)
us(id1,&quot;text&quot;,jwd)
}
else
{
tw(&quot;网络不给力啊！&quot;)
}
}
}

《作者：信疯哥得永生》



【经纬度查询地理位置】

s id=这里填写经度输入框id
s id1=这里填写纬度输入框id
s id2=这里填写显示结果文本id


ug(id,&quot;text&quot;,go)
ug(id1,&quot;text&quot;,ga)
s geoa=&quot;http://gc.ditu.aliyun.com/regeocoding?type=100&amp;l=&quot;
s geoa2=&quot;http://gc.ditu.aliyun.com/regeocoding?type=010&amp;l=&quot;
s dou=&quot;,&quot;
s sj1= &quot;&quot;,&quot;admCode&quot;
s sj2= &quot;&quot;,&quot;addr&quot;
s sj3=&quot;&quot;,&quot;admName&quot;
s sj4=&quot;&quot;,&quot;id&quot;
f(go!=&quot;&quot;&amp;&amp;ga!=&quot;&quot;)
{
ss(geoa+ga+dou+go,geoget)
ss(geoa2+ga+dou+go,geoget2)
t()
{
hs(geoget,null,null,geoba)
hs(geoget2,null,null,geoba2)
syso(geoba)
syso(geoba2)
f(geoba!=&quot;null&quot;)
{
sj(geoba,&quot;&quot;name&quot;:&quot;&quot;,sj1,name)
sj(geoba,&quot;&quot;admName&quot;:&quot;&quot;,sj2,adn)
sj(geoba,&quot;&quot;admCode&quot;:&quot;&quot;,sj3,adc)
sj(geoba2,&quot;&quot;name&quot;:&quot;&quot;,sj4,name2)
sj(geoba2,&quot;&quot;admName&quot;:&quot;&quot;,sj2,adn2)
ss(&quot;所在道路:&quot;+adn+name+&quot;n所在位置:&quot;+adn2+dou+name2+&quot;n行政区编码:&quot;+adc,geowz)
sr(geowz,dou,&quot;&quot;,geowz)
us(id2,&quot;text&quot;,geowz)
}
else
{
tw(&quot;网络不给力啊！&quot;)
}
}
}
else
{
tw(&quot;请填写经纬度！&quot;)
}



《作者：信疯哥得永生》


【ISBN获取书籍信息】


s id=这里填写isbn输入框id
s id1=这里是显示结果文本id


ug(id,&quot;text&quot;,isbn)
s isbnapi=&quot;http://api.36wu.com/ISBN/GetIsbnInfo?isbn=&quot;
f(isbn!=&quot;&quot;)
{
tw(&quot;正在查询，请稍后……&quot;)
ss(isbnapi+isbn,isbnurl)
t()
{
hs(isbnurl,null,null,isbnba)
f(isbnba!=&quot;null&quot;)
{
ssg(isbnba,10,13,code)
f(code?&quot;201&quot;)
{
tw(&quot;错误的ISBN！&quot;)
}
f(code?&quot;301&quot;)
{
tw(&quot;使用过于频繁，20次/小时！ &quot;)
}
f(code?&quot;200&quot;)
{
s le=&quot;&quot;title&quot;:&quot;
s ri=&quot;,&quot;subtitle&quot;
sj(isbnba,le,ri,shti)
f(shti?&quot;null&quot;)
{
s shti=&quot;无&quot;
}
s le=&quot;&quot;subtitle&quot;:&quot;
s ri=&quot;,&quot;isbn10&quot;
sj(isbnba,le,ri,subti)
f(subti?&quot;null&quot;)
{
s subti=&quot;无&quot;
}
s le=&quot;&quot;author&quot;:&quot;
s ri=&quot;,&quot;translator&quot;
sj(isbnba,le,ri,auth)
f(auth?&quot;null&quot;)
{
s auth=&quot;无&quot;
}
s le=&quot;&quot;author_info&quot;:&quot;
s ri=&quot;,&quot;pages&quot;
sj(isbnba,le,ri,authi)
sr(authi,&quot;作者介绍：&quot;,&quot;&quot;,authi)
sr(authi,&quot;&quot;,&quot;a&quot;,authi)
sr(authi,&quot;an&quot;,&quot;n&quot;,authi)
f(authi?&quot;null&quot;)
{
s authi=&quot;无&quot;
}
s le=&quot;&quot;pages&quot;:&quot;
s ri=&quot;,&quot;author&quot;&quot;
sj(isbnba,le,ri,page)
f(page?&quot;null&quot;)
{
s page=&quot;无&quot;
}
s le=&quot;&quot;translator&quot;:&quot;
s ri=&quot;,&quot;price&quot;
sr(isbnba,le,ri,trans)
f(trans?&quot;null&quot;)
{
s trans=&quot;无&quot;
}
s le=&quot;&quot;price&quot;:&quot;
s ri=&quot;,&quot;binding&quot;
sj(isbnba,le,ri,pric)
f(pric?&quot;null&quot;)
{
s pric=&quot;无&quot;
}
s le=&quot;&quot;binding&quot;:&quot;
s ri=&quot;,&quot;publisher&quot;
sj(isbnba,le,ri,bind)
f(bind?&quot;null&quot;)
{
s bind=&quot;无&quot;
}
s le=&quot;&quot;publisher&quot;:&quot;
s ri=&quot;,&quot;pubdate&quot;
sj(isbnba,le,ri,publ)
f(publ?&quot;null&quot;)
{
s publ=&quot;无&quot;
}
s le=&quot;&quot;pubdate&quot;:&quot;
s ri=&quot;}}&quot;
sj(isbnba,le,ri,pubd)
f(pubd?&quot;null&quot;)
{
s pubd=&quot;无&quot;
}
ss(&quot;标题:&quot;+shti+&quot;n小标题:&quot;+subti+&quot;n作者:&quot;+auth+&quot;n作者简介:&quot;+authi+&quot;n页数:&quot;+page+&quot;n译者:&quot;+trans+&quot;n价格:&quot;+pric+&quot;n包装:&quot;+bind+&quot;n出版社:&quot;+publ+&quot;n发行时间:&quot;+pubd,isbnxinxi)
sr(isbnxinxi,&quot;&quot;&quot;,&quot;&quot;,isbnxinxi)

.isbnxinxi即为已经格式化可以输出的信息
us(id1,&quot;text&quot;,isbnxinxi)


}
}
else
{
tw(&quot;网络不给力啊！&quot;)
}
}
}
else
{
tw(&quot;请填写ISBN！&quot;)
}


《作者：信疯哥得永生》


【汉字转拼音】



s id=这里是汉字输入框id
s id1=这里是显示文本id

ug(id,&quot;text&quot;,zhnr)
s hsapi=&quot;http://2.itxtech.sinaapp.com/pinyin.php?hs=&quot;
f(zhnr!=&quot;&quot;)
{
stobm(zhnr,&quot;utf-8&quot;,zhnr)
ss(hsapi+zhnr,hsget)
t()
{
hs(hsget,null,null,hsba)
f(hsba!=&quot;null&quot;)
{
us(id1,&quot;text&quot;,hsba)
}
else
{
tw(&quot;网络不给力啊！&quot;)
}
}
}
else
{
tw(&quot;请输入需要转换的汉字！&quot;)
}


《作者：信疯哥得永生》

【手机号归属地查询】

s id=这里是手机号输入框id

t()
{
ug(id,&quot;text&quot;,hao)
ss(&quot;http://wap.ip138.com/sim_search138.asp?mobile=&quot;+hao,url)
hs(url,null,null,urls)
sj(urls,&quot;&lt;/form&gt;&lt;br/&gt;&quot;,&quot;&lt;/div&gt;&quot;,u)
sr(u,&quot;&lt;br/&gt;&quot;,&quot;&quot;,uu)
sr(uu,&quot;&lt;div&gt;&quot;,&quot;&quot;,us)
sutf8to(us,us)
tw(us)
}


《作者：by丶萌萌小夏夏》
qq：1075625244

【火车票代售点查询】


s id=这里是城市输入框id
s id1=这里是显示文本id

t()
{
ug(id,&quot;text&quot;,dai)
ss(&quot;http://qq.ip138.com/daishoudian/daishoudian_search.asp?k=&quot;+dai,d)
hs(d,null,null,url)
sj(url,&quot;&lt;/a&gt;&quot;,&quot;&lt;a&quot;,uu)
sr(uu,&quot;&lt;br/&gt;&lt;b&gt;&quot;,&quot;n&quot;,uy)

sr(uy,&quot;&lt;/b&gt;&lt;br/&gt;&quot;,&quot;n&quot;,uy)
sr(uy,&quot;&lt;br/&gt;&lt;br/&gt;&quot;,&quot;nn&quot;,uy)
sr(uy,&quot;&lt;b&gt;&quot;,&quot;&quot;,uy)
sr(uy,&quot;&lt;br/&gt;&quot;,&quot;n&quot;,uy)
strim(uy,uy)

sutf8to(uy,u)

us(id1,&quot;text&quot;,u)
}

//北京等地方站点太多，只显示部分代售点


《作者：by丶萌萌小夏夏》
qq：1075625244


【身份证信息查询】


s id=这里是身份证号输入框id
s id1=这里是显示文本id

t()
{
ug(id,&quot;text&quot;,hao)

ss(&quot;http://wap.ip138.com/id_search.asp?userid=&quot;+hao,h)

hs(h,null,null,hh)

sj(hh,&quot;&lt;div class=&quot;a&quot;&gt;&quot;,&quot;&lt;/div&gt;&quot;,hs)

sr(hs,&quot;&lt;br/&gt;&quot;,&quot;n&quot;,hs)

sutf8to(hs,hs)

us(id1,&quot;text&quot;,hs)
}



《作者：by丶萌萌小夏夏》
qq：1075625244


【判断文件是否存在】


.abc是文件名

fe(&quot;abc.txt&quot;,bbb)
s a=&quot;true&quot;
f(bbb == a)
{
tw(&quot;存在&quot;)
}
else
{
tw(&quot;不存在&quot;)
}


《作者：by大师兄》



【GB2312网页转UTF-8】


s id=GB2312输入框id
s id1=显示文本id

t()
{
ug(id,&quot;text&quot;,a)
f(a!=&quot;&quot;)
{
tw(&quot;正在获取，请稍后……&quot;)
ss(&quot;http://itxtech.sinaapp.com/gbtoutf.php?w=&quot;+a,a)
syso(a)
hs(a,null,null,b)
f(b!=&quot;null&quot;)
{
us(id1,&quot;text&quot;,b)
}
else
{
tw(&quot;网页源代码获取失败！&quot;)
}
}
else
{
tw(&quot;请填写网址！&quot;)
}
}


《作者：信疯哥得永生》


【获取源码以html方式显示】


s a = &quot;这里输入网址&quot;
s id=这里是显示文本id

t()
{
hs(a, null, null, b)

s o = &quot;这里是截取html代码前&quot;
s c = &quot;这里是截取html代码后&quot;

sj(b, o, c, d)
s g=&quot;(html)&quot;
ss(g + d,cv)
us(id,&quot;text&quot;,cv)
}


《作者：by大师兄》

【调用分享功能之分享到QQ空间 】

hw(&quot;http://www.jiathis.com/send/?webid=qzone&amp;url=http://baidu.com&amp;title=来百度一下&quot;)

//http://www.jiathis.com/send/?webid=shareID&amp;url=$siteUrl&amp;title=$siteTitle&amp;uid=$uid 

//更多分享访问www.jiathis.com

//shareID 分享ID参数代表你要分享到哪个站点的ID编号, 可以通过这个文档查询：分享网站ID清单 
//$siteUrl 参数代表你要分享的网站链接地址，可以通过动态程序调用 
//$siteTitle 参数代表你要分享的网站页面标题，可以通过动态程序调用，也可自定义。
//$uid(非必须) 代表你注册JiaThis的会员UID，可以登录网站后查到您的UID，用于数据统计。


《作者：by丶萌萌小夏夏》
qq：1075625244


【手机号凶吉测试】


t()
{
s fu=&quot;&amp;&quot;
//定义一个字符&amp;

s url=&quot;http://lightweb.cn/sm/test.aspx&quot;
//定义一个post地址

ss(&quot;q=&quot;+&quot;13800138000&quot;+fu+&quot;type=&quot;+&quot;q&quot;,qq)
//定义post参数

hs(url,qq,&quot;utf-8&quot;,qs)
//获取提交表单后的网页源码

sj(qs,&quot;	&lt;p&gt;&lt;b&gt;&quot;,&quot;。&quot;,qs)
//分析网页源码，确定截取方案，并截取主要部分内容

sr(qs,&quot;&lt;/b&gt;：&lt;/p&gt;&lt;p&gt;&quot;,&quot;:&quot;,qs)
//替换已经截取得到的多余字符

sr(qs,&quot;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&quot;,&quot;nn&quot;,qs)
//替换多余字符

tw(qs)
//toast方式显示最后结果

}


《作者：by丶萌萌小夏夏》
qq：1075625244


【远程推送信息】

.〖详情准备：请查看理论〗

t()
{
s url=&quot;http://3g.xshe.pw/entry/311803&quot;
hs(url,null,null,nrzz)
f(nrzz==&quot;&quot;)
{
tw(&quot;不弹出状态栏消息&quot;)
}
else
{
s ks1 = &quot;jstx=&quot;
s js1 = &quot;@1&quot;
sj(nrzz, ks1, js1, jstx)
s ks2 = &quot;bt=&quot;
s js2 = &quot;@2&quot;
sj(nrzz, ks2, js2, bt)
s ks3 = &quot;txnr=&quot;
s js3= &quot;@3&quot;
sj(nrzz, ks3, js3, txnr)
s ks4 = &quot;dzurl=&quot;
s js4= &quot;@4&quot;
sj(nrzz, ks4, js4, dzurl)
ss(&quot;http://&quot;+dzurl,dzurl)
t()
{
ftz(jstx,bt,txnr,dzurl)
}
}
}



.本教程来自曦韶杭共享。QQ778773801


《作者：曦韶杭》

【随机进度条】


s id=这里是按钮控件id
s id1=这里是背景墙id
s id2=这里是背景墙id
s id3=这里是文本id


swh(&quot;w&quot;,w)
swh(&quot;h&quot;,h)
s(w-200,w3)
s(w-30,w5)
s(w5/2,w6)
s(w3/2,w4)
s(w4+5,w7)
us(id,&quot;x&quot;,w4)
us(id1,&quot;x&quot;,w7)
us(id2,&quot;x&quot;,w7)
us(id3,&quot;x&quot;,w6)
us(id,&quot;y&quot;,300)
us(id1,&quot;y&quot;,305)
us(id2,&quot;y&quot;,305)
us(id3,&quot;y&quot;,315)
.设置各控件xy轴


us(id,&quot;w&quot;,200)
us(id1,&quot;w&quot;,190)
us(id2,&quot;w&quot;,190)
us(id,&quot;h&quot;,40)
us(id1,&quot;h&quot;,10)
us(id2,&quot;h&quot;,10)
us(id,&quot;text&quot;,&quot;&quot;)
us(id3,&quot;text&quot;,&quot;0%&quot;)
.设置各控件宽高度



us(id1, &quot;textcolor&quot;, -7021609)
us(id2, &quot;textcolor&quot;, -4864)
.设置背景墙初始颜色

t()
{
s w9=0
s w8=190
s w11=0
s a=1
w(a==1)
{
us(id2,&quot;w&quot;,w11)
s2(w11/w8,w12)
s(w12*100,w13)
ss(w13+&quot;%&quot;,w14)
us(id3,&quot;text&quot;,w14)
sran(10, 20, w10)
s(w11+w10,w11)

f(w11&gt;w8)
{
s a=0
stop(1000)
us(id,&quot;show&quot;,8)
us(id1,&quot;show&quot;,8)
us(id2,&quot;show&quot;,8)
us(id3,&quot;show&quot;,8)
us(id2,&quot;w&quot;,w8)
tw(&quot;完成&quot;)
f(w14?&quot;100&quot;)
{
}
else
{
us(id3,&quot;text&quot;,&quot;100%&quot;)
}
}
stop(1000)
}
}
.随机加载当前进度


《作者：猫吓狗》

【文字逐渐缩小效果】


s id=这里是文本控件id


us(id, &quot;background&quot;, 0)
us(id, &quot;textcolor&quot;, -62464)
s size=190
t()
{
for(1;90)
{
stop(10)
s(size - 2,size)
us(id,&quot;txtsize&quot;,size)
f(size == 40)
{
stop(500)
}
f(size ==20)
{
us(id,&quot;show&quot;,8)
}
}
}


.单字效果更佳


《作者：我是笨蛋》

【下载进度条效果】

s id=这里是背景墙1id
s id1=这里是背景墙2id
s id2=这里是文本id
s bb=&quot;这里是当前版本号&quot;
s xz1=&quot;这里是最新版本号&quot;
s xz=&quot;这里是新版下载绝对地址&quot;
s size=&quot;这里是最新版本大小&quot;

.请按照顺序依次添加控件


swh(&quot;w&quot;,w)
swh(&quot;h&quot;,h)
s(h-30,h1)
s(w/2,w1)
s(w1-50,w2)
us(id2,&quot;x&quot;,w2)
us(id,&quot;x&quot;,0)
us(id2,&quot;y&quot;,h1)
us(id,&quot;y&quot;,h1)
us(id1,&quot;y&quot;,h1)
us(id,&quot;w&quot;,w)
us(id2,&quot;show&quot;,8)
us(id,&quot;show&quot;,8)
us(id1,&quot;show&quot;,8)

.设置各控件坐标与状态


ss(&quot;当前版本：&quot;+bb+&quot;n最新版本：&quot;+xz1+&quot;n是否现在更新？&quot;,bb1)
s bb2=&quot;iApp/dl/iApp教程.apk&quot;
s bb4=&quot;iApp/dl/&quot;
utw(&quot;发现新版本&quot;,bb1,&quot;现在更新&quot;,&quot;以后再说&quot;)
{
t()
{
fe(bb2,iffe)
f(iffe==&quot;true&quot;)
{
fd(bb2,&quot;&quot;)
}
tw(&quot;开始下载……&quot;)
fl(bb4,b)
sgszl(b,b1)
s a=0
for(1;b1)
{
sgsz(b,a,c)
ss(bb4+c,c)
fd(c,k)
s(a+1,a)
}
syso(dl)
s whi=&quot;a&quot;
hd(xz,bb2,bb3)
s whi=&quot;b&quot;
s wh2=&quot;b&quot;
f(bb3==&quot;0&quot;)
{
fo(bb2)
}
else
{
tw(&quot;更新失败，正在转到网页...&quot;)
hw(xz)
}
}
}
else
{
end()
}

.联网后台下载与激活进度条



t()
{
us(id, &quot;textcolor&quot;, -7021609)
us(id1, &quot;textcolor&quot;, -16711926)
us(id2, &quot;background&quot;, 0)

s wh2=&quot;a&quot;
w(wh2==&quot;a&quot;)
{
stop(100)
f(whi==&quot;a&quot;)
{
fl(&quot;iApp/dl&quot;,xzwj)
sgsz(xzwj,0,wj)
ss(bb4+wj,wj)
fs(wj,dlsi)
f(dlsi&gt;0)
{
s2(dlsi/1024,dlsi)
ss(dlsi+&quot;K/&quot;+size+&quot;K&quot;,dissize)
us(id2,&quot;text&quot;,dissize)
us(id,&quot;show&quot;,0)
us(id1,&quot;show&quot;,0)
swh(&quot;w&quot;,www)
s(dlsi/size*1000,aaa)
s(aaa*www/1000,kuandu)
us(id1,&quot;w&quot;,kuandu)
s2(aaa/10,howmu)
ss(dlsi+&quot;K/&quot;+size+&quot;K &quot;+howmu+&quot;%&quot;,outaa)
us(id1,&quot;show&quot;,0)
}
}
f(whi==&quot;b&quot;)
{
us(id2,&quot;show&quot;,8)
us(id,&quot;show&quot;,8)
us(id1,&quot;show&quot;,8)
syso(whi)
s wh2=&quot;b&quot;
}
}
}


.启动进度并实时更新



.以上代码可配合远程更新使用，代码来源于疯哥iXT工具箱，原星辰提供的原理。


《作者：猫吓狗》


【远程更换启动图】


s id =这里是图片空件件id


t()
{
s a = &quot;h&quot;
swh(a, h)
s b = &quot;w&quot;
swh(b,w)
.获取屏幕宽和高
us(id,&quot;scaletype&quot;,&quot;FIT_XY&quot;)
.拉伸图片
us(id,&quot;w&quot;,w)
us(id,&quot;h&quot;,h)
.设置屏幕宽高为图片控制的宽高
s filepath = &quot; /storage/sdcard0/imgs/flash.png&quot;
ushsp(&quot;sp&quot;)
fe(filepath, zz)
.判断flash.png图片是否存在
f(zz==&quot;true&quot;)
{
.否在就执行以下代码
us(id,&quot;imgsdf&quot;,filepath)
.显示图片
us(id,&quot;show&quot;,0)
.图片控件为显示
stop(2000)
uigo(&quot;a&quot;)
end()
.停两秒跳到a界面，结束本界面
}
else
{
.不存在执行下面代码
us(id,&quot;show&quot;,0)
stop(2000)
uigo(&quot;a&quot;)
end()
}
hs(&quot;http://qawsedrf96.wodemo.com/entry/312767&quot;, null, null, sb)
.获取网址内容，格式请参照下面方式
sj(sb,&quot;（&quot;,&quot;）&quot;,ver)
.这是截取网址内容中（）的数字
 sj(sb,&quot;〖&quot;,&quot;〗&quot;,url)
.载取网址内容中〖〗的链接
strim(url,url)
ss(&quot;http://&quot;+url,url)
fe(&quot;imgs/ban.txt&quot; , bb)
.判断ban.txt文件是否存在
f(bb== &quot;true&quot;)
{
fr(&quot;imgs/ban.txt&quot; ,mm)
.读取ban.txt内容
f(mm!=&quot;&quot;)
{
f(ver&gt;mm)
{
hd(url,&quot;imgs/flash.png&quot;,ifsucc)
fw(&quot;imgs/ban.txt&quot;,ver)
.下载图片，并把ver写到ban.txt中
}
}
else
{
hd(url,&quot;imgs/flash.png&quot;,ifsucc)
fw(&quot;imgs/ban.txt&quot;,ver)
}
}
else
{
hd(url,&quot;imgs/flash.png&quot;,ifsucc)
fw(&quot;imgs/ban.txt&quot;,ver)
}
}




网页上的格式如下：

版号：（）

注：（）号内填写数字，每次更换要比上次数值大

图片地址：〖〗

注：〖〗号内要填写图片绝对地址，否则下载失败



《作者：醉了》


【QQ空间刷留言】



s id=这里是内容编辑框id
s sid=&quot;这里是用户sid&quot;
s qq=这里是要刷的qq号

ug(id,&quot;text&quot;,ny)
f(ny==&quot;&quot;)
{
tw(&quot;请输入内容&quot;)
}
else
{
t()
{
tw(&quot;正在联网提交...&quot;)
s r=&quot;&amp;&quot;
ss(&quot;http://blog30.z.qq.com/mmsgb/add_msg.jsp?sid=&quot;+sid,url3)
ss(&quot;msg=&quot;+ny+r+&quot;sign=1&quot;+r+&quot;B_UID=&quot;+qq+r+&quot;entry=board&quot;+r+&quot;super=0&quot;,url4)
hs(url3,url4,&quot;utf-8&quot;,url5)
f(url5?&quot;成功&quot;)
{
tw(&quot;提交成功&quot;)
}
else
{
tw(&quot;提交失败&quot;)
}
}
}



.要提出用户sid才可以，交流群（群号：239547050）中有sid提取器，可套用，刷留言需要先提好多少sid，循环赋值便可。



《作者：猫吓狗》

【自适屏对话框】


.要用两个界面，一个是激活事件，一个是弹出事件，例：

.________________
.这个放在界面1点击事件中


s title=&quot;测试一下&quot;
.设置标题
s content=&quot;你好啊&quot;
.设置内容
s leftb=&quot;确定&quot;
.设置左边按钮
s rightb=&quot;取消&quot;
.设置右边按钮
s fanhui=&quot;true&quot;
.设置是否允许返回
s input=&quot;false&quot;
.设置是否需要输入框
uigo(&quot;界面2的文件名&quot;)
.载入框架，注意修改文件名

t()
{
s xunh=&quot;a&quot;
w(xunh==&quot;a&quot;)
{
f(re==&quot;left&quot;)
{
tw(&quot;点击了左边按钮&quot;)
.这里处理左边按钮点击事件
s xunh=&quot;b&quot;
s re=&quot;&quot;
}
f(re==&quot;right&quot;)
{
tw(&quot;点击了右边按钮&quot;)
.这里处理右边按钮事件
s xunh=&quot;b&quot;
s re=&quot;&quot;
}
f(re==&quot;return&quot;)
{
tw(&quot;点击了返回键&quot;)
.这里处理返回键事件
s xunh=&quot;b&quot;
s re=&quot;&quot;
}
} 
}

._______________



.________________
.这个放到界面2的载入事件中


s id1=这里是标题文本控件id
s id2=这里是背景墙id
s id3=这里是内容文本控件id
s id4=这里是确认按钮id
s id5=这里是返回按钮id
s id6=这里是背景墙id
s id7=这里是背景墙id
s id8=这里是隐藏编辑框id


ushsp(&quot;sp&quot;)
swh(&quot;w&quot;,www)
swh(&quot;h&quot;,hhh)
.us(0,&quot;h&quot;,hhh)
s(www-3,ww)
s(www/2,ww)
us(id4,&quot;w&quot;,ww)
us(id5,&quot;w&quot;,ww)
s(hhh-46,hh)
us(id4,&quot;y&quot;,hh)
us(id5,&quot;y&quot;,hh)
s(www-ww,ww)
s(ww+1,ww)
us(id4,&quot;x&quot;,0)
us(id5,&quot;x&quot;,ww)
s(ww-1,ww)
us(id7,&quot;x&quot;,ww)
us(id7,&quot;y&quot;,hh)
s(hh-1,hh)
us(id6,&quot;y&quot;,hh)
us(id1,&quot;text&quot;,title)
us(id3,&quot;text&quot;,content)
us(id4,&quot;text&quot;,leftb)
us(id5,&quot;text&quot;,rightb)
s(hhh-150,hh)
us(id8,&quot;y&quot;,hh)
us(id2,&quot;h&quot;,2)
us(id7,&quot;w&quot;,1)
us(id7,&quot;h&quot;,45)
us(id6,&quot;h&quot;,1)
us(id2,&quot;w&quot;,-1)
us(id6,&quot;w&quot;,-1)

f(rightb==&quot;&quot;)
{
us(id5,&quot;show&quot;,8)
us(id7,&quot;show&quot;,8)
us(id4,&quot;w&quot;,-1)
}

f(input==&quot;true&quot;)
{
us(id8,&quot;backgroundalpha&quot;,100)
us(id8,&quot;hint&quot;,tishi)
us(id8,&quot;show&quot;,0)
}

._________________



《作者：信疯哥得永生》


【获取WiFi列表】


s id=这里是列表id

uwifilist(gb)
us(id,&quot;h&quot;,50)
s a=0
for(ddd;gb)
{
s(a+1,a)
ula(&quot;t&quot;,ddd;ddd,fff)
}
s(a*50,a)
us(id,&quot;h&quot;,a)
uls(id,&quot;t&quot;,fff,ggo)


//上面这段代码写在载入事件里，当然界面得保证有一个列表控件，id改为列表id

sgsz(ggo,0,yt)
//上面这个代码加在列表控件的事件里边，测试就可以了


《作者：匿名》

【图片循环显示可用于动作】


看到有人问就发出来，首先把图片按顺序重名后放到安装包里(详情请看理论将文件放进安装包办法)，图片名顺序不要错乱，如：
1.png
2.png
3.png
……
_______________

s id=这里是图片控件id

t()
{
us(id,&quot;imgaf&quot;,&quot;1.png&quot;)
.1.png为第一改图片名
s tuhao=1
.1为起始张数
for(1;50)
{
.50为循环50次
f(tuhao==15)
.15为最后张数
{
s tuhao=1
}
ss(tuhao+&quot;.png&quot;,tuhao1)
us(id,&quot;imgaf&quot;,tuhao1)
s(tuhao+1,tuhao)
stop(80)
}
}


______________

除了用for循环外还可以用w循环，用法请参照手册



《作者：星辰》

【QQ空间发说说】


s sid=&quot;这里是sid号&quot;
s qq=这里是qq号
s id=这里是内容输入框

t()
{
ug(id,&quot;text&quot;,ss)
s url=&quot;http://blog60.z.qq.com/mood/mood_add_exe.jsp?sid=&quot;
ss(url+sid,url1)
s ny=&quot;content=&quot;
s uid=&quot;&amp;B_UID=&quot;
s uid1=&quot;&amp;action=1&quot;
ss(ny+ss+uid+qq+uid1,url2)
hs(url1,url2,&quot;utf-8&quot;,url3)
f(url3?&quot;成功&quot;)
{
tw(&quot;发表成功&quot;)
}
else
{
tw(&quot;发表失败&quot;)
}
}


注：sid是腾讯通用身份码，可以理解为有时效性可变动的密码，切勿泄漏自己的sid，由于提取sid源码比较复杂，所以本人在交流群做好了一个开源的sid提取器，可套用，如有需要请加交流群239547050到群文件查找。


《作者：猫吓狗》

【图片无限循环】


s id=1
//图片控件id


s xh=&quot;xh&quot;
s a=&quot;.&quot;
s z=100
//图片暂停时间100毫秒
s p=&quot;1&quot;
//循环开始时的图片为1.png
s p1=&quot;21&quot;
//显示21.png重新显示1.png

t()
{
w(xh==&quot;xh&quot;)
{
f(p&lt;p1)
{
s(p+1,p)
ss(p+a+&quot;png&quot;,g)
us(id,&quot;imgaf&quot;,g)
}
else
{
s p=&quot;0&quot;
//循环周期后可以换成跳转界面代码
//uigo(&quot;界面.iyu)
//end()
}
stop(z)
}
}



//图片按照1+.png命名放入iapp/app/工程id/assets/userimg内既可


《作者：缘来离开后心会痛》


【炫彩进度条】

_____________
进度效果，放载入：

s id=这里是背景墙id
s id1=这里是文本进度id
s id2=这里是文本小白块id
s id3=这里是文本百分比id

ushsp(&quot;sp&quot;)
swh(&quot;w&quot;,www)
s(www-20,ww)
us(id,&quot;w&quot;,ww)
us(id2,&quot;backgroundalpha&quot;,100)
us(id1,&quot;backgroundalpha&quot;,100)
s xunh=&quot;a&quot;
s now=0

t()
{
w(xunh==&quot;a&quot;)
{
stop(50)
f(begin==&quot;a&quot;&amp;&amp;now&lt;ww)
{
s(now+1,now)
s2(now/ww,bai)
s(bai*100,bai)
ss(bai+&quot;%&quot;,bai)
us(id3,&quot;text&quot;,bai)
us(id1,&quot;w&quot;,now)
}
f(now==ww)
{
us(id3,&quot;text&quot;,&quot;已完成！&quot;)
}
}
}


t()
{
w(xunh==&quot;a&quot;)
{
.stop(1)
s chang=0
f(begin==&quot;a&quot;&amp;&amp;now&lt;ww)
{
s wei=10
w(chang&lt;now)
{
s(chang+1,chang)
f(now==ww||begin==&quot;b&quot;)
{
us(id2,&quot;w&quot;,0)
s(now+1,chang)
us(id2,&quot;x&quot;,10)
}
f(chang&lt;4)
{
us(id2,&quot;w&quot;,chang)
us(id2,&quot;x&quot;,10)
}
else
{
s(wei+1,wei)
us(id2,&quot;x&quot;,wei)
}
}
us(id2,&quot;w&quot;,0)
stop(50)
}
}
}

______________

开始按钮：

s now=0 
s begin=&quot;a&quot;

______________

暂停按钮：

s begin=&quot;b&quot;
_______________

开始按钮：

s begin=&quot;a&quot;
_______________

复位：

s begin=&quot;b&quot;
s now=0
us(6,&quot;w&quot;,0)
us(7,&quot;w&quot;,0)
us(10,&quot;text&quot;,&quot;0%&quot;)
_______________


注：以上控件请自行调整高度，背景墙、进度、小白块要按顺序添加并重叠。


《作者：信疯哥得永生》
qq：1215714524

【文字从右向左移动】


s id=这里是文本控件id
s txt=&quot;我是文本框我在演示文字移动&quot;

t()
{
s tingdun=40
s wenbenhhh=18
s wenbenwww=250
us(id,&quot;w&quot;,wenbenwww)
us(id,&quot;txtsize&quot;,16)
us(id,&quot;text&quot;,txt)

swh(&quot;w&quot;,www)
ss(www,wenbenxxx)
ss(&quot;-&quot;+wenbenwww,jiedian)
s a=1
w(a==1)
{

f(wenbenxxx&lt;0)
{
sr(wenbenxxx,&quot;-&quot;,&quot;&quot;,wenbenxxx)
s(wenbenxxx+3,wenbenxxx)
ss(&quot;-&quot;+wenbenxxx,wenbenxxx)
}
else
{
s(wenbenxxx-3,wenbenxxx)
}

us(id,&quot;x&quot;,wenbenxxx)
f(wenbenxxx&lt;jiedian)
{
ss(www,wenbenxxx)
}
stop(tingdun)
}

}


《作者：星辰》
qq：2226543512

【每天限时体验一次】


s mm=&quot;abc.txt&quot;
.这里设置保存路径，越隐蔽越好
s sj=60000
.这里是倒计时一分钟

t()
{
hs(&quot;http://cwayer.com&quot;,null,null,mao)
f(mao?&quot;四维&quot;)
{
sj(mao,&quot;报时: 现在是&quot;,&quot;日&quot;,gou)
ss(gou+&quot;日&quot;,gou)
}
else
{
time(&quot;m&quot;,m)
time(&quot;d&quot;,d)
ss(m+&quot;月&quot;+d+&quot;日&quot;,gou)
}
fr(mm,lai)
f(lai==gou)
{
tw(&quot;今天已体验过了&quot;)
end()
}
else
{
stop(sj)
fw(mm,gou)
tw(&quot;体验时间已到&quot;)
end()
}
}


《作者：猫吓狗》
qq：552149491

【控件由暗到亮缓缓出现】


.控件由暗到亮缓缓出现：

s id=这里是需要控制的控件id

s a=0
t()
{
us(id,&quot;show&quot;,0)
for(1;50)
{
stop(1)
s(a+3,a)
us(id,&quot;backgroundalpha&quot;,a)
}
}
_____________________

.控件由亮到弱慢慢消失

s id1=这里是需要控制的控件id

s a=0
t()
{
for(1;50)
{
stop(1)
s(a-3,a)
us(id1,&quot;backgroundalpha&quot;,a)
}
}
us(id1,&quot;show&quot;,8)



《作者：by大师兄》
qq：837397775

【十进制转换十六进制】

s id=十进制输入框id
s id1=输出框或文本id

ug(id,&quot;text&quot;,t)
supper(t,t)
s csl=1
s jie=0
slg(t,lt)
s(lt-1,ltt)
s xun=lt
for(1;xun)
{
ssg(t,ltt,lt,ti)
f(ti==&quot;A&quot;)
{
s ti=10
}
f(ti==&quot;B&quot;)
{
s ti=11
}
f(ti==&quot;C&quot;)
{
s ti=12
}
f(ti==&quot;D&quot;)
{
s ti=13
}
f(ti==&quot;E&quot;)
{
s ti=14
}
f(ti==&quot;F&quot;)
{
s ti=15
}
f(ti&lt;=15)
{
s(ti*csl,ti)
s(jie+ti,jie)
s(csl*16,csl)
s(lt-1,lt)
s(lt-1,ltt)
}
}
us(id1,&quot;text&quot;,jie)


《作者：信疯哥得永生》
qq：1215714524

【随机验证码】



s id=这里是文本id
s id1=这里是编辑框id

_________________

.以下代码放载入事件:

s mao=&quot;a;b;c;d;e;f;j;h;i;j;k;l;m;n;o;p;q;r;s;t;v;w;x;y;z&quot;
s gou=&quot;1;2;3;4;5;6;7;8;9;0&quot;
sl(mao,&quot;;&quot;,qiu)
sl(gou,&quot;;&quot;,fu)
sgszl(qiu,lai)
sgszl(fu,xia)
s(lai-1,lai1)
s(xia-1,xia1)
s mao0=&quot;&quot;
for(1;10)
{
sran(0,lai1,mao1)
sran(0,xia1,mao2)
sgsz(qiu,mao1,mao3)
sgsz(fu,mao2,mao4)
ss(mao0+mao3+&quot;;&quot;+mao4+&quot;;&quot;,mao0)
}
sl(mao0,&quot;;&quot;,mao5)
s mao8=&quot;&quot;
for(1;6)
{
sran(0,19,mao6)
sgsz(mao5,mao6,mao7)
ss(mao8+mao7,mao8)
}
us(id,&quot;text&quot;,mao8)

___________________

.以下代码放确认按钮

ug(id1,&quot;text&quot;,mao9)
f(mao9==mao8)
{
tw(&quot;正确&quot;)
}
else
{
tw(&quot;错误，重新输入&quot;)
us(id1,&quot;text&quot;,&quot;&quot;)
s mao0=&quot;&quot;
for(1;10)
{
sran(0,lai1,mao1)
sran(0,xia1,mao2)
sgsz(qiu,mao1,mao3)
sgsz(fu,mao2,mao4)
ss(mao0+mao3+&quot;;&quot;+mao4+&quot;;&quot;,mao0)
}
sl(mao0,&quot;;&quot;,mao5)
s mao8=&quot;&quot;
for(1;6)
{
sran(0,19,mao6)
sgsz(mao5,mao6,mao7)
ss(mao8+mao7,mao8)
}
us(id,&quot;text&quot;,mao8)
}

__________________


《作者：猫吓狗》
qq：552149491

【限制输入框仅输入数字和长度】


t()
{
s pd=1234567890
s id=这里是输入框控件ID
s long=10
.这里是最大长度

w(1==1)
{
ug(id,&quot;text&quot;,content)
stop(10)
slg(content,long1)

f(long1&lt;=long)
{
s ks=0
s js=1
for(1;long1)
{
ssg(content,ks,js,n)
s(ks+1,ks)
s(js+1,js)
f(pd?n) 
{
}
else
{
sr(content,n,&quot;&quot;,content1)
us(id,&quot;text&quot;,content1)
tw(&quot;只能输入数字！&quot;)
}
}
}
else
{
ssg(content,0,long,content2)
us(id,&quot;text&quot;,content2)
tw(&quot;已达到最大长度！&quot;)
}
}
}


《作者：小乐》

孤夜下独狼修改
qq：1543859471

【获取QQ头像并显示】


s id=这里是qq号输入框id
s id1=这里是图片控件id

t()
{
ug(id,&quot;text&quot;,qq)
s wj=&quot;abc.png&quot;
s r=&quot;&amp;&quot;
ss(&quot;http://q4.qlogo.cn/g?b=qq&quot;+r+&quot;nk=&quot;+qq+r+&quot;s=100&quot;,xia)
hd(xia,wj,a)
f(a==0)
{
us(id1, &quot;imgsdf&quot;, wj)
}
else
{
tw(&quot;下载失败&quot;)
}
}


《作者：逗比疯》
qq：316268862

【错觉加密算法】

======加密=======

t()
{
s id1=输入内容的控件id
s id2=输出内容的控件id
s id3=移动位数的控件id

ug(id1,&quot;text&quot;,a)
slg(a,o)
ug(id3,&quot;text&quot;,b)
f(b&lt;=o)
{
ssg(a,0,b,c)
ss(&quot;teshujiangefu&quot;+a,a)
ss(&quot;teshujiangefu&quot;+c,c1)
sr(a,c1,&quot;&quot;,d)
ss(d+c,e)
.stobm(e, &quot;utf-8&quot;, e)
us(id2,&quot;text&quot;,e)
}
else
{
tw(&quot;不能超过输入字符长度&quot;)
}
}

______________________


======解密=======


t()
{
s id1=这里是输入内容的控件id
s id2=这里是输出内容的控件id
s id3=这里是移动位数的控件id

ug(id1,&quot;text&quot;,a)
slg(a,o)
ug(id3,&quot;text&quot;,b)
f(b&lt;=o)
{
s(o-b,b1)
ssg(a,b1,o,c)
ss(c+a,e)
ss(e+&quot;teshujiangefu&quot;,e)
ss(c+&quot;teshujiangefu&quot;,c1)
sr(e,c1,&quot;&quot;,d)
.sutf8to(d, d)
us(id2,&quot;text&quot;,d)
}
else
{
tw(&quot;不能超过输入字符长度&quot;)
}
}

___________________


如需使用utf-8编码请将stobm和sutf8to前面的“.”点去掉


《作者：Dying in the sun》
qq：2289582155


【汉字转拼音】

.汉字转拼音，by丶萌萌小夏夏

t()
{
s url=&quot;http://zhongwenzhuanpinyin.51240.com/&quot;

s fuck=&quot;&amp;&quot;

s wz=&quot;这里输入需要转拼音的文字！我了个插&quot;

ss(&quot;zhongwen=&quot;+wz+fuck+&quot;select_sd=有声调&quot;+fuck+&quot;select_dz=无文字&quot;+fuck+&quot;select_dy=隐藏&quot;+fuck+&quot;submit=查拼音&quot;,cha)

hs(url,cha,&quot;utf-8&quot;,py)

sj(py,&quot;readonly&quot;&gt;&quot;,&quot;&lt;/textarea&gt;&quot;,py)

tw(py)
}

《作者：by丶萌萌小夏夏》
qq：1075625244

【获取坐标数据源码】

.下面这些代码放进载入事件

s IAPP_CLICK_KG=&quot;true&quot;
s id=这里填文件本id
t()
{
w(1==1)
{
stop(100)
ss(&quot;x=&quot;+IAPP_CLICK_X+&quot;n&quot;+&quot;y=&quot;+IAPP_CLICK_Y,zb)
us(id,&quot;text&quot;,zb)
} 
}

按照这个原理可实时获取点击过程的最新数///据,可用于设计滑动效果，拖拽等！
《作者：CCG 只看今朝 》
qq：1679102284

【腾讯家族聊室跑堂发言】


s id=这里是起始聊室id输入框id
s id1=这里是结束聊室id输入框id
s id2=&quot;这里是内容输入框id
s sid=&quot;这里是你的sid&quot;



t()
{
ug(id,&quot;text&quot;,qs)
ug(id1,&quot;text&quot;,js)
ug(id2,&quot;text&quot;,ny)
f(js&lt;qs)
{
tw(&quot;结束id不能大于起始id&quot;)
}
else
{
s a=1
s cg=0
s sb=0
sr(ny,&quot;|&quot;,&quot;;&quot;,ny1)
sl(ny1,&quot;;&quot;,ny2)
sgszl(ny2,ny3)
s(ny3-1,ny4)
w(a==1)
{
sran(0,ny4,ny5)
sgsz(ny2,ny5,ny)
s r=&quot;&amp;&quot;
ss(&quot;http://chat2.3g.qq.com/chatroom/room.jsp?roomId=&quot;+qs+r+&quot;sid=&quot;+sid,b)
hs(b,null,null,c)
f(c?&quot;聊室&quot;)
{
sj(c,&quot;ruin&quot; value=&quot;&quot;,&quot;&quot;/&quot;,ruin)
ss(&quot;msg=&quot;+ny+r+&quot;ruin=&quot;+ruin+r+&quot;=发言&quot;,mao)
ss(&quot;http://chat.3g.qq.com/chatroom/talk.jsp?roomId=&quot;+qs+r+&quot;setting=0_1_1&quot;+r+&quot;sid=&quot;+sid,e)
hs(e,mao,&quot;utf-8&quot;,gou)
f(gou?ny)
{
s(cg+1,cg)
ss(&quot;成功：&quot;+cg,f)
tw(f)
}
else
{
s(sb+1,sb)
ss(&quot;失败&quot;+sb,g)
tw(g)
}
}
else
{
s(sb+1,sb)
ss(&quot;失败&quot;+sb,g)
tw(g)
}
s(qs+1,qs)
f(qs==js)
{
s a=0
ss(&quot;任务完成n成功：&quot;+cg+&quot;n失败：&quot;+sb,d)
tw(d)
}
}
}
}



注：sid是腾讯通用身份码，可以理解为有时效性可变动的密码，切勿泄漏自己的sid，由于提取sid源码比较复杂，所以本人在交流群做好了一个开源的sid提取器，可套用，如有需要请加交流群239547050到群文件查找。有的聊室仅对家族成员开放，所以会失败，聊室id是纯数字，如“来宾家族id是337040”，如需查看请用uc浏览器进腾讯家园》家族》聊室，然后查看属性地址roomId=xxx处就是该家族聊室id

内容使用了随机涵数，多个请用英文“|”号隔开
如：大家好|你们好|我名字叫雷锋

《作者：猫吓狗》
qq：552149491

【清空文件夹】

s wj=&quot;这里是要清空的文件夹路径&quot;

fl(wj,ewa)
for(ewc;ewa)
{
ss(wj+&quot;/&quot;+ewc,ewd)
fd(ewd,ewq)
}
f(ewq?&quot;true&quot;)
{
tw(&quot;清除成功&quot;)
}
else
{
tw(&quot;清除失败&quot;)
}

《作者：by 大师兄》
qq：837397775

【歌曲下载链接获取】


s id1=这里填编辑框控件ID
s id2=文本控件ID
s and=&quot;&amp;&quot;
t()
{
ug(id1,&quot;text&quot;,a)
s url1=&quot;http://www.woween.cn/apis/?type=music&quot;
s url2=&quot;msg=&quot;
ss(url1+and+url2+a,url)
hs(url,null,null,music)
sutf8to(music,music)
us(id2,&quot;text&quot;,music)
}

说明:
添加一个编辑框控件(用来输入要查询的歌曲名)
添加一个按钮控件(用来控制触发事件)
添加一个文本控件(用来显示内容，也可以用编辑框控件)
共添加3个控件，然后把上面代码复制到按钮控件点击事件里面。


《作者：青梅煮酒》
qq：205391995

【IP地址自动识别】


s id=文本控件或编辑框控件ID

s url=&quot;http://ip.blueera.net/api?type=text&quot;
t()
{
hs(url,unll,unll,url)
us(id,&quot;text&quot;,url)
}

.说明:
.建一个文本控件或者编辑框控件，代码放载人事件里面。


《作者1群 青梅煮酒》
qq：205391995


【小黄鸡机器人】

s id1=编辑框控件ID
s id2=文本控件ID
ug(id1,&quot;text&quot;,txt)
s and=&quot;&amp;&quot;
s url1=&quot;http://rmbz.net/Api/AiTalk.aspx?key=rmbznet&quot;
s url2=&quot;word=&quot;
s url3=&quot;type=text&quot;
t()
{
ss(url1+and+url2+txt+and+url3,url)
hs(url,null,null,url)
.sutf8to(url,url)
us(id2,&quot;text&quot;,url)
}

小i机器人

s id1=编辑框控件ID
s id2=文本控件ID
ug(id1,&quot;text&quot;,txt)
s and=&quot;&amp;&quot;
s url1=&quot;http://rmbz.net/Api/AiTalk.aspx?key=rmbznet&quot;
s url2=&quot;word=&quot;
s url3=&quot;talk=xiaoi&quot;
s url4=&quot;type=text&quot;
t()
{
ss(url1+and+url2+txt+and+url3+and+url4,url)
hs(url,null,null,url)
.sutf8to(url,url)
us(id2,&quot;text&quot;,url)
}

说明:
添加3个控件
编辑框控件(用来输入内容)
按钮控件(用来控制触发事件)
文本控件(用来显示返回内容，也可以用编辑框控件。)
控件都添加好后，代码放在按钮控件里面。


《作者：青梅煮酒》
qq：205391995

【在SD卡上文件搜索的实现】

此源码只搜索文件
.下面的源码  搜索深度只到4，理解后可套用加大搜索深度


.写入列表点击事件中
sgsz(ulx,1,d)
tw(d)
fo(d)



.将横线内源码复制至 按钮 的点击事件中
_______________________


s id=输入框id
s id1=列表框id
s sd=搜索深度(1,2,3,4)


tw(&quot;请稍后......&quot;)
t()
{
fl(&quot;&quot;,l0)
ug(id,&quot;text&quot;,sf)
for(l1;l0)
{
fi(l1,l1p)
f(l1p == &quot;true&quot;)
{
syso(&quot;shi&quot;)


f(sd &gt; 1)
{

fl(l1,l2)
for(l3;l2)
{
ss(l1+&quot;/&quot;+l3,l3)
fi(l3,l3p)
f(l3p == &quot;true&quot;)
{
syso(&quot;shi1&quot;)


f(sd &gt; 2)
{
fl(l3,l4)
for(l5;l4)
{
ss(l3+&quot;/&quot;+l5,l5)
fi(l5,l5p)
f(l5p == &quot;true&quot;)
{
syso(&quot;shi2&quot;)


f(sd &gt; 3)
{
fl(l5,l6)
for(l7;l6)
{
ss(l5+&quot;/&quot;+l7,l7)
fi(l7,l7p)
f(l7p == &quot;true&quot;)
{
syso(&quot;shi3&quot;)


f(sd &gt; 4)
{
fl(l7,l8)
for(l8d;l8)
{
ss(l7+&quot;/&quot;+l8d,l8d)
fi(l8d,l8p)
f(l8p == &quot;true&quot;)
{
syso(&quot;shi 4&quot;)
}
else
{
f(l8d?sf)
{
ula(&quot;t&quot;,&quot;4&quot;;l8d,ul)
}
}
}
}



}
else
{
f(l7?sf)
{
ula(&quot;t&quot;,&quot;3&quot;;l7,ul)
}
}
}
}


}
else
{
f(l5?sf)
{
ula(&quot;t&quot;,&quot;2&quot;;l5,ul)
}
}
}
}

}
else
{
f(l3?sf)
{
ula(&quot;t&quot;,&quot;1&quot;;l3,ul)
}
}
}
}

}
else
{
f(l1?sf)
{
ula(&quot;t&quot;,&quot;0&quot;;l1,ul)
}

}
}
uls(id1,&quot;t&quot;, ul ,ulx)
tw(&quot;搜索完成&quot;)
}

___________________________


《作者：小浩的酷爱》
qq：1424648087

【html5游戏包的添加】




由于iapp功能限制，如果我们想做好游戏十分吃力。
不过我们可以‘曲线救国’利用iapp的html功能制作html5游戏。
下面是详细步骤。

------html游戏源码里面不包含文件夹---------

1.
就是先把需要的html文件以及css文件放进工程assets里面,没有此文件夹的请新建。

例如：iapp/app/1/assets   里面


2.
软件界面里面加入浏览器控件（此处假设为1）

s id=1
us(id,&quot;url&quot;,&quot;file:///android_asset/index.html&quot;)
.这是载入事件


3.打包

////软件制作成功。


---------html游戏源码内包含文件夹------------

1.
就是先把需要的html文件以及css文件（不能放入文件夹）放进工程assets里面,没有此文件夹的请新建。

例如：iapp/app/1/assets   里面


2.
软件界面里面加入浏览器控件（此处假设为1）

s id=1
us(id,&quot;url&quot;,&quot;file:///android_asset/index.html&quot;)
.这是载入事件


3.打包



4.mt管理器
管理打包后的安装包
把源码里包含的文件夹
放到安装包assets里面
例如：sound,image等文件夹
重新为安装包签名


软件完成了。
------------------------------------------



基本的制作过程就是这样。
第一次写教程如有不足请多多批评。


《作者：蟋蟀蝈蝈蛐蛐》
QQ   1126390395

【实时流畅随滑动移动控件】




准备2个控件，一个按钮控件和要移动的控件
按钮控件放在最下面且全屏布满

.在载入事件中添加以下代码
.—————放在载入事件中——————
s id=随滑动移动控件的id

s ss=&quot;&quot;
s IAPP_CLICK_KG = &quot;true&quot;
s IAPP_CLICK_X=0
s IAPP_CLICK_Y=0
s x=0
s y=0
s w=1
t()
{
w(w==1)
{
s x=IAPP_CLICK_X
s y=IAPP_CLICK_Y
us(id,&quot;x&quot;,x)
us(id,&quot;y&quot;,y)
}
}
.——————————————————



.在按钮控件下添加以下代码
.—————放在按钮事件中——————
s x=IAPP_CLICK_X
s y=IAPP_CLICK_Y
.——————————————————



.放在返回事件中
.—————放在返回事件中——————
s w=2
end()
.——————————————————


《作者：dying in the sun》
qq：2289582155

【提取网址所有图片连接】


s id=图片地址输入框id
s id1=列表id


ug(id,&quot;text&quot;,we)
us(id,&quot;show&quot;,8)
t()
{
tw(&quot;正在获取，请稍候……&quot;)
hs(we,null,null,wb)
slg(wb,lb)
syso(lb)
s now=0
s out=&quot;&quot;
s lba=&quot;&quot;
s sum=0
w(now&lt;lb)
{
siof(wb,&quot;src=&quot;&quot;,now,wx)
f(wx==&quot;-1&quot;)
{
us(id,&quot;show&quot;,0)
f(shiy==&quot;true&quot;)
{
s(sum*60,gd)
us(id1,&quot;h&quot;,gd)
}
uls(id1,&quot;t&quot;,lba,lbf)
tw(&quot;已完成！&quot;)
endcode
}
s(wx+5,wwt)
siof(wb,&quot;&quot;&quot;,wwt,wen)
ssg(wb,wwt,wen,ou)
f(ou?*&quot;//&quot;)
{
ss(&quot;http:&quot;+ou,ou)
}
slg(ou,lo)
slof(ou,&quot;.&quot;,lo,wd)
f(wd&gt;0)
{
s(wd+1,wd)
ssg(ou,wd,lo,hz)
f(hz==&quot;png&quot;||hz==&quot;gif&quot;||hz==&quot;jpg&quot;||hz==&quot;bmp&quot;)
{
ss(out+ou+&quot;n&quot;,out)
ula(&quot;t&quot;,ou;ou,lba)
s(sum+1,sum)
}
}
s now=wen
}
}
}


《作者：信疯哥得永生》
qq：1215714524


【控件从下往上升】


t()
{
swh(&quot;h&quot;,h)
s aa=5
s nn=6
w(nn&gt;aa)
{
s(h-1,h)
us(1,&quot;y&quot;,h)
//1是控件id
f(h==0)
{
swh(&quot;h&quot;,h)
}
stop(10)
//数字越大就越慢
}
}

《作者：钅™《［企©ぺ®鹅］》™》
qq：652314794

【判断手机是否安装应用】


uapplist(true, b)
s c=0
t()
{
for(a;b)
{
f(a?&quot;com.iapp&quot;)
.这里的com.iapp为iapp的包名
{
s(c+1,c)
}
}
f(c==0)
{
tw(&quot;不存在&quot;)
}
else
{
tw(&quot;存在&quot;)
}
}



注：除了用包名判断外还可以用类名、应用名、版本号来判断是否存在，要查看包名类名可以用半夏的“包名类名”查看器，在交流群群文件下载或百度搜索，群号：239547050


《作者：猫吓狗》
qq：552149491

【发送QQ信息】


s id=这里是内容输入框id
s id1=这里是qq号输入框id
s sid=这里是sid输入框id

t()
{
ug(id,&quot;text&quot;,n)
ug(id1,&quot;text&quot;,qq)
ug(sid,&quot;text&quot;,sid)
s r=&quot;&amp;&quot;
ss(&quot;msg=&quot;+n+r+&quot;u=&quot;+qq+r+&quot;saveURL=0&quot;+r+&quot;do=send&quot;+r+&quot;on=1&quot;+r+&quot;saveURL=0&quot;,mao)
ss(&quot;http://q32.3g.qq.com/g/s?sid=&quot;+sid+r+&quot;aid=sendmsg&quot;+r+&quot;tfor=qq&quot;+r+&quot;referer=&quot;,xia)
hs(xia,mao,&quot;utf-8&quot;,gou)
f(gou?&quot;成功&quot;)
{
tw(&quot;成功&quot;)
}
else
{
tw(&quot;失败&quot;)
}
}



注：sid是腾讯通用身份码，可以理解为有时效性可变动的密码，切勿泄漏自己的sid，由于提取sid源码比较复杂，所以本人在交流群做好了一个开源的sid提取器，可套用，如有需要请加交流群239547050到群文件查找。


《作者：猫吓狗》
qq：552149491

【批量添加好友】


s id=编辑框id
s sid=自己的qqsid
s ni=添加好友的留言


t()
{
ug(sid,&quot;text&quot;,da)
sl(da,&quot;，&quot;,shi)
for(xiong;shi)
{
s r=&quot;&amp;&quot;
ss(&quot;http://q16.3g.qq.com/g/s?sid=&quot;+sid+&quot;verify=&quot;+ni+r+&quot;uin=&quot;+xiong,mao)
ss(&quot;http://q16.3g.qq.com/g/s?sid=&quot;+sid+r+&quot;aid=addFriendVerify&quot;,shi1)
hs(shi1,mao,&quot;utf-8&quot;,gou)
stop(1000)
f(gou?&quot;已发送&quot;)
{
tw(&quot;成功&quot;)
}
else
{
tw(&quot;失败&quot;)
}
} 
} 



注：可同时输入多个qq号，用“，”逗号隔开，同时需要关闭设备锁，如果不行就得手动登录一遍网页版3gqq后才行


《作者：by大师兄》
qq：837397775

【字体无限变色】


s id=这里是文本控件id

t()
{
s a=1
.变色暂停的时间
s sj=100
.w无限循环
w(a==1)
{
.随机字体颜色数值
sran(100000,800000,sjs)
ss(&quot;-&quot;+sjs,sjs)
us(id, &quot;textcolor&quot;, sjs)
stop(sj)
}
}

《作者：皇陵↗萌少D》
qq：1214110739

【提取在线好友QQ号】



s sid=&quot;这里是你的sid&quot;
s qq=&quot;这里是你的qq号&quot;
s wj=&quot;这里是qq号保存文件名&quot;



t()
{
s r=&quot;&amp;&quot;
ss(&quot;http://q32.3g.qq.com/g/s?aid=nqqchatMain&quot;+r+&quot;sid=&quot;+sid+r+&quot;myqq=&quot;+qq,a)
hs(a,null,null,a1)
syso(a1)
f(a1?&quot;下页&quot;)
{
sj(a1,&quot;第1/&quot;,&quot;页&quot;,b)
ss(&quot;共有&quot;+b+&quot;页&quot;,t)
tw(t)
}
else
{
s b=1
}
s c=1
s d=1
w(c==1)
{
ss(&quot;正在提第&quot;+d+&quot;页&quot;,k)
tw(k)
ss(&quot;http://q32.3g.qq.com/g/s?sid=&quot;+sid+r+&quot;aid=nqqchatMain&quot;+r+&quot;on=1&quot;+r+&quot;p=&quot;+d,e)
hs(e,null,null,f)
sj(f,&quot;自动刷新&quot;,&quot;在线&quot;,g)
s i=&quot;img src=&quot;
sl(g,i,h)
for(l;h)
{
sj(l,&quot;u=&quot;,r,j)
fr(wj,o)
ss(o+j+&quot;n&quot;,p)
fw(wj,p)
}
s(d+1,d)
f(d&gt;b)
{
tw(&quot;提取完成！&quot;)
s c=0
}
}
}



注：qq号与sid需为同个号，可将提出来的号进行群发信息（过于频繁群发腾讯会冻结该号，需到安全中心解冻），如果提取失败请登陆一次3g版qq（腾讯网页版qq）后再进行提取。请到官方群（群号请在本教程手册第一条中查看）下载sid提取器源码进行套用。

不明白sid是什么的请百度


《作者：猫吓狗》
qq：552149491
========

持续添加中...]]></description>
    </item>
        <item>
        <title><![CDATA[iApp教程(理论)]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/entry/333400]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Fri, 13 Mar 2015 14:37:45 +0800]]></pubDate>
        <description><![CDATA[安卓版教程下载地址：http://qiulai.wodemo.net/down/20150304/331888/iapp%E6%95%99%E7%A8%8Bv1.5.5.apk

最新版本：v1.5.5
文件大小：392.5kb
========
【简单创建第一个程序】


打开我的应用iApp后，你会看到顶部有“创建”和“导入”两个选项
创建：可以用来创建新应用，自己写应用名称，选择应用图标（默认为iApp图标，如果你要选择你自己的图标，需要将图标存至内存卡iApp/Userimg文件夹，图片后缀为.png，其他格式改成.png后缀也可以），版本等信息，点保存即可创建新应用
导入：如果你在网上下载了源码，源码解压后，选导入，找到解压后源码的位置，打开源码文件夹，找到AndroidManifest.xml点击它即可完成导入
如何打包源码：你创建的应用都有一个唯一的id，在列表打开应用程序文件列表即可看到顶部项目后有[id:x]字样，打开内存卡iApp/app文件夹找到该id对应文件夹，用管理器压缩打包即可
生成后的软件：做好的软件点击打包，如果打包成功，生成好的apk文件会储存在内存卡内iApp/apk文件夹内，apk文件以应用id为文件名，找到即可安装运行


《作者：纯真年代》


【打包失败】
1.程序包名使用英文或数字，可混合使用格式如下:
com.xxx.xxx


2.图片名同样以英文或数字定义。

《作者：猫吓狗》

【超1m文件打包签名失败】
1.大文件打包需要联网签名，完成后会提示安装。


2.一般联网签名会在iApp/apk和iApp/downFile文件夹中各生成一个新文件，apk中的一般会提示解析包出错，请尝试打开downFile文件中的另一个。

《作者：猫吓狗》


【测试可以而打包后打开失败】
1.代码前面一般不支持空格，如:
  s a=&quot;abc&quot;   错误
s a=&quot;abc&quot;     正确


2.ss变量中不支持“&amp;”符号，要用变量形式定义，如:
ss(&quot;sid=abc&amp;&quot;,d)  错误


s a=&quot;&amp;&quot;
ss(&quot;sid=abc&quot;+a,d)   正确

《作者：猫吓狗》

【速查手册打开空白解决】


因为手册使用的是本地文本，而该文本由iApp生成，换句话说，没有正式“打开”iApp就不会生成help.txt文件，下面教大家生成该文件，以便于在速查手册中使用。


1.需要安装一个“我的应用iApp”和“速查手册”
群文件可下载(群号：239547050)，已下载过的请忽略。


2.打开“我的应用iApp”》创建一个新工程》生成后打开mian.iyu文件》点击下面的“事件”按钮》学习裕语言》ok


3.退出“我的应用iApp”打开“速查手册”就出现内容了，内容的保存路径在iApp/help.txt



《作者：猫吓狗》

【文本或编辑框的赋值与取值】



s id=这里是文本或编辑框控件id


ug(id,&quot;text&quot;,a)

.获取内容并赋值变量给a

._______________


s a=&quot;你好&quot;
us(id,&quot;text&quot;,a)

.将变量a赋值给控件



《作者：猫吓狗》



【弹窗的使用】


.双按钮选择

s nima=&quot;本教程为绿色免费共享平台工具，使用完全免费，由iApp交流群成员“猫吓狗”开发。&quot;

utw(&quot;免责申明&quot;,nima,&quot;明白了&quot;,&quot;不知道&quot;)
{
}
else
{
}

.____________

.单按钮选择

s nima=&quot;本教程为绿色免费共享平台工具，使用完全免费，由iApp交流群成员“猫吓狗”开发。&quot;

utw(&quot;免责申明&quot;,nima,&quot;明白了&quot;,&quot;&quot;)
{
}
else
{
}

._________

.带执行代码


s nima=&quot;本教程为绿色免费共享平台工具，使用完全免费，由iApp交流群成员“猫吓狗”开发。&quot;

utw(&quot;免责申明&quot;,nima,&quot;明白了&quot;,&quot;退出&quot;)
{
tw(&quot;明白了&quot;)
}
else
{
end()
}

《作者：猫吓狗》



【远程控制状态栏推送消息（可做广告）】

〖准备：
1、有任意一个网页用来编辑后台配置内容（内容可以修改），把后台配置内容写进QQ空间日志理论也行
2、得到已经编辑好配置内容的网页的网址
3、该网页中包含内容：
jstx=此处填写即时消息提醒@1
bt=此处填写状态栏推送消息的标题@2
txnr=此处填写提醒的详情@3
dzurl=此处填写点击状态栏提示的消息后访问的地址@4
〗

t()
{
.获取远程后台配置推送页面内容源码-写入变量nrzz
s url=&quot;此处输入远程后台的网址&quot;
hs(url,null,null,nrzz)
.下面判断是否获取到nrzz的数据是否为空（即未获取成功）
f(nrzz==&quot;&quot;)
.是就执行一下代码提示不弹出状态栏消息
{
tw(&quot;不弹出状态栏消息&quot;)
}
.不是就开始获取状态栏消息数据
else
{
.截取内容简介（即时提醒内容写入变量jstx，状态栏中推送信息的标题写入bt，内容详情写入变量txnr连接地址写入dzurl）
s ks1 = &quot;jstx=&quot;
s js1 = &quot;@1&quot;
sj(nrzz, ks1, js1, jstx)
s ks2 = &quot;bt=&quot;
s js2 = &quot;@2&quot;
sj(nrzz, ks2, js2, bt)
s ks3 = &quot;txnr=&quot;
s js3= &quot;@3&quot;
sj(nrzz, ks3, js3, txnr)
s ks4 = &quot;dzurl=&quot;
s js4= &quot;@4&quot;
sj(nrzz, ks4, js4, dzurl)
.上面截取状态栏所需数据完成。下面是把连接地址加上http://
ss(&quot;http://&quot;+dzurl,dzurl)
.上面是得到完整的连接地址并写入变量dzurl
t()
{
ftz(jstx,bt,txnr,dzurl)
}
.下面是else扩回
}
.下面是总线程扩回
}



本教程来自曦韶杭共享。QQ778773801


《作者：曦韶杭》


【锁定返回键】


只需在返回事件中加入一个英文点号就可以既“.”

《作者：猫吓狗》



【远程更新实例】


今天为大家带来个利用我的磨作为更新服务器进行软件更新的实例，好进入正题吧：
首先配置我的磨，登录wodemo.net注册用户并登录，点底部管理，进入管理页点撰文，在撰文里你可以添加各类附件或文字，而且发布后也可随时编辑撰文。
我的示例网址 http://a5.wodemo.com/entry/305389 ;，其中（） 里填你的更新软件的版本，［］里填写更新内容，｛｝里填写新软件下载地址，注意这些符号都是大写字符，避免与代码混淆
如何获取下载地址呢？撰文里添加附件后点提交，会再网页显示  *.……创建成功  点此链接即可进入文章页，然后用浏览器复制附件下载地址，点文章下面的“管理与编辑”把复制好的网址粘贴到｛｝里即可
接下来让我们修改软件代码，以下代码写在按钮点击事件或菜单点击事件中：




 t()
{
s a = &quot;http://a5.wodemo.net/entry/305389&quot;
.这是我的磨更新网址，没磨盘的请登录wodemo.net注册
hs(a, null, null, b)
.获取网页数据并赋值给b
sj(b,&quot;（&quot;,&quot;）&quot;,ver)
.截取括号内容为版本号，这里的括号为大写字符，防止与代码混淆
f(ver&gt;1)
.这里的1为该软件版本号，如果获取的版本号ver大于软件版本则更新
{
 sj(b,&quot;［&quot;,&quot;］&quot;,content) 
 sj(b,&quot;｛&quot;,&quot;｝&quot;,url) 
strim(url,url)
ss(&quot;http://&quot;+url,url)
.获取［］内容作为介绍获取｛｝内网址作为新软件下载网址
 ss(&quot;有&quot;+ver+&quot;版本更新&quot;,title)
.带版本号的title作为对话框标题
uigo(&quot;gx.iyu&quot;)
.跳转到对话框界面
}
else
{
tw(&quot;已是最新版本&quot;)
}
}
以下代码写在gx.iyu文件的界面载入事件里：
utw( title,content ,&quot;立即更新&quot;,&quot;以后再更&quot;)
{
t()
{
tw(&quot;正在下载中……&quot;)
hd(url,&quot;app.apk&quot;,io)
.下载文件并命名为app.apk，你可以自己定义文件名
f(io==0)
{
uigo(&quot;mian.iyu&quot;)
end() 
tw(&quot;下载成功&quot;)
fo(&quot;app.apk&quot;)
.点立即更新时下载文件并完成后打开
}
}

}
else
{
tw(&quot;已取消&quot;)
uigo(&quot;mian.iyu&quot;)
.取消更新时返回程序首页并结束更新界面
end()
}


《作者：纯真年代》



【iApp源码导入详解】


iapp自带有导入功能，可将开源工程包导入修改或套用，以下详细介绍如何导入

（第一种办法）

1.首先要准备一个完整的工程包和“iApp我的应用”，一般工程包可在官方交流群（群号：239547050）下载，格式为zip的压缩文件。

2.用手机自带文件管理器打开/mnt/sdcard/Tencent/QQfile_recv/找到你下载的工程包，用手机自带解压功能将其解压为GBK编码，这里以重命名为mao文件夹为例。

3.打开iApp导入，找到mao文件夹打开，里面有一个后缀为xml的文件，点击确认导入即可完成，如果失败请尝试解压为utf-8编码。

4.导入成功后为避免遗漏，请将工程包中的系统文件夹复制到新工程中，办法如下：
（1）查看新导入的工程id是多少记住，这里以id1为例。
（2）找到原mao文件夹打开，找到名为assets的文件夹复制。
（3）打开/mnt/sdcard/iApp/app/1/粘贴，复盖原assets文件夹，注意，1为上面示例的工程id。

5.导入失败可能原因，请复制一个格式为png的图片到原解压的mao文件夹，并命名为icon.png再重复上面的导入步骤，若还是失败请使用第二种办法。


（第二种办法）


1.请准备一个完整工程包解压，如果没有请参照第一种办法第一条和第二条。

2.打开/mnt/sdcard/iApp/app/查看文件名最大数字是多少，然后创建一个新文件夹，命名为数字且比该文件中最大值还要大，这里以5为例。

3.找到解压后的mao文件夹打开，复制里面的全部文件和文件件到刚才创建的5文件夹中即可。

4.打开“iApp我的应用”查看id为5的工程，如果失败可能是缺少图标。

5.若失败请复制一个格式为png的图片到刚才创建的5文件夹中，并命名为icon.png再打开iapp



注：一般工程包都压缩了相关文件，但有时候也有可能会缺失，通常情况下会是图片控件显示不了图片，解决办法：
（1）询问源码提供作者索要该图片
（2）如果只是效果图片可用其他图片代替，办法，在编辑代码中找到控件选项，查看图片控件属性，修改属性地址即可。
（3）除此之外你还可以新添加一个图片控件代替原控件，但要看是否关联到其他代码，如有关联很有可能导致代码错误。


《作者：猫吓狗》

【网页分析示例】


懂网络基础的大神请忽略
以下为小白讲解
须准备工具：uc浏览器、本教程内置源码查看器（群文件可下载，群号239547050）



这里以腾讯空间回复为例，地址：
http://blog30.z.qq.com/blog/blog_detail.jsp?B_UID=552149491&amp;bId=1411101039&amp;cf=&amp;sid=ATEEOb9Xbu7FLoNOXyjQzAim

1.查看地址办法：打开uc》访问要分析的网页》长按》查看属性》当前页面&gt;复制

2.打开源码查看器》粘贴地址》取源

3得到的内容其中有以下一段.

&lt;div class=&quot;module&quot; id=&quot;comments&quot;&gt;
	&lt;div class=&quot;module-title&quot;&gt;评论列表(0)&lt;/div&gt;
	&lt;div class=&quot;module-content&quot;&gt;
		
		&lt;div class=&quot;spacing-5 border-btm&quot;&gt;	
			&lt;form action=&quot;http://blog60.z.qq.com/blog/add_comment.jsp?sid=ATEEOb9Xbu7FLoNOXyjQzAim&quot;	method=&quot;post&quot;&gt;
			&lt;p class=&quot;tabs-1&quot;&gt;&lt;textarea name=&quot;content&quot; maxlength=&quot;500&quot; rows=&quot;2&quot;&gt;&lt;/textarea&gt;
			&lt;input name=&quot;bId&quot; type=&quot;hidden&quot; value=&quot;1411101039&quot;/&gt;
			&lt;input name=&quot;B_UID&quot; type=&quot;hidden&quot; value=&quot;552149491&quot;/&gt;
			&lt;input name=&quot;mkey&quot; type=&quot;hidden&quot; value=&quot;1ED19292F0C0D11F293FF322F3291225EECB209E65263F82&quot;/&gt;
			&lt;input name=&quot;title&quot; type=&quot;hidden&quot; value=&quot;iApp常见问题与解决&quot;/&gt;&lt;/p&gt;
			&lt;p class=&quot;tabs-1&quot;&gt;&lt;input class=&quot;btn-s&quot; type=&quot;submit&quot; value=&quot;确定&quot; /&gt;&lt;/p&gt;
			&lt;/form&gt;
		&lt;/div&gt;



4.通常以&lt;div&gt;开头以&lt;/div&gt;结尾，现在就来分析一下参数：

5.http://blog60.z.qq.com/blog/add_comment.jsp?sid=ATEEOb9Xbu7FLoNOXyjQzAim

这个是回复提交地址，与刚才的页面地址是不一样的，有些网站提交地址缺省主域，要自己加上去，这个地址主域为http://blog30.z.qq.com，其中sid=...是你的个人身份码，每个号都不同，群文件有sid提取器，可套用。

6.content&quot; maxlength=&quot;500&quot;

content是内容参数，maxlength是限制字数，一般只要前者。

7.&quot;bId&quot; type=&quot;hidden&quot; value=&quot;1411101039&quot;

bid是帖子id，号为1411101039，每个帖子都不一样。


8.&quot;B_UID&quot; type=&quot;hidden&quot; value=&quot;552149491&quot;

B_UID为空间id，号为552149491

9.&quot;hidden&quot; value=&quot;1ED19292F0C0D11F293FF322F3291225EECB209E65263F82&quot;

hidden为即时串号，每次访问都不一样，所有要实时截取才能生效。


注：以上回复只需这几步参数便可完成，由于网站不一，所以参数各有不同，这个要慢慢领悟，如果取源过大可能显示不了，建议用以下办法：

在iapp中任意界面载入事件中写：

t()
{
hs(&quot;查看地址&quot;,null,null,uu)
fw(&quot;ym.txt&quot;,uu)
}


用手机文件管理器打开根目录找到ym.txt文件打开查看


《作者：猫吓狗》

【post提交示例】


这一节主要是讲解用post提交参数，参数的来源请参考“网页分析示例”那一节。


参数如下：

回复提交地址：http://blog60.z.qq.com/blog/add_comment.jsp?sid=ATEEOb9Xbu7FLoNOXyjQzAim

提交内容：content

帖子id：&quot;bId&quot; type=&quot;hidden&quot; value=&quot;1411101039&quot;

空间id：&quot;B_UID&quot; type=&quot;hidden&quot; value=&quot;552149491&quot;

实时串号：&quot;hidden&quot; value=&quot;1ED19292F0C0D11F293FF322F3291225EECB209E65263F82&quot;


1.首先我们得处理一下这些源码，例：
&lt;input name=&quot;bId&quot; type=&quot;hidden&quot; value=&quot;1411101039&quot;/&gt;


以上源码只要“bId”和“1411101039”
换句话说就是name和value等号中的内容，其他参数同样。


2.现在就以变量形式赋值，例：

s a=&quot;http://blog60.z.qq.com/blog/add_comment.jsp?sid=ATEEOb9Xbu7FLoNOXyjQzAim&quot;

s b=&quot;content=&quot;

s c=&quot;bId=1411101039&quot;

s d=&quot;B_UID=552149491&quot;

s e=&quot;hidden=1ED19292F0C0D11F293FF322F3291225EECB209E65263F82&quot;

s f=&quot;&amp;&quot;

注：因为hidden中的串号是随时变动的，所以要加一个截取，实时截取才生效，这里就不做解释了，另外，下面将用到ss变量相加，因为ss中不支持“&amp;”号，所以要定义成变量，其作用是连接的意思。


3.将定义的变量连接起来，地址除外
ss(b+&quot;内容&quot;+f+c+f+d+f+e,g)

注：假设“内容”是获取输入框的并赋值为h
ss(b+h+f+c+f+d+f+e,g)


4.提交
t()
{
hs(a,g,&quot;utf-8&quot;,l)
f(l?&quot;成功&quot;)
{
tw(&quot;发表成功&quot;)
}
else
{
tw(&quot;发表失败&quot;)
}
}



注：上面还说到一个身份码问题，所以提交时要跟上使用者的sid，也可以定义为变量，在地址中加上，如：
ss(&quot;http://blog60.z.qq.com/blog/add_comment.jsp?sid=&quot;+sid,a)



《作者：猫吓狗》

【post结果判断与验证码提交】


注：本节主要讲解post后遇到验证码问题，post的用法请参考(post提交示例)

先讲一下简单的判断办法，通常我们在网页发帖后都这样提示“发表成功或主题发表完成”，而回帖也同样这样提示“回复完成或回复成功”，知道这个结果那么就利用f判断来判断是否成功，例：
____________


t()
{
hs(&quot;地址&quot;,&quot;参数&quot;,&quot;utf-8&quot;,l)
f(l?&quot;成功&quot;)
{
tw(&quot;发表成功&quot;)
}
else
{
f(l?&quot;完成&quot;)
{
tw(&quot;发表完成&quot;)
}
else
{
tw(&quot;失败&quot;)
}
}
}

.f(l?&quot;xxx&quot;)这句主要是判断结果中是否包含该字符就可以知道post后是否成功，当然，也可以用其他判断，比如，对等，或者，并且(具体请看手册的f用法)

________________

有时post后不一定就能直接传到服务器，有些网站加了验证码防火墙，验证码的样式也是各种各样，我们以常见的3gqq为例，也是比较简单的一种，事先要添加一个图片控件，属性为隐藏，假设552149491这个号遇到验证码，那么返回值有这样的一段源码：

__________

QQ账号:552149491&lt;br/&gt;
系统检测到您的操作异常，为保证您的号码安全，请输入验证码进行验证，防止他人盗取密码。&lt;br/&gt;
&lt;img src=&quot;http://nvcsz.gtimg.com/552149491/688031498313305408.gif?r=63036&quot; alt=&quot;验证码&quot;/&gt;&lt;br/&gt;


.注：其中”http://nvcsz.gtimg.com/552149491/688031498313305408.gif?r=63036”就是验证码地址
________

t()
{
hs(&quot;地址&quot;,&quot;参数&quot;,&quot;utf-8&quot;,l)
f(l?&quot;成功&quot;)
{
tw(&quot;发表成功&quot;)
.判断是否成功，否执行下面
}
else
{

f(l?&quot;验证码&quot;)
{
sj(l,&quot;&lt;img src=&quot;&quot;,&quot;&quot; alt=&quot;验证码&quot;,mao)
.截取验证码图片地址

hd(mao,&quot;yzm.png&quot;,gou)
.下载到根目录并命名为yzm.png

f(gou==0)
{
us(id,&quot;show&quot;,0)
us(id, &quot;imgsdf&quot;, &quot;yzm.png&quot;)
.显示图片控件并读出刚才的验证码
}
else
{
tw(&quot;验证码获取失败&quot;)
}
}
else
{
tw(&quot;发表失败&quot;)
}
}
}



注：如果有验证码的话那么还需要截取其他参数来post，共两次，源码查看器可能查看不到3gqq的验证码参数，你可以在第一次post时加一个fw来保存返回值，再从文件管理器查看参数。



《作者：猫吓狗》

【将网页源码转HTML】


s id=这里是输入框id

ug(id,&quot;text&quot;,lookHtml)
.获取编辑框内容，以文本形式赋值给lookHtml(可改为其他名称)

fw(&quot;YmCk/index.html&quot;,lookHtml)
.在SD卡建立YmCk文件夹，写入index.html，赋值为lookHtml


t()
{
hw(&quot;file:///sdcard/YmCk/index.html&quot;) 
}
.打开SD卡YmCk文件夹的index文件(ps:路径一定要写正确！)



《作者：┈┾極度灬彀魂使ぃ忆》



【将文件放进安装包办法】


可能有很多人问，为什么测试时音频能播放，打包后也可以，为什么发给别人播放不了？

这里简单介绍一下，之所以会这样是因为你的文件在sd卡上，并没有打包到程序内，所以别人播放不了，除了音频，视频或图片都一样，下面教大家如何打包进程序内。


1.首先查看你当前的工程id是多少(在该工程首页会显示id：xx)

2.打开文件管理器把你想要打包进去的文件复制

3.图片文件办法：找到iApp/app/工程id/assets/Userimg/粘贴
也就是说要放到Userimg文件夹内

4.其他文件办法：找到iApp/app/工程id/assets/粘贴
与图片不同，这个要放在Userimg文件夹外

5.在程序中引用包内文件无需路径，直接引用文件名就可以，如：bfm(&quot;abc.mp3&quot;)




《作者：猫吓狗》


【循环截取字符示例】


s d=&quot;&quot;
.初始d变量

s a=&quot;（你）=（我）=（他）&quot;
.要截取内容


sl(a,&quot;=&quot;,b)
.以“=”号将内容隔开


for(a;b)
{
sj(a,&quot;（&quot;,&quot;）&quot;,c)
ss(d+c,d)
}
.循环截取并将返回变量相加


tw(d)


注意：上面只是例子，如果截取网页上的内容同样要找到分隔符，每个截取部分前后都要有相同字符。

比如：
abc&quot;&gt;第一部分&lt;/a&gt;
def&quot;&gt;第二部分&lt;/a&gt;

那么截取部分就是sj(a,&quot;&quot;&gt;&quot;,&quot;&lt;/a&gt;&quot;,c)



《作者：猫吓狗》


【仅首次使用提醒】


fe(&quot;abc.txt&quot;,bbb)
s a=&quot;true&quot;
f(bbb == a)
{
//这里是除首次显示之外的其他代码，相当于跳过下面代码
fw(&quot;abc.txt&quot;,&quot;a&quot;)
}
else
{
//这里弄软件第一次安装后进入的界面，用于介绍软件功能之类的页面！只会显示一次，也就是第一次打开软件的时候！
}



解：通常我们在使用一些正版软件都有一个”免责“弹窗，这些提醒仅首次使用跳出，下次进入不再提示，这就要用到以上的记录办法，原理很简单，首次打开会判断abc(可任意修改)文件是否存在，若否就弹出你预先设置的一些代码，如：同意协议、免责声明或帮助等，确认后便生成一个abc文件，以后再次进入就不再弹出该提示。




《作者：by大师兄》

【直接访问安装包里面的html文件】


s id=这里是浏览控件id

us(id,&quot;url&quot;,&quot;file:///android_asset/index.html&quot;)




.这代码放入启动事件中，做一个浏览器控件
软件打包好以后会直接访问软件中的html文件，如果你要给html加css和js一定要把他们都放在assets中，不用另加子文件夹

注：测试的时候没有效果，要打包以后才有效果哦！


《作者：childhood》


【列表的创建】


s id=这里是列表控件id

s uu=&quot;显示一&quot;
s nn=&quot;显示二&quot;
ula(&quot;t&quot;,&quot;123&quot;;uu,nm)
ula(&quot;t&quot;,&quot;456&quot;;nn,nm)
uls(id,&quot;t&quot;,nm,b)
.这个放到属性为0的载入事件中



sgsz(b, 0, cc3)
tw(cc3)
.这个放到列表控件的载入事件中，测试，再把sgsz(b, 0, cc3)中的0改为1试试。



上面只是一个简单的的例子，下面教你如何将网页上的内容循环截取到列表中。例：



s gou=0
swh(&quot;h&quot;,h)
t()
{
s a=&quot;（你）{显示1}=（我）{显示2}=（他）{显示3}&quot;
sl(a,&quot;=&quot;,b)
for(a;b)
{
sj(a,&quot;（&quot;,&quot;）&quot;,qq)
sj(a,&quot;{&quot;,&quot;}&quot;,qqq)
ula(&quot;t&quot;, qqq;qq, c)
s(gou+1,gou)
}
s(gou*30,qiu)
us(id,&quot;h&quot;,qiu)
uls(id, &quot;t&quot;, c, b)
}



.上面的例子是本地循环截取，如果要获取网页的内容就把变量a改为hs，例：

hs(&quot;地址&quot;,null,null,a)

.需要注意的是不管是网页还是本地，都要找到共同分隔符(详情请看循环截取示例)，你也可以把网页源码保存到本地处理后再读出，本教程原理就是这样。当然，示例用的列表样式是t，即文本样式，更多请查看手册，图片样式需要多二个参数的，如：ula(&quot;itt&quot;,qqq;&quot;2.png&quot;;qq;p,c)



《作者：猫吓狗》
qq：552149491

【点击列表响应事件】


s id=这里是列表控件id

s a=&quot;事件一&quot;
s b=&quot;事件二&quot;
s c=&quot;事件三&quot;
ula(&quot;t&quot;,&quot;1&quot;;a,d)
ula(&quot;t&quot;,&quot;2&quot;;b,d)
ula(&quot;t&quot;,&quot;3&quot;;c,d)
uls(id,&quot;t&quot;,d,e)
.这个放到属性为0的载入事件中

___________________

sgsz(e, 0, cc3)
s g=cc3
.将响应内容赋值给变量g

f(g==1)
{
tw(&quot;执行事件1的代码&quot;)
}
else
{
f(g==2)
{
tw(&quot;执行事件2的代码&quot;)
}
else
{
f(g==3)
{
tw(&quot;执行事件3的代码&quot;)
}
}
}


.这个放到列表控件的点击事件中，执行事件xx处可填写任意代码，也可以写上uigo跳转，当点击列表后返回列表内容并赋值给变量g，判断g对应的列表内容并执行相关代码，列表事件可根据情况进行添删，同时此判断也要对应，判断可嵌套多个判断，注意符号不要写错。


《作者：猫吓狗》
qq：552149491


【音频播放与暂停】



s id=这里是播放按钮id
s id1=这里是暂停按钮id

.首先把音频文件放到安装包中(详情请看将文件放进安装包办法)并命名为数字或字母，在播放音乐时通常都有一个暂停按钮，当你点击后就变成了播放按钮，要怎么实现呢？这里将用到按键切换办法，下面先简单简介切换原理。

.我们都知道us是设置控件属性，而show是控件状态，那么us(id1,&quot;show&quot;,8)便是设置暂停控键为隐藏状态，把8改成0就是显示状态，知道这个是不是想到了实现办法？没错，就是改变状态来达到效果，例：

us(id,&quot;x&quot;,160)
us(id1,&quot;x&quot;,160)
us(id,&quot;y&quot;,300)
us(id1,&quot;y&quot;,300)

.为了让效果更佳，我们先把两个按键x轴与y轴重叠，这样看起来就只有单个按钮，起到障眼作用。

t()
{
us(id,&quot;show&quot;,0)
us(id1,&quot;show&quot;,8)
s a=&quot;音频名.mp3&quot;
bfm(a,b)
bfms(b, &quot;ip&quot;, c)
f(c==&quot;true&quot;)
{
us(id,&quot;show&quot;,8)
us(id1,&quot;show&quot;,0)
}
}
.以上代码放到载入事件中，注意音频名要修改与包内音频名一致。



bfms(b, &quot;st&quot;)
us(id1,&quot;show&quot;,0)
us(id,&quot;show&quot;,8)
.这个放到播放按钮的点击事件中



bfms(b, &quot;pe&quot;)
us(id1,&quot;show&quot;,8)
us(id,&quot;show&quot;,0)
.这个放到暂停按钮的点击事件中




注：播放代码不一定要放在载入事件里，你也可以加个播放按钮然后放到点击事件里，同时在后面加上隐藏该按钮的代码。



《作者：猫吓狗》

【判断内存是否可用】


.有些时候我们做的软件需要储存到用户内存卡或者手机里软件有些功能才能实现，这就用到检测有无内存了。原理就是写入一个文本，然后判断文本是否存在，当然从安装包复制到内存卡一个图片、音频……等等都OK。下面看代码。讲下述代码写到载入事件中将更利于你的软件。

s file=&quot;test.Shallow&quot;
s text=&quot;检测有无内存&quot;
fw(file,text)
.把&quot;检测有无内存&quot;文字写入&quot;test.Shallow&quot;文件。
t()
{
fe(file,panduan)
f(panduan==&quot;true&quot;)
{
tw(&quot;有内存&quot;)
}
else
{
tw(&quot;无内存,即将退出程序&quot;)
stop(3000)
ends()
.检测到没有内存卡即将退出程序
}
}


.《作者：Shallow》
.QQ582279412
.邮箱846422118@139.com


【添加背景图片办法】



有时候总觉得背景太过单调，于是想添加一张背景图来丰富色彩，下面教你如何添加。


1.首先准备一张图片，尽量不要动图（因为动图不能全屏）


2.将图片放到iApp/Userimg/文件夹中，并以字母或数字重命名。


3.在你需要的界面内添加一个图片控件，然后修改属性，在背景图片框内点击两次修改文件名为你刚才的图片，保存。


4.以下代码复制到载入事件中

.__________

s id=这里填写图片控件id

swh(&quot;w&quot;, w)
.获取屏幕宽度

swh(&quot;h&quot;, h)
.获获取屏幕高度

us(id,&quot;w&quot;,w)
.设置添加的图片控件的宽度为屏幕的宽度

us(id,&quot;h&quot;,h)
.设置添加的图片控件的高度为屏幕的高度

us(id,&quot;x&quot;,0)
.设置控件x坐标

us(id,&quot;y&quot;,0)
.设置控件y坐标

us(id, &quot;scaletype&quot;, &quot;FIT_XY&quot;)
.这个是设置图片控件为拉伸


.____________


5.将横线内的代码复制到载入事件中并修改控件id，保存，测试。


6.如果你之前添加过其他控件那么这个图片控件会覆盖以前的控件，下面办法可以解决。

7.点控件》背景图片控件》属性》隐藏》保存》将现在所有能看到的控件点一次》移动》连续点击两次控件》控件》背景图片控件》属性》显示》保存测试。


注：如果除背景控件外还有其他控件是隐藏的需要修改属性为显示点两次后再隐藏，目的是将该控件置于最前。



《作者：猫吓狗》


【线程内弹窗解决办法】



目前iapp并不支持在线程内弹出提示窗口，如果非要这么做那就变相完成。


我们假设在界面a中有线程运行，而且在线程内弹出提示窗，那么我们就多创建一个新界面并命名为b，这样就能解决线程内弹出提醒问题，下面起个例子：


t()
{
s a=1
s b=1
s c=30
w(a==1)
{
s(b+1,b)
tw(b)
stop(1000)
f(b==c)
{
uigo(&quot;b.iyu&quot;)
s a=0
end()
}
}
}

.以上代码放到a界面的载入事件中，循环30次完成后跳到b界面并关闭当前界面。


utw(&quot;提示&quot;,&quot;亲，任务已完成，是否继续？&quot;,&quot;是&quot;,&quot;否&quot;)
{
uigo(&quot;a.iyu&quot;)
}
else
{
tw(&quot;完成并退出&quot;)
end()
}



.以上代码放到b界面的载入事件中，点击“是”从新进入a界面，反之便关闭当前界面。




《作者：猫吓狗》

【截取网页字符】


其实很多示例中都有这个办法，只是大家不够留意或不了解，现在教你如何截取。

首先先简单介绍一下截取方式，其中包括有：

1.单字截取    ---     即网页中出现多个相同字符，但只截取最前的。
2.批量截取    ---     即网页中出现多个相同字符，而且全部截取下来。
3.查找截取    ---     即网页中出现多个相同字符，截取中间或最后一个。


先来看下面的一个网页源码

_________________

pu=sz%40224_220%2Cta%40middle____&quot;&gt;反馈&lt;/a&gt;&lt;br/&gt;&lt;&lt;a href=&quot;?ssid=0&amp;amp;from=0&amp;amp;bd_page_type=0&amp;amp;uid=0&amp;amp;pu=sz%40224_220%2Cta%40middle____%2Csz%40176_208&quot;&gt;极简版&lt;/a&gt;|炫彩版|&lt;a href=&quot;?ssid=0&amp;amp;from=0&amp;amp;bd_page_type=1&amp;amp;uid=0&amp;amp;pu=sz%40224_220%2Cta%40middle____%2Csz%401330_240&quot;&gt;触屏版&lt;/a&gt;&gt;&lt;br/&gt;&lt;span class=&quot;b&quot;&gt;Baidu&amp;nbsp;京ICP证030173号&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;

______________________

此代码来自百度首页，里面共有三个“pu=xxx&quot;&gt;”，假设要截取里面的字符请看下面示例（中英文字符同理）：

第一种截取方式：

hs(&quot;http://wap.baidu.com&quot;,null,null,a)
sj(a,&quot;pu=&quot;,&quot;&quot;&gt;&quot;,b)
tw(b)

返回的是第一个pu里的内容，即sz%40224_220%2Cta%40middle____

________________

第二种截取方式：

需要找到相同的分隔符，我们以&lt;/a&gt;为例（详细请看循环截取字符示例）

hs(&quot;http://wap.baidu.com&quot;,null,null,a)

sl(a, &quot;&lt;/a&gt;&quot;, b)
s e=&quot;&quot;

for(c;b)
{
sj(c,&quot;pu=&quot;,&quot;&quot;&gt;&quot;,d)
ss(e+d+&quot;;&quot;,e)
}
.循环截取并用数组隔开

sgsz(e, 0, f)
tw(f)
.返回是：sz%40224_220%2Cta%40middle____

sgsz(e, 1, f)
tw(f)
.返回是：sz%40224_220%2Cta%40middle____%2Csz%40176_208

sgsz(e, 2, f)
tw(f)
.返回是：sz%40224_220%2Cta%40middle____%2Csz%401330_240



.以此类推，sgsz为访问数组指定数，以0开始计算，也可以先用sgszl来读取数组总数再指定访问。
_________________

第三种方式：

hs(&quot;http://wap.baidu.com&quot;,null,null,a)

slg(a,b)
.获取字符长度

slof(b, &quot;&amp;amp;&quot;, &quot;=&quot;,c)
.从后面向前面查找pu位置

slof(b, &quot;触&quot;, &quot;版&quot;, d)
.从后面向前面查找“屏”字位置

s(c+1,c)
s(d-3,d)
.由于我们要的是pu=&quot;xxx&quot;&gt;里的xxx字符，那么刚才获取的位置要改一下，所以用s来计算以变动位置。

ssg(a, c, d, e)
tw(e)
.返回的字符为最后一个pu里的内容



《作者：猫吓狗》


【控件自适屏排版】


适屏需要自己设置，共有两种方式，一种为固定控件大小，一种为适屏控件大小。

_______________

固定控件大小：

也就是控件大小不变，只改变其位置来适屏，这里以高300，宽200来示例。

居中效果：

swh(&quot;w&quot;,w)
.获取屏幕宽

swh(&quot;h&quot;,h)
.获取屏幕高

s(w-200,a)
.屏幕宽减控件宽

s(a/2,b)
.结果除于2

s(h-300,c)
.屏幕高减控件高

s(c/2,d)
.结果除于2

us(id,&quot;x&quot;,b)
us(id,&quot;y&quot;,d)
.设置控件xy轴坐标，注意修改id

______

居右下角效果：

swh(&quot;w&quot;,w)
.获取屏幕宽

swh(&quot;h&quot;,h)
.获取屏幕高

s(w-200,a)
.屏幕宽减控件宽

s(h-300,b)
.屏幕高减控件高

us(id,&quot;x&quot;,a)
us(id,&quot;y&quot;,b)
.设置控件xy轴坐标，注意修改id


______________________

控件适应屏幕：

这种办法需要留出除控件外的空白位置，假设留左边为30，右边为40，上边与下边各为50。

swh(&quot;w&quot;,w)
.获取屏幕宽

swh(&quot;h&quot;,h)
.获取屏幕高

s(30+40,a)
.左右空白处相加

s(50*2,b)
.上下空白处相加

s(w-a,c)
.得到控件要设置的宽

s(h-b,d)
.得到控件要设置的高

us(id,&quot;w&quot;,c)
.设置控件宽度

us(id,&quot;h&quot;,d)
.设置控件高度

us(id,&quot;x&quot;,30)
.设置控件x轴坐标

us(id,&quot;y&quot;,50)
.设置控件y轴坐标



注，id要修改，设置全屏不用我说了吧，属性中改为-1。


《作者：猫吓狗》

【控件快速自适屏布局】

_____________

.===底部菜单栏快速布局==设置区
s IDS=&quot;4:5:6:7&quot;
.控件ID用英文的冒号隔开
s kongjianhhh=50
.控件高度
.控件组会自动适应屏幕宽度，代码放入载入事件
.@星辰===挪用代码请保留此行
.=====设置区
sl(IDS,&quot;:&quot;,IDS1)
sgszl(IDS1,IDSlong)
swh(&quot;h&quot;,hhh)
swh(&quot;w&quot;,www)
s(hhh-kongjianhhh,kongjianyyy)
.得到控件y轴位置
s(www/IDSlong,kongjianwww)
.得到控件宽度

s kongjianxxx=0
for(ID;IDS1)
{
us(ID,&quot;w&quot;,kongjianwww)
us(ID,&quot;h&quot;,kongjianhhh)
us(ID,&quot;x&quot;,kongjianxxx)
us(ID,&quot;y&quot;,kongjianyyy)
s(kongjianxxx+kongjianwww,kongjianxxx)
}

_______________

.===居中选择快速布局==设置区
s IDS=&quot;4:5:6:7&quot;
.控件ID用英文的冒号隔开
s kongjianhhh=100
.控件高度  若高度超高将自动适配最大值
s kongjianwww=200
.控件宽度    若宽度超宽将自动适配最大值
s dingbuliu=100
.顶部留空
s dibuliu=90
.底部留空
.这段代码可以得到控件组居中排列,若留空后的高度不够摆放控件组,将自动减小控件组控件高度,若设置的控件宽度大于屏幕宽度将自动适应屏幕宽度,若控件宽度小于屏幕宽度则控件居中，代码放入载入事件
.@星辰===挪用代码请保留此行
.=====设置区


sl(IDS,&quot;:&quot;,IDS1)
sgszl(IDS1,IDSlong)
swh(&quot;h&quot;,hhh)
swh(&quot;w&quot;,www)

s(hhh-dingbuliu-dibuliu,zhongkong)
.得到中间空位
s(dingbuliu-0,kongjianyyy)
.得到第一控件y轴位置
s((www-kongjianwww)/2,kongjianxxx)
.得到控件x轴位置
s(kongjianhhh*IDSlong,kongjianzonggao)
.得到控件总高度
f(kongjianzonggao&gt;=zhongkong)
{
s(zhongkong/IDSlong,kongjianhhh)
s kongwei=0
}
else
{
s(zhongkong-kongjianzonggao,kongwei1)
s(kongwei1/(IDSlong-1),kongwei)
}
s(kongjianhhh+kongwei,kongjianjianxi)

f(kongjianwww&gt;www)
{
ss(www,kongjianwww)
s kongjianxxx=0
}

for(ID;IDS1)
{
us(ID,&quot;w&quot;,kongjianwww)
us(ID,&quot;h&quot;,kongjianhhh)
us(ID,&quot;x&quot;,kongjianxxx)
us(ID,&quot;y&quot;,kongjianyyy)
s(kongjianyyy+kongjianjianxi,kongjianyyy)
}

________________

.===右上角按钮快速布局==设置区
s IDS=&quot;4:5:6:7&quot;
.控件ID用英文的冒号隔开
s kongjianhhh=50
.控件高度
s kongjianwww=50
.控件宽度
s kongjianyyy=0
.控件y轴位置
.控件组会靠右依次向左排列 ，代码放入载入事件
.@星辰===挪用代码请保留此行
.=====设置区
sl(IDS,&quot;:&quot;,IDS1)
sgszl(IDS1,IDSlong)
swh(&quot;h&quot;,hhh)
swh(&quot;w&quot;,www)

s(www-kongjianwww,kongjianxxx)
for(ID;IDS1)
{
s(IDSlong-1,IDSlong)
sgsz(IDS1,IDSlong,ID)
us(ID,&quot;w&quot;,kongjianwww)
us(ID,&quot;h&quot;,kongjianhhh)
us(ID,&quot;x&quot;,kongjianxxx)
us(ID,&quot;y&quot;,kongjianyyy)
f(kongjianxxx&gt;=0)
{
s(kongjianxxx-kongjianwww,kongjianxxx)
}

}

_________________


.===y轴自定菜单自适应快速布局==设置区
s IDS=&quot;4:5:6:8:9:7&quot;
.控件ID用英文的冒号隔开
s kongjianhhh=50
.控件高度
s kongjianyyy=200
.控件y轴坐标   要是需要,也可加入计算代码,得出y轴坐标
.控件组会自动适应屏幕宽度,由底部菜单栏演变而来,可设置y轴位置，代码放入载入事件
.@星辰===挪用代码请保留此行
.=====设置区
sl(IDS,&quot;:&quot;,IDS1)
sgszl(IDS1,IDSlong)
swh(&quot;h&quot;,hhh)
swh(&quot;w&quot;,www)
s(www/IDSlong,kongjianwww)
.得到控件宽度

s kongjianxxx=0
for(ID;IDS1)
{
us(ID,&quot;w&quot;,kongjianwww)
us(ID,&quot;h&quot;,kongjianhhh)
us(ID,&quot;x&quot;,kongjianxxx)
us(ID,&quot;y&quot;,kongjianyyy)
s(kongjianxxx+kongjianwww,kongjianxxx)
}

_____________

.===左侧选择快速布局==设置区
s IDS=&quot;4:5:6:8:9:10:11:7&quot;
.控件ID用英文的冒号隔开
s kongjianhhh=100
.控件高度  若高度超高将自动适配最大值
s kongjianwww=130
.控件宽度    若宽度超宽将自动适配最大值建议不超过150
s dingbuliu=100
.顶部留空
s dibuliu=90
.底部留空
.这段代码可以得到控件组靠左排列,由居中选择布局演变而来,若留空后的高度不够摆放控件组,将自动减小控件组控件高度,若设置的控件宽度大于屏幕宽度将自动适应屏幕宽度(建议不要大于150)，代码放入载入事件
.@星辰===挪用代码请保留此行
.=====设置区


sl(IDS,&quot;:&quot;,IDS1)
sgszl(IDS1,IDSlong)
swh(&quot;h&quot;,hhh)
swh(&quot;w&quot;,www)

s(hhh-dingbuliu-dibuliu,zhongkong)
.得到中间空位
s(dingbuliu-0,kongjianyyy)
.得到第一控件y轴位置
s kongjianxxx=0
.控件x轴位置
s(kongjianhhh*IDSlong,kongjianzonggao)
.得到控件总高度
f(kongjianzonggao&gt;=zhongkong)
{
s(zhongkong/IDSlong,kongjianhhh)
s kongwei=0
}
else
{
s(zhongkong-kongjianzonggao,kongwei1)
s(kongwei1/(IDSlong-1),kongwei)
}
s(kongjianhhh+kongwei,kongjianjianxi)

f(kongjianwww&gt;www)
{
ss(www,kongjianwww)
s kongjianxxx=0
}

for(ID;IDS1)
{
us(ID,&quot;w&quot;,kongjianwww)
us(ID,&quot;h&quot;,kongjianhhh)
us(ID,&quot;x&quot;,kongjianxxx)
us(ID,&quot;y&quot;,kongjianyyy)
s(kongjianyyy+kongjianjianxi,kongjianyyy)
}

_______________

.===右侧选择快速布局==设置区
s IDS=&quot;4:5:6:8:9:10:11:7&quot;
.控件ID用英文的冒号隔开
s kongjianhhh=100
.控件高度  若高度超高将自动适配最大值
s kongjianwww=130
.控件宽度    若宽度超宽将自动适配最大值建议不超过150
s dingbuliu=100
.顶部留空
s dibuliu=90
.底部留空
.这段代码可以得到控件组靠右排列,由居中选择布局演变而来,若留空后的高度不够摆放控件组,将自动减小控件组控件高度,若设置的控件宽度大于屏幕宽度将自动适应屏幕宽度(建议不要大于150)，代码放入载入事件
.@星辰===挪用代码请保留此行
.=====设置区


sl(IDS,&quot;:&quot;,IDS1)
sgszl(IDS1,IDSlong)
swh(&quot;h&quot;,hhh)
swh(&quot;w&quot;,www)

s(hhh-dingbuliu-dibuliu,zhongkong)
.得到中间空位
s(dingbuliu-0,kongjianyyy)
.得到第一控件y轴位置
s(www-kongjianwww,kongjianxxx)
.控件x轴位置
s(kongjianhhh*IDSlong,kongjianzonggao)
.得到控件总高度
f(kongjianzonggao&gt;=zhongkong)
{
s(zhongkong/IDSlong,kongjianhhh)
s kongwei=0
}
else
{
s(zhongkong-kongjianzonggao,kongwei1)
s(kongwei1/(IDSlong-1),kongwei)
}
s(kongjianhhh+kongwei,kongjianjianxi)

f(kongjianwww&gt;www)
{
ss(www,kongjianwww)
s kongjianxxx=0
}

for(ID;IDS1)
{
us(ID,&quot;w&quot;,kongjianwww)
us(ID,&quot;h&quot;,kongjianhhh)
us(ID,&quot;x&quot;,kongjianxxx)
us(ID,&quot;y&quot;,kongjianyyy)
s(kongjianyyy+kongjianjianxi,kongjianyyy)
}

______________


《作者：星辰》
qq：2226543512


【居中多行控件快速自适屏】



.===居中多行自适应快速布局==设置区
s IDSS=&quot;4:5#6:8:7&quot;

.控件ID用英文的冒号隔开  #号表示提行,[4:5#6:8#7]表示第一行显示控件4和5,二行显示控件6和8,三行显示控件7
s dingbuliu=100
.顶部留空
s dibuliu=90
.底部留空
.这段代码可以自动适应宽度和高度,可多行布局,可布局九宫格[1:2:3#4:5:6#7:8:9],可每行一个控件[1#2#3#4],也可一行几个控件[1:2:3:4],也可不规则布局[1:2:3#4#5:6#7:8:9:10],也可只用一个控件[1],此代码行数不限,每行的控件数不限，代码放入载入事件
.@星辰===挪用代码请保留此行
.=====设置区

swh(&quot;h&quot;,hhh)
swh(&quot;w&quot;,www)
s(hhh-dingbuliu-dibuliu,zhongkong)
.得到中间空位
s(dingbuliu-0,kongjianyyy)
.得到第一控件y轴位置
sl(IDSS,&quot;#&quot;,IDSS1)
sgszl(IDSS1,IDSSlong)
s(zhongkong/IDSSlong,kongjianhhh)
for(IDSS2;IDSS1)
{
sl(IDSS2,&quot;:&quot;,IDS1)
sgszl(IDS1,IDSlong)
s(www/IDSlong,kongjianwww)
s kongjianxxx=0
for(ID;IDS1)
{
us(ID,&quot;w&quot;,kongjianwww)
us(ID,&quot;h&quot;,kongjianhhh)
us(ID,&quot;x&quot;,kongjianxxx)
us(ID,&quot;y&quot;,kongjianyyy)
s(kongjianxxx+kongjianwww,kongjianxxx)
}
s(kongjianyyy+kongjianhhh,kongjianyyy)
}


《作者：星辰》
qq：2226543512



【开并按钮控制原理】


.有很多朋友问我这个问题，因为我觉得原理很简单所以一直没写，现在就来跟大家说说吧，其实很简单，如果看过“音乐的播放与暂停理论“就知道，只是一个改变属性状态而已。

___________

.首先要准备两个控件，一个是开，一个是关，我们就假设开的控件id为1，关的为2，以下代码放载入事件


swh(&quot;w&quot;,w)
swh(&quot;h&quot;,h)
.获取屏幕的宽和高

us(1,&quot;show&quot;,0)
us(2,&quot;show&quot;,8)
.设置初始状态，0为显示，8为隐藏

us(1,&quot;x&quot;,100)
us(2,&quot;x&quot;,100)
us(1,&quot;y&quot;,200)
us(2,&quot;y&quot;,200)
.设置两个控件x轴和y轴为同一位置，一定要一致

___________

.控件1的点击事件中放下面代码

us(1,&quot;show&quot;,8)
us(2,&quot;show&quot;,0)
.当点击后改变当前为隐藏并显示另一个

____________

.控件2的点击事件中放下面代码

us(1,&quot;show&quot;,0)
us(2,&quot;show&quot;,8)
.这个同上，也是改变当前并显示另一个，这样一个开关控制就完成了。


《作者：猫吓狗》


【界面加载失败、停止运行、打开空白】


打开空白：

iapp默认进入界面名称为“mian.iyu”，此界面为第一界面，也就是启动界面，一般创建工程后会出现一个默认的文件，该文件就是“mian.iyu”，直接编辑就可以，如果你的程序中没有包含这个文件打包过程会自动创建一个空白的，所以打包后安装打开就出现空白情况。

________________

停止运行：

这种情况一般是代码错误引起，假设你测试是可以的但打包后会停止，请重新检查代码是否包含特殊字符，详情请看上面（打包失败理论）。

________________

界面加载失败：

这种情况通常出现在复制别人的源码而引起，比如启动画面就是个例子，请检查你的代码中是否有一句“uigo(&quot;xxx.iyu&quot;)”，uigo是跳转代码，当被跳转界面不存在时会提示加载失败提醒，这里要把xxx修改一下或建一个xxx.iyu的文件，如：

uigo(&quot;abc.iyu&quot;)或uigo(&quot;abc&quot;)

这里要新建一个abc.iyu的界面或把abc改为你已有的界面名称。



《作者：猫吓狗》
qq：552149491

【自适应文本字体大小】


id=文本框id
m=你当前手机屏幕宽
n=你当前手机屏幕高


ug(id,&quot;txtsize&quot;,a)
s(m*n,f1)
swh(&quot;h&quot;,h)
swh(&quot;w&quot;,w)
s(w*h,f2)
s2(f2/f1,k)
s(a*k,a)
us(id,&quot;txtsize&quot;,a)



《作者：秋末安好》
qq：1424648087

【多个选择项仅单选效果】


s IDS=&quot;1:2:3:4&quot;
.1234为多选控件id，放载入事件

.假如你添加了3个勾选控件(个数不限),那这三个就是一个勾选控件组,把这3个勾选控件的ID填入IDS变量,用:隔开,然后复制下面代码到每个勾选控件的点击事件中,点击任何一个选项只有点击的打勾

sl(IDS,&quot;:&quot;,IDS1)
for(ID;IDS1)
{
us(ID,&quot;checked&quot;,&quot;false&quot;)
}


《作者：星辰》
qq：2226543512


【浏览器控件的添加与返回】



iapp自带有浏览控件，可用来浏览网页，有时我们需要从当前网页返回上一级，下例教你如何做返回。

首先我们需要用一个文件做为浏览记录，保存浏览过的地址，返回时读出该记录并赋值给浏览控件。

1.建立一个地址输入框，一个点击进入按钮，一个浏览控件，把布局定位好，我们假设各控件id如下：
输入框id：1
按钮id：2
浏览器id：3

2.在载入事件中放以下代码

__________________

s ti=&quot;&quot;
s bw=&quot;&quot;
s qiu=1
s wj=&quot;abc.txt&quot;
.其中abc.txt是浏览记录文件

t()
{
s t=&quot;c&quot;
w(t!=&quot;a&quot;)
{

f(t==&quot;b&quot;)
{
ug(3,&quot;title&quot;,nt)
ug(3,&quot;url&quot;,nw)
.循环获取当前浏览器标题与地址

f(nt!=ti)
{
s ti=nt
us(1,&quot;text&quot;,nw)
.将地址赋值给输入框

fe(wj,xia)
f(xia==&quot;true&quot;)
{
fr(wj,gou)
f(gou==&quot;&quot;)
{
s gou=&quot;&quot;
}
ss(gou+&quot;n&quot;+nw,lai)
fw(wj,lai)
.保存当前地址为记录

}
else
{
fw(wj,nw)
}
}
f(bw!=nw)
{
ss(nw,bw)
}
}
}
}

_________________

3.以下代码放到控钮中

ug(1,&quot;text&quot;,uu)
f(uu?*&quot;http://&quot;)
{
}
else
{
ss(&quot;http://&quot;+uu,uu)
}
us(3,&quot;url&quot;,uu)
s t=&quot;b&quot;
s qiu=1

.获取输入框地址，判断是否包括地址头，否将自动补上，赋值给浏览控件并激活载入事件中的循环。

________________

4.以下代码放到返回事件中，事件》重写返回事件

fe(wj,mm)
.判断是否存在历史文件

f(mm==&quot;true&quot;)
{
fr(wj,mao)
f(mao==&quot;&quot;)
{
tw(&quot;没有记录哦&quot;)
}
else
{
sl(mao,&quot;n&quot;,kk)
sgszl(kk,hh)
.以数组分隔并访问数组行数

f(hh==1)
{
sgsz(kk,0,mao)
us(3,&quot;url&quot;,mao)
.如果只有一条记录真接访问

}
else
{
s(qiu+1,gg)
sgsz(kk,gg,mao)
us(3,&quot;url&quot;,mao)
.如果有一条以上记录每点击一次就加一次访问行数，以达到后退效果

}
}
}
else
{
s t=&quot;a&quot;
end()
.文件不存在退出界面并停止循环
}

.读出历史并赋值给浏览控件，如果不存在会退出本界面

__________________




《作者：猫吓狗》
qq：552149491

【注册码与注册机的原理】


有时候作者为了保留权利，特加入了注册码做为正版软件，使用方需要向作者购买或索爱激活码才能通过检测，但如何才能让每个人的激活不通用呢？那么就需要获取使用方的imei号，因为每部机器的imei都是不同的，下面就教大家如何去写。


1.有两种办法保存数据，一种为本地，一种为服务器，我们先说说第一种，首先要用一个本地文件做为保存记录，下次打开才不会再次要求输入激活码，我们以根目录abc.txt文件为例。

2.
________________

simei(imei)
s2(imei*2,imei1)
s(imei1*2,imei2)
.获取机器号并乘以2后赋值给imei2，可任意计算，假设有s2算法最后一步一定要用单s计算

s wj=&quot;abc.txt&quot;
.这个是保存数据的文件路径，越隐蔽越好

fe(wj,a)
f(a==&quot;true&quot;)
{
fr(wj,b)
f(b==&quot;&quot;)
{
tw(&quot;注册文件异常！&quot;)
}
else
{
f(b==imei2)
{
tw(&quot;已注册，欢迎使用！&quot;)
.这里可以加上转跳代码，跳转前别忘了关闭当前界面
}
else
{
tw(&quot;注册失败！&quot;)
}
}
}
else
{
tw(&quot;未注册，请注册后使用！&quot;)
}

_________________

3.下面为服务器办法，这种办法不易破解，首先要有一个服务端的权限，可以自由编辑且地址不会被改变，与远程更新原理一样，可以用帖子、我的磨或网页，一定要是仅你本人编辑并且该地址不会变才行。

.我们以我的磨(wodemo.net)为例，先在我的磨注册一个网站，然后编写一个撰文，把仅限使用用户的imei号写上去，多个用符号隔开，如，我有一部机器码为123，另一个为456，那么就写上”123，456”，完成后保存，用uc浏览器复制该网页地址出来，比如复制出来的是qiulai.modemo.net

_________________

simei(imei)
.获取用户机器号

t()
{
hs(&quot;http://qiulai.wodemo.net&quot;,null,null,a)
f(a?imei)
{
tw(&quot;已注册，欢迎使用！&quot;)
.这里可以加上转跳代码，跳转前别忘了关闭当前界面
}
else
{
tw(&quot;未注册，请注册后使用！&quot;)
}
}

.通过网页的返回判断是否有该机器号，存在就成功注册，不存在就失败。

__________________


.注：有些手机的机器号带有字母，使用第一种办法需要判断字母后再计算，否则会出错，第二种办法就不用计算，任何机器号都可以。


《作者：猫吓狗》
qq：552149491

【文本保存、读取、查找】


保存:
1、
fw(&quot;abc.txt&quot;,&quot;这里是内容&quot;)

2、
s a=&quot;这里是内容&quot;
fw(&quot;abc.txt&quot;,a)

3、
s a=&quot;iapp/abc.txt&quot;
s b=&quot;这里是内容&quot;
fw(a,b)

.iapp为文件夹，abc.txt为文件

________________


读取:
1、
fr(&quot;abc.txt&quot;,a)
tw(a)

2、
s a=&quot;iapp/abc.txt&quot;
fr(a,b)
us(id,&quot;text&quot;,b)

.iapp为文件夹，abc.txt为文件，id为控件id须修改

________________


查找:

s a=&quot;这里是要找的内容，我们来找这里有几个”找”字&quot;
s b=&quot;找&quot;

s c=0
s d=0
s e=0
slg(a,g)
t()
{
w(e==0)
{
siof(a,b,c,f)
f(f==-1)
{
s e=1
ss(&quot;查找完成，共&quot;+d+&quot;个&quot;,h)
tw(h)
}
else
{
s(f+1,f)
ssg(a,f,g,a)
slg(a,g)
s(d+1,d)
}
}
}

________________

.注：.a是要查找内容，b是要找的字，如果要查找的内容是读出文本那就加一个读出涵数，然后把上面s a=&quot;xxx&quot;那句删除掉，如：

s a=&quot;这里是要找的内容，我们来找这里有几个”找”字&quot;

改成:

fr(&quot;abc.txt&quot;,a)


《作者：猫吓狗》
qq：552149491

【大文件打包办法】


近期有很多童鞋说自己打包不了，这可能与手机兼容性有关，不过不要紧，下面教你打包超大文件（需提前安装一个“apk编辑器”，v1.9官方版下载地址：http://pan.baidu.com/share/link?shareid=1375674163&amp;uk=57684）


1.先来说说安装包（即工程id里的assets文件夹内）包含了大文件的办法，如音频、视频或图片，我们以一个视频为例，假设你的工程内有一个“”abc.mp4”的文件。

2.在sd卡根目录建立一个新的文件夹，任何名字都可以，能记住就行，比如是”mao”文件名，然后把工程包内的“abc.mp4”文件拷贝（复制）到“mao”文件夹里，完成后把工程包内的“abc.mp4”删除并重新建一个空的文件，以“abc.mp4”命名，也就是说你原文件是什么名字就命为什么名，一定要一致，包括后缀，可能有的手机不支持修改后缀，请用“mt文件管理器”（百度搜）修改，如果有多个大文件请按此办法重复操作，直到把所有大文件拷贝（复制）完成。

3.完成上面步骤后就打包该工程，这时就不会提示打包失败字样了，打包完成请记住弹出的路径，该路径就是你刚才的apk文件。

4.这时打开“apk编辑器”找到刚才弹出的路径文件，依次点击打开assets文件夹，此时你会看到你先前建立的空白“abc.mp4”文件，然后长按该空白文件会弹出替换和解压按钮，选择替换找到“mao”文件夹打开，再找到对应的“abc.mp4”文件完成替换。

5.当所有文件替换完成后就返回，然后长按该apk文件，选择优化并签名，完成后再长按，选择安装。

__________________

若是你工程包内并没有大文件，而是你的代码较大引起的失败请看下面这个办法：

1.用文件管理器在sd卡根目录创建一个文件夹，可任意命名（要记住，假设是xia），找到该工程id进入，把较大的iyu文件拷贝（复制）到“xia”文件夹中，多个请重复操作，然后把原的iyu里面的内容全部清空（不用删除）。

2.将工程打包，打包完成请记住弹出的路径，该路径就是你刚才的apk文件。

3.再重新在iapp上建立一个工程，我们假设上面那个工程id是1，这个id是2，把刚才拷贝（复制）到sd卡根目录“xia”文件夹里的iyu文件移动到工程id2里，完成后打包，如果不能打包就把所有iyu文件分开，每个iyu建立一个工程打包。

4.用“apk编辑器”打开打包后的工程2的apk文件，依次进入找到iyu文件（工程2是原iyu文件，有内容），长按选择解压到根目录然后退出。

5.再用“apk编辑器”打开打包后的工程1的apk文件，依次进入找到空白的iyu文件，长按选择替换刚才从工程2中解压出来的iyu文件，完成后返回，然后长按替换后的apk文件，选择优化并签名，完成后再长按，选择安装。



《作者：猫吓狗》
qq：552149491

【游戏引擎的简介】


游戏引擎的产生是为了简化游戏开发的成本，免去大量的重复代码，简单的实现想要的效果。


游戏精灵:
引擎中的精灵，是游戏永远的主角。精灵承载着多种角色的扮演，如：主角、子弹、爆炸、敌人、物品等都适用于多个精灵来演示。

动作:
1.引擎中动作适用于精灵运行、地图运行。它与精灵的完美配合，可谓是如虎添翼。精灵适用于所有动作，所有动作也必须让精灵运行后才会产生效果。
2.部分动作属于效果类型，比如：弹性，变速，反弹，不停重复等等。。
3.部分动作属于功能类型，比如：队列执行，同时执行，回调动作等等。。


地图:
1.地图采用了方块式，需要电脑使用软件“Tiled”设计编辑，此软件编辑十分简单快捷，使用前可提前准备好图像资源。（可进入QQ群了解使用方式）
2.方块式地图文件格式为“.tmx”，资源为图像格式。地图与资源图像 两者必须同时在一个目录。
3.方块地图可分层，一个地图可由多层组成，每一层可以绘画不同的图像。精灵添加到地图上后，可根据不同层次进行与地图的碰撞探测。
例：
地图1：共有 2层
1层：选择部分面积绘画成树木
2层：整块地图都绘画成地面
》添加精灵到地图上
当用户控制精灵在地图上行走时，我们获取第1层，然后通过判断 gclayercon 方法判断 精灵是否与树木碰撞，如果碰撞就无法向前行走。


定时器:
引擎中是禁止使用线程更新游戏界面，可使用定时器来实现界面的更新。比如：怪物的行走，指定方向坐标后，调整定时器每0.4秒运行一次，每次运行让怪物向目的移动一步，每移动一步还可以切换图像实现类似行走的样子。
定时器是一个触发器，设定好时间后，不断的触发。如不需要使用的定时器，请即时移除它。


怪物智能:
怪物智能最考验算法了，通过随机来获取怪物的参数，然后使用定时器去更新怪物的行为，这里通过一个简单例子来说明：

[获得怪物上下左右的定向移动]
获得X范围（0至20）的随机数，然后再减去10；最终值= -10至10
获得Y范围（0至20）的随机数，然后再减去10；最终值= -10至10

》得到了随机行走的路线，并且速度也是随机的，实现了上下左右的定向行走。

当怪物撞墙或探测到碰撞后，重新随机获取一次定向行走；

这样会不会觉得怪物傻傻的撞墙才会改变路线，我们还可以增加一个（0至10）的随机值，每次定时器触发都重新获取。
如果这个随机值当=5 时，我们就让怪物 重新随机获取一次定向行走； 这样一来怪物就增加了随机性了

再增加一个随机数，怪物是不是可以随机发子弹了呢？
获取主角的定点坐标， 获取怪物的定点坐标； 如果判断两者离得很近时，是不是可以让怪物发动攻击呢？


碰撞:
通常精灵与精灵的碰撞、精灵与地图的碰撞。碰撞探测游戏中会大量应用，可通过相关代码进行演练。



《作者：date》
qq:1208666947
========
持续更新中...]]></description>
    </item>
        <item>
        <title><![CDATA[iApp教程(手册)]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/entry/333398]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Fri, 13 Mar 2015 14:34:04 +0800]]></pubDate>
        <description><![CDATA[========
《裕语言》速成开发手册

《裕语言》是一基于java的扩展性脚本语言，丰富的类库定置简单快速开发你的应用程序，让开发过程变得娱乐化大众化。《裕语言》是由游改乐计算编程工程师 黄裕先生 定制以及实现原型代码，其代码简单方便的编写体验是一大亮点，目前还会有更多强大的功能完善中。iApp是基于裕语言平台上运行的应用程序，全面想公众开放开放平台，任何有兴趣的人都可以参与开放设计自己的程序。


iApp相关QQ交流群：
iApp开发交流（1） 239547050
iApp开发交流（2） 103540883
iApp开发交流（3） 216954373
iApp开发交流（4） 334267540
iApp官方游戏开发群 375679257
iApp深度技术交流群 ********（大神可联系群管理加入）


【s 变量】
用法：
申明变量
//可以赋数值
s a = 123
//可以赋字符串
s a = &quot;123&quot;
//可以副其他变量
s b = a

说明：
变量类似一个箱子，你可以把数据储存在里面，等需要的时候就取出来使用，可以改变它装你想要装的数据。裕语言中的变量是可以根据赋值，而自动转换的，所有无需申明数据类型。

提示：
变量的定义规范， 以 “s ”开头。 然后加上自己自定义的变量名，比如“abc、 nihao、sfw123、www_zzw”变量不允许全部为数字，不允许掺杂符号，请不要使用太长的变量名，不推荐使用中文作为变量名。

空值：
如果访问一个没有声明的变量，将返回“null”空值类型，这个不对等于字符的 'null'。
判断是否空值的例子:(这里我们不知道变量“abc”是否空值)
f(abc == null)
{
	syso(&quot;是null&quot;)
}

【.或// 注释语句】
用法
.这个是变量“a”它的值等于“1”
s a = 1
//这个是变量“b”它的值等于“2”
s b = 2

说明：
注释语句符号可以用“.” 也可以用“//”，以注释符号开头的正行，将会被代码执行器无视。通常用于给自己标示代码的含义

提示：
不支持代码尾部使用注释语句，注释行必须开头为注释符，举错误的例：

s a = 1 //这个是变量“a”它的值等于“1”
//这个是变量“b”它的值等于“2” s b = 2

【syso 打印】
用法：
syso(&quot;1314&quot;)
可以打印出数据，代码同等于 System.out.println(&quot;1314&quot;)，可以在测试时菜单，选择 syso日志查看打印数据。

【f 判断语句】
用法：
s a = 1
s b = 1
f(a == b)
{
	syso(&quot;等于&quot;)
}
else
{
	syso(&quot;不等于&quot;)
}

s a = &quot;nimei&quot;
s b = &quot;nimei&quot;
f(a == b)
{
	syso(&quot;等于&quot;)
}
else
{
	syso(&quot;不等于&quot;)
}

s a = 1
s b = 2
f(!a == b)
{
	syso(&quot;等于&quot;)
}
else
{
	syso(&quot;不等于&quot;)
}

s a = 1
s b = 2
s c = 3
f(a &lt; b &amp;&amp; b &lt; c)
{
	syso(&quot;等于&quot;)
}
else
{
	syso(&quot;不等于&quot;)
}

s a = 1
s b = 2
s c = 2
f(a == b || b == c)
{
	syso(&quot;等于&quot;)
}
else
{
	syso(&quot;不等于&quot;)
}

说明：
条件判断语句，用于两个值的比较，常用于判断值是否对等与数值的大小，判断数据需要同类型数据对比。表达式返回的“是”，那么将执行 { 代码 } 里面的代码。“否”将执行else后面的代码（不支持运算表达式，例：a+b=2）

支持运算符（返回 是 与 否）：
== 是否对等
!= 是否不等于
&gt;= 是否大于或等于
&lt;= 是否小于或等于
&gt; 是否大于
&lt; 是否小于
?* 字符串开通是否相同
*? 字符串结尾是否相同
? 字符串是否被包含
上面三个举例：
s a = &quot;abcdef&quot;
f(a ?* &quot;abc&quot;) 返回“是”
f(a *? &quot;def&quot;) 返回“是”
f(a ? &quot;cde&quot;) 返回“是”

支持逻辑运算符：
|| 或者
&amp;&amp; 并且
! 反意

【w 循环】
用法：
//这将循环99次
s a = 99
w(a &gt; 0)
{
syso(a)
s(a - 1, a)
}

说明：
条件循环语句，比较值的变化，然后进行循环执行 { 代码 } 里面的代码。当条件为“否”的时候会停止循环，条件“是”的话，将一直循环执行。
支持运算符（返回 是 与 否）：（跟 f 语句 一样，请参考）

【for 循环】
用法：
for(1; 20)
{
	syso(&quot;循环20次&quot;)
}

s a = 1
s b = 10
for(a; b)
{
	syso(&quot;循环10次&quot;)
}

说明：
参数可以给予另个参数，一个为初始循环的值，一个是最大循环值。

【t 新线程】
用法：
t()
{
	syso(&quot;新线程里执行代码&quot;)
}

说明：
启用新线程，去执行一些需要执行很久的代码。比如把下载文件，获取网页，大量的文件操作，可以放入新线里执行。这里线程的概念，启用新的线程帮你处理代码，这样不会影响到主线程。

【tw 提示】
用法：
tw(&quot;你好&quot;)

说明：
用于提醒用户，界面显示时长大约为 2秒钟。弹出代码中的文字，来提醒用户。

【fd 删除文件】
用法：(将删除SD卡根目录的abc.zip文件)
s a = &quot;abc.zip&quot;
fd(a, b)
tw(b)

说明：
用于删除指定的文件，是否成功返回字符：“true”或 “false”

提示：同时将创建变量“b”，作为记录返回的值。（通用于下面的）

【fe 文件是否存在】
用法：(将判断SD卡根目录的abc.zip文件是否存在)
s a = &quot;abc.zip&quot;
fe(a, b)
tw(b)

说明：
用于判断指定的文件存在，是否存在返回字符：“true”或 “false”

【fs 文件大小】
用法：(将获取SD卡根目录的abc.zip文件占用的大小)
s a = &quot;abc.zip&quot;
fs(a, b)
tw(b)

说明：
用于判断指定的文件存在，是否存在返回数值单位(字节)，若获取失败将返回 “-1”。
转换为KB：
s a = &quot;abc.zip&quot;
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 = &quot;abc.txt&quot;
fr(a, b)
tw(b)

s a = &quot;abc.txt&quot;
s b = &quot;utf-8&quot;
fr(a, b, c)
tw(c)

说明：
用于读取文本文件的数据内容。

【fra 读取文本】
用法：(将读取安装包内assets文件夹内的abc.txt文件里面的内容)
s a = &quot;abc.txt&quot;
fra(a, b)
tw(b)

s a = &quot;abc.txt&quot;
s b = &quot;utf-8&quot;
fra(a, b, c)
tw(c)

说明：
用于读取文本文件的数据内容。

【fw 写入文本】
用法：(将文本数据写入至SD卡根目录的abc.txt文件里面)
s a = &quot;abc.txt&quot;
s b = &quot;我是一个txt文件的内容&quot;
fw(a, b)

s a = &quot;abc.txt&quot;
s b = &quot;我是一个txt文件的内容&quot;
s c = &quot;utf-8&quot;
fw(a, b, c)

【fc 复制文件】
用法：（在SD卡根目录abc.txt文件拷贝一个新的副本至abc2.txt）
s a = &quot;abc.txt&quot;
s b = &quot;abc2.txt&quot;
fc(a, b, c)
tw(c)

说明：
用于复制文件，创建一个新的副本文件。是否成功返回字符：“true”或 “false”

【fl 文件列表】
用法：（获取一个目录的文件列表）
s a = &quot;dir&quot;
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 = &quot;abc.txt&quot;
s b = &quot;abc3.txt&quot;
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 = &quot;abc.apk&quot;
s b = &quot;AndroidManifest.xml&quot;
s c = &quot;AndroidManifest2.xml&quot;
fuz(a, b, c, d)
tw(d)

说明：
通过上面代码可以实现压缩包解压部分的文件，并返回赋值至变量“d”解压文件的数量

【fuzs 解压整个zip】
用法：(将根目录文件abc.apk压缩包解压至根目录文件夹abcdir，会自动创建)
s a = &quot;abc.apk&quot;
s b = &quot;abcdir&quot;
fuzs(a, b, c)
tw(c)

说明：
通过上面代码将解压整个压缩包至指定文件，并赋值至变量“c”，是否成功返回字符：“true”或 “false”

【fo 打开文件】
用法：（将根目录打开安装abc.apk文件）
s a = &quot;abc.apk&quot;
fo(a)

说明：
可以调用系统工具打开不同的文件。

【s+-*/% 运算方式】
用法：
s a = 2

//加法例子赋值a=4
s+(2, a)
//减法例子赋值a=3
s-(5, a)
//乘法例子赋值a=6
s*(3, a)
//除法例子赋值a=4
s/(8, a)
//求余例子赋值a=2
s%(5, a)

//其他用法

//加法例子赋值a=7
s+(2, 5, a)

//乘法例子赋值b=8
s*(4, a, &quot;true&quot;, b)


说明：
此方法的效率高于 s计算表达式、sb计算表达式。 在循环数据运行时，是受到推荐的用法。

【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位小数。

【sb 计算表达式】
说明：
功能跟上面的一样，但这个兼容错误。并且支持负数计算。

【sb2 计算表达式】
说明：
功能跟上面的一样，但这个兼容错误。并且支持负数计算。返回的赋值变量含有小数。


【ss 变量相加】
用法：
s a = &quot;123&quot;
s b = &quot;789&quot;
ss(a + &quot;456&quot; + b, c)
//将提示：123456789
tw(c)

说明：
将字符串数据相连，并赋值至变量“c”。

【sr 替换字符】
用法：
s a = &quot;123456789&quot;
s b = &quot;456&quot;
s c = &quot;.&quot;
sr(a, b, c, d)
//将提示：123.789
tw(d)

说明：
用于替换字符

【sj 截取字符】
用法：
s a = &quot;123456789&quot;
s b = &quot;34&quot;
s c = &quot;8&quot;
sj(a, b, c, d)
//将提示：567
tw(d)

说明：
用于截取数据部分字符

【sl 数据数组】
用法：
s a = &quot;12;12;12;12;12&quot;
s b = &quot;;&quot;
sl(a, b, c)

for(d; c)
{
//将打印5次：12
	syso(d)
}

说明：
将把变量“a”的字符串，切割成一个数组，以字符“.”为分割字符。并用循环顺序打印出数据。

【siof 获取字符位置】
用法：
s a = &quot;123456789&quot;
s b = &quot;3&quot;
s c = 0
siof(a, b, c, d)
//将提示：2
tw(d)

说明：
从前面向后面进行匹配。字符位置以0计算，若无为每月找到将返回 -1

【slof 获取字符位置】
用法：
s a = &quot;123456789&quot;
s b = &quot;4&quot;
s c = 8
slof(a, b, c, d)
//将提示：3
tw(d)

说明：
从后面向前面进行匹配。字符位置以0计算，若无为每月找到将返回 -1

【ssg 截取字符】
用法：
s a = &quot;abcdefghijk&quot;
ssg(a, 2, 6, b)
//将提示：cdef
tw(b)

说明：
根据字符的位置进行截取字符，若失败将变量“b”赋值 null

【slg 获取字符长度】
用法：
s a = &quot;123456789&quot;
slg(a, b)
//将提示：9
tw(b)

说明：
顾名思义。失败变量“b”将赋值 -1

【strim 去除头尾空格】
用法：
s a = &quot;   123456789 &quot;
strim(a, b)
//将提示:123456789
tw(b)

说明：
常用于去除后进行判断头尾字符。

【slower 转换为小写】
用法：
s a = &quot;AiufSUscN&quot;
slower(a, b)
//将提示:aiufsuscn
tw(b)

说明：
常用于转换为小写后进行判断。

【supper 转换为大写】
用法：
s a = &quot;AiufSUscN&quot;
supper(a, b)
//将提示:AIUFSUSCN
tw(b)

说明：
常用于转换为大写后进行判断。

【stop 暂停代码】
用法：
tw(&quot;1&quot;)
stop(1000)
tw(&quot;2&quot;)
stop(1000)
tw(&quot;3&quot;)
stop(1000)
tw(&quot;4&quot;)

说明：
每次执行 stop(1000) 将暂停1秒后，再执行下面代码。单位为毫秒：1000毫秒 = 1秒

【hs 获取网页】
用法：
t()
{
s a = &quot;http://wap.baidu.com/&quot;
hs(a, null, null, b)
tw(b)
}

2，提交post数据:
t()
{
s a = &quot;http://wap.baidu.com/&quot;
hs(a, &quot;title=你好&amp;text=你好吗？&quot;, &quot;utf-8&quot;, b)
tw(b)
}

说明：
这里先开了一个线程，然后在线程里执行获取网页源码的工作，开线程是担心有些主线程界面。

【hd 下载文件】
用法：（下载文件至SD卡根目录 abc.apk）
t()
{
s a = &quot;http://abc.com/abc.apk&quot;
s b = &quot;abc.apk&quot;
hs(a, b, c)
tw(c)
}

说明：
开个线程，然后在里面下载一个文件。并存到SD卡。下载结果将赋值到变量“c”
返回的赋值：
0 下载成功
-1 下载失败

【hw 访问网页】
用法：
s a = &quot;http://wap.baidu.com/&quot;
hw(a)

说明：
使用内置浏览器访问网页。
可用于下载文件：
s a = &quot;http://abc.com/abc.apk&quot;
hw(a)

【ug 获取控件属性】
用法：(1为：控件ID，第二个参数为控件属性标签，然后赋值到变量)
ug(1, &quot;type&quot;, a)
ug(1, &quot;show&quot;, b)
ug(1, &quot;text&quot;, c)
ug(1, &quot;textcolor&quot;, d)
ug(1, &quot;txtsize&quot;, e)
ug(1, &quot;x&quot;, f)
ug(1, &quot;y&quot;, g)
ug(1, &quot;w&quot;, h)
ug(1, &quot;h&quot;, i)
ug(1, &quot;url&quot;, f)
ug(1, &quot;checked&quot;, g)

//可获取浏览器控件标题
ug(1, &quot;title&quot;, h)

ss(a + &quot;;&quot; + b + &quot;;&quot; + c + &quot;;&quot; + d + &quot;;&quot; + e + &quot;;&quot; + f + &quot;;&quot; + g + &quot;;&quot; + h + &quot;;&quot; + i, a)
tw(a)

说明：
根据输入来返回不同的控件数据。注意：有些控件没有指定属性，将返回null。下面有属性介绍，可参考。

【us 设置控件属性】
用法：(1为：控件ID，第二个参数为控件属性标签，第三个是需要赋值的数据或变量)

控件状态：0为可视，8为隐藏
us(1, &quot;show&quot;, 0)

//控件文本：你好
us(1, &quot;text&quot;, &quot;你好&quot;)

//字体颜色：黑色
us(1, &quot;textcolor&quot;, -16777216)

//字体大小：12dip
us(1, &quot;txtsize&quot;, 12)

//编辑框设置密码模式：true 或 false
us(1, &quot;password&quot;, &quot;true&quot;)

//编辑框为空默认显示的字符
us(1, &quot;hint&quot;, &quot;这里输入&quot;)

//文本形态（如：居中,居右...）适用于编辑框控件，文本控件
说明：TOP:48；BOTTOM:80；RIGHT:5；LEFT:3；....
us(1, &quot;gravity&quot;, 48)

//设置图片拉伸：（CENTER、CENTER_CROP、CENTER_INSIDE、FIT_CENTER、FIT_END、FIT_START、FIT_XY、MATRIX）
us(1, &quot;scaletype&quot;, &quot;FIT_XY&quot;)

//设置图标：根据系统图标id
us(1, &quot;imgrid&quot;, 17301567)

//设置图标：根据SD卡图片位置
us(1, &quot;sdf&quot;, &quot;abc.png&quot;)

//设置图标：根据用户图标位置
us(1, &quot;af&quot;, &quot;abc.png&quot;)

//设置图标：根据图像变量指定图片
us(1, &quot;bf&quot;, b)

//设置背景颜色：-1为白色，0为透明
us(1, &quot;background&quot;, -1)

//设置背景透明度：0至255，越小越透明
us(1, &quot;backgroundalpha&quot;, 100)

//设置图片资源透明度：0至255，越小越透明
us(1, &quot;alpha&quot;, 100)

//设置浏览器控件访问
us(1, &quot;url&quot;, &quot;http://wap.baidu.com&quot;)

//设置多选控件选中状态
us(1, &quot;checked&quot;, &quot;true&quot;)

//设置控件x位置坐标
us(1, &quot;x&quot;, 60)

//设置控件y位置坐标
us(1, &quot;y&quot;, 60)

//设置控件尺寸宽
us(1, &quot;w&quot;, 50)

//设置控件尺寸高
us(1, &quot;h&quot;, 50)

【uigo 跳转界面】
用法：（输入界面文件名，跳转指定的界面）
uigo(&quot;abc.iyu&quot;)

说明：
可以界面之间的转换，扩展新的界面。

【utw 弹出界面】
用法：（在原有的界面弹出界面）
s a = &quot;界面标题&quot;
s b = &quot;界面内容&quot;
s c = &quot;确定&quot;
s d = &quot;取消&quot;
utw(a, b, c, d)
{
syso(&quot;点击了确定&quot;)
}
else
{
syso(&quot;点击了取消&quot;)
}

说明：
常用于询问用户当前的操作

【end 结束界面】
用法：
end()

说明：
调用后，将结束当前的界面。 并返回原来的界面。如果原来没有界面，将退出应用。

【sran 生产范围随机数】
用法：（生产一个 100 至 1000的随机数）
sran(100, 1000, a)
tw(a)

说明：
有时候需要利用到随机机制，可以利用这个来开发！

【fa 将安装包assets文件夹里的文件复制到SD卡】
用法：（复制安装包本身里面assets文件夹的文件）
s a = &quot;data.zip&quot;
s b = &quot;data.zip&quot;
fa(a, b, c)
tw(c)

说明：
复制安装包内assets里面的文件到SD卡上，可用于作为需要加载初始数据。返回赋值字符：true 或 false
开发的时候将文件复制到 /iApp/app/工程ID/assets/里面。然后就可以打包到 apk里了

【sgsz 指定访问数组维数】
用法：（根据序号访问数组）
s a = &quot;12;34;56;78;90&quot;
s b = &quot;;&quot;
sl(a, b, c)
sgsz(c, 2, d)
tw(d)

说明：
数组可以进行列表形式存储数据，常用于数据列表。注意的是序号是从0开始的。数组总行数如果是5，那序号最大为4

【sgszl 访问数组总行数】
用法：
s a = &quot;12;34;56;78;90&quot;
s b = &quot;;&quot;
sl(a, b, c)
sgszl(c, d)
tw(d)

说明：
可以获取到长度，更准确的访问数组

【fj 压缩文件或文件夹至zip】
用法：
s a = &quot;adc.txt&quot;
s b = &quot;abc.zip&quot;
fj(a, b, c)
tw(c)

说明：
压缩文件。返回赋值字符：true 或 false

【bfm 播放音频】
用法：
s a = &quot;abc.mp3&quot;
bfm(a)

s a = &quot;http://www.abc.com/abc.mp3&quot;
bfm(a)

s a = &quot;abc.mp3&quot;
bfm(a, b)
//播放
//bfms(b, &quot;st&quot;)
//暂停
//bfms(b, &quot;pe&quot;)
//停止
//bfms(b, &quot;sp&quot;)
//是否在播放
//bfms(b, &quot;ip&quot;, c)
//tw(c)
//一直循环播放
//bfms(b, &quot;sl&quot;, &quot;true&quot;)

说明：
可以直接访问安装包里面的音频文件，也可以访问sd卡上的。默认优先播放SD卡上的音频文件 

【html标签支持】
用法：
s a = &quot;(html)&lt;a href=&quot;http://wap.baidu.com&quot;&gt;百度&lt;/a&gt;&quot;
us(1, &quot;text&quot;, a)

说明：
文本控件，和多选框都支持！

【ula 列表添加内容】
用法：(a:列表样式，b1:项id，b2:项标题，c:赋值变量列表)
s a = &quot;t&quot;
s b1 = &quot;123&quot;
s b2 = &quot;标题&quot;
ula(a, b1; b2, c)


s a = &quot;it32&quot;
s b1 = &quot;123&quot;
s b2 = &quot;tu.png&quot;
s b3 = &quot;标题&quot;
ula(a, b1; b2; b3, c)

s a = &quot;itt&quot;
s b1 = &quot;123&quot;
s b2 = &quot;tu.png&quot;
s b3 = &quot;标题&quot;
s b4 = &quot;介绍&quot;
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 = &quot;t&quot;
s b = &quot;标题&quot;
ula(a, b, c)

s id = 4
uls(id, a, c, d)

说明：
先通过列表添加内容， 然后在把列表内容设置到列表控件上显示。点击控件后，将把选择项内容赋值到数组变量“d”，然后通过访问数组获得你想要的数据。
图标支持：SD卡上的图片，系统图标，安装包内的图标；如果你想设置安装包内的图标，那么需要自己将图标复制到工程目录：iAppapp(id)Userimg 里面，不然无法打包到安装包内。

在列表点击事件里可以利用数组变量“d”来获取你想要的数据：
sgsz(d, 0, cc3)
tw(cc3)

【usms 发送短信】
用法：
s a = &quot;10086&quot;
s b = &quot;0&quot;
usms(a, b)

或
直接发送

s a = &quot;10086&quot;
s b = &quot;0&quot;
usmsgo(a, b)
.注意:测试时只显示syso日志，不直接 发送短信，打包即可。

【ucall 拨打电话】
用法：
s a = &quot;10086&quot;
ucall(a)

或
直接拨打

s a = &quot;10086&quot;
ucallgo(a)
.注意:测试时只显示syso日志，不直接 拨出号码，打包即可。

【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 = &quot;abc&quot;
fi(a, b)
tw(b)

说明：
指定路径，判断是否为目录文件夹，返回：true 或 false

【swh 获取屏幕分辨率】
用法：
s a = &quot;w&quot;
swh(a, w)
s a = &quot;h&quot;
swh(a, h)
s a = &quot;hh&quot;
swh(a, hh)
ss(&quot;宽:&quot; + w + &quot; 高:&quot; + h, wh)
tw(wh)

【浏览器控件】
添加好之后，需要在载入事件里加入指定转向地址
用法：
us(控件ID, &quot;url&quot;, &quot;http://wap.baidu.com&quot;)

【stobm 汉子转换编码字符】
用法：（你 转换 %E4%BD%A0）
stobm(&quot;你&quot;, &quot;utf-8&quot;, b)
tw(b)

说明：
有些时候网络操作的时候，网址需要带有字符参数，就可以把这个汉字转换下。

【sutf8to 将UTF-8编码字符转换中文】
sutf8to(&quot;%E4%BD%A0&quot;, b)
tw(b)

【uycl 隐藏状态栏】
用法：
//隐藏
uycl(&quot;true&quot;)
//不隐藏
uycl(&quot;false&quot;)

说明：
隐藏手机顶部的状态栏

【ushsp 设置横屏或竖屏】
用法：
//横屏
ushsp(&quot;hp&quot;)
//竖屏
ushsp(&quot;sp&quot;)

说明：
设置屏幕的显示方式，注意的是设置后载入事件将重新执行

【fra 读取安装包assets文件夹文本】
用法：(将读取assets文件夹的abc.txt文件里面的内容)
s a = &quot;abc.txt&quot;
fra(a, b)
tw(b)

s a = &quot;abc.txt&quot;
s b = &quot;utf-8&quot;
fra(a, b, c)
tw(c)

说明：
用于读取文本文件的数据内容。

【bfv 播放视频】
用法：(播放SD卡上的视频文件)
s a = &quot;abcd.mp4&quot;
bfv(a)

说明：
此方法将全屏播放SD卡上的视频文件

【endcode 结束执行】
用法：
s a = 1
s b = 1
f(a == b)
{
tw(&quot;会提示&quot;)
//结束执行代码
endcode
}
tw(&quot;不会提示&quot;)

说明：
可用于提前结束执行代码，也可以用于模块的函数结束。

【fn 模块与函数】
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 = &quot;abc&quot;
s b = &quot;def&quot;
fn mokuai.hanshu(a, b)
fn mokuai.hanshu(a)

【esl 执行shell命令】
用法：输入命令行（多行命令可用“n”标示），输入是否获取权限，输入赋值变量
s a = &quot;adb shell&quot;
esl(a, true, bb)
sgsz(bb, 0, b)
tw(b)
sgsz(bb, 1, b)
tw(b)
sgsz(bb, 2, b)
tw(b)

说明：
执行后将赋值一个数组至 bb， 数组共3位，第一位：状态；第二位：成功信息；第三位：失败信息；

【inroot 手机是否已root】
用法：
inroot(a)
tw(a)

说明：
可判断设备是否已经root

【break 跳出循环以及代码块】
用法：
w(1 == 1)
{
syso(&quot;1&quot;)
break
syso(&quot;2&quot;)
}
f(1 == 1)
{
syso(&quot;1&quot;)
break
syso(&quot;2&quot;)
}

说明：
代码块当执行 break 语句后，将跳出。

【点击事件的状态以及坐标获取】
用法：

//设置好
s IAPP_CLICK_KG = &quot;true&quot;

//点击控件的ID
tw(IAPP_CLICK_ID)

//点击控件的状态
tw(IAPP_CLICK_STATE)

//点击控件的X坐标
tw(IAPP_CLICK_X)

//点击控件的Y坐标
tw(IAPP_CLICK_Y)


//设置触发，当值为 true 时控件按下即触发事件代码；否则按下并且释放后再触发事件代码；默认不等于 true
s IAPP_CLICK_DOWN_UP_KG = &quot;true&quot;

说明：
可实时获取点击过程的最新数据。仅限于点击 按钮；图片按钮；多项选择按钮；背景墙。可用于设计滑动效果，拖拽等！

【ftz 发送通知栏】
用法：
ftz(&quot;标题&quot;, &quot;标题&quot;, &quot;内容&quot;, &quot;http://m.baidu.com&quot;)

//执行模块代码
s mk = &quot;fn ttxs.aini(a)&quot;
ftz(&quot;标题&quot;, &quot;标题&quot;, &quot;内容&quot;, mk)

说明：
可以用于通知用户。

【uapp 打开App应用】
用法：
uapp(&quot;com.iapp&quot;, &quot;com.yougaile.MakeiApp.logoActivity&quot;, c)

或

uapp(&quot;com.iapp&quot;, &quot;&quot;, c)


说明：
上例输入 应用包名，应用启动类，赋值变量； 赋值变量返回启动结果：true 或 false

【uapplist 获取App列表】
用法：
uapplist(true, b)
sgsz(b, 1, d)
tw(d)

说明：
输入 是否包括获取系统App，返回一个列表数组 至变量 “b”，每列数据将存储一个应用的信息，并且以 “n”隔开。

其中列内容格式：
应用包名，启动类，应用标题，应用版本

【uapplistgo 获取正在运行的App列表】
用法：
uapplistgo(b)
sgsz(b, 1, d)
tw(d)

说明：
输入 返回一个列表数组 至变量 “b”，每列数据将存储一个应用的信息，并且以 “n”隔开。

其中列内容格式：
应用包名，pid, uid

【ucapp 结束正在运行的应用】
用法：
ucapp(&quot;com.iapp&quot;)

说明：
输入正在运行的应用包名

【uninapp 卸载应用】
用法：
uninapp(&quot;com.iapp&quot;)

说明：
输入应用包名

【uwifilist 获取wifi列表】
用法：
uwifilist(b)
sgsz(b, 0, d)
tw(d)

说明：
输入 一个赋值变量， 返回一个列表数组 至变量 “b”，每列数据将存储一个应用的信息，并且以 “n”隔开。

其中列内容格式：
信号强度，加密类型，wifi名

注意：
信号强度：值越小，信号就越好。

【uwifigo 连接wifi】
用法：
uwifigo(&quot;wifi名&quot;, &quot;123123&quot;, &quot;WPA&quot;)
.uwifigo(&quot;wifi名&quot;, &quot;123123&quot;, &quot;WEP&quot;)

或

.uwifigo(&quot;wifi名&quot;, &quot;123123n321321n1314520&quot;, &quot;WPA&quot;)
uwifigo(&quot;wifi名&quot;, &quot;123123n321321n1314520&quot;, &quot;WEP&quot;)

说明：
输入 wifi名，连接密码，加密方式。支持输入多个密码，将顺序进行验证，多密码请用“n”隔开。

【ucwifi 强制断开wifi】
用法：
ucwifi()


【uiswifi 获取是否已经连接wifi】
用法：
uiswifi(a)
tw(a)

说明：
返回 true 或 false

【ukgwifi 开关wifi】
用法：
ukgwifi(true)
或
ukgwifi(false)

说明：
输入 是与否。 可以启动wifi 与 关闭wifi功能。

【huf 上传文件】
用法：
t()
{
s a = &quot;http://abc.com/upfile.php&quot;
s b = &quot;filename=iApp我的应用.apk&amp;test=一款非常好的应用哦&quot;
s c = &quot;abc/iApp.apk&quot;
s d = &quot;utf-8&quot;
huf(a, b, c, d, e)
tw(e)
}

说明：
输入 http接口，表单内容，手机内存选择文件，接口的网页编码， 赋值变量。 返回网页内容将赋值给变量 “e”

【apksigner APK文件签名】
用法：
apksigner(&quot;1.apk&quot;, &quot;1_OK.apk&quot;, b)

//APK签名并设置签名钥匙名：testkey、shared、platform、media
apksigner(&quot;1.apk&quot;, &quot;1_OK.apk&quot;, &quot;testkey&quot;, b)

说明：
输入被签名文件目录，输入签名后文件目录，输入签名钥匙名，返回是否成功返回字符：“true”或 “false”


【nvw 创建动态控件】
用法：
//创建文本控件
nvw(&quot;textv&quot;, b)

//创建文本控件，并设置文本
nvw(&quot;textv&quot;, &quot;我是文本控件&quot;, b)

//创建文本控件，并设置文本，设置控件坐标
nvw(&quot;textv&quot;, &quot;我是文本控件&quot;, 20, 90, b)

//创建文本控件，并设置文本，设置控件坐标，并指定背景墙ID添加到其子控件（下例：3 为一个背景墙的ID）
nvw(&quot;textv&quot;, &quot;我是文本控件&quot;, 20, 90, 3, b)



//创建图片控件
nvw(&quot;imgv&quot;, b)

//创建图片控件，设置控件坐标
nvw(&quot;imgv&quot;, &quot;&quot;, 20, 90, b)

//创建图片控件，设置控件坐标，并指定背景墙ID添加到其子控件（下例：3 为一个背景墙的ID）
nvw(&quot;imgv&quot;, &quot;&quot;, 20, 90, 3, b)



//创建按钮控件
nvw(&quot;btnv&quot;, b)

//创建按钮控件，并设置文本
nvw(&quot;btnv&quot;, &quot;我是按钮控件&quot;, b)

//创建按钮控件，并设置文本，设置控件坐标
nvw(&quot;btnv&quot;, &quot;我是按钮控件&quot;, 20, 90, b)

//创建按钮控件，并设置文本，设置控件坐标，并指定背景墙ID添加到其子控件（下例：3 为一个背景墙的ID）
nvw(&quot;btnv&quot;, &quot;我是按钮控件&quot;, 20, 90, 3, b)



//创建图片按钮控件
nvw(&quot;imgbnv&quot;, b)

//创建图片按钮控件，设置控件坐标
nvw(&quot;imgbnv&quot;, &quot;&quot;, 20, 90, b)

//创建图片按钮控件，设置控件坐标，并指定背景墙ID添加到其子控件（下例：3 为一个背景墙的ID）
nvw(&quot;imgbnv&quot;, &quot;&quot;, 20, 90, 3, b)



//创建文本框控件
nvw(&quot;editv&quot;, b)

//创建文本框控件，并设置文本
nvw(&quot;editv&quot;, &quot;我是文本框控件&quot;, b)

//创建文本框控件，并设置文本，设置控件坐标
nvw(&quot;editv&quot;, &quot;我是文本框控件&quot;, 20, 90, b)

//创建文本框控件，并设置文本，设置控件坐标，并指定背景墙ID添加到其子控件（下例：3 为一个背景墙的ID）
nvw(&quot;editv&quot;, &quot;我是文本框控件&quot;, 20, 90, 3, b)



//创建多选控件
nvw(&quot;cbxv&quot;, b)

//创建多选控件，并设置文本
nvw(&quot;cbxv&quot;, &quot;我是多选控件&quot;, b)

//创建多选控件，并设置文本，设置控件坐标
nvw(&quot;cbxv&quot;, &quot;我是多选控件&quot;, 20, 90, b)

//创建多选控件，并设置文本，设置控件坐标，并指定背景墙ID添加到其子控件（下例：3 为一个背景墙的ID）
nvw(&quot;cbxv&quot;, &quot;我是多选控件&quot;, 20, 90, 3, b)


说明：
输入控件标示，输入控件内容，输入位置坐标，返回新创建的控件的ID 将赋值给变量“b”，指定ID添加子控件，只有背景墙 允许拥有子控件

注意：
线程中如需使用该方法，请使用 nvwx 可进行线程里动态创建。

【ssj 设置或修改控件事件代码】
用法：
s id = 3
ssj(id)
{
tw(&quot;ok&quot;)
}

说明：
输入控件Id，并将事件代码填写在 { 中 }，动态控件将触发该事件代码。

【uall 获取子控件】
用法：
uall(0, b)
sgsz(b, 0, d)
tw(d)

说明：
输入控件ID，返回一个列表数组 至变量 “b”，每列数据将存储一个应用的信息，并且以 “n”隔开。Id若设为 0 可获取所有顶级控件（不包括其子控件）

其中列内容格式：
控件ID，控件属性名，控件状态（0为可见/8为隐藏），控件类型

【urvw 移除子控件】
用法：
urvw(3, 8)

说明：
输入父控件ID，输入子控件ID；无返回值，将移除父控件旗下指定ID的子控件。

【sbp 图像分割】
用法：
//载入一个图像变量，并赋值到图像变量“b”
sbp(&quot;bf&quot;, a, b)

//载入一个用户图标，{裁剪图像区域（像素）：x坐标:80，y坐标:90，裁剪宽度:50，裁剪高度:60}
//并将裁剪好的赋值到图像变量“b”
sbp(&quot;af&quot;, &quot;1.png&quot;, 80, 90, 50, 60, b)

//载入一个SD卡上的图标，{裁剪图像区域（像素）：x坐标:80，y坐标:90，裁剪宽度:50，裁剪高度:60}，图像旋转图像:180度
//并将裁剪好的赋值到图像变量“b”
sbp(&quot;sdf&quot;, &quot;1.png&quot;, 80, 90, 50, 60, 180, b)

说明：
三种方式载入图像，从图像变量，从用户图标，从SD上图标；并可设置裁剪图片；可设置图像旋转； 并赋值到新的图像变量；

【bfs 保存图像】
用法：
bfs(b, &quot;1.png&quot;)

//或 压缩比例（1至100）
bfs(b, 70, &quot;1.png&quot;)

说明：
输入图像变量，输入压缩比例（1至100），输入保存图像的路径，图像将保存至该路径。

【sdeg 启动调试模式】
用法：
sdeg(&quot;true&quot;)
.sdeg(&quot;false&quot;)
.sdeg(&quot;no&quot;)

说明：
当值设为 &quot;true&quot; 时打包生成的apk文件，出现错误时将显示错误点的详细代码；设为 &quot;false&quot; 时将不会显示错误代码；该值默认为 &quot;false&quot;；当值为 &quot;no&quot; 将不会显示任何信息

【fsc 文件转换字节串】
用法：
fsc(&quot;a.txt&quot;, b)
tw(b)

说明：
输入文件路径，返回该文件的字节串。

【ssc 字符串转换字节串】
用法：
ssc(&quot;nihao&quot;, c)
tw(c)

说明：
输入字符串内容，返回该字符串的字节串。

【sfc 字节串保存至文件】
用法：
fsc(&quot;a.txt&quot;, b)
sfc(&quot;a2.txt&quot;, b)

说明：
输入文件路径，将字节串转换保存至该文件。

【tot 获取控件图标】
用法：
s id = 4
tot(id, b)

说明：
输入控件ID，返回将赋值“b”图像变量。注：此方法仅限于 图片控件，图标按钮控件。


【tzz 图像旋转】
用法：
sbp(&quot;sdf&quot;, &quot;1.png&quot;, a)
s b = 90
tzz(a, b, c)

说明：
输入被旋转图像变量，输入旋转度数（逆向旋转数为负数），返回将赋值“c”图像变量。


【tsf 图像缩放】
用法：
sbp(&quot;sdf&quot;, &quot;1.png&quot;, a)

//按照倍增缩放，值小于则为缩小，否则为放大
s b = 2
tsf(a, b, c)

//指定高度与宽度缩放
s w = 100
s h = 200
tsf(a, w, h, c)

说明：
输入被缩放图像变量，输入缩放倍数 或 指定图像高度与宽度缩放，返回将赋值“c”图像变量。


【tfz 图像反转】
用法：
sbp(&quot;sdf&quot;, &quot;1.png&quot;, a)
s b = &quot;x&quot;
tfz(a, b, c)

s b = &quot;y&quot;
tfz(a, b, c)

说明：
输入被反转图像变量，输入反转方式 x为水平 y为垂直，返回将赋值“c”图像变量。

【底层背景设置】

说明：
在设计界面，不选择控件的情况。选择属性可设置底层类型。

LinearLayout：方便控件设置全屏，支持设置界面尺寸 -1 可适用于 列表控件，浏览器控件。此底层控件界面不可滑动，高度超出界面部分将不显示。

ScrollView：此底层界面可滑动，高度超出界面任可显示在界面。但不适用于浏览器控件，以及列表控件。

【sxb 写入剪切板】
用法：
s a = &quot;nihao&quot;
sxb(a)

说明：
可用于复制到剪切板，其他应用可获取到此数据。

【shb 获取剪切板】
用法：
shb(a)
tw(a)

说明：
可获取剪切板数据，得到其他地方写入的剪切板数据。

【tcc 获取图像变量尺寸】
用法：
sbp(&quot;sdf&quot;, &quot;1.png&quot;, a)
s b = &quot;x&quot;
tcc(a, b, c)
tw(c)

s b = &quot;y&quot;
tcc(a, b, c)
tw(c)

说明：
获取图像变量的 x宽度 和 y高度。

【sjxx 获取手机信息】
用法：
sjxx(a)
sgsz(a, 0, d)
tw(d)

说明：
获取手机基本信息，将返回一个数组到赋值变量“a”，数组格式如下：

数据格式：（真实数据 n 旁边将不没有空格）

CPU型号 n CPU频率
屏幕宽度 n 屏幕高度 n 分辨率宽度 n 分辨率高度
手机IMEI号 n 手机IESI号 n 手机型号 n 手机品牌 n 手机SDK n 手机号码

【usjxm 手机休眠】
用法：
usjxm(&quot;false&quot;)

说明：
设置后手机将不休眠，不锁屏。默认为 true 需要休眠。

【ufnsui 线程更新界面】
用法：
s a = &quot;fn mokuai.hanshu(a)&quot;
ufnsui(a)

说明：
输入并执行一个模块；可用于线程里对控件的操作，需要即时获取赋值变量等操作。


=-=-=-=-=-=游戏引擎代码-=-=-=-=-=-=-=

【gdr 申明游戏】
用法：
//游戏设置与申明；输入是否显示FPS值，渲染一帧时间，将返回游戏对象到赋值变量“gdr”。
gdr(&quot;true&quot;, 0.03, gdr)
//暂停游戏
gdr(gdr, &quot;stop&quot;)
//恢复游戏
gdr(gdr, &quot;go&quot;)
//结束游戏
gdr(gdr, &quot;end&quot;)

说明：
开始制作游戏的起点工作 与 游戏的一些控制。

【gse 游戏场景】
用法：
//申明一个场景
gse(gse)

//添加景层
s hs = &quot;fn mokuai.hanshu(a)&quot;
gse(gse, hs, hs, hs, hs)

//运行场景
gse(gdr, gse)

//替换一个游戏场景，将正在运行的终止。
gse(gdr, &quot;repl&quot;, gse)

//暂停当前的游戏场景，执行另一个游戏场景
gse(gdr, &quot;push&quot;, gse)

说明：
游戏场景相关操作。

【gseset 游戏场景设置】
用法：
//申明一个场景
gse(gse)

//设置游戏场景停止当前所有动作
gseset(gse, &quot;stop&quot;)

//移除自身
gseset(gse, &quot;del&quot;)

说明：
游戏场景的一些设置


【gcppm 激活触碰事件】
用法：
gcppm(&quot;true&quot;)

说明：
设置游戏是否激活界面触碰事件，默认为 false

【gcxy 定点坐标】
用法：
//定位一个坐标，像素 100*200
gcxy(100, 200, a)

//打印一个定点坐标
gcxy(a, b)
tw(b)

说明：
定位一个点位坐标。

【gcxyadd 定点坐标相加】
用法：
gcxy(100, 200, a1)
gcxy(200, 100, a2)
gcxyadd(a1, a2, a3)

gcxy(a3, b)
tw(b)

【gcxysub 定点坐标相减】
用法：
gcxy(200, 100, a1)
gcxy(100, 200, a2)
gcxysub(a1, a2, a3)

gcxy(a3, b)
tw(b)

【gcxyget 定点坐标赋值】
用法：
gcxy(100, 200, a)
gcxyget(a, x, y)
s(&quot;X:&quot; + x + &quot; Y:&quot; + y, xy)
tw(xy)

说明：
输入定点坐标，输入赋值X值，输入赋值Y值。注意的是，这里是需要输入两个赋值变量。


【gcsize 范围大小】
用法：
//设置一个范围，像素 100*200
gcsize(100, 200, a)

//打印一个范围坐标
gcsize(a, b)
tw(b)

【gcsizeget 范围大小赋值】
用法：
gcsize(100, 200, a)

gcsizeget(a, w, h)
s(&quot;W:&quot; + w + &quot; H:&quot; + h, wh)
tw(wh)


【gcxxyy 矩形范围坐标】
用法：
//输入设置四角坐标
gcxxyy(100, 200, 300, 400, c)
//输入一个定点坐标，输入一个范围大小
gcxy(100, 200, a1)
gcsize(300, 400, b1)
gcxxyy(a1, b1, c1)


//打印一个矩形范围坐标
gcxxyy(c, b)
tw(b)

【gcxxyyget 矩形坐标赋值】
用法：
gcxxyy(100, 200, 300, 400, a)
gcxxyyget(a, x, y, xx, yy)

s(&quot;X:&quot; + x + &quot; Y:&quot; + y + &quot; XX:&quot; + xx + &quot; YY:&quot; + yy, xxyy)
tw(xxyy)


//赋值返回一个 定点坐标，一个范围大小
gcxy(100, 200, a1)
gcsize(300, 400, b1)
gcxxyy(a1, b1, c1)

//此处将赋值变量定点坐标，范围大小
gcxxyyget(c1, a2, b2)

gcxyget(a2, x, y)
gcsizeget(b2, xx, yy)
s(&quot;X:&quot; + x + &quot; Y:&quot; + y + &quot; XX:&quot; + xx + &quot; YY:&quot; + yy, xxyy)
tw(xxyy)

【gcxxyyin 矩形重叠】
用法：
gcxxyy(100, 200, 300, 400, a)
gcxxyy(200, 200, 600, 400, b)
gcxxyyin(a, b, c)
tw(c)

说明：
可用于判断两个区域范围是否重叠。赋值变量“c”值为 false 或 true

【gcmap 加载地图】
用法：
//加载用户地图文件
gcmap(&quot;a.tmx&quot;, &quot;af&quot;, map)

//加载SD卡上地图文件
gcmap(&quot;a.tmx&quot;, &quot;sdf&quot;, map)

//加载地图并设置视角
gcxy(100, 200, xy)
gcmap(&quot;a.tmx&quot;, &quot;sdf&quot;, xy, map)

//设置地图视角位置
gcxy(100, 200, xy)
gcmap(map, xy)

说明：
输入地图文件，输入加载位置，返回地图对象到赋值变量“a”

地图说明：
地图需要自己设计，建议版本（Tiled v5.3.2）设计地图相关教程，请加入此帮助文件尾部的 QQ群。

【gcmapadd 添加地图元素】
用法：
//加载一个精灵
gcs(&quot;1.png&quot;, &quot;sdf&quot;, gs)
//元素到地图界面
gcmap(&quot;a.tmx&quot;, &quot;af&quot;, map)
gcmapadd(map, gs)

//元素到地图界面，并且设置层次序
gcmapadd(map, gs, 1)

说明：
可添加精灵，动作等 到地图界面。


【gcadd 添加游戏元素】
用法：
//元素到游戏界面
gcmap(&quot;a.tmx&quot;, &quot;af&quot;, map)
gcadd(map)

//元素到游戏界面，并且设置层次序
gcmap(&quot;a.tmx&quot;, &quot;sdf&quot;, map2)
gcadd(map2, 1)

说明：
可添加游戏精灵，地图，动作等 到游戏界面。

【gcmapget 地图数据获取】
用法：
gcmap(&quot;a.tmx&quot;, &quot;af&quot;, map)

//获取地图的视角坐标，返回一个定点坐标
gcmapget(map, &quot;xy&quot;, xy)
//获取地图的目前像素大小，返回一个范围坐标
gcmapget(map, &quot;size&quot;, size)
//获取地图的原始像素大小，返回一个范围坐标
gcmapget(map, &quot;sizey&quot;, sizey)
//获取地图是否为可视，返回字符 “true”或“false”
gcmapget(map, &quot;show&quot;, show)
//获取地图是否正在运行动作，返回字符 “true”或“false”
gcmapget(map, &quot;run&quot;, run)

说明：
可获取地图数据参数，用户进行判断。

【gcmapset 地图数据设置】
用法：
gcmap(&quot;a.tmx&quot;, &quot;af&quot;, map)

//设置地图的视角坐标
gcxy(0, 0, xy)
gcmapset(map, &quot;xy&quot;, xy)
//设置地图的目前像素大小
gcsize(100, 200, size)
gcmapset(map, &quot;size&quot;, size)
//设置地图是否为可视
s show = &quot;true&quot;
gcmapset(map, &quot;show&quot;, show)
//设置地图执行动作
gcmapset(map, &quot;run&quot;, action)
//设置地图停止当前所有动作
gcmapset(map, &quot;stop&quot;)
//移除地图自身
gcmapset(map, &quot;del&quot;)

说明：
地图设置或执行相关数据。

【gclayer 获取地图层】
用法：
gcmap(&quot;a.tmx&quot;, &quot;af&quot;, map)
gclayer(map, &quot;ws&quot;, layer)

说明：
输入地图对象，层标识，赋值变量。将返回一个地图层对象。

【gclayercon 地图层碰撞】
说明：
gcmap(&quot;a.tmx&quot;, &quot;af&quot;, map)
gclayer(map, &quot;ws&quot;, layer)

//输入坐标判断
gcxy(100, 200, xy)
gclayercon(layer, xy, c)
tw(c)

//输入方块位置判断；第6行，第5个方块
gclayercon(layer, 5, 6, c2)
tw(c2)

说明：
输入地图层对象，定点坐标，赋值变量。将返回一个赋值变量，变量当变量等于“0”说明无碰撞，反之存在碰撞。

【gcimg 图像对象加载】
用法：
//载入一个图像变量
gcimg(b, &quot;bf&quot;, img)

//载入一个用户图标
gcimg(&quot;1.png&quot;, &quot;af&quot;, img)

//载入一个SD卡上的图标
gcimg(&quot;1.png&quot;, &quot;sdf&quot;, img)

说明：
输入图像路径或图像变量，输入图像来源位置，返回一个图像对象赋值变量“img”

【gcs 精灵对象加载】
用法：
//加载根据常规方式加载图像，并支持位置 bf，af，sdf
gcs(&quot;1.png&quot;, &quot;sdf&quot;, gs)

//继承上面的基础，加载精灵并设置定点坐标位置。
gcxy(100, 200, xy)
gcs(&quot;1.png&quot;, &quot;sdf&quot;, xy, gs)

//根据图像对象加载
gcimg(b, &quot;bf&quot;, img)
gcs(img, gs)

//根据图像对象加载，并设置矩形坐标选取图像范围
gcimg(b, &quot;bf&quot;, img)
gcs(img, 0, 0, 50, 60, gs)

说明：
游戏精灵是游戏的灵魂，游戏中常规会动的角色，都由精灵进行掩饰表演。

【gcsget 精灵数据获取】
用法：
gcs(&quot;1.png&quot;, &quot;sdf&quot;, gs)

//获取精灵坐标，返回一个定点坐标
gcsget(gs, &quot;xy&quot;, xy)
//获取精灵像素大小，返回一个范围坐标
gcsget(gs, &quot;size&quot;, size)
//获取精灵矩形坐标，返回一个矩形坐标
gcsget(gs, &quot;xxyy&quot;, xxyy)
//获取精灵是否为可视，返回字符 “true”或“false”
gcsget(gs, &quot;show&quot;, show)
//获取精灵是否正在运行动作，返回字符 “true”或“false”
gcsget(gs, &quot;run&quot;, run)
//获取精灵的透明度，返回数值
gcsget(gs, &quot;opacity&quot;, opacity)
//获取精灵的颜色，例如：#ffffff
gcsget(gs, &quot;color&quot;, color)
//获取精灵是否X轴反转，返回字符 “true”或“false”
gcsget(gs, &quot;flipx&quot;, flipx)
//获取精灵是否Y轴反转，返回字符 “true”或“false”
gcsget(gs, &quot;flipy&quot;, flipy)
//获取精灵是否反转，返回两个赋值变量，返回字符 “true”或“false”
gcsget(gs, &quot;flip&quot;, flipx, flipy)

//获取自我中心触碰坐标，返回以该精灵为中心与 一个定点坐标的距离。
//输入精灵对象，输入标示，输入定点坐标，返回一个定点坐标。
gcxy(100, 200, xy)
gcsget(gs, &quot;zxxy&quot;, xy, xy2)

说明：
获取精灵的相关数据。


【gcsset 精灵数据设置】
用法：
gcs(&quot;1.png&quot;, &quot;sdf&quot;, gs)

//设置精灵坐标，输入一个定点坐标
gcxy(100, 200, xy)
gcsset(gs, &quot;xy&quot;, xy)
//设置精灵像素大小，输入一个范围坐标
gcsize(300, 400, size)
gcsset(gs, &quot;size&quot;, size)
//设置精灵是否为可视，输入字符 “true”或“false”
gcsset(gs, &quot;show&quot;, &quot;true&quot;)
//设置精灵要运行动作，输入动作
gcsset(gs, &quot;run&quot;, action)
//设置精灵的透明度，输入透明数值
gcsset(gs, &quot;opacity&quot;, 180)
//设置精灵的颜色，例如：#ffffff
gcsset(gs, &quot;color&quot;, &quot;#ffffff&quot;)
//设置精灵是否X轴反转，输入字符 “true”或“false”
gcsset(gs, &quot;flipx&quot;, &quot;true&quot;)
//设置精灵是否Y轴反转，输入字符 “true”或“false”
gcsset(gs, &quot;flipy&quot;, &quot;false&quot;)
//设置精灵是否反转，输入字符 “true”或“false”
gcsset(gs, &quot;flip&quot;, &quot;true&quot;, &quot;false&quot;)

//停止所有正在运行的操作和调度
gcsset(gs, &quot;stop&quot;)
//移除精灵自身
gcsset(gs, &quot;del&quot;)


说明：
设置精灵的相关数据。

【gcsin 精灵重叠】
用法：
gcs(&quot;1.png&quot;, &quot;sdf&quot;, gs)
gcs(&quot;1.png&quot;, &quot;sdf&quot;, gs2)
gcsin(gs, gs2, c)
tw(c)

说明：
用于判断两个精灵的矩形体积区域是否重叠，可用于做精灵碰撞探测。赋值变量“c”值为 false 或 true 

【gcatn 图像序列化】
用法：
gcatn(&quot;txxlh&quot;, 0.6, ant)

说明：
申明一个图像序列化，输入序列化自定义标识，输入序列化播放时隔。返回一个赋值变量图像序列化对象。

【gcatnadd 图像序列化添加数据】
用法：
//输入图像序列化对象，输入图像对象，输入矩形坐标选取图像范围
gcimg(&quot;1.png&quot;, &quot;af&quot;, img)
gcxxyy(0, 0, 50, 60, xxyy)
gcatnadd(ant, img, xxyy)

//输入图像序列化对象，输入图像路径，输入图像加载位置，输入矩形坐标选取图像范围
gcatnadd(ant, &quot;1.png&quot;, &quot;af&quot;, xxyy)

//输入图像序列化对象，输入图像对象，输入矩形四个坐标选取图像范围
gcimg(&quot;1.png&quot;, &quot;af&quot;, img)
gcatnadd(ant, img, 0, 0, 50, 60)

//输入图像序列化对象，输入图像对象
gcimg(&quot;1.png&quot;, &quot;af&quot;, img)
gcatnadd(ant, img)


说明：
向图像序列化增加图像数据。

【gcsde 定时器】
用法：
s hs = &quot;fn mokuai.hanshu(a)&quot;
//设置一个定时器，将持续执行；输入执行代码，输入定时器自定义标识，输入每隔多久执行一次（0.6秒）
gcsde(hs, &quot;dingshiqi&quot;, 0.6)

//注销一个定时器，将停止定时执行代码。
gcsde(&quot;dingshiqi&quot;)

说明：
定时器大多用于更新游戏界面。游戏界面是不允许用线程进行更新，只可用定时器去实现界面更新。

【gcsdeset 定时器设置】
用法：
//注销所有定时器
gcsdeset(&quot;unall&quot;)

说明：
可注销所有定时器。


【gcame 动画动作】
用法：
gcatn(&quot;txxlh&quot;, 0.6, ant)
gcatnadd(ant, img, 0, 0, 50, 60)

//将图像序列化转换成动画
gcame(ant, ame)

//将图像序列化转换成动画，并且动画结束将恢复原始帧作为动画结束
gcame(ant, &quot;true&quot;, ame)

//将图像序列化转换成动画，并且动画结束将恢复原始帧作为动画结束，并且设置动画的持续时间。
gcame(ant, &quot;true&quot;, ame, &quot;2&quot;)

说明：
首先创建图像序列化，然后转换为动画动作。返回一个赋值变量“ant”作为动画动作对象


【gcsqe 队列执行动作】
用法：
gcatn(&quot;txxlh&quot;, 0.6, ant)
gcatnadd(ant, img, 0, 0, 50, 60)

gcsqe(sqe, ant, ant,........)

说明：
队列执行可将多个动作一次顺序执行，不限设置个数。返回一个赋值变量“sqe”作为队列执行对象。
注意的是必须2个动作以上。

【gcsan 同时执行动作】
用法：
gcatn(&quot;txxlh&quot;, 0.6, ant)
gcatnadd(ant, img, 0, 0, 50, 60)

gcsan(san, ant, ant,........)

说明：
同时执行可将多个动作同时执行，不限设置个数。返回一个赋值变量“san”作为同时执行对象。
注意的是必须2个动作以上。

【gccfnd 回调动作】
用法：
gcatn(&quot;txxlh&quot;, 0.6, ant)
gcatnadd(ant, img, 0, 0, 50, 60)

s hs = &quot;fn mokuai.hanshu(a)&quot;
gccfnd(hs, cfnd)
gcsqe(san, ant, ant,........, cfnd)

说明：
执行到尾部后，将执行回调代码里的 模块。
一般用于精灵动作完毕后的释放内存。（精灵例如：子弹）

【gccsft/gccsfb 缩放的动作】
用法：
//输入过程时间，输入缩放倍数，输入赋值变量“b”作为动作的对象
gccsft(2, 3, b)

//输入过程时间，输入X轴缩放倍数，输入X轴缩放倍数，输入赋值变量“b”作为动作的对象
s x = 2
s y = 4
gccsft(2, x, y, b)

//gccsfb用法与上述一致，效果区别与 gccsfb 是在原有的基础上累加。

说明：
可用于游戏精灵缩放动作。

【gccxzt/gccxzb 旋转的动作】
用法：
//输入过程时间，输入要选择的角度，输入赋值变量“b”作为动作的对象
gccxzt(2, 150, b)

//gccxzb用法与上述一致，效果区别与 gccxzb 是在原有的基础上累加。

说明：
可用于游戏精灵的旋转动作。

【gccqxt/gccqxb 倾斜的动作】
用法：
//输入过程时间，输入要选择的角度，输入赋值变量“b”作为动作的对象
gccqxt(2, 10, 10, b)

//gccqxb用法与上述一致，效果区别与 gccqxb 是在原有的基础上累加。

说明：
可用于游戏精灵的倾斜动作。

【gcctyt/gcctyb 跳跃的动作】
用法：
gcxy(100, 200, xy)
//输入过程时间，掉落的定点坐标，跳的高度，跳跃的次数，赋值变量“b”作为动作的对象
gcctyt(2, xy, 150, 2, b)

//gcctyb用法与上述一致，效果区别与 gcctyb 是在原有的基础上累加。

说明：
可用于游戏精灵的跳跃动作。

【gccydt/gccydb 移动的动作】
用法：
gcxy(100, 200, xy)
//输入过程时间，移动的定点坐标，赋值变量“b”作为动作的对象
gccydt(2, xy, b)

//gccydb用法与上述一致，效果区别与 gccydb 是在原有的基础上累加。

说明：
可用于游戏精灵的移动动作。

【gccbrt/gccbrb 塞尔曲线运动的动作】
用法：
gcxy(100, 200, xy1)
gcxy(100, 200, xy2)
gcxy(100, 200, end)
//输入过程时间，坐标1，坐标2，结束坐标，赋值变量“b”作为动作的对象
gccbrt(2, xy1, xy2, end, b)

//gccbrb用法与上述一致，效果区别与 gccbrb 是在原有的基础上累加。

说明：
可用于游戏精灵的塞尔曲线运动的动作。

【gccjbcx/gccjbxs 渐变出现/渐变消失】
用法：
//渐变出现；输入过程时间，输入赋值变量“b”作为动作的对象
gccjbcx(2, b)

//渐变消失；输入过程时间，输入赋值变量“b”作为动作的对象
gccjbxs(2, b)

说明：
可控制逐渐出现与消失的动作。

【gccscbht/gccscbhb 色彩变化的动作】
用法：
//输入过程时间，输入变化的颜色，输入赋值变量“b”作为动作的对象
gccscbht(2, &quot;#000000&quot;, b)

//gccscbhb用法与上述一致，效果区别与 gccscbhb 是在原有的基础上累加。

说明：
可用于游戏精灵的色彩变化的动作。

【gccss 闪烁的动作】
用法：
//输入过程时间，输入闪烁次数，输入赋值变量“b”作为动作的对象
gccss(2, 6, b)

说明：
可用于游戏精灵的闪烁的动作。

【gccyc 延迟的动作】
用法：
//输入过程时间，输入赋值变量“b”作为动作的对象
gccyc(2, b)

说明：
可将此动作放入 队列执行对象 中， 执行到该动作时会延迟时间，再执行下一个动作。

【gccqmxz 球面旋转】
用法：
//输入过程时间，起始半径，半径差，起始z角，旋转z角的差，起始x角，旋转x角的差
gccqmxz(2, 10, 0, 45, 180, 90, 0, b)

说明：
可用于游戏精灵的球面坐标轨迹进行旋转的动作。

【gccgs 跟随的动作】
用法：
//创建一个被跟随精灵
gcs(&quot;1.png&quot;, &quot;sdf&quot;, gs)

//动作跟随“gs”精灵；输入被跟随精灵，输入赋值变量“b”作为动作的对象
gccgs(gs, b)

//动作跟随“gs”精灵；输入被跟随精灵，输入跟随有效范围，输入赋值变量“b”作为动作的对象
gcxxyy(0, 0, 960, 320, xxyy)
gccgs(gs, xxyy, b)

说明：
跟随动作指跟随目标精灵，模仿其行动动作。

【gccftlks/gccftljs/gccftl 反弹动作】
用法：
//开始具有反弹力；输入一个移动的动作，输入赋值变量“b”作为动作的对象
gccftlks(dz, b)

//gccftljs用法与上述一致，效果区别与 gccftljs 是在尾部进行反弹。
//gccftl用法与上述一致，效果区别与 gccftl 是在开始和尾部进行反弹。

说明：
赋予与动作在指定时机进行反弹的行为。

【gcchlks/gcchljs/gcchl 回力动作】
用法：
//开始具有回力；输入一个移动的动作，输入赋值变量“b”作为动作的对象
gcchlks(dz, b)

//gcchljs用法与上述一致，效果区别与 gcchljs 是在尾部进行回力。
//gcchl用法与上述一致，效果区别与 gcchl 是在开始和尾部进行回力。

说明：
赋予与动作在指定时机进行回力的行为。（似与 后退几步再奔跑）

【gcctxks/gcctxjs/gcctx 弹性动作】
用法：
//开始具有弹性；输入一个移动的动作，输入赋值变量“b”作为动作的对象
gcctxks(dz, b)

//gcctxjs用法与上述一致，效果区别与 gcctxjs 是在尾部发挥弹性。
//gcctx用法与上述一致，效果区别与 gcctx 是在开始和尾部发挥弹性。

说明：
赋予与动作在指定时机进行反弹的行为。

【gcchmks/gcchmjs/gcchm 缓慢动作】
用法：
//开始具有缓慢效果；输入一个移动的动作，输入赋值变量“b”作为动作的对象
gcchmks(dz, b)

//gcchmjs用法与上述一致，效果区别与 gcchmjs 是在尾部发挥缓慢效果。
//gcchm用法与上述一致，效果区别与 gcchm 是在开始和尾部发挥缓慢效果。

说明：
赋予与动作在指定时机进行缓慢效果。

【gcckmks/gcckmjs/gcckm 变速动作】
用法：
//具有由慢到快效果；输入一个移动的动作，输入赋值变量“b”作为动作的对象
gcckmks(dz, b)

//gcckmjs用法与上述一致，效果区别与 gcckmjs 是由快到慢的效果。
//gcckm用法与上述一致，效果区别与 gcckm 是动作由慢到快再快到慢的效果。

说明：
赋予与动作在指定时机进行调整速度的效果。

【gccsdjb 速度加倍】
用法：
//输入指定动作，输入加速倍数，输入赋值变量“b”作为动作的对象
gccsdjb(dz, 3, b)

说明：
让目标动作运行速度加倍！

【gcccf 重复运行动作】
用法：
//输入指定动作，输入重复次数，输入赋值变量“b”作为动作的对象
gcccf(dz, 3, b)

说明：
让目标动作进行重复运动。

【gcccfyj 不停重复运行】
用法：
//输入指定动作，输入赋值变量“b”作为动作的对象
gcccfyj(dz, b)

说明：
将不停的运动目标动作。（可调用精灵停止所有动作，即可停止该重复动作）

【gccfz 反转动作】
用法：
//X轴反转精灵
gccfz(&quot;x&quot;, &quot;true&quot;, b)

//Y轴反转精灵
gccfz(&quot;y&quot;, &quot;true&quot;, b)

说明：
可用于精灵队列执行动作中处理反转动作。

【gcckj 可见动作】
用法：
//精灵设为可见
gcckj(&quot;true&quot;, b)

//精灵设为隐藏
gcckj(&quot;false&quot;, b)

说明：
可用于精灵队列执行动作中处理可见动作。

【gct 文本精灵】
用法：
//输入文本，自定义标识，字符尺寸，文本颜色，赋值变量“b”作为动作的对象
gct(&quot;我是文本&quot;, &quot;wenben1&quot;, &quot;30&quot;, &quot;#000000&quot;, b)

//带设置文本的显示文字
gcxy(100, 100, xy)
gct(&quot;我是文本&quot;, &quot;wenben1&quot;, &quot;30&quot;, &quot;#000000&quot;, xy, b)

//带设置文本的显示文字、设置文本显示的矩形范围
gcxy(100, 100, xy)
gcxxyy(100, 200, 300, 400, xxyy)
gct(&quot;我是文本&quot;, &quot;wenben1&quot;, &quot;30&quot;, &quot;#000000&quot;, xy, xxyy, b)

说明：
用于游戏中显示文本内容。

【gctget 获取文本精灵数据】
用法：
gct(&quot;我是文本&quot;, &quot;wenben1&quot;, &quot;30&quot;, &quot;#000000&quot;, gs)

//获取精灵文本，返回文本字符
gctget(gs, &quot;text&quot;, xy)
//获取精灵坐标，返回一个定点坐标
gctget(gs, &quot;xy&quot;, xy)
//获取精灵像素大小，返回一个范围坐标
gctget(gs, &quot;size&quot;, size)
//获取精灵矩形坐标，返回一个矩形坐标
gctget(gs, &quot;xxyy&quot;, xxyy)
//获取精灵是否为可视，返回字符 “true”或“false”
gctget(gs, &quot;show&quot;, show)
//获取精灵是否正在运行动作，返回字符 “true”或“false”
gctget(gs, &quot;run&quot;, run)
//获取精灵的透明度，返回数值
gctget(gs, &quot;opacity&quot;, opacity)
//获取精灵的颜色，例如：#ffffff
gctget(gs, &quot;color&quot;, color)
//获取精灵是否X轴反转，返回字符 “true”或“false”
gctget(gs, &quot;flipx&quot;, flipx)
//获取精灵是否Y轴反转，返回字符 “true”或“false”
gctget(gs, &quot;flipy&quot;, flipy)
//获取精灵图像范围，返回一个矩形坐标
gctget(gs, &quot;imgxxyy&quot;, xxyy)

说明：
文本精灵可用于游戏文本显示。

【gctset 设置文本精灵数据】
用法：

//设置精灵文本，输入文本字符
gctset(gs, &quot;text&quot;, &quot;我是文本哦&quot;)
//设置精灵坐标，输入一个定点坐标
gcxy(100, 200, xy)
gctset(gs, &quot;xy&quot;, xy)
//设置精灵像素大小，输入一个范围坐标
gcsize(300, 400, size)
gctset(gs, &quot;size&quot;, size)
//设置精灵是否为可视，输入字符 “true”或“false”
gctset(gs, &quot;show&quot;, &quot;true&quot;)
//设置精灵要运行动作，输入动作
gctset(gs, &quot;run&quot;, action)
//设置精灵的透明度，输入透明数值
gctset(gs, &quot;opacity&quot;, 180)
//设置精灵的颜色，例如：#ffffff
gctset(gs, &quot;color&quot;, &quot;#ffffff&quot;)
//设置精灵是否X轴反转，输入字符 “true”或“false”
gctset(gs, &quot;flipx&quot;, &quot;true&quot;)
//设置精灵是否Y轴反转，输入字符 “true”或“false”
gctset(gs, &quot;flipy&quot;, &quot;false&quot;)
//设置精灵图像对象，输入一个图像对象
gctset(gs, &quot;img&quot;, img)
//设置精灵图像范围，输入一个矩形坐标
gctset(gs, &quot;imgxxyy&quot;, xxyy)

//停止所有正在运行的操作和调度
gctset(gs, &quot;stop&quot;)
//移除精灵自身
gctset(gs, &quot;del&quot;)

【gcyfgdh 分割动画】
用法：
gcimg(&quot;1.png&quot;, &quot;sdf&quot;, img)

//输入图像标示名，被序列化图像，动画时间，单个图像宽度，单个图像高度，每行多少个图像，总共多少行图像，总共图像数量，赋值“b”变量为图像序列化对象（gcatn）
gcyfgdh(&quot;name&quot;, img, 0.6, 124, 80, 3, 1, 3, b)

//输入图像标示名，被序列化图像，动画时间，偏移的X坐标，偏移的Y坐标，单个图像宽度，单个图像高度，每行多少个图像，总共多少行图像，总共图像数量，赋值“b”变量为图像序列化对象（gcatn）
gcyfgdh(&quot;name&quot;, img, 0.6, 80, 60, 124, 80, 3, 1, 3, b)

说明：
从一个图像顺序的分割动画，前提是将动画的所有图像都该图像上。

【gcyxnyg 虚拟摇杆】
用法：
gcxy(100, 100, xy)
//输入代码指令，输入自定义标识，输入定点坐标，赋值摇杆的底座的精灵，赋值摇杆的精灵
gcyxnyg(&quot;yaogan1&quot;, &quot;wdxnyg&quot;, xy, handlebase, handle)

说明：
这是一个创建虚拟摇杆的内置代码，他的功能就是创建并显示出虚拟摇杆，并赋值好精灵。
摇杆底座：（100*100像素）
摇杆：（50*50像素）

【gcyxnan 虚拟按钮】
用法：
gcxy(750, 80, xy)
//输入代码指令，输入自定义标识，输入定点坐标，输入显示字符，输入字符颜色，赋值按钮的精灵
gcyxnan(&quot;anniu1&quot;, &quot;wdxnan&quot;, xy, &quot;   A&quot;, &quot;#64FFFFFF&quot;, pushbutton)

说明：
这是一个创建虚拟按钮的内置代码，他的功能就是创建并显示出虚拟按钮（80*80像素），并赋值好精灵。


【gcysbkzdx 获得摇杆对象】
用法：
gcmap(&quot;a.tmx&quot;, &quot;af&quot;, map)
gcadd(map)
gclayer(map, &quot;ws&quot;, layer)

gcs(&quot;1.png&quot;, &quot;sdf&quot;, gs)
gcxy(100, 200, xy)
gcsset(gs, &quot;xy&quot;, xy)
gcmapadd(map, gs)

gcxy(100, 100, xy)
gcyxnyg(&quot;yaogan1&quot;, &quot;wdxnyg&quot;, xy, handlebase, handle)

gcxy(200, 500, srxy)

//输入摇杆精灵,摇杆底座精灵,主角精灵,地图障碍层,用户触碰定点坐标,移动速度,赋值“b”定位坐标
gcysbkzdx(handlebase,handle,gs,layer,srxy,20,b)


//输入摇杆精灵,摇杆底座精灵,主角精灵,用户触碰定点坐标,移动速度,赋
值“b”定位坐标
gcysbkzdx(handlebase,handle,gs,srxy,20,b)

说明：
可控制主角精灵移动，并设置障碍地图层。如果无法移动赋值“b”将为 null

【slt 动态数组】
用法：
//申明一个动态数组
slt(list)

//移除清空所有项
slt(list, &quot;clear&quot;)

//获取0维项的数据，数组维数起点都为 0
slt(list, 0, b)

说明：
申明和设置动态数组。

【sltget 获取动态数组数据】
用法：
slt(list)

//获取总共有多少项数据，赋值返回一个 数值
sltget(list, &quot;size&quot;, b)

//将动态数组 转换成 数组，赋值返回一个 数组
sltget(list, &quot;array&quot;, b)

//动态数组是否包含该数据，赋值返回 true 或 false
s a = &quot;数据&quot;
sltget(list, &quot;?&quot;, a, b)

//动态数组从头开始检查是否包含该数据，赋值返回数据位置序号或 不存在返回 -1
s a = &quot;数据&quot;
sltget(list, &quot;siof&quot;, a, b)

//动态数组从尾开始检查是否包含该数据，赋值返回数据位置序号或 不存在返回 -1
s a = &quot;数据&quot;
sltget(list, &quot;slof&quot;, a, b)

说明：
获取动态数组相关数据。

【sltset 设置动态数组数据】
用法：
slt(list)

//添加数据到动态数组
s a = &quot;数据&quot;
sltset(list, &quot;add&quot;, a)

//从动态数组删除 0维项的数据，输入的是一个数据的序号
sltset(list, &quot;deli&quot;, 0)

//从动态数组删除数据，输入的是一个数据本身
s a = &quot;数据&quot;
sltset(list, &quot;dels&quot;, a)

//添加数据到动态数组，并设定插队的序号，输入要插队的维数序号
s a = &quot;数据&quot;
sltset(list, &quot;add&quot;, 0, a)

//修改动态数组指定序号的数据，输入要修改的维数序号，修改该项的数据内容
s a = &quot;数据&quot;
sltset(list, &quot;set&quot;, 0, a)

说明：
设置动态数组相关数据。

【触碰屏幕事件与系统变量】
解说：
游戏场景设置激活触碰事件后；

当用户开始触碰屏幕时，系统赋值变量：
.本次触碰的ID
aGid
.触碰的定点坐标位置
aGxy

当用户在屏幕滑动时，系统赋值变量：
.本次触碰的ID
bGid
.触碰的定点坐标位置
bGxy

当用户结束触碰屏幕时，系统赋值变量：
.本次触碰的ID
cGid
.最后触碰的定点坐标位置
cGxy

说明：
触碰的ID，可用于判断多点触控；例如，你两只手同时都触碰屏幕，在触发事件的同时会产生不同的触碰ID
通常用于，判断是否多点触控
========
持续]]></description>
    </item>
        <item>
        <title><![CDATA[iapp教程v1.5.5.apk]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/file/331888]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Wed, 04 Mar 2015 03:12:29 +0800]]></pubDate>
        <description><![CDATA[File Size: 0.38 MiBOrignal Name: iApp教程Version: 1.5.5ID：com.iapp.mao&nbsp;|&nbsp;<a href="https://qiulai.wodemo.net/browse/331888">Browse</a>&nbsp;|&nbsp;<a href="https://qiulai.wodemo.net/meta/331888">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[iTX 工具箱v2.0.8.apk]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/file/314696]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Sun, 26 Oct 2014 03:37:29 +0800]]></pubDate>
        <description><![CDATA[File Size: 1.93 MiBOrignal Name: iTX ToolboxVersion: 2.0.8.0ID：org.theitxproject.itxtoolbox&nbsp;|&nbsp;<a href="https://qiulai.wodemo.net/browse/314696">Browse</a>&nbsp;|&nbsp;<a href="https://qiulai.wodemo.net/meta/314696">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[HD浏览器v3.95.apk]]></title>
		<link><![CDATA[https://qiulai.wodemo.net/file/314693]]></link>
		<dc:creator><![CDATA[qiulai (@qiulai)]]></dc:creator>
		<pubDate><![CDATA[Sun, 26 Oct 2014 03:32:11 +0800]]></pubDate>
        <description><![CDATA[File Size: 206.89 KiBOrignal Name:     HD浏览器      Version: 3.95000ID：com.iapp.iappclientgsdg54s56e8c2er.apk&nbsp;|&nbsp;<a href="https://qiulai.wodemo.net/browse/314693">Browse</a>&nbsp;|&nbsp;<a href="https://qiulai.wodemo.net/meta/314693">Meta</a>]]></description>
    </item>
    </channel>
</rss>
