1.1.7   修改的文本y偏移4
1.1.8   版本，去掉fillText和strokeText的maxW
1.1.9   新加shape,待测试,hitTestByPixel有问题得为false先

1.2.0   sprite修改，置空纹理时执行updateLocalBoundsSelf
        movieClip修改，alpha小于0.05不置visible为false，置alpha为0
        matrix修改，添加decompose方法
        const里的backupCanvas 赋值createCanvas()  

1.2.1   bitmapText的单位图字文本一致但贴图不一致，不会修改，去掉_text判断

1.2.2   backupCanvas导出修改

1.2.3   Rectangle.createFromRects修改，忽略宽高都为0的矩形；（待测试）
        sprite赋值texture时如果存在原贴图，且还没加载好，移除监听_onTextureUpdate；（待测试）
        sprite获取texture时如果是空纹理，返回null；（待测试）
        shape的_instanceType从ShapeNode改为Shape

1.2.4   button加上方法changeTexture，三个纹理属性都变成private  （代码已改，还未build）
        loader的loadImage里的url需要encodeURI一边，为了中文
        shape在updateShaper的s.texture.update();后添加_onTextureUpdate
        修改backupCanvas为getBackupCanvasCtx，返回上下文，（待测试）

1.2.5   shape的点击事件，清除颜色前要先setTransform(1,0,0,1,0,0);


1.2.6   canvasGraphicsRenderer画洞时的for循环里有bug（j写成了i）

1.2.7   修改canvasGraphicsRenderer的holePath方法里的SHAPES.CIRC，先加moveTo;
        canvasRenderTarget 修改，改变canvas宽度resize方法，宽高至少是1;

1.2.8   canvasRenderTarget还原修改，resize，否则可能有bug

1.2.9   button的changeTexture在禁用状态时贴图也要修改
        EventDispatcher添加移除指定类型的所有事件removeAllEventListenerByType

1.3.1   canvasMaskManager修改pushMask,置零globalAlpha
        frameAni修改，frameRate不判断必执行，否则默写修改过贴图集的会不生效
        frameAni新增resetTexturesAll方法
        frameAni去掉changeTexture方法，直接整合进currentFrame的set方法
        
1.3.3   Stage的webgl模式创建webgl上下文时添加属性
        textField单行文本检测加入\r  \r\n
        container里removeChildren在不传参数时的修改
        CanvasRenderTarget构造函数里添加clear方法，为了里面的clearRect，(淘宝canvas问题，绘制前必须调用过clearRect，否则有几率画不出来)
        filterManager里恢复判断target.filterArea
        maskManager里pushSpriteMask设置遮罩滤镜的范围为遮罩的bounds

1.3.5   加入lottie

1.3.6   stage的onMouseEvent添加e.preventDefault();

1.3.7   修复淘宝stage的onMouseEvent不加e.preventDefault()

1.3.8   stage挂上canvas，考虑非全屏canvas的onMouseEvent
1.3.9
1.4.0

1.4.1   修复lottie循环次数问题（自身Tween移除），stop可以传参重置或停在最后一帧,play会停留在最后一帧,如需play后重置回调时加stop

1.4.2   utils的index里加clamp方法,vao的getSize修改byteLength 

1.4.3(待测试)   graphics里的_renderCanvas执行finishPoly，缓存离屏时去掉children先
        maskManager里的pushSpriteMask执行shape的updateShape方法，修复webgl模式下shape作为遮罩时需要updateShape先绘制离屏的贴图
        canvasMaskManager里的pushMask的Graphics的形式下添加执行finishPoly，以防止Graphics没有end

1.4.4   空

1.4.5   textField测量文本区分web和tb环境
        所有根据my区分环境都用getEnv判断（总导出index去掉my置空逻辑，tbminiAdapte里面添加getEnv方法（initCanvas里修改env），
        下面几个修改环境判断 
        loader里的loadJson，
        textField文本测量，textField偏移upY，
        stage构造里获取canvasOffset，stage里onMouseEvent阻止默认事件，stage里onMouseEvent获取canvas偏移量）

1.4.6   container里添加removeAllChildren方法
        rectangle里得createFromRects方法有问题，针对wx1 == 0 和 hy1 == 0，先注释了

1.4.7   createTextureSheet里trim的判断添加图集宽高和原始宽高不相等也要算trim

1.4.8   lottie添加计算贝塞尔补间然后生成svga数据的方法lottieToSvgaData
        ui文件夹里添加贝塞尔补间方法
        (其实用Lottie类播放更流畅与文件帧率无关，但是缓动信息没了，只能完整播放)
        MovieClip添加记录原始数据rawData，
        MovieClip的totalFrames和videoWidth等改成只读，
        MovieClip的textures记录移入原始数据中，根据images记录，不进全局缓存
        MovieClip的initChildren纹理取值判断，原始数据没有就取全局缓存
        MovieClip的setImage方法修改
        MovieClip文件里添加deepCopyFrames方法，以后参考

1.4.9   修改包名为fyge，以后引入的包改为fyge

1.5.0   lottie里addTween添加h的判断不做缓动
        createTextureSheet里添加返回类型声明

1.5.1   shape的updateShape方法增加执行s._boundsID++
        shape的hitTestPoint方法增加执行this.updateShape();
        shape的calculateBounds继承前增加执行this.updateShape();（maskManager的pushSpriteMask里不需要updateShape了）

1.5.2   textField的updateText方法增加执行s._boundsID++;
        textField的calculateBounds继承前增加执行this.updateText();
        (shape和textField重写calculateBounds其实不好，应该只重写_calculateBounds，但是_boundsID++又是在update啥啥的时候执行，暂时那么搞吧)

1.5.3   Rectangle里的createFromRects静态方法x覆盖判断修改 

1.5.4   淘宝小程序环境下Loader的loadJson需要反序列化

1.5.5   scrollList里的updateData默认重置列表为true，暂时发现需要重置的但是漏写的居多，暂时也只有排行榜上拉请求多页不重置，老项目注意

1.5.6   button里设置锚点anchorXY的地方对纹理作判断，以防报错
        sprite的fromFrame去掉Error,改成warn

1.5.7   tween添加队列by方法
        loader方法添加loadRawWeb方法，修改downloadReadFile方法里的encoding（ArrayBuffer时传""）

1.5.8   tween上加入方法removeTweenSelf，移除tween实例
        scrollPage的scrollTo用Tween做缓动

1.5.9   stage上的canvasOffsetTb去掉先(这版本有问题)

1.5.10  stage上的canvasOffsetTb去掉先//后续版本都是去掉3d和spine的

2.0.0   添加3d模块
        webglRenderer里的bindVao方法添加第二个参数force，是否强制执行vao.bind()，默认false，D3Renderer里用（到时考虑根据vao的dirty判断bind）

2.0.1   VertexArrayObject里removeAttribute添加标记this.dirty = true;
        generateUniformAccessObject的GLSL_ARRAY_SETTERS里添加setMat4Array方法，传矩阵数组
        stage的onMouseEvent添加pc的points，
        stage的_mouseEventTypes添加3个pc的鼠标事件映射
        scrollPage手动移动时去掉Tween，destroy时去掉Tween
        3d添加骨骼动画
        
2.0.2   animationClip和animationManager放入2d,可公用，
        spine加入，（暂无约束）
        FloatDisplay和EditableText加入，淘宝小程序不可用
        displayObject添加斜切属性skew
        rope加入
        filterManager的 onPreRender方法及移除事件名改成驼峰，原先移除事件名写错了
        web环境处理webgl上下丢失情况,stage监听两个事件,webglRenderer里的handleContextRestored方法里添加执行resize
        
2.0.3   stage构造函数添加参数stageCenter:boolean=false,fixedHeight:boolean=false
        spine添加SpineAniManager类，处理动画切换过度，暂时最多只有两个动画叠加，临时解决硬切的问题

2.0.4   loader添加方法loadAB加载二进制数据，gltfLoader相应修改
        utils通用方法里添加ArrayBufferToBase64、decodeText方法处理buffer，gltfLoader相应修改
        spine文件夹添加方法loadSpine用于加载三合一的二进制文件
        spine添加clone方法，data和textures变成私有，不暴露
        loadAtlas封装createTexturesByAtlas方法

2.0.5   bone和spine尝试了用官方的，有问题，用回原来的，以后再说
        spine添加setSkin方法，去掉默认设置skin为defaultSkin
        Attachment替换掉worldMatrix为matrix
        AttachmentAniTrack修改传入spine，为了setSkin
        SpineAniManager的applyMixingFrom添加判断to
        spine添加获取所有动画名和所有皮肤名的get方法
        spine修改getAttachment方法，先获取skin的，再获取default的

2.0.6   AnimationClip基类修改stop方法lastTime赋值curTime，修改resetState方法设置_isPlaying改为调用stop
        Slot传入spine自身，为了获取初始attachment，不能提前获取放入，因为skin会变导致获取的attachment不固定
        Spine皮肤数据修改兼容数组形式
        所有的SpineAniTrack动画数据time等数据兼容默认数据
        Spine的updateSlots和updateDrawOrder从update移到updateTransform内
        AttachmentAniTrack和SpineColorAniTrack加方法resetValue
        readCurve兼容非数组数据，curve,c2,c3,c4
        Scene3D修改鼠标控件可配置参数
        getCusShader和D3Renderer大改，添加useMap、useEnvMap、combine、useVertexColor判断
        BaseMaterial修改map可为空，envMap、combine、reflectivity、useVertexColor属性加入
        
2.0.7   Bone类里updateTransform方法里super.updateTransform()改成this.displayObjectUpdateTransform()，否则重复多算了n次
        ObservablePoint的set方法修改，y不传时用x
        BitmapText添加垂直居中verticalAlign和间隙gap，并且修改textAlign和verticalAlign及gap的getset方法用于执行adaptate，adaptate变私有
        加了个SpineMeshRenderer，需要时把Spine里的Mesh换成SpineMesh就行，暂时不用，性能还比不上批处理
        去掉sound导出
        AxesHelper和GridHelper里的材质添加useVertexColor为true，使用顶点颜色

2.0.8   删掉AttachmentAniTrack copy.ts文件
        AnimationManager类里showAni方法里加判断，name的动画不存在则return，添加stop和reset方法（待测试，估计不怎么会用到）
        Shape统一beginGradientFill和beginGradientStroke，根据传的points确定是线性渐变还是径向渐变
        utils的getGradientColor方法修改参数points，为了径向渐变参数与w3c文档一致
        Spine动画duration计算，endtime都兼容下0;readAttachment里兼容path（部分贴图路径用了path字段）;setSkin方法修改（为了当前业务，和官网方式差异较大）
        SpineAniManager类里 applyMixingFrom方法在融合alpha到0时对AttachmentAniTrack额外做处理重置
        3d添加CircleGeometry（以后等改了attr方式和three一致后再加，否则改动地方太多）
        GLTFLoader里导出GltfData;

2.0.9   Object3D里加stagePos的get方法为了获取在舞台上的坐标
        Scene3D构造里加上自己的scene赋值
        添加Box3Helper类
        getCusShader的着色器参数增加glUid和precision，增加getMaxPrecision方法，顶点和片元改成动态拼接整数和浮点数精度

2.0.10  AnimationClip的update方法最后添加了派发END_FRAME，
        Object3D添加addChildren方法
        getCusShader里片元着色器光照处理提取了公共变量和方法光的镜面反射（以后抄three的着色器，处理光照和pbr）

2.0.11  Lottie的destroy里添加执行Tween.removeTweens(this);
        getCusShader的片元着色器里环境贴图的计算方式修改envUv


2.0.12  MovieClip的startAniRange方法处理下前三个传参beginFrame endFrame loops；beginFrame>endFrame时不颠倒（待测试）
        MovieClip的setImage方法里把canvas创建方法改成兼容的
        Stage去掉淘宝环境canvasOffsetTb的循环计算，淘宝环境返回的就是canvas上的显示坐标
        Stage的鼠标事件里的mouseOut和mouseOver派发事件的currentTarget和target调换下，currentTarget为当前捕捉的对象，target为触发事件的对象
        BitmapText的adaptate方法里的垂直对齐方式vertical的每个子级y值修改

2.0.13  canvas模式添加CanvasMeshRenderer用于渲染网格,CanvasRenderer的plugins添加mesh
        Stage添加判断webgl是否支持，否则回退，同时添加webgl获取不到时再试试experimental-webgl；
        Shape的像素检测点击加了getImageData返回值的判断，为了淘宝小程序的问题
        tbminiAdapte里 getCreateImage改成createImage，影响的地方有（Loader的loadImage方法，Lottie的init方法，MovieClip的init方法和setImage方法，）
        utils的isWebGLSupported方法修改
        utils的inputFeildIosEnable有修改，到时删掉

2.0.14  Stage的dpi字段改成_dpi
        Stage记录_scaleMode和_stageCenter
        Stage添加_setAlign方法(原来构造方法里设定缩放和视窗,现在在构造函数和resize方法里调用),
        Stage添加resize方法(外部自行监听window的resize事件调用)
        DisplayObject的getLocalBounds最后执行一次updateTransform(为了计算还原子级的transform);待观察后续
        tbminiAdapte修改了一边,但是注释了,未使用
        AttachmentAniTrack的setValue方法在time小于首帧时间时,对blend额外加了replace的或判断;待观察后续
        删除utils的inputFeildIosEnable(从没用过)

2.0.15  const里去掉了devicePixelRatio，SystemRenderer去掉devicePixelRatio引用
        Container的children类型any改成DisplayObject，spliceChildren返回值多了断言as，calculateBounds的child多了断言及_mask改成mask
        DisplayObject的parent加上类型Container，stage加上类型Stage，getBounds里多了断言，worldVisible忽略了item类型
        FloatDisplay去掉了devicePixelRatio，改成了stage["_dpi"]
        Graphics的_renderCanvas方法缓存里加了父级存在的判断
        Loader的loadSheet修改false回调加上各自的数据
        BitmapText的set text加了断言
        EditableText加了onblur和remove时scrollTo
        InputText暂不导出
        FrameAni新增getCurrentFrame方法
        Lottie新增几处断言，mark引号，layerData引号
        MovieClip的setImage加了断言
        Spine加了_instanceType，sortBone加了断言

2.0.16  Graphics的_renderCanvas方法的this.transform._parentID = -1，保证世界矩阵重新计算
        CanvasMaskManager的pushMask方法添加finishPoly执行条件
        EditableText大改，待测试
        toDisplayDataURL的传参typeInfo加入type限制png|jpeg
        
2.0.17  Shape类的各种绘图指令都加上返回自身，方便链式

2.0.18  loadAtlas里的 createTexturesByAtlas trim的y轴偏移修改

2.0.19  loadSpine修改，返回对象格式修改，包括动画数据，纹理数据，spine实例对象   
        删除determineCrossOrigin文件
        Bone计算时 noRotationOrReflection，scaleY乘上sy。负号
        InputText导出，并有较大修改
        Spine加上关于this.textures的判断
        SpineAniManager的showAni添加返回currentClip
        MovieClip里的init方法里添加移除所有子级，移除startAniRangeFun事件，
        MovieClip添加静态方法deepCopyFrames

2.0.20  Graphics的_renderCanvas方法里去掉了this.parent判断，去掉执行updateTransform
        Transform的updateWorldMatrix方法里去掉了==-1相关判断
        CanvasRenderer的render方法两个事件名修改，还有带transform时_worldID=-1改为_worldID++;
        toDisplayDataURL绘制完设置_parentID = -1;
        Scene3D修改_localId为_viewId，记录_viewport

2.0.21  新增ShaderMaterial
        D3Renderer加入自定义着色器，其他的uniforms变量单独引用自cusShader，新增fog雾化参数
        新增Spirte3D和Sprite3dMaterial
        GLTFLoader里new Geometry参数normalAttribute加了判断
        Mesh3D的clone方法加上参数
        Scene3D添加setViewRect方法
        Scene3D添加雾化方法setFog，removeFog
        Scene3D添加滤镜
        Scene3D添加getBounds方法
        BaseMaterial添加useFog属性
        getCusShader添加了很多关于fog的
        GLFramebuffers的静态方法createRGBA打开注释fbo.enableStencil()

2.0.22  Graphics的_renderCanvas方法里加回this.parent判断，并执行updateTransform，否则canvas模式会出现一帧闪烁，因为下一帧位置信息才修正，待测试
        AnimationClip的gotoAndStop方法添加第二个参数force，传入true确保必刷新动画，主要为了time传0时和lastTime相等就不刷新了
        MovieClip添加遮罩相关方法updateMask，后续考虑矢量图也能加
        Object3D添加castShadow和receiveShadow方法
        Object3D的lookAt添加判断加一个OrthographicCamera
        Object3D的updateWorldMatrix方法执行父级的方法时判断下父级的updateWorldMatrix方法是否存在
        PerspectiveCamera的clone方法添加
        PerspectiveCamera的copy里执行updateProjectionMatrix
        加了几个几何类CylinderGeometry，RingGeometry，TorusGeometry
        Matrix4的setOrtho和ortho方法的参数top和bottom替换下顺序，先top再bottom
        getCusShader着色器里预乘传入的材质和透明度 color.rgb *= color.a;
        getCusShader着色器雾化里雾化颜色乘透明uFogColor*color.a
        D3Renderer的start方法先去掉了setBlendMode，让着色器里预乘
        D3Renderer的flush方法里glVaoBuffer用generateVaoBuffer
        3d影子添加修改
           D3Renderer添加viewport，为了绘制阴影深度后还原视窗，
           D3Renderer添加shadowType
           D3Renderer里加了getShadowMap，等等很多东西
           Scene3D添加shadowType
           Scene3D添加setViewport
           Scene3D的getBounds方法修改
           Scene3D的getLightConfig修改
           DirectionalLightConfig接口添加很多参数
           新增OrthographicCamera方法
           新增LightShadow DirectionalLightShadow类
           基类Light里添加shadow
           getCusShader添加参数shadow，parameters添加useShadow和shadowType，相应预处理宏修改，着色器修改 #ifdef USE_SHADOW',
           新增着色器ShadowShader

2.0.23  display文件夹里的注释都整理了一边
        删除DisplayObject的setParent方法，基本用不到，有用到的用addChild替换
        Stage添加参数分辨率resolution，兼容老版不传的情况（外部设置canvas实际尺寸）
        Stage onMouseEvent添加标志位，阻止默认事件，阻止冒泡事件
        Stage添加方法addWebMouseEvent，不用在外面写鼠标事件，直接调用
        Event删除ABORT，START，TIMER，TIMER_COMPLETE事件，添加BLUR，INPUT事件
        EditableText的_prompt添加默认值，添加onblur和oninput事件触发
        MovieClip修改原先方法updateMask为静态方法drawBezierShape
        Bone添加shearX和shearY属性，因为原先的skewX对应-shearY，skewY对应shearX
        SpineBoneAniTrack里的skewX相关修改成shearXY
        Bone添加updateWorldTransformWith和appliedSelf方法，为了ik，后续考虑优化（现在涉及ik的子级都会多计算一次，考虑不用显示对象，尝试官方的方式）
        Spine构造函数传参修改，只需要问题放在数据里了，纹理获取相关修改，clone方法修改
        Spine添加ik约束
        Spine的findSlot方法变成公共的，为了显示隐藏插槽，这样做不保险，后续考虑优化
        新增IkConstraint

2.0.24  删除sound文件夹      
        删除ShowWord
        GDispatcher不往外导出,只在内部使用（虽然内部也没在用）,有需要自行实例
        矢量图Graphics和Shape属性名isUsedToMask修改为_isUsedToMask（Shape里原先isUsedToMask被注释了），还涉及Container,DisplayObject,ScrollPage.
        DisplayObject添加方法needUpdateBounds
        Stage销毁方法多一个web环境且webgl模式时移除上下文丢失事件
        MouseEvent删除updateAfterEvent方法，没地方用到
        Loader删除loadAudio方法
        Plane的构造传参verticesX，verticesY直接加public，文件最后加了例子Ripple
        CanvasRenderer的plugins添加了类型声明，构造函数里赋值形式改了
        WebglRenderer构造函数handleContextLost和handleContextRestored打开注释，还涉及Stage上的上下文丢失事件监听
        WebglRenderer的render方法里this.textureGC.update()打开注释，待测试有啥影响
        TextureManager的destroyTexture方法判断了是否为事件触发
        RenderTexture导出
        Texture.WHITE改回离屏canvas方式，待测试
        ShowWord删除
        ScrollPage的ENTER_FRAME监听里在触发下拉和上拉后添加s.addSpeed = 0;
        ScrollPage的onMouseEvent方法里其他鼠标事件里添加if (!s.isMouseDownState) return;
        utils的index里不再往外导出getTintedTexture，mapWebGLBlendModes，mapCanvasBlendModes，premultiplyBlendMode，具体其他影响搜索
        mapPremultipliedBlendModes直接导出修正后的premultiplyBlendMode
        tbminiAdapte全部修改，具体自行对比，原来的注释了
        删除sound文件夹
        Geometry构造函数里colors默认值从map方法改成for
        AdvancedBloomFilter构造函数里assign替换成...
        extractUniformsFromSrc返回值assign替换成...
        DrawOrderAniTrack添加resetValue重置方法
        Stage构造函数添加webglOption参数，以防webgl需要一些特殊属性时无法传入，比如抗锯齿antialias等
        
2.0.25  tbminiAdapte的createCanvas方法改回原先的方式
        utils删除了decomposeDataUri和getUrlFileExtension

2.0.26  AnimationClip添加init方法，待测试（Lottie里用到）
        删除了以前的Lottie导出（包括lottieToSvgaData方法），用LottieNew替代了Lottie，对外暴露还是Lottie
        buildBezierProps文件添加函数buildBezierProp，以后整理下，forLottie文件夹里以及原Lottie文件；
        
2.0.27  AnimationClip的startAniRange方法添加loops处理（排除null和负数等），beginTime和endTime小于0判断添加等于0判断（排除null）
        AnimationManager的showAni方法参数loops默认为0，表示默认无限循环
        Loader的loadAB方法GlobalLoader改成this，当初为啥脑抽
        Loader的loadImage方法url处理改成先decode再encode
        textField的_getMeasuredWidth方法去掉getEnv判断，淘宝小程序已修复measureText方法（但是空格的待测试TODO）
        BaseTexture的构造方法里source为Image时添加onerror方法（加载失败）
        BaseTexture的静态方法fromUrl里添加加载失败的处理
        Texture的onBaseTextureLoaded方法添加baseTexture.source的判断，判断加载失败或成功
        LottieNew大改
        MovieClip修改头部注释
        Slot的currentGraphics添加类型Graphics
        Spine修改animationManager类型为SpineAniManager
        Spine添加遮罩（tempClipContainers，ClippingAttachment，readAttachment添加SkinType.clipping，createGraphics，updateGraphics）
        SpineAniManager的showAni方法loops参数默认值修改为0，默认无限循环，applyMixingFrom修改为私有方法

2.0.28  AnimationClip加了个currentTime的get方法
        AnimationClip的gotoAndPlay、gotoAndStop、startAniRange方法的time修正改用clamp方法
        AnimationClip的startAniRange放的循环监听里callback后加上rectify。否则下一帧生效，会导致部分动效会闪一帧
        添加抽象类AnimationNode，用于SvgaAni和Lottie的抽象
        删除原先的Lottie，LottieNew作为Lottie
        导出SvgaAni
        MovieClip构造函数添加提醒替换类
        删除buildBezierEaserProps.ts文件
        buildBezierProps文件改成buildBezierProp，去掉原先的buildBezierProps方法

2.0.29  buildLine方法里对于closedShape的判断多加一条：是多边形情况下判断closed是否为true
        EditableText的initElement方法里加
           style.boxSizing = "border-box";
           style.padding = "0";
           style.margin = "0";
        EditableText新加destroy方法
        AnimationNode添加宽高width，height的get、set方法，将videoWidth，videoHeight作为初始宽高处理缩放scale，类似Sprite
           也就是Lottie和SvgaAni的宽高处理类似Sprite，同时添加_onRawDataUpdate方法供子类数据更新时调用
        AnimationNode的fps的get、set方法变为抽象，子类自行重写
        Lottie和SvgaAni的init方法里添加设置初始值的逻辑，tracks.forEach((t) => { t.resetValue() });
        Lottie和SvgaAni的init方法里添加执行_onRawDataUpdate
        Lottie文件里的LottieVisibleTrack类的resetValue方法里添加执行this.setValue(0);
        Lottie文件里的createLottieTracks方法里实例Sprite时获取纹理的逻辑修改，textures不存在或textures里字段不存在时取全局

2.0.30  Lottie的init方法里遍历tracks加了一段给LottieExpressionTrack的帧率赋值
        Lottie文件里增加setValue函数
           比如LottieBaseTrack的setValue方法替换成setValue
        Lottie新增时间轴LottieExpressionTrack，parseExpression函数，runExpressionNode函数
        Lottie文件的createLottieTracks方法里把原先分开属性修改成["o", "r", "p", "s"]数组遍历

2.0.31  Lottie新加xy维度分开的情况
           Lottie文件里KeyData接口加了s字段
           Lottie文件里LottieBaseTrack构造函数参数添加xy，setValue方法里的setValue添加xy参数
           Lottie文件里setValue方法添加参数xy，且p和s里处理xy
           Lottie文件里createLottieTracks方法遍历s，p，r，o里判断了k是否存在，不存在继续xy分开

2.0.32  Shape的calculateBounds方法里多加了判断渲染方式webgl且作为遮罩时需要_boundsID++
        BatchBuffer的destroy方法新增了float32View和uint32View的置空;
        Geometry里新增_uvsOrigin（_uvs的原始数据）和attrBufferNeedUpdate属性
        Geometry的构造函数里注释掉this._attrBuffer的赋值，移到D3Renderer的packGeometry函数里，用到再赋值
        D3Renderer里修改（为了图集的uv显示正确）
           存在贴图mat.map时新增操作，乘上纹理自己的uv，确定和几何使用的_uvs不一致时再赋值并标记修改顶点属性
           packGeometry函数大修改，涉及vao初始化及已存在时（包括阴影里的处理），upload前处理
           generateVaoBuffer函数里注释了packGeometry，

2.0.33  Sprite的texture的set方法里加判断,destroyed为true也return;

2.0.34  InputText的lineSpacing改成lineHeight，原先就是lineHeight
        删除TextField的lineSpacing，新增lineHeight

2.0.35  Container的renderWebGL对mask进行判断纹理为空或不可用或者没有几何数据时直接return不渲染
        RoundedRectangle的构造函数里对于圆角radius与最小边的半值相等时需要减个小数，防止相等，否则计算顶点会出现NaN
        CanvasMaskManager的pushMask里setTransform里a和d不能为0，降级一个小数
        SvgaAni的addAniPart增加泛型返回值
        SvgaAni新增removeAniPart方法
        D3Renderer的flush方法里自定义材质新增uniform类型matrix3
        D3Renderer的flush方法里对于map新增uUvTransform（为了图集），去掉原先傻逼的处理方式
        getCusShader里新增uUvTransform计算
        D3Renderer里对于vao.draw绘制新增point的判断
        Geometry去掉字段_uvsOrigin
        Sprite3D的几何变成公用的
        Sprite3dMaterial添加uvTransform，涉及顶点着色器，uniforms字段，map的set方法需要多处理uvTransform
        ShaderMaterial新增字段wireframe，side，，isShaderMaterial变成只读
        ShaderMaterial文件里UniformType新增matrix3类型
        有些类以后用Particles3D,IMaterial,Points3dMaterial

2.0.36  FloatDisplay修改为把updateStyle搞到stage的监听循环里，去掉renderCanvas和renderWebgl
        Texture.WHITE修改为get方法
        GLTFLoader里atob方法兼容atob_base64Decode，同时增加base64的方法

2.0.37  Graphics的hitTestPointAccuratly方法对于洞的处理进行了修改，且对判断逻辑重新梳理
        Lottie文件里的LottieVisibleTrack的setValue方法里的判断改成了前闭后开（否则对于一些序列帧动画会闪，主要后时间判断不能加等号）
        tbminiAdapte的createCanvas修改为根据getEnv()判断（因为Texture.WHITE上一版本修改为get方法了），且加了个独立的createTbOffscreenCanvas方法

2.0.38  Mesh构造加了_instanceType，索引_indices默认值修改
        TextField的updateText方法，把s._text += ""提到s._text判断前，为了赋值的0
        3d的index添加导出OrthographicCamera

2.0.39  Lottie添加静态属性useGraphicsMask，为了createLottieMask函数可以判断用Graphics或Shape
        utils里toDisplayDataURL修改导出方式，注释TextureSheetCache和GlobalPro
        toDisplayDataURL文件修改toDisplayDataURL导出方式，不用default
        D3Renderer的flush方法里mat.map和mat.envMap添加判断valid
        getCusShader的useMap和useEnvMap添加判断valid

2.0.40  为了解决透明像素裁切导致uv获取到图集内其他区域的像素（暂时传值，后续考虑宏定义区分着色器）
            D3Renderer的flush方法里mat.map里新传了uFrameUvs
            getCusShader的片元着色器新增uniform量uFrameUvs，在获取纹理uMap之后多计算一步（是否在texture的frame内）
            ShaderMaterial文件里UniformType新增any类型
            Sprite3dMaterial添加uFrameUvs，涉及片元着色器，uniforms字段，map的set方法需要多处理uFrameUvs

2.0.41  GLTFLoader封装parseGltf，并导出，可直接拿数据解析

2.0.42  Event里添加FOCUS事件
        EditableText的initElement方法加上htmlElement.onfocus事件的派发



外层canvas标签的transform数据在获取鼠标坐标时并未考虑，比如旋转     

//记录为了trim过的纹理，需要处理片元着色器，浮点数就是纹理原uv，再trim矩形内部的才绘制，考虑是否用discard，考虑用宏定义还是if，还是所有的都传都计算
//"vec2 s = step(vec2(0.6669921875,0.4111328125),vTextureCoord) - step(vec2(0.951171875,0.65625),vTextureCoord);",
//"color *= abs(s.x * s.y);",

大尺寸纹理首次传gpu使用时会掉帧，越大耗时越多。考虑如何处理（图片解析还是啥）

现在不改，索引数据过大时得用Uint32Array，同时开扩展gl.getExtension( "OES_element_index_uint" )和drawElements改参数类型为gl.UNSIGNED_INT


//现在不改，DisplayObject的getLocalBounds最后是否考虑计算一次updateTransform(不用计算自己的,为了计算子级的)
现在不改，D3Renderer里的aSkinIndex传值用了Uint8Array，类型是gl.UNSIGNED_BYTE，估计那个外星头是因为这个
//现在不改，到时loadSpine要改成返回数据（方便创建多个实例）

引擎内自执行的东西容易导致报错，以后考虑修改，改成方法获取（或者变量用到时再实例）比较安全
//(比如Texture.WHITE，到时改成静态get方法，暂时查过，没有自执行调用的地方（FillStyle,Graphics,ScrollPage...）),待测试

lottie的tm字段时啥

lottie的rx ry rz or

深度检测加透明度混合流程，
开启深度检测，gl.enable(gl.DEPTH_TEST)
绘制所有非透明对象，
锁定深度缓冲区（只读），gl.depthMask(false)
绘制所有带透明对象 a < 1.0，注意将物体按深度排序，a 最小最先绘制，（还是说按照离相机距离）
释放深度缓冲区，使之可读可写，gl.depthMask(true)

//滤镜遮罩，当Shape无指令时会导致后面绘制的东西无效，待排查

graphics一直画圆，到后面会画不出来，是超出限制了吗？

显示对象的update方法到时考虑加_（现在先加注释，避免重写覆盖，因为可能影响以前项目）

检查spine动画区间问题

检查spine变形动画切换不回默认

spine.animationManager.showAni有闪烁，考虑调用下返回值的rectify

每个类的update方法的super.update()，注意触发循环帧的时序

//FloatDisplay的updateStyle方法并不会在父级visible改变时修改，考虑如何解决

//3d的灯光应该遍历整个scene

到时手动排序，透明和不透明分开，然后根据材质

//影子，先确定那些物体能投射影子

以后要改成和three一样的几何数据处理方式，为了数据能修改
以后光照要改成和three一样的处理方式

//Scene3D的renderWebgl里的viewport需要修改，参数计算考虑缓存，viewport必执行

uViewMatrix * uModelMatrix等一些量，到时都用传入，减轻着色器计算负担

2.0.0以后的都是3d版本,前面版本有需要,index.ts修改引入后build

以后注意提交的时候带版本号，方便搜索修改记录，const里的版本要修改
//TODO
createContext到时整理下，改成createGlContext，以后所有webgl上下文获取都用这个，
CanvasRanderer里的插件注册，以后开个静态方法，方便扩展
Spine是否把showAni方法挂出来
//loadSpine考虑返回的是数据而不是Spine对象
//Lottie以后有时间考虑用track的方式来封装,和3d及spine的方式一致，显示对象上挂AnimationClip，部分方法挂出来，有办法多继承？
//shape作为遮罩在webgl模式下_boundsID不变。所以滤镜的getBound只会计算一次，到时看Shape里怎么解决；(其实所有的计算bound都有这问题)
Texture里的removeAllHandlers是否考虑加上tex.removeEventListener = function _emptyOn() { /* empty */ };
//bitmapText 考虑添加垂直居中方法（还没写）,简单起见，没标记过dirty，所以有需要先设置对齐，再设置text
//graphics的canvas模式渲染，会把子级的也缓存，现在做法，尽量不在矢量图添加子级（已改，预存子级置空，绘制后还原，待测试）

//shape的beginFill待兼容"#ff0000"和"0xff0000"，还有链式方法

ScrollPage在isSpringBack为false也做判断，触发SCROLL_TO_END或SCROLL_TO_HEAD事件

scrollList里不放数据时默认显示了一条（其实n条叠一起），待处理构造函数置空（需测试）

//shape作为遮罩时并未计算过_localBoundSelf,导致遮罩加遮罩物的点击有问题,后续考虑分开计算_localBoundSelf，暂时手动执行updateShape()
//shape在webgl模式下作为遮罩并未绘制过离屏canvas，暂时手动执行updateShape()

多page上的canvas，存在资源干扰的情况，考虑RES单独缓存，不进TextureCache缓存,createTextureSheet也不缓存进TextureCache，暂时不改，影响大

淘宝小程序的canvas路径api没用非零环绕原则，必须逆时针绘制想绘制的，顺时针绘制镂空的
文本在fillText没修复前，空格用\t替代

//Lottie的loopout的pingpong和cycle模式，后续循环有问题，layerData的op可能比rawData的op大，暂时用补间数据用MovieClip的方式处理

//Texture.WHITE得修改下，在canvas下不能用imageData去drawImage

//h5下webgl上下丢失情况需要处理事件，待加，到时可能要加在stage上了，因为渲染器里拿不到canvas标签了

//音频待处理，不考虑加入渲染引擎，单独搞个npm包吧，用的时候引入

//Graphics的_canvasRender绘制模式下也要加finishPoly

目前canvas模式下不能用纯纹理的sprite作为遮罩

//3D模块分支dev3D，只需要里面的./src/3D文件夹和./test文件夹，暂时不会把dev的修改合并到dev3D

//D3Renderer到时要考虑重新addAttr，重新bindVao，重新传数据upload，到时改造下vao，

FloatDisplay会阻止鼠标事件，因为现在stage的鼠标事件是在canvas的，
如果自行监听到canvas的父级上或body上，此时非全屏的canvas的鼠标事件会有问题，因为stage里只算了canvas包围盒，pageXY又不是canvas上的

FloatDisplay现在是body上面的。以后有时间取canvas的父级

文本以后按照bottom来，但是真实高度怎么拿

gltf加载考虑怎么变成加载数据，通过数据初始化一个显示对象，或者用paser生成个新的对象

有时间兼容下微信小游戏