ios4动画 转自cocoachina

ios4使用MoviePlayer播放横屏动画   

最近要加一个横屏的片头动画到程序里,使用MPMoviePlayerController
在IOS4上使用这个类播放动画与3.x sdk 的比有一些改变


我一般直接加在AppDelegate.m里

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
NSString*moviePath = [[NSBundlemainBundle] pathForResource:@"introMovie"ofType:@"m4v"];
NSURL *movieURL = [NSURL fileURLWithPath:moviePath];

MPMoviePlayerController*theMovie = [[MPMoviePlayerControlleralloc]initWithContentURL:movieURL];
theMovie.scalingMode= MPMovieScalingModeAspectFill;  

//下面是IOS4与3.x sdk不一样的地方 
// +++

//theMovie = MPMovieControlModeHidden;是以前的sdk用的,现在建议用下面这句
theMovie.controlStyle= MPMovieControlStyleNone; //os 4.0

theMovie.view.frame = CGRectMake(0, 0, 480, 320); 

//4.0里需要我们把MPMoviePlayerControll顺时针转90度,并且把controller的view加到UIWindow或者UIView对象里
//3.x 里不用做这些就能实现同样的效果

CGAffineTransform landscapeTransform;
landscapeTransform = CGAffineTransformMakeRotation(90 * M_PI / 180);
landscapeTransform = CGAffineTransformTranslate(landscapeTransform, 80, 80);
[theMovie.view setTransform:landscapeTransform];


[window addSubview: theMovie.view]; 
[windowmakeKeyAndVisible];
//IOS4与3.x sdk不一样的地方 // ---

//Register for the playback finished notification.
[[NSNotificationCenterdefaultCenter] addObserver:self
selector:@selector(movieFinishedCallback:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:theMovie];
[theMovie play];




}

//放完动画了进入程序。添加其它的view
-(void)movieFinishedCallback:(NSNotification *)aNotification
{
MPMoviePlayerController *theMovie = [aNotification object];
[[NSNotificationCenterdefaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:theMovie];
[theMovie release];

[windowaddSubview:viewController.view];
[windowmakeKeyAndVisible];
}

posted @ 2011-12-14 15:16  KID  阅读(178)  评论(0编辑  收藏  举报