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") 方法 序号 方法 & ...
随机推荐
- atom总结
window 系统 //查找 apm search emmet //安装 apm install emmet //删除 apm remove emmet
- Solr单机版安装
感谢 shliuzw 的分享,原文地址http://blog.csdn.net/liuzhenwen/article/details/4060922 感谢 upxiaofeng 的分享,原文地址 ht ...
- vue-cli 脚手架项目-package.json
使用vue-cli脚手架新建的项目中,含有package.json. package.json是npm的配置文件,里面设定了脚本以及项目依赖的库. npm run dev 这样的命令就写在packag ...
- Python 2.7_多进程获取简书专题数据(一)
学python几个月了正好练练手,发现问题不断提高,先从专题入手,爬取些数据,一开始对简书网站结构不熟悉,抓取推荐,热门,城市3个导航栏,交流发现推荐和热门是排序不同,url会重复,以及每个专题详情页 ...
- LeetCode Perfect Number
原题链接在这里:https://leetcode.com/problems/perfect-number/#/description 题目: We define the Perfect Number ...
- 设置nodepad++的编码问题
- qq群文件管理
一.怎样登录QQ群空间查看.管理群文件 1)登录自己的QQ,打开主面板!小编在这里以访问自己的群“我们的六班”为例.2)鼠标移动到主面板中“我们的六班”群图标处,右建单击——选择“访问QQ群空间”—— ...
- SQL Server 学习系列之四(SQL 内幕)
SQL Server 学习系列之四(SQL 内幕) SQL Server 学习系列之一(薪酬方案+基础) SQL Server 学习系列之二(日期格式问题) SQL Server 学习系列之三(SQL ...
- python之 python 起源、语言特点
一. 1.1 什么是 PythonPython 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性.它可以帮你完成工作,而且一段时间以后,你还能 ...
- Xaml中string(字符串)常量的定义以及空格的处理
(1)基本用法 xaml中可以实例化各种对象,比如在ResourceDictionary中定义字符串常量: <ResourceDictionary xmlns="http://sche ...