create可以使用flash动画吗- -有相关文章没有。。。
不支持
flash不是2020年就全面消失吗,咋还用flash,ccc的动画编辑器和flash的帧动画挺像的
后续版本会考虑支持么?
不会,为什么要考虑去支持一个都基本算被淘汰的产品呢?
已经解决。手动解析flash Plist文件,参考代码如下:
cc.loader.loadRes("png文件路径",cc.SpriteFrame,function(err,spriteFrame) {
if (err) {
console.log(err);
} else {
var plistPath = "plist文件路径";
var url = cc.url.raw(plistPath);
cc.loader.load(url, function (err, data) {
if (err) {
console.log(err);
} else {
var metadata = data.metadata;
var frames = data.frames;
var keys = Object.keys(frames);
var spriteframes = [];
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
var dic = frames[key];
var spriteSizeArray = splitWithForm(dic["spriteSize"]);
var spriteSize = cc.p(Number(spriteSizeArray[0]), Number(spriteSizeArray[1]));
var spriteOffsetArray = splitWithForm(dic["spriteOffset"]);
var spriteOffset = cc.p(Number(spriteOffsetArray[0]), Number(spriteOffsetArray[1]));
var textureRect = rectFromString(dic["textureRect"]);
var spriteSourceSizeArray = splitWithForm(dic["spriteSourceSize"]);
var spriteSourceSize = cc.p(Number(spriteSourceSizeArray[0]), Number(spriteSourceSizeArray[1]));
var textureRotated = Boolean(dic["textureRotated"]);
var spframe = new cc.SpriteFrame(spriteFrame.getTexture(), cc.rect(textureRect.x, textureRect.y, spriteSize.x, spriteSize.y), textureRotated, spriteOffset, spriteSourceSize);
spframe.name = key.replace(".png", "");
spriteframes.push(spframe);
}
var animation = self.addComponent(cc.Animation);
var clip = cc.AnimationClip.createWithSpriteFrames(spriteframes, 1 / animationData.delay);
clip.name = "animation";
clip.wrapMode = cc.WrapMode.Normal;
animation.addClip(clip);
animation.play("animation");
}
function splitWithForm (content) {
var nPosLeft = content.search("{");
var nPosRight = content.search("}");
var pointStr = content.substr(nPosLeft + 1, nPosRight - nPosLeft - 1);
var strs = pointStr.split(",");
return strs;
}
function rectFromString (str) {
var content = str;
var nPosLeft = content.search("{");
var nPosRight = content.search("}");
for (let i = 1; i < 3; ++i) {
if (nPosRight == -1) {
break;
}
nPosRight = content.indexOf('}', nPosRight + 1);
}
content = content.substr(nPosLeft + 1, nPosRight - nPosLeft - 1);
var nPointEnd = content.search('}');
nPointEnd = content.indexOf(',', nPointEnd);
var pointStr = content.substr(0, nPointEnd);
var sizeStr = content.substr(nPointEnd + 1, content.length - nPointEnd);
var pointInfo = splitWithForm(pointStr);
var sizeInfo = splitWithForm(sizeStr);
return cc.rect(Number(pointInfo[0]), Number(pointInfo[1]), Number(sizeInfo[0]), Number(sizeInfo[1]));
}
});
}
});
1赞