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事件的派发

2.0.43  Spine添加属性fps帧率，同时update方法里delta乘上fps/60

2.0.44  引擎单独导出toDisplayDataURL，该文件移入renderers文件夹内
        const注释掉osType，tbminAdpate里新增getOsType方法，同时BatchRenderer、EditableText和InputText里osType改成getOsType()
        Stage关于osType和getEnv相关修改
        Loader的loadJson和loadAB方法加上tt的预留，新增loadText方法（待测试，目前就loadAtlas里用到）
        loadAtlas修改加载时判断getEnv改成直接用loadText
        utile的index里去掉toDisplayDataURL导出，isWebGLSupported方法移到tbminAdpate里
        tbminAdpate里新增tt，改动较大，待测试，且新增getDevicePixelRatio，getOsType，预留initedByTtEnv方法

2.0.45  使用rollup打包，（待测试，包括web和淘宝环境）,esm模式待测试

2.0.46  Loader的loadRawWeb方法修改，去掉原先的onerror，onreadystatechange里判断改成readyState为4下，2XX或304为成功，其余状态失败
 
2.0.47  const的VERTICAL_ALIGN新增枚举TOP和BOTTOM，相应修改文件BitmapText和TextField

2.0.48  3d导出Raycaster类
        Scene3D的setViewport方法改成privite

2.0.49  Shape的drawEllipse方法大改，原先左上角xy，改成中心xy
        Shape的beginFill传参兼容改成number才转string，这样不用转两次
        Shape的beginStroke颜色参数兼容string类型，兼容同beginFill
        Lottie添加矢量，核心方法createShape
        Mesh3D的_render方法判断下material.alpha，为0不渲染
        Raycaster修改为继承HashObject，添加copy，clone和destroy方法
        cameras文件夹添加index.ts文件，还没用，先加上

2.0.50  主要兼容tt小游戏
        Stage的addWebMouseEvent方法改成判断canvas的addEventListener，反正addWebMouseEvent是手动调用的，报错可查
        Loader删掉所有tt的判断，进else(loadRawWeb)
        BaseTexture文件里添加IImageData，且图片源数据判断改成_data，涉及构造函数和static from
           TextureManager的updateTexture方法判断图片数据改成_data
        getTintedTexture里的tintMethod改成用到时才调用判断
        tbminAdpate里改动很大。。。待测试tb，tt，web环境

2.0.51  添加FpsPanel类
        BatchRenderer里建vao时加回attrs.aTextureId的判断
        EditableText改动较大，待测试
        tbminAdpate里新增wx，略有改动

2.0.52  TextField的textBaseline修改成middle，oy直接改成行高的一半，去掉了减文本尺寸，为了部分浏览器等环境，文本偏移严重（淘宝环境待测试）
        loadSpine抽象出parseSpineData方法
        Spine的createMesh方法去掉了判断canvasPadding，直接赋值

2.0.53  Container的update方法里不再判断自己的visible
        Sprite的_onTextureUpdate内新增逻辑this._boundsID++;
        Sprite的texture的set方法较大改动，原纹理移除update监听的判断，当前纹理始终监听，纹理赋值null时updateLocalBoundsSelf改成_onTextureUpdate（区别在注释里）
        Shape的updateShape方法里注释visible判断，注释_boundsID++，注释所有_localBoundsSelf处理，注释_onTextureUpdate，后三个s.texture.update()里都会处理
        TextField的updateText方法里注释_boundsID++，注释_localBoundsSelf处理，注释_onTextureUpdate，理由同上
        BaseTexture的_sourceChange方法改成了_sourceLoaded,且私有，相关地方替换修改，且注释两个this.dispatchEvent("loaded")（_sourceLoaded内会执行）
        Texture文件里的removeAllHandlers函数里新增removeEventListener置空

2.0.54  DisplayObject的几个方法的参数从Point改成{x:number,y:number},globalToLocal和localToGlobal的第一个参数，position、scale、anchor、skew的set方法
        Sprite添加hitTestByPixel属性，hitTestPoint方法里新增处理像素检测
        Stage的onMouseEvent方法里pageX新增兼容0兜底
        Stage的getBounds方法先注释了，以后再说
        Shape的hitTestPoint方法里的像素检测逻辑被删除了，直接用父级的hitTestPoint了
        GroupD8里的signum直接改成统一的sign方法
        ObservablePoint的copy方法参数改成了{ x: number, y: number }，且返回自身
        Point类新增copy方法
        Texture类的_rotate变私有方法，且注释了rotate的set方法，以后有办法让人为赋值显示没问题了再说

2.0.55  Sprite的anchorTexture的get方法加上返回类型，anchorTexture的set方法参数加上类型{x:number,y:number}
        Graphics的cacheAsBitmap和_texture变私有
        Graphics去掉offsetX和offsetY（涉及generateCanvasTexture），相应CanvasSpriteRenderer里的offsetXY替换成_localBoundsSelf的xy，并加上判断instanceType=="Graphics"（是否有必要）
        Graphics新增属性closePointEps，对应修改arc方法里的0.001改成该属性值，buildLine里也用到
        Graphics新增beginStroke方法，除了最后的alignment和native属性，其他和Shape的一致，为了加上三个属性cap、join、miterLimit
        Graphics把beginTextureFill和lineTextureStyle改成私有，解决几何里纹理的问题（图集，重复，变换等）前，不对外开放
        Graphics的closePath方法修改。标记closed为true，删除Polygon里的close方法
        Graphics的updateLocalBoundsSelf方法里加上调用finishPoly，然后关于lineWidth的修改较多，以后有时间再搞
        Shape的canvas、context、dirty都变私有
        Shape去掉offsetX和offsetY，相关使用删除，_drawShape方法里位图有矩阵时offsetXY替换成了anchorTextureXY乘canvasWH
        Shape的beginStroke方法参数miter默认值改成10
        buildCircle的points改成顺时针（为了buildLine统一线居中方式），sin和cos交换下
        buildLine大改，为了cap，join等等
        buildRoundedRectangle的build方法修改，判断radius，并改成顺时针，且去掉原先为了避免点重叠的0.0000000001，quadraticBezierCurve方法里加了判断不会重叠
        RoundedRectangle的构造函数里去掉了原先为了避免点重叠的0.0000000001，待测试
        LineStyle加了三个属性cap、join、miterLimit，相应clone和reset也加上
        ObservablePoint的set方法修改，去掉默认赋值0和原先的y不传时就用x，单纯xy都需要传，和point的set保持一致
        CanvasGraphicsRenderer的render方法新增赋值context属性lineCap，lineJoin，miterLimit，且去掉maxRadius丢弃小数操作|0
        TextField的canvas、context、dirty都变私有
        TextField去掉offsetX和offsetY，相关使用删除，待测试，暂时感觉没啥用，和Shape一样，原先为了CanvasSpriteRenderer里，现在这俩都用anchorTexture了

2.0.56  Container文件里新增judgeMaskEnable函数，用于renderWebGL和renderCanvas里判断遮罩数据是否可用
        Stage删除getStage静态方法，以及相关_stageList静态属性及构造内的赋值
        Stage新增属性autoSteering，用于自动旋转舞台内容，相应方法_setAlign改动较大
        BatchRenderer的flush方法里首次赋值currentGroup.blend = blendMode，打开注释
        TextField的_prepContext方法新增执行ctx.lineJoin = "round";为了描边样式
        TextField新增私有方法_cutLines，用于测量连续字符串宽度，并截取，取代原先单字符测量方式
        TextField的updateText方法内多行文本内，对于未设置文本宽度textWidth，不执行下面的测量，用else连接，realLines单独处理
        ScrollPage的scrollTo方法内缓动前增加执行移除先前缓动

2.0.57  FloatDisplay新增addHtmlElement方法，用于处理html的插入
        Stage新增autoSteering和scaleMode的get、set方法
        Event删除静态属性CALL_FRAME
        其他的都是注释的修改

2.0.58  InputText的initInfo方法font默认从微软雅黑改成Arial
        tbminAdpate废弃方法initedByCanvas和destroyCanvasContent
        loadSpine废弃原先为了兼容老版本格式的字段spine和skeletonData
        其他的都是注释和部分提示信息的修改

2.0.59  tbminAdpate暂时恢复方法initedByCanvas和destroyCanvasContent，为了老版本维护

2.0.60  FrameAni改成AnimationNode的形式，和lottie和svga类似
        SvgaAni注释声明的animationClip，不知道有啥用（父级上protect有），待测试
        SvgaAni的静态方法deepCopyFrames添加返回值类型FrameEntity[]
        Object3D添加getPosition2d的方法，stagePos的get方法也用这个，待测试

2.0.61撤回   2.0.60好像没发布，并入下面2.0.62，但是2.0.60的git提交过

2.0.62  AdjustmentFilter里OptionsInt改成IAdjustmentFilterOptions，并且export
        AdvancedBloomFilter里OptionsInt改成IAdvancedBloomFilterOptions，并且export
        2d/filter/index.ts里增加导出AdjustmentFilter里的内容
        bezierCurveControlPoint.ts删除，相应删除graphics/utils/index.ts里的导出
        graphics/utils/index.ts删除isPointsClockwise方法


2.0.63  基类Filter的resolution改成了get set方法，为了AdvancedBloomFilter，（待测试）
        buildCircle、buildPoly、buildRectangle、buildRoundedRectangle都从改成了export default改成了export方法
        添加newLoad文件，并导出里面的load方法，后续考虑删除Loader
        createTextureSheet文件里新增导出类型ITextureSheetFrameData，新增方法loadSheet
        新增接口Dict，并且很多按照这种方式修改，并且很多interface都导出了

2.0.65  Container去掉方法onChildrenChange，也确实没地方用到
        Container区分方法getChildByName和getChildrenByName
        Container的removeChild方法添加泛型，removeAllChildren和spliceChildren去掉泛型
        Container添加静态属性_childrenOperationMethods
        DisplayObject的destroy方法里removeAllEventListener的操作放到removeChild之后，否则移除舞台的事件触发不了
        Event里添加静态属性SCROLLING
        新增一个ScrollView类并导出，ScrollList也继承自它大改，待大量测试
        Object3D的lookAt方法新增一个重载，可传xyz对象
        Object3D的update方法去掉自身的visible判断

2.0.66  FpsPanel的maxValue改成120
        Button的构造函数添加提示，不希望被使用的类
        Lottie添加e属性，当前关键帧的s不存在时取前一帧的e
        ScrollView的damping默认值改成0.002
        ScrollView的up时判断累计的速度绝对值是否大于0.02，大于时才缓冲
        ScrollView修改了toMomentum的计算方式
        ScrollView的_scrollTo缓动方法默认值改成Ease.quadOut
        Object3D的destroy方法吧removeAllEventListener的操作放到removeChild之后，否则从scene移除的事件触发不了

2.0.67  AnimationClip的startAniRange方法修改，主要为了倒放时有bug
        AnimationNode的play方法新增第三个参数isFront，为了play可以按次数倒放
        AnimationNode的声明方法startAniRange修改了参数可传可不传

2.0.68  AnimationManager的showAni的callback回调函数去掉参数loop
        TextureManager的updateTexture方法里glTexture.premultiplyAlpha赋值texture.premultipliedAlpha
        D3Renderer的onContextChange方法里打开floatVertexTextures注释
        D3Renderer的flush方法里对于boneTexture的处理
            var boneTexture = new BaseTexture({ _data: boneMatrices, width: size, height: size });
            boneTexture.mipmap = false;
            boneTexture.scaleMode = SCALE_MODES.NEAREST;
            boneTexture.premultipliedAlpha = false;
        SpineAniManager的showAni的callback回调函数去掉参数loop

2.0.69  ScrollList文件里ScrollListItem添加index属性，并在onDataChanged第二个参数返回
        ScrollList里去掉sroll_id，用index代替

2.0.70  TextField的fillColor和strokeColor的set方法添加参数类型number，并判断number转化为string




getElementsByName到时要处理下

stage的鼠标事件，changedTouches考虑放开

three的wireframe会修改index，以后考虑

批处理着色器最后参考pixi的改

destroyed啥时候要处理下

setting对象是有效的，到时全局的设置就用这个

对于lottie和svga是纯json情况下，到时用weakMap存各自的纹理

D3Renderer文件里的influencesList和attrChannelHash是按照geometry的id缓存的，这样多stage用了一个geometry会有问题


需要一个矢量单独的2d绘制着色器了（顶点，颜色，纹理，），还是直接用统一的，到底哪种性能好，

Graphics，解决几何纹理的问题（图集，重复，变换，canvas绘制等）

texture的rotate属性设置修改纹理旋转会有大问题。尤其是45度角（groupD8里系数偏大）等，自身包围盒会有问题，且webgl模式下顶点计算有问题导致显示不全和纹理拉伸
在未解决前注释rotate的set方法
        
//Sprite添加像素检测还需从长计议，涉及图集的trim和rotate，还有数据格式的图片不用绘制的方式        

使用多纹理通道时需要着色器做if判断，所以性能会变差，但是使用单通道在有多纹理时需要断批一样影响性能，具体权衡暂时不改

用namespace会很方便分包，也很方便重写，是否考虑，那构建好烦

外层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生成个新的对象

有时间兼容下微信小游戏