create支持flash动画吗?

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赞