runBlock 发生后延迟 SKAction.sequence 中的下一个操作(Swift)?

2024-03-27

The duration财产为moveTo在 a 内时不被跟随runBlock,允许序列中的后续操作立即执行,而该操作应该只在之后执行duration秒。

代码A(正确执行的序列):

let realDest = CGPointMake(itemA.position.x, itemA.position.y)
let moveAction = SKAction.moveTo(realDest, duration: 2.0)

itemB.runAction(SKAction.sequence([SKAction.waitForDuration(0.5), moveAction, SKAction.runBlock {
    itemB.removeFromParent()
}]))

代码 B(序列未正确执行):

let badMoveAction = SKAction.runBlock {
    let realDest = CGPointMake(itemA.position.x, itemA.position.y)
    let moveAction = SKAction.moveTo(realDest, duration: 2.0)
    itemB.runAction(moveAction)
}

itemB.runAction(SKAction.sequence([SKAction.waitForDuration(0.5), badMoveAction, SKAction.runBlock {
    itemB.removeFromParent()
}]))

In Code A, itemB后被删除moveAction完成(约 2 秒)。这是正确的顺序。

In Code B, itemB之前被删除badMoveAction结束,意义itemB永远不会离开原来的位置。就好像持续时间属性没有得到尊重Code B.

我们怎样才能移动itemB as in Code B但确保序列中的下一个操作不会开始,直到badMoveAction完成?


这应该做你想做的。我只是稍微重新安排了代码。

itemB.runAction(SKAction.sequence([

    // wait for half a second
    SKAction.waitForDuration(0.5),
    SKAction.runBlock({

        // after waiting half a second, get itemA's position
        let realDest = CGPointMake(itemA.position.x, itemA.position.y)
        let moveAction = SKAction.moveTo(realDest, duration: 2.0)

        // move to that position, after we get there, remove itemB from scene
        itemB.runAction(moveAction, completion: {
            itemB.removeFromParent()
        })

    })
]))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

runBlock 发生后延迟 SKAction.sequence 中的下一个操作(Swift)? 的相关文章

  • NativeScript:禁用 iOS WebView 缩放控件的方法?

    我正在尝试找出一种方法来防止用户通过捏合手势和双击来放大和缩小 iOS WebView tns ios 3 4 1 本质上禁用所有缩放 就像苹果之前使用的 html 元标记一样让用户决定是否要使用 iOS 10 及更高版本进行缩放 我找到了
  • VNFaceObservation BoundingBox 在纵向模式下不缩放

    作为参考 这源于一个问题视觉API 我正在努力使用Vision通过a检测图像中的人脸VNDetectFaceRectanglesRequest 它在确定图像中正确的人脸数量并提供boundingBox对于每张脸 我的麻烦是由于我UIImag
  • 使用 Swift 解析框架

    有人尝试过将 Parse Framework 与 swift 一起使用吗 只要添加桥接文件 您就可以使用 swift 和 Objective C 代码 这是我的查询 从 Parse 返回的 对象 数组正确地包含了我的所有数据 但该方法在将
  • 如何在运行时更改 UIMenu 内 UIAction 的状态?

    如何更改 UIAction 的状态 目标是切换 UIMenu 内 UIAction 旁边的状态复选标记 更改 UIAction 的state通过存储在视图控制器中的引用似乎根本不会改变状态 我错过了什么吗 View Controller i
  • 如何检测文本是否可读?

    我想知道是否有一种方法可以告诉给定的文本是人类可读的 我所说的人类可读的意思是 它有一些含义 格式就像某人写的文章 或者至少是由软件翻译器生成的供人类阅读的文章 这是背景故事 最近我正在制作一个应用程序 允许用户将短文本上传到数据库 在部署
  • 错误:“消息回复时间太长”向设备手表套件 OS 2 发送消息

    从 Apple Watch 向设备发送消息时出现以下错误 错误域 WCErrorDomain代码 7012 消息回复时间太长 UserInfo NSLocalizedDescription 消息回复时间太长 NSLocalizedFailu
  • SwiftUI TabbedView 仅显示第一个选项卡的内容

    我正在尝试建立一个TabbedView使用以下简单代码 TabbedView Text Hello world tabItemLabel Text Hello Text Foo bar tabItemLabel Text Foo 运行时 两
  • MKPolylineView initWithPolyLine:在 iOS 7 中已弃用

    我收到以下错误 initWithPolyline 已弃用 首先在 iOS 7 0 中弃用 MKPolylineView lineView MKPolylineView alloc initWithPolyline overlay 代替这个的
  • Swift 生成器上的链式表达式错误

    迅速回复 zip 1 2 3 7 8 9 generate next repl swift 1 22 error value of type Zip2Generator
  • 块执行后变量返回 null

    我正在调度一个队列来在单独的线程上下载一些 flickr 照片 在 viewWillAppear 中 当我记录块内数组的内容时 它完美地显示了所有内容 dispatch queue t photoDowonload dispatch que
  • 在哪里可以找到有关 IOS 日历同步的优秀教程? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在开发 iPhone 应用程序 如何将新事件与 iOS 日历同步 您可以浏览此 github 代码
  • 当应用程序名称在 InfoPlist.strings 中本地化时,不同的应用程序名称取决于配置

    我们为每个配置使用具有不同 plist 的设置 像这样 目标 Info Dev plist 目标 Info Beta plist 这样我们的配置就可以拥有自己的 CFBundleDisplayName 并且我们可以通过设备上的应用程序名称来
  • 在 Objective-C iPad 开发中发布

    我正在尝试发出 POST 请求 但我似乎无法弄清楚出了什么问题 我从服务器收到响应 但我的电子邮件 密码对似乎没有正确发送 读取 由服务器 它告诉我不存在这样的帐户 这是我的代码 它包含在一个函数中 当用户按下我创建的 登录 按钮时调用该函
  • 如何将计算值转换为文字以进行枚举初始化

    我遇到了枚举的问题 因为我想将 case 初始化为双精度值PI 180 有没有办法通过常量或一些时髦的魔法获取这个计算值并将其转换为文字 以便我可以初始化枚举 我宁愿不必做3 14 我宁愿使用该值的实际编译器和硬件计算表示 所以我的第一次尝
  • 更改 SKPhysicsBody 的身体形状

    除了定义 SKPhysicsBody 形状的主体之外 我不想更改任何其他内容 我该怎么做呢 我似乎找不到在哪里可以改变这个 甚至评论如何改变它 是的 我知道这必须小心完成 以便避免所有可能的新碰撞 重叠等 但抛开这些 我如何更改 SKPhy
  • 将本机 swift Set 转换为数组[重复]

    这个问题在这里已经有答案了 我需要将 Set 转换为 AnyObject 或 String 的数组 这可能吗 我知道使用 NSSet 我可以使用 allObjects 但对于本机集似乎没有任何函数 只需直接强制转换为数组即可 let arr
  • 编辑模板身份验证 Firebase

    您好 我使用 Firebase 启动了一个新应用程序 然后执行身份验证方法 但我需要编辑电子邮件地址验证和更改电子邮件地址的模板 这两个选项无法编辑 但重置密码后可以编辑模板 字段 消息 该消息仅在选项 电子邮件地址验证和更改电子邮件地址
  • NSFetchedResultsController 中的部分名称与托管对象值不匹配

    我正在使用 NSFetchedResultsController 用大约 1500 个实体的中等大小的核心数据存储的结果填充 UITableView 结果控制器相当标准 一些潜在错误的 热点 并不适合此设置 在与其使用的同一 主 线程上创建
  • 当 tableView 的 allowedMultipleSelectionDuringEditing 属性为 YES 时,如何实现滑动删除功能?

    在 iOS 5 中 如果我设置allowsMultipleSelectionDuringEditing在 UITableView 上设置为 YES 然后滑动删除功能不再起作用 内置的邮件应用程序支持滑动删除和编辑模式下的多项选择 我也想这样
  • 关闭应用程序后如何调试

    我正在尝试重现问题 这需要在特定位置关闭并重新打开我的应用程序 这是我的问题 1 如何查看我的日志 使用NSLog命令 当我的 iPhone 未连接到 XCode 时 2 是否可以将iPhone模拟器的特定位置 例如市中心 设置为默认位置

随机推荐

  • AngularJS 文件拖放到指令中

    这个例子几乎完成了我想在 Angular js 中移植的功能 HTML5 文件 API http html5demos com file api view source 我一直在尝试用 google 搜索一些指令示例 但是我发现旧示例大量使
  • 选择具有特定属性的元素

    我的输入按钮没有任何类或 id 并且有 onclick attr 如下所示
  • SQL Server 闩锁及其对性能问题的指示

    我试图了解我们的数据库 SQL 2008 的潜在性能问题 特别是一个性能计数器 SQLServer Latches Total Latch Wait Time Total Latch Wait Time ms 我们看到数据库响应时间变慢 我
  • 隐藏打开的 Excel 文件

    这是我的问题 我开发了一个程序 它使用 Microsoft Excel COM 组件来读取 写入 Excel 文件 嗯 我的应用程序运行良好 但是当我在程序运行时直接使用 Excel 打开另一个文件时 我的应用程序使用的文件会出现在 Exc
  • 可以在同一台机器上安全地运行多个 Android 模拟器并使用套接字进行通信吗?

    我想在一台笔记本电脑 最坏情况 或专用网络上的多台计算机上模拟一小群 Android 设备 这是为了测试 Android 上的通信和进程迁移 有没有一种安全的方法可以从 Eclipse 下的给定应用程序识别并启动特定的模拟器 我最近安装了
  • 将 JSON 数据存储在 MySQL 表中

    我在使用 NodeJS 在 MySQL 表中存储 JSON 数据时遇到问题 JSON 数据如下所示 header file1 0 file2 1 subfiles subfile1 true subfile2 true response n
  • qVariantValue 是“QT_DEPRECATED” - 替代品是什么?

    我需要将 Qt 遗留代码从 4 转换为 5 1 现在我在 Visual Studio 2010 中出现编译错误 SingleItem item qVariantValue
  • 通过 Javascript WeakMaps 进行垃圾收集缓存

    我想在 JavaScript 中缓存大对象 这些对象是通过键检索的 缓存它们是有意义的 但它们不会一次全部放入内存中 因此我希望在需要时对它们进行垃圾收集 GC 显然更了解 使用以下命令创建这样的缓存非常简单WeakReference or
  • 安全跨线程信号/槽 C++

    似乎唯一为 Signal 类和槽中调用的内容提供安全跨线程信号的实现是 QT 也许我错了 但我不能在我正在做的项目中使用QT 那么我如何从不同的线程提供安全的 Slots 调用 例如使用 Boost signals2 插槽内的互斥体是唯一的
  • React Hooks with typescript:类型上不存在属性“数据”

    我有一个没有意义的错误 我正在用钩子输入我的状态值 但他说错误不是同一类型 已经尝试过使用空数组 甚至使用一些数据的数组 但错误总是相同的 import React useState from react import Row Col fr
  • 仅更新 DateTime 的日期部分

    我正在使用 SQL Server 2008 我在数据库中有一个日期时间 值为 10 4 2012 8 03 00 AM 如何仅更新日期部分 字段名称为 dTime 我想将日期更新为 10 5 2012 并保持时间不变 UPDATE tabl
  • 如果 bean 已经使用 @ConfigurationProperties 注解,@EnableConfigurationProperties 会有什么区别?

    Spring Boot 文档 https docs spring io spring boot docs 2 1 3 RELEASE reference html boot features external config html boo
  • 设置自定义 Maven 2 属性的默认值

    我有一个 Maven pom xml 其中包含一个我希望能够在命令行上控制的插件 一切工作正常 除了即使在网上搜索了一段时间后 我也不知道如何为我的控件属性设置默认值
  • 如何将 Cocoa 坐标从左上角 == 原点转换为左下角 == 原点

    我使用 CGWindowListCopyWindowInfo 来获取所有窗口的列表 它根据原点为我提供每个窗口的坐标top left屏幕的 如果我使用 NSWindow 的 setFrame 方法 则坐标基于原点左下方屏幕的 从一种方式转换
  • WPF 列表框滚动条不起作用

  • Backbone 可以逆序渲染集合吗?

    我正在使用 Signalr 中心来订阅服务器上的事件 事件被分派到集线器 它成功地将项目添加到 Marionette CollectionView 这又被呈现到表格中 因为事件表本质上是一个记事本 所以我希望事件按相反的顺序排列 并且最好只
  • 成本计算器应用程序的设计模式?

    我有一个问题 我之前曾尝试寻求帮助 但当时无法解决它 所以我现在尝试简化问题 看看是否可以获得更具体的帮助 因为它让我发疯了 基本上 我有这个应用程序的工作 更复杂 版本 它是一个项目成本计算器 但因为我同时尝试学习更好地设计我的应用程序
  • iPhone 后台线程问题

    我正在使用后台线程来更新我的标签之一 我正在使用以下代码 但在 iOS 4 0 中 我了解到应用程序会保存其状态并进入后台 我的应用程序也做了这项工作 但是当我隐藏应用程序时 我正在使用的线程停止工作 并在我重新打开它时从我离开的位置恢复
  • IE8 支持哪些 Javascript 版本?

    根据维基百科 IE8仅支持Javascript 1 5 所以他们说 IE8 完全忽略了 Javascript 版本 1 6 1 7 1 8 和 1 9 我应该相信吗 这是真的吗 好吧 实际上 IE 的实现叫做JScript http msd
  • runBlock 发生后延迟 SKAction.sequence 中的下一个操作(Swift)?

    The duration财产为moveTo在 a 内时不被跟随runBlock 允许序列中的后续操作立即执行 而该操作应该只在之后执行duration秒 代码A 正确执行的序列 let realDest CGPointMake itemA