首页 > 其他分享 >CreateJS 动画 EaselJS 动画

CreateJS 动画 EaselJS 动画

时间:2023-06-08 16:01:38浏览次数:34  
标签:动画 CreateJS createjs shape var tick EaselJS bitmapAnimation stage

本节将介绍创建图形动画,精灵表位图动画,DOM元素动画.

例子1 图形动画

<!DOCTYPE html>
<html>
<head>
	<meta charset="gbk">
	<script type="text/javascript" src="easeljs-0.6.0.min.js"></script>
</head>
<body>
	<canvas id="myCanvas" width="200" height="200">
		你的浏览器不支持canvas标签
	</canvas>
	<script>
		var myCanvas=document.getElementById("myCanvas");
		var stage=new createjs.Stage(myCanvas);
		var shape=new createjs.Shape();
		shape.graphics.beginFill("red").drawRect(0,0,50,50);
		createjs.Ticker.addEventListener("tick",tick);
		function tick(event){
			if(shape.x>stage.canvas.width){
				shape.x=0;
			}
			shape.x++;
			stage.update();
		}
		stage.addChild(shape);
		stage.update();
	</script>
</body>
</html>


createjs.Ticker.addEventListener("tick",tick);
增加时间监听器,每隔一定时间执行,参数一为事件类型,参数二为相应回调函数.

if(shape.x>stage.canvas.width){
shape.x=0;
}
如果shape的x坐标大于canvas标签宽度则回到原处.
shape.x++;
shape的x坐标加1(向右移动).

例子2 精灵表位图动画

<!DOCTYPE html>
<html>
<head>
	<meta charset="gbk">
	<script type="text/javascript" src="easeljs-0.6.0.min.js"></script>
</head>
<body>
	<canvas id="myCanvas" width="800" height="200"></canvas>
	<script>
        var myCanvas=document.getElementById("myCanvas");
		var stage=new createjs.Stage(myCanvas);
		var data={
			"animations":
				{
				"all": [0, 25],
				},
				"images": ["test.png"],
				"frames":
					{
						"height": 256,
						"width":128,
						"regX": 0,
						"regY": 0,
						"count": 26
					}
			}
		var spriteSheet = new createjs.SpriteSheet(data);
		var bitmapAnimation = new createjs.BitmapAnimation(spriteSheet);
		bitmapAnimation.x = 0;
		bitmapAnimation.y = 20;
		bitmapAnimation.gotoAndPlay("all");
		stage.addChild(bitmapAnimation);
		createjs.Ticker.setFPS(24);
		createjs.Ticker.addEventListener("tick", stage);
		bitmapAnimation.addEventListener("tick", tickEvent);
		function tickEvent(event){
			if(bitmapAnimation.x>stage.canvas.width){
				bitmapAnimation.x=0;
			}
			bitmapAnimation.x+=5;
		}
	</script>
</body>
</html>

var data={
"animations":
{
"all": [0, 25],
},
"images": ["test.png"],
"frames":
{
"height": 256,
"width":128,
"regX": 0,
"regY": 0,
"count": 26
}
}
创建SpriteSheet数据,animations包含动画集合,frames包含帧相关属性,images包含图片数据.test.png为以下图片,另存为即可.

var spriteSheet = new createjs.SpriteSheet(data);
创建SpriteSheet对象,参数一为SpriteSheet数据.

var bitmapAnimation = new createjs.BitmapAnimation(spriteSheet);
创建BitmapAnimation对象,参数一为SpriteSheet对象.

bitmapAnimation.gotoAndPlay("all");
跳到"all"并开始播放,参数一为位置标记或帧位置.

createjs.Ticker.setFPS(24);
设置每秒帧数为24.bitmapAnimation.addEventListener("tick", tickEvent);
增加tick事件监听.

例子3 DOM元素动画

<!DOCTYPE html>
<html>
<head>
	<meta charset="gbk">
	<script type="text/javascript" src="easeljs-0.6.0.min.js"></script>
	<style>
		#content{
			text-align:center;
			background-color: #000;
			color:#FFF;
			width:400px;
			height:250px;
		}
	</style>
</head>
<body>
	<div class="canvasHolder">
		<div id="content">
			<h2>例子3 DOM网页元素动画</h2>
			教程制作<br/>
			<button width="100" οnclick="alert('教程制作')">测试按钮</button>
            
		</div>
		<canvas id="myCanvas" width="400" height="250"></canvas>
	</div>
	<script>
		var myCanvas=document.getElementById("myCanvas");
		var stage=new createjs.Stage(myCanvas);
		var myCanvas=document.getElementById("content");
		var dOMElement = new createjs.DOMElement(content);
		dOMElement.regX=400;
		dOMElement.regY=250;
		dOMElement.x=400;
		dOMElement.y=250;
		stage.addChild(dOMElement);
		createjs.Ticker.addEventListener("tick", tick);
		function tick(event){
			if(dOMElement.x<document.body.clientWidth){
				dOMElement.x+=3;
			}
			stage.update();
		}
	</script>
</body>
</html>

var myCanvas=document.getElementById("content")
获取id为content的div元素.


var dOMElement = new createjs.DOMElement(content);
创建DOMElement对象,参数一为DOM元素.

标签:动画,CreateJS,createjs,shape,var,tick,EaselJS,bitmapAnimation,stage
From: https://www.cnblogs.com/guangzhiruijie/p/17466753.html

相关文章

  • Unity动画系统学习笔记
    title:Unity动画系统学习笔记date:2023-06-07T07:42:12Zlastmod:2023-06-07T11:27:45ZUnity动画系统学习笔记动画系统Unity动画系统动画片段AnimationClip:动画资源,用于展示游戏物体变化动画状态机AnimatorController:控制游戏物体各动画片段播放与切换......
  • 用 Python3 & OpenCV 将视频转成字符动画
    在介绍如何用Python3&OpenCV将视频转成字符动画之前,先简单的介绍一下OpenCV吧,毕竟可能很多小伙伴不太了解:百度百科:OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,......
  • css实现点击按钮进行右移的动画
    html页面:<divv-if="hideTip"id="tipsButton">   <el-tooltipclass="item"effect="dark"content="打印表格"placement="top">    <el-buttonicon="el-icon-printer"style=......
  • CSS3动画简介
    http://www.ruanyifeng.com/blog/2014/02/css_transition_and_animation.html[/url]参考:[color=red]CSS3transform旋转属性[/color][url]http://www.w3school.com.cn/cssref/pr_transform.asp[/url][color=red]CSS3transition渐变属性[/color][url]h......
  • jQuery动画插件: Velocity.js
    官方:[url]http://julian.com/research/velocity/[/url]介绍:[url]http://www.w3ctech.com/topic/1403[/url]使用Velocity.js改善用户体验[url]http://www.w3ctrain.com/2015/11/15/faster-ui-animations-with-velocity-js/[/url]使用VELOCITY.JS来改善和......
  • 打字动画 Typed.js
    概述Typed.js是一个JavaScript库,用于在网页上创建打字动画效果。它使您能够模拟打字机或逐字显示文本的效果,从而为用户提供逐渐展示文本的视觉体验。Typed.js提供了丰富的选项和配置,可以自定义打字动画的速度、暂停时间、删除效果等。您可以使用HTML元素或JavaScript调......
  • UE4添加人物动画之前后左右移动
    这也一节,我们来使用动画状态机的逻辑。1)编译一下,回到UE4编辑器双击我们的动画蓝图,选择动画图标,创建一个状态机,并双击状态机。2)点击引脚拉出来一个节点选择添加状态。3)更改名字为Idle说明是静止状态,然后在Idle节点拉出一个Move节点表示是移动状态,然后再从......
  • vue开场动画2
    <!--加载中动画--><style>.app-loading-box{position:fixed;display:flex;justify-content:space-around;align-items:center;width:100vw;height:100vh;top:0;}......
  • vue开场动画
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1"><metaname="renderer"content="webkit">......
  • 根据视频帧率,使用requestAnimationFrame播放动画
    当时使用webRTC进行视频通话时,通常会设置视频流的帧率,行业内一般默认帧数为15或者30,一般每秒只需要渲染15或30次当要需要对本地视频或者远端视频流进行特殊处理时,通常会使用requestAnimationFrame方法进行再次渲染requestAnimationFrame,这个方法是用来在页面重绘之前,通知浏览器......