canvas与CreateJS实现图片动画

简介: canvas与CreateJS实现图片动画

一、使用cavas实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="margin: 20px">
<canvas id="canvas" width="700" height="400" style="border:black solid 1px"></canvas>
</body>
<script>
    var c = document.getElementById("canvas");
    var ctx = c.getContext("2d");
    var butterfly = new Image();
    butterfly.src = "../img/butterfly.png";
    butterfly.onload = drawButterflies;
 
    function drawButterflies() {
        ctx.drawImage(butterfly, 0, 0, 204, 149, 0, 0, 204, 149)
        ctx.drawImage(butterfly, 0, 0, 204, 149, 200, 0, 204, 149)
        ctx.drawImage(butterfly, 0, 0, 204, 149, 400, 0, 204, 149)
        //1s后,重绘图片
        setTimeout(moveButterfly, 1000);
    }
 
    function moveButterfly() {
        //清空获取
        ctx.clearRect(0, 0, c.width, c.height);
        ctx.drawImage(butterfly, 0, 0, 204, 149, 0, 0, 204, 149)
        ctx.drawImage(butterfly, 0, 0, 204, 149, 200, 200, 204, 149)
        ctx.drawImage(butterfly, 0, 0, 204, 149, 400, 0, 204, 149)
    }
</script>
</html>

二、使用CreateJS实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../lib/easeljs.min.js"></script>
</head>
<body style="margin: 20px" onload="init()">
<canvas id="canvas" width="700" height="400" style="border:black solid 1px"></canvas>
</body>
<script>
<!--    定义舞台-->
   var stage;
   function init(){
       //初始化舞台
       stage=new createjs.Stage(document.getElementById('canvas'));
       //绑定tick事件
       createjs.Ticker.addEventListener("tick",handleTick);
       //设置更新
       createjs.Ticker.setFPS(60);
       start();
   }
  function handleTick(e){
       stage.update();
  }
  function start(){
       drawButterflies();
  }
   var butterfly2;
   function drawButterflies(){
       //获取图片路径
       var imgPath='../img/butterfly.png';
       //读取图片
       var butterfly1 = new createjs.Bitmap(imgPath);
       butterfly2 = new createjs.Bitmap(imgPath);
       var butterfly3 = new createjs.Bitmap(imgPath);
       butterfly2.x=200;
       butterfly3.x=400;
       //设置舞台元素
       stage.addChild(butterfly1,butterfly2,butterfly3);
       //更新舞台
       stage.update();
       //延时更新位置
       setTimeout(moveButterfly,1000);
  }
  function  moveButterfly(){
      butterfly2.y+=200;
  }
</script>
</html>

https://code.createjs.com/1.0.0/createjs.min.js

三、CreateJS元素交换位置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../lib/easeljs.min.js"></script>
</head>
<body style="margin: 20px" onload="init()">
<canvas id="canvas" width="700" height="400" style="border:black solid 1px"></canvas>
</body>
<script>
    <!--    定义舞台-->
    var stage;
 
    function init() {
        //初始化舞台
        stage = new createjs.Stage(document.getElementById('canvas'));
        //绑定tick事件
        createjs.Ticker.addEventListener("tick", handleTick);
        //设置更新
        createjs.Ticker.setFPS(60);
        start();
    }
 
    function handleTick(e) {
        stage.update();
    }
 
    function start() {
        drawButterflies();
    }
 
    var butterfly1
    var butterfly2;
 
    function drawButterflies() {
        //获取图片路径
        var imgPath = '../img/butterfly.png';
        //读取图片
        butterfly1 = new createjs.Bitmap(imgPath);
        butterfly2 = new createjs.Bitmap(imgPath);
 
        butterfly2.x = 90;
        butterfly2.y = 40;
        //设置舞台元素
        stage.addChild(butterfly2, butterfly1);
        //更新舞台
        stage.update();
        //延时更新位置
        setTimeout(swapButterfies, 1000);
    }
 
    function swapButterfies() {
        //元素更换位置
        stage.swapChildren(butterfly1,butterfly2)
    }
</script>
</html>


相关文章
|
5月前
|
前端开发
canvas图片操作
canvas图片操作
|
16天前
|
前端开发 JavaScript API
如何使用 Canvas 实现复杂的动画效果?
【10月更文挑战第24天】使用Canvas实现复杂的动画效果,需要综合运用JavaScript、数学知识以及对Canvas API的深入理解。
41 2
|
16天前
|
XML 前端开发 JavaScript
如何使用 SVG 和 Canvas 来创建动画?
【10月更文挑战第24天】使用 SVG 和 Canvas 创建动画都有各自的特点和优势,SVG 更适合基于 XML 和 CSS 的简单动画,而 Canvas 则更适合通过 JavaScript 实现复杂的、高性能的动画效果。在实际应用中,可以根据具体的需求和场景选择合适的技术来创建动画。
36 1
|
6月前
|
前端开发
canvas详解04-绘制文字
canvas详解04-绘制文字
79 2
canvas详解04-绘制文字
|
6月前
|
前端开发 JavaScript
canvas详解08-基本动画
canvas详解08-基本动画
44 1
|
6月前
|
前端开发
|
前端开发 JavaScript
canvas:绘制视频封面
canvas:绘制视频封面
95 0
canvas:绘制视频封面
|
移动开发 前端开发 JavaScript
使用Canvas绘制图形和动画
使用Canvas绘制图形和动画
200 0
|
前端开发
你可以学会的svg动画
你可以学会的svg动画
|
前端开发
canvas做动画
canvas做动画
205 0
canvas做动画