关键词:
import UIKit import AVFoundation class GuidePage: FxBasePage { @IBOutlet var backImageView:UIImageView? var player:AVPlayer! var playerItem:AVPlayerItem! var location:FxLocation! override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } convenience init () { var nibNameOrNil = String?("GuidePage") //考虑到xib文件可能不存在或被删,故加入判断 if NSBundle.mainBundle().pathForResource(nibNameOrNil, ofType: "nib") == nil { nibNameOrNil = nil } self.init(nibName: nibNameOrNil, bundle: nil) } override func viewDidLoad() { super.viewDidLoad() initPlayVideo() doAnimation() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func doAnimation() { var images:[UIImage]=[] var image:UIImage? var imageName:String? for var index=0; index<=67;index++ { imageName = "logo-" + String(format: "%03d", index) image = UIImage(named: imageName!) images.insert(image!, atIndex: index) } backImageView?.animationImages = images backImageView?.animationRepeatCount = 1 backImageView?.animationDuration = 5 backImageView?.startAnimating() UIView.animateWithDuration(0.7, delay:5, options: .CurveEaseOut, animations: { self.backView!.alpha = 1.0 self.player?.play() }, completion: { finished in print("Animation End") }) } func initPlayVideo () { let path = NSBundle.mainBundle().pathForResource("welcome_video", ofType: "mp4") let url = NSURL.fileURLWithPath(path!) playerItem = AVPlayerItem(URL: url) player = AVPlayer(playerItem: playerItem) let playerLayer = AVPlayerLayer(player: player) playerLayer.frame = backView!.bounds playerLayer.videoGravity = AVLayerVideoGravityResizeAspect backView!.layer.insertSublayer(playerLayer, atIndex: 0) backView!.alpha = 0.0 NSNotificationCenter.defaultCenter().addObserver ( self, selector: "didFinishVideo:" , name: AVPlayerItemDidPlayToEndTimeNotification , object: playerItem) }
// 播放到视频结尾之后,要重新开放播放 func didFinishVideo(sender: NSNotification ) { let item = sender.object as! AVPlayerItem item.seekToTime(kCMTimeZero) self.player.play() }
// 跳转登录 @IBAction func doLogin() { location = FxLocation() location.startLocation() }
// 跳转注册 @IBAction func doRegister() { let page = CreateAccountPage() let navPage = UINavigationController(rootViewController: page) self.presentViewController(navPage, animated: true, completion: nil) } }
docker第五篇存储
镜像概述复习 Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层 如果运行中的容器修改了现有的一个已经存在的文件,那改文件将会从读写层下面的只读层复制到读写... 查看详情
第五篇:常用模块
第五篇:常用模块 PYTHON-模块time&datetime+目录规范PYTHON-模块-time&datetime-练习+目录规范PYTHON-模块sysosrandomshutilPYTHON-模块sysosrandomshutil-练习PYTHON-模块jsonpickleshelvexmlPYTHON-模块logginghashlibPY 查看详情
第五篇:springcloudeureka权限认证
参考技术AEureka注册中心的管理界面以及服务注册时,没有任何认证机制,如果这个地址有公网IP的话,必然能直接访问到,这样是不安全的,安全性比较差,如果其它服务恶意注册一个同名服务,但是实现不同,可能就有风险了... 查看详情
关于ajax第五篇
AJAX-服务器 响应如需获得来自服务器的响应,请使用XMLHttpRequest对象的responseText或responseXML属性。AJAX- onreadystatechange 事件当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当readyState改变时,就会触发onr... 查看详情
spring第五篇
在Spring第四篇中我们主要介绍了setget的注入方式在Spring第五篇中我们主要介绍使用注解配置Spring主要分为两个步骤1导包的同时引入新得约束导包如下 1.1重写注解代理配置文件代码如下 <?xmlversion="1.0"encoding="UTF-8"?>... 查看详情
第五篇vggnet——论文翻译
文章目录摘要1引言2ConvNet配置2.1架构2.2配置2.3讨论3分类框架3.1训练3.2测试3.3实现细节 查看详情
第五篇vggnet——论文翻译
文章目录摘要1引言2ConvNet配置2.1架构2.2配置2.3讨论3分类框架3.1训练3.2测试3.3实现细节 查看详情
htmldom第五篇
通过HTMLDOM,JavaScript能够访问HTML文档中的每个元素。HTMLDOM允许您在事件发生时执行代码。当HTML元素"有事情发生"时,浏览器就会生成事件:在元素上点击加载页面改变输入字段添加、删除和替换HTML元素HTMLDOM允许JavaScript对HTML事... 查看详情
pytorch学习笔记第五篇——训练分类器(代码片段)
文章目录1.数据2.训练图像分类器2.1加载并标准化CIFAR102.2训练图像3.定义卷积神经网络、损失函数、优化器、训练网络和保存模型4.测试自己的模型5.在GPU上进行训练1.数据通常,当您必须处理图像,文本,音频或视频... 查看详情
kafka消息队列大数据实战教程-第五篇(broker工作原理以及节点服役)
文章目录前言一、zookeeper存储1.1启动zookeeper客户端1.2查看kafka的broker的ids信息1.3查看kafka的broker里的topics信息1.4查看kafka集群的leader信息二、节点服役2.1服役新节点2.1.1克隆新节点,修改IP地址,主机名称2.1.2修改新节点配置文件2.1... 查看详情
kafka消息队列大数据实战教程-第五篇(broker工作原理以及节点服役)
文章目录前言一、zookeeper存储1.1启动zookeeper客户端1.2查看kafka的broker的ids信息1.3查看kafka的broker里的topics信息1.4查看kafka集群的leader信息二、节点服役2.1服役新节点2.1.1克隆新节点,修改IP地址,主机名称2.1.2修改新节点配置文件2.1... 查看详情
开始写游戏---第五篇
开始写游戏---第五篇 今天写了一个这个组件: 代码: 用的时候这么用: 这是组件的运行效果: 写是写好了。。。但是我发现,之前写... 查看详情
团队第五篇
这一周,我们主要运用本学期所学的数据库知识来完成。用所学的SQL语句来对上周所建立的数据表进行创建。下面是小组成员创建的语句及截图:用户(用户名,电话,会员等级,积分)createtableUsers(U#char(6)notnull,Namechar(8)notnull,Phone... 查看详情
小白入门深度学习|第五篇:数据不均衡的处理方法
前言: 查看详情
第五篇二叉搜索树
typedefstructnode{intnum;structnode*left;structnode*right;}Node;typedefstruct{Node*root;}Tree;/***@brief建树*/Tree*createTree(){Tree*tree=malloc(sizeof(Tree));tree->root=NULL;returntree;}/***@b 查看详情
第五篇:模块
定义模块 一、模块基本概念1、模块是从逻辑上组织python代码的形式2、当代码量变得相当大的时候,最好把代码分成一些有3、组织的代码段,前提是保证它们的... 查看详情
rabbitmq第五篇:spring集成rabbitmq
前面几篇讲解了如何使用rabbitMq,这一篇主要讲解spring集成rabbitmq。 首先引入配置文件org.springframework.amqp,如下<dependency><groupId>org.springframework.amqp</groupId><artifactId>spring 查看详情
第五篇css补充二
h1{background-color:palegreen}一、内容概要1、图标2、目录规划3、a标签中的img标签在浏览器中的适应性4、后台管理系统设置5、边缘提示框6、登录页面图标7、静态对话框8、加减框补充知识:line-height是行高,也可以定义行间距用法:... 查看详情