Applescript在FMP12中与本机一样工作,但与计算结果不同。为什么?
为什么它可以完美地从按钮调用为“原生APPLESCRIPT” 并给出此错误:Applescript在FMP12中与本机一样工作,但与计算结果不同。为什么?,applescript,filemaker,quicktime,Applescript,Filemaker,Quicktime,为什么它可以完美地从按钮调用为“原生APPLESCRIPT” 并给出此错误:无法将时间刻度设置为类型编号。 我的修改如下 Let ( mac_path = Right ( Substitute ( ClipsWork::Media Path; "/"; ":"); Length (ClipsWork::Media Path) - 1); "set frame_number to " & ClipsWork::FPS_D & ¶ & "set fps to 25"
无法将时间刻度设置为类型编号。
我的修改如下
Let ( mac_path = Right ( Substitute ( ClipsWork::Media Path; "/"; ":"); Length (ClipsWork::Media Path) - 1);
"set frame_number to " & ClipsWork::FPS_D & ¶ &
"set fps to 25" & ¶ &
"tell application \"Quicktime 7\"" & ¶ &
"activate" & ¶ &
"open " & Quote ( mac_path ) & ¶ &
"set current time to frame_number " & ¶ &
"set the dimensions of movie 1 to {480, 270}" & ¶ &
"end tell"
)
我做错了什么
问候
Dan我可以看出两种提取物的作用是相同的,但它们略有不同。最简单的检查是将第二个摘录粘贴到Data Viewer中 区别在于这一行:
set current time to frame_number / fps * time scale
vs
缺少fps变量的除法和时间刻度的乘法
查看错误消息,听起来时间刻度的数据类型不正确。感谢您关注我的帖子: 该脚本现在在雪豹和小牛中作为计算脚本“随机”工作 在一些帮助下(我是Applescript的新手)。 以下是脚本:
Let (
mac_path = Right ( Substitute ( ClipsWork::Media Path; "/"; ":"); Length (ClipsWork::Media Path) - 1)
;
"set frame_number to " & ClipsWork::FPS_D & ¶ &
"tell application \"QuickTime Player 7\"" & ¶ &
"activate" & ¶ &
"tell (open " & Quote ( mac_path ) & ")" & ¶ &
"set current time to frame_number / 25 * time scale" & ¶ &
"set dimensions to {480, 270}" & ¶ &
"end tell" & ¶ &
"end tell"
)
有人建议我在调用Quicktime后添加另一条“告诉”指令,这样现在它就可以工作了
但是,脚本会“随机”出现各种错误,尤其是在工作几个小时后。就好像缓存填满了导致错误一样。我只有这个应用程序在互联网上和关闭
这在小牛队中更为常见。我得到的错误在路径数据上。它包括“:”符号,因此错误总是“无法获取”:“在标识符之后”
FMP12将表格名称与脚本计算中的字段一起添加,表格包括“:”
如何解决这个问题超出了我的理解。。。如果有人有欺骗FMP12的想法,请让我知道
这是FMP12数据库中的数据
在同一布局中,我有以下字段和这些数据:
ClipsWork::媒体路径
返回此文本:/Volumes/Exodo/Film_30_XI_12 XII/Whole_Files/Action_Proxy/MVI_3571.MOV
ClipsWork::FPS\u D
返回此帧编号:1458
我只有一张桌子,但这仍然是结果
谢谢我必须承认,每当我在FileMaker中使用AppleScript时,我从未使用过计算脚本。相反,为了从一个字段到另一个字段获取信息,我在FileMaker中设置了全局字段,然后使用AppleScript获取全局字段的内容。因此,在创建此解决方案时,我将使用脚本步骤将全局字段设置为正确的路径(
set field[g_applescript_参数];“your calc”]
),然后是Perform applescript
,如下所示:
tell current record to set mac_path to cell "g_applescript_parameter"
...
tell application id "com.apple.quicktimeplayer" to open file mac_path
这样做的一个主要优点是,在Apple的脚本编辑器中解决脚本中的错误要容易得多(甚至在中更容易)。一旦你在那里工作,一个拷贝和粘贴会将它带到FileMaker中而不需要修改(在脚本编辑器中,可能需要删除
告诉应用程序“FileMaker”
块,脚本调试器可以让AppleScript命令指向一个默认的应用程序)。感谢大家对我文章的关注。在一些帮助下,我能够按照如下方式修复脚本:您不必再使用“:”AppleScript中的符号,请在AppleScript中查找POSIX。如果“Exodo”卷已装入且不是本地卷,您可能会在某个时候失去网络连接。我有一个类似的问题,脚本运行数天,从共享卷加载文件数百次,但有时每次运行失败一次/两次。解决方法是检查卷是否已装入,然后重新装入。在我的情况下,它通常被夜间备份锁定,因此我引入了延迟等待。谢谢,但由于我是一个新手,我不知道如何修复脚本以避免出现“:”问题。每次我试图修复它时,我都必须选择字段,即使脚本中只有一个表,所以FMP12将插入“tablename::fieldname)我没有办法修复它。我甚至尝试在TextWrangler中仅使用字段名调整脚本,但当我在计算文本脚本中经过它时,FMP12要求重新选择添加表名的适当字段。有没有办法克服这个问题?对不起,现在还不清楚你有什么问题。在脚本中插入tablename::fieldname时,它将为当前记录呈现此字段中的任何值。“::”只表示关系,不应该给您错误。如果您只有一个表,并且基于此表从布局中运行脚本,则应该能够从计算中删除“table::”。
Let (
mac_path = Right ( Substitute ( ClipsWork::Media Path; "/"; ":"); Length (ClipsWork::Media Path) - 1)
;
"set frame_number to " & ClipsWork::FPS_D & ¶ &
"tell application \"QuickTime Player 7\"" & ¶ &
"activate" & ¶ &
"tell (open " & Quote ( mac_path ) & ")" & ¶ &
"set current time to frame_number / 25 * time scale" & ¶ &
"set dimensions to {480, 270}" & ¶ &
"end tell" & ¶ &
"end tell"
)
tell current record to set mac_path to cell "g_applescript_parameter"
...
tell application id "com.apple.quicktimeplayer" to open file mac_path