用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 > ...
随机推荐
- 使用OpenSSL进行转换
使用OpenSSL进行转换 摘自:https://cloud.tencent.com/developer/ask/29886 这些命令允许您将证书和密钥转换为不同的格式,以使它们与特定类型的服务器或软 ...
- Spring思维导图(IOC篇)
写在前面 写过java的都知道:所有的对象都必须创建:或者说:使用对象之前必须先创建.而使用ioc之后,你就可以不再手动创建对象,而是从ioc容器中直接获取对象. 就好像我们无需考虑对象的销毁回收一样 ...
- gogland golang 颜色&字体 colors&font 配置文件
<scheme name="Ya" version="142" parent_scheme="Darcula"> <opt ...
- OpenCV 4 Android
OpenCV4Android Want a Quick Start link? Use this tutorial: “OpenCV for Android SDK”. 想要快速开始吗?使用这个教程: ...
- SpringCloud教程 | 第二篇: 服务消费者(rest+ribbon)(Finchley版本)
在上一篇文章,讲了服务的注册和发现.在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的.Spring cloud有两种服务调用方式,一种是ribbon+r ...
- jQuery控制iframe框架内元素
用jQuery在IFRAME里取得父窗口的某个元素的值只好用DOM方法与jquery方法结合的方式实现了 1.在父窗口中操作 选中IFRAME中的所有单选钮$(window.frames[" ...
- uwsgi启动提示:probably another instance of uWSGI is running on the same address (:8002). bind(): Address already in use [core/socket.c line 769]
提示8002端口被占用,可以这样终止掉后再启动 sudo fuser -k 8002/tcp
- WPF 控件库——仿制Windows10的进度条
WPF 控件库系列博文地址: WPF 控件库——仿制Chrome的ColorPicker WPF 控件库——仿制Windows10的进度条 WPF 控件库——轮播控件 WPF 控件库——带有惯性的Sc ...
- Windows上编译OpenShadingLanguage
将OSL 1.3.0解压到[工作目录]/osl/OpenShadingLanguage 对Debug使用如下bat生成项目文件: @Echo off cd OpenShadingLanguage se ...
- js webstrom中svn的配置及使用
js webstorm中svn的配置及使用 一.webstorm配置svn: 1.在webstorm工具中找到file(文件)-setting(设置)菜单按钮: 2.在左边菜单中找到plus(插件) ...