首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式删除多幅单轨艺术品

以编程方式删除多幅单轨艺术品
EN

Stack Overflow用户
提问于 2013-11-11 08:09:31
回答 1查看 434关注 0票数 0

我正在写一个AppleScript来管理我的专辑艺术作品。我试图写一些代码,将删除所有的艺术作品包含在选定的轨道(iTunes轨道可以包含多达30个艺术品对象)。这相当于选择iTunes中的曲目,打开“获取信息”窗口,并检查(空白)艺术作品框。

例如,应该工作的代码:

代码语言:javascript
复制
tell application "iTunes" to set t to track 1 of playlist "Example Playlist"
tell t to delete every artwork

请注意,仅删除第一幅艺术品的语法为:tell t to delete artwork 1

不幸的是,AppleScript没有合作。如果轨道有2个艺术品,则只有第一个被删除;如果轨道有3个艺术品,则前2个被删除。

它似乎是一个问题,因为在执行delete命令期间更改了艺术品索引(例如,对于带有2个艺术品的跟踪,它成功地删除了艺术品1,但是当它试图删除艺术品2时,它找不到它,因为当原始的艺术品1被删除时,它被重命名为艺术品1)。试图将every artwork说明符强制放到列表中(以便它可以反转)是行不通的,因为delete似乎不适用于用户定义的列表。

有人知道我做错了什么吗?我知道我可以使用一个重复循环来迭代轨道中的所有艺术品,分别删除每一个,但这似乎与AppleScript的简单性尝试背道而驰。我是不是滥用了every语句?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-11 09:44:11

尝试:

代码语言:javascript
复制
tell application "iTunes"
    set t to first item of (get selection)
    delete t's artworks
end tell

代码语言:javascript
复制
tell application "iTunes"
    set t to first item of (get selection)
    set tArtwork to t's artworks
    repeat with i from (count tArtwork) to 1 by -1
        delete tArtwork's item i
    end repeat
end tell
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19901578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档