2011-01-05 10 views
4

フォトブースのようなMacのココアアプリケーションでスクリーンフラッシュエフェクトを複製しようとしています。ココアの写真ブース画面のフラッシュを複製する

画面に白いレイヤーがオーバーレイされ、画面の明るさが実際に明るくなってから再び低下します。

誰でも私にこれをココアでどのように複製することができるかアドバイスできますか?

おかげ

答えて

1

あなたは、フルスクリーンウィンドウを作成するためのthisのチュートリアルを見てみることができます。それを白にしてCore Animationを使用してフェードインとフェードインします。たとえば、[[MyFullScreenWindow animator] setAlphaValue:0.0];はフェードアウトします。

6

私は、Quartz Display ServicesのCGDisplayFade APIを使用することをお勧めします。 非常に使いやすく、偽のフルスクリーンのウィンドウやビューでの「ハッキング」は不要です。

はこちらをご覧ください:Quartz Display Services Reference

簡単な実装は次のようになります。

-(void)flashScreenUsingFlashColor:(NSColor *)flashColor 
        inDuration:(NSTimeInterval)inDuration 
        outDuration:(NSTimeInterval)outDuration{ 

CGDisplayFadeReservationToken fadeToken; 
NSColor *colorToUse = [flashColor colorUsingColorSpaceName: NSCalibratedRGBColorSpace]; 

CGError error = CGAcquireDisplayFadeReservation (inDuration + outDuration, &fadeToken); 
if (error != kCGErrorSuccess){ 
    NSLog(@"Error aquiring fade reservation. Will do nothing."); 
    return; 
} 

CGDisplayFade (fadeToken, inDuration, kCGDisplayBlendNormal, kCGDisplayBlendSolidColor, colorToUse.redComponent, colorToUse.greenComponent, colorToUse.blueComponent, true); 
CGDisplayFade (fadeToken, outDuration, kCGDisplayBlendSolidColor, kCGDisplayBlendNormal,colorToUse.redComponent, colorToUse.greenComponent, colorToUse.blueComponent, false); 

} 
関連する問題