2.1.0的机制不一样,我用的1.10.2的,原理应该都是一样的
解决了么??????
你的确定可以吗
var showLaunchScreen = function(path) {
if (!window.jsb) {
return;
}
console.log(‘showLaunchScreen’);
var designSize = cc.size(1136,640);
var scene = new cc.Scene();
var canvasNode = new cc.Node();
var canvas = canvasNode.addComponent(cc.Canvas);
canvasNode.parent = scene;
//先run之后才会下面的设置才会生效
cc.director.runSceneImmediate(scene);
canvas.designResolution = designSize;
var imgNode = new cc.Node();
imgNode.parent = canvasNode;
var sprite = imgNode.addComponent(cc.Sprite);
sprite.type = cc.Sprite.Type.SIMPLE;
sprite.sizeMode = cc.Sprite.SizeMode.TRIMMED;
var img = new Image();
img.srcSync = path;
var _texture = new cc.Texture2D();
_texture.initWithElement(img);
var _spriteFrame = new cc.SpriteFrame();
_spriteFrame.setTexture(_texture);
sprite.spriteFrame = _spriteFrame;
var ws = cc.view.getVisibleSizeInPixel();
var cw = ws ? ws.width : cc.winSize.width;
var ch = ws ? ws.height : cc.winSize.height;
var dw = designSize.width;
var dh = designSize.height;
var i = 1 + (cw / ch - dw / dh);
var k = 1 + (dw / dh - cw / ch);
if (i > 1) {
imgNode.width = dw * i;
imgNode.height = dh * i;
canvas.fitWidth = false;
canvas.fitHeight = true;
} else {
imgNode.width = dw * k;
imgNode.height = dh * k;
canvas.fitWidth = true;
canvas.fitHeight = false;
}
}
这个是2.0的解决方案 image添加了srcSync的方法 可以参考https://forum.cocos.com/t/creator/77755 添加同步加载图片方法
依旧会短暂黑屏
- android AppActivity oncreate 函数创建一个启动图显示在最顶层
iOS 在启动后也是同理创建启动图到最顶层
- js 在第一个场景挂个脚本, 在 start 函数中 调用 jsb 通知 原生层把启动图片隐藏.
3赞
没错,这个是安卓的实现方式,ios的类似,就oc那边加载图片有所区别