cocos2d-js动作模块使用(自用,只有代码)
// var UIBase = require("src/views/ui/UIBase.js")
// cc.loader.loadJs("src/views/ui/UIBase.js")
var LuckDrawUI = UIBase.extend({
ctor: function () {
this._super();
this.resourceFilename = "res/ui/LuckDrawUI.json";
this._initPosition = 1; //初始位置
this._Chance = [0.1,0.2,0.3,0.4,0.5,0.6,0.8,1];
this._ChanceId = 0;
this._prize_panel = undefined; //奖品容器
this._prize_img = undefined; //当前奖品
this._prize_btn = undefined;
},
initUI: function () {
cutil.unlock_ui();
this.luckdraw_panel = this.rootUINode.getChildByName("luckdraw_panel");
var self = this;
this.preClick();
//
this.luckdraw_panel.getChildByName("back_btn").addTouchEventListener(function (sender, eventType) {
if (eventType == ccui.Widget.TOUCH_ENDED) {
self.hide();
}
});
this._prize_btn=ccui.helper.seekWidgetByName(self.luckdraw_panel, "click_btn")
this._prize_btn.addTouchEventListener(function (sender,eventType){
if (eventType == ccui.Widget.TOUCH_ENDED) {
self.runNoEffect(0,0,0,0);
}
});
},
winChance:function(){
var self = this;
var id = Math.random();
cc.log("id = "+id.toString())
for (var i = 1; i < 8;i++)
{
if (id <= self._Chance[0])
{
self._ChanceId = 1;
}else
{
if (id <= self._Chance[i] && id > self._Chance[i-1])
{
self._ChanceId = i+1;
break;
}
}
}
cc.log("chanceID = "+ self._ChanceId.toString())
},
//转动效果无实际用处
runNoEffect:function(total,first,second,third) {
var self = this;
self._prize_btn.setEnabled(false);
self.winChance(); var callback_start = cc.callFunc(function () {
self._prize_img.setVisible(false);
if (self._initPosition < 8)
{
self._initPosition++;
}else
{
self._initPosition = 1;
}
self._prize_img=ccui.helper.seekWidgetByName(self.luckdraw_panel, "prize_flaring_img_"+self._initPosition.toString());
self._prize_img.setVisible(true);
}); var callback_prize = cc.callFunc(function (target, data) {
self._prize_img.setVisible(false);
cc.log("前"+self._initPosition.toString())
cc.log(data[0].toString)
if (self._initPosition < data[0])
{
self._initPosition++;
}
cc.log("后"+self._initPosition.toString())
self._prize_img=ccui.helper.seekWidgetByName(self.luckdraw_panel, "prize_flaring_img_"+self._initPosition.toString());
self._prize_img.setVisible(true);
},this,[self._ChanceId]); //抽奖结果
var callback_result = cc.callFunc(function()
{
self._prize_btn.setEnabled(true);
}); var numFirst = 0;
if (8-self._initPosition <= 0)
numFirst = 1;
else
numFirst = 8-self._initPosition;
var runFirst = cc.sequence(cc.delayTime(0.2),callback_start).repeat(numFirst+1);
var runSecond = cc.sequence(cc.delayTime(0.05),callback_start).repeat(32);
var runThird = cc.sequence(cc.delayTime(0.2),callback_start).repeat(8);
var runForth = cc.sequence(cc.delayTime(0.4),callback_prize).repeat(self._ChanceId);
self.luckdraw_panel.runAction(cc.sequence(runFirst,runSecond,runThird,runForth,callback_result));
},
//
preClick: function () {
var self = this;
self._prize_panel=this.luckdraw_panel.getChildByName("prize_panel_"+self._initPosition.toString());
cc.log(self._prize_panel.toString())
self._prize_img = self._prize_panel.getChildByName("prize_flaring_img_"+self._initPosition.toString());
cc.log(self._prize_img.toString())
if(!self._prize_img.isVisible())
{
self._prize_img.setVisible(true);
}
},
});
cocos2d-js动作模块使用(自用,只有代码)的更多相关文章
- cocos2d js ClippingNode 制作标题闪亮特效
1.效果图: 之前在<Android 高仿 IOS7 IPhone 解锁 Slide To Unlock>中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似 ...
- Angular JS的模块依赖
AngularJS是纯客户端技术,完全用Javascript编写的.它使用的是网页开发的常规技术(HTML,CSS,Javascript),目的是让网页应用开发更快更容易. AngularJS简化应用 ...
- Zepto.js touch模块深入分析
目的:记录 Zepto.js touch模块 源码阅读 源码: // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely ...
- node.js之模块
node.js之模块 1.自定义模块的设置 加载自定义模块利用require: eg: require('./custom_module.js') 2.从模块外部访问模块内的成员 2.1使用expor ...
- js模拟点击事件实现代码
js模拟点击事件实现代码 类型:转载 时间:2012-11-06 在实际的应用开发中,我们会常常用到JS的模事件,比如说点击事件,举个简单的例子,点击表单外的"提交"按钮来提交表单 ...
- Node.js的安装以及Node.js的模块管理
索引: Node.js的安装以及Node.js的模块管理Node.js开发环境搭建以及对ES6的支持Node.js构建Vue.js项目Vue.js单文件组件的开发基于Vue.js的UI组件(Eleme ...
- Node.js DNS 模块
Node.js DNS 模块用于解析域名.引入 DNS 模块语法格式如下: var dns = require("dns") 方法 序号 方法 & 描述 1 dns.loo ...
- Node.js Net 模块
Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/客户端的方法,我们可以通过以下方式引入该模块: var net = require("net") ...
- Node.js OS 模块
Node.js os 模块提供了一些基本的系统操作函数.我们可以通过以下方式引入该模块: var os = require("os") 方法 序号 方法 & 描述 1 os ...
- Node.js Path 模块
Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块: var path = require("path") 方法 序号 方法 & ...
随机推荐
- hdu 5242 Game(树链剖分,贪心¥)
Game Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdu 1517 A Multiplication Game(必胜态,必败态)
A Multiplication Game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ...
- 51nod 1437
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1437 1437 迈克步 题目来源: CodeForces 基准时间限制: ...
- myEclipse下Maven配置操作
一.Maven 安装与配置 1.点击计算机属性里的高级系统设置,点开环境变量进行配置 2.检验配置是否成功 二.手动创建一个Maven项目,并编译运行成功 1.创建一个文件夹作为项目的根目录 2. 在 ...
- ACC 001 C - Shorten Diameter 图论
题目: Problem Statement Given an undirected tree, let the distance between vertices \(u\) and \(v\) be ...
- 市场上 MLCC 226 电容现象
市场上 MLCC 226 电容现象 三星 X7R 1206 没有 16V 也有人在卖. Y5V 当 X7R 卖. X5R 当 X7R 卖. 薄电容当厚的电容卖.
- Operating System-进程/线程内部通信-临界区(Critical Regions)
上一篇文章讲述了进程之间的竞争条件:多个进程同时进入一个共享区域,导致了数据的不一致,本文主要介绍如何解决这个问题. 一.临界区介绍 解决这个问题就是阻止多个进程同时进入这个共享区域,换句话说,进程之 ...
- jquery中validation部分学习笔记
1.valid()和rules()valid()方法:检查表单或某些元素是否有效,返回值为boolean型, 全部通过检查规则返回true,只要有不通过的检查规则都返回false rules()方法: ...
- salt-minion dead but pid file exists 正确解决方法
说明: 看了网上很多关于alt-minion dead but pid file exists 的解决方法,千篇一律的写一个shell脚本 killproc salt-minion 见链接:http: ...
- IDEA 设置导出
见附件 https://files.cnblogs.com/files/chuancheng/settings.7z