UNPKG

ycc.js

Version:

Mini and powerful canvas engine for creating App or Game.

142 lines (113 loc) 3.31 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name=viewport content="width=device-width,initial-scale=1,user-scalable=0,viewport-fit=cover"> <title>UI图形测试</title> <link rel="stylesheet" href="../style.css"> </head> <body> <div class="return-btn"> <a href="../"> 返回首页 </a> </div> <div class="tip"> <h3>示例说明:</h3> <div> 1、这个示例展示系统的UI,每个UI都绘制了红色的容纳区。<br> 2、这些UI包括:单行文本、多行文本、图片、矩形、椭圆、线条、九宫格等。<br> </div> <br><br> </div> <div id="canvas"> </div> </body> </html> <script src="http://localhost:9000/livereload.js"></script> <script src="../common.js"></script> <script src="../../build/ycc.js"></script> <!--<script src="https://www.lizhiqianduan.com/products/ycc/build/ycc.js"></script>--> <script> var ycc = new Ycc({debug:{drawContainer:true}}); var canvas = ycc.createCanvas({width:300,height:800,dpiAdaptation:true}); document.getElementById("canvas").appendChild(canvas); ycc.bindCanvas(canvas); // 新建图层 var layer = ycc.layerManager.newLayer({enableEventManager:true}); // 设置UI属性 var config,ui; config ={ content:"我是多行文本的UI 超出的文字会被忽略 测试文字 测试文字 测试文字 01234567 89012 34567\n1234567890123456789012345678901234\n12345678901234567890", rect:new Ycc.Math.Rect(20,100,150,100), rectBgColor:"green", wordBreak:"break-word", opacity:0.1, overflow:"hidden" }; // 新建多行文本的UI ui = new Ycc.UI.MultiLineText(config); // 添加至图层 layer.addUI(ui); // 画一个辅助的小框来标识范围 ycc.baseUI.rect([config.rect.x,config.rect.y],[config.rect.x+config.rect.width,config.rect.y+config.rect.height]); config = { content:"我是一个单行文本 超出文字会被忽略123 456", rect:new Ycc.Math.Rect(10,10,280,50), rectBgColor:"green", yAlign:"center", overflow:"hidden" }; ui = new Ycc.UI.SingleLineText(config); layer.addUI(ui); ycc.baseUI.rect([config.rect.x,config.rect.y],[config.rect.x+config.rect.width,config.rect.y+config.rect.height]); config = { rect:new Ycc.Math.Rect(200,100,30,50) }; ui = new Ycc.UI.Rect(config); layer.addUI(ui); config = { start:new Ycc.Math.Dot(0,80), end:new Ycc.Math.Dot(800,80), width:3 }; layer.addUI(new Ycc.UI.Line(config)); config = { point:{x:40,y:400}, r:20 }; ui = new Ycc.UI.Circle(config); layer.addUI(ui); config = { point:{x:180,y:400}, r:20, width:100, height:50, angle:45, opacity:0.5, rectBgColor:"green" }; ui = new Ycc.UI.Ellipse(config); layer.addUI(ui); new Ycc.Loader().loadResParallel([ {name:"icon",url:"./img/logo.jpg"}, {name:"scale9Grid",url:"./img/bg.png"}, ],function (arr,imgs) { var config2 = { res:imgs.icon, rect:new Ycc.Math.Rect(20,220,240,100), fillMode:"repeat", rectBgColor:"blue" }; layer.addUI(new Ycc.UI.Image(config2)); config2 = { res:imgs.scale9Grid, rect:new Ycc.Math.Rect(20,520,200,100), fillMode:"scale9Grid", scale9GridRect:new Ycc.Math.Rect(15,15,20,20) }; layer.addUI(new Ycc.UI.Image(config2)); ycc.layerManager.reRenderAllLayerToStage(); }); ycc.layerManager.reRenderAllLayerToStage(); </script>