我不知道我做错了什么,我也不知道如何使用 NSTimer...我只是想运行一个简单的应用程序,当您单击运行时...它会循环脚本的一部分(这就是我我试图让 NSTimer 去做,然后当你点击停止时......它停止了
到目前为止,我有这个...
current application's NSTimer's timerWithTimeInterval_target_selector_userInfo_repeats_(1, me, "runOLEDWMESerial:", missing value, yes)
on runOLEDWMESerial_(sender)
set player_active to false
set theString to "Error;00:00:00:00"
tell application "Finder"
if (get name of every process) contains "NicePlayer" then set player_active to true
end tell
if player_active then
try
tell application "NicePlayer"
if ((count of movies) is not 0) then
tell front playlist
set theName to name
set curSeconds to elapsed time as integer
set theSeconds to duration as integer
set theHours to theSeconds div 3600
set theSeconds to theSeconds - theHours * 3600
set theMinutes to theSeconds div 60
set theSeconds to theSeconds - theMinutes * 60
set theDuration to ""
if theHours > 0 then
if theHours < 10 then set theHours to "0" & theHours
set theDuration to theHours & ":"
end if
if theMinutes < 10 then set theMinutes to "0" & theMinutes
if theSeconds < 10 then set theSeconds to "0" & theSeconds
set theDuration to theDuration & theMinutes & ":" & theSeconds
set curHours to curSeconds div 3600
set curSeconds to curSeconds - curHours * 3600
set curMinutes to curSeconds div 60
set curSeconds to curSeconds - curMinutes * 60
set curTime to ""
if curHours > 0 then
if curHours < 10 then set curHours to "0" & curHours
set curDuration to curHours & ":"
end if
if curMinutes < 10 then set curMinutes to "0" & curMinutes
if curSeconds < 10 then set curSeconds to "0" & curSeconds
set curTime to curTime & curMinutes & ":" & curSeconds
set theString to theName & ";" & curTime & ";" & theDuration
end tell
end if
end tell
on error errmsg
set theString to "Error2;00:00;00:00"
end try
end if
textName's setStringValue_(theName)
textTime's setStringValue_(curTime & "/" & theDuration)
end runOLEDWMESerial_
是的,我确信我的代码很丑陋,但本质上这将通过串行端口发送数据,这是这里的主要目标,但是现在我只是想让窗口回显正在播放的内容......
因此,runOLEDWMESerial 与运行按钮相关联...当您单击运行按钮时,循环会触发一次,但随后会停止...如果我在 runOLEDWMESERIAL_(sender) 上的所有内容中添加重复并延迟(1)它可以工作,但在用户界面中也变得无响应,我无法阻止它......所以有人可以帮助我理解为什么 NSTimer 不起作用