利用青瓷布局自定义加载的场景,而不是自己改写qici-loading
加载界面如果全部通过自己手动布局不仅不美观,还很难控制。借用原生的场景切换加载效果,来实现我们游戏的加载效果。
没有做加载修改的原来的加载顺序:
/**
* by Again 2016-3-13 0.51.23
* 加载这个节点后第一次刷新后转跳到指定节点
*/
var NextScene = qc.defineBehaviour('qc.demo.NextScene', qc.Behaviour, function() {
// 初始化代码
this.loaded = false;
}, {
// 需要序列化的场景资源名称
scene: qc.Serializer.STRING
});
NextScene.prototype.awake = function() {
this.loaded = false;
}; // 加载下一场景唤醒
NextScene.prototype.update = function() {
var self = this;
if (self.loaded === false) {
self.loaded = true; // 切换到指定场景
if (self.scene) {
self.game.scene.load(self.scene, false, function() {
// 方式1:预加载中,我们可以做一些资源的加载操作
}, function() {
self.game.log.trace('loading new sence ok ({0})', self.scene);
});
}
}
}
UIRoot绑定
/**
* 场景加载的进度提示获取
*/
var LoadingUI = qc.defineBehaviour('qc.demo.LoadingUI', qc.Behaviour,
function() {
var self = this;
this.clue = null; //默认显示
this.onShow = function() {
self.gameObject.visible = true;
self.gameObject.alpha = 1;
};
//默认消失
this.onHide = function() {
self.gameObject.visible = false;
self.gameObject.alpha = 0;
};
//默认加载中
this.onLoading = function(loaded, total) {
self.game.log.trace("loading :{0}/{1}",loaded,total);
};
}, {
}
); // 初始化处理
LoadingUI.prototype.awake = function() {
// 关注场景开始切换和切换结束的事件
var self = this;
//设置响应事件
this.addListener(self.game.scene.onStartLoad, function() {
// 场景加载开始,显示本界面
if (typeof(self.onShow) === "function") {
self.onShow();
};
});
this.addListener(self.game.scene.onEndLoad, function() {
// 场景加载完毕,隐藏本界面
if (typeof(self.onHide) === "function") {
self.onHide();
};
});
} // 帧调度,保证本界面永远在其他界面之上
LoadingUI.prototype.update = function() {
var self = this,
loaded = self.game.assets.loaded,
total = self.game.assets.total;
// 场景加中
if (typeof(self.onLoading) === "function") {
self.onLoading(loaded, total);
};
}; /////////////////////////////////////////////////////////////////////
// 对外接口
LoadingUI.prototype.setOnShow = function(callback) {
this.onShow = callback;
}; LoadingUI.prototype.setOnHide = function(callback) {
this.onHide = callback;
}; LoadingUI.prototype.setOnLoading = function(callback) {
this.onLoading = callback;
};
利用青瓷布局自定义加载的场景,而不是自己改写qici-loading的更多相关文章
- 利用ViewStub实现布局懒惰加载
这个问题也是头条面试官问的,本身没什么难度,但以前确实没仔细研究过. 1.使用介绍 ViewStub是一种不可见的尺寸为0的View,用来实现布局资源的懒加载.当ViewStub被设置为用户可见或其 ...
- Android 自定义View修炼-自定义加载进度动画XCLoadingImageView
一.概述 本自定义View,是加载进度动画的自定义View,继承于ImageView来实现,主要实现蒙层加载进度的加载进度效果. 支持水平左右加载和垂直上下加载四个方向,同时也支持自定义蒙层进度颜色. ...
- Android:webView加载h5网页视频,播放不了,以及横屏全屏的问题和实现自定义加载进度条的效果
1.webView加载h5网页视频,播放不了,android3.0之后要在menifest添加硬件加速的属性 android:hardwareAccelerated="true". ...
- (转)Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条(三十一)
异步任务相信大家应该不会陌生,那么本章内容MOMO将带领大家学习Unity中的一些异步任务.在同步加载游戏场景的时候通常会使用方法 Application.LoadLevel(“yourScene ...
- Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条
Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条 异步任务相信大家应该不会陌生,那么本章内容MOMO将带领大家学习Unity中的一些异步任务.在同步加载游戏场景的时候通常会使用方法 Ap ...
- Java类加载机制及自定义加载器
转载:https://www.cnblogs.com/gdpuzxs/p/7044963.html Java类加载机制及自定义加载器 一:ClassLoader类加载器,主要的作用是将class文件加 ...
- asp.net读取用户控件,自定义加载用户控件
1.自定义加载用户控件 ceshi.aspx页面 <html> <body> <div id="divControls" runat="se ...
- 【Unity】使用SceneManager加载/切换场景
一.直接切换 老版的(已弃用!): Application.LoadLevel(int index); // 参数是场景编号 Application.LoadLevel(string name); / ...
- xlua的自定义加载
具体可以先看xlua的自定义加载的demo,那个用lamda表达式做的 我这个更好理解 主要是ReadFile2的结构问题,必须的写成这样
随机推荐
- 中文字符串的编码转换(c实现)
中文字符串在c/c++中表示为字节序列,在分词的时候需要根据不同的编码方式进行分词,一般分词器需要转换成统一的编码方式再进行转换,有些分词器如ICTCLAS在分词的时候可以不显示定义编码方式,可以检测 ...
- linux内核--几个上下文(context)
为了控制进程的执行,内核必须有能力挂起正在CPU上运行的进程,并恢复以前挂起的某个进程的执行,这种行为叫进程切换(process switch),任务切换(task switch)或上下文切换(con ...
- UIAlertController:弹框4步走
对于大多数的App来说,弹框这种交互方式基本上是必不可少的.在新的iOS系统中(具体版本我忘了),以前的UIAlertView被弃用,而换成了现在的UIAlertController. UIAlite ...
- HTML5实践之歌词同步播放器
歌曲播放我们会发现他的兼容性不是很好,譬如IE上能播放的flash播放器,再firfox或者chrome上就不是很好的应用了,因为有插件的阻碍!HTML5的出现让这一切成为了可能,但是播放器虽然播放了 ...
- flash builder4.7安装git插件
如果直接点击Help > Eclipse Marketplace,然后搜索Egit, 以这种方式安装是会失败的!!! 因为版本兼容的问题.依次点击Help > About Flash Bu ...
- spring 整合JDBC
使用Spring提供的三个JDBC模板类(JdbcTemplate.NamedParameterJdbcTemplate.SimpleJdbcTemplate)操作数据库 一.JdbcTemplate ...
- [TypeScript] Generating Definition Files
TypeScript allows you to generate definition files for your own libraries. This lesson shows you how ...
- SQL高级优化之经常使用的优化策略-2(The Return Of The King)
1.2 索引 索引不是越多越好,你须要知道索引建立多了.写入数据的效率会减少.怎样使用索引要看你的项目的应用场景,做出合理的測试评估. 1.2.1 统计数量 统计数量上.假设字段(fieldName) ...
- Java 线程池的原理与实现(转)
这几天主要是狂看源程序,在弥补了一些以前知识空白的同时,也学会了不少新的知识(比如 NIO),或者称为新技术吧.线程池就是其中之一,一提到线程,我们会想到以前<操作系统>的生产者与消费者, ...
- GDB-Dashboard-GDB可视化界面
项目地址 https://github.com/cyrus-and/gdb-dashboard 项目介绍 gdb-dashboard是一个gdb的可视化界面,可以通过web或者终端来现实可视化信息,支 ...