Applescript在FMP12中与本机一样工作,但与计算结果不同。为什么?

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"

为什么它可以完美地从按钮调用为“原生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"  & ¶ & 

"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