用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 > ...
随机推荐
- JMS 之 Active MQ 的消息传输
本文使用Active MQ5.6 一.消息协商器(Message Broker) broke:消息的交换器,就是对消息进行管理的容器.ActiveMQ 可以创建多个 Broker,客户端与Active ...
- 4.3.3 thread对性能有何帮助
public class ThreadLocalDemo { public static final int GE_COUNT = 10000000; public static final int ...
- 大致(主要hadoop)软件下载地址
jdk-8u181-linux-x64.tar.gz https://www.oracle.com/technetwork/java/javase/downloads/index.html hadoo ...
- 洛谷 P2596 [ZJOI2006]书架 (splay)
题目描述 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书,看完后放回书柜然后再拿下一本.由于这些 ...
- centos安装mysql,tomcat
软件下载: jre和jdk下载:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javas ...
- java-02 JDK安装与环境变量配置&安装编程IDE
1.JDK下载安装与环境变量的配置 1.1 官方JDK 下载地址 大家可以到Oracle中国官方网站下载JDK,也可已 通过这个链接下载 (推荐大家下载1.8版本,这个版本是当前比较流行的版本) 也可 ...
- [LeetCode 题解]:Gray Code
题目描述: The gray code is a binary numeral system where two successive values differ in only one bit. G ...
- Android ActionBar使用方法
对于这ActionBar我想很多人都想了解一下到底是怎么一个使用方法,以及它都存在哪些可操作的和使用的地方.如下图所示:<ignore_js_op> 这便是ActionBar的基本内容.获 ...
- Ubuntu16.04实用python脚本 - 启动nautilus(Gnome的文件管理器)!
nautilus是Gnome的图形的文件管理器,可以很方便管理各种文件,但是通常我们不是在root用户下,如果想在root下使用,必须在shell里面输入命令: sudo nautilus 这样做固然 ...
- Origin如何使曲面变平滑?
在“绘图属性” - “绘图细节”窗口中选中 Layer1 下的曲面数据,“Colormap/Contours” 选项下有“Level”标签,选中并设置“Minor Levels”,将其数值调大即可.