2014-06-27 20 views
0

Xcode 5,iOS 7如何按顺序显示带有声音的对象,最好是按照时间顺序?

我试图按顺序创建/显示几个对象,声音,最好是在某些指定的时机。

例如,我想创建并显示10个标签。 - 每次创建标签时,播放声音。 - 控制标签的显示(即时间的动画块) - 只有在创建了前一个标签,播放声音并显示之后才创建下一个标签。优选地在标签之间插入延迟。

我现在有是For循环它调用 1:方法A - 实例化标签 2:方法A调用方法B含有一个动画块的)播放声音然后b)动画显示

我的问题是,所有10个标签显示如此之快,以致它看起来不连续,我只听到一次声音。

如何将这些链接在一起并控制显示和时间?

回答

0

如果你不使用SpriteKit,那么这可能是接近你在找什么:

-(void)managerMethod 
{ 
    float timeBetweenEvents = 3.0; 

    for (int i = 0; i < 10; i++) { 
     NSObject *someObjectCreatedHere; 
     [self performSelector:@selector(doSomethingBasedOnThisObject:) withObject:someObjectCreatedHere afterDelay:(i * timeBetweenEvents)]; 
    } 
} 

-(void)doSomethingBasedOnThisObject:(NSObject*)thisObject{ 
    //do stuff to thisObject 
    //load stuff from thisObject 
    //etc 
} 
+0

CH - 不,是行不通的。循环执行到10,叠加'performSelectors'。基本上我已经有了同样的问题。 – wayneh

+0

我不确定那是什么意思,但是他们会在不同的延迟后执行,我想这就是你要求的。但是我正在编写盲代码,所以可能不会记住用法。但用我的简单例子,第10个方法应该在30秒后执行? –

+0

CH - performSelector不会延迟For循环继续执行 - 这只是在调用方法(选择器)之前的延迟。因此,所有performSelector调用立即堆积起来,导致我已经有相同的问题。我需要顺序发生,以便循环的工作原理如下:i = 0-> makeObj,完成后,递增i并继续...重复。 – wayneh