// 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动作模块使用(自用,只有代码)的更多相关文章

  1. cocos2d js ClippingNode 制作标题闪亮特效

    1.效果图: 之前在<Android 高仿 IOS7 IPhone 解锁 Slide To Unlock>中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似 ...

  2. Angular JS的模块依赖

    AngularJS是纯客户端技术,完全用Javascript编写的.它使用的是网页开发的常规技术(HTML,CSS,Javascript),目的是让网页应用开发更快更容易. AngularJS简化应用 ...

  3. Zepto.js touch模块深入分析

    目的:记录 Zepto.js touch模块 源码阅读 源码: // Zepto.js // (c) 2010-2015 Thomas Fuchs // Zepto.js may be freely ...

  4. node.js之模块

    node.js之模块 1.自定义模块的设置 加载自定义模块利用require: eg: require('./custom_module.js') 2.从模块外部访问模块内的成员 2.1使用expor ...

  5. js模拟点击事件实现代码

    js模拟点击事件实现代码 类型:转载 时间:2012-11-06 在实际的应用开发中,我们会常常用到JS的模事件,比如说点击事件,举个简单的例子,点击表单外的"提交"按钮来提交表单 ...

  6. Node.js的安装以及Node.js的模块管理

    索引: Node.js的安装以及Node.js的模块管理Node.js开发环境搭建以及对ES6的支持Node.js构建Vue.js项目Vue.js单文件组件的开发基于Vue.js的UI组件(Eleme ...

  7. Node.js DNS 模块

    Node.js DNS 模块用于解析域名.引入 DNS 模块语法格式如下: var dns = require("dns") 方法 序号 方法 & 描述 1 dns.loo ...

  8. Node.js Net 模块

    Node.js Net 模块提供了一些用于底层的网络通信的小工具,包含了创建服务器/客户端的方法,我们可以通过以下方式引入该模块: var net = require("net") ...

  9. Node.js OS 模块

    Node.js os 模块提供了一些基本的系统操作函数.我们可以通过以下方式引入该模块: var os = require("os") 方法 序号 方法 & 描述 1 os ...

  10. Node.js Path 模块

    Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块: var path = require("path") 方法 序号 方法 & ...

随机推荐

  1. Xcode 离线文档 下载

    从下面这个xml中可获取下载地址: https://developer.apple.com/library/downloads/docset-index.dvtdownloadableindex 最后 ...

  2. cassandra——可以预料的查询,如果你的查询条件有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现

    cassandra的索引查询和排序 转自:http://zhaoyanblog.com/archives/499.html   cassandra的索引查询和排序 cassandra的查询虽然很弱,但 ...

  3. Spring_总结_04_高级配置(三)_处理歧义

    一.前言 本文承接上一节:Spring_总结_04_高级配置(二)之条件注解@Conditional 我们前面装配bean时,在Spring容器中,都是只有一个bean能匹配所需的结果. 如果有多个b ...

  4. LeetCode OJ:Serialize and Deserialize Binary Tree(对树序列化以及解序列化)

    Serialization is the process of converting a data structure or object into a sequence of bits so tha ...

  5. hive 遇到的问题及解决方法

    org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category RE ...

  6. kvm-控制台登陆配置

    vm虚拟机能否像xen虚拟机一样通过virsh console 一样采用字符界面进行linux虚拟机控制台呢,答案是肯定的,默认情况下该命令是不起作用的,需要修改相关文件才能实现. 1. 配置方法如下 ...

  7. GUID在.net里的使用

    GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可 ...

  8. 数论板子——来自Loi_black

    #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> usin ...

  9. mac下cocos+android在.bash_profile文件里的配置

    既包含了已经消失了的老板本"cocos"软件相关的配置,也包含当时最新的cocos2d-x-3.11引擎包的相关配置 支持把cocos引擎相关代码预编译出库文件存放到prebuil ...

  10. Android Studio 学习 - Activity生命周期

    落下两晚了,继续学习…… 先粘贴2张官方给的流程图: ------------------------------------------------------------------------- ...