zim框架示例手册demo演示代码

代码语言:html

所属分类:动画

代码描述:zim框架示例手册demo演示代码,这个zim翻书手册,里面演示了zim通过几行代码实现的canvas动画交互效果

代码标签: 手册 demo 演示

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>

 
<meta charset="UTF-8">
 

 


</head>

<body  >
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/createjs-1.3.2.js"></script>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/zim-cat.4.js"></script>
<script src='//repo.bfw.wiki/bfwrepo/js/zim/asset/icon6.js'></script>
     
<script  >

const scaling = "fit";
const width = 1920/2; // making sure book was 1080p ratio for video
const height = 1080/2; // divided by 2 to make demo sizes bigger
const color = grey;
const outerColor = dark;    

const frame = new Frame(scaling, width, height, color, outerColor);
frame.on("ready", function() {
        zog("ready from ZIM Frame"); // logs in console (F12 - choose console)
       
        const stage = frame.stage;
        let stageW = frame.width;
        let stageH = frame.height;

        const label = new Label({
                text:"\"Code that reads like a book!\"\nTurn the pages and interact...",
                color:white,
                italic:true,
                lineHeight:50,
                align:CENTER,
                backgroundColor:dark,
                padding:50
        }).center().mov(0,-50);
        label.background.ske(10).mov(10);

        // call remote script to make ZIM icon - you will not need this
        const icon = createIcon();

        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        // ASSETS      
        // usually we load assets in Frame call
        // but wanted a message to show up in CodePen before book was made
        // so we show intro and use loadAssets() to load assets after
        const border = 30;      
        const codes = [];
        loop(9, i=>{
                codes.push("code0"+(i+1)+".png");
        });
        let assets = ["pragma.jpg", "teach.jpg", "teach.json", "createjs_1.png"];
        assets = assets.concat(codes);
        const path = "//repo.bfw.wiki/bfwrepo/js/zim/asset/";
       
        frame.loadAssets(assets, path);
        frame.on("complete", ()=>{            
                const button = new Button({
                        label:"VIEW",
                        backgroundColor:blue,
                        rollBackgroundColor:green,
                        corner:10
                })
                .sca(.7)
                .center().mov(0,50)
                .tap(makeBook);  

                const subtitle = new Label({
                        text:"click to see video",
                        color:yellow.toColor(grey,.2),
                        rollColor:green,
                        size:30                              
                }).pos(0,50,CENTER,BOTTOM).tap(()=>{
                //      zgo("https://www.youtube.com/watch?v=QQR4g8irfCM", "_blank");
                });    
               
                stage.update();
        });
       
       
        // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        // MAIN CODE
        function makeBook() {
               
                icon.removeFrom();

                // page colors left and right
                const colors = [
                        "#767676", green,
                        "#1d1f21", dark,
                        "#e2e0de", purple,
                        "#1d1f21", dark,
                        "#e2e0de", green,
                        "#1d1f21", darker,
                        "#e2e0de", yellow.darken(.2),
                        "#1d1f21", darker,
                        "#e2e0de", blue.darken(.5),
                        "#1d1f21", darker
                ];
                STYLE = {
                        type:{
                                Page:{
                                        width:stageW/2-border,
                                        height:stageH-border*2,
                                        color:series(colors) // as each page gets made it gets the next color
                                }
                        }
                }

                // class to make dashed selection box on left pages
                // used in ZIM Story video to highlight code
                class Selector extends Container {
                        constructor (obj) {
                                super(obj.width, obj.height);            
                                const that = this;
                                const s = new Shape().addTo(this);  
                                this.addTo();
                                this.obj = obj;
                                this.e1 = obj.on("mousedown", () => {
                                        s.c();
                                        that.startX = frame.mouseX;
                                        that.startY = frame.mouseY;  
                                        if (that.startY > 350) that.startY = null;    
                                })
                                this.e2 = obj.on("pressmove", () => {
                                        if (!that.startY) return;
                                        s
                                                .c().s(red).ss(2).sd([20, 10], 0)
                                                .mt(that.startX, that.startY)
                                                .lt(frame.mouseX, that.startY)
                                                .lt(frame.mouseX, frame.mouseY)
                                                .lt(that.startX, frame.mouseY)
                                                .cp();
                                .........完整代码请登录后点击上方下载按钮下载查看

网友评论0