creator使用axios报错chart of undifine
lib/utils.js修改isStandardBrowserEnv.js,增加
if(typeof cc !== 'undefined'){
return false;
}
即可解决js charAt undefined, urlParsingNode.pathname.charAt(0)的问题
lib/utils.js修改isStandardBrowserEnv.js,增加
if(typeof cc !== 'undefined'){
return false;
}
即可解决js charAt undefined, urlParsingNode.pathname.charAt(0)的问题
creator里面没有折线图,可以参考这个
// 折线图
const { ccclass, property } = cc._decorator;
@ccclass
export default class LineChartComponent extends cc.Graphics {
@property(cc.Color)
lineColor: cc.Color = null;
@property(cc.Color)
circleColor: cc.Color = null;
@property(cc.Color)
xyColor: cc.Color = null;
@property
height = 200;
@property
width = 600;
@property
stepLeve = 7;
public paint = null;
onLoad() {
this.width += Math.floor(this.width / this.stepLeve);
}
onDestroy() {
}
start() {
this.paint = this.node.addComponent(cc.Graphics);
}
randChart() {
let list = [];
for (let i = 0; i < this.stepLeve; i++) {
list.push(Math.random() * 100);
}
this.setLineChart(list, null);
}
setLineChart(listY, listX) {
let color = this.lineColor;
// 计算数据
let max = Math.max.apply(null, listY);
let min = Math.min.apply(null, listY);
let yd = this.height / (max - min);
let xd = this.width / listY.length;
// 画横轴
this.paint.lineWidth = 5;
this.paint.strokeColor = new cc.Color(66, 66, 66, 66);
this.paint.moveTo(0, 0);
for (let i = 0; i <= this.stepLeve; i++) {
this.paint.moveTo(0, i * this.height / this.stepLeve);
this.paint.lineTo(this.width, i * this.height / this.stepLeve);
this.putLabel(-20, i * this.height / this.stepLeve - 15, Math.floor((i * (max - min) / this.stepLeve) + min), 25)
}
this.paint.stroke();
// 画数据线
this.paint.lineWidth = 5;
this.paint.strokeColor = color;
this.paint.moveTo(1, (listY[0] - min) * yd);
for (let i = 1; i < listY.length; i++) {
this.paint.lineTo(i * xd, (listY[i] - min) * yd);
}
this.paint.stroke();
// 画 刻度,点,字
this.paint.lineWidth = 4;
this.paint.strokeColor = new cc.Color(66, 66, 66, 66);
for (let i = 0; i < listY.length; i++) {
this.paint.moveTo(i * xd, 0);
this.paint.lineTo(i * xd, -10);
this.paint.stroke();
this.putPoint(i * xd, (listY[i] - min) * yd, 7)
if (listX && listX[i]) {
this.putLabel(i * xd, -40, listX[i], 25);
}
else {
this.putLabel(i * xd, -40, i, 25)
}
}
}
// xy字
putLabel(x, y, str, size) {
let textNode = new cc.Node();
let text = textNode.addComponent(cc.Label);
this.node.addChild(textNode);
text.string = str;
textNode.x = x
textNode.y = y;
textNode.height = size;
text.fontSize = textNode.height - 3;
textNode.color = this.xyColor;
}
// 画实心点
putPoint(x, y, r) {
this.paint.fillColor = this.circleColor;
this.paint.circle(x, y, r);
this.paint.fill();
}
// update (dt) {}
}
直接工具做到编译器里,这个方向不错。
window.devicePixelRatio = 3;
cc.macro.ENABLE_WEBGL_ANTIALIAS = true;
cc.view.enableRetina(true);
cc.view.resizeWithBrowserSize(true);
Editbox是creator的老问题,各个版本都有各种各样的bug,处理creator的Editbox顶的太高问题,挡住都看不到内容了,新的creator2.2.1-2.4.3都有顶太高的问题,不能选择黏贴问题。
解决方案如下:
creator引擎bug
1)editbox在web上手机打开,密码第一个显示为大写,其实为小写。
修改CocosCreator_2.2.1/resources/engine/cocos2d/core/components/editbox/WebEditBoxImpl.js
cocos EditBox光标移动到中间修改内容后光标总是跳转到最后的问题
打包h5适配首屏全屏背景,pc横屏,mobile竖排背景
1)安装 npm install --save js-base64
2)下载 .d.ts npm install --save @types/js-base64
cocos creator各个模块的作用和含义
creator小游戏集合:
https://github.com/potato47/so-many-games
http://forum.cocos.com/t/creater/48572/11
creator 圆形进度条,简书删掉一个文章,我这边就加一个吧。
creator技巧
1)旋转无锯齿:cc.macro.ENABLE_WEBGL_ANTIALIAS = true;
creator里面使用dragonBones
listview特效
1.新listview列表,左边渐隐效果,不是直接消失。左边加一个渐隐的图片,然后左距离远一点128像素,在加cell。
spine,龙骨,人物不能压缩,不然有裂缝
spine骨骼导出勾选:溢出,不是alpha预乘,这样就不会有黑边啦。
creator1.9.3是最稳定的原生版本
但是原生2D项目,1.9.3比2.x稳定多了
2.x每个版本我都下了,测了,性能都比 1.9 差,BUG也更多。没法用
不管你说啥,打死我,我也只用1.9.3
creator与webview交互
https://blog.csdn.net/qq_28299311/article/details/103162026
// 父监听消息
window.addEventListener('message', (e) => {
let sdata = e.data;
let data = JSON.parse(sdata);
cc.log('from web game:', data);
}, false);