我创建了两个播放不同iimPlay函数的变量。但是,代码总是执行第一个if语句并忽略第二个语句。
Main.js
var ReturnCode = iimPlay("win.iim");
var returncode2 = iimPlay("lose.iim"); //
if (ReturnCode = 1) { *//when returncode =1 means complete execute*
iimPlay("reset.iim");
}
if (returncode2 = 1 ) {
iimPlay("double.iim");
}
Win.iim
IMAGESEARCH POS=1 IMAGE=C:\win.png CONFIDENCE=65
无论匹配与否,imagesearch将始终执行
Lose.iim
IMAGESEARCH POS=1 IMAGE=C:\lose.png CONFIDENCE=65
无论匹配与否,imagesearch将始终执行
HTML标记
<div id="game-result" class="balance-change fail">
<span id="result-text">
LOST
</span> </div>
问题:每当iimPlay(“win.iim”)检测到输赢图像时,它仍会执行第一个语句,因为丢失图像应该执行第二个if语句。
答案 0 :(得分:1)
使用
代替使用图片搜索TAG POS=1 TYPE=DIV ATTR=CLASS:image_you_are_looking_for CONTENT=EVENT:MOUSEOVER
TAG POS=1 TYPE=DIV ATTR=CLASS:second_image_you_are_looking_for CONTENT=EVENT:MOUSEOVER
如果不存在,这种方式将返回错误代码。
这也是错误。
if (returncode2 = 1 ) { }
您将值1设置为returncode2而不将其与1进行比较。正确的是
if (returncode2 == 1 ) { }
更好的是:
if (returncode2 > 0 ) { }
其他返回码相同。修复这些并重试。
答案 1 :(得分:0)
您需要始终小心EQUAL
号。在Javascript for comparasion中,您使用==
或===
。您的代码会执行归因,并始终为TRUE
;这就是它总是被执行的原因。有关javascript相等的详细信息,请参阅this post。