用Laya制作简单的动画
(function () {
var layaGameInit = window.layaGameInit || {};
var WebGL = Laya.WebGL;
var Browser = Laya.Browser;
Config.isAlpha = true;
Laya.init(750, 1100, WebGL);
Laya.stage.scaleMode = "showall";
Laya.stage.alignV = "middle";
Laya.stage.alignH = "center";
//设置背景颜色为none
Laya.stage.bgColor = "none";
//动画执行
layaGameInit.init = function (starMoney, endMoney, multiple, callback) {
Laya.stage.destroyChildren();//销毁
$('#layaContainer').show();
var Sprite = Laya.Sprite;
var Templet = Laya.Templet;
var Event = Laya.Event;
var Browser = Laya.Browser;
var Stage = Laya.Stage;
//文本库
var Text = Laya.Text;
//判断有没有主动删除
var timeoutFun = null;
(function () {
var fontText = 'PingFangSC-Medium, sans-serif';
var moneyFont = 'Arial,Helvetica,STHeiTi,sans-serif';
// //文本动画的库
var Ease = Laya.Ease;
var Tween = Laya.Tween;
var text = new Text();
var moneyTxt = new Text();
var text1 = new Text();
var text2 = new Text();
var loopFlag = true;
var mAniPath;
var mStartX = Browser.clientWidth;
var mStartY = Browser.clientHeight;
var mFactory;
var mCurrIndex = 0;
var mArmature;
var button1;
startFun();
function startFun() {
//这是动画
mAniPath = "./assets/game/ss.sk";
mFactory = new Templet();
mFactory.on(Event.COMPLETE, this, parseComplete);
mFactory.on(Event.ERROR, this, onError);
mFactory.loadAni(mAniPath);
//这个是添加文本
setTimeout(function () {
var _title = new Text();
_title.overflow = Text.HIDDEN;
_title.color = "#d2363b";
_title.font = fontText;
_title.fontSize = 35;
_title.width = 750;
_title.align = 'center';
_title.y = 450;
//这是加的文本
// var text = new Text();
text.overflow = Text.HIDDEN;
// text.color = "#d2363b";
text.color = "#d2363b";
text.font = moneyFont;
text.fontSize = 108;
text.y = 575;
text.text = starMoney + '';
moneyTxt.overflow = Text.HIDDEN;
moneyTxt.color = "#d2363b";
moneyTxt.font = moneyFont;
moneyTxt.fontSize = 36;
moneyTxt.y = 630;
moneyTxt.text = 'ss';
console.log(moneyTxt,text)
Laya.stage.addChild(moneyTxt);
Laya.stage.addChild(text);
text.x = (750-text.width)/2;
moneyTxt.x = (750-text.width)/2-30;
//定时消除第一次的数字
setTimeout(function () {
Laya.stage.removeChild(_title);
Laya.stage.removeChild(sssText);
Laya.stage.removeChild(text);
}, 1400)
}, 1000);
}
function onDecreaseAlpha1() {
if(timeoutFun){
clearTimeout(timeoutFun);
}
//关闭
$('#layaContainer').css('display', 'none');
//执行关闭回调
callback();
}
function createButton(label) {
var w = 50,
h = 50;
var buttonSkin = './assets/openRedPacket/icon-close.png';
var button = new Sprite();
button.loadImage(buttonSkin, 0, 0, w, h);//直接定义roleImg的大小及相对位置
// button.graphics.drawRect(0, 0, w, h, "#FF7F50");
button.size(w, h);
// button.graphics.fillText(label, w / 2, 17, "20px simHei", "#ffffff", "center");
return button;
}
function createTween(endMoney) {
var demoString1 = '¥' + endMoney;
let _txtArray = [];
//文字总宽度
let _txtWidth = 0;
for (var i=0 ; i<demoString1.length; i++) {
let _text = createLetter1(demoString1.charAt(i));
//计算文字总宽度
_txtWidth = _txtWidth + _text.width;
_txtArray.push(_text);
}
//文本创建时的起始x位置(>>在此使用右移运算符,相当于/2 用>>效率更高)
var offsetX1 = (Laya.stage.width - _txtWidth) / 2;
//显示的字符串
let _posX= offsetX1;
//根据"LayaBox"字符串长度创建单个字符,并对每个单独字符使用缓动动画
for (var i = 0; i < _txtArray.length; i++) {
let letterText1 =_txtArray[i];
if(i===0){
letterText1.x = _posX-15;
}else{
letterText1.x = _posX;
}
letterText1.align = 'center';
/**
//文本的初始y属性
letterText1.y = 100;
/**
* 对象letterText属性y从100缓动到300的位置
* 用1000毫秒完成缓动效果
* 缓动类型采用bounceIn
* 单个字符的缓动效果结束后,使用changeColor回调函数将字符改变为红色
* 延迟间隔i*100毫秒执行
*/
Tween.to(letterText1, {
align: 'center',
y: demoString1.charAt(i)=='¥' ? 375 : 325 //文字高度
}, 700, Ease.bounceIn, Laya.Handler.create(this, changeColor1, [letterText1]), i * 100);
_posX = _posX +letterText1.width;
}
boomArgs()
}
function showGongXi() {
text2.overflow = Text.HIDDEN;
text2.color = "#d2363b";
text2.font = fontText;
text2.fontSize = 35;
text2.width = 750;
text2.align = 'center';
text2.y = 240;
Laya.stage.addChild(text2);
text2.text = 'ssssText';
}
function boomArgs() {
text1.overflow = Text.HIDDEN;
text1.color = "#ffffff";
text1.font = fontText;
text1.fontSize = 42;
text1.width = 750;
text1.align = 'center';
text1.text = 'ssssText';
let bgBox = new Laya.Sprite();
bgBox.width = 100;
bgBox.align = 'center';
bgBox.x = 90;
bgBox.y = 880;
bgBox.pivotX = 0;
bgBox.pivotY = 0;
bgBox.rotation = -19;
bgBox.addChild(text1);
Laya.stage.addChild(bgBox);
}
//缓动改颜色
function changeColor1(txt) {
//将文本字体改变成红色
txt.color = "#d2363b";
}
//文字缓缓动
function createLetter1(char) {
//文字动画
var letter = new Text();
letter.text = char;
letter.color = "transparent";
letter.font = moneyFont;
if('¥'==char){
letter.fontSize = 42;
}else{
letter.fontSize = 108;
}
Laya.stage.addChild(letter);
return letter;
}
function onError() {
trace("error");
}
function parseComplete() {
//创建模式为1,可以启用换装
mArmature = mFactory.buildArmature(1);
mArmature.x = 375;
mArmature.y = 600;
Laya.stage.addChild(mArmature);
mArmature.on(Event.LABEL, this, onEvent);
mArmature.on(Event.STOPPED, this, completeHandler);
play();
}
function onEvent() {
}
//动画结束后回调
function completeHandler() {
//动画结束
// 字渐渐出现
createTween(endMoney);
//按钮
showButton();
timeoutFun = setTimeout(function(){
onDecreaseAlpha1();
},3000);
}
function showButton() {
button1 = createButton("关闭");
button1.x = 550;
button1.y = 150;
Laya.stage.addChild(button1);
button1.on(Event.CLICK, this, onDecreaseAlpha1);
}
function play() {
mCurrIndex++;
if (mCurrIndex >= mArmature.getAnimNum()) {
mCurrIndex = 0;
}
mArmature.play(mCurrIndex, false);
}
})();
};
window.swellGame = layaGameInit;
})();
用Laya制作简单的动画的更多相关文章
- 用CATransform3D实现3D效果和制作简单3D动画
我们先来看下CATransform3D的头文件 struct CATransform3D { CGFloat m11, m12, m13, m14; CGFloat m21, m22, m23, m2 ...
- CSS制作简单loading动画
曾经以为,loading的制作需要一些比较高深的web动画技术,后来发现大多数loading都可以用“障眼法”做出来.比如一个旋转的圆圈,并不都是将gif图放进去,有些就是画个静止图像,然后让它旋转就 ...
- css制作简单loading动画效果【css3 loading加载动画】
曾经以为,loading的制作需要一些比较高深的web动画技术,后来发现大多数loading都可以用“障眼法”做出来.比如一个旋转的圆圈,并不都是将gif图放进去,有些就是画个静止图像,然后让它旋转就 ...
- canvas制作简单动画
在画布元素<canvas>中,除了绘制图形.图像.文字外,还可以制作一些简单的动画,制作过程十分简单,主要分为两步操作: 1.自定义一个函数,用于图形的移动或其他动作. 2.使用setIn ...
- ZAM 3D 制作简单的3D字幕 流程(二)
原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...
- 推荐几款制作网页滚动动画的 JavaScript 库
这里集合了几款很棒的制作网页滚动动画的 JavaScript 库和插件.它们中,有的可以帮助你在页面滚动的时候添加动感的元素动画,有的则是实现目前非常流行的全屏页面切换动画.相信借助这些插件,你也可以 ...
- Blend制作的下载动画
最近使用Blend制作了一个下载动画,感觉很有意思,所以这篇给各位介绍下如何使用Blend制作一个简单的下载动画的步骤 首先拖出一个圆,参数如下: 选中椭圆后单击Properties面板,选择“Fil ...
- 理论制作 Windows 开机动画
第一次接触 Windows 开机动画是 2012 年,那时候魔方的版本号还是 3.12,魔方里面有个很酷炫狂霸拽的功能就是替换 Windows 7 的开机动画.一开始我是在IT之家论坛里下载开机动画, ...
- Unreal Engine 4 系列教程 Part 5:制作简单游戏
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...
随机推荐
- oracle sql 数结构表id降序
UPDATE BAS_ORGANIZATION_TYPE T1SET T1.PARENTID=(select rn from (SELECT id,rownum rn FROM BAS_ORGANIZ ...
- Spring Boot☞ 多数据源配置(二):Spring-data-jpa
效果图: 代码区: package com.wls.integrateplugs.datasource; import org.springframework.beans.factory.annota ...
- dubbo获取错误ip
JAVA_OPTIONS="-Ddubbo.protocol.host=192.168.1.111
- mysql表名忽略大小写配置
linux下mysql默认是要区分表名大小写的.mysql是否区分大小写设置是由参数lower_case_table_names决定的,其中:1)lower_case_table_names = 0 ...
- dapper利用DynamicParameters构建动态参数查询
public static int GetTotalLogin(string username,DateTime start, DateTime end) { using (var _connecti ...
- HALCON机器视觉软件
HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境.它节约了产品成本,缩短了软件开发周期——HALCON灵活的架构便于机器视觉,医学图像和图像分析 ...
- 年年岁岁花相似,岁岁年年人不同。——linux课程初探
写在前面 记得大约两年以前第一次学习linux,当初的目的还仅仅是学习操作系统,后来慢慢开始写linux内核代码,慢慢学会重构与代码的维护.在娄老师课上感觉这些工具是如此亲切和熟悉,没错这些曾经被我抛 ...
- 安装Python-Windows
安装Python-Windows 在开始Python编程前,需要先安装Python环境.Python安装包可以到Python的官网下载,官网地址是https://www.python.org/,如果想 ...
- C# 字符,字符串和文本处理。
1. 字符: 在.net中 字符是表示成16为Unicode代码值.每个字符都是System.Char结构(一个值类型)的实例. public class StringTempte { public ...
- Verilog HDL VGA Driver for Xilinx Nexys 4 适用于Nexys4的VGA驱动
/* * Function: VGA Timing Generator * Author: Liutianchen * Date: 2016-12-5 * Version: 6.0 * Environ ...