<?xml version="1.0" encoding="utf-8"?>
<api>
	<Platform name="android">
		<dll name="插件">
			<namespace name="XM">
				<function name="XM.KeepScreen">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.KeepScreen()
						函数说明:|
							对图色功能数据进行刷新
							返回值:无
						调用例子:|require("XM")
							XM.KeepScreen()
							local color1=getcolor(200,500)//中间这段图色操作的代码,数据不会刷新
							sleep(2000)
							local color2=getcolor(200,500)//中间这段图色操作的代码,数据不会刷新
							if color1==color2 then
							messagebox("图色数据没有刷新")
							end
					</example>
				</function>
				
			<function name="XM.SetScale">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.SetScale(mW,mH)
						函数说明:|
							设置当前脚本开发环境的屏幕分辩率,使脚本适配不同分辩率的设备,影响函数XM.Swipe、XM.RndTap、XM.FindAllPosition、XM.FindDev、XM.Find、XM.LongTouch
							mw : 脚本开发时使用的设备宽度
							mH : 脚本开发时使用的设备高度
							返回值:无
						调用例子:|require("XM")
							XM.SetScale(720,1280) //脚本开发时使用了720x1280分辨率
							
					</example>
				</function>
			<function name="XM.AddTable"><pram>(字符串)</pram>
					<example>
						函数原型:|XM.AddTable(tbl)
						函数说明:|
							添加一个颜色组到插件中,方便其他函数进行找色
							返回值: 无
						调用例子:|
							Tab = {}
							Tab["主线"] = {
							      {"主线按钮",0.8,547,142,619,643,"E2DFD5-111111","0|4|65816E-111111,0|13|72917B-111111,-8|21|73917C-111111,23|13|252E33-111111,-171|95|FCFBF8-111111,-163|118|1D2629-111111,-172|118|D6BD91-111111,-183|119|1C2528-111111,-171|110|E5D3B5-111111"}
							      ,{"支线按钮",0.8,389,152,429,624 ,"FDFDFB-111111","0|5|1C2528-111111,0|9|1E282B-111111,-3|9|1B2427-111111,3|7|1B2427-111111,7|8|F3EBDC-111111,4|2|FBF9F5-111111,-8|5|F8F3EA-111111,-5|14|E8DABF-111111"}
							}
							function floatwinrun()
							    require("XM")
							    XM.AddTable(Tab)
							    XM.SetTableID("主线")
							    while true do
							        XM.KeepScreen()
							        if XM.Find("主线按钮",true) then
							        end
							    end
							end
							
							
							
							
					</example>
				</function>
			<function name="XM.SetTableID"><pram>(字符串)</pram>
					<example>
						函数原型:|XM.SetTableID(str)
						函数说明:|
							设置取色库名字
							返回值:无
						调用例子:|
							Tab = {}
							Tab["主线"] = {
							      {"主线按钮",0.8,547,142,619,643,"E2DFD5-111111","0|4|65816E-111111,0|13|72917B-111111,-8|21|73917C-111111,23|13|252E33-111111,-171|95|FCFBF8-111111,-163|118|1D2629-111111,-172|118|D6BD91-111111,-183|119|1C2528-111111,-171|110|E5D3B5-111111"}
							      ,{"支线按钮",0.8,389,152,429,624 ,"FDFDFB-111111","0|5|1C2528-111111,0|9|1E282B-111111,-3|9|1B2427-111111,3|7|1B2427-111111,7|8|F3EBDC-111111,4|2|FBF9F5-111111,-8|5|F8F3EA-111111,-5|14|E8DABF-111111"}
							}
							function floatwinrun()
							    require("XM")
							    XM.AddTable(Tab)
							    XM.SetTableID("主线")
							    while true do
							        XM.KeepScreen()
							        if XM.Find("主线按钮",true) then
							        end
							    end
							end
							
							
							
							
					</example>
				</function>
			
			<function name="XM.Find"><pram>(字符串)</pram>
					<example>
						函数原型:|XM.Find(str[,rnd][,tap]) 
						函数说明:|
							根据指定的多点查找所有颜色坐标
							str: 色点名  string 如XM.Find(5,"主线按钮",false)  或  table如XM.Find(5,{"主线","支线按钮"},true) 
							rnd: 随机偏移值  number 默认值:5
							tap:是否点击  boolean 默认值:false
							
							返回值: 找到返回true,未找到返回false
						调用例子:|
							Tab = {}
							Tab["主线"] = {
							      {"主线按钮",0.8,547,142,619,643,"E2DFD5-111111","0|4|65816E-111111,0|13|72917B-111111,-8|21|73917C-111111,23|13|252E33-111111,-171|95|FCFBF8-111111,-163|118|1D2629-111111,-172|118|D6BD91-111111,-183|119|1C2528-111111,-171|110|E5D3B5-111111"}
							      { {"主线色点table",0.8,100,100,200,200,"E2DFD5-111111","0|4|65816E-111111,0|13|72917B-111111,-8|21|73917C-111111,23|13|252E33-111111,-171|95|FCFBF8-111111,-163|118|1D2629-111111,-172|118|D6BD91-111111,-183|119|1C2528-111111,-171|110|E5D3B5-111111"}
							        ,{"主线色点table",0.8,200,200,300,300,"E2DFD5-111111","0|4|65816E-111111,0|13|72917B-111111,-8|21|73917C-111111,23|13|252E33-111111,-171|95|FCFBF8-111111,-163|118|1D2629-111111,-172|118|D6BD91-111111,-183|119|1C2528-111111,-171|110|E5D3B5-111111"}
							      }
							 } 
							Tab["支线"] = {
							       {"支线按钮",0.8,389,152,429,624 ,"FDFDFB-111111","0|5|1C2528-111111,0|9|1E282B-111111,-3|9|1B2427-111111,3|7|1B2427-111111,7|8|F3EBDC-111111,4|2|FBF9F5-111111,-8|5|F8F3EA-111111,-5|14|E8DABF-111111"}
							}
							function floatwinrun()
							    require("XM")
							    XM.AddTable(Tab)
							    XM.SetTableID("主线")
							    while true do
							        XM.KeepScreen()
							        if XM.Find(5,"主线按钮",true) then
							        elseif XM.Find(5,{"主线","主线色点table"},true)
							        elseif XM.Find(5,{"支线","支线按钮"},true)
							        end
							    end
							end
					</example>
				</function>
				<function name="XM.ColorCardScreen">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.ColorCardScreen(id,x,y,count)
						函数说明:|
							检测某点(x,y)的颜色是否有变化,count次无变化,返回true,有变化重新计数
							id:唯一标识符
							x:坐标X
							y:坐标Y
							count:次数(超过count次无变化,条件成立)
							返回值:成立返回true,否则false
							调用例子:|	require("XM")
										while true do
											XM.KeepScreen()
											if XM.ColorCardScreen(20,200,200,5) then	--id:20 判断200,200坐标的色点是否有变化
												XM.Print("200,200坐标,超过5次色点无变化,返回true")
												break
											end
										end
    
								
					</example>
				</function>
			<function name="XM.FindDev">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.FindDev(X,Y,Str)
						函数说明:|
							根据指定的多点查找所有颜色坐标,并进行偏移点击
							X: 偏移X个坐标  number
							Y: 偏移Y个坐标  number
							Str:色点名 string
							
							返回值: 找到返回true,未找到返回false
						调用例子:|
							Tab = {}
							Tab["主线"] = {
							      {"主线按钮",0.8,547,142,619,643,"E2DFD5-111111","0|4|65816E-111111,0|13|72917B-111111,-8|21|73917C-111111,23|13|252E33-111111,-171|95|FCFBF8-111111,-163|118|1D2629-111111,-172|118|D6BD91-111111,-183|119|1C2528-111111,-171|110|E5D3B5-111111"}
							 } 
							
							function floatwinrun()
							    require("XM")
							    XM.AddTable(Tab)
							    XM.SetTableID("主线")
							    while true do
							        XM.KeepScreen()
							        if XM.FindDev(5,0,"主线按钮") then --x+5个坐标
							        end
							    end
							end
					</example>
				</function>
			<function name="XM.FindAllPosition">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.FindAllPosition(Str, distance)
						函数说明:|
							--根据色点,返回所有找到的位置  ,并对所有位置的间隔距离(distance)进行去重
							Str:色点名 string
							distance:坐标距离,每个相同色点的距离
							
							返回值: 找到返回tab = {{0,1,1},{0,1,2},{0,1,3}},未找到返回nil
						调用例子:|
							Tab = {}
							Tab["色点"] = {
							      {"白点",0.8,547,142,619,643,"E2DFD5-111111","0|4|65816E-111111,0|13|72917B-111111,-8|21|73917C-111111,23|13|252E33-111111,-171|95|FCFBF8-111111,-163|118|1D2629-111111,-172|118|D6BD91-111111,-183|119|1C2528-111111,-171|110|E5D3B5-111111"}
							 } 
							
							function floatwinrun()
							    require("XM")
							    XM.AddTable(Tab)
							    XM.SetTableID("色点")
							    while true do
							        XM.KeepScreen()
							        local value = XM.FindAllPosition("白点", 50) --每隔50个点的距离,筛选
							        XM.Print(value)
							    end
							end
					</example>
				</function>
			<function name="XM.FindNumRet">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.FindNumRet(Str)
						函数说明:|
							--获取一块区域内的指定色点数量,并返回
							Str:色点名 string
							返回值:返回色点数量
						调用例子:|	Tab = {}
									Tab["测试"] = {
										{"蓝色",0.9,453,444,524,514 ,"0077D9-000000"}
									}
									function floatwinrun()
										require("XM")
										XM.AddTable(Tab)
										XM.SetTableID("测试")
										while true do
											XM.KeepScreen()
											local value = XM.FindNumRet("蓝色")
											XM.Print(value)
											sleep(500)
										end
									end
					</example>
				</function>
			<function name="XM.FindNum">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.FindNum(Str,bool)
						函数说明:|
							--获取一块区域内,某个色点存在的数量是否达到设定的值
							Str:色点名 string
							bool:是否点击,默认false
							
							返回值: 条件达成返回true,未达成返回false
						调用例子:|Tab = {}
							Tab["色点"] = {
								{"主线色点数量",57,147,184,176 ,"FFAB46-111111",0.8,5} --{色点名,x1,y1,x2,y2,颜色点,相似度,判断的数量}
							}
							
							function floatwinrun()
							    require("XM")
							    XM.AddTable(Tab)
							    XM.SetTableID("色点")
							    while true do
							        XM.KeepScreen()
							        if XM.FindNum("主线色点数量",true) then --这块区域(57,147,184,176)的颜色("FFAB46-111111")数量&gt;= 5 时,成立,并点击区域的中心点
							        end
							    end
							end
					</example>
				</function>
			<function name="XM.Switch">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.Switch(id)
						函数说明:|
							开关函数,只返回一次true
							id:唯一标识符,不可重复
							
							返回值: 仅第一次进入返回true,其他返回false
						调用例子:|function floatwinrun()
							    require("XM")
							    while true do
							        if XM.Switch(1) then
							            traceprint("开关成立一次")
							        else  
							            traceprint("开关不成立")
							        end
							    end
							end
					</example>
				</function>
			<function name="XM.XMLogExOpen">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.XMLogExOpen()
						函数说明:|
							打开插件输出;
							调用XM.Find,XM.FindDev,XM.FindRet进行找色时,找到了什么色点,会输出色点名,坐标x,坐标y
							返回值:无
						调用例子:|Tab = {}
								Tab["主线"] = {
								{"主线按钮",0.8,186,436,298,529,"FBD8D6-000000","-5|-19|FFFFFF-000000,-18|-8|ED4236-000000,20|-23|F15142-000000,27|-10|EC4337-000000,20|4|FFFFFF-000000,18|15|E62A20-000000,8|6|FFFFFF-000000"}

								} 

								function floatwinrun()
									require("XM")
									setrotatescreen(0)
									XM.AddTable(Tab)
									XM.SetTableID("主线")
									XM.XMLogExOpen()
									while true do
										XM.KeepScreen()
										if XM.Find("主线按钮") then
										end
									end
								end 
					</example>
				</function>
			<function name="XM.OpenSwitch">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.OpenSwitch([,id])
						函数说明:|
							打开开关,将已使用过的开关重置
							id:开关标识,不填则重置所有开关
							
							返回值: 无
						调用例子:|function floatwinrun()
							    require("XM")
							    while true do
							        XM.OpenSwitch(1)	
							        if XM.Switch(1) then
							            traceprint("开关成立一次")
							        else  
							            traceprint("开关不成立")
							        end
							    end
							end
					</example>
				</function>
			<function name="XM.TimerColor">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.TimerColor(id[,t])
						函数说明:|
							定时器,每过t秒返回true,否则返回false,此定时器在找色成功时全部重置
							id:开关标识
							t:秒(s),默认值5
							
							返回值:时间达成返回true,否则返回false
						调用例子:|Tab = {}
							Tab["色点组"] = {
								{"白点",0.8,1,1,2000,2000,"FFFFFF-000000","63|11|FFFFFF-000000,21|14|FFFFFF-000000"}
							
							}
							function floatwinrun()
							    require("XM")
							    XM.AddTable(Tab)
							    XM.SetTableID("色点组")
							    while true do
									XM.KeepScreen()
							        if XM.TimerColor(1,3) then
										--3秒没找到白点,跳出循环
										break
							        elseif XM.Find("白点",true) then
							            traceprint("找到白点")
							        end
							    end
							    traceprint("结束")
							end
					</example>
				</function>
			<function name="XM.Timer"><pram>(字符串)</pram>
					<example>
						函数原型:|XM.Timer(id[,t])
						函数说明:|
							定时器,每过t秒返回true,否则返回false
							id:开关标识
							t:秒(s),默认值5
							
							返回值:时间达成返回true,否则返回false
						调用例子:| Tab["色点组"] = {
									{"白点",0.8,1,1,2000,2000,"FFFFFF-000000","63|11|FFFFFF-000000,21|14|FFFFFF-000000"}
								
								}
								function floatwinrun()
									require("XM")
									XM.AddTable(Tab)
									XM.SetTableID("色点组")
									while true do
										XM.KeepScreen()
										if XM.Timer(1,3) then	
											XM.Print("找白点")--第一次调用就返回true
											if XM.Find("白点",true) then
												traceprint("找到白点")
							                end
										end
									end
									traceprint("结束")
								end
					</example>
				</function>
			<function name="XM.TimerFirst"><pram>(字符串)</pram>
					<example>
						函数原型:|XM.TimerFirst(id[,t])
						函数说明:|
							定时器(首次调用返回true),每过t秒返回true,否则返回false
							id:开关标识
							t:秒(s),默认值5
							
							返回值:时间达成返回true,否则返回false
						调用例子:| Tab["色点组"] = {
									{"白点",0.8,1,1,2000,2000,"FFFFFF-000000","63|11|FFFFFF-000000,21|14|FFFFFF-000000"}
								
								}
								function floatwinrun()
									require("XM")
									XM.AddTable(Tab)
									XM.SetTableID("色点组")
									while true do
										XM.KeepScreen()
										if XM.TimerFirst(1,3) then	
											XM.Print("找白点")--第一次调用就返回true
											if XM.Find("白点",true) then
												traceprint("找到白点")
							                end
										end
									end
									traceprint("结束")
								end
					</example>
				</function>
			<function name="XM.TimerInit">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.TimerInit([,id])
						函数说明:|
							重置定时器,此重置只对XM.Timer函数有效
							id:开关标识,如不填则定时器全部重置
							
							返回值:无
						调用例子:|Tab = {}
							Tab["色点组"] = {
								{"白点",0.8,1,1,2000,2000,"FFFFFF-000000","63|11|FFFFFF-000000,21|14|FFFFFF-000000"}
							}
							function floatwinrun()
							    require("XM")
							    XM.AddTable(Tab)
							    XM.SetTableID("色点组")
							    while true do
									XM.KeepScreen()
							        XM.TimerInit(1)
							        if XM.Timer(1,3) then
										--定时器一直重置,无法跳出循环
										break
							        elseif XM.Find("白点",true) then
							            traceprint("找到白点")
							        else
							            traceprint("没找到白点")
							        end
							    end
							    traceprint("结束")
							end
					</example>
				</function>
			<function name="XM.TimerRet">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.TimerRet(id)
						函数说明:|
							返回定时器剩余时间(s),此函数只对XM.Timer函数有效
							id:开关标识
							
							返回值:秒(s),时间 number
						调用例子:|
							Tab = {}
							Tab["色点组"] = {
								{"白点",0.8,1,1,2000,2000,"FFFFFF-000000","63|11|FFFFFF-000000,21|14|FFFFFF-000000"}
							
							}
							
							function floatwinrun()
							    require("XM")
							    XM.AddTable(Tab)
							    XM.SetTableID("色点组")
							    while true do
									XM.KeepScreen()
							        XM.Print("定时器剩余时间:"..XM.TimerRet(1).."秒")
							        if XM.Timer(1,20) then
										break
							        elseif XM.Find("白点",true) then
							            traceprint("找到白点")
							        else
							            traceprint("没找到白点")
							        end
							    end
							    traceprint("结束")
							end
					</example>
				</function>
			<function name="XM.DateRet">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.DateRet(t)
						函数说明:|
							返回天:时:秒:分,传入一个数字,返回日期格式
							t:(s)秒
							
							返回值:日期格式 字符串 
						调用例子:|function floatwinrun()
							    require("XM")
							    local t1 = XM.DateRet(10)
							    XM.Print(t1) --输出:10秒
							    local t2 = XM.DateRet(100)
							    XM.Print(t2) --输出:1分40秒
							    local t3 = XM.DateRet(1000)
							    XM.Print(t3) --输出:16分40秒
							    local t4 = XM.DateRet(10000)
							    XM.Print(t4) --输出:2小时46分40秒
							    local t5 = XM.DateRet(44975640)
							    XM.Print(t5) --输出:520天13小时14分
							    traceprint("结束")
							end
					</example>
				</function>
			<function name="XM.ReturnDate">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.ReturnDate(t)
						函数说明:|
							返回天:时:秒:分,传入一个数字,返回日期格式
							t:(s)秒
							
							返回值:日期格式 字符串 
						调用例子:|function floatwinrun()
							    require("XM")
							    local t1 = XM.ReturnDate(10)
							    XM.Print(t1) --输出:10秒
							    local t2 = XM.ReturnDate(100)
							    XM.Print(t2) --输出:1分40秒
							    local t3 = XM.ReturnDate(1000)
							    XM.Print(t3) --输出:16分40秒
							    local t4 = XM.ReturnDate(10000)
							    XM.Print(t4) --输出:2小时46分40秒
							    local t5 = XM.ReturnDate(44975640)
							    XM.Print(t5) --输出:520天13小时14分
							    traceprint("结束")
							end
					</example>
				</function>
			<function name="XM.Msg">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.Msg(str,[,x][,y][,t])
						函数说明:|
							显示弹出框信息,此函数需要配合找色使用
							str:内容
							x:坐标轴x 默认值:1
							y:坐标轴y 默认值:1
							t:显示时间(s)毫秒 默认值:2000
							
							返回值:无
						调用例子:|function floatwinrun()
							    require("XM")
							    XM.Msg("你好啊,兄dei",1,1,5000) 
							    traceprint("结束") --脚本执行完后也会继续显示5000毫秒
								
							end
					</example>
				</function>
			<function name="XM.OcrFont">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.OcrFont(str)
						函数说明:|
							传入字库名字,色点表中字库,进行识字
							str:字库名字
						
							返回值:识别成功返回字符串,失败返回nil
						调用例子:|Tab = {}
									Tab["主线"] = {
									{"主线按钮",0.8,547,142,619,643,"E2DFD5-111111","0|4|65816E-111111,0|13|72917B-111111,-8|21|73917C-111111,23|13|252E33-111111,-171|95|FCFBF8-111111,-163|118|1D2629-111111,-172|118|D6BD91-111111,-183|119|1C2528-111111,-171|110|E5D3B5-111111"}
									--[1]:字库名字  [2]:相似度 [3]~[6]:字库识别范围 [7]:字库序号 [8]:设置字库
									,{"等级字库",0.9,57,77,277,142 ,"FFFFFF-111111",0,setdict(getrcpath("rc:levelFont.txt"),0)}

									} 
									Tab["支线"] = {
									{"支线按钮",0.8,389,152,429,624 ,"FDFDFB-111111","0|5|1C2528-111111,0|9|1E282B-111111,-3|9|1B2427-111111,3|7|1B2427-111111,7|8|F3EBDC-111111,4|2|FBF9F5-111111,-8|5|F8F3EA-111111,-5|14|E8DABF-111111"}
									}
									function floatwinrun()
										require("XM")
										setrotatescreen(1)
										XM.AddTable(Tab)
										XM.SetTableID("主线")
										XM.KeepScreen()
									   local A =  XM.OcrFont("等级字库")
									   XM.Print(A)
									end 
					</example>
				</function>
			<function name="XM.MsgClose">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.MsgClose()
						函数说明:|
							立即关闭显示的弹出框信息
							返回值:无
						调用例子:|function floatwinrun()
							    require("XM")
							    XM.Msg("你好啊,兄dei",1,) 
							    XM.MsgClose()--脚本执行到此处将立马关闭弹出信息
							    traceprint("结束")
							end
					</example>
				</function>
			<function name="XM.Print">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.Print(str)
						函数说明:|
							输出字符串,或者table表
							返回值:无
						调用例子:|function floatwinrun()
									require("XM")
									XM.Print("张三".."的朋友") --  用法一 输出:张三的朋友  '..'为连接符
									XM.Print("张三","的朋友") --用法二 输出:张三的朋友  ','为连接符
									local list = {{"张三",{26,27}},{"李四",{30,32}},{"王五",{48,50}}}	
									XM.Print(list)		--用法三 输出数组,{[1] = 张三 [2] = 李四 [3] = 王五} 
									
									--XM.Print("数组:"..list)	--注意! 输出数据请不要使用'..'连接符格式 否则会报错,如果想这样输出,请用','连接符
									XM.Print("数组:",list)
									traceprint("结束")
								end
					</example>
				</function>
			<function name="XM.RndTap">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.RndTap(X, Y[,R])
						函数说明:|
							随机点击
							X:坐标X
							Y:坐标Y
							R:随机值 默认值5
							返回值:无
						调用例子:|
							function floatwinrun()
							    require("XM")
							    XM.RndTap(10,10)
							    traceprint("结束")
							end
					</example>
				</function>
			<function name="XM.Swipe">
					<pram>(字符串)</pram>	
					<example>
						函数原型:|XM.Swipe(x1,y1,x2,y2,id,R)
						函数说明:|
							随机滑动, 模式1:滑动,模式2:捏合滑动,模式3:长按滑动,模式4:匀速滑动
							X1:坐标1的X轴
							Y1:坐标1的Y轴
							X2:坐标2的X轴
							Y2:坐标2的Y轴
							id:模式id 默认1
							R:随机值或时间(毫秒) 
							返回值:无
						调用例子:|function floatwinrun()
									require("XM")
									XM.Swipe(100,100,200,200,1,1)		 --模式1:从100,100 滑动到 200,200 的位置
									XM.Swipe(100,100,200,200,2,1)		 --模式2:同时按下(100,100),(200,200),滑动到中心点(150,150)
									XM.Swipe(100,100,200,200,3,2000)	 --模式3:按下100,100位置2000毫秒后,滑动到200,200
									XM.Swipe(600,600,100,600,4,2000)	 --模式4:从100,100位置滑到200,200位置需要2000毫秒的时间
									traceprint("结束")
								end
					</example>
				</function>
			<function name="XM.GetScreen"><pram>(字符串)</pram>
					<example>
						函数原型:|XM.GetScreen()
						函数说明:|
							获取当前游戏分辨率
							
							返回值:table = {w,h,dpi}//高度 宽度 dpi
						调用例子:|function floatwinrun()
							    require("XM")
							    local list = XM.GetScreen()
							    XM.Print(list)
							    traceprint("结束")
							end
					</example>
				</function>
			<function name="XM.Split"><pram>(字符串)</pram>
					<example>
						函数原型:|XM.Split(Str, cutSymbol)
						函数说明:|
							分割字符串,返回数组
							Str:需要分割的字符串
							cutSymbol:分割符
							返回值:table
						调用例子:|function floatwinrun()
							    require("XM")
								local str = "张三/李四/王五"
							    local list = XM.Split(str,"/")
							    XM.Print(list)
							    traceprint("结束")
							end
							--输出:
							--{
							--	[1] = 张三
							--	[2] = 李四
							--	[3] = 王五
							--}
					</example>
				</function>
			<function name="XM.GetTap">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.GetTap()
						函数说明:|
							获取点击位置;目前仅支持6.0以上android系统
							
							返回值:table = {x,y}
						调用例子:|function floatwinrun()
							    require("XM")
								local tapList = XM.GetTap()
							    XM.Print(tapList)
							    traceprint("结束")
							end
					</example>
				</function>
			<function name="XM.LongTouch">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.LongTouch(x,y, t)
						函数说明:|
							长按x,y坐标,t秒钟后抬起
							
							返回值:无
						调用例子:|function floatwinrun()
								require("XM")
								XM.LongTouch(100,100,2000)	--长按100,100坐标 2000毫秒后,松开
							end
					</example>
				</function>
			<function name="XM.GetScreenSimulator">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.GetScreenSimulator()
						函数说明:|
							获取当前模拟器分辨率
							返回值:table = {w,h,dpi}//高度 宽度 dpi 
						调用例子:|function floatwinrun()
							require("XM")
							local list = XM.GetScreenSimulator() --当前模拟器分辨率
							XM.Print(list)
							traceprint("结束")
							end
					</example>
				</function>
			<function name="XM.FindRet">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.FindRet(Str)
						函数说明:|
							返回找到的色点位置{100,100,"色点名"}
							Str:色点名 string 
							返回值:找到返回一个table   {x,y,colorName},未找到返回nil
						调用例子:|Tab = {}
							    Tab["主线"] = {
							    {"主线按钮",0.8,547,142,619,643,"E2DFD5-111111","0|4|65816E-111111,0|13|72917B-111111,-8|21|73917C-111111,23|13|252E33-111111,-171|95|FCFBF8-111111,-163|118|1D2629-111111,-172|118|D6BD91-111111,-183|119|1C2528-111111,-171|110|E5D3B5-111111"}
							    } 
							    
							    function floatwinrun()
							        require("XM")
							        XM.AddTable(Tab)
							        XM.SetTableID("主线")
							        while true do
							            XM.KeepScreen()
							            local tab = XM.FindRet("主线按钮")
							            if tab ~= nil then
							                XM.Print("找到"..list[3].."-位置X:"..list[1].."-Y:"..list[2])
							            end
							        end
							    end 
					</example>
				</function>
			<function name="XM.ReadFile">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.ReadFile(path[,isdel])
						函数说明:|
							读取指定目录中的文件，将内容返回
							path:指定的目录中的文件
							isdel:是否删除 默认false 不删除
							 返回值:成功返回内容string,否则 nil
							     
						调用例子:|function floatwinrun()
							    require("XM")
							    local path = getrcpath("rc:main.twin")
							    local value = XM.ReadFile(path)
							    XM.Print(value) --你UI中的内容
							end
					</example>
				</function>
			<function name="XM.WriteFile">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.WriteFile(path,content[,isCle])
						函数说明:|
							将内容写入指定目录的文件,写入成功返回true
							path:指定的目录中的文件
							content:写入的内容
							isCle:是否清除文本内容 默认false 不清除(可选参数)
							 返回值:成功返回true,否则 false
							     
						调用例子:|function floatwinrun()
							    require("XM")
							    local path = getrcpath("rc:Test.txt")
							    local value = XM.WriteFile(path,"黑松鼠学院",true)
								if value == true then
									XM.Print("写入成功") 
								end
							end
					</example>
				</function>
			<function name="XM.GetUI">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.GetUI(id)
						函数说明:|
							传入id，得到该id的内容
							id:界面中已有的id名，仅支持多选框，输入框，下拉框
							返回值:找到该id，返回内容，未找到返回nil
							     
						调用例子:|function floatwinrun()
							    require("XM")
							    local value = XM.GetUI("111")
							    XM.Print(value) --‘111’此id不存在，返回nil
							end
					</example>
				</function>
			<function name="XM.Distance">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.Distance(x1,y1,x2,y2)
						函数说明:|
							传入两个坐标点，计算出两点之间的坐标距离
							x1,y1:第一个点xy坐标 
							x2,y2:第二个点xy坐标
							返回值:返回两点之间的坐标距离 number
							     
						调用例子:|function floatwinrun()
							    require("XM")
							    local dis = XM.Distance(1,20,1,10)
							    XM.Print(dis) --距离：10
							end
					</example>
				</function>
			<function name="XM.JsonEncode">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.JsonEncode(list)
						函数说明:|
							将数组转换成Json格式
							list:数组
							返回值:返回Json字符串
							     
						调用例子:|function floatwinrun()
							    require("XM")
							    local list = {bbb = 1,yyy = 2,ggg = 3 ,ddd = 4}
							    local Json = XM.JsonEncode(list) --将list转成json格式
							    XM.Print(Json) --值："{"ddd":4,"bbb":1,"ggg":3,"yyy":2}" 
							end
					</example>
				</function>
			<function name="XM.JsonDecode">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.JsonDecode(str)
						函数说明:|
							将Json字符串转换成数组
							str:json字符串
							返回值:返回数组
							     
						调用例子:|function floatwinrun()
							    require("XM")
							    local list = {bbb = 1,yyy = 2,ggg = 3 ,ddd = 4}
							    local Json = XM.JsonEncode(list) --将list转成json格式
							    XM.Print(Json) --值："{"ddd":4,"bbb":1,"ggg":3,"yyy":2}" 
							
							    local value = XM.JsonDecode(Json)
							    XM.Print(value)
							    -- 值：{
							    -- [ggg] = 3
							    -- [bbb] = 1
							    -- [ddd] = 4
							    -- [yyy] = 2
							    -- }
							end
					</example>
				</function>
			<function name="XM.ArrayAssign">
					<pram>(字符串)</pram>
					<example>
						函数原型:|XM.ArrayAssign(list)
						函数说明:|
							将传入的数组返回一个独立出来的数组,不会随着原数组的改变而改变
							     
						调用例子:|require("XM")
									local A = {"张三","李四","王五"}
									--比较B与C赋值的区别
									local B = XM.ArrayAssign(A) --插件赋值
									local C = A --直接赋值
									A[1] = "麻六"

									XM.Print(A)
									--输出A:{麻六,李四,王五}

									XM.Print("通过插件赋值的数组:")
									XM.Print(B)
									--输出B:{张三,李四,王五}

									XM.Print("直接赋值的数组:")
									XM.Print(C)
									--输出C:{麻六,李四,王五}

									--将数组A用插件赋值给B,不会随着A的值变化而变化
									--直接将数组A赋值给C, 会随着A的变化而变化
					</example>
				</function>
			</namespace>
		</dll>
	</Platform>
</api>
