问题标签 [nstimer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
101 浏览

objective-c - 为什么当我使用旋转相机渲染场景时,您希望出现在其他人后面的对象不这样做?OpenGL Objective-c

我正在渲染一个有两个球体的场景。我正在围绕其中一个旋转相机。发生的事情是违反直觉的。当相机绕着球体移动时,当你期望它在后面时,另一个会在它前面。所以看起来好像这些球体并没有相互旋转,而应该旋转的球体总是在前面。请帮忙。

下面是渲染场景的代码:

该块是在使用时调用的类的一部分。

包含数学做相机革命和gluLookAt()

0 投票
1 回答
136 浏览

iphone - NSTimer 平滑播放位置

我有一个音频播放器,我想显示播放的当前时间。我正在使用自定义游戏课程。

该应用程序将 mp3 下载到一个文件中,然后在下载 5% 时从该文件中播放。当文件播放时,我有一个进度视图更新,并在每次调用进度视图时更新一个标签。但是,这很生涩……有时甚至会倒退一两个数字。

我正在考虑使用 NSTimer 来解决问题。我会每秒被一个方法解雇,并将播放百分比数字传递给该方法,然后更新标签。

首先,这看起来合理吗?

其次,如何将百分比(浮点数)传递给计时器的目标。现在我将播放的百分比放入字典中,但这似乎不太理想。

这就是所谓的更新进度条:

这在 5 秒后首先被调用,但每次调用该方法时都会更新。

与往常一样,评论和指针表示赞赏。

0 投票
1 回答
544 浏览

iphone - iPhone OpenGL 和 NSTimer 问题

我有一个运行频率为 60hz 的 NSTimer。加载和渲染 OpenGL 场景后,我的游戏可以全天稳定地获得 60fps。然后如果我去重新编译应用程序或重新加载它,它将获得 40fps。加载相同的资源。我多年来一直遇到这个问题,我只想知道为什么。这太疯狂了,我想知道我是否应该放弃这个愚蠢的计时器。我的 3GS 负载之间的情况没有什么不同。有时它只会达到40fps。显然,负载之间的时钟速率没有差异,因此性能数据应该在恒定场景下保持恒定。这是我的帧率日志:

一个很好的负载::-)

帧率:61 帧率:61 帧率:61 帧率:60 帧率:60 帧率:61 帧率:60 帧率:60 帧率:61 帧率:60 帧率:61

现在,我将继续什么都不做,重新编译并运行:

帧率:43 帧率:50 帧率:45 帧率:48 帧率:40 帧率:45 帧率:42 帧率:41 帧率:42 帧率:44 帧率:41 帧率:46

^- 视觉上的巨大差异。飞天到底是什么原因造成的?

相同的场景区域,相同的相机设置。没有变量是不同的。

[编辑] 有人提到,音乐未在硬件解码器中运行会导致这种情况,有时即使您设置解码器也不会接管。但是,我可以说即使禁用了音乐,这种情况也会发生 [/Edit]

0 投票
4 回答
8282 浏览

iphone - iphone NStimer 在 2 秒内启动

我试图在“启动”它后 2 秒运行一段代码。

我认为 NSTimer 可以做到这一点,但无法弄清楚。

0 投票
2 回答
420 浏览

iphone - iPhone NSTimer OpenGL 问题

我遇到的问题似乎只发生在设备上,而不是模拟器上。

我的应用程序的动画使用以下方法启动和停止:

在模拟器中,这可以正常工作,并且 drawView 开始以 60fps 的速度被调用。在设备上(在 iPod Touch 上测试), scheduleTimerWithTimeInterval 方法似乎不起作用。此外,[animationTimer invalidate] 会导致 EXC_BAD_ACCESS。

我发现了一个明显但很小的缺陷;将 if(animationTimer != nil) 添加到 stopAnimation 方法将防止崩溃,但不能解决动画计时器未正确初始化的问题。

编辑:以上内容并不能防止崩溃。animationTimer != nil 但调用无效会导致 EXC_BAD_ACCESS。

还应该补充一点,这个问题不会一直在设备上发生。也许有 40% 的时间。

0 投票
1 回答
116 浏览

iphone - 如何过早地脱离 NSTimer 调用的方法

基本上我正在编写一个节拍器应用程序,但我正在使用一个声音文件,根据 BPM,当再次调用“播放”方法时可能无法完成播放。例如,如果声音文件时长为 0.5 秒,但 BPM 为 200,则需要每 0.3 秒调用一次“播放”方法。

我对 NSTimer 不太熟悉,但似乎如果它应该在上一次调用完成之前触发,它不会,只是等待下一次。不过,我可能完全错了。

我需要做的是提前结束之前的调用,并在时间应该触发时再次调用“播放”方法。

任何帮助,将不胜感激!

0 投票
2 回答
989 浏览

iphone - iPhone 应用程序中带有 NSTimers 的“多线程”

假设我的 iPhone 应用程序中有两个 NSTimers: timer1timer2timer1每秒调用function1 30 次,timer2 每秒调用function2 30 次。假设这两个函数正在读取和更新相同的整数变量。这里有任何“多线程”问题吗?如果不是,iPhone OS 如何处理这两个功能的执行(通常)?

0 投票
3 回答
4240 浏览

iphone - 使用 NSTimer 和 NSDateFormatter 显示时间码

我非常接近完成我的第一个 iPhone 应用程序,这很开心。我正在尝试通过在 UILabel 上显示当前时间 (NSDate) 的 NSTimer 使用当前时间添加运行时间码。NSDate 对我来说工作正常,显示小时、分钟、秒、毫秒。但是我需要每秒显示 24 帧,而不是毫秒。

问题是我需要每秒帧数与小时、分钟和秒 100% 同步,所以我不能在单独的计时器中添加帧。我试过了,让它工作了,但帧计时器没有与日期计时器同步运行。

谁能帮我解决这个问题?有没有办法自定义 NSDateFormatter 以便我可以将日期计时器格式化为每秒 24 帧?现在我仅限于格式化小时、分钟、秒和毫秒。

这是我现在正在使用的代码

0 投票
2 回答
776 浏览

iphone - 有没有办法编写一个 NSTimer 所以它只是暂停程序一秒钟?

尝试更改按钮图片,稍等片刻,然后更改回来。没有太多的运气试图让它工作,所以有没有办法让程序暂停一秒钟,没有一个计时器实际执行任何东西,也没有程序继续执行代码?

0 投票
1 回答
2226 浏览

iphone - 为什么我在 NSTimer 选择器中得到 EXC_BAD_ACCESS?

我有一个很奇怪的问题。简而言之,我将编写一些伪代码:

因此,由于未知原因,当我这样做时,我得到一个 EXC_BAD_ACCESS:

但是我追踪了从字典项目中得到的地址,没关系。字典中的项目的引用计数仍然是 1。字典中的项目的 {release, dealloc} 没有被调用。一切似乎都很好。此外,更糟糕的是,它适用于某些项目。

所以,我想知道是否存在线程问题?还是其他晦涩难懂的东西?

调用堆栈非常简单:

因此,任何建议在哪里看都会受到赞赏。

--- 编辑 #1 ---

@Laurent:这是我重写实际值以匹配我的示例的错字。(固定的)

@Jeremy:我会尝试发布一些代码来提供帮助。代码已被简化。

定时器初始化+刷新功能:

我希望它更清楚一点。

对,我已经在我的“函数”中评论了所有内容,看起来它没有崩溃。我会让它再运行一点,但我没有在那个函数中做任何特别的事情(与内存相关)。只是更新一些枚举值。

--- 编辑 #2 ---

@Laurent:关于callstak,你是对的,我犯了一个巨大的错误。它应该是计时器方法而不是函数。我只是修复它。对不起这个错误。但仅供参考,方法签名是: