DragonBones原生平台闪退

  • Creator 版本: 2.4.4

  • 目标平台: Android

  • 重现方式:模拟器报错,Android真机闪退

  • 首个报错: image

  • 重现概率: 必现,执行到 let verticesData = boundingBoxData.vertices; 时就会出现断言错误

public getBoundingBoxVertices(slotName:string):Array<cc.Vec2>{

    let slot = this.getSlot(slotName);

    if(slot){

        //更新转化矩阵信息,否则将边界框坐标转换为Cocos坐标时会有偏差

        slot.updateTransformAndMatrix();

        let boundingBoxData = slot.boundingBoxData;

        if(boundingBoxData){

            let verticesData = boundingBoxData.vertices;

            let vertices:Array<cc.Vec2> = new Array<cc.Vec2>();

            for(var i=0; i<verticesData.length; i=i+2){

                let vertice:cc.Vec2 = cc.Vec2.ZERO;

                //边界框顶点坐标转换为DragonBones坐标系中的世界坐标

                slot.globalTransformMatrix.transformPoint(verticesData[i],verticesData[i+1],vertice,false);

                //边界框顶点坐标转换为CocosCreator坐标系中的世界坐标

                vertice = this.node.transformLocalToWorldPoint(vertice);

                //保存该顶点

                vertices.push(vertice);

            }

            return vertices;

        }

        else{

            //边界框该帧不可见或不存在

            return null;

        } 

    }

    //插槽不存在

    return null;

}