CreateJS 学习2 图形与图像使用

本文学习资源来自:https://www.gitbook.com/book/lengziyu/learn-createjs/details

圆、矩形、多角形

<html>
    <head>
            <script src="easeljs.min.js" charset="utf-8"></script>
    </head>
    <body onload="init();">
        <canvas id="myCanvas" width="500" height="300"></canvas>
        <script>
        /*Javascript代码片段*/
        window.onload=function(){
            //获取stage
            var canvas = document.getElementById("myCanvas");
            var stage = new createjs.Stage(canvas);

            function circle(){
                //生成圆形
                var circle = new createjs.Shape();
                circle.graphics.setStrokeStyle(2).beginStroke("rgba(0,0,0,.5)").beginFill("orange").drawCircle(0, 0, 50);
                circle.x = 55;
                circle.y = 100;

                //将生成图形添加到stage中,并且调用update方法更新
                stage.addChild(circle);
                stage.update();
            }

            function rect(){
                //生成矩形
                var rect = new createjs.Shape();
                rect.graphics.beginFill("orange").drawRect(10, 10, 100, 100);
                rect.x = 120;
                rect.y = 40;

                //将生成图形添加到stage中,并且调用update方法更新
                stage.addChild(rect);
                stage.update();
            }

            function polystar(){
                //生成多角形
                var polystar = new createjs.Shape();
                polystar.graphics.setStrokeStyle(5).beginStroke("orange").drawPolyStar(290,100,5,10,10,110);

                stage.addChild(polystar);  
                stage.update();
            }

            circle();
            rect();
            polystar();
        }

        </script>
    </body>
</html>

这里写图片描述

Shapre类处理图形

<html>
    <head>
            <script src="easeljs.min.js" charset="utf-8"></script>
    </head>
    <body onload="init();">
        <canvas id="myCanvas" width="500" height="300"></canvas>
        <script>
            /*Javascript代码片段*/
            window.onload=function(){
                //获取stage
                var canvas = document.getElementById("myCanvas");
                var stage = new createjs.Stage(canvas);

                function circle(){
                    //生成圆形
                    var circle = new createjs.Shape();
                    circle.graphics.beginFill("orange").drawCircle(0, 0, 50);


                    //以下方式可以方便的修改图形相关的属性

                    //修改图形坐标
                    circle.x = Math.floor(Math.random() * 200);
                    circle.y = Math.floor(Math.random() * 350);

                    //修改图形缩放
                    circle.scaleX = Math.floor(Math.random() * 2)+1;
                    circle.scaleY = Math.floor(Math.random() * 2)+1;

                    //修改alpha和旋转
                    circle.alpha = Math.random() * 1;
                    circle.rotation = Math.floor(Math.random() * 60);

                    //设置图形相关的鼠标事件
                    circle.on("click",handleClick,null,false);            
                    circle.on("mouseout",handleMouseOut,null,false);

                    //将生成图形添加到stage中,并且调用update方法更新
                    stage.addChild(circle);
                    stage.update();
                }

                function handleClick(e){
                    alert("已经点击了圆形");
                }

                function handleMouseOut(e){
                    console.log("鼠标移出了圆形");
                }

                //生成5个不同的圆形
                for(var i=0;i<5;i++){
                    circle();
                }

            }

        </script>
    </body>
</html>

这里写图片描述

图像处理

图片使用使用Image类。

<html>
    <head>
            <script src="easeljs.min.js" charset="utf-8"></script>
    </head>
    <body onload="init();">
        <canvas id="myCanvas" width="500" height="300"></canvas>
        <script>
            /*Javascript代码片段*/

            window.onload=function(){
                //获取stage
                var canvas = document.getElementById("myCanvas");
                var stage = new createjs.Stage(canvas);

                var img = new Image();
                img.src = "http://www.gbtags.com/gb/laitu/200x200&text=GBtags/444444/ffffff";
                img.onload = handleImageLoad;

                //添加并且处理图片相关属性
                function handleImageLoad(){
                    for(var i = 0;i<3;i++){
                        var tempBitMap = new createjs.Bitmap(img);
                        var randX = Math.floor(Math.random()* 500);
                        var randY = Math.floor(Math.random() * 250);
                        var randomColor = "#"+Math.floor(Math.random()*16777215).toString(16);
                        var randomXOffset  = Math.floor(Math.random() * 10) + 5;
                        var randomYOffset  = Math.floor(Math.random() * 10) + 5;
                        stage.addChild(tempBitMap);
                        tempBitMap.x = randX;
                        tempBitMap.y = randY;
                        tempBitMap.rotation = Math.floor(Math.random() * 360);
                        tempBitMap.shadow = new createjs.Shadow(randomColor, randomXOffset, randomYOffset, 10);
                    }
                    stage.update();
                }
            }


        </script>
    </body>
</html>

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CreateJS是一组用于构建HTML5网页游戏和应用程序的JavaScript库。它由四个库组成:EaselJS,TweenJS,SoundJS和PreloadJS。 EaselJS是CreateJS库中的绘图API,鼓励使用基于对象的编程模型来创建复杂的交互式图形,动画和其他高性能图形应用程序。它提供了2D图形,动画,粒子系统和轻量级事件处理。EaselJS还可以通过Canvas和WebGL来呈现符合WebGL标准的3D图形,它提供了一个易于使用的渲染API,并且可以与其他CreateJS库无缝集成。 TweenJS是一个用于创建和管理过渡动画的JavaScript库。它支持自定义缓动和链式动画序列,使开发人员可以使用TweenJS轻松地创建复杂的交互式动画,如曲线运动和补间动画。TweenJS可以与EaselJS和其他CreateJS库一起使用,提供了更高级别的动画能力,使开发人员可以更轻松地控制动画的流程和效果。 SoundJS是CreateJS库中的音频管理库。它提供了一种易于使用的API,使开发人员可以创建、播放和控制声音。它支持HTML5之外的各种浏览器和平台,并且可以自动切换到适当的音频格式,以便在不同的浏览器和设备上播放音频。 PreloadJS是CreateJS库中的预加载库。它提供了一种易于使用的方式,以确保所有媒体文件和其他资源在应用程序加载时及时预加载,以最大程度地优化应用程序的效率和性能。 PreloadJS支持不同类型的文件和格式,并可以根据需要预加载,例如在应用程序外部加载音频文件,以免在应用程序运行时造成延迟。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程圈子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值