{"version":3,"sources":["libs/laya.core.js","libs/laya.wxmini.js","../../../../../../usr/local/lib/node_modules/parcel-bundler/node_modules/base64-js/index.js","../../../../../../usr/local/lib/node_modules/parcel-bundler/node_modules/ieee754/index.js","../../../../../../usr/local/lib/node_modules/parcel-bundler/node_modules/isarray/index.js","../../../../../../usr/local/lib/node_modules/parcel-bundler/node_modules/buffer/index.js","libs/laya.webgl.js","libs/laya.ani.js","libs/laya.filter.js","libs/laya.particle.js","libs/laya.tiledmap.js","libs/laya.ui.js","coreBuilder.js"],"names":["Laya","window","document","Object","Function","Array","String","writable","enumerable","configurable","prototype","substr","ofs","sz","arguments","length","__presubstr","call","_classs","forEach","o","__init$","__isclass","value","d","i","b","p","hasOwnProperty","gs","getOwnPropertyDescriptor","g","get","s","set","defineProperty","__","un","__copy","__imps","dec","src","name","__packages","strs","split","c","classHas","__super","__class","Number","__interface__","type","__typeof","parseInt","_super","__package","ins","__internals","a","self","supers","extend","nm","push","words","fullName","miniName","__extend","__classmap","indexOf","paths","console","log","Main","__hasOwnProperty","exs","clas","prop","fun","isStatic","getfn","setfn","_class","def","v","tmp","obj","__propun","names","trace","throwError","uns","static","class","getset","__newvec","__un","__static","__getset","interface","RunDriver","FILTER_ACTIONS","pixelRatio","_charSizeTestDiv","now","Date","getWindow","getPixelRatio","ctx","Browser","context","backingStore","backingStorePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","devicePixelRatio","getIncludeStr","createShaderCondition","conditionScript","fn","_runScript","fontMap","measureText","txt","font","isChinese","hanzi","test","r","getWebGLContext","canvas","beginFlush","endFinish","addToAtlas","flashFlushImage","atlasWebGLCanvas","drawToCanvas","sprite","_renderType","canvasWidth","canvasHeight","offsetX","offsetY","HTMLCanvas","create","RenderContext","renders","_fun","createParticleTemplate2D","createGLTextur","createWebGLContext2D","changeWebGLSize","w","h","createRenderSprite","next","RenderSprite","createFilterAction","ColorFilterAction","createGraphics","Graphics","clear","_context","cancelLoadByUrl","url","clearAtlas","isAtlas","bitmap","addTextureToAtlas","getTexturePixels","x","y","width","height","skinAniSprite","update3DLoop","RegExp","Config","erralert","onerror","msg","line","column","detail","alert","stack","init","__plugins","plugins","_isinit","slice","ArrayBuffer","_arrayBufferSlice","__init__","timer","Timer","scaleTimer","loader","LoaderManager","n","enable","Render","beginCheck","_currentStage","stage","Stage","conchModel","setRootNode","getUrlPath","render","size","instance","autoStopMusic","location","pathName","pathname","charAt","substring","rootPath","URL","basePath","getPath","protocol","host","start","end","arr","arrU8List","Uint8Array","newU8List","buffer","script","fromCharCode","version","MiniAdpter","navigator","userAgent","error","conchMarket","conch","PlatformClass","WebGLTextCacheCount","atlasEnable","showCanvasMark","animationInterval","isAntialias","isAlpha","premultipliedAlpha","isStencil","preserveDrawingBuffer","EventDispatcher","EventHandler","_events","__proto","hasListener","event","data","listeners","run","once","runWith","listener","splice","on","caller","args","_createListener","offBefore","off","handler","events","onceOnly","method","recover","count","item","offAll","_recoverHandlers","isMouseEvent","MOUSE_EVENTS","laya","Handler","_id","_pool","pop","setTo","_gid","id","result","apply","unshift","concat","BitmapFont","_texture","_fontCharDic","_fontWidthMap","_complete","_path","_maxWidth","_spaceWidth","_padding","fontSize","autoScaleSize","letterSpacing","loadFont","path","complete","load","replace","onLoaded","parseFont","Loader","getRes","xml","texture","tX","tInfo","getElementsByTagName","getAttributeNode","parseFont2","nodeValue","tPadding","chars","tPaddingArray","tAttribute","tId","xOffset","yOffset","xAdvance","region","Rectangle","tTexture","Texture","Math","max","attributes","getCharTexture","char","charCodeAt","destroy","setSpaceWidth","spaceWidth","getCharWidth","code","getTextWidth","text","tWidth","getMaxWidth","getMaxHeight","drawText","drawX","drawY","align","dx","graphics","drawTexture","Style","alpha","visible","scrollRect","blendMode","_type","_tf","_TF_EMPTY","getTransform","setTransform","setTranslateX","TransformInfo","translateX","setTranslateY","translateY","setScaleX","scaleX","setScale","scaleY","setScaleY","setRotate","rotate","setSkewX","skewX","setSkewY","skewY","getCSSStyle","CSSStyle","EMPTY","_enableLayout","Font","_weight","_decoration","_text","indent","_color","Color","defaultColor","family","defaultFamily","stroke","_STROKE","defaultSize","copyTo","str","italic","bold","toString","strColor","weight","color","defaultFont","_ITALIC","_PASSWORD","_BOLD","_one","_cmds","_render","_renderEmpty","isConchNode","_nativeObj","_conchGraphics","conchID","_graphicBounds","_vectorgraphArray","_sp","recoverCmds","len","tCmd","callee","_drawTexture","_drawTextureWithTransform","_cache","_repaint","getInstance","deleteShape","_clearBoundsCache","reset","_initGraphicBounds","GraphicsBounds","_graphics","repaint","_isOnlyOne","getBounds","realSize","getBoundPoints","_addCmd","shift","setFilters","fs","_saveToCmd","_setFilters","tex","m","sourceWidth","sourceHeight","offset","isWebGL","onFirefox","onEdge","onIE","onSafari","wRate","hRate","loaded","_renderOneImg","_textureLoaded","cleanByTexture","drawTextures","pos","_drawTextures","fillTexture","Point","_fillTexture","param","fillCircle","cx","cy","radius","segNum","enableMerageInAtlas","verts","Float32Array","uvs","indices","Uint16Array","dang","PI","cang","idx","px","cos","py","sin","drawTriangles","vertices","matrix","_renderOne","_renderAll","clipRect","_clipRect","fillText","textAlign","underLine","_fillText","fillBorderText","fillColor","borderColor","lineWidth","_fillBorderText","strokeText","_strokeText","_alpha","setAlpha","_setAlpha","transform","pivotX","pivotY","_transform","angle","_rotate","scale","_scale","translate","_translate","save","_save","restore","_restore","replaceText","cmds","_isTextCmd","toUpperCase","setText","replaceTextColor","changed","loadImage","_$this","onloaded","cmd","drawLine","fromX","fromY","toX","toY","lineColor","VectorGraphManager","getId","_drawLine","drawLines","points","_drawLines","drawCurves","_drawCurves","drawRect","lineOffset","_drawRect","drawCircle","_drawCircle","drawPie","startAngle","endAngle","Utils","toRadian","_drawPie","drawPoly","tIsConvexPolygon","_drawPoly","drawPath","brush","pen","_drawPath","from","display","to","ConchGraphics","list","temp","drawImageS","source","uv","drawImageM","ctxi","pat","DEF_UV","createPattern","sX","sY","_fillImage","_cacheBoundsType","_temp","_rstBoundPoints","_bounds","_getWrapRec","_getCmdPoints","copyArray","rst","matrixs","_tempCmds","_tempMatrixArrays","tMatrix","_initMatrix","identity","tempMatrix","_tempMatrix","NaN","oWidth","oHeight","offX","offY","clone","_switchMatrix","_addPointArrToRst","_getBoundPointS","drawMatrix","_fillCircle","_tempPoints","Bezier","I","getBezierPoints","_getPathPoints","_getPiePoints","_getBoundPoints","GrahamScan","scanPList","tMatix","delta","step","tCMD","dy","_addPointToRst","_tempPoint","TEMP","transformPoint","Matrix","Event","currentTarget","target","stopPropagation","_stoped","mouseY","nativeEvent","charCode","touches","e","point","clientX","clientY","_canvasTransform","invertTransformPoint","stageX","stageY","keyLocation","ctrlKey","altKey","shiftKey","mouseX","MOUSE_DOWN","MOUSE_UP","CLICK","RIGHT_MOUSE_DOWN","RIGHT_MOUSE_UP","RIGHT_CLICK","MOUSE_MOVE","MOUSE_OVER","MOUSE_OUT","MOUSE_WHEEL","ROLL_OVER","ROLL_OUT","DOUBLE_CLICK","CHANGE","CHANGED","RESIZE","ADDED","REMOVED","DISPLAY","UNDISPLAY","ERROR","COMPLETE","LOADED","PROGRESS","INPUT","RENDER","OPEN","MESSAGE","CLOSE","KEY_DOWN","KEY_PRESS","KEY_UP","FRAME","DRAG_START","DRAG_MOVE","DRAG_END","ENTER","SELECT","BLUR","FOCUS","VISIBILITY_CHANGE","FOCUS_CHANGE","PLAYED","PAUSED","STOPPED","START","END","ENABLE_CHANGED","ACTIVE_IN_HIERARCHY_CHANGED","COMPONENT_ADDED","COMPONENT_REMOVED","LAYER_CHANGED","HIERARCHY_LOADED","RECOVERED","RELEASED","LINK","LABEL","FULL_SCREEN_CHANGE","DEVICE_LOST","MESH_CHANGED","MATERIAL_CHANGED","WORLDMATRIX_NEEDCHANGE","ANIMATION_CHANGED","TRIGGER_ENTER","TRIGGER_STAY","TRIGGER_EXIT","TRAIL_FILTER_CHANGE","DOMINO_FILTER_CHANGE","KeyBoardManager","Keyboard","NUMBER_0","NUMBER_1","NUMBER_2","NUMBER_3","NUMBER_4","NUMBER_5","NUMBER_6","NUMBER_7","NUMBER_8","NUMBER_9","A","B","C","D","E","F","G","H","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","NUMPAD","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_ADD","NUMPAD_DECIMAL","NUMPAD_DIVIDE","NUMPAD_ENTER","NUMPAD_MULTIPLY","NUMPAD_SUBTRACT","SEMICOLON","EQUAL","COMMA","MINUS","PERIOD","SLASH","BACKQUOTE","LEFTBRACKET","BACKSLASH","RIGHTBRACKET","QUOTE","ALTERNATE","BACKSPACE","CAPS_LOCK","COMMAND","CONTROL","DELETE","ESCAPE","PAGE_UP","PAGE_DOWN","HOME","LEFT","UP","RIGHT","DOWN","SHIFT","SPACE","TAB","INSERT","_addEvent","addEventListener","_dispatch","enabled","_event","keyCode","which","_pressKeys","ct","focus","displayedInStage","parent","hasKeyDown","key","MouseManager","KeyLocation","STANDARD","NUM_PAD","disableMouseEvent","mouseDownTime","mouseMoveAccuracy","_stage","_target","_lastMoveTimer","_isLeftMouse","_eventList","_touchIDs","_tTouchID","_matrix","_point","_rect","_prePoint","_curTouchID","_this","oncontextmenu","preventDefault","_isFirstTouch","Input","isInputting","initEvent","evt","pageX","pageY","touchId","identifier","TouchManager","checkMouseWheel","wheelDelta","_lastOvers","getLastOvers","ele","onMouseMove","onMouseDown","contains","pre_input","new_input","multiline","onMouseUp","check","sp","callBack","fromParentPoint","hitTestPrior","mouseThrough","hitTest","_childs","child","destroyed","mouseEnabled","isHit","hitArea","utils","HitArea","getGraphicBounds","hitRect","runEvent","touch","j","_isTouchRespond","button","abs","changedTouches","multiTouchEnabled","isNaN","touchends","touchemoves","stageMouseOut","preOvers","preDowns","preRightDowns","_lastClickTime","_clearTempArrs","_oldArr","_newArr","_tEleArr","getTouchFromArr","touchID","tTouchO","removeTouchFromArr","createTouchO","Pool","getItem","tar","isLeft","preO","tO","arrs","getEles","onMobile","sendEvents","eles","tE","checkMouseOutAndOverOfMove","eleNew","elePre","oldArr","newArr","tIndex","lastOvers","sendArr","isDouble","Filter","_action","imps","callNative","COLOR","GLOW","_filterStart","_filterEnd","_EndTarget","_recycleScope","_filter","_useSrc","_endSrc","_useOut","_endOut","srcCanvas","imgdata","nData","getImageData","getColor","putImageData","red","green","blue","_mat","mat","tempAlpha","Arith","formatR","isPOT","setMatToArray","array","tx","ty","_controlPoints","_calFun","getPoint2","_switchPoint","tPoint","t","p1","p2","p3","lineX","pow","lineY","getPoint3","p4","insertPoints","dLen","pList","inSertCount","multiply","p0","dis","_getPoints","tempUse","_mPointList","getFrom","getFromR","pListToPointList","_tempPointList","pointListToPlist","pointList","_temPList","scan","PointSet","ch","k","_tmpDic","_temArr","MathUtil","subtractVector3","l","lerp","left","right","amount","scaleVector3","f","lerpVector3","ax","ay","az","lerpVector4","aw","slerpQuaternionArray","Offset1","Offset2","out","Offset3","omega","cosom","sinom","scale0","scale1","bx","by","bz","bw","acos","getRotation","x0","y0","x1","y1","atan2","sortBigFirst","sortSmallFirst","sortNumBigFirst","parseFloat","sortNumSmallFirst","sortByKey","bigFirst","forceNum","_sortFun","inPool","bTransform","_checkTransform","setTranslate","a1","c1","tx1","skew","tanX","tan","tanY","b1","d1","a2","b2","c2","d2","tx2","ty2","transformPointN","transformPointArray","transformPointArrayScale","getScaleX","sqrt","getScaleY","invert","scaleEx","ba","bb","bc","bd","rotateEx","cache","_length","mul","m1","m2","aa","ab","ac","ad","atx","aty","btx","bty","mul16","mulPre","mulPos","preMul","pa","pb","pc","pd","na","nb","nc","nd","ntx","nty","preMulXY","distance","normalize","copyFrom","bottom","intersects","rect","intersection","min","union","addPoint","equals","_temB","isEmpty","_temA","minX","maxX","minY","maxY","SoundManager","_useAudioMusic","_musicClass","AudioSound","_autoStopMusic","_stageOnBlur","_stageOnFocus","_visibilityChange","_muted","stopAllSound","musicMuted","_musicMuted","_tMusic","_musicChannel","isStopped","pause","resume","_soundMuted","addChannel","channel","_channels","removeChannel","disposeSoundIfNotUsed","destroySound","isVisibility","_isActive","_blurPaused","_recoverWebAudio","WebAudioSound","state","playSound","loops","soundClass","startTime","formatURL","isConchApp","ext","getFileExtension","tSound","onMiniGame","_soundClass","cacheRes","play","volume","musicVolume","soundVolume","completeHandler","clearRes","dispose","playMusic","stop","stopSound","stopAll","stopMusic","setSoundVolume","_setVolume","setMusicVolume","playbackRate","autoReleaseSound","LocalStorage","Storage","_baseClass","items","support","setItem","setJSON","getJSON","removeItem","localStorage","warn","JSON","stringify","parse","TTFLoader","ResourceVersion","manifestFile","callback","net","onManifestLoaded","customFormat","addVersionPrefix","manifest","originURL","FOLDER_VERSION","FILENAME_VERSION","fontName","err","_fontTxt","_url","_div","_txtWidth","_http","fontPath","tArr","_loadConch","FontFace","_loadWithFontFace","_loadWithCSS","HttpRequest","_onErr","_onHttpLoaded","send","setFontFaceFromBuffer","_clearHttp","_checkComplete","parentNode","removeChild","fontFace","fonts","add","then","_createDiv","createElement","innerHTML","_style","style","fontFamily","position","top","body","appendChild","fontStyle","textContent","onload","loop","_testString","base","char1","formatRelativePath","parts","join","isAbsolute","lastIndexOf","getFileName","newUrl","_timeId","_mainCanvas","background","isWebGl","WebGL","container","setIsMainContext","requestAnimationFrame","_loop","_onVisibilitychange","clearInterval","setInterval","_enterFrame","isConchWebGL","is3DMode","optimizeTextureMemory","ConchRenderType","drawTextureWithTransform","_fillQuadrangle","fillQuadrangle","fillStyle","fillRect","strokeStyle","strokeRect","setPathId","beginPath","movePath","moveTo","arc","closePath","_fillAndStroke","_fillRect","drawCall","PI2","fill","_setShader","setShader","lineTo","_drawLinesWebGL","_draw","_transformByMatrix","transformByMatrix","_setTransform","_setTransformByMatrix","setTransformByMatrix","globalAlpha","_blendMode","globalCompositeOperation","_beginClip","beginClip","_setIBVB","setIBVB","_fillTrangles","fillTrangles","arcTo","lineJoin","lineCap","miterLimit","_drawSkin","tSprite","_drawParticle","drawParticle","getContext","_setContext","point4","drawCanvas","strokeColor","isConvexPolygon","index0","index1","index2","drawTriangle","shader","fillWords","fillBorderWords","flush","addRenderObject","endClip","_next","NORENDER","_no","_image","_blend","_canvas","_mask","_clip","_custom","_image2","_initRenderFun","onCreate","customRender","tf","mask","numChildren","cacheAsBitmap","drawTexture2","_needRepaint","paddingLeft","paddingTop","_calculation","_getWords","tStyle","textDecoration","childs","viewport","optimizeScrollRect","_x","_y","_cacheCanvas","_$P","cacheCanvas","Stat","canvasBitmap","canvasNormal","_canvas_repaint","tRec","_cacheRec","tCacheType","getSelfBounds","floor","clientScaleX","clientScaleY","chainScaleX","chainScaleY","asBitmap","cf","setFilterMatrix","_applyFilters","staticCache","reCache","canvasReCache","initRender","_initSame","_getTypeRender","tType","IMAGE","ALPHA","TRANSFORM","BLEND","CANVAS","FILTERS","MASK","CLIP","STYLE","GRAPHICS","CUSTOM","CHILDS","INIT","Context","replaceReset","replaceKeys","newKeys","replaceResotre","__restore","__reset","drawImage","__fillRect","textBaseline","__fillText","__strokeText","clip","args2","alphaChanged","other","oX","oY","canvasPadding","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","x2","y2","paddingX","centerX","centerY","normX","normY","dist","dDelta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","tHeight","dX","clearRect","quadraticCurveTo","resource","CanvasRenderingContext2D","inited","replaceCanvasGetSet","oldO","newO","tkey","preFun","_ct","replaceGetSet","dataKey","_default","ResourceManager","_name","_resources","_memorySize","_garbageCollectionRate","_isOverflow","autoRelease","autoReleaseMaxSize","_uniqueIDCounter","_isResourceManagersSorted","_resourceManagers","getResourceByIndex","index","getResourcesLength","addResource","resourceManager","removeResource","_resourceManager","addSize","memorySize","unload","tempResources","_systemResourceManager","Error","garbageCollection","reserveSize","all","sort","released","_lastUseFrameCount","currentFrameCount","loopCount","resou","releaseResource","currentResourceManager","systemResourceManager","getLoadedResourceManagerByIndex","getLoadedResourceManagersCount","recreateContentManagers","force","activeResource","releaseContentManagers","System","changeDefinition","classObj","disableConchResManager","disableConchAutoRestoreLostedDevice","canvasRotation","clientWidth","clientHeight","innerWidth","_window","innerHeight","documentElement","_container","_document","_onMessage","__createElement","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","$BS","u","onIOS","match","onIPhone","onMac","onIPad","onAndroid","onWP","onQQBrowser","onMQQBrowser","ActiveXObject","onWeiXin","onPC","onLimixiu","httpProtocol","webAudioEnabled","soundType","Sound","initWebAudio","_initMusicAudio","enableTouch","DocumentTouch","__innerHeight","createEvent","dispatchEvent","getElementById","removeElement","Byte","_xd_","_allocated_","_pos_","_u8d_","_d_","DataView","byteLength","___resizeBuffer","newByteView","subarray","getString","rUTF","getUint16","getFloat32Array","getUint8Array","getInt16Array","Int16Array","getFloat32","getFloat64","writeFloat32","ensureWrite","setFloat32","writeFloat64","setFloat64","getInt32","float","getUint32","writeInt32","setInt32","writeUint32","setUint32","getInt16","us","writeUint16","setUint16","writeInt16","setInt16","getUint8","writeUint8","setUint8","_getUInt8","_getUint16","_getMatrix","getCustomString","ulen","__getBuffer","writeUTFBytes","writeByte","writeUTFString","tPos","dPos","readUTFString","readUTFBytes","getUTFString","lastBytes","bytesAvailable","getUTFBytes","setInt8","readByte","getInt8","getByte","lengthToEnsure","writeArrayBuffer","arraybuffer","uint8array","rstBuffer","endianStr","getSystemEndian","_sysEndian","BIG_ENDIAN","LITTLE_ENDIAN","CacheManager","regCacheByFunction","disposeFunction","getCacheListFunction","unRegCacheByFunction","tryDispose","getCacheList","_cacheList","forceDispose","waitTime","_checkLoop","stopCheck","cacheList","tTime","_index","loopTimeLimit","ClassUtils","regClass","className","classDef","_classMap","getRegClass","compClass","getClass","createByJson","json","node","root","customHandler","instanceHandler","props","runtime","renderType","addGraphicsToSprite","isDrawType","addGraphicToSprite","tChild","addChild","itemRender","customProps","created","graphicO","_getGraphicsFromSprite","ox","oy","_getObjVar","_addGraphicToGraphics","isChild","dataO","propsName","_getTransformData","propsO","sx","sy","graphic","drawConfig","DrawTypeDic","params","_getParams","_tM","_adptLineData","_adptTextureData","_adptLinesData","_getPointListByStr","xPos","adptFun","_temParam","pointArr","noValue","classObject","numColor","flag","toHexColor","__id","_COLODID","_initDefault","_DEFAULT","_COLOR_MAP","_SAVE","_initSaveMap","_SAVE_SIZE","Dragging","Dictionary","_values","_keys","remove","ratio","maxOffset","_dragging","_clickOnly","area","hasInertia","elasticDistance","elasticBackTime","clearTimer","_disableMouseEvent","globalScaleX","globalScaleY","_parent","_elasticRateX","_elasticRateY","_lastX","_lastY","onStageMouseUp","frameLoop","tweenMove","_tween","backToArea","getMousePoint","_offsets","_set$P","checkArea","_offsetX","_offsetY","checkElastic","Tween","Ease","sineOut","linearNone","linearIn","linearInOut","linearOut","bounceIn","bounceOut","bounceInOut","backIn","backInOut","backOut","elasticIn","asin","elasticInOut","elasticOut","strongIn","strongInOut","strongOut","sineInOut","sineIn","HALF_PI","quintIn","quintInOut","quintOut","quartIn","quartInOut","quartOut","cubicIn","cubicInOut","cubicOut","quadIn","quadInOut","quadOut","expoIn","expoInOut","expoOut","circIn","circInOut","circOut","_hit","_unHit","isHitGraphic","hit","unHit","isHitCmd","_rec","ptInPolygon","areaPoints","_ptPoint","nCross","p1x","p1y","p2x","p2y","HTMLChar","charNum","isWord","_isWordRegExp","setSprite","_sprite","getSprite","_isChar","_getCSSStyle","_w","_h","Log","_logdiv","cssText","toggle","print","_count","maxCount","innerText","scrollTop","scrollHeight","Mouse","cursor","cursorStr","hide","_preCursor","show","getPoolBySign","sign","_poolDic","clearBySign","getItemByClass","cls","pool","getItemByCreateFun","createFun","InPoolSign","PoolCache","addPoolCacheManager","bind","onclick","pointerEvents","_useCanvas","_show","_fpsData","_view","title","units","createUIPre","createUI","showFPS","pixel","_width","_vx","_height","_fontSize","_ctx","_first","stat","Sprite","_leftText","Text","_txt","one","trianglesFaces","shaderCall","spriteCount","spriteRenderUseCacheCount","treeNodeCollision","treeSpriteCollision","_timer","FPS","round","ceil","delay","_fpsStr","renderSlow","_spriteStr","_canvasStr","currentMemorySize","renderInfoPre","renderInfo","StringKey","_strsToID","_idToStrs","getID","getName","undefined","TimerHandler","_delta","currFrame","_mid","_map","_laters","_handlers","currTimer","_now","_lastTimer","_init","_update","frame","handlers","userFrame","exeTime","repeat","jumpFrame","_clearHandlers","laters","_recoverHandler","_create","useFrame","coverBefore","_getHandler","_indexHandler","cid","$_GID","getGID","mid","$_TID","frameOnce","clearAll","callLater","runCallLater","runTimer","withClear","gid","duration","ease","isTo","usePool","runNow","_duration","_ease","easeNone","_delay","_props","_usedTimer","_startTimer","_usedPool","_delayParam","update","tweenMap","clearTween","firstStart","_initProps","_beginLoop","_doEase","_updateEase","time","usedTimer","dTime","setStartTime","_remove","_clear","tweens","restart","uTime","autoRecover","tween","_pi2","toAngle","radian","_pi","concatArray","clearArray","getGlobalRecByPoints","newLTPoint","newRBPoint","localToGlobal","getGlobalPosAndScale","scope","updateOrder","_zOrder","model","updateZOrder","addChildAt","transPointList","radix","_extReg","lastIndex","exec","toLowerCase","getTransformRelativeToWindow","coordinateSpace","globalTransform","canvasMatrix","canvasLeft","canvasTop","canvasDegree","perpendicular","domScaleX","domScaleY","fitDOMElementInArea","dom","_fitLayaAirInitialized","transformOrigin","webKittransformOrigin","webkitTransform","isOkTextureList","textureList","isOKCmdList","parseXMLFromString","DOMParser","parseFromString","firstChild","useDic","shapeDic","shapeLineDic","_checkKey","_freeIdArray","startDispose","addShape","shape","addLine","Line","getShape","endDispose","WeakObject","_obj","supportWeakMap","WeakMap","_maps","objKey","del","delete","has","delInterval","clearCache","WordText","Node","_bits","_displayedInStage","_destroyed","ARRAY_EMPTY","PROP_EMPTY","createConchModel","_setBit","_getBit","_updateDisplayedInstage","_setUpNoticeChain","_setUpNoticeType","destroyChild","destroyChildren","removeChildren","zOrder","getChildIndex","_childChanged","addChildren","__args","oldIndex","getChildByName","nodes","_get$P","getChildAt","setChildIndex","removeChildAt","removeSelf","removeChildByName","beginIndex","endIndex","replaceChild","newNode","oldNode","_setDisplay","_displayChild","timerLoop","timerOnce","NOTICE_DISPLAY","MOUSEENABLE","ower","_bgground","_border","lineHeight","_PADDING","_spacing","_SPACING","_aligns","_ALIGNS","_font","_ower","inherit","_widthAuto","widthed","getValue","pw","nums","onParentResize","input","heighted","resize","_layoutLater","_getAlign","_getValign","_getCssFloat","_createFont","attrs","parseOneCSS","attr","_$get_block","_valigndef","_aligndef","lineElement","decoration","bgColor","password","values","border","padding","rotation","clipWord","valueArray","_CSSTOVALUE","parseCSS","uri","_parseCSSRegExp","styleSheets","ALIGN_CENTER","ALIGN_RIGHT","VALIGN_MIDDLE","VALIGN_BOTTOM","_CSS_BLOCK","_DISPLAY_NONE","_ABSOLUTE","_WIDTH_SET","_RECT","ADDLAYOUTED","_NEWFONT","_HEIGHT_SET","_BACKGROUND_SET","_FLOAT_RIGHT","_LINE_ELEMENT","_NOWARP","_WIDTHAUTO","_LISTERRESZIE","audio","_audioCache","_musicAudio","readyState","onErr","me","offs","removeEventListener","tAd","cloneNode","AudioSoundChannel","_makeMusicOK","SoundChannel","__runComplete","audioBuffer","__toPlays","_disposed","_dataCache","_loaded","_err","__loadingSound","request","XMLHttpRequest","open","responseType","_removeLoadEvents","response","buffs","decode","__playAfterLoaded","toPlays","tParams","WebAudioSoundChannel","isDecoding","decodeAudioData","_done","_fail","_playEmptySound","createBufferSource","_miniBuffer","connect","destination","_unlock","_unlocked","createBuffer","_responseType","_data","headers","http","setRequestHeader","_onError","onabort","_onAbort","onprogress","_onProgress","_onLoad","lengthComputable","total","status","statusText","responseURL","message","responseText","_customParse","group","ignoreCache","getTypeFromUrl","loadedMap","setGroup","parserMap","_loadImage","_loadSound","_loadTTF","contentType","preLoadedMap","onProgress","onError","typeMap","ttfLoader","image","imgCache","Image","crossOrigin","HTMLImage","img","sound","soundOnload","soundOnErr","parsePLFData","meta","toloadPics","folderPath","reverse","toLoads","pics","frames","cleanUrl","directory","prefix","atlasURL","map","atlasMap","dir","scaleRate","tPic","spriteSourceSize","sourceSize","bFont","registerBitmapFont","tex1","plfData","filePath","fileDic","_loaders","_isWorking","checkNext","endLoad","content","startTimer","_startIndex","maxTimeOut","getAtlas","resUrl","res","clearTextureRes","releaseTexture","_atlaser","groupMap","clearResByGroup","TEXT","XML","BUFFER","SOUND","ATLAS","FONT","TTF","PLF","PKM","ResInfo","retryNum","retryDelay","maxLoader","_loaderCount","_resInfos","_infoPool","_maxPriority","_failRes","progress","priority","onComplete","loadedCount","itemCount","num","item1","progress2","progressHandler","formarUrl","extension","creatItem","createMap","_setUrl","_setGroup","_createLoad","onAsynLoaded","_loadAssets","info","_resMap","infos","_doLoad","resInfo","_endLoad","errorCount","_addReTry","clearUnLoaded","cancelLoadByUrls","urls","totalSize","success","loadProgress","loadComplete","atlas","Resource","ColorFilter","z","Socket","port","byteClass","_endian","_stamp","_socket","_connected","_addInputPosition","_input","_output","timeout","objectEncoding","disableInput","_byteClass","protocols","endian","connectByUrl","close","cleanSocket","WebSocket","binaryType","onopen","_onOpen","onmessage","onclose","_onClose","pre","WorkerLoader","worker","Worker","workerPath","workerMessage","imageLoaded","_enable","_myTrace","dataType","imageData","createImageData","imagedata","imageBitmap","webgl","WebGLImage","__arg","arg","postMessage","_preLoadFun","disableJSDecode","createImageBitmap","workerSupported","IMAGE_LOADED","IMAGE_ERR","IMAGE_MSG","_$1__id","__loaded","_referenceCount","_idResourcesMap","_released","lock","resList","_urlResourcesMap","_getGroup","_group","groupList","_groupResourcesMap","_addReference","_removeReference","_clearReference","_endLoaded","recreateResource","completeCreate","disposeResource","offsetValue","getResourceByID","getResourceByURL","getResourceCountByURL","destroyUnusedResources","resouList","tempResouList","_uvID","_atlasID","HTMLElement","bm","active","referenceCount","conchDestroy","fileBitmap","getPixels","tUint8Array","minFifter","magFifter","moveUV","btex","bIsAtlas","atlaser","nAtlasID","_inAtlasTextureBitmapValue","_inAtlasTextureOriUVValue","dwidth","dheight","inAltasUVWidth","inAltasUVHeight","oriUV","bitmapScale","createFromTexture","texScaleRate","_rect1","_rect2","INV_UV","TimeLine","tweenData","_labelDic","_tweenDic","_tweenDataList","_endTweenDataList","_currTime","_lastTime","_startTime","_gidIndex","_firstTweenDic","_startTimeSort","_endTimeSort","_loopKey","_frameRate","_frameIndex","_total","tTweenData","endTime","addLabel","label","removeLabel","gotoTime","tTween","tObject","tTweenDataCopyList","tDataP","diyTarget","paraA","paraB","tP","_animComplete","gotoLabel","Label","tLabelData","timeOrLabel","tTarget","tSrcData","tNow","tFrameTime","tCurrTime","_tfChanged","_mouseEnableState","_optimizeScrollRect","autoSize","ConchNode","_releaseMem","setBounds","bound","mBounds","_boundPointsToParent","uBounds","_getBoundPointsM","ifRotate","pX","pY","toParentPoint","temBM","rec","cList","__childs","getStyle","setStyle","_adjustTransform","skx","sky","ssx","ssy","speedMode","parentRepaint","maskParent","pivot","setCanvasType","_filters","filters","action","_isHaveGlowFilter","createNewPoint","globalToLocal","scroll","_$2__onDisplay","startDrag","dragging","stopDrag","cc","fc","_filterCache","recycle","hitTestPoint","_addChildsToLayout","_addToLayout","absolute","block","_setAttributes","CustomList","customContext","custom","cacheAs","setZOrder","RUNTIMEVERION","removeType","_$get_parent","superSet","fromImage","conchConfig","getRuntimeVersion","_audio","_onEnd","_resumePlay","__onEnd","__resumePlay","currentTime","gain","bufferSource","_currentTime","_volume","_pauseTime","_onPlayEnd","__onPlayEnd","_clearBufferSource","disconnect","onended","setTargetAtTime","sourceNode","noteOff","_tryCleanFailed","_tryClearBuffer","Bitmap","_source","AnimationPlayerBase","wrapMode","_isPlaying","_labels","_isReverse","_frameRateChanged","_controlNode","_actionName","_interval","showWarn","_getFrameByLabel","interval","_frameLoop","_setControlNode","_checkResumePlaying","_removeLabelFromLabelList","gotoAndStop","_displayToIndex","WRAP_POSITIVE","WRAP_REVERSE","WRAP_PINGPONG","_clipPoint","_currBitmapFont","_isChanged","_textWidth","_textHeight","_lines","_lineWidths","_startX","_startY","_lastVisibleLineIndex","_words","_charSize","underline","_underlineColor","overflow","VISIBLE","wordWrap","lang","arg1","arg2","arg3","arg4","arg5","arg6","arg7","arg8","arg9","arg10","langPacks","_isPassWordMode","_getPassWordTxt","word","renderText","begin","visibleLineCount","ctxFont","_fontFamilyMap","startX","textAlgin","lines","leading","tCurrBitmapFont","startY","tempVAlign","valign","tClipWidth","tClipHeight","_word","drawUnderline","tScale","lineIndex","underlineColor","typeset","parseLines","evalTextSize","checkEnabledViewportOrNot","lineCount","func","HIDDEN","startLine","scrollY","nw","nh","SCROLL","changeText","needWordWrapOrTruncate","wordWrapWidth","getWordWrapWidth","measureResult","_testWord","parseLine","execResult","maybeIndex","charsWidth","wordWidth","startIndex","newLine","RightToLeft","getCharPoint","charIndex","textWidth","isChanged","textHeight","_bitmapFonts","backgroundColor","maxScrollX","maxScrollY","bitmapFont","unregisterBitmapFont","tBitmapFont","setTextRightToLeft","direction","supportFont","defaultFontWidth","customFontWidth","CharacterCache","designWidth","designHeight","renderingEnabled","screenAdaptationEnabled","_screenMode","_scaleMode","_alignV","_alignH","_bgColor","_mouseMoveTime","_renderCount","_frameStartTime","_isFocused","_isVisibility","_scenes","_previousOrientation","orientation","_isInputting","hidden","visibilityChange","mozHidden","msHidden","webkitHidden","visibleChangeFun","_setStageVisible","qbroserVisibleChangeFun","_resetCanvas","_onmouseMove","_changeCanvasSize","setScreenSize","screenWidth","screenHeight","screenType","canvasStyle","scaleMode","realWidth","realHeight","_formatData","webkitTransformOrigin","msTransformOrigin","mozTransformOrigin","oTransformOrigin","msTransform","mozTransform","oTransform","getTimeFromFrameStart","isFlash","frameMode","isFastMode","isDoubleLoop","scene","_updateSceneConch","_updateScene","customList","customItem","_requestFullscreen","element","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","_fullScreenChanged","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","debug","setSlowFrame","setMouseFrame","setLimitFPS","_$get_width","_$get_height","_$set_transform","_wgColor","_$get_visible","visibility","SCALE_NOSCALE","SCALE_EXACTFIT","SCALE_SHOWALL","SCALE_NOBORDER","SCALE_FULL","SCALE_FIXED_WIDTH","SCALE_FIXED_HEIGHT","SCALE_FIXED_AUTO","ALIGN_LEFT","ALIGN_TOP","ALIGN_MIDDLE","ALIGN_BOTTOM","SCREEN_NONE","SCREEN_HORIZONTAL","SCREEN_VERTICAL","FRAME_FAST","FRAME_SLOW","FRAME_MOUSE","FRAME_SLEEP","FRAME_MOUSE_THREDHOLD","FileBitmap","SoundNode","_channel","_tar","_playEvents","_stopEvents","_onParentChange","_setPlayAction","_setPlayActions","eventArr","_src","_onload","_onerror","_is2D","contextID","release","_createContext","getMemSize","getCanvas","toBase64","encoderOptions","base64Data","toDataURL","TYPE2D","TYPE3D","TYPEAUTO","FrameAnimation","HTMLSubImage","atlasImage","allowMerageInAtlas","Animation","_frames","_setFramesFromCache","tAniO","framesMap","nodeRoot","_parseGraphicAnimationByData","_copyLabels","labels","loadImages","cacheName","createFrames","loadAtlas","_this_","loadUrl","loadAnimation","_loadAnimationData","aniData","_parseGraphicAnimation","aniList","defaultO","animationList","animationData","GraphicAnimation","parseAnimationData","animationObject","parseAnimationByData","val","key2","_targetDic","_animationData","_animationNewFrames","_sortIndexFun","_setUp","targetDic","frameRate","parsed","animationNewFrames","_calculateDatas","_displayNodeToFrame","propFrames","keys","tNode","_calculateNodeKeyFrames","keyFrames","tKeyFrames","keyframes","initValues","_calculateNodePropFrames","resetToInitState","_dealKeyFrame","_calculateFrameValues","keyFrame","startFrame","endFrame","easeFun","startValue","dValue","tweenMethod","_focus","_multiline","_editable","_restrictPattern","_prompt","_promptColor","_originColor","_content","_maxChars","_onMouseDown","_onUnDisplay","setSelection","inputElement","selectionStart","selectionEnd","_syncInputTransform","nativeInput","inputWid","inputHei","setSize","setPos","inputContainer","select","_setInputMethod","parentElement","_focusIn","cssStyle","whiteSpace","_setPromptColor","readOnly","setType","setForbidEdit","maxLength","placeholder","_onKeyDown","setColor","setFontSize","setFontFace","setMultiAble","fontWeight","promptStyleDOM","setAttribute","head","_focusOut","blur","_$get_color","promptColor","pattern","_createInputElement","IOS_IFRAME","_popupInputMethod","_initInput","zIndex","outline","_processInputting","_stopEvent","TYPE_TEXT","TYPE_PASSWORD","TYPE_EMAIL","TYPE_URL","TYPE_NUMBER","TYPE_RANGE","TYPE_DATE","TYPE_MONTH","TYPE_WEEK","TYPE_TIME","TYPE_DATE_TIME","TYPE_DATE_TIME_LOCAL","TYPE_SEARCH","confirmButton","inputHeight","stageMatrix","_recreateLock","_needReleaseAgain","_enableMerageInAtlas","_init_","onresize","EffectAnimation","_initData","_aniKeys","_effectClass","_onOtherBegin","effect","addEvent","_onPlayAction","_recordInitData","secondFrames","tSecondFrame","uiData","classStr","EffectAnimationBegin","GraphicNode","animationDic","_nodeList","_nodeDefaultProps","_gList","_nodeIDAniDic","_rootNode","_nodeGDic","_parseNodeList","uiView","compId","_calGraphicData","_createGraphicData","gList","preGraphic","animationDataNew","_createFrameGraphic","_rootMatrix","_updateNodeGraphic","parentTransfrom","tNodeG","tGraphicAlpha","tResultTransform","tTex","_getNodeGraphicData","resultTransform","skin","_getTextureByUrl","_updateNoChilds","tTransform","_updateNodeGraphic2","onlyTranslate","hasTrans","ifSave","getNodeDataByID","nodeID","obj2","vArr","frameData","_drawTextureCmd","aX","aY","tm","_tempMt","setAniData","aniName","animations","aniDic","anilist","frameO","parseByData","rootNode","aniO","setUpAniData","tGNode","_I","__init","LayaMain","define","amd","require","exports","maths","media","getJson","isPosMsg","isSon","_inited","isZiYu","isPosMsgYu","EnvConfig","WebGLCanvas","premulAlpha","setNativeFileDir","existDir","MiniFileMgr","fileNativeDir","onMkdirCallBack","systemInfo","wx","getSystemInfoSync","logtime","alertTimeLog","resetShareInfo","createCanvas","__proto__","pixelRatioInt","_preCreateElement","MiniInput","MiniLoader","MiniImage","MiniLocalStorage","getUrlEncode","downLoadFile","fileUrl","fileType","encoding","getFileInfo","deleteFile","removeAll","deleteAll","hasNativeFile","isLocalNativeFile","getFileList","filesListObj","exitMiniProgram","errorCode","sharedCanvas","onCreateInput","wxinputFocus","wxinputblur","autoCacheFile","minClearSize","Parser","nativefiles","fileNativePath","fileObj","read","readyUrl","isSaveFile","getFileNativePath","readFile","fail","downFiles","wxdown","statusCode","tempFilePath","onProgressUpdate","copyFile","downOtherFiles","tempFileName","saveFilePath","fileUseSize","getCacheUseSize","onClearCacheRes","srcPath","destPath","data2","onSaveFile","memSize","tempFileListArr","sortOn","clearSize","options","fileName","mini","fileSize","deleteFileUrl","md5","unlink","isAdd","md5Name","fileurlkey","times","writeFilesList","deletefileSize","filesListStr","listFilesPath","fileListName","writeFile","isLoad","dirPath","mkdir","errMsg","readSync","readFileSync","env","USER_DATA_PATH","ziyuFileData","loadPath","DESCENDING","NUMERIC","getFileSystemManager","downloadFile","onCreateImage","isTransformUrl","tempStr","onDownImgCallBack","sourceUrl","thisLoader","isLocal","fileNativeUrl","fileMd5Name","_onStageResize","onWindowResize","MiniSound","system","_inputTarget","editable","offKeyboardConfirm","offKeyboardInput","showKeyboard","defaultValue","maxChars","multiple","confirmHold","confirmType","onKeyboardConfirm","inputEnter","onKeyboardInput","hideKeyboard","setStorageSync","getStorageSync","removeStorageSync","clearStorageSync","getStorageInfoSync","currentSize","limitSize","MiniLocation","geolocation","getCurrentPosition","watchPosition","clearWatch","paramO","getSuccess","getLocation","curWatchO","_curID","_watchDic","_myLoop","_hasWatch","_mySuccess","_myError","coords","timestamp","MiniAccelerator","startListen","stopListen","Acc","device","motion","Accelerator","_callBack","_isListening","onAccelerometerChange","stopAccelerometer","acceleration","accelerationIncludingGravity","rotationRate","urlType","_fileTypeArr","tempData","onReadNativeCallBack","tempUrl","_sound","onDownLoadCallBack","_createSound","onCanplay","bindToThis","onCanPlay","offError","offCanplay","MiniSoundChannel","createInnerAudioContext","miniSound","_miniSound","onEnded","offEnded","autoplay","css","FilterActionGL","setValue","setValueMix","apply3d","ShaderValue","AtlasGrid","TexRowInfo","TexMergeTexSize","atlasID","_texCount","_rowInfo","_cells","_failSize","getAltasID","setAltasID","addTex","_get","ret","_fill","_release","pFillInfo","MergeFillInfo","rx","ry","nWidth","nHeight","pCellBox","spaceCount","xx","nHeghit","_check","yy","AtlasResourceManager","gridSize","maxTexNum","_currentAtlasCount","_maxAtlaserCount","_gridSize","_gridNumX","_gridNumY","_curAtlasIndex","_setAtlasParam","_atlaserArray","_needGC","setAtlasParam","_sid_","freeAll","pushData","nWebGLImageIndex","curAtlas","altasIndex","findBitmapIsExist","InAtlasWebGLImagesOffsetValue","bFound","nImageGridX","nImageGridY","bSuccess","maxAtlaserCount","Atlaser","fillInfo","addToAtlasTexture","getAtlaserCount","getAtlaserByIndex","_Instance","atlasTextureWidth","atlasTextureHeight","maxTextureCount","_atlasLimitWidth","_atlasLimitHeight","_disable","atlasLimitWidth","atlasLimitHeight","_atlasRestore","BOARDER_TYPE_NO","BOARDER_TYPE_RIGHT","BOARDER_TYPE_LEFT","BOARDER_TYPE_BOTTOM","BOARDER_TYPE_TOP","BOARDER_TYPE_ALL","BlendMode","gl","fns","BlendNormal","BlendAdd","BlendMultiply","BlendScreen","BlendOverlay","BlendLight","BlendMask","BlendDestinationOut","targetFns","BlendNormalTarget","BlendAddTarget","BlendMultiplyTarget","BlendScreenTarget","BlendOverlayTarget","BlendLightTarget","blendFunc","activeBlendFunction","NAMES","TOINT","NORMAL","ADD","MULTIPLY","SCREEN","LIGHT","OVERLAY","DESTINATIONOUT","DrawStyle","equal","toColorStr","_drawStyle","DEFAULT","Path","dirty","geoStart","tempArray","geomatrys","mainContext","ib","IndexBuffer2D","vb","VertexBuffer2D","pointX","pointY","getEndPointX","getEndPointY","polygon","borderWidth","geo","_curGeomatry","Polygon","setGeomtry","LoopLine","si","_byteLength","getData","CONST3D2D","BYTES_PIDX","destory","SaveBase","isSaveMark","_dataObj","_valueName","_value","_newSubmit","_curSubmit","Submit","RENDERBASE","_renderKey","_createArray","namemap","_namemap","dataObj","newSubmit","_saveMark","_saveuse","SaveClipRect","_clipSaveRect","_submitScissor","submitLength","_submits","submitIndex","submitScissor","SaveClipRectStencil","_contextX","_contextY","_saveMatrix","_curMat","submitStencil","clipX","clipY","clipWidth","clipHeight","_submitStencil","SaveMark","_preSaveMark","Create","no","SaveTransform","_savematrix","SaveTranslate","RenderTargetMAX","setSP","RenderTarget2D","_flushToTarget","_destroy","worldScissorTest","RenderState2D","preworldClipRect","worldClipRect","disable","preAlpha","worldAlpha","preMatrix4","worldMatrix4","preMatrix","worldMatrix","preFilters","worldFilters","preShaderDefines","worldShaderDefines","restoreTempArray","TEMPMAT4_ARRAY","activeShader","scissor","drawTo","getTexture","Shader2D","shaderType","defines","ShaderDefines2D","glTexture","vs","ps","addInclude","preCompile2D","ShaderDefines","name2int","int2name","int2nameMap","_name2int","_int2name","_int2nameMap","addInt","isDefine","toNameDic","_toText","_reg","_toInt","SkinMesh","mVBBuffer","mIBBuffer","mVBData","mIBData","mEleNum","mTexture","_vs","_ps","_indexStart","_verticles","_uvs","_defaultPS","init2","verticles","_initMyData","vsI","vI","tempVLen","_tempVS","insertNew","_tVSLen","getData2","tIB","appendEx2","_tempIB","append","_shader2D","addSkinMesh","tempSubmit","createShape","Value2D","tShaderValue","shaderValue","tArray","u_mmat2","getMatrArray","mat2MatArray","textureHost","setSkinMesh","SkinMeshBuffer","skinMesh","BasePoly","edges","r0","r1","rebuild","setMatrix","needUpdate","sector","outVert","outIndex","seg","createLine2","outVertex","indexCount","p3x","p3y","perpx","perpy","perp2x","perp2y","denom","iStart","groupLen","createLine","createLoopLine","firstPoint","lastPoint","midPointX","midPointY","Earcut","earcut","holeIndices","dim","hasHoles","invSize","outerLen","outerNode","linkedList","triangles","eliminateHoles","earcutLinked","clockwise","last","signedArea","insertNode","removeNode","filterPoints","again","steiner","prev","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","qx","Infinity","mx","my","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","q1","q2","inside","EarcutNode","an","bp","sum","GeometryData","lineAlpha","fillAlpha","getIndexData","getVertexData","Vertex","releaseRender","_vb","getRenderType","renderSubmit","_numEle","_tex","bind_upload","_ib","upload","_blendFn","drawElements","_startIdx","createSubmit","sv","_selfVb","blendType","_nBlendType","_targets","numEle","TYPE_2D","TYPE_CANVAS","TYPE_CMDSETRT","TYPE_CUSTOM","TYPE_BLURRT","TYPE_CMDDESTORYPRERT","TYPE_DISABLESTENCIL","TYPE_OTHERIBVB","TYPE_PRIMITIVE","TYPE_RT","TYPE_BLUR_RT","TYPE_TARGET","TYPE_CHANGE_VALUE","TYPE_SHAPE","TYPE_TEXTURE","TYPE_FILLTEXTURE","SubmitCMD","SubmitCMDScope","variables","addValue","POOL","SubmitOtherIBVB","_shaderValue","wmat","tempMatrix4","_shader","_offset","refresh","numElement","BYTES_PE","vertexStride","SubmitScissor","screenRect","_scissor","screen","submitElement","_scissorWithTagart","SubmitStencil","level","do1","do2","do3","do4","do5","do6","do7","do8","colorMask","stencilFunc","stencilOp","submit","GlUtils","fillRectImgVb","restore2","SubmitTarget","proName","blend","CharSegment","_sourceStr","textToSpit","getChar","getCharCode","DrawText","CharValue","_charsTemp","_drawValue","_charSeg","customCharSeg","charseg","drawValue","WebGLCharImage","createOneChar","_charsCache","_drawSlow","curMat","oneChar","htmlWord","txtID","cw","bdSz","saveLength","isSpace","borderSize","_drawText","_drawFast","tempTx","WebGLContext2D","_tmpMatrix","tempTy","idNum","myCache","_textsCache","__length","_curPoolIndex","_textCachesPool","_keymap","_keymapCount","FontInContext","_size","_italic","_cache2","setFont","getItalic","hasType","defaultMatrix4","defaultMinusYMatrix4","uniformMatrix3","_TMPARRAY","_OFFSETX","_OFFSETY","BYTES_PER_ELEMENT","make2DProjection","depth","fillIBQuadrangle","_resizeBuffer","bufferLength","bufferData","getUint16Array","setNeedUpload","expandIBQuadrangle","mathCeilPowerOfTwo","fillQuadrangleImgVb","vpos","vbdata","_upload","fillTranglesVB","copyPreImgVb","ci","mType","toBx","toBy","toEx","toEy","cBx","cBy","cEx","cEy","w0","h0","finalX","finalY","useClip","w1","aw1","ch1","dh1","bw1","aw0","ch0","dh0","bw0","fillLineVb","fx","fy","linew","_fillLineArray","insertData","Mesh2D","MatirxArray","ArrayMul","ai0","ai1","ai2","ai3","stride","vballoc","iballoc","_stride","vertNum","indexNum","_applied","_vao","_attribInfo","_quadNum","canReuse","cloneWithNewVB","mesh","cloneWithNewVBIB","getVBW","getVBR","getIBR","getIBW","createQuadIB","QuadNum","curvert","setAttributes","attribs","getEleNum","getBuffer","releaseMesh","clearVB","_gvaoid","matArray","m4","EMPTYMAT4_ARRAY","curRenderTarget","_MAXSIZE","ShaderCompile","ShaderNode","InlcudeFile","nameMap","defs","_compile","includefiles","_compileToTree","_VS","_PS","_nameMap","preNode","fname","noUseNode","noCompile","setCondition","setParent","_splitToWordExps3","condition","conditionType","splitToWords","inlcudeFile","includes","getWith","file","createShader","shaderName","defMap","defineStr","toscript","Shader","_parseOne","uniforms","shaderParamsMap","preGetParams","definesInfo","definesName","_removeAnnotation","tempelse","ofs2","useFuns","IFDEF_NO","IFDEF_YES","IFDEF_ELSE","IFDEF_PARENT","_splitToWordExps","__condition","_toscript","ifdef","funsCode","curUseID","getFunsScript","codes","funs","funnames","funsdef","_uint8ArraySlice","_float32ArraySlice","_uint16ArraySlice","expandContext","__int__","shaderValues","QuadrangleIB","sd","Shader2X","_vertType","tSkinSprite","stencil","antialias","WebGLSubImage","RenderSprite3D","onStageResize","GraphicsGL","ColorFilterActionGL","clearBG","AtlasWebGLCanvas","atlasResourceManager","atlerCanvas","_flashCacheImageNeedFlush","renderTarget","pixels","htmlCanvas","tempContext","imgData","Uint8ClampedArray","_imgData","tRenderTarget","flipY","tClilpRect","tClipRect","_getTransformMatrix","tHalfPadding","tIsHaveGlowFilter","tSX","tSY","tY","drawTarget","overlay","onInvalidGLRes","doNodeRepaint","mainCanvas","getShaderPrecisionFormat","vertexPrecisionFormat","framePrecisionFormat","shaderHighPrecision","precision","compressAstc","getExtension","compressAtc","compressEtc","compressEtc1","compressPvrtc","compressS3tc","compressS3tc_srgb","deleteTexture1","deleteTexture","WebGLContext","curBindTexValue","setOnInvalidGLRes","_bg_null","UseProgram","program","_useProgram","useProgram","setDepthTest","_depthTest","setDepthMask","_depthMask","depthMask","setDepthFunc","_depthFunc","depthFunc","setBlend","setBlendFunc","sFactor","dFactor","_sFactor","_dFactor","setCullFace","_cullFace","setFrontFace","_frontFace","frontFace","bindTexture","curBindTexTarget","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","COLOR_BUFFER_BIT","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","ZERO","ONE","SRC_COLOR","ONE_MINUS_SRC_COLOR","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","DST_ALPHA","ONE_MINUS_DST_ALPHA","DST_COLOR","ONE_MINUS_DST_COLOR","SRC_ALPHA_SATURATE","FUNC_ADD","BLEND_EQUATION","BLEND_EQUATION_RGB","BLEND_EQUATION_ALPHA","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","BLEND_DST_RGB","BLEND_SRC_RGB","BLEND_DST_ALPHA","BLEND_SRC_ALPHA","CONSTANT_COLOR","ONE_MINUS_CONSTANT_COLOR","CONSTANT_ALPHA","ONE_MINUS_CONSTANT_ALPHA","BLEND_COLOR","ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER","ARRAY_BUFFER_BINDING","ELEMENT_ARRAY_BUFFER_BINDING","STREAM_DRAW","STATIC_DRAW","DYNAMIC_DRAW","BUFFER_SIZE","BUFFER_USAGE","CURRENT_VERTEX_ATTRIB","FRONT","BACK","CULL_FACE","FRONT_AND_BACK","DITHER","STENCIL_TEST","DEPTH_TEST","SCISSOR_TEST","POLYGON_OFFSET_FILL","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_COVERAGE","NO_ERROR","INVALID_ENUM","INVALID_VALUE","INVALID_OPERATION","OUT_OF_MEMORY","CW","CCW","LINE_WIDTH","ALIASED_POINT_SIZE_RANGE","ALIASED_LINE_WIDTH_RANGE","CULL_FACE_MODE","FRONT_FACE","DEPTH_RANGE","DEPTH_WRITEMASK","DEPTH_CLEAR_VALUE","DEPTH_FUNC","STENCIL_CLEAR_VALUE","STENCIL_FUNC","STENCIL_FAIL","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_REF","STENCIL_VALUE_MASK","STENCIL_WRITEMASK","STENCIL_BACK_FUNC","STENCIL_BACK_FAIL","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_BACK_WRITEMASK","VIEWPORT","SCISSOR_BOX","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","UNPACK_ALIGNMENT","PACK_ALIGNMENT","MAX_TEXTURE_SIZE","MAX_VIEWPORT_DIMS","SUBPIXEL_BITS","RED_BITS","GREEN_BITS","BLUE_BITS","ALPHA_BITS","DEPTH_BITS","STENCIL_BITS","POLYGON_OFFSET_UNITS","POLYGON_OFFSET_FACTOR","TEXTURE_BINDING_2D","SAMPLE_BUFFERS","SAMPLES","SAMPLE_COVERAGE_VALUE","SAMPLE_COVERAGE_INVERT","NUM_COMPRESSED_TEXTURE_FORMATS","COMPRESSED_TEXTURE_FORMATS","DONT_CARE","FASTEST","NICEST","GENERATE_MIPMAP_HINT","BYTE","UNSIGNED_BYTE","SHORT","UNSIGNED_SHORT","INT","UNSIGNED_INT","FLOAT","DEPTH_COMPONENT","RGB","RGBA","LUMINANCE","LUMINANCE_ALPHA","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","FRAGMENT_SHADER","VERTEX_SHADER","MAX_VERTEX_ATTRIBS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VARYING_VECTORS","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_IMAGE_UNITS","MAX_FRAGMENT_UNIFORM_VECTORS","SHADER_TYPE","DELETE_STATUS","LINK_STATUS","VALIDATE_STATUS","ATTACHED_SHADERS","ACTIVE_UNIFORMS","ACTIVE_ATTRIBUTES","SHADING_LANGUAGE_VERSION","CURRENT_PROGRAM","NEVER","LESS","LEQUAL","GREATER","NOTEQUAL","GEQUAL","ALWAYS","KEEP","REPLACE","INCR","DECR","INVERT","INCR_WRAP","DECR_WRAP","VENDOR","RENDERER","VERSION","NEAREST","LINEAR","NEAREST_MIPMAP_NEAREST","LINEAR_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_LINEAR","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXTURE_2D","TEXTURE","TEXTURE_CUBE_MAP","TEXTURE_BINDING_CUBE_MAP","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_CUBE_MAP_NEGATIVE_Z","MAX_CUBE_MAP_TEXTURE_SIZE","TEXTURE0","TEXTURE1","TEXTURE2","TEXTURE3","TEXTURE4","TEXTURE5","TEXTURE6","TEXTURE7","TEXTURE8","TEXTURE9","TEXTURE10","TEXTURE11","TEXTURE12","TEXTURE13","TEXTURE14","TEXTURE15","TEXTURE16","TEXTURE17","TEXTURE18","TEXTURE19","TEXTURE20","TEXTURE21","TEXTURE22","TEXTURE23","TEXTURE24","TEXTURE25","TEXTURE26","TEXTURE27","TEXTURE28","TEXTURE29","TEXTURE30","TEXTURE31","ACTIVE_TEXTURE","REPEAT","CLAMP_TO_EDGE","MIRRORED_REPEAT","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT_VEC2","INT_VEC3","INT_VEC4","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","SAMPLER_2D","SAMPLER_CUBE","VERTEX_ATTRIB_ARRAY_ENABLED","VERTEX_ATTRIB_ARRAY_SIZE","VERTEX_ATTRIB_ARRAY_STRIDE","VERTEX_ATTRIB_ARRAY_TYPE","VERTEX_ATTRIB_ARRAY_NORMALIZED","VERTEX_ATTRIB_ARRAY_POINTER","VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","COMPILE_STATUS","LOW_FLOAT","MEDIUM_FLOAT","HIGH_FLOAT","LOW_INT","MEDIUM_INT","HIGH_INT","FRAMEBUFFER","RENDERBUFFER","RGBA4","RGB5_A1","RGB565","DEPTH_COMPONENT16","STENCIL_INDEX","STENCIL_INDEX8","DEPTH_STENCIL","RENDERBUFFER_WIDTH","RENDERBUFFER_HEIGHT","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_RED_SIZE","RENDERBUFFER_GREEN_SIZE","RENDERBUFFER_BLUE_SIZE","RENDERBUFFER_ALPHA_SIZE","RENDERBUFFER_DEPTH_SIZE","RENDERBUFFER_STENCIL_SIZE","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","COLOR_ATTACHMENT0","DEPTH_ATTACHMENT","STENCIL_ATTACHMENT","DEPTH_STENCIL_ATTACHMENT","NONE","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_BINDING","RENDERBUFFER_BINDING","MAX_RENDERBUFFER_SIZE","INVALID_FRAMEBUFFER_OPERATION","UNPACK_FLIP_Y_WEBGL","UNPACK_PREMULTIPLY_ALPHA_WEBGL","CONTEXT_LOST_WEBGL","UNPACK_COLORSPACE_CONVERSION_WEBGL","BROWSER_DEFAULT_WEBGL","pt","ContextParams","_COUNT","_drawCount","_maxNumEle","_isMain","_atlasResourceChange","meshlist","mId","mHaveKey","mHaveLineKey","mX","mY","MAXCLIPRECT","mOutPoint","_contextcount","clearColor","_getSubmits","_other","_triangleMesh","MeshTexture","getAMesh","fontStr","curShader","preDef","colorAdd","_fontTemp","SubmitTexture","tTextureX","tTextureY","tTextureW","tTextureH","u_TexRange","u_offset","addTexture","_repaintSprite","_drawTextureM","addTextureVb","invb","finalVB","willDrawTexture","webGLImg","rid","vbSize","_preIsSameTextureShader","alphaBack","TextSV","prex","prey","t_tex","preblendType","SubmitCanvas","mixRGBandAlpha","_mixRGBandAlpha","rgba","eleNum","addData","submitStencil0","nPos","submitStencil1","minx","maxx","miny","maxy","submitSc","falshVB","_selfIB","renderList","finish","maxNum","checkTexture","curm","tVGM","_x1","_y1","tPath","_getPath","tShapeLine","tPosArray","u_pos","mainID","len1","ndx","ndy","dx2","dy2","len22","len2","ndx2","ndy2","odx","ody","olen","nOdx","nOdy","halfAng","ptx1","pty1","orilen","orix","oriy","sinx","cosx","fda","SEGNUM","fChgAng","cvx","cvy","counterclockwise","tShape","hda","da","kappa","ndivs","cpx","cpy","tBezier","make","parameterLineWidth","tW","boderColor","_SUBMITVBSIZE","_RECTVBSIZE","_drawStyleTemp","subID","_cacheID","_POSITION","_inClassCache","mmat","_ShaderWithCompile","withCompile2D","_withWorldShaderDefines","sharders","renderstate2d","BaseShader","_shaderValueWidth","_shaderValueHeight","_params2dQuick2","_make2dQuick2","_params2dQuick1","_make2dQuick1","_initone","classT","_typeClass","_TEXCOORD","Color2dSV","PrimitiveSV","FillTextureSV","SkinSV","TextureSV","mainType","subType","types","submitCMD","preBlendMode","tRect","tmpTarget","endTmpTarget","tempUV","recycleTarget","colorMat","colorAlpha","gridNumX","gridNumY","_atlasCanvas","_inAtlasTextureKey","_InAtlasWebGLImagesKey","_InAtlasWebGLImagesOffsetValue","computeUVinAtlasTexture","webImage","sUrl","object","offsetInfoID","mergeAtlasBitmap","texSubImage2D","atlasSource","clearAtlasSource","oriBitmap","__name2int","__int2name","__int2nameMap","reg","toText","toInt","TEXTURE2D","COLOR2D","PRIMITIVE","FILTERGLOW","FILTERBLUR","FILTERCOLOR","COLORADD","WORLDMAT","FILLTEXTURE","SKINMESH","SHADERDEFINE_FSHIGHPRECISION","Ellipse","_points","mUint16Array","mFloat32Array","tCurrX","tCurrY","tLastX","tLastY","tLen","_start","earcutTriangles","vertsEarcut","_matrix4","_ctx_src","preWorldShaderDefines","mout","ctx_src","_isSameTexture","_texs","_texsID","_vbPos","vbpos","newUV","vbPos","_shaderSet","uploadTexture2D","tex2","const_stride","_fixattriInfo","f32pos","needSize","vertN","tmpIdx","ii","appendU16Array","_POOL","bindShader","surfaceFormat","surfaceType","depthStencilFormat","mipMap","_svWidth","_svHeight","_preRenderTarget","_alreadyResolved","_looked","_surfaceFormat","_surfaceType","_depthStencilFormat","_mipMap","_repeat","_minFifter","_magFifter","_createWebGLRenderTarget","getType","bindFramebuffer","frameBuffer","clearFlag","checkFramebufferStatus","readPixels","foreDiposeTexture","WebGLRenderTarget","superGet","Buffer","_glBuffer","_buffer","_bufferType","_bufferUsage","_gl","_bind","_bindActive","_bindVertexBuffer","bindBuffer","deleteBuffer","_enableAtributes","texcoord","_vlen","u_colorMatrix","strength","vo","blurInfo","a_color","_flashCacheImage","glTex","createTexture","preTarget","preTexture","texImage2D","texParameteri","xoffset","yoffset","bmData","bitmapdata","copyPixels","texSubImage2DEx","pixelStorei","texSubImage2DPixel","alwaysChange","createWebGlTexture","iscpuSource","texImage2DEx","reloadCanvasData","webglCanvas","CborderSize","xs","ys","bIsConchApp","pCanvas","ConchTextCanvas","nFontSize","sFont","nW","_allowMerageInAtlas","_frameBuffer","createFramebuffer","isPot","generateMipmap","framebufferTexture2D","_depthStencilBuffer","createRenderbuffer","bindRenderbuffer","renderbufferStorage","framebufferRenderbuffer","deleteFramebuffer","deleteRenderbuffer","mipmap","saveName","_curActTexIndex","tag","_program","_params","_paramsMap","deleteShader","_vshader","_pshader","deleteProgram","_reCompile","createProgram","_createShader","attachShader","linkProgram","getProgramParameter","getProgramInfoLog","attribNum","getProgramParameterEx","attrib","vartype","glfun","ivartype","getActiveAttribEx","getActiveAttrib","getAttribLocation","isArray","isSame","preValue","indexOfParams","nUniformNum","uniform","getActiveUniformEx","getActiveUniform","getUniformLocation","codename","uploadedValue","_uniform1iv","_uniform1i","_uniform1fv","_uniform1f","_uniform_vec2v","_uniform_vec2","_uniform_vec3v","_uniform_vec3","_uniform_vec4v","_uniform_vec4","_uniform_sampler2D","_uniform_samplerCube","uniformMatrix4fv","_uniformMatrix4fv","_attribute","getUniform","enableAtributes","enableVertexAttribArray","vertexAttribPointer","uniform1f","uniform1fv","uniform2f","uniform2fv","uniform3f","uniform3fv","uniform4f","uniform4fv","_uniformMatrix2fv","uniformMatrix2fv","_uniformMatrix3fv","uniformMatrix3fv","uniform1i","uniform1iv","_uniform_ivec2","uniform2i","_uniform_ivec2v","uniform2iv","_uniform_vec3i","uniform3i","_uniform_vec3vi","uniform3iv","_uniform_vec4i","uniform4i","_uniform_vec4vi","uniform4iv","activeTexture","_TEXTURES","_noSetValue","uploadOne","uploadArray","getParams","getShader","withCompile","nameID","_preCompileShader","preCompile","shaderSource","compileShader","SHADERNAME2ID","nameKey","Buffer2D","_maxsize","_uploadSize","old","needsz","_bufferData","_checkArrayUse","bufferSubData","_bufferSubData","dataStart","dataLength","subBuffer","_bind_upload","_bind_subUpload","nsz","copy","newbuffer","byteLen","appendEx","dataLen","perDataLen","getNeedUpload","scuess","subUpload","FLOAT32","GlowSV","u_blurX","u_color","u_strength","u_texW","u_texH","upload2dQuick1","upload2dQuick2","bufferUsage","_uint8Array","_uint16Array","_floatArray32","_vertexStride","ibBuffer","disableVertexAttribArray","format","_format","_mipmap","readData","COMPRESSED_RGB_ETC1_WEBGL","_$5__enableMerageInAtlas","_createWebGlTexture","compressedTexImage2D","AnimationContent","playTime","bone3DMap","totalKeyframeDatasLength","AnimationNodeContent","parentIndex","keyframeWidth","lerpType","interpolationMethod","extenData","dataOffset","AnimationParser01","templet","reader","aniClassName","_aniClassName","strList","publicData","aniCount","publicDataPos","publicExtDataPos","publicRead","_publicExtData","_useParent","_anis","ani","_aniMap","boneCount","nameIndex","keyframeParamsOffset","keyframeDataCount","AnimationTemplet","interpolation","privateDataLen","keyframeCount","KeyFramesContent","interpolationData","interDataLength","_calculateKeyFrame","AnimationParser02","READ_DATA","_DATA","_reader","READ_BLOCK","_BLOCK","blockStarts","blockLengths","READ_STRINGS","prePos","_strings","_templet","blockName","READ_ANIMATIONS","arrayBuffer","lastKeyFrame","keyframeDataOffset","keyframeDataLength","keyframeArrayBuffer","Bone","AnimationState","stopped","paused","playing","parentBone","inheritScale","inheritRotation","resultRotation","Transform","resultMatrix","_children","setTempMatrix","pMatrix","tResultMatrix","skX","getMatrix","tAngle","tParentMatrix","worldX","worldY","tTestMatrix","scX","scY","updateChild","setRotation","rd","updateDraw","ShowBones","bone","findBone","boneName","tResult","tBone","localToWorld","local","localX","localY","BoneSlot","attachmentName","srcDisplayIndex","currSlotData","currTexture","currDisplayData","displayIndex","_diyTexture","_parentMatrix","_resultMatrix","_replaceDic","_curDiyUV","_curDiyVS","_skinSprite","deformData","_mVerticleArr","showSlotData","slotData","freshIndex","showDisplayByName","showDisplayByIndex","getDisplayByName","replaceDisplayByName","tarName","newName","preIndex","newIndex","replaceDisplayByIndex","tarIndex","displayArr","tName","replaceSkin","setParentMatrix","parentMatrix","draw","boneMatrixArray","noUseSave","tCurrentMatrix","getDisplayMatrix","tRotateKey","createSkinMesh","tIBArray","bones","tVertices","tUVs","weights","UVTools","getRelativeUV","getAbsoluteUV","tCurrentMatrix2","tResultMatrix2","drawSkin","skinSprite","tUvs","tBones","tWeights","tTriangles","tRx","tRy","nn","tB","tWeight","drawBonePoint","tBoneSlot","Skeleton","useSimpleMeshInCanvas","SimpleSkinMeshCanvas","SkinMeshCanvas","CanvasMeshRender","mode","renderToContext","_renderWithIndexes","_renderNoIndexes","_renderDrawTriangle","indexes","useUvTransform","ut","uvTransform","paddingY","mt","MeshData","DeformAniData","skinName","deformSlotDataList","DeformSlotData","deformSlotDisplayList","DeformSlotDisplayData","boneSlot","slotIndex","attachment","frameIndex","timeList","vectices","tweenKeyList","binarySearch1","low","high","current","tVertexCount","tFrameIndex","lastVertices","tTweenKey","tPrevVertices","tNextVertices","tPreFrameTime","tPrev","DrawOrderData","drawOrder","EventData","intValue","floatValue","stringValue","IkConstraint","_targetBone","_bones","mix","bendDirection","isSpine","isDebug","targetBoneIndex","boneIndexs","_applyIk1","_applyIk2","_applyIk3","targetX","targetY","pp","rotationIK","radDeg","skY","updatePos","bendDir","psx","psy","csx","os1","os2","s2","cwx","cwy","l1","l2","dd","ta","minAngle","minDist","MAX_VALUE","maxAngle","maxDist","os","lLL","lL","parentX","parentY","childX","childY","dY","lPP","lP","lTT","lT","rate","hX","hY","rX","rY","pRotation","pTarMatrix","childRotation","childTarMatrix","degRad","IkConstraintData","targetBoneName","boneNames","MeshTools","findEdge","offI","findBestTriangle","topI","bottomI","leftI","rightI","_bestTriangle","solveMesh","mUv","mVer","uvAbs","indexs","newVerticles","_absArr","isNormalUV","adptTexture","solvePoints","transPoints","findWrapRect","oTex","nTex","v1x","v1y","v2x","v2y","tRst","solve2","transPoint","nX","nY","rv","solve","pointC","point0","PathConstraint","spacing","rotateMix","translateMix","_debugKey","_spaces","_segments","_curves","tBoneIds","boneList","tTranslateMix","tRotateMix","tRotate","tSpacingMode","spacingMode","tLengthSpacing","tRotateMode","rotateMode","tTangents","lengths","spacesCount","spaces","positions","computeWorldPositions","positionMode","tLinePos","skeletonX","boneX","boneY","offsetRotation","tip","computeWorldVertices2","worldVertices","skip","wy","vx","vy","skeletonBones","parentName","tBoneMt","tangents","percentPosition","percentSpacing","verticesLength","verLen","world","curveCount","prevCurve","pathLength","curve","space","curves","cx1","cy1","cx2","cy2","tmpx","tmpy","dddfx","dddfy","ddfx","ddfy","dfx","dfy","segments","curveLength","segment","addBeforePosition","addAfterPosition","addCurvePosition","tt","ttt","uu","uuu","ut3","uut3","utt3","BEFORE","AFTER","PathConstraintData","SkinData","slotArr","SkinSlotDisplayData","SlotData","tDisplay","TfConstraint","scaleMix","shearMix","targetIndex","tTfBone","tb","tc","td","bs","ts","offsetScaleX","offsetScaleY","offsetShearY","TfConstraintData","mMatrix","initData","sinX","cosX","sinY","cosY","bigUV","smallUV","dWidth","dHeight","nextData","BezierLerp","getBezierRate","px0","py0","px1","py1","_getBezierParamKey","vKey","_bezierResultCache","_getBezierPoints","_bezierPointsCache","controlPoints","AnimationPlayer","_currentFrameTime","_playStart","_playEnd","_playDuration","_overallDuration","_stopWhenCircleFinish","_elapsedPlaybackTime","_startUpdateLoopCount","_currentAnimationClipIndex","_currentKeyframeIndex","_paused","_cacheFrameRate","_cacheFrameRateInterval","_cachePlayRate","_fullFrames","isCache","returnToZeroStopped","cacheFrameRate","_onTempletLoadedComputeFullKeyframeIndices","cachePlayRate","_computeFullKeyframeIndices","anifullFrames","cacheFrameInterval","iNum","getAnimationCount","aniFullFrame","jNum","getAnimation","frameCount","nodeFullFrames","lastFrameIndex","nNum","endTm","_onAnimationTempletLoaded","_calculatePlayDuration","oriDuration","getAniDuration","_setPlayParams","currentPlayTime","_setPlayParamsWhenStop","currentAniClipPlayDuration","elapsedTime","playDuration","overallDuration","playStart","playEnd","playByFrame","playStartFrame","playEndFrame","fpsIn3DBuilder","immediate","GraphicsAni","rs","_caches","unfixedLastAniIndex","_aniVersion","unfixedCurrentFrameIndexes","unfixedCurrentTimes","unfixedKeyframes","_animationDatasCache","aniIndex","getNodes","getNodeIndexWithName","getNodeCount","getTotalkeyframesLength","getPublicExtData","getAnimationDataWithCache","cacheDatas","aniDatas","keyDatas","setAnimationDataWithCache","getOriginalData","originalData","nodesFrameIndices","playCurTime","oneAni","outOfs","dt","interDataLen","dataIndex","getNodesCurrentFrameIndex","Uint32Array","getOriginalDataUnfixedRate","_LinearInterpolation_0","dData","interData","_QuaternionInterpolation_1","_AngleInterpolation_2","_RadiansInterpolation_3","_Matrix4x4Interpolation_4","_NoInterpolation_5","_BezierInterpolation_6","_BezierInterpolation_7","CacheAbleSkinMesh","isCached","getCanvasPic","preTransform","tempMt","_renderTextureToContext","cacheOK","cacheCmdOK","transformCmds","drawCmds","tempMesh","renderByCache","aniMode","_player","_curOriginalData","_boneMatrixArray","_currAniName","_currAniIndex","_pause","_aniClipIndex","_clipIndex","_skinIndex","_skinName","_aniMode","_graphicsCache","_boneSlotDic","_bindBoneBoneSlotDic","_boneSlotArray","_indexControl","_aniPath","_texturePath","_loadAniMode","_yReverseMatrix","_ikArr","_tfArr","_pathDic","_rootBone","_boneList","_aniSectionDic","_eventIndex","_drawOrderIndex","_drawOrder","_lastAniClipIndex","_lastUpdateAniClipIndex","tPathData","tPathConstraint","yReverseMatrix","_parseSrcBoneMatrix","mBoneArr","mRootBone","aniSectionDic","ikArr","pathArr","tfArr","skinDataArray","tSkinData","_onPlay","_onStop","_onPause","_onLoaded","tFactory","Templet","TEMPLET_DICTIONARY","isParseFail","_parseFail","isParserComplete","_parseComplete","parseData","tTemple","tEventData","tEventArr","eventAniArr","srcBoneMatrixArr","boneSlotDic","bindBoneBoneSlotDic","boneSlotArray","tBS","tBSArr","_emitMissedEvents","tEventAniArr","currentAnimationClipIndex","autoKey","currentKeyframeIndex","tGraphics","getGrahicsDataWithCache","minIndex","_createGraphics","_getGrahicsDataWithCache","curTime","tDrawOrderData","cacheFrameRateInterval","tDrawOrderArr","drawOrderAniArr","tSectionArr","tDBBoneSlot","tDBBoneSlotArr","tParentTransform","tSrcBone","tStartIndex","tMatrixDataLen","tSlotDic","tBoneData","tSlotAlphaDic","tBendDirectionDic","tIkConstraint","tMixDic","tByte","tPathStr","tDeformDic","tDeformAniData","tSlotData2","tSlotData3","tDeformAniArr","deformAniArr","tSkinDeformAni","tSkin","_setDeform","attachmentNames","setGrahicsDataWithCache","_setGrahicsDataWithCache","tDeformSlotData","tDeformSlotDisplayData","getAnimNum","getAniNameByIndex","getSlotByName","showSkinByName","freshSlotIndex","showSkinByIndex","getSkinIndexByName","skinIndex","_clearCache","showSlotSkinByIndex","slotName","showSlotSkinByName","replaceSlotSkinName","oldName","replaceSlotSkinByIndex","setSlotSkin","gp","nameOrIndex","freshSkin","animation","player","MovieClip","parentMovieClip","_Pos","_curIndex","_preIndex","_playIndex","_playing","_ended","_ids","_loadedImage","_idOfSprite","_parentMovieClip","_movieClipList","_atlasPath","_isRoot","_completeHandler","_endFrame","_reset","_$3__onDisplay","updates","_parse","_displayFrame","rm","curChild","mc","eStr","ttype","ifAdd","pid","spp","_setData","_initState","_ValueList","atlasPath","preState","playTo","_mainTexture","_textureJson","skinDic","subTextureDic","_isDestroyed","_rate","_skBufferUrl","_textureDic","_loadList","skinSlotDisplayDataArr","loadAni","tSkBuffer","skeletonData","buildArmature","LAYA_ANIMATION_VISION","_parsePublicExtData","_parseTexturePath","tSrcTexturePath","tTempleData","tTextureLen","tTextureName","tTextureNameArr","_textureComplete","tFrameX","tFrameY","tFrameWidth","tFrameHeight","tAniCount","tParentBone","tParentName","tBoneLen","tRootBone","tBoneDic","tIkConstraintData","boneLength","tMatrixArray","tIkLen","tTfConstraintData","tIkBoneLen","tTfLen","tPathConstraintData","tTfBoneLen","tPathLen","tPathBoneLen","tDeformSlotLen","tDeformVectices","tDeformSlotDisplayLen","tDeformTimeLen","tDTime","tDeformVecticesLen","tDeformAniLen","tDeformSkinLen","tSkinDic","tDrawOrderAniLen","tDrawOrderLen","tDoLen","tEventAniLen","tEventLen","tAttachmentLen","tBoneSlotLen","tNameString","tSlotData","tDisplayData","tNameArray","tNameStartIndex","tSkinDataLen","tSlotDataLen","tDisplayDataLen","tUvLen","tWeightLen","tTriangleLen","tVerticeLen","tLengthLen","tBoneId","freshDisplayIndex","$each_tTexture","tAni","FilterAction","WebGLFilter","isInit","BlurFilterActionGL","GlowFilterActionGL","BlurFilter","strength_sig2_2sig2_gauss1","blurFilter","GlowFilter","_elements","glowFilter","sigma","sigma2","_initKey","_textureWidth","_textureHeight","setSpriteWH","u_offsetX","u_offsetY","u_blurY","u_textW","u_textH","startOut","EmitterBase","_frameTime","_emissionRate","_emissionTime","minEmissionTime","_particleTemplate","emit","advanceTime","passedTime","particleTemplate","ParticleData","velocity","startColor","endColor","sizeRotation","durationAddScale","settings","particleData","emitterVelocitySensitivity","_tempVelocity","horizontalVelocity","minHorizontalVelocity","maxHorizontalVelocity","random","horizontalAngle","minVerticalVelocity","maxVerticalVelocity","_tempStartColor","_tempEndColor","disableColor","colorComponentInter","minStartColor","maxStartColor","minEndColor","maxEndColor","_tempSizeRotation","sizeRandom","minStartSize","maxStartSize","minEndSize","maxEndSize","minRotateSpeed","maxRotateSpeed","_tempRadius","radiusRandom","minStartRadius","maxStartRadius","minEndRadius","maxEndRadius","_tempRadian","minHorizontalStartRadian","maxHorizontalStartRadian","minVerticalStartRadian","maxVerticalStartRadian","useEndRadian","minHorizontalEndRadian","maxHorizontalEndRadian","minVerticalEndRadian","maxVerticalEndRadian","ageAddScale","ParticleSetting","ParticleEmitter","particlesPerSecond","initialPosition","_timeBetweenParticles","_previousPosition","_timeLeftOver","_tempPosition","newPosition","timeToSpend","addParticleArray","textureName","textureCount","maxPartices","endVelocity","blendState","emitterType","emissionRate","sphereEmitterRadius","sphereEmitterVelocity","sphereEmitterVelocityAddVariance","ringEmitterRadius","ringEmitterVelocity","ringEmitterVelocityAddVariance","ringEmitterUp","gravity","pointEmitterPosition","pointEmitterPositionVariance","pointEmitterVelocity","pointEmitterVelocityAddVariance","boxEmitterCenterPosition","boxEmitterSize","boxEmitterVelocity","boxEmitterVelocityAddVariance","sphereEmitterCenterPosition","ringEmitterCenterPosition","positionVariance","checkSetting","setting","_defaultSetting","ParticleTemplateBase","CanvasShader","u_Duration","u_EndVelocity","u_Gravity","a_Position","a_Velocity","a_StartColor","a_EndColor","a_SizeRotation","a_Radius","a_Radian","a_AgeAddScale","gl_Position","v_Color","oSize","_position","getLen","ComputeParticlePosition","age","normalizedAge","startVelocity","lenVelocity","velocityIntegral","radianHorizontal","radianVertical","ComputeParticleSize","startSize","endSize","ComputeParticleRotation","rot","ComputeParticleColor","clamp","matric","CMDParticle","maxIndex","setCmds","PicTool","setFilter","getRGBPic","Emitter2D","_template","_posRange","_canvasTemplate","_emitFun","template","getRandom","webGLEmit","canvasEmit","particle","ParticleTemplate2D","ParticleTemplateCanvas","ParticleTemplateWebGL","parSetting","_vertices","_vertexBuffer","_indexBuffer","_floatCountPerVertex","_firstActiveElement","_firstNewElement","_firstFreeElement","_firstRetiredElement","_drawCounter","initialize","particleOffset","cornerYSegement","cornerY","loadContent","retireActiveParticles","freeRetiredParticles","epsilon","particleDuration","particleAge","addNewParticlesToVertexBuffer","nextFreeParticle","particleSetting","_ready","particleList","activeParticles","deadParticles","iList","_maxNumParticles","dTextureWidth","colorChange","canvasShader","setTexture","clearTexture","changeTexture","_createAParticleData","tParticle","tcmd","tI","noColorRender","canvasRender","tParam","tAlpha","ph","preB","_vertexBuffer2D","_indexBuffer2D","ParticleShaderValue","u_CurrentTime","u_texture","activeBlendType","a_CornerTextureCoordinate","a_Time","pShader","ParticleShader","Particle2D","_emitter","autoPlay","setParticleSetting","ConchParticleTemplate2D","customRenderEnable","emitter","u_mmat","TiledMap","GRect","TileMapAniData","TileSet","_jsonData","_tileTexSetArr","_texArray","_mapW","_mapH","_mapTileW","_mapTileH","_mapSprite","_layerArray","_renderLayerArray","_gridArray","_showGridKey","_totalGridNum","_gridW","_gridH","_gridWidth","_gridHeight","_jsonLoader","_loader","_tileSetArray","_currTileSet","_animationDic","_properties","_tileProperties","_tileProperties2","_orientation","_renderOrder","_colorArray","_pivotScaleX","_pivotScaleY","_centerX","_centerY","_viewPortX","_viewPortY","_viewPortWidth","_viewPortHeight","_enableLinear","_resPath","_pathArray","_limitRange","_fastDirty","autoCache","autoCacheType","enableMergeLayer","removeCoveredTile","showGridTextureCount","antiCrack","cacheAllAfterInit","_texutreStartDic","_paddingRect","_mapRect","_mapLogicRect","_mapLastRect","mapName","viewRect","viewRectPadding","enableLinear","limitRange","onJsonComplete","tJsonData","properties","renderorder","tilewidth","tileheight","tileset","tTileSet","tilesets","ignore","tileproperties","addTileProperties","tTiles","tiles","tAnimation","tAniData","tAnimationItem","mAniIdArray","tileid","mDurationTimeArray","onTextureComplete","mergePath","resPath","relativePath","tResultPath","tImageArray","tParentPathNum","tSrcNum","tSubTexture","tTileTextureW","tTileTextureH","tImageWidth","imagewidth","tImageHeight","imageheight","tTileWNum","firstgid","margin","tTileHNum","tTileTexSet","TileTexSet","titleoffsetX","titleoffsetY","initMap","pX1","pY1","dW","dH","gStart","textureArray","durationTimeArray","isAnimation","animationTotalTime","tGridArray","tLayerArray","tLayerTarLayerName","preLayerTarName","preLayer","layers","isFirst","tLayerLoop","tLayerData","tMapLayer","MapLayer","getLayerProperties","tarLayer","adptTiledMapData","cacheAllGrid","moveViewPort","mapSprite","tileDataDic","getTileUserData","defaultV","tDatas","noNeeds","tLayer","_mapData","removeCoverd","collectCovers","datas","layer","tTileData","getMapProperties","getTileProperties","tGridSprite","GridSprite","tAnimationSprite","TileAniSprite","setTileTextureSet","addAniSprite","drawImageNum","setViewPortPivotByScale","moveX","moveY","updateViewPort","updateViewPortFast","changeViewPort","changeViewPortBySize","posChanged","dyG","dxG","clipViewPort","updateMapLayersPos","_gridSpriteArray","updateAloneObject","dw","dh","tPaddingRect","tSpriteNum","tSub","tAdd","hideGrid","showGrid","gridX","gridY","tTempArray","getGridArray","tempArr","cacheGridsArray","_tempContext","tGrid","tLeft","tRight","tTop","tBottom","tGridWidth","tGridHeight","tLeft1","tRight1","tTop1","tBottom1","tTGridSprite","tDrawMapLayer","tColorStr","getDrawSprite","tHalfTileHeight","tileHeight","tHalfTileWidth","tileWidth","tHalfMapWidth","tMapW","tMapH","tIndexX","tIndexY","tIndexValue","drawTileTexture","isHaveAnimation","getLayerObject","layerName","objectName","getObjectByName","tDic","getLayerByName","getLayerByIndex","ORIENTATION_ORTHOGONAL","ORIENTATION_ISOMETRIC","ORIENTATION_STAGGERED","ORIENTATION_HEXAGONAL","RENDERORDER_RIGHTDOWN","RENDERORDER_RIGHTUP","RENDERORDER_LEFTDOWN","RENDERORDER_LEFTUP","mTileTexSetArr","tTileoffset","tileoffset","_spriteNum","_aniDic","_time","_preFrameTime","animate","tTileTextureSet","tileTextSet","removeAniSprite","showDebugInfo","relativeX","relativeY","isAloneObject","aniSpriteArray","objectKey","tParent","showGridSprite","hideGridSprite","viewPortWidth","viewPortHeight","_tileWidthHalf","_tileHeightHalf","_mapWidthHalf","_mapHeightHalf","_objDic","_dataDic","_showGridList","_aloneObjs","_tempMapPos","layerData","tTileW","tTileH","opacity","tObjectGid","tObjectData","objects","tObjWidth","tObjHeight","getScreenPositionByTilePos","viewPortX","viewPortY","objName","getObjectDataByName","getTileData","tileX","tileY","numRowsTile","numColumnsTile","tMapData","screenPos","tTileHeight","gridWidth","gridHeight","getTileDataByScreenPos","screenX","screenY","tData","getTilePositionByScreenPos","tV","tU","tDirX","gridSprite","gridList","ok_i","updateGridPos","tList","_tileTextureSet","_aniName","tileTextureSet","LayoutStyle","anchorX","anchorY","Styles","labelColor","buttonStateNum","scrollBarMinNum","scrollBarDelayTime","defaultSizeGrid","labelPadding","inputLabelPadding","buttonLabelColors","comboBoxItemColors","UIUtils","fillArray","toColor","gray","traget","isGray","addFilter","grayFilter","clearFilter","filter","filterType","_getReplaceStr","escapeSequence","adptString","getBindFun","_funMap","UIConfig","touchScrollEnable","mouseWheelEnable","showButtons","popupBgColor","popupBgAlpha","closeDialogOnSide","AutoBitmap","autoCacheCmd","_sizeGrid","_setChanged","changeSource","sizeGrid","sw","sh","needClip","drawBitmap","Component","UIEvent","SHOW_TIP","HIDE_TIP","_comXml","_dataSource","_toolTip","_tag","_disabled","_gray","layoutEnabled","_layout","preinitialize","createChildren","commitMeasure","changeSize","getLayout","_setLayoutEnabled","onAdded","onRemoved","onCompResize","resetLayoutX","resetLayoutY","layout","displayWidth","displayHeight","onMouseOver","onMouseOut","measureWidth","comp","measureHeight","_$get_scaleY","_$get_scaleX","DialogManager","lockLayer","popupEffect","dialog","doOpen","closeEffect","doClose","maskLayer","popupEffectHandler","closeEffectHandler","_onResize","_closeOnSide","ui","Dialog","setLockView","Box","popupCenter","_centerDialog","closeOther","showEffect","_closeAll","isModal","_checkMask","onOpened","closeHandler","onClosed","closeAll","getDialogsByGroup","closeByGroup","_$get_dataSource","dataSource","Button","_bitmap","_strokeColors","_state","_selected","_skin","_autoSize","_sources","_clickHandler","_stateChanged","_labelColors","_stateNum","createText","onMouse","selected","stateMap","changeClips","clips","changeState","_setStateChanged","Clip","_clipX","_clipY","_clipWidth","_clipHeight","_autoPlay","_clipChanged","_toIndex","_onDisplay","changeClip","_setClipChanged","ColorPicker","changeHandler","_borderColor","_inputColor","_inputBgColor","_colorPanel","_colorTiles","_colorBlock","_colorInput","_colorButton","_colors","_selectedColor","_panelChanged","onColorButtonClick","onColorInputChange","onColorFieldKeyDown","onColorTilesMouseMove","onColorTilesClick","onPanelMouseDown","changePanel","drawBlock","mainColors","removeColorBox","selectedColor","getColorByMouse","showColor","changeColor","_setPanelChanged","ComboBox","_visibleNum","_button","_list","_isOpen","_itemSize","_selectedIndex","_selectHandler","_itemHeight","_listHeight","_listChanged","_itemChanged","_scrollBarSkin","_isCustomList","_itemColors","onButtonMouseDown","_createList","List","vScrollBarSkin","_setListEvent","selectEnable","onListDown","mouseHandler","onlistItemMouse","scrollBar","onScrollBarDown","switchTo","changeList","labelWidth","repeatY","box","getCell","selectedIndex","isOpen","changeOpen","changeItem","changeSelected","selectedLabel","_onStageMouseWheel","removeList","spaceY","labelColors","stateNum","ScrollBar","rollRatio","scaleBar","autoHide","upButton","downButton","slider","_scrollSize","_thumbPercent","_lastPoint","_lastOffset","_checkElastic","_isElastic","_hide","_showButtons","_touchScrollEnable","_mouseWheelEnable","stopScroll","Slider","showLabel","onSliderChange","setSlider","isUp","slide","startLoop","changeScrollBar","isVertical","resetPositions","resetButtonPosition","setScroll","bar","onTargetMouseWheel","onTargetMouseDown","onStageMouseUp2","elasticOver","maxDistance","tarSpeed","changeValue","tick","_allowClickBack","_max","_min","_tick","_bg","_progress","_bar","_tx","_ty","_maxMove","_globalSacle","onBarMouseDown","allowClickBack","mouseMove","mouseUp","showValueText","textField","hideValueText","sendChangeEvent","oldValue","setBarPoint","onBgMouseDown","progressSkin","setSource","ProgressBar","grid","View","TipManager","_tipBox","_tipText","_defaultTipHandler","tipTextColor","_showDefaultTip","_onStageShowTip","_onStageHideTip","_showTip","tipDelay","Boolean","_onStageMouseMove","_onStageMouseDown","_showToStage","showDislayTip","tipBackColor","DataWatcher","_idMap","_aniList","_watchMap","createView","createComp","onEvent","loadUI","uiMap","changeData","exe","_regs","uiClassMap","view","dataMap","getCompInstance","isList","eventDic","setCompValue","initItems","_sheet","watcher","_parseWatchData","key1","_parseKeyWord","notifer","viewClassMap","regComponent","regViewRuntime","ViewStack","TextArea","CheckBox","HScrollBar","HSlider","Panel","Radio","RadioGroup","Tab","TextInput","VScrollBar","VSlider","Tree","HBox","VBox","FontClip","LayoutBox","_space","_align","onResize","_setItemChanged","changeItems","sortItem","sheet","_valueArr","_indexMap","_direction","_spaceX","_spaceY","_wordsW","_wordsH","_onClipLoaded","isHorizontal","spaceX","sources","selectHandler","renderHandler","totalPage","_scrollBar","_itemRender","_repeatX","_repeatY","_repeatX2","_repeatY2","_array","_page","_isVertical","_cellSize","_cellOffset","_isMoved","cacheContent","_createdLine","_cellChanged","onScrollStart","onScrollEnd","_removePreScrollBar","changeCells","cell","_getOneCell","cellWidth","cellHeight","listWidth","repeatX","listHeight","setContentSize","numX","numY","_createItems","renderItems","createItem","cacheBox","addCell","watchMap","onCellMouse","changeCellState","visable","selectBox","onScrollBarChange","scrollValue","scrollLine","down","toIndex","cellIndex","renderItem","changeSelectStatus","posCell","_$bindData","_bindData","addItem","souce","addItemAt","deleteItem","scrollTo","tweenTo","_setCellChanged","_$get_cacheAs","scrollSize","thumbPercent","_vScrollBar","_hScrollBar","_scrollChanged","_setScrollChanged","changeScroll","contentW","contentWidth","contentH","contentHeight","vscroll","hscroll","vShow","hShow","showWidth","showHeight","vScrollBar","hScrollBar","UIGroup","_items","_labelFont","_labelStrokeColor","_labelStroke","_labelSize","_labelBold","_labelPadding","_labelAlign","_labelChanged","autoLayOut","preItem","delItem","clickHandler","itemClick","setSelect","changeLabels","btn","labelSize","labelStroke","labelStrokeColor","strokeColors","labelBold","labelAlign","labelFont","_setLabelChanged","onClick","_renderHandler","_spaceLeft","_spaceBottom","_keepStatus","onListChange","getArray","$each_item","getParentOpenStatus","getDepth","nodeParent","arrow","hasChild","onArrowClick","folder","isDirectory","setItemState","fresh","parseXml","isRoot","childNodes","childCount","list2","$each_attrs","nodeName","parseOpenStatus","oldSource","newSource","newItem","oldItem","isSameParent","item2","getFilterSource","toLocaleLowerCase","selectedItem","_setIndexHandler","setIndex","setItems","views","_onInput","_onEnter","_onBlur","_onFocus","_$get_text","inputElementYAdjuster","inputElementXAdjuster","restrict","prompt","asPassword","_dragArea","manager","_dealDragArea","_onClick","dragTarget","dragArea","_open","popup","modal","_$get_zOrder","_manager","CANCEL","SURE","NO","OK","YES","maxHeight","TOP","MIDDLE","BOTTOM","maxWidth","CENTER","onVBarChanged","onHBarChanged","scrollX","AsynDialog","_uiView","isCloseOther","onCreated","onOpen","onClose","onDestroy"],"mappings":"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","file":"core.map","sourceRoot":"","sourcesContent":["\r\n/***********************************/\r\n/*http://www.layabox.com  2017/12/12*/\r\n/***********************************/\r\nvar Laya=window.Laya=(function(window,document){\r\n\tvar Laya={\r\n\t\t__internals:[],\r\n\t\t__packages:{},\r\n\t\t__classmap:{'Object':Object,'Function':Function,'Array':Array,'String':String},\r\n\t\t__sysClass:{'object':'Object','array':'Array','string':'String','dictionary':'Dictionary'},\r\n\t\t__propun:{writable: true,enumerable: false,configurable: true},\r\n\t\t__presubstr:String.prototype.substr,\r\n\t\t__substr:function(ofs,sz){return arguments.length==1?Laya.__presubstr.call(this,ofs):Laya.__presubstr.call(this,ofs,sz>0?sz:(this.length+sz));},\r\n\t\t__init:function(_classs){_classs.forEach(function(o){o.__init$ && o.__init$();});},\r\n\t\t__isClass:function(o){return o && (o.__isclass || o==Object || o==String || o==Array);},\r\n\t\t__newvec:function(sz,value){\r\n\t\t\tvar d=[];\r\n\t\t\td.length=sz;\r\n\t\t\tfor(var i=0;i<sz;i++) d[i]=value;\r\n\t\t\treturn d;\r\n\t\t},\r\n\t\t__extend:function(d,b){\r\n\t\t\tfor (var p in b){\r\n\t\t\t\tif (!b.hasOwnProperty(p)) continue;\r\n\t\t\t\tvar gs=Object.getOwnPropertyDescriptor(b, p);\r\n\t\t\t\tvar g = gs.get, s = gs.set; \r\n\t\t\t\tif ( g || s ) {\r\n\t\t\t\t\tif ( g && s)\r\n\t\t\t\t\t\tObject.defineProperty(d,p,gs);\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tg && Object.defineProperty(d, p, g);\r\n\t\t\t\t\t\ts && Object.defineProperty(d, p, s);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse d[p] = b[p];\r\n\t\t\t}\r\n\t\t\tfunction __() { Laya.un(this,'constructor',d); }__.prototype=b.prototype;d.prototype=new __();Laya.un(d.prototype,'__imps',Laya.__copy({},b.prototype.__imps));\r\n\t\t},\r\n\t\t__copy:function(dec,src){\r\n\t\t\tif(!src) return null;\r\n\t\t\tdec=dec||{};\r\n\t\t\tfor(var i in src) dec[i]=src[i];\r\n\t\t\treturn dec;\r\n\t\t},\r\n\t\t__package:function(name,o){\r\n\t\t\tif(Laya.__packages[name]) return;\r\n\t\t\tLaya.__packages[name]=true;\r\n\t\t\tvar p=window,strs=name.split('.');\r\n\t\t\tif(strs.length>1){\r\n\t\t\t\tfor(var i=0,sz=strs.length-1;i<sz;i++){\r\n\t\t\t\t\tvar c=p[strs[i]];\r\n\t\t\t\t\tp=c?c:(p[strs[i]]={});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tp[strs[strs.length-1]] || (p[strs[strs.length-1]]=o||{});\r\n\t\t},\r\n\t\t__hasOwnProperty:function(name,o){\r\n\t\t\to=o ||this;\r\n\t\t    function classHas(name,o){\r\n\t\t\t\tif(Object.hasOwnProperty.call(o.prototype,name)) return true;\r\n\t\t\t\tvar s=o.prototype.__super;\r\n\t\t\t\treturn s==null?null:classHas(name,s);\r\n\t\t\t}\r\n\t\t\treturn (Object.hasOwnProperty.call(o,name)) || classHas(name,o.__class);\r\n\t\t},\r\n\t\t__typeof:function(o,value){\r\n\t\t\tif(!o || !value) return false;\r\n\t\t\tif(value===String) return (typeof o==='string');\r\n\t\t\tif(value===Number) return (typeof o==='number');\r\n\t\t\tif(value.__interface__) value=value.__interface__;\r\n\t\t\telse if(typeof value!='string')  return (o instanceof value);\r\n\t\t\treturn (o.__imps && o.__imps[value]) || (o.__class==value);\r\n\t\t},\r\n\t\t__as:function(value,type){\r\n\t\t\treturn (this.__typeof(value,type))?value:null;\r\n\t\t},\r\n        __int:function(value){\r\n            return value?parseInt(value):0;\r\n        },\r\n\t\tinterface:function(name,_super){\r\n\t\t\tLaya.__package(name,{});\r\n\t\t\tvar ins=Laya.__internals;\r\n\t\t\tvar a=ins[name]=ins[name] || {self:name};\r\n\t\t\tif(_super)\r\n\t\t\t{\r\n\t\t\t\tvar supers=_super.split(',');\r\n\t\t\t\ta.extend=[];\r\n\t\t\t\tfor(var i=0;i<supers.length;i++){\r\n\t\t\t\t\tvar nm=supers[i];\r\n\t\t\t\t\tins[nm]=ins[nm] || {self:nm};\r\n\t\t\t\t\ta.extend.push(ins[nm]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar o=window,words=name.split('.');\r\n\t\t\tfor(var i=0;i<words.length-1;i++) o=o[words[i]];\r\n\t\t\to[words[words.length-1]]={__interface__:name};\r\n\t\t},\r\n\t\tclass:function(o,fullName,_super,miniName){\r\n\t\t\t_super && Laya.__extend(o,_super);\r\n\t\t\tif(fullName){\r\n\t\t\t\tLaya.__package(fullName,o);\r\n\t\t\t\tLaya.__classmap[fullName]=o;\r\n\t\t\t\tif(fullName.indexOf('.')>0){\r\n\t\t\t\t\tif(fullName.indexOf('laya.')==0){\r\n\t\t\t\t\t\tvar paths=fullName.split('.');\r\n\t\t\t\t\t\tminiName=miniName || paths[paths.length-1];\r\n\t\t\t\t\t\tif(Laya[miniName]) console.log(\"Warning!,this class[\"+miniName+\"] already exist:\",Laya[miniName]);\r\n\t\t\t\t\t\tLaya[miniName]=o;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif(fullName==\"Main\")\r\n\t\t\t\t\t\twindow.Main=o;\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tif(Laya[fullName]){\r\n\t\t\t\t\t\t\tconsole.log(\"Error!,this class[\"+fullName+\"] already exist:\",Laya[fullName]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tLaya[fullName]=o;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar un=Laya.un,p=o.prototype;\r\n\t\t\tun(p,'hasOwnProperty',Laya.__hasOwnProperty);\r\n\t\t\tun(p,'__class',o);\r\n\t\t\tun(p,'__super',_super);\r\n\t\t\tun(p,'__className',fullName);\r\n\t\t\tun(o,'__super',_super);\r\n\t\t\tun(o,'__className',fullName);\r\n\t\t\tun(o,'__isclass',true);\r\n\t\t\tun(o,'super',function(o){this.__super.call(o);});\r\n\t\t},\r\n\t\timps:function(dec,src){\r\n\t\t\tif(!src) return null;\r\n\t\t\tvar d=dec.__imps|| Laya.un(dec,'__imps',{});\r\n\t\t\tfunction __(name){\r\n\t\t\t\tvar c,exs;\r\n\t\t\t\tif(! (c=Laya.__internals[name]) ) return;\r\n\t\t\t\td[name]=true;\r\n\t\t\t\tif(!(exs=c.extend)) return;\r\n\t\t\t\tfor(var i=0;i<exs.length;i++){\r\n\t\t\t\t\t__(exs[i].self);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor(var i in src) __(i);\r\n\t\t},\r\n        superSet:function(clas,o,prop,value){\r\n            var fun = clas.prototype[\"_$set_\"+prop];\r\n            fun && fun.call(o,value);\r\n        },\r\n        superGet:function(clas,o,prop){\r\n            var fun = clas.prototype[\"_$get_\"+prop];\r\n           \treturn fun?fun.call(o):null;\r\n        },\r\n\t\tgetset:function(isStatic,o,name,getfn,setfn){\r\n\t\t\tif(!isStatic){\r\n\t\t\t\tgetfn && Laya.un(o,'_$get_'+name,getfn);\r\n\t\t\t\tsetfn && Laya.un(o,'_$set_'+name,setfn);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tgetfn && (o['_$GET_'+name]=getfn);\r\n\t\t\t\tsetfn && (o['_$SET_'+name]=setfn);\r\n\t\t\t}\r\n\t\t\tif(getfn && setfn) \r\n\t\t\t\tObject.defineProperty(o,name,{get:getfn,set:setfn,enumerable:false,configurable:true});\r\n\t\t\telse{\r\n\t\t\t\tgetfn && Object.defineProperty(o,name,{get:getfn,enumerable:false,configurable:true});\r\n\t\t\t\tsetfn && Object.defineProperty(o,name,{set:setfn,enumerable:false,configurable:true});\r\n\t\t\t}\r\n\t\t},\r\n\t\tstatic:function(_class,def){\r\n\t\t\t\tfor(var i=0,sz=def.length;i<sz;i+=2){\r\n\t\t\t\t\tif(def[i]=='length') \r\n\t\t\t\t\t\t_class.length=def[i+1].call(_class);\r\n\t\t\t\t\telse{\r\n\t\t\t\t\t\tfunction tmp(){\r\n\t\t\t\t\t\t\tvar name=def[i];\r\n\t\t\t\t\t\t\tvar getfn=def[i+1];\r\n\t\t\t\t\t\t\tObject.defineProperty(_class,name,{\r\n\t\t\t\t\t\t\t\tget:function(){delete this[name];return this[name]=getfn.call(this);},\r\n\t\t\t\t\t\t\t\tset:function(v){delete this[name];this[name]=v;},enumerable: true,configurable: true});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttmp();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t},\t\t\r\n\t\tun:function(obj,name,value){\r\n\t\t\tvalue || (value=obj[name]);\r\n\t\t\tLaya.__propun.value=value;\r\n\t\t\tObject.defineProperty(obj, name, Laya.__propun);\r\n\t\t\treturn value;\r\n\t\t},\r\n\t\tuns:function(obj,names){\r\n\t\t\tnames.forEach(function(o){Laya.un(obj,o)});\r\n\t\t}\r\n\t};\r\n\r\n    window.console=window.console || ({log:function(){}});\r\n\twindow.trace=window.console.log;\r\n\tError.prototype.throwError=function(){throw arguments;};\r\n\t//String.prototype.substr=Laya.__substr;\r\n\tObject.defineProperty(Array.prototype,'fixed',{enumerable: false});\r\n\r\n\treturn Laya;\r\n})(window,document);\r\n\r\n(function(window,document,Laya){\r\n\tvar __un=Laya.un,__uns=Laya.uns,__static=Laya.static,__class=Laya.class,__getset=Laya.getset,__newvec=Laya.__newvec;\r\n\r\n})(window,document,Laya);\r\n\r\n\r\n(function(window,document,Laya){\r\n\tvar __un=Laya.un,__uns=Laya.uns,__static=Laya.static,__class=Laya.class,__getset=Laya.getset,__newvec=Laya.__newvec;\r\nLaya.interface('laya.runtime.IMarket');\r\nLaya.interface('laya.filters.IFilter');\r\nLaya.interface('laya.display.ILayout');\r\nLaya.interface('laya.resource.IDispose');\r\nLaya.interface('laya.runtime.IPlatform');\r\nLaya.interface('laya.resource.IDestroy');\r\nLaya.interface('laya.runtime.IConchNode');\r\nLaya.interface('laya.filters.IFilterAction');\r\nLaya.interface('laya.runtime.ICPlatformClass');\r\nLaya.interface('laya.resource.ICreateResource');\r\nLaya.interface('laya.runtime.IConchRenderObject');\r\nLaya.interface('laya.runtime.IPlatformClass','laya.runtime.IPlatform');\r\n/**\r\n*@private\r\n*/\r\n//class laya.utils.RunDriver\r\nvar RunDriver=(function(){\r\n\tfunction RunDriver(){}\r\n\t__class(RunDriver,'laya.utils.RunDriver');\r\n\tRunDriver.FILTER_ACTIONS=[];\r\n\tRunDriver.pixelRatio=-1;\r\n\tRunDriver._charSizeTestDiv=null;\r\n\tRunDriver.now=function(){\r\n\t\treturn /*__JS__ */Date.now();\r\n\t}\r\n\r\n\tRunDriver.getWindow=function(){\r\n\t\treturn /*__JS__ */window;\r\n\t}\r\n\r\n\tRunDriver.getPixelRatio=function(){\r\n\t\tif (RunDriver.pixelRatio < 0){\r\n\t\t\tvar ctx=Browser.context;\r\n\t\t\tvar backingStore=ctx.backingStorePixelRatio || ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;\r\n\t\t\tRunDriver.pixelRatio=(Browser.window.devicePixelRatio || 1)/ backingStore;\r\n\t\t\tif (RunDriver.pixelRatio < 1)RunDriver.pixelRatio=1;\r\n\t\t}\r\n\t\treturn RunDriver.pixelRatio;\r\n\t}\r\n\r\n\tRunDriver.getIncludeStr=function(name){\r\n\t\treturn null;\r\n\t}\r\n\r\n\tRunDriver.createShaderCondition=function(conditionScript){\r\n\t\tvar fn=\"(function() {return \"+conditionScript+\";})\";\r\n\t\treturn Laya._runScript(fn);\r\n\t}\r\n\r\n\tRunDriver.fontMap=[];\r\n\tRunDriver.measureText=function(txt,font){\r\n\t\tvar isChinese=RunDriver.hanzi.test(txt);\r\n\t\tif (isChinese && RunDriver.fontMap[font]){\r\n\t\t\treturn RunDriver.fontMap[font];\r\n\t\t};\r\n\t\tvar ctx=Browser.context;\r\n\t\tctx.font=font;\r\n\t\tvar r=ctx.measureText(txt);\r\n\t\tif (isChinese)RunDriver.fontMap[font]=r;\r\n\t\treturn r;\r\n\t}\r\n\r\n\tRunDriver.getWebGLContext=function(canvas){\r\n\t};\r\n\r\n\tRunDriver.beginFlush=function(){\r\n\t};\r\n\r\n\tRunDriver.endFinish=function(){\r\n\t};\r\n\r\n\tRunDriver.addToAtlas=null;\r\n\tRunDriver.flashFlushImage=function(atlasWebGLCanvas){\r\n\t};\r\n\r\n\tRunDriver.drawToCanvas=function(sprite,_renderType,canvasWidth,canvasHeight,offsetX,offsetY){\r\n\t\tvar canvas=HTMLCanvas.create(\"2D\");\r\n\t\tvar context=new RenderContext(canvasWidth,canvasHeight,canvas);\r\n\t\tRenderSprite.renders[_renderType]._fun(sprite,context,offsetX,offsetY);\r\n\t\treturn canvas;\r\n\t}\r\n\r\n\tRunDriver.createParticleTemplate2D=null;\r\n\tRunDriver.createGLTextur=null;\r\n\tRunDriver.createWebGLContext2D=null;\r\n\tRunDriver.changeWebGLSize=function(w,h){\r\n\t};\r\n\r\n\tRunDriver.createRenderSprite=function(type,next){\r\n\t\treturn new RenderSprite(type,next);\r\n\t}\r\n\r\n\tRunDriver.createFilterAction=function(type){\r\n\t\treturn new ColorFilterAction();\r\n\t}\r\n\r\n\tRunDriver.createGraphics=function(){\r\n\t\treturn new Graphics();\r\n\t}\r\n\r\n\tRunDriver.clear=function(value){\r\n\t\tRender._context.ctx.clear();\r\n\t}\r\n\r\n\tRunDriver.cancelLoadByUrl=function(url){\r\n\t};\r\n\r\n\tRunDriver.clearAtlas=function(value){\r\n\t};\r\n\r\n\tRunDriver.isAtlas=function(bitmap){\r\n\t\treturn false;\r\n\t}\r\n\r\n\tRunDriver.addTextureToAtlas=function(value){\r\n\t};\r\n\r\n\tRunDriver.getTexturePixels=function(value,x,y,width,height){\r\n\t\treturn null;\r\n\t}\r\n\r\n\tRunDriver.skinAniSprite=function(){\r\n\t\treturn null;\r\n\t}\r\n\r\n\tRunDriver.update3DLoop=function(){\r\n\t};\r\n\r\n\t__static(RunDriver,\r\n\t['hanzi',function(){return this.hanzi=new RegExp(\"^[\\u4E00-\\u9FA5]$\");}\r\n\t]);\r\n\treturn RunDriver;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Laya</code> 是全局对象的引用入口集。\r\n*Laya类引用了一些常用的全局对象，比如Laya.stage：舞台，Laya.timer：时间管理器，Laya.loader：加载管理器，使用时注意大小写。\r\n*/\r\n//class Laya\r\nvar ___Laya=(function(){\r\n\t//function Laya(){}\r\n\t/**\r\n\t*表示是否捕获全局错误并弹出提示。默认为false。\r\n\t*适用于移动设备等不方便调试的时候，设置为true后，如有未知错误，可以弹窗抛出详细错误堆栈。\r\n\t*/\r\n\t__getset(1,Laya,'alertGlobalError',null,function(value){\r\n\t\tvar erralert=0;\r\n\t\tif (value){\r\n\t\t\tBrowser.window.onerror=function (msg,url,line,column,detail){\r\n\t\t\t\tif (erralert++< 5 && detail)\r\n\t\t\t\t\talert(\"出错啦，请把此信息截图给研发商\\n\"+msg+\"\\n\"+detail.stack||detail);\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tBrowser.window.onerror=null;\r\n\t\t}\r\n\t});\r\n\r\n\tLaya.init=function(width,height,__plugins){\r\n\t\tvar plugins=[];for(var i=2,sz=arguments.length;i<sz;i++)plugins.push(arguments[i]);\r\n\t\tif (Laya._isinit)return;\r\n\t\tArrayBuffer.prototype.slice || (ArrayBuffer.prototype.slice=Laya._arrayBufferSlice);\r\n\t\tLaya._isinit=true;\r\n\t\tBrowser.__init__();\r\n\t\tContext.__init__();\r\n\t\tGraphics.__init__();\r\n\t\tLaya.timer=new Timer();\r\n\t\tLaya.scaleTimer=new Timer();\r\n\t\tLaya.loader=new LoaderManager();\r\n\t\tWeakObject.__init__();\r\n\t\tfor (var i=0,n=plugins.length;i < n;i++){\r\n\t\t\tif (plugins[i].enable)plugins[i].enable();\r\n\t\t}\r\n\t\tFont.__init__();\r\n\t\tStyle.__init__();\r\n\t\tResourceManager.__init__();\r\n\t\tCacheManager.beginCheck();\r\n\t\tLaya._currentStage=Laya.stage=new Stage();\r\n\t\tLaya.stage.conchModel && Laya.stage.conchModel.setRootNode();\r\n\t\tLaya.getUrlPath();\r\n\t\tLaya.render=new Render(0,0);\r\n\t\tLaya.stage.size(width,height);\r\n\t\tRenderSprite.__init__();\r\n\t\tKeyBoardManager.__init__();\r\n\t\tMouseManager.instance.__init__(Laya.stage,Render.canvas);\r\n\t\tInput.__init__();\r\n\t\tSoundManager.autoStopMusic=true;\r\n\t\tLocalStorage.__init__();\r\n\t\treturn Render.canvas;\r\n\t}\r\n\r\n\tLaya.getUrlPath=function(){\r\n\t\tvar location=Browser.window.location;\r\n\t\tvar pathName=location.pathname;\r\n\t\tpathName=pathName.charAt(2)==':' ? pathName.substring(1):pathName;\r\n\t\tURL.rootPath=URL.basePath=URL.getPath(location.protocol==\"file:\" ? pathName :location.protocol+\"//\"+location.host+location.pathname);\r\n\t}\r\n\r\n\tLaya._arrayBufferSlice=function(start,end){\r\n\t\tvar arr=/*__JS__ */this;\r\n\t\tvar arrU8List=new Uint8Array(arr,start,end-start);\r\n\t\tvar newU8List=new Uint8Array(arrU8List.length);\r\n\t\tnewU8List.set(arrU8List);\r\n\t\treturn newU8List.buffer;\r\n\t}\r\n\r\n\tLaya._runScript=function(script){\r\n\t\treturn Browser.window[\"e\"+String.fromCharCode(100+10+8)+\"a\"+\"l\"](script);\r\n\t}\r\n\r\n\tLaya.stage=null;\r\n\tLaya.timer=null;\r\n\tLaya.scaleTimer=null;\r\n\tLaya.loader=null;\r\n\tLaya.version=\"1.7.19.1beta\";\r\n\tLaya.render=null;\r\n\tLaya._currentStage=null;\r\n\tLaya._isinit=false;\r\n\tLaya.MiniAdpter=/*__JS__ */{init:function(){if (window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf(\"MiniGame\")>-1)console.error(\"请先引用小游戏适配库laya.wxmini.js,详细教程：https://ldc.layabox.com/doc/?nav=zh-ts-5-0-0\")}};\r\n\t__static(Laya,\r\n\t['conchMarket',function(){return this.conchMarket=/*__JS__ */window.conch?conchMarket:null;},'PlatformClass',function(){return this.PlatformClass=/*__JS__ */window.PlatformClass;}\r\n\t]);\r\n\treturn Laya;\r\n})()\r\n\r\n\r\n/**\r\n*Config 用于配置一些全局参数。如需更改，请在初始化引擎之前设置。\r\n*/\r\n//class Config\r\nvar Config=(function(){\r\n\tfunction Config(){}\r\n\t__class(Config,'Config');\r\n\tConfig.WebGLTextCacheCount=500;\r\n\tConfig.atlasEnable=false;\r\n\tConfig.showCanvasMark=false;\r\n\tConfig.animationInterval=50;\r\n\tConfig.isAntialias=false;\r\n\tConfig.isAlpha=false;\r\n\tConfig.premultipliedAlpha=true;\r\n\tConfig.isStencil=true;\r\n\tConfig.preserveDrawingBuffer=false;\r\n\treturn Config;\r\n})()\r\n\r\n\r\n/**\r\n*<code>EventDispatcher</code> 类是可调度事件的所有类的基类。\r\n*/\r\n//class laya.events.EventDispatcher\r\nvar EventDispatcher=(function(){\r\n\tvar EventHandler;\r\n\tfunction EventDispatcher(){\r\n\t\t/**@private */\r\n\t\tthis._events=null;\r\n\t}\r\n\r\n\t__class(EventDispatcher,'laya.events.EventDispatcher');\r\n\tvar __proto=EventDispatcher.prototype;\r\n\t/**\r\n\t*检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。\r\n\t*@param type 事件的类型。\r\n\t*@return 如果指定类型的侦听器已注册，则值为 true；否则，值为 false。\r\n\t*/\r\n\t__proto.hasListener=function(type){\r\n\t\tvar listener=this._events && this._events[type];\r\n\t\treturn !!listener;\r\n\t}\r\n\r\n\t/**\r\n\t*派发事件。\r\n\t*@param type 事件类型。\r\n\t*@param data （可选）回调数据。<b>注意：</b>如果是需要传递多个参数 p1,p2,p3,...可以使用数组结构如：[p1,p2,p3,...] ；如果需要回调单个参数 p ，且 p 是一个数组，则需要使用结构如：[p]，其他的单个参数 p ，可以直接传入参数 p。\r\n\t*@return 此事件类型是否有侦听者，如果有侦听者则值为 true，否则值为 false。\r\n\t*/\r\n\t__proto.event=function(type,data){\r\n\t\tif (!this._events || !this._events[type])return false;\r\n\t\tvar listeners=this._events[type];\r\n\t\tif (listeners.run){\r\n\t\t\tif (listeners.once)delete this._events[type];\r\n\t\t\tdata !=null ? listeners.runWith(data):listeners.run();\r\n\t\t\t}else {\r\n\t\t\tfor (var i=0,n=listeners.length;i < n;i++){\r\n\t\t\t\tvar listener=listeners[i];\r\n\t\t\t\tif (listener){\r\n\t\t\t\t\t(data !=null)? listener.runWith(data):listener.run();\r\n\t\t\t\t}\r\n\t\t\t\tif (!listener || listener.once){\r\n\t\t\t\t\tlisteners.splice(i,1);\r\n\t\t\t\t\ti--;\r\n\t\t\t\t\tn--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (listeners.length===0 && this._events)delete this._events[type];\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t*使用 EventDispatcher 对象注册指定类型的事件侦听器对象，以使侦听器能够接收事件通知。\r\n\t*@param type 事件的类型。\r\n\t*@param caller 事件侦听函数的执行域。\r\n\t*@param listener 事件侦听函数。\r\n\t*@param args （可选）事件侦听函数的回调参数。\r\n\t*@return 此 EventDispatcher 对象。\r\n\t*/\r\n\t__proto.on=function(type,caller,listener,args){\r\n\t\treturn this._createListener(type,caller,listener,args,false);\r\n\t}\r\n\r\n\t/**\r\n\t*使用 EventDispatcher 对象注册指定类型的事件侦听器对象，以使侦听器能够接收事件通知，此侦听事件响应一次后自动移除。\r\n\t*@param type 事件的类型。\r\n\t*@param caller 事件侦听函数的执行域。\r\n\t*@param listener 事件侦听函数。\r\n\t*@param args （可选）事件侦听函数的回调参数。\r\n\t*@return 此 EventDispatcher 对象。\r\n\t*/\r\n\t__proto.once=function(type,caller,listener,args){\r\n\t\treturn this._createListener(type,caller,listener,args,true);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._createListener=function(type,caller,listener,args,once,offBefore){\r\n\t\t(offBefore===void 0)&& (offBefore=true);\r\n\t\toffBefore && this.off(type,caller,listener,once);\r\n\t\tvar handler=EventHandler.create(caller || this,listener,args,once);\r\n\t\tthis._events || (this._events={});\r\n\t\tvar events=this._events;\r\n\t\tif (!events[type])events[type]=handler;\r\n\t\telse {\r\n\t\t\tif (!events[type].run)events[type].push(handler);\r\n\t\t\telse events[type]=[events[type],handler];\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*从 EventDispatcher 对象中删除侦听器。\r\n\t*@param type 事件的类型。\r\n\t*@param caller 事件侦听函数的执行域。\r\n\t*@param listener 事件侦听函数。\r\n\t*@param onceOnly （可选）如果值为 true ,则只移除通过 once 方法添加的侦听器。\r\n\t*@return 此 EventDispatcher 对象。\r\n\t*/\r\n\t__proto.off=function(type,caller,listener,onceOnly){\r\n\t\t(onceOnly===void 0)&& (onceOnly=false);\r\n\t\tif (!this._events || !this._events[type])return this;\r\n\t\tvar listeners=this._events[type];\r\n\t\tif (listener !=null){\r\n\t\t\tif (listeners.run){\r\n\t\t\t\tif ((!caller || listeners.caller===caller)&& listeners.method===listener && (!onceOnly || listeners.once)){\r\n\t\t\t\t\tdelete this._events[type];\r\n\t\t\t\t\tlisteners.recover();\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tvar count=0;\r\n\t\t\t\tfor (var i=0,n=listeners.length;i < n;i++){\r\n\t\t\t\t\tvar item=listeners[i];\r\n\t\t\t\t\tif (!item){\r\n\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (item && (!caller || item.caller===caller)&& item.method===listener && (!onceOnly || item.once)){\r\n\t\t\t\t\t\tcount++;\r\n\t\t\t\t\t\tlisteners[i]=null;\r\n\t\t\t\t\t\titem.recover();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (count===n)delete this._events[type];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*从 EventDispatcher 对象中删除指定事件类型的所有侦听器。\r\n\t*@param type （可选）事件类型，如果值为 null，则移除本对象所有类型的侦听器。\r\n\t*@return 此 EventDispatcher 对象。\r\n\t*/\r\n\t__proto.offAll=function(type){\r\n\t\tvar events=this._events;\r\n\t\tif (!events)return this;\r\n\t\tif (type){\r\n\t\t\tthis._recoverHandlers(events[type]);\r\n\t\t\tdelete events[type];\r\n\t\t\t}else {\r\n\t\t\tfor (var name in events){\r\n\t\t\t\tthis._recoverHandlers(events[name]);\r\n\t\t\t}\r\n\t\t\tthis._events=null;\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t__proto._recoverHandlers=function(arr){\r\n\t\tif (!arr)return;\r\n\t\tif (arr.run){\r\n\t\t\tarr.recover();\r\n\t\t\t}else {\r\n\t\t\tfor (var i=arr.length-1;i >-1;i--){\r\n\t\t\t\tif (arr[i]){\r\n\t\t\t\t\tarr[i].recover();\r\n\t\t\t\t\tarr[i]=null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*检测指定事件类型是否是鼠标事件。\r\n\t*@param type 事件的类型。\r\n\t*@return 如果是鼠标事件，则值为 true;否则，值为 false。\r\n\t*/\r\n\t__proto.isMouseEvent=function(type){\r\n\t\treturn EventDispatcher.MOUSE_EVENTS[type];\r\n\t}\r\n\r\n\tEventDispatcher.MOUSE_EVENTS={\"rightmousedown\":true,\"rightmouseup\":true,\"rightclick\":true,\"mousedown\":true,\"mouseup\":true,\"mousemove\":true,\"mouseover\":true,\"mouseout\":true,\"click\":true,\"doubleclick\":true};\r\n\tEventDispatcher.__init$=function(){\r\n\t\tObject.defineProperty(laya.events.EventDispatcher.prototype,\"_events\",{enumerable:false,writable:true});\r\n\t\t/**@private */\r\n\t\t//class EventHandler extends laya.utils.Handler\r\n\t\tEventHandler=(function(_super){\r\n\t\t\tfunction EventHandler(caller,method,args,once){\r\n\t\t\t\tEventHandler.__super.call(this,caller,method,args,once);\r\n\t\t\t}\r\n\t\t\t__class(EventHandler,'',_super);\r\n\t\t\tvar __proto=EventHandler.prototype;\r\n\t\t\t__proto.recover=function(){\r\n\t\t\t\tif (this._id > 0){\r\n\t\t\t\t\tthis._id=0;\r\n\t\t\t\t\tEventHandler._pool.push(this.clear());\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tEventHandler.create=function(caller,method,args,once){\r\n\t\t\t\t(once===void 0)&& (once=true);\r\n\t\t\t\tif (EventHandler._pool.length)return EventHandler._pool.pop().setTo(caller,method,args,once);\r\n\t\t\t\treturn new EventHandler(caller,method,args,once);\r\n\t\t\t}\r\n\t\t\tEventHandler._pool=[];\r\n\t\t\treturn EventHandler;\r\n\t\t})(Handler)\r\n\t}\r\n\r\n\treturn EventDispatcher;\r\n})()\r\n\r\n\r\n/**\r\n*<p><code>Handler</code> 是事件处理器类。</p>\r\n*<p>推荐使用 Handler.create()方法从对象池创建，减少对象创建消耗。创建的 Handler 对象不再使用后，可以使用 Handler.recover()将其回收到对象池，回收后不要再使用此对象，否则会导致不可预料的错误。</p>\r\n*<p><b>注意：</b>由于鼠标事件也用本对象池，不正确的回收及调用，可能会影响鼠标事件的执行。</p>\r\n*/\r\n//class laya.utils.Handler\r\nvar Handler=(function(){\r\n\tfunction Handler(caller,method,args,once){\r\n\t\t/**执行域(this)。*/\r\n\t\t//this.caller=null;\r\n\t\t/**处理方法。*/\r\n\t\t//this.method=null;\r\n\t\t/**参数。*/\r\n\t\t//this.args=null;\r\n\t\t/**表示是否只执行一次。如果为true，回调后执行recover()进行回收，回收后会被再利用，默认为false 。*/\r\n\t\tthis.once=false;\r\n\t\t/**@private */\r\n\t\tthis._id=0;\r\n\t\t(once===void 0)&& (once=false);\r\n\t\tthis.setTo(caller,method,args,once);\r\n\t}\r\n\r\n\t__class(Handler,'laya.utils.Handler');\r\n\tvar __proto=Handler.prototype;\r\n\t/**\r\n\t*设置此对象的指定属性值。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 回调方法。\r\n\t*@param args 携带的参数。\r\n\t*@param once 是否只执行一次，如果为true，执行后执行recover()进行回收。\r\n\t*@return 返回 handler 本身。\r\n\t*/\r\n\t__proto.setTo=function(caller,method,args,once){\r\n\t\tthis._id=Handler._gid++;\r\n\t\tthis.caller=caller;\r\n\t\tthis.method=method;\r\n\t\tthis.args=args;\r\n\t\tthis.once=once;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*执行处理器。\r\n\t*/\r\n\t__proto.run=function(){\r\n\t\tif (this.method==null)return null;\r\n\t\tvar id=this._id;\r\n\t\tvar result=this.method.apply(this.caller,this.args);\r\n\t\tthis._id===id && this.once && this.recover();\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t*执行处理器，携带额外数据。\r\n\t*@param data 附加的回调数据，可以是单数据或者Array(作为多参)。\r\n\t*/\r\n\t__proto.runWith=function(data){\r\n\t\tif (this.method==null)return null;\r\n\t\tvar id=this._id;\r\n\t\tif (data==null)\r\n\t\t\tvar result=this.method.apply(this.caller,this.args);\r\n\t\telse if (!this.args && !data.unshift)result=this.method.call(this.caller,data);\r\n\t\telse if (this.args)result=this.method.apply(this.caller,this.args.concat(data));\r\n\t\telse result=this.method.apply(this.caller,data);\r\n\t\tthis._id===id && this.once && this.recover();\r\n\t\treturn result;\r\n\t}\r\n\r\n\t/**\r\n\t*清理对象引用。\r\n\t*/\r\n\t__proto.clear=function(){\r\n\t\tthis.caller=null;\r\n\t\tthis.method=null;\r\n\t\tthis.args=null;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*清理并回收到 Handler 对象池内。\r\n\t*/\r\n\t__proto.recover=function(){\r\n\t\tif (this._id > 0){\r\n\t\t\tthis._id=0;\r\n\t\t\tHandler._pool.push(this.clear());\r\n\t\t}\r\n\t}\r\n\r\n\tHandler.create=function(caller,method,args,once){\r\n\t\t(once===void 0)&& (once=true);\r\n\t\tif (Handler._pool.length)return Handler._pool.pop().setTo(caller,method,args,once);\r\n\t\treturn new Handler(caller,method,args,once);\r\n\t}\r\n\r\n\tHandler._pool=[];\r\n\tHandler._gid=1;\r\n\treturn Handler;\r\n})()\r\n\r\n\r\n/**\r\n*<code>BitmapFont</code> 是位图字体类，用于定义位图字体信息。\r\n*/\r\n//class laya.display.BitmapFont\r\nvar BitmapFont=(function(){\r\n\tfunction BitmapFont(){\r\n\t\tthis._texture=null;\r\n\t\tthis._fontCharDic={};\r\n\t\tthis._fontWidthMap={};\r\n\t\tthis._complete=null;\r\n\t\tthis._path=null;\r\n\t\tthis._maxWidth=0;\r\n\t\tthis._spaceWidth=10;\r\n\t\tthis._padding=null;\r\n\t\t/**当前位图字体字号。*/\r\n\t\tthis.fontSize=12;\r\n\t\t/**表示是否根据实际使用的字体大小缩放位图字体大小。*/\r\n\t\tthis.autoScaleSize=false;\r\n\t\t/**字符间距（以像素为单位）。*/\r\n\t\tthis.letterSpacing=0;\r\n\t}\r\n\r\n\t__class(BitmapFont,'laya.display.BitmapFont');\r\n\tvar __proto=BitmapFont.prototype;\r\n\t/**\r\n\t*通过指定位图字体文件路径，加载位图字体文件，加载完成后会自动解析。\r\n\t*@param path 位图字体文件的路径。\r\n\t*@param complete 加载并解析完成的回调。如果成功返回this,如果失败返回null\r\n\t*/\r\n\t__proto.loadFont=function(path,complete){\r\n\t\tthis._path=path;\r\n\t\tthis._complete=complete;\r\n\t\tLaya.loader.load([{url:this._path,type:/*laya.net.Loader.XML*/\"xml\"},{url:this._path.replace(\".fnt\",\".png\"),type:/*laya.net.Loader.IMAGE*/\"image\"}],Handler.create(this,this.onLoaded));\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.onLoaded=function(){\r\n\t\tthis.parseFont(Loader.getRes(this._path),Loader.getRes(this._path.replace(\".fnt\",\".png\")));\r\n\t\tthis._complete && this._complete.runWith(this._texture?this:null);\r\n\t}\r\n\r\n\t/**\r\n\t*解析字体文件。\r\n\t*@param xml 字体文件XML。\r\n\t*@param texture 字体的纹理。\r\n\t*/\r\n\t__proto.parseFont=function(xml,texture){\r\n\t\tif (xml==null || texture==null)return;\r\n\t\tthis._texture=texture;\r\n\t\tvar tX=0;\r\n\t\tvar tScale=1;\r\n\t\tvar tInfo=xml.getElementsByTagName(\"info\");\r\n\t\tif (!tInfo[0].getAttributeNode){\r\n\t\t\treturn this.parseFont2(xml,texture);\r\n\t\t}\r\n\t\tthis.fontSize=parseInt(tInfo[0].getAttributeNode(\"size\").nodeValue);\r\n\t\tvar tPadding=tInfo[0].getAttributeNode(\"padding\").nodeValue;\r\n\t\tvar tPaddingArray=tPadding.split(\",\");\r\n\t\tthis._padding=[parseInt(tPaddingArray[0]),parseInt(tPaddingArray[1]),parseInt(tPaddingArray[2]),parseInt(tPaddingArray[3])];\r\n\t\tvar chars;\r\n\t\tchars=xml.getElementsByTagName(\"char\");\r\n\t\tvar i=0;\r\n\t\tfor (i=0;i < chars.length;i++){\r\n\t\t\tvar tAttribute=chars[i];\r\n\t\t\tvar tId=parseInt(tAttribute.getAttributeNode(\"id\").nodeValue);\r\n\t\t\tvar xOffset=parseInt(tAttribute.getAttributeNode(\"xoffset\").nodeValue)/ tScale;\r\n\t\t\tvar yOffset=parseInt(tAttribute.getAttributeNode(\"yoffset\").nodeValue)/ tScale;\r\n\t\t\tvar xAdvance=parseInt(tAttribute.getAttributeNode(\"xadvance\").nodeValue)/ tScale;\r\n\t\t\tvar region=new Rectangle();\r\n\t\t\tregion.x=parseInt(tAttribute.getAttributeNode(\"x\").nodeValue);\r\n\t\t\tregion.y=parseInt(tAttribute.getAttributeNode(\"y\").nodeValue);\r\n\t\t\tregion.width=parseInt(tAttribute.getAttributeNode(\"width\").nodeValue);\r\n\t\t\tregion.height=parseInt(tAttribute.getAttributeNode(\"height\").nodeValue);\r\n\t\t\tvar tTexture=Texture.create(texture,region.x,region.y,region.width,region.height,xOffset,yOffset);\r\n\t\t\tthis._maxWidth=Math.max(this._maxWidth,xAdvance+this.letterSpacing);\r\n\t\t\tthis._fontCharDic[tId]=tTexture;\r\n\t\t\tthis._fontWidthMap[tId]=xAdvance;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*解析字体文件。\r\n\t*@param xml 字体文件XML。\r\n\t*@param texture 字体的纹理。\r\n\t*/\r\n\t__proto.parseFont2=function(xml,texture){\r\n\t\tif (xml==null || texture==null)return;\r\n\t\tthis._texture=texture;\r\n\t\tvar tX=0;\r\n\t\tvar tScale=1;\r\n\t\tvar tInfo=xml.getElementsByTagName(\"info\");\r\n\t\tthis.fontSize=parseInt(tInfo[0].attributes[\"size\"].nodeValue);\r\n\t\tvar tPadding=tInfo[0].attributes[\"padding\"].nodeValue;\r\n\t\tvar tPaddingArray=tPadding.split(\",\");\r\n\t\tthis._padding=[parseInt(tPaddingArray[0]),parseInt(tPaddingArray[1]),parseInt(tPaddingArray[2]),parseInt(tPaddingArray[3])];\r\n\t\tvar chars=xml.getElementsByTagName(\"char\");\r\n\t\tvar i=0;\r\n\t\tfor (i=0;i < chars.length;i++){\r\n\t\t\tvar tAttribute=chars[i].attributes;\r\n\t\t\tvar tId=parseInt(tAttribute[\"id\"].nodeValue);\r\n\t\t\tvar xOffset=parseInt(tAttribute[\"xoffset\"].nodeValue)/ tScale;\r\n\t\t\tvar yOffset=parseInt(tAttribute[\"yoffset\"].nodeValue)/ tScale;\r\n\t\t\tvar xAdvance=parseInt(tAttribute[\"xadvance\"].nodeValue)/ tScale;\r\n\t\t\tvar region=new Rectangle();\r\n\t\t\tregion.x=parseInt(tAttribute[\"x\"].nodeValue);\r\n\t\t\tregion.y=parseInt(tAttribute[\"y\"].nodeValue);\r\n\t\t\tregion.width=parseInt(tAttribute[\"width\"].nodeValue);\r\n\t\t\tregion.height=parseInt(tAttribute[\"height\"].nodeValue);\r\n\t\t\tvar tTexture=Texture.create(texture,region.x,region.y,region.width,region.height,xOffset,yOffset);\r\n\t\t\tthis._maxWidth=Math.max(this._maxWidth,xAdvance+this.letterSpacing);\r\n\t\t\tthis._fontCharDic[tId]=tTexture;\r\n\t\t\tthis._fontWidthMap[tId]=xAdvance;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*获取指定字符的字体纹理对象。\r\n\t*@param char 字符。\r\n\t*@return 指定的字体纹理对象。\r\n\t*/\r\n\t__proto.getCharTexture=function(char){\r\n\t\treturn this._fontCharDic[char.charCodeAt(0)];\r\n\t}\r\n\r\n\t/**\r\n\t*销毁位图字体，调用Text.unregisterBitmapFont 时，默认会销毁。\r\n\t*/\r\n\t__proto.destroy=function(){\r\n\t\tif (this._texture){\r\n\t\t\tfor (var p in this._fontCharDic){\r\n\t\t\t\tvar tTexture=this._fontCharDic[p];\r\n\t\t\t\tif (tTexture)tTexture.destroy();\r\n\t\t\t}\r\n\t\t\tthis._texture.destroy();\r\n\t\t\tthis._fontCharDic=null;\r\n\t\t\tthis._fontWidthMap=null;\r\n\t\t\tthis._texture=null;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*设置空格的宽（如果字体库有空格，这里就可以不用设置了）。\r\n\t*@param spaceWidth 宽度，单位为像素。\r\n\t*/\r\n\t__proto.setSpaceWidth=function(spaceWidth){\r\n\t\tthis._spaceWidth=spaceWidth;\r\n\t}\r\n\r\n\t/**\r\n\t*获取指定字符的宽度。\r\n\t*@param char 字符。\r\n\t*@return 宽度。\r\n\t*/\r\n\t__proto.getCharWidth=function(char){\r\n\t\tvar code=char.charCodeAt(0);\r\n\t\tif (this._fontWidthMap[code])return this._fontWidthMap[code]+this.letterSpacing;\r\n\t\tif (char==\" \")return this._spaceWidth+this.letterSpacing;\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t*获取指定文本内容的宽度。\r\n\t*@param text 文本内容。\r\n\t*@return 宽度。\r\n\t*/\r\n\t__proto.getTextWidth=function(text){\r\n\t\tvar tWidth=0;\r\n\t\tfor (var i=0,n=text.length;i < n;i++){\r\n\t\t\ttWidth+=this.getCharWidth(text.charAt(i));\r\n\t\t}\r\n\t\treturn tWidth;\r\n\t}\r\n\r\n\t/**\r\n\t*获取最大字符宽度。\r\n\t*/\r\n\t__proto.getMaxWidth=function(){\r\n\t\treturn this._maxWidth;\r\n\t}\r\n\r\n\t/**\r\n\t*获取最大字符高度。\r\n\t*/\r\n\t__proto.getMaxHeight=function(){\r\n\t\treturn this.fontSize;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*将指定的文本绘制到指定的显示对象上。\r\n\t*/\r\n\t__proto.drawText=function(text,sprite,drawX,drawY,align,width){\r\n\t\tvar tWidth=this.getTextWidth(text);\r\n\t\tvar tTexture;\r\n\t\tvar dx=0;\r\n\t\talign===\"center\" && (dx=(width-tWidth)/ 2);\r\n\t\talign===\"right\" && (dx=(width-tWidth));\r\n\t\tvar tX=0;\r\n\t\tfor (var i=0,n=text.length;i < n;i++){\r\n\t\t\ttTexture=this.getCharTexture(text.charAt(i));\r\n\t\t\tif (tTexture){\r\n\t\t\t\tsprite.graphics.drawTexture(tTexture,drawX+tX+dx,drawY);\r\n\t\t\t\ttX+=this.getCharWidth(text.charAt(i));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn BitmapFont;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*<code>Style</code> 类是元素样式定义类。\r\n*/\r\n//class laya.display.css.Style\r\nvar Style=(function(){\r\n\tfunction Style(){\r\n\t\t/**透明度。*/\r\n\t\tthis.alpha=1;\r\n\t\t/**表示是否显示。*/\r\n\t\tthis.visible=true;\r\n\t\t/**表示滚动区域。*/\r\n\t\tthis.scrollRect=null;\r\n\t\t/**混合模式。*/\r\n\t\tthis.blendMode=null;\r\n\t\t/**@private */\r\n\t\tthis._type=0;\r\n\t\tthis._tf=Style._TF_EMPTY;\r\n\t}\r\n\r\n\t__class(Style,'laya.display.css.Style');\r\n\tvar __proto=Style.prototype;\r\n\t__proto.getTransform=function(){\r\n\t\treturn this._tf;\r\n\t}\r\n\r\n\t__proto.setTransform=function(value){\r\n\t\tthis._tf=value==='none' || !value ? Style._TF_EMPTY :value;\r\n\t}\r\n\r\n\t__proto.setTranslateX=function(value){\r\n\t\tthis._tf===Style._TF_EMPTY && (this._tf=new TransformInfo());\r\n\t\tthis._tf.translateX=value;\r\n\t}\r\n\r\n\t__proto.setTranslateY=function(value){\r\n\t\tthis._tf===Style._TF_EMPTY && (this._tf=new TransformInfo());\r\n\t\tthis._tf.translateY=value;\r\n\t}\r\n\r\n\t__proto.setScaleX=function(value){\r\n\t\tthis._tf===Style._TF_EMPTY && (this._tf=new TransformInfo());\r\n\t\tthis._tf.scaleX=value;\r\n\t}\r\n\r\n\t__proto.setScale=function(x,y){\r\n\t\tthis._tf===Style._TF_EMPTY && (this._tf=new TransformInfo());\r\n\t\tthis._tf.scaleX=x;\r\n\t\tthis._tf.scaleY=y;\r\n\t}\r\n\r\n\t__proto.setScaleY=function(value){\r\n\t\tthis._tf===Style._TF_EMPTY && (this._tf=new TransformInfo());\r\n\t\tthis._tf.scaleY=value;\r\n\t}\r\n\r\n\t__proto.setRotate=function(value){\r\n\t\tthis._tf===Style._TF_EMPTY && (this._tf=new TransformInfo());\r\n\t\tthis._tf.rotate=value;\r\n\t}\r\n\r\n\t__proto.setSkewX=function(value){\r\n\t\tthis._tf===Style._TF_EMPTY && (this._tf=new TransformInfo());\r\n\t\tthis._tf.skewX=value;\r\n\t}\r\n\r\n\t__proto.setSkewY=function(value){\r\n\t\tthis._tf===Style._TF_EMPTY && (this._tf=new TransformInfo());\r\n\t\tthis._tf.skewY=value;\r\n\t}\r\n\r\n\t/**销毁此对象。*/\r\n\t__proto.destroy=function(){\r\n\t\tthis.scrollRect=null;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.render=function(sprite,context,x,y){}\r\n\t/**@private */\r\n\t__proto.getCSSStyle=function(){\r\n\t\treturn CSSStyle.EMPTY;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._enableLayout=function(){\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**X 轴缩放值。*/\r\n\t__getset(0,__proto,'scaleX',function(){\r\n\t\treturn this._tf.scaleX;\r\n\t\t},function(value){\r\n\t\tthis.setScaleX(value);\r\n\t});\r\n\r\n\t/**元素应用的 2D 或 3D 转换的值。该属性允许我们对元素进行旋转、缩放、移动或倾斜。*/\r\n\t__getset(0,__proto,'transform',function(){\r\n\t\treturn this.getTransform();\r\n\t\t},function(value){\r\n\t\tthis.setTransform(value);\r\n\t});\r\n\r\n\t/**定义转换，只是用 X 轴的值。*/\r\n\t__getset(0,__proto,'translateX',function(){\r\n\t\treturn this._tf.translateX;\r\n\t\t},function(value){\r\n\t\tthis.setTranslateX(value);\r\n\t});\r\n\r\n\t/**定义转换，只是用 Y 轴的值。*/\r\n\t__getset(0,__proto,'translateY',function(){\r\n\t\treturn this._tf.translateY;\r\n\t\t},function(value){\r\n\t\tthis.setTranslateY(value);\r\n\t});\r\n\r\n\t/**Y 轴缩放值。*/\r\n\t__getset(0,__proto,'scaleY',function(){\r\n\t\treturn this._tf.scaleY;\r\n\t\t},function(value){\r\n\t\tthis.setScaleY(value);\r\n\t});\r\n\r\n\t/**表示元素是否显示为块级元素。*/\r\n\t__getset(0,__proto,'block',function(){\r\n\t\treturn (this._type & 0x1)!=0;\r\n\t});\r\n\r\n\t/**定义沿着 Y 轴的 2D 倾斜转换。*/\r\n\t__getset(0,__proto,'skewY',function(){\r\n\t\treturn this._tf.skewY;\r\n\t\t},function(value){\r\n\t\tthis.setSkewY(value);\r\n\t});\r\n\r\n\t/**定义旋转角度。*/\r\n\t__getset(0,__proto,'rotate',function(){\r\n\t\treturn this._tf.rotate;\r\n\t\t},function(value){\r\n\t\tthis.setRotate(value);\r\n\t});\r\n\r\n\t/**定义沿着 X 轴的 2D 倾斜转换。*/\r\n\t__getset(0,__proto,'skewX',function(){\r\n\t\treturn this._tf.skewX;\r\n\t\t},function(value){\r\n\t\tthis.setSkewX(value);\r\n\t});\r\n\r\n\t/**表示元素的左内边距。*/\r\n\t__getset(0,__proto,'paddingLeft',function(){\r\n\t\treturn 0;\r\n\t});\r\n\r\n\t/**表示元素的上内边距。*/\r\n\t__getset(0,__proto,'paddingTop',function(){\r\n\t\treturn 0;\r\n\t});\r\n\r\n\t/**是否为绝对定位。*/\r\n\t__getset(0,__proto,'absolute',function(){\r\n\t\treturn true;\r\n\t});\r\n\r\n\tStyle.__init__=function(){\r\n\t\tStyle._TF_EMPTY=new TransformInfo();\r\n\t\tStyle.EMPTY=new Style();\r\n\t}\r\n\r\n\tStyle.EMPTY=null;\r\n\tStyle._TF_EMPTY=null;\r\n\treturn Style;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*<code>Font</code> 类是字体显示定义类。\r\n*/\r\n//class laya.display.css.Font\r\nvar Font=(function(){\r\n\tfunction Font(src){\r\n\t\tthis._type=0;\r\n\t\tthis._weight=0;\r\n\t\tthis._decoration=null;\r\n\t\tthis._text=null;\r\n\t\t/**\r\n\t\t*首行缩进 （以像素为单位）。\r\n\t\t*/\r\n\t\tthis.indent=0;\r\n\t\tthis._color=Color.create(Font.defaultColor);\r\n\t\tthis.family=Font.defaultFamily;\r\n\t\tthis.stroke=Font._STROKE;\r\n\t\tthis.size=Font.defaultSize;\r\n\t\tsrc && src!==Font.EMPTY && src.copyTo(this);\r\n\t}\r\n\r\n\t__class(Font,'laya.display.css.Font');\r\n\tvar __proto=Font.prototype;\r\n\t/**\r\n\t*字体样式字符串。\r\n\t*/\r\n\t__proto.set=function(value){\r\n\t\tthis._text=null;\r\n\t\tvar strs=value.split(' ');\r\n\t\tfor (var i=0,n=strs.length;i < n;i++){\r\n\t\t\tvar str=strs[i];\r\n\t\t\tswitch (str){\r\n\t\t\t\tcase 'italic':\r\n\t\t\t\t\tthis.italic=true;\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\tcase 'bold':\r\n\t\t\t\t\tthis.bold=true;\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\t}\r\n\t\t\tif (str.indexOf('px')> 0){\r\n\t\t\t\tthis.size=parseInt(str);\r\n\t\t\t\tthis.family=strs[i+1];\r\n\t\t\t\ti++;\r\n\t\t\t\tcontinue ;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*返回字体样式字符串。\r\n\t*@return 字体样式字符串。\r\n\t*/\r\n\t__proto.toString=function(){\r\n\t\tthis._text=\"\"\r\n\t\tthis.italic && (this._text+=\"italic \");\r\n\t\tthis.bold && (this._text+=\"bold \");\r\n\t\treturn this._text+=this.size+\"px \"+this.family;\r\n\t}\r\n\r\n\t/**\r\n\t*将当前的属性值复制到传入的 <code>Font</code> 对象。\r\n\t*@param dec 一个 Font 对象。\r\n\t*/\r\n\t__proto.copyTo=function(dec){\r\n\t\tdec._type=this._type;\r\n\t\tdec._text=this._text;\r\n\t\tdec._weight=this._weight;\r\n\t\tdec._color=this._color;\r\n\t\tdec.family=this.family;\r\n\t\tdec.stroke=this.stroke !=Font._STROKE ? this.stroke.slice():Font._STROKE;\r\n\t\tdec.indent=this.indent;\r\n\t\tdec.size=this.size;\r\n\t}\r\n\r\n\t/**\r\n\t*表示是否为密码格式。\r\n\t*/\r\n\t__getset(0,__proto,'password',function(){\r\n\t\treturn (this._type & 0x400)!==0;\r\n\t\t},function(value){\r\n\t\tvalue ? (this._type |=0x400):(this._type &=~0x400);\r\n\t});\r\n\r\n\t/**\r\n\t*表示颜色字符串。\r\n\t*/\r\n\t__getset(0,__proto,'color',function(){\r\n\t\treturn this._color.strColor;\r\n\t\t},function(value){\r\n\t\tthis._color=Color.create(value);\r\n\t});\r\n\r\n\t/**\r\n\t*表示是否为斜体。\r\n\t*/\r\n\t__getset(0,__proto,'italic',function(){\r\n\t\treturn (this._type & 0x200)!==0;\r\n\t\t},function(value){\r\n\t\tvalue ? (this._type |=0x200):(this._type &=~0x200);\r\n\t});\r\n\r\n\t/**\r\n\t*表示是否为粗体。\r\n\t*/\r\n\t__getset(0,__proto,'bold',function(){\r\n\t\treturn (this._type & 0x800)!==0;\r\n\t\t},function(value){\r\n\t\tvalue ? (this._type |=0x800):(this._type &=~0x800);\r\n\t});\r\n\r\n\t/**\r\n\t*文本的粗细。\r\n\t*/\r\n\t__getset(0,__proto,'weight',function(){\r\n\t\treturn \"\"+this._weight;\r\n\t\t},function(value){\r\n\t\tvar weight=0;\r\n\t\tswitch (value){\r\n\t\t\tcase 'normal':\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 'bold':\r\n\t\t\t\tthis.bold=true;\r\n\t\t\t\tweight=700;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 'bolder':\r\n\t\t\t\tweight=800;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 'lighter':\r\n\t\t\t\tweight=100;\r\n\t\t\t\tbreak ;\r\n\t\t\tdefault :\r\n\t\t\t\tweight=parseInt(value);\r\n\t\t\t}\r\n\t\tthis._weight=weight;\r\n\t\tthis._text=null;\r\n\t});\r\n\r\n\t/**\r\n\t*规定添加到文本的修饰。\r\n\t*/\r\n\t__getset(0,__proto,'decoration',function(){\r\n\t\treturn this._decoration ? this._decoration.value :\"none\";\r\n\t\t},function(value){\r\n\t\tvar strs=value.split(' ');\r\n\t\tthis._decoration || (this._decoration={});\r\n\t\tswitch (strs[0]){\r\n\t\t\tcase '_':\r\n\t\t\t\tthis._decoration.type='underline'\r\n\t\t\t\tbreak ;\r\n\t\t\tcase '-':\r\n\t\t\t\tthis._decoration.type='line-through'\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 'overline':\r\n\t\t\t\tthis._decoration.type='overline'\r\n\t\t\t\tbreak ;\r\n\t\t\tdefault :\r\n\t\t\t\tthis._decoration.type=strs[0];\r\n\t\t\t}\r\n\t\tstrs[1] && (this._decoration.color=Color.create(strs));\r\n\t\tthis._decoration.value=value;\r\n\t});\r\n\r\n\tFont.__init__=function(){\r\n\t\tFont.EMPTY=new Font(null);\r\n\t}\r\n\r\n\tFont.EMPTY=null;\r\n\tFont.defaultColor=\"#000000\";\r\n\tFont.defaultSize=12;\r\n\tFont.defaultFamily=\"Arial\";\r\n\tFont.defaultFont=\"12px Arial\";\r\n\tFont._STROKE=[0,\"#000000\"];\r\n\tFont._ITALIC=0x200;\r\n\tFont._PASSWORD=0x400;\r\n\tFont._BOLD=0x800;\r\n\treturn Font;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.display.css.TransformInfo\r\nvar TransformInfo=(function(){\r\n\tfunction TransformInfo(){\r\n\t\tthis.translateX=0;\r\n\t\tthis.translateY=0;\r\n\t\tthis.scaleX=1;\r\n\t\tthis.scaleY=1;\r\n\t\tthis.rotate=0;\r\n\t\tthis.skewX=0;\r\n\t\tthis.skewY=0;\r\n\t}\r\n\r\n\t__class(TransformInfo,'laya.display.css.TransformInfo');\r\n\treturn TransformInfo;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Graphics</code> 类用于创建绘图显示对象。Graphics可以同时绘制多个位图或者矢量图，还可以结合save，restore，transform，scale，rotate，translate，alpha等指令对绘图效果进行变化。\r\n*Graphics以命令流方式存储，可以通过cmds属性访问所有命令流。Graphics是比Sprite更轻量级的对象，合理使用能提高应用性能(比如把大量的节点绘图改为一个节点的Graphics命令集合，能减少大量节点创建消耗)。\r\n*@see laya.display.Sprite#graphics\r\n*/\r\n//class laya.display.Graphics\r\nvar Graphics=(function(){\r\n\tfunction Graphics(){\r\n\t\t/**@private */\r\n\t\t//this._sp=null;\r\n\t\t/**@private */\r\n\t\tthis._one=null;\r\n\t\t/**@private */\r\n\t\tthis._cmds=null;\r\n\t\t/**@private */\r\n\t\t//this._vectorgraphArray=null;\r\n\t\t/**@private */\r\n\t\t//this._graphicBounds=null;\r\n\t\tthis._render=this._renderEmpty;\r\n\t\tif (Render.isConchNode){\r\n\t\t\tvar _this_=this;\r\n\t\t\t_this_._nativeObj=new (window)._conchGraphics();\r\n\t\t\t_this_.id=_this_._nativeObj.conchID;\r\n\t\t}\r\n\t}\r\n\r\n\t__class(Graphics,'laya.display.Graphics');\r\n\tvar __proto=Graphics.prototype;\r\n\t/**\r\n\t*<p>销毁此对象。</p>\r\n\t*/\r\n\t__proto.destroy=function(){\r\n\t\tthis.clear();\r\n\t\tif (this._graphicBounds)this._graphicBounds.destroy();\r\n\t\tthis._graphicBounds=null;\r\n\t\tthis._vectorgraphArray=null;\r\n\t\tthis._sp && (this._sp._renderType=0);\r\n\t\tthis._sp=null;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>清空绘制命令。</p>\r\n\t*@param recoverCmds 是否回收绘图指令\r\n\t*/\r\n\t__proto.clear=function(recoverCmds){\r\n\t\t(recoverCmds===void 0)&& (recoverCmds=false);\r\n\t\tvar i=0,len=0;\r\n\t\tif (recoverCmds){\r\n\t\t\tvar tCmd=this._one;\r\n\t\t\tif (this._cmds){\r\n\t\t\t\tlen=this._cmds.length;\r\n\t\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\t\ttCmd=this._cmds[i];\r\n\t\t\t\t\tif (tCmd && (tCmd.callee===Render._context._drawTexture || tCmd.callee===Render._context._drawTextureWithTransform)){\r\n\t\t\t\t\t\ttCmd[0]=null;\r\n\t\t\t\t\t\tGraphics._cache.push(tCmd);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis._cmds.length=0;\r\n\t\t\t\t}else if (tCmd){\r\n\t\t\t\tif (tCmd && (tCmd.callee===Render._context._drawTexture || tCmd.callee===Render._context._drawTextureWithTransform)){\r\n\t\t\t\t\ttCmd[0]=null;\r\n\t\t\t\t\tGraphics._cache.push(tCmd);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tthis._cmds=null;\r\n\t\t}\r\n\t\tthis._one=null;\r\n\t\tthis._render=this._renderEmpty;\r\n\t\tthis._sp && (this._sp._renderType &=~ /*laya.renders.RenderSprite.IMAGE*/0x01 & ~ /*laya.renders.RenderSprite.GRAPHICS*/0x200);\r\n\t\tthis._repaint();\r\n\t\tif (this._vectorgraphArray){\r\n\t\t\tfor (i=0,len=this._vectorgraphArray.length;i < len;i++){\r\n\t\t\t\tVectorGraphManager.getInstance().deleteShape(this._vectorgraphArray[i]);\r\n\t\t\t}\r\n\t\t\tthis._vectorgraphArray.length=0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._clearBoundsCache=function(){\r\n\t\tif (this._graphicBounds)this._graphicBounds.reset();\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._initGraphicBounds=function(){\r\n\t\tif (!this._graphicBounds){\r\n\t\t\tthis._graphicBounds=new GraphicsBounds();\r\n\t\t\tthis._graphicBounds._graphics=this;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*重绘此对象。\r\n\t*/\r\n\t__proto._repaint=function(){\r\n\t\tthis._clearBoundsCache();\r\n\t\tthis._sp && this._sp.repaint();\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._isOnlyOne=function(){\r\n\t\treturn !this._cmds || this._cmds.length===0;\r\n\t}\r\n\r\n\t/**\r\n\t*获取位置及宽高信息矩阵(比较耗CPU，频繁使用会造成卡顿，尽量少用)。\r\n\t*@param realSize （可选）使用图片的真实大小，默认为false\r\n\t*@return 位置与宽高组成的 一个 Rectangle 对象。\r\n\t*/\r\n\t__proto.getBounds=function(realSize){\r\n\t\t(realSize===void 0)&& (realSize=false);\r\n\t\tthis._initGraphicBounds();\r\n\t\treturn this._graphicBounds.getBounds(realSize);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*@param realSize （可选）使用图片的真实大小，默认为false\r\n\t*获取端点列表。\r\n\t*/\r\n\t__proto.getBoundPoints=function(realSize){\r\n\t\t(realSize===void 0)&& (realSize=false);\r\n\t\tthis._initGraphicBounds();\r\n\t\treturn this._graphicBounds.getBoundPoints(realSize);\r\n\t}\r\n\r\n\t__proto._addCmd=function(a){\r\n\t\tthis._cmds=this._cmds || [];\r\n\t\ta.callee=a.shift();\r\n\t\tthis._cmds.push(a);\r\n\t}\r\n\r\n\t__proto.setFilters=function(fs){\r\n\t\tthis._saveToCmd(Render._context._setFilters,fs);\r\n\t}\r\n\r\n\t/**\r\n\t*绘制纹理。\r\n\t*@param tex 纹理。\r\n\t*@param x （可选）X轴偏移量。\r\n\t*@param y （可选）Y轴偏移量。\r\n\t*@param width （可选）宽度。\r\n\t*@param height （可选）高度。\r\n\t*@param m （可选）矩阵信息。\r\n\t*@param alpha （可选）透明度。\r\n\t*/\r\n\t__proto.drawTexture=function(tex,x,y,width,height,m,alpha){\r\n\t\t(x===void 0)&& (x=0);\r\n\t\t(y===void 0)&& (y=0);\r\n\t\t(width===void 0)&& (width=0);\r\n\t\t(height===void 0)&& (height=0);\r\n\t\t(alpha===void 0)&& (alpha=1);\r\n\t\tif (!tex || alpha < 0.01)return null;\r\n\t\tif (!width)width=tex.sourceWidth;\r\n\t\tif (!height)height=tex.sourceHeight;\r\n\t\talpha=alpha < 0 ? 0 :(alpha > 1 ? 1 :alpha);\r\n\t\tvar offset=(!Render.isWebGL && (Browser.onFirefox || Browser.onEdge||Browser.onIE||Browser.onSafari))? 0.5 :0;\r\n\t\tvar wRate=width / tex.sourceWidth;\r\n\t\tvar hRate=height / tex.sourceHeight;\r\n\t\twidth=tex.width *wRate;\r\n\t\theight=tex.height *hRate;\r\n\t\tif (tex.loaded && (width <=0 || height <=0))return null;\r\n\t\tx+=tex.offsetX *wRate;\r\n\t\ty+=tex.offsetY *hRate;\r\n\t\tthis._sp && (this._sp._renderType |=/*laya.renders.RenderSprite.GRAPHICS*/0x200);\r\n\t\tvar args;\r\n\t\tx-=offset;\r\n\t\ty-=offset;\r\n\t\twidth+=2 *offset;\r\n\t\theight+=2 *offset;\r\n\t\tif (Graphics._cache.length){\r\n\t\t\targs=Graphics._cache.pop();\r\n\t\t\targs[0]=tex;\r\n\t\t\targs[1]=x;\r\n\t\t\targs[2]=y;\r\n\t\t\targs[3]=width;\r\n\t\t\targs[4]=height;\r\n\t\t\targs[5]=m;\r\n\t\t\targs[6]=alpha;\r\n\t\t\t}else {\r\n\t\t\targs=[tex,x,y,width,height,m,alpha];\r\n\t\t}\r\n\t\targs.callee=(m || alpha !=1)? Render._context._drawTextureWithTransform :Render._context._drawTexture;\r\n\t\tif (this._one==null && !m && alpha==1){\r\n\t\t\tthis._one=args;\r\n\t\t\tthis._render=this._renderOneImg;\r\n\t\t\t}else {\r\n\t\t\tthis._saveToCmd(args.callee,args);\r\n\t\t}\r\n\t\tif (!tex.loaded){\r\n\t\t\ttex.once(/*laya.events.Event.LOADED*/\"loaded\",this,this._textureLoaded,[tex,args]);\r\n\t\t}\r\n\t\tthis._repaint();\r\n\t\treturn args;\r\n\t}\r\n\r\n\t/**\r\n\t*@private 清理贴图并替换为最新的\r\n\t*@param tex\r\n\t*/\r\n\t__proto.cleanByTexture=function(tex,x,y,width,height){\r\n\t\t(width===void 0)&& (width=0);\r\n\t\t(height===void 0)&& (height=0);\r\n\t\tif (!tex)return this.clear();\r\n\t\tif (this._one && this._render===this._renderOneImg){\r\n\t\t\tif (!width)width=tex.sourceWidth;\r\n\t\t\tif (!height)height=tex.sourceHeight;\r\n\t\t\tvar wRate=width / tex.sourceWidth;\r\n\t\t\tvar hRate=height / tex.sourceHeight;\r\n\t\t\twidth=tex.width *wRate;\r\n\t\t\theight=tex.height *hRate;\r\n\t\t\tx+=tex.offsetX *wRate;\r\n\t\t\ty+=tex.offsetY *hRate;\r\n\t\t\tthis._one[0]=tex;\r\n\t\t\tthis._one[1]=x;\r\n\t\t\tthis._one[2]=y;\r\n\t\t\tthis._one[3]=width;\r\n\t\t\tthis._one[4]=height;\r\n\t\t\tthis._repaint();\r\n\t\t\t}else {\r\n\t\t\tthis.clear();\r\n\t\t\ttex && this.drawTexture(tex,x,y,width,height);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*批量绘制同样纹理。\r\n\t*@param tex 纹理。\r\n\t*@param pos 绘制坐标。\r\n\t*/\r\n\t__proto.drawTextures=function(tex,pos){\r\n\t\tif (!tex)return;\r\n\t\tthis._saveToCmd(Render._context._drawTextures,[tex,pos]);\r\n\t}\r\n\r\n\t/**\r\n\t*用texture填充。\r\n\t*@param tex 纹理。\r\n\t*@param x X轴偏移量。\r\n\t*@param y Y轴偏移量。\r\n\t*@param width （可选）宽度。\r\n\t*@param height （可选）高度。\r\n\t*@param type （可选）填充类型 repeat|repeat-x|repeat-y|no-repeat\r\n\t*@param offset （可选）贴图纹理偏移\r\n\t*/\r\n\t__proto.fillTexture=function(tex,x,y,width,height,type,offset){\r\n\t\t(width===void 0)&& (width=0);\r\n\t\t(height===void 0)&& (height=0);\r\n\t\t(type===void 0)&& (type=\"repeat\");\r\n\t\tif (!tex)return;\r\n\t\tvar args=[tex,x,y,width,height,type,offset || Point.EMPTY,{}];\r\n\t\tif (!tex.loaded){\r\n\t\t\ttex.once(/*laya.events.Event.LOADED*/\"loaded\",this,this._textureLoaded,[tex,args]);\r\n\t\t}\r\n\t\tthis._saveToCmd(Render._context._fillTexture,args);\r\n\t}\r\n\r\n\t__proto._textureLoaded=function(tex,param){\r\n\t\tparam[3]=param[3] || tex.width;\r\n\t\tparam[4]=param[4] || tex.height;\r\n\t\tthis._repaint();\r\n\t}\r\n\r\n\t/**\r\n\t*填充一个圆形。这是一个临时函数，以后会删除，建议用户自己实现。\r\n\t*@param x\r\n\t*@param y\r\n\t*@param tex\r\n\t*@param cx 圆心位置。\r\n\t*@param cy\r\n\t*@param radius\r\n\t*@param segNum 分段数，越大越平滑。\r\n\t*/\r\n\t__proto.fillCircle=function(x,y,tex,cx,cy,radius,segNum){\r\n\t\ttex.bitmap.enableMerageInAtlas=false;\r\n\t\tvar verts=new Float32Array((segNum+1)*2);\r\n\t\tvar uvs=new Float32Array((segNum+1)*2);\r\n\t\tvar indices=new Uint16Array(segNum*3);\r\n\t\tvar dang=2 *Math.PI / segNum;\r\n\t\tvar cang=0;\r\n\t\tverts[0]=cx;\r\n\t\tverts[1]=cy;\r\n\t\tuvs[0]=cx / tex.width;\r\n\t\tuvs[1]=cy / tex.height;\r\n\t\tvar idx=2;\r\n\t\tfor (var i=0;i < segNum;i++){\r\n\t\t\tvar px=radius *Math.cos(cang)+cx;\r\n\t\t\tvar py=radius *Math.sin(cang)+cy;\r\n\t\t\tverts[idx]=px;\r\n\t\t\tverts[idx+1]=py;\r\n\t\t\tuvs[idx]=px / tex.width;\r\n\t\t\tuvs[idx+1]=py / tex.height;\r\n\t\t\tcang+=dang;\r\n\t\t\tidx+=2;\r\n\t\t}\r\n\t\tidx=0;\r\n\t\tfor (i=0;i < segNum;i++){\r\n\t\t\tindices[idx++]=0;\r\n\t\t\tindices[idx++]=i+1;\r\n\t\t\tindices[idx++]=(i+2 >=segNum+1)?1:(i+2);\r\n\t\t}\r\n\t\tthis.drawTriangles(tex,x,y,verts,uvs,indices);\r\n\t}\r\n\r\n\t/**\r\n\t*绘制一组三角形\r\n\t*@param texture 纹理。\r\n\t*@param x X轴偏移量。\r\n\t*@param y Y轴偏移量。\r\n\t*@param vertices 顶点数组。\r\n\t*@param indices 顶点索引。\r\n\t*@param uvData UV数据。\r\n\t*@param matrix 缩放矩阵。\r\n\t*@param alpha alpha\r\n\t*@param color 颜色变换\r\n\t*@param blendMode blend模式\r\n\t*/\r\n\t__proto.drawTriangles=function(texture,x,y,vertices,uvs,indices,matrix,alpha,color,blendMode){\r\n\t\t(alpha===void 0)&& (alpha=1);\r\n\t\tthis._saveToCmd(Render._context.drawTriangles,[texture,x,y,vertices,uvs,indices,matrix,alpha,color,blendMode]);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*保存到命令流。\r\n\t*/\r\n\t__proto._saveToCmd=function(fun,args){\r\n\t\tthis._sp && (this._sp._renderType |=/*laya.renders.RenderSprite.GRAPHICS*/0x200);\r\n\t\tif (this._one==null){\r\n\t\t\tthis._one=args;\r\n\t\t\tthis._render=this._renderOne;\r\n\t\t\t}else {\r\n\t\t\tthis._sp && (this._sp._renderType &=~ /*laya.renders.RenderSprite.IMAGE*/0x01);\r\n\t\t\tthis._render=this._renderAll;\r\n\t\t\t(this._cmds || (this._cmds=[])).length===0 && this._cmds.push(this._one);\r\n\t\t\tthis._cmds.push(args);\r\n\t\t}\r\n\t\targs.callee=fun;\r\n\t\tthis._repaint();\r\n\t\treturn args;\r\n\t}\r\n\r\n\t/**\r\n\t*设置剪裁区域，超出剪裁区域的坐标不显示。\r\n\t*@param x X 轴偏移量。\r\n\t*@param y Y 轴偏移量。\r\n\t*@param width 宽度。\r\n\t*@param height 高度。\r\n\t*/\r\n\t__proto.clipRect=function(x,y,width,height){\r\n\t\tthis._saveToCmd(Render._context._clipRect,[x,y,width,height]);\r\n\t}\r\n\r\n\t/**\r\n\t*在画布上绘制文本。\r\n\t*@param text 在画布上输出的文本。\r\n\t*@param x 开始绘制文本的 x 坐标位置（相对于画布）。\r\n\t*@param y 开始绘制文本的 y 坐标位置（相对于画布）。\r\n\t*@param font 定义字号和字体，比如\"20px Arial\"。\r\n\t*@param color 定义文本颜色，比如\"#ff0000\"。\r\n\t*@param textAlign 文本对齐方式，可选值：\"left\"，\"center\"，\"right\"。\r\n\t*/\r\n\t__proto.fillText=function(text,x,y,font,color,textAlign,underLine){\r\n\t\t(underLine===void 0)&& (underLine=0);\r\n\t\tthis._saveToCmd(Render._context._fillText,[text,x,y,font || Font.defaultFont,color,textAlign]);\r\n\t}\r\n\r\n\t/**\r\n\t*在画布上绘制“被填充且镶边的”文本。\r\n\t*@param text 在画布上输出的文本。\r\n\t*@param x 开始绘制文本的 x 坐标位置（相对于画布）。\r\n\t*@param y 开始绘制文本的 y 坐标位置（相对于画布）。\r\n\t*@param font 定义字体和字号，比如\"20px Arial\"。\r\n\t*@param fillColor 定义文本颜色，比如\"#ff0000\"。\r\n\t*@param borderColor 定义镶边文本颜色。\r\n\t*@param lineWidth 镶边线条宽度。\r\n\t*@param textAlign 文本对齐方式，可选值：\"left\"，\"center\"，\"right\"。\r\n\t*/\r\n\t__proto.fillBorderText=function(text,x,y,font,fillColor,borderColor,lineWidth,textAlign){\r\n\t\tthis._saveToCmd(Render._context._fillBorderText,[text,x,y,font || Font.defaultFont,fillColor,borderColor,lineWidth,textAlign]);\r\n\t}\r\n\r\n\t/**\r\n\t*在画布上绘制文本（没有填色）。文本的默认颜色是黑色。\r\n\t*@param text 在画布上输出的文本。\r\n\t*@param x 开始绘制文本的 x 坐标位置（相对于画布）。\r\n\t*@param y 开始绘制文本的 y 坐标位置（相对于画布）。\r\n\t*@param font 定义字体和字号，比如\"20px Arial\"。\r\n\t*@param color 定义文本颜色，比如\"#ff0000\"。\r\n\t*@param lineWidth 线条宽度。\r\n\t*@param textAlign 文本对齐方式，可选值：\"left\"，\"center\"，\"right\"。\r\n\t*/\r\n\t__proto.strokeText=function(text,x,y,font,color,lineWidth,textAlign){\r\n\t\tthis._saveToCmd(Render._context._strokeText,[text,x,y,font || Font.defaultFont,color,lineWidth,textAlign]);\r\n\t}\r\n\r\n\t/**\r\n\t*设置透明度。\r\n\t*@param value 透明度。\r\n\t*/\r\n\t__proto.alpha=function(value){\r\n\t\tvalue=value < 0 ? 0 :(value > 1 ? 1 :value);\r\n\t\tthis._saveToCmd(Render._context._alpha,[value]);\r\n\t}\r\n\r\n\t/**\r\n\t*设置当前透明度。\r\n\t*@param value 透明度。\r\n\t*/\r\n\t__proto.setAlpha=function(value){\r\n\t\tvalue=value < 0 ? 0 :(value > 1 ? 1 :value);\r\n\t\tthis._saveToCmd(Render._context._setAlpha,[value]);\r\n\t}\r\n\r\n\t/**\r\n\t*替换绘图的当前转换矩阵。\r\n\t*@param mat 矩阵。\r\n\t*@param pivotX （可选）水平方向轴心点坐标。\r\n\t*@param pivotY （可选）垂直方向轴心点坐标。\r\n\t*/\r\n\t__proto.transform=function(matrix,pivotX,pivotY){\r\n\t\t(pivotX===void 0)&& (pivotX=0);\r\n\t\t(pivotY===void 0)&& (pivotY=0);\r\n\t\tthis._saveToCmd(Render._context._transform,[matrix,pivotX,pivotY]);\r\n\t}\r\n\r\n\t/**\r\n\t*旋转当前绘图。(推荐使用transform，性能更高)\r\n\t*@param angle 旋转角度，以弧度计。\r\n\t*@param pivotX （可选）水平方向轴心点坐标。\r\n\t*@param pivotY （可选）垂直方向轴心点坐标。\r\n\t*/\r\n\t__proto.rotate=function(angle,pivotX,pivotY){\r\n\t\t(pivotX===void 0)&& (pivotX=0);\r\n\t\t(pivotY===void 0)&& (pivotY=0);\r\n\t\tthis._saveToCmd(Render._context._rotate,[angle,pivotX,pivotY]);\r\n\t}\r\n\r\n\t/**\r\n\t*缩放当前绘图至更大或更小。(推荐使用transform，性能更高)\r\n\t*@param scaleX 水平方向缩放值。\r\n\t*@param scaleY 垂直方向缩放值。\r\n\t*@param pivotX （可选）水平方向轴心点坐标。\r\n\t*@param pivotY （可选）垂直方向轴心点坐标。\r\n\t*/\r\n\t__proto.scale=function(scaleX,scaleY,pivotX,pivotY){\r\n\t\t(pivotX===void 0)&& (pivotX=0);\r\n\t\t(pivotY===void 0)&& (pivotY=0);\r\n\t\tthis._saveToCmd(Render._context._scale,[scaleX,scaleY,pivotX,pivotY]);\r\n\t}\r\n\r\n\t/**\r\n\t*重新映射画布上的 (0,0)位置。\r\n\t*@param x 添加到水平坐标（x）上的值。\r\n\t*@param y 添加到垂直坐标（y）上的值。\r\n\t*/\r\n\t__proto.translate=function(x,y){\r\n\t\tthis._saveToCmd(Render._context._translate,[x,y]);\r\n\t}\r\n\r\n\t/**\r\n\t*保存当前环境的状态。\r\n\t*/\r\n\t__proto.save=function(){\r\n\t\tthis._saveToCmd(Render._context._save,[]);\r\n\t}\r\n\r\n\t/**\r\n\t*返回之前保存过的路径状态和属性。\r\n\t*/\r\n\t__proto.restore=function(){\r\n\t\tthis._saveToCmd(Render._context._restore,[]);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*替换文本内容。\r\n\t*@param text 文本内容。\r\n\t*@return 替换成功则值为true，否则值为flase。\r\n\t*/\r\n\t__proto.replaceText=function(text){\r\n\t\tthis._repaint();\r\n\t\tvar cmds=this._cmds;\r\n\t\tif (!cmds){\r\n\t\t\tif (this._one && this._isTextCmd(this._one.callee)){\r\n\t\t\t\tif (this._one[0].toUpperCase)this._one[0]=text;\r\n\t\t\t\telse this._one[0].setText(text);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tfor (var i=cmds.length-1;i >-1;i--){\r\n\t\t\t\tif (this._isTextCmd(cmds[i].callee)){\r\n\t\t\t\t\tif (cmds[i][0].toUpperCase)cmds[i][0]=text;\r\n\t\t\t\t\telse cmds[i][0].setText(text);\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._isTextCmd=function(fun){\r\n\t\treturn fun===Render._context._fillText || fun===Render._context._fillBorderText || fun===Render._context._strokeText;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*替换文本颜色。\r\n\t*@param color 颜色。\r\n\t*/\r\n\t__proto.replaceTextColor=function(color){\r\n\t\tthis._repaint();\r\n\t\tvar cmds=this._cmds;\r\n\t\tif (!cmds){\r\n\t\t\tif (this._one && this._isTextCmd(this._one.callee)){\r\n\t\t\t\tthis._one[4]=color;\r\n\t\t\t\tif (!this._one[0].toUpperCase)this._one[0].changed=true;\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tfor (var i=cmds.length-1;i >-1;i--){\r\n\t\t\t\tif (this._isTextCmd(cmds[i].callee)){\r\n\t\t\t\t\tcmds[i][4]=color;\r\n\t\t\t\t\tif (!cmds[i][0].toUpperCase)cmds[i][0].changed=true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*加载并显示一个图片。\r\n\t*@param url 图片地址。\r\n\t*@param x （可选）显示图片的x位置。\r\n\t*@param y （可选）显示图片的y位置。\r\n\t*@param width （可选）显示图片的宽度，设置为0表示使用图片默认宽度。\r\n\t*@param height （可选）显示图片的高度，设置为0表示使用图片默认高度。\r\n\t*@param complete （可选）加载完成回调。\r\n\t*/\r\n\t__proto.loadImage=function(url,x,y,width,height,complete){\r\n\t\tvar _$this=this;\r\n\t\t(x===void 0)&& (x=0);\r\n\t\t(y===void 0)&& (y=0);\r\n\t\t(width===void 0)&& (width=0);\r\n\t\t(height===void 0)&& (height=0);\r\n\t\tvar tex=Loader.getRes(url);\r\n\t\tif (tex)onloaded(tex);\r\n\t\telse Laya.loader.load(url,Handler.create(null,onloaded),null,/*laya.net.Loader.IMAGE*/\"image\");\r\n\t\tfunction onloaded (tex){\r\n\t\t\tif (tex){\r\n\t\t\t\t_$this.drawTexture(tex,x,y,width,height);\r\n\t\t\t\tif (complete !=null)complete.call(_$this._sp,tex);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._renderEmpty=function(sprite,context,x,y){}\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._renderAll=function(sprite,context,x,y){\r\n\t\tvar cmds=this._cmds,cmd;\r\n\t\tfor (var i=0,n=cmds.length;i < n;i++){\r\n\t\t\t(cmd=cmds[i]).callee.call(context,x,y,cmd);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._renderOne=function(sprite,context,x,y){\r\n\t\tthis._one.callee.call(context,x,y,this._one);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._renderOneImg=function(sprite,context,x,y){\r\n\t\tthis._one.callee.call(context,x,y,this._one);\r\n\t\tif (sprite._renderType!==2305){\r\n\t\t\tsprite._renderType |=/*laya.renders.RenderSprite.IMAGE*/0x01;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*绘制一条线。\r\n\t*@param fromX X轴开始位置。\r\n\t*@param fromY Y轴开始位置。\r\n\t*@param toX X轴结束位置。\r\n\t*@param toY Y轴结束位置。\r\n\t*@param lineColor 颜色。\r\n\t*@param lineWidth （可选）线条宽度。\r\n\t*/\r\n\t__proto.drawLine=function(fromX,fromY,toX,toY,lineColor,lineWidth){\r\n\t\t(lineWidth===void 0)&& (lineWidth=1);\r\n\t\tvar tId=0;\r\n\t\tif (Render.isWebGL){\r\n\t\t\ttId=VectorGraphManager.getInstance().getId();\r\n\t\t\tif (this._vectorgraphArray==null)this._vectorgraphArray=[];\r\n\t\t\tthis._vectorgraphArray.push(tId);\r\n\t\t};\r\n\t\tvar offset=lineWidth % 2===0 ? 0 :0.5;\r\n\t\tvar arr=[fromX+offset,fromY+offset,toX+offset,toY+offset,lineColor,lineWidth,tId];\r\n\t\tthis._saveToCmd(Render._context._drawLine,arr);\r\n\t}\r\n\r\n\t/**\r\n\t*绘制一系列线段。\r\n\t*@param x 开始绘制的X轴位置。\r\n\t*@param y 开始绘制的Y轴位置。\r\n\t*@param points 线段的点集合。格式:[x1,y1,x2,y2,x3,y3...]。\r\n\t*@param lineColor 线段颜色，或者填充绘图的渐变对象。\r\n\t*@param lineWidth （可选）线段宽度。\r\n\t*/\r\n\t__proto.drawLines=function(x,y,points,lineColor,lineWidth){\r\n\t\t(lineWidth===void 0)&& (lineWidth=1);\r\n\t\tvar tId=0;\r\n\t\tif (!points || points.length < 4)return;\r\n\t\tif (Render.isWebGL){\r\n\t\t\ttId=VectorGraphManager.getInstance().getId();\r\n\t\t\tif (this._vectorgraphArray==null)this._vectorgraphArray=[];\r\n\t\t\tthis._vectorgraphArray.push(tId);\r\n\t\t};\r\n\t\tvar offset=lineWidth % 2===0 ? 0 :0.5;\r\n\t\tvar arr=[x+offset,y+offset,points,lineColor,lineWidth,tId];\r\n\t\tthis._saveToCmd(Render._context._drawLines,arr);\r\n\t}\r\n\r\n\t/**\r\n\t*绘制一系列曲线。\r\n\t*@param x 开始绘制的 X 轴位置。\r\n\t*@param y 开始绘制的 Y 轴位置。\r\n\t*@param points 线段的点集合，格式[startx,starty,ctrx,ctry,startx,starty...]。\r\n\t*@param lineColor 线段颜色，或者填充绘图的渐变对象。\r\n\t*@param lineWidth （可选）线段宽度。\r\n\t*/\r\n\t__proto.drawCurves=function(x,y,points,lineColor,lineWidth){\r\n\t\t(lineWidth===void 0)&& (lineWidth=1);\r\n\t\tvar arr=[x,y,points,lineColor,lineWidth];\r\n\t\tthis._saveToCmd(Render._context._drawCurves,arr);\r\n\t}\r\n\r\n\t/**\r\n\t*绘制矩形。\r\n\t*@param x 开始绘制的 X 轴位置。\r\n\t*@param y 开始绘制的 Y 轴位置。\r\n\t*@param width 矩形宽度。\r\n\t*@param height 矩形高度。\r\n\t*@param fillColor 填充颜色，或者填充绘图的渐变对象。\r\n\t*@param lineColor （可选）边框颜色，或者填充绘图的渐变对象。\r\n\t*@param lineWidth （可选）边框宽度。\r\n\t*/\r\n\t__proto.drawRect=function(x,y,width,height,fillColor,lineColor,lineWidth){\r\n\t\t(lineWidth===void 0)&& (lineWidth=1);\r\n\t\tvar offset=lineColor ? lineWidth / 2 :0;\r\n\t\tvar lineOffset=lineColor ? lineWidth :0;\r\n\t\tvar arr=[x+offset,y+offset,width-lineOffset,height-lineOffset,fillColor,lineColor,lineWidth];\r\n\t\tthis._saveToCmd(Render._context._drawRect,arr);\r\n\t}\r\n\r\n\t/**\r\n\t*绘制圆形。\r\n\t*@param x 圆点X 轴位置。\r\n\t*@param y 圆点Y 轴位置。\r\n\t*@param radius 半径。\r\n\t*@param fillColor 填充颜色，或者填充绘图的渐变对象。\r\n\t*@param lineColor （可选）边框颜色，或者填充绘图的渐变对象。\r\n\t*@param lineWidth （可选）边框宽度。\r\n\t*/\r\n\t__proto.drawCircle=function(x,y,radius,fillColor,lineColor,lineWidth){\r\n\t\t(lineWidth===void 0)&& (lineWidth=1);\r\n\t\tvar offset=lineColor ? lineWidth / 2 :0;\r\n\t\tvar tId=0;\r\n\t\tif (Render.isWebGL){\r\n\t\t\ttId=VectorGraphManager.getInstance().getId();\r\n\t\t\tif (this._vectorgraphArray==null)this._vectorgraphArray=[];\r\n\t\t\tthis._vectorgraphArray.push(tId);\r\n\t\t};\r\n\t\tvar arr=[x,y,radius-offset,fillColor,lineColor,lineWidth,tId];\r\n\t\tthis._saveToCmd(Render._context._drawCircle,arr);\r\n\t}\r\n\r\n\t/**\r\n\t*绘制扇形。\r\n\t*@param x 开始绘制的 X 轴位置。\r\n\t*@param y 开始绘制的 Y 轴位置。\r\n\t*@param radius 扇形半径。\r\n\t*@param startAngle 开始角度。\r\n\t*@param endAngle 结束角度。\r\n\t*@param fillColor 填充颜色，或者填充绘图的渐变对象。\r\n\t*@param lineColor （可选）边框颜色，或者填充绘图的渐变对象。\r\n\t*@param lineWidth （可选）边框宽度。\r\n\t*/\r\n\t__proto.drawPie=function(x,y,radius,startAngle,endAngle,fillColor,lineColor,lineWidth){\r\n\t\t(lineWidth===void 0)&& (lineWidth=1);\r\n\t\tvar offset=lineColor ? lineWidth / 2 :0;\r\n\t\tvar lineOffset=lineColor ? lineWidth :0;\r\n\t\tvar tId=0;\r\n\t\tif (Render.isWebGL){\r\n\t\t\ttId=VectorGraphManager.getInstance().getId();\r\n\t\t\tif (this._vectorgraphArray==null)this._vectorgraphArray=[];\r\n\t\t\tthis._vectorgraphArray.push(tId);\r\n\t\t};\r\n\t\tvar arr=[x+offset,y+offset,radius-lineOffset,startAngle,endAngle,fillColor,lineColor,lineWidth,tId];\r\n\t\tarr[3]=Utils.toRadian(startAngle);\r\n\t\tarr[4]=Utils.toRadian(endAngle);\r\n\t\tthis._saveToCmd(Render._context._drawPie,arr);\r\n\t}\r\n\r\n\t/**\r\n\t*绘制多边形。\r\n\t*@param x 开始绘制的 X 轴位置。\r\n\t*@param y 开始绘制的 Y 轴位置。\r\n\t*@param points 多边形的点集合。\r\n\t*@param fillColor 填充颜色，或者填充绘图的渐变对象。\r\n\t*@param lineColor （可选）边框颜色，或者填充绘图的渐变对象。\r\n\t*@param lineWidth （可选）边框宽度。\r\n\t*/\r\n\t__proto.drawPoly=function(x,y,points,fillColor,lineColor,lineWidth){\r\n\t\t(lineWidth===void 0)&& (lineWidth=1);\r\n\t\tvar tId=0;\r\n\t\tvar tIsConvexPolygon=false;\r\n\t\tif (Render.isWebGL){\r\n\t\t\ttId=VectorGraphManager.getInstance().getId();\r\n\t\t\tif (this._vectorgraphArray==null)this._vectorgraphArray=[];\r\n\t\t\tthis._vectorgraphArray.push(tId);\r\n\t\t\tif (points.length > 6){\r\n\t\t\t\ttIsConvexPolygon=false;\r\n\t\t\t\t}else {\r\n\t\t\t\ttIsConvexPolygon=true;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar offset=lineColor ? (lineWidth % 2===0 ? 0 :0.5):0;\r\n\t\tvar arr=[x+offset,y+offset,points,fillColor,lineColor,lineWidth,tId,tIsConvexPolygon];\r\n\t\tthis._saveToCmd(Render._context._drawPoly,arr);\r\n\t}\r\n\r\n\t/**\r\n\t*绘制路径。\r\n\t*@param x 开始绘制的 X 轴位置。\r\n\t*@param y 开始绘制的 Y 轴位置。\r\n\t*@param paths 路径集合，路径支持以下格式：[[\"moveTo\",x,y],[\"lineTo\",x,y,x,y,x,y],[\"arcTo\",x1,y1,x2,y2,r],[\"closePath\"]]。\r\n\t*@param brush （可选）刷子定义，支持以下设置{fillStyle}。\r\n\t*@param pen （可选）画笔定义，支持以下设置{strokeStyle,lineWidth,lineJoin,lineCap,miterLimit}。\r\n\t*/\r\n\t__proto.drawPath=function(x,y,paths,brush,pen){\r\n\t\tvar arr=[x,y,paths,brush,pen];\r\n\t\tthis._saveToCmd(Render._context._drawPath,arr);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*命令流。存储了所有绘制命令。\r\n\t*/\r\n\t__getset(0,__proto,'cmds',function(){\r\n\t\treturn this._cmds;\r\n\t\t},function(value){\r\n\t\tthis._sp && (this._sp._renderType |=/*laya.renders.RenderSprite.GRAPHICS*/0x200);\r\n\t\tthis._cmds=value;\r\n\t\tthis._render=this._renderAll;\r\n\t\tthis._repaint();\r\n\t});\r\n\r\n\tGraphics.__init__=function(){\r\n\t\tif (Render.isConchNode){\r\n\t\t\tvar from=laya.display.Graphics.prototype;\r\n\t\t\tvar to=Browser.window.ConchGraphics.prototype;\r\n\t\t\tvar list=[\"clear\",\"destroy\",\"alpha\",\"rotate\",\"transform\",\"scale\",\"translate\",\"save\",\"restore\",\"clipRect\",\"blendMode\",\"fillText\",\"fillBorderText\",\"_fands\",\"drawRect\",\"drawCircle\",\"drawPie\",\"drawPoly\",\"drawPath\",\"drawImageM\",\"drawLine\",\"drawLines\",\"_drawPs\",\"drawCurves\",\"replaceText\",\"replaceTextColor\",\"_fillImage\",\"fillTexture\",\"setSkinMesh\",\"drawParticle\",\"drawImageS\"];\r\n\t\t\tfor (var i=0,len=list.length;i <=len;i++){\r\n\t\t\t\tvar temp=list[i];\r\n\t\t\t\tfrom[temp]=to[temp];\r\n\t\t\t}\r\n\t\t\tfrom._saveToCmd=null;\r\n\t\t\tif (to.drawImageS){\r\n\t\t\t\tfrom.drawTextures=function (tex,pos){\r\n\t\t\t\t\tif (!tex)return;\r\n\t\t\t\t\tif (!(tex.loaded && tex.bitmap && tex.source)){\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t};\r\n\t\t\t\t\tvar uv=tex.uv,w=tex.bitmap.width,h=tex.bitmap.height;\r\n\t\t\t\t\tthis.drawImageS(tex.bitmap.source,uv[0] *w,uv[1] *h,(uv[2]-uv[0])*w,(uv[5]-uv[3])*h,tex.offsetX,tex.offsetY,tex.width,tex.height,pos);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfrom.drawTexture=function (tex,x,y,width,height,m,alpha){\r\n\t\t\t\t(x===void 0)&& (x=0);\r\n\t\t\t\t(y===void 0)&& (y=0);\r\n\t\t\t\t(width===void 0)&& (width=0);\r\n\t\t\t\t(height===void 0)&& (height=0);\r\n\t\t\t\t(alpha===void 0)&& (alpha=1);\r\n\t\t\t\tif (!tex)return;\r\n\t\t\t\tif (!tex.loaded){\r\n\t\t\t\t\ttex.once(/*laya.events.Event.LOADED*/\"loaded\",this,function(){\r\n\t\t\t\t\t\tthis.drawTexture(tex,x,y,width,height,m);\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (!(tex.loaded && tex.bitmap && tex.source)){\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (!width)width=tex.sourceWidth;\r\n\t\t\t\tif (!height)height=tex.sourceHeight;\r\n\t\t\t\talpha=alpha < 0 ? 0 :(alpha > 1 ? 1 :alpha);\r\n\t\t\t\twidth=width-tex.sourceWidth+tex.width;\r\n\t\t\t\theight=height-tex.sourceHeight+tex.height;\r\n\t\t\t\tif (width <=0 || height <=0)return;\r\n\t\t\t\tx+=tex.offsetX;\r\n\t\t\t\ty+=tex.offsetY;\r\n\t\t\t\tvar uv=tex.uv,w=tex.bitmap.width,h=tex.bitmap.height;\r\n\t\t\t\tthis.drawImageM(tex.bitmap.source,uv[0] *w,uv[1] *h,(uv[2]-uv[0])*w,(uv[5]-uv[3])*h,x,y,width,height,m,alpha);\r\n\t\t\t\tthis._repaint();\r\n\t\t\t}\r\n\t\t\tfrom.fillTexture=function (tex,x,y,width,height,type,offset){\r\n\t\t\t\t(width===void 0)&& (width=0);\r\n\t\t\t\t(height===void 0)&& (height=0);\r\n\t\t\t\t(type===void 0)&& (type=\"repeat\");\r\n\t\t\t\tif (!tex)return;\r\n\t\t\t\tif (tex.loaded){\r\n\t\t\t\t\tvar ctxi=Render._context.ctx;\r\n\t\t\t\t\tvar w=tex.bitmap.width,h=tex.bitmap.height,uv=tex.uv;\r\n\t\t\t\t\tvar pat;\r\n\t\t\t\t\tif (tex.uv !=Texture.DEF_UV){\r\n\t\t\t\t\t\tpat=ctxi.createPattern(tex.bitmap.source,type,uv[0] *w,uv[1] *h,(uv[2]-uv[0])*w,(uv[5]-uv[3])*h);\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tpat=ctxi.createPattern(tex.bitmap.source,type);\r\n\t\t\t\t\t};\r\n\t\t\t\t\tvar sX=0,sY=0;\r\n\t\t\t\t\tif (offset){\r\n\t\t\t\t\t\tx+=offset.x % tex.width;\r\n\t\t\t\t\t\ty+=offset.y % tex.height;\r\n\t\t\t\t\t\tsX-=offset.x % tex.width;\r\n\t\t\t\t\t\tsY-=offset.y % tex.height;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis._fillImage(pat,x,y,sX,sY,width,height);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tGraphics._cache=[];\r\n\treturn Graphics;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*Graphic bounds数据类\r\n*/\r\n//class laya.display.GraphicsBounds\r\nvar GraphicsBounds=(function(){\r\n\tfunction GraphicsBounds(){\r\n\t\t/**@private */\r\n\t\t//this._temp=null;\r\n\t\t/**@private */\r\n\t\t//this._bounds=null;\r\n\t\t/**@private */\r\n\t\t//this._rstBoundPoints=null;\r\n\t\t/**@private */\r\n\t\tthis._cacheBoundsType=false;\r\n\t\t/**@private */\r\n\t\t//this._graphics=null;\r\n\t}\r\n\r\n\t__class(GraphicsBounds,'laya.display.GraphicsBounds');\r\n\tvar __proto=GraphicsBounds.prototype;\r\n\t/**\r\n\t*销毁\r\n\t*/\r\n\t__proto.destroy=function(){\r\n\t\tthis._graphics=null;\r\n\t\tthis._temp=null;\r\n\t\tthis._rstBoundPoints=null;\r\n\t\tthis._bounds=null;\r\n\t}\r\n\r\n\t/**\r\n\t*重置数据\r\n\t*/\r\n\t__proto.reset=function(){\r\n\t\tthis._temp && (this._temp.length=0);\r\n\t}\r\n\r\n\t/**\r\n\t*获取位置及宽高信息矩阵(比较耗CPU，频繁使用会造成卡顿，尽量少用)。\r\n\t*@param realSize （可选）使用图片的真实大小，默认为false\r\n\t*@return 位置与宽高组成的 一个 Rectangle 对象。\r\n\t*/\r\n\t__proto.getBounds=function(realSize){\r\n\t\t(realSize===void 0)&& (realSize=false);\r\n\t\tif (!this._bounds || !this._temp || this._temp.length < 1 || realSize !=this._cacheBoundsType){\r\n\t\t\tthis._bounds=Rectangle._getWrapRec(this.getBoundPoints(realSize),this._bounds)\r\n\t\t}\r\n\t\tthis._cacheBoundsType=realSize;\r\n\t\treturn this._bounds;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*@param realSize （可选）使用图片的真实大小，默认为false\r\n\t*获取端点列表。\r\n\t*/\r\n\t__proto.getBoundPoints=function(realSize){\r\n\t\t(realSize===void 0)&& (realSize=false);\r\n\t\tif (!this._temp || this._temp.length < 1 || realSize !=this._cacheBoundsType)\r\n\t\t\tthis._temp=this._getCmdPoints(realSize);\r\n\t\tthis._cacheBoundsType=realSize;\r\n\t\treturn this._rstBoundPoints=Utils.copyArray(this._rstBoundPoints,this._temp);\r\n\t}\r\n\r\n\t__proto._getCmdPoints=function(realSize){\r\n\t\t(realSize===void 0)&& (realSize=false);\r\n\t\tvar context=Render._context;\r\n\t\tvar cmds=this._graphics.cmds;\r\n\t\tvar rst;\r\n\t\trst=this._temp || (this._temp=[]);\r\n\t\trst.length=0;\r\n\t\tif (!cmds && this._graphics._one !=null){\r\n\t\t\tGraphicsBounds._tempCmds.length=0;\r\n\t\t\tGraphicsBounds._tempCmds.push(this._graphics._one);\r\n\t\t\tcmds=GraphicsBounds._tempCmds;\r\n\t\t}\r\n\t\tif (!cmds)\r\n\t\t\treturn rst;\r\n\t\tvar matrixs;\r\n\t\tmatrixs=GraphicsBounds._tempMatrixArrays;\r\n\t\tmatrixs.length=0;\r\n\t\tvar tMatrix=GraphicsBounds._initMatrix;\r\n\t\ttMatrix.identity();\r\n\t\tvar tempMatrix=GraphicsBounds._tempMatrix;\r\n\t\tvar cmd;\r\n\t\tvar tex;\r\n\t\tvar wRate=NaN;\r\n\t\tvar hRate=NaN;\r\n\t\tvar oWidth=NaN;\r\n\t\tvar oHeight=NaN;\r\n\t\tvar offX=NaN;\r\n\t\tvar offY=NaN;\r\n\t\tfor (var i=0,n=cmds.length;i < n;i++){\r\n\t\t\tcmd=cmds[i];\r\n\t\t\tif (!cmd.callee)continue ;\r\n\t\t\tswitch (cmd.callee){\r\n\t\t\t\tcase context._save:\r\n\t\t\t\tcase 7:\r\n\t\t\t\t\tmatrixs.push(tMatrix);\r\n\t\t\t\t\ttMatrix=tMatrix.clone();\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._restore:\r\n\t\t\t\tcase 8:\r\n\t\t\t\t\ttMatrix=matrixs.pop();\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._scale:\r\n\t\t\t\tcase 5:\r\n\t\t\t\t\ttempMatrix.identity();\r\n\t\t\t\t\ttempMatrix.translate(-cmd[2],-cmd[3]);\r\n\t\t\t\t\ttempMatrix.scale(cmd[0],cmd[1]);\r\n\t\t\t\t\ttempMatrix.translate(cmd[2],cmd[3]);\r\n\t\t\t\t\tthis._switchMatrix(tMatrix,tempMatrix);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._rotate:\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\ttempMatrix.identity();\r\n\t\t\t\t\ttempMatrix.translate(-cmd[1],-cmd[2]);\r\n\t\t\t\t\ttempMatrix.rotate(cmd[0]);\r\n\t\t\t\t\ttempMatrix.translate(cmd[1],cmd[2]);\r\n\t\t\t\t\tthis._switchMatrix(tMatrix,tempMatrix);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._translate:\r\n\t\t\t\tcase 6:\r\n\t\t\t\t\ttempMatrix.identity();\r\n\t\t\t\t\ttempMatrix.translate(cmd[0],cmd[1]);\r\n\t\t\t\t\tthis._switchMatrix(tMatrix,tempMatrix);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._transform:\r\n\t\t\t\tcase 4:\r\n\t\t\t\t\ttempMatrix.identity();\r\n\t\t\t\t\ttempMatrix.translate(-cmd[1],-cmd[2]);\r\n\t\t\t\t\ttempMatrix.concat(cmd[0]);\r\n\t\t\t\t\ttempMatrix.translate(cmd[1],cmd[2]);\r\n\t\t\t\t\tthis._switchMatrix(tMatrix,tempMatrix);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 16:\r\n\t\t\t\tcase 24:\r\n\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[0],cmd[1],cmd[2],cmd[3]),tMatrix);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 17:\r\n\t\t\t\t\ttMatrix.copyTo(tempMatrix);\r\n\t\t\t\t\ttempMatrix.concat(cmd[4]);\r\n\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[0],cmd[1],cmd[2],cmd[3]),tempMatrix);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._drawTexture:\r\n\t\t\t\t\ttex=cmd[0];\r\n\t\t\t\t\tif (realSize){\r\n\t\t\t\t\t\tif (cmd[3] && cmd[4]){\r\n\t\t\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[1],cmd[2],cmd[3],cmd[4]),tMatrix);\r\n\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\ttex=cmd[0];\r\n\t\t\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[1],cmd[2],tex.width,tex.height),tMatrix);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\twRate=(cmd[3] || tex.sourceWidth)/ tex.width;\r\n\t\t\t\t\t\thRate=(cmd[4] || tex.sourceHeight)/ tex.height;\r\n\t\t\t\t\t\toWidth=wRate *tex.sourceWidth;\r\n\t\t\t\t\t\toHeight=hRate *tex.sourceHeight;\r\n\t\t\t\t\t\toffX=tex.offsetX > 0 ? tex.offsetX :0;\r\n\t\t\t\t\t\toffY=tex.offsetY > 0 ? tex.offsetY :0;\r\n\t\t\t\t\t\toffX *=wRate;\r\n\t\t\t\t\t\toffY *=hRate;\r\n\t\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[1]-offX,cmd[2]-offY,oWidth,oHeight),tMatrix);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._fillTexture:\r\n\t\t\t\t\tif (cmd[3] && cmd[4]){\r\n\t\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[1],cmd[2],cmd[3],cmd[4]),tMatrix);\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\ttex=cmd[0];\r\n\t\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[1],cmd[2],tex.width,tex.height),tMatrix);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._drawTextureWithTransform:;\r\n\t\t\t\t\tvar drawMatrix;\r\n\t\t\t\t\tif (cmd[5]){\r\n\t\t\t\t\t\ttMatrix.copyTo(tempMatrix);\r\n\t\t\t\t\t\ttempMatrix.concat(cmd[5]);\r\n\t\t\t\t\t\tdrawMatrix=tempMatrix;\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tdrawMatrix=tMatrix;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (realSize){\r\n\t\t\t\t\t\tif (cmd[3] && cmd[4]){\r\n\t\t\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[1],cmd[2],cmd[3],cmd[4]),drawMatrix);\r\n\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\ttex=cmd[0];\r\n\t\t\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[1],cmd[2],tex.width,tex.height),drawMatrix);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\ttex=cmd[0];\r\n\t\t\t\t\t\twRate=(cmd[3] || tex.sourceWidth)/ tex.width;\r\n\t\t\t\t\t\thRate=(cmd[4] || tex.sourceHeight)/ tex.height;\r\n\t\t\t\t\t\toWidth=wRate *tex.sourceWidth;\r\n\t\t\t\t\t\toHeight=hRate *tex.sourceHeight;\r\n\t\t\t\t\t\toffX=tex.offsetX > 0 ? tex.offsetX :0;\r\n\t\t\t\t\t\toffY=tex.offsetY > 0 ? tex.offsetY :0;\r\n\t\t\t\t\t\toffX *=wRate;\r\n\t\t\t\t\t\toffY *=hRate;\r\n\t\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[1]-offX,cmd[2]-offY,oWidth,oHeight),drawMatrix);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._drawRect:\r\n\t\t\t\tcase 13:\r\n\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[0],cmd[1],cmd[2],cmd[3]),tMatrix);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._drawCircle:\r\n\t\t\t\tcase context._fillCircle:\r\n\t\t\t\tcase 14:\r\n\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Rectangle._getBoundPointS(cmd[0]-cmd[2],cmd[1]-cmd[2],cmd[2]+cmd[2],cmd[2]+cmd[2]),tMatrix);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._drawLine:\r\n\t\t\t\tcase 20:\r\n\t\t\t\t\tGraphicsBounds._tempPoints.length=0;\r\n\t\t\t\t\tvar lineWidth=NaN;\r\n\t\t\t\t\tlineWidth=cmd[5] *0.5;\r\n\t\t\t\t\tif (cmd[0]==cmd[2]){\r\n\t\t\t\t\t\tGraphicsBounds._tempPoints.push(cmd[0]+lineWidth,cmd[1],cmd[2]+lineWidth,cmd[3],cmd[0]-lineWidth,cmd[1],cmd[2]-lineWidth,cmd[3]);\r\n\t\t\t\t\t\t}else if (cmd[1]==cmd[3]){\r\n\t\t\t\t\t\tGraphicsBounds._tempPoints.push(cmd[0],cmd[1]+lineWidth,cmd[2],cmd[3]+lineWidth,cmd[0],cmd[1]-lineWidth,cmd[2],cmd[3]-lineWidth);\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tGraphicsBounds._tempPoints.push(cmd[0],cmd[1],cmd[2],cmd[3]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,GraphicsBounds._tempPoints,tMatrix);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._drawCurves:\r\n\t\t\t\tcase 22:\r\n\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,Bezier.I.getBezierPoints(cmd[2]),tMatrix,cmd[0],cmd[1]);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._drawPoly:\r\n\t\t\t\tcase context._drawLines:\r\n\t\t\t\tcase 18:\r\n\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,cmd[2],tMatrix,cmd[0],cmd[1]);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._drawPath:\r\n\t\t\t\tcase 19:\r\n\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,this._getPathPoints(cmd[2]),tMatrix,cmd[0],cmd[1]);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase context._drawPie:\r\n\t\t\t\tcase 15:\r\n\t\t\t\t\tGraphicsBounds._addPointArrToRst(rst,this._getPiePoints(cmd[0],cmd[1],cmd[2],cmd[3],cmd[4]),tMatrix);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t}\r\n\t\tif (rst.length > 200){\r\n\t\t\trst=Utils.copyArray(rst,Rectangle._getWrapRec(rst)._getBoundPoints());\r\n\t\t}else if (rst.length > 8)\r\n\t\trst=GrahamScan.scanPList(rst);\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t__proto._switchMatrix=function(tMatix,tempMatrix){\r\n\t\ttempMatrix.concat(tMatix);\r\n\t\ttempMatrix.copyTo(tMatix);\r\n\t}\r\n\r\n\t__proto._getPiePoints=function(x,y,radius,startAngle,endAngle){\r\n\t\tvar rst=GraphicsBounds._tempPoints;\r\n\t\tGraphicsBounds._tempPoints.length=0;\r\n\t\trst.push(x,y);\r\n\t\tvar delta=(endAngle-startAngle)% (2 *Math.PI);\r\n\t\tvar segnum=10;\r\n\t\tvar step=delta / segnum;\r\n\t\tvar i=NaN;\r\n\t\tvar angle=startAngle;\r\n\t\tfor (i=0;i <=segnum;i++){\r\n\t\t\trst.push(x+radius *Math.cos(angle),y+radius *Math.sin(angle));\r\n\t\t\tangle+=step;\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t__proto._getPathPoints=function(paths){\r\n\t\tvar i=0,len=0;\r\n\t\tvar rst=GraphicsBounds._tempPoints;\r\n\t\trst.length=0;\r\n\t\tlen=paths.length;\r\n\t\tvar tCMD;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\ttCMD=paths[i];\r\n\t\t\tif (tCMD.length > 1){\r\n\t\t\t\trst.push(tCMD[1],tCMD[2]);\r\n\t\t\t\tif (tCMD.length > 3){\r\n\t\t\t\t\trst.push(tCMD[3],tCMD[4]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tGraphicsBounds._addPointArrToRst=function(rst,points,matrix,dx,dy){\r\n\t\t(dx===void 0)&& (dx=0);\r\n\t\t(dy===void 0)&& (dy=0);\r\n\t\tvar i=0,len=0;\r\n\t\tlen=points.length;\r\n\t\tfor (i=0;i < len;i+=2){\r\n\t\t\tGraphicsBounds._addPointToRst(rst,points[i]+dx,points[i+1]+dy,matrix);\r\n\t\t}\r\n\t}\r\n\r\n\tGraphicsBounds._addPointToRst=function(rst,x,y,matrix){\r\n\t\tvar _tempPoint=Point.TEMP;\r\n\t\t_tempPoint.setTo(x ? x :0,y ? y :0);\r\n\t\tmatrix.transformPoint(_tempPoint);\r\n\t\trst.push(_tempPoint.x,_tempPoint.y);\r\n\t}\r\n\r\n\tGraphicsBounds._tempPoints=[];\r\n\tGraphicsBounds._tempMatrixArrays=[];\r\n\tGraphicsBounds._tempCmds=[];\r\n\t__static(GraphicsBounds,\r\n\t['_tempMatrix',function(){return this._tempMatrix=new Matrix();},'_initMatrix',function(){return this._initMatrix=new Matrix();}\r\n\t]);\r\n\treturn GraphicsBounds;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Event</code> 是事件类型的集合。一般当发生事件时，<code>Event</code> 对象将作为参数传递给事件侦听器。\r\n*/\r\n//class laya.events.Event\r\nvar Event=(function(){\r\n\tfunction Event(){\r\n\t\t/**事件类型。*/\r\n\t\t//this.type=null;\r\n\t\t/**原生浏览器事件。*/\r\n\t\t//this.nativeEvent=null;\r\n\t\t/**事件目标触发对象。*/\r\n\t\t//this.target=null;\r\n\t\t/**事件当前冒泡对象。*/\r\n\t\t//this.currentTarget=null;\r\n\t\t/**@private */\r\n\t\t//this._stoped=false;\r\n\t\t/**分配给触摸点的唯一标识号（作为 int）。*/\r\n\t\t//this.touchId=0;\r\n\t\t/**键盘值*/\r\n\t\t//this.keyCode=0;\r\n\t\t/**滚轮滑动增量*/\r\n\t\t//this.delta=0;\r\n\t}\r\n\r\n\t__class(Event,'laya.events.Event');\r\n\tvar __proto=Event.prototype;\r\n\t/**\r\n\t*设置事件数据。\r\n\t*@param type 事件类型。\r\n\t*@param currentTarget 事件目标触发对象。\r\n\t*@param target 事件当前冒泡对象。\r\n\t*@return 返回当前 Event 对象。\r\n\t*/\r\n\t__proto.setTo=function(type,currentTarget,target){\r\n\t\tthis.type=type;\r\n\t\tthis.currentTarget=currentTarget;\r\n\t\tthis.target=target;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*阻止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。此方法不会影响当前节点 (currentTarget)中的任何事件侦听器。\r\n\t*/\r\n\t__proto.stopPropagation=function(){\r\n\t\tthis._stoped=true;\r\n\t}\r\n\r\n\t/**鼠标在 Stage 上的 Y 轴坐标*/\r\n\t__getset(0,__proto,'stageY',function(){\r\n\t\treturn Laya.stage.mouseY;\r\n\t});\r\n\r\n\t/**\r\n\t*包含按下或释放的键的字符代码值。字符代码值为英文键盘值。\r\n\t*/\r\n\t__getset(0,__proto,'charCode',function(){\r\n\t\treturn this.nativeEvent.charCode;\r\n\t});\r\n\r\n\t/**\r\n\t*触摸点列表。\r\n\t*/\r\n\t__getset(0,__proto,'touches',function(){\r\n\t\tvar arr=this.nativeEvent.touches;\r\n\t\tif (arr){\r\n\t\t\tvar stage=Laya.stage;\r\n\t\t\tfor (var i=0,n=arr.length;i < n;i++){\r\n\t\t\t\tvar e=arr[i];\r\n\t\t\t\tvar point=Point.TEMP;\r\n\t\t\t\tpoint.setTo(e.clientX,e.clientY);\r\n\t\t\t\tstage._canvasTransform.invertTransformPoint(point);\r\n\t\t\t\tstage.transform.invertTransformPoint(point);\r\n\t\t\t\te.stageX=point.x;\r\n\t\t\t\te.stageY=point.y;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr;\r\n\t});\r\n\r\n\t/**\r\n\t*表示键在键盘上的位置。这对于区分在键盘上多次出现的键非常有用。<br>\r\n\t*例如，您可以根据此属性的值来区分左 Shift 键和右 Shift 键：左 Shift 键的值为 KeyLocation.LEFT，右 Shift 键的值为 KeyLocation.RIGHT。另一个示例是区分标准键盘 (KeyLocation.STANDARD)与数字键盘 (KeyLocation.NUM_PAD)上按下的数字键。\r\n\t*/\r\n\t__getset(0,__proto,'keyLocation',function(){\r\n\t\treturn this.nativeEvent.keyLocation;\r\n\t});\r\n\r\n\t/**\r\n\t*表示 Ctrl 键是处于活动状态 (true)还是非活动状态 (false)。\r\n\t*/\r\n\t__getset(0,__proto,'ctrlKey',function(){\r\n\t\treturn this.nativeEvent.ctrlKey;\r\n\t});\r\n\r\n\t/**\r\n\t*表示 Alt 键是处于活动状态 (true)还是非活动状态 (false)。\r\n\t*/\r\n\t__getset(0,__proto,'altKey',function(){\r\n\t\treturn this.nativeEvent.altKey;\r\n\t});\r\n\r\n\t/**\r\n\t*表示 Shift 键是处于活动状态 (true)还是非活动状态 (false)。\r\n\t*/\r\n\t__getset(0,__proto,'shiftKey',function(){\r\n\t\treturn this.nativeEvent.shiftKey;\r\n\t});\r\n\r\n\t/**鼠标在 Stage 上的 X 轴坐标*/\r\n\t__getset(0,__proto,'stageX',function(){\r\n\t\treturn Laya.stage.mouseX;\r\n\t});\r\n\r\n\tEvent.EMPTY=new Event();\r\n\tEvent.MOUSE_DOWN=\"mousedown\";\r\n\tEvent.MOUSE_UP=\"mouseup\";\r\n\tEvent.CLICK=\"click\";\r\n\tEvent.RIGHT_MOUSE_DOWN=\"rightmousedown\";\r\n\tEvent.RIGHT_MOUSE_UP=\"rightmouseup\";\r\n\tEvent.RIGHT_CLICK=\"rightclick\";\r\n\tEvent.MOUSE_MOVE=\"mousemove\";\r\n\tEvent.MOUSE_OVER=\"mouseover\";\r\n\tEvent.MOUSE_OUT=\"mouseout\";\r\n\tEvent.MOUSE_WHEEL=\"mousewheel\";\r\n\tEvent.ROLL_OVER=\"mouseover\";\r\n\tEvent.ROLL_OUT=\"mouseout\";\r\n\tEvent.DOUBLE_CLICK=\"doubleclick\";\r\n\tEvent.CHANGE=\"change\";\r\n\tEvent.CHANGED=\"changed\";\r\n\tEvent.RESIZE=\"resize\";\r\n\tEvent.ADDED=\"added\";\r\n\tEvent.REMOVED=\"removed\";\r\n\tEvent.DISPLAY=\"display\";\r\n\tEvent.UNDISPLAY=\"undisplay\";\r\n\tEvent.ERROR=\"error\";\r\n\tEvent.COMPLETE=\"complete\";\r\n\tEvent.LOADED=\"loaded\";\r\n\tEvent.PROGRESS=\"progress\";\r\n\tEvent.INPUT=\"input\";\r\n\tEvent.RENDER=\"render\";\r\n\tEvent.OPEN=\"open\";\r\n\tEvent.MESSAGE=\"message\";\r\n\tEvent.CLOSE=\"close\";\r\n\tEvent.KEY_DOWN=\"keydown\";\r\n\tEvent.KEY_PRESS=\"keypress\";\r\n\tEvent.KEY_UP=\"keyup\";\r\n\tEvent.FRAME=\"enterframe\";\r\n\tEvent.DRAG_START=\"dragstart\";\r\n\tEvent.DRAG_MOVE=\"dragmove\";\r\n\tEvent.DRAG_END=\"dragend\";\r\n\tEvent.ENTER=\"enter\";\r\n\tEvent.SELECT=\"select\";\r\n\tEvent.BLUR=\"blur\";\r\n\tEvent.FOCUS=\"focus\";\r\n\tEvent.VISIBILITY_CHANGE=\"visibilitychange\";\r\n\tEvent.FOCUS_CHANGE=\"focuschange\";\r\n\tEvent.PLAYED=\"played\";\r\n\tEvent.PAUSED=\"paused\";\r\n\tEvent.STOPPED=\"stopped\";\r\n\tEvent.START=\"start\";\r\n\tEvent.END=\"end\";\r\n\tEvent.ENABLE_CHANGED=\"enablechanged\";\r\n\tEvent.ACTIVE_IN_HIERARCHY_CHANGED=\"activeinhierarchychanged\";\r\n\tEvent.COMPONENT_ADDED=\"componentadded\";\r\n\tEvent.COMPONENT_REMOVED=\"componentremoved\";\r\n\tEvent.LAYER_CHANGED=\"layerchanged\";\r\n\tEvent.HIERARCHY_LOADED=\"hierarchyloaded\";\r\n\tEvent.RECOVERED=\"recovered\";\r\n\tEvent.RELEASED=\"released\";\r\n\tEvent.LINK=\"link\";\r\n\tEvent.LABEL=\"label\";\r\n\tEvent.FULL_SCREEN_CHANGE=\"fullscreenchange\";\r\n\tEvent.DEVICE_LOST=\"devicelost\";\r\n\tEvent.MESH_CHANGED=\"meshchanged\";\r\n\tEvent.MATERIAL_CHANGED=\"materialchanged\";\r\n\tEvent.WORLDMATRIX_NEEDCHANGE=\"worldmatrixneedchanged\";\r\n\tEvent.ANIMATION_CHANGED=\"animationchanged\";\r\n\tEvent.TRIGGER_ENTER=\"triggerenter\";\r\n\tEvent.TRIGGER_STAY=\"triggerstay\";\r\n\tEvent.TRIGGER_EXIT=\"triggerexit\";\r\n\tEvent.TRAIL_FILTER_CHANGE=\"trailfilterchange\";\r\n\tEvent.DOMINO_FILTER_CHANGE=\"dominofilterchange\";\r\n\treturn Event;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Keyboard</code> 类的属性是一些常数，这些常数表示控制游戏时最常用的键。\r\n*/\r\n//class laya.events.Keyboard\r\nvar Keyboard=(function(){\r\n\tfunction Keyboard(){}\r\n\t__class(Keyboard,'laya.events.Keyboard');\r\n\tKeyboard.NUMBER_0=48;\r\n\tKeyboard.NUMBER_1=49;\r\n\tKeyboard.NUMBER_2=50;\r\n\tKeyboard.NUMBER_3=51;\r\n\tKeyboard.NUMBER_4=52;\r\n\tKeyboard.NUMBER_5=53;\r\n\tKeyboard.NUMBER_6=54;\r\n\tKeyboard.NUMBER_7=55;\r\n\tKeyboard.NUMBER_8=56;\r\n\tKeyboard.NUMBER_9=57;\r\n\tKeyboard.A=65;\r\n\tKeyboard.B=66;\r\n\tKeyboard.C=67;\r\n\tKeyboard.D=68;\r\n\tKeyboard.E=69;\r\n\tKeyboard.F=70;\r\n\tKeyboard.G=71;\r\n\tKeyboard.H=72;\r\n\tKeyboard.I=73;\r\n\tKeyboard.J=74;\r\n\tKeyboard.K=75;\r\n\tKeyboard.L=76;\r\n\tKeyboard.M=77;\r\n\tKeyboard.N=78;\r\n\tKeyboard.O=79;\r\n\tKeyboard.P=80;\r\n\tKeyboard.Q=81;\r\n\tKeyboard.R=82;\r\n\tKeyboard.S=83;\r\n\tKeyboard.T=84;\r\n\tKeyboard.U=85;\r\n\tKeyboard.V=86;\r\n\tKeyboard.W=87;\r\n\tKeyboard.X=88;\r\n\tKeyboard.Y=89;\r\n\tKeyboard.Z=90;\r\n\tKeyboard.F1=112;\r\n\tKeyboard.F2=113;\r\n\tKeyboard.F3=114;\r\n\tKeyboard.F4=115;\r\n\tKeyboard.F5=116;\r\n\tKeyboard.F6=117;\r\n\tKeyboard.F7=118;\r\n\tKeyboard.F8=119;\r\n\tKeyboard.F9=120;\r\n\tKeyboard.F10=121;\r\n\tKeyboard.F11=122;\r\n\tKeyboard.F12=123;\r\n\tKeyboard.F13=124;\r\n\tKeyboard.F14=125;\r\n\tKeyboard.F15=126;\r\n\tKeyboard.NUMPAD=21;\r\n\tKeyboard.NUMPAD_0=96;\r\n\tKeyboard.NUMPAD_1=97;\r\n\tKeyboard.NUMPAD_2=98;\r\n\tKeyboard.NUMPAD_3=99;\r\n\tKeyboard.NUMPAD_4=100;\r\n\tKeyboard.NUMPAD_5=101;\r\n\tKeyboard.NUMPAD_6=102;\r\n\tKeyboard.NUMPAD_7=103;\r\n\tKeyboard.NUMPAD_8=104;\r\n\tKeyboard.NUMPAD_9=105;\r\n\tKeyboard.NUMPAD_ADD=107;\r\n\tKeyboard.NUMPAD_DECIMAL=110;\r\n\tKeyboard.NUMPAD_DIVIDE=111;\r\n\tKeyboard.NUMPAD_ENTER=108;\r\n\tKeyboard.NUMPAD_MULTIPLY=106;\r\n\tKeyboard.NUMPAD_SUBTRACT=109;\r\n\tKeyboard.SEMICOLON=186;\r\n\tKeyboard.EQUAL=187;\r\n\tKeyboard.COMMA=188;\r\n\tKeyboard.MINUS=189;\r\n\tKeyboard.PERIOD=190;\r\n\tKeyboard.SLASH=191;\r\n\tKeyboard.BACKQUOTE=192;\r\n\tKeyboard.LEFTBRACKET=219;\r\n\tKeyboard.BACKSLASH=220;\r\n\tKeyboard.RIGHTBRACKET=221;\r\n\tKeyboard.QUOTE=222;\r\n\tKeyboard.ALTERNATE=18;\r\n\tKeyboard.BACKSPACE=8;\r\n\tKeyboard.CAPS_LOCK=20;\r\n\tKeyboard.COMMAND=15;\r\n\tKeyboard.CONTROL=17;\r\n\tKeyboard.DELETE=46;\r\n\tKeyboard.ENTER=13;\r\n\tKeyboard.ESCAPE=27;\r\n\tKeyboard.PAGE_UP=33;\r\n\tKeyboard.PAGE_DOWN=34;\r\n\tKeyboard.END=35;\r\n\tKeyboard.HOME=36;\r\n\tKeyboard.LEFT=37;\r\n\tKeyboard.UP=38;\r\n\tKeyboard.RIGHT=39;\r\n\tKeyboard.DOWN=40;\r\n\tKeyboard.SHIFT=16;\r\n\tKeyboard.SPACE=32;\r\n\tKeyboard.TAB=9;\r\n\tKeyboard.INSERT=45;\r\n\treturn Keyboard;\r\n})()\r\n\r\n\r\n/**\r\n*<p><code>KeyBoardManager</code> 是键盘事件管理类。该类从浏览器中接收键盘事件，并派发该事件。</p>\r\n*<p>派发事件时若 Stage.focus 为空则只从 Stage 上派发该事件，否则将从 Stage.focus 对象开始一直冒泡派发该事件。所以在 Laya.stage 上监听键盘事件一定能够收到，如果在其他地方监听，则必须处在Stage.focus的冒泡链上才能收到该事件。</p>\r\n*<p>用户可以通过代码 Laya.stage.focus=someNode 的方式来设置focus对象。</p>\r\n*<p>用户可统一的根据事件对象中 e.keyCode 来判断按键类型，该属性兼容了不同浏览器的实现。</p>\r\n*/\r\n//class laya.events.KeyBoardManager\r\nvar KeyBoardManager=(function(){\r\n\tfunction KeyBoardManager(){}\r\n\t__class(KeyBoardManager,'laya.events.KeyBoardManager');\r\n\tKeyBoardManager.__init__=function(){\r\n\t\tKeyBoardManager._addEvent(\"keydown\");\r\n\t\tKeyBoardManager._addEvent(\"keypress\");\r\n\t\tKeyBoardManager._addEvent(\"keyup\");\r\n\t}\r\n\r\n\tKeyBoardManager._addEvent=function(type){\r\n\t\tBrowser.document.addEventListener(type,function(e){\r\n\t\t\tlaya.events.KeyBoardManager._dispatch(e,type);\r\n\t\t},true);\r\n\t}\r\n\r\n\tKeyBoardManager._dispatch=function(e,type){\r\n\t\tif (!KeyBoardManager.enabled)return;\r\n\t\tKeyBoardManager._event._stoped=false;\r\n\t\tKeyBoardManager._event.nativeEvent=e;\r\n\t\tKeyBoardManager._event.keyCode=e.keyCode || e.which || e.charCode;\r\n\t\tif (type===\"keydown\")KeyBoardManager._pressKeys[KeyBoardManager._event.keyCode]=true;\r\n\t\telse if (type===\"keyup\")KeyBoardManager._pressKeys[KeyBoardManager._event.keyCode]=null;\r\n\t\tvar target=(Laya.stage.focus && (Laya.stage.focus.event !=null)&& Laya.stage.focus.displayedInStage)? Laya.stage.focus :Laya.stage;\r\n\t\tvar ct=target;\r\n\t\twhile (ct){\r\n\t\t\tct.event(type,KeyBoardManager._event.setTo(type,ct,target));\r\n\t\t\tct=ct.parent;\r\n\t\t}\r\n\t}\r\n\r\n\tKeyBoardManager.hasKeyDown=function(key){\r\n\t\treturn KeyBoardManager._pressKeys[key];\r\n\t}\r\n\r\n\tKeyBoardManager._pressKeys={};\r\n\tKeyBoardManager.enabled=true;\r\n\t__static(KeyBoardManager,\r\n\t['_event',function(){return this._event=new Event();}\r\n\t]);\r\n\treturn KeyBoardManager;\r\n})()\r\n\r\n\r\n/**\r\n*<p><code>KeyLocation</code> 类包含表示在键盘或类似键盘的输入设备上按键位置的常量。</p>\r\n*<p><code>KeyLocation</code> 常数用在键盘事件对象的 <code>keyLocation </code>属性中。</p>\r\n*/\r\n//class laya.events.KeyLocation\r\nvar KeyLocation=(function(){\r\n\tfunction KeyLocation(){}\r\n\t__class(KeyLocation,'laya.events.KeyLocation');\r\n\tKeyLocation.STANDARD=0;\r\n\tKeyLocation.LEFT=1;\r\n\tKeyLocation.RIGHT=2;\r\n\tKeyLocation.NUM_PAD=3;\r\n\treturn KeyLocation;\r\n})()\r\n\r\n\r\n/**\r\n*<p><code>MouseManager</code> 是鼠标、触摸交互管理器。</p>\r\n*<p>鼠标事件流包括捕获阶段、目标阶段、冒泡阶段。<br/>\r\n*捕获阶段：此阶段引擎会从stage开始递归检测stage及其子对象，直到找到命中的目标对象或者未命中任何对象；<br/>\r\n*目标阶段：找到命中的目标对象；<br/>\r\n*冒泡阶段：事件离开目标对象，按节点层级向上逐层通知，直到到达舞台的过程。</p>\r\n*/\r\n//class laya.events.MouseManager\r\nvar MouseManager=(function(){\r\n\tfunction MouseManager(){\r\n\t\t/**canvas 上的鼠标X坐标。*/\r\n\t\tthis.mouseX=0;\r\n\t\t/**canvas 上的鼠标Y坐标。*/\r\n\t\tthis.mouseY=0;\r\n\t\t/**是否禁用除 stage 以外的鼠标事件检测。*/\r\n\t\tthis.disableMouseEvent=false;\r\n\t\t/**鼠标按下的时间。单位为毫秒。*/\r\n\t\tthis.mouseDownTime=0;\r\n\t\t/**鼠标移动精度。*/\r\n\t\tthis.mouseMoveAccuracy=2;\r\n\t\tthis._stage=null;\r\n\t\tthis._target=null;\r\n\t\tthis._lastMoveTimer=0;\r\n\t\tthis._isLeftMouse=false;\r\n\t\tthis._eventList=[];\r\n\t\tthis._touchIDs={};\r\n\t\tthis._id=1;\r\n\t\tthis._tTouchID=0;\r\n\t\tthis._event=new Event();\r\n\t\tthis._matrix=new Matrix();\r\n\t\tthis._point=new Point();\r\n\t\tthis._rect=new Rectangle();\r\n\t\tthis._prePoint=new Point();\r\n\t\tthis._curTouchID=NaN;\r\n\t}\r\n\r\n\t__class(MouseManager,'laya.events.MouseManager');\r\n\tvar __proto=MouseManager.prototype;\r\n\t/**\r\n\t*@private\r\n\t*初始化。\r\n\t*/\r\n\t__proto.__init__=function(stage,canvas){\r\n\t\tvar _$this=this;\r\n\t\tthis._stage=stage;\r\n\t\tvar _this=this;\r\n\t\tvar list=this._eventList;\r\n\t\tcanvas.oncontextmenu=function (e){\r\n\t\t\tif (MouseManager.enabled)return false;\r\n\t\t}\r\n\t\tcanvas.addEventListener('mousedown',function(e){\r\n\t\t\tif (MouseManager.enabled){\r\n\t\t\t\tif(!Browser.onIE)e.preventDefault();\r\n\t\t\t\tlist.push(e);\r\n\t\t\t\t_this.mouseDownTime=Browser.now();\r\n\t\t\t}\r\n\t\t});\r\n\t\tcanvas.addEventListener('mouseup',function(e){\r\n\t\t\tif (MouseManager.enabled){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tlist.push(e);\r\n\t\t\t\t_this.mouseDownTime=-Browser.now();\r\n\t\t\t}\r\n\t\t},true);\r\n\t\tcanvas.addEventListener('mousemove',function(e){\r\n\t\t\tif (MouseManager.enabled){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar now=Browser.now();\r\n\t\t\t\tif (now-_this._lastMoveTimer < 10)return;\r\n\t\t\t\t_this._lastMoveTimer=now;\r\n\t\t\t\tlist.push(e);\r\n\t\t\t}\r\n\t\t},true);\r\n\t\tcanvas.addEventListener(\"mouseout\",function(e){\r\n\t\t\tif (MouseManager.enabled)list.push(e);\r\n\t\t})\r\n\t\tcanvas.addEventListener(\"mouseover\",function(e){\r\n\t\t\tif (MouseManager.enabled)list.push(e);\r\n\t\t})\r\n\t\tcanvas.addEventListener(\"touchstart\",function(e){\r\n\t\t\tif (MouseManager.enabled){\r\n\t\t\t\tlist.push(e);\r\n\t\t\t\tif (!MouseManager._isFirstTouch&&!Input.isInputting)e.preventDefault();\r\n\t\t\t\t_this.mouseDownTime=Browser.now();\r\n\t\t\t}\r\n\t\t});\r\n\t\tcanvas.addEventListener(\"touchend\",function(e){\r\n\t\t\tif (MouseManager.enabled){\r\n\t\t\t\tif (!MouseManager._isFirstTouch&&!Input.isInputting)e.preventDefault();\r\n\t\t\t\tMouseManager._isFirstTouch=false;\r\n\t\t\t\tlist.push(e);\r\n\t\t\t\t_this.mouseDownTime=-Browser.now();\r\n\t\t\t\t}else {\r\n\t\t\t\t_$this._curTouchID=NaN;\r\n\t\t\t}\r\n\t\t},true);\r\n\t\tcanvas.addEventListener(\"touchmove\",function(e){\r\n\t\t\tif (MouseManager.enabled){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tlist.push(e);\r\n\t\t\t}\r\n\t\t},true);\r\n\t\tcanvas.addEventListener(\"touchcancel\",function(e){\r\n\t\t\tif (MouseManager.enabled){\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tlist.push(e);\r\n\t\t\t\t}else {\r\n\t\t\t\t_$this._curTouchID=NaN;\r\n\t\t\t}\r\n\t\t},true);\r\n\t\tcanvas.addEventListener('mousewheel',function(e){\r\n\t\t\tif (MouseManager.enabled)list.push(e);\r\n\t\t});\r\n\t\tcanvas.addEventListener('DOMMouseScroll',function(e){\r\n\t\t\tif (MouseManager.enabled)list.push(e);\r\n\t\t});\r\n\t}\r\n\r\n\t__proto.initEvent=function(e,nativeEvent){\r\n\t\tvar _this=this;\r\n\t\t_this._event._stoped=false;\r\n\t\t_this._event.nativeEvent=nativeEvent || e;\r\n\t\t_this._target=null;\r\n\t\tthis._point.setTo(e.pageX || e.clientX,e.pageY || e.clientY);\r\n\t\tthis._stage._canvasTransform.invertTransformPoint(this._point);\r\n\t\t_this.mouseX=this._point.x;\r\n\t\t_this.mouseY=this._point.y;\r\n\t\t_this._event.touchId=e.identifier || 0;\r\n\t\tthis._tTouchID=_this._event.touchId;\r\n\t\tvar evt;\r\n\t\tevt=TouchManager.I._event;\r\n\t\tevt._stoped=false;\r\n\t\tevt.nativeEvent=_this._event.nativeEvent;\r\n\t\tevt.touchId=_this._event.touchId;\r\n\t}\r\n\r\n\t__proto.checkMouseWheel=function(e){\r\n\t\tthis._event.delta=e.wheelDelta ? e.wheelDelta *0.025 :-e.detail;\r\n\t\tvar _lastOvers=TouchManager.I.getLastOvers();\r\n\t\tfor (var i=0,n=_lastOvers.length;i < n;i++){\r\n\t\t\tvar ele=_lastOvers[i];\r\n\t\t\tele.event(/*laya.events.Event.MOUSE_WHEEL*/\"mousewheel\",this._event.setTo(/*laya.events.Event.MOUSE_WHEEL*/\"mousewheel\",ele,this._target));\r\n\t\t}\r\n\t}\r\n\r\n\t// _stage.event(Event.MOUSE_WHEEL,_event.setTo(Event.MOUSE_WHEEL,_stage,_target));\r\n\t__proto.onMouseMove=function(ele){\r\n\t\tTouchManager.I.onMouseMove(ele,this._tTouchID);\r\n\t}\r\n\r\n\t__proto.onMouseDown=function(ele){\r\n\t\tif (Input.isInputting && Laya.stage.focus && Laya.stage.focus[\"focus\"] && !Laya.stage.focus.contains(this._target)){\r\n\t\t\tvar pre_input=Laya.stage.focus['_tf'] || Laya.stage.focus;\r\n\t\t\tvar new_input=ele['_tf'] || ele;\r\n\t\t\tif ((new_input instanceof laya.display.Input )&& new_input.multiline==pre_input.multiline)\r\n\t\t\t\tpre_input['_focusOut']();\r\n\t\t\telse\r\n\t\t\tpre_input.focus=false;\r\n\t\t}\r\n\t\tTouchManager.I.onMouseDown(ele,this._tTouchID,this._isLeftMouse);\r\n\t}\r\n\r\n\t__proto.onMouseUp=function(ele){\r\n\t\tTouchManager.I.onMouseUp(ele,this._tTouchID,this._isLeftMouse);\r\n\t}\r\n\r\n\t__proto.check=function(sp,mouseX,mouseY,callBack){\r\n\t\tthis._point.setTo(mouseX,mouseY);\r\n\t\tsp.fromParentPoint(this._point);\r\n\t\tmouseX=this._point.x;\r\n\t\tmouseY=this._point.y;\r\n\t\tvar scrollRect=sp.scrollRect;\r\n\t\tif (scrollRect){\r\n\t\t\tthis._rect.setTo(scrollRect.x,scrollRect.y,scrollRect.width,scrollRect.height);\r\n\t\t\tif (!this._rect.contains(mouseX,mouseY))return false;\r\n\t\t}\r\n\t\tif (!this.disableMouseEvent){\r\n\t\t\tif (sp.hitTestPrior && !sp.mouseThrough && !this.hitTest(sp,mouseX,mouseY)){\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tfor (var i=sp._childs.length-1;i >-1;i--){\r\n\t\t\t\tvar child=sp._childs[i];\r\n\t\t\t\tif (!child.destroyed && child.mouseEnabled && child.visible){\r\n\t\t\t\t\tif (this.check(child,mouseX,mouseY,callBack))return true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar isHit=(sp.hitTestPrior && !sp.mouseThrough && !this.disableMouseEvent)? true :this.hitTest(sp,mouseX,mouseY);\r\n\t\tif (isHit){\r\n\t\t\tthis._target=sp;\r\n\t\t\tcallBack.call(this,sp);\r\n\t\t\t}else if (callBack===this.onMouseUp && sp===this._stage){\r\n\t\t\tthis._target=this._stage;\r\n\t\t\tcallBack.call(this,this._target);\r\n\t\t}\r\n\t\treturn isHit;\r\n\t}\r\n\r\n\t__proto.hitTest=function(sp,mouseX,mouseY){\r\n\t\tvar isHit=false;\r\n\t\tif (sp.scrollRect){\r\n\t\t\tmouseX-=sp.scrollRect.x;\r\n\t\t\tmouseY-=sp.scrollRect.y;\r\n\t\t}\r\n\t\tif ((sp.hitArea instanceof laya.utils.HitArea )){\r\n\t\t\treturn sp.hitArea.isHit(mouseX,mouseY);\r\n\t\t}\r\n\t\tif (sp.width > 0 && sp.height > 0 || sp.mouseThrough || sp.hitArea){\r\n\t\t\tif (!sp.mouseThrough){\r\n\t\t\t\tvar hitRect=this._rect;\r\n\t\t\t\tif (sp.hitArea)hitRect=sp.hitArea;\r\n\t\t\t\telse hitRect.setTo(0,0,sp.width,sp.height);\r\n\t\t\t\tisHit=hitRect.contains(mouseX,mouseY);\r\n\t\t\t\t}else {\r\n\t\t\t\tisHit=sp.getGraphicBounds().contains(mouseX,mouseY);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn isHit;\r\n\t}\r\n\r\n\t/**\r\n\t*执行事件处理。\r\n\t*/\r\n\t__proto.runEvent=function(){\r\n\t\tvar len=this._eventList.length;\r\n\t\tif (!len)return;\r\n\t\tvar _this=this;\r\n\t\tvar i=0,j=0,n=0,touch;\r\n\t\twhile (i < len){\r\n\t\t\tvar evt=this._eventList[i];\r\n\t\t\tif (evt.type!=='mousemove')this._prePoint.x=this._prePoint.y=-1000000;\r\n\t\t\tswitch (evt.type){\r\n\t\t\t\tcase 'mousedown':\r\n\t\t\t\t\tthis._touchIDs[0]=this._id++;\r\n\t\t\t\t\tif (!MouseManager._isTouchRespond){\r\n\t\t\t\t\t\t_this._isLeftMouse=evt.button===0;\r\n\t\t\t\t\t\t_this.initEvent(evt);\r\n\t\t\t\t\t\t_this.check(_this._stage,_this.mouseX,_this.mouseY,_this.onMouseDown);\r\n\t\t\t\t\t}else\r\n\t\t\t\t\tMouseManager._isTouchRespond=false;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 'mouseup':\r\n\t\t\t\t\t_this._isLeftMouse=evt.button===0;\r\n\t\t\t\t\t_this.initEvent(evt);\r\n\t\t\t\t\t_this.check(_this._stage,_this.mouseX,_this.mouseY,_this.onMouseUp);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 'mousemove':\r\n\t\t\t\t\tif ((Math.abs(this._prePoint.x-evt.clientX)+Math.abs(this._prePoint.y-evt.clientY))>=this.mouseMoveAccuracy){\r\n\t\t\t\t\t\tthis._prePoint.x=evt.clientX;\r\n\t\t\t\t\t\tthis._prePoint.y=evt.clientY;\r\n\t\t\t\t\t\t_this.initEvent(evt);\r\n\t\t\t\t\t\t_this.check(_this._stage,_this.mouseX,_this.mouseY,_this.onMouseMove);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase \"touchstart\":\r\n\t\t\t\t\tMouseManager._isTouchRespond=true;\r\n\t\t\t\t\t_this._isLeftMouse=true;\r\n\t\t\t\t\tvar touches=evt.changedTouches;\r\n\t\t\t\t\tfor (j=0,n=touches.length;j < n;j++){\r\n\t\t\t\t\t\ttouch=touches[j];\r\n\t\t\t\t\t\tif (MouseManager.multiTouchEnabled || isNaN(this._curTouchID)){\r\n\t\t\t\t\t\t\tthis._curTouchID=touch.identifier;\r\n\t\t\t\t\t\t\tif (this._id % 200===0)this._touchIDs={};\r\n\t\t\t\t\t\t\tthis._touchIDs[touch.identifier]=this._id++;\r\n\t\t\t\t\t\t\t_this.initEvent(touch,evt);\r\n\t\t\t\t\t\t\t_this.check(_this._stage,_this.mouseX,_this.mouseY,_this.onMouseDown);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase \"touchend\":\r\n\t\t\t\tcase \"touchcancel\":\r\n\t\t\t\t\tMouseManager._isTouchRespond=true;\r\n\t\t\t\t\t_this._isLeftMouse=true;\r\n\t\t\t\t\tvar touchends=evt.changedTouches;\r\n\t\t\t\t\tfor (j=0,n=touchends.length;j < n;j++){\r\n\t\t\t\t\t\ttouch=touchends[j];\r\n\t\t\t\t\t\tif (MouseManager.multiTouchEnabled || touch.identifier==this._curTouchID){\r\n\t\t\t\t\t\t\tthis._curTouchID=NaN;\r\n\t\t\t\t\t\t\t_this.initEvent(touch,evt);\r\n\t\t\t\t\t\t\tvar isChecked=false;\r\n\t\t\t\t\t\t\tisChecked=_this.check(_this._stage,_this.mouseX,_this.mouseY,_this.onMouseUp);\r\n\t\t\t\t\t\t\tif (!isChecked){\r\n\t\t\t\t\t\t\t\t_this.onMouseUp(null);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase \"touchmove\":;\r\n\t\t\t\t\tvar touchemoves=evt.changedTouches;\r\n\t\t\t\t\tfor (j=0,n=touchemoves.length;j < n;j++){\r\n\t\t\t\t\t\ttouch=touchemoves[j];\r\n\t\t\t\t\t\tif (MouseManager.multiTouchEnabled || touch.identifier==this._curTouchID){\r\n\t\t\t\t\t\t\t_this.initEvent(touch,evt);\r\n\t\t\t\t\t\t\t_this.check(_this._stage,_this.mouseX,_this.mouseY,_this.onMouseMove);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase \"wheel\":\r\n\t\t\t\tcase \"mousewheel\":\r\n\t\t\t\tcase \"DOMMouseScroll\":\r\n\t\t\t\t\t_this.checkMouseWheel(evt);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase \"mouseout\":\r\n\t\t\t\t\tTouchManager.I.stageMouseOut();\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase \"mouseover\":\r\n\t\t\t\t\t_this._stage.event(/*laya.events.Event.MOUSE_OVER*/\"mouseover\",_this._event.setTo(/*laya.events.Event.MOUSE_OVER*/\"mouseover\",_this._stage,_this._stage));\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\ti++;\r\n\t\t}\r\n\t\tthis._eventList.length=0;\r\n\t}\r\n\r\n\tMouseManager.enabled=true;\r\n\tMouseManager.multiTouchEnabled=true;\r\n\tMouseManager._isTouchRespond=false;\r\n\tMouseManager._isFirstTouch=true;\r\n\t__static(MouseManager,\r\n\t['instance',function(){return this.instance=new MouseManager();}\r\n\t]);\r\n\treturn MouseManager;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*Touch事件管理类，处理多点触控下的鼠标事件\r\n*/\r\n//class laya.events.TouchManager\r\nvar TouchManager=(function(){\r\n\tfunction TouchManager(){\r\n\t\t/**\r\n\t\t*当前over的touch表\r\n\t\t*/\r\n\t\tthis.preOvers=[];\r\n\t\t/**\r\n\t\t*当前down的touch表\r\n\t\t*/\r\n\t\tthis.preDowns=[];\r\n\t\tthis.preRightDowns=[];\r\n\t\t/**\r\n\t\t*是否启用\r\n\t\t*/\r\n\t\tthis.enable=true;\r\n\t\tthis._lastClickTime=0;\r\n\t\tthis._event=new Event();\r\n\t}\r\n\r\n\t__class(TouchManager,'laya.events.TouchManager');\r\n\tvar __proto=TouchManager.prototype;\r\n\t__proto._clearTempArrs=function(){\r\n\t\tTouchManager._oldArr.length=0;\r\n\t\tTouchManager._newArr.length=0;\r\n\t\tTouchManager._tEleArr.length=0;\r\n\t}\r\n\r\n\t/**\r\n\t*从touch表里查找对应touchID的数据\r\n\t*@param touchID touch ID\r\n\t*@param arr touch表\r\n\t*@return\r\n\t*\r\n\t*/\r\n\t__proto.getTouchFromArr=function(touchID,arr){\r\n\t\tvar i=0,len=0;\r\n\t\tlen=arr.length;\r\n\t\tvar tTouchO;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\ttTouchO=arr[i];\r\n\t\t\tif (tTouchO.id==touchID){\r\n\t\t\t\treturn tTouchO;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*从touch表里移除一个元素\r\n\t*@param touchID touch ID\r\n\t*@param arr touch表\r\n\t*\r\n\t*/\r\n\t__proto.removeTouchFromArr=function(touchID,arr){\r\n\t\tvar i=0;\r\n\t\tfor (i=arr.length-1;i >=0;i--){\r\n\t\t\tif (arr[i].id==touchID){\r\n\t\t\t\tarr.splice(i,1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*创建一个touch数据\r\n\t*@param ele 当前的根节点\r\n\t*@param touchID touchID\r\n\t*@return\r\n\t*\r\n\t*/\r\n\t__proto.createTouchO=function(ele,touchID){\r\n\t\tvar rst;\r\n\t\trst=Pool.getItem(\"TouchData\")|| {};\r\n\t\trst.id=touchID;\r\n\t\trst.tar=ele;\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t/**\r\n\t*处理touchStart\r\n\t*@param ele 根节点\r\n\t*@param touchID touchID\r\n\t*@param isLeft （可选）是否为左键\r\n\t*/\r\n\t__proto.onMouseDown=function(ele,touchID,isLeft){\r\n\t\t(isLeft===void 0)&& (isLeft=false);\r\n\t\tif (!this.enable)\r\n\t\t\treturn;\r\n\t\tvar preO;\r\n\t\tvar tO;\r\n\t\tvar arrs;\r\n\t\tpreO=this.getTouchFromArr(touchID,this.preOvers);\r\n\t\tarrs=this.getEles(ele,null,TouchManager._tEleArr);\r\n\t\tif (!preO){\r\n\t\t\ttO=this.createTouchO(ele,touchID);\r\n\t\t\tthis.preOvers.push(tO);\r\n\t\t\t}else {\r\n\t\t\tpreO.tar=ele;\r\n\t\t}\r\n\t\tif (Browser.onMobile)\r\n\t\t\tthis.sendEvents(arrs,/*laya.events.Event.MOUSE_OVER*/\"mouseover\",touchID);\r\n\t\tvar preDowns;\r\n\t\tpreDowns=isLeft ? this.preDowns :this.preRightDowns;\r\n\t\tpreO=this.getTouchFromArr(touchID,preDowns);\r\n\t\tif (!preO){\r\n\t\t\ttO=this.createTouchO(ele,touchID);\r\n\t\t\tpreDowns.push(tO);\r\n\t\t\t}else {\r\n\t\t\tpreO.tar=ele;\r\n\t\t}\r\n\t\tthis.sendEvents(arrs,isLeft ? /*laya.events.Event.MOUSE_DOWN*/\"mousedown\" :/*laya.events.Event.RIGHT_MOUSE_DOWN*/\"rightmousedown\",touchID);\r\n\t\tthis._clearTempArrs();\r\n\t}\r\n\r\n\t/**\r\n\t*派发事件。\r\n\t*@param eles 对象列表。\r\n\t*@param type 事件类型。\r\n\t*@param touchID （可选）touchID，默认为0。\r\n\t*/\r\n\t__proto.sendEvents=function(eles,type,touchID){\r\n\t\t(touchID===void 0)&& (touchID=0);\r\n\t\tvar i=0,len=0;\r\n\t\tlen=eles.length;\r\n\t\tthis._event._stoped=false;\r\n\t\tvar _target;\r\n\t\t_target=eles[0];\r\n\t\tvar tE;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\ttE=eles[i];\r\n\t\t\tif (tE.destroyed)return;\r\n\t\t\ttE.event(type,this._event.setTo(type,tE,_target));\r\n\t\t\tif (this._event._stoped)\r\n\t\t\t\tbreak ;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*获取对象列表。\r\n\t*@param start 起始节点。\r\n\t*@param end 结束节点。\r\n\t*@param rst 返回值。如果此值不为空，则将其赋值为计算结果，从而避免创建新数组；如果此值为空，则创建新数组返回。\r\n\t*@return Array 返回节点列表。\r\n\t*/\r\n\t__proto.getEles=function(start,end,rst){\r\n\t\tif (!rst){\r\n\t\t\trst=[];\r\n\t\t\t}else {\r\n\t\t\trst.length=0;\r\n\t\t}\r\n\t\twhile (start && start !=end){\r\n\t\t\trst.push(start);\r\n\t\t\tstart=start.parent;\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t/**\r\n\t*touchMove时处理out事件和over时间。\r\n\t*@param eleNew 新的根节点。\r\n\t*@param elePre 旧的根节点。\r\n\t*@param touchID （可选）touchID，默认为0。\r\n\t*/\r\n\t__proto.checkMouseOutAndOverOfMove=function(eleNew,elePre,touchID){\r\n\t\t(touchID===void 0)&& (touchID=0);\r\n\t\tif (elePre==eleNew)\r\n\t\t\treturn;\r\n\t\tvar tar;\r\n\t\tvar arrs;\r\n\t\tvar i=0,len=0;\r\n\t\tif (elePre.contains(eleNew)){\r\n\t\t\tarrs=this.getEles(eleNew,elePre,TouchManager._tEleArr);\r\n\t\t\tthis.sendEvents(arrs,/*laya.events.Event.MOUSE_OVER*/\"mouseover\",touchID);\r\n\t\t\t}else if (eleNew.contains(elePre)){\r\n\t\t\tarrs=this.getEles(elePre,eleNew,TouchManager._tEleArr);\r\n\t\t\tthis.sendEvents(arrs,/*laya.events.Event.MOUSE_OUT*/\"mouseout\",touchID);\r\n\t\t\t}else {\r\n\t\t\tarrs=TouchManager._tEleArr;\r\n\t\t\tarrs.length=0;\r\n\t\t\tvar oldArr;\r\n\t\t\toldArr=this.getEles(elePre,null,TouchManager._oldArr);\r\n\t\t\tvar newArr;\r\n\t\t\tnewArr=this.getEles(eleNew,null,TouchManager._newArr);\r\n\t\t\tlen=oldArr.length;\r\n\t\t\tvar tIndex=0;\r\n\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\ttar=oldArr[i];\r\n\t\t\t\ttIndex=newArr.indexOf(tar);\r\n\t\t\t\tif (tIndex >=0){\r\n\t\t\t\t\tnewArr.splice(tIndex,newArr.length-tIndex);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tarrs.push(tar);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (arrs.length > 0){\r\n\t\t\t\tthis.sendEvents(arrs,/*laya.events.Event.MOUSE_OUT*/\"mouseout\",touchID);\r\n\t\t\t}\r\n\t\t\tif (newArr.length > 0){\r\n\t\t\t\tthis.sendEvents(newArr,/*laya.events.Event.MOUSE_OVER*/\"mouseover\",touchID);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*处理TouchMove事件\r\n\t*@param ele 根节点\r\n\t*@param touchID touchID\r\n\t*\r\n\t*/\r\n\t__proto.onMouseMove=function(ele,touchID){\r\n\t\tif (!this.enable)\r\n\t\t\treturn;\r\n\t\tvar preO;\r\n\t\tpreO=this.getTouchFromArr(touchID,this.preOvers);\r\n\t\tvar arrs;\r\n\t\tvar tO;\r\n\t\tif (!preO){\r\n\t\t\tarrs=this.getEles(ele,null,TouchManager._tEleArr);\r\n\t\t\tthis.sendEvents(arrs,/*laya.events.Event.MOUSE_OVER*/\"mouseover\",touchID);\r\n\t\t\tthis.preOvers.push(this.createTouchO(ele,touchID));\r\n\t\t\t}else {\r\n\t\t\tthis.checkMouseOutAndOverOfMove(ele,preO.tar);\r\n\t\t\tpreO.tar=ele;\r\n\t\t\tarrs=this.getEles(ele,null,TouchManager._tEleArr);\r\n\t\t}\r\n\t\tthis.sendEvents(arrs,/*laya.events.Event.MOUSE_MOVE*/\"mousemove\",touchID);\r\n\t\tthis._clearTempArrs();\r\n\t}\r\n\r\n\t__proto.getLastOvers=function(){\r\n\t\tTouchManager._tEleArr.length=0;\r\n\t\tif (this.preOvers.length > 0 && this.preOvers[0].tar){\r\n\t\t\treturn this.getEles(this.preOvers[0].tar,null,TouchManager._tEleArr);\r\n\t\t}\r\n\t\tTouchManager._tEleArr.push(Laya.stage);\r\n\t\treturn TouchManager._tEleArr;\r\n\t}\r\n\r\n\t__proto.stageMouseOut=function(){\r\n\t\tvar lastOvers;\r\n\t\tlastOvers=this.getLastOvers();\r\n\t\tthis.preOvers.length=0;\r\n\t\tthis.sendEvents(lastOvers,/*laya.events.Event.MOUSE_OUT*/\"mouseout\",0);\r\n\t}\r\n\r\n\t/**\r\n\t*处理TouchEnd事件\r\n\t*@param ele 根节点\r\n\t*@param touchID touchID\r\n\t*@param isLeft 是否为左键\r\n\t*/\r\n\t__proto.onMouseUp=function(ele,touchID,isLeft){\r\n\t\t(isLeft===void 0)&& (isLeft=false);\r\n\t\tif (!this.enable)\r\n\t\t\treturn;\r\n\t\tvar preO;\r\n\t\tvar tO;\r\n\t\tvar arrs;\r\n\t\tvar oldArr;\r\n\t\tvar i=0,len=0;\r\n\t\tvar tar;\r\n\t\tvar sendArr;\r\n\t\tvar onMobile=Browser.onMobile;\r\n\t\tarrs=this.getEles(ele,null,TouchManager._tEleArr);\r\n\t\tthis.sendEvents(arrs,isLeft ? /*laya.events.Event.MOUSE_UP*/\"mouseup\" :/*laya.events.Event.RIGHT_MOUSE_UP*/\"rightmouseup\",touchID);\r\n\t\tvar preDowns;\r\n\t\tpreDowns=isLeft ? this.preDowns :this.preRightDowns;\r\n\t\tpreO=this.getTouchFromArr(touchID,preDowns);\r\n\t\tif (!preO){\r\n\t\t\t}else {\r\n\t\t\tvar isDouble=false;\r\n\t\t\tvar now=Browser.now();\r\n\t\t\tisDouble=now-this._lastClickTime < 300;\r\n\t\t\tthis._lastClickTime=now;\r\n\t\t\tif (ele==preO.tar){\r\n\t\t\t\tsendArr=arrs;\r\n\t\t\t\t}else {\r\n\t\t\t\toldArr=this.getEles(preO.tar,null,TouchManager._oldArr);\r\n\t\t\t\tsendArr=TouchManager._newArr;\r\n\t\t\t\tsendArr.length=0;\r\n\t\t\t\tlen=oldArr.length;\r\n\t\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\t\ttar=oldArr[i];\r\n\t\t\t\t\tif (arrs.indexOf(tar)>=0){\r\n\t\t\t\t\t\tsendArr.push(tar);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (sendArr.length > 0){\r\n\t\t\t\tthis.sendEvents(sendArr,isLeft ? /*laya.events.Event.CLICK*/\"click\" :/*laya.events.Event.RIGHT_CLICK*/\"rightclick\",touchID);\r\n\t\t\t}\r\n\t\t\tif (isLeft && isDouble){\r\n\t\t\t\tthis.sendEvents(sendArr,/*laya.events.Event.DOUBLE_CLICK*/\"doubleclick\",touchID);\r\n\t\t\t}\r\n\t\t\tthis.removeTouchFromArr(touchID,preDowns);\r\n\t\t\tpreO.tar=null;\r\n\t\t\tPool.recover(\"TouchData\",preO);\r\n\t\t}\r\n\t\tpreO=this.getTouchFromArr(touchID,this.preOvers);\r\n\t\tif (!preO){\r\n\t\t\t}else {\r\n\t\t\tif (onMobile){\r\n\t\t\t\tsendArr=this.getEles(preO.tar,null,sendArr);\r\n\t\t\t\tif (sendArr && sendArr.length > 0){\r\n\t\t\t\t\tthis.sendEvents(sendArr,/*laya.events.Event.MOUSE_OUT*/\"mouseout\",touchID);\r\n\t\t\t\t}\r\n\t\t\t\tthis.removeTouchFromArr(touchID,this.preOvers);\r\n\t\t\t\tpreO.tar=null;\r\n\t\t\t\tPool.recover(\"TouchData\",preO);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._clearTempArrs();\r\n\t}\r\n\r\n\tTouchManager._oldArr=[];\r\n\tTouchManager._newArr=[];\r\n\tTouchManager._tEleArr=[];\r\n\t__static(TouchManager,\r\n\t['I',function(){return this.I=new TouchManager();}\r\n\t]);\r\n\treturn TouchManager;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Filter</code> 是滤镜基类。\r\n*/\r\n//class laya.filters.Filter\r\nvar Filter=(function(){\r\n\tfunction Filter(){\r\n\t\t/**@private */\r\n\t\tthis._action=null;\r\n\t}\r\n\r\n\t__class(Filter,'laya.filters.Filter');\r\n\tvar __proto=Filter.prototype;\r\n\tLaya.imps(__proto,{\"laya.filters.IFilter\":true})\r\n\t/**@private */\r\n\t__proto.callNative=function(sp){}\r\n\t/**@private 滤镜类型。*/\r\n\t__getset(0,__proto,'type',function(){return-1});\r\n\t/**@private 滤镜动作。*/\r\n\t__getset(0,__proto,'action',function(){return this._action });\r\n\tFilter.BLUR=0x10;\r\n\tFilter.COLOR=0x20;\r\n\tFilter.GLOW=0x08;\r\n\tFilter._filterStart=null;\r\n\tFilter._filterEnd=null;\r\n\tFilter._EndTarget=null;\r\n\tFilter._recycleScope=null;\r\n\tFilter._filter=null;\r\n\tFilter._useSrc=null;\r\n\tFilter._endSrc=null;\r\n\tFilter._useOut=null;\r\n\tFilter._endOut=null;\r\n\treturn Filter;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*<code>ColorFilterAction</code> 是一个颜色滤镜应用类。\r\n*/\r\n//class laya.filters.ColorFilterAction\r\nvar ColorFilterAction=(function(){\r\n\tfunction ColorFilterAction(){\r\n\t\tthis.data=null;\r\n\t}\r\n\r\n\t__class(ColorFilterAction,'laya.filters.ColorFilterAction');\r\n\tvar __proto=ColorFilterAction.prototype;\r\n\tLaya.imps(__proto,{\"laya.filters.IFilterAction\":true})\r\n\t/**\r\n\t*给指定的对象应用颜色滤镜。\r\n\t*@param srcCanvas 需要应用画布对象。\r\n\t*@return 应用了滤镜后的画布对象。\r\n\t*/\r\n\t__proto.apply=function(srcCanvas){\r\n\t\tvar ctx=srcCanvas.ctx.ctx;\r\n\t\tvar canvas=srcCanvas.ctx.ctx.canvas;\r\n\t\tif (canvas.width==0 || canvas.height==0)return canvas;\r\n\t\tvar imgdata=ctx.getImageData(0,0,canvas.width,canvas.height);\r\n\t\tvar data=imgdata.data;\r\n\t\tvar nData;\r\n\t\tfor (var i=0,n=data.length;i < n;i+=4){\r\n\t\t\tnData=this.getColor(data[i],data[i+1],data[i+2],data[i+3]);\r\n\t\t\tif (data[i+3]==0)continue ;\r\n\t\t\tdata[i]=nData[0];\r\n\t\t\tdata[i+1]=nData[1];\r\n\t\t\tdata[i+2]=nData[2];\r\n\t\t\tdata[i+3]=nData[3];\r\n\t\t}\r\n\t\tctx.putImageData(imgdata,0,0);\r\n\t\treturn srcCanvas;\r\n\t}\r\n\r\n\t__proto.getColor=function(red,green,blue,alpha){\r\n\t\tvar rst=[];\r\n\t\tif (this.data._mat && this.data._alpha){\r\n\t\t\tvar mat=this.data._mat;\r\n\t\t\tvar tempAlpha=this.data._alpha;\r\n\t\t\trst[0]=mat[0] *red+mat[1] *green+mat[2] *blue+mat[3] *alpha+tempAlpha[0];\r\n\t\t\trst[1]=mat[4] *red+mat[5] *green+mat[6] *blue+mat[7] *alpha+tempAlpha[1];\r\n\t\t\trst[2]=mat[8] *red+mat[9] *green+mat[10] *blue+mat[11] *alpha+tempAlpha[2];\r\n\t\t\trst[3]=mat[12] *red+mat[13] *green+mat[14] *blue+mat[15] *alpha+tempAlpha[3];\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\treturn ColorFilterAction;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.maths.Arith\r\nvar Arith=(function(){\r\n\tfunction Arith(){}\r\n\t__class(Arith,'laya.maths.Arith');\r\n\tArith.formatR=function(r){\r\n\t\tif (r > Math.PI)r-=Math.PI *2;\r\n\t\tif (r <-Math.PI)r+=Math.PI *2;\r\n\t\treturn r;\r\n\t}\r\n\r\n\tArith.isPOT=function(w,h){\r\n\t\treturn (w > 0 && (w & (w-1))===0 && h > 0 && (h & (h-1))===0);\r\n\t}\r\n\r\n\tArith.setMatToArray=function(mat,array){\r\n\t\tmat.a,mat.b,0,0,mat.c,mat.d,0,0,0,0,1,0,mat.tx+20,mat.ty+20,0,1\r\n\t\tarray[0]=mat.a;\r\n\t\tarray[1]=mat.b;\r\n\t\tarray[4]=mat.c;\r\n\t\tarray[5]=mat.d;\r\n\t\tarray[12]=mat.tx;\r\n\t\tarray[13]=mat.ty;\r\n\t}\r\n\r\n\treturn Arith;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*计算贝塞尔曲线的工具类。\r\n*/\r\n//class laya.maths.Bezier\r\nvar Bezier=(function(){\r\n\tfunction Bezier(){\r\n\t\t/**@private */\r\n\t\tthis._controlPoints=[new Point(),new Point(),new Point()];\r\n\t\tthis._calFun=this.getPoint2;\r\n\t}\r\n\r\n\t__class(Bezier,'laya.maths.Bezier');\r\n\tvar __proto=Bezier.prototype;\r\n\t/**@private */\r\n\t__proto._switchPoint=function(x,y){\r\n\t\tvar tPoint=this._controlPoints.shift();\r\n\t\ttPoint.setTo(x,y);\r\n\t\tthis._controlPoints.push(tPoint);\r\n\t}\r\n\r\n\t/**\r\n\t*计算二次贝塞尔点。\r\n\t*@param t\r\n\t*@param rst\r\n\t*\r\n\t*/\r\n\t__proto.getPoint2=function(t,rst){\r\n\t\tvar p1=this._controlPoints[0];\r\n\t\tvar p2=this._controlPoints[1];\r\n\t\tvar p3=this._controlPoints[2];\r\n\t\tvar lineX=Math.pow((1-t),2)*p1.x+2 *t *(1-t)*p2.x+Math.pow(t,2)*p3.x;\r\n\t\tvar lineY=Math.pow((1-t),2)*p1.y+2 *t *(1-t)*p2.y+Math.pow(t,2)*p3.y;\r\n\t\trst.push(lineX,lineY);\r\n\t}\r\n\r\n\t/**\r\n\t*计算三次贝塞尔点\r\n\t*@param t\r\n\t*@param rst\r\n\t*\r\n\t*/\r\n\t__proto.getPoint3=function(t,rst){\r\n\t\tvar p1=this._controlPoints[0];\r\n\t\tvar p2=this._controlPoints[1];\r\n\t\tvar p3=this._controlPoints[2];\r\n\t\tvar p4=this._controlPoints[3];\r\n\t\tvar lineX=Math.pow((1-t),3)*p1.x+3 *p2.x *t *(1-t)*(1-t)+3 *p3.x *t *t *(1-t)+p4.x *Math.pow(t,3);\r\n\t\tvar lineY=Math.pow((1-t),3)*p1.y+3 *p2.y *t *(1-t)*(1-t)+3 *p3.y *t *t *(1-t)+p4.y *Math.pow(t,3);\r\n\t\trst.push(lineX,lineY);\r\n\t}\r\n\r\n\t/**\r\n\t*计算贝塞尔点序列\r\n\t*@param count\r\n\t*@param rst\r\n\t*\r\n\t*/\r\n\t__proto.insertPoints=function(count,rst){\r\n\t\tvar i=NaN;\r\n\t\tcount=count > 0 ? count :5;\r\n\t\tvar dLen=NaN;\r\n\t\tdLen=1 / count;\r\n\t\tfor (i=0;i <=1;i+=dLen){\r\n\t\t\tthis._calFun(i,rst);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*获取贝塞尔曲线上的点。\r\n\t*@param pList 控制点[x0,y0,x1,y1...]\r\n\t*@param inSertCount 每次曲线的插值数量\r\n\t*@return\r\n\t*\r\n\t*/\r\n\t__proto.getBezierPoints=function(pList,inSertCount,count){\r\n\t\t(inSertCount===void 0)&& (inSertCount=5);\r\n\t\t(count===void 0)&& (count=2);\r\n\t\tvar i=0,len=0;\r\n\t\tlen=pList.length;\r\n\t\tif (len < (count+1)*2)return [];\r\n\t\tvar rst;\r\n\t\trst=[];\r\n\t\tswitch (count){\r\n\t\t\tcase 2:\r\n\t\t\t\tthis._calFun=this.getPoint2;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 3:\r\n\t\t\t\tthis._calFun=this.getPoint3;\r\n\t\t\t\tbreak ;\r\n\t\t\tdefault :\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\twhile (this._controlPoints.length <=count){\r\n\t\t\tthis._controlPoints.push(new Point());\r\n\t\t}\r\n\t\tfor (i=0;i < count *2;i+=2){\r\n\t\t\tthis._switchPoint(pList[i],pList[i+1]);\r\n\t\t}\r\n\t\tfor (i=count *2;i < len;i+=2){\r\n\t\t\tthis._switchPoint(pList[i],pList[i+1]);\r\n\t\t\tif ((i / 2)% count==0)\r\n\t\t\t\tthis.insertPoints(inSertCount,rst);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t__static(Bezier,\r\n\t['I',function(){return this.I=new Bezier();}\r\n\t]);\r\n\treturn Bezier;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*凸包算法。\r\n*/\r\n//class laya.maths.GrahamScan\r\nvar GrahamScan=(function(){\r\n\tfunction GrahamScan(){}\r\n\t__class(GrahamScan,'laya.maths.GrahamScan');\r\n\tGrahamScan.multiply=function(p1,p2,p0){\r\n\t\treturn ((p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y));\r\n\t}\r\n\r\n\tGrahamScan.dis=function(p1,p2){\r\n\t\treturn (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);\r\n\t}\r\n\r\n\tGrahamScan._getPoints=function(count,tempUse,rst){\r\n\t\t(tempUse===void 0)&& (tempUse=false);\r\n\t\tif (!GrahamScan._mPointList)GrahamScan._mPointList=[];\r\n\t\twhile (GrahamScan._mPointList.length < count)GrahamScan._mPointList.push(new Point());\r\n\t\tif (!rst)rst=[];\r\n\t\trst.length=0;\r\n\t\tif (tempUse){\r\n\t\t\tGrahamScan.getFrom(rst,GrahamScan._mPointList,count);\r\n\t\t\t}else {\r\n\t\t\tGrahamScan.getFromR(rst,GrahamScan._mPointList,count);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tGrahamScan.getFrom=function(rst,src,count){\r\n\t\tvar i=0;\r\n\t\tfor (i=0;i < count;i++){\r\n\t\t\trst.push(src[i]);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tGrahamScan.getFromR=function(rst,src,count){\r\n\t\tvar i=0;\r\n\t\tfor (i=0;i < count;i++){\r\n\t\t\trst.push(src.pop());\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tGrahamScan.pListToPointList=function(pList,tempUse){\r\n\t\t(tempUse===void 0)&& (tempUse=false);\r\n\t\tvar i=0,len=pList.length / 2,rst=GrahamScan._getPoints(len,tempUse,GrahamScan._tempPointList);\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\trst[i].setTo(pList[i+i],pList[i+i+1]);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tGrahamScan.pointListToPlist=function(pointList){\r\n\t\tvar i=0,len=pointList.length,rst=GrahamScan._temPList,tPoint;\r\n\t\trst.length=0;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\ttPoint=pointList[i];\r\n\t\t\trst.push(tPoint.x,tPoint.y);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tGrahamScan.scanPList=function(pList){\r\n\t\treturn Utils.copyArray(pList,GrahamScan.pointListToPlist(GrahamScan.scan(GrahamScan.pListToPointList(pList,true))));\r\n\t}\r\n\r\n\tGrahamScan.scan=function(PointSet){\r\n\t\tvar i=0,j=0,k=0,top=2,tmp,n=PointSet.length,ch;\r\n\t\tvar _tmpDic={};\r\n\t\tvar key;\r\n\t\tch=GrahamScan._temArr;\r\n\t\tch.length=0;\r\n\t\tn=PointSet.length;\r\n\t\tfor (i=n-1;i >=0;i--){\r\n\t\t\ttmp=PointSet[i];\r\n\t\t\tkey=tmp.x+\"_\"+tmp.y;\r\n\t\t\tif (!_tmpDic.hasOwnProperty(key)){\r\n\t\t\t\t_tmpDic[key]=true;\r\n\t\t\t\tch.push(tmp);\r\n\t\t\t}\r\n\t\t}\r\n\t\tn=ch.length;\r\n\t\tUtils.copyArray(PointSet,ch);\r\n\t\tfor (i=1;i < n;i++)\r\n\t\tif ((PointSet[i].y < PointSet[k].y)|| ((PointSet[i].y==PointSet[k].y)&& (PointSet[i].x < PointSet[k].x)))\r\n\t\t\tk=i;\r\n\t\ttmp=PointSet[0];\r\n\t\tPointSet[0]=PointSet[k];\r\n\t\tPointSet[k]=tmp;\r\n\t\tfor (i=1;i < n-1;i++){\r\n\t\t\tk=i;\r\n\t\t\tfor (j=i+1;j < n;j++)\r\n\t\t\tif ((GrahamScan.multiply(PointSet[j],PointSet[k],PointSet[0])> 0)|| ((GrahamScan.multiply(PointSet[j],PointSet[k],PointSet[0])==0)&& (GrahamScan.dis(PointSet[0],PointSet[j])< GrahamScan.dis(PointSet[0],PointSet[k]))))\r\n\t\t\t\tk=j;\r\n\t\t\ttmp=PointSet[i];\r\n\t\t\tPointSet[i]=PointSet[k];\r\n\t\t\tPointSet[k]=tmp;\r\n\t\t}\r\n\t\tch=GrahamScan._temArr;\r\n\t\tch.length=0;\r\n\t\tif (PointSet.length < 3){\r\n\t\t\treturn Utils.copyArray(ch,PointSet);\r\n\t\t}\r\n\t\tch.push(PointSet[0],PointSet[1],PointSet[2]);\r\n\t\tfor (i=3;i < n;i++){\r\n\t\t\twhile (ch.length >=2 && GrahamScan.multiply(PointSet[i],ch[ch.length-1],ch[ch.length-2])>=0)ch.pop();\r\n\t\t\tPointSet[i] && ch.push(PointSet[i]);\r\n\t\t}\r\n\t\treturn ch;\r\n\t}\r\n\r\n\tGrahamScan._mPointList=null;\r\n\tGrahamScan._tempPointList=[];\r\n\tGrahamScan._temPList=[];\r\n\tGrahamScan._temArr=[];\r\n\treturn GrahamScan;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*<code>MathUtil</code> 是一个数据处理工具类。\r\n*/\r\n//class laya.maths.MathUtil\r\nvar MathUtil=(function(){\r\n\tfunction MathUtil(){}\r\n\t__class(MathUtil,'laya.maths.MathUtil');\r\n\tMathUtil.subtractVector3=function(l,r,o){\r\n\t\to[0]=l[0]-r[0];\r\n\t\to[1]=l[1]-r[1];\r\n\t\to[2]=l[2]-r[2];\r\n\t}\r\n\r\n\tMathUtil.lerp=function(left,right,amount){\r\n\t\treturn left *(1-amount)+right *amount;\r\n\t}\r\n\r\n\tMathUtil.scaleVector3=function(f,b,e){\r\n\t\te[0]=f[0] *b;\r\n\t\te[1]=f[1] *b;\r\n\t\te[2]=f[2] *b;\r\n\t}\r\n\r\n\tMathUtil.lerpVector3=function(l,r,t,o){\r\n\t\tvar ax=l[0],ay=l[1],az=l[2];\r\n\t\to[0]=ax+t *(r[0]-ax);\r\n\t\to[1]=ay+t *(r[1]-ay);\r\n\t\to[2]=az+t *(r[2]-az);\r\n\t}\r\n\r\n\tMathUtil.lerpVector4=function(l,r,t,o){\r\n\t\tvar ax=l[0],ay=l[1],az=l[2],aw=l[3];\r\n\t\to[0]=ax+t *(r[0]-ax);\r\n\t\to[1]=ay+t *(r[1]-ay);\r\n\t\to[2]=az+t *(r[2]-az);\r\n\t\to[3]=aw+t *(r[3]-aw);\r\n\t}\r\n\r\n\tMathUtil.slerpQuaternionArray=function(a,Offset1,b,Offset2,t,out,Offset3){\r\n\t\tvar ax=a[Offset1+0],ay=a[Offset1+1],az=a[Offset1+2],aw=a[Offset1+3],bx=b[Offset2+0],by=b[Offset2+1],bz=b[Offset2+2],bw=b[Offset2+3];\r\n\t\tvar omega,cosom,sinom,scale0,scale1;\r\n\t\tcosom=ax *bx+ay *by+az *bz+aw *bw;\r\n\t\tif (cosom < 0.0){\r\n\t\t\tcosom=-cosom;\r\n\t\t\tbx=-bx;\r\n\t\t\tby=-by;\r\n\t\t\tbz=-bz;\r\n\t\t\tbw=-bw;\r\n\t\t}\r\n\t\tif ((1.0-cosom)> 0.000001){\r\n\t\t\tomega=Math.acos(cosom);\r\n\t\t\tsinom=Math.sin(omega);\r\n\t\t\tscale0=Math.sin((1.0-t)*omega)/ sinom;\r\n\t\t\tscale1=Math.sin(t *omega)/ sinom;\r\n\t\t\t}else {\r\n\t\t\tscale0=1.0-t;\r\n\t\t\tscale1=t;\r\n\t\t}\r\n\t\tout[Offset3+0]=scale0 *ax+scale1 *bx;\r\n\t\tout[Offset3+1]=scale0 *ay+scale1 *by;\r\n\t\tout[Offset3+2]=scale0 *az+scale1 *bz;\r\n\t\tout[Offset3+3]=scale0 *aw+scale1 *bw;\r\n\t\treturn out;\r\n\t}\r\n\r\n\tMathUtil.getRotation=function(x0,y0,x1,y1){\r\n\t\treturn Math.atan2(y1-y0,x1-x0)/ Math.PI *180;\r\n\t}\r\n\r\n\tMathUtil.sortBigFirst=function(a,b){\r\n\t\tif (a==b)\r\n\t\t\treturn 0;\r\n\t\treturn b > a ? 1 :-1;\r\n\t}\r\n\r\n\tMathUtil.sortSmallFirst=function(a,b){\r\n\t\tif (a==b)\r\n\t\t\treturn 0;\r\n\t\treturn b > a ?-1 :1;\r\n\t}\r\n\r\n\tMathUtil.sortNumBigFirst=function(a,b){\r\n\t\treturn parseFloat(b)-parseFloat(a);\r\n\t}\r\n\r\n\tMathUtil.sortNumSmallFirst=function(a,b){\r\n\t\treturn parseFloat(a)-parseFloat(b);\r\n\t}\r\n\r\n\tMathUtil.sortByKey=function(key,bigFirst,forceNum){\r\n\t\t(bigFirst===void 0)&& (bigFirst=false);\r\n\t\t(forceNum===void 0)&& (forceNum=true);\r\n\t\tvar _sortFun;\r\n\t\tif (bigFirst){\r\n\t\t\t_sortFun=forceNum ? MathUtil.sortNumBigFirst :MathUtil.sortBigFirst;\r\n\t\t\t}else {\r\n\t\t\t_sortFun=forceNum ? MathUtil.sortNumSmallFirst :MathUtil.sortSmallFirst;\r\n\t\t}\r\n\t\treturn function (a,b){\r\n\t\t\treturn _sortFun(a[key],b[key]);\r\n\t\t}\r\n\t}\r\n\r\n\treturn MathUtil;\r\n})()\r\n\r\n\r\n/**\r\n*<p> <code>Matrix</code> 类表示一个转换矩阵，它确定如何将点从一个坐标空间映射到另一个坐标空间。</p>\r\n*<p>您可以对一个显示对象执行不同的图形转换，方法是设置 Matrix 对象的属性，将该 Matrix 对象应用于 Transform 对象的 matrix 属性，然后应用该 Transform 对象作为显示对象的 transform 属性。这些转换函数包括平移（x 和 y 重新定位）、旋转、缩放和倾斜。</p>\r\n*/\r\n//class laya.maths.Matrix\r\nvar Matrix=(function(){\r\n\tfunction Matrix(a,b,c,d,tx,ty){\r\n\t\t/**缩放或旋转图像时影响像素沿 x 轴定位的值。*/\r\n\t\t//this.a=NaN;\r\n\t\t/**旋转或倾斜图像时影响像素沿 y 轴定位的值。*/\r\n\t\t//this.b=NaN;\r\n\t\t/**旋转或倾斜图像时影响像素沿 x 轴定位的值。*/\r\n\t\t//this.c=NaN;\r\n\t\t/**缩放或旋转图像时影响像素沿 y 轴定位的值。*/\r\n\t\t//this.d=NaN;\r\n\t\t/**沿 x 轴平移每个点的距离。*/\r\n\t\t//this.tx=NaN;\r\n\t\t/**沿 y 轴平移每个点的距离。*/\r\n\t\t//this.ty=NaN;\r\n\t\t/**@private 表示此对象是否在对象池中。*/\r\n\t\tthis.inPool=false;\r\n\t\t/**@private 是否有改变矩阵的值。*/\r\n\t\tthis.bTransform=false;\r\n\t\t(a===void 0)&& (a=1);\r\n\t\t(b===void 0)&& (b=0);\r\n\t\t(c===void 0)&& (c=0);\r\n\t\t(d===void 0)&& (d=1);\r\n\t\t(tx===void 0)&& (tx=0);\r\n\t\t(ty===void 0)&& (ty=0);\r\n\t\tthis.a=a;\r\n\t\tthis.b=b;\r\n\t\tthis.c=c;\r\n\t\tthis.d=d;\r\n\t\tthis.tx=tx;\r\n\t\tthis.ty=ty;\r\n\t\tthis._checkTransform();\r\n\t}\r\n\r\n\t__class(Matrix,'laya.maths.Matrix');\r\n\tvar __proto=Matrix.prototype;\r\n\t/**\r\n\t*将本矩阵设置为单位矩阵。\r\n\t*@return 返回当前矩形。\r\n\t*/\r\n\t__proto.identity=function(){\r\n\t\tthis.a=this.d=1;\r\n\t\tthis.b=this.tx=this.ty=this.c=0;\r\n\t\tthis.bTransform=false;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._checkTransform=function(){\r\n\t\treturn this.bTransform=(this.a!==1 || this.b!==0 || this.c!==0 || this.d!==1);\r\n\t}\r\n\r\n\t/**\r\n\t*设置沿 x 、y 轴平移每个点的距离。\r\n\t*@param x 沿 x 轴平移每个点的距离。\r\n\t*@param y 沿 y 轴平移每个点的距离。\r\n\t*@return 返回对象本身\r\n\t*/\r\n\t__proto.setTranslate=function(x,y){\r\n\t\tthis.tx=x;\r\n\t\tthis.ty=y;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*沿 x 和 y 轴平移矩阵，平移的变化量由 x 和 y 参数指定。\r\n\t*@param x 沿 x 轴向右移动的量（以像素为单位）。\r\n\t*@param y 沿 y 轴向下移动的量（以像素为单位）。\r\n\t*@return 返回此矩形对象。\r\n\t*/\r\n\t__proto.translate=function(x,y){\r\n\t\tthis.tx+=x;\r\n\t\tthis.ty+=y;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*对矩阵应用缩放转换。\r\n\t*@param x 用于沿 x 轴缩放对象的乘数。\r\n\t*@param y 用于沿 y 轴缩放对象的乘数。\r\n\t*/\r\n\t__proto.scale=function(x,y){\r\n\t\tthis.a *=x;\r\n\t\tthis.d *=y;\r\n\t\tthis.c *=x;\r\n\t\tthis.b *=y;\r\n\t\tthis.tx *=x;\r\n\t\tthis.ty *=y;\r\n\t\tthis.bTransform=true;\r\n\t}\r\n\r\n\t/**\r\n\t*对 Matrix 对象应用旋转转换。\r\n\t*@param angle 以弧度为单位的旋转角度。\r\n\t*/\r\n\t__proto.rotate=function(angle){\r\n\t\tvar cos=Math.cos(angle);\r\n\t\tvar sin=Math.sin(angle);\r\n\t\tvar a1=this.a;\r\n\t\tvar c1=this.c;\r\n\t\tvar tx1=this.tx;\r\n\t\tthis.a=a1 *cos-this.b *sin;\r\n\t\tthis.b=a1 *sin+this.b *cos;\r\n\t\tthis.c=c1 *cos-this.d *sin;\r\n\t\tthis.d=c1 *sin+this.d *cos;\r\n\t\tthis.tx=tx1 *cos-this.ty *sin;\r\n\t\tthis.ty=tx1 *sin+this.ty *cos;\r\n\t\tthis.bTransform=true;\r\n\t}\r\n\r\n\t/**\r\n\t*对 Matrix 对象应用倾斜转换。\r\n\t*@param x 沿着 X 轴的 2D 倾斜弧度。\r\n\t*@param y 沿着 Y 轴的 2D 倾斜弧度。\r\n\t*@return 当前 Matrix 对象。\r\n\t*/\r\n\t__proto.skew=function(x,y){\r\n\t\tvar tanX=Math.tan(x);\r\n\t\tvar tanY=Math.tan(y);\r\n\t\tvar a1=this.a;\r\n\t\tvar b1=this.b;\r\n\t\tthis.a+=tanY *this.c;\r\n\t\tthis.b+=tanY *this.d;\r\n\t\tthis.c+=tanX *a1;\r\n\t\tthis.d+=tanX *b1;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*对指定的点应用当前矩阵的逆转化并返回此点。\r\n\t*@param out 待转化的点 Point 对象。\r\n\t*@return 返回out\r\n\t*/\r\n\t__proto.invertTransformPoint=function(out){\r\n\t\tvar a1=this.a;\r\n\t\tvar b1=this.b;\r\n\t\tvar c1=this.c;\r\n\t\tvar d1=this.d;\r\n\t\tvar tx1=this.tx;\r\n\t\tvar n=a1 *d1-b1 *c1;\r\n\t\tvar a2=d1 / n;\r\n\t\tvar b2=-b1 / n;\r\n\t\tvar c2=-c1 / n;\r\n\t\tvar d2=a1 / n;\r\n\t\tvar tx2=(c1 *this.ty-d1 *tx1)/ n;\r\n\t\tvar ty2=-(a1 *this.ty-b1 *tx1)/ n;\r\n\t\treturn out.setTo(a2 *out.x+c2 *out.y+tx2,b2 *out.x+d2 *out.y+ty2);\r\n\t}\r\n\r\n\t/**\r\n\t*将 Matrix 对象表示的几何转换应用于指定点。\r\n\t*@param out 用来设定输出结果的点。\r\n\t*@return 返回out\r\n\t*/\r\n\t__proto.transformPoint=function(out){\r\n\t\treturn out.setTo(this.a *out.x+this.c *out.y+this.tx,this.b *out.x+this.d *out.y+this.ty);\r\n\t}\r\n\r\n\t/**\r\n\t*将 Matrix 对象表示的几何转换应用于指定点，忽略tx、ty。\r\n\t*@param out 用来设定输出结果的点。\r\n\t*@return 返回out\r\n\t*/\r\n\t__proto.transformPointN=function(out){\r\n\t\treturn out.setTo(this.a *out.x+this.c *out.y ,this.b *out.x+this.d *out.y);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*将 Matrix 对象表示的几何转换应用于指定点。\r\n\t*@param data 点集合。\r\n\t*@param out 存储应用转化的点的列表。\r\n\t*@return 返回out数组\r\n\t*/\r\n\t__proto.transformPointArray=function(data,out){\r\n\t\tvar len=data.length;\r\n\t\tfor (var i=0;i < len;i+=2){\r\n\t\t\tvar x=data[i],y=data[i+1];\r\n\t\t\tout[i]=this.a *x+this.c *y+this.tx;\r\n\t\t\tout[i+1]=this.b *x+this.d *y+this.ty;\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*将 Matrix 对象表示的几何缩放转换应用于指定点。\r\n\t*@param data 点集合。\r\n\t*@param out 存储应用转化的点的列表。\r\n\t*@return 返回out数组\r\n\t*/\r\n\t__proto.transformPointArrayScale=function(data,out){\r\n\t\tvar len=data.length;\r\n\t\tfor (var i=0;i < len;i+=2){\r\n\t\t\tvar x=data[i],y=data[i+1];\r\n\t\t\tout[i]=this.a *x+this.c *y;\r\n\t\t\tout[i+1]=this.b *x+this.d *y;\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\t/**\r\n\t*获取 X 轴缩放值。\r\n\t*@return X 轴缩放值。\r\n\t*/\r\n\t__proto.getScaleX=function(){\r\n\t\treturn this.b===0 ? this.a :Math.sqrt(this.a *this.a+this.b *this.b);\r\n\t}\r\n\r\n\t/**\r\n\t*获取 Y 轴缩放值。\r\n\t*@return Y 轴缩放值。\r\n\t*/\r\n\t__proto.getScaleY=function(){\r\n\t\treturn this.c===0 ? this.d :Math.sqrt(this.c *this.c+this.d *this.d);\r\n\t}\r\n\r\n\t/**\r\n\t*执行原始矩阵的逆转换。\r\n\t*@return 当前矩阵对象。\r\n\t*/\r\n\t__proto.invert=function(){\r\n\t\tvar a1=this.a;\r\n\t\tvar b1=this.b;\r\n\t\tvar c1=this.c;\r\n\t\tvar d1=this.d;\r\n\t\tvar tx1=this.tx;\r\n\t\tvar n=a1 *d1-b1 *c1;\r\n\t\tthis.a=d1 / n;\r\n\t\tthis.b=-b1 / n;\r\n\t\tthis.c=-c1 / n;\r\n\t\tthis.d=a1 / n;\r\n\t\tthis.tx=(c1 *this.ty-d1 *tx1)/ n;\r\n\t\tthis.ty=-(a1 *this.ty-b1 *tx1)/ n;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*将 Matrix 的成员设置为指定值。\r\n\t*@param a 缩放或旋转图像时影响像素沿 x 轴定位的值。\r\n\t*@param b 旋转或倾斜图像时影响像素沿 y 轴定位的值。\r\n\t*@param c 旋转或倾斜图像时影响像素沿 x 轴定位的值。\r\n\t*@param d 缩放或旋转图像时影响像素沿 y 轴定位的值。\r\n\t*@param tx 沿 x 轴平移每个点的距离。\r\n\t*@param ty 沿 y 轴平移每个点的距离。\r\n\t*@return 当前矩阵对象。\r\n\t*/\r\n\t__proto.setTo=function(a,b,c,d,tx,ty){\r\n\t\tthis.a=a,this.b=b,this.c=c,this.d=d,this.tx=tx,this.ty=ty;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*将指定矩阵与当前矩阵连接，从而将这两个矩阵的几何效果有效地结合在一起。\r\n\t*@param matrix 要连接到源矩阵的矩阵。\r\n\t*@return 当前矩阵。\r\n\t*/\r\n\t__proto.concat=function(matrix){\r\n\t\tvar a=this.a;\r\n\t\tvar c=this.c;\r\n\t\tvar tx=this.tx;\r\n\t\tthis.a=a *matrix.a+this.b *matrix.c;\r\n\t\tthis.b=a *matrix.b+this.b *matrix.d;\r\n\t\tthis.c=c *matrix.a+this.d *matrix.c;\r\n\t\tthis.d=c *matrix.b+this.d *matrix.d;\r\n\t\tthis.tx=tx *matrix.a+this.ty *matrix.c+matrix.tx;\r\n\t\tthis.ty=tx *matrix.b+this.ty *matrix.d+matrix.ty;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*对矩阵应用缩放转换。反向相乘\r\n\t*@param x 用于沿 x 轴缩放对象的乘数。\r\n\t*@param y 用于沿 y 轴缩放对象的乘数。\r\n\t*/\r\n\t__proto.scaleEx=function(x,y){\r\n\t\tvar ba=this.a,bb=this.b,bc=this.c,bd=this.d;\r\n\t\tif (bb!==0 || bc!==0){\r\n\t\t\tthis.a=x *ba;\r\n\t\t\tthis.b=x *bb;\r\n\t\t\tthis.c=y *bc;\r\n\t\t\tthis.d=y *bd;\r\n\t\t\t}else {\r\n\t\t\tthis.a=x *ba;\r\n\t\t\tthis.b=0 *bd;\r\n\t\t\tthis.c=0 *ba;\r\n\t\t\tthis.d=y *bd;\r\n\t\t}\r\n\t\tthis.bTransform=true;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*对 Matrix 对象应用旋转转换。反向相乘\r\n\t*@param angle 以弧度为单位的旋转角度。\r\n\t*/\r\n\t__proto.rotateEx=function(angle){\r\n\t\tvar cos=Math.cos(angle);\r\n\t\tvar sin=Math.sin(angle);\r\n\t\tvar ba=this.a,bb=this.b,bc=this.c,bd=this.d;\r\n\t\tif (bb!==0 || bc!==0){\r\n\t\t\tthis.a=cos *ba+sin *bc;\r\n\t\t\tthis.b=cos *bb+sin *bd;\r\n\t\t\tthis.c=-sin *ba+cos *bc;\r\n\t\t\tthis.d=-sin *bb+cos *bd;\r\n\t\t\t}else {\r\n\t\t\tthis.a=cos *ba;\r\n\t\t\tthis.b=sin *bd;\r\n\t\t\tthis.c=-sin *ba;\r\n\t\t\tthis.d=cos *bd;\r\n\t\t}\r\n\t\tthis.bTransform=true;\r\n\t}\r\n\r\n\t/**\r\n\t*返回此 Matrix 对象的副本。\r\n\t*@return 与原始实例具有完全相同的属性的新 Matrix 实例。\r\n\t*/\r\n\t__proto.clone=function(){\r\n\t\tvar dec=Matrix.create();\r\n\t\tdec.a=this.a;\r\n\t\tdec.b=this.b;\r\n\t\tdec.c=this.c;\r\n\t\tdec.d=this.d;\r\n\t\tdec.tx=this.tx;\r\n\t\tdec.ty=this.ty;\r\n\t\tdec.bTransform=this.bTransform;\r\n\t\treturn dec;\r\n\t}\r\n\r\n\t/**\r\n\t*将当前 Matrix 对象中的所有矩阵数据复制到指定的 Matrix 对象中。\r\n\t*@param dec 要复制当前矩阵数据的 Matrix 对象。\r\n\t*@return 已复制当前矩阵数据的 Matrix 对象。\r\n\t*/\r\n\t__proto.copyTo=function(dec){\r\n\t\tdec.a=this.a;\r\n\t\tdec.b=this.b;\r\n\t\tdec.c=this.c;\r\n\t\tdec.d=this.d;\r\n\t\tdec.tx=this.tx;\r\n\t\tdec.ty=this.ty;\r\n\t\tdec.bTransform=this.bTransform;\r\n\t\treturn dec;\r\n\t}\r\n\r\n\t/**\r\n\t*返回列出该 Matrix 对象属性的文本值。\r\n\t*@return 一个字符串，它包含 Matrix 对象的属性值：a、b、c、d、tx 和 ty。\r\n\t*/\r\n\t__proto.toString=function(){\r\n\t\treturn this.a+\",\"+this.b+\",\"+this.c+\",\"+this.d+\",\"+this.tx+\",\"+this.ty;\r\n\t}\r\n\r\n\t/**\r\n\t*销毁此对象。\r\n\t*/\r\n\t__proto.destroy=function(){\r\n\t\tif (this.inPool)return;\r\n\t\tvar cache=Matrix._cache;\r\n\t\tthis.inPool=true;\r\n\t\tcache._length || (cache._length=0);\r\n\t\tcache[cache._length++]=this;\r\n\t\tthis.a=this.d=1;\r\n\t\tthis.b=this.c=this.tx=this.ty=0;\r\n\t\tthis.bTransform=false;\r\n\t}\r\n\r\n\tMatrix.mul=function(m1,m2,out){\r\n\t\tvar aa=m1.a,ab=m1.b,ac=m1.c,ad=m1.d,atx=m1.tx,aty=m1.ty;\r\n\t\tvar ba=m2.a,bb=m2.b,bc=m2.c,bd=m2.d,btx=m2.tx,bty=m2.ty;\r\n\t\tif (bb!==0 || bc!==0){\r\n\t\t\tout.a=aa *ba+ab *bc;\r\n\t\t\tout.b=aa *bb+ab *bd;\r\n\t\t\tout.c=ac *ba+ad *bc;\r\n\t\t\tout.d=ac *bb+ad *bd;\r\n\t\t\tout.tx=ba *atx+bc *aty+btx;\r\n\t\t\tout.ty=bb *atx+bd *aty+bty;\r\n\t\t\t}else {\r\n\t\t\tout.a=aa *ba;\r\n\t\t\tout.b=ab *bd;\r\n\t\t\tout.c=ac *ba;\r\n\t\t\tout.d=ad *bd;\r\n\t\t\tout.tx=ba *atx+btx;\r\n\t\t\tout.ty=bd *aty+bty;\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\tMatrix.mul16=function(m1,m2,out){\r\n\t\tvar aa=m1.a,ab=m1.b,ac=m1.c,ad=m1.d,atx=m1.tx,aty=m1.ty;\r\n\t\tvar ba=m2.a,bb=m2.b,bc=m2.c,bd=m2.d,btx=m2.tx,bty=m2.ty;\r\n\t\tif (bb!==0 || bc!==0){\r\n\t\t\tout[0]=aa *ba+ab *bc;\r\n\t\t\tout[1]=aa *bb+ab *bd;\r\n\t\t\tout[4]=ac *ba+ad *bc;\r\n\t\t\tout[5]=ac *bb+ad *bd;\r\n\t\t\tout[12]=ba *atx+bc *aty+btx;\r\n\t\t\tout[13]=bb *atx+bd *aty+bty;\r\n\t\t\t}else {\r\n\t\t\tout[0]=aa *ba;\r\n\t\t\tout[1]=ab *bd;\r\n\t\t\tout[4]=ac *ba;\r\n\t\t\tout[5]=ad *bd;\r\n\t\t\tout[12]=ba *atx+btx;\r\n\t\t\tout[13]=bd *aty+bty;\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\tMatrix.mulPre=function(m1,ba,bb,bc,bd,btx,bty,out){\r\n\t\tvar aa=m1.a,ab=m1.b,ac=m1.c,ad=m1.d,atx=m1.tx,aty=m1.ty;\r\n\t\tif (bb!==0 || bc!==0){\r\n\t\t\tout.a=aa *ba+ab *bc;\r\n\t\t\tout.b=aa *bb+ab *bd;\r\n\t\t\tout.c=ac *ba+ad *bc;\r\n\t\t\tout.d=ac *bb+ad *bd;\r\n\t\t\tout.tx=ba *atx+bc *aty+btx;\r\n\t\t\tout.ty=bb *atx+bd *aty+bty;\r\n\t\t\t}else {\r\n\t\t\tout.a=aa *ba;\r\n\t\t\tout.b=ab *bd;\r\n\t\t\tout.c=ac *ba;\r\n\t\t\tout.d=ad *bd;\r\n\t\t\tout.tx=ba *atx+btx;\r\n\t\t\tout.ty=bd *aty+bty;\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\tMatrix.mulPos=function(m1,aa,ab,ac,ad,atx,aty,out){\r\n\t\tvar ba=m1.a,bb=m1.b,bc=m1.c,bd=m1.d,btx=m1.tx,bty=m1.ty;\r\n\t\tif (bb!==0 || bc!==0){\r\n\t\t\tout.a=aa *ba+ab *bc;\r\n\t\t\tout.b=aa *bb+ab *bd;\r\n\t\t\tout.c=ac *ba+ad *bc;\r\n\t\t\tout.d=ac *bb+ad *bd;\r\n\t\t\tout.tx=ba *atx+bc *aty+btx;\r\n\t\t\tout.ty=bb *atx+bd *aty+bty;\r\n\t\t\t}else {\r\n\t\t\tout.a=aa *ba;\r\n\t\t\tout.b=ab *bd;\r\n\t\t\tout.c=ac *ba;\r\n\t\t\tout.d=ad *bd;\r\n\t\t\tout.tx=ba *atx+btx;\r\n\t\t\tout.ty=bd *aty+bty;\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\tMatrix.preMul=function(parent,self,out){\r\n\t\tvar pa=parent.a,pb=parent.b,pc=parent.c,pd=parent.d;\r\n\t\tvar na=self.a,nb=self.b,nc=self.c,nd=self.d,ntx=self.tx,nty=self.ty;\r\n\t\tout.a=na *pa;\r\n\t\tout.b=out.c=0;\r\n\t\tout.d=nd *pd;\r\n\t\tout.tx=ntx *pa+parent.tx;\r\n\t\tout.ty=nty *pd+parent.ty;\r\n\t\tif (nb!==0 || nc!==0 || pb!==0 || pc!==0){\r\n\t\t\tout.a+=nb *pc;\r\n\t\t\tout.d+=nc *pb;\r\n\t\t\tout.b+=na *pb+nb *pd;\r\n\t\t\tout.c+=nc *pa+nd *pc;\r\n\t\t\tout.tx+=nty *pc;\r\n\t\t\tout.ty+=ntx *pb;\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\tMatrix.preMulXY=function(parent,x,y,out){\r\n\t\tvar pa=parent.a,pb=parent.b,pc=parent.c,pd=parent.d;\r\n\t\tout.a=pa;\r\n\t\tout.b=pb;\r\n\t\tout.c=pc;\r\n\t\tout.d=pd;\r\n\t\tout.tx=x *pa+parent.tx+y *pc;\r\n\t\tout.ty=y *pd+parent.ty+x *pb;\r\n\t\treturn out;\r\n\t}\r\n\r\n\tMatrix.create=function(){\r\n\t\tvar cache=Matrix._cache;\r\n\t\tvar mat=!cache._length ? (new Matrix()):cache[--cache._length];\r\n\t\tmat.inPool=false;\r\n\t\treturn mat;\r\n\t}\r\n\r\n\tMatrix.EMPTY=new Matrix();\r\n\tMatrix.TEMP=new Matrix();\r\n\tMatrix._cache=[];\r\n\treturn Matrix;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Point</code> 对象表示二维坐标系统中的某个位置，其中 x 表示水平轴，y 表示垂直轴。\r\n*/\r\n//class laya.maths.Point\r\nvar Point=(function(){\r\n\tfunction Point(x,y){\r\n\t\t/**该点的水平坐标。*/\r\n\t\t//this.x=NaN;\r\n\t\t/**该点的垂直坐标。*/\r\n\t\t//this.y=NaN;\r\n\t\t(x===void 0)&& (x=0);\r\n\t\t(y===void 0)&& (y=0);\r\n\t\tthis.x=x;\r\n\t\tthis.y=y;\r\n\t}\r\n\r\n\t__class(Point,'laya.maths.Point');\r\n\tvar __proto=Point.prototype;\r\n\t/**\r\n\t*将 <code>Point</code> 的成员设置为指定值。\r\n\t*@param x 水平坐标。\r\n\t*@param y 垂直坐标。\r\n\t*@return 当前 Point 对象。\r\n\t*/\r\n\t__proto.setTo=function(x,y){\r\n\t\tthis.x=x;\r\n\t\tthis.y=y;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*计算当前点和目标点(x，y)的距离。\r\n\t*@param x 水平坐标。\r\n\t*@param y 垂直坐标。\r\n\t*@return 返回当前点和目标点之间的距离。\r\n\t*/\r\n\t__proto.distance=function(x,y){\r\n\t\treturn Math.sqrt((this.x-x)*(this.x-x)+(this.y-y)*(this.y-y));\r\n\t}\r\n\r\n\t/**返回包含 x 和 y 坐标的值的字符串。*/\r\n\t__proto.toString=function(){\r\n\t\treturn this.x+\",\"+this.y;\r\n\t}\r\n\r\n\t/**\r\n\t*标准化向量。\r\n\t*/\r\n\t__proto.normalize=function(){\r\n\t\tvar d=Math.sqrt(this.x *this.x+this.y *this.y);\r\n\t\tif (d > 0){\r\n\t\t\tvar id=1.0 / d;\r\n\t\t\tthis.x *=id;\r\n\t\t\tthis.y *=id;\r\n\t\t}\r\n\t}\r\n\r\n\tPoint.TEMP=new Point();\r\n\tPoint.EMPTY=new Point();\r\n\treturn Point;\r\n})()\r\n\r\n\r\n/**\r\n*<p><code>Rectangle</code> 对象是按其位置（由它左上角的点 (x,y)确定）以及宽度和高度定义的区域。</p>\r\n*<p>Rectangle 类的 x、y、width 和 height 属性相互独立；更改一个属性的值不会影响其他属性。</p>\r\n*/\r\n//class laya.maths.Rectangle\r\nvar Rectangle=(function(){\r\n\tfunction Rectangle(x,y,width,height){\r\n\t\t/**矩形左上角的 X 轴坐标。*/\r\n\t\t//this.x=NaN;\r\n\t\t/**矩形左上角的 Y 轴坐标。*/\r\n\t\t//this.y=NaN;\r\n\t\t/**矩形的宽度。*/\r\n\t\t//this.width=NaN;\r\n\t\t/**矩形的高度。*/\r\n\t\t//this.height=NaN;\r\n\t\t(x===void 0)&& (x=0);\r\n\t\t(y===void 0)&& (y=0);\r\n\t\t(width===void 0)&& (width=0);\r\n\t\t(height===void 0)&& (height=0);\r\n\t\tthis.x=x;\r\n\t\tthis.y=y;\r\n\t\tthis.width=width;\r\n\t\tthis.height=height;\r\n\t}\r\n\r\n\t__class(Rectangle,'laya.maths.Rectangle');\r\n\tvar __proto=Rectangle.prototype;\r\n\t/**\r\n\t*将 Rectangle 的属性设置为指定值。\r\n\t*@param x x 矩形左上角的 X 轴坐标。\r\n\t*@param y x 矩形左上角的 Y 轴坐标。\r\n\t*@param width 矩形的宽度。\r\n\t*@param height 矩形的高。\r\n\t*@return 返回属性值修改后的矩形对象本身。\r\n\t*/\r\n\t__proto.setTo=function(x,y,width,height){\r\n\t\tthis.x=x;\r\n\t\tthis.y=y;\r\n\t\tthis.width=width;\r\n\t\tthis.height=height;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*复制 source 对象的属性值到此矩形对象中。\r\n\t*@param sourceRect 源 Rectangle 对象。\r\n\t*@return 返回属性值修改后的矩形对象本身。\r\n\t*/\r\n\t__proto.copyFrom=function(source){\r\n\t\tthis.x=source.x;\r\n\t\tthis.y=source.y;\r\n\t\tthis.width=source.width;\r\n\t\tthis.height=source.height;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*确定由此 Rectangle 对象定义的矩形区域内是否包含指定的点。\r\n\t*@param x 点的 X 轴坐标值（水平位置）。\r\n\t*@param y 点的 Y 轴坐标值（垂直位置）。\r\n\t*@return 如果 Rectangle 对象包含指定的点，则值为 true；否则为 false。\r\n\t*/\r\n\t__proto.contains=function(x,y){\r\n\t\tif (this.width <=0 || this.height <=0)return false;\r\n\t\tif (x >=this.x && x < this.right){\r\n\t\t\tif (y >=this.y && y < this.bottom){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t*确定在 rect 参数中指定的对象是否与此 Rectangle 对象相交。此方法检查指定的 Rectangle 对象的 x、y、width 和 height 属性，以查看它是否与此 Rectangle 对象相交。\r\n\t*@param rect Rectangle 对象。\r\n\t*@return 如果传入的矩形对象与此对象相交，则返回 true 值，否则返回 false。\r\n\t*/\r\n\t__proto.intersects=function(rect){\r\n\t\treturn !(rect.x > (this.x+this.width)|| (rect.x+rect.width)< this.x || rect.y > (this.y+this.height)|| (rect.y+rect.height)< this.y);\r\n\t}\r\n\r\n\t/**\r\n\t*如果在 rect 参数中指定的 Rectangle 对象与此 Rectangle 对象相交，则返回交集区域作为 Rectangle 对象。如果矩形不相交，则此方法返回null。\r\n\t*@param rect 待比较的矩形区域。\r\n\t*@param out （可选）待输出的矩形区域。如果为空则创建一个新的。建议：尽量复用对象，减少对象创建消耗。\r\n\t*@return 返回相交的矩形区域对象。\r\n\t*/\r\n\t__proto.intersection=function(rect,out){\r\n\t\tif (!this.intersects(rect))return null;\r\n\t\tout || (out=new Rectangle());\r\n\t\tout.x=Math.max(this.x,rect.x);\r\n\t\tout.y=Math.max(this.y,rect.y);\r\n\t\tout.width=Math.min(this.right,rect.right)-out.x;\r\n\t\tout.height=Math.min(this.bottom,rect.bottom)-out.y;\r\n\t\treturn out;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>矩形联合，通过填充两个矩形之间的水平和垂直空间，将这两个矩形组合在一起以创建一个新的 Rectangle 对象。</p>\r\n\t*<p>注意：union()方法忽略高度或宽度值为 0 的矩形，如：var rect2:Rectangle=new Rectangle(300,300,50,0);</p>\r\n\t*@param 要添加到此 Rectangle 对象的 Rectangle 对象。\r\n\t*@param out 用于存储输出结果的矩形对象。如果为空，则创建一个新的。建议：尽量复用对象，减少对象创建消耗。Rectangle.TEMP对象用于对象复用。\r\n\t*@return 充当两个矩形的联合的新 Rectangle 对象。\r\n\t*/\r\n\t__proto.union=function(source,out){\r\n\t\tout || (out=new Rectangle());\r\n\t\tthis.clone(out);\r\n\t\tif (source.width <=0 || source.height <=0)return out;\r\n\t\tout.addPoint(source.x,source.y);\r\n\t\tout.addPoint(source.right,source.bottom);\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*返回一个 Rectangle 对象，其 x、y、width 和 height 属性的值与当前 Rectangle 对象的对应值相同。\r\n\t*@param out （可选）用于存储结果的矩形对象。如果为空，则创建一个新的。建议：尽量复用对象，减少对象创建消耗。。Rectangle.TEMP对象用于对象复用。\r\n\t*@return Rectangle 对象，其 x、y、width 和 height 属性的值与当前 Rectangle 对象的对应值相同。\r\n\t*/\r\n\t__proto.clone=function(out){\r\n\t\tout || (out=new Rectangle());\r\n\t\tout.x=this.x;\r\n\t\tout.y=this.y;\r\n\t\tout.width=this.width;\r\n\t\tout.height=this.height;\r\n\t\treturn out;\r\n\t}\r\n\r\n\t/**\r\n\t*当前 Rectangle 对象的水平位置 x 和垂直位置 y 以及高度 width 和宽度 height 以逗号连接成的字符串。\r\n\t*/\r\n\t__proto.toString=function(){\r\n\t\treturn this.x+\",\"+this.y+\",\"+this.width+\",\"+this.height;\r\n\t}\r\n\r\n\t/**\r\n\t*检测传入的 Rectangle 对象的属性是否与当前 Rectangle 对象的属性 x、y、width、height 属性值都相等。\r\n\t*@param rect 待比较的 Rectangle 对象。\r\n\t*@return 如果判断的属性都相等，则返回 true ,否则返回 false。\r\n\t*/\r\n\t__proto.equals=function(rect){\r\n\t\tif (!rect || rect.x!==this.x || rect.y!==this.y || rect.width!==this.width || rect.height!==this.height)return false;\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>为当前矩形对象加一个点，以使当前矩形扩展为包含当前矩形和此点的最小矩形。</p>\r\n\t*<p>此方法会修改本对象。</p>\r\n\t*@param x 点的 X 坐标。\r\n\t*@param y 点的 Y 坐标。\r\n\t*@return 返回此 Rectangle 对象。\r\n\t*/\r\n\t__proto.addPoint=function(x,y){\r\n\t\tthis.x > x && (this.width+=this.x-x,this.x=x);\r\n\t\tthis.y > y && (this.height+=this.y-y,this.y=y);\r\n\t\tif (this.width < x-this.x)this.width=x-this.x;\r\n\t\tif (this.height < y-this.y)this.height=y-this.y;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*返回代表当前矩形的顶点数据。\r\n\t*@return 顶点数据。\r\n\t*/\r\n\t__proto._getBoundPoints=function(){\r\n\t\tvar rst=Rectangle._temB;\r\n\t\trst.length=0;\r\n\t\tif (this.width==0 || this.height==0)return rst;\r\n\t\trst.push(this.x,this.y,this.x+this.width,this.y,this.x,this.y+this.height,this.x+this.width,this.y+this.height);\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t/**\r\n\t*确定此 Rectangle 对象是否为空。\r\n\t*@return 如果 Rectangle 对象的宽度或高度小于等于 0，则返回 true 值，否则返回 false。\r\n\t*/\r\n\t__proto.isEmpty=function(){\r\n\t\tif (this.width <=0 || this.height <=0)return true;\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**此矩形右侧的 X 轴坐标。 x 和 width 属性的和。*/\r\n\t__getset(0,__proto,'right',function(){\r\n\t\treturn this.x+this.width;\r\n\t});\r\n\r\n\t/**此矩形底端的 Y 轴坐标。y 和 height 属性的和。*/\r\n\t__getset(0,__proto,'bottom',function(){\r\n\t\treturn this.y+this.height;\r\n\t});\r\n\r\n\tRectangle._getBoundPointS=function(x,y,width,height){\r\n\t\tvar rst=Rectangle._temA;\r\n\t\trst.length=0;\r\n\t\tif (width==0 || height==0)return rst;\r\n\t\trst.push(x,y,x+width,y,x,y+height,x+width,y+height);\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tRectangle._getWrapRec=function(pointList,rst){\r\n\t\tif (!pointList || pointList.length < 1)return rst ? rst.setTo(0,0,0,0):Rectangle.TEMP.setTo(0,0,0,0);\r\n\t\trst=rst ? rst :new Rectangle();\r\n\t\tvar i,len=pointList.length,minX,maxX,minY,maxY,tPoint=Point.TEMP;\r\n\t\tminX=minY=99999;\r\n\t\tmaxX=maxY=-minX;\r\n\t\tfor (i=0;i < len;i+=2){\r\n\t\t\ttPoint.x=pointList[i];\r\n\t\t\ttPoint.y=pointList[i+1];\r\n\t\t\tminX=minX < tPoint.x ? minX :tPoint.x;\r\n\t\t\tminY=minY < tPoint.y ? minY :tPoint.y;\r\n\t\t\tmaxX=maxX > tPoint.x ? maxX :tPoint.x;\r\n\t\t\tmaxY=maxY > tPoint.y ? maxY :tPoint.y;\r\n\t\t}\r\n\t\treturn rst.setTo(minX,minY,maxX-minX,maxY-minY);\r\n\t}\r\n\r\n\tRectangle.EMPTY=new Rectangle();\r\n\tRectangle.TEMP=new Rectangle();\r\n\tRectangle._temB=[];\r\n\tRectangle._temA=[];\r\n\treturn Rectangle;\r\n})()\r\n\r\n\r\n/**\r\n*<code>SoundManager</code> 是一个声音管理类。提供了对背景音乐、音效的播放控制方法。\r\n*引擎默认有两套声音方案：WebAudio和H5Audio\r\n*播放音效，优先使用WebAudio播放声音，如果WebAudio不可用，则用H5Audio播放，H5Audio在部分机器上有兼容问题（比如不能混音，播放有延迟等）。\r\n*播放背景音乐，则使用H5Audio播放（使用WebAudio会增加特别大的内存，并且要等加载完毕后才能播放，有延迟）\r\n*建议背景音乐用mp3类型，音效用wav或者mp3类型（如果打包为app，音效只能用wav格式）。\r\n*详细教程及声音格式请参考：http://ldc.layabox.com/doc/?nav=ch-as-1-7-0\r\n*/\r\n//class laya.media.SoundManager\r\nvar SoundManager=(function(){\r\n\tfunction SoundManager(){}\r\n\t__class(SoundManager,'laya.media.SoundManager');\r\n\t__getset(1,SoundManager,'useAudioMusic',function(){\r\n\t\treturn SoundManager._useAudioMusic;\r\n\t\t},function(value){\r\n\t\tSoundManager._useAudioMusic=value;\r\n\t\tif (value){\r\n\t\t\tSoundManager._musicClass=AudioSound;\r\n\t\t\t}else{\r\n\t\t\tSoundManager._musicClass=null;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*失去焦点后是否自动停止背景音乐。\r\n\t*@param v Boolean 失去焦点后是否自动停止背景音乐。\r\n\t*\r\n\t*/\r\n\t/**\r\n\t*失去焦点后是否自动停止背景音乐。\r\n\t*/\r\n\t__getset(1,SoundManager,'autoStopMusic',function(){\r\n\t\treturn SoundManager._autoStopMusic;\r\n\t\t},function(v){\r\n\t\tLaya.stage.off(/*laya.events.Event.BLUR*/\"blur\",null,SoundManager._stageOnBlur);\r\n\t\tLaya.stage.off(/*laya.events.Event.FOCUS*/\"focus\",null,SoundManager._stageOnFocus);\r\n\t\tLaya.stage.off(/*laya.events.Event.VISIBILITY_CHANGE*/\"visibilitychange\",null,SoundManager._visibilityChange);\r\n\t\tSoundManager._autoStopMusic=v;\r\n\t\tif (v){\r\n\t\t\tLaya.stage.on(/*laya.events.Event.BLUR*/\"blur\",null,SoundManager._stageOnBlur);\r\n\t\t\tLaya.stage.on(/*laya.events.Event.FOCUS*/\"focus\",null,SoundManager._stageOnFocus);\r\n\t\t\tLaya.stage.on(/*laya.events.Event.VISIBILITY_CHANGE*/\"visibilitychange\",null,SoundManager._visibilityChange);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*背景音乐和所有音效是否静音。\r\n\t*/\r\n\t__getset(1,SoundManager,'muted',function(){\r\n\t\treturn SoundManager._muted;\r\n\t\t},function(value){\r\n\t\tif (value==SoundManager._muted)return;\r\n\t\tif (value){\r\n\t\t\tSoundManager.stopAllSound();\r\n\t\t}\r\n\t\tSoundManager.musicMuted=value;\r\n\t\tSoundManager._muted=value;\r\n\t});\r\n\r\n\t/**\r\n\t*背景音乐（不包括音效）是否静音。\r\n\t*/\r\n\t__getset(1,SoundManager,'musicMuted',function(){\r\n\t\treturn SoundManager._musicMuted;\r\n\t\t},function(value){\r\n\t\tif (value==SoundManager._musicMuted)return;\r\n\t\tif (value){\r\n\t\t\tif (SoundManager._tMusic){\r\n\t\t\t\tif (SoundManager._musicChannel&&!SoundManager._musicChannel.isStopped){\r\n\t\t\t\t\tSoundManager._musicChannel.pause();\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\tSoundManager._musicChannel=null;\r\n\t\t\t\t}\r\n\t\t\t\t}else{\r\n\t\t\t\tSoundManager._musicChannel=null;\r\n\t\t\t}\r\n\t\t\tSoundManager._musicMuted=value;\r\n\t\t\t}else {\r\n\t\t\tSoundManager._musicMuted=value;\r\n\t\t\tif (SoundManager._tMusic){\r\n\t\t\t\tif (SoundManager._musicChannel){\r\n\t\t\t\t\tSoundManager._musicChannel.resume();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*所有音效（不包括背景音乐）是否静音。\r\n\t*/\r\n\t__getset(1,SoundManager,'soundMuted',function(){\r\n\t\treturn SoundManager._soundMuted;\r\n\t\t},function(value){\r\n\t\tSoundManager._soundMuted=value;\r\n\t});\r\n\r\n\tSoundManager.addChannel=function(channel){\r\n\t\tif (SoundManager._channels.indexOf(channel)>=0)return;\r\n\t\tSoundManager._channels.push(channel);\r\n\t}\r\n\r\n\tSoundManager.removeChannel=function(channel){\r\n\t\tvar i=0;\r\n\t\tfor (i=SoundManager._channels.length-1;i >=0;i--){\r\n\t\t\tif (SoundManager._channels[i]==channel){\r\n\t\t\t\tSoundManager._channels.splice(i,1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tSoundManager.disposeSoundIfNotUsed=function(url){\r\n\t\tvar i=0;\r\n\t\tfor (i=SoundManager._channels.length-1;i >=0;i--){\r\n\t\t\tif (SoundManager._channels[i].url==url){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tSoundManager.destroySound(url);\r\n\t}\r\n\r\n\tSoundManager._visibilityChange=function(){\r\n\t\tif (Laya.stage.isVisibility){\r\n\t\t\tSoundManager._stageOnFocus();\r\n\t\t\t}else {\r\n\t\t\tSoundManager._stageOnBlur();\r\n\t\t}\r\n\t}\r\n\r\n\tSoundManager._stageOnBlur=function(){\r\n\t\tSoundManager._isActive=false;\r\n\t\tif (SoundManager._musicChannel){\r\n\t\t\tif (!SoundManager._musicChannel.isStopped){\r\n\t\t\t\tSoundManager._blurPaused=true;\r\n\t\t\t\tSoundManager._musicChannel.pause();\r\n\t\t\t}\r\n\t\t}\r\n\t\tSoundManager.stopAllSound();\r\n\t\tLaya.stage.once(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",null,SoundManager._stageOnFocus);\r\n\t}\r\n\r\n\tSoundManager._recoverWebAudio=function(){\r\n\t\tif(WebAudioSound.ctx&&WebAudioSound.ctx.state!=\"running\"&&WebAudioSound.ctx.resume)\r\n\t\t\tWebAudioSound.ctx.resume();\r\n\t}\r\n\r\n\tSoundManager._stageOnFocus=function(){\r\n\t\tSoundManager._isActive=true;\r\n\t\tSoundManager._recoverWebAudio();\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",null,SoundManager._stageOnFocus);\r\n\t\tif (SoundManager._blurPaused){\r\n\t\t\tif (SoundManager._musicChannel && SoundManager._musicChannel.isStopped){\r\n\t\t\t\tSoundManager._blurPaused=false;\r\n\t\t\t\tSoundManager._musicChannel.resume();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tSoundManager.playSound=function(url,loops,complete,soundClass,startTime){\r\n\t\t(loops===void 0)&& (loops=1);\r\n\t\t(startTime===void 0)&& (startTime=0);\r\n\t\tif (!SoundManager._isActive || !url)return null;\r\n\t\tif (SoundManager._muted)return null;\r\n\t\tSoundManager._recoverWebAudio();\r\n\t\turl=URL.formatURL(url);\r\n\t\tif (url==SoundManager._tMusic){\r\n\t\t\tif (SoundManager._musicMuted)return null;\r\n\t\t\t}else {\r\n\t\t\tif (Render.isConchApp){\r\n\t\t\t\tvar ext=Utils.getFileExtension(url);\r\n\t\t\t\tif (ext !=\"wav\" && ext !=\"ogg\"){\r\n\t\t\t\t\talert(\"The sound only supports wav or ogg format,for optimal performance reason,please refer to the official website document.\");\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (SoundManager._soundMuted)return null;\r\n\t\t};\r\n\t\tvar tSound;\r\n\t\tif (!Browser.onMiniGame){\r\n\t\t\ttSound=Laya.loader.getRes(url);\r\n\t\t}\r\n\t\tif (!soundClass)soundClass=SoundManager._soundClass;\r\n\t\tif (!tSound){\r\n\t\t\ttSound=new soundClass();\r\n\t\t\ttSound.load(url);\r\n\t\t\tLoader.cacheRes(url,tSound);\r\n\t\t};\r\n\t\tvar channel;\r\n\t\tchannel=tSound.play(startTime,loops);\r\n\t\tif (!channel)return null;\r\n\t\tchannel.url=url;\r\n\t\tchannel.volume=(url==SoundManager._tMusic)? SoundManager.musicVolume :SoundManager.soundVolume;\r\n\t\tchannel.completeHandler=complete;\r\n\t\treturn channel;\r\n\t}\r\n\r\n\tSoundManager.destroySound=function(url){\r\n\t\tvar tSound=Laya.loader.getRes(url);\r\n\t\tif (tSound){\r\n\t\t\tLoader.clearRes(url);\r\n\t\t\ttSound.dispose();\r\n\t\t}\r\n\t}\r\n\r\n\tSoundManager.playMusic=function(url,loops,complete,startTime){\r\n\t\t(loops===void 0)&& (loops=0);\r\n\t\t(startTime===void 0)&& (startTime=0);\r\n\t\turl=URL.formatURL(url);\r\n\t\tSoundManager._tMusic=url;\r\n\t\tif (SoundManager._musicChannel)SoundManager._musicChannel.stop();\r\n\t\treturn SoundManager._musicChannel=SoundManager.playSound(url,loops,complete,SoundManager._musicClass,startTime);\r\n\t}\r\n\r\n\tSoundManager.stopSound=function(url){\r\n\t\turl=URL.formatURL(url);\r\n\t\tvar i=0;\r\n\t\tvar channel;\r\n\t\tfor (i=SoundManager._channels.length-1;i >=0;i--){\r\n\t\t\tchannel=SoundManager._channels[i];\r\n\t\t\tif (channel.url==url){\r\n\t\t\t\tchannel.stop();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tSoundManager.stopAll=function(){\r\n\t\tSoundManager._tMusic=null;\r\n\t\tvar i=0;\r\n\t\tvar channel;\r\n\t\tfor (i=SoundManager._channels.length-1;i >=0;i--){\r\n\t\t\tchannel=SoundManager._channels[i];\r\n\t\t\tchannel.stop();\r\n\t\t}\r\n\t}\r\n\r\n\tSoundManager.stopAllSound=function(){\r\n\t\tvar i=0;\r\n\t\tvar channel;\r\n\t\tfor (i=SoundManager._channels.length-1;i >=0;i--){\r\n\t\t\tchannel=SoundManager._channels[i];\r\n\t\t\tif (channel.url !=SoundManager._tMusic){\r\n\t\t\t\tchannel.stop();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tSoundManager.stopMusic=function(){\r\n\t\tif (SoundManager._musicChannel)SoundManager._musicChannel.stop();\r\n\t\tSoundManager._tMusic=null;\r\n\t}\r\n\r\n\tSoundManager.setSoundVolume=function(volume,url){\r\n\t\tif (url){\r\n\t\t\turl=URL.formatURL(url);\r\n\t\t\tSoundManager._setVolume(url,volume);\r\n\t\t\t}else {\r\n\t\t\tSoundManager.soundVolume=volume;\r\n\t\t\tvar i=0;\r\n\t\t\tvar channel;\r\n\t\t\tfor (i=SoundManager._channels.length-1;i >=0;i--){\r\n\t\t\t\tchannel=SoundManager._channels[i];\r\n\t\t\t\tif (channel.url !=SoundManager._tMusic){\r\n\t\t\t\t\tchannel.volume=volume;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tSoundManager.setMusicVolume=function(volume){\r\n\t\tSoundManager.musicVolume=volume;\r\n\t\tSoundManager._setVolume(SoundManager._tMusic,volume);\r\n\t}\r\n\r\n\tSoundManager._setVolume=function(url,volume){\r\n\t\turl=URL.formatURL(url);\r\n\t\tvar i=0;\r\n\t\tvar channel;\r\n\t\tfor (i=SoundManager._channels.length-1;i >=0;i--){\r\n\t\t\tchannel=SoundManager._channels[i];\r\n\t\t\tif (channel.url==url){\r\n\t\t\t\tchannel.volume=volume;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tSoundManager.musicVolume=1;\r\n\tSoundManager.soundVolume=1;\r\n\tSoundManager.playbackRate=1;\r\n\tSoundManager._useAudioMusic=true;\r\n\tSoundManager._muted=false;\r\n\tSoundManager._soundMuted=false;\r\n\tSoundManager._musicMuted=false;\r\n\tSoundManager._tMusic=null;\r\n\tSoundManager._musicChannel=null;\r\n\tSoundManager._channels=[];\r\n\tSoundManager._autoStopMusic=false;\r\n\tSoundManager._blurPaused=false;\r\n\tSoundManager._isActive=true;\r\n\tSoundManager._soundClass=null;\r\n\tSoundManager._musicClass=null;\r\n\tSoundManager.autoReleaseSound=true;\r\n\treturn SoundManager;\r\n})()\r\n\r\n\r\n/**\r\n*<p> <code>LocalStorage</code> 类用于没有时间限制的数据存储。</p>\r\n*/\r\n//class laya.net.LocalStorage\r\nvar LocalStorage=(function(){\r\n\tvar Storage;\r\n\tfunction LocalStorage(){}\r\n\t__class(LocalStorage,'laya.net.LocalStorage');\r\n\tLocalStorage.__init__=function(){\r\n\t\tif (!LocalStorage._baseClass){\r\n\t\t\tLocalStorage._baseClass=Storage;\r\n\t\t\tStorage.init();\r\n\t\t}\r\n\t\tLocalStorage.items=LocalStorage._baseClass.items;\r\n\t\tLocalStorage.support=LocalStorage._baseClass.support;\r\n\t}\r\n\r\n\tLocalStorage.setItem=function(key,value){\r\n\t\tLocalStorage._baseClass.setItem(key,value);\r\n\t}\r\n\r\n\tLocalStorage.getItem=function(key){\r\n\t\treturn LocalStorage._baseClass.getItem(key);\r\n\t}\r\n\r\n\tLocalStorage.setJSON=function(key,value){\r\n\t\tLocalStorage._baseClass.setJSON(key,value);\r\n\t}\r\n\r\n\tLocalStorage.getJSON=function(key){\r\n\t\treturn LocalStorage._baseClass.getJSON(key);\r\n\t}\r\n\r\n\tLocalStorage.removeItem=function(key){\r\n\t\tLocalStorage._baseClass.removeItem(key);\r\n\t}\r\n\r\n\tLocalStorage.clear=function(){\r\n\t\tLocalStorage._baseClass.clear();\r\n\t}\r\n\r\n\tLocalStorage._baseClass=null;\r\n\tLocalStorage.items=null;\r\n\tLocalStorage.support=false;\r\n\tLocalStorage.__init$=function(){\r\n\t\t//class Storage\r\n\t\tStorage=(function(){\r\n\t\t\tfunction Storage(){}\r\n\t\t\t__class(Storage,'');\r\n\t\t\tStorage.init=function(){\r\n\t\t\t\t/*__JS__ */try{Storage.items=window.localStorage;Storage.setItem('laya','1');Storage.removeItem('laya');Storage.support=true;}catch(e){}if(!Storage.support)console.log('LocalStorage is not supprot or browser is private mode.');\r\n\t\t\t}\r\n\t\t\tStorage.setItem=function(key,value){\r\n\t\t\t\ttry {\r\n\t\t\t\t\tStorage.support && Storage.items.setItem(key,value);\r\n\t\t\t\t\t}catch (e){\r\n\t\t\t\t\tconsole.warn(\"set localStorage failed\",e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tStorage.getItem=function(key){\r\n\t\t\t\treturn Storage.support ? Storage.items.getItem(key):null;\r\n\t\t\t}\r\n\t\t\tStorage.setJSON=function(key,value){\r\n\t\t\t\ttry {\r\n\t\t\t\t\tStorage.support && Storage.items.setItem(key,JSON.stringify(value));\r\n\t\t\t\t\t}catch (e){\r\n\t\t\t\t\tconsole.warn(\"set localStorage failed\",e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tStorage.getJSON=function(key){\r\n\t\t\t\treturn JSON.parse(Storage.support ? Storage.items.getItem(key):null);\r\n\t\t\t}\r\n\t\t\tStorage.removeItem=function(key){\r\n\t\t\t\tStorage.support && Storage.items.removeItem(key);\r\n\t\t\t}\r\n\t\t\tStorage.clear=function(){\r\n\t\t\t\tStorage.support && Storage.items.clear();\r\n\t\t\t}\r\n\t\t\tStorage.items=null;\r\n\t\t\tStorage.support=false;\r\n\t\t\treturn Storage;\r\n\t\t})()\r\n\t}\r\n\r\n\treturn LocalStorage;\r\n})()\r\n\r\n\r\n/**\r\n*<p>资源版本的生成由layacmd或IDE完成，使用 <code>ResourceVersion</code> 简化使用过程。</p>\r\n*<p>调用 <code>enable</code> 启用资源版本管理。</p>\r\n*/\r\n//class laya.net.ResourceVersion\r\nvar ResourceVersion=(function(){\r\n\tfunction ResourceVersion(){}\r\n\t__class(ResourceVersion,'laya.net.ResourceVersion');\r\n\tResourceVersion.enable=function(manifestFile,callback,type){\r\n\t\t(type===void 0)&& (type=2);\r\n\t\tlaya.net.ResourceVersion.type=type;\r\n\t\tLaya.loader.load(manifestFile,Handler.create(null,ResourceVersion.onManifestLoaded,[callback]),null,/*laya.net.Loader.JSON*/\"json\");\r\n\t\tURL.customFormat=ResourceVersion.addVersionPrefix;\r\n\t}\r\n\r\n\tResourceVersion.onManifestLoaded=function(callback,data){\r\n\t\tResourceVersion.manifest=data;\r\n\t\tcallback.run();\r\n\t\tif (!data){\r\n\t\t\tconsole.warn(\"资源版本清单文件不存在，不使用资源版本管理。忽略ERR_FILE_NOT_FOUND错误。\");\r\n\t\t}\r\n\t}\r\n\r\n\tResourceVersion.addVersionPrefix=function(originURL){\r\n\t\tif (ResourceVersion.manifest && ResourceVersion.manifest[originURL]){\r\n\t\t\tif (ResourceVersion.type==2)return ResourceVersion.manifest[originURL];\r\n\t\t\treturn ResourceVersion.manifest[originURL]+\"/\"+originURL;\r\n\t\t}\r\n\t\treturn originURL;\r\n\t}\r\n\r\n\tResourceVersion.FOLDER_VERSION=1;\r\n\tResourceVersion.FILENAME_VERSION=2;\r\n\tResourceVersion.manifest=null;\r\n\tResourceVersion.type=1;\r\n\treturn ResourceVersion;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.net.TTFLoader\r\nvar TTFLoader=(function(){\r\n\tfunction TTFLoader(){\r\n\t\tthis.fontName=null;\r\n\t\tthis.complete=null;\r\n\t\tthis.err=null;\r\n\t\tthis._fontTxt=null;\r\n\t\tthis._url=null;\r\n\t\tthis._div=null;\r\n\t\tthis._txtWidth=NaN;\r\n\t\tthis._http=null;\r\n\t}\r\n\r\n\t__class(TTFLoader,'laya.net.TTFLoader');\r\n\tvar __proto=TTFLoader.prototype;\r\n\t__proto.load=function(fontPath){\r\n\t\tthis._url=fontPath;\r\n\t\tvar tArr=fontPath.split(\".ttf\")[0].split(\"/\");\r\n\t\tthis.fontName=tArr[tArr.length-1];\r\n\t\tif (Browser.window.conch){\r\n\t\t\tthis._loadConch();\r\n\t\t}else\r\n\t\tif (Browser.window.FontFace){\r\n\t\t\tthis._loadWithFontFace()\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._loadWithCSS();\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._loadConch=function(){\r\n\t\tthis._http=new HttpRequest();\r\n\t\tthis._http.on(/*laya.events.Event.ERROR*/\"error\",this,this._onErr);\r\n\t\tthis._http.on(/*laya.events.Event.COMPLETE*/\"complete\",this,this._onHttpLoaded);\r\n\t\tthis._http.send(this._url,null,\"get\",/*laya.net.Loader.BUFFER*/\"arraybuffer\");\r\n\t}\r\n\r\n\t__proto._onHttpLoaded=function(data){\r\n\t\tBrowser.window.conch.setFontFaceFromBuffer(this.fontName,data);\r\n\t\tthis._clearHttp();\r\n\t\tthis._complete();\r\n\t}\r\n\r\n\t__proto._clearHttp=function(){\r\n\t\tif (this._http){\r\n\t\t\tthis._http.off(/*laya.events.Event.ERROR*/\"error\",this,this._onErr);\r\n\t\t\tthis._http.off(/*laya.events.Event.COMPLETE*/\"complete\",this,this._onHttpLoaded);\r\n\t\t\tthis._http=null;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._onErr=function(){\r\n\t\tthis._clearHttp();\r\n\t\tif (this.err){\r\n\t\t\tthis.err.runWith(\"fail:\"+this._url);\r\n\t\t\tthis.err=null;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._complete=function(){\r\n\t\tLaya.timer.clear(this,this._complete);\r\n\t\tLaya.timer.clear(this,this._checkComplete);\r\n\t\tif (this._div && this._div.parentNode){\r\n\t\t\tthis._div.parentNode.removeChild(this._div);\r\n\t\t\tthis._div=null;\r\n\t\t}\r\n\t\tif (this.complete){\r\n\t\t\tthis.complete.runWith(this);\r\n\t\t\tthis.complete=null;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._checkComplete=function(){\r\n\t\tif (RunDriver.measureText(\"LayaTTFFont\",this._fontTxt).width !=this._txtWidth){\r\n\t\t\tthis._complete();\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._loadWithFontFace=function(){\r\n\t\tvar fontFace=new Browser.window.FontFace(this.fontName,\"url('\"+this._url+\"')\");\r\n\t\tBrowser.window.document.fonts.add(fontFace);\r\n\t\tvar self=this;\r\n\t\tfontFace.loaded.then((function(){\r\n\t\t\tself._complete()\r\n\t\t}));\r\n\t\tfontFace.load();\r\n\t}\r\n\r\n\t__proto._createDiv=function(){\r\n\t\tthis._div=Browser.createElement(\"div\");\r\n\t\tthis._div.innerHTML=\"laya\";\r\n\t\tvar _style=this._div.style;\r\n\t\t_style.fontFamily=this.fontName;\r\n\t\t_style.position=\"absolute\";\r\n\t\t_style.left=\"-100px\";\r\n\t\t_style.top=\"-100px\";\r\n\t\tBrowser.document.body.appendChild(this._div);\r\n\t}\r\n\r\n\t__proto._loadWithCSS=function(){\r\n\t\tvar _$this=this;\r\n\t\tvar fontStyle=Browser.createElement(\"style\");\r\n\t\tfontStyle.type=\"text/css\";\r\n\t\tBrowser.document.body.appendChild(fontStyle);\r\n\t\tfontStyle.textContent=\"@font-face { font-family:'\"+this.fontName+\"'; src:url('\"+this._url+\"');}\";\r\n\t\tthis._fontTxt=\"40px \"+this.fontName;\r\n\t\tthis._txtWidth=RunDriver.measureText(\"LayaTTFFont\",this._fontTxt).width;\r\n\t\tvar self=this;\r\n\t\tfontStyle.onload=function (){\r\n\t\t\tLaya.timer.once(10000,self,_$this._complete);\r\n\t\t};\r\n\t\tLaya.timer.loop(20,this,this._checkComplete);\r\n\t\tthis._createDiv();\r\n\t}\r\n\r\n\tTTFLoader._testString=\"LayaTTFFont\";\r\n\treturn TTFLoader;\r\n})()\r\n\r\n\r\n/**\r\n*<p> <code>URL</code> 类用于定义地址信息。</p>\r\n*/\r\n//class laya.net.URL\r\nvar URL=(function(){\r\n\tfunction URL(url){\r\n\t\t/**@private */\r\n\t\tthis._url=null;\r\n\t\t/**@private */\r\n\t\tthis._path=null;\r\n\t\tthis._url=URL.formatURL(url);\r\n\t\tthis._path=URL.getPath(url);\r\n\t}\r\n\r\n\t__class(URL,'laya.net.URL');\r\n\tvar __proto=URL.prototype;\r\n\t/**地址的路径。*/\r\n\t__getset(0,__proto,'path',function(){\r\n\t\treturn this._path;\r\n\t});\r\n\r\n\t/**格式化后的地址。*/\r\n\t__getset(0,__proto,'url',function(){\r\n\t\treturn this._url;\r\n\t});\r\n\r\n\tURL.formatURL=function(url,base){\r\n\t\tif (!url)return \"null path\";\r\n\t\tif (url.indexOf(\":\")> 0)return url;\r\n\t\tif (URL.customFormat !=null)url=URL.customFormat(url,base);\r\n\t\tvar char1=url.charAt(0);\r\n\t\tif (char1===\".\"){\r\n\t\t\treturn URL.formatRelativePath((base || URL.basePath)+url);\r\n\t\t\t}else if (char1==='~'){\r\n\t\t\treturn URL.rootPath+url.substring(1);\r\n\t\t\t}else if (char1===\"d\"){\r\n\t\t\tif (url.indexOf(\"data:image\")===0)return url;\r\n\t\t\t}else if (char1===\"/\"){\r\n\t\t\treturn url;\r\n\t\t}\r\n\t\treturn (base || URL.basePath)+url;\r\n\t}\r\n\r\n\tURL.formatRelativePath=function(value){\r\n\t\tvar parts=value.split(\"/\");\r\n\t\tfor (var i=0,len=parts.length;i < len;i++){\r\n\t\t\tif (parts[i]=='..'){\r\n\t\t\t\tparts.splice(i-1,2);\r\n\t\t\t\ti-=2;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn parts.join('/');\r\n\t}\r\n\r\n\tURL.isAbsolute=function(url){\r\n\t\treturn url.indexOf(\":\")> 0 || url.charAt(0)=='/';\r\n\t}\r\n\r\n\tURL.getPath=function(url){\r\n\t\tvar ofs=url.lastIndexOf('/');\r\n\t\treturn ofs > 0 ? url.substr(0,ofs+1):\"\";\r\n\t}\r\n\r\n\tURL.getFileName=function(url){\r\n\t\tvar ofs=url.lastIndexOf('/');\r\n\t\treturn ofs > 0 ? url.substr(ofs+1):url;\r\n\t}\r\n\r\n\tURL.version={};\r\n\tURL.basePath=\"\";\r\n\tURL.rootPath=\"\";\r\n\tURL.customFormat=function(url){\r\n\t\tvar newUrl=URL.version[url];\r\n\t\tif (!Render.isConchApp && newUrl)url+=\"?v=\"+newUrl;\r\n\t\treturn url;\r\n\t}\r\n\r\n\treturn URL;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*<code>Render</code> 是渲染管理类。它是一个单例，可以使用 Laya.render 访问。\r\n*/\r\n//class laya.renders.Render\r\nvar Render=(function(){\r\n\tfunction Render(width,height){\r\n\t\t/**@private */\r\n\t\tthis._timeId=0;\r\n\t\tvar style=Render._mainCanvas.source.style;\r\n\t\tstyle.position='absolute';\r\n\t\tstyle.top=style.left=\"0px\";\r\n\t\tstyle.background=\"#000000\";\r\n\t\tRender._mainCanvas.source.id=\"layaCanvas\";\r\n\t\tvar isWebGl=laya.renders.Render.isWebGL;\r\n\t\tRender._mainCanvas.source.width=width;\r\n\t\tRender._mainCanvas.source.height=height;\r\n\t\tisWebGl && Render.WebGL.init(Render._mainCanvas,width,height);\r\n\t\tBrowser.container.appendChild(Render._mainCanvas.source);\r\n\t\tRender._context=new RenderContext(width,height,isWebGl ? null :Render._mainCanvas);\r\n\t\tRender._context.ctx.setIsMainContext();\r\n\t\tBrowser.window.requestAnimationFrame(loop);\r\n\t\tfunction loop (){\r\n\t\t\tLaya.stage._loop();\r\n\t\t\tBrowser.window.requestAnimationFrame(loop);\r\n\t\t}\r\n\t\tLaya.stage.on(\"visibilitychange\",this,this._onVisibilitychange);\r\n\t}\r\n\r\n\t__class(Render,'laya.renders.Render');\r\n\tvar __proto=Render.prototype;\r\n\t/**@private */\r\n\t__proto._onVisibilitychange=function(){\r\n\t\tif (!Laya.stage.isVisibility){\r\n\t\t\tthis._timeId=Browser.window.setInterval(this._enterFrame,1000);\r\n\t\t\t}else if (this._timeId !=0){\r\n\t\t\tBrowser.window.clearInterval(this._timeId);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._enterFrame=function(e){\r\n\t\tLaya.stage._loop();\r\n\t}\r\n\r\n\t/**目前使用的渲染器。*/\r\n\t__getset(1,Render,'context',function(){\r\n\t\treturn Render._context;\r\n\t});\r\n\r\n\t/**渲染使用的原生画布引用。 */\r\n\t__getset(1,Render,'canvas',function(){\r\n\t\treturn Render._mainCanvas.source;\r\n\t});\r\n\r\n\tRender._context=null;\r\n\tRender._mainCanvas=null;\r\n\tRender.WebGL=null;\r\n\tRender.isConchNode=false;\r\n\tRender.isConchApp=false;\r\n\tRender.isConchWebGL=false;\r\n\tRender.isWebGL=false;\r\n\tRender.is3DMode=false;\r\n\tRender.optimizeTextureMemory=function(url,texture){\r\n\t\treturn true;\r\n\t}\r\n\r\n\tRender.__init$=function(){\r\n\t\t/*__JS__ */window.ConchRenderType=window.ConchRenderType||1;\r\n\t\t/*__JS__ */window.ConchRenderType|=(!window.conch?0:0x04);;{\r\n\t\t\tRender.isConchNode=/*__JS__ */(window.ConchRenderType & 5)==5;\r\n\t\t\tRender.isConchApp=/*__JS__ */(window.ConchRenderType & 0x04)==0x04;\r\n\t\t\tRender.isConchWebGL=/*__JS__ */window.ConchRenderType==6;\r\n\t\t};;\r\n\t}\r\n\r\n\treturn Render;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*渲染环境\r\n*/\r\n//class laya.renders.RenderContext\r\nvar RenderContext=(function(){\r\n\tfunction RenderContext(width,height,canvas){\r\n\t\t/**全局x坐标 */\r\n\t\tthis.x=0;\r\n\t\t/**全局y坐标 */\r\n\t\tthis.y=0;\r\n\t\t/**当前使用的画布 */\r\n\t\t//this.canvas=null;\r\n\t\t/**当前使用的画布上下文 */\r\n\t\t//this.ctx=null;\r\n\t\tthis._drawTexture=function(x,y,args){\r\n\t\t\tif (args[0].loaded)this.ctx.drawTexture(args[0],args[1],args[2],args[3],args[4],x,y);\r\n\t\t}\r\n\t\tthis._fillTexture=function(x,y,args){\r\n\t\t\tif (args[0].loaded)this.ctx.fillTexture(args[0],args[1]+x,args[2]+y,args[3],args[4],args[5],args[6],args[7]);\r\n\t\t}\r\n\t\tthis._drawTextureWithTransform=function(x,y,args){\r\n\t\t\tif (args[0].loaded)this.ctx.drawTextureWithTransform(args[0],args[1],args[2],args[3],args[4],args[5],x,y,args[6]);\r\n\t\t}\r\n\t\tthis._fillQuadrangle=function(x,y,args){\r\n\t\t\tthis.ctx.fillQuadrangle(args[0],args[1],args[2],args[3],args[4]);\r\n\t\t}\r\n\t\tthis._drawRect=function(x,y,args){\r\n\t\t\tvar ctx=this.ctx;\r\n\t\t\tif (args[4] !=null){\r\n\t\t\t\tctx.fillStyle=args[4];\r\n\t\t\t\tctx.fillRect(x+args[0],y+args[1],args[2],args[3],null);\r\n\t\t\t}\r\n\t\t\tif (args[5] !=null){\r\n\t\t\t\tctx.strokeStyle=args[5];\r\n\t\t\t\tctx.lineWidth=args[6];\r\n\t\t\t\tctx.strokeRect(x+args[0],y+args[1],args[2],args[3],args[6]);\r\n\t\t\t}\r\n\t\t}\r\n\t\t//矢量方法\r\n\t\tthis._drawPie=function(x,y,args){\r\n\t\t\tvar ctx=this.ctx;\r\n\t\t\tRender.isWebGL && ctx.setPathId(args[8]);\r\n\t\t\tctx.beginPath();\r\n\t\t\tif (Render.isWebGL){\r\n\t\t\t\tctx.movePath(args[0]+x,args[1]+y);\r\n\t\t\t\tctx.moveTo(0,0);\r\n\t\t\t\t}else {\r\n\t\t\t\tctx.moveTo(x+args[0],y+args[1]);\r\n\t\t\t}\r\n\t\t\tctx.arc(x+args[0],y+args[1],args[2],args[3],args[4]);\r\n\t\t\tctx.closePath();\r\n\t\t\tthis._fillAndStroke(args[5],args[6],args[7],true);\r\n\t\t}\r\n\t\tthis._clipRect=function(x,y,args){\r\n\t\t\tthis.ctx.clipRect(x+args[0],y+args[1],args[2],args[3]);\r\n\t\t}\r\n\t\tthis._fillRect=function(x,y,args){\r\n\t\t\tthis.ctx.fillRect(x+args[0],y+args[1],args[2],args[3],args[4]);\r\n\t\t}\r\n\t\tthis._drawCircle=function(x,y,args){\r\n\t\t\tvar ctx=this.ctx;\r\n\t\t\tRender.isWebGL && ctx.setPathId(args[6]);\r\n\t\t\tStat.drawCall++;\r\n\t\t\tctx.beginPath();\r\n\t\t\tRender.isWebGL && ctx.movePath(args[0]+x,args[1]+y);\r\n\t\t\tctx.arc(args[0]+x,args[1]+y,args[2],0,RenderContext.PI2);\r\n\t\t\tctx.closePath();\r\n\t\t\tthis._fillAndStroke(args[3],args[4],args[5],true);\r\n\t\t}\r\n\t\tthis._fillCircle=function(x,y,args){\r\n\t\t\tStat.drawCall++;\r\n\t\t\tvar ctx=this.ctx;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.fillStyle=args[3];\r\n\t\t\tctx.arc(args[0]+x,args[1]+y,args[2],0,RenderContext.PI2);\r\n\t\t\tctx.fill();\r\n\t\t}\r\n\t\tthis._setShader=function(x,y,args){\r\n\t\t\tthis.ctx.setShader(args[0]);\r\n\t\t}\r\n\t\tthis._drawLine=function(x,y,args){\r\n\t\t\tvar ctx=this.ctx;\r\n\t\t\tRender.isWebGL && ctx.setPathId(args[6]);\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.strokeStyle=args[4];\r\n\t\t\tctx.lineWidth=args[5];\r\n\t\t\tif (Render.isWebGL){\r\n\t\t\t\tctx.movePath(x,y);\r\n\t\t\t\tctx.moveTo(args[0],args[1]);\r\n\t\t\t\tctx.lineTo(args[2],args[3]);\r\n\t\t\t\t}else {\r\n\t\t\t\tctx.moveTo(x+args[0],y+args[1]);\r\n\t\t\t\tctx.lineTo(x+args[2],y+args[3]);\r\n\t\t\t}\r\n\t\t\tctx.stroke();\r\n\t\t}\r\n\t\tthis._drawLines=function(x,y,args){\r\n\t\t\tvar ctx=this.ctx;\r\n\t\t\tRender.isWebGL && ctx.setPathId(args[5]);\r\n\t\t\tctx.beginPath();\r\n\t\t\tx+=args[0],y+=args[1];\r\n\t\t\tRender.isWebGL && ctx.movePath(x,y);\r\n\t\t\tctx.strokeStyle=args[3];\r\n\t\t\tctx.lineWidth=args[4];\r\n\t\t\tvar points=args[2];\r\n\t\t\tvar i=2,n=points.length;\r\n\t\t\tif (Render.isWebGL){\r\n\t\t\t\tctx.moveTo(points[0],points[1]);\r\n\t\t\t\twhile (i < n){\r\n\t\t\t\t\tctx.lineTo(points[i++],points[i++]);\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tctx.moveTo(x+points[0],y+points[1]);\r\n\t\t\t\twhile (i < n){\r\n\t\t\t\t\tctx.lineTo(x+points[i++],y+points[i++]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tctx.stroke();\r\n\t\t}\r\n\t\tthis._drawLinesWebGL=function(x,y,args){\r\n\t\t\tthis.ctx.drawLines(x+this.x+args[0],y+this.y+args[1],args[2],args[3],args[4]);\r\n\t\t}\r\n\t\t//x:Number,y:Number,points:Array,lineColor:String,lineWidth:Number=1\r\n\t\tthis._drawCurves=function(x,y,args){\r\n\t\t\tthis.ctx.drawCurves(x,y,args);\r\n\t\t}\r\n\t\tthis._draw=function(x,y,args){\r\n\t\t\targs[0].call(null,this,x,y);\r\n\t\t}\r\n\t\tthis._transformByMatrix=function(x,y,args){\r\n\t\t\tthis.ctx.transformByMatrix(args[0]);\r\n\t\t}\r\n\t\tthis._setTransform=function(x,y,args){\r\n\t\t\tthis.ctx.setTransform(args[0],args[1],args[2],args[3],args[4],args[5]);\r\n\t\t}\r\n\t\tthis._setTransformByMatrix=function(x,y,args){\r\n\t\t\tthis.ctx.setTransformByMatrix(args[0]);\r\n\t\t}\r\n\t\tthis._save=function(x,y,args){\r\n\t\t\tthis.ctx.save();\r\n\t\t}\r\n\t\tthis._restore=function(x,y,args){\r\n\t\t\tthis.ctx.restore();\r\n\t\t}\r\n\t\tthis._translate=function(x,y,args){\r\n\t\t\tthis.ctx.translate(args[0],args[1]);\r\n\t\t}\r\n\t\tthis._transform=function(x,y,args){\r\n\t\t\tthis.ctx.translate(args[1]+x,args[2]+y);\r\n\t\t\tvar mat=args[0];\r\n\t\t\tthis.ctx.transform(mat.a,mat.b,mat.c,mat.d,mat.tx,mat.ty);\r\n\t\t\tthis.ctx.translate(-x-args[1],-y-args[2]);\r\n\t\t}\r\n\t\tthis._rotate=function(x,y,args){\r\n\t\t\tthis.ctx.translate(args[1]+x,args[2]+y);\r\n\t\t\tthis.ctx.rotate(args[0]);\r\n\t\t\tthis.ctx.translate(-x-args[1],-y-args[2]);\r\n\t\t}\r\n\t\tthis._scale=function(x,y,args){\r\n\t\t\tthis.ctx.translate(args[2]+x,args[3]+y);\r\n\t\t\tthis.ctx.scale(args[0],args[1]);\r\n\t\t\tthis.ctx.translate(-x-args[2],-y-args[3]);\r\n\t\t}\r\n\t\tthis._alpha=function(x,y,args){\r\n\t\t\tthis.ctx.globalAlpha *=args[0];\r\n\t\t}\r\n\t\tthis._setAlpha=function(x,y,args){\r\n\t\t\tthis.ctx.globalAlpha=args[0];\r\n\t\t}\r\n\t\tthis._fillText=function(x,y,args){\r\n\t\t\tthis.ctx.fillText(args[0],args[1]+x,args[2]+y,args[3],args[4],args[5]);\r\n\t\t}\r\n\t\tthis._strokeText=function(x,y,args){\r\n\t\t\tthis.ctx.strokeText(args[0],args[1]+x,args[2]+y,args[3],args[4],args[5],args[6]);\r\n\t\t}\r\n\t\tthis._fillBorderText=function(x,y,args){\r\n\t\t\tthis.ctx.fillBorderText(args[0],args[1]+x,args[2]+y,args[3],args[4],args[5],args[6],args[7]);\r\n\t\t}\r\n\t\tthis._blendMode=function(x,y,args){\r\n\t\t\tthis.ctx.globalCompositeOperation=args[0];\r\n\t\t}\r\n\t\tthis._beginClip=function(x,y,args){\r\n\t\t\tthis.ctx.beginClip && this.ctx.beginClip(x+args[0],y+args[1],args[2],args[3]);\r\n\t\t}\r\n\t\tthis._setIBVB=function(x,y,args){\r\n\t\t\tthis.ctx.setIBVB(args[0]+x,args[1]+y,args[2],args[3],args[4],args[5],args[6],args[7]);\r\n\t\t}\r\n\t\tthis._fillTrangles=function(x,y,args){\r\n\t\t\tthis.ctx.fillTrangles(args[0],args[1]+x,args[2]+y,args[3],args[4]);\r\n\t\t}\r\n\t\t//x:Number,y:Number,paths:Array,brush:Object=null,pen:Object=null\r\n\t\tthis._drawPath=function(x,y,args){\r\n\t\t\tvar ctx=this.ctx;\r\n\t\t\tRender.isWebGL && ctx.setPathId(-1);\r\n\t\t\tctx.beginPath();\r\n\t\t\tx+=args[0],y+=args[1];\r\n\t\t\tRender.isWebGL && ctx.movePath(x,y);\r\n\t\t\tvar paths=args[2];\r\n\t\t\tfor (var i=0,n=paths.length;i < n;i++){\r\n\t\t\t\tvar path=paths[i];\r\n\t\t\t\tswitch (path[0]){\r\n\t\t\t\t\tcase \"moveTo\":\r\n\t\t\t\t\t\tRender.isWebGL ? ctx.moveTo(path[1],path[2]):ctx.moveTo(x+path[1],y+path[2]);\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase \"lineTo\":\r\n\t\t\t\t\t\tRender.isWebGL ? ctx.lineTo(path[1],path[2]):ctx.lineTo(x+path[1],y+path[2]);\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase \"arcTo\":\r\n\t\t\t\t\t\tRender.isWebGL ? ctx.arcTo(path[1],path[2],path[3],path[4],path[5]):ctx.arcTo(x+path[1],y+path[2],x+path[3],y+path[4],path[5]);\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase \"closePath\":\r\n\t\t\t\t\t\tctx.closePath();\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tvar brush=args[3];\r\n\t\t\tif (brush !=null){\r\n\t\t\t\tctx.fillStyle=brush.fillStyle;\r\n\t\t\t\tctx.fill();\r\n\t\t\t};\r\n\t\t\tvar pen=args[4];\r\n\t\t\tif (pen !=null){\r\n\t\t\t\tctx.strokeStyle=pen.strokeStyle;\r\n\t\t\t\tctx.lineWidth=pen.lineWidth || 1;\r\n\t\t\t\tctx.lineJoin=pen.lineJoin;\r\n\t\t\t\tctx.lineCap=pen.lineCap;\r\n\t\t\t\tctx.miterLimit=pen.miterLimit;\r\n\t\t\t\tctx.stroke();\r\n\t\t\t}\r\n\t\t}\r\n\t\t// polygon(x:Number,y:Number,r:Number,edges:Number,color:uint,borderWidth:int=2,borderColor:uint=0)\r\n\t\tthis.drawPoly=function(x,y,args){\r\n\t\t\tthis.ctx.drawPoly(x+this.x+args[0],y+this.y+args[1],args[2],args[3],args[4],args[5],args[6]);\r\n\t\t}\r\n\t\t//x:Number,y:Number,points:Array,fillColor:String,lineColor:String=null,lineWidth:Number=1\r\n\t\tthis._drawPoly=function(x,y,args){\r\n\t\t\tvar ctx=this.ctx;\r\n\t\t\tvar points=args[2];\r\n\t\t\tvar i=2,n=points.length;\r\n\t\t\tif (Render.isWebGL){\r\n\t\t\t\tctx.setPathId(args[6]);\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tx+=args[0],y+=args[1];\r\n\t\t\t\tctx.movePath(x,y);\r\n\t\t\t\tctx.moveTo(points[0],points[1]);\r\n\t\t\t\twhile (i < n){\r\n\t\t\t\t\tctx.lineTo(points[i++],points[i++]);\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tx+=args[0],y+=args[1];\r\n\t\t\t\tctx.moveTo(x+points[0],y+points[1]);\r\n\t\t\t\twhile (i < n){\r\n\t\t\t\t\tctx.lineTo(x+points[i++],y+points[i++]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tthis._fillAndStroke(args[3],args[4],args[5],args[7]);\r\n\t\t}\r\n\t\tthis._drawSkin=function(x,y,args){\r\n\t\t\tvar tSprite=args[0];\r\n\t\t\tif (tSprite){\r\n\t\t\t\tvar ctx=this.ctx;\r\n\t\t\t\ttSprite.render(ctx,x,y);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._drawParticle=function(x,y,args){\r\n\t\t\tthis.ctx.drawParticle(x+this.x,y+this.y,args[0]);\r\n\t\t}\r\n\t\tthis._setFilters=function(x,y,args){\r\n\t\t\tthis.ctx.setFilters(args);\r\n\t\t}\r\n\t\tif (canvas){\r\n\t\t\tthis.ctx=canvas.getContext('2d');\r\n\t\t\t}else {\r\n\t\t\tcanvas=HTMLCanvas.create(\"3D\");\r\n\t\t\tthis.ctx=RunDriver.createWebGLContext2D(canvas);\r\n\t\t\tcanvas._setContext(this.ctx);\r\n\t\t}\r\n\t\tcanvas.size(width,height);\r\n\t\tthis.canvas=canvas;\r\n\t}\r\n\r\n\t__class(RenderContext,'laya.renders.RenderContext');\r\n\tvar __proto=RenderContext.prototype;\r\n\t/**销毁当前渲染环境*/\r\n\t__proto.destroy=function(){\r\n\t\tif (this.canvas){\r\n\t\t\tthis.canvas.destroy();\r\n\t\t\tthis.canvas=null;\r\n\t\t\tthis.ctx=null;\r\n\t\t}\r\n\t\tif (this.ctx){\r\n\t\t\tthis.ctx.destroy();\r\n\t\t\tthis.ctx=null;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.drawTexture=function(tex,x,y,width,height){\r\n\t\tif (tex.loaded)this.ctx.drawTexture(tex,x,y,width,height,this.x,this.y);\r\n\t}\r\n\r\n\t__proto._drawTextures=function(x,y,args){\r\n\t\tif (args[0].loaded)this.ctx.drawTextures(args[0],args[1],x+this.x,y+this.y);\r\n\t}\r\n\r\n\t__proto.drawTextureWithTransform=function(tex,x,y,width,height,m,alpha){\r\n\t\tif (tex.loaded)this.ctx.drawTextureWithTransform(tex,x,y,width,height,m,this.x,this.y,alpha);\r\n\t}\r\n\r\n\t__proto.fillQuadrangle=function(tex,x,y,point4,m){\r\n\t\tthis.ctx.fillQuadrangle(tex,x,y,point4,m);\r\n\t}\r\n\r\n\t__proto.drawCanvas=function(canvas,x,y,width,height){\r\n\t\tthis.ctx.drawCanvas(canvas,x+this.x,y+this.y,width,height);\r\n\t}\r\n\r\n\t__proto.drawRect=function(x,y,width,height,color,lineWidth){\r\n\t\t(lineWidth===void 0)&& (lineWidth=1);\r\n\t\tvar ctx=this.ctx;\r\n\t\tctx.strokeStyle=color;\r\n\t\tctx.lineWidth=lineWidth;\r\n\t\tctx.strokeRect(x+this.x,y+this.y,width,height,lineWidth);\r\n\t}\r\n\r\n\t__proto._fillAndStroke=function(fillColor,strokeColor,lineWidth,isConvexPolygon){\r\n\t\t(isConvexPolygon===void 0)&& (isConvexPolygon=false);\r\n\t\tvar ctx=this.ctx;\r\n\t\tif (fillColor !=null){\r\n\t\t\tctx.fillStyle=fillColor;\r\n\t\t\tif (Render.isWebGL){\r\n\t\t\t\tctx.fill(isConvexPolygon);\r\n\t\t\t\t}else {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (strokeColor !=null && lineWidth > 0){\r\n\t\t\tctx.strokeStyle=strokeColor;\r\n\t\t\tctx.lineWidth=lineWidth;\r\n\t\t\tctx.stroke();\r\n\t\t}\r\n\t}\r\n\r\n\t//ctx.translate(-x-args[0],-y-args[1]);\r\n\t__proto.clipRect=function(x,y,width,height){\r\n\t\tthis.ctx.clipRect(x+this.x,y+this.y,width,height);\r\n\t}\r\n\r\n\t__proto.fillRect=function(x,y,width,height,fillStyle){\r\n\t\tthis.ctx.fillRect(x+this.x,y+this.y,width,height,fillStyle);\r\n\t}\r\n\r\n\t__proto.drawCircle=function(x,y,radius,color,lineWidth){\r\n\t\t(lineWidth===void 0)&& (lineWidth=1);\r\n\t\tStat.drawCall++;\r\n\t\tvar ctx=this.ctx;\r\n\t\tctx.beginPath();\r\n\t\tctx.strokeStyle=color;\r\n\t\tctx.lineWidth=lineWidth;\r\n\t\tctx.arc(x+this.x,y+this.y,radius,0,RenderContext.PI2);\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\t/**\r\n\t*绘制三角形\r\n\t*@param x\r\n\t*@param y\r\n\t*@param tex\r\n\t*@param args [x,y,texture,vertices,indices,uvs,matrix]\r\n\t*/\r\n\t__proto.drawTriangles=function(x,y,args){\r\n\t\tif (Render.isWebGL){\r\n\t\t\tthis.ctx.drawTriangles(args[0],x+args[1],y+args[2],args[3],args[4],args[5],args[6],args[7],args[8],args[9]);\r\n\t\t\t}else {\r\n\t\t\tvar indices=args[5];\r\n\t\t\tvar i=0,len=indices.length;\r\n\t\t\tvar ctx=this.ctx;\r\n\t\t\tfor (i=0;i < len;i+=3){\r\n\t\t\t\tvar index0=indices[i] *2;\r\n\t\t\t\tvar index1=indices[i+1] *2;\r\n\t\t\t\tvar index2=indices[i+2] *2;\r\n\t\t\t\tctx.drawTriangle(args[0],args[3],args[4],index0,index1,index2,args[6],true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.fillCircle=function(x,y,radius,color){\r\n\t\tStat.drawCall++;\r\n\t\tvar ctx=this.ctx;\r\n\t\tctx.beginPath();\r\n\t\tctx.fillStyle=color;\r\n\t\tctx.arc(x+this.x,y+this.y,radius,0,RenderContext.PI2);\r\n\t\tctx.fill();\r\n\t}\r\n\r\n\t__proto.setShader=function(shader){\r\n\t\tthis.ctx.setShader(shader);\r\n\t}\r\n\r\n\t__proto.drawLine=function(fromX,fromY,toX,toY,color,lineWidth){\r\n\t\t(lineWidth===void 0)&& (lineWidth=1);\r\n\t\tvar ctx=this.ctx;\r\n\t\tctx.beginPath();\r\n\t\tctx.strokeStyle=color;\r\n\t\tctx.lineWidth=lineWidth;\r\n\t\tctx.moveTo(this.x+fromX,this.y+fromY);\r\n\t\tctx.lineTo(this.x+toX,this.y+toY);\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\t__proto.clear=function(){\r\n\t\tthis.ctx.clear();\r\n\t}\r\n\r\n\t__proto.transformByMatrix=function(value){\r\n\t\tthis.ctx.transformByMatrix(value);\r\n\t}\r\n\r\n\t__proto.setTransform=function(a,b,c,d,tx,ty){\r\n\t\tthis.ctx.setTransform(a,b,c,d,tx,ty);\r\n\t}\r\n\r\n\t__proto.setTransformByMatrix=function(value){\r\n\t\tthis.ctx.setTransformByMatrix(value);\r\n\t}\r\n\r\n\t__proto.save=function(){\r\n\t\tthis.ctx.save();\r\n\t}\r\n\r\n\t__proto.restore=function(){\r\n\t\tthis.ctx.restore();\r\n\t}\r\n\r\n\t__proto.translate=function(x,y){\r\n\t\tthis.ctx.translate(x,y);\r\n\t}\r\n\r\n\t__proto.transform=function(a,b,c,d,tx,ty){\r\n\t\tthis.ctx.transform(a,b,c,d,tx,ty);\r\n\t}\r\n\r\n\t__proto.rotate=function(angle){\r\n\t\tthis.ctx.rotate(angle);\r\n\t}\r\n\r\n\t__proto.scale=function(scaleX,scaleY){\r\n\t\tthis.ctx.scale(scaleX,scaleY);\r\n\t}\r\n\r\n\t__proto.alpha=function(value){\r\n\t\tthis.ctx.globalAlpha *=value;\r\n\t}\r\n\r\n\t__proto.setAlpha=function(value){\r\n\t\tthis.ctx.globalAlpha=value;\r\n\t}\r\n\r\n\t__proto.fillWords=function(words,x,y,font,color,underLine){\r\n\t\t(underLine===void 0)&& (underLine=0);\r\n\t\tthis.ctx.fillWords(words,x,y,font,color,underLine);\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.fillBorderWords=function(words,x,y,font,fillColor,borderColor,lineWidth){\r\n\t\tthis.ctx.fillBorderWords(words,x,y,font,fillColor,borderColor,lineWidth);\r\n\t}\r\n\r\n\t__proto.fillText=function(text,x,y,font,color,textAlign){\r\n\t\tthis.ctx.fillText(text,x+this.x,y+this.y,font,color,textAlign);\r\n\t}\r\n\r\n\t__proto.strokeText=function(text,x,y,font,color,lineWidth,textAlign){\r\n\t\tthis.ctx.strokeText(text,x+this.x,y+this.y,font,color,lineWidth,textAlign);\r\n\t}\r\n\r\n\t__proto.blendMode=function(type){\r\n\t\tthis.ctx.globalCompositeOperation=type;\r\n\t}\r\n\r\n\t__proto.flush=function(){\r\n\t\tthis.ctx.flush && this.ctx.flush();\r\n\t}\r\n\r\n\t__proto.addRenderObject=function(o){\r\n\t\tthis.ctx.addRenderObject(o);\r\n\t}\r\n\r\n\t__proto.beginClip=function(x,y,w,h){\r\n\t\tthis.ctx.beginClip && this.ctx.beginClip(x,y,w,h);\r\n\t}\r\n\r\n\t__proto.endClip=function(){\r\n\t\tthis.ctx.endClip && this.ctx.endClip();\r\n\t}\r\n\r\n\t__proto.fillTrangles=function(x,y,args){\r\n\t\tthis.ctx.fillTrangles(args[0],args[1],args[2],args[3],args.length > 4 ? args[4] :null);\r\n\t}\r\n\r\n\tRenderContext.PI2=2 *Math.PI;\r\n\treturn RenderContext;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*精灵渲染器\r\n*/\r\n//class laya.renders.RenderSprite\r\nvar RenderSprite=(function(){\r\n\tfunction RenderSprite(type,next){\r\n\t\t/**@private */\r\n\t\t//this._next=null;\r\n\t\t/**@private */\r\n\t\t//this._fun=null;\r\n\t\tthis._next=next || RenderSprite.NORENDER;\r\n\t\tswitch (type){\r\n\t\t\tcase 0:\r\n\t\t\t\tthis._fun=this._no;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x01:\r\n\t\t\t\tthis._fun=this._image;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x02:\r\n\t\t\t\tthis._fun=this._alpha;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x04:\r\n\t\t\t\tthis._fun=this._transform;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x08:\r\n\t\t\t\tthis._fun=this._blend;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x10:\r\n\t\t\t\tthis._fun=this._canvas;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x40:\r\n\t\t\t\tthis._fun=this._mask;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x80:\r\n\t\t\t\tthis._fun=this._clip;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x100:\r\n\t\t\t\tthis._fun=this._style;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x200:\r\n\t\t\t\tthis._fun=this._graphics;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x800:\r\n\t\t\t\tthis._fun=this._childs;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x400:\r\n\t\t\t\tthis._fun=this._custom;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x01 | 0x200:\r\n\t\t\t\tthis._fun=this._image2;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x01 | 0x04 | 0x200:\r\n\t\t\t\tthis._fun=this._image2;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x20:\r\n\t\t\t\tthis._fun=Filter._filter;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x11111:\r\n\t\t\t\tthis._fun=RenderSprite._initRenderFun;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\tthis.onCreate(type);\r\n\t}\r\n\r\n\t__class(RenderSprite,'laya.renders.RenderSprite');\r\n\tvar __proto=RenderSprite.prototype;\r\n\t__proto.onCreate=function(type){}\r\n\t__proto._style=function(sprite,context,x,y){\r\n\t\tsprite._style.render(sprite,context,x,y);\r\n\t\tvar next=this._next;\r\n\t\tnext._fun.call(next,sprite,context,x,y);\r\n\t}\r\n\r\n\t__proto._no=function(sprite,context,x,y){}\r\n\t__proto._custom=function(sprite,context,x,y){\r\n\t\tsprite.customRender(context,x,y);\r\n\t\tvar tf=sprite._style._tf;\r\n\t\tthis._next._fun.call(this._next,sprite,context,x-tf.translateX,y-tf.translateY);\r\n\t}\r\n\r\n\t__proto._clip=function(sprite,context,x,y){\r\n\t\tvar next=this._next;\r\n\t\tif (next==RenderSprite.NORENDER)return;\r\n\t\tvar r=sprite._style.scrollRect;\r\n\t\tcontext.ctx.save();\r\n\t\tcontext.ctx.clipRect(x,y,r.width,r.height);\r\n\t\tnext._fun.call(next,sprite,context,x-r.x,y-r.y);\r\n\t\tcontext.ctx.restore();\r\n\t}\r\n\r\n\t__proto._blend=function(sprite,context,x,y){\r\n\t\tvar style=sprite._style;\r\n\t\tif (style.blendMode){\r\n\t\t\tcontext.ctx.globalCompositeOperation=style.blendMode;\r\n\t\t};\r\n\t\tvar next=this._next;\r\n\t\tnext._fun.call(next,sprite,context,x,y);\r\n\t\tcontext.ctx.globalCompositeOperation=\"source-over\";\r\n\t}\r\n\r\n\t__proto._mask=function(sprite,context,x,y){\r\n\t\tvar next=this._next;\r\n\t\tnext._fun.call(next,sprite,context,x,y);\r\n\t\tvar mask=sprite.mask;\r\n\t\tif (mask){\r\n\t\t\tcontext.ctx.globalCompositeOperation=\"destination-in\";\r\n\t\t\tif (mask.numChildren > 0 || !mask.graphics._isOnlyOne()){\r\n\t\t\t\tmask.cacheAsBitmap=true;\r\n\t\t\t}\r\n\t\t\tmask.render(context,x-sprite.pivotX,y-sprite.pivotY);\r\n\t\t}\r\n\t\tcontext.ctx.globalCompositeOperation=\"source-over\";\r\n\t}\r\n\r\n\t__proto._graphics=function(sprite,context,x,y){\r\n\t\tvar tf=sprite._style._tf;\r\n\t\tsprite._graphics && sprite._graphics._render(sprite,context,x-tf.translateX,y-tf.translateY);\r\n\t\tvar next=this._next;\r\n\t\tnext._fun.call(next,sprite,context,x,y);\r\n\t}\r\n\r\n\t__proto._image=function(sprite,context,x,y){\r\n\t\tvar style=sprite._style;\r\n\t\tcontext.ctx.drawTexture2(x,y,style._tf.translateX,style._tf.translateY,sprite.transform,style.alpha,style.blendMode,sprite._graphics._one);\r\n\t}\r\n\r\n\t__proto._image2=function(sprite,context,x,y){\r\n\t\tvar tf=sprite._style._tf;\r\n\t\tcontext.ctx.drawTexture2(x,y,tf.translateX,tf.translateY,sprite.transform,1,null,sprite._graphics._one);\r\n\t}\r\n\r\n\t__proto._alpha=function(sprite,context,x,y){\r\n\t\tvar style=sprite._style;\r\n\t\tvar alpha;\r\n\t\tif ((alpha=style.alpha)> 0.01 || sprite._needRepaint()){\r\n\t\t\tvar temp=context.ctx.globalAlpha;\r\n\t\t\tcontext.ctx.globalAlpha *=alpha;\r\n\t\t\tvar next=this._next;\r\n\t\t\tnext._fun.call(next,sprite,context,x,y);\r\n\t\t\tcontext.ctx.globalAlpha=temp;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._transform=function(sprite,context,x,y){\r\n\t\tvar transform=sprite.transform,_next=this._next;\r\n\t\tif (transform && _next !=RenderSprite.NORENDER){\r\n\t\t\tcontext.save();\r\n\t\t\tcontext.transform(transform.a,transform.b,transform.c,transform.d,transform.tx+x,transform.ty+y);\r\n\t\t\t_next._fun.call(_next,sprite,context,0,0);\r\n\t\t\tcontext.restore();\r\n\t\t}else\r\n\t\t_next._fun.call(_next,sprite,context,x,y);\r\n\t}\r\n\r\n\t__proto._childs=function(sprite,context,x,y){\r\n\t\tvar style=sprite._style;\r\n\t\tvar tf=style._tf;\r\n\t\tx=x-tf.translateX+style.paddingLeft;\r\n\t\ty=y-tf.translateY+style.paddingTop;\r\n\t\tif (style._calculation){\r\n\t\t\tvar words=sprite._getWords();\r\n\t\t\tif (words){\r\n\t\t\t\tvar tStyle=style;\r\n\t\t\t\tif (tStyle){\r\n\t\t\t\t\tif (tStyle.stroke){\r\n\t\t\t\t\t\tcontext.fillBorderWords(words,x,y,tStyle.font,tStyle.color,tStyle.strokeColor,tStyle.stroke);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\tcontext.fillWords(words,x,y,tStyle.font,tStyle.color,(tStyle.textDecoration!=\"none\"&&tStyle.underLine)?1:0);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar childs=sprite._childs,n=childs.length,ele;\r\n\t\tif (sprite.viewport || (sprite.optimizeScrollRect && sprite._style.scrollRect)){\r\n\t\t\tvar rect=sprite.viewport || sprite._style.scrollRect;\r\n\t\t\tvar left=rect.x;\r\n\t\t\tvar top=rect.y;\r\n\t\t\tvar right=rect.right;\r\n\t\t\tvar bottom=rect.bottom;\r\n\t\t\tvar _x=NaN,_y=NaN;\r\n\t\t\tfor (i=0;i < n;++i){\r\n\t\t\t\tif ((ele=childs [i]).visible && ((_x=ele._x)< right && (_x+ele.width)> left && (_y=ele._y)< bottom && (_y+ele.height)> top)){\r\n\t\t\t\t\tele.render(context,x,y);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tfor (var i=0;i < n;++i)\r\n\t\t\t(ele=(childs [i]))._style.visible && ele.render(context,x,y);\r\n\t\t}\r\n\t}\r\n\r\n\t//}\r\n\t__proto._canvas=function(sprite,context,x,y){\r\n\t\tvar _cacheCanvas=sprite._$P.cacheCanvas;\r\n\t\tif (!_cacheCanvas){\r\n\t\t\tthis._next._fun.call(this._next,sprite,context,x,y);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t_cacheCanvas.type==='bitmap' ? (Stat.canvasBitmap++):(Stat.canvasNormal++);\r\n\t\tvar tx=_cacheCanvas.ctx;\r\n\t\tif (sprite._needRepaint()|| !tx){\r\n\t\t\tthis._canvas_repaint(sprite,context,x,y);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvar tRec=_cacheCanvas._cacheRec;\r\n\t\t\tcontext.drawCanvas(tx.canvas,x+tRec.x,y+tRec.y,tRec.width,tRec.height);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._canvas_repaint=function(sprite,context,x,y){\r\n\t\tvar _cacheCanvas=sprite._$P.cacheCanvas;\r\n\t\tvar _next=this._next;\r\n\t\tif (!_cacheCanvas){\r\n\t\t\t_next._fun.call(_next,sprite,tx,x,y);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar tx=_cacheCanvas.ctx;\r\n\t\tvar _repaint=sprite._needRepaint()|| (!tx);\r\n\t\tvar canvas;\r\n\t\tvar left;\r\n\t\tvar top;\r\n\t\tvar tRec;\r\n\t\tvar tCacheType=_cacheCanvas.type;\r\n\t\ttCacheType==='bitmap' ? (Stat.canvasBitmap++):(Stat.canvasNormal++);\r\n\t\tif (_repaint){\r\n\t\t\tif (!_cacheCanvas._cacheRec)\r\n\t\t\t\t_cacheCanvas._cacheRec=new Rectangle();\r\n\t\t\tvar w,h;\r\n\t\t\tif (!Render.isWebGL || tCacheType===\"bitmap\"){\r\n\t\t\t\ttRec=sprite.getSelfBounds();\r\n\t\t\t\ttRec.x=tRec.x-sprite.pivotX;\r\n\t\t\t\ttRec.y=tRec.y-sprite.pivotY;\r\n\t\t\t\ttRec.x=tRec.x-16;\r\n\t\t\t\ttRec.y=tRec.y-16;\r\n\t\t\t\ttRec.width=tRec.width+32;\r\n\t\t\t\ttRec.height=tRec.height+32;\r\n\t\t\t\ttRec.x=Math.floor(tRec.x+x)-x;\r\n\t\t\t\ttRec.y=Math.floor(tRec.y+y)-y;\r\n\t\t\t\ttRec.width=Math.floor(tRec.width);\r\n\t\t\t\ttRec.height=Math.floor(tRec.height);\r\n\t\t\t\t_cacheCanvas._cacheRec.copyFrom(tRec);\r\n\t\t\t\t}else{\r\n\t\t\t\t_cacheCanvas._cacheRec.setTo(-sprite.pivotX,-sprite.pivotY,1,1);\r\n\t\t\t}\r\n\t\t\ttRec=_cacheCanvas._cacheRec;\r\n\t\t\tvar scaleX=Render.isWebGL ? 1 :Browser.pixelRatio *Laya.stage.clientScaleX;\r\n\t\t\tvar scaleY=Render.isWebGL ? 1 :Browser.pixelRatio *Laya.stage.clientScaleY;\r\n\t\t\tif (!Render.isWebGL){\r\n\t\t\t\tvar chainScaleX=1;\r\n\t\t\t\tvar chainScaleY=1;\r\n\t\t\t\tvar tar;\r\n\t\t\t\ttar=sprite;\r\n\t\t\t\twhile (tar && tar !=Laya.stage){\r\n\t\t\t\t\tchainScaleX *=tar.scaleX;\r\n\t\t\t\t\tchainScaleY *=tar.scaleY;\r\n\t\t\t\t\ttar=tar.parent;\r\n\t\t\t\t}\r\n\t\t\t\tif (Render.isWebGL){\r\n\t\t\t\t\tif (chainScaleX < 1)scaleX *=chainScaleX;\r\n\t\t\t\t\tif (chainScaleY < 1)scaleY *=chainScaleY;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tif (chainScaleX > 1)scaleX *=chainScaleX;\r\n\t\t\t\t\tif (chainScaleY > 1)scaleY *=chainScaleY;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (sprite.scrollRect){\r\n\t\t\t\tvar scrollRect=sprite.scrollRect;\r\n\t\t\t\ttRec.x-=scrollRect.x;\r\n\t\t\t\ttRec.y-=scrollRect.y;\r\n\t\t\t}\r\n\t\t\tw=tRec.width *scaleX;\r\n\t\t\th=tRec.height *scaleY;\r\n\t\t\tleft=tRec.x;\r\n\t\t\ttop=tRec.y;\r\n\t\t\tif (Render.isWebGL && tCacheType==='bitmap' && (w > 2048 || h > 2048)){\r\n\t\t\t\tconsole.warn(\"cache bitmap size larger than 2048,cache ignored\");\r\n\t\t\t\tif (_cacheCanvas.ctx){\r\n\t\t\t\t\tPool.recover(\"RenderContext\",_cacheCanvas.ctx);\r\n\t\t\t\t\t_cacheCanvas.ctx.canvas.size(0,0);\r\n\t\t\t\t\t_cacheCanvas.ctx=null;\r\n\t\t\t\t}\r\n\t\t\t\t_next._fun.call(_next,sprite,context,x,y);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!tx){\r\n\t\t\t\ttx=_cacheCanvas.ctx=Pool.getItem(\"RenderContext\")|| new RenderContext(w,h,HTMLCanvas.create(/*laya.resource.HTMLCanvas.TYPEAUTO*/\"AUTO\"));\r\n\t\t\t}\r\n\t\t\ttx.ctx.sprite=sprite;\r\n\t\t\tcanvas=tx.canvas;\r\n\t\t\tcanvas.clear();\r\n\t\t\t(canvas.width !=w || canvas.height !=h)&& canvas.size(w,h);\r\n\t\t\tif (tCacheType==='bitmap')canvas.context.asBitmap=true;\r\n\t\t\telse if(tCacheType==='normal')canvas.context.asBitmap=false;\r\n\t\t\tvar t;\r\n\t\t\tif (scaleX !=1 || scaleY !=1){\r\n\t\t\t\tvar ctx=(tx).ctx;\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.scale(scaleX,scaleY);\r\n\t\t\t\tif (!Render.isConchWebGL && Render.isConchApp){\r\n\t\t\t\t\tt=sprite._$P.cf;\r\n\t\t\t\t\tt && ctx.setFilterMatrix && ctx.setFilterMatrix(t._mat,t._alpha);\r\n\t\t\t\t}\r\n\t\t\t\t_next._fun.call(_next,sprite,tx,-left,-top);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\tif (!Render.isConchApp || Render.isConchWebGL)sprite._applyFilters();\r\n\t\t\t\t}else {\r\n\t\t\t\tctx=(tx).ctx;\r\n\t\t\t\tif (!Render.isConchWebGL && Render.isConchApp){\r\n\t\t\t\t\tt=sprite._$P.cf;\r\n\t\t\t\t\tt && ctx.setFilterMatrix && ctx.setFilterMatrix(t._mat,t._alpha);\r\n\t\t\t\t}\r\n\t\t\t\t_next._fun.call(_next,sprite,tx,-left,-top);\r\n\t\t\t\tif (!Render.isConchApp || Render.isConchWebGL)sprite._applyFilters();\r\n\t\t\t}\r\n\t\t\tif (sprite._$P.staticCache)_cacheCanvas.reCache=false;\r\n\t\t\tStat.canvasReCache++;\r\n\t\t\t}else {\r\n\t\t\ttRec=_cacheCanvas._cacheRec;\r\n\t\t\tleft=tRec.x;\r\n\t\t\ttop=tRec.y;\r\n\t\t\tcanvas=tx.canvas;\r\n\t\t}\r\n\t\tcontext.drawCanvas(canvas,x+left,y+top,tRec.width,tRec.height);\r\n\t}\r\n\r\n\tRenderSprite.__init__=function(){\r\n\t\tvar i=0,len=0;\r\n\t\tvar initRender;\r\n\t\tinitRender=RunDriver.createRenderSprite(0x11111,null);\r\n\t\tlen=RenderSprite.renders.length=0x800 *2;\r\n\t\tfor (i=0;i < len;i++)\r\n\t\tRenderSprite.renders[i]=initRender;\r\n\t\tRenderSprite.renders[0]=RunDriver.createRenderSprite(0,null);\r\n\t\tfunction _initSame (value,o){\r\n\t\t\tvar n=0;\r\n\t\t\tfor (var i=0;i < value.length;i++){\r\n\t\t\t\tn |=value[i];\r\n\t\t\t\tRenderSprite.renders[n]=o;\r\n\t\t\t}\r\n\t\t}\r\n\t\t_initSame([0x01,0x200,0x04,0x02],new RenderSprite(0x01,null));\r\n\t\tRenderSprite.renders[0x01 | 0x200]=RunDriver.createRenderSprite(0x01 | 0x200,null);\r\n\t\tRenderSprite.renders[0x01 | 0x04 | 0x200]=new RenderSprite(0x01 | 0x04 | 0x200,null);\r\n\t}\r\n\r\n\tRenderSprite._initRenderFun=function(sprite,context,x,y){\r\n\t\tvar type=sprite._renderType;\r\n\t\tvar r=RenderSprite.renders[type]=RenderSprite._getTypeRender(type);\r\n\t\tr._fun(sprite,context,x,y);\r\n\t}\r\n\r\n\tRenderSprite._getTypeRender=function(type){\r\n\t\tvar rst=null;\r\n\t\tvar tType=0x800;\r\n\t\twhile (tType > 1){\r\n\t\t\tif (tType & type)\r\n\t\t\t\trst=RunDriver.createRenderSprite(tType,rst);\r\n\t\t\ttType=tType >> 1;\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tRenderSprite.IMAGE=0x01;\r\n\tRenderSprite.ALPHA=0x02;\r\n\tRenderSprite.TRANSFORM=0x04;\r\n\tRenderSprite.BLEND=0x08;\r\n\tRenderSprite.CANVAS=0x10;\r\n\tRenderSprite.FILTERS=0x20;\r\n\tRenderSprite.MASK=0x40;\r\n\tRenderSprite.CLIP=0x80;\r\n\tRenderSprite.STYLE=0x100;\r\n\tRenderSprite.GRAPHICS=0x200;\r\n\tRenderSprite.CUSTOM=0x400;\r\n\tRenderSprite.CHILDS=0x800;\r\n\tRenderSprite.INIT=0x11111;\r\n\tRenderSprite.renders=[];\r\n\tRenderSprite.NORENDER=new RenderSprite(0,null);\r\n\treturn RenderSprite;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*Context扩展类\r\n*/\r\n//class laya.resource.Context\r\nvar Context=(function(){\r\n\tfunction Context(){\r\n\t\t/***@private */\r\n\t\t//this._canvas=null;\r\n\t\tthis._repaint=false;\r\n\t}\r\n\r\n\t__class(Context,'laya.resource.Context');\r\n\tvar __proto=Context.prototype;\r\n\t__proto.replaceReset=function(){\r\n\t\tvar i=0,len=0;\r\n\t\tlen=Context.replaceKeys.length;\r\n\t\tvar key;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tkey=Context.replaceKeys[i];\r\n\t\t\tthis[Context.newKeys[i]]=this[key];\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.replaceResotre=function(){\r\n\t\t/*__JS__ */this.__restore();\r\n\t\t/*__JS__ */this.__reset();\r\n\t}\r\n\r\n\t__proto.setIsMainContext=function(){}\r\n\t__proto.drawTextures=function(tex,pos,tx,ty){\r\n\t\tStat.drawCall+=pos.length / 2;\r\n\t\tvar w=tex.width;\r\n\t\tvar h=tex.height;\r\n\t\tfor (var i=0,sz=pos.length;i < sz;i+=2){\r\n\t\t\tthis.drawTexture(tex,pos[i],pos[i+1],w,h,tx,ty);\r\n\t\t}\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.drawCanvas=function(canvas,x,y,width,height){\r\n\t\tStat.drawCall++;\r\n\t\tthis.drawImage(canvas.source,x,y,width,height);\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.fillRect=function(x,y,width,height,style){\r\n\t\tStat.drawCall++;\r\n\t\tstyle && (this.fillStyle=style);\r\n\t\t/*__JS__ */this.__fillRect(x,y,width,height);\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.fillText=function(text,x,y,font,color,textAlign){\r\n\t\tStat.drawCall++;\r\n\t\tif (arguments.length > 3 && font !=null){\r\n\t\t\tthis.font=font;\r\n\t\t\tthis.fillStyle=color;\r\n\t\t\t/*__JS__ */this.textAlign=textAlign;\r\n\t\t\tthis.textBaseline=\"top\";\r\n\t\t}\r\n\t\t/*__JS__ */this.__fillText(text,x,y);\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.fillBorderText=function(text,x,y,font,fillColor,borderColor,lineWidth,textAlign){\r\n\t\tStat.drawCall++;\r\n\t\tthis.font=font;\r\n\t\tthis.fillStyle=fillColor;\r\n\t\tthis.textBaseline=\"top\";\r\n\t\t/*__JS__ */this.strokeStyle=borderColor;\r\n\t\t/*__JS__ */this.lineWidth=lineWidth;\r\n\t\t/*__JS__ */this.textAlign=textAlign;\r\n\t\t/*__JS__ */this.__strokeText(text,x,y);\r\n\t\t/*__JS__ */this.__fillText(text,x,y);\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.strokeText=function(text,x,y,font,color,lineWidth,textAlign){\r\n\t\tStat.drawCall++;\r\n\t\tif (arguments.length > 3 && font !=null){\r\n\t\t\tthis.font=font;\r\n\t\t\t/*__JS__ */this.strokeStyle=color;\r\n\t\t\t/*__JS__ */this.lineWidth=lineWidth;\r\n\t\t\t/*__JS__ */this.textAlign=textAlign;\r\n\t\t\tthis.textBaseline=\"top\";\r\n\t\t}\r\n\t\t/*__JS__ */this.__strokeText(text,x,y);\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.transformByMatrix=function(value){\r\n\t\tthis.transform(value.a,value.b,value.c,value.d,value.tx,value.ty);\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.setTransformByMatrix=function(value){\r\n\t\tthis.setTransform(value.a,value.b,value.c,value.d,value.tx,value.ty);\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.clipRect=function(x,y,width,height){\r\n\t\tStat.drawCall++;\r\n\t\tthis.beginPath();\r\n\t\tthis.rect(x,y,width,height);\r\n\t\tthis.clip();\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.drawTexture=function(tex,x,y,width,height,tx,ty){\r\n\t\tStat.drawCall++;\r\n\t\tvar uv=tex.uv,w=tex.bitmap.width,h=tex.bitmap.height;\r\n\t\tthis.drawImage(tex.source,uv[0] *w,uv[1] *h,(uv[2]-uv[0])*w,(uv[5]-uv[3])*h,x+tx,y+ty,width,height);\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.drawTextureWithTransform=function(tex,x,y,width,height,m,tx,ty,alpha){\r\n\t\tStat.drawCall++;\r\n\t\tvar uv=tex.uv,w=tex.bitmap.width,h=tex.bitmap.height;\r\n\t\tthis.save();\r\n\t\talpha !=1 && (this.globalAlpha *=alpha);\r\n\t\tif (m){\r\n\t\t\tthis.transform(m.a,m.b,m.c,m.d,m.tx+tx,m.ty+ty);\r\n\t\t\tthis.drawImage(tex.source,uv[0] *w,uv[1] *h,(uv[2]-uv[0])*w,(uv[5]-uv[3])*h,x ,y,width,height);\r\n\t\t\t}else {\r\n\t\t\tthis.drawImage(tex.source,uv[0] *w,uv[1] *h,(uv[2]-uv[0])*w,(uv[5]-uv[3])*h,x+tx ,y+ty,width,height);\r\n\t\t}\r\n\t\tthis.restore();\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.drawTexture2=function(x,y,pivotX,pivotY,m,alpha,blendMode,args2){\r\n\t\tvar tex=args2[0];\r\n\t\tif (!(tex.loaded && tex.bitmap && tex.source)){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tStat.drawCall++;\r\n\t\tvar alphaChanged=alpha!==1;\r\n\t\tif (alphaChanged){\r\n\t\t\tvar temp=this.globalAlpha;\r\n\t\t\tthis.globalAlpha *=alpha;\r\n\t\t};\r\n\t\tvar uv=tex.uv,w=tex.bitmap.width,h=tex.bitmap.height;\r\n\t\tif (m){\r\n\t\t\tthis.save();\r\n\t\t\tthis.transform(m.a,m.b,m.c,m.d,m.tx+x,m.ty+y);\r\n\t\t\tthis.drawImage(tex.source,uv[0] *w,uv[1] *h,(uv[2]-uv[0])*w,(uv[5]-uv[3])*h,args2[1]-pivotX ,args2[2]-pivotY,args2[3],args2[4]);\r\n\t\t\tthis.restore();\r\n\t\t\t}else {\r\n\t\t\tthis.drawImage(tex.source,uv[0] *w,uv[1] *h,(uv[2]-uv[0])*w,(uv[5]-uv[3])*h,args2[1]-pivotX+x ,args2[2]-pivotY+y,args2[3],args2[4]);\r\n\t\t}\r\n\t\tif (alphaChanged)this.globalAlpha=temp;\r\n\t}\r\n\r\n\t__proto.fillTexture=function(texture,x,y,width,height,type,offset,other){\r\n\t\tif (!other.pat){\r\n\t\t\tif (texture.uv !=Texture.DEF_UV){\r\n\t\t\t\tvar canvas=new HTMLCanvas(\"2D\");\r\n\t\t\t\tcanvas.getContext('2d');\r\n\t\t\t\tcanvas.size(texture.width,texture.height);\r\n\t\t\t\tcanvas.context.drawTexture(texture,0,0,texture.width,texture.height,0,0);\r\n\t\t\t\ttexture=new Texture(canvas);\r\n\t\t\t}\r\n\t\t\tother.pat=this.createPattern(texture.bitmap.source,type);\r\n\t\t};\r\n\t\tvar oX=x,oY=y;\r\n\t\tvar sX=0,sY=0;\r\n\t\tif (offset){\r\n\t\t\toX+=offset.x % texture.width;\r\n\t\t\toY+=offset.y % texture.height;\r\n\t\t\tsX-=offset.x % texture.width;\r\n\t\t\tsY-=offset.y % texture.height;\r\n\t\t}\r\n\t\tthis.translate(oX,oY);\r\n\t\tthis.fillRect(sX,sY,width,height,other.pat);\r\n\t\tthis.translate(-oX,-oY);\r\n\t}\r\n\r\n\t__proto.drawTriangle=function(texture,vertices,uvs,index0,index1,index2,matrix,canvasPadding){\r\n\t\tvar source=texture.bitmap;\r\n\t\tvar textureSource=source.source;\r\n\t\tvar textureWidth=texture.width;\r\n\t\tvar textureHeight=texture.height;\r\n\t\tvar sourceWidth=source.width;\r\n\t\tvar sourceHeight=source.height;\r\n\t\tvar u0=uvs[index0] *sourceWidth;\r\n\t\tvar u1=uvs[index1] *sourceWidth;\r\n\t\tvar u2=uvs[index2] *sourceWidth;\r\n\t\tvar v0=uvs[index0+1] *sourceHeight;\r\n\t\tvar v1=uvs[index1+1] *sourceHeight;\r\n\t\tvar v2=uvs[index2+1] *sourceHeight;\r\n\t\tvar x0=vertices[index0];\r\n\t\tvar x1=vertices[index1];\r\n\t\tvar x2=vertices[index2];\r\n\t\tvar y0=vertices[index0+1];\r\n\t\tvar y1=vertices[index1+1];\r\n\t\tvar y2=vertices[index2+1];\r\n\t\tif (canvasPadding){\r\n\t\t\tvar paddingX=1;\r\n\t\t\tvar paddingY=1;\r\n\t\t\tvar centerX=(x0+x1+x2)/ 3;\r\n\t\t\tvar centerY=(y0+y1+y2)/ 3;\r\n\t\t\tvar normX=x0-centerX;\r\n\t\t\tvar normY=y0-centerY;\r\n\t\t\tvar dist=Math.sqrt((normX *normX)+(normY *normY));\r\n\t\t\tx0=centerX+((normX / dist)*(dist+paddingX));\r\n\t\t\ty0=centerY+((normY / dist)*(dist+paddingY));\r\n\t\t\tnormX=x1-centerX;\r\n\t\t\tnormY=y1-centerY;\r\n\t\t\tdist=Math.sqrt((normX *normX)+(normY *normY));\r\n\t\t\tx1=centerX+((normX / dist)*(dist+paddingX));\r\n\t\t\ty1=centerY+((normY / dist)*(dist+paddingY));\r\n\t\t\tnormX=x2-centerX;\r\n\t\t\tnormY=y2-centerY;\r\n\t\t\tdist=Math.sqrt((normX *normX)+(normY *normY));\r\n\t\t\tx2=centerX+((normX / dist)*(dist+paddingX));\r\n\t\t\ty2=centerY+((normY / dist)*(dist+paddingY));\r\n\t\t}\r\n\t\tthis.save();\r\n\t\tif (matrix)\r\n\t\t\tthis.transform(matrix.a,matrix.b,matrix.c,matrix.d,matrix.tx,matrix.ty);\r\n\t\tthis.beginPath();\r\n\t\tthis.moveTo(x0,y0);\r\n\t\tthis.lineTo(x1,y1);\r\n\t\tthis.lineTo(x2,y2);\r\n\t\tthis.closePath();\r\n\t\tthis.clip();\r\n\t\tvar delta=(u0 *v1)+(v0 *u2)+(u1 *v2)-(v1 *u2)-(v0 *u1)-(u0 *v2);\r\n\t\tvar dDelta=1 / delta;\r\n\t\tvar deltaA=(x0 *v1)+(v0 *x2)+(x1 *v2)-(v1 *x2)-(v0 *x1)-(x0 *v2);\r\n\t\tvar deltaB=(u0 *x1)+(x0 *u2)+(u1 *x2)-(x1 *u2)-(x0 *u1)-(u0 *x2);\r\n\t\tvar deltaC=(u0 *v1 *x2)+(v0 *x1 *u2)+(x0 *u1 *v2)-(x0 *v1 *u2)-(v0 *u1 *x2)-(u0 *x1 *v2);\r\n\t\tvar deltaD=(y0 *v1)+(v0 *y2)+(y1 *v2)-(v1 *y2)-(v0 *y1)-(y0 *v2);\r\n\t\tvar deltaE=(u0 *y1)+(y0 *u2)+(u1 *y2)-(y1 *u2)-(y0 *u1)-(u0 *y2);\r\n\t\tvar deltaF=(u0 *v1 *y2)+(v0 *y1 *u2)+(y0 *u1 *v2)-(y0 *v1 *u2)-(v0 *u1 *y2)-(u0 *y1 *v2);\r\n\t\tthis.transform(deltaA *dDelta,deltaD *dDelta,deltaB *dDelta,deltaE *dDelta,deltaC *dDelta,deltaF *dDelta);\r\n\t\tthis.drawImage(textureSource,texture.uv[0] *sourceWidth,texture.uv[1] *sourceHeight,textureWidth,textureHeight,texture.uv[0] *sourceWidth,texture.uv[1] *sourceHeight,textureWidth,textureHeight);\r\n\t\tthis.restore();\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.flush=function(){\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.fillWords=function(words,x,y,font,color,underLine){\r\n\t\tfont && (this.font=font);\r\n\t\tcolor && (this.fillStyle=color);\r\n\t\tvar _this=this;\r\n\t\tthis.textBaseline=\"top\";\r\n\t\t/*__JS__ */this.textAlign='left';\r\n\t\tfor (var i=0,n=words.length;i < n;i++){\r\n\t\t\tvar a=words[i];\r\n\t\t\t/*__JS__ */this.__fillText(a.char,a.x+x,a.y+y);\r\n\t\t\tif (underLine===1){\r\n\t\t\t\tvar tHeight=a.height;\r\n\t\t\t\tvar dX=a.style.letterSpacing*0.5;\r\n\t\t\t\tif (!dX)dX=0;\r\n\t\t\t\tthis.beginPath();\r\n\t\t\t\tthis.strokeStyle=color;\r\n\t\t\t\tthis.lineWidth=1;\r\n\t\t\t\tthis.moveTo(x+a.x-dX+0.5,y+a.y+tHeight+0.5);\r\n\t\t\t\tthis.lineTo(x+a.x+a.width+dX+0.5,y+a.y+tHeight+0.5);\r\n\t\t\t\tthis.stroke();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.fillBorderWords=function(words,x,y,font,color,borderColor,lineWidth){\r\n\t\tfont && (this.font=font);\r\n\t\tcolor && (this.fillStyle=color);\r\n\t\tthis.textBaseline=\"top\";\r\n\t\t/*__JS__ */this.lineWidth=lineWidth;\r\n\t\t/*__JS__ */this.textAlign='left';\r\n\t\t/*__JS__ */this.strokeStyle=borderColor;\r\n\t\tfor (var i=0,n=words.length;i < n;i++){\r\n\t\t\tvar a=words[i];\r\n\t\t\t/*__JS__ */this.__strokeText(a.char,a.x+x,a.y+y);\r\n\t\t\t/*__JS__ */this.__fillText(a.char,a.x+x,a.y+y);\r\n\t\t}\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.destroy=function(){\r\n\t\t/*__JS__ */this.canvas.width=this.canvas.height=0;\r\n\t}\r\n\r\n\t/***@private */\r\n\t__proto.clear=function(){\r\n\t\tthis.clearRect(0,0,this._canvas.width,this._canvas.height);\r\n\t\tthis._repaint=false;\r\n\t}\r\n\r\n\t__proto.drawCurves=function(x,y,args){\r\n\t\tthis.beginPath();\r\n\t\tthis.strokeStyle=args[3];\r\n\t\tthis.lineWidth=args[4];\r\n\t\tvar points=args[2];\r\n\t\tx+=args[0],y+=args[1];\r\n\t\tthis.moveTo(x+points[0],y+points[1]);\r\n\t\tvar i=2,n=points.length;\r\n\t\twhile (i < n){\r\n\t\t\tthis.quadraticCurveTo(x+points[i++],y+points[i++],x+points[i++],y+points[i++]);\r\n\t\t}\r\n\t\tthis.stroke();\r\n\t}\r\n\r\n\tContext.__init__=function(to){\r\n\t\tvar from=laya.resource.Context.prototype;\r\n\t\tto=to || /*__JS__ */CanvasRenderingContext2D.prototype;\r\n\t\tif (to.inited)return;\r\n\t\tto.inited=true;\r\n\t\tto.__fillText=to.fillText;\r\n\t\tto.__fillRect=to.fillRect;\r\n\t\tto.__strokeText=to.strokeText;\r\n\t\tvar funs=['drawTextures',\"drawTriangle\",'fillWords','fillBorderWords','setIsMainContext','fillRect','strokeText','fillTexture','fillText','transformByMatrix','setTransformByMatrix','clipRect','drawTexture','drawTexture2','drawTextureWithTransform','flush','clear','destroy','drawCanvas','fillBorderText','drawCurves'];\r\n\t\tfuns.forEach(function(i){\r\n\t\t\tto[i]=from[i];\r\n\t\t});\r\n\t}\r\n\r\n\tContext.replaceCanvasGetSet=function(tar,key){\r\n\t\tvar oldO=/*__JS__ */Object.getOwnPropertyDescriptor(tar,key);\r\n\t\tif (!oldO||!oldO.configurable)return false;\r\n\t\tvar newO={};\r\n\t\tvar tkey;\r\n\t\tfor (tkey in oldO){\r\n\t\t\tif (tkey !=\"set\"){\r\n\t\t\t\tnewO[tkey]=oldO[tkey];\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar preFun=oldO[\"set\"];\r\n\t\tnewO[\"set\"]=function (v){\r\n\t\t\tvar _self=/*__JS__ */this;\r\n\t\t\tpreFun.call(_self,v);\r\n\t\t\tvar _ct=_self.getContext(\"2d\");\r\n\t\t\tif (_ct && \"__reset\" in _ct){\r\n\t\t\t\t_ct.__reset();\r\n\t\t\t}\r\n\t\t}\r\n\t\t/*__JS__ */Object.defineProperty(tar,key,newO);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tContext.replaceGetSet=function(tar,key){\r\n\t\tvar oldO=/*__JS__ */Object.getOwnPropertyDescriptor(tar,key);\r\n\t\tif (!oldO||!oldO.configurable)return false;\r\n\t\tvar newO={};\r\n\t\tvar tkey;\r\n\t\tfor (tkey in oldO){\r\n\t\t\tif (tkey !=\"set\"){\r\n\t\t\t\tnewO[tkey]=oldO[tkey];\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar preFun=oldO[\"set\"];\r\n\t\tvar dataKey=\"___\"+key+\"__\";\r\n\t\tContext.newKeys.push(dataKey);\r\n\t\tnewO[\"set\"]=function (v){\r\n\t\t\tvar _self=/*__JS__ */this;\r\n\t\t\tif (v !=_self[dataKey]){\r\n\t\t\t\t_self[dataKey]=v;\r\n\t\t\t\tpreFun.call(_self,v);\r\n\t\t\t}\r\n\t\t}\r\n\t\t/*__JS__ */Object.defineProperty(tar,key,newO);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tContext._default=new Context();\r\n\tContext.newKeys=[];\r\n\t__static(Context,\r\n\t['replaceKeys',function(){return this.replaceKeys=[\"font\",\"fillStyle\",\"textBaseline\"];}\r\n\t]);\r\n\treturn Context;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*<code>ResourceManager</code> 是资源管理类。它用于资源的载入、获取、销毁。\r\n*/\r\n//class laya.resource.ResourceManager\r\nvar ResourceManager=(function(){\r\n\tfunction ResourceManager(name){\r\n\t\t/**唯一标识ID。*/\r\n\t\tthis._id=0;\r\n\t\t/**名字。*/\r\n\t\tthis._name=null;\r\n\t\t/**所管理资源。*/\r\n\t\tthis._resources=null;\r\n\t\t/**所管理资源的累计内存,以字节为单位。*/\r\n\t\tthis._memorySize=0;\r\n\t\t/**垃圾回收比例，范围是0到1。*/\r\n\t\tthis._garbageCollectionRate=NaN;\r\n\t\t/**自动释放机制中内存是否溢出。*/\r\n\t\tthis._isOverflow=false;\r\n\t\t/**是否启用自动释放机制。*/\r\n\t\tthis.autoRelease=false;\r\n\t\t/**自动释放机制的内存触发上限,以字节为单位。*/\r\n\t\tthis.autoReleaseMaxSize=0;\r\n\t\tthis._id=++ResourceManager._uniqueIDCounter;\r\n\t\tthis._name=name ? name :\"Content Manager\";\r\n\t\tResourceManager._isResourceManagersSorted=false;\r\n\t\tthis._memorySize=0;\r\n\t\tthis._isOverflow=false;\r\n\t\tthis.autoRelease=false;\r\n\t\tthis.autoReleaseMaxSize=1024 *1024 *512;\r\n\t\tthis._garbageCollectionRate=0.2;\r\n\t\tResourceManager._resourceManagers.push(this);\r\n\t\tthis._resources=[];\r\n\t}\r\n\r\n\t__class(ResourceManager,'laya.resource.ResourceManager');\r\n\tvar __proto=ResourceManager.prototype;\r\n\tLaya.imps(__proto,{\"laya.resource.IDispose\":true})\r\n\t/**\r\n\t*获取指定索引的资源 Resource 对象。\r\n\t*@param 索引。\r\n\t*@return 资源 Resource 对象。\r\n\t*/\r\n\t__proto.getResourceByIndex=function(index){\r\n\t\treturn this._resources[index];\r\n\t}\r\n\r\n\t/**\r\n\t*获取此管理器所管理的资源个数。\r\n\t*@return 资源个数。\r\n\t*/\r\n\t__proto.getResourcesLength=function(){\r\n\t\treturn this._resources.length;\r\n\t}\r\n\r\n\t/**\r\n\t*添加指定资源。\r\n\t*@param resource 需要添加的资源 Resource 对象。\r\n\t*@return 是否添加成功。\r\n\t*/\r\n\t__proto.addResource=function(resource){\r\n\t\tif (resource.resourceManager)\r\n\t\t\tresource.resourceManager.removeResource(resource);\r\n\t\tvar index=this._resources.indexOf(resource);\r\n\t\tif (index===-1){\r\n\t\t\tresource._resourceManager=this;\r\n\t\t\tthis._resources.push(resource);\r\n\t\t\tthis.addSize(resource.memorySize);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t*移除指定资源。\r\n\t*@param resource 需要移除的资源 Resource 对象\r\n\t*@return 是否移除成功。\r\n\t*/\r\n\t__proto.removeResource=function(resource){\r\n\t\tvar index=this._resources.indexOf(resource);\r\n\t\tif (index!==-1){\r\n\t\t\tthis._resources.splice(index,1);\r\n\t\t\tresource._resourceManager=null;\r\n\t\t\tthis._memorySize-=resource.memorySize;\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t*卸载此资源管理器载入的资源。\r\n\t*/\r\n\t__proto.unload=function(){\r\n\t\tvar tempResources=this._resources.slice(0,this._resources.length);\r\n\t\tfor (var i=0;i < tempResources.length;i++){\r\n\t\t\tvar resource=tempResources[i];\r\n\t\t\tresource.destroy();\r\n\t\t}\r\n\t\ttempResources.length=0;\r\n\t}\r\n\r\n\t/**释放资源。*/\r\n\t__proto.dispose=function(){\r\n\t\tif (this===ResourceManager._systemResourceManager)\r\n\t\t\tthrow new Error(\"systemResourceManager不能被释放！\");\r\n\t\tResourceManager._resourceManagers.splice(ResourceManager._resourceManagers.indexOf(this),1);\r\n\t\tResourceManager._isResourceManagersSorted=false;\r\n\t\tvar tempResources=this._resources.slice(0,this._resources.length);\r\n\t\tfor (var i=0;i < tempResources.length;i++){\r\n\t\t\tvar resource=tempResources[i];\r\n\t\t\tresource.resourceManager.removeResource(resource);\r\n\t\t\tresource.destroy();\r\n\t\t}\r\n\t\ttempResources.length=0;\r\n\t}\r\n\r\n\t/**\r\n\t*增加内存。\r\n\t*@param add 需要增加的内存大小。\r\n\t*/\r\n\t__proto.addSize=function(add){\r\n\t\tif (add){\r\n\t\t\tif (this.autoRelease && add > 0)\r\n\t\t\t\t((this._memorySize+add)> this.autoReleaseMaxSize)&& (this.garbageCollection((1-this._garbageCollectionRate)*this.autoReleaseMaxSize));\r\n\t\t\tthis._memorySize+=add;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*垃圾回收。\r\n\t*@param reserveSize 保留尺寸。\r\n\t*/\r\n\t__proto.garbageCollection=function(reserveSize){\r\n\t\tvar all=this._resources;\r\n\t\tall=all.slice();\r\n\t\tall.sort(function(a,b){\r\n\t\t\tif (!a || !b)\r\n\t\t\t\tthrow new Error(\"a或b不能为空！\");\r\n\t\t\tif (a.released && b.released)\r\n\t\t\t\treturn 0;\r\n\t\t\telse if (a.released)\r\n\t\t\treturn 1;\r\n\t\t\telse if (b.released)\r\n\t\t\treturn-1;\r\n\t\t\treturn a._lastUseFrameCount-b._lastUseFrameCount;\r\n\t\t});\r\n\t\tvar currentFrameCount=Stat.loopCount;\r\n\t\tfor (var i=0,n=all.length;i < n;i++){\r\n\t\t\tvar resou=all[i];\r\n\t\t\tif (currentFrameCount-resou._lastUseFrameCount > 1){\r\n\t\t\t\tresou.releaseResource();\r\n\t\t\t\t}else {\r\n\t\t\t\tif (this._memorySize >=reserveSize)\r\n\t\t\t\t\tthis._isOverflow=true;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (this._memorySize < reserveSize){\r\n\t\t\t\tthis._isOverflow=false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*唯一标识 ID 。\r\n\t*/\r\n\t__getset(0,__proto,'id',function(){\r\n\t\treturn this._id;\r\n\t});\r\n\r\n\t/**\r\n\t*名字。\r\n\t*/\r\n\t__getset(0,__proto,'name',function(){\r\n\t\treturn this._name;\r\n\t\t},function(value){\r\n\t\tif ((value || value!==\"\")&& this._name!==value){\r\n\t\t\tthis._name=value;\r\n\t\t\tResourceManager._isResourceManagersSorted=false;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*此管理器所管理资源的累计内存，以字节为单位。\r\n\t*/\r\n\t__getset(0,__proto,'memorySize',function(){\r\n\t\treturn this._memorySize;\r\n\t});\r\n\r\n\t/**\r\n\t*系统资源管理器。\r\n\t*/\r\n\t__getset(1,ResourceManager,'systemResourceManager',function(){\r\n\t\treturn ResourceManager._systemResourceManager;\r\n\t});\r\n\r\n\tResourceManager.__init__=function(){\r\n\t\tResourceManager.currentResourceManager=ResourceManager.systemResourceManager;\r\n\t}\r\n\r\n\tResourceManager.getLoadedResourceManagerByIndex=function(index){\r\n\t\treturn ResourceManager._resourceManagers[index];\r\n\t}\r\n\r\n\tResourceManager.getLoadedResourceManagersCount=function(){\r\n\t\treturn ResourceManager._resourceManagers.length;\r\n\t}\r\n\r\n\tResourceManager.recreateContentManagers=function(force){\r\n\t\t(force===void 0)&& (force=false);\r\n\t\tvar temp=ResourceManager.currentResourceManager;\r\n\t\tfor (var i=0;i < ResourceManager._resourceManagers.length;i++){\r\n\t\t\tResourceManager.currentResourceManager=ResourceManager._resourceManagers[i];\r\n\t\t\tfor (var j=0;j < ResourceManager.currentResourceManager._resources.length;j++){\r\n\t\t\t\tResourceManager.currentResourceManager._resources[j].releaseResource(force);\r\n\t\t\t\tResourceManager.currentResourceManager._resources[j].activeResource(force);\r\n\t\t\t}\r\n\t\t}\r\n\t\tResourceManager.currentResourceManager=temp;\r\n\t}\r\n\r\n\tResourceManager.releaseContentManagers=function(force){\r\n\t\t(force===void 0)&& (force=false);\r\n\t\tvar temp=ResourceManager.currentResourceManager;\r\n\t\tfor (var i=0;i < ResourceManager._resourceManagers.length;i++){\r\n\t\t\tResourceManager.currentResourceManager=ResourceManager._resourceManagers[i];\r\n\t\t\tfor (var j=0;j < ResourceManager.currentResourceManager._resources.length;j++){\r\n\t\t\t\tvar resource=ResourceManager.currentResourceManager._resources[j];\r\n\t\t\t\t(!resource.released)&& (resource.releaseResource(force));\r\n\t\t\t}\r\n\t\t}\r\n\t\tResourceManager.currentResourceManager=temp;\r\n\t}\r\n\r\n\tResourceManager._uniqueIDCounter=0;\r\n\tResourceManager._isResourceManagersSorted=false;\r\n\tResourceManager._resourceManagers=[];\r\n\t__static(ResourceManager,\r\n\t['_systemResourceManager',function(){return this._systemResourceManager=new ResourceManager(\"System Resource Manager\");},'currentResourceManager',function(){return this.currentResourceManager=ResourceManager._systemResourceManager;}\r\n\t]);\r\n\treturn ResourceManager;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.system.System\r\nvar System=(function(){\r\n\tfunction System(){}\r\n\t__class(System,'laya.system.System');\r\n\tSystem.changeDefinition=function(name,classObj){\r\n\t\tLaya[name]=classObj;\r\n\t\tvar str=name+\"=classObj\";\r\n\t\tLaya._runScript(str);\r\n\t}\r\n\r\n\tSystem.__init__=function(){\r\n\t\tif (Render.isConchApp){\r\n\t\t\t/*__JS__ */conch.disableConchResManager();\r\n\t\t\t/*__JS__ */conch.disableConchAutoRestoreLostedDevice();\r\n\t\t}\r\n\t}\r\n\r\n\treturn System;\r\n})()\r\n\r\n\r\nSoundManager;\r\n/**\r\n*<code>Browser</code> 是浏览器代理类。封装浏览器及原生 js 提供的一些功能。\r\n*/\r\n//class laya.utils.Browser\r\nvar Browser=(function(){\r\n\tfunction Browser(){}\r\n\t__class(Browser,'laya.utils.Browser');\r\n\t/**设备像素比。*/\r\n\t__getset(1,Browser,'pixelRatio',function(){\r\n\t\tBrowser.__init__();\r\n\t\tif (Browser.userAgent.indexOf(\"Mozilla/6.0(Linux; Android 6.0; HUAWEI NXT-AL10 Build/HUAWEINXT-AL10)\")>-1)return 2;\r\n\t\treturn RunDriver.getPixelRatio();\r\n\t});\r\n\r\n\t/**浏览器窗口物理高度，其值等于clientHeight *pixelRatio，并且浏览器发生反转之后，宽高会互换。*/\r\n\t__getset(1,Browser,'height',function(){\r\n\t\tBrowser.__init__();\r\n\t\treturn ((Laya.stage && Laya.stage.canvasRotation)? Browser.clientWidth :Browser.clientHeight)*Browser.pixelRatio;\r\n\t});\r\n\r\n\t/**\r\n\t*浏览器窗口可视宽度。\r\n\t*通过分析浏览器信息获得。浏览器多个属性值优先级为：window.innerWidth(包含滚动条宽度)> document.body.clientWidth(不包含滚动条宽度)，如果前者为0或为空，则选择后者。\r\n\t*/\r\n\t__getset(1,Browser,'clientWidth',function(){\r\n\t\tBrowser.__init__();\r\n\t\treturn Browser.window.innerWidth || Browser.document.body.clientWidth;\r\n\t});\r\n\r\n\t/**浏览器原生 window 对象的引用。*/\r\n\t__getset(1,Browser,'window',function(){\r\n\t\tBrowser.__init__();\r\n\t\treturn Browser._window;\r\n\t});\r\n\r\n\t/**\r\n\t*浏览器窗口可视高度。\r\n\t*通过分析浏览器信息获得。浏览器多个属性值优先级为：window.innerHeight(包含滚动条高度)> document.body.clientHeight(不包含滚动条高度)> document.documentElement.clientHeight(不包含滚动条高度)，如果前者为0或为空，则选择后者。\r\n\t*/\r\n\t__getset(1,Browser,'clientHeight',function(){\r\n\t\tBrowser.__init__();\r\n\t\treturn Browser.window.innerHeight || Browser.document.body.clientHeight || Browser.document.documentElement.clientHeight;\r\n\t});\r\n\r\n\t/**浏览器窗口物理宽度，其值等于clientWidth *pixelRatio，并且浏览器发生反转之后，宽高会互换。*/\r\n\t__getset(1,Browser,'width',function(){\r\n\t\tBrowser.__init__();\r\n\t\treturn ((Laya.stage && Laya.stage.canvasRotation)? Browser.clientHeight :Browser.clientWidth)*Browser.pixelRatio;\r\n\t});\r\n\r\n\t/**画布容器，用来盛放画布的容器。方便对画布进行控制*/\r\n\t__getset(1,Browser,'container',function(){\r\n\t\tBrowser.__init__();\r\n\t\tif (!Browser._container){\r\n\t\t\tBrowser._container=Browser.createElement(\"div\");\r\n\t\t\tBrowser._container.id=\"layaContainer\";\r\n\t\t\tBrowser.document.body.appendChild(Browser._container);\r\n\t\t}\r\n\t\treturn Browser._container;\r\n\t\t},function(value){\r\n\t\tBrowser._container=value;\r\n\t});\r\n\r\n\t/**浏览器原生 document 对象的引用。*/\r\n\t__getset(1,Browser,'document',function(){\r\n\t\tBrowser.__init__();\r\n\t\treturn Browser._document;\r\n\t});\r\n\r\n\tBrowser.__init__=function(){\r\n\t\tSoundManager;\r\n\t\tif (Browser._window)return;\r\n\t\tBrowser._window=RunDriver.getWindow();\r\n\t\tBrowser._document=Browser.window.document;\r\n\t\tBrowser._window.addEventListener('message',function(e){\r\n\t\t\tlaya.utils.Browser._onMessage(e);\r\n\t\t},false);\r\n\t\t/*__JS__ */Browser.document.__createElement=Browser.document.createElement;\r\n\t\t/*__JS__ */window.requestAnimationFrame=window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (c){return window.setTimeout(c,1000 / 60);};;\r\n\t\t/*__JS__ */var $BS=window.document.body.style;$BS['-webkit-user-select']='none';$BS['-webkit-tap-highlight-color']='rgba(200,200,200,0)';;\r\n\t\tBrowser.userAgent=/*[SAFE]*/ Browser.window.navigator.userAgent;\r\n\t\tBrowser.u=/*[SAFE]*/ Browser.userAgent;\r\n\t\tBrowser.onIOS=/*[SAFE]*/ !!Browser.u.match(/\\(i[^;]+;(U;)? CPU.+Mac OS X/);\r\n\t\tBrowser.onMobile=/*[SAFE]*/ Browser.u.indexOf(\"Mobile\")>-1;\r\n\t\tBrowser.onIPhone=/*[SAFE]*/ Browser.u.indexOf(\"iPhone\")>-1;\r\n\t\tBrowser.onMac=/*[SAFE]*/ Browser.u.indexOf(\"Mac OS X\")>-1;\r\n\t\tBrowser.onIPad=/*[SAFE]*/ Browser.u.indexOf(\"iPad\")>-1;\r\n\t\tBrowser.onAndroid=/*[SAFE]*/ Browser.u.indexOf('Android')>-1 || Browser.u.indexOf('Adr')>-1;\r\n\t\tBrowser.onWP=/*[SAFE]*/ Browser.u.indexOf(\"Windows Phone\")>-1;\r\n\t\tBrowser.onQQBrowser=/*[SAFE]*/ Browser.u.indexOf(\"QQBrowser\")>-1;\r\n\t\tBrowser.onMQQBrowser=/*[SAFE]*/ Browser.u.indexOf(\"MQQBrowser\")>-1 || (Browser.u.indexOf(\"Mobile\")>-1 && Browser.u.indexOf(\"QQ\")>-1);\r\n\t\tBrowser.onIE=/*[SAFE]*/ !!Browser.window.ActiveXObject || \"ActiveXObject\" in Browser.window;\r\n\t\tBrowser.onWeiXin=/*[SAFE]*/ Browser.u.indexOf('MicroMessenger')>-1;\r\n\t\tBrowser.onPC=/*[SAFE]*/ !Browser.onMobile;\r\n\t\tBrowser.onSafari=/*[SAFE]*/ Browser.u.indexOf(\"Safari\")>-1;\r\n\t\tBrowser.onFirefox=/*[SAFE]*/ Browser.u.indexOf('Firefox')>-1;\r\n\t\tBrowser.onEdge=/*[SAFE]*/ Browser.u.indexOf('Edge')>-1;\r\n\t\tBrowser.onMiniGame=/*[SAFE]*/ Browser.u.indexOf('MiniGame')>-1;\r\n\t\tBrowser.onLimixiu=/*[SAFE]*/ Browser.u.indexOf('limixiu')>-1;\r\n\t\tBrowser.httpProtocol=/*[SAFE]*/ Browser.window.location.protocol==\"http:\";\r\n\t\tif (Browser.onMiniGame && Browser.window.focus==null){\r\n\t\t\tconsole.error(\"请先初始化小游戏适配库，详细教程https://ldc.layabox.com/doc/?nav=zh-ts-5-0-0\");\r\n\t\t}\r\n\t\tBrowser.webAudioEnabled=/*[SAFE]*/ Browser.window[\"AudioContext\"] || Browser.window[\"webkitAudioContext\"] || Browser.window[\"mozAudioContext\"] ? true :false;\r\n\t\tBrowser.soundType=/*[SAFE]*/ Browser.webAudioEnabled ? \"WEBAUDIOSOUND\" :\"AUDIOSOUND\";\r\n\t\t/*__JS__ */Sound=Browser.webAudioEnabled?WebAudioSound:AudioSound;;\r\n\t\t/*__JS__ */if (Browser.webAudioEnabled)WebAudioSound.initWebAudio();;\r\n\t\tAudioSound._initMusicAudio();\r\n\t\t/*__JS__ */Browser.enableTouch=(('ontouchstart' in window)|| window.DocumentTouch && document instanceof DocumentTouch);\r\n\t\t/*__JS__ */window.focus();\r\n\t\t/*__JS__ */SoundManager._soundClass=Sound;;\r\n\t\tSoundManager._musicClass=AudioSound;\r\n\t\tRender._mainCanvas=Render._mainCanvas || HTMLCanvas.create('2D');\r\n\t\tif (Browser.canvas)return;\r\n\t\tBrowser.canvas=HTMLCanvas.create('2D');\r\n\t\tBrowser.context=Browser.canvas.getContext('2d');\r\n\t}\r\n\r\n\tBrowser._onMessage=function(e){\r\n\t\tif (!e.data)return;\r\n\t\tif (e.data.name==\"size\"){\r\n\t\t\tBrowser.window.innerWidth=e.data.width;\r\n\t\t\tBrowser.window.innerHeight=e.data.height;\r\n\t\t\tBrowser.window.__innerHeight=e.data.clientHeight;\r\n\t\t\tif (!Browser.document.createEvent){\r\n\t\t\t\tconsole.warn(\"no document.createEvent\");\r\n\t\t\t\treturn;\r\n\t\t\t};\r\n\t\t\tvar evt=Browser.document.createEvent(\"HTMLEvents\");\r\n\t\t\tevt.initEvent(\"resize\",false,false);\r\n\t\t\tBrowser.window.dispatchEvent(evt);\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\tBrowser.createElement=function(type){\r\n\t\tBrowser.__init__();\r\n\t\treturn Browser.document.__createElement(type);\r\n\t}\r\n\r\n\tBrowser.getElementById=function(type){\r\n\t\tBrowser.__init__();\r\n\t\treturn Browser.document.getElementById(type);\r\n\t}\r\n\r\n\tBrowser.removeElement=function(ele){\r\n\t\tif (ele && ele.parentNode)ele.parentNode.removeChild(ele);\r\n\t}\r\n\r\n\tBrowser.now=function(){\r\n\t\treturn RunDriver.now();\r\n\t}\r\n\r\n\tBrowser._window=null;\r\n\tBrowser._document=null;\r\n\tBrowser._container=null;\r\n\tBrowser.userAgent=null;\r\n\tBrowser.u=null;\r\n\tBrowser.onIOS=false;\r\n\tBrowser.onMac=false;\r\n\tBrowser.onMobile=false;\r\n\tBrowser.onIPhone=false;\r\n\tBrowser.onIPad=false;\r\n\tBrowser.onAndroid=false;\r\n\tBrowser.onWP=false;\r\n\tBrowser.onQQBrowser=false;\r\n\tBrowser.onMQQBrowser=false;\r\n\tBrowser.onSafari=false;\r\n\tBrowser.onFirefox=false;\r\n\tBrowser.onEdge=false;\r\n\tBrowser.onIE=false;\r\n\tBrowser.onWeiXin=false;\r\n\tBrowser.onMiniGame=false;\r\n\tBrowser.onLimixiu=false;\r\n\tBrowser.onPC=false;\r\n\tBrowser.httpProtocol=false;\r\n\tBrowser.webAudioEnabled=false;\r\n\tBrowser.soundType=null;\r\n\tBrowser.enableTouch=false;\r\n\tBrowser.canvas=null;\r\n\tBrowser.context=null;\r\n\tBrowser.__init$=function(){\r\n\t\tAudioSound;\r\n\t\tWebAudioSound;\r\n\t}\r\n\r\n\treturn Browser;\r\n})()\r\n\r\n\r\n/**\r\n*<p> <code>Byte</code> 类提供用于优化读取、写入以及处理二进制数据的方法和属性。</p>\r\n*<p><b>注意：</b> <code>Byte</code> 类适用于需要在字节层访问数据的高级开发人员。</p>\r\n*/\r\n//class laya.utils.Byte\r\nvar Byte=(function(){\r\n\tfunction Byte(data){\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*是否为小端数据。\r\n\t\t*/\r\n\t\tthis._xd_=true;\r\n\t\tthis._allocated_=8;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*原始数据。\r\n\t\t*/\r\n\t\t//this._d_=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*DataView\r\n\t\t*/\r\n\t\t//this._u8d_=null;\r\n\t\t/**@private */\r\n\t\tthis._pos_=0;\r\n\t\t/**@private */\r\n\t\tthis._length=0;\r\n\t\tif (data){\r\n\t\t\tthis._u8d_=new Uint8Array(data);\r\n\t\t\tthis._d_=new DataView(this._u8d_.buffer);\r\n\t\t\tthis._length=this._d_.byteLength;\r\n\t\t\t}else {\r\n\t\t\tthis.___resizeBuffer(this._allocated_);\r\n\t\t}\r\n\t}\r\n\r\n\t__class(Byte,'laya.utils.Byte');\r\n\tvar __proto=Byte.prototype;\r\n\t/**@private */\r\n\t__proto.___resizeBuffer=function(len){\r\n\t\ttry {\r\n\t\t\tvar newByteView=new Uint8Array(len);\r\n\t\t\tif (this._u8d_ !=null){\r\n\t\t\t\tif (this._u8d_.length <=len)newByteView.set(this._u8d_);\r\n\t\t\t\telse newByteView.set(this._u8d_.subarray(0,len));\r\n\t\t\t}\r\n\t\t\tthis._u8d_=newByteView;\r\n\t\t\tthis._d_=new DataView(newByteView.buffer);\r\n\t\t\t}catch (err){\r\n\t\t\tthrow \"___resizeBuffer err:\"+len;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*<p>常用于解析固定格式的字节流。</p>\r\n\t*<p>先从字节流的当前字节偏移位置处读取一个 <code>Uint16</code> 值，然后以此值为长度，读取此长度的字符串。</p>\r\n\t*@return 读取的字符串。\r\n\t*/\r\n\t__proto.getString=function(){\r\n\t\treturn this.rUTF(this.getUint16());\r\n\t}\r\n\r\n\t/**\r\n\t*从字节流中 <code>start</code> 参数指定的位置开始，读取 <code>len</code> 参数指定的字节数的数据，用于创建一个 <code>Float32Array</code> 对象并返回此对象。\r\n\t*@param start 开始位置。\r\n\t*@param len 需要读取的字节长度。如果要读取的长度超过可读取范围，则只返回可读范围内的值。\r\n\t*@return 读取的 Float32Array 对象。\r\n\t*/\r\n\t__proto.getFloat32Array=function(start,len){\r\n\t\tvar end=start+len;\r\n\t\tend=(end > this._length)? this._length :end;\r\n\t\tvar v=new Float32Array(this._d_.buffer.slice(start,end));\r\n\t\tthis._pos_=end;\r\n\t\treturn v;\r\n\t}\r\n\r\n\t/**\r\n\t*从字节流中 <code>start</code> 参数指定的位置开始，读取 <code>len</code> 参数指定的字节数的数据，用于创建一个 <code>Uint8Array</code> 对象并返回此对象。\r\n\t*@param start 开始位置。\r\n\t*@param len 需要读取的字节长度。如果要读取的长度超过可读取范围，则只返回可读范围内的值。\r\n\t*@return 读取的 Uint8Array 对象。\r\n\t*/\r\n\t__proto.getUint8Array=function(start,len){\r\n\t\tvar end=start+len;\r\n\t\tend=(end > this._length)? this._length :end;\r\n\t\tvar v=new Uint8Array(this._d_.buffer.slice(start,end));\r\n\t\tthis._pos_=end;\r\n\t\treturn v;\r\n\t}\r\n\r\n\t/**\r\n\t*从字节流中 <code>start</code> 参数指定的位置开始，读取 <code>len</code> 参数指定的字节数的数据，用于创建一个 <code>Int16Array</code> 对象并返回此对象。\r\n\t*@param start 开始读取的字节偏移量位置。\r\n\t*@param len 需要读取的字节长度。如果要读取的长度超过可读取范围，则只返回可读范围内的值。\r\n\t*@return 读取的 Uint8Array 对象。\r\n\t*/\r\n\t__proto.getInt16Array=function(start,len){\r\n\t\tvar end=start+len;\r\n\t\tend=(end > this._length)? this._length :end;\r\n\t\tvar v=new Int16Array(this._d_.buffer.slice(start,end));\r\n\t\tthis._pos_=end;\r\n\t\treturn v;\r\n\t}\r\n\r\n\t/**\r\n\t*从字节流的当前字节偏移位置处读取一个 IEEE 754 单精度（32 位）浮点数。\r\n\t*@return 单精度（32 位）浮点数。\r\n\t*/\r\n\t__proto.getFloat32=function(){\r\n\t\tif (this._pos_+4 > this._length)throw \"getFloat32 error - Out of bounds\";\r\n\t\tvar v=this._d_.getFloat32(this._pos_,this._xd_);\r\n\t\tthis._pos_+=4;\r\n\t\treturn v;\r\n\t}\r\n\r\n\t/**\r\n\t*从字节流的当前字节偏移量位置处读取一个 IEEE 754 双精度（64 位）浮点数。\r\n\t*@return 双精度（64 位）浮点数。\r\n\t*/\r\n\t__proto.getFloat64=function(){\r\n\t\tif (this._pos_+8 > this._length)throw \"getFloat64 error - Out of bounds\";\r\n\t\tvar v=this._d_.getFloat64(this._pos_,this._xd_);\r\n\t\tthis._pos_+=8;\r\n\t\treturn v;\r\n\t}\r\n\r\n\t/**\r\n\t*在字节流的当前字节偏移量位置处写入一个 IEEE 754 单精度（32 位）浮点数。\r\n\t*@param value 单精度（32 位）浮点数。\r\n\t*/\r\n\t__proto.writeFloat32=function(value){\r\n\t\tthis.ensureWrite(this._pos_+4);\r\n\t\tthis._d_.setFloat32(this._pos_,value,this._xd_);\r\n\t\tthis._pos_+=4;\r\n\t}\r\n\r\n\t/**\r\n\t*在字节流的当前字节偏移量位置处写入一个 IEEE 754 双精度（64 位）浮点数。\r\n\t*@param value 双精度（64 位）浮点数。\r\n\t*/\r\n\t__proto.writeFloat64=function(value){\r\n\t\tthis.ensureWrite(this._pos_+8);\r\n\t\tthis._d_.setFloat64(this._pos_,value,this._xd_);\r\n\t\tthis._pos_+=8;\r\n\t}\r\n\r\n\t/**\r\n\t*从字节流的当前字节偏移量位置处读取一个 Int32 值。\r\n\t*@return Int32 值。\r\n\t*/\r\n\t__proto.getInt32=function(){\r\n\t\tif (this._pos_+4 > this._length)throw \"getInt32 error - Out of bounds\";\r\n\t\tvar float=this._d_.getInt32(this._pos_,this._xd_);\r\n\t\tthis._pos_+=4;\r\n\t\treturn float;\r\n\t}\r\n\r\n\t/**\r\n\t*从字节流的当前字节偏移量位置处读取一个 Uint32 值。\r\n\t*@return Uint32 值。\r\n\t*/\r\n\t__proto.getUint32=function(){\r\n\t\tif (this._pos_+4 > this._length)throw \"getUint32 error - Out of bounds\";\r\n\t\tvar v=this._d_.getUint32(this._pos_,this._xd_);\r\n\t\tthis._pos_+=4;\r\n\t\treturn v;\r\n\t}\r\n\r\n\t/**\r\n\t*在字节流的当前字节偏移量位置处写入指定的 Int32 值。\r\n\t*@param value 需要写入的 Int32 值。\r\n\t*/\r\n\t__proto.writeInt32=function(value){\r\n\t\tthis.ensureWrite(this._pos_+4);\r\n\t\tthis._d_.setInt32(this._pos_,value,this._xd_);\r\n\t\tthis._pos_+=4;\r\n\t}\r\n\r\n\t/**\r\n\t*在字节流的当前字节偏移量位置处写入 Uint32 值。\r\n\t*@param value 需要写入的 Uint32 值。\r\n\t*/\r\n\t__proto.writeUint32=function(value){\r\n\t\tthis.ensureWrite(this._pos_+4);\r\n\t\tthis._d_.setUint32(this._pos_,value,this._xd_);\r\n\t\tthis._pos_+=4;\r\n\t}\r\n\r\n\t/**\r\n\t*从字节流的当前字节偏移量位置处读取一个 Int16 值。\r\n\t*@return Int16 值。\r\n\t*/\r\n\t__proto.getInt16=function(){\r\n\t\tif (this._pos_+2 > this._length)throw \"getInt16 error - Out of bounds\";\r\n\t\tvar us=this._d_.getInt16(this._pos_,this._xd_);\r\n\t\tthis._pos_+=2;\r\n\t\treturn us;\r\n\t}\r\n\r\n\t/**\r\n\t*从字节流的当前字节偏移量位置处读取一个 Uint16 值。\r\n\t*@return Uint16 值。\r\n\t*/\r\n\t__proto.getUint16=function(){\r\n\t\tif (this._pos_+2 > this._length)throw \"getUint16 error - Out of bounds\";\r\n\t\tvar us=this._d_.getUint16(this._pos_,this._xd_);\r\n\t\tthis._pos_+=2;\r\n\t\treturn us;\r\n\t}\r\n\r\n\t/**\r\n\t*在字节流的当前字节偏移量位置处写入指定的 Uint16 值。\r\n\t*@param value 需要写入的Uint16 值。\r\n\t*/\r\n\t__proto.writeUint16=function(value){\r\n\t\tthis.ensureWrite(this._pos_+2);\r\n\t\tthis._d_.setUint16(this._pos_,value,this._xd_);\r\n\t\tthis._pos_+=2;\r\n\t}\r\n\r\n\t/**\r\n\t*在字节流的当前字节偏移量位置处写入指定的 Int16 值。\r\n\t*@param value 需要写入的 Int16 值。\r\n\t*/\r\n\t__proto.writeInt16=function(value){\r\n\t\tthis.ensureWrite(this._pos_+2);\r\n\t\tthis._d_.setInt16(this._pos_,value,this._xd_);\r\n\t\tthis._pos_+=2;\r\n\t}\r\n\r\n\t/**\r\n\t*从字节流的当前字节偏移量位置处读取一个 Uint8 值。\r\n\t*@return Uint8 值。\r\n\t*/\r\n\t__proto.getUint8=function(){\r\n\t\tif (this._pos_+1 > this._length)throw \"getUint8 error - Out of bounds\";\r\n\t\treturn this._d_.getUint8(this._pos_++);\r\n\t}\r\n\r\n\t/**\r\n\t*在字节流的当前字节偏移量位置处写入指定的 Uint8 值。\r\n\t*@param value 需要写入的 Uint8 值。\r\n\t*/\r\n\t__proto.writeUint8=function(value){\r\n\t\tthis.ensureWrite(this._pos_+1);\r\n\t\tthis._d_.setUint8(this._pos_,value);\r\n\t\tthis._pos_++;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*从字节流的指定字节偏移量位置处读取一个 Uint8 值。\r\n\t*@param pos 字节读取位置。\r\n\t*@return Uint8 值。\r\n\t*/\r\n\t__proto._getUInt8=function(pos){\r\n\t\treturn this._d_.getUint8(pos);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*从字节流的指定字节偏移量位置处读取一个 Uint16 值。\r\n\t*@param pos 字节读取位置。\r\n\t*@return Uint16 值。\r\n\t*/\r\n\t__proto._getUint16=function(pos){\r\n\t\treturn this._d_.getUint16(pos,this._xd_);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*使用 getFloat32()读取6个值，用于创建并返回一个 Matrix 对象。\r\n\t*@return Matrix 对象。\r\n\t*/\r\n\t__proto._getMatrix=function(){\r\n\t\tvar rst=new Matrix(this.getFloat32(),this.getFloat32(),this.getFloat32(),this.getFloat32(),this.getFloat32(),this.getFloat32());\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*读取指定长度的 UTF 型字符串。\r\n\t*@param len 需要读取的长度。\r\n\t*@return 读取的字符串。\r\n\t*/\r\n\t__proto.rUTF=function(len){\r\n\t\tvar v=\"\",max=this._pos_+len,c=0,c2=0,c3=0,f=String.fromCharCode;\r\n\t\tvar u=this._u8d_,i=0;\r\n\t\twhile (this._pos_ < max){\r\n\t\t\tc=u[this._pos_++];\r\n\t\t\tif (c < 0x80){\r\n\t\t\t\tif (c !=0){\r\n\t\t\t\t\tv+=f(c);\r\n\t\t\t\t}\r\n\t\t\t\t}else if (c < 0xE0){\r\n\t\t\t\tv+=f(((c & 0x3F)<< 6)| (u[this._pos_++] & 0x7F));\r\n\t\t\t\t}else if (c < 0xF0){\r\n\t\t\t\tc2=u[this._pos_++];\r\n\t\t\t\tv+=f(((c & 0x1F)<< 12)| ((c2 & 0x7F)<< 6)| (u[this._pos_++] & 0x7F));\r\n\t\t\t\t}else {\r\n\t\t\t\tc2=u[this._pos_++];\r\n\t\t\t\tc3=u[this._pos_++];\r\n\t\t\t\tv+=f(((c & 0x0F)<< 18)| ((c2 & 0x7F)<< 12)| ((c3 << 6)& 0x7F)| (u[this._pos_++] & 0x7F));\r\n\t\t\t}\r\n\t\t\ti++;\r\n\t\t}\r\n\t\treturn v;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*读取 <code>len</code> 参数指定的长度的字符串。\r\n\t*@param len 要读取的字符串的长度。\r\n\t*@return 指定长度的字符串。\r\n\t*/\r\n\t__proto.getCustomString=function(len){\r\n\t\tvar v=\"\",ulen=0,c=0,c2=0,f=String.fromCharCode;\r\n\t\tvar u=this._u8d_,i=0;\r\n\t\twhile (len > 0){\r\n\t\t\tc=u[this._pos_];\r\n\t\t\tif (c < 0x80){\r\n\t\t\t\tv+=f(c);\r\n\t\t\t\tthis._pos_++;\r\n\t\t\t\tlen--;\r\n\t\t\t\t}else {\r\n\t\t\t\tulen=c-0x80;\r\n\t\t\t\tthis._pos_++;\r\n\t\t\t\tlen-=ulen;\r\n\t\t\t\twhile (ulen > 0){\r\n\t\t\t\t\tc=u[this._pos_++];\r\n\t\t\t\t\tc2=u[this._pos_++];\r\n\t\t\t\t\tv+=f((c2 << 8)| c);\r\n\t\t\t\t\tulen--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn v;\r\n\t}\r\n\r\n\t/**\r\n\t*清除字节数组的内容，并将 length 和 pos 属性重置为 0。调用此方法将释放 Byte 实例占用的内存。\r\n\t*/\r\n\t__proto.clear=function(){\r\n\t\tthis._pos_=0;\r\n\t\tthis.length=0;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取此对象的 ArrayBuffer 引用。\r\n\t*@return\r\n\t*/\r\n\t__proto.__getBuffer=function(){\r\n\t\treturn this._d_.buffer;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>将 UTF-8 字符串写入字节流。类似于 writeUTF()方法，但 writeUTFBytes()不使用 16 位长度的字为字符串添加前缀。</p>\r\n\t*<p>对应的读取方法为： getUTFBytes 。</p>\r\n\t*@param value 要写入的字符串。\r\n\t*/\r\n\t__proto.writeUTFBytes=function(value){\r\n\t\tvalue=value+\"\";\r\n\t\tfor (var i=0,sz=value.length;i < sz;i++){\r\n\t\t\tvar c=value.charCodeAt(i);\r\n\t\t\tif (c <=0x7F){\r\n\t\t\t\tthis.writeByte(c);\r\n\t\t\t\t}else if (c <=0x7FF){\r\n\t\t\t\tthis.ensureWrite(this._pos_+2);\r\n\t\t\t\tthis._u8d_.set([0xC0 | (c >> 6),0x80 | (c & 0x3F)],this._pos_);\r\n\t\t\t\tthis._pos_+=2;\r\n\t\t\t\t}else if (c <=0xFFFF){\r\n\t\t\t\tthis.ensureWrite(this._pos_+3);\r\n\t\t\t\tthis._u8d_.set([0xE0 | (c >> 12),0x80 | ((c >> 6)& 0x3F),0x80 | (c & 0x3F)],this._pos_);\r\n\t\t\t\tthis._pos_+=3;\r\n\t\t\t\t}else {\r\n\t\t\t\tthis.ensureWrite(this._pos_+4);\r\n\t\t\t\tthis._u8d_.set([0xF0 | (c >> 18),0x80 | ((c >> 12)& 0x3F),0x80 | ((c >> 6)& 0x3F),0x80 | (c & 0x3F)],this._pos_);\r\n\t\t\t\tthis._pos_+=4;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*<p>将 UTF-8 字符串写入字节流。先写入以字节表示的 UTF-8 字符串长度（作为 16 位整数），然后写入表示字符串字符的字节。</p>\r\n\t*<p>对应的读取方法为： getUTFString 。</p>\r\n\t*@param value 要写入的字符串值。\r\n\t*/\r\n\t__proto.writeUTFString=function(value){\r\n\t\tvar tPos=this.pos;\r\n\t\tthis.writeUint16(1);\r\n\t\tthis.writeUTFBytes(value);\r\n\t\tvar dPos=this.pos-tPos-2;\r\n\t\tif (dPos >=65536){\r\n\t\t\tthrow \"writeUTFString byte len more than 65536\";\r\n\t\t}\r\n\t\tthis._d_.setUint16(tPos,dPos,this._xd_);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*读取 UTF-8 字符串。\r\n\t*@return 读取的字符串。\r\n\t*/\r\n\t__proto.readUTFString=function(){\r\n\t\treturn this.readUTFBytes(this.getUint16());\r\n\t}\r\n\r\n\t/**\r\n\t*<p>从字节流中读取一个 UTF-8 字符串。假定字符串的前缀是一个无符号的短整型（以此字节表示要读取的长度）。</p>\r\n\t*<p>对应的写入方法为： writeUTFString 。</p>\r\n\t*@return 读取的字符串。\r\n\t*/\r\n\t__proto.getUTFString=function(){\r\n\t\treturn this.readUTFString();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*读字符串，必须是 writeUTFBytes 方法写入的字符串。\r\n\t*@param len 要读的buffer长度，默认将读取缓冲区全部数据。\r\n\t*@return 读取的字符串。\r\n\t*/\r\n\t__proto.readUTFBytes=function(len){\r\n\t\t(len===void 0)&& (len=-1);\r\n\t\tif (len==0)return \"\";\r\n\t\tvar lastBytes=this.bytesAvailable;\r\n\t\tif (len > lastBytes)throw \"readUTFBytes error - Out of bounds\";\r\n\t\tlen=len > 0 ? len :lastBytes;\r\n\t\treturn this.rUTF(len);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>从字节流中读取一个由 length 参数指定的长度的 UTF-8 字节序列，并返回一个字符串。</p>\r\n\t*<p>一般读取的是由 writeUTFBytes 方法写入的字符串。</p>\r\n\t*@param len 要读的buffer长度，默认将读取缓冲区全部数据。\r\n\t*@return 读取的字符串。\r\n\t*/\r\n\t__proto.getUTFBytes=function(len){\r\n\t\t(len===void 0)&& (len=-1);\r\n\t\treturn this.readUTFBytes(len);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>在字节流中写入一个字节。</p>\r\n\t*<p>使用参数的低 8 位。忽略高 24 位。</p>\r\n\t*@param value\r\n\t*/\r\n\t__proto.writeByte=function(value){\r\n\t\tthis.ensureWrite(this._pos_+1);\r\n\t\tthis._d_.setInt8(this._pos_,value);\r\n\t\tthis._pos_+=1;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*从字节流中读取带符号的字节。\r\n\t*/\r\n\t__proto.readByte=function(){\r\n\t\tif (this._pos_+1 > this._length)throw \"readByte error - Out of bounds\";\r\n\t\treturn this._d_.getInt8(this._pos_++);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>从字节流中读取带符号的字节。</p>\r\n\t*<p>返回值的范围是从-128 到 127。</p>\r\n\t*@return 介于-128 和 127 之间的整数。\r\n\t*/\r\n\t__proto.getByte=function(){\r\n\t\treturn this.readByte();\r\n\t}\r\n\r\n\t/**\r\n\t*<p>保证该字节流的可用长度不小于 <code>lengthToEnsure</code> 参数指定的值。</p>\r\n\t*@param lengthToEnsure 指定的长度。\r\n\t*/\r\n\t__proto.ensureWrite=function(lengthToEnsure){\r\n\t\tif (this._length < lengthToEnsure)this._length=lengthToEnsure;\r\n\t\tif (this._allocated_ < lengthToEnsure)this.length=lengthToEnsure;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>将指定 arraybuffer 对象中的以 offset 为起始偏移量， length 为长度的字节序列写入字节流。</p>\r\n\t*<p>如果省略 length 参数，则使用默认长度 0，该方法将从 offset 开始写入整个缓冲区；如果还省略了 offset 参数，则写入整个缓冲区。</p>\r\n\t*<p>如果 offset 或 length 小于0，本函数将抛出异常。</p>\r\n\t*$NEXTBIG 由于没有判断length和arraybuffer的合法性，当开发者填写了错误的length值时，会导致写入多余的空白数据甚至内存溢出，为了避免影响开发者正在使用此方法的功能，下个重大版本会修复这些问题。\r\n\t*@param arraybuffer 需要写入的 Arraybuffer 对象。\r\n\t*@param offset Arraybuffer 对象的索引的偏移量（以字节为单位）\r\n\t*@param length 从 Arraybuffer 对象写入到 Byte 对象的长度（以字节为单位）\r\n\t*/\r\n\t__proto.writeArrayBuffer=function(arraybuffer,offset,length){\r\n\t\t(offset===void 0)&& (offset=0);\r\n\t\t(length===void 0)&& (length=0);\r\n\t\tif (offset < 0 || length < 0)throw \"writeArrayBuffer error - Out of bounds\";\r\n\t\tif (length==0)length=arraybuffer.byteLength-offset;\r\n\t\tthis.ensureWrite(this._pos_+length);\r\n\t\tvar uint8array=new Uint8Array(arraybuffer);\r\n\t\tthis._u8d_.set(uint8array.subarray(offset,offset+length),this._pos_);\r\n\t\tthis._pos_+=length;\r\n\t}\r\n\r\n\t/**\r\n\t*获取此对象的 ArrayBuffer 数据，数据只包含有效数据部分。\r\n\t*/\r\n\t__getset(0,__proto,'buffer',function(){\r\n\t\tvar rstBuffer=this._d_.buffer;\r\n\t\tif (rstBuffer.byteLength==this.length)return rstBuffer;\r\n\t\treturn rstBuffer.slice(0,this.length);\r\n\t});\r\n\r\n\t/**\r\n\t*<p> <code>Byte</code> 实例的字节序。取值为：<code>BIG_ENDIAN</code> 或 <code>BIG_ENDIAN</code> 。</p>\r\n\t*<p>主机字节序，是 CPU 存放数据的两种不同顺序，包括小端字节序和大端字节序。通过 <code>getSystemEndian</code> 可以获取当前系统的字节序。</p>\r\n\t*<p> <code>BIG_ENDIAN</code> ：大端字节序，地址低位存储值的高位，地址高位存储值的低位。有时也称之为网络字节序。<br/>\r\n\t*<code>LITTLE_ENDIAN</code> ：小端字节序，地址低位存储值的低位，地址高位存储值的高位。</p>\r\n\t*/\r\n\t__getset(0,__proto,'endian',function(){\r\n\t\treturn this._xd_ ? \"littleEndian\" :\"bigEndian\";\r\n\t\t},function(endianStr){\r\n\t\tthis._xd_=(endianStr==\"littleEndian\");\r\n\t});\r\n\r\n\t/**\r\n\t*<p> <code>Byte</code> 对象的长度（以字节为单位）。</p>\r\n\t*<p>如果将长度设置为大于当前长度的值，则用零填充字节数组的右侧；如果将长度设置为小于当前长度的值，将会截断该字节数组。</p>\r\n\t*<p>如果要设置的长度大于当前已分配的内存空间的字节长度，则重新分配内存空间，大小为以下两者较大者：要设置的长度、当前已分配的长度的2倍，并将原有数据拷贝到新的内存空间中；如果要设置的长度小于当前已分配的内存空间的字节长度，也会重新分配内存空间，大小为要设置的长度，并将原有数据从头截断为要设置的长度存入新的内存空间中。</p>\r\n\t*/\r\n\t__getset(0,__proto,'length',function(){\r\n\t\treturn this._length;\r\n\t\t},function(value){\r\n\t\tif (this._allocated_ < value)\r\n\t\t\tthis.___resizeBuffer(this._allocated_=Math.floor(Math.max(value,this._allocated_ *2)));\r\n\t\telse if (this._allocated_ > value)\r\n\t\tthis.___resizeBuffer(this._allocated_=value);\r\n\t\tthis._length=value;\r\n\t});\r\n\r\n\t/**\r\n\t*移动或返回 Byte 对象的读写指针的当前位置（以字节为单位）。下一次调用读取方法时将在此位置开始读取，或者下一次调用写入方法时将在此位置开始写入。\r\n\t*/\r\n\t__getset(0,__proto,'pos',function(){\r\n\t\treturn this._pos_;\r\n\t\t},function(value){\r\n\t\tthis._pos_=value;\r\n\t});\r\n\r\n\t/**\r\n\t*可从字节流的当前位置到末尾读取的数据的字节数。\r\n\t*/\r\n\t__getset(0,__proto,'bytesAvailable',function(){\r\n\t\treturn this._length-this._pos_;\r\n\t});\r\n\r\n\tByte.getSystemEndian=function(){\r\n\t\tif (!Byte._sysEndian){\r\n\t\t\tvar buffer=new ArrayBuffer(2);\r\n\t\t\tnew DataView(buffer).setInt16(0,256,true);\r\n\t\t\tByte._sysEndian=(new Int16Array(buffer))[0]===256 ? /*CLASS CONST:laya.utils.Byte.LITTLE_ENDIAN*/\"littleEndian\" :/*CLASS CONST:laya.utils.Byte.BIG_ENDIAN*/\"bigEndian\";\r\n\t\t}\r\n\t\treturn Byte._sysEndian;\r\n\t}\r\n\r\n\tByte.BIG_ENDIAN=\"bigEndian\";\r\n\tByte.LITTLE_ENDIAN=\"littleEndian\";\r\n\tByte._sysEndian=null;\r\n\treturn Byte;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*对象缓存统一管理类\r\n*/\r\n//class laya.utils.CacheManager\r\nvar CacheManager=(function(){\r\n\tfunction CacheManager(){}\r\n\t__class(CacheManager,'laya.utils.CacheManager');\r\n\tCacheManager.regCacheByFunction=function(disposeFunction,getCacheListFunction){\r\n\t\tCacheManager.unRegCacheByFunction(disposeFunction,getCacheListFunction);\r\n\t\tvar cache;\r\n\t\tcache={tryDispose:disposeFunction,getCacheList:getCacheListFunction};\r\n\t\tCacheManager._cacheList.push(cache);\r\n\t}\r\n\r\n\tCacheManager.unRegCacheByFunction=function(disposeFunction,getCacheListFunction){\r\n\t\tvar i=0,len=0;\r\n\t\tlen=CacheManager._cacheList.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tif (CacheManager._cacheList[i].tryDispose==disposeFunction && CacheManager._cacheList[i].getCacheList==getCacheListFunction){\r\n\t\t\t\tCacheManager._cacheList.splice(i,1);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tCacheManager.forceDispose=function(){\r\n\t\tvar i=0,len=CacheManager._cacheList.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tCacheManager._cacheList[i].tryDispose(true);\r\n\t\t}\r\n\t}\r\n\r\n\tCacheManager.beginCheck=function(waitTime){\r\n\t\t(waitTime===void 0)&& (waitTime=15000);\r\n\t\tLaya.timer.loop(waitTime,null,CacheManager._checkLoop);\r\n\t}\r\n\r\n\tCacheManager.stopCheck=function(){\r\n\t\tLaya.timer.clear(null,CacheManager._checkLoop);\r\n\t}\r\n\r\n\tCacheManager._checkLoop=function(){\r\n\t\tvar cacheList=CacheManager._cacheList;\r\n\t\tif (cacheList.length < 1)return;\r\n\t\tvar tTime=Browser.now();\r\n\t\tvar count=0;\r\n\t\tvar len=0;\r\n\t\tlen=count=cacheList.length;\r\n\t\twhile (count > 0){\r\n\t\t\tCacheManager._index++;\r\n\t\t\tCacheManager._index=CacheManager._index % len;\r\n\t\t\tcacheList[CacheManager._index].tryDispose(false);\r\n\t\t\tif (Browser.now()-tTime > CacheManager.loopTimeLimit)break ;\r\n\t\t\tcount--;\r\n\t\t}\r\n\t}\r\n\r\n\tCacheManager.loopTimeLimit=2;\r\n\tCacheManager._cacheList=[];\r\n\tCacheManager._index=0;\r\n\treturn CacheManager;\r\n})()\r\n\r\n\r\n/**\r\n*<code>ClassUtils</code> 是一个类工具类。\r\n*/\r\n//class laya.utils.ClassUtils\r\nvar ClassUtils=(function(){\r\n\tfunction ClassUtils(){}\r\n\t__class(ClassUtils,'laya.utils.ClassUtils');\r\n\tClassUtils.regClass=function(className,classDef){\r\n\t\tClassUtils._classMap[className]=classDef;\r\n\t}\r\n\r\n\tClassUtils.getRegClass=function(className){\r\n\t\treturn ClassUtils._classMap[className];\r\n\t}\r\n\r\n\tClassUtils.getInstance=function(className){\r\n\t\tvar compClass=ClassUtils.getClass(className);\r\n\t\tif (compClass)\r\n\t\t\treturn new compClass();\r\n\t\telse\r\n\t\tconsole.warn(\"[error] Undefined class:\",className);\r\n\t\treturn null;\r\n\t}\r\n\r\n\tClassUtils.createByJson=function(json,node,root,customHandler,instanceHandler){\r\n\t\tif ((typeof json=='string'))\r\n\t\t\tjson=JSON.parse(json);\r\n\t\tvar props=json.props;\r\n\t\tif (!node){\r\n\t\t\tnode=instanceHandler ? instanceHandler.runWith(json):ClassUtils.getInstance(props.runtime || json.type);\r\n\t\t\tif (!node)\r\n\t\t\t\treturn null;\r\n\t\t};\r\n\t\tvar child=json.child;\r\n\t\tif (child){\r\n\t\t\tfor (var i=0,n=child.length;i < n;i++){\r\n\t\t\t\tvar data=child[i];\r\n\t\t\t\tif ((data.props.name===\"render\" || data.props.renderType===\"render\")&& node[\"_$set_itemRender\"])\r\n\t\t\t\t\tnode.itemRender=data;\r\n\t\t\t\telse {\r\n\t\t\t\t\tif (data.type==\"Graphic\"){\r\n\t\t\t\t\t\tClassUtils.addGraphicsToSprite(data,node);\r\n\t\t\t\t\t\t}else if (ClassUtils.isDrawType(data.type)){\r\n\t\t\t\t\t\tClassUtils.addGraphicToSprite(data,node,true);\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tvar tChild=ClassUtils.createByJson(data,null,root,customHandler,instanceHandler)\r\n\t\t\t\t\t\tif (data.type==\"Script\"){\r\n\t\t\t\t\t\t\tif (tChild.hasOwnProperty(\"owner\")){\r\n\t\t\t\t\t\t\t\ttChild[\"owner\"]=node;\r\n\t\t\t\t\t\t\t\t}else if (tChild.hasOwnProperty(\"target\")){\r\n\t\t\t\t\t\t\t\ttChild[\"target\"]=node;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}else if (data.props.renderType==\"mask\"){\r\n\t\t\t\t\t\t\tnode.mask=tChild;\r\n\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\tnode.addChild(tChild);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (props){\r\n\t\t\tfor (var prop in props){\r\n\t\t\t\tvar value=props[prop];\r\n\t\t\t\tif (prop===\"var\" && root){\r\n\t\t\t\t\troot[value]=node;\r\n\t\t\t\t\t}else if ((value instanceof Array)&& (typeof (node[prop])=='function')){\r\n\t\t\t\t\tnode[prop].apply(node,value);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tnode[prop]=value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (customHandler && json.customProps){\r\n\t\t\tcustomHandler.runWith([node,json]);\r\n\t\t}\r\n\t\tif (node[\"created\"])\r\n\t\t\tnode.created();\r\n\t\treturn node;\r\n\t}\r\n\r\n\tClassUtils.addGraphicsToSprite=function(graphicO,sprite){\r\n\t\tvar graphics;\r\n\t\tgraphics=graphicO.child;\r\n\t\tif (!graphics || graphics.length < 1)\r\n\t\t\treturn;\r\n\t\tvar g;\r\n\t\tg=ClassUtils._getGraphicsFromSprite(graphicO,sprite);\r\n\t\tvar ox=0;\r\n\t\tvar oy=0;\r\n\t\tif (graphicO.props){\r\n\t\t\tox=ClassUtils._getObjVar(graphicO.props,\"x\",0);\r\n\t\t\toy=ClassUtils._getObjVar(graphicO.props,\"y\",0);\r\n\t\t}\r\n\t\tif (ox !=0 && oy !=0){\r\n\t\t\tg.translate(ox,oy);\r\n\t\t};\r\n\t\tvar i=0,len=0;\r\n\t\tlen=graphics.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tClassUtils._addGraphicToGraphics(graphics[i],g);\r\n\t\t}\r\n\t\tif (ox !=0 && oy !=0){\r\n\t\t\tg.translate(-ox,-oy);\r\n\t\t}\r\n\t}\r\n\r\n\tClassUtils.addGraphicToSprite=function(graphicO,sprite,isChild){\r\n\t\t(isChild===void 0)&& (isChild=false);\r\n\t\tvar g;\r\n\t\tg=isChild ? ClassUtils._getGraphicsFromSprite(graphicO,sprite):sprite.graphics;\r\n\t\tClassUtils._addGraphicToGraphics(graphicO,g);\r\n\t}\r\n\r\n\tClassUtils._getGraphicsFromSprite=function(dataO,sprite){\r\n\t\tvar g;\r\n\t\tif (!dataO || !dataO.props)\r\n\t\t\treturn sprite.graphics;\r\n\t\tvar propsName;\r\n\t\tpropsName=dataO.props.renderType;\r\n\t\tswitch (propsName){\r\n\t\t\tcase \"hit\":\r\n\t\t\tcase \"unHit\":;\r\n\t\t\t\tvar hitArea;\r\n\t\t\t\tif (!sprite.hitArea){\r\n\t\t\t\t\tsprite.hitArea=new HitArea();\r\n\t\t\t\t}\r\n\t\t\t\thitArea=sprite.hitArea;\r\n\t\t\t\tif (!hitArea[propsName]){\r\n\t\t\t\t\thitArea[propsName]=new Graphics();\r\n\t\t\t\t}\r\n\t\t\t\tg=hitArea[propsName];\r\n\t\t\t\tbreak ;\r\n\t\t\tdefault :\r\n\t\t\t}\r\n\t\tif (!g)\r\n\t\t\tg=sprite.graphics;\r\n\t\treturn g;\r\n\t}\r\n\r\n\tClassUtils._getTransformData=function(propsO){\r\n\t\tvar m;\r\n\t\tif (propsO.hasOwnProperty(\"pivotX\")|| propsO.hasOwnProperty(\"pivotY\")){\r\n\t\t\tm=m || new Matrix();\r\n\t\t\tm.translate(-ClassUtils._getObjVar(propsO,\"pivotX\",0),-ClassUtils._getObjVar(propsO,\"pivotY\",0));\r\n\t\t};\r\n\t\tvar sx=ClassUtils._getObjVar(propsO,\"scaleX\",1),sy=ClassUtils._getObjVar(propsO,\"scaleY\",1);\r\n\t\tvar rotate=ClassUtils._getObjVar(propsO,\"rotation\",0);\r\n\t\tvar skewX=ClassUtils._getObjVar(propsO,\"skewX\",0);\r\n\t\tvar skewY=ClassUtils._getObjVar(propsO,\"skewY\",0);\r\n\t\tif (sx !=1 || sy !=1 || rotate !=0){\r\n\t\t\tm=m || new Matrix();\r\n\t\t\tm.scale(sx,sy);\r\n\t\t\tm.rotate(rotate *0.0174532922222222);\r\n\t\t}\r\n\t\treturn m;\r\n\t}\r\n\r\n\tClassUtils._addGraphicToGraphics=function(graphicO,graphic){\r\n\t\tvar propsO;\r\n\t\tpropsO=graphicO.props;\r\n\t\tif (!propsO)\r\n\t\t\treturn;\r\n\t\tvar drawConfig;\r\n\t\tdrawConfig=ClassUtils.DrawTypeDic[graphicO.type];\r\n\t\tif (!drawConfig)\r\n\t\t\treturn;\r\n\t\tvar g;\r\n\t\tg=graphic;\r\n\t\tvar m;\r\n\t\tvar params=ClassUtils._getParams(propsO,drawConfig[1],drawConfig[2],drawConfig[3]);\r\n\t\tm=ClassUtils._tM;\r\n\t\tif (m || ClassUtils._alpha !=1){\r\n\t\t\tg.save();\r\n\t\t\tif (m)\r\n\t\t\t\tg.transform(m);\r\n\t\t\tif (ClassUtils._alpha !=1)\r\n\t\t\t\tg.alpha(ClassUtils._alpha);\r\n\t\t}\r\n\t\tg[drawConfig[0]].apply(g,params);\r\n\t\tif (m || ClassUtils._alpha !=1){\r\n\t\t\tg.restore();\r\n\t\t}\r\n\t}\r\n\r\n\tClassUtils._adptLineData=function(params){\r\n\t\tparams[2]=parseFloat(params[0])+parseFloat(params[2]);\r\n\t\tparams[3]=parseFloat(params[1])+parseFloat(params[3]);\r\n\t\treturn params;\r\n\t}\r\n\r\n\tClassUtils._adptTextureData=function(params){\r\n\t\tparams[0]=Loader.getRes(params[0]);\r\n\t\treturn params;\r\n\t}\r\n\r\n\tClassUtils._adptLinesData=function(params){\r\n\t\tparams[2]=ClassUtils._getPointListByStr(params[2]);\r\n\t\treturn params;\r\n\t}\r\n\r\n\tClassUtils.isDrawType=function(type){\r\n\t\tif (type==\"Image\")\r\n\t\t\treturn false;\r\n\t\treturn ClassUtils.DrawTypeDic.hasOwnProperty(type);\r\n\t}\r\n\r\n\tClassUtils._getParams=function(obj,params,xPos,adptFun){\r\n\t\t(xPos===void 0)&& (xPos=0);\r\n\t\tvar rst;\r\n\t\trst=ClassUtils._temParam;\r\n\t\trst.length=params.length;\r\n\t\tvar i=0,len=0;\r\n\t\tlen=params.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\trst[i]=ClassUtils._getObjVar(obj,params[i][0],params[i][1]);\r\n\t\t}\r\n\t\tClassUtils._alpha=ClassUtils._getObjVar(obj,\"alpha\",1);\r\n\t\tvar m;\r\n\t\tm=ClassUtils._getTransformData(obj);\r\n\t\tif (m){\r\n\t\t\tif (!xPos)xPos=0;\r\n\t\t\tm.translate(rst[xPos],rst[xPos+1]);\r\n\t\t\trst[xPos]=rst[xPos+1]=0;\r\n\t\t\tClassUtils._tM=m;\r\n\t\t\t}else {\r\n\t\t\tClassUtils._tM=null;\r\n\t\t}\r\n\t\tif (adptFun && ClassUtils[adptFun]){\r\n\t\t\trst=ClassUtils[adptFun](rst);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tClassUtils._getPointListByStr=function(str){\r\n\t\tvar pointArr;\r\n\t\tpointArr=str.split(\",\");\r\n\t\tvar i=0,len=0;\r\n\t\tlen=pointArr.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tpointArr[i]=parseFloat(pointArr[i]);\r\n\t\t}\r\n\t\treturn pointArr;\r\n\t}\r\n\r\n\tClassUtils._getObjVar=function(obj,key,noValue){\r\n\t\tif (obj.hasOwnProperty(key)){\r\n\t\t\treturn obj[key];\r\n\t\t}\r\n\t\treturn noValue;\r\n\t}\r\n\r\n\tClassUtils._temParam=[];\r\n\tClassUtils._classMap={'Sprite':'laya.display.Sprite','Text':'laya.display.Text','Animation':'laya.display.Animation','Skeleton':'laya.ani.bone.Skeleton','Particle2D':'laya.particle.Particle2D','div':'laya.html.dom.HTMLDivElement','p':'laya.html.dom.HTMLElement','img':'laya.html.dom.HTMLImageElement','span':'laya.html.dom.HTMLElement','br':'laya.html.dom.HTMLBrElement','style':'laya.html.dom.HTMLStyleElement','font':'laya.html.dom.HTMLElement','a':'laya.html.dom.HTMLElement','#text':'laya.html.dom.HTMLElement'};\r\n\tClassUtils.getClass=function(className){\r\n\t\tvar classObject=ClassUtils._classMap[className] || className;\r\n\t\tif ((typeof classObject=='string'))\r\n\t\t\treturn Laya[\"__classmap\"][classObject];\r\n\t\treturn classObject;\r\n\t}\r\n\r\n\tClassUtils._tM=null;\r\n\tClassUtils._alpha=NaN;\r\n\t__static(ClassUtils,\r\n\t['DrawTypeDic',function(){return this.DrawTypeDic={\"Rect\":[\"drawRect\",[[\"x\",0],[\"y\",0],[\"width\",0],[\"height\",0],[\"fillColor\",null],[\"lineColor\",null],[\"lineWidth\",1]]],\"Circle\":[\"drawCircle\",[[\"x\",0],[\"y\",0],[\"radius\",0],[\"fillColor\",null],[\"lineColor\",null],[\"lineWidth\",1]]],\"Pie\":[\"drawPie\",[[\"x\",0],[\"y\",0],[\"radius\",0],[\"startAngle\",0],[\"endAngle\",0],[\"fillColor\",null],[\"lineColor\",null],[\"lineWidth\",1]]],\"Image\":[\"drawTexture\",[[\"x\",0],[\"y\",0],[\"width\",0],[\"height\",0]]],\"Texture\":[\"drawTexture\",[[\"skin\",null],[\"x\",0],[\"y\",0],[\"width\",0],[\"height\",0]],1,\"_adptTextureData\"],\"FillTexture\":[\"fillTexture\",[[\"skin\",null],[\"x\",0],[\"y\",0],[\"width\",0],[\"height\",0],[\"repeat\",null]],1,\"_adptTextureData\"],\"FillText\":[\"fillText\",[[\"text\",\"\"],[\"x\",0],[\"y\",0],[\"font\",null],[\"color\",null],[\"textAlign\",null]],1],\"Line\":[\"drawLine\",[[\"x\",0],[\"y\",0],[\"toX\",0],[\"toY\",0],[\"lineColor\",null],[\"lineWidth\",0]],0,\"_adptLineData\"],\"Lines\":[\"drawLines\",[[\"x\",0],[\"y\",0],[\"points\",\"\"],[\"lineColor\",null],[\"lineWidth\",0]],0,\"_adptLinesData\"],\"Curves\":[\"drawCurves\",[[\"x\",0],[\"y\",0],[\"points\",\"\"],[\"lineColor\",null],[\"lineWidth\",0]],0,\"_adptLinesData\"],\"Poly\":[\"drawPoly\",[[\"x\",0],[\"y\",0],[\"points\",\"\"],[\"fillColor\",null],[\"lineColor\",null],[\"lineWidth\",1]],0,\"_adptLinesData\"]};}\r\n\t]);\r\n\treturn ClassUtils;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*<code>Color</code> 是一个颜色值处理类。\r\n*/\r\n//class laya.utils.Color\r\nvar Color=(function(){\r\n\tfunction Color(str){\r\n\t\t/**@private */\r\n\t\tthis._color=[];\r\n\t\t/**字符串型颜色值。*/\r\n\t\t//this.strColor=null;\r\n\t\t/**uint 型颜色值。*/\r\n\t\t//this.numColor=0;\r\n\t\t//this._drawStyle=null;\r\n\t\tif ((typeof str=='string')){\r\n\t\t\tthis.strColor=str;\r\n\t\t\tif (str===null)str=\"#000000\";\r\n\t\t\tstr.charAt(0)=='#' && (str=str.substr(1));\r\n\t\t\tvar len=str.length;\r\n\t\t\tif (len==3 || len==4){\r\n\t\t\t\tvar temp=\"\";\r\n\t\t\t\tfor (var i=0;i < len;i++){\r\n\t\t\t\t\ttemp+=(str[i]+str[i]);\r\n\t\t\t\t}\r\n\t\t\t\tstr=temp;\r\n\t\t\t};\r\n\t\t\tvar color=this.numColor=parseInt(str,16);\r\n\t\t\tvar flag=(str.length==8);\r\n\t\t\tif (flag){\r\n\t\t\t\tthis._color=[parseInt(str.substr(0,2),16)/ 255,((0x00FF0000 & color)>> 16)/ 255,((0x0000FF00 & color)>> 8)/ 255,(0x000000FF & color)/ 255];\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tcolor=this.numColor=str;\r\n\t\t\tthis.strColor=Utils.toHexColor(color);\r\n\t\t}\r\n\t\tthis._color=[((0xFF0000 & color)>> 16)/ 255,((0xFF00 & color)>> 8)/ 255,(0xFF & color)/ 255,1];\r\n\t\t(this._color).__id=++Color._COLODID;\r\n\t}\r\n\r\n\t__class(Color,'laya.utils.Color');\r\n\tColor._initDefault=function(){\r\n\t\tColor._DEFAULT={};\r\n\t\tfor (var i in Color._COLOR_MAP)Color._SAVE[i]=Color._DEFAULT[i]=new Color(Color._COLOR_MAP[i]);\r\n\t\treturn Color._DEFAULT;\r\n\t}\r\n\r\n\tColor._initSaveMap=function(){\r\n\t\tColor._SAVE_SIZE=0;\r\n\t\tColor._SAVE={};\r\n\t\tfor (var i in Color._DEFAULT)Color._SAVE[i]=Color._DEFAULT[i];\r\n\t}\r\n\r\n\tColor.create=function(str){\r\n\t\tvar color=Color._SAVE[str+\"\"];\r\n\t\tif (color !=null)return color;\r\n\t\t(Color._SAVE_SIZE < 1000)|| Color._initSaveMap();\r\n\t\treturn Color._SAVE[str+\"\"]=new Color(str);\r\n\t}\r\n\r\n\tColor._SAVE={};\r\n\tColor._SAVE_SIZE=0;\r\n\tColor._COLOR_MAP={\"white\":'#FFFFFF',\"red\":'#FF0000',\"green\":'#00FF00',\"blue\":'#0000FF',\"black\":'#000000',\"yellow\":'#FFFF00','gray':'#AAAAAA'};\r\n\tColor._DEFAULT=Color._initDefault();\r\n\tColor._COLODID=1;\r\n\treturn Color;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Dictionary</code> 是一个字典型的数据存取类。\r\n*/\r\n//class laya.utils.Dictionary\r\nvar Dictionary=(function(){\r\n\tfunction Dictionary(){\r\n\t\tthis._values=[];\r\n\t\tthis._keys=[];\r\n\t}\r\n\r\n\t__class(Dictionary,'laya.utils.Dictionary');\r\n\tvar __proto=Dictionary.prototype;\r\n\t/**\r\n\t*给指定的键名设置值。\r\n\t*@param key 键名。\r\n\t*@param value 值。\r\n\t*/\r\n\t__proto.set=function(key,value){\r\n\t\tvar index=this.indexOf(key);\r\n\t\tif (index >=0){\r\n\t\t\tthis._values[index]=value;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._keys.push(key);\r\n\t\tthis._values.push(value);\r\n\t}\r\n\r\n\t/**\r\n\t*获取指定对象的键名索引。\r\n\t*@param key 键名对象。\r\n\t*@return 键名索引。\r\n\t*/\r\n\t__proto.indexOf=function(key){\r\n\t\tvar index=this._keys.indexOf(key);\r\n\t\tif (index >=0)return index;\r\n\t\tkey=((typeof key=='string'))? Number(key):(((typeof key=='number'))? key.toString():key);\r\n\t\treturn this._keys.indexOf(key);\r\n\t}\r\n\r\n\t/**\r\n\t*返回指定键名的值。\r\n\t*@param key 键名对象。\r\n\t*@return 指定键名的值。\r\n\t*/\r\n\t__proto.get=function(key){\r\n\t\tvar index=this.indexOf(key);\r\n\t\treturn index < 0 ? null :this._values[index];\r\n\t}\r\n\r\n\t/**\r\n\t*移除指定键名的值。\r\n\t*@param key 键名对象。\r\n\t*@return 是否成功移除。\r\n\t*/\r\n\t__proto.remove=function(key){\r\n\t\tvar index=this.indexOf(key);\r\n\t\tif (index >=0){\r\n\t\t\tthis._keys.splice(index,1);\r\n\t\t\tthis._values.splice(index,1);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t*清除此对象的键名列表和键值列表。\r\n\t*/\r\n\t__proto.clear=function(){\r\n\t\tthis._values.length=0;\r\n\t\tthis._keys.length=0;\r\n\t}\r\n\r\n\t/**\r\n\t*获取所有的子元素列表。\r\n\t*/\r\n\t__getset(0,__proto,'values',function(){\r\n\t\treturn this._values;\r\n\t});\r\n\r\n\t/**\r\n\t*获取所有的子元素键名列表。\r\n\t*/\r\n\t__getset(0,__proto,'keys',function(){\r\n\t\treturn this._keys;\r\n\t});\r\n\r\n\treturn Dictionary;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*<code>Dragging</code> 类是触摸滑动控件。\r\n*/\r\n//class laya.utils.Dragging\r\nvar Dragging=(function(){\r\n\tfunction Dragging(){\r\n\t\t/**被拖动的对象。*/\r\n\t\t//this.target=null;\r\n\t\t/**缓动衰减系数。*/\r\n\t\tthis.ratio=0.92;\r\n\t\t/**单帧最大偏移量。*/\r\n\t\tthis.maxOffset=60;\r\n\t\t/**滑动范围。*/\r\n\t\t//this.area=null;\r\n\t\t/**表示拖动是否有惯性。*/\r\n\t\t//this.hasInertia=false;\r\n\t\t/**橡皮筋最大值。*/\r\n\t\t//this.elasticDistance=NaN;\r\n\t\t/**橡皮筋回弹时间，单位为毫秒。*/\r\n\t\t//this.elasticBackTime=NaN;\r\n\t\t/**事件携带数据。*/\r\n\t\t//this.data=null;\r\n\t\tthis._dragging=false;\r\n\t\tthis._clickOnly=true;\r\n\t\t//this._elasticRateX=NaN;\r\n\t\t//this._elasticRateY=NaN;\r\n\t\t//this._lastX=NaN;\r\n\t\t//this._lastY=NaN;\r\n\t\t//this._offsetX=NaN;\r\n\t\t//this._offsetY=NaN;\r\n\t\t//this._offsets=null;\r\n\t\t//this._disableMouseEvent=false;\r\n\t\t//this._tween=null;\r\n\t\t//this._parent=null;\r\n\t}\r\n\r\n\t__class(Dragging,'laya.utils.Dragging');\r\n\tvar __proto=Dragging.prototype;\r\n\t/**\r\n\t*开始拖拽。\r\n\t*@param target 待拖拽的 <code>Sprite</code> 对象。\r\n\t*@param area 滑动范围。\r\n\t*@param hasInertia 拖动是否有惯性。\r\n\t*@param elasticDistance 橡皮筋最大值。\r\n\t*@param elasticBackTime 橡皮筋回弹时间，单位为毫秒。\r\n\t*@param data 事件携带数据。\r\n\t*@param disableMouseEvent 鼠标事件是否有效。\r\n\t*@param ratio 惯性阻尼系数\r\n\t*/\r\n\t__proto.start=function(target,area,hasInertia,elasticDistance,elasticBackTime,data,disableMouseEvent,ratio){\r\n\t\t(ratio===void 0)&& (ratio=0.92);\r\n\t\tthis.clearTimer();\r\n\t\tthis.target=target;\r\n\t\tthis.area=area;\r\n\t\tthis.hasInertia=hasInertia;\r\n\t\tthis.elasticDistance=area ? elasticDistance :0;\r\n\t\tthis.elasticBackTime=elasticBackTime;\r\n\t\tthis.data=data;\r\n\t\tthis._disableMouseEvent=disableMouseEvent;\r\n\t\tthis.ratio=ratio;\r\n\t\tif (target.globalScaleX !=1 || target.globalScaleY !=1){\r\n\t\t\tthis._parent=target.parent;\r\n\t\t\t}else {\r\n\t\t\tthis._parent=Laya.stage;\r\n\t\t}\r\n\t\tthis._clickOnly=true;\r\n\t\tthis._dragging=true;\r\n\t\tthis._elasticRateX=this._elasticRateY=1;\r\n\t\tthis._lastX=this._parent.mouseX;\r\n\t\tthis._lastY=this._parent.mouseY;\r\n\t\tLaya.stage.on(/*laya.events.Event.MOUSE_UP*/\"mouseup\",this,this.onStageMouseUp);\r\n\t\tLaya.stage.on(/*laya.events.Event.MOUSE_OUT*/\"mouseout\",this,this.onStageMouseUp);\r\n\t\tLaya.timer.frameLoop(1,this,this.loop);\r\n\t}\r\n\r\n\t/**\r\n\t*清除计时器。\r\n\t*/\r\n\t__proto.clearTimer=function(){\r\n\t\tLaya.timer.clear(this,this.loop);\r\n\t\tLaya.timer.clear(this,this.tweenMove);\r\n\t\tif (this._tween){\r\n\t\t\tthis._tween.recover();\r\n\t\t\tthis._tween=null;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*停止拖拽。\r\n\t*/\r\n\t__proto.stop=function(){\r\n\t\tif (this._dragging){\r\n\t\t\tMouseManager.instance.disableMouseEvent=false;\r\n\t\t\tLaya.stage.off(/*laya.events.Event.MOUSE_UP*/\"mouseup\",this,this.onStageMouseUp);\r\n\t\t\tLaya.stage.off(/*laya.events.Event.MOUSE_OUT*/\"mouseout\",this,this.onStageMouseUp);\r\n\t\t\tthis._dragging=false;\r\n\t\t\tthis.target && this.area && this.backToArea();\r\n\t\t\tthis.clear();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*拖拽的循环处理函数。\r\n\t*/\r\n\t__proto.loop=function(){\r\n\t\tvar point=this._parent.getMousePoint();\r\n\t\tvar mouseX=point.x;\r\n\t\tvar mouseY=point.y;\r\n\t\tvar offsetX=mouseX-this._lastX;\r\n\t\tvar offsetY=mouseY-this._lastY;\r\n\t\tif (this._clickOnly){\r\n\t\t\tif (Math.abs(offsetX *Laya.stage._canvasTransform.getScaleX())> 1 || Math.abs(offsetY *Laya.stage._canvasTransform.getScaleY())> 1){\r\n\t\t\t\tthis._clickOnly=false;\r\n\t\t\t\tthis._offsets || (this._offsets=[]);\r\n\t\t\t\tthis._offsets.length=0;\r\n\t\t\t\tthis.target.event(/*laya.events.Event.DRAG_START*/\"dragstart\",this.data);\r\n\t\t\t\tMouseManager.instance.disableMouseEvent=this._disableMouseEvent;\r\n\t\t\t\tthis.target._set$P(\"$_MOUSEDOWN\",false);\r\n\t\t\t}else return;\r\n\t\t\t}else {\r\n\t\t\tthis._offsets.push(offsetX,offsetY);\r\n\t\t}\r\n\t\tif (offsetX===0 && offsetY===0)return;\r\n\t\tthis._lastX=mouseX;\r\n\t\tthis._lastY=mouseY;\r\n\t\tthis.target.x+=offsetX *this._elasticRateX;\r\n\t\tthis.target.y+=offsetY *this._elasticRateY;\r\n\t\tthis.area && this.checkArea();\r\n\t\tthis.target.event(/*laya.events.Event.DRAG_MOVE*/\"dragmove\",this.data);\r\n\t}\r\n\r\n\t/**\r\n\t*拖拽区域检测。\r\n\t*/\r\n\t__proto.checkArea=function(){\r\n\t\tif (this.elasticDistance <=0){\r\n\t\t\tthis.backToArea();\r\n\t\t\t}else {\r\n\t\t\tif (this.target.x < this.area.x){\r\n\t\t\t\tvar offsetX=this.area.x-this.target.x;\r\n\t\t\t\t}else if (this.target.x > this.area.x+this.area.width){\r\n\t\t\t\toffsetX=this.target.x-this.area.x-this.area.width;\r\n\t\t\t\t}else {\r\n\t\t\t\toffsetX=0;\r\n\t\t\t}\r\n\t\t\tthis._elasticRateX=Math.max(0,1-(offsetX / this.elasticDistance));\r\n\t\t\tif (this.target.y < this.area.y){\r\n\t\t\t\tvar offsetY=this.area.y-this.target.y;\r\n\t\t\t\t}else if (this.target.y > this.area.y+this.area.height){\r\n\t\t\t\toffsetY=this.target.y-this.area.y-this.area.height;\r\n\t\t\t\t}else {\r\n\t\t\t\toffsetY=0;\r\n\t\t\t}\r\n\t\t\tthis._elasticRateY=Math.max(0,1-(offsetY / this.elasticDistance));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*移动至设定的拖拽区域。\r\n\t*/\r\n\t__proto.backToArea=function(){\r\n\t\tthis.target.x=Math.min(Math.max(this.target.x,this.area.x),this.area.x+this.area.width);\r\n\t\tthis.target.y=Math.min(Math.max(this.target.y,this.area.y),this.area.y+this.area.height);\r\n\t}\r\n\r\n\t/**\r\n\t*舞台的抬起事件侦听函数。\r\n\t*@param e Event 对象。\r\n\t*/\r\n\t__proto.onStageMouseUp=function(e){\r\n\t\tMouseManager.instance.disableMouseEvent=false;\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_UP*/\"mouseup\",this,this.onStageMouseUp);\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_OUT*/\"mouseout\",this,this.onStageMouseUp);\r\n\t\tLaya.timer.clear(this,this.loop);\r\n\t\tif (this._clickOnly || !this.target)return;\r\n\t\tif (this.hasInertia){\r\n\t\t\tif (this._offsets.length < 1){\r\n\t\t\t\tthis._offsets.push(this._parent.mouseX-this._lastX,this._parent.mouseY-this._lastY);\r\n\t\t\t}\r\n\t\t\tthis._offsetX=this._offsetY=0;\r\n\t\t\tvar len=this._offsets.length;\r\n\t\t\tvar n=Math.min(len,6);\r\n\t\t\tvar m=this._offsets.length-n;\r\n\t\t\tfor (var i=len-1;i > m;i--){\r\n\t\t\t\tthis._offsetY+=this._offsets[i--];\r\n\t\t\t\tthis._offsetX+=this._offsets[i];\r\n\t\t\t}\r\n\t\t\tthis._offsetX=this._offsetX / n *2;\r\n\t\t\tthis._offsetY=this._offsetY / n *2;\r\n\t\t\tif (Math.abs(this._offsetX)> this.maxOffset)this._offsetX=this._offsetX > 0 ? this.maxOffset :-this.maxOffset;\r\n\t\t\tif (Math.abs(this._offsetY)> this.maxOffset)this._offsetY=this._offsetY > 0 ? this.maxOffset :-this.maxOffset;\r\n\t\t\tLaya.timer.frameLoop(1,this,this.tweenMove);\r\n\t\t\t}else if (this.elasticDistance > 0){\r\n\t\t\tthis.checkElastic();\r\n\t\t\t}else {\r\n\t\t\tthis.clear();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*橡皮筋效果检测。\r\n\t*/\r\n\t__proto.checkElastic=function(){\r\n\t\tvar tx=NaN;\r\n\t\tvar ty=NaN;\r\n\t\tif (this.target.x < this.area.x)tx=this.area.x;\r\n\t\telse if (this.target.x > this.area.x+this.area.width)tx=this.area.x+this.area.width;\r\n\t\tif (this.target.y < this.area.y)ty=this.area.y;\r\n\t\telse if (this.target.y > this.area.y+this.area.height)ty=this.area.y+this.area.height;\r\n\t\tif (!isNaN(tx)|| !isNaN(ty)){\r\n\t\t\tvar obj={};\r\n\t\t\tif (!isNaN(tx))obj.x=tx;\r\n\t\t\tif (!isNaN(ty))obj.y=ty;\r\n\t\t\tthis._tween=Tween.to(this.target,obj,this.elasticBackTime,Ease.sineOut,Handler.create(this,this.clear),0,false,false);\r\n\t\t\t}else {\r\n\t\t\tthis.clear();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*移动。\r\n\t*/\r\n\t__proto.tweenMove=function(){\r\n\t\tthis._offsetX *=this.ratio *this._elasticRateX;\r\n\t\tthis._offsetY *=this.ratio *this._elasticRateY;\r\n\t\tthis.target.x+=this._offsetX;\r\n\t\tthis.target.y+=this._offsetY;\r\n\t\tthis.area && this.checkArea();\r\n\t\tthis.target.event(/*laya.events.Event.DRAG_MOVE*/\"dragmove\",this.data);\r\n\t\tif ((Math.abs(this._offsetX)< 1 && Math.abs(this._offsetY)< 1)|| this._elasticRateX < 0.5 || this._elasticRateY < 0.5){\r\n\t\t\tLaya.timer.clear(this,this.tweenMove);\r\n\t\t\tif (this.elasticDistance > 0)this.checkElastic();\r\n\t\t\telse this.clear();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*结束拖拽。\r\n\t*/\r\n\t__proto.clear=function(){\r\n\t\tif (this.target){\r\n\t\t\tthis.clearTimer();\r\n\t\t\tvar sp=this.target;\r\n\t\t\tthis.target=null;\r\n\t\t\tthis._parent=null;\r\n\t\t\tsp.event(/*laya.events.Event.DRAG_END*/\"dragend\",this.data);\r\n\t\t}\r\n\t}\r\n\r\n\treturn Dragging;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Ease</code> 类定义了缓动函数，以便实现 <code>Tween</code> 动画的缓动效果。\r\n*/\r\n//class laya.utils.Ease\r\nvar Ease=(function(){\r\n\tfunction Ease(){}\r\n\t__class(Ease,'laya.utils.Ease');\r\n\tEase.linearNone=function(t,b,c,d){\r\n\t\treturn c *t / d+b;\r\n\t}\r\n\r\n\tEase.linearIn=function(t,b,c,d){\r\n\t\treturn c *t / d+b;\r\n\t}\r\n\r\n\tEase.linearInOut=function(t,b,c,d){\r\n\t\treturn c *t / d+b;\r\n\t}\r\n\r\n\tEase.linearOut=function(t,b,c,d){\r\n\t\treturn c *t / d+b;\r\n\t}\r\n\r\n\tEase.bounceIn=function(t,b,c,d){\r\n\t\treturn c-Ease.bounceOut(d-t,0,c,d)+b;\r\n\t}\r\n\r\n\tEase.bounceInOut=function(t,b,c,d){\r\n\t\tif (t < d *0.5)return Ease.bounceIn(t *2,0,c,d)*.5+b;\r\n\t\telse return Ease.bounceOut(t *2-d,0,c,d)*.5+c *.5+b;\r\n\t}\r\n\r\n\tEase.bounceOut=function(t,b,c,d){\r\n\t\tif ((t /=d)< (1 / 2.75))return c *(7.5625 *t *t)+b;\r\n\t\telse if (t < (2 / 2.75))return c *(7.5625 *(t-=(1.5 / 2.75))*t+.75)+b;\r\n\t\telse if (t < (2.5 / 2.75))return c *(7.5625 *(t-=(2.25 / 2.75))*t+.9375)+b;\r\n\t\telse return c *(7.5625 *(t-=(2.625 / 2.75))*t+.984375)+b;\r\n\t}\r\n\r\n\tEase.backIn=function(t,b,c,d,s){\r\n\t\t(s===void 0)&& (s=1.70158);\r\n\t\treturn c *(t /=d)*t *((s+1)*t-s)+b;\r\n\t}\r\n\r\n\tEase.backInOut=function(t,b,c,d,s){\r\n\t\t(s===void 0)&& (s=1.70158);\r\n\t\tif ((t /=d *0.5)< 1)return c *0.5 *(t *t *(((s *=(1.525))+1)*t-s))+b;\r\n\t\treturn c / 2 *((t-=2)*t *(((s *=(1.525))+1)*t+s)+2)+b;\r\n\t}\r\n\r\n\tEase.backOut=function(t,b,c,d,s){\r\n\t\t(s===void 0)&& (s=1.70158);\r\n\t\treturn c *((t=t / d-1)*t *((s+1)*t+s)+1)+b;\r\n\t}\r\n\r\n\tEase.elasticIn=function(t,b,c,d,a,p){\r\n\t\t(a===void 0)&& (a=0);\r\n\t\t(p===void 0)&& (p=0);\r\n\t\tvar s;\r\n\t\tif (t==0)return b;\r\n\t\tif ((t /=d)==1)return b+c;\r\n\t\tif (!p)p=d *.3;\r\n\t\tif (!a || (c > 0 && a < c)|| (c < 0 && a <-c)){\r\n\t\t\ta=c;\r\n\t\t\ts=p / 4;\r\n\t\t}else s=p / Ease.PI2 *Math.asin(c / a);\r\n\t\treturn-(a *Math.pow(2,10 *(t-=1))*Math.sin((t *d-s)*Ease.PI2 / p))+b;\r\n\t}\r\n\r\n\tEase.elasticInOut=function(t,b,c,d,a,p){\r\n\t\t(a===void 0)&& (a=0);\r\n\t\t(p===void 0)&& (p=0);\r\n\t\tvar s;\r\n\t\tif (t==0)return b;\r\n\t\tif ((t /=d *0.5)==2)return b+c;\r\n\t\tif (!p)p=d *(.3 *1.5);\r\n\t\tif (!a || (c > 0 && a < c)|| (c < 0 && a <-c)){\r\n\t\t\ta=c;\r\n\t\t\ts=p / 4;\r\n\t\t}else s=p / Ease.PI2 *Math.asin(c / a);\r\n\t\tif (t < 1)return-.5 *(a *Math.pow(2,10 *(t-=1))*Math.sin((t *d-s)*Ease.PI2 / p))+b;\r\n\t\treturn a *Math.pow(2,-10 *(t-=1))*Math.sin((t *d-s)*Ease.PI2 / p)*.5+c+b;\r\n\t}\r\n\r\n\tEase.elasticOut=function(t,b,c,d,a,p){\r\n\t\t(a===void 0)&& (a=0);\r\n\t\t(p===void 0)&& (p=0);\r\n\t\tvar s;\r\n\t\tif (t==0)return b;\r\n\t\tif ((t /=d)==1)return b+c;\r\n\t\tif (!p)p=d *.3;\r\n\t\tif (!a || (c > 0 && a < c)|| (c < 0 && a <-c)){\r\n\t\t\ta=c;\r\n\t\t\ts=p / 4;\r\n\t\t}else s=p / Ease.PI2 *Math.asin(c / a);\r\n\t\treturn (a *Math.pow(2,-10 *t)*Math.sin((t *d-s)*Ease.PI2 / p)+c+b);\r\n\t}\r\n\r\n\tEase.strongIn=function(t,b,c,d){\r\n\t\treturn c *(t /=d)*t *t *t *t+b;\r\n\t}\r\n\r\n\tEase.strongInOut=function(t,b,c,d){\r\n\t\tif ((t /=d *0.5)< 1)return c *0.5 *t *t *t *t *t+b;\r\n\t\treturn c *0.5 *((t-=2)*t *t *t *t+2)+b;\r\n\t}\r\n\r\n\tEase.strongOut=function(t,b,c,d){\r\n\t\treturn c *((t=t / d-1)*t *t *t *t+1)+b;\r\n\t}\r\n\r\n\tEase.sineInOut=function(t,b,c,d){\r\n\t\treturn-c *0.5 *(Math.cos(Math.PI *t / d)-1)+b;\r\n\t}\r\n\r\n\tEase.sineIn=function(t,b,c,d){\r\n\t\treturn-c *Math.cos(t / d *Ease.HALF_PI)+c+b;\r\n\t}\r\n\r\n\tEase.sineOut=function(t,b,c,d){\r\n\t\treturn c *Math.sin(t / d *Ease.HALF_PI)+b;\r\n\t}\r\n\r\n\tEase.quintIn=function(t,b,c,d){\r\n\t\treturn c *(t /=d)*t *t *t *t+b;\r\n\t}\r\n\r\n\tEase.quintInOut=function(t,b,c,d){\r\n\t\tif ((t /=d *0.5)< 1)return c *0.5 *t *t *t *t *t+b;\r\n\t\treturn c *0.5 *((t-=2)*t *t *t *t+2)+b;\r\n\t}\r\n\r\n\tEase.quintOut=function(t,b,c,d){\r\n\t\treturn c *((t=t / d-1)*t *t *t *t+1)+b;\r\n\t}\r\n\r\n\tEase.quartIn=function(t,b,c,d){\r\n\t\treturn c *(t /=d)*t *t *t+b;\r\n\t}\r\n\r\n\tEase.quartInOut=function(t,b,c,d){\r\n\t\tif ((t /=d *0.5)< 1)return c *0.5 *t *t *t *t+b;\r\n\t\treturn-c *0.5 *((t-=2)*t *t *t-2)+b;\r\n\t}\r\n\r\n\tEase.quartOut=function(t,b,c,d){\r\n\t\treturn-c *((t=t / d-1)*t *t *t-1)+b;\r\n\t}\r\n\r\n\tEase.cubicIn=function(t,b,c,d){\r\n\t\treturn c *(t /=d)*t *t+b;\r\n\t}\r\n\r\n\tEase.cubicInOut=function(t,b,c,d){\r\n\t\tif ((t /=d *0.5)< 1)return c *0.5 *t *t *t+b;\r\n\t\treturn c *0.5 *((t-=2)*t *t+2)+b;\r\n\t}\r\n\r\n\tEase.cubicOut=function(t,b,c,d){\r\n\t\treturn c *((t=t / d-1)*t *t+1)+b;\r\n\t}\r\n\r\n\tEase.quadIn=function(t,b,c,d){\r\n\t\treturn c *(t /=d)*t+b;\r\n\t}\r\n\r\n\tEase.quadInOut=function(t,b,c,d){\r\n\t\tif ((t /=d *0.5)< 1)return c *0.5 *t *t+b;\r\n\t\treturn-c *0.5 *((--t)*(t-2)-1)+b;\r\n\t}\r\n\r\n\tEase.quadOut=function(t,b,c,d){\r\n\t\treturn-c *(t /=d)*(t-2)+b;\r\n\t}\r\n\r\n\tEase.expoIn=function(t,b,c,d){\r\n\t\treturn (t==0)? b :c *Math.pow(2,10 *(t / d-1))+b-c *0.001;\r\n\t}\r\n\r\n\tEase.expoInOut=function(t,b,c,d){\r\n\t\tif (t==0)return b;\r\n\t\tif (t==d)return b+c;\r\n\t\tif ((t /=d *0.5)< 1)return c *0.5 *Math.pow(2,10 *(t-1))+b;\r\n\t\treturn c *0.5 *(-Math.pow(2,-10 *--t)+2)+b;\r\n\t}\r\n\r\n\tEase.expoOut=function(t,b,c,d){\r\n\t\treturn (t==d)? b+c :c *(-Math.pow(2,-10 *t / d)+1)+b;\r\n\t}\r\n\r\n\tEase.circIn=function(t,b,c,d){\r\n\t\treturn-c *(Math.sqrt(1-(t /=d)*t)-1)+b;\r\n\t}\r\n\r\n\tEase.circInOut=function(t,b,c,d){\r\n\t\tif ((t /=d *0.5)< 1)return-c *0.5 *(Math.sqrt(1-t *t)-1)+b;\r\n\t\treturn c *0.5 *(Math.sqrt(1-(t-=2)*t)+1)+b;\r\n\t}\r\n\r\n\tEase.circOut=function(t,b,c,d){\r\n\t\treturn c *Math.sqrt(1-(t=t / d-1)*t)+b;\r\n\t}\r\n\r\n\tEase.HALF_PI=Math.PI *0.5;\r\n\tEase.PI2=Math.PI *2;\r\n\treturn Ease;\r\n})()\r\n\r\n\r\n/**\r\n*鼠标点击区域，可以设置绘制一系列矢量图作为点击区域和非点击区域（目前只支持圆形，矩形，多边形）\r\n*/\r\n//class laya.utils.HitArea\r\nvar HitArea=(function(){\r\n\tfunction HitArea(){\r\n\t\t/**@private */\r\n\t\tthis._hit=null;\r\n\t\t/**@private */\r\n\t\tthis._unHit=null;\r\n\t}\r\n\r\n\t__class(HitArea,'laya.utils.HitArea');\r\n\tvar __proto=HitArea.prototype;\r\n\t/**\r\n\t*是否包含某个点\r\n\t*@param x x坐标\r\n\t*@param y y坐标\r\n\t*@return 是否点击到\r\n\t*/\r\n\t__proto.isHit=function(x,y){\r\n\t\tif (!HitArea.isHitGraphic(x,y,this.hit))return false;\r\n\t\treturn !HitArea.isHitGraphic(x,y,this.unHit);\r\n\t}\r\n\r\n\t/**\r\n\t*检测对象是否包含指定的点。\r\n\t*@param x 点的 X 轴坐标值（水平位置）。\r\n\t*@param y 点的 Y 轴坐标值（垂直位置）。\r\n\t*@return 如果包含指定的点，则值为 true；否则为 false。\r\n\t*/\r\n\t__proto.contains=function(x,y){\r\n\t\treturn this.isHit(x,y);\r\n\t}\r\n\r\n\t/**\r\n\t*可点击区域，可以设置绘制一系列矢量图作为点击区域（目前只支持圆形，矩形，多边形）\r\n\t*/\r\n\t__getset(0,__proto,'hit',function(){\r\n\t\tif (!this._hit)this._hit=new Graphics();\r\n\t\treturn this._hit;\r\n\t\t},function(value){\r\n\t\tthis._hit=value;\r\n\t});\r\n\r\n\t/**\r\n\t*不可点击区域，可以设置绘制一系列矢量图作为非点击区域（目前只支持圆形，矩形，多边形）\r\n\t*/\r\n\t__getset(0,__proto,'unHit',function(){\r\n\t\tif (!this._unHit)this._unHit=new Graphics();\r\n\t\treturn this._unHit;\r\n\t\t},function(value){\r\n\t\tthis._unHit=value;\r\n\t});\r\n\r\n\tHitArea.isHitGraphic=function(x,y,graphic){\r\n\t\tif (!graphic)return false;\r\n\t\tvar cmds;\r\n\t\tcmds=graphic.cmds;\r\n\t\tif (!cmds && graphic._one){\r\n\t\t\tcmds=HitArea._cmds;\r\n\t\t\tcmds.length=1;\r\n\t\t\tcmds[0]=graphic._one;\r\n\t\t}\r\n\t\tif (!cmds)return false;\r\n\t\tvar i=0,len=0;\r\n\t\tlen=cmds.length;\r\n\t\tvar cmd;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tcmd=cmds[i];\r\n\t\t\tif (!cmd)continue ;\r\n\t\t\tvar context=Render._context;\r\n\t\t\tswitch (cmd.callee){\r\n\t\t\t\tcase context._translate:\r\n\t\t\t\tcase 6:\r\n\t\t\t\t\tx-=cmd[0];\r\n\t\t\t\t\ty-=cmd[1];\r\n\t\t\t\tdefault :\r\n\t\t\t\t}\r\n\t\t\tif (HitArea.isHitCmd(x,y,cmd))return true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tHitArea.isHitCmd=function(x,y,cmd){\r\n\t\tif (!cmd)return false;\r\n\t\tvar context=Render._context;\r\n\t\tvar rst=false;\r\n\t\tswitch (cmd[\"callee\"]){\r\n\t\t\tcase context._drawRect:\r\n\t\t\tcase 13:\r\n\t\t\t\tHitArea._rec.setTo(cmd[0],cmd[1],cmd[2],cmd[3]);\r\n\t\t\t\trst=HitArea._rec.contains(x,y);\r\n\t\t\t\tbreak ;\r\n\t\t\tcase context._drawCircle:\r\n\t\t\tcase context._fillCircle:\r\n\t\t\tcase 14:;\r\n\t\t\t\tvar d=NaN;\r\n\t\t\t\tx-=cmd[0];\r\n\t\t\t\ty-=cmd[1];\r\n\t\t\t\td=x *x+y *y;\r\n\t\t\t\trst=d < cmd[2] *cmd[2];\r\n\t\t\t\tbreak ;\r\n\t\t\tcase context._drawPoly:\r\n\t\t\tcase 18:\r\n\t\t\t\tx-=cmd[0];\r\n\t\t\t\ty-=cmd[1];\r\n\t\t\t\trst=HitArea.ptInPolygon(x,y,cmd[2]);\r\n\t\t\t\tbreak ;\r\n\t\t\tdefault :\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tHitArea.ptInPolygon=function(x,y,areaPoints){\r\n\t\tvar p;\r\n\t\tp=HitArea._ptPoint;\r\n\t\tp.setTo(x,y);\r\n\t\tvar nCross=0;\r\n\t\tvar p1x=NaN,p1y=NaN,p2x=NaN,p2y=NaN;\r\n\t\tvar len=0;\r\n\t\tlen=areaPoints.length;\r\n\t\tfor (var i=0;i < len;i+=2){\r\n\t\t\tp1x=areaPoints[i];\r\n\t\t\tp1y=areaPoints[i+1];\r\n\t\t\tp2x=areaPoints[(i+2)% len];\r\n\t\t\tp2y=areaPoints[(i+3)% len];\r\n\t\t\tif (p1y==p2y)\r\n\t\t\t\tcontinue ;\r\n\t\t\tif (p.y < Math.min(p1y,p2y))\r\n\t\t\t\tcontinue ;\r\n\t\t\tif (p.y >=Math.max(p1y,p2y))\r\n\t\t\t\tcontinue ;\r\n\t\t\tvar tx=(p.y-p1y)*(p2x-p1x)/ (p2y-p1y)+p1x;\r\n\t\t\tif (tx > p.x){\r\n\t\t\t\tnCross++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn (nCross % 2==1);\r\n\t}\r\n\r\n\tHitArea._cmds=[];\r\n\t__static(HitArea,\r\n\t['_rec',function(){return this._rec=new Rectangle();},'_ptPoint',function(){return this._ptPoint=new Point();}\r\n\t]);\r\n\treturn HitArea;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*<code>HTMLChar</code> 是一个 HTML 字符类。\r\n*/\r\n//class laya.utils.HTMLChar\r\nvar HTMLChar=(function(){\r\n\tfunction HTMLChar(char,w,h,style){\r\n\t\t//this._sprite=null;\r\n\t\t//this._x=NaN;\r\n\t\t//this._y=NaN;\r\n\t\t//this._w=NaN;\r\n\t\t//this._h=NaN;\r\n\t\t/**表示是否是正常单词(英文|.|数字)。*/\r\n\t\t//this.isWord=false;\r\n\t\t/**字符。*/\r\n\t\t//this.char=null;\r\n\t\t/**字符数量。*/\r\n\t\t//this.charNum=NaN;\r\n\t\t/**CSS 样式。*/\r\n\t\t//this.style=null;\r\n\t\tthis.char=char;\r\n\t\tthis.charNum=char.charCodeAt(0);\r\n\t\tthis._x=this._y=0;\r\n\t\tthis.width=w;\r\n\t\tthis.height=h;\r\n\t\tthis.style=style;\r\n\t\tthis.isWord=!HTMLChar._isWordRegExp.test(char);\r\n\t}\r\n\r\n\t__class(HTMLChar,'laya.utils.HTMLChar');\r\n\tvar __proto=HTMLChar.prototype;\r\n\tLaya.imps(__proto,{\"laya.display.ILayout\":true})\r\n\t/**\r\n\t*设置与此对象绑定的显示对象 <code>Sprite</code> 。\r\n\t*@param sprite 显示对象 <code>Sprite</code> 。\r\n\t*/\r\n\t__proto.setSprite=function(sprite){\r\n\t\tthis._sprite=sprite;\r\n\t}\r\n\r\n\t/**\r\n\t*获取与此对象绑定的显示对象 <code>Sprite</code>。\r\n\t*@return\r\n\t*/\r\n\t__proto.getSprite=function(){\r\n\t\treturn this._sprite;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._isChar=function(){\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._getCSSStyle=function(){\r\n\t\treturn this.style;\r\n\t}\r\n\r\n\t/**\r\n\t*宽度。\r\n\t*/\r\n\t__getset(0,__proto,'width',function(){\r\n\t\treturn this._w;\r\n\t\t},function(value){\r\n\t\tthis._w=value;\r\n\t});\r\n\r\n\t/**\r\n\t*此对象存储的 X 轴坐标值。\r\n\t*当设置此值时，如果此对象有绑定的 Sprite 对象，则改变 Sprite 对象的属性 x 的值。\r\n\t*/\r\n\t__getset(0,__proto,'x',function(){\r\n\t\treturn this._x;\r\n\t\t},function(value){\r\n\t\tif (this._sprite){\r\n\t\t\tthis._sprite.x=value;\r\n\t\t}\r\n\t\tthis._x=value;\r\n\t});\r\n\r\n\t/**\r\n\t*此对象存储的 Y 轴坐标值。\r\n\t*当设置此值时，如果此对象有绑定的 Sprite 对象，则改变 Sprite 对象的属性 y 的值。\r\n\t*/\r\n\t__getset(0,__proto,'y',function(){\r\n\t\treturn this._y;\r\n\t\t},function(value){\r\n\t\tif (this._sprite){\r\n\t\t\tthis._sprite.y=value;\r\n\t\t}\r\n\t\tthis._y=value;\r\n\t});\r\n\r\n\t/**\r\n\t*高度。\r\n\t*/\r\n\t__getset(0,__proto,'height',function(){\r\n\t\treturn this._h;\r\n\t\t},function(value){\r\n\t\tthis._h=value;\r\n\t});\r\n\r\n\tHTMLChar._isWordRegExp=new RegExp(\"[\\\\w\\.]\",\"\");\r\n\treturn HTMLChar;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Log</code> 类用于在界面内显示日志记录信息。\r\n*/\r\n//class laya.utils.Log\r\nvar Log=(function(){\r\n\tfunction Log(){}\r\n\t__class(Log,'laya.utils.Log');\r\n\tLog.enable=function(){\r\n\t\tif (!Log._logdiv){\r\n\t\t\tLog._logdiv=Browser.window.document.createElement('div');\r\n\t\t\tBrowser.window.document.body.appendChild(Log._logdiv);\r\n\t\t\tLog._logdiv.style.cssText=\"pointer-events:none;border:white;overflow:hidden;z-index:1000000;background:rgba(100,100,100,0.6);color:white;position: absolute;left:0px;top:0px;width:50%;height:50%;\";\r\n\t\t}\r\n\t}\r\n\r\n\tLog.toggle=function(){\r\n\t\tvar style=Log._logdiv.style;\r\n\t\tif (style.width==\"1px\"){\r\n\t\t\tstyle.width=style.height=\"50%\";\r\n\t\t\t}else {\r\n\t\t\tstyle.width=style.height=\"1px\";\r\n\t\t}\r\n\t}\r\n\r\n\tLog.print=function(value){\r\n\t\tif (Log._logdiv){\r\n\t\t\tif (Log._count >=Log.maxCount)Log.clear();\r\n\t\t\tLog._count++;\r\n\t\t\tLog._logdiv.innerText+=value+\"\\n\";\r\n\t\t\tLog._logdiv.scrollTop=Log._logdiv.scrollHeight;\r\n\t\t}\r\n\t}\r\n\r\n\tLog.clear=function(){\r\n\t\tLog._logdiv.innerText=\"\";\r\n\t\tLog._count=0;\r\n\t}\r\n\r\n\tLog._logdiv=null;\r\n\tLog._count=0;\r\n\tLog.maxCount=20;\r\n\treturn Log;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Mouse</code> 类用于控制鼠标光标。\r\n*/\r\n//class laya.utils.Mouse\r\nvar Mouse=(function(){\r\n\tfunction Mouse(){}\r\n\t__class(Mouse,'laya.utils.Mouse');\r\n\t/**\r\n\t*设置鼠标样式\r\n\t*@param cursorStr\r\n\t*例如auto move no-drop col-resize\r\n\t*all-scroll pointer not-allowed row-resize\r\n\t*crosshair progress e-resize ne-resize\r\n\t*default text n-resize nw-resize\r\n\t*help vertical-text s-resize se-resize\r\n\t*inherit wait w-resize sw-resize\r\n\t*\r\n\t*/\r\n\t__getset(1,Mouse,'cursor',function(){\r\n\t\treturn Mouse._style.cursor;\r\n\t\t},function(cursorStr){\r\n\t\tMouse._style.cursor=cursorStr;\r\n\t});\r\n\r\n\tMouse.hide=function(){\r\n\t\tif (Mouse.cursor !=\"none\"){\r\n\t\t\tMouse._preCursor=Mouse.cursor;\r\n\t\t\tMouse.cursor=\"none\";\r\n\t\t}\r\n\t}\r\n\r\n\tMouse.show=function(){\r\n\t\tif (Mouse.cursor==\"none\"){\r\n\t\t\tif (Mouse._preCursor){\r\n\t\t\t\tMouse.cursor=Mouse._preCursor;\r\n\t\t\t\t}else {\r\n\t\t\t\tMouse.cursor=\"auto\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tMouse._preCursor=null;\r\n\t__static(Mouse,\r\n\t['_style',function(){return this._style=Browser.document.body.style;}\r\n\t]);\r\n\treturn Mouse;\r\n})()\r\n\r\n\r\n/**\r\n*<p> <code>Pool</code> 是对象池类，用于对象的存贮、重复使用。</p>\r\n*<p>合理使用对象池，可以有效减少对象创建的开销，避免频繁的垃圾回收，从而优化游戏流畅度。</p>\r\n*/\r\n//class laya.utils.Pool\r\nvar Pool=(function(){\r\n\tfunction Pool(){}\r\n\t__class(Pool,'laya.utils.Pool');\r\n\tPool.getPoolBySign=function(sign){\r\n\t\treturn Pool._poolDic[sign] || (Pool._poolDic[sign]=[]);\r\n\t}\r\n\r\n\tPool.clearBySign=function(sign){\r\n\t\tif (Pool._poolDic[sign])Pool._poolDic[sign].length=0;\r\n\t}\r\n\r\n\tPool.recover=function(sign,item){\r\n\t\tif (item[\"__InPool\"])return;\r\n\t\titem[\"__InPool\"]=true;\r\n\t\tPool.getPoolBySign(sign).push(item);\r\n\t}\r\n\r\n\tPool.getItemByClass=function(sign,cls){\r\n\t\tvar pool=Pool.getPoolBySign(sign);\r\n\t\tvar rst=pool.length ? pool.pop():new cls();\r\n\t\trst[\"__InPool\"]=false;\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tPool.getItemByCreateFun=function(sign,createFun){\r\n\t\tvar pool=Pool.getPoolBySign(sign);\r\n\t\tvar rst=pool.length ? pool.pop():createFun();\r\n\t\trst[\"__InPool\"]=false;\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tPool.getItem=function(sign){\r\n\t\tvar pool=Pool.getPoolBySign(sign);\r\n\t\tvar rst=pool.length ? pool.pop():null;\r\n\t\tif (rst){\r\n\t\t\trst[\"__InPool\"]=false;\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tPool._poolDic={};\r\n\tPool.InPoolSign=\"__InPool\";\r\n\treturn Pool;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*基于个数的对象缓存管理器\r\n*/\r\n//class laya.utils.PoolCache\r\nvar PoolCache=(function(){\r\n\tfunction PoolCache(){\r\n\t\t/**\r\n\t\t*对象在Pool中的标识\r\n\t\t*/\r\n\t\tthis.sign=null;\r\n\t\t/**\r\n\t\t*允许缓存的最大数量\r\n\t\t*/\r\n\t\tthis.maxCount=1000;\r\n\t}\r\n\r\n\t__class(PoolCache,'laya.utils.PoolCache');\r\n\tvar __proto=PoolCache.prototype;\r\n\t/**\r\n\t*获取缓存的对象列表\r\n\t*@return\r\n\t*\r\n\t*/\r\n\t__proto.getCacheList=function(){\r\n\t\treturn Pool.getPoolBySign(this.sign);\r\n\t}\r\n\r\n\t/**\r\n\t*尝试清理缓存\r\n\t*@param force 是否强制清理\r\n\t*\r\n\t*/\r\n\t__proto.tryDispose=function(force){\r\n\t\tvar list;\r\n\t\tlist=Pool.getPoolBySign(this.sign);\r\n\t\tif (list.length > this.maxCount){\r\n\t\t\tlist.splice(this.maxCount,list.length-this.maxCount);\r\n\t\t}\r\n\t}\r\n\r\n\tPoolCache.addPoolCacheManager=function(sign,maxCount){\r\n\t\t(maxCount===void 0)&& (maxCount=100);\r\n\t\tvar cache;\r\n\t\tcache=new PoolCache();\r\n\t\tcache.sign=sign;\r\n\t\tcache.maxCount=maxCount;\r\n\t\tCacheManager.regCacheByFunction(Utils.bind(cache.tryDispose,cache),Utils.bind(cache.getCacheList,cache));\r\n\t}\r\n\r\n\treturn PoolCache;\r\n})()\r\n\r\n\r\n/**\r\n*<p> <code>Stat</code> 是一个性能统计面板，可以实时更新相关的性能参数。</p>\r\n*<p>参与统计的性能参数如下（所有参数都是每大约1秒进行更新）：<br/>\r\n*FPS(Canvas)/FPS(WebGL)：Canvas 模式或者 WebGL 模式下的帧频，也就是每秒显示的帧数，值越高、越稳定，感觉越流畅；<br/>\r\n*Sprite：统计所有渲染节点（包括容器）数量，它的大小会影响引擎进行节点遍历、数据组织和渲染的效率。其值越小，游戏运行效率越高；<br/>\r\n*DrawCall：此值是决定性能的重要指标，其值越小，游戏运行效率越高。Canvas模式下表示每大约1秒的图像绘制次数；WebGL模式下表示每大约1秒的渲染提交批次，每次准备数据并通知GPU渲染绘制的过程称为1次DrawCall，在每次DrawCall中除了在通知GPU的渲染上比较耗时之外，切换材质与shader也是非常耗时的操作；<br/>\r\n*CurMem：Canvas模式下，表示内存占用大小，值越小越好，过高会导致游戏闪退；WebGL模式下，表示内存与显存的占用，值越小越好；<br/>\r\n*Shader：是 WebGL 模式独有的性能指标，表示每大约1秒 Shader 提交次数，值越小越好；<br/>\r\n*Canvas：由三个数值组成，只有设置 CacheAs 后才会有值，默认为0/0/0。从左到右数值的意义分别为：每帧重绘的画布数量 / 缓存类型为\"normal\"类型的画布数量 / 缓存类型为\"bitmap\"类型的画布数量。</p>\r\n*/\r\n//class laya.utils.Stat\r\nvar Stat=(function(){\r\n\tfunction Stat(){}\r\n\t__class(Stat,'laya.utils.Stat');\r\n\t/**\r\n\t*点击性能统计显示区域的处理函数。\r\n\t*/\r\n\t__getset(1,Stat,'onclick',null,function(fn){\r\n\t\tif (Stat._sp){\r\n\t\t\tStat._sp.on(\"click\",Stat._sp,fn);\r\n\t\t}\r\n\t\tif (Stat._canvas){\r\n\t\t\tStat._canvas.source.onclick=fn;\r\n\t\t\tStat._canvas.source.style.pointerEvents='';\r\n\t\t}\r\n\t});\r\n\r\n\tStat.show=function(x,y){\r\n\t\t(x===void 0)&& (x=0);\r\n\t\t(y===void 0)&& (y=0);\r\n\t\tif (Render.isConchApp && !Render.isConchWebGL){\r\n\t\t\tBrowser.window.conch.showFPS && Browser.window.conch.showFPS(x,y);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!Render.isConchWebGL && !Browser.onMiniGame &&! Browser.onLimixiu)Stat._useCanvas=true;\r\n\t\tStat._show=true;\r\n\t\tStat._fpsData.length=60;\r\n\t\tStat._view[0]={title:\"FPS(Canvas)\",value:\"_fpsStr\",color:\"yellow\",units:\"int\"};\r\n\t\tStat._view[1]={title:\"Sprite\",value:\"_spriteStr\",color:\"white\",units:\"int\"};\r\n\t\tStat._view[2]={title:\"DrawCall\",value:\"drawCall\",color:\"white\",units:\"int\"};\r\n\t\tStat._view[3]={title:\"CurMem\",value:\"currentMemorySize\",color:\"yellow\",units:\"M\"};\r\n\t\tif (Render.isWebGL){\r\n\t\t\tStat._view[4]={title:\"Shader\",value:\"shaderCall\",color:\"white\",units:\"int\"};\r\n\t\t\tif (!Render.is3DMode){\r\n\t\t\t\tStat._view[0].title=\"FPS(WebGL)\";\r\n\t\t\t\tStat._view[5]={title:\"Canvas\",value:\"_canvasStr\",color:\"white\",units:\"int\"};\r\n\t\t\t\t}else {\r\n\t\t\t\tStat._view[0].title=\"FPS(3D)\";\r\n\t\t\t\tStat._view[5]={title:\"TriFaces\",value:\"trianglesFaces\",color:\"white\",units:\"int\"};\r\n\t\t\t\tStat._view[6]={title:\"treeNodeColl\",value:\"treeNodeCollision\",color:\"white\",units:\"int\"};\r\n\t\t\t\tStat._view[7]={title:\"treeSpriteColl\",value:\"treeSpriteCollision\",color:\"white\",units:\"int\"};\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tStat._view[4]={title:\"Canvas\",value:\"_canvasStr\",color:\"white\",units:\"int\"};\r\n\t\t}\r\n\t\tif (Stat._useCanvas){\r\n\t\t\tStat.createUIPre(x,y);\r\n\t\t}else\r\n\t\tStat.createUI(x,y);\r\n\t\tStat.enable();\r\n\t}\r\n\r\n\tStat.createUIPre=function(x,y){\r\n\t\tvar pixel=Browser.pixelRatio;\r\n\t\tStat._width=pixel *130;\r\n\t\tStat._vx=pixel *75;\r\n\t\tStat._height=pixel *(Stat._view.length *12+3 *pixel)+4;\r\n\t\tStat._fontSize=12 *pixel;\r\n\t\tfor (var i=0;i < Stat._view.length;i++){\r\n\t\t\tStat._view[i].x=4;\r\n\t\t\tStat._view[i].y=i *Stat._fontSize+2 *pixel;\r\n\t\t}\r\n\t\tif (!Stat._canvas){\r\n\t\t\tStat._canvas=new HTMLCanvas('2D');\r\n\t\t\tStat._canvas.size(Stat._width,Stat._height);\r\n\t\t\tStat._ctx=Stat._canvas.getContext('2d');\r\n\t\t\tStat._ctx.textBaseline=\"top\";\r\n\t\t\tStat._ctx.font=Stat._fontSize+\"px Sans-serif\";\r\n\t\t\tStat._canvas.source.style.cssText=\"pointer-events:none;background:rgba(150,150,150,0.8);z-index:100000;position: absolute;direction:ltr;left:\"+x+\"px;top:\"+y+\"px;width:\"+(Stat._width / pixel)+\"px;height:\"+(Stat._height / pixel)+\"px;\";\r\n\t\t}\r\n\t\tStat._first=true;\r\n\t\tStat.loop();\r\n\t\tStat._first=false;\r\n\t\tBrowser.container.appendChild(Stat._canvas.source);\r\n\t}\r\n\r\n\tStat.createUI=function(x,y){\r\n\t\tvar stat=Stat._sp;\r\n\t\tvar pixel=Browser.pixelRatio;\r\n\t\tif (!stat){\r\n\t\t\tstat=new Sprite();\r\n\t\t\tStat._leftText=new Text();\r\n\t\t\tStat._leftText.pos(5,5);\r\n\t\t\tStat._leftText.color=\"#ffffff\";\r\n\t\t\tstat.addChild(Stat._leftText);\r\n\t\t\tStat._txt=new Text();\r\n\t\t\tStat._txt.pos(80*pixel,5);\r\n\t\t\tStat._txt.color=\"#ffffff\";\r\n\t\t\tstat.addChild(Stat._txt);\r\n\t\t\tStat._sp=stat;\r\n\t\t}\r\n\t\tstat.pos(x,y);\r\n\t\tvar text=\"\";\r\n\t\tfor (var i=0;i < Stat._view.length;i++){\r\n\t\t\tvar one=Stat._view[i];\r\n\t\t\ttext+=one.title+\"\\n\";\r\n\t\t}\r\n\t\tStat._leftText.text=text;\r\n\t\tvar width=pixel *138;\r\n\t\tvar height=pixel *(Stat._view.length *12+3 *pixel)+4;\r\n\t\tStat._txt.fontSize=Stat._fontSize *pixel;\r\n\t\tStat._leftText.fontSize=Stat._fontSize *pixel;\r\n\t\tstat.size(width,height);\r\n\t\tstat.graphics.clear();\r\n\t\tstat.graphics.setAlpha(0.5);\r\n\t\tstat.graphics.drawRect(0,0,width,height,\"#999999\");\r\n\t\tstat.graphics.setAlpha(1);\r\n\t\tStat.loop();\r\n\t}\r\n\r\n\tStat.enable=function(){\r\n\t\tLaya.timer.frameLoop(1,Stat,Stat.loop);\r\n\t}\r\n\r\n\tStat.hide=function(){\r\n\t\tStat._show=false;\r\n\t\tLaya.timer.clear(Stat,Stat.loop);\r\n\t\tif (Stat._canvas){\r\n\t\t\tBrowser.removeElement(Stat._canvas.source);\r\n\t\t}\r\n\t}\r\n\r\n\tStat.clear=function(){\r\n\t\tStat.trianglesFaces=Stat.drawCall=Stat.shaderCall=Stat.spriteCount=Stat.spriteRenderUseCacheCount=Stat.treeNodeCollision=Stat.treeSpriteCollision=Stat.canvasNormal=Stat.canvasBitmap=Stat.canvasReCache=0;\r\n\t}\r\n\r\n\tStat.loop=function(){\r\n\t\tStat._count++;\r\n\t\tvar timer=Browser.now();\r\n\t\tif (timer-Stat._timer < 1000)return;\r\n\t\tvar count=Stat._count;\r\n\t\tStat.FPS=Math.round((count *1000)/ (timer-Stat._timer));\r\n\t\tif (Stat._show){\r\n\t\t\tStat.trianglesFaces=Math.round(Stat.trianglesFaces / count);\r\n\t\t\tif (!Stat._useCanvas){\r\n\t\t\t\tStat.drawCall=Math.round(Stat.drawCall / count)-2;\r\n\t\t\t\tStat.shaderCall=Math.round(Stat.shaderCall / count)-4;\r\n\t\t\t\tStat.spriteCount=Math.round(Stat.spriteCount / count)-4;\r\n\t\t\t\t}else{\r\n\t\t\t\tStat.drawCall=Math.round(Stat.drawCall / count)-2;\r\n\t\t\t\tStat.shaderCall=Math.round(Stat.shaderCall / count);\r\n\t\t\t\tStat.spriteCount=Math.round(Stat.spriteCount / count)-1;\r\n\t\t\t}\r\n\t\t\tStat.spriteRenderUseCacheCount=Math.round(Stat.spriteRenderUseCacheCount / count);\r\n\t\t\tStat.canvasNormal=Math.round(Stat.canvasNormal / count);\r\n\t\t\tStat.canvasBitmap=Math.round(Stat.canvasBitmap / count);\r\n\t\t\tStat.canvasReCache=Math.ceil(Stat.canvasReCache / count);\r\n\t\t\tStat.treeNodeCollision=Math.round(Stat.treeNodeCollision / count);\r\n\t\t\tStat.treeSpriteCollision=Math.round(Stat.treeSpriteCollision / count);\r\n\t\t\tvar delay=Stat.FPS > 0 ? Math.floor(1000 / Stat.FPS).toString():\" \";\r\n\t\t\tStat._fpsStr=Stat.FPS+(Stat.renderSlow ? \" slow\" :\"\")+\" \"+delay;\r\n\t\t\tStat._spriteStr=Stat.spriteCount+(Stat.spriteRenderUseCacheCount ? (\"/\"+Stat.spriteRenderUseCacheCount):'');\r\n\t\t\tStat._canvasStr=Stat.canvasReCache+\"/\"+Stat.canvasNormal+\"/\"+Stat.canvasBitmap;\r\n\t\t\tStat.currentMemorySize=ResourceManager.systemResourceManager.memorySize;\r\n\t\t\tif (Stat._useCanvas){\r\n\t\t\t\tStat.renderInfoPre();\r\n\t\t\t}else\r\n\t\t\tStat.renderInfo();\r\n\t\t\tStat.clear();\r\n\t\t}\r\n\t\tStat._count=0;\r\n\t\tStat._timer=timer;\r\n\t}\r\n\r\n\tStat.renderInfoPre=function(){\r\n\t\tif (Stat._canvas){\r\n\t\t\tvar ctx=Stat._ctx;\r\n\t\t\tctx.clearRect(Stat._first ? 0 :Stat._vx,0,Stat._width,Stat._height);\r\n\t\t\tfor (var i=0;i < Stat._view.length;i++){\r\n\t\t\t\tvar one=Stat._view[i];\r\n\t\t\t\tif (Stat._first){\r\n\t\t\t\t\tctx.fillStyle=\"white\";\r\n\t\t\t\t\tctx.fillText(one.title,one.x,one.y,null,null,null);\r\n\t\t\t\t}\r\n\t\t\t\tctx.fillStyle=one.color;\r\n\t\t\t\tvar value=Stat[one.value];\r\n\t\t\t\t(one.units==\"M\")&& (value=Math.floor(value / (1024 *1024)*100)/ 100+\" M\");\r\n\t\t\t\tctx.fillText(value+\"\",one.x+Stat._vx,one.y,null,null,null);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tStat.renderInfo=function(){\r\n\t\tvar text=\"\";\r\n\t\tfor (var i=0;i < Stat._view.length;i++){\r\n\t\t\tvar one=Stat._view[i];\r\n\t\t\tvar value=Stat[one.value];\r\n\t\t\t(one.units==\"M\")&& (value=Math.floor(value / (1024 *1024)*100)/ 100+\" M\");\r\n\t\t\t(one.units==\"K\")&& (value=Math.floor(value / (1024)*100)/ 100+\" K\");\r\n\t\t\ttext+=value+\"\\n\";\r\n\t\t}\r\n\t\tStat._txt.text=text;\r\n\t}\r\n\r\n\tStat.FPS=0;\r\n\tStat.loopCount=0;\r\n\tStat.shaderCall=0;\r\n\tStat.drawCall=0;\r\n\tStat.trianglesFaces=0;\r\n\tStat.spriteCount=0;\r\n\tStat.spriteRenderUseCacheCount=0;\r\n\tStat.treeNodeCollision=0;\r\n\tStat.treeSpriteCollision=0;\r\n\tStat.canvasNormal=0;\r\n\tStat.canvasBitmap=0;\r\n\tStat.canvasReCache=0;\r\n\tStat.renderSlow=false;\r\n\tStat.currentMemorySize=0;\r\n\tStat._fpsStr=null;\r\n\tStat._canvasStr=null;\r\n\tStat._spriteStr=null;\r\n\tStat._fpsData=[];\r\n\tStat._timer=0;\r\n\tStat._count=0;\r\n\tStat._view=[];\r\n\tStat._fontSize=12;\r\n\tStat._txt=null;\r\n\tStat._leftText=null;\r\n\tStat._sp=null;\r\n\tStat._show=false;\r\n\tStat._useCanvas=false;\r\n\tStat._canvas=null;\r\n\tStat._ctx=null;\r\n\tStat._first=false;\r\n\tStat._vx=NaN;\r\n\tStat._width=0;\r\n\tStat._height=100;\r\n\treturn Stat;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*<code>StringKey</code> 类用于存取字符串对应的数字。\r\n*/\r\n//class laya.utils.StringKey\r\nvar StringKey=(function(){\r\n\tfunction StringKey(){\r\n\t\tthis._strsToID={};\r\n\t\tthis._idToStrs=[];\r\n\t\tthis._length=0;\r\n\t}\r\n\r\n\t__class(StringKey,'laya.utils.StringKey');\r\n\tvar __proto=StringKey.prototype;\r\n\t/**\r\n\t*添加一个字符。\r\n\t*@param str 字符，将作为key 存储相应生成的数字。\r\n\t*@return 此字符对应的数字。\r\n\t*/\r\n\t__proto.add=function(str){\r\n\t\tvar index=this._strsToID[str];\r\n\t\tif (index !=null)return index;\r\n\t\tthis._idToStrs[this._length]=str;\r\n\t\treturn this._strsToID[str]=this._length++;\r\n\t}\r\n\r\n\t/**\r\n\t*获取指定字符对应的ID。\r\n\t*@param str 字符。\r\n\t*@return 此字符对应的ID。\r\n\t*/\r\n\t__proto.getID=function(str){\r\n\t\tvar index=this._strsToID[str];\r\n\t\treturn index==null ?-1 :index;\r\n\t}\r\n\r\n\t/**\r\n\t*根据指定ID获取对应字符。\r\n\t*@param id ID。\r\n\t*@return 此id对应的字符。\r\n\t*/\r\n\t__proto.getName=function(id){\r\n\t\tvar str=this._idToStrs[id];\r\n\t\treturn str==null ? undefined :str;\r\n\t}\r\n\r\n\treturn StringKey;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Timer</code> 是时钟管理类。它是一个单例，不要手动实例化此类，应该通过 Laya.timer 访问。\r\n*/\r\n//class laya.utils.Timer\r\nvar Timer=(function(){\r\n\tvar TimerHandler;\r\n\tfunction Timer(){\r\n\t\t/**两帧之间的时间间隔,单位毫秒。*/\r\n\t\tthis._delta=0;\r\n\t\t/**时针缩放。*/\r\n\t\tthis.scale=1;\r\n\t\t/**当前的帧数。*/\r\n\t\tthis.currFrame=0;\r\n\t\t/**@private */\r\n\t\tthis._mid=1;\r\n\t\t/**@private */\r\n\t\tthis._map=[];\r\n\t\t/**@private */\r\n\t\tthis._laters=[];\r\n\t\t/**@private */\r\n\t\tthis._handlers=[];\r\n\t\t/**@private */\r\n\t\tthis._temp=[];\r\n\t\t/**@private */\r\n\t\tthis._count=0;\r\n\t\tthis.currTimer=this._now();\r\n\t\tthis._lastTimer=this._now();\r\n\t\tthis._init();\r\n\t}\r\n\r\n\t__class(Timer,'laya.utils.Timer');\r\n\tvar __proto=Timer.prototype;\r\n\t/**@private */\r\n\t__proto._init=function(){\r\n\t\tLaya.timer && Laya.timer.frameLoop(1,this,this._update);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._now=function(){\r\n\t\treturn /*__JS__ */Date.now();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*帧循环处理函数。\r\n\t*/\r\n\t__proto._update=function(){\r\n\t\tif (this.scale <=0){\r\n\t\t\tthis._lastTimer=this._now();\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar frame=this.currFrame=this.currFrame+this.scale;\r\n\t\tvar now=this._now();\r\n\t\tthis._delta=(now-this._lastTimer)*this.scale;\r\n\t\tvar timer=this.currTimer=this.currTimer+this._delta;\r\n\t\tthis._lastTimer=now;\r\n\t\tvar handlers=this._handlers;\r\n\t\tthis._count=0;\r\n\t\tfor (i=0,n=handlers.length;i < n;i++){\r\n\t\t\thandler=handlers[i];\r\n\t\t\tif (handler.method!==null){\r\n\t\t\t\tvar t=handler.userFrame ? frame :timer;\r\n\t\t\t\tif (t >=handler.exeTime){\r\n\t\t\t\t\tif (handler.repeat){\r\n\t\t\t\t\t\tif (!handler.jumpFrame){\r\n\t\t\t\t\t\t\thandler.exeTime+=handler.delay;\r\n\t\t\t\t\t\t\thandler.run(false);\r\n\t\t\t\t\t\t\tif (t > handler.exeTime){\r\n\t\t\t\t\t\t\t\thandler.exeTime+=Math.ceil((t-handler.exeTime)/ handler.delay)*handler.delay;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\twhile (t >=handler.exeTime){\r\n\t\t\t\t\t\t\t\thandler.exeTime+=handler.delay;\r\n\t\t\t\t\t\t\t\thandler.run(false);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\thandler.run(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._count++;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._count > 30 || frame % 200===0)this._clearHandlers();\r\n\t\tvar laters=this._laters;\r\n\t\tfor (var i=0,n=laters.length-1;i <=n;i++){\r\n\t\t\tvar handler=laters[i];\r\n\t\t\tif (handler.method!==null){\r\n\t\t\t\tthis._map[handler.key]=null;\r\n\t\t\t\thandler.run(false);\r\n\t\t\t}\r\n\t\t\tthis._recoverHandler(handler);\r\n\t\t\ti===n && (n=laters.length-1);\r\n\t\t}\r\n\t\tlaters.length=0;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._clearHandlers=function(){\r\n\t\tvar handlers=this._handlers;\r\n\t\tfor (var i=0,n=handlers.length;i < n;i++){\r\n\t\t\tvar handler=handlers[i];\r\n\t\t\tif (handler.method!==null)this._temp.push(handler);\r\n\t\t\telse this._recoverHandler(handler);\r\n\t\t}\r\n\t\tthis._handlers=this._temp;\r\n\t\tthis._temp=handlers;\r\n\t\tthis._temp.length=0;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._recoverHandler=function(handler){\r\n\t\tif(this._map[handler.key]==handler)this._map[handler.key]=null;\r\n\t\thandler.clear();\r\n\t\tTimer._pool.push(handler);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._create=function(useFrame,repeat,delay,caller,method,args,coverBefore){\r\n\t\tif (!delay){\r\n\t\t\tmethod.apply(caller,args);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tif (coverBefore){\r\n\t\t\tvar handler=this._getHandler(caller,method);\r\n\t\t\tif (handler){\r\n\t\t\t\thandler.repeat=repeat;\r\n\t\t\t\thandler.userFrame=useFrame;\r\n\t\t\t\thandler.delay=delay;\r\n\t\t\t\thandler.caller=caller;\r\n\t\t\t\thandler.method=method;\r\n\t\t\t\thandler.args=args;\r\n\t\t\t\thandler.exeTime=delay+(useFrame ? this.currFrame :this.currTimer+this._now()-this._lastTimer);\r\n\t\t\t\treturn handler;\r\n\t\t\t}\r\n\t\t}\r\n\t\thandler=Timer._pool.length > 0 ? Timer._pool.pop():new TimerHandler();\r\n\t\thandler.repeat=repeat;\r\n\t\thandler.userFrame=useFrame;\r\n\t\thandler.delay=delay;\r\n\t\thandler.caller=caller;\r\n\t\thandler.method=method;\r\n\t\thandler.args=args;\r\n\t\thandler.exeTime=delay+(useFrame ? this.currFrame :this.currTimer+this._now()-this._lastTimer)+1;\r\n\t\tthis._indexHandler(handler);\r\n\t\tthis._handlers.push(handler);\r\n\t\treturn handler;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._indexHandler=function(handler){\r\n\t\tvar caller=handler.caller;\r\n\t\tvar method=handler.method;\r\n\t\tvar cid=caller ? caller.$_GID || (caller.$_GID=Utils.getGID()):0;\r\n\t\tvar mid=method.$_TID || (method.$_TID=(this._mid++)*100000);\r\n\t\thandler.key=cid+mid;\r\n\t\tthis._map[handler.key]=handler;\r\n\t}\r\n\r\n\t/**\r\n\t*定时执行一次。\r\n\t*@param delay 延迟时间(单位为毫秒)。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 定时器回调函数。\r\n\t*@param args 回调参数。\r\n\t*@param coverBefore 是否覆盖之前的延迟执行，默认为 true 。\r\n\t*/\r\n\t__proto.once=function(delay,caller,method,args,coverBefore){\r\n\t\t(coverBefore===void 0)&& (coverBefore=true);\r\n\t\tthis._create(false,false,delay,caller,method,args,coverBefore);\r\n\t}\r\n\r\n\t/**\r\n\t*定时重复执行。\r\n\t*@param delay 间隔时间(单位毫秒)。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 定时器回调函数。\r\n\t*@param args 回调参数。\r\n\t*@param coverBefore 是否覆盖之前的延迟执行，默认为 true 。\r\n\t*@param jumpFrame 时钟是否跳帧。基于时间的循环回调，单位时间间隔内，如能执行多次回调，出于性能考虑，引擎默认只执行一次，设置jumpFrame=true后，则回调会连续执行多次\r\n\t*/\r\n\t__proto.loop=function(delay,caller,method,args,coverBefore,jumpFrame){\r\n\t\t(coverBefore===void 0)&& (coverBefore=true);\r\n\t\t(jumpFrame===void 0)&& (jumpFrame=false);\r\n\t\tvar handler=this._create(false,true,delay,caller,method,args,coverBefore);\r\n\t\tif (handler)handler.jumpFrame=jumpFrame;\r\n\t}\r\n\r\n\t/**\r\n\t*定时执行一次(基于帧率)。\r\n\t*@param delay 延迟几帧(单位为帧)。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 定时器回调函数。\r\n\t*@param args 回调参数。\r\n\t*@param coverBefore 是否覆盖之前的延迟执行，默认为 true 。\r\n\t*/\r\n\t__proto.frameOnce=function(delay,caller,method,args,coverBefore){\r\n\t\t(coverBefore===void 0)&& (coverBefore=true);\r\n\t\tthis._create(true,false,delay,caller,method,args,coverBefore);\r\n\t}\r\n\r\n\t/**\r\n\t*定时重复执行(基于帧率)。\r\n\t*@param delay 间隔几帧(单位为帧)。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 定时器回调函数。\r\n\t*@param args 回调参数。\r\n\t*@param coverBefore 是否覆盖之前的延迟执行，默认为 true 。\r\n\t*/\r\n\t__proto.frameLoop=function(delay,caller,method,args,coverBefore){\r\n\t\t(coverBefore===void 0)&& (coverBefore=true);\r\n\t\tthis._create(true,true,delay,caller,method,args,coverBefore);\r\n\t}\r\n\r\n\t/**返回统计信息。*/\r\n\t__proto.toString=function(){\r\n\t\treturn \"callLater:\"+this._laters.length+\" handlers:\"+this._handlers.length+\" pool:\"+Timer._pool.length;\r\n\t}\r\n\r\n\t/**\r\n\t*清理定时器。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 定时器回调函数。\r\n\t*/\r\n\t__proto.clear=function(caller,method){\r\n\t\tvar handler=this._getHandler(caller,method);\r\n\t\tif (handler){\r\n\t\t\tthis._map[handler.key]=null;handler.key=0;\r\n\t\t\thandler.clear();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*清理对象身上的所有定时器。\r\n\t*@param caller 执行域(this)。\r\n\t*/\r\n\t__proto.clearAll=function(caller){\r\n\t\tif (!caller)return;\r\n\t\tfor (var i=0,n=this._handlers.length;i < n;i++){\r\n\t\t\tvar handler=this._handlers[i];\r\n\t\t\tif (handler.caller===caller){\r\n\t\t\t\tthis._map[handler.key]=null;handler.key=0;\r\n\t\t\t\thandler.clear();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._getHandler=function(caller,method){\r\n\t\tvar cid=caller ? caller.$_GID || (caller.$_GID=Utils.getGID()):0;\r\n\t\tvar mid=method.$_TID || (method.$_TID=(this._mid++)*100000);\r\n\t\treturn this._map[cid+mid];\r\n\t}\r\n\r\n\t/**\r\n\t*延迟执行。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 定时器回调函数。\r\n\t*@param args 回调参数。\r\n\t*/\r\n\t__proto.callLater=function(caller,method,args){\r\n\t\tif (this._getHandler(caller,method)==null){\r\n\t\t\tif (Timer._pool.length)\r\n\t\t\t\tvar handler=Timer._pool.pop();\r\n\t\t\telse handler=new TimerHandler();\r\n\t\t\thandler.caller=caller;\r\n\t\t\thandler.method=method;\r\n\t\t\thandler.args=args;\r\n\t\t\tthis._indexHandler(handler);\r\n\t\t\tthis._laters.push(handler);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*立即执行 callLater 。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 定时器回调函数。\r\n\t*/\r\n\t__proto.runCallLater=function(caller,method){\r\n\t\tvar handler=this._getHandler(caller,method);\r\n\t\tif (handler && handler.method !=null){\r\n\t\t\tthis._map[handler.key]=null;\r\n\t\t\thandler.run(true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*立即提前执行定时器，执行之后从队列中删除\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 定时器回调函数。\r\n\t*/\r\n\t__proto.runTimer=function(caller,method){\r\n\t\tthis.runCallLater(caller,method);\r\n\t}\r\n\r\n\t/**\r\n\t*两帧之间的时间间隔,单位毫秒。\r\n\t*/\r\n\t__getset(0,__proto,'delta',function(){\r\n\t\treturn this._delta;\r\n\t});\r\n\r\n\tTimer._pool=[];\r\n\tTimer.__init$=function(){\r\n\t\t/**@private */\r\n\t\t//class TimerHandler\r\n\t\tTimerHandler=(function(){\r\n\t\t\tfunction TimerHandler(){\r\n\t\t\t\tthis.key=0;\r\n\t\t\t\tthis.repeat=false;\r\n\t\t\t\tthis.delay=0;\r\n\t\t\t\tthis.userFrame=false;\r\n\t\t\t\tthis.exeTime=0;\r\n\t\t\t\tthis.caller=null;\r\n\t\t\t\tthis.method=null;\r\n\t\t\t\tthis.args=null;\r\n\t\t\t\tthis.jumpFrame=false;\r\n\t\t\t}\r\n\t\t\t__class(TimerHandler,'');\r\n\t\t\tvar __proto=TimerHandler.prototype;\r\n\t\t\t__proto.clear=function(){\r\n\t\t\t\tthis.caller=null;\r\n\t\t\t\tthis.method=null;\r\n\t\t\t\tthis.args=null;\r\n\t\t\t}\r\n\t\t\t__proto.run=function(withClear){\r\n\t\t\t\tvar caller=this.caller;\r\n\t\t\t\tif (caller && caller.destroyed)return this.clear();\r\n\t\t\t\tvar method=this.method;\r\n\t\t\t\tvar args=this.args;\r\n\t\t\t\twithClear && this.clear();\r\n\t\t\t\tif (method==null)return;\r\n\t\t\t\targs ? method.apply(caller,args):method.call(caller);\r\n\t\t\t}\r\n\t\t\treturn TimerHandler;\r\n\t\t})()\r\n\t}\r\n\r\n\treturn Timer;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Tween</code> 是一个缓动类。使用此类能够实现对目标对象属性的渐变。\r\n*/\r\n//class laya.utils.Tween\r\nvar Tween=(function(){\r\n\tfunction Tween(){\r\n\t\t/**@private */\r\n\t\t//this._complete=null;\r\n\t\t/**@private */\r\n\t\t//this._target=null;\r\n\t\t/**@private */\r\n\t\t//this._ease=null;\r\n\t\t/**@private */\r\n\t\t//this._props=null;\r\n\t\t/**@private */\r\n\t\t//this._duration=0;\r\n\t\t/**@private */\r\n\t\t//this._delay=0;\r\n\t\t/**@private */\r\n\t\t//this._startTimer=0;\r\n\t\t/**@private */\r\n\t\t//this._usedTimer=0;\r\n\t\t/**@private */\r\n\t\t//this._usedPool=false;\r\n\t\t/**@private */\r\n\t\t//this._delayParam=null;\r\n\t\t/**@private 唯一标识，TimeLintLite用到*/\r\n\t\tthis.gid=0;\r\n\t\t/**更新回调，缓动数值发生变化时，回调变化的值*/\r\n\t\t//this.update=null;\r\n\t}\r\n\r\n\t__class(Tween,'laya.utils.Tween');\r\n\tvar __proto=Tween.prototype;\r\n\t/**\r\n\t*缓动对象的props属性到目标值。\r\n\t*@param target 目标对象(即将更改属性值的对象)。\r\n\t*@param props 变化的属性列表，比如{x:100,y:20,ease:Ease.backOut,complete:Handler.create(this,onComplete),update:new Handler(this,onComplete)}。\r\n\t*@param duration 花费的时间，单位毫秒。\r\n\t*@param ease 缓动类型，默认为匀速运动。\r\n\t*@param complete 结束回调函数。\r\n\t*@param delay 延迟执行时间。\r\n\t*@param coverBefore 是否覆盖之前的缓动。\r\n\t*@return 返回Tween对象。\r\n\t*/\r\n\t__proto.to=function(target,props,duration,ease,complete,delay,coverBefore){\r\n\t\t(delay===void 0)&& (delay=0);\r\n\t\t(coverBefore===void 0)&& (coverBefore=false);\r\n\t\treturn this._create(target,props,duration,ease,complete,delay,coverBefore,true,false,true);\r\n\t}\r\n\r\n\t/**\r\n\t*从props属性，缓动到当前状态。\r\n\t*@param target 目标对象(即将更改属性值的对象)。\r\n\t*@param props 变化的属性列表，比如{x:100,y:20,ease:Ease.backOut,complete:Handler.create(this,onComplete),update:new Handler(this,onComplete)}。\r\n\t*@param duration 花费的时间，单位毫秒。\r\n\t*@param ease 缓动类型，默认为匀速运动。\r\n\t*@param complete 结束回调函数。\r\n\t*@param delay 延迟执行时间。\r\n\t*@param coverBefore 是否覆盖之前的缓动。\r\n\t*@return 返回Tween对象。\r\n\t*/\r\n\t__proto.from=function(target,props,duration,ease,complete,delay,coverBefore){\r\n\t\t(delay===void 0)&& (delay=0);\r\n\t\t(coverBefore===void 0)&& (coverBefore=false);\r\n\t\treturn this._create(target,props,duration,ease,complete,delay,coverBefore,false,false,true);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._create=function(target,props,duration,ease,complete,delay,coverBefore,isTo,usePool,runNow){\r\n\t\tif (!target)throw new Error(\"Tween:target is null\");\r\n\t\tthis._target=target;\r\n\t\tthis._duration=duration;\r\n\t\tthis._ease=ease || props.ease || Tween.easeNone;\r\n\t\tthis._complete=complete || props.complete;\r\n\t\tthis._delay=delay;\r\n\t\tthis._props=[];\r\n\t\tthis._usedTimer=0;\r\n\t\tthis._startTimer=Browser.now();\r\n\t\tthis._usedPool=usePool;\r\n\t\tthis._delayParam=null;\r\n\t\tthis.update=props.update;\r\n\t\tvar gid=(target.$_GID || (target.$_GID=Utils.getGID()));\r\n\t\tif (!Tween.tweenMap[gid]){\r\n\t\t\tTween.tweenMap[gid]=[this];\r\n\t\t\t}else {\r\n\t\t\tif (coverBefore)Tween.clearTween(target);\r\n\t\t\tTween.tweenMap[gid].push(this);\r\n\t\t}\r\n\t\tif (runNow){\r\n\t\t\tif (delay <=0)this.firstStart(target,props,isTo);\r\n\t\t\telse{\r\n\t\t\t\tthis._delayParam=[target,props,isTo];\r\n\t\t\t\tLaya.scaleTimer.once(delay,this,this.firstStart,this._delayParam);\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tthis._initProps(target,props,isTo);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t__proto.firstStart=function(target,props,isTo){\r\n\t\tthis._delayParam=null;\r\n\t\tif (target.destroyed){\r\n\t\t\tthis.clear();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._initProps(target,props,isTo);\r\n\t\tthis._beginLoop();\r\n\t}\r\n\r\n\t__proto._initProps=function(target,props,isTo){\r\n\t\tfor (var p in props){\r\n\t\t\tif ((typeof (target[p])=='number')){\r\n\t\t\t\tvar start=isTo ? target[p] :props[p];\r\n\t\t\t\tvar end=isTo ? props[p] :target[p];\r\n\t\t\t\tthis._props.push([p,start,end-start]);\r\n\t\t\t\tif (!isTo)target[p]=start;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._beginLoop=function(){\r\n\t\tLaya.scaleTimer.frameLoop(1,this,this._doEase);\r\n\t}\r\n\r\n\t/**执行缓动**/\r\n\t__proto._doEase=function(){\r\n\t\tthis._updateEase(Browser.now());\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._updateEase=function(time){\r\n\t\tvar target=this._target;\r\n\t\tif (!target)return;\r\n\t\tif (target.destroyed)return Tween.clearTween(target);\r\n\t\tvar usedTimer=this._usedTimer=time-this._startTimer-this._delay;\r\n\t\tif (usedTimer < 0)return;\r\n\t\tif (usedTimer >=this._duration)return this.complete();\r\n\t\tvar ratio=usedTimer > 0 ? this._ease(usedTimer,0,1,this._duration):0;\r\n\t\tvar props=this._props;\r\n\t\tfor (var i=0,n=props.length;i < n;i++){\r\n\t\t\tvar prop=props[i];\r\n\t\t\ttarget[prop[0]]=prop[1]+(ratio *prop[2]);\r\n\t\t}\r\n\t\tif (this.update)this.update.run();\r\n\t}\r\n\r\n\t/**\r\n\t*立即结束缓动并到终点。\r\n\t*/\r\n\t__proto.complete=function(){\r\n\t\tif (!this._target)return;\r\n\t\tLaya.scaleTimer.runTimer(this,this.firstStart);\r\n\t\tvar target=this._target;\r\n\t\tvar props=this._props;\r\n\t\tvar handler=this._complete;\r\n\t\tfor (var i=0,n=props.length;i < n;i++){\r\n\t\t\tvar prop=props[i];\r\n\t\t\ttarget[prop[0]]=prop[1]+prop[2];\r\n\t\t}\r\n\t\tif (this.update)this.update.run();\r\n\t\tthis.clear();\r\n\t\thandler && handler.run();\r\n\t}\r\n\r\n\t/**\r\n\t*暂停缓动，可以通过resume或restart重新开始。\r\n\t*/\r\n\t__proto.pause=function(){\r\n\t\tLaya.scaleTimer.clear(this,this._beginLoop);\r\n\t\tLaya.scaleTimer.clear(this,this._doEase);\r\n\t\tLaya.scaleTimer.clear(this,this.firstStart);\r\n\t\tvar time=Browser.now();\r\n\t\tvar dTime=NaN;\r\n\t\tdTime=time-this._startTimer-this._delay;\r\n\t\tif (dTime < 0){\r\n\t\t\tthis._usedTimer=dTime;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*设置开始时间。\r\n\t*@param startTime 开始时间。\r\n\t*/\r\n\t__proto.setStartTime=function(startTime){\r\n\t\tthis._startTimer=startTime;\r\n\t}\r\n\r\n\t/**\r\n\t*停止并清理当前缓动。\r\n\t*/\r\n\t__proto.clear=function(){\r\n\t\tif (this._target){\r\n\t\t\tthis._remove();\r\n\t\t\tthis._clear();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._clear=function(){\r\n\t\tthis.pause();\r\n\t\tLaya.scaleTimer.clear(this,this.firstStart);\r\n\t\tthis._complete=null;\r\n\t\tthis._target=null;\r\n\t\tthis._ease=null;\r\n\t\tthis._props=null;\r\n\t\tthis._delayParam=null;\r\n\t\tif (this._usedPool){\r\n\t\t\tthis.update=null;\r\n\t\t\tPool.recover(\"tween\",this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**回收到对象池。*/\r\n\t__proto.recover=function(){\r\n\t\tthis._usedPool=true;\r\n\t\tthis._clear();\r\n\t}\r\n\r\n\t__proto._remove=function(){\r\n\t\tvar tweens=Tween.tweenMap[this._target.$_GID];\r\n\t\tif (tweens){\r\n\t\t\tfor (var i=0,n=tweens.length;i < n;i++){\r\n\t\t\t\tif (tweens[i]===this){\r\n\t\t\t\t\ttweens.splice(i,1);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*重新开始暂停的缓动。\r\n\t*/\r\n\t__proto.restart=function(){\r\n\t\tthis.pause();\r\n\t\tthis._usedTimer=0;\r\n\t\tthis._startTimer=Browser.now();\r\n\t\tif (this._delayParam){\r\n\t\t\tLaya.scaleTimer.once(this._delay,this,this.firstStart,this._delayParam);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar props=this._props;\r\n\t\tfor (var i=0,n=props.length;i < n;i++){\r\n\t\t\tvar prop=props[i];\r\n\t\t\tthis._target[prop[0]]=prop[1];\r\n\t\t}\r\n\t\tLaya.scaleTimer.once(this._delay,this,this._beginLoop);\r\n\t}\r\n\r\n\t/**\r\n\t*恢复暂停的缓动。\r\n\t*/\r\n\t__proto.resume=function(){\r\n\t\tif (this._usedTimer >=this._duration)return;\r\n\t\tthis._startTimer=Browser.now()-this._usedTimer-this._delay;\r\n\t\tif (this._delayParam){\r\n\t\t\tif (this._usedTimer < 0){\r\n\t\t\t\tLaya.scaleTimer.once(-this._usedTimer,this,this.firstStart,this._delayParam);\r\n\t\t\t\t}else{\r\n\t\t\t\tthis.firstStart.apply(this,this._delayParam);\r\n\t\t\t}\r\n\t\t\t}else{\r\n\t\t\tthis._beginLoop();\r\n\t\t}\r\n\t}\r\n\r\n\t/**设置当前执行比例**/\r\n\t__getset(0,__proto,'progress',null,function(v){\r\n\t\tvar uTime=v *this._duration;\r\n\t\tthis._startTimer=Browser.now()-this._delay-uTime;\r\n\t});\r\n\r\n\tTween.to=function(target,props,duration,ease,complete,delay,coverBefore,autoRecover){\r\n\t\t(delay===void 0)&& (delay=0);\r\n\t\t(coverBefore===void 0)&& (coverBefore=false);\r\n\t\t(autoRecover===void 0)&& (autoRecover=true);\r\n\t\treturn Pool.getItemByClass(\"tween\",Tween)._create(target,props,duration,ease,complete,delay,coverBefore,true,autoRecover,true);\r\n\t}\r\n\r\n\tTween.from=function(target,props,duration,ease,complete,delay,coverBefore,autoRecover){\r\n\t\t(delay===void 0)&& (delay=0);\r\n\t\t(coverBefore===void 0)&& (coverBefore=false);\r\n\t\t(autoRecover===void 0)&& (autoRecover=true);\r\n\t\treturn Pool.getItemByClass(\"tween\",Tween)._create(target,props,duration,ease,complete,delay,coverBefore,false,autoRecover,true);\r\n\t}\r\n\r\n\tTween.clearAll=function(target){\r\n\t\tif (!target || !target.$_GID)return;\r\n\t\tvar tweens=Tween.tweenMap[target.$_GID];\r\n\t\tif (tweens){\r\n\t\t\tfor (var i=0,n=tweens.length;i < n;i++){\r\n\t\t\t\ttweens[i]._clear();\r\n\t\t\t}\r\n\t\t\ttweens.length=0;\r\n\t\t}\r\n\t}\r\n\r\n\tTween.clear=function(tween){\r\n\t\ttween.clear();\r\n\t}\r\n\r\n\tTween.clearTween=function(target){\r\n\t\tTween.clearAll(target);\r\n\t}\r\n\r\n\tTween.easeNone=function(t,b,c,d){\r\n\t\treturn c *t / d+b;\r\n\t}\r\n\r\n\tTween.tweenMap={};\r\n\treturn Tween;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Utils</code> 是工具类。\r\n*/\r\n//class laya.utils.Utils\r\nvar Utils=(function(){\r\n\tfunction Utils(){}\r\n\t__class(Utils,'laya.utils.Utils');\r\n\tUtils.toRadian=function(angle){\r\n\t\treturn angle *Utils._pi2;\r\n\t}\r\n\r\n\tUtils.toAngle=function(radian){\r\n\t\treturn radian *Utils._pi;\r\n\t}\r\n\r\n\tUtils.toHexColor=function(color){\r\n\t\tif (color < 0 || isNaN(color))return null;\r\n\t\tvar str=color.toString(16);\r\n\t\twhile (str.length < 6)str=\"0\"+str;\r\n\t\treturn \"#\"+str;\r\n\t}\r\n\r\n\tUtils.getGID=function(){\r\n\t\treturn Utils._gid++;\r\n\t}\r\n\r\n\tUtils.concatArray=function(source,array){\r\n\t\tif (!array)return source;\r\n\t\tif (!source)return array;\r\n\t\tvar i=0,len=array.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tsource.push(array[i]);\r\n\t\t}\r\n\t\treturn source;\r\n\t}\r\n\r\n\tUtils.clearArray=function(array){\r\n\t\tif (!array)return array;\r\n\t\tarray.length=0;\r\n\t\treturn array;\r\n\t}\r\n\r\n\tUtils.copyArray=function(source,array){\r\n\t\tsource || (source=[]);\r\n\t\tif (!array)return source;\r\n\t\tsource.length=array.length;\r\n\t\tvar i=0,len=array.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tsource[i]=array[i];\r\n\t\t}\r\n\t\treturn source;\r\n\t}\r\n\r\n\tUtils.getGlobalRecByPoints=function(sprite,x0,y0,x1,y1){\r\n\t\tvar newLTPoint;\r\n\t\tnewLTPoint=new Point(x0,y0);\r\n\t\tnewLTPoint=sprite.localToGlobal(newLTPoint);\r\n\t\tvar newRBPoint;\r\n\t\tnewRBPoint=new Point(x1,y1);\r\n\t\tnewRBPoint=sprite.localToGlobal(newRBPoint);\r\n\t\treturn Rectangle._getWrapRec([newLTPoint.x,newLTPoint.y,newRBPoint.x,newRBPoint.y]);\r\n\t}\r\n\r\n\tUtils.getGlobalPosAndScale=function(sprite){\r\n\t\treturn Utils.getGlobalRecByPoints(sprite,0,0,1,1);\r\n\t}\r\n\r\n\tUtils.bind=function(fun,scope){\r\n\t\tvar rst=fun;\r\n\t\t/*__JS__ */rst=fun.bind(scope);;\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tUtils.measureText=function(txt,font){\r\n\t\treturn RunDriver.measureText(txt,font);\r\n\t}\r\n\r\n\tUtils.updateOrder=function(array){\r\n\t\tif (!array || array.length < 2)return false;\r\n\t\tvar i=1,j=0,len=array.length,key=NaN,c;\r\n\t\twhile (i < len){\r\n\t\t\tj=i;\r\n\t\t\tc=array[j];\r\n\t\t\tkey=array[j]._zOrder;\r\n\t\t\twhile (--j >-1){\r\n\t\t\t\tif (array[j]._zOrder > key)array[j+1]=array[j];\r\n\t\t\t\telse break ;\r\n\t\t\t}\r\n\t\t\tarray[j+1]=c;\r\n\t\t\ti++;\r\n\t\t};\r\n\t\tvar model=c.parent.conchModel;\r\n\t\tif (model){\r\n\t\t\tif (model.updateZOrder !=null){\r\n\t\t\t\tmodel.updateZOrder();\r\n\t\t\t\t}else {\r\n\t\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\t\tmodel.removeChild(array[i].conchModel);\r\n\t\t\t\t}\r\n\t\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\t\tmodel.addChildAt(array[i].conchModel,i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tUtils.transPointList=function(points,x,y){\r\n\t\tvar i=0,len=points.length;\r\n\t\tfor (i=0;i < len;i+=2){\r\n\t\t\tpoints[i]+=x;\r\n\t\t\tpoints[i+1]+=y;\r\n\t\t}\r\n\t}\r\n\r\n\tUtils.parseInt=function(str,radix){\r\n\t\t(radix===void 0)&& (radix=0);\r\n\t\tvar result=Browser.window.parseInt(str,radix);\r\n\t\tif (isNaN(result))return 0;\r\n\t\treturn result;\r\n\t}\r\n\r\n\tUtils.getFileExtension=function(path){\r\n\t\tUtils._extReg.lastIndex=path.lastIndexOf(\".\");\r\n\t\tvar result=Utils._extReg.exec(path);\r\n\t\tif (result && result.length > 1){\r\n\t\t\treturn result[1].toLowerCase();\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tUtils.getTransformRelativeToWindow=function(coordinateSpace,x,y){\r\n\t\tvar stage=Laya.stage;\r\n\t\tvar globalTransform=laya.utils.Utils.getGlobalPosAndScale(coordinateSpace);\r\n\t\tvar canvasMatrix=stage._canvasTransform.clone();\r\n\t\tvar canvasLeft=canvasMatrix.tx;\r\n\t\tvar canvasTop=canvasMatrix.ty;\r\n\t\tcanvasMatrix.rotate(-Math.PI / 180 *Laya.stage.canvasDegree);\r\n\t\tcanvasMatrix.scale(Laya.stage.clientScaleX,Laya.stage.clientScaleY);\r\n\t\tvar perpendicular=(Laya.stage.canvasDegree % 180 !=0);\r\n\t\tvar tx=NaN,ty=NaN;\r\n\t\tif (perpendicular){\r\n\t\t\ttx=y+globalTransform.y;\r\n\t\t\tty=x+globalTransform.x;\r\n\t\t\ttx *=canvasMatrix.d;\r\n\t\t\tty *=canvasMatrix.a;\r\n\t\t\tif (Laya.stage.canvasDegree==90){\r\n\t\t\t\ttx=canvasLeft-tx;\r\n\t\t\t\tty+=canvasTop;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttx+=canvasLeft;\r\n\t\t\t\tty=canvasTop-ty;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\ttx=x+globalTransform.x;\r\n\t\t\tty=y+globalTransform.y;\r\n\t\t\ttx *=canvasMatrix.a;\r\n\t\t\tty *=canvasMatrix.d;\r\n\t\t\ttx+=canvasLeft;\r\n\t\t\tty+=canvasTop;\r\n\t\t};\r\n\t\tvar domScaleX=NaN,domScaleY=NaN;\r\n\t\tif (perpendicular){\r\n\t\t\tdomScaleX=canvasMatrix.d *globalTransform.height;\r\n\t\t\tdomScaleY=canvasMatrix.a *globalTransform.width;\r\n\t\t\t}else {\r\n\t\t\tdomScaleX=canvasMatrix.a *globalTransform.width;\r\n\t\t\tdomScaleY=canvasMatrix.d *globalTransform.height;\r\n\t\t}\r\n\t\treturn {x:tx,y:ty,scaleX:domScaleX,scaleY:domScaleY};\r\n\t}\r\n\r\n\tUtils.fitDOMElementInArea=function(dom,coordinateSpace,x,y,width,height){\r\n\t\tif (!dom._fitLayaAirInitialized){\r\n\t\t\tdom._fitLayaAirInitialized=true;\r\n\t\t\tdom.style.transformOrigin=dom.style.webKittransformOrigin=\"left top\";\r\n\t\t\tdom.style.position=\"absolute\"\r\n\t\t};\r\n\t\tvar transform=Utils.getTransformRelativeToWindow(coordinateSpace,x,y);\r\n\t\tdom.style.transform=dom.style.webkitTransform=\"scale(\"+transform.scaleX+\",\"+transform.scaleY+\") rotate(\"+(Laya.stage.canvasDegree)+\"deg)\";\r\n\t\tdom.style.width=width+'px';\r\n\t\tdom.style.height=height+'px';\r\n\t\tdom.style.left=transform.x+'px';\r\n\t\tdom.style.top=transform.y+'px';\r\n\t}\r\n\r\n\tUtils.isOkTextureList=function(textureList){\r\n\t\tif (!textureList)return false;\r\n\t\tvar i=0,len=textureList.length;\r\n\t\tvar tTexture;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\ttTexture=textureList[i];\r\n\t\t\tif (!tTexture||!tTexture.source)return false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tUtils.isOKCmdList=function(cmds){\r\n\t\tif (!cmds)return false;\r\n\t\tvar i=0,len=cmds.length;\r\n\t\tvar context=Render._context;\r\n\t\tvar cmd;\r\n\t\tvar tex;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tcmd=cmds[i];\r\n\t\t\tswitch(cmd.callee){\r\n\t\t\t\tcase context._drawTexture:\r\n\t\t\t\tcase context._fillTexture:\r\n\t\t\t\tcase context._drawTextureWithTransform:\r\n\t\t\t\t\ttex=cmd[0];\r\n\t\t\t\t\tif (!tex || !tex.source)return false;\r\n\t\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tUtils._gid=1;\r\n\tUtils._pi=180 / Math.PI;\r\n\tUtils._pi2=Math.PI / 180;\r\n\tUtils._extReg=/\\.(\\w+)\\??/g;\r\n\tUtils.parseXMLFromString=function(value){\r\n\t\tvar rst;\r\n\t\tvalue=value.replace(/>\\s+</g,'><');\r\n\t\t/*__JS__ */rst=(new DOMParser()).parseFromString(value,'text/xml');\r\n\t\tif (rst.firstChild.textContent.indexOf(\"This page contains the following errors\")>-1){\r\n\t\t\tthrow new Error(rst.firstChild.firstChild.textContent);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\treturn Utils;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.utils.VectorGraphManager\r\nvar VectorGraphManager=(function(){\r\n\tfunction VectorGraphManager(){\r\n\t\tthis.useDic={};\r\n\t\tthis.shapeDic={};\r\n\t\tthis.shapeLineDic={};\r\n\t\tthis._id=0;\r\n\t\tthis._checkKey=false;\r\n\t\tthis._freeIdArray=[];\r\n\t\tif (Render.isWebGL){\r\n\t\t\tCacheManager.regCacheByFunction(Utils.bind(this.startDispose,this),Utils.bind(this.getCacheList,this));\r\n\t\t}\r\n\t}\r\n\r\n\t__class(VectorGraphManager,'laya.utils.VectorGraphManager');\r\n\tvar __proto=VectorGraphManager.prototype;\r\n\t/**\r\n\t*得到个空闲的ID\r\n\t*@return\r\n\t*/\r\n\t__proto.getId=function(){\r\n\t\treturn this._id++;\r\n\t}\r\n\r\n\t/**\r\n\t*添加一个图形到列表中\r\n\t*@param id\r\n\t*@param shape\r\n\t*/\r\n\t__proto.addShape=function(id,shape){\r\n\t\tthis.shapeDic[id]=shape;\r\n\t\tif (!this.useDic[id]){\r\n\t\t\tthis.useDic[id]=true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*添加一个线图形到列表中\r\n\t*@param id\r\n\t*@param Line\r\n\t*/\r\n\t__proto.addLine=function(id,Line){\r\n\t\tthis.shapeLineDic[id]=Line;\r\n\t\tif (!this.shapeLineDic[id]){\r\n\t\t\tthis.shapeLineDic[id]=true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*检测一个对象是否在使用中\r\n\t*@param id\r\n\t*/\r\n\t__proto.getShape=function(id){\r\n\t\tif (this._checkKey){\r\n\t\t\tif (this.useDic[id] !=null){\r\n\t\t\t\tthis.useDic[id]=true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*删除一个图形对象\r\n\t*@param id\r\n\t*/\r\n\t__proto.deleteShape=function(id){\r\n\t\tif (this.shapeDic[id]){\r\n\t\t\tthis.shapeDic[id]=null;\r\n\t\t\tdelete this.shapeDic[id];\r\n\t\t}\r\n\t\tif (this.shapeLineDic[id]){\r\n\t\t\tthis.shapeLineDic[id]=null;\r\n\t\t\tdelete this.shapeLineDic[id];\r\n\t\t}\r\n\t\tif (this.useDic[id] !=null){\r\n\t\t\tdelete this.useDic[id];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*得到缓存列表\r\n\t*@return\r\n\t*/\r\n\t__proto.getCacheList=function(){\r\n\t\tvar str;\r\n\t\tvar list=[];\r\n\t\tfor (str in this.shapeDic){\r\n\t\t\tlist.push(this.shapeDic[str]);\r\n\t\t}\r\n\t\tfor (str in this.shapeLineDic){\r\n\t\t\tlist.push(this.shapeLineDic[str]);\r\n\t\t}\r\n\t\treturn list;\r\n\t}\r\n\r\n\t/**\r\n\t*开始清理状态，准备销毁\r\n\t*/\r\n\t__proto.startDispose=function(key){\r\n\t\tvar str;\r\n\t\tfor (str in this.useDic){\r\n\t\t\tthis.useDic[str]=false;\r\n\t\t}\r\n\t\tthis._checkKey=true;\r\n\t}\r\n\r\n\t/**\r\n\t*确认销毁\r\n\t*/\r\n\t__proto.endDispose=function(){\r\n\t\tif (this._checkKey){\r\n\t\t\tvar str;\r\n\t\t\tfor (str in this.useDic){\r\n\t\t\t\tif (!this.useDic[str]){\r\n\t\t\t\t\tthis.deleteShape(str);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._checkKey=false;\r\n\t\t}\r\n\t}\r\n\r\n\tVectorGraphManager.getInstance=function(){\r\n\t\treturn VectorGraphManager.instance=VectorGraphManager.instance|| new VectorGraphManager();\r\n\t}\r\n\r\n\tVectorGraphManager.instance=null;\r\n\treturn VectorGraphManager;\r\n})()\r\n\r\n\r\n/**\r\n*封装弱引用WeakMap\r\n*如果支持WeakMap，则使用WeakMap，如果不支持，则用Object代替\r\n*注意：如果采用Object，为了防止内存泄漏，则采用定时清理缓存策略\r\n*/\r\n//class laya.utils.WeakObject\r\nvar WeakObject=(function(){\r\n\tfunction WeakObject(){\r\n\t\t/**@private */\r\n\t\tthis._obj=null;\r\n\t\tthis._obj=WeakObject.supportWeakMap ? new Browser.window.WeakMap():{};\r\n\t\tif (!WeakObject.supportWeakMap)WeakObject._maps.push(this);\r\n\t}\r\n\r\n\t__class(WeakObject,'laya.utils.WeakObject');\r\n\tvar __proto=WeakObject.prototype;\r\n\t/**\r\n\t*设置缓存\r\n\t*@param key kye对象，可被回收\r\n\t*@param value object对象，可被回收\r\n\t*/\r\n\t__proto.set=function(key,value){\r\n\t\tif (key==null)return;\r\n\t\tif (WeakObject.supportWeakMap){\r\n\t\t\tvar objKey=key;\r\n\t\t\tif ((typeof key=='string')|| (typeof key=='number')){\r\n\t\t\t\tobjKey=WeakObject._keys[key];\r\n\t\t\t\tif (!objKey)objKey=WeakObject._keys[key]={k:key};\r\n\t\t\t}\r\n\t\t\tthis._obj.set(objKey,value);\r\n\t\t\t}else {\r\n\t\t\tif ((typeof key=='string')|| (typeof key=='number')){\r\n\t\t\t\tthis._obj[key]=value;\r\n\t\t\t\t}else {\r\n\t\t\t\tkey.$_GID || (key.$_GID=Utils.getGID());\r\n\t\t\t\tthis._obj[key.$_GID]=value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*获取缓存\r\n\t*@param key kye对象，可被回收\r\n\t*/\r\n\t__proto.get=function(key){\r\n\t\tif (key==null)return null;\r\n\t\tif (WeakObject.supportWeakMap){\r\n\t\t\tvar objKey=((typeof key=='string')|| (typeof key=='number'))? WeakObject._keys[key] :key;\r\n\t\t\tif (!objKey)return null;\r\n\t\t\treturn this._obj.get(objKey);\r\n\t\t\t}else {\r\n\t\t\tif ((typeof key=='string')|| (typeof key=='number'))return this._obj[key];\r\n\t\t\treturn this._obj[key.$_GID];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*删除缓存\r\n\t*/\r\n\t__proto.del=function(key){\r\n\t\tif (key==null)return;\r\n\t\tif (WeakObject.supportWeakMap){\r\n\t\t\tvar objKey=((typeof key=='string')|| (typeof key=='number'))? WeakObject._keys[key] :key;\r\n\t\t\tif (!objKey)return;\r\n\t\t\t/*__JS__ */this._obj.delete(objKey);\r\n\t\t\t}else {\r\n\t\t\tif ((typeof key=='string')|| (typeof key=='number'))delete this._obj[key];\r\n\t\t\telse delete this._obj[this._obj.$_GID];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*是否有缓存\r\n\t*/\r\n\t__proto.has=function(key){\r\n\t\tif (key==null)return false;\r\n\t\tif (WeakObject.supportWeakMap){\r\n\t\t\tvar objKey=((typeof key=='string')|| (typeof key=='number'))? WeakObject._keys[key] :key;\r\n\t\t\treturn this._obj.has(objKey);\r\n\t\t\t}else {\r\n\t\t\tif ((typeof key=='string')|| (typeof key=='number'))return this._obj[key] !=null;\r\n\t\t\treturn this._obj[this._obj.$_GID] !=null;\r\n\t\t}\r\n\t}\r\n\r\n\tWeakObject.__init__=function(){\r\n\t\tWeakObject.supportWeakMap=Browser.window.WeakMap !=null;\r\n\t\tif (!WeakObject.supportWeakMap)Laya.timer.loop(WeakObject.delInterval,null,WeakObject.clearCache);\r\n\t}\r\n\r\n\tWeakObject.clearCache=function(){\r\n\t\tfor (var i=0,n=WeakObject._maps.length;i < n;i++){\r\n\t\t\tvar obj=WeakObject._maps[i];\r\n\t\t\tobj._obj={};\r\n\t\t}\r\n\t}\r\n\r\n\tWeakObject.supportWeakMap=false;\r\n\tWeakObject.delInterval=5 *60 *1000;\r\n\tWeakObject._keys={};\r\n\tWeakObject._maps=[];\r\n\t__static(WeakObject,\r\n\t['I',function(){return this.I=new WeakObject();}\r\n\t]);\r\n\treturn WeakObject;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.utils.WordText\r\nvar WordText=(function(){\r\n\tfunction WordText(){\r\n\t\tthis.id=NaN;\r\n\t\tthis.save=[];\r\n\t\tthis.toUpperCase=null;\r\n\t\tthis.changed=false;\r\n\t\tthis._text=null;\r\n\t}\r\n\r\n\t__class(WordText,'laya.utils.WordText');\r\n\tvar __proto=WordText.prototype;\r\n\t__proto.setText=function(txt){\r\n\t\tthis.changed=true;\r\n\t\tthis._text=txt;\r\n\t}\r\n\r\n\t__proto.toString=function(){\r\n\t\treturn this._text;\r\n\t}\r\n\r\n\t__proto.charCodeAt=function(i){\r\n\t\treturn this._text ? this._text.charCodeAt(i):NaN;\r\n\t}\r\n\r\n\t__proto.charAt=function(i){\r\n\t\treturn this._text ? this._text.charAt(i):null;\r\n\t}\r\n\r\n\t__getset(0,__proto,'length',function(){\r\n\t\treturn this._text ? this._text.length :0;\r\n\t});\r\n\r\n\treturn WordText;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Node</code> 类是可放在显示列表中的所有对象的基类。该显示列表管理 Laya 运行时中显示的所有对象。使用 Node 类排列显示列表中的显示对象。Node 对象可以有子显示对象。\r\n*/\r\n//class laya.display.Node extends laya.events.EventDispatcher\r\nvar Node=(function(_super){\r\n\tfunction Node(){\r\n\t\t/**@private */\r\n\t\tthis._bits=0;\r\n\t\t/**@private 是否在显示列表中显示*/\r\n\t\tthis._displayedInStage=false;\r\n\t\t/**@private 父节点对象*/\r\n\t\tthis._parent=null;\r\n\t\t/**@private */\r\n\t\tthis.conchModel=null;\r\n\t\t/**节点名称。*/\r\n\t\tthis.name=\"\";\r\n\t\t/**[只读]是否已经销毁。对象销毁后不能再使用。*/\r\n\t\tthis._destroyed=false;\r\n\t\tNode.__super.call(this);\r\n\t\tthis._childs=Node.ARRAY_EMPTY;\r\n\t\tthis._$P=Node.PROP_EMPTY;\r\n\t\tthis.timer=Laya.scaleTimer;\r\n\t\tthis.conchModel=Render.isConchNode ? this.createConchModel():null;\r\n\t}\r\n\r\n\t__class(Node,'laya.display.Node',_super);\r\n\tvar __proto=Node.prototype;\r\n\t/**@private */\r\n\t__proto._setBit=function(type,value){\r\n\t\tif (type==0x1){\r\n\t\t\tvar preValue=this._getBit(type);\r\n\t\t\tif (preValue !=value){\r\n\t\t\t\tthis._updateDisplayedInstage();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (value){\r\n\t\t\tthis._bits |=type;\r\n\t\t\t}else {\r\n\t\t\tthis._bits &=~type;\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._getBit=function(type){\r\n\t\treturn (this._bits & type)!=0;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setUpNoticeChain=function(){\r\n\t\tif (this._getBit(0x1)){\r\n\t\t\tthis._setUpNoticeType(0x1);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setUpNoticeType=function(type){\r\n\t\tvar ele=this;\r\n\t\tele._setBit(type,true);\r\n\t\tele=ele.parent;\r\n\t\twhile (ele){\r\n\t\t\tif (ele._getBit(type))return;\r\n\t\t\tele._setBit(type,true);\r\n\t\t\tele=ele.parent;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*<p>增加事件侦听器，以使侦听器能够接收事件通知。</p>\r\n\t*<p>如果侦听鼠标事件，则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false，则停止设置父节点mouseEnabled属性)。</p>\r\n\t*@param type 事件的类型。\r\n\t*@param caller 事件侦听函数的执行域。\r\n\t*@param listener 事件侦听函数。\r\n\t*@param args （可选）事件侦听函数的回调参数。\r\n\t*@return 此 EventDispatcher 对象。\r\n\t*/\r\n\t__proto.on=function(type,caller,listener,args){\r\n\t\tif (type===/*laya.events.Event.DISPLAY*/\"display\" || type===/*laya.events.Event.UNDISPLAY*/\"undisplay\"){\r\n\t\t\tif (!this._getBit(0x1)){\r\n\t\t\t\tthis._setUpNoticeType(0x1);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._createListener(type,caller,listener,args,false);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>增加事件侦听器，以使侦听器能够接收事件通知，此侦听事件响应一次后则自动移除侦听。</p>\r\n\t*<p>如果侦听鼠标事件，则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false，则停止设置父节点mouseEnabled属性)。</p>\r\n\t*@param type 事件的类型。\r\n\t*@param caller 事件侦听函数的执行域。\r\n\t*@param listener 事件侦听函数。\r\n\t*@param args （可选）事件侦听函数的回调参数。\r\n\t*@return 此 EventDispatcher 对象。\r\n\t*/\r\n\t__proto.once=function(type,caller,listener,args){\r\n\t\tif (type===/*laya.events.Event.DISPLAY*/\"display\" || type===/*laya.events.Event.UNDISPLAY*/\"undisplay\"){\r\n\t\t\tif (!this._getBit(0x1)){\r\n\t\t\t\tthis._setUpNoticeType(0x1);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._createListener(type,caller,listener,args,true);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.createConchModel=function(){\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>销毁此对象。destroy对象默认会把自己从父节点移除，并且清理自身引用关系，等待js自动垃圾回收机制回收。destroy后不能再使用。</p>\r\n\t*<p>destroy时会移除自身的事情监听，自身的timer监听，移除子对象及从父节点移除自己。</p>\r\n\t*@param destroyChild （可选）是否同时销毁子节点，若值为true,则销毁子节点，否则不销毁子节点。\r\n\t*/\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tthis._destroyed=true;\r\n\t\tthis._parent && this._parent.removeChild(this);\r\n\t\tif (this._childs){\r\n\t\t\tif (destroyChild)this.destroyChildren();\r\n\t\t\telse this.removeChildren();\r\n\t\t}\r\n\t\tthis._childs=null;\r\n\t\tthis._$P=null;\r\n\t\tthis.offAll();\r\n\t\tthis.timer.clearAll(this);\r\n\t}\r\n\r\n\t/**\r\n\t*销毁所有子对象，不销毁自己本身。\r\n\t*/\r\n\t__proto.destroyChildren=function(){\r\n\t\tif (this._childs){\r\n\t\t\tfor (var i=this._childs.length-1;i >-1;i--){\r\n\t\t\t\tthis._childs[i].destroy(true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*添加子节点。\r\n\t*@param node 节点对象\r\n\t*@return 返回添加的节点\r\n\t*/\r\n\t__proto.addChild=function(node){\r\n\t\tif (!node || this.destroyed || node===this)return node;\r\n\t\tif ((node).zOrder)this._set$P(\"hasZorder\",true);\r\n\t\tif (node._parent===this){\r\n\t\t\tvar index=this.getChildIndex(node);\r\n\t\t\tif (index!==this._childs.length-1){\r\n\t\t\t\tthis._childs.splice(index,1);\r\n\t\t\t\tthis._childs.push(node);\r\n\t\t\t\tif (this.conchModel){\r\n\t\t\t\t\tthis.conchModel.removeChild(node.conchModel);\r\n\t\t\t\t\tthis.conchModel.addChildAt(node.conchModel,this._childs.length-1);\r\n\t\t\t\t}\r\n\t\t\t\tthis._childChanged();\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tnode.parent && node.parent.removeChild(node);\r\n\t\t\tthis._childs===Node.ARRAY_EMPTY && (this._childs=[]);\r\n\t\t\tthis._childs.push(node);\r\n\t\t\tthis.conchModel && this.conchModel.addChildAt(node.conchModel,this._childs.length-1);\r\n\t\t\tnode.parent=this;\r\n\t\t\tthis._childChanged();\r\n\t\t}\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t*批量增加子节点\r\n\t*@param ...args 无数子节点。\r\n\t*/\r\n\t__proto.addChildren=function(__args){\r\n\t\tvar args=arguments;\r\n\t\tvar i=0,n=args.length;\r\n\t\twhile (i < n){\r\n\t\t\tthis.addChild(args[i++]);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*添加子节点到指定的索引位置。\r\n\t*@param node 节点对象。\r\n\t*@param index 索引位置。\r\n\t*@return 返回添加的节点。\r\n\t*/\r\n\t__proto.addChildAt=function(node,index){\r\n\t\tif (!node || this.destroyed || node===this)return node;\r\n\t\tif ((node).zOrder)this._set$P(\"hasZorder\",true);\r\n\t\tif (index >=0 && index <=this._childs.length){\r\n\t\t\tif (node._parent===this){\r\n\t\t\t\tvar oldIndex=this.getChildIndex(node);\r\n\t\t\t\tthis._childs.splice(oldIndex,1);\r\n\t\t\t\tthis._childs.splice(index,0,node);\r\n\t\t\t\tif (this.conchModel){\r\n\t\t\t\t\tthis.conchModel.removeChild(node.conchModel);\r\n\t\t\t\t\tthis.conchModel.addChildAt(node.conchModel,index);\r\n\t\t\t\t}\r\n\t\t\t\tthis._childChanged();\r\n\t\t\t\t}else {\r\n\t\t\t\tnode.parent && node.parent.removeChild(node);\r\n\t\t\t\tthis._childs===Node.ARRAY_EMPTY && (this._childs=[]);\r\n\t\t\t\tthis._childs.splice(index,0,node);\r\n\t\t\t\tthis.conchModel && this.conchModel.addChildAt(node.conchModel,index);\r\n\t\t\t\tnode.parent=this;\r\n\t\t\t}\r\n\t\t\treturn node;\r\n\t\t\t}else {\r\n\t\t\tthrow new Error(\"appendChildAt:The index is out of bounds\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*根据子节点对象，获取子节点的索引位置。\r\n\t*@param node 子节点。\r\n\t*@return 子节点所在的索引位置。\r\n\t*/\r\n\t__proto.getChildIndex=function(node){\r\n\t\treturn this._childs.indexOf(node);\r\n\t}\r\n\r\n\t/**\r\n\t*根据子节点的名字，获取子节点对象。\r\n\t*@param name 子节点的名字。\r\n\t*@return 节点对象。\r\n\t*/\r\n\t__proto.getChildByName=function(name){\r\n\t\tvar nodes=this._childs;\r\n\t\tif (nodes){\r\n\t\t\tfor (var i=0,n=nodes.length;i < n;i++){\r\n\t\t\t\tvar node=nodes[i];\r\n\t\t\t\tif (node.name===name)return node;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._get$P=function(key){\r\n\t\treturn this._$P[key];\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._set$P=function(key,value){\r\n\t\tif (!this.destroyed){\r\n\t\t\tthis._$P===Node.PROP_EMPTY && (this._$P={});\r\n\t\t\tthis._$P[key]=value;\r\n\t\t}\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**\r\n\t*根据子节点的索引位置，获取子节点对象。\r\n\t*@param index 索引位置\r\n\t*@return 子节点\r\n\t*/\r\n\t__proto.getChildAt=function(index){\r\n\t\treturn this._childs[index];\r\n\t}\r\n\r\n\t/**\r\n\t*设置子节点的索引位置。\r\n\t*@param node 子节点。\r\n\t*@param index 新的索引。\r\n\t*@return 返回子节点本身。\r\n\t*/\r\n\t__proto.setChildIndex=function(node,index){\r\n\t\tvar childs=this._childs;\r\n\t\tif (index < 0 || index >=childs.length){\r\n\t\t\tthrow new Error(\"setChildIndex:The index is out of bounds.\");\r\n\t\t};\r\n\t\tvar oldIndex=this.getChildIndex(node);\r\n\t\tif (oldIndex < 0)throw new Error(\"setChildIndex:node is must child of this object.\");\r\n\t\tchilds.splice(oldIndex,1);\r\n\t\tchilds.splice(index,0,node);\r\n\t\tif (this.conchModel){\r\n\t\t\tthis.conchModel.removeChild(node.conchModel);\r\n\t\t\tthis.conchModel.addChildAt(node.conchModel,index);\r\n\t\t}\r\n\t\tthis._childChanged();\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*子节点发生改变。\r\n\t*@param child 子节点。\r\n\t*/\r\n\t__proto._childChanged=function(child){}\r\n\t/**\r\n\t*删除子节点。\r\n\t*@param node 子节点\r\n\t*@return 被删除的节点\r\n\t*/\r\n\t__proto.removeChild=function(node){\r\n\t\tif (!this._childs)return node;\r\n\t\tvar index=this._childs.indexOf(node);\r\n\t\treturn this.removeChildAt(index);\r\n\t}\r\n\r\n\t/**\r\n\t*从父容器删除自己，如已经被删除不会抛出异常。\r\n\t*@return 当前节点（ Node ）对象。\r\n\t*/\r\n\t__proto.removeSelf=function(){\r\n\t\tthis._parent && this._parent.removeChild(this);\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*根据子节点名字删除对应的子节点对象，如果找不到不会抛出异常。\r\n\t*@param name 对象名字。\r\n\t*@return 查找到的节点（ Node ）对象。\r\n\t*/\r\n\t__proto.removeChildByName=function(name){\r\n\t\tvar node=this.getChildByName(name);\r\n\t\tnode && this.removeChild(node);\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t*根据子节点索引位置，删除对应的子节点对象。\r\n\t*@param index 节点索引位置。\r\n\t*@return 被删除的节点。\r\n\t*/\r\n\t__proto.removeChildAt=function(index){\r\n\t\tvar node=this.getChildAt(index);\r\n\t\tif (node){\r\n\t\t\tthis._childs.splice(index,1);\r\n\t\t\tthis.conchModel && this.conchModel.removeChild(node.conchModel);\r\n\t\t\tnode.parent=null;\r\n\t\t}\r\n\t\treturn node;\r\n\t}\r\n\r\n\t/**\r\n\t*删除指定索引区间的所有子对象。\r\n\t*@param beginIndex 开始索引。\r\n\t*@param endIndex 结束索引。\r\n\t*@return 当前节点对象。\r\n\t*/\r\n\t__proto.removeChildren=function(beginIndex,endIndex){\r\n\t\t(beginIndex===void 0)&& (beginIndex=0);\r\n\t\t(endIndex===void 0)&& (endIndex=0x7fffffff);\r\n\t\tif (this._childs && this._childs.length > 0){\r\n\t\t\tvar childs=this._childs;\r\n\t\t\tif (beginIndex===0 && endIndex >=n){\r\n\t\t\t\tvar arr=childs;\r\n\t\t\t\tthis._childs=Node.ARRAY_EMPTY;\r\n\t\t\t\t}else {\r\n\t\t\t\tarr=childs.splice(beginIndex,endIndex-beginIndex);\r\n\t\t\t}\r\n\t\t\tfor (var i=0,n=arr.length;i < n;i++){\r\n\t\t\t\tarr[i].parent=null;\r\n\t\t\t\tthis.conchModel && this.conchModel.removeChild(arr[i].conchModel);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*替换子节点。\r\n\t*@internal 将传入的新节点对象替换到已有子节点索引位置处。\r\n\t*@param newNode 新节点。\r\n\t*@param oldNode 老节点。\r\n\t*@return 返回新节点。\r\n\t*/\r\n\t__proto.replaceChild=function(newNode,oldNode){\r\n\t\tvar index=this._childs.indexOf(oldNode);\r\n\t\tif (index >-1){\r\n\t\t\tthis._childs.splice(index,1,newNode);\r\n\t\t\tif (this.conchModel){\r\n\t\t\t\tthis.conchModel.removeChild(oldNode.conchModel);\r\n\t\t\t\tthis.conchModel.addChildAt(newNode.conchModel,index);\r\n\t\t\t}\r\n\t\t\toldNode.parent=null;\r\n\t\t\tnewNode.parent=this;\r\n\t\t\treturn newNode;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._updateDisplayedInstage=function(){\r\n\t\tvar ele;\r\n\t\tele=this;\r\n\t\tvar stage=Laya.stage;\r\n\t\tthis._displayedInStage=false;\r\n\t\twhile (ele){\r\n\t\t\tif (ele._getBit(0x1)){\r\n\t\t\t\tthis._displayedInStage=ele._displayedInStage;\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\t\tif (ele==stage || ele._displayedInStage){\r\n\t\t\t\tthis._displayedInStage=true;\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\t\tele=ele.parent;\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setDisplay=function(value){\r\n\t\tif (this._displayedInStage!==value){\r\n\t\t\tthis._displayedInStage=value;\r\n\t\t\tif (value)this.event(/*laya.events.Event.DISPLAY*/\"display\");\r\n\t\t\telse this.event(/*laya.events.Event.UNDISPLAY*/\"undisplay\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*设置指定节点对象是否可见(是否在渲染列表中)。\r\n\t*@param node 节点。\r\n\t*@param display 是否可见。\r\n\t*/\r\n\t__proto._displayChild=function(node,display){\r\n\t\tvar childs=node._childs;\r\n\t\tif (childs){\r\n\t\t\tfor (var i=0,n=childs.length;i < n;i++){\r\n\t\t\t\tvar child=childs[i];\r\n\t\t\t\tif (!child._getBit(0x1))continue ;\r\n\t\t\t\tif (child._childs.length > 0){\r\n\t\t\t\t\tthis._displayChild(child,display);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tchild._setDisplay(display);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tnode._setDisplay(display);\r\n\t}\r\n\r\n\t/**\r\n\t*当前容器是否包含指定的 <code>Node</code> 节点对象 。\r\n\t*@param node 指定的 <code>Node</code> 节点对象 。\r\n\t*@return 一个布尔值表示是否包含指定的 <code>Node</code> 节点对象 。\r\n\t*/\r\n\t__proto.contains=function(node){\r\n\t\tif (node===this)return true;\r\n\t\twhile (node){\r\n\t\t\tif (node.parent===this)return true;\r\n\t\t\tnode=node.parent;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t*定时重复执行某函数。功能同Laya.timer.timerLoop()。\r\n\t*@param delay 间隔时间(单位毫秒)。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 结束时的回调方法。\r\n\t*@param args （可选）回调参数。\r\n\t*@param coverBefore （可选）是否覆盖之前的延迟执行，默认为true。\r\n\t*@param jumpFrame 时钟是否跳帧。基于时间的循环回调，单位时间间隔内，如能执行多次回调，出于性能考虑，引擎默认只执行一次，设置jumpFrame=true后，则回调会连续执行多次\r\n\t*/\r\n\t__proto.timerLoop=function(delay,caller,method,args,coverBefore,jumpFrame){\r\n\t\t(coverBefore===void 0)&& (coverBefore=true);\r\n\t\t(jumpFrame===void 0)&& (jumpFrame=false);\r\n\t\tthis.timer.loop(delay,caller,method,args,coverBefore,jumpFrame);\r\n\t}\r\n\r\n\t/**\r\n\t*定时执行某函数一次。功能同Laya.timer.timerOnce()。\r\n\t*@param delay 延迟时间(单位毫秒)。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 结束时的回调方法。\r\n\t*@param args （可选）回调参数。\r\n\t*@param coverBefore （可选）是否覆盖之前的延迟执行，默认为true。\r\n\t*/\r\n\t__proto.timerOnce=function(delay,caller,method,args,coverBefore){\r\n\t\t(coverBefore===void 0)&& (coverBefore=true);\r\n\t\tthis.timer._create(false,false,delay,caller,method,args,coverBefore);\r\n\t}\r\n\r\n\t/**\r\n\t*定时重复执行某函数(基于帧率)。功能同Laya.timer.frameLoop()。\r\n\t*@param delay 间隔几帧(单位为帧)。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 结束时的回调方法。\r\n\t*@param args （可选）回调参数。\r\n\t*@param coverBefore （可选）是否覆盖之前的延迟执行，默认为true。\r\n\t*/\r\n\t__proto.frameLoop=function(delay,caller,method,args,coverBefore){\r\n\t\t(coverBefore===void 0)&& (coverBefore=true);\r\n\t\tthis.timer._create(true,true,delay,caller,method,args,coverBefore);\r\n\t}\r\n\r\n\t/**\r\n\t*定时执行一次某函数(基于帧率)。功能同Laya.timer.frameOnce()。\r\n\t*@param delay 延迟几帧(单位为帧)。\r\n\t*@param caller 执行域(this)\r\n\t*@param method 结束时的回调方法\r\n\t*@param args （可选）回调参数\r\n\t*@param coverBefore （可选）是否覆盖之前的延迟执行，默认为true\r\n\t*/\r\n\t__proto.frameOnce=function(delay,caller,method,args,coverBefore){\r\n\t\t(coverBefore===void 0)&& (coverBefore=true);\r\n\t\tthis.timer._create(true,false,delay,caller,method,args,coverBefore);\r\n\t}\r\n\r\n\t/**\r\n\t*清理定时器。功能同Laya.timer.clearTimer()。\r\n\t*@param caller 执行域(this)。\r\n\t*@param method 结束时的回调方法。\r\n\t*/\r\n\t__proto.clearTimer=function(caller,method){\r\n\t\tthis.timer.clear(caller,method);\r\n\t}\r\n\r\n\t/**\r\n\t*子对象数量。\r\n\t*/\r\n\t__getset(0,__proto,'numChildren',function(){\r\n\t\treturn this._childs.length;\r\n\t});\r\n\r\n\t/**\r\n\t*[只读]是否已经销毁。对象销毁后不能再使用。\r\n\t*@return\r\n\t*/\r\n\t__getset(0,__proto,'destroyed',function(){\r\n\t\treturn this._destroyed;\r\n\t});\r\n\r\n\t/**父节点。*/\r\n\t__getset(0,__proto,'parent',function(){\r\n\t\treturn this._parent;\r\n\t\t},function(value){\r\n\t\tif (this._parent!==value){\r\n\t\t\tif (value){\r\n\t\t\t\tthis._parent=value;\r\n\t\t\t\tthis.event(/*laya.events.Event.ADDED*/\"added\");\r\n\t\t\t\tif (this._getBit(0x1)){\r\n\t\t\t\t\tthis._setUpNoticeChain();\r\n\t\t\t\t\tvalue.displayedInStage && this._displayChild(this,true);\r\n\t\t\t\t}\r\n\t\t\t\tvalue._childChanged(this);\r\n\t\t\t\t}else {\r\n\t\t\t\tthis.event(/*laya.events.Event.REMOVED*/\"removed\");\r\n\t\t\t\tthis._parent._childChanged();\r\n\t\t\t\tif (this._getBit(0x1))this._displayChild(this,false);\r\n\t\t\t\tthis._parent=value;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**表示是否在显示列表中显示。*/\r\n\t__getset(0,__proto,'displayedInStage',function(){\r\n\t\tif (this._getBit(0x1))return this._displayedInStage;\r\n\t\tthis._setUpNoticeType(0x1);\r\n\t\treturn this._displayedInStage;\r\n\t});\r\n\r\n\tNode.ARRAY_EMPTY=[];\r\n\tNode.PROP_EMPTY={};\r\n\tNode.NOTICE_DISPLAY=0x1;\r\n\tNode.MOUSEENABLE=0x2;\r\n\treturn Node;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*@private\r\n*<code>CSSStyle</code> 类是元素CSS样式定义类。\r\n*/\r\n//class laya.display.css.CSSStyle extends laya.display.css.Style\r\nvar CSSStyle=(function(_super){\r\n\tfunction CSSStyle(ower){\r\n\t\tthis._bgground=null;\r\n\t\tthis._border=null;\r\n\t\t//this._ower=null;\r\n\t\tthis._rect=null;\r\n\t\t/**@private */\r\n\t\tthis.underLine=0;\r\n\t\t/**行高。 */\r\n\t\tthis.lineHeight=0;\r\n\t\tCSSStyle.__super.call(this);\r\n\t\tthis._padding=CSSStyle._PADDING;\r\n\t\tthis._spacing=CSSStyle._SPACING;\r\n\t\tthis._aligns=CSSStyle._ALIGNS;\r\n\t\tthis._font=Font.EMPTY;\r\n\t\tthis._ower=ower;\r\n\t}\r\n\r\n\t__class(CSSStyle,'laya.display.css.CSSStyle',_super);\r\n\tvar __proto=CSSStyle.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(){\r\n\t\tthis._ower=null;\r\n\t\tthis._font=null;\r\n\t\tthis._rect=null;\r\n\t}\r\n\r\n\t/**\r\n\t*复制传入的 CSSStyle 属性值。\r\n\t*@param src 待复制的 CSSStyle 对象。\r\n\t*/\r\n\t__proto.inherit=function(src){\r\n\t\tthis._font=src._font;\r\n\t\tthis._spacing=src._spacing===CSSStyle._SPACING ? CSSStyle._SPACING :src._spacing.slice();\r\n\t\tthis.lineHeight=src.lineHeight;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._widthAuto=function(){\r\n\t\treturn (this._type & 0x40000)!==0;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.widthed=function(sprite){\r\n\t\treturn (this._type & 0x8)!=0;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._calculation=function(type,value){\r\n\t\tif (value.indexOf('%')< 0)return false;\r\n\t\tvar ower=this._ower;\r\n\t\tvar parent=ower.parent;\r\n\t\tvar rect=this._rect;\r\n\t\tfunction getValue (pw,w,nums){\r\n\t\t\treturn (pw *nums[0]+w *nums[1]+nums[2]);\r\n\t\t}\r\n\t\tfunction onParentResize (type){\r\n\t\t\tvar pw=parent.width,w=ower.width;\r\n\t\t\trect.width && (ower.width=getValue(pw,w,rect.width));\r\n\t\t\trect.height && (ower.height=getValue(pw,w,rect.height));\r\n\t\t\trect.left && (ower.x=getValue(pw,w,rect.left));\r\n\t\t\trect.top && (ower.y=getValue(pw,w,rect.top));\r\n\t\t}\r\n\t\tif (rect===null){\r\n\t\t\tparent._getCSSStyle()._type |=0x80000;\r\n\t\t\tparent.on(/*laya.events.Event.RESIZE*/\"resize\",this,onParentResize);\r\n\t\t\tthis._rect=rect={input:{}};\r\n\t\t};\r\n\t\tvar nums=value.split(' ');\r\n\t\tnums[0]=parseFloat(nums[0])/ 100;\r\n\t\tif (nums.length==1)\r\n\t\t\tnums[1]=nums[2]=0;\r\n\t\telse {\r\n\t\t\tnums[1]=parseFloat(nums[1])/ 100;\r\n\t\t\tnums[2]=parseFloat(nums[2]);\r\n\t\t}\r\n\t\trect[type]=nums;\r\n\t\trect.input[type]=value;\r\n\t\tonParentResize(type);\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**\r\n\t*是否已设置高度。\r\n\t*@param sprite 显示对象 Sprite。\r\n\t*@return 一个Boolean 表示是否已设置高度。\r\n\t*/\r\n\t__proto.heighted=function(sprite){\r\n\t\treturn (this._type & 0x2000)!=0;\r\n\t}\r\n\r\n\t/**\r\n\t*设置宽高。\r\n\t*@param w 宽度。\r\n\t*@param h 高度。\r\n\t*/\r\n\t__proto.size=function(w,h){\r\n\t\tvar ower=this._ower;\r\n\t\tvar resize=false;\r\n\t\tif (w!==-1 && w !=this._ower.width){\r\n\t\t\tthis._type |=0x8;\r\n\t\t\tthis._ower.width=w;\r\n\t\t\tresize=true;\r\n\t\t}\r\n\t\tif (h!==-1 && h !=this._ower.height){\r\n\t\t\tthis._type |=0x2000;\r\n\t\t\tthis._ower.height=h;\r\n\t\t\tresize=true;\r\n\t\t}\r\n\t\tif (resize){\r\n\t\t\tower._layoutLater();\r\n\t\t\t(this._type & 0x80000)&& ower.event(/*laya.events.Event.RESIZE*/\"resize\",this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._getAlign=function(){\r\n\t\treturn this._aligns[0];\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._getValign=function(){\r\n\t\treturn this._aligns[1];\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._getCssFloat=function(){\r\n\t\treturn (this._type & 0x8000)!=0 ? 0x8000 :0;\r\n\t}\r\n\r\n\t__proto._createFont=function(){\r\n\t\treturn (this._type & 0x1000)? this._font :(this._type |=0x1000,this._font=new Font(this._font));\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.render=function(sprite,context,x,y){\r\n\t\tvar w=sprite.width;\r\n\t\tvar h=sprite.height;\r\n\t\tx-=sprite.pivotX;\r\n\t\ty-=sprite.pivotY;\r\n\t\tthis._bgground && this._bgground.color !=null && context.ctx.fillRect(x,y,w,h,this._bgground.color);\r\n\t\tthis._border && this._border.color && context.drawRect(x,y,w,h,this._border.color.strColor,this._border.size);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.getCSSStyle=function(){\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*设置 CSS 样式字符串。\r\n\t*@param text CSS样式字符串。\r\n\t*/\r\n\t__proto.cssText=function(text){\r\n\t\tthis.attrs(CSSStyle.parseOneCSS(text,';'));\r\n\t}\r\n\r\n\t/**\r\n\t*根据传入的属性名、属性值列表，设置此对象的属性值。\r\n\t*@param attrs 属性名与属性值列表。\r\n\t*/\r\n\t__proto.attrs=function(attrs){\r\n\t\tif (attrs){\r\n\t\t\tfor (var i=0,n=attrs.length;i < n;i++){\r\n\t\t\t\tvar attr=attrs[i];\r\n\t\t\t\tthis[attr[0]]=attr[1];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.setTransform=function(value){\r\n\t\t(value==='none')? (this._tf=Style._TF_EMPTY):this.attrs(CSSStyle.parseOneCSS(value,','));\r\n\t}\r\n\r\n\t/**\r\n\t*定义 X 轴、Y 轴移动转换。\r\n\t*@param x X 轴平移量。\r\n\t*@param y Y 轴平移量。\r\n\t*/\r\n\t__proto.translate=function(x,y){\r\n\t\tthis._tf===Style._TF_EMPTY && (this._tf=new TransformInfo());\r\n\t\tthis._tf.translateX=x;\r\n\t\tthis._tf.translateY=y;\r\n\t}\r\n\r\n\t/**\r\n\t*定义 缩放转换。\r\n\t*@param x X 轴缩放值。\r\n\t*@param y Y 轴缩放值。\r\n\t*/\r\n\t__proto.scale=function(x,y){\r\n\t\tthis._tf===Style._TF_EMPTY && (this._tf=new TransformInfo());\r\n\t\tthis._tf.scaleX=x;\r\n\t\tthis._tf.scaleY=y;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._enableLayout=function(){\r\n\t\treturn (this._type & 0x2)===0 && (this._type & 0x4)===0;\r\n\t}\r\n\r\n\t/**\r\n\t*是否显示为块级元素。\r\n\t*/\r\n\t__getset(0,__proto,'block',_super.prototype._$get_block,function(value){\r\n\t\tvalue ? (this._type |=0x1):(this._type &=(~0x1));\r\n\t});\r\n\r\n\t/**\r\n\t*垂直对齐方式。\r\n\t*/\r\n\t__getset(0,__proto,'valign',function(){\r\n\t\treturn CSSStyle._valigndef[this._aligns[1]];\r\n\t\t},function(value){\r\n\t\tthis._aligns===CSSStyle._ALIGNS && (this._aligns=[0,0,0]);\r\n\t\tthis._aligns[1]=CSSStyle._valigndef[value];\r\n\t});\r\n\r\n\t/**\r\n\t*高度。\r\n\t*/\r\n\t__getset(0,__proto,'height',null,function(h){\r\n\t\tthis._type |=0x2000;\r\n\t\tif ((typeof h=='string')){\r\n\t\t\tif (this._calculation(\"height\",h))return;\r\n\t\t\th=parseInt(h);\r\n\t\t}\r\n\t\tthis.size(-1,h);\r\n\t});\r\n\r\n\t/**\r\n\t*宽度。\r\n\t*/\r\n\t__getset(0,__proto,'width',null,function(w){\r\n\t\tthis._type |=0x8;\r\n\t\tif ((typeof w=='string')){\r\n\t\t\tvar offset=w.indexOf('auto');\r\n\t\t\tif (offset >=0){\r\n\t\t\t\tthis._type |=0x40000;\r\n\t\t\t\tw=w.substr(0,offset);\r\n\t\t\t}\r\n\t\t\tif (this._calculation(\"width\",w))return;\r\n\t\t\tw=parseInt(w);\r\n\t\t}\r\n\t\tthis.size(w,-1);\r\n\t});\r\n\r\n\t/**\r\n\t*字体粗细。\r\n\t*/\r\n\t__getset(0,__proto,'fontWeight',function(){\r\n\t\treturn this._font.weight;\r\n\t\t},function(value){\r\n\t\tthis._createFont().weight=value;\r\n\t});\r\n\r\n\t/**\r\n\t*表示左边距。\r\n\t*/\r\n\t__getset(0,__proto,'left',null,function(value){\r\n\t\tvar ower=this._ower;\r\n\t\tif (((typeof value=='string'))){\r\n\t\t\tif (value===\"center\")\r\n\t\t\t\tvalue=\"50% -50% 0\";\r\n\t\t\telse if (value===\"right\")\r\n\t\t\tvalue=\"100% -100% 0\";\r\n\t\t\tif (this._calculation(\"left\",value))return;\r\n\t\t\tvalue=parseInt(value);\r\n\t\t}\r\n\t\tower.x=value;\r\n\t});\r\n\r\n\t__getset(0,__proto,'_translate',null,function(value){\r\n\t\tthis.translate(value[0],value[1]);\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'absolute',function(){\r\n\t\treturn (this._type & 0x4)!==0;\r\n\t});\r\n\r\n\t/**\r\n\t*表示上边距。\r\n\t*/\r\n\t__getset(0,__proto,'top',null,function(value){\r\n\t\tvar ower=this._ower;\r\n\t\tif (((typeof value=='string'))){\r\n\t\t\tif (value===\"middle\")\r\n\t\t\t\tvalue=\"50% -50% 0\";\r\n\t\t\telse if (value===\"bottom\")\r\n\t\t\tvalue=\"100% -100% 0\";\r\n\t\t\tif (this._calculation(\"top\",value))return;\r\n\t\t\tvalue=parseInt(value);\r\n\t\t}\r\n\t\tower.y=value;\r\n\t});\r\n\r\n\t/**\r\n\t*水平对齐方式。\r\n\t*/\r\n\t__getset(0,__proto,'align',function(){\r\n\t\treturn CSSStyle._aligndef[this._aligns[0]];\r\n\t\t},function(value){\r\n\t\tthis._aligns===CSSStyle._ALIGNS && (this._aligns=[0,0,0]);\r\n\t\tthis._aligns[0]=CSSStyle._aligndef[value];\r\n\t});\r\n\r\n\t/**\r\n\t*表示是否加粗。\r\n\t*/\r\n\t__getset(0,__proto,'bold',function(){\r\n\t\treturn this._font.bold;\r\n\t\t},function(value){\r\n\t\tthis._createFont().bold=value;\r\n\t});\r\n\r\n\t/**\r\n\t*边距信息。\r\n\t*/\r\n\t__getset(0,__proto,'padding',function(){\r\n\t\treturn this._padding;\r\n\t\t},function(value){\r\n\t\tthis._padding=value;\r\n\t});\r\n\r\n\t/**\r\n\t*行间距。\r\n\t*/\r\n\t__getset(0,__proto,'leading',function(){\r\n\t\treturn this._spacing[1];\r\n\t\t},function(d){\r\n\t\t((typeof d=='string'))&& (d=parseInt(d+\"\"));\r\n\t\tthis._spacing===CSSStyle._SPACING && (this._spacing=[0,0]);\r\n\t\tthis._spacing[1]=d;\r\n\t});\r\n\r\n\t/**\r\n\t*是否是行元素。\r\n\t*/\r\n\t__getset(0,__proto,'lineElement',function(){\r\n\t\treturn (this._type & 0x10000)!=0;\r\n\t\t},function(value){\r\n\t\tvalue ? (this._type |=0x10000):(this._type &=(~0x10000));\r\n\t});\r\n\r\n\t/**\r\n\t*浮动方向。\r\n\t*/\r\n\t__getset(0,__proto,'cssFloat',function(){\r\n\t\treturn (this._type & 0x8000)!=0 ? \"right\" :\"left\";\r\n\t\t},function(value){\r\n\t\tthis.lineElement=false;\r\n\t\tvalue===\"right\" ? (this._type |=0x8000):(this._type &=(~0x8000));\r\n\t});\r\n\r\n\t/**\r\n\t*添加到文本的修饰。\r\n\t*/\r\n\t__getset(0,__proto,'textDecoration',function(){\r\n\t\treturn this._font.decoration;\r\n\t\t},function(value){\r\n\t\tthis._createFont().decoration=value;\r\n\t});\r\n\r\n\t/**\r\n\t*设置如何处理元素内的空白。\r\n\t*/\r\n\t__getset(0,__proto,'whiteSpace',function(){\r\n\t\treturn (this._type & 0x20000)? \"nowrap\" :\"\";\r\n\t\t},function(type){\r\n\t\ttype===\"nowrap\" && (this._type |=0x20000);\r\n\t\ttype===\"none\" && (this._type &=~0x20000);\r\n\t});\r\n\r\n\t__getset(0,__proto,'background',null,function(value){\r\n\t\tif (!value){\r\n\t\t\tthis._bgground=null;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._bgground || (this._bgground={});\r\n\t\tthis._bgground.color=value;\r\n\t\tthis._ower.conchModel && this._ower.conchModel.bgColor(value);\r\n\t\tthis._type |=0x4000;\r\n\t\tthis._ower._renderType |=/*laya.renders.RenderSprite.STYLE*/0x100;\r\n\t});\r\n\r\n\t/**\r\n\t*表示是否换行。\r\n\t*/\r\n\t__getset(0,__proto,'wordWrap',function(){\r\n\t\treturn (this._type & 0x20000)===0;\r\n\t\t},function(value){\r\n\t\tvalue ? (this._type &=~0x20000):(this._type |=0x20000);\r\n\t});\r\n\r\n\t/**\r\n\t*字体颜色。\r\n\t*/\r\n\t__getset(0,__proto,'color',function(){\r\n\t\treturn this._font.color;\r\n\t\t},function(value){\r\n\t\tthis._createFont().color=value;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>指定文本字段是否是密码文本字段。</p>\r\n\t*如果此属性的值为 true，则文本字段被视为密码文本字段，并使用星号而不是实际字符来隐藏输入的字符。如果为 false，则不会将文本字段视为密码文本字段。\r\n\t*/\r\n\t__getset(0,__proto,'password',function(){\r\n\t\treturn this._font.password;\r\n\t\t},function(value){\r\n\t\tthis._createFont().password=value;\r\n\t});\r\n\r\n\t/**\r\n\t*背景颜色。\r\n\t*/\r\n\t__getset(0,__proto,'backgroundColor',function(){\r\n\t\treturn this._bgground ? this._bgground.color :null;\r\n\t\t},function(value){\r\n\t\tif (value==='none')this._bgground=null;\r\n\t\telse (this._bgground || (this._bgground={}),this._bgground.color=value);\r\n\t\tthis._ower.conchModel && this._ower.conchModel.bgColor(value);\r\n\t\tthis._ower._renderType |=/*laya.renders.RenderSprite.STYLE*/0x100;\r\n\t});\r\n\r\n\t/**\r\n\t*字体信息。\r\n\t*/\r\n\t__getset(0,__proto,'font',function(){\r\n\t\treturn this._font.toString();\r\n\t\t},function(value){\r\n\t\tthis._createFont().set(value);\r\n\t});\r\n\r\n\t/**\r\n\t*文本的粗细。\r\n\t*/\r\n\t__getset(0,__proto,'weight',null,function(value){\r\n\t\tthis._createFont().weight=value;\r\n\t});\r\n\r\n\t/**\r\n\t*间距。\r\n\t*/\r\n\t__getset(0,__proto,'letterSpacing',function(){\r\n\t\treturn this._spacing[0];\r\n\t\t},function(d){\r\n\t\t((typeof d=='string'))&& (d=parseInt(d+\"\"));\r\n\t\tthis._spacing===CSSStyle._SPACING && (this._spacing=[0,0]);\r\n\t\tthis._spacing[0]=d;\r\n\t});\r\n\r\n\t/**\r\n\t*字体大小。\r\n\t*/\r\n\t__getset(0,__proto,'fontSize',function(){\r\n\t\treturn this._font.size;\r\n\t\t},function(value){\r\n\t\tthis._createFont().size=value;\r\n\t});\r\n\r\n\t/**\r\n\t*表示是否为斜体。\r\n\t*/\r\n\t__getset(0,__proto,'italic',function(){\r\n\t\treturn this._font.italic;\r\n\t\t},function(value){\r\n\t\tthis._createFont().italic=value;\r\n\t});\r\n\r\n\t/**\r\n\t*字体系列。\r\n\t*/\r\n\t__getset(0,__proto,'fontFamily',function(){\r\n\t\treturn this._font.family;\r\n\t\t},function(value){\r\n\t\tthis._createFont().family=value;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>描边宽度（以像素为单位）。</p>\r\n\t*默认值0，表示不描边。\r\n\t*@default 0\r\n\t*/\r\n\t__getset(0,__proto,'stroke',function(){\r\n\t\treturn this._font.stroke[0];\r\n\t\t},function(value){\r\n\t\tif (this._createFont().stroke===Font._STROKE)this._font.stroke=[0,\"#000000\"];\r\n\t\tthis._font.stroke[0]=value;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>描边颜色，以字符串表示。</p>\r\n\t*@default \"#000000\";\r\n\t*/\r\n\t__getset(0,__proto,'strokeColor',function(){\r\n\t\treturn this._font.stroke[1];\r\n\t\t},function(value){\r\n\t\tif (this._createFont().stroke===Font._STROKE)this._font.stroke=[0,\"#000000\"];\r\n\t\tthis._font.stroke[1]=value;\r\n\t});\r\n\r\n\t/**\r\n\t*边框属性，比如border=\"5px solid red\"\r\n\t*/\r\n\t__getset(0,__proto,'border',function(){\r\n\t\treturn this._border ? this._border.value :\"\";\r\n\t\t},function(value){\r\n\t\tif (value=='none'){\r\n\t\t\tthis._border=null;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._border || (this._border={});\r\n\t\tthis._border.value=value;\r\n\t\tvar values=value.split(' ');\r\n\t\tthis._border.color=Color.create(values[values.length-1]);\r\n\t\tif (values.length==1){\r\n\t\t\tthis._border.size=1;\r\n\t\t\tthis._border.type='solid';\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar i=0;\r\n\t\tif (values[0].indexOf('px')> 0){\r\n\t\t\tthis._border.size=parseInt(values[0]);\r\n\t\t\ti++;\r\n\t\t}else this._border.size=1;\r\n\t\tthis._border.type=values[i];\r\n\t\tthis._ower._renderType |=/*laya.renders.RenderSprite.STYLE*/0x100;\r\n\t});\r\n\r\n\t/**\r\n\t*边框的颜色。\r\n\t*/\r\n\t__getset(0,__proto,'borderColor',function(){\r\n\t\treturn (this._border && this._border.color)? this._border.color.strColor :null;\r\n\t\t},function(value){\r\n\t\tif (!value){\r\n\t\t\tthis._border=null;\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._border || (this._border={size:1,type:'solid'});\r\n\t\tthis._border.color=(value==null)? null :Color.create(value);\r\n\t\tthis._ower.conchModel && this._ower.conchModel.border(this._border.color.strColor);\r\n\t\tthis._ower._renderType |=/*laya.renders.RenderSprite.STYLE*/0x100;\r\n\t});\r\n\r\n\t/**\r\n\t*元素的定位类型。\r\n\t*/\r\n\t__getset(0,__proto,'position',function(){\r\n\t\treturn (this._type & 0x4)? \"absolute\" :\"\";\r\n\t\t},function(value){\r\n\t\tvalue==\"absolute\" ? (this._type |=0x4):(this._type &=~0x4);\r\n\t});\r\n\r\n\t/**\r\n\t*规定元素应该生成的框的类型。\r\n\t*/\r\n\t__getset(0,__proto,'display',null,function(value){\r\n\t\tswitch (value){\r\n\t\t\tcase '':\r\n\t\t\t\tthis._type &=~0x2;\r\n\t\t\t\tthis.visible=true;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 'none':\r\n\t\t\t\tthis._type |=0x2;\r\n\t\t\t\tthis.visible=false;\r\n\t\t\t\tthis._ower._layoutLater();\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'paddingLeft',function(){\r\n\t\treturn this.padding[3];\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'paddingTop',function(){\r\n\t\treturn this.padding[0];\r\n\t});\r\n\r\n\t__getset(0,__proto,'_scale',null,function(value){\r\n\t\tthis._ower.scale(value[0],value[1]);\r\n\t});\r\n\r\n\t__getset(0,__proto,'_rotate',null,function(value){\r\n\t\tthis._ower.rotation=value;\r\n\t});\r\n\r\n\tCSSStyle.parseOneCSS=function(text,clipWord){\r\n\t\tvar out=[];\r\n\t\tvar attrs=text.split(clipWord);\r\n\t\tvar valueArray;\r\n\t\tfor (var i=0,n=attrs.length;i < n;i++){\r\n\t\t\tvar attr=attrs[i];\r\n\t\t\tvar ofs=attr.indexOf(':');\r\n\t\t\tvar name=attr.substr(0,ofs).replace(/^\\s+|\\s+$/g,'');\r\n\t\t\tif (name.length==0)\r\n\t\t\t\tcontinue ;\r\n\t\t\tvar value=attr.substr(ofs+1).replace(/^\\s+|\\s+$/g,'');\r\n\t\t\tvar one=[name,value];\r\n\t\t\tswitch (name){\r\n\t\t\t\tcase 'italic':\r\n\t\t\t\tcase 'bold':\r\n\t\t\t\t\tone[1]=value==\"true\";\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 'line-height':\r\n\t\t\t\t\tone[0]='lineHeight';\r\n\t\t\t\t\tone[1]=parseInt(value);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 'font-size':\r\n\t\t\t\t\tone[0]='fontSize';\r\n\t\t\t\t\tone[1]=parseInt(value);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 'padding':\r\n\t\t\t\t\tvalueArray=value.split(' ');\r\n\t\t\t\t\tvalueArray.length > 1 || (valueArray[1]=valueArray[2]=valueArray[3]=valueArray[0]);\r\n\t\t\t\t\tone[1]=[parseInt(valueArray[0]),parseInt(valueArray[1]),parseInt(valueArray[2]),parseInt(valueArray[3])];\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 'rotate':\r\n\t\t\t\t\tone[0]=\"_rotate\";\r\n\t\t\t\t\tone[1]=parseFloat(value);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 'scale':\r\n\t\t\t\t\tvalueArray=value.split(' ');\r\n\t\t\t\t\tone[0]=\"_scale\";\r\n\t\t\t\t\tone[1]=[parseFloat(valueArray[0]),parseFloat(valueArray[1])];\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 'translate':\r\n\t\t\t\t\tvalueArray=value.split(' ');\r\n\t\t\t\t\tone[0]=\"_translate\";\r\n\t\t\t\t\tone[1]=[parseInt(valueArray[0]),parseInt(valueArray[1])];\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tdefault :\r\n\t\t\t\t\t(one[0]=CSSStyle._CSSTOVALUE[name])|| (one[0]=name);\r\n\t\t\t\t}\r\n\t\t\tout.push(one);\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\tCSSStyle.parseCSS=function(text,uri){\r\n\t\tvar one;\r\n\t\twhile ((one=CSSStyle._parseCSSRegExp.exec(text))!=null){\r\n\t\t\tCSSStyle.styleSheets[one[1]]=CSSStyle.parseOneCSS(one[2],';');\r\n\t\t}\r\n\t}\r\n\r\n\tCSSStyle.EMPTY=new CSSStyle(null);\r\n\tCSSStyle._CSSTOVALUE={'letter-spacing':'letterSpacing','line-spacing':'lineSpacing','white-space':'whiteSpace','line-height':'lineHeight','scale-x':'scaleX','scale-y':'scaleY','translate-x':'translateX','translate-y':'translateY','font-family':'fontFamily','font-weight':'fontWeight','vertical-align':'valign','text-decoration':'textDecoration','background-color':'backgroundColor','border-color':'borderColor','float':'cssFloat'};\r\n\tCSSStyle._parseCSSRegExp=new RegExp(\"([\\.\\#]\\\\w+)\\\\s*{([\\\\s\\\\S]*?)}\",\"g\");\r\n\tCSSStyle._aligndef={'left':0,'center':1,'right':2,0:'left',1:'center',2:'right'};\r\n\tCSSStyle._valigndef={'top':0,'middle':1,'bottom':2,0:'top',1:'middle',2:'bottom'};\r\n\tCSSStyle.styleSheets={};\r\n\tCSSStyle.ALIGN_CENTER=1;\r\n\tCSSStyle.ALIGN_RIGHT=2;\r\n\tCSSStyle.VALIGN_MIDDLE=1;\r\n\tCSSStyle.VALIGN_BOTTOM=2;\r\n\tCSSStyle._CSS_BLOCK=0x1;\r\n\tCSSStyle._DISPLAY_NONE=0x2;\r\n\tCSSStyle._ABSOLUTE=0x4;\r\n\tCSSStyle._WIDTH_SET=0x8;\r\n\tCSSStyle._PADDING=[0,0,0,0];\r\n\tCSSStyle._RECT=[-1,-1,-1,-1];\r\n\tCSSStyle._SPACING=[0,0];\r\n\tCSSStyle._ALIGNS=[0,0,0];\r\n\tCSSStyle.ADDLAYOUTED=0x200;\r\n\tCSSStyle._NEWFONT=0x1000;\r\n\tCSSStyle._HEIGHT_SET=0x2000;\r\n\tCSSStyle._BACKGROUND_SET=0x4000;\r\n\tCSSStyle._FLOAT_RIGHT=0x8000;\r\n\tCSSStyle._LINE_ELEMENT=0x10000;\r\n\tCSSStyle._NOWARP=0x20000;\r\n\tCSSStyle._WIDTHAUTO=0x40000;\r\n\tCSSStyle._LISTERRESZIE=0x80000;\r\n\treturn CSSStyle;\r\n})(Style)\r\n\r\n\r\n/**\r\n*@private\r\n*使用Audio标签播放声音\r\n*/\r\n//class laya.media.h5audio.AudioSound extends laya.events.EventDispatcher\r\nvar AudioSound=(function(_super){\r\n\tfunction AudioSound(){\r\n\t\t/**\r\n\t\t*声音URL\r\n\t\t*/\r\n\t\tthis.url=null;\r\n\t\t/**\r\n\t\t*播放用的audio标签\r\n\t\t*/\r\n\t\tthis.audio=null;\r\n\t\t/**\r\n\t\t*是否已加载完成\r\n\t\t*/\r\n\t\tthis.loaded=false;\r\n\t\tAudioSound.__super.call(this);\r\n\t}\r\n\r\n\t__class(AudioSound,'laya.media.h5audio.AudioSound',_super);\r\n\tvar __proto=AudioSound.prototype;\r\n\t/**\r\n\t*释放声音\r\n\t*\r\n\t*/\r\n\t__proto.dispose=function(){\r\n\t\tvar ad=AudioSound._audioCache[this.url];\r\n\t\tif (ad){\r\n\t\t\tad.src=\"\";\r\n\t\t\tdelete AudioSound._audioCache[this.url];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*加载声音\r\n\t*@param url\r\n\t*\r\n\t*/\r\n\t__proto.load=function(url){\r\n\t\turl=URL.formatURL(url);\r\n\t\tthis.url=url;\r\n\t\tvar ad;\r\n\t\tif (url==SoundManager._tMusic){\r\n\t\t\tAudioSound._initMusicAudio();\r\n\t\t\tad=AudioSound._musicAudio;\r\n\t\t\tif (ad.src !=url){\r\n\t\t\t\tAudioSound._audioCache[ad.src]=null;\r\n\t\t\t\tad=null;\r\n\t\t\t}\r\n\t\t\t}else{\r\n\t\t\tad=AudioSound._audioCache[url];\r\n\t\t}\r\n\t\tif (ad && ad.readyState >=2){\r\n\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!ad){\r\n\t\t\tif (url==SoundManager._tMusic){\r\n\t\t\t\tAudioSound._initMusicAudio();\r\n\t\t\t\tad=AudioSound._musicAudio;\r\n\t\t\t\t}else{\r\n\t\t\t\tad=Browser.createElement(\"audio\");\r\n\t\t\t}\r\n\t\t\tAudioSound._audioCache[url]=ad;\r\n\t\t\tad.src=url;\r\n\t\t}\r\n\t\tad.addEventListener(\"canplaythrough\",onLoaded);\r\n\t\tad.addEventListener(\"error\",onErr);\r\n\t\tvar me=this;\r\n\t\tfunction onLoaded (){\r\n\t\t\toffs();\r\n\t\t\tme.loaded=true;\r\n\t\t\tme.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t}\r\n\t\tfunction onErr (){\r\n\t\t\tad.load=null;\r\n\t\t\toffs();\r\n\t\t\tme.event(/*laya.events.Event.ERROR*/\"error\");\r\n\t\t}\r\n\t\tfunction offs (){\r\n\t\t\tad.removeEventListener(\"canplaythrough\",onLoaded);\r\n\t\t\tad.removeEventListener(\"error\",onErr);\r\n\t\t}\r\n\t\tthis.audio=ad;\r\n\t\tif (ad.load){\r\n\t\t\tad.load();\r\n\t\t\t}else {\r\n\t\t\tonErr();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*播放声音\r\n\t*@param startTime 起始时间\r\n\t*@param loops 循环次数\r\n\t*@return\r\n\t*\r\n\t*/\r\n\t__proto.play=function(startTime,loops){\r\n\t\t(startTime===void 0)&& (startTime=0);\r\n\t\t(loops===void 0)&& (loops=0);\r\n\t\tif (!this.url)return null;\r\n\t\tvar ad;\r\n\t\tif (this.url==SoundManager._tMusic){\r\n\t\t\tad=AudioSound._musicAudio;\r\n\t\t\t}else{\r\n\t\t\tad=AudioSound._audioCache[this.url];\r\n\t\t}\r\n\t\tif (!ad)return null;\r\n\t\tvar tAd;\r\n\t\ttAd=Pool.getItem(\"audio:\"+this.url);\r\n\t\tif (Render.isConchApp){\r\n\t\t\tif (!tAd){\r\n\t\t\t\ttAd=Browser.createElement(\"audio\");\r\n\t\t\t\ttAd.src=this.url;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this.url==SoundManager._tMusic){\r\n\t\t\t\tAudioSound._initMusicAudio();\r\n\t\t\t\ttAd=AudioSound._musicAudio;\r\n\t\t\t\ttAd.src=this.url;\r\n\t\t\t\t}else{\r\n\t\t\t\ttAd=tAd ? tAd :ad.cloneNode(true);\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar channel=new AudioSoundChannel(tAd);\r\n\t\tchannel.url=this.url;\r\n\t\tchannel.loops=loops;\r\n\t\tchannel.startTime=startTime;\r\n\t\tchannel.play();\r\n\t\tSoundManager.addChannel(channel);\r\n\t\treturn channel;\r\n\t}\r\n\r\n\t/**\r\n\t*获取总时间。\r\n\t*/\r\n\t__getset(0,__proto,'duration',function(){\r\n\t\tvar ad;\r\n\t\tad=AudioSound._audioCache[this.url];\r\n\t\tif (!ad)\r\n\t\t\treturn 0;\r\n\t\treturn ad.duration;\r\n\t});\r\n\r\n\tAudioSound._initMusicAudio=function(){\r\n\t\tif (AudioSound._musicAudio)return;\r\n\t\tif (!AudioSound._musicAudio)AudioSound._musicAudio=Browser.createElement(\"audio\");\r\n\t\tif (!Render.isConchApp){\r\n\t\t\tBrowser.document.addEventListener(\"mousedown\",AudioSound._makeMusicOK);\r\n\t\t}\r\n\t}\r\n\r\n\tAudioSound._makeMusicOK=function(){\r\n\t\tBrowser.document.removeEventListener(\"mousedown\",AudioSound._makeMusicOK);\r\n\t\tif (!AudioSound._musicAudio.src){\r\n\t\t\tAudioSound._musicAudio.src=\"\";\r\n\t\t\tAudioSound._musicAudio.load();\r\n\t\t\t}else{\r\n\t\t\tAudioSound._musicAudio.play();\r\n\t\t}\r\n\t}\r\n\r\n\tAudioSound._audioCache={};\r\n\tAudioSound._musicAudio=null;\r\n\treturn AudioSound;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*<p> <code>SoundChannel</code> 用来控制程序中的声音。每个声音均分配给一个声道，而且应用程序可以具有混合在一起的多个声道。</p>\r\n*<p> <code>SoundChannel</code> 类包含控制声音的播放、暂停、停止、音量的方法，以及获取声音的播放状态、总时间、当前播放时间、总循环次数、播放地址等信息的方法。</p>\r\n*/\r\n//class laya.media.SoundChannel extends laya.events.EventDispatcher\r\nvar SoundChannel=(function(_super){\r\n\tfunction SoundChannel(){\r\n\t\t/**\r\n\t\t*声音地址。\r\n\t\t*/\r\n\t\tthis.url=null;\r\n\t\t/**\r\n\t\t*循环次数。\r\n\t\t*/\r\n\t\tthis.loops=0;\r\n\t\t/**\r\n\t\t*开始时间。\r\n\t\t*/\r\n\t\tthis.startTime=NaN;\r\n\t\t/**\r\n\t\t*表示声音是否已暂停。\r\n\t\t*/\r\n\t\tthis.isStopped=false;\r\n\t\t/**\r\n\t\t*播放完成处理器。\r\n\t\t*/\r\n\t\tthis.completeHandler=null;\r\n\t\tSoundChannel.__super.call(this);\r\n\t}\r\n\r\n\t__class(SoundChannel,'laya.media.SoundChannel',_super);\r\n\tvar __proto=SoundChannel.prototype;\r\n\t/**\r\n\t*播放。\r\n\t*/\r\n\t__proto.play=function(){}\r\n\t/**\r\n\t*停止。\r\n\t*/\r\n\t__proto.stop=function(){}\r\n\t/**\r\n\t*暂停。\r\n\t*/\r\n\t__proto.pause=function(){}\r\n\t/**\r\n\t*继续播放。\r\n\t*/\r\n\t__proto.resume=function(){}\r\n\t/**\r\n\t*private\r\n\t*/\r\n\t__proto.__runComplete=function(handler){\r\n\t\tif (handler){\r\n\t\t\thandler.run();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*音量范围从 0（静音）至 1（最大音量）。\r\n\t*/\r\n\t__getset(0,__proto,'volume',function(){\r\n\t\treturn 1;\r\n\t\t},function(v){\r\n\t});\r\n\r\n\t/**\r\n\t*获取当前播放时间。\r\n\t*/\r\n\t__getset(0,__proto,'position',function(){\r\n\t\treturn 0;\r\n\t});\r\n\r\n\t/**\r\n\t*获取总时间。\r\n\t*/\r\n\t__getset(0,__proto,'duration',function(){\r\n\t\treturn 0;\r\n\t});\r\n\r\n\treturn SoundChannel;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*<code>Sound</code> 类是用来播放控制声音的类。\r\n*/\r\n//class laya.media.Sound extends laya.events.EventDispatcher\r\nvar Sound=(function(_super){\r\n\tfunction Sound(){\r\n\t\tSound.__super.call(this);;\r\n\t}\r\n\r\n\t__class(Sound,'laya.media.Sound',_super);\r\n\tvar __proto=Sound.prototype;\r\n\t/**\r\n\t*加载声音。\r\n\t*@param url 地址。\r\n\t*\r\n\t*/\r\n\t__proto.load=function(url){}\r\n\t/**\r\n\t*播放声音。\r\n\t*@param startTime 开始时间,单位秒\r\n\t*@param loops 循环次数,0表示一直循环\r\n\t*@return 声道 SoundChannel 对象。\r\n\t*\r\n\t*/\r\n\t__proto.play=function(startTime,loops){\r\n\t\t(startTime===void 0)&& (startTime=0);\r\n\t\t(loops===void 0)&& (loops=0);\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*释放声音资源。\r\n\t*\r\n\t*/\r\n\t__proto.dispose=function(){}\r\n\t/**\r\n\t*获取总时间。\r\n\t*/\r\n\t__getset(0,__proto,'duration',function(){\r\n\t\treturn 0;\r\n\t});\r\n\r\n\treturn Sound;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*@private\r\n*web audio api方式播放声音\r\n*/\r\n//class laya.media.webaudio.WebAudioSound extends laya.events.EventDispatcher\r\nvar WebAudioSound=(function(_super){\r\n\tfunction WebAudioSound(){\r\n\t\t/**\r\n\t\t*声音URL\r\n\t\t*/\r\n\t\tthis.url=null;\r\n\t\t/**\r\n\t\t*是否已加载完成\r\n\t\t*/\r\n\t\tthis.loaded=false;\r\n\t\t/**\r\n\t\t*声音文件数据\r\n\t\t*/\r\n\t\tthis.data=null;\r\n\t\t/**\r\n\t\t*声音原始文件数据\r\n\t\t*/\r\n\t\tthis.audioBuffer=null;\r\n\t\t/**\r\n\t\t*待播放的声音列表\r\n\t\t*/\r\n\t\tthis.__toPlays=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._disposed=false;\r\n\t\tWebAudioSound.__super.call(this);\r\n\t}\r\n\r\n\t__class(WebAudioSound,'laya.media.webaudio.WebAudioSound',_super);\r\n\tvar __proto=WebAudioSound.prototype;\r\n\t/**\r\n\t*加载声音\r\n\t*@param url\r\n\t*\r\n\t*/\r\n\t__proto.load=function(url){\r\n\t\tvar me=this;\r\n\t\turl=URL.formatURL(url);\r\n\t\tthis.url=url;\r\n\t\tthis.audioBuffer=WebAudioSound._dataCache[url];\r\n\t\tif (this.audioBuffer){\r\n\t\t\tthis._loaded(this.audioBuffer);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tWebAudioSound.e.on(\"loaded:\"+url,this,this._loaded);\r\n\t\tWebAudioSound.e.on(\"err:\"+url,this,this._err);\r\n\t\tif (WebAudioSound.__loadingSound[url]){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tWebAudioSound.__loadingSound[url]=true;\r\n\t\tvar request=new Browser.window.XMLHttpRequest();\r\n\t\trequest.open(\"GET\",url,true);\r\n\t\trequest.responseType=\"arraybuffer\";\r\n\t\trequest.onload=function (){\r\n\t\t\tif (me._disposed){\r\n\t\t\t\tme._removeLoadEvents();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tme.data=request.response;\r\n\t\t\tWebAudioSound.buffs.push({\"buffer\":me.data,\"url\":me.url});\r\n\t\t\tWebAudioSound.decode();\r\n\t\t};\r\n\t\trequest.onerror=function (e){\r\n\t\t\tme._err();\r\n\t\t}\r\n\t\trequest.send();\r\n\t}\r\n\r\n\t__proto._err=function(){\r\n\t\tthis._removeLoadEvents();\r\n\t\tWebAudioSound.__loadingSound[this.url]=false;\r\n\t\tthis.event(/*laya.events.Event.ERROR*/\"error\");\r\n\t}\r\n\r\n\t__proto._loaded=function(audioBuffer){\r\n\t\tthis._removeLoadEvents();\r\n\t\tif (this._disposed){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.audioBuffer=audioBuffer;\r\n\t\tWebAudioSound._dataCache[this.url]=this.audioBuffer;\r\n\t\tthis.loaded=true;\r\n\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t}\r\n\r\n\t__proto._removeLoadEvents=function(){\r\n\t\tWebAudioSound.e.off(\"loaded:\"+this.url,this,this._loaded);\r\n\t\tWebAudioSound.e.off(\"err:\"+this.url,this,this._err);\r\n\t}\r\n\r\n\t__proto.__playAfterLoaded=function(){\r\n\t\tif (!this.__toPlays)return;\r\n\t\tvar i=0,len=0;\r\n\t\tvar toPlays;\r\n\t\ttoPlays=this.__toPlays;\r\n\t\tlen=toPlays.length;\r\n\t\tvar tParams;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\ttParams=toPlays[i];\r\n\t\t\tif (tParams[2] && !(tParams [2]).isStopped){\r\n\t\t\t\tthis.play(tParams[0],tParams[1],tParams[2]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.__toPlays.length=0;\r\n\t}\r\n\r\n\t/**\r\n\t*播放声音\r\n\t*@param startTime 起始时间\r\n\t*@param loops 循环次数\r\n\t*@return\r\n\t*\r\n\t*/\r\n\t__proto.play=function(startTime,loops,channel){\r\n\t\t(startTime===void 0)&& (startTime=0);\r\n\t\t(loops===void 0)&& (loops=0);\r\n\t\tchannel=channel ? channel :new WebAudioSoundChannel();\r\n\t\tif (!this.audioBuffer){\r\n\t\t\tif (this.url){\r\n\t\t\t\tif (!this.__toPlays)this.__toPlays=[];\r\n\t\t\t\tthis.__toPlays.push([startTime,loops,channel]);\r\n\t\t\t\tthis.once(/*laya.events.Event.COMPLETE*/\"complete\",this,this.__playAfterLoaded);\r\n\t\t\t\tthis.load(this.url);\r\n\t\t\t}\r\n\t\t}\r\n\t\tchannel.url=this.url;\r\n\t\tchannel.loops=loops;\r\n\t\tchannel[\"audioBuffer\"]=this.audioBuffer;\r\n\t\tchannel.startTime=startTime;\r\n\t\tchannel.play();\r\n\t\tSoundManager.addChannel(channel);\r\n\t\treturn channel;\r\n\t}\r\n\r\n\t__proto.dispose=function(){\r\n\t\tthis._disposed=true;\r\n\t\tdelete WebAudioSound._dataCache[this.url];\r\n\t\tdelete WebAudioSound.__loadingSound[this.url];\r\n\t\tthis.audioBuffer=null;\r\n\t\tthis.data=null;\r\n\t\tthis.__toPlays=[];\r\n\t}\r\n\r\n\t__getset(0,__proto,'duration',function(){\r\n\t\tif (this.audioBuffer){\r\n\t\t\treturn this.audioBuffer.duration;\r\n\t\t}\r\n\t\treturn 0;\r\n\t});\r\n\r\n\tWebAudioSound.decode=function(){\r\n\t\tif (WebAudioSound.buffs.length <=0 || WebAudioSound.isDecoding){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tWebAudioSound.isDecoding=true;\r\n\t\tWebAudioSound.tInfo=WebAudioSound.buffs.shift();\r\n\t\tWebAudioSound.ctx.decodeAudioData(WebAudioSound.tInfo[\"buffer\"],WebAudioSound._done,WebAudioSound._fail);\r\n\t}\r\n\r\n\tWebAudioSound._done=function(audioBuffer){\r\n\t\tWebAudioSound.e.event(\"loaded:\"+WebAudioSound.tInfo.url,audioBuffer);\r\n\t\tWebAudioSound.isDecoding=false;\r\n\t\tWebAudioSound.decode();\r\n\t}\r\n\r\n\tWebAudioSound._fail=function(){\r\n\t\tWebAudioSound.e.event(\"err:\"+WebAudioSound.tInfo.url,null);\r\n\t\tWebAudioSound.isDecoding=false;\r\n\t\tWebAudioSound.decode();\r\n\t}\r\n\r\n\tWebAudioSound._playEmptySound=function(){\r\n\t\tif (WebAudioSound.ctx==null){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar source=WebAudioSound.ctx.createBufferSource();\r\n\t\tsource.buffer=WebAudioSound._miniBuffer;\r\n\t\tsource.connect(WebAudioSound.ctx.destination);\r\n\t\tsource.start(0,0,0);\r\n\t}\r\n\r\n\tWebAudioSound._unlock=function(){\r\n\t\tif (WebAudioSound._unlocked){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tWebAudioSound._playEmptySound();\r\n\t\tif (WebAudioSound.ctx.state==\"running\"){\r\n\t\t\tBrowser.document.removeEventListener(\"mousedown\",WebAudioSound._unlock,true);\r\n\t\t\tBrowser.document.removeEventListener(\"touchend\",WebAudioSound._unlock,true);\r\n\t\t\tWebAudioSound._unlocked=true;\r\n\t\t}\r\n\t}\r\n\r\n\tWebAudioSound.initWebAudio=function(){\r\n\t\tif (WebAudioSound.ctx.state !=\"running\"){\r\n\t\t\tWebAudioSound._unlock();\r\n\t\t\tBrowser.document.addEventListener(\"mousedown\",WebAudioSound._unlock,true);\r\n\t\t\tBrowser.document.addEventListener(\"touchend\",WebAudioSound._unlock,true);\r\n\t\t}\r\n\t}\r\n\r\n\tWebAudioSound._dataCache={};\r\n\tWebAudioSound.buffs=[];\r\n\tWebAudioSound.isDecoding=false;\r\n\tWebAudioSound._unlocked=false;\r\n\tWebAudioSound.tInfo=null;\r\n\tWebAudioSound.__loadingSound={};\r\n\t__static(WebAudioSound,\r\n\t['window',function(){return this.window=Browser.window;},'webAudioEnabled',function(){return this.webAudioEnabled=WebAudioSound.window[\"AudioContext\"] || WebAudioSound.window[\"webkitAudioContext\"] || WebAudioSound.window[\"mozAudioContext\"];},'ctx',function(){return this.ctx=WebAudioSound.webAudioEnabled ? new (WebAudioSound.window[\"AudioContext\"] || WebAudioSound.window[\"webkitAudioContext\"] || WebAudioSound.window[\"mozAudioContext\"])():undefined;},'_miniBuffer',function(){return this._miniBuffer=WebAudioSound.ctx.createBuffer(1,1,22050);},'e',function(){return this.e=new EventDispatcher();}\r\n\t]);\r\n\treturn WebAudioSound;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*<p> <code>HttpRequest</code> 通过封装 HTML <code>XMLHttpRequest</code> 对象提供了对 HTTP 协议的完全的访问，包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。 <code>HttpRequest</code> 只提供以异步的形式返回 Web 服务器的响应，并且能够以文本或者二进制的形式返回内容。</p>\r\n*<p><b>注意：</b>建议每次请求都使用新的 <code>HttpRequest</code> 对象，因为每次调用该对象的send方法时，都会清空之前设置的数据，并重置 HTTP 请求的状态，这会导致之前还未返回响应的请求被重置，从而得不到之前请求的响应结果。</p>\r\n*/\r\n//class laya.net.HttpRequest extends laya.events.EventDispatcher\r\nvar HttpRequest=(function(_super){\r\n\tfunction HttpRequest(){\r\n\t\t/**@private */\r\n\t\tthis._responseType=null;\r\n\t\t/**@private */\r\n\t\tthis._data=null;\r\n\t\tHttpRequest.__super.call(this);\r\n\t\tthis._http=new Browser.window.XMLHttpRequest();\r\n\t}\r\n\r\n\t__class(HttpRequest,'laya.net.HttpRequest',_super);\r\n\tvar __proto=HttpRequest.prototype;\r\n\t/**\r\n\t*发送 HTTP 请求。\r\n\t*@param url 请求的地址。大多数浏览器实施了一个同源安全策略，并且要求这个 URL 与包含脚本的文本具有相同的主机名和端口。\r\n\t*@param data (default=null)发送的数据。\r\n\t*@param method (default=\"get\")用于请求的 HTTP 方法。值包括 \"get\"、\"post\"、\"head\"。\r\n\t*@param responseType (default=\"text\")Web 服务器的响应类型，可设置为 \"text\"、\"json\"、\"xml\"、\"arraybuffer\"。\r\n\t*@param headers (default=null)HTTP 请求的头部信息。参数形如key-value数组：key是头部的名称，不应该包括空白、冒号或换行；value是头部的值，不应该包括换行。比如[\"Content-Type\",\"application/json\"]。\r\n\t*/\r\n\t__proto.send=function(url,data,method,responseType,headers){\r\n\t\t(method===void 0)&& (method=\"get\");\r\n\t\t(responseType===void 0)&& (responseType=\"text\");\r\n\t\tthis._responseType=responseType;\r\n\t\tthis._data=null;\r\n\t\tvar _this=this;\r\n\t\tvar http=this._http;\r\n\t\thttp.open(method,url,true);\r\n\t\tif (headers){\r\n\t\t\tfor (var i=0;i < headers.length;i++){\r\n\t\t\t\thttp.setRequestHeader(headers[i++],headers[i]);\r\n\t\t\t}\r\n\t\t\t}else if (!Render.isConchApp){\r\n\t\t\tif (!data || (typeof data=='string'))http.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\");\r\n\t\t\telse http.setRequestHeader(\"Content-Type\",\"application/json\");\r\n\t\t}\r\n\t\thttp.responseType=responseType!==\"arraybuffer\" ? \"text\" :\"arraybuffer\";\r\n\t\thttp.onerror=function (e){\r\n\t\t\t_this._onError(e);\r\n\t\t}\r\n\t\thttp.onabort=function (e){\r\n\t\t\t_this._onAbort(e);\r\n\t\t}\r\n\t\thttp.onprogress=function (e){\r\n\t\t\t_this._onProgress(e);\r\n\t\t}\r\n\t\thttp.onload=function (e){\r\n\t\t\t_this._onLoad(e);\r\n\t\t}\r\n\t\thttp.send(data);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*请求进度的侦听处理函数。\r\n\t*@param e 事件对象。\r\n\t*/\r\n\t__proto._onProgress=function(e){\r\n\t\tif (e && e.lengthComputable)this.event(/*laya.events.Event.PROGRESS*/\"progress\",e.loaded / e.total);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*请求中断的侦听处理函数。\r\n\t*@param e 事件对象。\r\n\t*/\r\n\t__proto._onAbort=function(e){\r\n\t\tthis.error(\"Request was aborted by user\");\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*请求出错侦的听处理函数。\r\n\t*@param e 事件对象。\r\n\t*/\r\n\t__proto._onError=function(e){\r\n\t\tthis.error(\"Request failed Status:\"+this._http.status+\" text:\"+this._http.statusText);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*请求消息返回的侦听处理函数。\r\n\t*@param e 事件对象。\r\n\t*/\r\n\t__proto._onLoad=function(e){\r\n\t\tvar http=this._http;\r\n\t\tvar status=http.status!==undefined ? http.status :200;\r\n\t\tif (status===200 || status===204 || status===0){\r\n\t\t\tthis.complete();\r\n\t\t\t}else {\r\n\t\t\tthis.error(\"[\"+http.status+\"]\"+http.statusText+\":\"+http.responseURL);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*请求错误的处理函数。\r\n\t*@param message 错误信息。\r\n\t*/\r\n\t__proto.error=function(message){\r\n\t\tthis.clear();\r\n\t\tthis.event(/*laya.events.Event.ERROR*/\"error\",message);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*请求成功完成的处理函数。\r\n\t*/\r\n\t__proto.complete=function(){\r\n\t\tthis.clear();\r\n\t\tvar flag=true;\r\n\t\ttry {\r\n\t\t\tif (this._responseType===\"json\"){\r\n\t\t\t\tthis._data=JSON.parse(this._http.responseText);\r\n\t\t\t\t}else if (this._responseType===\"xml\"){\r\n\t\t\t\tthis._data=Utils.parseXMLFromString(this._http.responseText);\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._data=this._http.response || this._http.responseText;\r\n\t\t\t}\r\n\t\t\t}catch (e){\r\n\t\t\tflag=false;\r\n\t\t\tthis.error(e.message);\r\n\t\t}\r\n\t\tflag && this.event(/*laya.events.Event.COMPLETE*/\"complete\",(this._data instanceof Array)? [this._data] :this._data);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*清除当前请求。\r\n\t*/\r\n\t__proto.clear=function(){\r\n\t\tvar http=this._http;\r\n\t\thttp.onerror=http.onabort=http.onprogress=http.onload=null;\r\n\t}\r\n\r\n\t/**请求的地址。*/\r\n\t__getset(0,__proto,'url',function(){\r\n\t\treturn this._http.responseURL;\r\n\t});\r\n\r\n\t/**\r\n\t*本对象所封装的原生 XMLHttpRequest 引用。\r\n\t*/\r\n\t__getset(0,__proto,'http',function(){\r\n\t\treturn this._http;\r\n\t});\r\n\r\n\t/**返回的数据。*/\r\n\t__getset(0,__proto,'data',function(){\r\n\t\treturn this._data;\r\n\t});\r\n\r\n\treturn HttpRequest;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*<code>Loader</code> 类可用来加载文本、JSON、XML、二进制、图像等资源。\r\n*/\r\n//class laya.net.Loader extends laya.events.EventDispatcher\r\nvar Loader=(function(_super){\r\n\tfunction Loader(){\r\n\t\t/**@private 加载后的数据对象，只读*/\r\n\t\tthis._data=null;\r\n\t\t/**@private */\r\n\t\tthis._class=null;\r\n\t\t/**@private */\r\n\t\tthis._url=null;\r\n\t\t/**@private */\r\n\t\tthis._type=null;\r\n\t\t/**@private */\r\n\t\tthis._cache=false;\r\n\t\t/**@private */\r\n\t\tthis._http=null;\r\n\t\t/**@private 自定义解析不派发complete事件，但会派发loaded事件，手动调用endLoad方法再派发complete事件*/\r\n\t\tthis._customParse=false;\r\n\t\tLoader.__super.call(this);\r\n\t}\r\n\r\n\t__class(Loader,'laya.net.Loader',_super);\r\n\tvar __proto=Loader.prototype;\r\n\t/**\r\n\t*加载资源。加载错误会派发 Event.ERROR 事件，参数为错误信息。\r\n\t*@param url 资源地址。\r\n\t*@param type (default=null)资源类型。可选值为：Loader.TEXT、Loader.JSON、Loader.XML、Loader.BUFFER、Loader.IMAGE、Loader.SOUND、Loader.ATLAS、Loader.FONT。如果为null，则根据文件后缀分析类型。\r\n\t*@param cache (default=true)是否缓存数据。\r\n\t*@param group (default=null)分组名称。\r\n\t*@param ignoreCache (default=false)是否忽略缓存，强制重新加载。\r\n\t*/\r\n\t__proto.load=function(url,type,cache,group,ignoreCache){\r\n\t\t(cache===void 0)&& (cache=true);\r\n\t\t(ignoreCache===void 0)&& (ignoreCache=false);\r\n\t\tthis._url=url;\r\n\t\tif (url.indexOf(\"data:image\")===0)this._type=type=\"image\";\r\n\t\telse {\r\n\t\t\tthis._type=type || (type=this.getTypeFromUrl(url));\r\n\t\t\turl=URL.formatURL(url);\r\n\t\t}\r\n\t\tthis._cache=cache;\r\n\t\tthis._data=null;\r\n\t\tif (!ignoreCache && Loader.loadedMap[url]){\r\n\t\t\tthis._data=Loader.loadedMap[url];\r\n\t\t\tthis.event(/*laya.events.Event.PROGRESS*/\"progress\",1);\r\n\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\",this._data);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (group)Loader.setGroup(url,group);\r\n\t\tif (Loader.parserMap[type] !=null){\r\n\t\t\tthis._customParse=true;\r\n\t\t\tif (((Loader.parserMap[type])instanceof laya.utils.Handler ))Loader.parserMap[type].runWith(this);\r\n\t\t\telse Loader.parserMap[type].call(null,this);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (type===\"image\" || type===\"htmlimage\" || type===\"nativeimage\")return this._loadImage(url);\r\n\t\tif (type===\"sound\")return this._loadSound(url);\r\n\t\tif (type===\"ttf\")return this._loadTTF(url);\r\n\t\tvar contentType;\r\n\t\tswitch (type){\r\n\t\t\tcase \"atlas\":\r\n\t\t\tcase \"plf\":\r\n\t\t\t\tcontentType=\"json\";\r\n\t\t\t\tbreak ;\r\n\t\t\tcase \"font\":\r\n\t\t\t\tcontentType=\"xml\";\r\n\t\t\t\tbreak ;\r\n\t\t\tcase \"pkm\":\r\n\t\t\t\tcontentType=\"arraybuffer\";\r\n\t\t\t\tbreak\r\n\t\t\tdefault :\r\n\t\t\t\tcontentType=type;\r\n\t\t\t}\r\n\t\tif (Loader.preLoadedMap[url]){\r\n\t\t\tthis.onLoaded(Loader.preLoadedMap[url]);\r\n\t\t\t}else{\r\n\t\t\tif (!this._http){\r\n\t\t\t\tthis._http=new HttpRequest();\r\n\t\t\t\tthis._http.on(/*laya.events.Event.PROGRESS*/\"progress\",this,this.onProgress);\r\n\t\t\t\tthis._http.on(/*laya.events.Event.ERROR*/\"error\",this,this.onError);\r\n\t\t\t\tthis._http.on(/*laya.events.Event.COMPLETE*/\"complete\",this,this.onLoaded);\r\n\t\t\t}\r\n\t\t\tthis._http.send(url,null,\"get\",contentType);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*获取指定资源地址的数据类型。\r\n\t*@param url 资源地址。\r\n\t*@return 数据类型。\r\n\t*/\r\n\t__proto.getTypeFromUrl=function(url){\r\n\t\tvar type=Utils.getFileExtension(url);\r\n\t\tif (type)return Loader.typeMap[type];\r\n\t\tconsole.warn(\"Not recognize the resources suffix\",url);\r\n\t\treturn \"text\";\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*加载TTF资源。\r\n\t*@param url 资源地址。\r\n\t*/\r\n\t__proto._loadTTF=function(url){\r\n\t\turl=URL.formatURL(url);\r\n\t\tvar ttfLoader=new TTFLoader();\r\n\t\tttfLoader.complete=Handler.create(this,this.onLoaded);\r\n\t\tttfLoader.load(url);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*加载图片资源。\r\n\t*@param url 资源地址。\r\n\t*/\r\n\t__proto._loadImage=function(url){\r\n\t\turl=URL.formatURL(url);\r\n\t\tvar _this=this;\r\n\t\tvar image;\r\n\t\tfunction clear (){\r\n\t\t\timage.onload=null;\r\n\t\t\timage.onerror=null;\r\n\t\t\tdelete Loader.imgCache[url]\r\n\t\t};\r\n\t\tvar onload=function (){\r\n\t\t\tclear();\r\n\t\t\t_this.onLoaded(image);\r\n\t\t};\r\n\t\tvar onerror=function (){\r\n\t\t\tclear();\r\n\t\t\t_this.event(/*laya.events.Event.ERROR*/\"error\",\"Load image failed\");\r\n\t\t}\r\n\t\tif (this._type===\"nativeimage\"){\r\n\t\t\timage=new Browser.window.Image();\r\n\t\t\timage.crossOrigin=\"\";\r\n\t\t\timage.onload=onload;\r\n\t\t\timage.onerror=onerror;\r\n\t\t\timage.src=url;\r\n\t\t\tLoader.imgCache[url]=image;\r\n\t\t\t}else {\r\n\t\t\tnew HTMLImage.create(url,{onload:onload,onerror:onerror,onCreate:function (img){\r\n\t\t\t\t\timage=img;\r\n\t\t\t\t\tLoader.imgCache[url]=img;\r\n\t\t\t}});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*加载声音资源。\r\n\t*@param url 资源地址。\r\n\t*/\r\n\t__proto._loadSound=function(url){\r\n\t\tvar sound=(new SoundManager._soundClass());\r\n\t\tvar _this=this;\r\n\t\tsound.on(/*laya.events.Event.COMPLETE*/\"complete\",this,soundOnload);\r\n\t\tsound.on(/*laya.events.Event.ERROR*/\"error\",this,soundOnErr);\r\n\t\tsound.load(url);\r\n\t\tfunction soundOnload (){\r\n\t\t\tclear();\r\n\t\t\t_this.onLoaded(sound);\r\n\t\t}\r\n\t\tfunction soundOnErr (){\r\n\t\t\tclear();\r\n\t\t\tsound.dispose();\r\n\t\t\t_this.event(/*laya.events.Event.ERROR*/\"error\",\"Load sound failed\");\r\n\t\t}\r\n\t\tfunction clear (){\r\n\t\t\tsound.offAll();\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.onProgress=function(value){\r\n\t\tif (this._type===\"atlas\")this.event(/*laya.events.Event.PROGRESS*/\"progress\",value *0.3);\r\n\t\telse this.event(/*laya.events.Event.PROGRESS*/\"progress\",value);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.onError=function(message){\r\n\t\tthis.event(/*laya.events.Event.ERROR*/\"error\",message);\r\n\t}\r\n\r\n\t/**\r\n\t*资源加载完成的处理函数。\r\n\t*@param data 数据。\r\n\t*/\r\n\t__proto.onLoaded=function(data){\r\n\t\tvar type=this._type;\r\n\t\tif (type==\"plf\"){\r\n\t\t\tthis.parsePLFData(data);\r\n\t\t\tthis.complete(data);\r\n\t\t}else\r\n\t\tif (type===\"image\"){\r\n\t\t\tvar tex=new Texture(data);\r\n\t\t\ttex.url=this._url;\r\n\t\t\tthis.complete(tex);\r\n\t\t\t}else if (type===\"sound\" || type===\"htmlimage\" || type===\"nativeimage\"){\r\n\t\t\tthis.complete(data);\r\n\t\t\t}else if (type===\"atlas\"){\r\n\t\t\tif (!data.src && !data._setContext){\r\n\t\t\t\tif (!this._data){\r\n\t\t\t\t\tthis._data=data;\r\n\t\t\t\t\tif (data.meta && data.meta.image){\r\n\t\t\t\t\t\tvar toloadPics=data.meta.image.split(\",\");\r\n\t\t\t\t\t\tvar split=this._url.indexOf(\"/\")>=0 ? \"/\" :\"\\\\\";\r\n\t\t\t\t\t\tvar idx=this._url.lastIndexOf(split);\r\n\t\t\t\t\t\tvar folderPath=idx >=0 ? this._url.substr(0,idx+1):\"\";\r\n\t\t\t\t\t\tfor (var i=0,len=toloadPics.length;i < len;i++){\r\n\t\t\t\t\t\t\ttoloadPics[i]=folderPath+toloadPics[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\ttoloadPics=[this._url.replace(\".json\",\".png\")];\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttoloadPics.reverse();\r\n\t\t\t\t\tdata.toLoads=toloadPics;\r\n\t\t\t\t\tdata.pics=[];\r\n\t\t\t\t}\r\n\t\t\t\tthis.event(/*laya.events.Event.PROGRESS*/\"progress\",0.3+1 / toloadPics.length *0.6);\r\n\t\t\t\treturn this._loadImage(toloadPics.pop());\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._data.pics.push(data);\r\n\t\t\t\tif (this._data.toLoads.length > 0){\r\n\t\t\t\t\tthis.event(/*laya.events.Event.PROGRESS*/\"progress\",0.3+1 / this._data.toLoads.length *0.6);\r\n\t\t\t\t\treturn this._loadImage(this._data.toLoads.pop());\r\n\t\t\t\t};\r\n\t\t\t\tvar frames=this._data.frames;\r\n\t\t\t\tvar cleanUrl=this._url.split(\"?\")[0];\r\n\t\t\t\tvar directory=(this._data.meta && this._data.meta.prefix)? this._data.meta.prefix :cleanUrl.substring(0,cleanUrl.lastIndexOf(\".\"))+\"/\";\r\n\t\t\t\tvar pics=this._data.pics;\r\n\t\t\t\tvar atlasURL=URL.formatURL(this._url);\r\n\t\t\t\tvar map=Loader.atlasMap[atlasURL] || (Loader.atlasMap[atlasURL]=[]);\r\n\t\t\t\tmap.dir=directory;\r\n\t\t\t\tvar scaleRate=1;\r\n\t\t\t\tif (this._data.meta && this._data.meta.scale && this._data.meta.scale !=1){\r\n\t\t\t\t\tscaleRate=parseFloat(this._data.meta.scale);\r\n\t\t\t\t\tfor (var name in frames){\r\n\t\t\t\t\t\tvar obj=frames[name];\r\n\t\t\t\t\t\tvar tPic=pics[obj.frame.idx ? obj.frame.idx :0];\r\n\t\t\t\t\t\tvar url=URL.formatURL(directory+name);\r\n\t\t\t\t\t\ttPic.scaleRate=scaleRate;\r\n\t\t\t\t\t\tLoader.cacheRes(url,Texture.create(tPic,obj.frame.x,obj.frame.y,obj.frame.w,obj.frame.h,obj.spriteSourceSize.x,obj.spriteSourceSize.y,obj.sourceSize.w,obj.sourceSize.h));\r\n\t\t\t\t\t\tLoader.loadedMap[url].url=url;\r\n\t\t\t\t\t\tmap.push(url);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\tfor (name in frames){\r\n\t\t\t\t\t\tobj=frames[name];\r\n\t\t\t\t\t\ttPic=pics[obj.frame.idx ? obj.frame.idx :0];\r\n\t\t\t\t\t\turl=URL.formatURL(directory+name);\r\n\t\t\t\t\t\tLoader.cacheRes(url,Texture.create(tPic,obj.frame.x,obj.frame.y,obj.frame.w,obj.frame.h,obj.spriteSourceSize.x,obj.spriteSourceSize.y,obj.sourceSize.w,obj.sourceSize.h));\r\n\t\t\t\t\t\tLoader.loadedMap[url].url=url;\r\n\t\t\t\t\t\tmap.push(url);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tdelete this._data.pics;\r\n\t\t\t\tthis.complete(this._data);\r\n\t\t\t}\r\n\t\t\t}else if (type==\"font\"){\r\n\t\t\tif (!data.src){\r\n\t\t\t\tthis._data=data;\r\n\t\t\t\tthis.event(/*laya.events.Event.PROGRESS*/\"progress\",0.5);\r\n\t\t\t\treturn this._loadImage(this._url.replace(\".fnt\",\".png\"));\r\n\t\t\t\t}else {\r\n\t\t\t\tvar bFont=new BitmapFont();\r\n\t\t\t\tbFont.parseFont(this._data,data);\r\n\t\t\t\tvar tArr=this._url.split(\".fnt\")[0].split(\"/\");\r\n\t\t\t\tvar fontName=tArr[tArr.length-1];\r\n\t\t\t\tText.registerBitmapFont(fontName,bFont);\r\n\t\t\t\tthis._data=bFont;\r\n\t\t\t\tthis.complete(this._data);\r\n\t\t\t}\r\n\t\t\t}else if (type==\"pkm\"){\r\n\t\t\tvar image=HTMLImage.create(data,this._url);\r\n\t\t\tvar tex1=new Texture(image);\r\n\t\t\ttex1.url=this._url;\r\n\t\t\tthis.complete(tex1);\r\n\t\t\t}else {\r\n\t\t\tthis.complete(data);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.parsePLFData=function(plfData){\r\n\t\tvar type;\r\n\t\tvar filePath;\r\n\t\tvar fileDic;\r\n\t\tfor (type in plfData){\r\n\t\t\tfileDic=plfData[type];\r\n\t\t\tswitch(type){\r\n\t\t\t\tcase \"json\":\r\n\t\t\t\tcase \"text\":\r\n\t\t\t\t\tfor (filePath in fileDic){\r\n\t\t\t\t\t\tLoader.preLoadedMap[URL.formatURL(filePath)]=fileDic[filePath]\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tdefault :\r\n\t\t\t\t\tfor (filePath in fileDic){\r\n\t\t\t\t\t\tLoader.preLoadedMap[URL.formatURL(filePath)]=fileDic[filePath]\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*加载完成。\r\n\t*@param data 加载的数据。\r\n\t*/\r\n\t__proto.complete=function(data){\r\n\t\tthis._data=data;\r\n\t\tif (this._customParse){\r\n\t\t\tthis.event(/*laya.events.Event.LOADED*/\"loaded\",(data instanceof Array)? [data] :data);\r\n\t\t\t}else {\r\n\t\t\tLoader._loaders.push(this);\r\n\t\t\tif (!Loader._isWorking)Loader.checkNext();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*结束加载，处理是否缓存及派发完成事件 <code>Event.COMPLETE</code> 。\r\n\t*@param content 加载后的数据\r\n\t*/\r\n\t__proto.endLoad=function(content){\r\n\t\tcontent && (this._data=content);\r\n\t\tif (this._cache)Loader.cacheRes(this._url,this._data);\r\n\t\tthis.event(/*laya.events.Event.PROGRESS*/\"progress\",1);\r\n\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\",(this.data instanceof Array)? [this.data] :this.data);\r\n\t}\r\n\r\n\t/**加载地址。*/\r\n\t__getset(0,__proto,'url',function(){\r\n\t\treturn this._url;\r\n\t});\r\n\r\n\t/**返回的数据。*/\r\n\t__getset(0,__proto,'data',function(){\r\n\t\treturn this._data;\r\n\t});\r\n\r\n\t/**是否缓存。*/\r\n\t__getset(0,__proto,'cache',function(){\r\n\t\treturn this._cache;\r\n\t});\r\n\r\n\t/**加载类型。*/\r\n\t__getset(0,__proto,'type',function(){\r\n\t\treturn this._type;\r\n\t});\r\n\r\n\tLoader.checkNext=function(){\r\n\t\tLoader._isWorking=true;\r\n\t\tvar startTimer=Browser.now();\r\n\t\tvar thisTimer=startTimer;\r\n\t\twhile (Loader._startIndex < Loader._loaders.length){\r\n\t\t\tthisTimer=Browser.now();\r\n\t\t\tLoader._loaders[Loader._startIndex].endLoad();\r\n\t\t\tLoader._startIndex++;\r\n\t\t\tif (Browser.now()-startTimer > Loader.maxTimeOut){\r\n\t\t\t\tconsole.warn(\"loader callback cost a long time:\"+(Browser.now()-startTimer)+\" url=\"+Loader._loaders[Loader._startIndex-1].url);\r\n\t\t\t\tLaya.timer.frameOnce(1,null,Loader.checkNext);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tLoader._loaders.length=0;\r\n\t\tLoader._startIndex=0;\r\n\t\tLoader._isWorking=false;\r\n\t}\r\n\r\n\tLoader.clearRes=function(url,forceDispose){\r\n\t\t(forceDispose===void 0)&& (forceDispose=false);\r\n\t\turl=URL.formatURL(url);\r\n\t\tvar arr=Loader.getAtlas(url);\r\n\t\tif (arr){\r\n\t\t\tfor (var i=0,n=arr.length;i < n;i++){\r\n\t\t\t\tvar resUrl=arr[i];\r\n\t\t\t\tvar tex=Loader.getRes(resUrl);\r\n\t\t\t\tdelete Loader.loadedMap[resUrl];\r\n\t\t\t\tif (tex)tex.destroy(forceDispose);\r\n\t\t\t}\r\n\t\t\tarr.length=0;\r\n\t\t\tdelete Loader.atlasMap[url];\r\n\t\t\tdelete Loader.loadedMap[url];\r\n\t\t\t}else {\r\n\t\t\tvar res=Loader.loadedMap[url];\r\n\t\t\tif (res){\r\n\t\t\t\tdelete Loader.loadedMap[url];\r\n\t\t\t\tif ((res instanceof laya.resource.Texture )&& res.bitmap)(res).destroy(forceDispose);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tLoader.clearTextureRes=function(url){\r\n\t\turl=URL.formatURL(url);\r\n\t\tvar arr=laya.net.Loader.getAtlas(url);\r\n\t\tvar res=(arr && arr.length>0)? laya.net.Loader.getRes(arr[0]):laya.net.Loader.getRes(url);\r\n\t\tif (res && res.bitmap){\r\n\t\t\tif (Render.isConchApp){\r\n\t\t\t\tif (res.bitmap.source.releaseTexture){\r\n\t\t\t\t\tres.bitmap.source.releaseTexture();\r\n\t\t\t\t}\r\n\t\t\t\t}else if (res.bitmap._atlaser==null){\r\n\t\t\t\tres.bitmap.releaseResource(true);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tLoader.getRes=function(url){\r\n\t\treturn Loader.loadedMap[URL.formatURL(url)];\r\n\t}\r\n\r\n\tLoader.getAtlas=function(url){\r\n\t\treturn Loader.atlasMap[URL.formatURL(url)];\r\n\t}\r\n\r\n\tLoader.cacheRes=function(url,data){\r\n\t\turl=URL.formatURL(url);\r\n\t\tif (Loader.loadedMap[url] !=null){\r\n\t\t\tconsole.warn(\"Resources already exist,is repeated loading:\",url);\r\n\t\t\t}else {\r\n\t\t\tLoader.loadedMap[url]=data;\r\n\t\t}\r\n\t}\r\n\r\n\tLoader.setGroup=function(url,group){\r\n\t\tif (!Loader.groupMap[group])Loader.groupMap[group]=[];\r\n\t\tLoader.groupMap[group].push(url);\r\n\t}\r\n\r\n\tLoader.clearResByGroup=function(group){\r\n\t\tif (!Loader.groupMap[group])return;\r\n\t\tvar arr=Loader.groupMap[group],i=0,len=arr.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tLoader.clearRes(arr[i]);\r\n\t\t}\r\n\t\tarr.length=0;\r\n\t}\r\n\r\n\tLoader.TEXT=\"text\";\r\n\tLoader.JSON=\"json\";\r\n\tLoader.XML=\"xml\";\r\n\tLoader.BUFFER=\"arraybuffer\";\r\n\tLoader.IMAGE=\"image\";\r\n\tLoader.SOUND=\"sound\";\r\n\tLoader.ATLAS=\"atlas\";\r\n\tLoader.FONT=\"font\";\r\n\tLoader.TTF=\"ttf\";\r\n\tLoader.PLF=\"plf\";\r\n\tLoader.PKM=\"pkm\";\r\n\tLoader.typeMap={\"png\":\"image\",\"jpg\":\"image\",\"jpeg\":\"image\",\"txt\":\"text\",\"json\":\"json\",\"xml\":\"xml\",\"als\":\"atlas\",\"atlas\":\"atlas\",\"mp3\":\"sound\",\"ogg\":\"sound\",\"wav\":\"sound\",\"part\":\"json\",\"fnt\":\"font\",\"pkm\":\"pkm\",\"ttf\":\"ttf\",\"plf\":\"plf\"};\r\n\tLoader.parserMap={};\r\n\tLoader.groupMap={};\r\n\tLoader.maxTimeOut=100;\r\n\tLoader.loadedMap={};\r\n\tLoader.preLoadedMap={};\r\n\tLoader.atlasMap={};\r\n\tLoader._loaders=[];\r\n\tLoader._isWorking=false;\r\n\tLoader._startIndex=0;\r\n\tLoader.imgCache={};\r\n\treturn Loader;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*<p> <code>LoaderManager</code> 类用于用于批量加载资源。此类是单例，不要手动实例化此类，请通过Laya.loader访问。</p>\r\n*<p>全部队列加载完成，会派发 Event.COMPLETE 事件；如果队列中任意一个加载失败，会派发 Event.ERROR 事件，事件回调参数值为加载出错的资源地址。</p>\r\n*<p> <code>LoaderManager</code> 类提供了以下几种功能：<br/>\r\n*多线程：默认5个加载线程，可以通过maxLoader属性修改线程数量；<br/>\r\n*多优先级：有0-4共5个优先级，优先级高的优先加载。0最高，4最低；<br/>\r\n*重复过滤：自动过滤重复加载（不会有多个相同地址的资源同时加载）以及复用缓存资源，防止重复加载；<br/>\r\n*错误重试：资源加载失败后，会重试加载（以最低优先级插入加载队列），retryNum设定加载失败后重试次数，retryDelay设定加载重试的时间间隔。</p>\r\n*@see laya.net.Loader\r\n*/\r\n//class laya.net.LoaderManager extends laya.events.EventDispatcher\r\nvar LoaderManager=(function(_super){\r\n\tvar ResInfo;\r\n\tfunction LoaderManager(){\r\n\t\t/**加载出错后的重试次数，默认重试一次*/\r\n\t\tthis.retryNum=1;\r\n\t\t/**延迟时间多久再进行错误重试，默认立即重试*/\r\n\t\tthis.retryDelay=0;\r\n\t\t/**最大下载线程，默认为5个*/\r\n\t\tthis.maxLoader=5;\r\n\t\t/**@private */\r\n\t\tthis._loaders=[];\r\n\t\t/**@private */\r\n\t\tthis._loaderCount=0;\r\n\t\t/**@private */\r\n\t\tthis._resInfos=[];\r\n\t\t/**@private */\r\n\t\tthis._infoPool=[];\r\n\t\t/**@private */\r\n\t\tthis._maxPriority=5;\r\n\t\t/**@private */\r\n\t\tthis._failRes={};\r\n\t\tLoaderManager.__super.call(this);\r\n\t\tfor (var i=0;i < this._maxPriority;i++)this._resInfos[i]=[];\r\n\t}\r\n\r\n\t__class(LoaderManager,'laya.net.LoaderManager',_super);\r\n\tvar __proto=LoaderManager.prototype;\r\n\t/**\r\n\t*<p>根据clas类型创建一个未初始化资源的对象，随后进行异步加载，资源加载完成后，初始化对象的资源，并通过此对象派发 Event.LOADED 事件，事件回调参数值为此对象本身。套嵌资源的子资源会保留资源路径\"?\"后的部分。</p>\r\n\t*<p>如果url为数组，返回true；否则返回指定的资源类对象，可以通过侦听此对象的 Event.LOADED 事件来判断资源是否已经加载完毕。</p>\r\n\t*<p><b>注意：</b>cache参数只能对文件后缀为atlas的资源进行缓存控制，其他资源会忽略缓存，强制重新加载。</p>\r\n\t*@param url 资源地址或者数组。如果url和clas同时指定了资源类型，优先使用url指定的资源类型。参数形如：[{url:xx,clas:xx,priority:xx,params:xx},{url:xx,clas:xx,priority:xx,params:xx}]。\r\n\t*@param complete 加载结束回调。根据url类型不同分为2种情况：1. url为String类型，也就是单个资源地址，如果加载成功，则回调参数值为加载完成的资源，否则为null；2. url为数组类型，指定了一组要加载的资源，如果全部加载成功，则回调参数值为true，否则为false。\r\n\t*@param progress 资源加载进度回调，回调参数值为当前资源加载的进度信息(0-1)。\r\n\t*@param clas 资源类名。如果url和clas同时指定了资源类型，优先使用url指定的资源类型。参数形如：Texture。\r\n\t*@param params 资源构造参数。\r\n\t*@param priority (default=1)加载的优先级，优先级高的优先加载。有0-4共5个优先级，0最高，4最低。\r\n\t*@param cache 是否缓存加载的资源。\r\n\t*@return 如果url为数组，返回true；否则返回指定的资源类对象。\r\n\t*/\r\n\t__proto.create=function(url,complete,progress,clas,params,priority,cache,group){\r\n\t\t(priority===void 0)&& (priority=1);\r\n\t\t(cache===void 0)&& (cache=true);\r\n\t\tif ((url instanceof Array)){\r\n\t\t\tvar items=url;\r\n\t\t\tvar itemCount=items.length;\r\n\t\t\tvar loadedCount=0;\r\n\t\t\tif (progress){\r\n\t\t\t\tvar progress2=Handler.create(progress.caller,progress.method,progress.args,false);\r\n\t\t\t}\r\n\t\t\tfor (var i=0;i < itemCount;i++){\r\n\t\t\t\tvar item=items[i];\r\n\t\t\t\tif ((typeof item=='string'))\r\n\t\t\t\t\titem=items[i]={url:item};\r\n\t\t\t\titem.progress=0;\r\n\t\t\t}\r\n\t\t\tfor (i=0;i < itemCount;i++){\r\n\t\t\t\titem=items[i];\r\n\t\t\t\tvar progressHandler=progress ? Handler.create(null,onProgress,[item],false):null;\r\n\t\t\t\tvar completeHandler=(progress || complete)? Handler.create(null,onComplete,[item]):null;\r\n\t\t\t\tthis._create(item.url,completeHandler,progressHandler,item.clas || clas,item.params || params,item.priority || priority,cache,item.group || group);\r\n\t\t\t}\r\n\t\t\tfunction onComplete (item,content){\r\n\t\t\t\tloadedCount++;\r\n\t\t\t\titem.progress=1;\r\n\t\t\t\tif (loadedCount===itemCount && complete){\r\n\t\t\t\t\tcomplete.run();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfunction onProgress (item,value){\r\n\t\t\t\titem.progress=value;\r\n\t\t\t\tvar num=0;\r\n\t\t\t\tfor (var j=0;j < itemCount;j++){\r\n\t\t\t\t\tvar item1=items[j];\r\n\t\t\t\t\tnum+=item1.progress;\r\n\t\t\t\t};\r\n\t\t\t\tvar v=num / itemCount;\r\n\t\t\t\tprogress2.runWith(v);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}else return this._create(url,complete,progress,clas,params,priority,cache,group);\r\n\t}\r\n\r\n\t__proto._create=function(url,complete,progress,clas,params,priority,cache,group){\r\n\t\t(priority===void 0)&& (priority=1);\r\n\t\t(cache===void 0)&& (cache=true);\r\n\t\tvar formarUrl=URL.formatURL(url);\r\n\t\tvar item=this.getRes(formarUrl);\r\n\t\tif (!item){\r\n\t\t\tvar extension=Utils.getFileExtension(url);\r\n\t\t\tvar creatItem=LoaderManager.createMap[extension];\r\n\t\t\tif (!creatItem)\r\n\t\t\t\tthrow new Error(\"LoaderManager:unknown file(\"+url+\") extension with: \"+extension+\".\");\r\n\t\t\tif (!clas)clas=creatItem[0];\r\n\t\t\tvar type=creatItem[1];\r\n\t\t\tif (extension==\"atlas\"){\r\n\t\t\t\tthis.load(url,complete,progress,type,priority,cache);\r\n\t\t\t\t}else {\r\n\t\t\t\tif (clas===Texture)type=\"htmlimage\";\r\n\t\t\t\titem=clas ? new clas():null;\r\n\t\t\t\tif (item.hasOwnProperty(\"_loaded\"))\r\n\t\t\t\t\titem._loaded=false;\r\n\t\t\t\titem._setUrl(url);\r\n\t\t\t\t(group)&& (item._setGroup(group));\r\n\t\t\t\tthis._createLoad(item,url,Handler.create(null,onLoaded),progress,type,priority,false,group,true);\r\n\t\t\t\tfunction onLoaded (data){\r\n\t\t\t\t\t(item && !item.destroyed && data)&& (item.onAsynLoaded.call(item,url,data,params));\r\n\t\t\t\t\tif (complete)complete.run();\r\n\t\t\t\t\tLaya.loader.event(url);\r\n\t\t\t\t}\r\n\t\t\t\t(cache)&& (this.cacheRes(formarUrl,item));\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tif (!item.hasOwnProperty(\"loaded\")|| item.loaded){\r\n\t\t\t\tprogress && progress.runWith(1);\r\n\t\t\t\tcomplete && complete.run();\r\n\t\t\t\t}else if (complete){\r\n\t\t\t\tLaya.loader._createListener(url,complete.caller,complete.method,complete.args,true,false);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn item;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>加载资源。资源加载错误时，本对象会派发 Event.ERROR 事件，事件回调参数值为加载出错的资源地址。</p>\r\n\t*<p>因为返回值为 LoaderManager 对象本身，所以可以使用如下语法：Laya.loader.load(...).load(...);</p>\r\n\t*@param url 要加载的单个资源地址或资源信息数组。比如：简单数组：[\"a.png\",\"b.png\"]；复杂数组[{url:\"a.png\",type:Loader.IMAGE,size:100,priority:1},{url:\"b.json\",type:Loader.JSON,size:50,priority:1}]。\r\n\t*@param complete 加载结束回调。根据url类型不同分为2种情况：1. url为String类型，也就是单个资源地址，如果加载成功，则回调参数值为加载完成的资源，否则为null；2. url为数组类型，指定了一组要加载的资源，如果全部加载成功，则回调参数值为true，否则为false。\r\n\t*@param progress 加载进度回调。回调参数值为当前资源的加载进度信息(0-1)。\r\n\t*@param type 资源类型。比如：Loader.IMAGE。\r\n\t*@param priority (default=1)加载的优先级，优先级高的优先加载。有0-4共5个优先级，0最高，4最低。\r\n\t*@param cache 是否缓存加载结果。\r\n\t*@param group 分组，方便对资源进行管理。\r\n\t*@param ignoreCache 是否忽略缓存，强制重新加载。\r\n\t*@return 此 LoaderManager 对象本身。\r\n\t*/\r\n\t__proto.load=function(url,complete,progress,type,priority,cache,group,ignoreCache){\r\n\t\tvar _$this=this;\r\n\t\t(priority===void 0)&& (priority=1);\r\n\t\t(cache===void 0)&& (cache=true);\r\n\t\t(ignoreCache===void 0)&& (ignoreCache=false);\r\n\t\tif ((url instanceof Array))return this._loadAssets(url,complete,progress,type,priority,cache,group);\r\n\t\tvar content=Loader.getRes(url);\r\n\t\tif (content !=null){\r\n\t\t\tLaya.timer.frameOnce(1,null,function(){\r\n\t\t\t\tprogress && progress.runWith(1);\r\n\t\t\t\tcomplete && complete.runWith(content);\r\n\t\t\t\t_$this._loaderCount || _$this.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\t});\r\n\t\t\t}else {\r\n\t\t\tvar info=LoaderManager._resMap[url];\r\n\t\t\tif (!info){\r\n\t\t\t\tinfo=this._infoPool.length ? this._infoPool.pop():new ResInfo();\r\n\t\t\t\tinfo.url=url;\r\n\t\t\t\tinfo.type=type;\r\n\t\t\t\tinfo.cache=cache;\r\n\t\t\t\tinfo.group=group;\r\n\t\t\t\tinfo.ignoreCache=ignoreCache;\r\n\t\t\t\tcomplete && info.on(/*laya.events.Event.COMPLETE*/\"complete\",complete.caller,complete.method,complete.args);\r\n\t\t\t\tprogress && info.on(/*laya.events.Event.PROGRESS*/\"progress\",progress.caller,progress.method,progress.args);\r\n\t\t\t\tLoaderManager._resMap[url]=info;\r\n\t\t\t\tpriority=priority < this._maxPriority ? priority :this._maxPriority-1;\r\n\t\t\t\tthis._resInfos[priority].push(info);\r\n\t\t\t\tthis._next();\r\n\t\t\t\t}else {\r\n\t\t\t\tcomplete && info._createListener(/*laya.events.Event.COMPLETE*/\"complete\",complete.caller,complete.method,complete.args,false,false);\r\n\t\t\t\tprogress && info._createListener(/*laya.events.Event.PROGRESS*/\"progress\",progress.caller,progress.method,progress.args,false,false);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._createLoad=function(item,url,complete,progress,type,priority,cache,group,ignoreCache){\r\n\t\tvar _$this=this;\r\n\t\t(priority===void 0)&& (priority=1);\r\n\t\t(cache===void 0)&& (cache=true);\r\n\t\t(ignoreCache===void 0)&& (ignoreCache=false);\r\n\t\tif ((url instanceof Array))return this._loadAssets(url,complete,progress,type,priority,cache,group);\r\n\t\tvar content=Loader.getRes(url);\r\n\t\tif (content !=null){\r\n\t\t\tLaya.timer.frameOnce(1,null,function(){\r\n\t\t\t\tprogress && progress.runWith(1);\r\n\t\t\t\tcomplete && complete.runWith(content);\r\n\t\t\t\t_$this._loaderCount || _$this.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\t});\r\n\t\t\t}else {\r\n\t\t\tvar info=LoaderManager._resMap[url];\r\n\t\t\tif (!info){\r\n\t\t\t\tinfo=this._infoPool.length ? this._infoPool.pop():new ResInfo();\r\n\t\t\t\tinfo.url=url;\r\n\t\t\t\tinfo.clas=item;\r\n\t\t\t\tinfo.type=type;\r\n\t\t\t\tinfo.cache=cache;\r\n\t\t\t\tinfo.group=group;\r\n\t\t\t\tinfo.ignoreCache=ignoreCache;\r\n\t\t\t\tcomplete && info.on(/*laya.events.Event.COMPLETE*/\"complete\",complete.caller,complete.method,complete.args);\r\n\t\t\t\tprogress && info.on(/*laya.events.Event.PROGRESS*/\"progress\",progress.caller,progress.method,progress.args);\r\n\t\t\t\tLoaderManager._resMap[url]=info;\r\n\t\t\t\tpriority=priority < this._maxPriority ? priority :this._maxPriority-1;\r\n\t\t\t\tthis._resInfos[priority].push(info);\r\n\t\t\t\tthis._next();\r\n\t\t\t\t}else {\r\n\t\t\t\tcomplete && info._createListener(/*laya.events.Event.COMPLETE*/\"complete\",complete.caller,complete.method,complete.args,false,false);\r\n\t\t\t\tprogress && info._createListener(/*laya.events.Event.PROGRESS*/\"progress\",progress.caller,progress.method,progress.args,false,false);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t__proto._next=function(){\r\n\t\tif (this._loaderCount >=this.maxLoader)return;\r\n\t\tfor (var i=0;i < this._maxPriority;i++){\r\n\t\t\tvar infos=this._resInfos[i];\r\n\t\t\twhile (infos.length > 0){\r\n\t\t\t\tvar info=infos.shift();\r\n\t\t\t\tif (info)return this._doLoad(info);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._loaderCount || this.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t}\r\n\r\n\t__proto._doLoad=function(resInfo){\r\n\t\tthis._loaderCount++;\r\n\t\tvar loader=this._loaders.length ? this._loaders.pop():new Loader();\r\n\t\tloader.on(/*laya.events.Event.COMPLETE*/\"complete\",null,onLoaded);\r\n\t\tloader.on(/*laya.events.Event.PROGRESS*/\"progress\",null,function(num){\r\n\t\t\tresInfo.event(/*laya.events.Event.PROGRESS*/\"progress\",num);\r\n\t\t});\r\n\t\tloader.on(/*laya.events.Event.ERROR*/\"error\",null,function(msg){\r\n\t\t\tonLoaded(null);\r\n\t\t});\r\n\t\tvar _this=this;\r\n\t\tfunction onLoaded (data){\r\n\t\t\tloader.offAll();\r\n\t\t\tloader._data=null;\r\n\t\t\tloader._customParse=false;\r\n\t\t\t_this._loaders.push(loader);\r\n\t\t\t_this._endLoad(resInfo,(data instanceof Array)? [data] :data);\r\n\t\t\t_this._loaderCount--;\r\n\t\t\t_this._next();\r\n\t\t}\r\n\t\tloader._class=resInfo.clas;\r\n\t\tloader.load(resInfo.url,resInfo.type,resInfo.cache,resInfo.group,resInfo.ignoreCache);\r\n\t}\r\n\r\n\t__proto._endLoad=function(resInfo,content){\r\n\t\tvar url=resInfo.url;\r\n\t\tif (content==null){\r\n\t\t\tvar errorCount=this._failRes[url] || 0;\r\n\t\t\tif (errorCount < this.retryNum){\r\n\t\t\t\tconsole.warn(\"[warn]Retry to load:\",url);\r\n\t\t\t\tthis._failRes[url]=errorCount+1;\r\n\t\t\t\tLaya.timer.once(this.retryDelay,this,this._addReTry,[resInfo],false);\r\n\t\t\t\treturn;\r\n\t\t\t\t}else {\r\n\t\t\t\tconsole.warn(\"[error]Failed to load:\",url);\r\n\t\t\t\tthis.event(/*laya.events.Event.ERROR*/\"error\",url);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._failRes[url])this._failRes[url]=0;\r\n\t\tdelete LoaderManager._resMap[url];\r\n\t\tresInfo.event(/*laya.events.Event.COMPLETE*/\"complete\",content);\r\n\t\tresInfo.offAll();\r\n\t\tthis._infoPool.push(resInfo);\r\n\t}\r\n\r\n\t__proto._addReTry=function(resInfo){\r\n\t\tthis._resInfos[this._maxPriority-1].push(resInfo);\r\n\t\tthis._next();\r\n\t}\r\n\r\n\t/**\r\n\t*清理指定资源地址缓存。\r\n\t*@param url 资源地址。\r\n\t*@param forceDispose 是否强制销毁，有些资源是采用引用计数方式销毁，如果forceDispose=true，则忽略引用计数，直接销毁，比如Texture，默认为false\r\n\t*/\r\n\t__proto.clearRes=function(url,forceDispose){\r\n\t\t(forceDispose===void 0)&& (forceDispose=false);\r\n\t\tLoader.clearRes(url,forceDispose);\r\n\t}\r\n\r\n\t/**\r\n\t*获取指定资源地址的资源。\r\n\t*@param url 资源地址。\r\n\t*@return 返回资源。\r\n\t*/\r\n\t__proto.getRes=function(url){\r\n\t\treturn Loader.getRes(url);\r\n\t}\r\n\r\n\t/**\r\n\t*缓存资源。\r\n\t*@param url 资源地址。\r\n\t*@param data 要缓存的内容。\r\n\t*/\r\n\t__proto.cacheRes=function(url,data){\r\n\t\tLoader.cacheRes(url,data);\r\n\t}\r\n\r\n\t/**\r\n\t*销毁Texture使用的图片资源，保留texture壳，如果下次渲染的时候，发现texture使用的图片资源不存在，则会自动恢复\r\n\t*相比clearRes，clearTextureRes只是清理texture里面使用的图片资源，并不销毁texture，再次使用到的时候会自动恢复图片资源\r\n\t*而clearRes会彻底销毁texture，导致不能再使用；clearTextureRes能确保立即销毁图片资源，并且不用担心销毁错误，clearRes则采用引用计数方式销毁\r\n\t*【注意】如果图片本身在自动合集里面（默认图片小于512*512），内存是不能被销毁的，此图片被大图合集管理器管理\r\n\t*@param url 图集地址或者texture地址，比如 Loader.clearTextureRes(\"res/atlas/comp.atlas\");Loader.clearTextureRes(\"hall/bg.jpg\");\r\n\t*/\r\n\t__proto.clearTextureRes=function(url){\r\n\t\tLoader.clearTextureRes(url);\r\n\t}\r\n\r\n\t/**\r\n\t*设置资源分组。\r\n\t*@param url 资源地址。\r\n\t*@param group 分组名\r\n\t*/\r\n\t__proto.setGroup=function(url,group){\r\n\t\tLoader.setGroup(url,group);\r\n\t}\r\n\r\n\t/**\r\n\t*根据分组清理资源。\r\n\t*@param group 分组名\r\n\t*/\r\n\t__proto.clearResByGroup=function(group){\r\n\t\tLoader.clearResByGroup(group);\r\n\t}\r\n\r\n\t/**清理当前未完成的加载，所有未加载的内容全部停止加载。*/\r\n\t__proto.clearUnLoaded=function(){\r\n\t\tfor (var i=0;i < this._maxPriority;i++){\r\n\t\t\tvar infos=this._resInfos[i];\r\n\t\t\tfor (var j=infos.length-1;j >-1;j--){\r\n\t\t\t\tvar info=infos[j];\r\n\t\t\t\tif (info){\r\n\t\t\t\t\tinfo.offAll();\r\n\t\t\t\t\tthis._infoPool.push(info);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tinfos.length=0;\r\n\t\t}\r\n\t\tthis._loaderCount=0;\r\n\t\tLoaderManager._resMap={};\r\n\t}\r\n\r\n\t/**\r\n\t*根据地址集合清理掉未加载的内容\r\n\t*@param urls 资源地址集合\r\n\t*/\r\n\t__proto.cancelLoadByUrls=function(urls){\r\n\t\tif (!urls)return;\r\n\t\tfor (var i=0,n=urls.length;i < n;i++){\r\n\t\t\tthis.cancelLoadByUrl(urls[i]);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*根据地址清理掉未加载的内容\r\n\t*@param url 资源地址\r\n\t*/\r\n\t__proto.cancelLoadByUrl=function(url){\r\n\t\tfor (var i=0;i < this._maxPriority;i++){\r\n\t\t\tvar infos=this._resInfos[i];\r\n\t\t\tfor (var j=infos.length-1;j >-1;j--){\r\n\t\t\t\tvar info=infos[j];\r\n\t\t\t\tif (info && info.url===url){\r\n\t\t\t\t\tinfos[j]=null;\r\n\t\t\t\t\tinfo.offAll();\r\n\t\t\t\t\tthis._infoPool.push(info);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (LoaderManager._resMap[url])delete LoaderManager._resMap[url];\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*加载数组里面的资源。\r\n\t*@param arr 简单：[\"a.png\",\"b.png\"]，复杂[{url:\"a.png\",type:Loader.IMAGE,size:100,priority:1},{url:\"b.json\",type:Loader.JSON,size:50,priority:1}]*/\r\n\t__proto._loadAssets=function(arr,complete,progress,type,priority,cache,group){\r\n\t\t(priority===void 0)&& (priority=1);\r\n\t\t(cache===void 0)&& (cache=true);\r\n\t\tvar itemCount=arr.length;\r\n\t\tvar loadedCount=0;\r\n\t\tvar totalSize=0;\r\n\t\tvar items=[];\r\n\t\tvar success=true;\r\n\t\tfor (var i=0;i < itemCount;i++){\r\n\t\t\tvar item=arr[i];\r\n\t\t\tif ((typeof item=='string'))item={url:item,type:type,size:1,priority:priority};\r\n\t\t\tif (!item.size)item.size=1;\r\n\t\t\titem.progress=0;\r\n\t\t\ttotalSize+=item.size;\r\n\t\t\titems.push(item);\r\n\t\t\tvar progressHandler=progress ? Handler.create(null,loadProgress,[item],false):null;\r\n\t\t\tvar completeHandler=(complete || progress)? Handler.create(null,loadComplete,[item]):null;\r\n\t\t\tthis.load(item.url,completeHandler,progressHandler,item.type,item.priority || 1,cache,item.group || group);\r\n\t\t}\r\n\t\tfunction loadComplete (item,content){\r\n\t\t\tloadedCount++;\r\n\t\t\titem.progress=1;\r\n\t\t\tif (!content)success=false;\r\n\t\t\tif (loadedCount===itemCount && complete){\r\n\t\t\t\tcomplete.runWith(success);\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction loadProgress (item,value){\r\n\t\t\tif (progress !=null){\r\n\t\t\t\titem.progress=value;\r\n\t\t\t\tvar num=0;\r\n\t\t\t\tfor (var j=0;j < items.length;j++){\r\n\t\t\t\t\tvar item1=items[j];\r\n\t\t\t\t\tnum+=item1.size *item1.progress;\r\n\t\t\t\t};\r\n\t\t\t\tvar v=num / totalSize;\r\n\t\t\t\tprogress.runWith(v);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\tLoaderManager.cacheRes=function(url,data){\r\n\t\tLoader.cacheRes(url,data);\r\n\t}\r\n\r\n\tLoaderManager._resMap={};\r\n\t__static(LoaderManager,\r\n\t['createMap',function(){return this.createMap={atlas:[null,/*laya.net.Loader.ATLAS*/\"atlas\"]};}\r\n\t]);\r\n\tLoaderManager.__init$=function(){\r\n\t\t//class ResInfo extends laya.events.EventDispatcher\r\n\t\tResInfo=(function(_super){\r\n\t\t\tfunction ResInfo(){\r\n\t\t\t\tthis.url=null;\r\n\t\t\t\tthis.type=null;\r\n\t\t\t\tthis.cache=false;\r\n\t\t\t\tthis.group=null;\r\n\t\t\t\tthis.ignoreCache=false;\r\n\t\t\t\tthis.clas=null;\r\n\t\t\t\tResInfo.__super.call(this);\r\n\t\t\t}\r\n\t\t\t__class(ResInfo,'',_super);\r\n\t\t\treturn ResInfo;\r\n\t\t})(EventDispatcher)\r\n\t}\r\n\r\n\treturn LoaderManager;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*<p><code>ColorFilter</code> 是颜色滤镜。使用 ColorFilter 类可以将 4 x 5 矩阵转换应用于输入图像上的每个像素的 RGBA 颜色和 Alpha 值，以生成具有一组新的 RGBA 颜色和 Alpha 值的结果。该类允许饱和度更改、色相旋转、亮度转 Alpha 以及各种其他效果。您可以将滤镜应用于任何显示对象（即，从 Sprite 类继承的对象）。</p>\r\n*<p>注意：对于 RGBA 值，最高有效字节代表红色通道值，其后的有效字节分别代表绿色、蓝色和 Alpha 通道值。</p>\r\n*/\r\n//class laya.filters.ColorFilter extends laya.filters.Filter\r\nvar ColorFilter=(function(_super){\r\n\tfunction ColorFilter(mat){\r\n\t\t/**@private */\r\n\t\t//this._mat=null;\r\n\t\t/**@private */\r\n\t\t//this._alpha=null;\r\n\t\tColorFilter.__super.call(this);\r\n\t\tif (!mat){\r\n\t\t\tmat=[0.3,0.59,0.11,0,0,0.3,0.59,0.11,0,0,0.3,0.59,0.11,0,0,0,0,0,1,0];\r\n\t\t}\r\n\t\tthis._mat=new Float32Array(16);\r\n\t\tthis._alpha=new Float32Array(4);\r\n\t\tvar j=0;\r\n\t\tvar z=0;\r\n\t\tfor (var i=0;i < 20;i++){\r\n\t\t\tif (i % 5 !=4){\r\n\t\t\t\tthis._mat[j++]=mat[i];\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._alpha[z++]=mat[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._action=RunDriver.createFilterAction(0x20);\r\n\t\tthis._action.data=this;\r\n\t}\r\n\r\n\t__class(ColorFilter,'laya.filters.ColorFilter',_super);\r\n\tvar __proto=ColorFilter.prototype;\r\n\tLaya.imps(__proto,{\"laya.filters.IFilter\":true})\r\n\t/**\r\n\t*@private 通知微端\r\n\t*/\r\n\t__proto.callNative=function(sp){\r\n\t\tvar t=sp._$P.cf=this;\r\n\t\tsp.conchModel && sp.conchModel.setFilterMatrix && sp.conchModel.setFilterMatrix(this._mat,this._alpha);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__getset(0,__proto,'type',function(){\r\n\t\treturn 0x20;\r\n\t});\r\n\r\n\t/**@private */\r\n\t__getset(0,__proto,'action',function(){\r\n\t\treturn this._action;\r\n\t});\r\n\r\n\treturn ColorFilter;\r\n})(Filter)\r\n\r\n\r\n/**\r\n*<p> <code>Socket</code> 封装了 HTML5 WebSocket ，允许服务器端与客户端进行全双工（full-duplex）的实时通信，并且允许跨域通信。在建立连接后，服务器和 Browser/Client Agent 都能主动的向对方发送或接收文本和二进制数据。</p>\r\n*<p>要使用 <code>Socket</code> 类的方法，请先使用构造函数 <code>new Socket</code> 创建一个 <code>Socket</code> 对象。 <code>Socket</code> 以异步方式传输和接收数据。</p>\r\n*/\r\n//class laya.net.Socket extends laya.events.EventDispatcher\r\nvar Socket=(function(_super){\r\n\tfunction Socket(host,port,byteClass){\r\n\t\t/**@private */\r\n\t\tthis._endian=null;\r\n\t\t/**@private */\r\n\t\tthis._stamp=NaN;\r\n\t\t/**@private */\r\n\t\tthis._socket=null;\r\n\t\t/**@private */\r\n\t\tthis._connected=false;\r\n\t\t/**@private */\r\n\t\tthis._addInputPosition=0;\r\n\t\t/**@private */\r\n\t\tthis._input=null;\r\n\t\t/**@private */\r\n\t\tthis._output=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示建立连接时需等待的毫秒数。\r\n\t\t*/\r\n\t\tthis.timeout=0;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*在写入或读取对象时，控制所使用的 AMF 的版本。\r\n\t\t*/\r\n\t\tthis.objectEncoding=0;\r\n\t\t/**\r\n\t\t*不再缓存服务端发来的数据。\r\n\t\t*/\r\n\t\tthis.disableInput=false;\r\n\t\t/**\r\n\t\t*用来发送和接收数据的 <code>Byte</code> 类。\r\n\t\t*/\r\n\t\tthis._byteClass=null;\r\n\t\t/**\r\n\t\t*<p>子协议名称。子协议名称字符串，或由多个子协议名称字符串构成的数组。必须在调用 connect 或者 connectByUrl 之前进行赋值，否则无效。</p>\r\n\t\t*<p>指定后，只有当服务器选择了其中的某个子协议，连接才能建立成功，否则建立失败，派发 Event.ERROR 事件。</p>\r\n\t\t*@see https://html.spec.whatwg.org/multipage/comms.html#dom-websocket\r\n\t\t*/\r\n\t\tthis.protocols=[];\r\n\t\t(port===void 0)&& (port=0);\r\n\t\tSocket.__super.call(this);\r\n\t\tthis._byteClass=byteClass ? byteClass :Byte;\r\n\t\tthis.endian=\"bigEndian\";\r\n\t\tthis.timeout=20000;\r\n\t\tthis._addInputPosition=0;\r\n\t\tif (host && port > 0 && port < 65535)\r\n\t\t\tthis.connect(host,port);\r\n\t}\r\n\r\n\t__class(Socket,'laya.net.Socket',_super);\r\n\tvar __proto=Socket.prototype;\r\n\t/**\r\n\t*<p>连接到指定的主机和端口。</p>\r\n\t*<p>连接成功派发 Event.OPEN 事件；连接失败派发 Event.ERROR 事件；连接被关闭派发 Event.CLOSE 事件；接收到数据派发 Event.MESSAGE 事件； 除了 Event.MESSAGE 事件参数为数据内容，其他事件参数都是原生的 HTML DOM Event 对象。</p>\r\n\t*@param host 服务器地址。\r\n\t*@param port 服务器端口。\r\n\t*/\r\n\t__proto.connect=function(host,port){\r\n\t\tvar url=\"ws://\"+host+\":\"+port;\r\n\t\tif (Browser.window.location.protocol==\"https:\"){\r\n\t\t\turl=\"wss://\"+host+\":\"+port;\r\n\t\t\t}else {\r\n\t\t\turl=\"ws://\"+host+\":\"+port;\r\n\t\t}\r\n\t\tthis.connectByUrl(url);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>连接到指定的服务端 WebSocket URL。 URL 类似 ws://yourdomain:port。</p>\r\n\t*<p>连接成功派发 Event.OPEN 事件；连接失败派发 Event.ERROR 事件；连接被关闭派发 Event.CLOSE 事件；接收到数据派发 Event.MESSAGE 事件； 除了 Event.MESSAGE 事件参数为数据内容，其他事件参数都是原生的 HTML DOM Event 对象。</p>\r\n\t*@param url 要连接的服务端 WebSocket URL。 URL 类似 ws://yourdomain:port。\r\n\t*/\r\n\t__proto.connectByUrl=function(url){\r\n\t\tvar _$this=this;\r\n\t\tif (this._socket !=null)\r\n\t\t\tthis.close();\r\n\t\tthis._socket && this.cleanSocket();\r\n\t\tif (!this.protocols || this.protocols.length==0){\r\n\t\t\tthis._socket=new Browser.window.WebSocket(url);\r\n\t\t\t}else {\r\n\t\t\tthis._socket=new Browser.window.WebSocket(url,this.protocols);\r\n\t\t}\r\n\t\tthis._socket.binaryType=\"arraybuffer\";\r\n\t\tthis._output=new this._byteClass();\r\n\t\tthis._output.endian=this.endian;\r\n\t\tthis._input=new this._byteClass();\r\n\t\tthis._input.endian=this.endian;\r\n\t\tthis._addInputPosition=0;\r\n\t\tthis._socket.onopen=function (e){\r\n\t\t\t_$this._onOpen(e);\r\n\t\t};\r\n\t\tthis._socket.onmessage=function (msg){\r\n\t\t\t_$this._onMessage(msg);\r\n\t\t};\r\n\t\tthis._socket.onclose=function (e){\r\n\t\t\t_$this._onClose(e);\r\n\t\t};\r\n\t\tthis._socket.onerror=function (e){\r\n\t\t\t_$this._onError(e);\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t*清理socket。\r\n\t*/\r\n\t__proto.cleanSocket=function(){\r\n\t\ttry {\r\n\t\t\tthis._socket.close();\r\n\t\t}catch (e){}\r\n\t\tthis._connected=false;\r\n\t\tthis._socket.onopen=null;\r\n\t\tthis._socket.onmessage=null;\r\n\t\tthis._socket.onclose=null;\r\n\t\tthis._socket.onerror=null;\r\n\t\tthis._socket=null;\r\n\t}\r\n\r\n\t/**\r\n\t*关闭连接。\r\n\t*/\r\n\t__proto.close=function(){\r\n\t\tif (this._socket !=null){\r\n\t\t\ttry {\r\n\t\t\t\tthis._socket.close();\r\n\t\t\t}catch (e){}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*连接建立成功 。\r\n\t*/\r\n\t__proto._onOpen=function(e){\r\n\t\tthis._connected=true;\r\n\t\tthis.event(/*laya.events.Event.OPEN*/\"open\",e);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*接收到数据处理方法。\r\n\t*@param msg 数据。\r\n\t*/\r\n\t__proto._onMessage=function(msg){\r\n\t\tif (!msg || !msg.data)return;\r\n\t\tvar data=msg.data;\r\n\t\tif (this.disableInput && data){\r\n\t\t\tthis.event(/*laya.events.Event.MESSAGE*/\"message\",data);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this._input.length > 0 && this._input.bytesAvailable < 1){\r\n\t\t\tthis._input.clear();\r\n\t\t\tthis._addInputPosition=0;\r\n\t\t};\r\n\t\tvar pre=this._input.pos;\r\n\t\t!this._addInputPosition && (this._addInputPosition=0);\r\n\t\tthis._input.pos=this._addInputPosition;\r\n\t\tif (data){\r\n\t\t\tif ((typeof data=='string')){\r\n\t\t\t\tthis._input.writeUTFBytes(data);\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._input.writeArrayBuffer(data);\r\n\t\t\t}\r\n\t\t\tthis._addInputPosition=this._input.pos;\r\n\t\t\tthis._input.pos=pre;\r\n\t\t}\r\n\t\tthis.event(/*laya.events.Event.MESSAGE*/\"message\",data);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*连接被关闭处理方法。\r\n\t*/\r\n\t__proto._onClose=function(e){\r\n\t\tthis._connected=false;\r\n\t\tthis.event(/*laya.events.Event.CLOSE*/\"close\",e)\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*出现异常处理方法。\r\n\t*/\r\n\t__proto._onError=function(e){\r\n\t\tthis.event(/*laya.events.Event.ERROR*/\"error\",e)\r\n\t}\r\n\r\n\t/**\r\n\t*发送数据到服务器。\r\n\t*@param data 需要发送的数据，可以是String或者ArrayBuffer。\r\n\t*/\r\n\t__proto.send=function(data){\r\n\t\tthis._socket.send(data);\r\n\t}\r\n\r\n\t/**\r\n\t*发送缓冲区中的数据到服务器。\r\n\t*/\r\n\t__proto.flush=function(){\r\n\t\tif (this._output && this._output.length > 0){\r\n\t\t\tvar evt;\r\n\t\t\ttry {\r\n\t\t\t\tthis._socket && this._socket.send(this._output.__getBuffer().slice(0,this._output.length));\r\n\t\t\t\t}catch (e){\r\n\t\t\t\tevt=e;\r\n\t\t\t}\r\n\t\t\tthis._output.endian=this.endian;\r\n\t\t\tthis._output.clear();\r\n\t\t\tif (evt)this.event(/*laya.events.Event.ERROR*/\"error\",evt);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*缓存的服务端发来的数据。\r\n\t*/\r\n\t__getset(0,__proto,'input',function(){\r\n\t\treturn this._input;\r\n\t});\r\n\r\n\t/**\r\n\t*表示需要发送至服务端的缓冲区中的数据。\r\n\t*/\r\n\t__getset(0,__proto,'output',function(){\r\n\t\treturn this._output;\r\n\t});\r\n\r\n\t/**\r\n\t*表示此 Socket 对象目前是否已连接。\r\n\t*/\r\n\t__getset(0,__proto,'connected',function(){\r\n\t\treturn this._connected;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>主机字节序，是 CPU 存放数据的两种不同顺序，包括小端字节序和大端字节序。</p>\r\n\t*<p> LITTLE_ENDIAN ：小端字节序，地址低位存储值的低位，地址高位存储值的高位。</p>\r\n\t*<p> BIG_ENDIAN ：大端字节序，地址低位存储值的高位，地址高位存储值的低位。</p>\r\n\t*/\r\n\t__getset(0,__proto,'endian',function(){\r\n\t\treturn this._endian;\r\n\t\t},function(value){\r\n\t\tthis._endian=value;\r\n\t\tif (this._input !=null)this._input.endian=value;\r\n\t\tif (this._output !=null)this._output.endian=value;\r\n\t});\r\n\r\n\tSocket.LITTLE_ENDIAN=\"littleEndian\";\r\n\tSocket.BIG_ENDIAN=\"bigEndian\";\r\n\treturn Socket;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*@private\r\n*Worker Image加载器\r\n*/\r\n//class laya.net.WorkerLoader extends laya.events.EventDispatcher\r\nvar WorkerLoader=(function(_super){\r\n\tfunction WorkerLoader(){\r\n\t\t/**\r\n\t\t*使用的Worker对象。\r\n\t\t*/\r\n\t\tthis.worker=null;\r\n\t\tWorkerLoader.__super.call(this);\r\n\t\tvar _$this=this;\r\n\t\tthis.worker=new Browser.window.Worker(WorkerLoader.workerPath);\r\n\t\tthis.worker.onmessage=function (evt){\r\n\t\t\t_$this.workerMessage(evt.data);\r\n\t\t}\r\n\t}\r\n\r\n\t__class(WorkerLoader,'laya.net.WorkerLoader',_super);\r\n\tvar __proto=WorkerLoader.prototype;\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.workerMessage=function(data){\r\n\t\tif (data){\r\n\t\t\tswitch(data.type){\r\n\t\t\t\tcase \"Image\":\r\n\t\t\t\t\tthis.imageLoaded(data);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase \"Msg\":\r\n\t\t\t\t\tthis.event(\"image_msg\",data.msg);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.imageLoaded=function(data){\r\n\t\tif (data && data.buffer && data.buffer.length < 10){\r\n\t\t\tWorkerLoader._enable=false;\r\n\t\t\tthis._myTrace(\"buffer lost when postmessage ,disable workerloader\");\r\n\t\t\tthis.event(data.url,null);\r\n\t\t\tthis.event(\"image_err\",data.url+\"\\n\"+data.msg);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!data.dataType){\r\n\t\t\tthis.event(data.url,null);\r\n\t\t\tthis.event(\"image_err\",data.url+\"\\n\"+data.msg);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar canvas,ctx;\r\n\t\tvar imageData;\r\n\t\tswitch(data.dataType){\r\n\t\t\tcase \"buffer\":\r\n\t\t\t\tcanvas=new HTMLCanvas(\"2D\");\r\n\t\t\t\tctx=canvas.source.getContext(\"2d\");\r\n\t\t\t\timageData=ctx.createImageData(data.width,data.height);\r\n\t\t\t\timageData.data.set(data.buffer);\r\n\t\t\t\tcanvas.size(imageData.width,imageData.height);\r\n\t\t\t\tctx.putImageData(imageData,0,0);\r\n\t\t\t\tcanvas.memorySize=0;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase \"imagedata\":\r\n\t\t\t\tcanvas=new HTMLCanvas(\"2D\");\r\n\t\t\t\tctx=canvas.source.getContext(\"2d\");\r\n\t\t\t\timageData=data.imagedata;\r\n\t\t\t\tcanvas.size(imageData.width,imageData.height);\r\n\t\t\t\tctx.putImageData(imageData,0,0);\r\n\t\t\t\timageData=data.imagedata;\r\n\t\t\t\tcanvas.memorySize=0;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase \"imageBitmap\":\r\n\t\t\t\timageData=data.imageBitmap;\r\n\t\t\t\tif (!Render.isWebGL){\r\n\t\t\t\t\tcanvas=new HTMLCanvas(\"2D\");\r\n\t\t\t\t\tctx=canvas.source.getContext(\"2d\");\r\n\t\t\t\t\tcanvas.size(imageData.width,imageData.height);\r\n\t\t\t\t\tctx.drawImage(imageData,0,0);\r\n\t\t\t\t\tcanvas.src=data.url;\r\n\t\t\t\t}else\r\n\t\t\t\tcanvas=imageData;\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\tif (Render.isWebGL)\r\n\t\t\t/*__JS__ */canvas=new laya.webgl.resource.WebGLImage(canvas,data.url);;\r\n\t\tthis.event(data.url,canvas);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._myTrace=function(__arg){\r\n\t\tvar arg=arguments;\r\n\t\tvar rst=[];\r\n\t\tvar i=0,len=arg.length;\r\n\t\tfor(i=0;i<len;i++){\r\n\t\t\trst.push(arg[i]);\r\n\t\t}\r\n\t\tthis.event(\"image_msg\",rst.join(\" \"));\r\n\t}\r\n\r\n\t/**\r\n\t*加载图片\r\n\t*@param url 图片地址\r\n\t*/\r\n\t__proto.loadImage=function(url){\r\n\t\tvar data;\r\n\t\tdata={};\r\n\t\tdata.type=\"load\";\r\n\t\tdata.url=url;\r\n\t\tthis.worker.postMessage(data);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*加载图片资源。\r\n\t*@param url 资源地址。\r\n\t*/\r\n\t__proto._loadImage=function(url){\r\n\t\tvar _this=this;\r\n\t\tif (!WorkerLoader._enable||url.toLowerCase().indexOf(\".png\")< 0){\r\n\t\t\tWorkerLoader._preLoadFun.call(_this,url);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\turl=URL.formatURL(url);\r\n\t\tfunction clear (){\r\n\t\t\tlaya.net.WorkerLoader.I.off(url,_this,onload);\r\n\t\t};\r\n\t\tvar onload=function (image){\r\n\t\t\tclear();\r\n\t\t\tif (image){\r\n\t\t\t\t_this[\"onLoaded\"](image);\r\n\t\t\t\t}else{\r\n\t\t\t\tWorkerLoader._preLoadFun.call(_this,url);\r\n\t\t\t}\r\n\t\t};\r\n\t\tlaya.net.WorkerLoader.I.on(url,_this,onload);\r\n\t\tlaya.net.WorkerLoader.I.loadImage(url);\r\n\t}\r\n\r\n\t/**\r\n\t*是否启用。\r\n\t*/\r\n\t__getset(1,WorkerLoader,'enable',function(){\r\n\t\treturn WorkerLoader._enable;\r\n\t\t},function(v){\r\n\t\tif (WorkerLoader.disableJSDecode && (!Browser.window.createImageBitmap))return;\r\n\t\tWorkerLoader._enable=v;\r\n\t\tif (WorkerLoader._enable && WorkerLoader._preLoadFun==null)WorkerLoader._enable=WorkerLoader.__init__();\r\n\t});\r\n\r\n\tWorkerLoader.__init__=function(){\r\n\t\tif (WorkerLoader._preLoadFun !=null)return false;\r\n\t\tif (!Browser.window.Worker)return false;\r\n\t\tWorkerLoader._preLoadFun=Loader[\"prototype\"][\"_loadImage\"];\r\n\t\tLoader[\"prototype\"][\"_loadImage\"]=WorkerLoader[\"prototype\"][\"_loadImage\"];\r\n\t\tif (!WorkerLoader.I)WorkerLoader.I=new WorkerLoader();\r\n\t\treturn true;\r\n\t}\r\n\r\n\tWorkerLoader.workerSupported=function(){\r\n\t\treturn Browser.window.Worker?true:false;\r\n\t}\r\n\r\n\tWorkerLoader.IMAGE_LOADED=\"image_loaded\";\r\n\tWorkerLoader.IMAGE_ERR=\"image_err\";\r\n\tWorkerLoader.IMAGE_MSG=\"image_msg\";\r\n\tWorkerLoader.I=null;\r\n\tWorkerLoader._preLoadFun=null;\r\n\tWorkerLoader._enable=false;\r\n\tWorkerLoader.workerPath=\"libs/worker.js\";\r\n\tWorkerLoader.disableJSDecode=true;\r\n\treturn WorkerLoader;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*@private\r\n*<code>Resource</code> 资源存取类。\r\n*/\r\n//class laya.resource.Resource extends laya.events.EventDispatcher\r\nvar Resource=(function(_super){\r\n\tfunction Resource(){\r\n\t\t/**@private */\r\n\t\t//this.__loaded=false;\r\n\t\t/**@private */\r\n\t\t//this._id=0;\r\n\t\t/**@private */\r\n\t\t//this._memorySize=0;\r\n\t\t/**@private */\r\n\t\t//this._released=false;\r\n\t\t/**@private */\r\n\t\t//this._destroyed=false;\r\n\t\t/**@private */\r\n\t\t//this._referenceCount=0;\r\n\t\t/**@private */\r\n\t\t//this._group=null;\r\n\t\t/**@private */\r\n\t\t//this._url=null;\r\n\t\t/**@private */\r\n\t\t//this._resourceManager=null;\r\n\t\t/**@private */\r\n\t\t//this._lastUseFrameCount=0;\r\n\t\t/**是否加锁，如果true为不能使用自动释放机制。*/\r\n\t\t//this.lock=false;\r\n\t\t/**名称。 */\r\n\t\t//this.name=null;\r\n\t\tResource.__super.call(this);\r\n\t\tthis._$1__id=++Resource._uniqueIDCounter;\r\n\t\tthis.__loaded=true;\r\n\t\tthis._destroyed=false;\r\n\t\tthis._referenceCount=0;\r\n\t\tResource._idResourcesMap[this.id]=this;\r\n\t\tthis._released=true;\r\n\t\tthis.lock=false;\r\n\t\tthis._memorySize=0;\r\n\t\tthis._lastUseFrameCount=-1;\r\n\t\t(ResourceManager.currentResourceManager)&& (ResourceManager.currentResourceManager.addResource(this));\r\n\t}\r\n\r\n\t__class(Resource,'laya.resource.Resource',_super);\r\n\tvar __proto=Resource.prototype;\r\n\tLaya.imps(__proto,{\"laya.resource.ICreateResource\":true,\"laya.resource.IDispose\":true})\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._setUrl=function(url){\r\n\t\tif (this._url!==url){\r\n\t\t\tvar resList;\r\n\t\t\tif (this._url){\r\n\t\t\t\tresList=Resource._urlResourcesMap[this._url];\r\n\t\t\t\tresList.splice(resList.indexOf(this),1);\r\n\t\t\t\t(resList.length===0)&& (delete Resource._urlResourcesMap[this._url]);\r\n\t\t\t}\r\n\t\t\tif (url){\r\n\t\t\t\tresList=Resource._urlResourcesMap[url];\r\n\t\t\t\t(resList)|| (Resource._urlResourcesMap[url]=resList=[]);\r\n\t\t\t\tresList.push(this);\r\n\t\t\t}\r\n\t\t\tthis._url=url;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._getGroup=function(){\r\n\t\treturn this._group;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._setGroup=function(value){\r\n\t\tif (this._group!==value){\r\n\t\t\tvar groupList;\r\n\t\t\tif (this._group){\r\n\t\t\t\tgroupList=Resource._groupResourcesMap[this._group];\r\n\t\t\t\tgroupList.splice(groupList.indexOf(this),1);\r\n\t\t\t\t(groupList.length===0)&& (delete Resource._groupResourcesMap[this._group]);\r\n\t\t\t}\r\n\t\t\tif (value){\r\n\t\t\t\tgroupList=Resource._groupResourcesMap[value];\r\n\t\t\t\t(groupList)|| (Resource._groupResourcesMap[value]=groupList=[]);\r\n\t\t\t\tgroupList.push(this);\r\n\t\t\t}\r\n\t\t\tthis._group=value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._addReference=function(){\r\n\t\tthis._referenceCount++;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._removeReference=function(){\r\n\t\tthis._referenceCount--;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._clearReference=function(){\r\n\t\tthis._referenceCount=0;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._endLoaded=function(){\r\n\t\tthis.__loaded=true;\r\n\t\tthis.event(/*laya.events.Event.LOADED*/\"loaded\",this);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.recreateResource=function(){\r\n\t\tthis.completeCreate();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.disposeResource=function(){}\r\n\t/**\r\n\t*激活资源，使用资源前应先调用此函数激活。\r\n\t*@param force 是否强制创建。\r\n\t*/\r\n\t__proto.activeResource=function(force){\r\n\t\t(force===void 0)&& (force=false);\r\n\t\tthis._lastUseFrameCount=Stat.loopCount;\r\n\t\tif (!this._destroyed && this.__loaded && (this._released || force))\r\n\t\t\tthis.recreateResource();\r\n\t}\r\n\r\n\t/**\r\n\t*释放资源。\r\n\t*@param force 是否强制释放。\r\n\t*@return 是否成功释放。\r\n\t*/\r\n\t__proto.releaseResource=function(force){\r\n\t\t(force===void 0)&& (force=false);\r\n\t\tif (!force && this.lock)\r\n\t\t\treturn false;\r\n\t\tif (!this._released || force){\r\n\t\t\tthis.disposeResource();\r\n\t\t\tthis._released=true;\r\n\t\t\tthis._lastUseFrameCount=-1;\r\n\t\t\tthis.event(/*laya.events.Event.RELEASED*/\"released\",this);\r\n\t\t\treturn true;\r\n\t\t\t}else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.onAsynLoaded=function(url,data,params){\r\n\t\tthrow new Error(\"Resource: must override this function!\");\r\n\t}\r\n\r\n\t/**\r\n\t*<p>彻底处理资源，处理后不能恢复。</p>\r\n\t*<p><b>注意：</b>会强制解锁清理。</p>\r\n\t*/\r\n\t__proto.destroy=function(){\r\n\t\tif (this._destroyed)\r\n\t\t\treturn;\r\n\t\tif (this._resourceManager!==null)\r\n\t\t\tthis._resourceManager.removeResource(this);\r\n\t\tthis._destroyed=true;\r\n\t\tthis.lock=false;\r\n\t\tthis.releaseResource();\r\n\t\tdelete Resource._idResourcesMap[this.id];\r\n\t\tvar resList;\r\n\t\tif (this._url){\r\n\t\t\tresList=Resource._urlResourcesMap[this._url];\r\n\t\t\tif (resList){\r\n\t\t\t\tresList.splice(resList.indexOf(this),1);\r\n\t\t\t\t(resList.length===0)&& (delete Resource._urlResourcesMap[this.url]);\r\n\t\t\t}\r\n\t\t\tLoader.clearRes(this._url);\r\n\t\t\t(this.__loaded)||(RunDriver.cancelLoadByUrl(this._url));\r\n\t\t}\r\n\t\tif (this._group){\r\n\t\t\tresList=Resource._groupResourcesMap[this._group];\r\n\t\t\tresList.splice(resList.indexOf(this),1);\r\n\t\t\t(resList.length===0)&& (delete Resource._groupResourcesMap[this.url]);\r\n\t\t}\r\n\t}\r\n\r\n\t/**完成资源激活。*/\r\n\t__proto.completeCreate=function(){\r\n\t\tthis._released=false;\r\n\t\tthis.event(/*laya.events.Event.RECOVERED*/\"recovered\",this);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.dispose=function(){\r\n\t\tthis.destroy();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t/**\r\n\t*占用内存尺寸。\r\n\t*/\r\n\t__getset(0,__proto,'memorySize',function(){\r\n\t\treturn this._memorySize;\r\n\t\t},function(value){\r\n\t\tvar offsetValue=value-this._memorySize;\r\n\t\tthis._memorySize=value;\r\n\t\tthis.resourceManager && this.resourceManager.addSize(offsetValue);\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__getset(0,__proto,'_loaded',null,function(value){\r\n\t\tthis.__loaded=value;\r\n\t});\r\n\r\n\t/**\r\n\t*获取是否已加载完成。\r\n\t*/\r\n\t__getset(0,__proto,'loaded',function(){\r\n\t\treturn this.__loaded;\r\n\t});\r\n\r\n\t/**\r\n\t*获取唯一标识ID,通常用于识别。\r\n\t*/\r\n\t__getset(0,__proto,'id',function(){\r\n\t\treturn this._$1__id;\r\n\t});\r\n\r\n\t/**\r\n\t*是否已处理。\r\n\t*/\r\n\t__getset(0,__proto,'destroyed',function(){\r\n\t\treturn this._destroyed;\r\n\t});\r\n\r\n\t/**\r\n\t*设置资源组名。\r\n\t*/\r\n\t/**\r\n\t*获取资源组名。\r\n\t*/\r\n\t__getset(0,__proto,'group',function(){\r\n\t\treturn this._getGroup();\r\n\t\t},function(value){\r\n\t\tthis._setGroup(value);\r\n\t});\r\n\r\n\t/**\r\n\t*资源管理员。\r\n\t*/\r\n\t__getset(0,__proto,'resourceManager',function(){\r\n\t\treturn this._resourceManager;\r\n\t});\r\n\r\n\t/**\r\n\t*获取资源的URL地址。\r\n\t*@return URL地址。\r\n\t*/\r\n\t__getset(0,__proto,'url',function(){\r\n\t\treturn this._url;\r\n\t});\r\n\r\n\t/**\r\n\t*是否已释放。\r\n\t*/\r\n\t__getset(0,__proto,'released',function(){\r\n\t\treturn this._released;\r\n\t});\r\n\r\n\t/**\r\n\t*获取资源的引用计数。\r\n\t*/\r\n\t__getset(0,__proto,'referenceCount',function(){\r\n\t\treturn this._referenceCount;\r\n\t});\r\n\r\n\tResource.getResourceByID=function(id){\r\n\t\treturn Resource._idResourcesMap[id];\r\n\t}\r\n\r\n\tResource.getResourceByURL=function(url,index){\r\n\t\t(index===void 0)&& (index=0);\r\n\t\treturn Resource._urlResourcesMap[url][index];\r\n\t}\r\n\r\n\tResource.getResourceCountByURL=function(url){\r\n\t\treturn Resource._urlResourcesMap[url].length;\r\n\t}\r\n\r\n\tResource.destroyUnusedResources=function(group){\r\n\t\tvar res;\r\n\t\tif (group){\r\n\t\t\tvar resouList=Resource._groupResourcesMap[group];\r\n\t\t\tif (resouList){\r\n\t\t\t\tvar tempResouList=resouList.slice();\r\n\t\t\t\tfor (var i=0,n=tempResouList.length;i < n;i++){\r\n\t\t\t\t\tres=tempResouList[i];\r\n\t\t\t\t\tif (!res.lock && res._referenceCount===0)\r\n\t\t\t\t\t\tres.destroy();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tfor (var k in Resource._idResourcesMap){\r\n\t\t\t\tres=Resource._idResourcesMap[k];\r\n\t\t\t\tif (!res.lock && res._referenceCount===0)\r\n\t\t\t\t\tres.destroy();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tResource._uniqueIDCounter=0;\r\n\tResource._idResourcesMap={};\r\n\tResource._urlResourcesMap={};\r\n\tResource._groupResourcesMap={};\r\n\treturn Resource;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*<code>Texture</code> 是一个纹理处理类。\r\n*/\r\n//class laya.resource.Texture extends laya.events.EventDispatcher\r\nvar Texture=(function(_super){\r\n\tfunction Texture(bitmap,uv){\r\n\t\t/**图片或者canvas 。*/\r\n\t\t//this.bitmap=null;\r\n\t\t/**UV信息。*/\r\n\t\t//this.uv=null;\r\n\t\t/**沿 X 轴偏移量。*/\r\n\t\tthis.offsetX=0;\r\n\t\t/**沿 Y 轴偏移量。*/\r\n\t\tthis.offsetY=0;\r\n\t\t/**原始宽度（包括被裁剪的透明区域）。*/\r\n\t\tthis.sourceWidth=0;\r\n\t\t/**原始高度（包括被裁剪的透明区域）。*/\r\n\t\tthis.sourceHeight=0;\r\n\t\t/**@private */\r\n\t\t//this._loaded=false;\r\n\t\t/**@private */\r\n\t\tthis._w=0;\r\n\t\t/**@private */\r\n\t\tthis._h=0;\r\n\t\t/**@private 唯一ID*/\r\n\t\t//this.$_GID=NaN;\r\n\t\t/**图片地址*/\r\n\t\t//this.url=null;\r\n\t\t/**@private */\r\n\t\tthis._uvID=0;\r\n\t\tthis._atlasID=-1;\r\n\t\t/**@private */\r\n\t\tthis.scaleRate=1;\r\n\t\tTexture.__super.call(this);\r\n\t\tif (bitmap && bitmap._addReference!=null){\r\n\t\t\tbitmap._addReference();\r\n\t\t}\r\n\t\tthis.setTo(bitmap,uv);\r\n\t}\r\n\r\n\t__class(Texture,'laya.resource.Texture',_super);\r\n\tvar __proto=Texture.prototype;\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._setUrl=function(url){\r\n\t\tthis.url=url;\r\n\t}\r\n\r\n\t/**\r\n\t*设置此对象的位图资源、UV数据信息。\r\n\t*@param bitmap 位图资源\r\n\t*@param uv UV数据信息\r\n\t*/\r\n\t__proto.setTo=function(bitmap,uv){\r\n\t\tif (/*__JS__ */bitmap instanceof window.HTMLElement){\r\n\t\t\tvar canvas=HTMLCanvas.create(\"2D\",bitmap);\r\n\t\t\tthis.bitmap=canvas;\r\n\t\t\t}else{\r\n\t\t\tthis.bitmap=bitmap;\r\n\t\t}\r\n\t\tthis.uv=uv || Texture.DEF_UV;\r\n\t\tif (bitmap){\r\n\t\t\tthis._w=bitmap.width;\r\n\t\t\tthis._h=bitmap.height;\r\n\t\t\tthis.sourceWidth=this.sourceWidth || this._w;\r\n\t\t\tthis.sourceHeight=this.sourceHeight || this._h\r\n\t\t\tthis._loaded=this._w > 0;\r\n\t\t\tvar _this=this;\r\n\t\t\tif (this._loaded){\r\n\t\t\t\tRunDriver.addToAtlas && RunDriver.addToAtlas(_this);\r\n\t\t\t\t}else {\r\n\t\t\t\tvar bm=bitmap;\r\n\t\t\t\tif ((bm instanceof laya.resource.HTMLImage )&& bm.image)\r\n\t\t\t\t\tbm.image.addEventListener('load',function(e){\r\n\t\t\t\t\tRunDriver.addToAtlas && RunDriver.addToAtlas(_this);\r\n\t\t\t\t},false);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private 激活资源。*/\r\n\t__proto.active=function(){\r\n\t\tif (this.bitmap)this.bitmap.activeResource();\r\n\t}\r\n\r\n\t/**\r\n\t*销毁纹理（分直接销毁，跟计数销毁两种）。\r\n\t*@param forceDispose (default=false)true为强制销毁主纹理，false是通过计数销毁纹理。\r\n\t*/\r\n\t__proto.destroy=function(forceDispose){\r\n\t\t(forceDispose===void 0)&& (forceDispose=false);\r\n\t\tif (this.bitmap && (this.bitmap).referenceCount > 0){\r\n\t\t\tvar temp=this.bitmap;\r\n\t\t\tif (forceDispose){\r\n\t\t\t\tif (Render.isConchApp && temp.source && temp.source.conchDestroy){\r\n\t\t\t\t\tthis.bitmap.source.conchDestroy();\r\n\t\t\t\t}\r\n\t\t\t\tthis.bitmap=null;\r\n\t\t\t\ttemp.dispose();\r\n\t\t\t\t(temp)._clearReference();\r\n\t\t\t\t}else {\r\n\t\t\t\t(temp)._removeReference();\r\n\t\t\t\tif ((temp).referenceCount==0){\r\n\t\t\t\t\tif (Render.isConchApp && temp.source && temp.source.conchDestroy){\r\n\t\t\t\t\t\tthis.bitmap.source.conchDestroy();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.bitmap=null;\r\n\t\t\t\t\ttemp.dispose();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.url && this===Laya.loader.getRes(this.url))Laya.loader.clearRes(this.url,forceDispose);\r\n\t\t\tthis._loaded=false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*加载指定地址的图片。\r\n\t*@param url 图片地址。\r\n\t*/\r\n\t__proto.load=function(url){\r\n\t\tvar _$this=this;\r\n\t\tthis._loaded=false;\r\n\t\turl=URL.customFormat(url);\r\n\t\tvar fileBitmap=(this.bitmap || (this.bitmap=HTMLImage.create(url)));\r\n\t\tif (fileBitmap)fileBitmap._addReference();\r\n\t\tvar _this=this;\r\n\t\tfileBitmap.onload=function (){\r\n\t\t\tfileBitmap.onload=null;\r\n\t\t\t_this._loaded=true;\r\n\t\t\t_$this.sourceWidth=_$this._w=fileBitmap.width;\r\n\t\t\t_$this.sourceHeight=_$this._h=fileBitmap.height;\r\n\t\t\t_this.event(/*laya.events.Event.LOADED*/\"loaded\",this);\r\n\t\t\t(RunDriver.addToAtlas)&& (RunDriver.addToAtlas(_this));\r\n\t\t};\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.addTextureToAtlas=function(e){\r\n\t\tRunDriver.addTextureToAtlas(this);\r\n\t}\r\n\r\n\t/**\r\n\t*获取Texture上的某个区域的像素点\r\n\t*@param x\r\n\t*@param y\r\n\t*@param width\r\n\t*@param height\r\n\t*@return 返回像素点集合\r\n\t*/\r\n\t__proto.getPixels=function(x,y,width,height){\r\n\t\tif (Render.isConchApp){\r\n\t\t\tvar temp=this.bitmap;\r\n\t\t\tif (temp.source && temp.source.getImageData){\r\n\t\t\t\tvar arraybuffer=temp.source.getImageData(x,y,width,height);\r\n\t\t\t\tvar tUint8Array=new Uint8Array(arraybuffer);\r\n\t\t\t\treturn /*__JS__ */Array.from(tUint8Array);\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t\t}else if (Render.isWebGL){\r\n\t\t\treturn RunDriver.getTexturePixels(this,x,y,width,height);\r\n\t\t\t}else {\r\n\t\t\tBrowser.canvas.size(width,height);\r\n\t\t\tBrowser.canvas.clear();\r\n\t\t\tBrowser.context.drawTexture(this,-x,-y,this.width,this.height,0,0);\r\n\t\t\tvar info=Browser.context.getImageData(0,0,width,height);\r\n\t\t}\r\n\t\treturn info.data;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.onAsynLoaded=function(url,bitmap){\r\n\t\tif (bitmap)bitmap._addReference();\r\n\t\tthis.setTo(bitmap,this.uv);\r\n\t}\r\n\r\n\t/**激活并获取资源。*/\r\n\t__getset(0,__proto,'source',function(){\r\n\t\tif (!this.bitmap)return null;\r\n\t\tthis.bitmap.activeResource();\r\n\t\treturn this.bitmap.source;\r\n\t});\r\n\r\n\t/**\r\n\t*表示是否加载成功，只能表示初次载入成功（通常包含下载和载入）,并不能完全表示资源是否可立即使用（资源管理机制释放影响等）。\r\n\t*/\r\n\t__getset(0,__proto,'loaded',function(){\r\n\t\treturn this._loaded;\r\n\t});\r\n\r\n\t/**\r\n\t*表示资源是否已释放。\r\n\t*/\r\n\t__getset(0,__proto,'released',function(){\r\n\t\tif (!this.bitmap)return true;\r\n\t\treturn this.bitmap.released;\r\n\t});\r\n\r\n\t/**实际宽度。*/\r\n\t__getset(0,__proto,'width',function(){\r\n\t\tif (this._w)return this._w;\r\n\t\treturn (this.uv && this.uv!==Texture.DEF_UV)? (this.uv[2]-this.uv[0])*this.bitmap.width :this.bitmap.width;\r\n\t\t},function(value){\r\n\t\tthis._w=value;\r\n\t\tthis.sourceWidth || (this.sourceWidth=value);\r\n\t});\r\n\r\n\t/**\r\n\t*通过外部设置是否启用纹理平铺(后面要改成在着色器里计算)\r\n\t*/\r\n\t/**\r\n\t*获取当前纹理是否启用了纹理平铺\r\n\t*/\r\n\t__getset(0,__proto,'repeat',function(){\r\n\t\tif (Render.isWebGL && this.bitmap){\r\n\t\t\treturn this.bitmap.repeat;\r\n\t\t}\r\n\t\treturn true;\r\n\t\t},function(value){\r\n\t\tif (value){\r\n\t\t\tif (Render.isWebGL && this.bitmap){\r\n\t\t\t\tthis.bitmap.repeat=value;\r\n\t\t\t\tif (value){\r\n\t\t\t\t\tthis.bitmap.enableMerageInAtlas=false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**实际高度。*/\r\n\t__getset(0,__proto,'height',function(){\r\n\t\tif (this._h)return this._h;\r\n\t\treturn (this.uv && this.uv!==Texture.DEF_UV)? (this.uv[5]-this.uv[1])*this.bitmap.height :this.bitmap.height;\r\n\t\t},function(value){\r\n\t\tthis._h=value;\r\n\t\tthis.sourceHeight || (this.sourceHeight=value);\r\n\t});\r\n\r\n\t/**\r\n\t*设置线性采样的状态（目前只能第一次绘制前设置false生效,来关闭线性采样）。\r\n\t*/\r\n\t/**\r\n\t*获取当前纹理是否启用了线性采样。\r\n\t*/\r\n\t__getset(0,__proto,'isLinearSampling',function(){\r\n\t\treturn Render.isWebGL ? (this.bitmap.minFifter !=0x2600):true;\r\n\t\t},function(value){\r\n\t\tif (!value && Render.isWebGL){\r\n\t\t\tif (!value && (this.bitmap.minFifter==-1)&& (this.bitmap.magFifter==-1)){\r\n\t\t\t\tthis.bitmap.minFifter=0x2600;\r\n\t\t\t\tthis.bitmap.magFifter=0x2600;\r\n\t\t\t\tthis.bitmap.enableMerageInAtlas=false;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tTexture.moveUV=function(offsetX,offsetY,uv){\r\n\t\tfor (var i=0;i < 8;i+=2){\r\n\t\t\tuv[i]+=offsetX;\r\n\t\t\tuv[i+1]+=offsetY;\r\n\t\t}\r\n\t\treturn uv;\r\n\t}\r\n\r\n\tTexture.create=function(source,x,y,width,height,offsetX,offsetY,sourceWidth,sourceHeight){\r\n\t\t(offsetX===void 0)&& (offsetX=0);\r\n\t\t(offsetY===void 0)&& (offsetY=0);\r\n\t\t(sourceWidth===void 0)&& (sourceWidth=0);\r\n\t\t(sourceHeight===void 0)&& (sourceHeight=0);\r\n\t\tvar btex=(source instanceof laya.resource.Texture );\r\n\t\tvar uv=btex ? source.uv :Texture.DEF_UV;\r\n\t\tvar bitmap=btex ? source.bitmap :source;\r\n\t\tvar bIsAtlas=RunDriver.isAtlas(bitmap);\r\n\t\tif (bIsAtlas){\r\n\t\t\tvar atlaser=bitmap._atlaser;\r\n\t\t\tvar nAtlasID=(source)._atlasID;\r\n\t\t\tif (nAtlasID==-1){\r\n\t\t\t\tthrow new Error(\"create texture error\");\r\n\t\t\t}\r\n\t\t\tbitmap=atlaser._inAtlasTextureBitmapValue[nAtlasID];\r\n\t\t\tuv=atlaser._inAtlasTextureOriUVValue[nAtlasID];\r\n\t\t};\r\n\t\tvar tex=new Texture(bitmap,null);\r\n\t\tif (bitmap.width && (x+width)> bitmap.width)width=bitmap.width-x;\r\n\t\tif (bitmap.height && (y+height)> bitmap.height)height=bitmap.height-y;\r\n\t\ttex.width=width;\r\n\t\ttex.height=height;\r\n\t\ttex.offsetX=offsetX;\r\n\t\ttex.offsetY=offsetY;\r\n\t\ttex.sourceWidth=sourceWidth || width;\r\n\t\ttex.sourceHeight=sourceHeight || height;\r\n\t\tvar dwidth=1 / bitmap.width;\r\n\t\tvar dheight=1 / bitmap.height;\r\n\t\tx *=dwidth;\r\n\t\ty *=dheight;\r\n\t\twidth *=dwidth;\r\n\t\theight *=dheight;\r\n\t\tvar u1=tex.uv[0],v1=tex.uv[1],u2=tex.uv[4],v2=tex.uv[5];\r\n\t\tvar inAltasUVWidth=(u2-u1),inAltasUVHeight=(v2-v1);\r\n\t\tvar oriUV=Texture.moveUV(uv[0],uv[1],[x,y,x+width,y,x+width,y+height,x,y+height]);\r\n\t\ttex.uv=[u1+oriUV[0] *inAltasUVWidth,v1+oriUV[1] *inAltasUVHeight,u2-(1-oriUV[2])*inAltasUVWidth,v1+oriUV[3] *inAltasUVHeight,u2-(1-oriUV[4])*inAltasUVWidth,v2-(1-oriUV[5])*inAltasUVHeight,u1+oriUV[6] *inAltasUVWidth,v2-(1-oriUV[7])*inAltasUVHeight];\r\n\t\tif (bIsAtlas){\r\n\t\t\ttex.addTextureToAtlas();\r\n\t\t};\r\n\t\tvar bitmapScale=bitmap.scaleRate;\r\n\t\tif (bitmapScale && bitmapScale !=1){\r\n\t\t\ttex.sourceWidth /=bitmapScale;\r\n\t\t\ttex.sourceHeight /=bitmapScale;\r\n\t\t\ttex.width /=bitmapScale;\r\n\t\t\ttex.height /=bitmapScale;\r\n\t\t\ttex.scaleRate=bitmapScale;\r\n\t\t\ttex.offsetX /=bitmapScale;\r\n\t\t\ttex.offsetY /=bitmapScale;\r\n\t\t\t}else{\r\n\t\t\ttex.scaleRate=1;\r\n\t\t}\r\n\t\treturn tex;\r\n\t}\r\n\r\n\tTexture.createFromTexture=function(texture,x,y,width,height){\r\n\t\tvar texScaleRate=texture.scaleRate;\r\n\t\tif (texScaleRate !=1){\r\n\t\t\tx *=texScaleRate;\r\n\t\t\ty *=texScaleRate;\r\n\t\t\twidth *=texScaleRate;\r\n\t\t\theight *=texScaleRate;\r\n\t\t};\r\n\t\tvar rect=Rectangle.TEMP.setTo(x-texture.offsetX,y-texture.offsetY,width,height);\r\n\t\tvar result=rect.intersection(Texture._rect1.setTo(0,0,texture.width,texture.height),Texture._rect2);\r\n\t\tif (result)\r\n\t\t\tvar tex=Texture.create(texture,result.x,result.y,result.width,result.height,result.x-rect.x,result.y-rect.y,width,height);\r\n\t\telse return null;\r\n\t\ttex.bitmap._removeReference();\r\n\t\treturn tex;\r\n\t}\r\n\r\n\tTexture.DEF_UV=[0,0,1.0,0,1.0,1.0,0,1.0];\r\n\tTexture.INV_UV=[0,1,1.0,1,1.0,0.0,0,0.0];\r\n\tTexture._rect1=new Rectangle();\r\n\tTexture._rect2=new Rectangle();\r\n\treturn Texture;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*<code>TimeLine</code> 是一个用来创建时间轴动画的类。\r\n*/\r\n//class laya.utils.TimeLine extends laya.events.EventDispatcher\r\nvar TimeLine=(function(_super){\r\n\tvar tweenData;\r\n\tfunction TimeLine(){\r\n\t\tthis._labelDic=null;\r\n\t\tthis._tweenDic={};\r\n\t\tthis._tweenDataList=[];\r\n\t\tthis._endTweenDataList=null;\r\n\t\t//以结束时间进行排序\r\n\t\tthis._currTime=0;\r\n\t\tthis._lastTime=0;\r\n\t\tthis._startTime=0;\r\n\t\t/**当前动画数据播放到第几个了*/\r\n\t\tthis._index=0;\r\n\t\t/**为TWEEN创建属于自己的唯一标识，方便管理*/\r\n\t\tthis._gidIndex=0;\r\n\t\t/**保留所有对象第一次注册动画时的状态（根据时间跳转时，需要把对象的回复，再计算接下来的状态）*/\r\n\t\tthis._firstTweenDic={};\r\n\t\t/**是否需要排序*/\r\n\t\tthis._startTimeSort=false;\r\n\t\tthis._endTimeSort=false;\r\n\t\t/**是否循环*/\r\n\t\tthis._loopKey=false;\r\n\t\t/**缩放动画播放的速度。*/\r\n\t\tthis.scale=1;\r\n\t\tthis._frameRate=60;\r\n\t\tthis._frameIndex=0;\r\n\t\tthis._total=0;\r\n\t\tTimeLine.__super.call(this);\r\n\t}\r\n\r\n\t__class(TimeLine,'laya.utils.TimeLine',_super);\r\n\tvar __proto=TimeLine.prototype;\r\n\t/**\r\n\t*控制一个对象，从当前点移动到目标点。\r\n\t*@param target 要控制的对象。\r\n\t*@param props 要控制对象的属性。\r\n\t*@param duration 对象TWEEN的时间。\r\n\t*@param ease 缓动类型\r\n\t*@param offset 相对于上一个对象，偏移多长时间（单位：毫秒）。\r\n\t*/\r\n\t__proto.to=function(target,props,duration,ease,offset){\r\n\t\t(offset===void 0)&& (offset=0);\r\n\t\treturn this._create(target,props,duration,ease,offset,true);\r\n\t}\r\n\r\n\t/**\r\n\t*从 props 属性，缓动到当前状态。\r\n\t*@param target target 目标对象(即将更改属性值的对象)\r\n\t*@param props 要控制对象的属性\r\n\t*@param duration 对象TWEEN的时间\r\n\t*@param ease 缓动类型\r\n\t*@param offset 相对于上一个对象，偏移多长时间（单位：毫秒）\r\n\t*/\r\n\t__proto.from=function(target,props,duration,ease,offset){\r\n\t\t(offset===void 0)&& (offset=0);\r\n\t\treturn this._create(target,props,duration,ease,offset,false);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._create=function(target,props,duration,ease,offset,isTo){\r\n\t\tvar tTweenData=Pool.getItemByClass(\"tweenData\",tweenData);\r\n\t\ttTweenData.isTo=isTo;\r\n\t\ttTweenData.type=0;\r\n\t\ttTweenData.target=target;\r\n\t\ttTweenData.duration=duration;\r\n\t\ttTweenData.data=props;\r\n\t\ttTweenData.startTime=this._startTime+offset;\r\n\t\ttTweenData.endTime=tTweenData.startTime+tTweenData.duration;\r\n\t\ttTweenData.ease=ease;\r\n\t\tthis._startTime=Math.max(tTweenData.endTime,this._startTime);\r\n\t\tthis._tweenDataList.push(tTweenData);\r\n\t\tthis._startTimeSort=true;\r\n\t\tthis._endTimeSort=true;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*在时间队列中加入一个标签。\r\n\t*@param label 标签名称。\r\n\t*@param offset 标签相对于上个动画的偏移时间(单位：毫秒)。\r\n\t*/\r\n\t__proto.addLabel=function(label,offset){\r\n\t\tvar tTweenData=Pool.getItemByClass(\"tweenData\",tweenData);\r\n\t\ttTweenData.type=1;\r\n\t\ttTweenData.data=label;\r\n\t\ttTweenData.endTime=tTweenData.startTime=this._startTime+offset;\r\n\t\tthis._labelDic || (this._labelDic={});\r\n\t\tthis._labelDic[label]=tTweenData;\r\n\t\tthis._tweenDataList.push(tTweenData);\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*移除指定的标签\r\n\t*@param label\r\n\t*/\r\n\t__proto.removeLabel=function(label){\r\n\t\tif (this._labelDic && this._labelDic[label]){\r\n\t\t\tvar tTweenData=this._labelDic[label];\r\n\t\t\tif (tTweenData){\r\n\t\t\t\tvar tIndex=this._tweenDataList.indexOf(tTweenData);\r\n\t\t\t\tif (tIndex >-1){\r\n\t\t\t\t\tthis._tweenDataList.splice(tIndex,1);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tdelete this._labelDic[label];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*动画从整个动画的某一时间开始。\r\n\t*@param time(单位：毫秒)。\r\n\t*/\r\n\t__proto.gotoTime=function(time){\r\n\t\tif (this._tweenDataList==null || this._tweenDataList.length==0)return;\r\n\t\tvar tTween;\r\n\t\tvar tObject;\r\n\t\tfor (var p in this._firstTweenDic){\r\n\t\t\ttObject=this._firstTweenDic[p];\r\n\t\t\tif (tObject){\r\n\t\t\t\tfor (var tDataP in tObject){\r\n\t\t\t\t\tif (tObject.diyTarget.hasOwnProperty(tDataP)){\r\n\t\t\t\t\t\ttObject.diyTarget[tDataP]=tObject[tDataP];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (p in this._tweenDic){\r\n\t\t\ttTween=this._tweenDic[p];\r\n\t\t\ttTween.clear();\r\n\t\t\tdelete this._tweenDic[p];\r\n\t\t}\r\n\t\tthis._index=0;\r\n\t\tthis._gidIndex=0;\r\n\t\tthis._currTime=time;\r\n\t\tthis._lastTime=Browser.now();\r\n\t\tvar tTweenDataCopyList;\r\n\t\tif (this._endTweenDataList==null || this._endTimeSort){\r\n\t\t\tthis._endTimeSort=false;\r\n\t\t\tthis._endTweenDataList=tTweenDataCopyList=this._tweenDataList.concat();\r\n\t\t\tfunction Compare (paraA,paraB){\r\n\t\t\t\tif (paraA.endTime > paraB.endTime){\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t\t}else if (paraA.endTime < paraB.endTime){\r\n\t\t\t\t\treturn-1;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttTweenDataCopyList.sort(Compare);\r\n\t\t\t}else {\r\n\t\t\ttTweenDataCopyList=this._endTweenDataList\r\n\t\t};\r\n\t\tvar tTweenData;\r\n\t\tfor (var i=0,n=tTweenDataCopyList.length;i < n;i++){\r\n\t\t\ttTweenData=tTweenDataCopyList[i];\r\n\t\t\tif (tTweenData.type==0){\r\n\t\t\t\tif (time >=tTweenData.endTime){\r\n\t\t\t\t\tthis._index=Math.max(this._index,i+1);\r\n\t\t\t\t\tvar props=tTweenData.data;\r\n\t\t\t\t\tif (tTweenData.isTo){\r\n\t\t\t\t\t\tfor (var tP in props){\r\n\t\t\t\t\t\t\ttTweenData.target[tP]=props[tP];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (i=0,n=this._tweenDataList.length;i < n;i++){\r\n\t\t\ttTweenData=this._tweenDataList[i];\r\n\t\t\tif (tTweenData.type==0){\r\n\t\t\t\tif (time >=tTweenData.startTime && time < tTweenData.endTime){\r\n\t\t\t\t\tthis._index=Math.max(this._index,i+1);\r\n\t\t\t\t\tthis._gidIndex++;\r\n\t\t\t\t\ttTween=Pool.getItemByClass(\"tween\",Tween);\r\n\t\t\t\t\ttTween._create(tTweenData.target,tTweenData.data,tTweenData.duration,tTweenData.ease,Handler.create(this,this._animComplete,[this._gidIndex]),0,false,tTweenData.isTo,true,false);\r\n\t\t\t\t\ttTween.setStartTime(this._currTime-(time-tTweenData.startTime));\r\n\t\t\t\t\ttTween._updateEase(this._currTime);\r\n\t\t\t\t\ttTween.gid=this._gidIndex;\r\n\t\t\t\t\tthis._tweenDic[this._gidIndex]=tTween;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*从指定的标签开始播。\r\n\t*@param Label 标签名。\r\n\t*/\r\n\t__proto.gotoLabel=function(Label){\r\n\t\tif (this._labelDic==null)return;\r\n\t\tvar tLabelData=this._labelDic[Label];\r\n\t\tif (tLabelData)this.gotoTime(tLabelData.startTime);\r\n\t}\r\n\r\n\t/**\r\n\t*暂停整个动画。\r\n\t*/\r\n\t__proto.pause=function(){\r\n\t\tLaya.timer.clear(this,this._update);\r\n\t}\r\n\r\n\t/**\r\n\t*恢复暂停动画的播放。\r\n\t*/\r\n\t__proto.resume=function(){\r\n\t\tthis.play(this._currTime,this._loopKey);\r\n\t}\r\n\r\n\t/**\r\n\t*播放动画。\r\n\t*@param timeOrLabel 开启播放的时间点或标签名。\r\n\t*@param loop 是否循环播放。\r\n\t*/\r\n\t__proto.play=function(timeOrLabel,loop){\r\n\t\t(timeOrLabel===void 0)&& (timeOrLabel=0);\r\n\t\t(loop===void 0)&& (loop=false);\r\n\t\tif (!this._tweenDataList)return;\r\n\t\tif (this._startTimeSort){\r\n\t\t\tthis._startTimeSort=false;\r\n\t\t\tfunction Compare (paraA,paraB){\r\n\t\t\t\tif (paraA.startTime > paraB.startTime){\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t\t}else if (paraA.startTime < paraB.startTime){\r\n\t\t\t\t\treturn-1;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._tweenDataList.sort(Compare);\r\n\t\t\tfor (var i=0,n=this._tweenDataList.length;i < n;i++){\r\n\t\t\t\tvar tTweenData=this._tweenDataList[i];\r\n\t\t\t\tif (tTweenData !=null && tTweenData.type==0){\r\n\t\t\t\t\tvar tTarget=tTweenData.target;\r\n\t\t\t\t\tvar gid=(tTarget.$_GID || (tTarget.$_GID=Utils.getGID()));\r\n\t\t\t\t\tvar tSrcData=null;\r\n\t\t\t\t\tif (this._firstTweenDic[gid]==null){\r\n\t\t\t\t\t\ttSrcData={};\r\n\t\t\t\t\t\ttSrcData.diyTarget=tTarget;\r\n\t\t\t\t\t\tthis._firstTweenDic[gid]=tSrcData;\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\ttSrcData=this._firstTweenDic[gid];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (var p in tTweenData.data){\r\n\t\t\t\t\t\tif (tSrcData[p]==null){\r\n\t\t\t\t\t\t\ttSrcData[p]=tTarget[p];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif ((typeof timeOrLabel=='string')){\r\n\t\t\tthis.gotoLabel(timeOrLabel);\r\n\t\t\t}else {\r\n\t\t\tthis.gotoTime(timeOrLabel);\r\n\t\t}\r\n\t\tthis._loopKey=loop;\r\n\t\tthis._lastTime=Browser.now();\r\n\t\tLaya.timer.frameLoop(1,this,this._update);\r\n\t}\r\n\r\n\t/**\r\n\t*更新当前动画。\r\n\t*/\r\n\t__proto._update=function(){\r\n\t\tif (this._currTime >=this._startTime){\r\n\t\t\tif (this._loopKey){\r\n\t\t\t\tthis._complete();\r\n\t\t\t\tif (!this._tweenDataList)return;\r\n\t\t\t\tthis.gotoTime(0);\r\n\t\t\t\t}else {\r\n\t\t\t\tfor (var p in this._tweenDic){\r\n\t\t\t\t\ttTween=this._tweenDic[p];\r\n\t\t\t\t\ttTween.complete();\r\n\t\t\t\t}\r\n\t\t\t\tthis._complete();\r\n\t\t\t\tthis.pause();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar tNow=Browser.now();\r\n\t\tvar tFrameTime=tNow-this._lastTime;\r\n\t\tvar tCurrTime=this._currTime+=tFrameTime *this.scale;\r\n\t\tthis._lastTime=tNow;\r\n\t\tfor (p in this._tweenDic){\r\n\t\t\ttTween=this._tweenDic[p];\r\n\t\t\ttTween._updateEase(tCurrTime);\r\n\t\t};\r\n\t\tvar tTween;\r\n\t\tif (this._tweenDataList.length !=0 && this._index < this._tweenDataList.length){\r\n\t\t\tvar tTweenData=this._tweenDataList[this._index];\r\n\t\t\tif (tCurrTime >=tTweenData.startTime){\r\n\t\t\t\tthis._index++;\r\n\t\t\t\tif (tTweenData.type==0){\r\n\t\t\t\t\tthis._gidIndex++;\r\n\t\t\t\t\ttTween=Pool.getItemByClass(\"tween\",Tween);\r\n\t\t\t\t\ttTween._create(tTweenData.target,tTweenData.data,tTweenData.duration,tTweenData.ease,Handler.create(this,this._animComplete,[this._gidIndex]),0,false,tTweenData.isTo,true,false);\r\n\t\t\t\t\ttTween.setStartTime(tCurrTime);\r\n\t\t\t\t\ttTween.gid=this._gidIndex;\r\n\t\t\t\t\tthis._tweenDic[this._gidIndex]=tTween;\r\n\t\t\t\t\ttTween._updateEase(tCurrTime);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tthis.event(/*laya.events.Event.LABEL*/\"label\",tTweenData.data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*指定的动画索引处的动画播放完成后，把此动画从列表中删除。\r\n\t*@param index\r\n\t*/\r\n\t__proto._animComplete=function(index){\r\n\t\tvar tTween=this._tweenDic[index];\r\n\t\tif (tTween)delete this._tweenDic[index];\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._complete=function(){\r\n\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t}\r\n\r\n\t/**\r\n\t*重置所有对象，复用对象的时候使用。\r\n\t*/\r\n\t__proto.reset=function(){\r\n\t\tvar p;\r\n\t\tif (this._labelDic){\r\n\t\t\tfor (p in this._labelDic){\r\n\t\t\t\tdelete this._labelDic[p];\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar tTween;\r\n\t\tfor (p in this._tweenDic){\r\n\t\t\ttTween=this._tweenDic[p];\r\n\t\t\ttTween.clear();\r\n\t\t\tdelete this._tweenDic[p];\r\n\t\t}\r\n\t\tfor (p in this._firstTweenDic){\r\n\t\t\tdelete this._firstTweenDic[p];\r\n\t\t}\r\n\t\tthis._endTweenDataList=null;\r\n\t\tif (this._tweenDataList && this._tweenDataList.length){\r\n\t\t\tvar i=0,len=0;\r\n\t\t\tlen=this._tweenDataList.length;\r\n\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\tif(this._tweenDataList[i])\r\n\t\t\t\t\tthis._tweenDataList[i].destroy();\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._tweenDataList.length=0;\r\n\t\tthis._currTime=0;\r\n\t\tthis._lastTime=0;\r\n\t\tthis._startTime=0;\r\n\t\tthis._index=0;\r\n\t\tthis._gidIndex=0;\r\n\t\tthis.scale=1;\r\n\t\tLaya.timer.clear(this,this._update);\r\n\t}\r\n\r\n\t/**\r\n\t*彻底销毁此对象。\r\n\t*/\r\n\t__proto.destroy=function(){\r\n\t\tthis.reset();\r\n\t\tthis._labelDic=null;\r\n\t\tthis._tweenDic=null;\r\n\t\tthis._tweenDataList=null;\r\n\t\tthis._firstTweenDic=null;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*设置帧索引\r\n\t*/\r\n\t/**\r\n\t*@private\r\n\t*得到帧索引\r\n\t*/\r\n\t__getset(0,__proto,'index',function(){\r\n\t\treturn this._frameIndex;\r\n\t\t},function(value){\r\n\t\tthis._frameIndex=value;\r\n\t\tthis.gotoTime(this._frameIndex / this._frameRate *1000);\r\n\t});\r\n\r\n\t/**\r\n\t*得到总帧数。\r\n\t*/\r\n\t__getset(0,__proto,'total',function(){\r\n\t\tthis._total=Math.floor(this._startTime / 1000 *this._frameRate);\r\n\t\treturn this._total;\r\n\t});\r\n\r\n\tTimeLine.to=function(target,props,duration,ease,offset){\r\n\t\t(offset===void 0)&& (offset=0);\r\n\t\treturn (new TimeLine()).to(target,props,duration,ease,offset);\r\n\t}\r\n\r\n\tTimeLine.from=function(target,props,duration,ease,offset){\r\n\t\t(offset===void 0)&& (offset=0);\r\n\t\treturn (new TimeLine()).from(target,props,duration,ease,offset);\r\n\t}\r\n\r\n\tTimeLine.__init$=function(){\r\n\t\t//class tweenData\r\n\t\ttweenData=(function(){\r\n\t\t\tfunction tweenData(){\r\n\t\t\t\tthis.type=0;\r\n\t\t\t\t//0代表TWEEN,1代表标签\r\n\t\t\t\tthis.isTo=true;\r\n\t\t\t\tthis.startTime=NaN;\r\n\t\t\t\tthis.endTime=NaN;\r\n\t\t\t\tthis.target=null;\r\n\t\t\t\tthis.duration=NaN;\r\n\t\t\t\tthis.ease=null;\r\n\t\t\t\tthis.data=null;\r\n\t\t\t}\r\n\t\t\t__class(tweenData,'');\r\n\t\t\tvar __proto=tweenData.prototype;\r\n\t\t\t__proto.destroy=function(){\r\n\t\t\t\tthis.target=null;\r\n\t\t\t\tthis.ease=null;\r\n\t\t\t\tthis.data=null;\r\n\t\t\t\tthis.isTo=true;\r\n\t\t\t\tthis.type=0;\r\n\t\t\t\tPool.recover(\"tweenData\",this);\r\n\t\t\t}\r\n\t\t\treturn tweenData;\r\n\t\t})()\r\n\t}\r\n\r\n\treturn TimeLine;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*<p> <code>Sprite</code> 是基本的显示图形的显示列表节点。 <code>Sprite</code> 默认没有宽高，默认不接受鼠标事件。通过 <code>graphics</code> 可以绘制图片或者矢量图，支持旋转，缩放，位移等操作。<code>Sprite</code>同时也是容器类，可用来添加多个子节点。</p>\r\n*<p>注意： <code>Sprite</code> 默认没有宽高，可以通过<code>getBounds</code>函数获取；也可手动设置宽高；还可以设置<code>autoSize=true</code>，然后再获取宽高。<code>Sprite</code>的宽高一般用于进行碰撞检测和排版，并不影响显示图像大小，如果需要更改显示图像大小，请使用 <code>scaleX</code> ， <code>scaleY</code> ， <code>scale</code>。</p>\r\n*<p> <code>Sprite</code> 默认不接受鼠标事件，即<code>mouseEnabled=false</code>，但是只要对其监听任意鼠标事件，会自动打开自己以及所有父对象的<code>mouseEnabled=true</code>。所以一般也无需手动设置<code>mouseEnabled</code>。</p>\r\n*<p>LayaAir引擎API设计精简巧妙。核心显示类只有一个<code>Sprite</code>。<code>Sprite</code>针对不同的情况做了渲染优化，所以保证一个类实现丰富功能的同时，又达到高性能。</p>\r\n*\r\n*@example <caption>创建了一个 <code>Sprite</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.display.Sprite;\r\n\t*import laya.events.Event;\r\n\t*\r\n\t*public class Sprite_Example\r\n\t*{\r\n\t\t*private var sprite:Sprite;\r\n\t\t*private var shape:Sprite\r\n\t\t*public function Sprite_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*onInit();\r\n\t\t\t*}\r\n\t\t*private function onInit():void\r\n\t\t*{\r\n\t\t\t*sprite=new Sprite();//创建一个 Sprite 类的实例对象 sprite 。\r\n\t\t\t*sprite.loadImage(\"resource/ui/bg.png\");//加载并显示图片。\r\n\t\t\t*sprite.x=200;//设置 sprite 对象相对于父容器的水平方向坐标值。\r\n\t\t\t*sprite.y=200;//设置 sprite 对象相对于父容器的垂直方向坐标值。\r\n\t\t\t*sprite.pivotX=0;//设置 sprite 对象的水平方法轴心点坐标。\r\n\t\t\t*sprite.pivotY=0;//设置 sprite 对象的垂直方法轴心点坐标。\r\n\t\t\t*Laya.stage.addChild(sprite);//将此 sprite 对象添加到显示列表。\r\n\t\t\t*sprite.on(Event.CLICK,this,onClickSprite);//给 sprite 对象添加点击事件侦听。\r\n\t\t\t*shape=new Sprite();//创建一个 Sprite 类的实例对象 sprite 。\r\n\t\t\t*shape.graphics.drawRect(0,0,100,100,\"#ccff00\",\"#ff0000\",2);//绘制一个有边框的填充矩形。\r\n\t\t\t*shape.x=400;//设置 shape 对象相对于父容器的水平方向坐标值。\r\n\t\t\t*shape.y=200;//设置 shape 对象相对于父容器的垂直方向坐标值。\r\n\t\t\t*shape.width=100;//设置 shape 对象的宽度。\r\n\t\t\t*shape.height=100;//设置 shape 对象的高度。\r\n\t\t\t*shape.pivotX=50;//设置 shape 对象的水平方法轴心点坐标。\r\n\t\t\t*shape.pivotY=50;//设置 shape 对象的垂直方法轴心点坐标。\r\n\t\t\t*Laya.stage.addChild(shape);//将此 shape 对象添加到显示列表。\r\n\t\t\t*shape.on(Event.CLICK,this,onClickShape);//给 shape 对象添加点击事件侦听。\r\n\t\t\t*}\r\n\t\t*private function onClickSprite():void\r\n\t\t*{\r\n\t\t\t*trace(\"点击 sprite 对象。\");\r\n\t\t\t*sprite.rotation+=5;//旋转 sprite 对象。\r\n\t\t\t*}\r\n\t\t*private function onClickShape():void\r\n\t\t*{\r\n\t\t\t*trace(\"点击 shape 对象。\");\r\n\t\t\t*shape.rotation+=5;//旋转 shape 对象。\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*\r\n*@example\r\n*var sprite;\r\n*var shape;\r\n*Sprite_Example();\r\n*function Sprite_Example()\r\n*{\r\n\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t*onInit();\r\n\t*}\r\n*function onInit()\r\n*{\r\n\t*sprite=new laya.display.Sprite();//创建一个 Sprite 类的实例对象 sprite 。\r\n\t*sprite.loadImage(\"resource/ui/bg.png\");//加载并显示图片。\r\n\t*sprite.x=200;//设置 sprite 对象相对于父容器的水平方向坐标值。\r\n\t*sprite.y=200;//设置 sprite 对象相对于父容器的垂直方向坐标值。\r\n\t*sprite.pivotX=0;//设置 sprite 对象的水平方法轴心点坐标。\r\n\t*sprite.pivotY=0;//设置 sprite 对象的垂直方法轴心点坐标。\r\n\t*Laya.stage.addChild(sprite);//将此 sprite 对象添加到显示列表。\r\n\t*sprite.on(Event.CLICK,this,onClickSprite);//给 sprite 对象添加点击事件侦听。\r\n\t*shape=new laya.display.Sprite();//创建一个 Sprite 类的实例对象 sprite 。\r\n\t*shape.graphics.drawRect(0,0,100,100,\"#ccff00\",\"#ff0000\",2);//绘制一个有边框的填充矩形。\r\n\t*shape.x=400;//设置 shape 对象相对于父容器的水平方向坐标值。\r\n\t*shape.y=200;//设置 shape 对象相对于父容器的垂直方向坐标值。\r\n\t*shape.width=100;//设置 shape 对象的宽度。\r\n\t*shape.height=100;//设置 shape 对象的高度。\r\n\t*shape.pivotX=50;//设置 shape 对象的水平方法轴心点坐标。\r\n\t*shape.pivotY=50;//设置 shape 对象的垂直方法轴心点坐标。\r\n\t*Laya.stage.addChild(shape);//将此 shape 对象添加到显示列表。\r\n\t*shape.on(laya.events.Event.CLICK,this,onClickShape);//给 shape 对象添加点击事件侦听。\r\n\t*}\r\n*function onClickSprite()\r\n*{\r\n\t*console.log(\"点击 sprite 对象。\");\r\n\t*sprite.rotation+=5;//旋转 sprite 对象。\r\n\t*}\r\n*function onClickShape()\r\n*{\r\n\t*console.log(\"点击 shape 对象。\");\r\n\t*shape.rotation+=5;//旋转 shape 对象。\r\n\t*}\r\n*\r\n*@example\r\n*import Sprite=laya.display.Sprite;\r\n*class Sprite_Example {\r\n\t*private sprite:Sprite;\r\n\t*private shape:Sprite\r\n\t*public Sprite_Example(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*this.onInit();\r\n\t\t*}\r\n\t*private onInit():void {\r\n\t\t*this.sprite=new Sprite();//创建一个 Sprite 类的实例对象 sprite 。\r\n\t\t*this.sprite.loadImage(\"resource/ui/bg.png\");//加载并显示图片。\r\n\t\t*this.sprite.x=200;//设置 sprite 对象相对于父容器的水平方向坐标值。\r\n\t\t*this.sprite.y=200;//设置 sprite 对象相对于父容器的垂直方向坐标值。\r\n\t\t*this.sprite.pivotX=0;//设置 sprite 对象的水平方法轴心点坐标。\r\n\t\t*this.sprite.pivotY=0;//设置 sprite 对象的垂直方法轴心点坐标。\r\n\t\t*Laya.stage.addChild(this.sprite);//将此 sprite 对象添加到显示列表。\r\n\t\t*this.sprite.on(laya.events.Event.CLICK,this,this.onClickSprite);//给 sprite 对象添加点击事件侦听。\r\n\t\t*this.shape=new Sprite();//创建一个 Sprite 类的实例对象 sprite 。\r\n\t\t*this.shape.graphics.drawRect(0,0,100,100,\"#ccff00\",\"#ff0000\",2);//绘制一个有边框的填充矩形。\r\n\t\t*this.shape.x=400;//设置 shape 对象相对于父容器的水平方向坐标值。\r\n\t\t*this.shape.y=200;//设置 shape 对象相对于父容器的垂直方向坐标值。\r\n\t\t*this.shape.width=100;//设置 shape 对象的宽度。\r\n\t\t*this.shape.height=100;//设置 shape 对象的高度。\r\n\t\t*this.shape.pivotX=50;//设置 shape 对象的水平方法轴心点坐标。\r\n\t\t*this.shape.pivotY=50;//设置 shape 对象的垂直方法轴心点坐标。\r\n\t\t*Laya.stage.addChild(this.shape);//将此 shape 对象添加到显示列表。\r\n\t\t*this.shape.on(laya.events.Event.CLICK,this,this.onClickShape);//给 shape 对象添加点击事件侦听。\r\n\t\t*}\r\n\t*private onClickSprite():void {\r\n\t\t*console.log(\"点击 sprite 对象。\");\r\n\t\t*this.sprite.rotation+=5;//旋转 sprite 对象。\r\n\t\t*}\r\n\t*private onClickShape():void {\r\n\t\t*console.log(\"点击 shape 对象。\");\r\n\t\t*this.shape.rotation+=5;//旋转 shape 对象。\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.display.Sprite extends laya.display.Node\r\nvar Sprite=(function(_super){\r\n\tfunction Sprite(){\r\n\t\t/**@private 矩阵变换信息。*/\r\n\t\tthis._transform=null;\r\n\t\t/**@private */\r\n\t\tthis._tfChanged=false;\r\n\t\t/**@private */\r\n\t\tthis._x=0;\r\n\t\t/**@private */\r\n\t\tthis._y=0;\r\n\t\t/**@private */\r\n\t\tthis._width=0;\r\n\t\t/**@private */\r\n\t\tthis._height=0;\r\n\t\t/**@private */\r\n\t\tthis._repaint=1;\r\n\t\t/**@private 鼠标状态，0:auto,1:mouseEnabled=false,2:mouseEnabled=true。*/\r\n\t\tthis._mouseEnableState=0;\r\n\t\t/**@private Z排序，数值越大越靠前。*/\r\n\t\tthis._zOrder=0;\r\n\t\t/**@private */\r\n\t\tthis._graphics=null;\r\n\t\t/**@private */\r\n\t\tthis._renderType=0;\r\n\t\t/**@private */\r\n\t\tthis._optimizeScrollRect=false;\r\n\t\t/**@private */\r\n\t\tthis._texture=null;\r\n\t\t/**\r\n\t\t*<p>鼠标事件与此对象的碰撞检测是否可穿透。碰撞检测发生在鼠标事件的捕获阶段，此阶段引擎会从stage开始递归检测stage及其子对象，直到找到命中的目标对象或者未命中任何对象。</p>\r\n\t\t*<p>穿透表示鼠标事件发生的位置处于本对象绘图区域内时，才算命中，而与对象宽高和值为Rectangle对象的hitArea属性无关。如果sprite.hitArea值是HitArea对象，表示显式声明了此对象的鼠标事件响应区域，而忽略对象的宽高、mouseThrough属性。</p>\r\n\t\t*<p>影响对象鼠标事件响应区域的属性为：width、height、hitArea，优先级顺序为：hitArea(type:HitArea)>hitArea(type:Rectangle)>width/height。</p>\r\n\t\t*@default false 不可穿透，此对象的鼠标响应区域由width、height、hitArea属性决定。</p>\r\n\t\t*/\r\n\t\tthis.mouseThrough=false;\r\n\t\t/**\r\n\t\t*<p>指定是否自动计算宽高数据。默认值为 false 。</p>\r\n\t\t*<p>Sprite宽高默认为0，并且不会随着绘制内容的变化而变化，如果想根据绘制内容获取宽高，可以设置本属性为true，或者通过getBounds方法获取。设置为true，对性能有一定影响。</p>\r\n\t\t*/\r\n\t\tthis.autoSize=false;\r\n\t\t/**\r\n\t\t*<p>指定鼠标事件检测是优先检测自身，还是优先检测其子对象。鼠标事件检测发生在鼠标事件的捕获阶段，此阶段引擎会从stage开始递归检测stage及其子对象，直到找到命中的目标对象或者未命中任何对象。</p>\r\n\t\t*<p>如果为false，优先检测子对象，当有子对象被命中时，中断检测，获得命中目标。如果未命中任何子对象，最后再检测此对象；如果为true，则优先检测本对象，如果本对象没有被命中，直接中断检测，表示没有命中目标；如果本对象被命中，则进一步递归检测其子对象，以确认最终的命中目标。</p>\r\n\t\t*<p>合理使用本属性，能减少鼠标事件检测的节点，提高性能。可以设置为true的情况：开发者并不关心此节点的子节点的鼠标事件检测结果，也就是以此节点作为其子节点的鼠标事件检测依据。</p>\r\n\t\t*<p>Stage对象和UI的View组件默认为true。</p>\r\n\t\t*@default false 优先检测此对象的子对象，当递归检测完所有子对象后，仍然没有找到目标对象，最后再检测此对象。\r\n\t\t*/\r\n\t\tthis.hitTestPrior=false;\r\n\t\t/**\r\n\t\t*<p>视口大小，视口外的子对象，将不被渲染(如果想实现裁剪效果，请使用srollRect)，合理使用能提高渲染性能。比如由一个个小图片拼成的地图块，viewport外面的小图片将不渲染</p>\r\n\t\t*<p>srollRect和viewport的区别：<br/>\r\n\t\t*1. srollRect自带裁剪效果，viewport只影响子对象渲染是否渲染，不具有裁剪效果（性能更高）。<br/>\r\n\t\t*2. 设置rect的x,y属性均能实现区域滚动效果，但scrollRect会保持0,0点位置不变。</p>\r\n\t\t*@default null\r\n\t\t*/\r\n\t\tthis.viewport=null;\r\n\t\tSprite.__super.call(this);\r\n\t\tthis._style=Style.EMPTY;\r\n\t}\r\n\r\n\t__class(Sprite,'laya.display.Sprite',_super);\r\n\tvar __proto=Sprite.prototype;\r\n\tLaya.imps(__proto,{\"laya.display.ILayout\":true})\r\n\t/**@private */\r\n\t__proto.createConchModel=function(){\r\n\t\treturn /*__JS__ */new ConchNode();\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tthis._releaseMem();\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._style && this._style.destroy();\r\n\t\tthis._transform && this._transform.destroy();\r\n\t\tthis._transform=null;\r\n\t\tthis._style=null;\r\n\t\tthis._graphics=null;\r\n\t}\r\n\r\n\t/**根据zOrder进行重新排序。*/\r\n\t__proto.updateZOrder=function(){\r\n\t\tUtils.updateOrder(this._childs)&& this.repaint();\r\n\t}\r\n\r\n\t/**在设置cacheAs的情况下，调用此方法会重新刷新缓存。*/\r\n\t__proto.reCache=function(){\r\n\t\tif (this._$P.cacheCanvas)this._$P.cacheCanvas.reCache=true;\r\n\t\tthis._repaint=1;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>设置对象在自身坐标系下的边界范围。与 <code>getSelfBounds</code> 对应。当 autoSize==true 时，会影响对象宽高。设置后，当需要获取自身边界范围时，就不再需要计算，合理使用能提高性能。比如 <code>getBounds</code> 会优先使用 <code>setBounds</code> 指定的值，如果没有指定则进行计算，此计算会对性能消耗比较大。</p>\r\n\t*<p><b>注意：</b> <code>setBounds</code> 与 <code>getBounds</code> 并非对应相等关系， <code>getBounds</code> 获取的是本对象在父容器坐标系下的边界范围，通过设置 <code>setBounds</code> 会影响 <code>getBounds</code> 的结果。</p>\r\n\t*@param bound bounds矩形区域\r\n\t*/\r\n\t__proto.setBounds=function(bound){\r\n\t\tthis._set$P(\"uBounds\",bound);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>获取本对象在父容器坐标系的矩形显示区域。</p>\r\n\t*<p><b>注意：</b> 1.计算量较大，尽量少用，如果需要频繁使用，可以通过手动设置 <code>setBounds</code> 来缓存自身边界信息，从而避免比较消耗性能的计算。2. <code>setBounds</code> 与 <code>getBounds</code> 并非对应相等关系， <code>getBounds</code> 获取的是本对象在父容器坐标系下的边界范围，通过设置 <code>setBounds</code> 会影响 <code>getBounds</code> 的结果。</p>\r\n\t*@return 矩形区域。\r\n\t*/\r\n\t__proto.getBounds=function(){\r\n\t\tif (!this._$P.mBounds)this._set$P(\"mBounds\",new Rectangle());\r\n\t\treturn Rectangle._getWrapRec(this._boundPointsToParent(),this._$P.mBounds);\r\n\t}\r\n\r\n\t/**\r\n\t*获取对象在自身坐标系的边界范围。与 <code>setBounds</code> 对应。\r\n\t*<p><b>注意：</b>计算量较大，尽量少用，如果需要频繁使用，可以提前手动设置 <code>setBounds</code> 来缓存自身边界信息，从而避免比较消耗性能的计算。</p>\r\n\t*@return 矩形区域。\r\n\t*/\r\n\t__proto.getSelfBounds=function(){\r\n\t\tif (this._$P.uBounds)return this._$P.uBounds;\r\n\t\tif (!this._$P.mBounds)this._set$P(\"mBounds\",new Rectangle());\r\n\t\treturn Rectangle._getWrapRec(this._getBoundPointsM(false),this._$P.mBounds);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取本对象在父容器坐标系的显示区域多边形顶点列表。\r\n\t*当显示对象链中有旋转时，返回多边形顶点列表，无旋转时返回矩形的四个顶点。\r\n\t*@param ifRotate （可选）之前的对象链中是否有旋转。\r\n\t*@return 顶点列表。结构：[x1,y1,x2,y2,x3,y3,...]。\r\n\t*/\r\n\t__proto._boundPointsToParent=function(ifRotate){\r\n\t\t(ifRotate===void 0)&& (ifRotate=false);\r\n\t\tvar pX=0,pY=0;\r\n\t\tif (this._style){\r\n\t\t\tpX=this._style._tf.translateX;\r\n\t\t\tpY=this._style._tf.translateY;\r\n\t\t\tifRotate=ifRotate || (this._style._tf.rotate!==0);\r\n\t\t\tif (this._style.scrollRect){\r\n\t\t\t\tpX+=this._style.scrollRect.x;\r\n\t\t\t\tpY+=this._style.scrollRect.y;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar pList=this._getBoundPointsM(ifRotate);\r\n\t\tif (!pList || pList.length < 1)return pList;\r\n\t\tif (pList.length !=8){\r\n\t\t\tpList=ifRotate ? GrahamScan.scanPList(pList):Rectangle._getWrapRec(pList,Rectangle.TEMP)._getBoundPoints();\r\n\t\t}\r\n\t\tif (!this.transform){\r\n\t\t\tUtils.transPointList(pList,this._x-pX,this._y-pY);\r\n\t\t\treturn pList;\r\n\t\t};\r\n\t\tvar tPoint=Point.TEMP;\r\n\t\tvar i=0,len=pList.length;\r\n\t\tfor (i=0;i < len;i+=2){\r\n\t\t\ttPoint.x=pList[i];\r\n\t\t\ttPoint.y=pList[i+1];\r\n\t\t\tthis.toParentPoint(tPoint);\r\n\t\t\tpList[i]=tPoint.x;\r\n\t\t\tpList[i+1]=tPoint.y;\r\n\t\t}\r\n\t\treturn pList;\r\n\t}\r\n\r\n\t/**\r\n\t*返回此实例中的绘图对象（ <code>Graphics</code> ）的显示区域，不包括子对象。\r\n\t*@param realSize （可选）使用图片的真实大小，默认为false\r\n\t*@return 一个 Rectangle 对象，表示获取到的显示区域。\r\n\t*/\r\n\t__proto.getGraphicBounds=function(realSize){\r\n\t\t(realSize===void 0)&& (realSize=false);\r\n\t\tif (!this._graphics)return Rectangle.TEMP.setTo(0,0,0,0);\r\n\t\treturn this._graphics.getBounds(realSize);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取自己坐标系的显示区域多边形顶点列表\r\n\t*@param ifRotate （可选）当前的显示对象链是否由旋转\r\n\t*@return 顶点列表。结构：[x1,y1,x2,y2,x3,y3,...]。\r\n\t*/\r\n\t__proto._getBoundPointsM=function(ifRotate){\r\n\t\t(ifRotate===void 0)&& (ifRotate=false);\r\n\t\tif (this._$P.uBounds)return this._$P.uBounds._getBoundPoints();\r\n\t\tif (!this._$P.temBM)this._set$P(\"temBM\",[]);\r\n\t\tif (this.scrollRect){\r\n\t\t\tvar rst=Utils.clearArray(this._$P.temBM);\r\n\t\t\tvar rec=Rectangle.TEMP;\r\n\t\t\trec.copyFrom(this.scrollRect);\r\n\t\t\tUtils.concatArray(rst,rec._getBoundPoints());\r\n\t\t\treturn rst;\r\n\t\t};\r\n\t\tvar pList=this._graphics ? this._graphics.getBoundPoints():Utils.clearArray(this._$P.temBM);\r\n\t\tvar child;\r\n\t\tvar cList;\r\n\t\tvar __childs;\r\n\t\t__childs=this._childs;\r\n\t\tfor (var i=0,n=__childs.length;i < n;i++){\r\n\t\t\tchild=__childs [i];\r\n\t\t\tif ((child instanceof laya.display.Sprite )&& child.visible==true){\r\n\t\t\t\tcList=child._boundPointsToParent(ifRotate);\r\n\t\t\t\tif (cList)\r\n\t\t\t\t\tpList=pList ? Utils.concatArray(pList,cList):cList;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn pList;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取样式。\r\n\t*@return 样式 Style 。\r\n\t*/\r\n\t__proto.getStyle=function(){\r\n\t\tthis._style===Style.EMPTY && (this._style=new Style());\r\n\t\treturn this._style;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*设置样式。\r\n\t*@param value 样式。\r\n\t*/\r\n\t__proto.setStyle=function(value){\r\n\t\tthis._style=value;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._adjustTransform=function(){\r\n\t\tthis._tfChanged=false;\r\n\t\tvar style=this._style;\r\n\t\tvar tf=style._tf;\r\n\t\tvar sx=tf.scaleX,sy=tf.scaleY;\r\n\t\tvar m;\r\n\t\tif (tf.rotate || sx!==1 || sy!==1 || tf.skewX || tf.skewY){\r\n\t\t\tm=this._transform || (this._transform=Matrix.create());\r\n\t\t\tm.bTransform=true;\r\n\t\t\tvar skx=(tf.rotate-tf.skewX)*0.0174532922222222;\r\n\t\t\tvar sky=(tf.rotate+tf.skewY)*0.0174532922222222;\r\n\t\t\tvar cx=Math.cos(sky);\r\n\t\t\tvar ssx=Math.sin(sky);\r\n\t\t\tvar cy=Math.sin(skx);\r\n\t\t\tvar ssy=Math.cos(skx);\r\n\t\t\tm.a=sx *cx;\r\n\t\t\tm.b=sx *ssx;\r\n\t\t\tm.c=-sy *cy;\r\n\t\t\tm.d=sy *ssy;\r\n\t\t\tm.tx=m.ty=0;\r\n\t\t\treturn m;\r\n\t\t\t}else {\r\n\t\t\tthis._transform && this._transform.destroy();\r\n\t\t\tthis._transform=null;\r\n\t\t\tthis._renderType &=~ /*laya.renders.RenderSprite.TRANSFORM*/0x04;\r\n\t\t}\r\n\t\treturn m;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>设置坐标位置。相当于分别设置x和y属性。</p>\r\n\t*<p>因为返回值为Sprite对象本身，所以可以使用如下语法：spr.pos(...).scale(...);</p>\r\n\t*@param x X轴坐标。\r\n\t*@param y Y轴坐标。\r\n\t*@param speedMode （可选）是否极速模式，正常是调用this.x=value进行赋值，极速模式直接调用内部函数处理，如果未重写x,y属性，建议设置为急速模式性能更高。\r\n\t*@return 返回对象本身。\r\n\t*/\r\n\t__proto.pos=function(x,y,speedMode){\r\n\t\t(speedMode===void 0)&& (speedMode=false);\r\n\t\tif (this._x!==x || this._y!==y){\r\n\t\t\tif (this.destroyed)return this;\r\n\t\t\tif (speedMode){\r\n\t\t\t\tthis._x=x;\r\n\t\t\t\tthis._y=y;\r\n\t\t\t\tthis.conchModel && this.conchModel.pos(this._x,this._y);\r\n\t\t\t\tvar p=this._parent;\r\n\t\t\t\tif (p && p._repaint===0){\r\n\t\t\t\t\tp._repaint=1;\r\n\t\t\t\t\tp.parentRepaint();\r\n\t\t\t\t}\r\n\t\t\t\tif (this._$P.maskParent && this._$P.maskParent._repaint===0){\r\n\t\t\t\t\tthis._$P.maskParent._repaint=1;\r\n\t\t\t\t\tthis._$P.maskParent.parentRepaint();\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tthis.x=x;\r\n\t\t\t\tthis.y=y;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>设置轴心点。相当于分别设置pivotX和pivotY属性。</p>\r\n\t*<p>因为返回值为Sprite对象本身，所以可以使用如下语法：spr.pivot(...).pos(...);</p>\r\n\t*@param x X轴心点。\r\n\t*@param y Y轴心点。\r\n\t*@return 返回对象本身。\r\n\t*/\r\n\t__proto.pivot=function(x,y){\r\n\t\tthis.pivotX=x;\r\n\t\tthis.pivotY=y;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>设置宽高。相当于分别设置width和height属性。</p>\r\n\t*<p>因为返回值为Sprite对象本身，所以可以使用如下语法：spr.size(...).pos(...);</p>\r\n\t*@param width 宽度值。\r\n\t*@param hegiht 高度值。\r\n\t*@return 返回对象本身。\r\n\t*/\r\n\t__proto.size=function(width,height){\r\n\t\tthis.width=width;\r\n\t\tthis.height=height;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>设置缩放。相当于分别设置scaleX和scaleY属性。</p>\r\n\t*<p>因为返回值为Sprite对象本身，所以可以使用如下语法：spr.scale(...).pos(...);</p>\r\n\t*@param scaleX X轴缩放比例。\r\n\t*@param scaleY Y轴缩放比例。\r\n\t*@param speedMode （可选）是否极速模式，正常是调用this.scaleX=value进行赋值，极速模式直接调用内部函数处理，如果未重写scaleX,scaleY属性，建议设置为急速模式性能更高。\r\n\t*@return 返回对象本身。\r\n\t*/\r\n\t__proto.scale=function(scaleX,scaleY,speedMode){\r\n\t\t(speedMode===void 0)&& (speedMode=false);\r\n\t\tvar style=this.getStyle();\r\n\t\tvar _tf=style._tf;\r\n\t\tif (_tf.scaleX !=scaleX || _tf.scaleY !=scaleY){\r\n\t\t\tif (this.destroyed)return this;\r\n\t\t\tif (speedMode){\r\n\t\t\t\tstyle.setScale(scaleX,scaleY);\r\n\t\t\t\tthis._tfChanged=true;\r\n\t\t\t\tthis.conchModel && this.conchModel.scale(scaleX,scaleY);\r\n\t\t\t\tthis._renderType |=/*laya.renders.RenderSprite.TRANSFORM*/0x04;\r\n\t\t\t\tvar p=this._parent;\r\n\t\t\t\tif (p && p._repaint===0){\r\n\t\t\t\t\tp._repaint=1;\r\n\t\t\t\t\tp.parentRepaint();\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tthis.scaleX=scaleX;\r\n\t\t\t\tthis.scaleY=scaleY;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>设置倾斜角度。相当于分别设置skewX和skewY属性。</p>\r\n\t*<p>因为返回值为Sprite对象本身，所以可以使用如下语法：spr.skew(...).pos(...);</p>\r\n\t*@param skewX 水平倾斜角度。\r\n\t*@param skewY 垂直倾斜角度。\r\n\t*@return 返回对象本身\r\n\t*/\r\n\t__proto.skew=function(skewX,skewY){\r\n\t\tthis.skewX=skewX;\r\n\t\tthis.skewY=skewY;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*更新、呈现显示对象。由系统调用。\r\n\t*@param context 渲染的上下文引用。\r\n\t*@param x X轴坐标。\r\n\t*@param y Y轴坐标。\r\n\t*/\r\n\t__proto.render=function(context,x,y){\r\n\t\tStat.spriteCount++;\r\n\t\tRenderSprite.renders[this._renderType]._fun(this,context,x+this._x,y+this._y);\r\n\t\tthis._repaint=0;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>绘制 当前<code>Sprite</code> 到 <code>Canvas</code> 上，并返回一个HtmlCanvas。</p>\r\n\t*<p>绘制的结果可以当作图片源，再次绘制到其他Sprite里面，示例：</p>\r\n\t*\r\n\t*var htmlCanvas:HTMLCanvas=sprite.drawToCanvas(100,100,0,0);//把精灵绘制到canvas上面\r\n\t*var texture:Texture=new Texture(htmlCanvas);//使用htmlCanvas创建Texture\r\n\t*var sp:Sprite=new Sprite().pos(0,200);//创建精灵并把它放倒200位置\r\n\t*sp.graphics.drawTexture(texture);//把截图绘制到精灵上\r\n\t*Laya.stage.addChild(sp);//把精灵显示到舞台\r\n\t*\r\n\t*<p>也可以获取原始图片数据，分享到网上，从而实现截图效果，示例：</p>\r\n\t*\r\n\t*var htmlCanvas:HTMLCanvas=sprite.drawToCanvas(100,100,0,0);//把精灵绘制到canvas上面\r\n\t*\r\n\t*htmlCanvas.toBase64(\"image/png\",0.92,function(base64){//webgl和canvas模式下为同步方法，加速器下是异步方法\r\n\t\t*trace(base64);//打印图片base64信息，可以发给服务器或者保存为图片\r\n\t\t*});\r\n\t*\r\n\t*@param canvasWidth 画布宽度。\r\n\t*@param canvasHeight 画布高度。\r\n\t*@param x 绘制的 X 轴偏移量。\r\n\t*@param y 绘制的 Y 轴偏移量。\r\n\t*@return HTMLCanvas 对象。\r\n\t*/\r\n\t__proto.drawToCanvas=function(canvasWidth,canvasHeight,offsetX,offsetY){\r\n\t\tif (Render.isConchNode){\r\n\t\t\tvar canvas=HTMLCanvas.create(\"2D\");\r\n\t\t\tvar context=new RenderContext(canvasWidth,canvasHeight,canvas);\r\n\t\t\tcontext.ctx.setCanvasType(1);\r\n\t\t\tthis.conchModel.drawToCanvas(canvas.source,offsetX,offsetY);\r\n\t\t\treturn canvas;\r\n\t\t\t}else {\r\n\t\t\treturn RunDriver.drawToCanvas(this,this._renderType,canvasWidth,canvasHeight,offsetX,offsetY);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*<p>自定义更新、呈现显示对象。一般用来扩展渲染模式，请合理使用，可能会导致在加速器上无法渲染。</p>\r\n\t*<p><b>注意</b>不要在此函数内增加或删除树节点，否则会对树节点遍历造成影响。</p>\r\n\t*@param context 渲染的上下文引用。\r\n\t*@param x X轴坐标。\r\n\t*@param y Y轴坐标。\r\n\t*/\r\n\t__proto.customRender=function(context,x,y){\r\n\t\tthis._renderType |=/*laya.renders.RenderSprite.CUSTOM*/0x400;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*应用滤镜。\r\n\t*/\r\n\t__proto._applyFilters=function(){\r\n\t\tif (Render.isWebGL)return;\r\n\t\tvar _filters;\r\n\t\t_filters=this._$P.filters;\r\n\t\tif (!_filters || _filters.length < 1)return;\r\n\t\tfor (var i=0,n=_filters.length;i < n;i++){\r\n\t\t\t_filters[i].action.apply(this._$P.cacheCanvas);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*查看当前原件中是否包含发光滤镜。\r\n\t*@return 一个 Boolean 值，表示当前原件中是否包含发光滤镜。\r\n\t*/\r\n\t__proto._isHaveGlowFilter=function(){\r\n\t\tvar i=0,len=0;\r\n\t\tif (this.filters){\r\n\t\t\tfor (i=0;i < this.filters.length;i++){\r\n\t\t\t\tif (this.filters[i].type==/*laya.filters.Filter.GLOW*/0x08){\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (i=0,len=this._childs.length;i < len;i++){\r\n\t\t\tif (this._childs[i]._isHaveGlowFilter()){\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t*把本地坐标转换为相对stage的全局坐标。\r\n\t*@param point 本地坐标点。\r\n\t*@param createNewPoint （可选）是否创建一个新的Point对象作为返回值，默认为false，使用输入的point对象返回，减少对象创建开销。\r\n\t*@return 转换后的坐标的点。\r\n\t*/\r\n\t__proto.localToGlobal=function(point,createNewPoint){\r\n\t\t(createNewPoint===void 0)&& (createNewPoint=false);\r\n\t\tif (createNewPoint===true){\r\n\t\t\tpoint=new Point(point.x,point.y);\r\n\t\t};\r\n\t\tvar ele=this;\r\n\t\twhile (ele){\r\n\t\t\tif (ele==Laya.stage)break ;\r\n\t\t\tpoint=ele.toParentPoint(point);\r\n\t\t\tele=ele.parent;\r\n\t\t}\r\n\t\treturn point;\r\n\t}\r\n\r\n\t/**\r\n\t*把stage的全局坐标转换为本地坐标。\r\n\t*@param point 全局坐标点。\r\n\t*@param createNewPoint （可选）是否创建一个新的Point对象作为返回值，默认为false，使用输入的point对象返回，减少对象创建开销。\r\n\t*@return 转换后的坐标的点。\r\n\t*/\r\n\t__proto.globalToLocal=function(point,createNewPoint){\r\n\t\t(createNewPoint===void 0)&& (createNewPoint=false);\r\n\t\tif (createNewPoint){\r\n\t\t\tpoint=new Point(point.x,point.y);\r\n\t\t};\r\n\t\tvar ele=this;\r\n\t\tvar list=[];\r\n\t\twhile (ele){\r\n\t\t\tif (ele==Laya.stage)break ;\r\n\t\t\tlist.push(ele);\r\n\t\t\tele=ele.parent;\r\n\t\t};\r\n\t\tvar i=list.length-1;\r\n\t\twhile (i >=0){\r\n\t\t\tele=list[i];\r\n\t\t\tpoint=ele.fromParentPoint(point);\r\n\t\t\ti--;\r\n\t\t}\r\n\t\treturn point;\r\n\t}\r\n\r\n\t/**\r\n\t*将本地坐标系坐标转转换到父容器坐标系。\r\n\t*@param point 本地坐标点。\r\n\t*@return 转换后的点。\r\n\t*/\r\n\t__proto.toParentPoint=function(point){\r\n\t\tif (!point)return point;\r\n\t\tpoint.x-=this.pivotX;\r\n\t\tpoint.y-=this.pivotY;\r\n\t\tif (this.transform){\r\n\t\t\tthis._transform.transformPoint(point);\r\n\t\t}\r\n\t\tpoint.x+=this._x;\r\n\t\tpoint.y+=this._y;\r\n\t\tvar scroll=this._style.scrollRect;\r\n\t\tif (scroll){\r\n\t\t\tpoint.x-=scroll.x;\r\n\t\t\tpoint.y-=scroll.y;\r\n\t\t}\r\n\t\treturn point;\r\n\t}\r\n\r\n\t/**\r\n\t*将父容器坐标系坐标转换到本地坐标系。\r\n\t*@param point 父容器坐标点。\r\n\t*@return 转换后的点。\r\n\t*/\r\n\t__proto.fromParentPoint=function(point){\r\n\t\tif (!point)return point;\r\n\t\tpoint.x-=this._x;\r\n\t\tpoint.y-=this._y;\r\n\t\tvar scroll=this._style.scrollRect;\r\n\t\tif (scroll){\r\n\t\t\tpoint.x+=scroll.x;\r\n\t\t\tpoint.y+=scroll.y;\r\n\t\t}\r\n\t\tif (this.transform){\r\n\t\t\tthis._transform.invertTransformPoint(point);\r\n\t\t}\r\n\t\tpoint.x+=this.pivotX;\r\n\t\tpoint.y+=this.pivotY;\r\n\t\treturn point;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>增加事件侦听器，以使侦听器能够接收事件通知。</p>\r\n\t*<p>如果侦听鼠标事件，则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false，则停止设置父节点mouseEnabled属性)。</p>\r\n\t*@param type 事件的类型。\r\n\t*@param caller 事件侦听函数的执行域。\r\n\t*@param listener 事件侦听函数。\r\n\t*@param args （可选）事件侦听函数的回调参数。\r\n\t*@return 此 EventDispatcher 对象。\r\n\t*/\r\n\t__proto.on=function(type,caller,listener,args){\r\n\t\tif (this._mouseEnableState!==1 && this.isMouseEvent(type)){\r\n\t\t\tthis.mouseEnabled=true;\r\n\t\t\tthis._setBit(/*laya.display.Node.MOUSEENABLE*/0x2,true);\r\n\t\t\tif (this._parent){\r\n\t\t\t\tthis._$2__onDisplay();\r\n\t\t\t}\r\n\t\t\treturn this._createListener(type,caller,listener,args,false);\r\n\t\t}\r\n\t\treturn _super.prototype.on.call(this,type,caller,listener,args);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>增加事件侦听器，以使侦听器能够接收事件通知，此侦听事件响应一次后则自动移除侦听。</p>\r\n\t*<p>如果侦听鼠标事件，则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false，则停止设置父节点mouseEnabled属性)。</p>\r\n\t*@param type 事件的类型。\r\n\t*@param caller 事件侦听函数的执行域。\r\n\t*@param listener 事件侦听函数。\r\n\t*@param args （可选）事件侦听函数的回调参数。\r\n\t*@return 此 EventDispatcher 对象。\r\n\t*/\r\n\t__proto.once=function(type,caller,listener,args){\r\n\t\tif (this._mouseEnableState!==1 && this.isMouseEvent(type)){\r\n\t\t\tthis.mouseEnabled=true;\r\n\t\t\tthis._setBit(/*laya.display.Node.MOUSEENABLE*/0x2,true);\r\n\t\t\tif (this._parent){\r\n\t\t\t\tthis._$2__onDisplay();\r\n\t\t\t}\r\n\t\t\treturn this._createListener(type,caller,listener,args,true);\r\n\t\t}\r\n\t\treturn _super.prototype.once.call(this,type,caller,listener,args);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._$2__onDisplay=function(){\r\n\t\tif (this._mouseEnableState!==1){\r\n\t\t\tvar ele=this;\r\n\t\t\tele=ele.parent;\r\n\t\t\twhile (ele && ele._mouseEnableState!==1){\r\n\t\t\t\tif (ele._getBit(/*laya.display.Node.MOUSEENABLE*/0x2))break ;\r\n\t\t\t\tele.mouseEnabled=true;\r\n\t\t\t\tele._setBit(/*laya.display.Node.MOUSEENABLE*/0x2,true);\r\n\t\t\t\tele=ele.parent;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*<p>加载并显示一个图片。功能等同于graphics.loadImage方法。支持异步加载。</p>\r\n\t*<p>注意：多次调用loadImage绘制不同的图片，会同时显示。</p>\r\n\t*@param url 图片地址。\r\n\t*@param x （可选）显示图片的x位置。\r\n\t*@param y （可选）显示图片的y位置。\r\n\t*@param width （可选）显示图片的宽度，设置为0表示使用图片默认宽度。\r\n\t*@param height （可选）显示图片的高度，设置为0表示使用图片默认高度。\r\n\t*@param complete （可选）加载完成回调。\r\n\t*@return 返回精灵对象本身。\r\n\t*/\r\n\t__proto.loadImage=function(url,x,y,width,height,complete){\r\n\t\tvar _$this=this;\r\n\t\t(x===void 0)&& (x=0);\r\n\t\t(y===void 0)&& (y=0);\r\n\t\t(width===void 0)&& (width=0);\r\n\t\t(height===void 0)&& (height=0);\r\n\t\tfunction loaded (tex){\r\n\t\t\tif (!_$this.destroyed){\r\n\t\t\t\t_$this.size(x+(width || tex.width),y+(height || tex.height));\r\n\t\t\t\t_$this.repaint();\r\n\t\t\t\tcomplete && complete.runWith(tex);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.graphics.loadImage(url,x,y,width,height,loaded);\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**cacheAs后，设置自己和父对象缓存失效。*/\r\n\t__proto.repaint=function(){\r\n\t\tthis.conchModel && this.conchModel.repaint && this.conchModel.repaint();\r\n\t\tif (this._repaint===0){\r\n\t\t\tthis._repaint=1;\r\n\t\t\tthis.parentRepaint();\r\n\t\t}\r\n\t\tif (this._$P && this._$P.maskParent){\r\n\t\t\tthis._$P.maskParent.repaint();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取是否重新缓存。\r\n\t*@return 如果重新缓存值为 true，否则值为 false。\r\n\t*/\r\n\t__proto._needRepaint=function(){\r\n\t\treturn (this._repaint!==0)&& this._$P.cacheCanvas && this._$P.cacheCanvas.reCache;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._childChanged=function(child){\r\n\t\tif (this._childs.length)this._renderType |=/*laya.renders.RenderSprite.CHILDS*/0x800;\r\n\t\telse this._renderType &=~ /*laya.renders.RenderSprite.CHILDS*/0x800;\r\n\t\tif (child && this._get$P(\"hasZorder\"))Laya.timer.callLater(this,this.updateZOrder);\r\n\t\tthis.repaint();\r\n\t}\r\n\r\n\t/**cacheAs时，设置所有父对象缓存失效。 */\r\n\t__proto.parentRepaint=function(){\r\n\t\tvar p=this._parent;\r\n\t\tif (p && p._repaint===0){\r\n\t\t\tp._repaint=1;\r\n\t\t\tp.parentRepaint();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*开始拖动此对象。\r\n\t*@param area （可选）拖动区域，此区域为当前对象注册点活动区域（不包括对象宽高），可选。\r\n\t*@param hasInertia （可选）鼠标松开后，是否还惯性滑动，默认为false，可选。\r\n\t*@param elasticDistance （可选）橡皮筋效果的距离值，0为无橡皮筋效果，默认为0，可选。\r\n\t*@param elasticBackTime （可选）橡皮筋回弹时间，单位为毫秒，默认为300毫秒，可选。\r\n\t*@param data （可选）拖动事件携带的数据，可选。\r\n\t*@param disableMouseEvent （可选）禁用其他对象的鼠标检测，默认为false，设置为true能提高性能。\r\n\t*@param ratio （可选）惯性阻尼系数，影响惯性力度和时长。\r\n\t*/\r\n\t__proto.startDrag=function(area,hasInertia,elasticDistance,elasticBackTime,data,disableMouseEvent,ratio){\r\n\t\t(hasInertia===void 0)&& (hasInertia=false);\r\n\t\t(elasticDistance===void 0)&& (elasticDistance=0);\r\n\t\t(elasticBackTime===void 0)&& (elasticBackTime=300);\r\n\t\t(disableMouseEvent===void 0)&& (disableMouseEvent=false);\r\n\t\t(ratio===void 0)&& (ratio=0.92);\r\n\t\tthis._$P.dragging || (this._set$P(\"dragging\",new Dragging()));\r\n\t\tthis._$P.dragging.start(this,area,hasInertia,elasticDistance,elasticBackTime,data,disableMouseEvent,ratio);\r\n\t}\r\n\r\n\t/**停止拖动此对象。*/\r\n\t__proto.stopDrag=function(){\r\n\t\tthis._$P.dragging && this._$P.dragging.stop();\r\n\t}\r\n\r\n\t__proto._releaseMem=function(){\r\n\t\tif (!this._$P)return;\r\n\t\tvar cc=this._$P.cacheCanvas;\r\n\t\tif (cc && cc.ctx){\r\n\t\t\tPool.recover(\"RenderContext\",cc.ctx);\r\n\t\t\tcc.ctx.canvas.size(0,0);\r\n\t\t\tcc.ctx=null;\r\n\t\t};\r\n\t\tvar fc=this._$P._filterCache;\r\n\t\tif (fc){\r\n\t\t\tfc.destroy();\r\n\t\t\tfc.recycle();\r\n\t\t\tthis._set$P('_filterCache',null);\r\n\t\t}\r\n\t\tthis._$P._isHaveGlowFilter && this._set$P('_isHaveGlowFilter',false);\r\n\t\tthis._$P._isHaveGlowFilter=null;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setDisplay=function(value){\r\n\t\tif (!value)this._releaseMem();\r\n\t\t_super.prototype._setDisplay.call(this,value);\r\n\t}\r\n\r\n\t/**\r\n\t*检测某个点是否在此对象内。\r\n\t*@param x 全局x坐标。\r\n\t*@param y 全局y坐标。\r\n\t*@return 表示是否在对象内。\r\n\t*/\r\n\t__proto.hitTestPoint=function(x,y){\r\n\t\tvar point=this.globalToLocal(Point.TEMP.setTo(x,y));\r\n\t\tx=point.x;\r\n\t\ty=point.y;\r\n\t\tvar rect=this._$P.hitArea ? this._$P.hitArea :(this._width > 0 && this._height > 0)? Rectangle.TEMP.setTo(0,0,this._width,this._height):this.getSelfBounds();\r\n\t\treturn rect.contains(x,y);\r\n\t}\r\n\r\n\t/**获得相对于本对象上的鼠标坐标信息。*/\r\n\t__proto.getMousePoint=function(){\r\n\t\treturn this.globalToLocal(Point.TEMP.setTo(Laya.stage.mouseX,Laya.stage.mouseY));\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._getWords=function(){\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._addChildsToLayout=function(out){\r\n\t\tvar words=this._getWords();\r\n\t\tif (words==null && this._childs.length==0)return false;\r\n\t\tif (words){\r\n\t\t\tfor (var i=0,n=words.length;i < n;i++){\r\n\t\t\t\tout.push(words[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._childs.forEach(function(o,index,array){\r\n\t\t\to._style._enableLayout()&& o._addToLayout(out);\r\n\t\t});\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._addToLayout=function(out){\r\n\t\tif (this._style.absolute)return;\r\n\t\tthis._style.block ? out.push(this):(this._addChildsToLayout(out)&& (this.x=this.y=0));\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._isChar=function(){\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._getCSSStyle=function(){\r\n\t\treturn this._style.getCSSStyle();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*设置指定属性名的属性值。\r\n\t*@param name 属性名。\r\n\t*@param value 属性值。\r\n\t*/\r\n\t__proto._setAttributes=function(name,value){\r\n\t\tswitch (name){\r\n\t\t\tcase 'x':\r\n\t\t\t\tthis.x=parseFloat(value);\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 'y':\r\n\t\t\t\tthis.y=parseFloat(value);\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 'width':\r\n\t\t\t\tthis.width=parseFloat(value);\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 'height':\r\n\t\t\t\tthis.height=parseFloat(value);\r\n\t\t\t\tbreak ;\r\n\t\t\tdefault :\r\n\t\t\t\tthis[name]=value;\r\n\t\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._layoutLater=function(){\r\n\t\tthis.parent && (this.parent)._layoutLater();\r\n\t}\r\n\r\n\t/**\r\n\t*<p>指定是否对使用了 scrollRect 的显示对象进行优化处理。默认为false(不优化)。</p>\r\n\t*<p>当值为ture时：将对此对象使用了scrollRect 设定的显示区域以外的显示内容不进行渲染，以提高性能(如果子对象有旋转缩放或者中心点偏移，则显示筛选会不精确)。</p>\r\n\t*/\r\n\t__getset(0,__proto,'optimizeScrollRect',function(){\r\n\t\treturn this._optimizeScrollRect;\r\n\t\t},function(b){\r\n\t\tif (this._optimizeScrollRect !=b){\r\n\t\t\tthis._optimizeScrollRect=b;\r\n\t\t\tthis.conchModel && this.conchModel.optimizeScrollRect(b);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*设置是否开启自定义渲染，只有开启自定义渲染，才能使用customRender函数渲染。\r\n\t*/\r\n\t__getset(0,__proto,'customRenderEnable',null,function(b){\r\n\t\tif (b){\r\n\t\t\tthis._renderType |=/*laya.renders.RenderSprite.CUSTOM*/0x400;\r\n\t\t\tif (Render.isConchNode){\r\n\t\t\t\tSprite.CustomList.push(this);\r\n\t\t\t\tvar canvas=new HTMLCanvas(\"2d\");\r\n\t\t\t\tcanvas._setContext(/*__JS__ */new CanvasRenderingContext2D());\r\n\t\t\t\t/*__JS__ */this.customContext=new RenderContext(0,0,canvas);\r\n\t\t\t\tcanvas.context.setCanvasType && canvas.context.setCanvasType(2);\r\n\t\t\t\tthis.conchModel.custom(canvas.context);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*指定显示对象是否缓存为静态图像。功能同cacheAs的normal模式。建议优先使用cacheAs代替。\r\n\t*/\r\n\t__getset(0,__proto,'cacheAsBitmap',function(){\r\n\t\treturn this.cacheAs!==\"none\";\r\n\t\t},function(value){\r\n\t\tthis.cacheAs=value ? (this._$P[\"hasFilter\"] ? \"none\" :\"normal\"):\"none\";\r\n\t});\r\n\r\n\t/**\r\n\t*<p>指定显示对象是否缓存为静态图像，cacheAs时，子对象发生变化，会自动重新缓存，同时也可以手动调用reCache方法更新缓存。</p>\r\n\t*<p>建议把不经常变化的“复杂内容”缓存为静态图像，能极大提高渲染性能。cacheAs有\"none\"，\"normal\"和\"bitmap\"三个值可选。\r\n\t*<li>默认为\"none\"，不做任何缓存。</li>\r\n\t*<li>当值为\"normal\"时，canvas模式下进行画布缓存，webgl模式下进行命令缓存。</li>\r\n\t*<li>当值为\"bitmap\"时，canvas模式下进行依然是画布缓存，webgl模式下使用renderTarget缓存。</li></p>\r\n\t*<p>webgl下renderTarget缓存模式缺点：会额外创建renderTarget对象，增加内存开销，缓存面积有最大2048限制，不断重绘时会增加CPU开销。优点：大幅减少drawcall，渲染性能最高。\r\n\t*webgl下命令缓存模式缺点：只会减少节点遍历及命令组织，不会减少drawcall数，性能中等。优点：没有额外内存开销，无需renderTarget支持。</p>\r\n\t*/\r\n\t__getset(0,__proto,'cacheAs',function(){\r\n\t\treturn this._$P.cacheCanvas==null ? \"none\" :this._$P.cacheCanvas.type;\r\n\t\t},function(value){\r\n\t\tvar cacheCanvas=this._$P.cacheCanvas;\r\n\t\tif (value===(cacheCanvas ? cacheCanvas.type :\"none\"))return;\r\n\t\tif (value!==\"none\"){\r\n\t\t\tif (!this._getBit(/*laya.display.Node.NOTICE_DISPLAY*/0x1))this._setUpNoticeType(/*laya.display.Node.NOTICE_DISPLAY*/0x1);\r\n\t\t\tcacheCanvas || (cacheCanvas=this._set$P(\"cacheCanvas\",Pool.getItemByClass(\"cacheCanvas\",Object)));\r\n\t\t\tcacheCanvas.type=value;\r\n\t\t\tcacheCanvas.reCache=true;\r\n\t\t\tthis._renderType |=/*laya.renders.RenderSprite.CANVAS*/0x10;\r\n\t\t\tif (value==\"bitmap\")this.conchModel && this.conchModel.cacheAs(1);\r\n\t\t\tthis._set$P(\"cacheForFilters\",false);\r\n\t\t\t}else {\r\n\t\t\tif (this._$P[\"_mask\"]){\r\n\t\t\t}else\r\n\t\t\tif (this._$P[\"hasFilter\"]){\r\n\t\t\t\tthis._set$P(\"cacheForFilters\",true);\r\n\t\t\t\t}else {\r\n\t\t\t\tif (cacheCanvas){\r\n\t\t\t\t\tvar cc=cacheCanvas;\r\n\t\t\t\t\tif (cc && cc.ctx){\r\n\t\t\t\t\t\tPool.recover(\"RenderContext\",cc.ctx);\r\n\t\t\t\t\t\tcc.ctx.canvas.size(0,0);\r\n\t\t\t\t\t\tcc.ctx=null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tPool.recover(\"cacheCanvas\",cacheCanvas);\r\n\t\t\t\t}\r\n\t\t\t\tthis._$P.cacheCanvas=null;\r\n\t\t\t\tthis._renderType &=~ /*laya.renders.RenderSprite.CANVAS*/0x10;\r\n\t\t\t\tthis.conchModel && this.conchModel.cacheAs(0);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.repaint();\r\n\t});\r\n\r\n\t/**z排序，更改此值，则会按照值的大小对同一容器的所有对象重新排序。值越大，越靠上。默认为0，则根据添加顺序排序。*/\r\n\t__getset(0,__proto,'zOrder',function(){\r\n\t\treturn this._zOrder;\r\n\t\t},function(value){\r\n\t\tif (this._zOrder !=value){\r\n\t\t\tthis._zOrder=value;\r\n\t\t\tthis.conchModel && this.conchModel.setZOrder && this.conchModel.setZOrder(value);\r\n\t\t\tif (this._parent){\r\n\t\t\t\tvalue && this._parent._set$P(\"hasZorder\",true);\r\n\t\t\t\tLaya.timer.callLater(this._parent,this.updateZOrder);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**旋转角度，默认值为0。以角度为单位。*/\r\n\t__getset(0,__proto,'rotation',function(){\r\n\t\treturn this._style._tf.rotate;\r\n\t\t},function(value){\r\n\t\tvar style=this.getStyle();\r\n\t\tif (style._tf.rotate!==value){\r\n\t\t\tstyle.setRotate(value);\r\n\t\t\tthis._tfChanged=true;\r\n\t\t\tthis.conchModel && this.conchModel.rotate(value);\r\n\t\t\tthis._renderType |=/*laya.renders.RenderSprite.TRANSFORM*/0x04;\r\n\t\t\tvar p=this._parent;\r\n\t\t\tif (p && p._repaint===0){\r\n\t\t\t\tp._repaint=1;\r\n\t\t\t\tp.parentRepaint();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>显示对象的宽度，单位为像素，默认为0。</p>\r\n\t*<p>此宽度用于鼠标碰撞检测，并不影响显示对象图像大小。需要对显示对象的图像进行缩放，请使用scale、scaleX、scaleY。</p>\r\n\t*<p>可以通过getbounds获取显示对象图像的实际宽度。</p>\r\n\t*/\r\n\t__getset(0,__proto,'width',function(){\r\n\t\tif (!this.autoSize)return this._width;\r\n\t\treturn this.getSelfBounds().width;\r\n\t\t},function(value){\r\n\t\tif (this._width!==value){\r\n\t\t\tthis._width=value;\r\n\t\t\tthis.conchModel && this.conchModel.size(value,this._height)\r\n\t\t\tthis.repaint();\r\n\t\t}\r\n\t});\r\n\r\n\t/**表示显示对象相对于父容器的水平方向坐标值。*/\r\n\t__getset(0,__proto,'x',function(){\r\n\t\treturn this._x;\r\n\t\t},function(value){\r\n\t\tif (this._x!==value){\r\n\t\t\tif (this.destroyed)return;\r\n\t\t\tthis._x=value;\r\n\t\t\tthis.conchModel && this.conchModel.pos(value,this._y);\r\n\t\t\tvar p=this._parent;\r\n\t\t\tif (p && p._repaint===0){\r\n\t\t\t\tp._repaint=1;\r\n\t\t\t\tp.parentRepaint();\r\n\t\t\t}\r\n\t\t\tif (this._$P.maskParent && this._$P.maskParent._repaint===0){\r\n\t\t\t\tthis._$P.maskParent._repaint=1;\r\n\t\t\t\tthis._$P.maskParent.parentRepaint();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*获得相对于stage的全局Y轴缩放值（会叠加父亲节点的缩放值）。\r\n\t*/\r\n\t__getset(0,__proto,'globalScaleY',function(){\r\n\t\tvar scale=1;\r\n\t\tvar ele=this;\r\n\t\twhile (ele){\r\n\t\t\tif (ele===Laya.stage)break ;\r\n\t\t\tscale *=ele.scaleY;\r\n\t\t\tele=ele.parent;\r\n\t\t}\r\n\t\treturn scale;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>可以设置一个Rectangle区域作为点击区域，或者设置一个<code>HitArea</code>实例作为点击区域，HitArea内可以设置可点击和不可点击区域。</p>\r\n\t*<p>如果不设置hitArea，则根据宽高形成的区域进行碰撞。</p>\r\n\t*/\r\n\t__getset(0,__proto,'hitArea',function(){\r\n\t\treturn this._$P.hitArea;\r\n\t\t},function(value){\r\n\t\tthis._set$P(\"hitArea\",value);\r\n\t});\r\n\r\n\t/**\r\n\t*是否静态缓存此对象的当前帧的最终属性。为 true 时，子对象变化时不会自动更新缓存，但是可以通过调用 reCache 方法手动刷新。\r\n\t*<b>注意：</b> 1. 设置 cacheAs 为非空和非\"none\"时才有效。 2. 由于渲染的时机在脚本执行之后，也就是说当前帧渲染的是对象的最终属性，所以如果在当前帧渲染之前、设置静态缓存之后改变对象属性，则最终渲染结果表现的是对象的最终属性。\r\n\t*/\r\n\t__getset(0,__proto,'staticCache',function(){\r\n\t\treturn this._$P.staticCache;\r\n\t\t},function(value){\r\n\t\tthis._set$P(\"staticCache\",value);\r\n\t\tif (!value)this.reCache();\r\n\t});\r\n\r\n\t/**设置一个Texture实例，并显示此图片（如果之前有其他绘制，则会被清除掉）。等同于graphics.clear();graphics.drawTexture()*/\r\n\t__getset(0,__proto,'texture',function(){\r\n\t\treturn this._texture;\r\n\t\t},function(value){\r\n\t\tif (this._texture !=value){\r\n\t\t\tthis._texture=value;\r\n\t\t\tthis.graphics.cleanByTexture(value,0,0);\r\n\t\t}\r\n\t});\r\n\r\n\t/**表示显示对象相对于父容器的垂直方向坐标值。*/\r\n\t__getset(0,__proto,'y',function(){\r\n\t\treturn this._y;\r\n\t\t},function(value){\r\n\t\tif (this._y!==value){\r\n\t\t\tif (this.destroyed)return;\r\n\t\t\tthis._y=value;\r\n\t\t\tthis.conchModel && this.conchModel.pos(this._x,value);\r\n\t\t\tvar p=this._parent;\r\n\t\t\tif (p && p._repaint===0){\r\n\t\t\t\tp._repaint=1;\r\n\t\t\t\tp.parentRepaint();\r\n\t\t\t}\r\n\t\t\tif (this._$P.maskParent && this._$P.maskParent._repaint===0){\r\n\t\t\t\tthis._$P.maskParent._repaint=1;\r\n\t\t\t\tthis._$P.maskParent.parentRepaint();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>显示对象的高度，单位为像素，默认为0。</p>\r\n\t*<p>此高度用于鼠标碰撞检测，并不影响显示对象图像大小。需要对显示对象的图像进行缩放，请使用scale、scaleX、scaleY。</p>\r\n\t*<p>可以通过getbounds获取显示对象图像的实际高度。</p>\r\n\t*/\r\n\t__getset(0,__proto,'height',function(){\r\n\t\tif (!this.autoSize)return this._height;\r\n\t\treturn this.getSelfBounds().height;\r\n\t\t},function(value){\r\n\t\tif (this._height!==value){\r\n\t\t\tthis._height=value;\r\n\t\t\tthis.conchModel && this.conchModel.size(this._width,value);\r\n\t\t\tthis.repaint();\r\n\t\t}\r\n\t});\r\n\r\n\t/**指定要使用的混合模式。目前只支持\"lighter\"。*/\r\n\t__getset(0,__proto,'blendMode',function(){\r\n\t\treturn this._style.blendMode;\r\n\t\t},function(value){\r\n\t\tthis.getStyle().blendMode=value;\r\n\t\tthis.conchModel && this.conchModel.blendMode(value);\r\n\t\tif (value && value !=\"source-over\")this._renderType |=/*laya.renders.RenderSprite.BLEND*/0x08;\r\n\t\telse this._renderType &=~ /*laya.renders.RenderSprite.BLEND*/0x08;\r\n\t\tthis.parentRepaint();\r\n\t});\r\n\r\n\t/**X轴缩放值，默认值为1。设置为负数，可以实现水平反转效果，比如scaleX=-1。*/\r\n\t__getset(0,__proto,'scaleX',function(){\r\n\t\treturn this._style._tf.scaleX;\r\n\t\t},function(value){\r\n\t\tvar style=this.getStyle();\r\n\t\tif (style._tf.scaleX!==value){\r\n\t\t\tstyle.setScaleX(value);\r\n\t\t\tthis._tfChanged=true;\r\n\t\t\tthis.conchModel && this.conchModel.scale(value,style._tf.scaleY);\r\n\t\t\tthis._renderType |=/*laya.renders.RenderSprite.TRANSFORM*/0x04;\r\n\t\t\tvar p=this._parent;\r\n\t\t\tif (p && p._repaint===0){\r\n\t\t\t\tp._repaint=1;\r\n\t\t\t\tp.parentRepaint();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**Y轴缩放值，默认值为1。设置为负数，可以实现垂直反转效果，比如scaleX=-1。*/\r\n\t__getset(0,__proto,'scaleY',function(){\r\n\t\treturn this._style._tf.scaleY;\r\n\t\t},function(value){\r\n\t\tvar style=this.getStyle();\r\n\t\tif (style._tf.scaleY!==value){\r\n\t\t\tstyle.setScaleY(value);\r\n\t\t\tthis._tfChanged=true;\r\n\t\t\tthis.conchModel && this.conchModel.scale(style._tf.scaleX,value);\r\n\t\t\tthis._renderType |=/*laya.renders.RenderSprite.TRANSFORM*/0x04;\r\n\t\t\tvar p=this._parent;\r\n\t\t\tif (p && p._repaint===0){\r\n\t\t\t\tp._repaint=1;\r\n\t\t\t\tp.parentRepaint();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**对舞台 <code>stage</code> 的引用。*/\r\n\t__getset(0,__proto,'stage',function(){\r\n\t\treturn Laya.stage;\r\n\t});\r\n\r\n\t/**水平倾斜角度，默认值为0。以角度为单位。*/\r\n\t__getset(0,__proto,'skewX',function(){\r\n\t\treturn this._style._tf.skewX;\r\n\t\t},function(value){\r\n\t\tvar style=this.getStyle();\r\n\t\tif (style._tf.skewX!==value){\r\n\t\t\tstyle.setSkewX(value);\r\n\t\t\tthis._tfChanged=true;\r\n\t\t\tthis.conchModel && this.conchModel.skew(value,style._tf.skewY);\r\n\t\t\tthis._renderType |=/*laya.renders.RenderSprite.TRANSFORM*/0x04;\r\n\t\t\tvar p=this._parent;\r\n\t\t\tif (p && p._repaint===0){\r\n\t\t\t\tp._repaint=1;\r\n\t\t\t\tp.parentRepaint();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>显示对象的滚动矩形范围，具有裁剪效果(如果只想限制子对象渲染区域，请使用viewport)，设置optimizeScrollRect=true，可以优化裁剪区域外的内容不进行渲染。</p>\r\n\t*<p> srollRect和viewport的区别：<br/>\r\n\t*1.srollRect自带裁剪效果，viewport只影响子对象渲染是否渲染，不具有裁剪效果（性能更高）。<br/>\r\n\t*2.设置rect的x,y属性均能实现区域滚动效果，但scrollRect会保持0,0点位置不变。</p>\r\n\t*/\r\n\t__getset(0,__proto,'scrollRect',function(){\r\n\t\treturn this._style.scrollRect;\r\n\t\t},function(value){\r\n\t\tthis.getStyle().scrollRect=value;\r\n\t\tthis.repaint();\r\n\t\tif (value){\r\n\t\t\tthis._renderType |=/*laya.renders.RenderSprite.CLIP*/0x80;\r\n\t\t\tthis.conchModel && this.conchModel.scrollRect(value.x,value.y,value.width,value.height);\r\n\t\t\t}else {\r\n\t\t\tthis._renderType &=~ /*laya.renders.RenderSprite.CLIP*/0x80;\r\n\t\t\tif (this.conchModel){\r\n\t\t\t\tif (Sprite.RUNTIMEVERION < \"0.9.1\")\r\n\t\t\t\t\tthis.conchModel.removeType(0x40);\r\n\t\t\t\telse\r\n\t\t\t\tthis.conchModel.removeType(/*laya.renders.RenderSprite.CLIP*/0x80);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**垂直倾斜角度，默认值为0。以角度为单位。*/\r\n\t__getset(0,__proto,'skewY',function(){\r\n\t\treturn this._style._tf.skewY;\r\n\t\t},function(value){\r\n\t\tvar style=this.getStyle();\r\n\t\tif (style._tf.skewY!==value){\r\n\t\t\tstyle.setSkewY(value);\r\n\t\t\tthis._tfChanged=true;\r\n\t\t\tthis.conchModel && this.conchModel.skew(style._tf.skewX,value);\r\n\t\t\tthis._renderType |=/*laya.renders.RenderSprite.TRANSFORM*/0x04;\r\n\t\t\tvar p=this._parent;\r\n\t\t\tif (p && p._repaint===0){\r\n\t\t\t\tp._repaint=1;\r\n\t\t\t\tp.parentRepaint();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>对象的矩阵信息。通过设置矩阵可以实现节点旋转，缩放，位移效果。</p>\r\n\t*<p>矩阵更多信息请参考 <code>Matrix</code></p>\r\n\t*/\r\n\t__getset(0,__proto,'transform',function(){\r\n\t\treturn this._tfChanged ? this._adjustTransform():this._transform;\r\n\t\t},function(value){\r\n\t\tthis._tfChanged=false;\r\n\t\tthis._transform=value;\r\n\t\tif (value){\r\n\t\t\tthis._x=value.tx;\r\n\t\t\tthis._y=value.ty;\r\n\t\t\tvalue.tx=value.ty=0;\r\n\t\t\tthis.conchModel && this.conchModel.transform(value.a,value.b,value.c,value.d,this._x,this._y);\r\n\t\t}\r\n\t\tif (value)this._renderType |=/*laya.renders.RenderSprite.TRANSFORM*/0x04;\r\n\t\telse {\r\n\t\t\tthis._renderType &=~ /*laya.renders.RenderSprite.TRANSFORM*/0x04;\r\n\t\t\tthis.conchModel && this.conchModel.removeType(/*laya.renders.RenderSprite.TRANSFORM*/0x04);\r\n\t\t}\r\n\t\tthis.parentRepaint();\r\n\t});\r\n\r\n\t/**X轴 轴心点的位置，单位为像素，默认为0。轴心点会影响对象位置，缩放中心，旋转中心。*/\r\n\t__getset(0,__proto,'pivotX',function(){\r\n\t\treturn this._style._tf.translateX;\r\n\t\t},function(value){\r\n\t\tthis.getStyle().setTranslateX(value);\r\n\t\tthis.conchModel && this.conchModel.pivot(value,this._style._tf.translateY);\r\n\t\tthis.repaint();\r\n\t});\r\n\r\n\t/**Y轴 轴心点的位置，单位为像素，默认为0。轴心点会影响对象位置，缩放中心，旋转中心。*/\r\n\t__getset(0,__proto,'pivotY',function(){\r\n\t\treturn this._style._tf.translateY;\r\n\t\t},function(value){\r\n\t\tthis.getStyle().setTranslateY(value);\r\n\t\tthis.conchModel && this.conchModel.pivot(this._style._tf.translateX,value);\r\n\t\tthis.repaint();\r\n\t});\r\n\r\n\t/**透明度，值为0-1，默认值为1，表示不透明。更改alpha值会影响drawcall。*/\r\n\t__getset(0,__proto,'alpha',function(){\r\n\t\treturn this._style.alpha;\r\n\t\t},function(value){\r\n\t\tif (this._style && this._style.alpha!==value){\r\n\t\t\tvalue=value < 0 ? 0 :(value > 1 ? 1 :value);\r\n\t\t\tthis.getStyle().alpha=value;\r\n\t\t\tthis.conchModel && this.conchModel.alpha(value);\r\n\t\t\tif (value!==1)this._renderType |=/*laya.renders.RenderSprite.ALPHA*/0x02;\r\n\t\t\telse this._renderType &=~ /*laya.renders.RenderSprite.ALPHA*/0x02;\r\n\t\t\tthis.parentRepaint();\r\n\t\t}\r\n\t});\r\n\r\n\t/**表示是否可见，默认为true。如果设置不可见，节点将不被渲染。*/\r\n\t__getset(0,__proto,'visible',function(){\r\n\t\treturn this._style.visible;\r\n\t\t},function(value){\r\n\t\tif (this._style && this._style.visible!==value){\r\n\t\t\tthis.getStyle().visible=value;\r\n\t\t\tthis.conchModel && this.conchModel.visible(value);\r\n\t\t\tthis.parentRepaint();\r\n\t\t}\r\n\t});\r\n\r\n\t/**绘图对象。封装了绘制位图和矢量图的接口，Sprite所有的绘图操作都通过Graphics来实现的。*/\r\n\t__getset(0,__proto,'graphics',function(){\r\n\t\treturn this._graphics || (this.graphics=RunDriver.createGraphics());\r\n\t\t},function(value){\r\n\t\tif (this._graphics)this._graphics._sp=null;\r\n\t\tthis._graphics=value;\r\n\t\tif (value){\r\n\t\t\tthis._renderType &=~ /*laya.renders.RenderSprite.IMAGE*/0x01;\r\n\t\t\tthis._renderType |=/*laya.renders.RenderSprite.GRAPHICS*/0x200;\r\n\t\t\tvalue._sp=this;\r\n\t\t\tthis.conchModel && this.conchModel.graphics(this._graphics);\r\n\t\t\t}else {\r\n\t\t\tthis._renderType &=~ /*laya.renders.RenderSprite.GRAPHICS*/0x200;\r\n\t\t\tthis._renderType &=~ /*laya.renders.RenderSprite.IMAGE*/0x01;\r\n\t\t\tif (this.conchModel){\r\n\t\t\t\tif (Sprite.RUNTIMEVERION < \"0.9.1\")\r\n\t\t\t\t\tthis.conchModel.removeType(0x100);\r\n\t\t\t\telse\r\n\t\t\t\tthis.conchModel.removeType(/*laya.renders.RenderSprite.GRAPHICS*/0x200);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.repaint();\r\n\t});\r\n\r\n\t/**滤镜集合。可以设置多个滤镜组合。*/\r\n\t__getset(0,__proto,'filters',function(){\r\n\t\treturn this._$P.filters;\r\n\t\t},function(value){\r\n\t\tvalue && value.length===0 && (value=null);\r\n\t\tif (this._$P.filters==value)return;\r\n\t\tthis._set$P(\"filters\",value ? value.slice():null);\r\n\t\tif (Render.isConchApp){\r\n\t\t\tif (this.conchModel){\r\n\t\t\t\tif (Sprite.RUNTIMEVERION < \"0.9.1\")\r\n\t\t\t\t\tthis.conchModel.removeType(0x10);\r\n\t\t\t\telse\r\n\t\t\t\tthis.conchModel.removeType(/*laya.renders.RenderSprite.FILTERS*/0x20);\r\n\t\t\t}\r\n\t\t\tif (this._$P.filters && this._$P.filters.length==1){\r\n\t\t\t\tthis._$P.filters[0].callNative(this);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (Render.isWebGL){\r\n\t\t\tif (value && value.length){\r\n\t\t\t\tthis._renderType |=/*laya.renders.RenderSprite.FILTERS*/0x20;\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._renderType &=~ /*laya.renders.RenderSprite.FILTERS*/0x20;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (value && value.length > 0){\r\n\t\t\tif (!this._getBit(/*laya.display.Node.NOTICE_DISPLAY*/0x1))this._setUpNoticeType(/*laya.display.Node.NOTICE_DISPLAY*/0x1);\r\n\t\t\tif (!(Render.isWebGL && value.length==1 && (((value[0])instanceof laya.filters.ColorFilter )))){\r\n\t\t\t\tif (this.cacheAs !=\"bitmap\"){\r\n\t\t\t\t\tif (!Render.isConchNode)this.cacheAs=\"bitmap\";\r\n\t\t\t\t\tthis._set$P(\"cacheForFilters\",true);\r\n\t\t\t\t}\r\n\t\t\t\tthis._set$P(\"hasFilter\",true);\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tthis._set$P(\"hasFilter\",false);\r\n\t\t\tif (this._$P[\"cacheForFilters\"] && this.cacheAs==\"bitmap\"){\r\n\t\t\t\tthis.cacheAs=\"none\";\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.repaint();\r\n\t});\r\n\r\n\t__getset(0,__proto,'parent',_super.prototype._$get_parent,function(value){\r\n\t\tLaya.superSet(Node,this,'parent',value);\r\n\t\tif (value && this._getBit(/*laya.display.Node.MOUSEENABLE*/0x2)){\r\n\t\t\tthis._$2__onDisplay();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>遮罩，可以设置一个对象(支持位图和矢量图)，根据对象形状进行遮罩显示。</p>\r\n\t*<p>【注意】遮罩对象坐标系是相对遮罩对象本身的，和Flash机制不同</p>\r\n\t*/\r\n\t__getset(0,__proto,'mask',function(){\r\n\t\treturn this._$P._mask;\r\n\t\t},function(value){\r\n\t\tif (value && this.mask && this.mask._$P.maskParent)return;\r\n\t\tif (value){\r\n\t\t\tthis.cacheAs=\"bitmap\";\r\n\t\t\tthis._set$P(\"_mask\",value);\r\n\t\t\tvalue._set$P(\"maskParent\",this);\r\n\t\t\t}else {\r\n\t\t\tthis.mask && this.mask._set$P(\"maskParent\",null);\r\n\t\t\tthis._set$P(\"_mask\",value);\r\n\t\t\tthis.cacheAs=\"none\";\r\n\t\t}\r\n\t\tthis.conchModel && this.conchModel.mask(value ? value.conchModel :null);\r\n\t\tthis._renderType |=/*laya.renders.RenderSprite.MASK*/0x40;\r\n\t\tthis.parentRepaint();\r\n\t});\r\n\r\n\t/**\r\n\t*是否接受鼠标事件。\r\n\t*默认为false，如果监听鼠标事件，则会自动设置本对象及父节点的属性 mouseEnable 的值都为 true（如果父节点手动设置为false，则不会更改）。\r\n\t**/\r\n\t__getset(0,__proto,'mouseEnabled',function(){\r\n\t\treturn this._mouseEnableState > 1;\r\n\t\t},function(value){\r\n\t\tthis._mouseEnableState=value ? 2 :1;\r\n\t});\r\n\r\n\t/**\r\n\t*获得相对于stage的全局X轴缩放值（会叠加父亲节点的缩放值）。\r\n\t*/\r\n\t__getset(0,__proto,'globalScaleX',function(){\r\n\t\tvar scale=1;\r\n\t\tvar ele=this;\r\n\t\twhile (ele){\r\n\t\t\tif (ele===Laya.stage)break ;\r\n\t\t\tscale *=ele.scaleX;\r\n\t\t\tele=ele.parent;\r\n\t\t}\r\n\t\treturn scale;\r\n\t});\r\n\r\n\t/**\r\n\t*返回鼠标在此对象坐标系上的 X 轴坐标信息。\r\n\t*/\r\n\t__getset(0,__proto,'mouseX',function(){\r\n\t\treturn this.getMousePoint().x;\r\n\t});\r\n\r\n\t/**\r\n\t*返回鼠标在此对象坐标系上的 Y 轴坐标信息。\r\n\t*/\r\n\t__getset(0,__proto,'mouseY',function(){\r\n\t\treturn this.getMousePoint().y;\r\n\t});\r\n\r\n\tSprite.fromImage=function(url){\r\n\t\treturn new Sprite().loadImage(url);\r\n\t}\r\n\r\n\tSprite.CustomList=[];\r\n\t__static(Sprite,\r\n\t['RUNTIMEVERION',function(){return this.RUNTIMEVERION=/*__JS__ */window.conch?conchConfig.getRuntimeVersion().substr(conchConfig.getRuntimeVersion().lastIndexOf('-')+1):'';}\r\n\t]);\r\n\treturn Sprite;\r\n})(Node)\r\n\r\n\r\n/**\r\n*@private\r\n*audio标签播放声音的音轨控制\r\n*/\r\n//class laya.media.h5audio.AudioSoundChannel extends laya.media.SoundChannel\r\nvar AudioSoundChannel=(function(_super){\r\n\tfunction AudioSoundChannel(audio){\r\n\t\t/**\r\n\t\t*播放用的audio标签\r\n\t\t*/\r\n\t\tthis._audio=null;\r\n\t\tthis._onEnd=null;\r\n\t\tthis._resumePlay=null;\r\n\t\tAudioSoundChannel.__super.call(this);\r\n\t\tthis._onEnd=Utils.bind(this.__onEnd,this);\r\n\t\tthis._resumePlay=Utils.bind(this.__resumePlay,this);\r\n\t\taudio.addEventListener(\"ended\",this._onEnd);\r\n\t\tthis._audio=audio;\r\n\t}\r\n\r\n\t__class(AudioSoundChannel,'laya.media.h5audio.AudioSoundChannel',_super);\r\n\tvar __proto=AudioSoundChannel.prototype;\r\n\t__proto.__onEnd=function(){\r\n\t\tif (this.loops==1){\r\n\t\t\tif (this.completeHandler){\r\n\t\t\t\tLaya.timer.once(10,this,this.__runComplete,[this.completeHandler],false);\r\n\t\t\t\tthis.completeHandler=null;\r\n\t\t\t}\r\n\t\t\tthis.stop();\r\n\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.loops > 0){\r\n\t\t\tthis.loops--;\r\n\t\t}\r\n\t\tthis.startTime=0;\r\n\t\tthis.play();\r\n\t}\r\n\r\n\t__proto.__resumePlay=function(){\r\n\t\tif(this._audio)this._audio.removeEventListener(\"canplay\",this._resumePlay);\r\n\t\ttry {\r\n\t\t\tthis._audio.currentTime=this.startTime;\r\n\t\t\tBrowser.container.appendChild(this._audio);\r\n\t\t\tthis._audio.play();\r\n\t\t\t}catch (e){\r\n\t\t\tthis.event(/*laya.events.Event.ERROR*/\"error\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*播放\r\n\t*/\r\n\t__proto.play=function(){\r\n\t\tthis.isStopped=false;\r\n\t\ttry {\r\n\t\t\tthis._audio.playbackRate=SoundManager.playbackRate;\r\n\t\t\tthis._audio.currentTime=this.startTime;\r\n\t\t\t}catch (e){\r\n\t\t\tthis._audio.addEventListener(\"canplay\",this._resumePlay);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tSoundManager.addChannel(this);\r\n\t\tBrowser.container.appendChild(this._audio);\r\n\t\tif(\"play\" in this._audio)\r\n\t\t\tthis._audio.play();\r\n\t}\r\n\r\n\t/**\r\n\t*停止播放\r\n\t*\r\n\t*/\r\n\t__proto.stop=function(){\r\n\t\tthis.isStopped=true;\r\n\t\tSoundManager.removeChannel(this);\r\n\t\tthis.completeHandler=null;\r\n\t\tif (!this._audio)\r\n\t\t\treturn;\r\n\t\tif (\"pause\" in this._audio)\r\n\t\t\tif (Render.isConchApp){\r\n\t\t\tthis._audio.stop();\r\n\t\t}\r\n\t\tthis._audio.pause();\r\n\t\tthis._audio.removeEventListener(\"ended\",this._onEnd);\r\n\t\tthis._audio.removeEventListener(\"canplay\",this._resumePlay);\r\n\t\tif (!Browser.onIE){\r\n\t\t\tif (this._audio!=AudioSound._musicAudio){\r\n\t\t\t\tPool.recover(\"audio:\"+this.url,this._audio);\r\n\t\t\t}\r\n\t\t}\r\n\t\tBrowser.removeElement(this._audio);\r\n\t\tthis._audio=null;\r\n\t}\r\n\r\n\t__proto.pause=function(){\r\n\t\tthis.isStopped=true;\r\n\t\tSoundManager.removeChannel(this);\r\n\t\tif(\"pause\" in this._audio)\r\n\t\t\tthis._audio.pause();\r\n\t}\r\n\r\n\t__proto.resume=function(){\r\n\t\tif (!this._audio)\r\n\t\t\treturn;\r\n\t\tthis.isStopped=false;\r\n\t\tSoundManager.addChannel(this);\r\n\t\tif(\"play\" in this._audio)\r\n\t\t\tthis._audio.play();\r\n\t}\r\n\r\n\t/**\r\n\t*当前播放到的位置\r\n\t*@return\r\n\t*\r\n\t*/\r\n\t__getset(0,__proto,'position',function(){\r\n\t\tif (!this._audio)\r\n\t\t\treturn 0;\r\n\t\treturn this._audio.currentTime;\r\n\t});\r\n\r\n\t/**\r\n\t*获取总时间。\r\n\t*/\r\n\t__getset(0,__proto,'duration',function(){\r\n\t\tif (!this._audio)\r\n\t\t\treturn 0;\r\n\t\treturn this._audio.duration;\r\n\t});\r\n\r\n\t/**\r\n\t*设置音量\r\n\t*@param v\r\n\t*\r\n\t*/\r\n\t/**\r\n\t*获取音量\r\n\t*@return\r\n\t*\r\n\t*/\r\n\t__getset(0,__proto,'volume',function(){\r\n\t\tif (!this._audio)return 1;\r\n\t\treturn this._audio.volume;\r\n\t\t},function(v){\r\n\t\tif (!this._audio)return;\r\n\t\tthis._audio.volume=v;\r\n\t});\r\n\r\n\treturn AudioSoundChannel;\r\n})(SoundChannel)\r\n\r\n\r\n/**\r\n*@private\r\n*web audio api方式播放声音的音轨控制\r\n*/\r\n//class laya.media.webaudio.WebAudioSoundChannel extends laya.media.SoundChannel\r\nvar WebAudioSoundChannel=(function(_super){\r\n\tfunction WebAudioSoundChannel(){\r\n\t\t/**\r\n\t\t*声音原始文件数据\r\n\t\t*/\r\n\t\tthis.audioBuffer=null;\r\n\t\t/**\r\n\t\t*gain节点\r\n\t\t*/\r\n\t\tthis.gain=null;\r\n\t\t/**\r\n\t\t*播放用的数据\r\n\t\t*/\r\n\t\tthis.bufferSource=null;\r\n\t\t/**\r\n\t\t*当前时间\r\n\t\t*/\r\n\t\tthis._currentTime=0;\r\n\t\t/**\r\n\t\t*当前音量\r\n\t\t*/\r\n\t\tthis._volume=1;\r\n\t\t/**\r\n\t\t*播放开始时的时间戳\r\n\t\t*/\r\n\t\tthis._startTime=0;\r\n\t\tthis._pauseTime=0;\r\n\t\tthis._onPlayEnd=null;\r\n\t\tthis.context=WebAudioSound.ctx;\r\n\t\tWebAudioSoundChannel.__super.call(this);\r\n\t\tthis._onPlayEnd=Utils.bind(this.__onPlayEnd,this);\r\n\t\tif (this.context[\"createGain\"]){\r\n\t\t\tthis.gain=this.context[\"createGain\"]();\r\n\t\t\t}else {\r\n\t\t\tthis.gain=this.context[\"createGainNode\"]();\r\n\t\t}\r\n\t}\r\n\r\n\t__class(WebAudioSoundChannel,'laya.media.webaudio.WebAudioSoundChannel',_super);\r\n\tvar __proto=WebAudioSoundChannel.prototype;\r\n\t/**\r\n\t*播放声音\r\n\t*/\r\n\t__proto.play=function(){\r\n\t\tSoundManager.addChannel(this);\r\n\t\tthis.isStopped=false;\r\n\t\tthis._clearBufferSource();\r\n\t\tif (!this.audioBuffer)return;\r\n\t\tvar context=this.context;\r\n\t\tvar gain=this.gain;\r\n\t\tvar bufferSource=context.createBufferSource();\r\n\t\tthis.bufferSource=bufferSource;\r\n\t\tbufferSource.buffer=this.audioBuffer;\r\n\t\tbufferSource.connect(gain);\r\n\t\tif (gain)\r\n\t\t\tgain.disconnect();\r\n\t\tgain.connect(context.destination);\r\n\t\tbufferSource.onended=this._onPlayEnd;\r\n\t\tif (this.startTime >=this.duration)this.startTime=0;\r\n\t\tthis._startTime=Browser.now();\r\n\t\tif (this.gain.gain.setTargetAtTime){\r\n\t\t\tthis.gain.gain.setTargetAtTime(this._volume,this.context.currentTime,0.1);\r\n\t\t}else\r\n\t\tthis.gain.gain.value=this._volume;\r\n\t\tif (this.loops==0){\r\n\t\t\tbufferSource.loop=true;\r\n\t\t}\r\n\t\tif (bufferSource.playbackRate.setTargetAtTime){\r\n\t\t\tbufferSource.playbackRate.setTargetAtTime(SoundManager.playbackRate,this.context.currentTime,0.1)\r\n\t\t}else\r\n\t\tbufferSource.playbackRate.value=SoundManager.playbackRate;\r\n\t\tbufferSource.start(0,this.startTime);\r\n\t\tthis._currentTime=0;\r\n\t}\r\n\r\n\t__proto.__onPlayEnd=function(){\r\n\t\tif (this.loops==1){\r\n\t\t\tif (this.completeHandler){\r\n\t\t\t\tLaya.timer.once(10,this,this.__runComplete,[this.completeHandler],false);\r\n\t\t\t\tthis.completeHandler=null;\r\n\t\t\t}\r\n\t\t\tthis.stop();\r\n\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.loops > 0){\r\n\t\t\tthis.loops--;\r\n\t\t}\r\n\t\tthis.startTime=0;\r\n\t\tthis.play();\r\n\t}\r\n\r\n\t__proto._clearBufferSource=function(){\r\n\t\tif (this.bufferSource){\r\n\t\t\tvar sourceNode=this.bufferSource;\r\n\t\t\tif (sourceNode.stop){\r\n\t\t\t\tsourceNode.stop(0);\r\n\t\t\t\t}else {\r\n\t\t\t\tsourceNode.noteOff(0);\r\n\t\t\t}\r\n\t\t\tsourceNode.disconnect(0);\r\n\t\t\tsourceNode.onended=null;\r\n\t\t\tif (!WebAudioSoundChannel._tryCleanFailed)this._tryClearBuffer(sourceNode);\r\n\t\t\tthis.bufferSource=null;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._tryClearBuffer=function(sourceNode){\r\n\t\tif (!Browser.onMac){\r\n\t\t\ttry{\r\n\t\t\t\tsourceNode.buffer=null;\r\n\t\t\t\t}catch (e){\r\n\t\t\t\tWebAudioSoundChannel._tryCleanFailed=true;\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttry {sourceNode.buffer=WebAudioSound._miniBuffer;}catch (e){WebAudioSoundChannel._tryCleanFailed=true;}\r\n\t}\r\n\r\n\t/**\r\n\t*停止播放\r\n\t*/\r\n\t__proto.stop=function(){\r\n\t\tthis._clearBufferSource();\r\n\t\tthis.audioBuffer=null;\r\n\t\tif (this.gain)\r\n\t\t\tthis.gain.disconnect();\r\n\t\tthis.isStopped=true;\r\n\t\tSoundManager.removeChannel(this);\r\n\t\tthis.completeHandler=null;\r\n\t\tif(SoundManager.autoReleaseSound)\r\n\t\t\tLaya.timer.once(5000,null,SoundManager.disposeSoundIfNotUsed,[this.url],false);\r\n\t}\r\n\r\n\t__proto.pause=function(){\r\n\t\tif (!this.isStopped){\r\n\t\t\tthis._pauseTime=this.position;\r\n\t\t}\r\n\t\tthis._clearBufferSource();\r\n\t\tif (this.gain)\r\n\t\t\tthis.gain.disconnect();\r\n\t\tthis.isStopped=true;\r\n\t\tSoundManager.removeChannel(this);\r\n\t\tif(SoundManager.autoReleaseSound)\r\n\t\t\tLaya.timer.once(5000,null,SoundManager.disposeSoundIfNotUsed,[this.url],false);\r\n\t}\r\n\r\n\t__proto.resume=function(){\r\n\t\tthis.startTime=this._pauseTime;\r\n\t\tthis.play();\r\n\t}\r\n\r\n\t/**\r\n\t*获取当前播放位置\r\n\t*/\r\n\t__getset(0,__proto,'position',function(){\r\n\t\tif (this.bufferSource){\r\n\t\t\treturn (Browser.now()-this._startTime)/ 1000+this.startTime;\r\n\t\t}\r\n\t\treturn 0;\r\n\t});\r\n\r\n\t__getset(0,__proto,'duration',function(){\r\n\t\tif (this.audioBuffer){\r\n\t\t\treturn this.audioBuffer.duration;\r\n\t\t}\r\n\t\treturn 0;\r\n\t});\r\n\r\n\t/**\r\n\t*设置音量\r\n\t*/\r\n\t/**\r\n\t*获取音量\r\n\t*/\r\n\t__getset(0,__proto,'volume',function(){\r\n\t\treturn this._volume;\r\n\t\t},function(v){\r\n\t\tif (this.isStopped){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._volume=v;\r\n\t\tif (this.gain.gain.setTargetAtTime){\r\n\t\t\tthis.gain.gain.setTargetAtTime(v,this.context.currentTime,0.1);\r\n\t\t}else\r\n\t\tthis.gain.gain.value=v;\r\n\t});\r\n\r\n\tWebAudioSoundChannel._tryCleanFailed=false;\r\n\treturn WebAudioSoundChannel;\r\n})(SoundChannel)\r\n\r\n\r\n/**\r\n*@private\r\n*<code>Bitmap</code> 是图片资源类。\r\n*/\r\n//class laya.resource.Bitmap extends laya.resource.Resource\r\nvar Bitmap=(function(_super){\r\n\tfunction Bitmap(){\r\n\t\t/**@private\r\n\t\t*HTML Image或HTML Canvas或WebGL Texture。\r\n\t\t**/\r\n\t\t//this._source=null;\r\n\t\t/**@private 宽度*/\r\n\t\t//this._w=NaN;\r\n\t\t/**@private 高度*/\r\n\t\t//this._h=NaN;\r\n\t\tBitmap.__super.call(this);\r\n\t\tthis._w=0;\r\n\t\tthis._h=0;\r\n\t}\r\n\r\n\t__class(Bitmap,'laya.resource.Bitmap',_super);\r\n\tvar __proto=Bitmap.prototype;\r\n\t/***\r\n\t*宽度。\r\n\t*/\r\n\t__getset(0,__proto,'width',function(){\r\n\t\treturn this._w;\r\n\t});\r\n\r\n\t/***\r\n\t*高度。\r\n\t*/\r\n\t__getset(0,__proto,'height',function(){\r\n\t\treturn this._h;\r\n\t});\r\n\r\n\t/***\r\n\t*HTML Image 或 HTML Canvas 或 WebGL Texture 。\r\n\t*/\r\n\t__getset(0,__proto,'source',function(){\r\n\t\treturn this._source;\r\n\t});\r\n\r\n\treturn Bitmap;\r\n})(Resource)\r\n\r\n\r\n/**\r\n*<p>动画播放基类，提供了基础的动画播放控制方法和帧标签事件相关功能。</p>\r\n*<p>可以继承此类，但不要直接实例化此类，因为有些方法需要由子类实现。</p>\r\n*/\r\n//class laya.display.AnimationPlayerBase extends laya.display.Sprite\r\nvar AnimationPlayerBase=(function(_super){\r\n\tfunction AnimationPlayerBase(){\r\n\t\t/**\r\n\t\t*是否循环播放，调用play(...)方法时，会将此值设置为指定的参数值。\r\n\t\t*/\r\n\t\tthis.loop=false;\r\n\t\t/**\r\n\t\t*<p>播放顺序类型：AnimationPlayerBase.WRAP_POSITIVE为正序播放，AnimationPlayerBase.WRAP_REVERSE为倒序播放，AnimationPlayerBase.WRAP_PINGPONG为pingpong播放(当按指定顺序播放完结尾后，如果继续播发，则会改变播放顺序)。</p>\r\n\t\t*<p>默认为正序播放。</p>\r\n\t\t*/\r\n\t\tthis.wrapMode=0;\r\n\t\t/**@private */\r\n\t\tthis._index=0;\r\n\t\t/**@private */\r\n\t\tthis._count=0;\r\n\t\t/**@private */\r\n\t\tthis._isPlaying=false;\r\n\t\t/**@private */\r\n\t\tthis._labels=null;\r\n\t\t/**是否是逆序播放*/\r\n\t\tthis._isReverse=false;\r\n\t\t/**@private */\r\n\t\tthis._frameRateChanged=false;\r\n\t\t/**@private */\r\n\t\tthis._controlNode=null;\r\n\t\t/**@private */\r\n\t\tthis._actionName=null;\r\n\t\tAnimationPlayerBase.__super.call(this);\r\n\t\tthis._interval=Config.animationInterval;\r\n\t\tthis._setUpNoticeType(/*laya.display.Node.NOTICE_DISPLAY*/0x1);\r\n\t}\r\n\r\n\t__class(AnimationPlayerBase,'laya.display.AnimationPlayerBase',_super);\r\n\tvar __proto=AnimationPlayerBase.prototype;\r\n\t/**\r\n\t*<p>开始播放动画。play(...)方法被设计为在创建实例后的任何时候都可以被调用，当相应的资源加载完毕、调用动画帧填充方法(set frames)或者将实例显示在舞台上时，会判断是否正在播放中，如果是，则进行播放。</p>\r\n\t*<p>配合wrapMode属性，可设置动画播放顺序类型。</p>\r\n\t*@param start （可选）指定动画播放开始的索引(int)或帧标签(String)。帧标签可以通过addLabel(...)和removeLabel(...)进行添加和删除。\r\n\t*@param loop （可选）是否循环播放。\r\n\t*@param name （可选）动画名称。\r\n\t*@param showWarn（可选）是否动画不存在时打印警告\r\n\t*/\r\n\t__proto.play=function(start,loop,name,showWarn){\r\n\t\t(start===void 0)&& (start=0);\r\n\t\t(loop===void 0)&& (loop=true);\r\n\t\t(name===void 0)&& (name=\"\");\r\n\t\t(showWarn===void 0)&& (showWarn=true);\r\n\t\tthis._isPlaying=true;\r\n\t\tthis.index=((typeof start=='string'))? this._getFrameByLabel(start):start;\r\n\t\tthis.loop=loop;\r\n\t\tthis._actionName=name;\r\n\t\tthis._isReverse=this.wrapMode==1;\r\n\t\tif (this.interval > 0){\r\n\t\t\tthis.timerLoop(this.interval,this,this._frameLoop,null,true,true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._getFrameByLabel=function(label){\r\n\t\tvar i=0;\r\n\t\tfor (i=0;i < this._count;i++){\r\n\t\t\tif (this._labels[i] && (this._labels [i]).indexOf(label)>=0)return i;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._frameLoop=function(){\r\n\t\tif (this._isReverse){\r\n\t\t\tthis._index--;\r\n\t\t\tif (this._index < 0){\r\n\t\t\t\tif (this.loop){\r\n\t\t\t\t\tif (this.wrapMode==2){\r\n\t\t\t\t\t\tthis._index=this._count > 0 ? 1 :0;\r\n\t\t\t\t\t\tthis._isReverse=false;\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tthis._index=this._count-1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tthis._index=0;\r\n\t\t\t\t\tthis.stop();\r\n\t\t\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tthis._index++;\r\n\t\t\tif (this._index >=this._count){\r\n\t\t\t\tif (this.loop){\r\n\t\t\t\t\tif (this.wrapMode==2){\r\n\t\t\t\t\t\tthis._index=this._count-2 >=0 ? this._count-2 :0;\r\n\t\t\t\t\t\tthis._isReverse=true;\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tthis._index=0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tthis._index--;\r\n\t\t\t\t\tthis.stop();\r\n\t\t\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.index=this._index;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setControlNode=function(node){\r\n\t\tif (this._controlNode){\r\n\t\t\tthis._controlNode.off(/*laya.events.Event.DISPLAY*/\"display\",this,this._checkResumePlaying);\r\n\t\t\tthis._controlNode.off(/*laya.events.Event.UNDISPLAY*/\"undisplay\",this,this._checkResumePlaying);\r\n\t\t}\r\n\t\tthis._controlNode=node;\r\n\t\tif (node && node !=this){\r\n\t\t\tnode.on(/*laya.events.Event.DISPLAY*/\"display\",this,this._checkResumePlaying);\r\n\t\t\tnode.on(/*laya.events.Event.UNDISPLAY*/\"undisplay\",this,this._checkResumePlaying);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setDisplay=function(value){\r\n\t\t_super.prototype._setDisplay.call(this,value);\r\n\t\tthis._checkResumePlaying();\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._checkResumePlaying=function(){\r\n\t\tif (this._isPlaying){\r\n\t\t\tif (this._controlNode.displayedInStage)this.play(this._index,this.loop,this._actionName);\r\n\t\t\telse this.clearTimer(this,this._frameLoop);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*停止动画播放。\r\n\t*/\r\n\t__proto.stop=function(){\r\n\t\tthis._isPlaying=false;\r\n\t\tthis.clearTimer(this,this._frameLoop);\r\n\t}\r\n\r\n\t/**\r\n\t*增加一个帧标签到指定索引的帧上。当动画播放到此索引的帧时会派发Event.LABEL事件，派发事件是在完成当前帧画面更新之后。\r\n\t*@param label 帧标签名称\r\n\t*@param index 帧索引\r\n\t*/\r\n\t__proto.addLabel=function(label,index){\r\n\t\tif (!this._labels)this._labels={};\r\n\t\tif (!this._labels[index])this._labels[index]=[];\r\n\t\tthis._labels[index].push(label);\r\n\t}\r\n\r\n\t/**\r\n\t*删除指定的帧标签。\r\n\t*@param label 帧标签名称。注意：如果为空，则删除所有帧标签！\r\n\t*/\r\n\t__proto.removeLabel=function(label){\r\n\t\tif (!label)this._labels=null;\r\n\t\telse if (this._labels){\r\n\t\t\tfor (var name in this._labels){\r\n\t\t\t\tthis._removeLabelFromLabelList(this._labels[name],label);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._removeLabelFromLabelList=function(list,label){\r\n\t\tif (!list)return;\r\n\t\tfor (var i=list.length-1;i >=0;i--){\r\n\t\t\tif (list[i]==label){\r\n\t\t\t\tlist.splice(i,1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*将动画切换到指定帧并停在那里。\r\n\t*@param position 帧索引或帧标签\r\n\t*/\r\n\t__proto.gotoAndStop=function(position){\r\n\t\tthis.index=((typeof position=='string'))? this._getFrameByLabel(position):position;\r\n\t\tthis.stop();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*显示到某帧\r\n\t*@param value 帧索引\r\n\t*/\r\n\t__proto._displayToIndex=function(value){}\r\n\t/**\r\n\t*停止动画播放，并清理对象属性。之后可存入对象池，方便对象复用。\r\n\t*/\r\n\t__proto.clear=function(){\r\n\t\tthis.stop();\r\n\t\tthis._labels=null;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>动画播放的帧间隔时间(单位：毫秒)。默认值依赖于Config.animationInterval=50，通过Config.animationInterval可以修改默认帧间隔时间。</p>\r\n\t*<p>要想为某动画设置独立的帧间隔时间，可以使用set interval，注意：如果动画正在播放，设置后会重置帧循环定时器的起始时间为当前时间，也就是说，如果频繁设置interval，会导致动画帧更新的时间间隔会比预想的要慢，甚至不更新。</p>\r\n\t*/\r\n\t__getset(0,__proto,'interval',function(){\r\n\t\treturn this._interval;\r\n\t\t},function(value){\r\n\t\tif (this._interval !=value){\r\n\t\t\tthis._frameRateChanged=true;\r\n\t\t\tthis._interval=value;\r\n\t\t\tif (this._isPlaying && value > 0){\r\n\t\t\t\tthis.timerLoop(value,this,this._frameLoop,null,true,true);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*是否正在播放中。\r\n\t*/\r\n\t__getset(0,__proto,'isPlaying',function(){\r\n\t\treturn this._isPlaying;\r\n\t});\r\n\r\n\t/**\r\n\t*动画当前帧的索引。\r\n\t*/\r\n\t__getset(0,__proto,'index',function(){\r\n\t\treturn this._index;\r\n\t\t},function(value){\r\n\t\tthis._index=value;\r\n\t\tthis._displayToIndex(value);\r\n\t\tif (this._labels && this._labels[value]){\r\n\t\t\tvar tArr=this._labels[value];\r\n\t\t\tfor (var i=0,len=tArr.length;i < len;i++){\r\n\t\t\t\tthis.event(/*laya.events.Event.LABEL*/\"label\",tArr[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*当前动画中帧的总数。\r\n\t*/\r\n\t__getset(0,__proto,'count',function(){\r\n\t\treturn this._count;\r\n\t});\r\n\r\n\tAnimationPlayerBase.WRAP_POSITIVE=0;\r\n\tAnimationPlayerBase.WRAP_REVERSE=1;\r\n\tAnimationPlayerBase.WRAP_PINGPONG=2;\r\n\treturn AnimationPlayerBase;\r\n})(Sprite)\r\n\r\n\r\n/**\r\n*<p> <code>Text</code> 类用于创建显示对象以显示文本。</p>\r\n*<p>\r\n*注意：如果运行时系统找不到设定的字体，则用系统默认的字体渲染文字，从而导致显示异常。(通常电脑上显示正常，在一些移动端因缺少设置的字体而显示异常)。\r\n*</p>\r\n*@example\r\n*package\r\n*{\r\n\t*import laya.display.Text;\r\n\t*public class Text_Example\r\n\t*{\r\n\t\t*public function Text_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*onInit();\r\n\t\t\t*}\r\n\t\t*private function onInit():void\r\n\t\t*{\r\n\t\t\t*var text:Text=new Text();//创建一个 Text 类的实例对象 text 。\r\n\t\t\t*text.text=\"这个是一个 Text 文本示例。\";\r\n\t\t\t*text.color=\"#008fff\";//设置 text 的文本颜色。\r\n\t\t\t*text.font=\"Arial\";//设置 text 的文本字体。\r\n\t\t\t*text.bold=true;//设置 text 的文本显示为粗体。\r\n\t\t\t*text.fontSize=30;//设置 text 的字体大小。\r\n\t\t\t*text.wordWrap=true;//设置 text 的文本自动换行。\r\n\t\t\t*text.x=100;//设置 text 对象的属性 x 的值，用于控制 text 对象的显示位置。\r\n\t\t\t*text.y=100;//设置 text 对象的属性 y 的值，用于控制 text 对象的显示位置。\r\n\t\t\t*text.width=300;//设置 text 的宽度。\r\n\t\t\t*text.height=200;//设置 text 的高度。\r\n\t\t\t*text.italic=true;//设置 text 的文本显示为斜体。\r\n\t\t\t*text.borderColor=\"#fff000\";//设置 text 的文本边框颜色。\r\n\t\t\t*Laya.stage.addChild(text);//将 text 添加到显示列表。\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Text_Example();\r\n*function Text_Example()\r\n*{\r\n\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t*onInit();\r\n\t*}\r\n*function onInit()\r\n*{\r\n\t*var text=new laya.display.Text();//创建一个 Text 类的实例对象 text 。\r\n\t*text.text=\"这个是一个 Text 文本示例。\";\r\n\t*text.color=\"#008fff\";//设置 text 的文本颜色。\r\n\t*text.font=\"Arial\";//设置 text 的文本字体。\r\n\t*text.bold=true;//设置 text 的文本显示为粗体。\r\n\t*text.fontSize=30;//设置 text 的字体大小。\r\n\t*text.wordWrap=true;//设置 text 的文本自动换行。\r\n\t*text.x=100;//设置 text 对象的属性 x 的值，用于控制 text 对象的显示位置。\r\n\t*text.y=100;//设置 text 对象的属性 y 的值，用于控制 text 对象的显示位置。\r\n\t*text.width=300;//设置 text 的宽度。\r\n\t*text.height=200;//设置 text 的高度。\r\n\t*text.italic=true;//设置 text 的文本显示为斜体。\r\n\t*text.borderColor=\"#fff000\";//设置 text 的文本边框颜色。\r\n\t*Laya.stage.addChild(text);//将 text 添加到显示列表。\r\n\t*}\r\n*@example\r\n*class Text_Example {\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*this.onInit();\r\n\t\t*}\r\n\t*private onInit():void {\r\n\t\t*var text:laya.display.Text=new laya.display.Text();//创建一个 Text 类的实例对象 text 。\r\n\t\t*text.text=\"这个是一个 Text 文本示例。\";\r\n\t\t*text.color=\"#008fff\";//设置 text 的文本颜色。\r\n\t\t*text.font=\"Arial\";//设置 text 的文本字体。\r\n\t\t*text.bold=true;//设置 text 的文本显示为粗体。\r\n\t\t*text.fontSize=30;//设置 text 的字体大小。\r\n\t\t*text.wordWrap=true;//设置 text 的文本自动换行。\r\n\t\t*text.x=100;//设置 text 对象的属性 x 的值，用于控制 text 对象的显示位置。\r\n\t\t*text.y=100;//设置 text 对象的属性 y 的值，用于控制 text 对象的显示位置。\r\n\t\t*text.width=300;//设置 text 的宽度。\r\n\t\t*text.height=200;//设置 text 的高度。\r\n\t\t*text.italic=true;//设置 text 的文本显示为斜体。\r\n\t\t*text.borderColor=\"#fff000\";//设置 text 的文本边框颜色。\r\n\t\t*Laya.stage.addChild(text);//将 text 添加到显示列表。\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.display.Text extends laya.display.Sprite\r\nvar Text=(function(_super){\r\n\tfunction Text(){\r\n\t\t/**@private */\r\n\t\tthis._clipPoint=null;\r\n\t\t/**当前使用的位置字体。*/\r\n\t\tthis._currBitmapFont=null;\r\n\t\t/**@private 表示文本内容字符串。*/\r\n\t\tthis._text=null;\r\n\t\t/**@private 表示文本内容是否发生改变。*/\r\n\t\tthis._isChanged=false;\r\n\t\t/**@private 表示文本的宽度，以像素为单位。*/\r\n\t\tthis._textWidth=0;\r\n\t\t/**@private 表示文本的高度，以像素为单位。*/\r\n\t\tthis._textHeight=0;\r\n\t\t/**@private 存储文字行数信息。*/\r\n\t\tthis._lines=[];\r\n\t\t/**@private 保存每行宽度*/\r\n\t\tthis._lineWidths=[];\r\n\t\t/**@private 文本的内容位置 X 轴信息。*/\r\n\t\tthis._startX=NaN;\r\n\t\t/**@private 文本的内容位置X轴信息。 */\r\n\t\tthis._startY=NaN;\r\n\t\t/**@private 当前可视行索引。*/\r\n\t\tthis._lastVisibleLineIndex=-1;\r\n\t\t/**@private 当前可视行索引。*/\r\n\t\tthis._words=null;\r\n\t\t/**@private */\r\n\t\tthis._charSize={};\r\n\t\t/**\r\n\t\t*是否显示下划线。\r\n\t\t*/\r\n\t\tthis.underline=false;\r\n\t\t/**\r\n\t\t*下划线的颜色，为null则使用字体颜色。\r\n\t\t*/\r\n\t\tthis._underlineColor=null;\r\n\t\tText.__super.call(this);\r\n\t\tthis.overflow=Text.VISIBLE;\r\n\t\tthis._style=new CSSStyle(this);\r\n\t\t(this._style).wordWrap=false;\r\n\t}\r\n\r\n\t__class(Text,'laya.display.Text',_super);\r\n\tvar __proto=Text.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._lines=null;\r\n\t\tif (this._words){\r\n\t\t\tthis._words.length=0;\r\n\t\t\tthis._words=null;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*@inheritDoc\r\n\t*/\r\n\t__proto._getBoundPointsM=function(ifRotate){\r\n\t\t(ifRotate===void 0)&& (ifRotate=false);\r\n\t\tvar rec=Rectangle.TEMP;\r\n\t\trec.setTo(0,0,this.width,this.height);\r\n\t\treturn rec._getBoundPoints();\r\n\t}\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__proto.getGraphicBounds=function(realSize){\r\n\t\t(realSize===void 0)&& (realSize=false);\r\n\t\tvar rec=Rectangle.TEMP;\r\n\t\trec.setTo(0,0,this.width,this.height);\r\n\t\treturn rec;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*@inheritDoc\r\n\t*/\r\n\t__proto._getCSSStyle=function(){\r\n\t\treturn this._style;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>根据指定的文本，从语言包中取当前语言的文本内容。并对此文本中的{i}文本进行替换。</p>\r\n\t*<p>设置Text.langPacks语言包后，即可使用lang获取里面的语言</p>\r\n\t*<p>例如：\r\n\t*<li>（1）text 的值为“我的名字”，先取到这个文本对应的当前语言版本里的值“My name”，将“My name”设置为当前文本的内容。</li>\r\n\t*<li>（2）text 的值为“恭喜你赢得{0}个钻石，{1}经验。”，arg1 的值为100，arg2 的值为200。\r\n\t*则先取到这个文本对应的当前语言版本里的值“Congratulations on your winning {0}diamonds,{1}experience.”，\r\n\t*然后将文本里的{0}、{1}，依据括号里的数字从0开始替换为 arg1、arg2 的值。\r\n\t*将替换处理后的文本“Congratulations on your winning 100 diamonds,200 experience.”设置为当前文本的内容。\r\n\t*</li>\r\n\t*</p>\r\n\t*@param text 文本内容。\r\n\t*@param ...args 文本替换参数。\r\n\t*/\r\n\t__proto.lang=function(text,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10){\r\n\t\ttext=Text.langPacks && Text.langPacks[text] ? Text.langPacks[text] :text;\r\n\t\tif (arguments.length < 2){\r\n\t\t\tthis._text=text;\r\n\t\t\t}else {\r\n\t\t\tfor (var i=0,n=arguments.length;i < n;i++){\r\n\t\t\t\ttext=text.replace(\"{\"+i+\"}\",arguments[i+1]);\r\n\t\t\t}\r\n\t\t\tthis._text=text;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._isPassWordMode=function(){\r\n\t\tvar style=this._style;\r\n\t\tvar password=style.password;\r\n\t\tif ((\"prompt\" in this)&& this['prompt']==this._text)\r\n\t\t\tpassword=false;\r\n\t\treturn password;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._getPassWordTxt=function(txt){\r\n\t\tvar len=txt.length;\r\n\t\tvar word;\r\n\t\tword=\"\";\r\n\t\tfor (var j=len;j > 0;j--){\r\n\t\t\tword+=\"●\";\r\n\t\t}\r\n\t\treturn word;\r\n\t}\r\n\r\n\t/**\r\n\t*渲染文字。\r\n\t*@param begin 开始渲染的行索引。\r\n\t*@param visibleLineCount 渲染的行数。\r\n\t*/\r\n\t__proto.renderText=function(begin,visibleLineCount){\r\n\t\tvar graphics=this.graphics;\r\n\t\tgraphics.clear(true);\r\n\t\tvar ctxFont=(this.italic ? \"italic \" :\"\")+(this.bold ? \"bold \" :\"\")+this.fontSize+\"px \"+(Browser.onIPhone ? (laya.display.Text._fontFamilyMap[this.font] || this.font):this.font);\r\n\t\tBrowser.context.font=ctxFont;\r\n\t\tvar padding=this.padding;\r\n\t\tvar startX=padding[3];\r\n\t\tvar textAlgin=\"left\";\r\n\t\tvar lines=this._lines;\r\n\t\tvar lineHeight=this.leading+this._charSize.height;\r\n\t\tvar tCurrBitmapFont=this._currBitmapFont;\r\n\t\tif (tCurrBitmapFont){\r\n\t\t\tlineHeight=this.leading+tCurrBitmapFont.getMaxHeight();\r\n\t\t};\r\n\t\tvar startY=padding[0];\r\n\t\tif ((!tCurrBitmapFont)&& this._width > 0 && this._textWidth <=this._width){\r\n\t\t\tif (this.align==\"right\"){\r\n\t\t\t\ttextAlgin=\"right\";\r\n\t\t\t\tstartX=this._width-padding[1];\r\n\t\t\t\t}else if (this.align==\"center\"){\r\n\t\t\t\ttextAlgin=\"center\";\r\n\t\t\t\tstartX=this._width *0.5+padding[3]-padding[1];\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._height > 0){\r\n\t\t\tvar tempVAlign=(this._textHeight > this._height)? \"top\" :this.valign;\r\n\t\t\tif (tempVAlign===\"middle\")\r\n\t\t\t\tstartY=(this._height-visibleLineCount *lineHeight)*0.5+padding[0]-padding[2];\r\n\t\t\telse if (tempVAlign===\"bottom\")\r\n\t\t\tstartY=this._height-visibleLineCount *lineHeight-padding[2];\r\n\t\t};\r\n\t\tvar style=this._style;\r\n\t\tif (tCurrBitmapFont && tCurrBitmapFont.autoScaleSize){\r\n\t\t\tvar bitmapScale=tCurrBitmapFont.fontSize / this.fontSize;\r\n\t\t}\r\n\t\tif (this._clipPoint){\r\n\t\t\tgraphics.save();\r\n\t\t\tif (tCurrBitmapFont && tCurrBitmapFont.autoScaleSize){\r\n\t\t\t\tvar tClipWidth=0;\r\n\t\t\t\tvar tClipHeight=0;\r\n\t\t\t\tthis._width ? tClipWidth=(this._width-padding[3]-padding[1]):tClipWidth=this._textWidth;\r\n\t\t\t\tthis._height ? tClipHeight=(this._height-padding[0]-padding[2]):tClipHeight=this._textHeight;\r\n\t\t\t\ttClipWidth *=bitmapScale;\r\n\t\t\t\ttClipHeight *=bitmapScale;\r\n\t\t\t\tgraphics.clipRect(padding[3],padding[0],tClipWidth,tClipHeight);\r\n\t\t\t\t}else {\r\n\t\t\t\tgraphics.clipRect(padding[3],padding[0],this._width ? (this._width-padding[3]-padding[1]):this._textWidth,this._height ? (this._height-padding[0]-padding[2]):this._textHeight);\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar password=style.password;\r\n\t\tif ((\"prompt\" in this)&& this['prompt']==this._text)\r\n\t\t\tpassword=false;\r\n\t\tvar x=0,y=0;\r\n\t\tvar end=Math.min(this._lines.length,visibleLineCount+begin)|| 1;\r\n\t\tfor (var i=begin;i < end;i++){\r\n\t\t\tvar word=lines[i];\r\n\t\t\tvar _word;\r\n\t\t\tif (password){\r\n\t\t\t\tvar len=word.length;\r\n\t\t\t\tword=\"\";\r\n\t\t\t\tfor (var j=len;j > 0;j--){\r\n\t\t\t\t\tword+=\"●\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tx=startX-(this._clipPoint ? this._clipPoint.x :0);\r\n\t\t\ty=startY+lineHeight *i-(this._clipPoint ? this._clipPoint.y :0);\r\n\t\t\tthis.underline && this.drawUnderline(textAlgin,x,y,i);\r\n\t\t\tif (tCurrBitmapFont){\r\n\t\t\t\tvar tWidth=this.width;\r\n\t\t\t\tif (tCurrBitmapFont.autoScaleSize){\r\n\t\t\t\t\ttWidth=this.width *bitmapScale;\r\n\t\t\t\t}\r\n\t\t\t\ttCurrBitmapFont.drawText(word,this,x,y,this.align,tWidth);\r\n\t\t\t\t}else {\r\n\t\t\t\tif (Render.isWebGL){\r\n\t\t\t\t\tthis._words || (this._words=[]);\r\n\t\t\t\t\t_word=this._words.length > (i-begin)? this._words[i-begin] :new WordText();\r\n\t\t\t\t\t_word.setText(word);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\t_word=word;\r\n\t\t\t\t}\r\n\t\t\t\tstyle.stroke ? graphics.fillBorderText(_word,x,y,ctxFont,this.color,style.strokeColor,style.stroke,textAlgin):graphics.fillText(_word,x,y,ctxFont,this.color,textAlgin);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (tCurrBitmapFont && tCurrBitmapFont.autoScaleSize){\r\n\t\t\tvar tScale=1 / bitmapScale;\r\n\t\t\tthis.scale(tScale,tScale);\r\n\t\t}\r\n\t\tif (this._clipPoint)\r\n\t\t\tgraphics.restore();\r\n\t\tthis._startX=startX;\r\n\t\tthis._startY=startY;\r\n\t}\r\n\r\n\t/**\r\n\t*绘制下划线\r\n\t*@param x 本行坐标\r\n\t*@param y 本行坐标\r\n\t*@param lineIndex 本行索引\r\n\t*/\r\n\t__proto.drawUnderline=function(align,x,y,lineIndex){\r\n\t\tvar lineWidth=this._lineWidths[lineIndex];\r\n\t\tswitch (align){\r\n\t\t\tcase 'center':\r\n\t\t\t\tx-=lineWidth / 2;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 'right':\r\n\t\t\t\tx-=lineWidth;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 'left':\r\n\t\t\tdefault :\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\ty+=this._charSize.height;\r\n\t\tthis._graphics.drawLine(x,y,x+lineWidth,y,this.underlineColor || this.color,1);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>排版文本。</p>\r\n\t*<p>进行宽高计算，渲染、重绘文本。</p>\r\n\t*/\r\n\t__proto.typeset=function(){\r\n\t\tthis._isChanged=false;\r\n\t\tif (!this._text){\r\n\t\t\tthis._clipPoint=null;\r\n\t\t\tthis._textWidth=this._textHeight=0;\r\n\t\t\tthis.graphics.clear(true);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tBrowser.context.font=this._getCSSStyle().font;\r\n\t\tthis._lines.length=0;\r\n\t\tthis._lineWidths.length=0;\r\n\t\tif (this._isPassWordMode()){\r\n\t\t\tthis.parseLines(this._getPassWordTxt(this._text));\r\n\t\t}else\r\n\t\tthis.parseLines(this._text);\r\n\t\tthis.evalTextSize();\r\n\t\tif (this.checkEnabledViewportOrNot())\r\n\t\t\tthis._clipPoint || (this._clipPoint=new Point(0,0));\r\n\t\telse\r\n\t\tthis._clipPoint=null;\r\n\t\tvar lineCount=this._lines.length;\r\n\t\tif (this.overflow !=Text.VISIBLE){\r\n\t\t\tvar func=this.overflow==Text.HIDDEN ? Math.floor :Math.ceil;\r\n\t\t\tlineCount=Math.min(lineCount,func((this.height-this.padding[0]-this.padding[2])/ (this.leading+this._charSize.height)));\r\n\t\t};\r\n\t\tvar startLine=this.scrollY / (this._charSize.height+this.leading)| 0;\r\n\t\tthis.renderText(startLine,lineCount);\r\n\t\tthis.repaint();\r\n\t}\r\n\r\n\t__proto.evalTextSize=function(){\r\n\t\tvar nw=NaN,nh=NaN;\r\n\t\tnw=Math.max.apply(this,this._lineWidths);\r\n\t\tif (this._currBitmapFont)\r\n\t\t\tnh=this._lines.length *(this._currBitmapFont.getMaxHeight()+this.leading)+this.padding[0]+this.padding[2];\r\n\t\telse\r\n\t\tnh=this._lines.length *(this._charSize.height+this.leading)+this.padding[0]+this.padding[2];\r\n\t\tif (nw !=this._textWidth || nh !=this._textHeight){\r\n\t\t\tthis._textWidth=nw;\r\n\t\t\tthis._textHeight=nh;\r\n\t\t\tif (!this._width || !this._height)\r\n\t\t\t\tthis.conchModel && this.conchModel.size(this._width || this._textWidth,this._height || this._textHeight);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.checkEnabledViewportOrNot=function(){\r\n\t\treturn this.overflow==Text.SCROLL && ((this._width > 0 && this._textWidth > this._width)|| (this._height > 0 && this._textHeight > this._height));\r\n\t}\r\n\r\n\t/**\r\n\t*<p>快速更改显示文本。不进行排版计算，效率较高。</p>\r\n\t*<p>如果只更改文字内容，不更改文字样式，建议使用此接口，能提高效率。</p>\r\n\t*@param text 文本内容。\r\n\t*/\r\n\t__proto.changeText=function(text){\r\n\t\tif (this._text!==text){\r\n\t\t\tthis.lang(text+\"\");\r\n\t\t\tif (this._graphics && this._graphics.replaceText(this._text)){\r\n\t\t\t\t}else {\r\n\t\t\t\tthis.typeset();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*分析文本换行。\r\n\t*/\r\n\t__proto.parseLines=function(text){\r\n\t\tvar needWordWrapOrTruncate=this.wordWrap || this.overflow==Text.HIDDEN;\r\n\t\tif (needWordWrapOrTruncate){\r\n\t\t\tvar wordWrapWidth=this.getWordWrapWidth();\r\n\t\t}\r\n\t\tif (this._currBitmapFont){\r\n\t\t\tthis._charSize.width=this._currBitmapFont.getMaxWidth();\r\n\t\t\tthis._charSize.height=this._currBitmapFont.getMaxHeight();\r\n\t\t\t}else {\r\n\t\t\tvar measureResult=Browser.context.measureText(Text._testWord);\r\n\t\t\tthis._charSize.width=measureResult.width;\r\n\t\t\tthis._charSize.height=(measureResult.height || this.fontSize);\r\n\t\t};\r\n\t\tvar lines=text.replace(/\\r\\n/g,\"\\n\").split(\"\\n\");\r\n\t\tfor (var i=0,n=lines.length;i < n;i++){\r\n\t\t\tvar line=lines[i];\r\n\t\t\tif (needWordWrapOrTruncate)\r\n\t\t\t\tthis.parseLine(line,wordWrapWidth);\r\n\t\t\telse {\r\n\t\t\t\tthis._lineWidths.push(this.getTextWidth(line));\r\n\t\t\t\tthis._lines.push(line);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*解析行文本。\r\n\t*@param line 某行的文本。\r\n\t*@param wordWrapWidth 文本的显示宽度。\r\n\t*/\r\n\t__proto.parseLine=function(line,wordWrapWidth){\r\n\t\tvar ctx=Browser.context;\r\n\t\tvar lines=this._lines;\r\n\t\tvar maybeIndex=0;\r\n\t\tvar execResult;\r\n\t\tvar charsWidth=NaN;\r\n\t\tvar wordWidth=NaN;\r\n\t\tvar startIndex=0;\r\n\t\tcharsWidth=this.getTextWidth(line);\r\n\t\tif (charsWidth <=wordWrapWidth){\r\n\t\t\tlines.push(line);\r\n\t\t\tthis._lineWidths.push(charsWidth);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tcharsWidth=this._charSize.width;\r\n\t\tmaybeIndex=Math.floor(wordWrapWidth / charsWidth);\r\n\t\t(maybeIndex==0)&& (maybeIndex=1);\r\n\t\tcharsWidth=this.getTextWidth(line.substring(0,maybeIndex));\r\n\t\twordWidth=charsWidth;\r\n\t\tfor (var j=maybeIndex,m=line.length;j < m;j++){\r\n\t\t\tcharsWidth=this.getTextWidth(line.charAt(j));\r\n\t\t\twordWidth+=charsWidth;\r\n\t\t\tif (wordWidth > wordWrapWidth){\r\n\t\t\t\tif (this.wordWrap){\r\n\t\t\t\t\tvar newLine=line.substring(startIndex,j);\r\n\t\t\t\t\tif (newLine.charCodeAt(newLine.length-1)< 255){\r\n\t\t\t\t\t\texecResult=/(?:\\w|-)+$/.exec(newLine);\r\n\t\t\t\t\t\tif (execResult){\r\n\t\t\t\t\t\t\tj=execResult.index+startIndex;\r\n\t\t\t\t\t\t\tif (execResult.index==0)\r\n\t\t\t\t\t\t\t\tj+=newLine.length;\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tnewLine=line.substring(startIndex,j);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}else\r\n\t\t\t\t\tif (Text.RightToLeft){\r\n\t\t\t\t\t\texecResult=/([\\u0600-\\u06FF])+$/.exec(newLine);\r\n\t\t\t\t\t\tif(execResult){\r\n\t\t\t\t\t\t\tj=execResult.index+startIndex;\r\n\t\t\t\t\t\t\tif (execResult.index==0)\r\n\t\t\t\t\t\t\t\tj+=newLine.length;\r\n\t\t\t\t\t\t\telse\r\n\t\t\t\t\t\t\tnewLine=line.substring(startIndex,j);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlines.push(newLine);\r\n\t\t\t\t\tthis._lineWidths.push(wordWidth-charsWidth);\r\n\t\t\t\t\tstartIndex=j;\r\n\t\t\t\t\tif (j+maybeIndex < m){\r\n\t\t\t\t\t\tj+=maybeIndex;\r\n\t\t\t\t\t\tcharsWidth=this.getTextWidth(line.substring(startIndex,j));\r\n\t\t\t\t\t\twordWidth=charsWidth;\r\n\t\t\t\t\t\tj--;\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tlines.push(line.substring(startIndex,m));\r\n\t\t\t\t\t\tthis._lineWidths.push(this.getTextWidth(lines[lines.length-1]));\r\n\t\t\t\t\t\tstartIndex=-1;\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}else if (this.overflow==Text.HIDDEN){\r\n\t\t\t\t\tlines.push(line.substring(0,j));\r\n\t\t\t\t\tthis._lineWidths.push(this.getTextWidth(lines[lines.length-1]));\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.wordWrap && startIndex !=-1){\r\n\t\t\tlines.push(line.substring(startIndex,m));\r\n\t\t\tthis._lineWidths.push(this.getTextWidth(lines[lines.length-1]));\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.getTextWidth=function(text){\r\n\t\tif (this._currBitmapFont)\r\n\t\t\treturn this._currBitmapFont.getTextWidth(text);\r\n\t\telse\r\n\t\treturn Browser.context.measureText(text).width;\r\n\t}\r\n\r\n\t/**\r\n\t*获取换行所需的宽度。\r\n\t*/\r\n\t__proto.getWordWrapWidth=function(){\r\n\t\tvar p=this.padding;\r\n\t\tvar w=NaN;\r\n\t\tif (this._currBitmapFont && this._currBitmapFont.autoScaleSize)\r\n\t\t\tw=this._width *(this._currBitmapFont.fontSize / this.fontSize);\r\n\t\telse\r\n\t\tw=this._width;\r\n\t\tif (w <=0){\r\n\t\t\tw=this.wordWrap ? 100 :Browser.width;\r\n\t\t}\r\n\t\tw <=0 && (w=100);\r\n\t\treturn w-p[3]-p[1];\r\n\t}\r\n\r\n\t/**\r\n\t*返回字符在本类实例的父坐标系下的坐标。\r\n\t*@param charIndex 索引位置。\r\n\t*@param out （可选）输出的Point引用。\r\n\t*@return Point 字符在本类实例的父坐标系下的坐标。如果out参数不为空，则将结果赋值给指定的Point对象，否则创建一个新的Point对象返回。建议使用Point.TEMP作为out参数，可以省去Point对象创建和垃圾回收的开销，尤其是在需要频繁执行的逻辑中，比如帧循环和MOUSE_MOVE事件回调函数里面。\r\n\t*/\r\n\t__proto.getCharPoint=function(charIndex,out){\r\n\t\tthis._isChanged && Laya.timer.runCallLater(this,this.typeset);\r\n\t\tvar len=0,lines=this._lines,startIndex=0;\r\n\t\tfor (var i=0,n=lines.length;i < n;i++){\r\n\t\t\tlen+=lines[i].length;\r\n\t\t\tif (charIndex < len){\r\n\t\t\t\tvar line=i;\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\t\tstartIndex=len;\r\n\t\t};\r\n\t\tvar ctxFont=(this.italic ? \"italic \" :\"\")+(this.bold ? \"bold \" :\"\")+this.fontSize+\"px \"+this.font;\r\n\t\tBrowser.context.font=ctxFont;\r\n\t\tvar width=this.getTextWidth(this._text.substring(startIndex,charIndex));\r\n\t\tvar point=out || new Point();\r\n\t\treturn point.setTo(this._startX+width-(this._clipPoint ? this._clipPoint.x :0),this._startY+line *(this._charSize.height+this.leading)-(this._clipPoint ? this._clipPoint.y :0));\r\n\t}\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'width',function(){\r\n\t\tif (this._width)\r\n\t\t\treturn this._width;\r\n\t\treturn this.textWidth+this.padding[1]+this.padding[3];\r\n\t\t},function(value){\r\n\t\tif (value !=this._width){\r\n\t\t\tLaya.superSet(Sprite,this,'width',value);\r\n\t\t\tthis.isChanged=true;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示文本的宽度，以像素为单位。\r\n\t*/\r\n\t__getset(0,__proto,'textWidth',function(){\r\n\t\tthis._isChanged && Laya.timer.runCallLater(this,this.typeset);\r\n\t\treturn this._textWidth;\r\n\t});\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'height',function(){\r\n\t\tif (this._height)return this._height;\r\n\t\treturn this.textHeight+this.padding[0]+this.padding[2];\r\n\t\t},function(value){\r\n\t\tif (value !=this._height){\r\n\t\t\tLaya.superSet(Sprite,this,'height',value);\r\n\t\t\tthis.isChanged=true;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示文本的高度，以像素为单位。\r\n\t*/\r\n\t__getset(0,__proto,'textHeight',function(){\r\n\t\tthis._isChanged && Laya.timer.runCallLater(this,this.typeset);\r\n\t\treturn this._textHeight;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>边距信息。</p>\r\n\t*<p>数据格式：[上边距，右边距，下边距，左边距]（边距以像素为单位）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'padding',function(){\r\n\t\treturn this._getCSSStyle().padding;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().padding=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>指定文本是否为粗体字。</p>\r\n\t*<p>默认值为 false，这意味着不使用粗体字。如果值为 true，则文本为粗体字。</p>\r\n\t*/\r\n\t__getset(0,__proto,'bold',function(){\r\n\t\treturn this._getCSSStyle().bold;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().bold=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**当前文本的内容字符串。*/\r\n\t__getset(0,__proto,'text',function(){\r\n\t\treturn this._text || \"\";\r\n\t\t},function(value){\r\n\t\tif (this._text!==value){\r\n\t\t\tthis.lang(value+\"\");\r\n\t\t\tthis.isChanged=true;\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>表示文本的颜色值。可以通过 <code>Text.defaultColor</code> 设置默认颜色。</p>\r\n\t*<p>默认值为黑色。</p>\r\n\t*/\r\n\t__getset(0,__proto,'color',function(){\r\n\t\treturn this._getCSSStyle().color;\r\n\t\t},function(value){\r\n\t\tif (this._getCSSStyle().color !=value){\r\n\t\t\tthis._getCSSStyle().color=value;\r\n\t\t\tif (!this._isChanged && this._graphics){\r\n\t\t\t\tthis._graphics.replaceTextColor(this.color)\r\n\t\t\t\t}else {\r\n\t\t\t\tthis.isChanged=true;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>文本的字体名称，以字符串形式表示。</p>\r\n\t*<p>默认值为：\"Arial\"，可以通过Font.defaultFont设置默认字体。</p>\r\n\t*<p>如果运行时系统找不到设定的字体，则用系统默认的字体渲染文字，从而导致显示异常。(通常电脑上显示正常，在一些移动端因缺少设置的字体而显示异常)。</p>\r\n\t*@see laya.display.css.Font#defaultFamily\r\n\t*/\r\n\t__getset(0,__proto,'font',function(){\r\n\t\treturn this._getCSSStyle().fontFamily;\r\n\t\t},function(value){\r\n\t\tif (this._currBitmapFont){\r\n\t\t\tthis._currBitmapFont=null;\r\n\t\t\tthis.scale(1,1);\r\n\t\t}\r\n\t\tif (Text._bitmapFonts && Text._bitmapFonts[value]){\r\n\t\t\tthis._currBitmapFont=Text._bitmapFonts[value];\r\n\t\t}\r\n\t\tthis._getCSSStyle().fontFamily=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>指定文本的字体大小（以像素为单位）。</p>\r\n\t*<p>默认为20像素，可以通过 <code>Text.defaultSize</code> 设置默认大小。</p>\r\n\t*/\r\n\t__getset(0,__proto,'fontSize',function(){\r\n\t\treturn this._getCSSStyle().fontSize;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().fontSize=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>表示使用此文本格式的文本是否为斜体。</p>\r\n\t*<p>默认值为 false，这意味着不使用斜体。如果值为 true，则文本为斜体。</p>\r\n\t*/\r\n\t__getset(0,__proto,'italic',function(){\r\n\t\treturn this._getCSSStyle().italic;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().italic=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>表示文本的水平显示方式。</p>\r\n\t*<p><b>取值：</b>\r\n\t*<li>\"left\"： 居左对齐显示。</li>\r\n\t*<li>\"center\"： 居中对齐显示。</li>\r\n\t*<li>\"right\"： 居右对齐显示。</li>\r\n\t*</p>\r\n\t*/\r\n\t__getset(0,__proto,'align',function(){\r\n\t\treturn this._getCSSStyle().align;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().align=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>表示文本的垂直显示方式。</p>\r\n\t*<p><b>取值：</b>\r\n\t*<li>\"top\"： 居顶部对齐显示。</li>\r\n\t*<li>\"middle\"： 居中对齐显示。</li>\r\n\t*<li>\"bottom\"： 居底部对齐显示。</li>\r\n\t*</p>\r\n\t*/\r\n\t__getset(0,__proto,'valign',function(){\r\n\t\treturn this._getCSSStyle().valign;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().valign=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>表示文本是否自动换行，默认为false。</p>\r\n\t*<p>若值为true，则自动换行；否则不自动换行。</p>\r\n\t*/\r\n\t__getset(0,__proto,'wordWrap',function(){\r\n\t\treturn this._getCSSStyle().wordWrap;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().wordWrap=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*垂直行间距（以像素为单位）。\r\n\t*/\r\n\t__getset(0,__proto,'leading',function(){\r\n\t\treturn this._getCSSStyle().leading;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().leading=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*文本背景颜色，以字符串表示。\r\n\t*/\r\n\t__getset(0,__proto,'bgColor',function(){\r\n\t\treturn this._getCSSStyle().backgroundColor;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().backgroundColor=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*文本边框背景颜色，以字符串表示。\r\n\t*/\r\n\t__getset(0,__proto,'borderColor',function(){\r\n\t\treturn this._getCSSStyle().borderColor;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().borderColor=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>描边宽度（以像素为单位）。</p>\r\n\t*<p>默认值0，表示不描边。</p>\r\n\t*/\r\n\t__getset(0,__proto,'stroke',function(){\r\n\t\treturn this._getCSSStyle().stroke;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().stroke=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>描边颜色，以字符串表示。</p>\r\n\t*<p>默认值为 \"#000000\"（黑色）;</p>\r\n\t*/\r\n\t__getset(0,__proto,'strokeColor',function(){\r\n\t\treturn this._getCSSStyle().strokeColor;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().strokeColor=value;\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*一个布尔值，表示文本的属性是否有改变。若为true表示有改变。\r\n\t*/\r\n\t__getset(0,__proto,'isChanged',null,function(value){\r\n\t\tif (this._isChanged!==value){\r\n\t\t\tthis._isChanged=value;\r\n\t\t\tvalue && Laya.timer.callLater(this,this.typeset);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>设置横向滚动量。</p>\r\n\t*<p>即使设置超出滚动范围的值，也会被自动限制在可能的最大值处。</p>\r\n\t*/\r\n\t/**\r\n\t*获取横向滚动量。\r\n\t*/\r\n\t__getset(0,__proto,'scrollX',function(){\r\n\t\tif (!this._clipPoint)\r\n\t\t\treturn 0;\r\n\t\treturn this._clipPoint.x;\r\n\t\t},function(value){\r\n\t\tif (this.overflow !=Text.SCROLL || (this.textWidth < this._width || !this._clipPoint))\r\n\t\t\treturn;\r\n\t\tvalue=value < this.padding[3] ? this.padding[3] :value;\r\n\t\tvar maxScrollX=this._textWidth-this._width;\r\n\t\tvalue=value > maxScrollX ? maxScrollX :value;\r\n\t\tvar visibleLineCount=this._height / (this._charSize.height+this.leading)| 0+1;\r\n\t\tthis._clipPoint.x=value;\r\n\t\tthis.renderText(this._lastVisibleLineIndex,visibleLineCount);\r\n\t});\r\n\r\n\t/**\r\n\t*设置纵向滚动量（px)。即使设置超出滚动范围的值，也会被自动限制在可能的最大值处。\r\n\t*/\r\n\t/**\r\n\t*获取纵向滚动量。\r\n\t*/\r\n\t__getset(0,__proto,'scrollY',function(){\r\n\t\tif (!this._clipPoint)\r\n\t\t\treturn 0;\r\n\t\treturn this._clipPoint.y;\r\n\t\t},function(value){\r\n\t\tif (this.overflow !=Text.SCROLL || (this.textHeight < this._height || !this._clipPoint))\r\n\t\t\treturn;\r\n\t\tvalue=value < this.padding[0] ? this.padding[0] :value;\r\n\t\tvar maxScrollY=this._textHeight-this._height;\r\n\t\tvalue=value > maxScrollY ? maxScrollY :value;\r\n\t\tvar startLine=value / (this._charSize.height+this.leading)| 0;\r\n\t\tthis._lastVisibleLineIndex=startLine;\r\n\t\tvar visibleLineCount=(this._height / (this._charSize.height+this.leading)| 0)+1;\r\n\t\tthis._clipPoint.y=value;\r\n\t\tthis.renderText(startLine,visibleLineCount);\r\n\t});\r\n\r\n\t/**\r\n\t*获取横向可滚动最大值。\r\n\t*/\r\n\t__getset(0,__proto,'maxScrollX',function(){\r\n\t\treturn (this.textWidth < this._width)? 0 :this._textWidth-this._width;\r\n\t});\r\n\r\n\t/**\r\n\t*获取纵向可滚动最大值。\r\n\t*/\r\n\t__getset(0,__proto,'maxScrollY',function(){\r\n\t\treturn (this.textHeight < this._height)? 0 :this._textHeight-this._height;\r\n\t});\r\n\r\n\t__getset(0,__proto,'lines',function(){\r\n\t\tif (this._isChanged)\r\n\t\t\tthis.typeset();\r\n\t\treturn this._lines;\r\n\t});\r\n\r\n\t__getset(0,__proto,'underlineColor',function(){\r\n\t\treturn this._underlineColor;\r\n\t\t},function(value){\r\n\t\tthis._underlineColor=value;\r\n\t\tthis._isChanged=true;\r\n\t\tthis.typeset();\r\n\t});\r\n\r\n\tText.registerBitmapFont=function(name,bitmapFont){\r\n\t\tText._bitmapFonts || (Text._bitmapFonts={});\r\n\t\tText._bitmapFonts[name]=bitmapFont;\r\n\t}\r\n\r\n\tText.unregisterBitmapFont=function(name,destroy){\r\n\t\t(destroy===void 0)&& (destroy=true);\r\n\t\tif (Text._bitmapFonts && Text._bitmapFonts[name]){\r\n\t\t\tvar tBitmapFont=Text._bitmapFonts[name];\r\n\t\t\tif (destroy){\r\n\t\t\t\ttBitmapFont.destroy();\r\n\t\t\t}\r\n\t\t\tdelete Text._bitmapFonts[name];\r\n\t\t}\r\n\t}\r\n\r\n\tText.setTextRightToLeft=function(){\r\n\t\tvar style;\r\n\t\tstyle=Browser.canvas.source.style;\r\n\t\tstyle.display=\"none\";\r\n\t\tstyle.position=\"absolute\";\r\n\t\tstyle.direction=\"rtl\";\r\n\t\tRender._mainCanvas.source.style.direction=\"rtl\";\r\n\t\tlaya.display.Text.RightToLeft=true;\r\n\t\tBrowser.document.body.appendChild(Browser.canvas.source);\r\n\t}\r\n\r\n\tText.supportFont=function(font){\r\n\t\tBrowser.context.font=\"10px sans-serif\";\r\n\t\tvar defaultFontWidth=Browser.context.measureText(\"abcji\").width;\r\n\t\tBrowser.context.font=\"10px \"+font;\r\n\t\tvar customFontWidth=Browser.context.measureText(\"abcji\").width;\r\n\t\tconsole.log(defaultFontWidth,customFontWidth);\r\n\t\tif (defaultFontWidth===customFontWidth)return false;\r\n\t\telse return true;\r\n\t}\r\n\r\n\tText._testWord=\"游\";\r\n\tText.langPacks=null;\r\n\tText.VISIBLE=\"visible\";\r\n\tText.SCROLL=\"scroll\";\r\n\tText.HIDDEN=\"hidden\";\r\n\tText.CharacterCache=true;\r\n\tText.RightToLeft=false;\r\n\tText._bitmapFonts=null;\r\n\t__static(Text,\r\n\t['_fontFamilyMap',function(){return this._fontFamilyMap={\"报隶\" :\"报隶-简\",\"黑体\" :\"黑体-简\",\"楷体\" :\"楷体-简\",\"兰亭黑\" :\"兰亭黑-简\",\"隶变\" :\"隶变-简\",\"凌慧体\" :\"凌慧体-简\",\"翩翩体\" :\"翩翩体-简\",\"苹方\" :\"苹方-简\",\"手札体\" :\"手札体-简\",\"宋体\" :\"宋体-简\",\"娃娃体\" :\"娃娃体-简\",\"魏碑\" :\"魏碑-简\",\"行楷\" :\"行楷-简\",\"雅痞\" :\"雅痞-简\",\"圆体\" :\"圆体-简\"};}\r\n\t]);\r\n\treturn Text;\r\n})(Sprite)\r\n\r\n\r\n/**\r\n*<p> <code>Stage</code> 是舞台类，显示列表的根节点，所有显示对象都在舞台上显示。通过 Laya.stage 单例访问。</p>\r\n*<p>Stage提供几种适配模式，不同的适配模式会产生不同的画布大小，画布越大，渲染压力越大，所以要选择合适的适配方案。</p>\r\n*<p>Stage提供不同的帧率模式，帧率越高，渲染压力越大，越费电，合理使用帧率甚至动态更改帧率有利于改进手机耗电。</p>\r\n*/\r\n//class laya.display.Stage extends laya.display.Sprite\r\nvar Stage=(function(_super){\r\n\tfunction Stage(){\r\n\t\t/**当前焦点对象，此对象会影响当前键盘事件的派发主体。*/\r\n\t\tthis.focus=null;\r\n\t\t/**设计宽度（初始化时设置的宽度Laya.init(width,height)）*/\r\n\t\tthis.designWidth=0;\r\n\t\t/**设计高度（初始化时设置的高度Laya.init(width,height)）*/\r\n\t\tthis.designHeight=0;\r\n\t\t/**画布是否发生翻转。*/\r\n\t\tthis.canvasRotation=false;\r\n\t\t/**画布的旋转角度。*/\r\n\t\tthis.canvasDegree=0;\r\n\t\t/**\r\n\t\t*<p>设置是否渲染，设置为false，可以停止渲染，画面会停留到最后一次渲染上，减少cpu消耗，此设置不影响时钟。</p>\r\n\t\t*<p>比如非激活状态，可以设置renderingEnabled=false以节省消耗。</p>\r\n\t\t**/\r\n\t\tthis.renderingEnabled=true;\r\n\t\t/**是否启用屏幕适配，可以适配后，在某个时候关闭屏幕适配，防止某些操作导致的屏幕以外改变*/\r\n\t\tthis.screenAdaptationEnabled=true;\r\n\t\t/**@private */\r\n\t\tthis._screenMode=\"none\";\r\n\t\t/**@private */\r\n\t\tthis._scaleMode=\"noscale\";\r\n\t\t/**@private */\r\n\t\tthis._alignV=\"top\";\r\n\t\t/**@private */\r\n\t\tthis._alignH=\"left\";\r\n\t\t/**@private */\r\n\t\tthis._bgColor=\"black\";\r\n\t\t/**@private */\r\n\t\tthis._mouseMoveTime=0;\r\n\t\t/**@private */\r\n\t\tthis._renderCount=0;\r\n\t\t/**@private */\r\n\t\tthis._frameStartTime=NaN;\r\n\t\t/**@private */\r\n\t\tthis._isFocused=false;\r\n\t\t/**@private */\r\n\t\tthis._isVisibility=false;\r\n\t\t/**@private 3D场景*/\r\n\t\tthis._scenes=null;\r\n\t\t/**@private */\r\n\t\tthis._frameRate=\"fast\";\r\n\t\tStage.__super.call(this);\r\n\t\tthis.offset=new Point();\r\n\t\tthis._canvasTransform=new Matrix();\r\n\t\tthis._previousOrientation=Browser.window.orientation;\r\n\t\tvar _$this=this;\r\n\t\tthis.transform=Matrix.create();\r\n\t\tthis._scenes=[];\r\n\t\tthis.mouseEnabled=true;\r\n\t\tthis.hitTestPrior=true;\r\n\t\tthis.autoSize=false;\r\n\t\tthis._displayedInStage=true;\r\n\t\tthis._isFocused=true;\r\n\t\tthis._isVisibility=true;\r\n\t\tvar window=Browser.window;\r\n\t\tvar _this=this;\r\n\t\twindow.addEventListener(\"focus\",function(){\r\n\t\t\t_$this._isFocused=true;\r\n\t\t\t_this.event(/*laya.events.Event.FOCUS*/\"focus\");\r\n\t\t\t_this.event(/*laya.events.Event.FOCUS_CHANGE*/\"focuschange\");\r\n\t\t});\r\n\t\twindow.addEventListener(\"blur\",function(){\r\n\t\t\t_$this._isFocused=false;\r\n\t\t\t_this.event(/*laya.events.Event.BLUR*/\"blur\");\r\n\t\t\t_this.event(/*laya.events.Event.FOCUS_CHANGE*/\"focuschange\");\r\n\t\t\tif (_this._isInputting())Input[\"inputElement\"].target.focus=false;\r\n\t\t});\r\n\t\tvar hidden=\"hidden\",state=\"visibilityState\",visibilityChange=\"visibilitychange\";\r\n\t\tvar document=window.document;\r\n\t\tif (typeof document.hidden!==\"undefined\"){\r\n\t\t\tvisibilityChange=\"visibilitychange\";\r\n\t\t\tstate=\"visibilityState\";\r\n\t\t\t}else if (typeof document.mozHidden!==\"undefined\"){\r\n\t\t\tvisibilityChange=\"mozvisibilitychange\";\r\n\t\t\tstate=\"mozVisibilityState\";\r\n\t\t\t}else if (typeof document.msHidden!==\"undefined\"){\r\n\t\t\tvisibilityChange=\"msvisibilitychange\";\r\n\t\t\tstate=\"msVisibilityState\";\r\n\t\t\t}else if (typeof document.webkitHidden!==\"undefined\"){\r\n\t\t\tvisibilityChange=\"webkitvisibilitychange\";\r\n\t\t\tstate=\"webkitVisibilityState\";\r\n\t\t}\r\n\t\twindow.document.addEventListener(visibilityChange,visibleChangeFun);\r\n\t\tfunction visibleChangeFun (){\r\n\t\t\tif (Browser.document[state]==\"hidden\"){\r\n\t\t\t\t_this._setStageVisible(false);\r\n\t\t\t\t}else {\r\n\t\t\t\t_this._setStageVisible(true);\r\n\t\t\t}\r\n\t\t}\r\n\t\twindow.document.addEventListener(\"qbrowserVisibilityChange\",qbroserVisibleChangeFun);\r\n\t\tfunction qbroserVisibleChangeFun (e){\r\n\t\t\t_this._setStageVisible(!e.hidden);\r\n\t\t}\r\n\t\twindow.addEventListener(\"resize\",function(){\r\n\t\t\tvar orientation=Browser.window.orientation;\r\n\t\t\tif (orientation !=null && orientation !=_$this._previousOrientation && _this._isInputting()){\r\n\t\t\t\tInput[\"inputElement\"].target.focus=false;\r\n\t\t\t}\r\n\t\t\t_$this._previousOrientation=orientation;\r\n\t\t\tif (_this._isInputting())return;\r\n\t\t\t_this._resetCanvas();\r\n\t\t});\r\n\t\twindow.addEventListener(\"orientationchange\",function(e){\r\n\t\t\t_this._resetCanvas();\r\n\t\t});\r\n\t\tthis.on(/*laya.events.Event.MOUSE_MOVE*/\"mousemove\",this,this._onmouseMove);\r\n\t\tif (Browser.onMobile)this.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this._onmouseMove);\r\n\t}\r\n\r\n\t__class(Stage,'laya.display.Stage',_super);\r\n\tvar __proto=Stage.prototype;\r\n\t__proto._setStageVisible=function(value){\r\n\t\tif (this._isVisibility==value)return;\r\n\t\tthis._isVisibility=value;\r\n\t\tif (!this._isVisibility)if (this._isInputting())Input[\"inputElement\"].target.focus=false;\r\n\t\tthis.event(/*laya.events.Event.VISIBILITY_CHANGE*/\"visibilitychange\");\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*在移动端输入时，输入法弹出期间不进行画布尺寸重置。\r\n\t*/\r\n\t__proto._isInputting=function(){\r\n\t\treturn (Browser.onMobile && Input.isInputting);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._changeCanvasSize=function(){\r\n\t\tthis.setScreenSize(Browser.clientWidth *Browser.pixelRatio,Browser.clientHeight *Browser.pixelRatio);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._resetCanvas=function(){\r\n\t\tif (!this.screenAdaptationEnabled)return;\r\n\t\tvar canvas=Render._mainCanvas;\r\n\t\tvar canvasStyle=canvas.source.style;\r\n\t\tcanvas.size(1,1);\r\n\t\tLaya.timer.once(100,this,this._changeCanvasSize);\r\n\t}\r\n\r\n\t/**\r\n\t*设置屏幕大小，场景会根据屏幕大小进行适配。可以动态调用此方法，来更改游戏显示的大小。\r\n\t*@param screenWidth 屏幕宽度。\r\n\t*@param screenHeight 屏幕高度。\r\n\t*/\r\n\t__proto.setScreenSize=function(screenWidth,screenHeight){\r\n\t\tvar rotation=false;\r\n\t\tif (this._screenMode!==\"none\"){\r\n\t\t\tvar screenType=screenWidth / screenHeight < 1 ? \"vertical\" :\"horizontal\";\r\n\t\t\trotation=screenType!==this._screenMode;\r\n\t\t\tif (rotation){\r\n\t\t\t\tvar temp=screenHeight;\r\n\t\t\t\tscreenHeight=screenWidth;\r\n\t\t\t\tscreenWidth=temp;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.canvasRotation=rotation;\r\n\t\tvar canvas=Render._mainCanvas;\r\n\t\tvar canvasStyle=canvas.source.style;\r\n\t\tvar mat=this._canvasTransform.identity();\r\n\t\tvar scaleMode=this._scaleMode;\r\n\t\tvar scaleX=screenWidth / this.designWidth;\r\n\t\tvar scaleY=screenHeight / this.designHeight;\r\n\t\tvar canvasWidth=this.designWidth;\r\n\t\tvar canvasHeight=this.designHeight;\r\n\t\tvar realWidth=screenWidth;\r\n\t\tvar realHeight=screenHeight;\r\n\t\tvar pixelRatio=Browser.pixelRatio;\r\n\t\tthis._width=this.designWidth;\r\n\t\tthis._height=this.designHeight;\r\n\t\tswitch (scaleMode){\r\n\t\t\tcase \"noscale\":\r\n\t\t\t\tscaleX=scaleY=1;\r\n\t\t\t\trealWidth=this.designWidth;\r\n\t\t\t\trealHeight=this.designHeight;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase \"showall\":\r\n\t\t\t\tscaleX=scaleY=Math.min(scaleX,scaleY);\r\n\t\t\t\tcanvasWidth=realWidth=Math.round(this.designWidth *scaleX);\r\n\t\t\t\tcanvasHeight=realHeight=Math.round(this.designHeight *scaleY);\r\n\t\t\t\tbreak ;\r\n\t\t\tcase \"noborder\":\r\n\t\t\t\tscaleX=scaleY=Math.max(scaleX,scaleY);\r\n\t\t\t\trealWidth=Math.round(this.designWidth *scaleX);\r\n\t\t\t\trealHeight=Math.round(this.designHeight *scaleY);\r\n\t\t\t\tbreak ;\r\n\t\t\tcase \"full\":\r\n\t\t\t\tscaleX=scaleY=1;\r\n\t\t\t\tthis._width=canvasWidth=screenWidth;\r\n\t\t\t\tthis._height=canvasHeight=screenHeight;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase \"fixedwidth\":\r\n\t\t\t\tscaleY=scaleX;\r\n\t\t\t\tthis._height=canvasHeight=Math.round(screenHeight / scaleX);\r\n\t\t\t\tbreak ;\r\n\t\t\tcase \"fixedheight\":\r\n\t\t\t\tscaleX=scaleY;\r\n\t\t\t\tthis._width=canvasWidth=Math.round(screenWidth / scaleY);\r\n\t\t\t\tbreak ;\r\n\t\t\tcase \"fixedauto\":\r\n\t\t\t\tif ((screenWidth / screenHeight)< (this.designWidth / this.designHeight)){\r\n\t\t\t\t\tscaleY=scaleX;\r\n\t\t\t\t\tthis._height=canvasHeight=Math.round(screenHeight / scaleX);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tscaleX=scaleY;\r\n\t\t\t\t\tthis._width=canvasWidth=Math.round(screenWidth / scaleY);\r\n\t\t\t\t}\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\tif (this.conchModel)this.conchModel.size(this._width,this._height);\r\n\t\tscaleX *=this.scaleX;\r\n\t\tscaleY *=this.scaleY;\r\n\t\tif (scaleX===1 && scaleY===1){\r\n\t\t\tthis.transform.identity();\r\n\t\t\t}else {\r\n\t\t\tthis.transform.a=this._formatData(scaleX / (realWidth / canvasWidth));\r\n\t\t\tthis.transform.d=this._formatData(scaleY / (realHeight / canvasHeight));\r\n\t\t\tthis.conchModel && this.conchModel.scale(this.transform.a,this.transform.d);\r\n\t\t}\r\n\t\tcanvas.size(canvasWidth,canvasHeight);\r\n\t\tRunDriver.changeWebGLSize(canvasWidth,canvasHeight);\r\n\t\tmat.scale(realWidth / canvasWidth / pixelRatio,realHeight / canvasHeight / pixelRatio);\r\n\t\tif (this._alignH===\"left\")this.offset.x=0;\r\n\t\telse if (this._alignH===\"right\")this.offset.x=(screenWidth-realWidth)/pixelRatio;\r\n\t\telse this.offset.x=(screenWidth-realWidth)*0.5 / pixelRatio;\r\n\t\tif (this._alignV===\"top\")this.offset.y=0;\r\n\t\telse if (this._alignV===\"bottom\")this.offset.y=(screenHeight-realHeight)/pixelRatio;\r\n\t\telse this.offset.y=(screenHeight-realHeight)*0.5 / pixelRatio;\r\n\t\tthis.offset.x=Math.round(this.offset.x);\r\n\t\tthis.offset.y=Math.round(this.offset.y);\r\n\t\tmat.translate(this.offset.x,this.offset.y);\r\n\t\tthis.canvasDegree=0;\r\n\t\tif (rotation){\r\n\t\t\tif (this._screenMode===\"horizontal\"){\r\n\t\t\t\tmat.rotate(Math.PI / 2);\r\n\t\t\t\tmat.translate(screenHeight / pixelRatio,0);\r\n\t\t\t\tthis.canvasDegree=90;\r\n\t\t\t\t}else {\r\n\t\t\t\tmat.rotate(-Math.PI / 2);\r\n\t\t\t\tmat.translate(0,screenWidth / pixelRatio);\r\n\t\t\t\tthis.canvasDegree=-90;\r\n\t\t\t}\r\n\t\t}\r\n\t\tmat.a=this._formatData(mat.a);\r\n\t\tmat.d=this._formatData(mat.d);\r\n\t\tmat.tx=this._formatData(mat.tx);\r\n\t\tmat.ty=this._formatData(mat.ty);\r\n\t\tcanvasStyle.transformOrigin=canvasStyle.webkitTransformOrigin=canvasStyle.msTransformOrigin=canvasStyle.mozTransformOrigin=canvasStyle.oTransformOrigin=\"0px 0px 0px\";\r\n\t\tcanvasStyle.transform=canvasStyle.webkitTransform=canvasStyle.msTransform=canvasStyle.mozTransform=canvasStyle.oTransform=\"matrix(\"+mat.toString()+\")\";\r\n\t\tmat.translate(parseInt(canvasStyle.left)|| 0,parseInt(canvasStyle.top)|| 0);\r\n\t\tthis.visible=true;\r\n\t\tthis._repaint=1;\r\n\t\tthis.event(/*laya.events.Event.RESIZE*/\"resize\");\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._formatData=function(value){\r\n\t\tif (Math.abs(value)< 0.000001)return 0;\r\n\t\tif (Math.abs(1-value)< 0.001)return value > 0 ? 1 :-1;\r\n\t\treturn value;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.getMousePoint=function(){\r\n\t\treturn Point.TEMP.setTo(this.mouseX,this.mouseY);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.repaint=function(){\r\n\t\tthis._repaint=1;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.parentRepaint=function(){}\r\n\t/**@private */\r\n\t__proto._loop=function(){\r\n\t\tthis.render(Render.context,0,0);\r\n\t\treturn true;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._onmouseMove=function(e){\r\n\t\tthis._mouseMoveTime=Browser.now();\r\n\t}\r\n\r\n\t/**\r\n\t*<p>获得距当前帧开始后，过了多少时间，单位为毫秒。</p>\r\n\t*<p>可以用来判断函数内时间消耗，通过合理控制每帧函数处理消耗时长，避免一帧做事情太多，对复杂计算分帧处理，能有效降低帧率波动。</p>\r\n\t*/\r\n\t__proto.getTimeFromFrameStart=function(){\r\n\t\treturn Browser.now()-this._frameStartTime;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.render=function(context,x,y){\r\n\t\tif (this._frameRate===\"sleep\" && !Render.isConchApp){\r\n\t\t\tvar now=Browser.now();\r\n\t\t\tif (now-this._frameStartTime >=1000)this._frameStartTime=now;\r\n\t\t\telse return;\r\n\t\t}\r\n\t\tthis._renderCount++;\r\n\t\tRender.isFlash && this.repaint();\r\n\t\tif (!this._style.visible){\r\n\t\t\tif (this._renderCount % 5===0){\r\n\t\t\t\tStat.loopCount++;\r\n\t\t\t\tMouseManager.instance.runEvent();\r\n\t\t\t\tLaya.timer._update();\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._frameStartTime=Browser.now();\r\n\t\tvar frameMode=this._frameRate===\"mouse\" ? (((this._frameStartTime-this._mouseMoveTime)< 2000)? \"fast\" :\"slow\"):this._frameRate;\r\n\t\tvar isFastMode=(frameMode!==\"slow\");\r\n\t\tvar isDoubleLoop=(this._renderCount % 2===0);\r\n\t\tStat.renderSlow=!isFastMode;\r\n\t\tif (isFastMode || isDoubleLoop || Render.isConchApp){\r\n\t\t\tStat.loopCount++;\r\n\t\t\tMouseManager.instance.runEvent();\r\n\t\t\tLaya.timer._update();\r\n\t\t\tRunDriver.update3DLoop();\r\n\t\t\tvar scene;\r\n\t\t\tvar i=0,n=0;\r\n\t\t\tif (Render.isConchNode){\r\n\t\t\t\tfor (i=0,n=this._scenes.length;i < n;i++){\r\n\t\t\t\t\tscene=this._scenes[i];\r\n\t\t\t\t\t(scene)&& (scene._updateSceneConch());\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tfor (i=0,n=this._scenes.length;i < n;i++){\r\n\t\t\t\t\tscene=this._scenes[i];\r\n\t\t\t\t\t(scene)&& (scene._updateScene());\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (Render.isConchNode){\r\n\t\t\t\tvar customList=Sprite[\"CustomList\"];\r\n\t\t\t\tfor (i=0,n=customList.length;i < n;i++){\r\n\t\t\t\t\tvar customItem=customList[i];\r\n\t\t\t\t\tcustomItem.customRender(customItem.customContext,0,0);\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (Render.isConchNode)return;\r\n\t\tif (this.renderingEnabled && (isFastMode || !isDoubleLoop)){\r\n\t\t\tif (Render.isWebGL){\r\n\t\t\t\tcontext.clear();\r\n\t\t\t\t_super.prototype.render.call(this,context,x,y);\r\n\t\t\t\tStat._show&& Stat._sp && Stat._sp.render(context,x,y);\r\n\t\t\t\tRunDriver.clear(this._bgColor);\r\n\t\t\t\tRunDriver.beginFlush();\r\n\t\t\t\tcontext.flush();\r\n\t\t\t\tRunDriver.endFinish();\r\n\t\t\t\tVectorGraphManager.instance && VectorGraphManager.getInstance().endDispose();\r\n\t\t\t\t}else {\r\n\t\t\t\tRunDriver.clear(this._bgColor);\r\n\t\t\t\t_super.prototype.render.call(this,context,x,y);\r\n\t\t\t\tStat._show&& Stat._sp && Stat._sp.render(context,x,y);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._requestFullscreen=function(){\r\n\t\tvar element=Browser.document.documentElement;\r\n\t\tif (element.requestFullscreen){\r\n\t\t\telement.requestFullscreen();\r\n\t\t\t}else if (element.mozRequestFullScreen){\r\n\t\t\telement.mozRequestFullScreen();\r\n\t\t\t}else if (element.webkitRequestFullscreen){\r\n\t\t\telement.webkitRequestFullscreen();\r\n\t\t\t}else if (element.msRequestFullscreen){\r\n\t\t\telement.msRequestFullscreen();\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._fullScreenChanged=function(){\r\n\t\tLaya.stage.event(/*laya.events.Event.FULL_SCREEN_CHANGE*/\"fullscreenchange\");\r\n\t}\r\n\r\n\t/**退出全屏模式*/\r\n\t__proto.exitFullscreen=function(){\r\n\t\tvar document=Browser.document;\r\n\t\tif (document.exitFullscreen){\r\n\t\t\tdocument.exitFullscreen();\r\n\t\t\t}else if (document.mozCancelFullScreen){\r\n\t\t\tdocument.mozCancelFullScreen();\r\n\t\t\t}else if (document.webkitExitFullscreen){\r\n\t\t\tdocument.webkitExitFullscreen();\r\n\t\t}\r\n\t}\r\n\r\n\t/**当前视窗由缩放模式导致的 X 轴缩放系数。*/\r\n\t__getset(0,__proto,'clientScaleX',function(){\r\n\t\treturn this._transform ? this._transform.getScaleX():1;\r\n\t});\r\n\r\n\t//[Deprecated]\r\n\t__getset(0,__proto,'desginHeight',function(){\r\n\t\tconsole.debug(\"desginHeight已经弃用，请使用designHeight代替\");\r\n\t\treturn this.designHeight;\r\n\t});\r\n\r\n\t/**帧率类型，支持三种模式：fast-60帧(默认)，slow-30帧，mouse-30帧（鼠标活动后会自动加速到60，鼠标不动2秒后降低为30帧，以节省消耗），sleep-1帧。*/\r\n\t__getset(0,__proto,'frameRate',function(){\r\n\t\treturn this._frameRate;\r\n\t\t},function(value){\r\n\t\tthis._frameRate=value;\r\n\t\tif (Render.isConchApp){\r\n\t\t\tswitch (this._frameRate){\r\n\t\t\t\tcase \"slow\":\r\n\t\t\t\t\tBrowser.window.conch && Browser.window.conchConfig.setSlowFrame && Browser.window.conchConfig.setSlowFrame(true);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase \"fast\":\r\n\t\t\t\t\tBrowser.window.conch && Browser.window.conchConfig.setSlowFrame && Browser.window.conchConfig.setSlowFrame(false);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase \"mouse\":\r\n\t\t\t\t\tBrowser.window.conch && Browser.window.conchConfig.setMouseFrame && Browser.window.conchConfig.setMouseFrame(2000);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase \"sleep\":\r\n\t\t\t\t\tBrowser.window.conch && Browser.window.conchConfig.setLimitFPS && Browser.window.conchConfig.setLimitFPS(1);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tdefault :\r\n\t\t\t\t\tthrow new Error(\"Stage:frameRate invalid.\");\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**当前视窗由缩放模式导致的 Y 轴缩放系数。*/\r\n\t__getset(0,__proto,'clientScaleY',function(){\r\n\t\treturn this._transform ? this._transform.getScaleY():1;\r\n\t});\r\n\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tthis.designWidth=value;\r\n\t\tLaya.superSet(Sprite,this,'width',value);\r\n\t\tLaya.timer.callLater(this,this._changeCanvasSize);\r\n\t});\r\n\r\n\t/**\r\n\t*<p>水平对齐方式。默认值为\"left\"。</p>\r\n\t*<p><ul>取值范围：\r\n\t*<li>\"left\" ：居左对齐；</li>\r\n\t*<li>\"center\" ：居中对齐；</li>\r\n\t*<li>\"right\" ：居右对齐；</li>\r\n\t*</ul></p>\r\n\t*/\r\n\t__getset(0,__proto,'alignH',function(){\r\n\t\treturn this._alignH;\r\n\t\t},function(value){\r\n\t\tthis._alignH=value;\r\n\t\tLaya.timer.callLater(this,this._changeCanvasSize);\r\n\t});\r\n\r\n\t/**\r\n\t*舞台是否获得焦点。\r\n\t*/\r\n\t__getset(0,__proto,'isFocused',function(){\r\n\t\treturn this._isFocused;\r\n\t});\r\n\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tthis.designHeight=value;\r\n\t\tLaya.superSet(Sprite,this,'height',value);\r\n\t\tLaya.timer.callLater(this,this._changeCanvasSize);\r\n\t});\r\n\r\n\t__getset(0,__proto,'transform',function(){\r\n\t\tif (this._tfChanged)this._adjustTransform();\r\n\t\treturn this._transform=this._transform|| Matrix.create();\r\n\t},_super.prototype._$set_transform);\r\n\r\n\t/**\r\n\t*舞台是否处于可见状态(是否进入后台)。\r\n\t*/\r\n\t__getset(0,__proto,'isVisibility',function(){\r\n\t\treturn this._isVisibility;\r\n\t});\r\n\r\n\t//[Deprecated]\r\n\t__getset(0,__proto,'desginWidth',function(){\r\n\t\tconsole.debug(\"desginWidth已经弃用，请使用designWidth代替\");\r\n\t\treturn this.designWidth;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>缩放模式。默认值为 \"noscale\"。</p>\r\n\t*<p><ul>取值范围：\r\n\t*<li>\"noscale\" ：不缩放；</li>\r\n\t*<li>\"exactfit\" ：全屏不等比缩放；</li>\r\n\t*<li>\"showall\" ：最小比例缩放；</li>\r\n\t*<li>\"noborder\" ：最大比例缩放；</li>\r\n\t*<li>\"full\" ：不缩放，stage的宽高等于屏幕宽高；</li>\r\n\t*<li>\"fixedwidth\" ：宽度不变，高度根据屏幕比缩放；</li>\r\n\t*<li>\"fixedheight\" ：高度不变，宽度根据屏幕比缩放；</li>\r\n\t*<li>\"fixedauto\" ：根据宽高比，自动选择使用fixedwidth或fixedheight；</li>\r\n\t*</ul></p>\r\n\t*/\r\n\t__getset(0,__proto,'scaleMode',function(){\r\n\t\treturn this._scaleMode;\r\n\t\t},function(value){\r\n\t\tthis._scaleMode=value;\r\n\t\tLaya.timer.callLater(this,this._changeCanvasSize);\r\n\t});\r\n\r\n\t/**\r\n\t*<p>垂直对齐方式。默认值为\"top\"。</p>\r\n\t*<p><ul>取值范围：\r\n\t*<li>\"top\" ：居顶部对齐；</li>\r\n\t*<li>\"middle\" ：居中对齐；</li>\r\n\t*<li>\"bottom\" ：居底部对齐；</li>\r\n\t*</ul></p>\r\n\t*/\r\n\t__getset(0,__proto,'alignV',function(){\r\n\t\treturn this._alignV;\r\n\t\t},function(value){\r\n\t\tthis._alignV=value;\r\n\t\tLaya.timer.callLater(this,this._changeCanvasSize);\r\n\t});\r\n\r\n\t/**舞台的背景颜色，默认为黑色，null为透明。*/\r\n\t__getset(0,__proto,'bgColor',function(){\r\n\t\treturn this._bgColor;\r\n\t\t},function(value){\r\n\t\tthis._bgColor=value;\r\n\t\tthis.conchModel && this.conchModel.bgColor(value);\r\n\t\tif (Render.isWebGL){\r\n\t\t\tif (value){\r\n\t\t\t\tStage._wgColor=Color.create(value)._color;\r\n\t\t\t\t}else {\r\n\t\t\t\tif (!Browser.onMiniGame)Stage._wgColor=null;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (Browser.onLimixiu){\r\n\t\t\tStage._wgColor=Color.create(value)._color;\r\n\t\t}else\r\n\t\tif (value){\r\n\t\t\tRender.canvas.style.background=value;\r\n\t\t\t}else {\r\n\t\t\tRender.canvas.style.background=\"none\";\r\n\t\t}\r\n\t});\r\n\r\n\t/**鼠标在 Stage 上的 X 轴坐标。*/\r\n\t__getset(0,__proto,'mouseX',function(){\r\n\t\treturn Math.round(MouseManager.instance.mouseX / this.clientScaleX);\r\n\t});\r\n\r\n\t/**鼠标在 Stage 上的 Y 轴坐标。*/\r\n\t__getset(0,__proto,'mouseY',function(){\r\n\t\treturn Math.round(MouseManager.instance.mouseY / this.clientScaleY);\r\n\t});\r\n\r\n\t/**\r\n\t*<p>场景布局类型。</p>\r\n\t*<p><ul>取值范围：\r\n\t*<li>\"none\" ：不更改屏幕</li>\r\n\t*<li>\"horizontal\" ：自动横屏</li>\r\n\t*<li>\"vertical\" ：自动竖屏</li>\r\n\t*</ul></p>\r\n\t*/\r\n\t__getset(0,__proto,'screenMode',function(){\r\n\t\treturn this._screenMode;\r\n\t\t},function(value){\r\n\t\tthis._screenMode=value;\r\n\t});\r\n\r\n\t__getset(0,__proto,'visible',_super.prototype._$get_visible,function(value){\r\n\t\tif (this.visible!==value){\r\n\t\t\tLaya.superSet(Sprite,this,'visible',value);\r\n\t\t\tvar style=Render._mainCanvas.source.style;\r\n\t\t\tstyle.visibility=value ? \"visible\" :\"hidden\";\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>是否开启全屏，用户点击后进入全屏。</p>\r\n\t*<p>兼容性提示：部分浏览器不允许点击进入全屏，比如Iphone等。</p>\r\n\t*/\r\n\t__getset(0,__proto,'fullScreenEnabled',null,function(value){\r\n\t\tvar document=Browser.document;\r\n\t\tvar canvas=Render.canvas;\r\n\t\tif (value){\r\n\t\t\tcanvas.addEventListener('mousedown',this._requestFullscreen);\r\n\t\t\tcanvas.addEventListener('touchstart',this._requestFullscreen);\r\n\t\t\tdocument.addEventListener(\"fullscreenchange\",this._fullScreenChanged);\r\n\t\t\tdocument.addEventListener(\"mozfullscreenchange\",this._fullScreenChanged);\r\n\t\t\tdocument.addEventListener(\"webkitfullscreenchange\",this._fullScreenChanged);\r\n\t\t\tdocument.addEventListener(\"msfullscreenchange\",this._fullScreenChanged);\r\n\t\t\t}else {\r\n\t\t\tcanvas.removeEventListener('mousedown',this._requestFullscreen);\r\n\t\t\tcanvas.removeEventListener('touchstart',this._requestFullscreen);\r\n\t\t\tdocument.removeEventListener(\"fullscreenchange\",this._fullScreenChanged);\r\n\t\t\tdocument.removeEventListener(\"mozfullscreenchange\",this._fullScreenChanged);\r\n\t\t\tdocument.removeEventListener(\"webkitfullscreenchange\",this._fullScreenChanged);\r\n\t\t\tdocument.removeEventListener(\"msfullscreenchange\",this._fullScreenChanged);\r\n\t\t}\r\n\t});\r\n\r\n\tStage.SCALE_NOSCALE=\"noscale\";\r\n\tStage.SCALE_EXACTFIT=\"exactfit\";\r\n\tStage.SCALE_SHOWALL=\"showall\";\r\n\tStage.SCALE_NOBORDER=\"noborder\";\r\n\tStage.SCALE_FULL=\"full\";\r\n\tStage.SCALE_FIXED_WIDTH=\"fixedwidth\";\r\n\tStage.SCALE_FIXED_HEIGHT=\"fixedheight\";\r\n\tStage.SCALE_FIXED_AUTO=\"fixedauto\";\r\n\tStage.ALIGN_LEFT=\"left\";\r\n\tStage.ALIGN_RIGHT=\"right\";\r\n\tStage.ALIGN_CENTER=\"center\";\r\n\tStage.ALIGN_TOP=\"top\";\r\n\tStage.ALIGN_MIDDLE=\"middle\";\r\n\tStage.ALIGN_BOTTOM=\"bottom\";\r\n\tStage.SCREEN_NONE=\"none\";\r\n\tStage.SCREEN_HORIZONTAL=\"horizontal\";\r\n\tStage.SCREEN_VERTICAL=\"vertical\";\r\n\tStage.FRAME_FAST=\"fast\";\r\n\tStage.FRAME_SLOW=\"slow\";\r\n\tStage.FRAME_MOUSE=\"mouse\";\r\n\tStage.FRAME_SLEEP=\"sleep\";\r\n\tStage.FRAME_MOUSE_THREDHOLD=2000;\r\n\t__static(Stage,\r\n\t['_wgColor',function(){return this._wgColor=[0,0,0,1];}\r\n\t]);\r\n\treturn Stage;\r\n})(Sprite)\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.media.SoundNode extends laya.display.Sprite\r\nvar SoundNode=(function(_super){\r\n\tfunction SoundNode(){\r\n\t\tthis.url=null;\r\n\t\tthis._channel=null;\r\n\t\tthis._tar=null;\r\n\t\tthis._playEvents=null;\r\n\t\tthis._stopEvents=null;\r\n\t\tSoundNode.__super.call(this);\r\n\t\tthis.visible=false;\r\n\t\tthis.on(/*laya.events.Event.ADDED*/\"added\",this,this._onParentChange);\r\n\t\tthis.on(/*laya.events.Event.REMOVED*/\"removed\",this,this._onParentChange);\r\n\t}\r\n\r\n\t__class(SoundNode,'laya.media.SoundNode',_super);\r\n\tvar __proto=SoundNode.prototype;\r\n\t/**@private */\r\n\t__proto._onParentChange=function(){\r\n\t\tthis.target=this.parent;\r\n\t}\r\n\r\n\t/**\r\n\t*播放\r\n\t*@param loops 循环次数\r\n\t*@param complete 完成回调\r\n\t*\r\n\t*/\r\n\t__proto.play=function(loops,complete){\r\n\t\t(loops===void 0)&& (loops=1);\r\n\t\tif (isNaN(loops)){\r\n\t\t\tloops=1;\r\n\t\t}\r\n\t\tif (!this.url)return;\r\n\t\tthis.stop();\r\n\t\tthis._channel=SoundManager.playSound(this.url,loops,complete);\r\n\t}\r\n\r\n\t/**\r\n\t*停止播放\r\n\t*\r\n\t*/\r\n\t__proto.stop=function(){\r\n\t\tif (this._channel && !this._channel.isStopped){\r\n\t\t\tthis._channel.stop();\r\n\t\t}\r\n\t\tthis._channel=null;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setPlayAction=function(tar,event,action,add){\r\n\t\t(add===void 0)&& (add=true);\r\n\t\tif (!this[action])return;\r\n\t\tif (!tar)return;\r\n\t\tif (add){\r\n\t\t\ttar.on(event,this,this[action]);\r\n\t\t\t}else {\r\n\t\t\ttar.off(event,this,this[action]);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setPlayActions=function(tar,events,action,add){\r\n\t\t(add===void 0)&& (add=true);\r\n\t\tif (!tar)return;\r\n\t\tif (!events)return;\r\n\t\tvar eventArr=events.split(\",\");\r\n\t\tvar i=0,len=0;\r\n\t\tlen=eventArr.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tthis._setPlayAction(tar,eventArr[i],action,add);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*设置触发播放的事件\r\n\t*@param events\r\n\t*\r\n\t*/\r\n\t__getset(0,__proto,'playEvent',null,function(events){\r\n\t\tthis._playEvents=events;\r\n\t\tif (!events)return;\r\n\t\tif (this._tar){\r\n\t\t\tthis._setPlayActions(this._tar,events,\"play\");\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*设置控制播放的对象\r\n\t*@param tar\r\n\t*\r\n\t*/\r\n\t__getset(0,__proto,'target',null,function(tar){\r\n\t\tif (this._tar){\r\n\t\t\tthis._setPlayActions(this._tar,this._playEvents,\"play\",false);\r\n\t\t\tthis._setPlayActions(this._tar,this._stopEvents,\"stop\",false);\r\n\t\t}\r\n\t\tthis._tar=tar;\r\n\t\tif (this._tar){\r\n\t\t\tthis._setPlayActions(this._tar,this._playEvents,\"play\",true);\r\n\t\t\tthis._setPlayActions(this._tar,this._stopEvents,\"stop\",true);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*设置触发停止的事件\r\n\t*@param events\r\n\t*\r\n\t*/\r\n\t__getset(0,__proto,'stopEvent',null,function(events){\r\n\t\tthis._stopEvents=events;\r\n\t\tif (!events)return;\r\n\t\tif (this._tar){\r\n\t\t\tthis._setPlayActions(this._tar,events,\"stop\");\r\n\t\t}\r\n\t});\r\n\r\n\treturn SoundNode;\r\n})(Sprite)\r\n\r\n\r\n/**\r\n*@private\r\n*<code>FileBitmap</code> 是图片文件资源类。\r\n*/\r\n//class laya.resource.FileBitmap extends laya.resource.Bitmap\r\nvar FileBitmap=(function(_super){\r\n\tfunction FileBitmap(){\r\n\t\t/**@private 文件路径全名。*/\r\n\t\tthis._src=null;\r\n\t\t/**@private onload触发函数*/\r\n\t\tthis._onload=null;\r\n\t\t/**@private onerror触发函数*/\r\n\t\tthis._onerror=null;\r\n\t\tFileBitmap.__super.call(this);\r\n\t}\r\n\r\n\t__class(FileBitmap,'laya.resource.FileBitmap',_super);\r\n\tvar __proto=FileBitmap.prototype;\r\n\t/**\r\n\t*文件路径全名。\r\n\t*/\r\n\t__getset(0,__proto,'src',function(){\r\n\t\treturn this._src;\r\n\t\t},function(value){\r\n\t\tthis._src=value;\r\n\t});\r\n\r\n\t/**\r\n\t*载入完成处理函数。\r\n\t*/\r\n\t__getset(0,__proto,'onload',null,function(value){\r\n\t});\r\n\r\n\t/**\r\n\t*错误处理函数。\r\n\t*/\r\n\t__getset(0,__proto,'onerror',null,function(value){\r\n\t});\r\n\r\n\treturn FileBitmap;\r\n})(Bitmap)\r\n\r\n\r\n/**\r\n*<code>HTMLCanvas</code> 是 Html Canvas 的代理类，封装了 Canvas 的属性和方法。。请不要直接使用 new HTMLCanvas！\r\n*/\r\n//class laya.resource.HTMLCanvas extends laya.resource.Bitmap\r\nvar HTMLCanvas=(function(_super){\r\n\tfunction HTMLCanvas(type,canvas){\r\n\t\t//this._ctx=null;\r\n\t\tthis._is2D=false;\r\n\t\tHTMLCanvas.__super.call(this);\r\n\t\tvar _$this=this;\r\n\t\tthis._source=this;\r\n\t\tif (type===\"2D\" || (type===\"AUTO\" && !Render.isWebGL)){\r\n\t\t\tthis._is2D=true;\r\n\t\t\tthis._source=canvas || Browser.createElement(\"canvas\");\r\n\t\t\tthis._w=this._source.width;\r\n\t\t\tthis._h=this._source.height;\r\n\t\t\tvar o=this;\r\n\t\t\to.getContext=function (contextID,other){\r\n\t\t\t\tif (_$this._ctx)return _$this._ctx;\r\n\t\t\t\tvar ctx=_$this._ctx=_$this._source.getContext(contextID,other);\r\n\t\t\t\tif (ctx){\r\n\t\t\t\t\tctx._canvas=o;\r\n\t\t\t\t\tif(!Render.isFlash&&!Browser.onLimixiu)ctx.size=function (w,h){\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\treturn ctx;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.lock=true;\r\n\t}\r\n\r\n\t__class(HTMLCanvas,'laya.resource.HTMLCanvas',_super);\r\n\tvar __proto=HTMLCanvas.prototype;\r\n\t/**\r\n\t*清空画布内容。\r\n\t*/\r\n\t__proto.clear=function(){\r\n\t\tthis._ctx && this._ctx.clear();\r\n\t}\r\n\r\n\t/**\r\n\t*销毁。\r\n\t*/\r\n\t__proto.destroy=function(){\r\n\t\tthis._ctx && this._ctx.destroy();\r\n\t\tthis._ctx=null;\r\n\t\tlaya.resource.Resource.prototype.destroy.call(this);\r\n\t}\r\n\r\n\t/**\r\n\t*释放。\r\n\t*/\r\n\t__proto.release=function(){}\r\n\t/**\r\n\t*@private\r\n\t*设置 Canvas 渲染上下文。\r\n\t*@param context Canvas 渲染上下文。\r\n\t*/\r\n\t__proto._setContext=function(context){\r\n\t\tthis._ctx=context;\r\n\t}\r\n\r\n\t/**\r\n\t*获取 Canvas 渲染上下文。\r\n\t*@param contextID 上下文ID.\r\n\t*@param other\r\n\t*@return Canvas 渲染上下文 Context 对象。\r\n\t*/\r\n\t__proto.getContext=function(contextID,other){\r\n\t\treturn this._ctx ? this._ctx :(this._ctx=HTMLCanvas._createContext(this));\r\n\t}\r\n\r\n\t/**\r\n\t*获取内存大小。\r\n\t*@return 内存大小。\r\n\t*/\r\n\t__proto.getMemSize=function(){\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t*设置宽高。\r\n\t*@param w 宽度。\r\n\t*@param h 高度。\r\n\t*/\r\n\t__proto.size=function(w,h){\r\n\t\tif (this._w !=w || this._h !=h ||(this._source && (this._source.width!=w || this._source.height!=h))){\r\n\t\t\tthis._w=w;\r\n\t\t\tthis._h=h;\r\n\t\t\tthis.memorySize=this._w *this._h *4;\r\n\t\t\tthis._ctx && this._ctx.size(w,h);\r\n\t\t\tthis._source && (this._source.height=h,this._source.width=w);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.getCanvas=function(){\r\n\t\treturn this._source;\r\n\t}\r\n\r\n\t__proto.toBase64=function(type,encoderOptions,callBack){\r\n\t\tif (this._source){\r\n\t\t\tif (Render.isConchApp && this._source.toBase64){\r\n\t\t\t\tthis._source.toBase64(type,encoderOptions,callBack);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tvar base64Data=this._source.toDataURL(type,encoderOptions);\r\n\t\t\t\tcallBack.call(this,base64Data);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*Canvas 渲染上下文。\r\n\t*/\r\n\t__getset(0,__proto,'context',function(){\r\n\t\treturn this._ctx;\r\n\t});\r\n\r\n\t/**\r\n\t*是否当作 Bitmap 对象。\r\n\t*/\r\n\t__getset(0,__proto,'asBitmap',null,function(value){\r\n\t});\r\n\r\n\tHTMLCanvas.create=function(type,canvas){\r\n\t\treturn new HTMLCanvas(type,canvas);\r\n\t}\r\n\r\n\tHTMLCanvas.TYPE2D=\"2D\";\r\n\tHTMLCanvas.TYPE3D=\"3D\";\r\n\tHTMLCanvas.TYPEAUTO=\"AUTO\";\r\n\tHTMLCanvas._createContext=null;\r\n\treturn HTMLCanvas;\r\n})(Bitmap)\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.resource.HTMLSubImage extends laya.resource.Bitmap\r\nvar HTMLSubImage=(function(_super){\r\n\t//请不要直接使用new HTMLSubImage\r\n\tfunction HTMLSubImage(canvas,offsetX,offsetY,width,height,atlasImage,src,allowMerageInAtlas){\r\n\t\tHTMLSubImage.__super.call(this);\r\n\t\tthrow new Error(\"不允许new！\");\r\n\t}\r\n\r\n\t__class(HTMLSubImage,'laya.resource.HTMLSubImage',_super);\r\n\tHTMLSubImage.create=function(canvas,offsetX,offsetY,width,height,atlasImage,src,allowMerageInAtlas){\r\n\t\t(allowMerageInAtlas===void 0)&& (allowMerageInAtlas=false);\r\n\t\treturn new HTMLSubImage(canvas,offsetX,offsetY,width,height,atlasImage,src,allowMerageInAtlas);\r\n\t}\r\n\r\n\treturn HTMLSubImage;\r\n})(Bitmap)\r\n\r\n\r\n/**\r\n*<p> <code>Animation</code> 是Graphics动画类。实现了基于Graphics的动画创建、播放、控制接口。</p>\r\n*<p>本类使用了动画模版缓存池，它以一定的内存开销来节省CPU开销，当相同的动画模版被多次使用时，相比于每次都创建新的动画模版，使用动画模版缓存池，只需创建一次，缓存之后多次复用，从而节省了动画模版创建的开销。</p>\r\n*<p>动画模版缓存池，以key-value键值对存储，key可以自定义，也可以从指定的配置文件中读取，value为对应的动画模版，是一个Graphics对象数组，每个Graphics对象对应一个帧图像，动画的播放实质就是定时切换Graphics对象。</p>\r\n*<p>使用set source、loadImages(...)、loadAtlas(...)、loadAnimation(...)方法可以创建动画模版。使用play(...)可以播放指定动画。</p>\r\n*@example <caption>以下示例代码，创建了一个 <code>Text</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.display.Animation;\r\n\t*import laya.net.Loader;\r\n\t*import laya.utils.Handler;\r\n\t*public class Animation_Example\r\n\t*{\r\n\t\t*public function Animation_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*init();//初始化\r\n\t\t\t*}\r\n\t\t*private function init():void\r\n\t\t*{\r\n\t\t\t*var animation:Animation=new Animation();//创建一个 Animation 类的实例对象 animation 。\r\n\t\t\t*animation.loadAtlas(\"resource/ani/fighter.json\");//加载图集并播放\r\n\t\t\t*animation.x=200;//设置 animation 对象的属性 x 的值，用于控制 animation 对象的显示位置。\r\n\t\t\t*animation.y=200;//设置 animation 对象的属性 x 的值，用于控制 animation 对象的显示位置。\r\n\t\t\t*animation.interval=50;//设置 animation 对象的动画播放间隔时间，单位：毫秒。\r\n\t\t\t*animation.play();//播放动画。\r\n\t\t\t*Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*\r\n*@example\r\n*Animation_Example();\r\n*function Animation_Example(){\r\n\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t*init();//初始化\r\n\t*}\r\n*function init()\r\n*{\r\n\t*var animation=new Laya.Animation();//创建一个 Animation 类的实例对象 animation 。\r\n\t*animation.loadAtlas(\"resource/ani/fighter.json\");//加载图集并播放\r\n\t*animation.x=200;//设置 animation 对象的属性 x 的值，用于控制 animation 对象的显示位置。\r\n\t*animation.y=200;//设置 animation 对象的属性 x 的值，用于控制 animation 对象的显示位置。\r\n\t*animation.interval=50;//设置 animation 对象的动画播放间隔时间，单位：毫秒。\r\n\t*animation.play();//播放动画。\r\n\t*Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。\r\n\t*}\r\n*\r\n*@example\r\n*import Animation=laya.display.Animation;\r\n*class Animation_Example {\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*this.init();\r\n\t\t*}\r\n\t*private init():void {\r\n\t\t*var animation:Animation=new Laya.Animation();//创建一个 Animation 类的实例对象 animation 。\r\n\t\t*animation.loadAtlas(\"resource/ani/fighter.json\");//加载图集并播放\r\n\t\t*animation.x=200;//设置 animation 对象的属性 x 的值，用于控制 animation 对象的显示位置。\r\n\t\t*animation.y=200;//设置 animation 对象的属性 x 的值，用于控制 animation 对象的显示位置。\r\n\t\t*animation.interval=50;//设置 animation 对象的动画播放间隔时间，单位：毫秒。\r\n\t\t*animation.play();//播放动画。\r\n\t\t*Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。\r\n\t\t*}\r\n\t*}\r\n*new Animation_Example();\r\n*/\r\n//class laya.display.Animation extends laya.display.AnimationPlayerBase\r\nvar Animation=(function(_super){\r\n\tfunction Animation(){\r\n\t\t/**@private */\r\n\t\tthis._frames=null;\r\n\t\t/**@private */\r\n\t\tthis._url=null;\r\n\t\tAnimation.__super.call(this);\r\n\t\tthis._setControlNode(this);\r\n\t}\r\n\r\n\t__class(Animation,'laya.display.Animation',_super);\r\n\tvar __proto=Animation.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tthis.stop();\r\n\t\tlaya.display.Sprite.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._frames=null;\r\n\t\tthis._labels=null;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>开始播放动画。会在动画模版缓存池中查找key值为name的动画模版，存在则用此动画模版初始化当前序列帧， 如果不存在，则使用当前序列帧。</p>\r\n\t*<p>play(...)方法被设计为在创建实例后的任何时候都可以被调用，调用后就处于播放状态，当相应的资源加载完毕、调用动画帧填充方法(set frames)或者将实例显示在舞台上时，会判断是否处于播放状态，如果是，则开始播放。</p>\r\n\t*<p>配合wrapMode属性，可设置动画播放顺序类型。</p>\r\n\t*@param start （可选）指定动画播放开始的索引(int)或帧标签(String)。帧标签可以通过addLabel(...)和removeLabel(...)进行添加和删除。\r\n\t*@param loop （可选）是否循环播放。\r\n\t*@param name （可选）动画模板在动画模版缓存池中的key，也可认为是动画名称。如果name为空，则播放当前动画序列帧；如果不为空，则在动画模版缓存池中寻找key值为name的动画模版，如果存在则用此动画模版初始化当前序列帧并播放，如果不存在，则仍然播放当前动画序列帧；如果没有当前动画的帧数据，则不播放，但该实例仍然处于播放状态。\r\n\t*@param showWarn（可选）是否动画不存在时打印警告\r\n\t*/\r\n\t__proto.play=function(start,loop,name,showWarn){\r\n\t\t(start===void 0)&& (start=0);\r\n\t\t(loop===void 0)&& (loop=true);\r\n\t\t(name===void 0)&& (name=\"\");\r\n\t\t(showWarn===void 0)&& (showWarn=true);\r\n\t\tif (name)this._setFramesFromCache(name,showWarn);\r\n\t\tthis._isPlaying=true;\r\n\t\tthis.index=((typeof start=='string'))? this._getFrameByLabel(start):start;\r\n\t\tthis.loop=loop;\r\n\t\tthis._actionName=name;\r\n\t\tthis._isReverse=this.wrapMode==1;\r\n\t\tif (this._frames && this.interval > 0){\r\n\t\t\tthis.timerLoop(this.interval,this,this._frameLoop,null,true,true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setFramesFromCache=function(name,showWarn){\r\n\t\t(showWarn===void 0)&& (showWarn=false);\r\n\t\tif (this._url)name=this._url+\"#\"+name;\r\n\t\tif (name && Animation.framesMap[name]){\r\n\t\t\tvar tAniO;\r\n\t\t\ttAniO=Animation.framesMap[name];\r\n\t\t\tif ((tAniO instanceof Array)){\r\n\t\t\t\tthis._frames=Animation.framesMap[name];\r\n\t\t\t\tthis._count=this._frames.length;\r\n\t\t\t\t}else {\r\n\t\t\t\tif (tAniO.nodeRoot){\r\n\t\t\t\t\tAnimation.framesMap[name]=this._parseGraphicAnimationByData(tAniO);\r\n\t\t\t\t\ttAniO=Animation.framesMap[name];\r\n\t\t\t\t}\r\n\t\t\t\tthis._frames=tAniO.frames;\r\n\t\t\t\tthis._count=this._frames.length;\r\n\t\t\t\tif (!this._frameRateChanged)this._interval=tAniO.interval;\r\n\t\t\t\tthis._labels=this._copyLabels(tAniO.labels);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t\t}else {\r\n\t\t\tif (showWarn)console.log(\"ani not found:\",name);\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._copyLabels=function(labels){\r\n\t\tif (!labels)return null;\r\n\t\tvar rst;\r\n\t\trst={};\r\n\t\tvar key;\r\n\t\tfor (key in labels){\r\n\t\t\trst[key]=Utils.copyArray([],labels[key]);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._frameLoop=function(){\r\n\t\tif (this._style.visible && this._style.alpha > 0.01){\r\n\t\t\t_super.prototype._frameLoop.call(this);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._displayToIndex=function(value){\r\n\t\tif (this._frames)this.graphics=this._frames[value];\r\n\t}\r\n\r\n\t/**\r\n\t*停止动画播放，并清理对象属性。之后可存入对象池，方便对象复用。\r\n\t*/\r\n\t__proto.clear=function(){\r\n\t\tthis.stop();\r\n\t\tthis.graphics=null;\r\n\t\tthis._frames=null;\r\n\t\tthis._labels=null;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>根据指定的动画模版初始化当前动画序列帧。选择动画模版的过程如下：1. 动画模版缓存池中key为cacheName的动画模版；2. 如果不存在，则加载指定的图片集合并创建动画模版。注意：只有指定不为空的cacheName，才能将创建好的动画模版以此为key缓存到动画模版缓存池，否则不进行缓存。</p>\r\n\t*<p>动画模版缓存池是以一定的内存开销来节省CPU开销，当相同的动画模版被多次使用时，相比于每次都创建新的动画模版，使用动画模版缓存池，只需创建一次，缓存之后多次复用，从而节省了动画模版创建的开销。</p>\r\n\t*<p>因为返回值为Animation对象本身，所以可以使用如下语法：ani.loadImages(...).loadImages(...).play(...);。</p>\r\n\t*@param urls 图片路径集合。需要创建动画模版时，会以此为数据源。参数形如：[url1,url2,url3,...]。\r\n\t*@param cacheName （可选）动画模板在动画模版缓存池中的key。如果此参数不为空，表示使用动画模版缓存池。如果动画模版缓存池中存在key为cacheName的动画模版，则使用此模版。否则，创建新的动画模版，如果cacheName不为空，则以cacheName为key缓存到动画模版缓存池中，如果cacheName为空，不进行缓存。\r\n\t*@return 返回Animation对象本身。\r\n\t*/\r\n\t__proto.loadImages=function(urls,cacheName){\r\n\t\t(cacheName===void 0)&& (cacheName=\"\");\r\n\t\tthis._url=\"\";\r\n\t\tif (!this._setFramesFromCache(cacheName)){\r\n\t\t\tthis.frames=Animation.framesMap[cacheName] ? Animation.framesMap[cacheName] :Animation.createFrames(urls,cacheName);\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>根据指定的动画模版初始化当前动画序列帧。选择动画模版的过程如下：1. 动画模版缓存池中key为cacheName的动画模版；2. 如果不存在，则加载指定的图集并创建动画模版。</p>\r\n\t*<p>注意：只有指定不为空的cacheName，才能将创建好的动画模版以此为key缓存到动画模版缓存池，否则不进行缓存。</p>\r\n\t*<p>动画模版缓存池是以一定的内存开销来节省CPU开销，当相同的动画模版被多次使用时，相比于每次都创建新的动画模版，使用动画模版缓存池，只需创建一次，缓存之后多次复用，从而节省了动画模版创建的开销。</p>\r\n\t*<p>因为返回值为Animation对象本身，所以可以使用如下语法：ani.loadAtlas(...).loadAtlas(...).play(...);。</p>\r\n\t*@param url 图集路径。需要创建动画模版时，会以此为数据源。\r\n\t*@param loaded （可选）使用指定图集初始化动画完毕的回调。\r\n\t*@param cacheName （可选）动画模板在动画模版缓存池中的key。如果此参数不为空，表示使用动画模版缓存池。如果动画模版缓存池中存在key为cacheName的动画模版，则使用此模版。否则，创建新的动画模版，如果cacheName不为空，则以cacheName为key缓存到动画模版缓存池中，如果cacheName为空，不进行缓存。\r\n\t*@return 返回动画本身。\r\n\t*/\r\n\t__proto.loadAtlas=function(url,loaded,cacheName){\r\n\t\t(cacheName===void 0)&& (cacheName=\"\");\r\n\t\tthis._url=\"\";\r\n\t\tvar _this_=this;\r\n\t\tfunction onLoaded (loadUrl){\r\n\t\t\tif (url===loadUrl){\r\n\t\t\t\t_this_.frames=Animation.framesMap[cacheName] ? Animation.framesMap[cacheName] :Animation.createFrames(url,cacheName);\r\n\t\t\t\tif (loaded)loaded.run();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!_this_._setFramesFromCache(cacheName)){\r\n\t\t\tif (Loader.getAtlas(url))onLoaded(url);\r\n\t\t\telse Laya.loader.load(url,Handler.create(null,onLoaded,[url]),null,/*laya.net.Loader.ATLAS*/\"atlas\");\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>加载并解析由LayaAir IDE制作的动画文件，此文件中可能包含多个动画。默认帧率为在IDE中设计的帧率，如果调用过set interval，则使用此帧间隔对应的帧率。加载后创建动画模版，并缓存到动画模版缓存池，key \"url#动画名称\" 对应相应动画名称的动画模板，key \"url#\" 对应动画模版集合的默认动画模版。</p>\r\n\t*<p>注意：如果调用本方法前，还没有预加载动画使用的图集，请将atlas参数指定为对应的图集路径，否则会导致动画创建失败。</p>\r\n\t*<p>动画模版缓存池是以一定的内存开销来节省CPU开销，当相同的动画模版被多次使用时，相比于每次都创建新的动画模版，使用动画模版缓存池，只需创建一次，缓存之后多次复用，从而节省了动画模版创建的开销。</p>\r\n\t*<p>因为返回值为Animation对象本身，所以可以使用如下语法：ani.loadAnimation(...).loadAnimation(...).play(...);。</p>\r\n\t*@param url 动画文件路径。可由LayaAir IDE创建并发布。\r\n\t*@param loaded （可选）使用指定动画资源初始化动画完毕的回调。\r\n\t*@param atlas （可选）动画用到的图集地址（可选）。\r\n\t*@return 返回动画本身。\r\n\t*/\r\n\t__proto.loadAnimation=function(url,loaded,atlas){\r\n\t\tthis._url=url;\r\n\t\tvar _this_=this;\r\n\t\tif (!this._actionName)this._actionName=\"\";\r\n\t\tif (!_this_._setFramesFromCache(\"\")){\r\n\t\t\tif (!atlas || Loader.getAtlas(atlas)){\r\n\t\t\t\tthis._loadAnimationData(url,loaded,atlas);\r\n\t\t\t\t}else {\r\n\t\t\t\tLaya.loader.load(atlas,Handler.create(this,this._loadAnimationData,[url,loaded,atlas]),null,/*laya.net.Loader.ATLAS*/\"atlas\")\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\t_this_._setFramesFromCache(this._actionName,true);\r\n\t\t\tthis.index=0;\r\n\t\t\tif (loaded)loaded.run();\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._loadAnimationData=function(url,loaded,atlas){\r\n\t\tvar _$this=this;\r\n\t\tif (atlas && !Loader.getAtlas(atlas)){\r\n\t\t\tconsole.warn(\"atlas load fail:\"+atlas);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar _this_=this;\r\n\t\tfunction onLoaded (loadUrl){\r\n\t\t\tif (!Loader.getRes(loadUrl))return;\r\n\t\t\tif (url===loadUrl){\r\n\t\t\t\tvar tAniO;\r\n\t\t\t\tif (!Animation.framesMap[url+\"#\"]){\r\n\t\t\t\t\tvar aniData=_this_._parseGraphicAnimation(Loader.getRes(url));\r\n\t\t\t\t\tif (!aniData)return;\r\n\t\t\t\t\tvar aniList=aniData.animationList;\r\n\t\t\t\t\tvar i=0,len=aniList.length;\r\n\t\t\t\t\tvar defaultO;\r\n\t\t\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\t\t\ttAniO=aniList[i];\r\n\t\t\t\t\t\tAnimation.framesMap[url+\"#\"+tAniO.name]=tAniO;\r\n\t\t\t\t\t\tif (!defaultO)defaultO=tAniO;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (defaultO){\r\n\t\t\t\t\t\tAnimation.framesMap[url+\"#\"]=defaultO;\r\n\t\t\t\t\t\t_this_._setFramesFromCache(_$this._actionName,true);\r\n\t\t\t\t\t\t_$this.index=0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t_$this._checkResumePlaying();\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\t_this_._setFramesFromCache(_$this._actionName,true);\r\n\t\t\t\t\t_$this.index=0;\r\n\t\t\t\t\t_$this._checkResumePlaying();\r\n\t\t\t\t}\r\n\t\t\t\tif (loaded)loaded.run();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (Loader.getRes(url))onLoaded(url);\r\n\t\telse Laya.loader.load(url,Handler.create(null,onLoaded,[url]),null,/*laya.net.Loader.JSON*/\"json\");\r\n\t\tLoader.clearRes(url);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._parseGraphicAnimation=function(animationData){\r\n\t\treturn GraphicAnimation.parseAnimationData(animationData);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._parseGraphicAnimationByData=function(animationObject){\r\n\t\treturn GraphicAnimation.parseAnimationByData(animationObject);\r\n\t}\r\n\r\n\t/**\r\n\t*当前动画的帧图像数组。本类中，每个帧图像是一个Graphics对象，而动画播放就是定时切换Graphics对象的过程。\r\n\t*/\r\n\t__getset(0,__proto,'frames',function(){\r\n\t\treturn this._frames;\r\n\t\t},function(value){\r\n\t\tthis._frames=value;\r\n\t\tif (value){\r\n\t\t\tthis._count=value.length;\r\n\t\t\tif (this._isPlaying)this.play(this._index,this.loop,this._actionName);\r\n\t\t\telse this.index=this._index;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*是否自动播放，默认为false。如果设置为true，则动画被创建并添加到舞台后自动播放。\r\n\t*/\r\n\t__getset(0,__proto,'autoPlay',null,function(value){\r\n\t\tif (value)this.play();\r\n\t\telse this.stop();\r\n\t});\r\n\r\n\t/**\r\n\t*<p>动画数据源。</p>\r\n\t*<p>类型如下：<br/>\r\n\t*1. LayaAir IDE动画文件路径：使用此类型需要预加载所需的图集资源，否则会创建失败，如果不想预加载或者需要创建完毕的回调，请使用loadAnimation(...)方法；<br/>\r\n\t*2. 图集路径：使用此类型创建的动画模版不会被缓存到动画模版缓存池中，如果需要缓存或者创建完毕的回调，请使用loadAtlas(...)方法；<br/>\r\n\t*3. 图片路径集合：使用此类型创建的动画模版不会被缓存到动画模版缓存池中，如果需要缓存，请使用loadImages(...)方法。</p>\r\n\t*@param value 数据源。比如：图集：\"xx/a1.atlas\"；图片集合：\"a1.png,a2.png,a3.png\"；LayaAir IDE动画\"xx/a1.ani\"。\r\n\t*/\r\n\t__getset(0,__proto,'source',null,function(value){\r\n\t\tif (value.indexOf(\".ani\")>-1)this.loadAnimation(value);\r\n\t\telse if (value.indexOf(\".json\")>-1 || value.indexOf(\"als\")>-1 || value.indexOf(\"atlas\")>-1)this.loadAtlas(value);\r\n\t\telse this.loadImages(value.split(\",\"));\r\n\t});\r\n\r\n\t/**\r\n\t*设置自动播放的动画名称，在LayaAir IDE中可以创建的多个动画组成的动画集合，选择其中一个动画名称进行播放。\r\n\t*/\r\n\t__getset(0,__proto,'autoAnimation',null,function(value){\r\n\t\tthis.play(0,true,value,false);\r\n\t});\r\n\r\n\tAnimation.createFrames=function(url,name){\r\n\t\tvar arr,i=0,n=0,g;\r\n\t\tif ((typeof url=='string')){\r\n\t\t\tvar atlas=Loader.getAtlas(url);\r\n\t\t\tif (atlas && atlas.length){\r\n\t\t\t\tarr=[];\r\n\t\t\t\tfor (i=0,n=atlas.length;i < n;i++){\r\n\t\t\t\t\tg=new RunDriver.createGraphics();\r\n\t\t\t\t\tg.drawTexture(Loader.getRes(atlas[i]),0,0);\r\n\t\t\t\t\tarr.push(g);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else if ((url instanceof Array)){\r\n\t\t\tarr=[];\r\n\t\t\tfor (i=0,n=url.length;i < n;i++){\r\n\t\t\t\tg=new RunDriver.createGraphics();\r\n\t\t\t\tg.loadImage(url[i],0,0);\r\n\t\t\t\tarr.push(g);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (name)Animation.framesMap[name]=arr;\r\n\t\treturn arr;\r\n\t}\r\n\r\n\tAnimation.clearCache=function(key){\r\n\t\tvar cache=Animation.framesMap;\r\n\t\tvar val;\r\n\t\tvar key2=key+\"#\";\r\n\t\tfor (val in cache){\r\n\t\t\tif (val===key || val.indexOf(key2)==0){\r\n\t\t\t\tdelete Animation.framesMap[val];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tAnimation.framesMap={};\r\n\treturn Animation;\r\n})(AnimationPlayerBase)\r\n\r\n\r\n/**\r\n*关键帧动画播放类。\r\n*/\r\n//class laya.display.FrameAnimation extends laya.display.AnimationPlayerBase\r\nvar FrameAnimation=(function(_super){\r\n\tfunction FrameAnimation(){\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*id对象表\r\n\t\t*/\r\n\t\tthis._targetDic=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*动画数据\r\n\t\t*/\r\n\t\tthis._animationData=null;\r\n\t\t/**@private */\r\n\t\tthis._animationNewFrames=null;\r\n\t\tFrameAnimation.__super.call(this);\r\n\t\tif (FrameAnimation._sortIndexFun==null){\r\n\t\t\tFrameAnimation._sortIndexFun=MathUtil.sortByKey(\"index\",false,true);\r\n\t\t}\r\n\t}\r\n\r\n\t__class(FrameAnimation,'laya.display.FrameAnimation',_super);\r\n\tvar __proto=FrameAnimation.prototype;\r\n\t/**\r\n\t*@private\r\n\t*初始化动画数据\r\n\t*@param targetDic 对象表\r\n\t*@param animationData 动画数据\r\n\t*\r\n\t*/\r\n\t__proto._setUp=function(targetDic,animationData){\r\n\t\tthis._labels=null;\r\n\t\tthis._animationNewFrames=null;\r\n\t\tthis._targetDic=targetDic;\r\n\t\tthis._animationData=animationData;\r\n\t\tthis.interval=1000 / animationData.frameRate;\r\n\t\tif (animationData.parsed){\r\n\t\t\tthis._count=animationData.count;\r\n\t\t\tthis._labels=animationData.labels;\r\n\t\t\tthis._animationNewFrames=animationData.animationNewFrames;\r\n\t\t\t}else {\r\n\t\t\tthis._animationNewFrames=[];\r\n\t\t\tthis._calculateDatas();\r\n\t\t}\r\n\t\tanimationData.parsed=true;\r\n\t\tanimationData.labels=this._labels;\r\n\t\tanimationData.count=this._count;\r\n\t\tanimationData.animationNewFrames=this._animationNewFrames;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.clear=function(){\r\n\t\t_super.prototype.clear.call(this);\r\n\t\tthis._targetDic=null;\r\n\t\tthis._animationData=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto._displayToIndex=function(value){\r\n\t\tif (!this._animationData)return;\r\n\t\tif (value < 0)value=0;\r\n\t\tif (value > this._count)value=this._count;\r\n\t\tvar nodes=this._animationData.nodes,i=0,len=nodes.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tthis._displayNodeToFrame(nodes[i],value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*将节点设置到某一帧的状态\r\n\t*@param node 节点ID\r\n\t*@param frame\r\n\t*@param targetDic 节点表\r\n\t*\r\n\t*/\r\n\t__proto._displayNodeToFrame=function(node,frame,targetDic){\r\n\t\tif (!targetDic)targetDic=this._targetDic;\r\n\t\tvar target=targetDic[node.target];\r\n\t\tif (!target){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar frames=node.frames,key,propFrames,value;\r\n\t\tvar keys=node.keys,i=0,len=keys.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tkey=keys[i];\r\n\t\t\tpropFrames=frames[key];\r\n\t\t\tif (propFrames.length > frame){\r\n\t\t\t\tvalue=propFrames[frame];\r\n\t\t\t\t}else {\r\n\t\t\t\tvalue=propFrames[propFrames.length-1];\r\n\t\t\t}\r\n\t\t\ttarget[key]=value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*计算帧数据\r\n\t*\r\n\t*/\r\n\t__proto._calculateDatas=function(){\r\n\t\tif (!this._animationData)return;\r\n\t\tvar nodes=this._animationData.nodes,i=0,len=nodes.length,tNode;\r\n\t\tthis._count=0;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\ttNode=nodes[i];\r\n\t\t\tthis._calculateNodeKeyFrames(tNode);\r\n\t\t}\r\n\t\tthis._count+=1;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*计算某个节点的帧数据\r\n\t*@param node\r\n\t*\r\n\t*/\r\n\t__proto._calculateNodeKeyFrames=function(node){\r\n\t\tvar keyFrames=node.keyframes,key,tKeyFrames,target=node.target;\r\n\t\tif (!node.frames){\r\n\t\t\tnode.frames={};\r\n\t\t}\r\n\t\tif (!node.keys){\r\n\t\t\tnode.keys=[];\r\n\t\t\t}else {\r\n\t\t\tnode.keys.length=0;\r\n\t\t}\r\n\t\tif (!node.initValues){\r\n\t\t\tnode.initValues={};\r\n\t\t}\r\n\t\tfor (key in keyFrames){\r\n\t\t\ttKeyFrames=keyFrames[key];\r\n\t\t\tif (!node.frames[key]){\r\n\t\t\t\tnode.frames[key]=[];\r\n\t\t\t}\r\n\t\t\tif (this._targetDic && this._targetDic[target]){\r\n\t\t\t\tnode.initValues[key]=this._targetDic[target][key];\r\n\t\t\t}\r\n\t\t\ttKeyFrames.sort(FrameAnimation._sortIndexFun);\r\n\t\t\tnode.keys.push(key);\r\n\t\t\tthis._calculateNodePropFrames(tKeyFrames,node.frames[key],key,target);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*将动画控制对象还原到动画控制之前的状态\r\n\t*/\r\n\t__proto.resetToInitState=function(){\r\n\t\tif (!this._targetDic)return;\r\n\t\tif (!this._animationData)return;\r\n\t\tvar nodes=this._animationData.nodes,i=0,len=nodes.length;\r\n\t\tvar tNode;\r\n\t\tvar initValues;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\ttNode=nodes[i];\r\n\t\t\tinitValues=tNode.initValues;\r\n\t\t\tif (!initValues)continue ;\r\n\t\t\tvar target=this._targetDic[tNode.target];\r\n\t\t\tif (!target)continue ;\r\n\t\t\tvar key;\r\n\t\t\tfor (key in initValues){\r\n\t\t\t\ttarget[key]=initValues[key];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*计算节点某个属性的帧数据\r\n\t*@param keyframes\r\n\t*@param frames\r\n\t*@param key\r\n\t*@param target\r\n\t*\r\n\t*/\r\n\t__proto._calculateNodePropFrames=function(keyframes,frames,key,target){\r\n\t\tvar i=0,len=keyframes.length-1;\r\n\t\tframes.length=keyframes[len].index+1;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tthis._dealKeyFrame(keyframes[i]);\r\n\t\t\tthis._calculateFrameValues(keyframes[i],keyframes[i+1],frames);\r\n\t\t}\r\n\t\tif (len==0){\r\n\t\t\tframes[0]=keyframes[0].value;\r\n\t\t\tif (this._animationNewFrames)\r\n\t\t\t\tthis._animationNewFrames[keyframes[0].index]=true;\r\n\t\t}\r\n\t\tthis._dealKeyFrame(keyframes[i]);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*\r\n\t*/\r\n\t__proto._dealKeyFrame=function(keyFrame){\r\n\t\tif (keyFrame.label && keyFrame.label !=\"\")this.addLabel(keyFrame.label,keyFrame.index);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*计算两个关键帧直接的帧数据\r\n\t*@param startFrame\r\n\t*@param endFrame\r\n\t*@param result\r\n\t*\r\n\t*/\r\n\t__proto._calculateFrameValues=function(startFrame,endFrame,result){\r\n\t\tvar i=0,easeFun;\r\n\t\tvar start=startFrame.index,end=endFrame.index;\r\n\t\tvar startValue=startFrame.value;\r\n\t\tvar dValue=endFrame.value-startFrame.value;\r\n\t\tvar dLen=end-start;\r\n\t\tif (end > this._count)this._count=end;\r\n\t\tif (startFrame.tween){\r\n\t\t\teaseFun=Ease[startFrame.tweenMethod];\r\n\t\t\tif (easeFun==null){\r\n\t\t\t\teaseFun=Ease.linearNone;\r\n\t\t\t}\r\n\t\t\tfor (i=start;i < end;i++){\r\n\t\t\t\tresult[i]=easeFun(i-start,startValue,dValue,dLen);\r\n\t\t\t\tif (this._animationNewFrames){\r\n\t\t\t\t\tthis._animationNewFrames[i]=true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tfor (i=start;i < end;i++){\r\n\t\t\t\tresult[i]=startValue;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._animationNewFrames){\r\n\t\t\tthis._animationNewFrames[startFrame.index]=true;\r\n\t\t\tthis._animationNewFrames[endFrame.index]=true;\r\n\t\t}\r\n\t\tresult[endFrame.index]=endFrame.value;\r\n\t}\r\n\r\n\tFrameAnimation._sortIndexFun=null;\r\n\treturn FrameAnimation;\r\n})(AnimationPlayerBase)\r\n\r\n\r\n/**\r\n*<p><code>Input</code> 类用于创建显示对象以显示和输入文本。</p>\r\n*<p>Input 类封装了原生的文本输入框，由于不同浏览器的差异，会导致此对象的默认文本的位置与用户点击输入时的文本的位置有少许的偏差。</p>\r\n*/\r\n//class laya.display.Input extends laya.display.Text\r\nvar Input=(function(_super){\r\n\tfunction Input(){\r\n\t\t/**@private */\r\n\t\tthis._focus=false;\r\n\t\t/**@private */\r\n\t\tthis._multiline=false;\r\n\t\t/**@private */\r\n\t\tthis._editable=true;\r\n\t\t/**@private */\r\n\t\tthis._restrictPattern=null;\r\n\t\tthis._type=\"text\";\r\n\t\t/**输入提示符。*/\r\n\t\tthis._prompt='';\r\n\t\t/**输入提示符颜色。*/\r\n\t\tthis._promptColor=\"#A9A9A9\";\r\n\t\tthis._originColor=\"#000000\";\r\n\t\tthis._content='';\r\n\t\tInput.__super.call(this);\r\n\t\tthis._maxChars=1E5;\r\n\t\tthis._width=100;\r\n\t\tthis._height=20;\r\n\t\tthis.multiline=false;\r\n\t\tthis.overflow=Text.SCROLL;\r\n\t\tthis.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this._onMouseDown);\r\n\t\tthis.on(/*laya.events.Event.UNDISPLAY*/\"undisplay\",this,this._onUnDisplay);\r\n\t}\r\n\r\n\t__class(Input,'laya.display.Input',_super);\r\n\tvar __proto=Input.prototype;\r\n\t/**\r\n\t*设置光标位置和选取字符。\r\n\t*@param startIndex 光标起始位置。\r\n\t*@param endIndex 光标结束位置。\r\n\t*/\r\n\t__proto.setSelection=function(startIndex,endIndex){\r\n\t\tthis.focus=true;\r\n\t\tlaya.display.Input.inputElement.selectionStart=startIndex;\r\n\t\tlaya.display.Input.inputElement.selectionEnd=endIndex;\r\n\t}\r\n\r\n\t__proto._onUnDisplay=function(e){\r\n\t\tthis.focus=false;\r\n\t}\r\n\r\n\t__proto._onMouseDown=function(e){\r\n\t\tthis.focus=true;\r\n\t}\r\n\r\n\t/**\r\n\t*在输入期间，如果 Input 实例的位置改变，调用_syncInputTransform同步输入框的位置。\r\n\t*/\r\n\t__proto._syncInputTransform=function(){\r\n\t\tvar inputElement=this.nativeInput;\r\n\t\tvar transform=Utils.getTransformRelativeToWindow(this,this.padding[3],this.padding[0]);\r\n\t\tvar inputWid=this._width-this.padding[1]-this.padding[3];\r\n\t\tvar inputHei=this._height-this.padding[0]-this.padding[2];\r\n\t\tif (Render.isConchApp){\r\n\t\t\tinputElement.setScale(transform.scaleX,transform.scaleY);\r\n\t\t\tinputElement.setSize(inputWid,inputHei);\r\n\t\t\tinputElement.setPos(transform.x,transform.y);\r\n\t\t\t}else {\r\n\t\t\tInput.inputContainer.style.transform=Input.inputContainer.style.webkitTransform=\"scale(\"+transform.scaleX+\",\"+transform.scaleY+\") rotate(\"+(Laya.stage.canvasDegree)+\"deg)\";\r\n\t\t\tinputElement.style.width=inputWid+'px';\r\n\t\t\tinputElement.style.height=inputHei+'px';\r\n\t\t\tInput.inputContainer.style.left=transform.x+'px';\r\n\t\t\tInput.inputContainer.style.top=transform.y+'px';\r\n\t\t}\r\n\t}\r\n\r\n\t/**选中当前实例的所有文本。*/\r\n\t__proto.select=function(){\r\n\t\tthis.nativeInput.select();\r\n\t}\r\n\r\n\t__proto._setInputMethod=function(){\r\n\t\tInput.input.parentElement && (Input.inputContainer.removeChild(Input.input));\r\n\t\tInput.area.parentElement && (Input.inputContainer.removeChild(Input.area));\r\n\t\tInput.inputElement=(this._multiline ? Input.area :Input.input);\r\n\t\tInput.inputContainer.appendChild(Input.inputElement);\r\n\t\tif (Text.RightToLeft){\r\n\t\t\tInput.inputElement.style.direction=\"rtl\";\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._focusIn=function(){\r\n\t\tlaya.display.Input.isInputting=true;\r\n\t\tvar input=this.nativeInput;\r\n\t\tthis._focus=true;\r\n\t\tvar cssStyle=input.style;\r\n\t\tcssStyle.whiteSpace=(this.wordWrap ? \"pre-wrap\" :\"nowrap\");\r\n\t\tthis._setPromptColor();\r\n\t\tinput.readOnly=!this._editable;\r\n\t\tif (Render.isConchApp){\r\n\t\t\tinput.setType(this._type);\r\n\t\t\tinput.setForbidEdit(!this._editable);\r\n\t\t}\r\n\t\tinput.maxLength=this._maxChars;\r\n\t\tvar padding=this.padding;\r\n\t\tinput.type=this._type;\r\n\t\tinput.value=this._content;\r\n\t\tinput.placeholder=this._prompt;\r\n\t\tLaya.stage.off(/*laya.events.Event.KEY_DOWN*/\"keydown\",this,this._onKeyDown);\r\n\t\tLaya.stage.on(/*laya.events.Event.KEY_DOWN*/\"keydown\",this,this._onKeyDown);\r\n\t\tLaya.stage.focus=this;\r\n\t\tthis.event(/*laya.events.Event.FOCUS*/\"focus\");\r\n\t\tif (Browser.onPC)input.focus();\r\n\t\tif(!Browser.onMiniGame){\r\n\t\t\tvar temp=this._text;\r\n\t\t\tthis._text=null;\r\n\t\t}\r\n\t\tthis.typeset();\r\n\t\tinput.setColor(this._originColor);\r\n\t\tinput.setFontSize(this.fontSize);\r\n\t\tinput.setFontFace(Browser.onIPhone ? (Text._fontFamilyMap[this.font] || this.font):this.font);\r\n\t\tif (Render.isConchApp){\r\n\t\t\tinput.setMultiAble && input.setMultiAble(this._multiline);\r\n\t\t}\r\n\t\tcssStyle.lineHeight=(this.leading+this.fontSize)+\"px\";\r\n\t\tcssStyle.fontStyle=(this.italic ? \"italic\" :\"normal\");\r\n\t\tcssStyle.fontWeight=(this.bold ? \"bold\" :\"normal\");\r\n\t\tcssStyle.textAlign=this.align;\r\n\t\tcssStyle.padding=\"0 0\";\r\n\t\tthis._syncInputTransform();\r\n\t\tif (!Render.isConchApp && Browser.onPC)\r\n\t\t\tLaya.timer.frameLoop(1,this,this._syncInputTransform);\r\n\t}\r\n\r\n\t// 设置DOM输入框提示符颜色。\r\n\t__proto._setPromptColor=function(){\r\n\t\tInput.promptStyleDOM=Browser.getElementById(\"promptStyle\");\r\n\t\tif (!Input.promptStyleDOM){\r\n\t\t\tInput.promptStyleDOM=Browser.createElement(\"style\");\r\n\t\t\tInput.promptStyleDOM.setAttribute(\"id\",\"promptStyle\");\r\n\t\t\tBrowser.document.head.appendChild(Input.promptStyleDOM);\r\n\t\t}\r\n\t\tInput.promptStyleDOM.innerText=\"input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {\"+\"color:\"+this._promptColor+\"}\"+\"input:-moz-placeholder, textarea:-moz-placeholder {\"+\"color:\"+this._promptColor+\"}\"+\"input::-moz-placeholder, textarea::-moz-placeholder {\"+\"color:\"+this._promptColor+\"}\"+\"input:-ms-input-placeholder, textarea:-ms-input-placeholder {\"+\"color:\"+this._promptColor+\"}\";\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._focusOut=function(){\r\n\t\tlaya.display.Input.isInputting=false;\r\n\t\tthis._focus=false;\r\n\t\tthis._text=null;\r\n\t\tthis._content=this.nativeInput.value;\r\n\t\tif (!this._content){\r\n\t\t\tLaya.superSet(Text,this,'text',this._prompt);\r\n\t\t\tLaya.superSet(Text,this,'color',this._promptColor);\r\n\t\t\t}else {\r\n\t\t\tLaya.superSet(Text,this,'text',this._content);\r\n\t\t\tLaya.superSet(Text,this,'color',this._originColor);\r\n\t\t}\r\n\t\tLaya.stage.off(/*laya.events.Event.KEY_DOWN*/\"keydown\",this,this._onKeyDown);\r\n\t\tLaya.stage.focus=null;\r\n\t\tthis.event(/*laya.events.Event.BLUR*/\"blur\");\r\n\t\tif (Render.isConchApp)this.nativeInput.blur();\r\n\t\tBrowser.onPC && Laya.timer.clear(this,this._syncInputTransform);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._onKeyDown=function(e){\r\n\t\tif (e.keyCode===13){\r\n\t\t\tif (Browser.onMobile && !this._multiline)\r\n\t\t\t\tthis.focus=false;\r\n\t\t\tthis.event(/*laya.events.Event.ENTER*/\"enter\");\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.changeText=function(text){\r\n\t\tthis._content=text;\r\n\t\tif (this._focus){\r\n\t\t\tthis.nativeInput.value=text || '';\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t\t}else\r\n\t\t_super.prototype.changeText.call(this,text);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'color',_super.prototype._$get_color,function(value){\r\n\t\tif (this._focus)\r\n\t\t\tthis.nativeInput.setColor(value);\r\n\t\tLaya.superSet(Text,this,'color',this._content?value:this._promptColor);\r\n\t\tthis._originColor=value;\r\n\t});\r\n\r\n\t//[Deprecated]\r\n\t__getset(0,__proto,'inputElementYAdjuster',function(){\r\n\t\tconsole.warn(\"deprecated: 由于即使设置了该值，在各平台和浏览器之间也不一定一致，inputElementYAdjuster已弃用。\");\r\n\t\treturn 0;\r\n\t\t},function(value){\r\n\t\tconsole.warn(\"deprecated: 由于即使设置了该值，在各平台和浏览器之间也不一定一致，inputElementYAdjuster已弃用。\");\r\n\t});\r\n\r\n\t/**表示是否是多行输入框。*/\r\n\t__getset(0,__proto,'multiline',function(){\r\n\t\treturn this._multiline;\r\n\t\t},function(value){\r\n\t\tthis._multiline=value;\r\n\t\tthis.valign=value ? \"top\" :\"middle\";\r\n\t});\r\n\r\n\t/**\r\n\t*<p>字符数量限制，默认为10000。</p>\r\n\t*<p>设置字符数量限制时，小于等于0的值将会限制字符数量为10000。</p>\r\n\t*/\r\n\t__getset(0,__proto,'maxChars',function(){\r\n\t\treturn this._maxChars;\r\n\t\t},function(value){\r\n\t\tif (value <=0)\r\n\t\t\tvalue=1E5;\r\n\t\tthis._maxChars=value;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'text',function(){\r\n\t\tif (this._focus)\r\n\t\t\treturn this.nativeInput.value;\r\n\t\telse\r\n\t\treturn this._content || \"\";\r\n\t\t},function(value){\r\n\t\tLaya.superSet(Text,this,'color',this._originColor);\r\n\t\tvalue+='';\r\n\t\tif (this._focus){\r\n\t\t\tthis.nativeInput.value=value || '';\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t\t\t}else {\r\n\t\t\tif (!this._multiline)\r\n\t\t\t\tvalue=value.replace(/\\r?\\n/g,'');\r\n\t\t\tthis._content=value;\r\n\t\t\tif (value)\r\n\t\t\t\tLaya.superSet(Text,this,'text',value);\r\n\t\t\telse {\r\n\t\t\t\tLaya.superSet(Text,this,'text',this._prompt);\r\n\t\t\t\tLaya.superSet(Text,this,'color',this.promptColor);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*获取对输入框的引用实例。\r\n\t*/\r\n\t__getset(0,__proto,'nativeInput',function(){\r\n\t\treturn this._multiline ? Input.area :Input.input;\r\n\t});\r\n\r\n\t/**\r\n\t*设置输入提示符。\r\n\t*/\r\n\t__getset(0,__proto,'prompt',function(){\r\n\t\treturn this._prompt;\r\n\t\t},function(value){\r\n\t\tif (!this._text && value)\r\n\t\t\tLaya.superSet(Text,this,'color',this._promptColor);\r\n\t\tthis.promptColor=this._promptColor;\r\n\t\tif (this._text)\r\n\t\t\tLaya.superSet(Text,this,'text',(this._text==this._prompt)?value:this._text);\r\n\t\telse\r\n\t\tLaya.superSet(Text,this,'text',value);\r\n\t\tthis._prompt=Text.langPacks && Text.langPacks[value] ? Text.langPacks[value] :value;\r\n\t});\r\n\r\n\t// 因此 调用focus接口是无法都在移动平台立刻弹出键盘的\r\n\t/**\r\n\t*表示焦点是否在此实例上。\r\n\t*/\r\n\t__getset(0,__proto,'focus',function(){\r\n\t\treturn this._focus;\r\n\t\t},function(value){\r\n\t\tvar input=this.nativeInput;\r\n\t\tif (this._focus!==value){\r\n\t\t\tif (value){\r\n\t\t\t\tif (input.target){\r\n\t\t\t\t\tinput.target._focusOut();\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tthis._setInputMethod();\r\n\t\t\t\t}\r\n\t\t\t\tinput.target=this;\r\n\t\t\t\tthis._focusIn();\r\n\t\t\t\t}else {\r\n\t\t\t\tinput.target=null;\r\n\t\t\t\tthis._focusOut();\r\n\t\t\t\tBrowser.document.body.scrollTop=0;\r\n\t\t\t\tinput.blur();\r\n\t\t\t\tif (Render.isConchApp){\r\n\t\t\t\t\tinput.setPos(-10000,-10000);\r\n\t\t\t\t}else if (Input.inputContainer.contains(input))\r\n\t\t\t\tInput.inputContainer.removeChild(input);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**限制输入的字符。*/\r\n\t__getset(0,__proto,'restrict',function(){\r\n\t\tif (this._restrictPattern){\r\n\t\t\treturn this._restrictPattern.source;\r\n\t\t}\r\n\t\treturn \"\";\r\n\t\t},function(pattern){\r\n\t\tif (pattern){\r\n\t\t\tpattern=\"[^\"+pattern+\"]\";\r\n\t\t\tif (pattern.indexOf(\"^^\")>-1)\r\n\t\t\t\tpattern=pattern.replace(\"^^\",\"\");\r\n\t\t\tthis._restrictPattern=new RegExp(pattern,\"g\");\r\n\t\t}else\r\n\t\tthis._restrictPattern=null;\r\n\t});\r\n\r\n\t/**\r\n\t*是否可编辑。\r\n\t*/\r\n\t__getset(0,__proto,'editable',function(){\r\n\t\treturn this._editable;\r\n\t\t},function(value){\r\n\t\tthis._editable=value;\r\n\t\tif (Render.isConchApp){\r\n\t\t\tInput.input.setForbidEdit(!value);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*设置输入提示符颜色。\r\n\t*/\r\n\t__getset(0,__proto,'promptColor',function(){\r\n\t\treturn this._promptColor;\r\n\t\t},function(value){\r\n\t\tthis._promptColor=value;\r\n\t\tif (!this._content)Laya.superSet(Text,this,'color',value);\r\n\t});\r\n\r\n\t/**\r\n\t*<p>输入框类型为Input静态常量之一。</p>\r\n\t*<ul>\r\n\t*<li>TYPE_TEXT</li>\r\n\t*<li>TYPE_PASSWORD</li>\r\n\t*<li>TYPE_EMAIL</li>\r\n\t*<li>TYPE_URL</li>\r\n\t*<li>TYPE_NUMBER</li>\r\n\t*<li>TYPE_RANGE</li>\r\n\t*<li>TYPE_DATE</li>\r\n\t*<li>TYPE_MONTH</li>\r\n\t*<li>TYPE_WEEK</li>\r\n\t*<li>TYPE_TIME</li>\r\n\t*<li>TYPE_DATE_TIME</li>\r\n\t*<li>TYPE_DATE_TIME_LOCAL</li>\r\n\t*</ul>\r\n\t*<p>平台兼容性参见http://www.w3school.com.cn/html5/html_5_form_input_types.asp。</p>\r\n\t*/\r\n\t__getset(0,__proto,'type',function(){\r\n\t\treturn this._type;\r\n\t\t},function(value){\r\n\t\tif (value==\"password\")\r\n\t\t\tthis._getCSSStyle().password=true;\r\n\t\telse\r\n\t\tthis._getCSSStyle().password=false;\r\n\t\tthis._type=value;\r\n\t\tif (Render.isConchApp){\r\n\t\t\tthis.nativeInput.setType(value);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>原生输入框 X 轴调整值，用来调整输入框坐标。</p>\r\n\t*<p>由于即使设置了该值，在各平台和浏览器之间也不一定一致，inputElementXAdjuster已弃用。</p>\r\n\t*@deprecated\r\n\t*/\r\n\t__getset(0,__proto,'inputElementXAdjuster',function(){\r\n\t\tconsole.warn(\"deprecated: 由于即使设置了该值，在各平台和浏览器之间也不一定一致，inputElementXAdjuster已弃用。\");\r\n\t\treturn 0;\r\n\t\t},function(value){\r\n\t\tconsole.warn(\"deprecated: 由于即使设置了该值，在各平台和浏览器之间也不一定一致，inputElementXAdjuster已弃用。\");\r\n\t});\r\n\r\n\t//[Deprecated(replacement=\"Input.type\")]\r\n\t__getset(0,__proto,'asPassword',function(){\r\n\t\treturn this._getCSSStyle().password;\r\n\t\t},function(value){\r\n\t\tthis._getCSSStyle().password=value;\r\n\t\tthis._type=/*CLASS CONST:laya.display.Input.TYPE_PASSWORD*/\"password\";\r\n\t\tconsole.warn(\"deprecated: 使用type=\\\"password\\\"替代设置asPassword, asPassword将在下次重大更新时删去\");\r\n\t\tthis.isChanged=true;\r\n\t});\r\n\r\n\tInput.__init__=function(){\r\n\t\tInput._createInputElement();\r\n\t\tif (Browser.onMobile)\r\n\t\t\tRender.canvas.addEventListener(Input.IOS_IFRAME ?(Browser.onMiniGame ? \"touchend\" :\"click\"):\"touchend\",Input._popupInputMethod);\r\n\t}\r\n\r\n\tInput._popupInputMethod=function(e){\r\n\t\tif (!laya.display.Input.isInputting)return;\r\n\t\tvar input=laya.display.Input.inputElement;\r\n\t\tinput.focus();\r\n\t}\r\n\r\n\tInput._createInputElement=function(){\r\n\t\tInput._initInput(Input.area=Browser.createElement(\"textarea\"));\r\n\t\tInput._initInput(Input.input=Browser.createElement(\"input\"));\r\n\t\tInput.inputContainer=Browser.createElement(\"div\");\r\n\t\tInput.inputContainer.style.position=\"absolute\";\r\n\t\tInput.inputContainer.style.zIndex=1E5;\r\n\t\tBrowser.container.appendChild(Input.inputContainer);\r\n\t\tInput.inputContainer.setPos=function (x,y){Input.inputContainer.style.left=x+'px';Input.inputContainer.style.top=y+'px';};\r\n\t}\r\n\r\n\tInput._initInput=function(input){\r\n\t\tvar style=input.style;\r\n\t\tstyle.cssText=\"position:absolute;overflow:hidden;resize:none;transform-origin:0 0;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-o-transform-origin:0 0;\";\r\n\t\tstyle.resize='none';\r\n\t\tstyle.backgroundColor='transparent';\r\n\t\tstyle.border='none';\r\n\t\tstyle.outline='none';\r\n\t\tstyle.zIndex=1;\r\n\t\tinput.addEventListener('input',Input._processInputting);\r\n\t\tinput.addEventListener('mousemove',Input._stopEvent);\r\n\t\tinput.addEventListener('mousedown',Input._stopEvent);\r\n\t\tinput.addEventListener('touchmove',Input._stopEvent);\r\n\t\tinput.setFontFace=function (fontFace){input.style.fontFamily=fontFace;};\r\n\t\tif(!Render.isConchApp){\r\n\t\t\tinput.setColor=function (color){input.style.color=color;};\r\n\t\t\tinput.setFontSize=function (fontSize){input.style.fontSize=fontSize+'px';};\r\n\t\t}\r\n\t}\r\n\r\n\tInput._processInputting=function(e){\r\n\t\tvar input=laya.display.Input.inputElement.target;\r\n\t\tif (!input)return;\r\n\t\tvar value=laya.display.Input.inputElement.value;\r\n\t\tif (input._restrictPattern){\r\n\t\t\tvalue=value.replace(/\\u2006|\\x27/g,\"\");\r\n\t\t\tif (input._restrictPattern.test(value)){\r\n\t\t\t\tvalue=value.replace(input._restrictPattern,\"\");\r\n\t\t\t\tlaya.display.Input.inputElement.value=value;\r\n\t\t\t}\r\n\t\t}\r\n\t\tinput._text=value;\r\n\t\tinput.event(/*laya.events.Event.INPUT*/\"input\");\r\n\t}\r\n\r\n\tInput._stopEvent=function(e){\r\n\t\tif (e.type=='touchmove')\r\n\t\t\te.preventDefault();\r\n\t\te.stopPropagation && e.stopPropagation();\r\n\t}\r\n\r\n\tInput.TYPE_TEXT=\"text\";\r\n\tInput.TYPE_PASSWORD=\"password\";\r\n\tInput.TYPE_EMAIL=\"email\";\r\n\tInput.TYPE_URL=\"url\";\r\n\tInput.TYPE_NUMBER=\"number\";\r\n\tInput.TYPE_RANGE=\"range\";\r\n\tInput.TYPE_DATE=\"date\";\r\n\tInput.TYPE_MONTH=\"month\";\r\n\tInput.TYPE_WEEK=\"week\";\r\n\tInput.TYPE_TIME=\"time\";\r\n\tInput.TYPE_DATE_TIME=\"datetime\";\r\n\tInput.TYPE_DATE_TIME_LOCAL=\"datetime-local\";\r\n\tInput.TYPE_SEARCH=\"search\";\r\n\tInput.input=null;\r\n\tInput.area=null;\r\n\tInput.inputElement=null;\r\n\tInput.inputContainer=null;\r\n\tInput.confirmButton=null;\r\n\tInput.promptStyleDOM=null;\r\n\tInput.inputHeight=45;\r\n\tInput.isInputting=false;\r\n\tInput.stageMatrix=null;\r\n\t__static(Input,\r\n\t['IOS_IFRAME',function(){return this.IOS_IFRAME=(Browser.onIOS && Browser.window.top !=Browser.window.self);}\r\n\t]);\r\n\treturn Input;\r\n})(Text)\r\n\r\n\r\n/**\r\n*@private\r\n*<p> <code>HTMLImage</code> 用于创建 HTML Image 元素。</p>\r\n*<p>请使用 <code>HTMLImage.create()<code>获取新实例，不要直接使用 <code>new HTMLImage<code> 。</p>\r\n*/\r\n//class laya.resource.HTMLImage extends laya.resource.FileBitmap\r\nvar HTMLImage=(function(_super){\r\n\tfunction HTMLImage(src,def){\r\n\t\t/**异步加载锁*/\r\n\t\tthis._recreateLock=false;\r\n\t\t/**异步加载完成后是否需要释放（有可能在恢复过程中,再次被释放，用此变量做标记）*/\r\n\t\tthis._needReleaseAgain=false;\r\n\t\tthis._enableMerageInAtlas=true;\r\n\t\tHTMLImage.__super.call(this);\r\n\t\tthis._init_(src,def);\r\n\t}\r\n\r\n\t__class(HTMLImage,'laya.resource.HTMLImage',_super);\r\n\tvar __proto=HTMLImage.prototype;\r\n\t__proto._init_=function(src,def){\r\n\t\tthis._src=src;\r\n\t\tthis._source=new Browser.window.Image();\r\n\t\tif (def){\r\n\t\t\tdef.onload && (this.onload=def.onload);\r\n\t\t\tdef.onerror && (this.onerror=def.onerror);\r\n\t\t\tdef.onCreate && def.onCreate(this);\r\n\t\t}\r\n\t\tif (src.indexOf(\"data:image\")!=0)this._source.crossOrigin=\"\";\r\n\t\t(src)&& (this._source.src=src);\r\n\t}\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__proto.recreateResource=function(){\r\n\t\tvar _$this=this;\r\n\t\tif (this._src===\"\")\r\n\t\t\tthrow new Error(\"src no null！\");\r\n\t\tthis._needReleaseAgain=false;\r\n\t\tif (!this._source){\r\n\t\t\tthis._recreateLock=true;\r\n\t\t\tvar _this=this;\r\n\t\t\tthis._source=new Browser.window.Image();\r\n\t\t\tthis._source.crossOrigin=\"\";\r\n\t\t\tthis._source.onload=function (){\r\n\t\t\t\tif (_this._needReleaseAgain){\r\n\t\t\t\t\t_this._needReleaseAgain=false;\r\n\t\t\t\t\t_this._source.onload=null;\r\n\t\t\t\t\t_this._source=null;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t_this._source.onload=null;\r\n\t\t\t\t_this.memorySize=_$this._w *_$this._h *4;\r\n\t\t\t\t_this._recreateLock=false;\r\n\t\t\t\t_this.completeCreate();\r\n\t\t\t};\r\n\t\t\tthis._source.src=this._src;\r\n\t\t\t}else {\r\n\t\t\tif (this._recreateLock)\r\n\t\t\t\treturn;\r\n\t\t\tthis.memorySize=this._w *this._h *4;\r\n\t\t\tthis._recreateLock=false;\r\n\t\t\tthis.completeCreate();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__proto.disposeResource=function(){\r\n\t\tif (this._recreateLock)\r\n\t\t\tthis._needReleaseAgain=true;\r\n\t\t(this._source)&& (this._source=null,this.memorySize=0);\r\n\t}\r\n\r\n\t/***调整尺寸。*/\r\n\t__proto.onresize=function(){\r\n\t\tthis._w=this._source.width;\r\n\t\tthis._h=this._source.height;\r\n\t}\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'onload',null,function(value){\r\n\t\tvar _$this=this;\r\n\t\tthis._onload=value;\r\n\t\tthis._source && (this._source.onload=this._onload !=null ? (function(){\r\n\t\t\t_$this.onresize();\r\n\t\t\t_$this._onload();\r\n\t\t}):null);\r\n\t});\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'onerror',null,function(value){\r\n\t\tvar _$this=this;\r\n\t\tthis._onerror=value;\r\n\t\tthis._source && (this._source.onerror=this._onerror !=null ? (function(){\r\n\t\t\t_$this._onerror()\r\n\t\t}):null);\r\n\t});\r\n\r\n\t__getset(0,__proto,'enableMerageInAtlas',function(){\r\n\t\treturn this._enableMerageInAtlas;\r\n\t\t},function(value){\r\n\t\tthis._enableMerageInAtlas=value;\r\n\t\tif (Render.isConchApp){\r\n\t\t\tif (this._source)this._source.enableMerageInAtlas=value;\r\n\t\t}\r\n\t});\r\n\r\n\tHTMLImage.create=function(src,def){\r\n\t\treturn new HTMLImage(src,def);\r\n\t}\r\n\r\n\treturn HTMLImage;\r\n})(FileBitmap)\r\n\r\n\r\n/**\r\n*<p> 动效模板。用于为指定目标对象添加动画效果。每个动效有唯一的目标对象，而同一个对象可以添加多个动效。 当一个动效开始播放时，其他动效会自动停止播放。</p>\r\n*<p> 可以通过LayaAir IDE创建。 </p>\r\n*/\r\n//class laya.display.EffectAnimation extends laya.display.FrameAnimation\r\nvar EffectAnimation=(function(_super){\r\n\tfunction EffectAnimation(){\r\n\t\t/**@private */\r\n\t\tthis._target=null;\r\n\t\t/**@private */\r\n\t\tthis._playEvents=null;\r\n\t\t/**@private */\r\n\t\tthis._initData={};\r\n\t\t/**@private */\r\n\t\tthis._aniKeys=null;\r\n\t\t/**@private */\r\n\t\tthis._effectClass=null;\r\n\t\tEffectAnimation.__super.call(this);\r\n\t}\r\n\r\n\t__class(EffectAnimation,'laya.display.EffectAnimation',_super);\r\n\tvar __proto=EffectAnimation.prototype;\r\n\t/**@private */\r\n\t__proto._onOtherBegin=function(effect){\r\n\t\tif (effect==this)\r\n\t\t\treturn;\r\n\t\tthis.stop();\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.addEvent=function(){\r\n\t\tif (!this._target || !this._playEvents)\r\n\t\t\treturn;\r\n\t\tthis._setControlNode(this._target);\r\n\t\tthis._target.on(this._playEvents,this,this._onPlayAction);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._onPlayAction=function(){\r\n\t\tthis.play(0,false);\r\n\t}\r\n\r\n\t__proto.play=function(start,loop,name,showWarn){\r\n\t\t(start===void 0)&& (start=0);\r\n\t\t(loop===void 0)&& (loop=true);\r\n\t\t(name===void 0)&& (name=\"\");\r\n\t\t(showWarn===void 0)&& (showWarn=true);\r\n\t\tif (!this._target)\r\n\t\t\treturn;\r\n\t\tthis._target.event(\"effectanimationbegin\",[this]);\r\n\t\tthis._recordInitData();\r\n\t\tlaya.display.AnimationPlayerBase.prototype.play.call(this,start,loop,name,showWarn);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._recordInitData=function(){\r\n\t\tif (!this._aniKeys)\r\n\t\t\treturn;\r\n\t\tvar i=0,len=0;\r\n\t\tlen=this._aniKeys.length;\r\n\t\tvar key;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tkey=this._aniKeys[i];\r\n\t\t\tthis._initData[key]=this._target[key];\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._displayToIndex=function(value){\r\n\t\tif (!this._animationData)\r\n\t\t\treturn;\r\n\t\tif (value < 0)\r\n\t\t\tvalue=0;\r\n\t\tif (value > this._count)\r\n\t\t\tvalue=this._count;\r\n\t\tvar nodes=this._animationData.nodes,i=0,len=nodes.length;\r\n\t\tlen=len > 1 ? 1 :len;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tthis._displayNodeToFrame(nodes[i],value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._displayNodeToFrame=function(node,frame,targetDic){\r\n\t\tif (!this._target)\r\n\t\t\treturn;\r\n\t\tvar target;\r\n\t\ttarget=this._target;\r\n\t\tvar frames=node.frames,key,propFrames,value;\r\n\t\tvar keys=node.keys,i=0,len=keys.length;\r\n\t\tvar secondFrames;\r\n\t\tsecondFrames=node.secondFrames;\r\n\t\tvar tSecondFrame=0;\r\n\t\tvar easeFun;\r\n\t\tvar tKeyFrames;\r\n\t\tvar startFrame;\r\n\t\tvar endFrame;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tkey=keys[i];\r\n\t\t\tpropFrames=frames[key];\r\n\t\t\ttSecondFrame=secondFrames[key];\r\n\t\t\tif (tSecondFrame==-1){\r\n\t\t\t\tvalue=this._initData[key];\r\n\t\t\t\t}else {\r\n\t\t\t\tif (frame < tSecondFrame){\r\n\t\t\t\t\ttKeyFrames=node.keyframes[key];\r\n\t\t\t\t\tstartFrame=tKeyFrames[0];\r\n\t\t\t\t\tif (startFrame.tween){\r\n\t\t\t\t\t\teaseFun=Ease[startFrame.tweenMethod];\r\n\t\t\t\t\t\tif (easeFun==null){\r\n\t\t\t\t\t\t\teaseFun=Ease.linearNone;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tendFrame=tKeyFrames[1];\r\n\t\t\t\t\t\tvalue=easeFun(frame,this._initData[key],endFrame.value-this._initData[key],endFrame.index);\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tvalue=this._initData[key];\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tif (propFrames.length > frame){\r\n\t\t\t\t\t\tvalue=propFrames[frame];\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tvalue=propFrames[propFrames.length-1];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttarget[key]=value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._calculateNodeKeyFrames=function(node){\r\n\t\t_super.prototype._calculateNodeKeyFrames.call(this,node);\r\n\t\tvar keyFrames=node.keyframes,key,tKeyFrames,target=node.target;\r\n\t\tvar secondFrames;\r\n\t\tsecondFrames={};\r\n\t\tnode.secondFrames=secondFrames;\r\n\t\tfor (key in keyFrames){\r\n\t\t\ttKeyFrames=keyFrames[key];\r\n\t\t\tif (tKeyFrames.length <=1){\r\n\t\t\t\tsecondFrames[key]=-1;\r\n\t\t\t\t}else {\r\n\t\t\t\tsecondFrames[key]=tKeyFrames[1].index;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*本实例的目标对象。通过本实例控制目标对象的属性变化。\r\n\t*@param v 指定的目标对象。\r\n\t*/\r\n\t__getset(0,__proto,'target',function(){\r\n\t\treturn this._target;\r\n\t\t},function(v){\r\n\t\tif (this._target){\r\n\t\t\tthis._target.off(\"effectanimationbegin\",this,this._onOtherBegin);\r\n\t\t}\r\n\t\tthis._target=v;\r\n\t\tif (this._target){\r\n\t\t\tthis._target.on(\"effectanimationbegin\",this,this._onOtherBegin);\r\n\t\t}\r\n\t\tthis.addEvent();\r\n\t});\r\n\r\n\t/**\r\n\t*设置开始播放的事件。本实例会侦听目标对象的指定事件，触发后播放相应动画效果。\r\n\t*@param event\r\n\t*/\r\n\t__getset(0,__proto,'playEvent',null,function(event){\r\n\t\tthis._playEvents=event;\r\n\t\tif (!event)\r\n\t\t\treturn;\r\n\t\tthis.addEvent();\r\n\t});\r\n\r\n\t/**\r\n\t*设置动画数据。\r\n\t*@param uiData\r\n\t*/\r\n\t__getset(0,__proto,'effectData',null,function(uiData){\r\n\t\tif (uiData){\r\n\t\t\tvar aniData;\r\n\t\t\taniData=uiData[\"animations\"];\r\n\t\t\tif (aniData && aniData[0]){\r\n\t\t\t\tthis._setUp({},aniData[0]);\r\n\t\t\t\tif (aniData[0].nodes && aniData[0].nodes[0]){\r\n\t\t\t\t\tthis._aniKeys=aniData[0].nodes[0].keys;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*设置提供数据的类。\r\n\t*@param classStr 类路径\r\n\t*/\r\n\t__getset(0,__proto,'effectClass',null,function(classStr){\r\n\t\tthis._effectClass=ClassUtils.getClass(classStr);\r\n\t\tif (this._effectClass){\r\n\t\t\tvar uiData;\r\n\t\t\tuiData=this._effectClass[\"uiView\"];\r\n\t\t\tif (uiData){\r\n\t\t\t\tvar aniData;\r\n\t\t\t\taniData=uiData[\"animations\"];\r\n\t\t\t\tif (aniData && aniData[0]){\r\n\t\t\t\t\tthis._setUp({},aniData[0]);\r\n\t\t\t\t\tif (aniData[0].nodes && aniData[0].nodes[0]){\r\n\t\t\t\t\t\tthis._aniKeys=aniData[0].nodes[0].keys;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\tEffectAnimation.EffectAnimationBegin=\"effectanimationbegin\";\r\n\treturn EffectAnimation;\r\n})(FrameAnimation)\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.utils.GraphicAnimation extends laya.display.FrameAnimation\r\nvar GraphicAnimation=(function(_super){\r\n\tvar GraphicNode;\r\n\tfunction GraphicAnimation(){\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis.animationList=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis.animationDic=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._nodeList=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._nodeDefaultProps=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._gList=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._nodeIDAniDic={};\r\n\t\tthis._rootNode=null;\r\n\t\tthis._nodeGDic=null;\r\n\t\tGraphicAnimation.__super.call(this);\r\n\t}\r\n\r\n\t__class(GraphicAnimation,'laya.utils.GraphicAnimation',_super);\r\n\tvar __proto=GraphicAnimation.prototype;\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._parseNodeList=function(uiView){\r\n\t\tif (!this._nodeList){\r\n\t\t\tthis._nodeList=[];\r\n\t\t}\r\n\t\tthis._nodeDefaultProps[uiView.compId]=uiView.props;\r\n\t\tif (uiView.compId)\r\n\t\t\tthis._nodeList.push(uiView.compId);\r\n\t\tvar childs=uiView.child;\r\n\t\tif (childs){\r\n\t\t\tvar i=0,len=childs.length;\r\n\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\tthis._parseNodeList(childs[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._calGraphicData=function(aniData){\r\n\t\tthis._setUp(null,aniData);\r\n\t\tthis._createGraphicData();\r\n\t\tif (this._nodeIDAniDic){\r\n\t\t\tvar key;\r\n\t\t\tfor (key in this._nodeIDAniDic){\r\n\t\t\t\tthis._nodeIDAniDic[key]=null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._createGraphicData=function(){\r\n\t\tvar gList=[];\r\n\t\tvar i=0,len=this.count;\r\n\t\tvar animationDataNew=this._animationNewFrames;\r\n\t\tif (!animationDataNew)animationDataNew=[];\r\n\t\tvar preGraphic;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tif (animationDataNew[i] || !preGraphic){\r\n\t\t\t\tpreGraphic=this._createFrameGraphic(i);\r\n\t\t\t}\r\n\t\t\tgList.push(preGraphic);\r\n\t\t}\r\n\t\tthis._gList=gList;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._createFrameGraphic=function(frame){\r\n\t\tvar g=RunDriver.createGraphics();\r\n\t\tif (!GraphicAnimation._rootMatrix)\r\n\t\t\tGraphicAnimation._rootMatrix=new Matrix();\r\n\t\tthis._updateNodeGraphic(this._rootNode,frame,GraphicAnimation._rootMatrix,g);\r\n\t\treturn g;\r\n\t}\r\n\r\n\t__proto._updateNodeGraphic=function(node,frame,parentTransfrom,g,alpha){\r\n\t\t(alpha===void 0)&& (alpha=1);\r\n\t\tvar tNodeG;\r\n\t\ttNodeG=this._nodeGDic[node.compId]=this._getNodeGraphicData(node.compId,frame,this._nodeGDic[node.compId]);\r\n\t\tvar tGraphicAlpha=tNodeG.alpha *alpha;\r\n\t\tif (tGraphicAlpha < 0.01)return;\r\n\t\tif (!tNodeG.resultTransform){\r\n\t\t\ttNodeG.resultTransform=Matrix.create();\r\n\t\t};\r\n\t\tvar tResultTransform;\r\n\t\ttResultTransform=tNodeG.resultTransform;\r\n\t\tMatrix.mul(tNodeG.transform,parentTransfrom,tResultTransform);\r\n\t\tvar tTex;\r\n\t\tif (tNodeG.skin){\r\n\t\t\ttTex=this._getTextureByUrl(tNodeG.skin);\r\n\t\t\tif (tTex){\r\n\t\t\t\tif (tResultTransform._checkTransform()){\r\n\t\t\t\t\tg.drawTexture(tTex,0,0,tNodeG.width,tNodeG.height,tResultTransform,tGraphicAlpha);\r\n\t\t\t\t\ttNodeG.resultTransform=null;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tg.drawTexture(tTex,tResultTransform.tx,tResultTransform.ty,tNodeG.width,tNodeG.height,null,tGraphicAlpha);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar childs;\r\n\t\tchilds=node.child;\r\n\t\tif (!childs)\r\n\t\t\treturn;\r\n\t\tvar i=0,len=0;\r\n\t\tlen=childs.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tthis._updateNodeGraphic(childs[i],frame,tResultTransform,g,tGraphicAlpha);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._updateNoChilds=function(tNodeG,g){\r\n\t\tif (!tNodeG.skin)\r\n\t\t\treturn;\r\n\t\tvar tTex=this._getTextureByUrl(tNodeG.skin);\r\n\t\tif (!tTex)\r\n\t\t\treturn;\r\n\t\tvar tTransform=tNodeG.transform;\r\n\t\ttTransform._checkTransform();\r\n\t\tvar onlyTranslate=false;\r\n\t\tonlyTranslate=!tTransform.bTransform;\r\n\t\tif (!onlyTranslate){\r\n\t\t\tg.drawTexture(tTex,0,0,tNodeG.width,tNodeG.height,tTransform.clone(),tNodeG.alpha);\r\n\t\t\t}else {\r\n\t\t\tg.drawTexture(tTex,tTransform.tx,tTransform.ty,tNodeG.width,tNodeG.height,null,tNodeG.alpha);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._updateNodeGraphic2=function(node,frame,g){\r\n\t\tvar tNodeG;\r\n\t\ttNodeG=this._nodeGDic[node.compId]=this._getNodeGraphicData(node.compId,frame,this._nodeGDic[node.compId]);\r\n\t\tif (!node.child){\r\n\t\t\tthis._updateNoChilds(tNodeG,g);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar tTransform=tNodeG.transform;\r\n\t\ttTransform._checkTransform();\r\n\t\tvar onlyTranslate=false;\r\n\t\tonlyTranslate=!tTransform.bTransform;\r\n\t\tvar hasTrans=false;\r\n\t\thasTrans=onlyTranslate && (tTransform.tx !=0 || tTransform.ty !=0);\r\n\t\tvar ifSave=false;\r\n\t\tifSave=(tTransform.bTransform)|| tNodeG.alpha !=1;\r\n\t\tif (ifSave){\r\n\t\t\tg.save();\r\n\t\t}\r\n\t\tif (tNodeG.alpha !=1){\r\n\t\t\tg.alpha(tNodeG.alpha);\r\n\t\t}\r\n\t\tif (!onlyTranslate){\r\n\t\t\tg.transform(tTransform.clone());\r\n\t\t\t}else if (hasTrans){\r\n\t\t\tg.translate(tTransform.tx,tTransform.ty);\r\n\t\t};\r\n\t\tvar childs;\r\n\t\tchilds=node.child;\r\n\t\tvar tTex;\r\n\t\tif (tNodeG.skin){\r\n\t\t\ttTex=this._getTextureByUrl(tNodeG.skin);\r\n\t\t\tif (tTex){\r\n\t\t\t\tg.drawTexture(tTex,0,0,tNodeG.width,tNodeG.height);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (childs){\r\n\t\t\tvar i=0,len=0;\r\n\t\t\tlen=childs.length;\r\n\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\tthis._updateNodeGraphic2(childs[i],frame,g);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (ifSave){\r\n\t\t\tg.restore();\r\n\t\t\t}else {\r\n\t\t\tif (!onlyTranslate){\r\n\t\t\t\tg.transform(tTransform.clone().invert());\r\n\t\t\t\t}else if (hasTrans){\r\n\t\t\t\tg.translate(-tTransform.tx,-tTransform.ty);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._calculateNodeKeyFrames=function(node){\r\n\t\t_super.prototype._calculateNodeKeyFrames.call(this,node);\r\n\t\tthis._nodeIDAniDic[node.target]=node;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.getNodeDataByID=function(nodeID){\r\n\t\treturn this._nodeIDAniDic[nodeID];\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._getParams=function(obj,params,frame,obj2){\r\n\t\tvar rst=GraphicAnimation._temParam;\r\n\t\trst.length=params.length;\r\n\t\tvar i=0,len=params.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\trst[i]=this._getObjVar(obj,params[i][0],frame,params[i][1],obj2);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._getObjVar=function(obj,key,frame,noValue,obj2){\r\n\t\tif (obj.hasOwnProperty(key)){\r\n\t\t\tvar vArr=obj[key];\r\n\t\t\tif (frame >=vArr.length)\r\n\t\t\t\tframe=vArr.length-1;\r\n\t\t\treturn obj[key][frame];\r\n\t\t}\r\n\t\tif (obj2.hasOwnProperty(key)){\r\n\t\t\treturn obj2[key];\r\n\t\t}\r\n\t\treturn noValue;\r\n\t}\r\n\r\n\t__proto._getNodeGraphicData=function(nodeID,frame,rst){\r\n\t\tif (!rst)\r\n\t\t\trst=GraphicNode.create();\r\n\t\tif (!rst.transform){\r\n\t\t\trst.transform=Matrix.create();\r\n\t\t\t}else{\r\n\t\t\trst.transform.identity();\r\n\t\t};\r\n\t\tvar node=this.getNodeDataByID(nodeID);\r\n\t\tif (!node)\r\n\t\t\treturn rst;\r\n\t\tvar frameData=node.frames;\r\n\t\tvar params=this._getParams(frameData,GraphicAnimation._drawTextureCmd,frame,this._nodeDefaultProps[nodeID]);\r\n\t\tvar url=params[0];\r\n\t\tvar width=NaN,height=NaN;\r\n\t\tvar px=params[5],py=params[6];\r\n\t\tvar aX=params[13],aY=params[14];\r\n\t\tvar sx=params[7],sy=params[8];\r\n\t\tvar rotate=params[9];\r\n\t\tvar skewX=params[11],skewY=params[12]\r\n\t\twidth=params[3];\r\n\t\theight=params[4];\r\n\t\tif (width==0 || height==0)url=null;\r\n\t\tif (width==-1)width=0;\r\n\t\tif (height==-1)height=0;\r\n\t\tvar tex;\r\n\t\trst.skin=url;\r\n\t\trst.width=width;\r\n\t\trst.height=height;\r\n\t\tif (url){\r\n\t\t\ttex=this._getTextureByUrl(url);\r\n\t\t\tif (tex){\r\n\t\t\t\tif (!width)\r\n\t\t\t\t\twidth=tex.sourceWidth;\r\n\t\t\t\tif (!height)\r\n\t\t\t\t\theight=tex.sourceHeight;\r\n\t\t\t\t}else {\r\n\t\t\t\tconsole.warn(\"lost skin:\",url,\",you may load pics first\");\r\n\t\t\t}\r\n\t\t}\r\n\t\trst.alpha=params[10];\r\n\t\tvar m;\r\n\t\tm=rst.transform;\r\n\t\tif (aX !=0){\r\n\t\t\tpx=aX *width;\r\n\t\t}\r\n\t\tif (aY !=0){\r\n\t\t\tpy=aY *height;\r\n\t\t}\r\n\t\tif (px !=0 || py !=0){\r\n\t\t\tm.translate(-px,-py);\r\n\t\t};\r\n\t\tvar tm=null;\r\n\t\tif (rotate || sx!==1 || sy!==1 || skewX || skewY){\r\n\t\t\ttm=GraphicAnimation._tempMt;\r\n\t\t\ttm.identity();\r\n\t\t\ttm.bTransform=true;\r\n\t\t\tvar skx=(rotate-skewX)*0.0174532922222222;\r\n\t\t\tvar sky=(rotate+skewY)*0.0174532922222222;\r\n\t\t\tvar cx=Math.cos(sky);\r\n\t\t\tvar ssx=Math.sin(sky);\r\n\t\t\tvar cy=Math.sin(skx);\r\n\t\t\tvar ssy=Math.cos(skx);\r\n\t\t\ttm.a=sx *cx;\r\n\t\t\ttm.b=sx *ssx;\r\n\t\t\ttm.c=-sy *cy;\r\n\t\t\ttm.d=sy *ssy;\r\n\t\t\ttm.tx=tm.ty=0;\r\n\t\t}\r\n\t\tif (tm){\r\n\t\t\tm=Matrix.mul(m,tm,m);\r\n\t\t}\r\n\t\tm.translate(params[1],params[2]);\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._getTextureByUrl=function(url){\r\n\t\treturn Loader.getRes(url);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.setAniData=function(uiView,aniName){\r\n\t\tif (uiView.animations){\r\n\t\t\tthis._nodeDefaultProps={};\r\n\t\t\tthis._nodeGDic={};\r\n\t\t\tif (this._nodeList)\r\n\t\t\t\tthis._nodeList.length=0;\r\n\t\t\tthis._rootNode=uiView;\r\n\t\t\tthis._parseNodeList(uiView);\r\n\t\t\tvar aniDic={};\r\n\t\t\tvar anilist=[];\r\n\t\t\tvar animations=uiView.animations;\r\n\t\t\tvar i=0,len=animations.length;\r\n\t\t\tvar tAniO;\r\n\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\ttAniO=animations[i];\r\n\t\t\t\tthis._labels=null;\r\n\t\t\t\tif (aniName && aniName !=tAniO.name){\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\t}\r\n\t\t\t\tif (!tAniO)\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\ttry {\r\n\t\t\t\t\tthis._calGraphicData(tAniO);\r\n\t\t\t\t\t}catch (e){\r\n\t\t\t\t\tconsole.warn(\"parse animation fail:\"+tAniO.name+\",empty animation created\");\r\n\t\t\t\t\tthis._gList=[];\r\n\t\t\t\t};\r\n\t\t\t\tvar frameO={};\r\n\t\t\t\tframeO.interval=1000 / tAniO[\"frameRate\"];\r\n\t\t\t\tframeO.frames=this._gList;\r\n\t\t\t\tframeO.labels=this._labels;\r\n\t\t\t\tframeO.name=tAniO.name;\r\n\t\t\t\tanilist.push(frameO);\r\n\t\t\t\taniDic[tAniO.name]=frameO;\r\n\t\t\t}\r\n\t\t\tthis.animationList=anilist;\r\n\t\t\tthis.animationDic=aniDic;\r\n\t\t}\r\n\t\tGraphicAnimation._temParam.length=0;\r\n\t}\r\n\r\n\t__proto.parseByData=function(aniData){\r\n\t\tvar rootNode,aniO;\r\n\t\trootNode=aniData.nodeRoot;\r\n\t\taniO=aniData.aniO;\r\n\t\tdelete aniData.nodeRoot;\r\n\t\tdelete aniData.aniO;\r\n\t\tthis._nodeDefaultProps={};\r\n\t\tthis._nodeGDic={};\r\n\t\tif (this._nodeList)\r\n\t\t\tthis._nodeList.length=0;\r\n\t\tthis._rootNode=rootNode;\r\n\t\tthis._parseNodeList(rootNode);\r\n\t\tthis._labels=null;\r\n\t\ttry {\r\n\t\t\tthis._calGraphicData(aniO);\r\n\t\t\t}catch (e){\r\n\t\t\tconsole.warn(\"parse animation fail:\"+aniO.name+\",empty animation created\");\r\n\t\t\tthis._gList=[];\r\n\t\t};\r\n\t\tvar frameO=aniData;\r\n\t\tframeO.interval=1000 / aniO[\"frameRate\"];\r\n\t\tframeO.frames=this._gList;\r\n\t\tframeO.labels=this._labels;\r\n\t\tframeO.name=aniO.name;\r\n\t\treturn frameO;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.setUpAniData=function(uiView){\r\n\t\tif (uiView.animations){\r\n\t\t\tvar aniDic={};\r\n\t\t\tvar anilist=[];\r\n\t\t\tvar animations=uiView.animations;\r\n\t\t\tvar i=0,len=animations.length;\r\n\t\t\tvar tAniO;\r\n\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\ttAniO=animations[i];\r\n\t\t\t\tif (!tAniO)\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\tvar frameO={};\r\n\t\t\t\tframeO.name=tAniO.name;\r\n\t\t\t\tframeO.aniO=tAniO;\r\n\t\t\t\tframeO.nodeRoot=uiView;\r\n\t\t\t\tanilist.push(frameO);\r\n\t\t\t\taniDic[tAniO.name]=frameO;\r\n\t\t\t}\r\n\t\t\tthis.animationList=anilist;\r\n\t\t\tthis.animationDic=aniDic;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._clear=function(){\r\n\t\tthis.animationList=null;\r\n\t\tthis.animationDic=null;\r\n\t\tthis._gList=null;\r\n\t\tif (this._nodeGDic){\r\n\t\t\tvar key;\r\n\t\t\tvar tGNode;\r\n\t\t\tfor (key in this._nodeGDic){\r\n\t\t\t\ttGNode=this._nodeGDic[key];\r\n\t\t\t\tif (tGNode)tGNode.recover();\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._nodeGDic=null;\r\n\t}\r\n\r\n\tGraphicAnimation.parseAnimationByData=function(animationObject){\r\n\t\tif (!GraphicAnimation._I)\r\n\t\t\tGraphicAnimation._I=new GraphicAnimation();\r\n\t\tvar rst;\r\n\t\trst=GraphicAnimation._I.parseByData(animationObject);\r\n\t\tGraphicAnimation._I._clear();\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tGraphicAnimation.parseAnimationData=function(aniData){\r\n\t\tif (!GraphicAnimation._I)\r\n\t\t\tGraphicAnimation._I=new GraphicAnimation();\r\n\t\tGraphicAnimation._I.setUpAniData(aniData);\r\n\t\tvar rst;\r\n\t\trst={};\r\n\t\trst.animationList=GraphicAnimation._I.animationList;\r\n\t\trst.animationDic=GraphicAnimation._I.animationDic;\r\n\t\tGraphicAnimation._I._clear();\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tGraphicAnimation._drawTextureCmd=[[\"skin\",null],[\"x\",0],[\"y\",0],[\"width\",-1],[\"height\",-1],[\"pivotX\",0],[\"pivotY\",0],[\"scaleX\",1],[\"scaleY\",1],[\"rotation\",0],[\"alpha\",1],[\"skewX\",0],[\"skewY\",0],[\"anchorX\",0],[\"anchorY\",0]];\r\n\tGraphicAnimation._temParam=[];\r\n\tGraphicAnimation._I=null;\r\n\tGraphicAnimation._rootMatrix=null;\r\n\t__static(GraphicAnimation,\r\n\t['_tempMt',function(){return this._tempMt=new Matrix();}\r\n\t]);\r\n\tGraphicAnimation.__init$=function(){\r\n\t\t//class GraphicNode\r\n\t\tGraphicNode=(function(){\r\n\t\t\tfunction GraphicNode(){\r\n\t\t\t\tthis.skin=null;\r\n\t\t\t\tthis.transform=null;\r\n\t\t\t\tthis.resultTransform=null;\r\n\t\t\t\tthis.width=NaN;\r\n\t\t\t\tthis.height=NaN;\r\n\t\t\t\tthis.alpha=1;\r\n\t\t\t}\r\n\t\t\t__class(GraphicNode,'');\r\n\t\t\tvar __proto=GraphicNode.prototype;\r\n\t\t\t__proto.recover=function(){\r\n\t\t\t\tthis.skin=null;\r\n\t\t\t\tthis.width=0;\r\n\t\t\t\tthis.height=0;\r\n\t\t\t\tthis.alpha=1;\r\n\t\t\t\tif (this.transform){\r\n\t\t\t\t\tthis.transform.destroy();\r\n\t\t\t\t\tthis.transform=null;\r\n\t\t\t\t}\r\n\t\t\t\tif (this.resultTransform){\r\n\t\t\t\t\tthis.resultTransform.destroy();\r\n\t\t\t\t\tthis.resultTransform=null;\r\n\t\t\t\t}\r\n\t\t\t\tPool.recover(\"GraphicNode\",this);\r\n\t\t\t}\r\n\t\t\tGraphicNode.create=function(){\r\n\t\t\t\treturn Pool.getItemByClass(\"GraphicNode\",GraphicNode);\r\n\t\t\t}\r\n\t\t\treturn GraphicNode;\r\n\t\t})()\r\n\t}\r\n\r\n\treturn GraphicAnimation;\r\n})(FrameAnimation)\r\n\r\n\r\n\tLaya.__init([EventDispatcher,LoaderManager,Render,Browser,Timer,LocalStorage,TimeLine,GraphicAnimation]);\r\n})(window,document,Laya);\r\n\r\n(function(window,document,Laya){\r\n\tvar __un=Laya.un,__uns=Laya.uns,__static=Laya.static,__class=Laya.class,__getset=Laya.getset,__newvec=Laya.__newvec;\r\n//class LayaMain\r\nvar LayaMain=(function(){\r\n\t/*[COMPILER OPTIONS:normal]*/\r\n\tfunction LayaMain(){}\r\n\t__class(LayaMain,'LayaMain');\r\n\treturn LayaMain;\r\n})()\r\n\r\n\r\n\r\n\t/**LayaGameStart**/\r\n\tnew LayaMain();\r\n\r\n})(window,document,Laya);\r\n\r\nif (typeof define === 'function' && define.amd){\r\n\tdefine('laya.core', ['require', \"exports\"], function(require, exports) {\r\n        'use strict';\r\n        Object.defineProperty(exports, '__esModule', { value: true });\r\n        for (var i in Laya) {\r\n\t\t\tvar o = Laya[i];\r\n            o && o.__isclass && (exports[i] = o);\r\n        }\r\n    });\r\n}","\r\n(function(window,document,Laya){\r\n\tvar __un=Laya.un,__uns=Laya.uns,__static=Laya.static,__class=Laya.class,__getset=Laya.getset,__newvec=Laya.__newvec;\r\n\r\n\tvar Browser=laya.utils.Browser,Event=laya.events.Event,EventDispatcher=laya.events.EventDispatcher;\r\n\tvar HTMLImage=laya.resource.HTMLImage,Handler=laya.utils.Handler,Input=laya.display.Input,Loader=laya.net.Loader;\r\n\tvar LocalStorage=laya.net.LocalStorage,Matrix=laya.maths.Matrix,Render=laya.renders.Render,RunDriver=laya.utils.RunDriver;\r\n\tvar SoundChannel=laya.media.SoundChannel,SoundManager=laya.media.SoundManager,URL=laya.net.URL,Utils=laya.utils.Utils;\r\n//class laya.wx.mini.MiniAdpter\r\nvar MiniAdpter=(function(){\r\n\tfunction MiniAdpter(){}\r\n\t__class(MiniAdpter,'laya.wx.mini.MiniAdpter');\r\n\tMiniAdpter.getJson=function(data){\r\n\t\treturn JSON.parse(data);\r\n\t}\r\n\r\n\tMiniAdpter.init=function(isPosMsg,isSon){\r\n\t\t(isPosMsg===void 0)&& (isPosMsg=false);\r\n\t\t(isSon===void 0)&& (isSon=false);\r\n\t\tif (MiniAdpter._inited)return;\r\n\t\tMiniAdpter._inited=true;\r\n\t\tMiniAdpter.window=/*__JS__ */window;\r\n\t\tif(MiniAdpter.window.navigator.userAgent.indexOf('MiniGame')<0)return;\r\n\t\tMiniAdpter.isZiYu=isSon;\r\n\t\tMiniAdpter.isPosMsgYu=isPosMsg;\r\n\t\tMiniAdpter.EnvConfig={};\r\n\t\ttry{\r\n\t\t\t/*__JS__ */laya.webgl.resource.WebGLCanvas.premulAlpha=true;\r\n\t\t\t}catch(e){\r\n\t\t}\r\n\t\tif(!MiniAdpter.isZiYu){\r\n\t\t\tMiniFileMgr.setNativeFileDir(\"/layaairGame\");\r\n\t\t\tMiniFileMgr.existDir(MiniFileMgr.fileNativeDir,Handler.create(MiniAdpter,MiniAdpter.onMkdirCallBack));\r\n\t\t}\r\n\t\tMiniAdpter.systemInfo=/*__JS__ */wx.getSystemInfoSync();\r\n\t\tMiniAdpter.window.focus=function (){\r\n\t\t};\r\n\t\tLaya['getUrlPath']=function (){\r\n\t\t};\r\n\t\tMiniAdpter.window.logtime=function (str){\r\n\t\t};\r\n\t\tMiniAdpter.window.alertTimeLog=function (str){\r\n\t\t};\r\n\t\tMiniAdpter.window.resetShareInfo=function (){\r\n\t\t};\r\n\t\tMiniAdpter.window.CanvasRenderingContext2D=function (){\r\n\t\t};\r\n\t\tMiniAdpter.window.CanvasRenderingContext2D.prototype=MiniAdpter.window.wx.createCanvas().getContext('2d').__proto__;\r\n\t\tMiniAdpter.window.document.body.appendChild=function (){\r\n\t\t};\r\n\t\tMiniAdpter.EnvConfig.pixelRatioInt=0;\r\n\t\tRunDriver.getPixelRatio=MiniAdpter.pixelRatio;\r\n\t\tMiniAdpter._preCreateElement=Browser.createElement;\r\n\t\tBrowser[\"createElement\"]=MiniAdpter.createElement;\r\n\t\tRunDriver.createShaderCondition=MiniAdpter.createShaderCondition;\r\n\t\tUtils['parseXMLFromString']=MiniAdpter.parseXMLFromString;\r\n\t\tInput['_createInputElement']=MiniInput['_createInputElement'];\r\n\t\tMiniAdpter.EnvConfig.load=Loader.prototype.load;\r\n\t\tLoader.prototype.load=MiniLoader.prototype.load;\r\n\t\tLoader.prototype._loadImage=MiniImage.prototype._loadImage;\r\n\t\tMiniLocalStorage.__init__();\r\n\t\tLocalStorage._baseClass=MiniLocalStorage;\r\n\t}\r\n\r\n\tMiniAdpter.getUrlEncode=function(url,type){\r\n\t\tif(url.indexOf(\".fnt\")!=-1)\r\n\t\t\treturn \"utf8\";\r\n\t\telse if(type==\"arraybuffer\")\r\n\t\treturn \"\";\r\n\t\treturn \"ascii\";\r\n\t}\r\n\r\n\tMiniAdpter.downLoadFile=function(fileUrl,fileType,callBack,encoding){\r\n\t\t(fileType===void 0)&& (fileType=\"\");\r\n\t\t(encoding===void 0)&& (encoding=\"ascii\");\r\n\t\tvar fileObj=MiniFileMgr.getFileInfo(fileUrl);\r\n\t\tif(!fileObj)\r\n\t\t\tMiniFileMgr.downLoadFile(fileUrl,fileType,callBack,encoding);\r\n\t\telse{\r\n\t\t\tcallBack !=null && callBack.runWith([0]);\r\n\t\t}\r\n\t}\r\n\r\n\tMiniAdpter.remove=function(fileUrl,callBack){\r\n\t\tMiniFileMgr.deleteFile(\"\",fileUrl,callBack,\"\",0);\r\n\t}\r\n\r\n\tMiniAdpter.removeAll=function(){\r\n\t\tMiniFileMgr.deleteAll();\r\n\t}\r\n\r\n\tMiniAdpter.hasNativeFile=function(fileUrl){\r\n\t\treturn MiniFileMgr.isLocalNativeFile(fileUrl);\r\n\t}\r\n\r\n\tMiniAdpter.getFileInfo=function(fileUrl){\r\n\t\treturn MiniFileMgr.getFileInfo(fileUrl);\r\n\t}\r\n\r\n\tMiniAdpter.getFileList=function(){\r\n\t\treturn MiniFileMgr.filesListObj;\r\n\t}\r\n\r\n\tMiniAdpter.exitMiniProgram=function(){\r\n\t\tMiniAdpter.window[\"wx\"].exitMiniProgram();\r\n\t}\r\n\r\n\tMiniAdpter.onMkdirCallBack=function(errorCode,data){\r\n\t\tif (!errorCode)\r\n\t\t\tMiniFileMgr.filesListObj=JSON.parse(data.data);\r\n\t}\r\n\r\n\tMiniAdpter.pixelRatio=function(){\r\n\t\tif (!MiniAdpter.EnvConfig.pixelRatioInt){\r\n\t\t\ttry {\r\n\t\t\t\tMiniAdpter.EnvConfig.pixelRatioInt=MiniAdpter.systemInfo.pixelRatio;\r\n\t\t\t\treturn MiniAdpter.systemInfo.pixelRatio;\r\n\t\t\t}catch (error){}\r\n\t\t}\r\n\t\treturn MiniAdpter.EnvConfig.pixelRatioInt;\r\n\t}\r\n\r\n\tMiniAdpter.createElement=function(type){\r\n\t\tif (type==\"canvas\"){\r\n\t\t\tvar _source;\r\n\t\t\tif (MiniAdpter.idx==1){\r\n\t\t\t\tif(MiniAdpter.isZiYu){\r\n\t\t\t\t\t_source=/*__JS__ */sharedCanvas;\r\n\t\t\t\t\t_source.style={};\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t_source=/*__JS__ */window.canvas;\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\t_source=/*__JS__ */window.wx.createCanvas();\r\n\t\t\t}\r\n\t\t\tMiniAdpter.idx++;\r\n\t\t\treturn _source;\r\n\t\t\t}else if (type==\"textarea\" || type==\"input\"){\r\n\t\t\treturn MiniAdpter.onCreateInput(type);\r\n\t\t\t}else if (type==\"div\"){\r\n\t\t\tvar node=MiniAdpter._preCreateElement(type);\r\n\t\t\tnode.contains=function (value){\r\n\t\t\t\treturn null\r\n\t\t\t};\r\n\t\t\tnode.removeChild=function (value){\r\n\t\t\t};\r\n\t\t\treturn node;\r\n\t\t\t}else {\r\n\t\t\treturn MiniAdpter._preCreateElement(type);\r\n\t\t}\r\n\t}\r\n\r\n\tMiniAdpter.onCreateInput=function(type){\r\n\t\tvar node=MiniAdpter._preCreateElement(type);\r\n\t\tnode.focus=MiniInput.wxinputFocus;\r\n\t\tnode.blur=MiniInput.wxinputblur;\r\n\t\tnode.style={};\r\n\t\tnode.value=0;\r\n\t\tnode.parentElement={};\r\n\t\tnode.placeholder={};\r\n\t\tnode.type={};\r\n\t\tnode.setColor=function (value){\r\n\t\t};\r\n\t\tnode.setType=function (value){\r\n\t\t};\r\n\t\tnode.setFontFace=function (value){\r\n\t\t};\r\n\t\tnode.addEventListener=function (value){\r\n\t\t};\r\n\t\tnode.contains=function (value){\r\n\t\t\treturn null\r\n\t\t};\r\n\t\tnode.removeChild=function (value){\r\n\t\t};\r\n\t\treturn node;\r\n\t}\r\n\r\n\tMiniAdpter.createShaderCondition=function(conditionScript){\r\n\t\tvar _$this=this;\r\n\t\tvar func=function (){\r\n\t\t\tvar abc=conditionScript;\r\n\t\t\treturn _$this[conditionScript.replace(\"this.\",\"\")];\r\n\t\t}\r\n\t\treturn func;\r\n\t}\r\n\r\n\tMiniAdpter.EnvConfig=null;\r\n\tMiniAdpter.window=null;\r\n\tMiniAdpter._preCreateElement=null;\r\n\tMiniAdpter._inited=false;\r\n\tMiniAdpter.systemInfo=null;\r\n\tMiniAdpter.isZiYu=false;\r\n\tMiniAdpter.isPosMsgYu=false;\r\n\tMiniAdpter.autoCacheFile=true;\r\n\tMiniAdpter.minClearSize=(5 *1024 *1024);\r\n\tMiniAdpter.parseXMLFromString=function(value){\r\n\t\tvar rst;\r\n\t\tvar Parser;\r\n\t\tvalue=value.replace(/>\\s+</g,'><');\r\n\t\ttry {\r\n\t\t\t/*__JS__ */rst=(new window.Parser.DOMParser()).parseFromString(value,'text/xml');\r\n\t\t\t}catch (error){\r\n\t\t\tthrow \"需要引入xml解析库文件\";\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tMiniAdpter.idx=1;\r\n\t__static(MiniAdpter,\r\n\t['nativefiles',function(){return this.nativefiles=[\"layaNativeDir\",\"wxlocal\"];}\r\n\t]);\r\n\treturn MiniAdpter;\r\n})()\r\n\r\n\r\n/**@private **/\r\n//class laya.wx.mini.MiniFileMgr\r\nvar MiniFileMgr=(function(){\r\n\tfunction MiniFileMgr(){}\r\n\t__class(MiniFileMgr,'laya.wx.mini.MiniFileMgr');\r\n\tMiniFileMgr.isLocalNativeFile=function(url){\r\n\t\tfor(var i=0,sz=MiniAdpter.nativefiles.length;i<sz;i++){\r\n\t\t\tif(url.indexOf(MiniAdpter.nativefiles[i])!=-1)\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tMiniFileMgr.getFileInfo=function(fileUrl){\r\n\t\tvar fileNativePath=fileUrl.split(\"?\")[0];\r\n\t\tvar fileObj=MiniFileMgr.filesListObj[fileNativePath];\r\n\t\tif (fileObj==null)\r\n\t\t\treturn null;\r\n\t\telse\r\n\t\treturn fileObj;\r\n\t\treturn null;\r\n\t}\r\n\r\n\tMiniFileMgr.read=function(filePath,encoding,callBack,readyUrl,isSaveFile,fileType){\r\n\t\t(encoding===void 0)&& (encoding=\"ascill\");\r\n\t\t(readyUrl===void 0)&& (readyUrl=\"\");\r\n\t\t(isSaveFile===void 0)&& (isSaveFile=false);\r\n\t\t(fileType===void 0)&& (fileType=\"\");\r\n\t\tvar fileUrl;\r\n\t\tif(readyUrl!=\"\" && (readyUrl.indexOf(\"http://\")!=-1 || readyUrl.indexOf(\"https://\")!=-1)){\r\n\t\t\tfileUrl=MiniFileMgr.getFileNativePath(filePath)\r\n\t\t\t}else{\r\n\t\t\tfileUrl=filePath;\r\n\t\t}\r\n\t\tMiniFileMgr.fs.readFile({filePath:fileUrl,encoding:encoding,success:function (data){\r\n\t\t\t\tcallBack !=null && callBack.runWith([0,data]);\r\n\t\t\t\t},fail:function (data){\r\n\t\t\t\tif (data && readyUrl !=\"\")\r\n\t\t\t\t\tMiniFileMgr.downFiles(readyUrl,encoding,callBack,readyUrl,isSaveFile,fileType);\r\n\t\t\t\telse\r\n\t\t\t\tcallBack !=null && callBack.runWith([1]);\r\n\t\t}});\r\n\t}\r\n\r\n\tMiniFileMgr.downFiles=function(fileUrl,encoding,callBack,readyUrl,isSaveFile,fileType){\r\n\t\t(encoding===void 0)&& (encoding=\"ascii\");\r\n\t\t(readyUrl===void 0)&& (readyUrl=\"\");\r\n\t\t(isSaveFile===void 0)&& (isSaveFile=false);\r\n\t\t(fileType===void 0)&& (fileType=\"\");\r\n\t\tvar downloadTask=MiniFileMgr.wxdown({url:fileUrl,success:function (data){\r\n\t\t\t\tif (data.statusCode===200)\r\n\t\t\t\t\tMiniFileMgr.readFile(data.tempFilePath,encoding,callBack,readyUrl,isSaveFile,fileType);\r\n\t\t\t\t},fail:function (data){\r\n\t\t\t\tcallBack !=null && callBack.runWith([1,data]);\r\n\t\t}});\r\n\t\tdownloadTask.onProgressUpdate(function(data){\r\n\t\t\tcallBack !=null && callBack.runWith([2,data.progress]);\r\n\t\t});\r\n\t}\r\n\r\n\tMiniFileMgr.readFile=function(filePath,encoding,callBack,readyUrl,isSaveFile,fileType){\r\n\t\t(encoding===void 0)&& (encoding=\"ascill\");\r\n\t\t(readyUrl===void 0)&& (readyUrl=\"\");\r\n\t\t(isSaveFile===void 0)&& (isSaveFile=false);\r\n\t\t(fileType===void 0)&& (fileType=\"\");\r\n\t\tMiniFileMgr.fs.readFile({filePath:filePath,encoding:encoding,success:function (data){\r\n\t\t\t\tif (filePath.indexOf(\"http://\")!=-1 || filePath.indexOf(\"https://\")!=-1){\r\n\t\t\t\t\tif(MiniAdpter.autoCacheFile || isSaveFile){\r\n\t\t\t\t\t\tMiniFileMgr.copyFile(filePath,readyUrl,callBack,encoding);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\tcallBack !=null && callBack.runWith([0,data]);\r\n\t\t\t\t},fail:function (data){\r\n\t\t\t\tif (data)\r\n\t\t\t\t\tcallBack !=null && callBack.runWith([1,data]);\r\n\t\t}});\r\n\t}\r\n\r\n\tMiniFileMgr.downOtherFiles=function(fileUrl,callBack,readyUrl,isSaveFile){\r\n\t\t(readyUrl===void 0)&& (readyUrl=\"\");\r\n\t\t(isSaveFile===void 0)&& (isSaveFile=false);\r\n\t\tMiniFileMgr.wxdown({url:fileUrl,success:function (data){\r\n\t\t\t\tif (data.statusCode===200){\r\n\t\t\t\t\tif((MiniAdpter.autoCacheFile || isSaveFile)&& readyUrl.indexOf(\"wx.qlogo.cn\")==-1)\r\n\t\t\t\t\t\tMiniFileMgr.copyFile(data.tempFilePath,readyUrl,callBack);\r\n\t\t\t\t\telse\r\n\t\t\t\t\tcallBack !=null && callBack.runWith([0,data.tempFilePath]);\r\n\t\t\t\t}\r\n\t\t\t\t},fail:function (data){\r\n\t\t\t\tcallBack !=null && callBack.runWith([1,data]);\r\n\t\t}});\r\n\t}\r\n\r\n\tMiniFileMgr.downLoadFile=function(fileUrl,fileType,callBack,encoding){\r\n\t\t(fileType===void 0)&& (fileType=\"\");\r\n\t\t(encoding===void 0)&& (encoding=\"ascii\");\r\n\t\tif(fileType==/*laya.net.Loader.IMAGE*/\"image\" || fileType==/*laya.net.Loader.SOUND*/\"sound\")\r\n\t\t\tMiniFileMgr.downOtherFiles(fileUrl,callBack,fileUrl,true);\r\n\t\telse\r\n\t\tMiniFileMgr.downFiles(fileUrl,encoding,callBack,fileUrl,true,fileType);\r\n\t}\r\n\r\n\tMiniFileMgr.copyFile=function(tempFilePath,readyUrl,callBack,encoding){\r\n\t\t(encoding===void 0)&& (encoding=\"\");\r\n\t\tvar temp=tempFilePath.split(\"/\");\r\n\t\tvar tempFileName=temp[temp.length-1];\r\n\t\tvar fileurlkey=readyUrl.split(\"?\")[0];\r\n\t\tvar fileObj=MiniFileMgr.getFileInfo(readyUrl);\r\n\t\tvar saveFilePath=MiniFileMgr.getFileNativePath(tempFileName);\r\n\t\tvar totalSize=50 *1024 *1024;\r\n\t\tvar chaSize=4 *1024 *1024;\r\n\t\tvar fileUseSize=MiniFileMgr.getCacheUseSize();\r\n\t\tif (fileObj){\r\n\t\t\tif (fileObj.readyUrl !=readyUrl){\r\n\t\t\t\tMiniFileMgr.fs.getFileInfo({\r\n\t\t\t\t\tfilePath:tempFilePath,\r\n\t\t\t\t\tsuccess:function (data){\r\n\t\t\t\t\t\tif((fileUseSize+chaSize+data.size)>=totalSize){\r\n\t\t\t\t\t\t\tif(data.size > MiniAdpter.minClearSize)\r\n\t\t\t\t\t\t\t\tMiniAdpter.minClearSize=data.size;\r\n\t\t\t\t\t\t\tMiniFileMgr.onClearCacheRes();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tMiniFileMgr.deleteFile(tempFileName,readyUrl,callBack,encoding,data.size);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfail:function (data){\r\n\t\t\t\t\t\tcallBack !=null && callBack.runWith([1,data]);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\tcallBack !=null && callBack.runWith([0]);\r\n\t\t\t}else{\r\n\t\t\tMiniFileMgr.fs.getFileInfo({\r\n\t\t\t\tfilePath:tempFilePath,\r\n\t\t\t\tsuccess:function (data){\r\n\t\t\t\t\tif((fileUseSize+chaSize+data.size)>=totalSize){\r\n\t\t\t\t\t\tif(data.size > MiniAdpter.minClearSize)\r\n\t\t\t\t\t\t\tMiniAdpter.minClearSize=data.size;\r\n\t\t\t\t\t\tMiniFileMgr.onClearCacheRes();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tMiniFileMgr.fs.copyFile({srcPath:tempFilePath,destPath:saveFilePath,success:function (data2){\r\n\t\t\t\t\t\t\tMiniFileMgr.onSaveFile(readyUrl,tempFileName,true,encoding,callBack,data.size);\r\n\t\t\t\t\t\t\t},fail:function (data){\r\n\t\t\t\t\t\t\tcallBack !=null && callBack.runWith([1,data]);\r\n\t\t\t\t\t}});\r\n\t\t\t\t},\r\n\t\t\t\tfail:function (data){\r\n\t\t\t\t\tcallBack !=null && callBack.runWith([1,data]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tMiniFileMgr.onClearCacheRes=function(){\r\n\t\tvar memSize=MiniAdpter.minClearSize;\r\n\t\tvar tempFileListArr=[];\r\n\t\tfor(var key in MiniFileMgr.filesListObj){\r\n\t\t\ttempFileListArr.push(MiniFileMgr.filesListObj[key]);\r\n\t\t}\r\n\t\tMiniFileMgr.sortOn(tempFileListArr,\"time\",16);\r\n\t\tvar clearSize=0;\r\n\t\tfor(var i=1,sz=tempFileListArr.length;i<sz;i++){\r\n\t\t\tvar fileObj=tempFileListArr[i];\r\n\t\t\tif(clearSize >=memSize)\r\n\t\t\t\tbreak ;\r\n\t\t\tclearSize+=fileObj.size;\r\n\t\t\tMiniFileMgr.deleteFile(\"\",fileObj.readyUrl);\r\n\t\t}\r\n\t}\r\n\r\n\tMiniFileMgr.sortOn=function(array,name,options){\r\n\t\t(options===void 0)&& (options=0);\r\n\t\tif (options==16)return array.sort(function(a,b){return a[name]-b[name];});\r\n\t\tif (options==(16 | 2))return array.sort(function(a,b){return b[name]-a[name];});\r\n\t\treturn array.sort(function(a,b){return a[name]-b[name] });\r\n\t}\r\n\r\n\tMiniFileMgr.getFileNativePath=function(fileName){\r\n\t\treturn laya.wx.mini.MiniFileMgr.fileNativeDir+\"/\"+fileName;\r\n\t}\r\n\r\n\tMiniFileMgr.deleteFile=function(tempFileName,readyUrl,callBack,encoding,fileSize){\r\n\t\t(readyUrl===void 0)&& (readyUrl=\"\");\r\n\t\t(encoding===void 0)&& (encoding=\"\");\r\n\t\t(fileSize===void 0)&& (fileSize=0);\r\n\t\tvar fileObj=MiniFileMgr.getFileInfo(readyUrl);\r\n\t\tvar deleteFileUrl=MiniFileMgr.getFileNativePath(fileObj.md5);\r\n\t\tMiniFileMgr.fs.unlink({filePath:deleteFileUrl,success:function (data){\r\n\t\t\t\tvar isAdd=tempFileName !=\"\" ? true :false;\r\n\t\t\t\tif(tempFileName !=\"\"){\r\n\t\t\t\t\tvar saveFilePath=MiniFileMgr.getFileNativePath(tempFileName);\r\n\t\t\t\t\tMiniFileMgr.fs.copyFile({srcPath:tempFileName,destPath:saveFilePath,success:function (data){\r\n\t\t\t\t\t\t\tMiniFileMgr.onSaveFile(readyUrl,tempFileName,isAdd,encoding,callBack,data.size);\r\n\t\t\t\t\t\t\t},fail:function (data){\r\n\t\t\t\t\t\t\tcallBack !=null && callBack.runWith([1,data]);\r\n\t\t\t\t\t}});\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\tMiniFileMgr.onSaveFile(readyUrl,tempFileName,isAdd,encoding,callBack,fileSize);\r\n\t\t\t\t}\r\n\t\t\t\t},fail:function (data){\r\n\t\t}});\r\n\t}\r\n\r\n\tMiniFileMgr.deleteAll=function(){\r\n\t\tvar tempFileListArr=[];\r\n\t\tfor(var key in MiniFileMgr.filesListObj){\r\n\t\t\ttempFileListArr.push(MiniFileMgr.filesListObj[key]);\r\n\t\t}\r\n\t\tfor(var i=1,sz=tempFileListArr.length;i<sz;i++){\r\n\t\t\tvar fileObj=tempFileListArr[i];\r\n\t\t\tMiniFileMgr.deleteFile(\"\",fileObj.readyUrl);\r\n\t\t}\r\n\t}\r\n\r\n\tMiniFileMgr.onSaveFile=function(readyUrl,md5Name,isAdd,encoding,callBack,fileSize){\r\n\t\t(isAdd===void 0)&& (isAdd=true);\r\n\t\t(encoding===void 0)&& (encoding=\"\");\r\n\t\t(fileSize===void 0)&& (fileSize=0);\r\n\t\tvar fileurlkey=readyUrl.split(\"?\")[0];\r\n\t\tif(MiniFileMgr.filesListObj['fileUsedSize']==null)\r\n\t\t\tMiniFileMgr.filesListObj['fileUsedSize']=0;\r\n\t\tif(isAdd){\r\n\t\t\tvar fileNativeName=MiniFileMgr.getFileNativePath(md5Name);\r\n\t\t\tMiniFileMgr.filesListObj[fileurlkey]={md5:md5Name,readyUrl:readyUrl,size:fileSize,times:Browser.now(),encoding:encoding};\r\n\t\t\tMiniFileMgr.filesListObj['fileUsedSize']=parseInt(MiniFileMgr.filesListObj['fileUsedSize'])+fileSize;\r\n\t\t\tMiniFileMgr.writeFilesList(fileurlkey,JSON.stringify(MiniFileMgr.filesListObj),true);\r\n\t\t\tcallBack !=null && callBack.runWith([0]);\r\n\t\t\t}else{\r\n\t\t\tif(MiniFileMgr.filesListObj[fileurlkey]){\r\n\t\t\t\tvar deletefileSize=parseInt(MiniFileMgr.filesListObj[fileurlkey].size);\r\n\t\t\t\tMiniFileMgr.filesListObj['fileUsedSize']=parseInt(MiniFileMgr.filesListObj['fileUsedSize'])-deletefileSize;\r\n\t\t\t\tdelete MiniFileMgr.filesListObj[fileurlkey];\r\n\t\t\t\tMiniFileMgr.writeFilesList(fileurlkey,JSON.stringify(MiniFileMgr.filesListObj),false);\r\n\t\t\t\tcallBack !=null && callBack.runWith([0]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tMiniFileMgr.writeFilesList=function(fileurlkey,filesListStr,isAdd){\r\n\t\tvar listFilesPath=MiniFileMgr.fileNativeDir+\"/\"+MiniFileMgr.fileListName;\r\n\t\tMiniFileMgr.fs.writeFile({filePath:listFilesPath,encoding:'utf8',data:filesListStr,success:function (data){\r\n\t\t\t\t},fail:function (data){\r\n\t\t}});\r\n\t\tif(!MiniAdpter.isZiYu &&MiniAdpter.isPosMsgYu){\r\n\t\t\t/*__JS__ */wx.postMessage({url:fileurlkey,data:MiniFileMgr.filesListObj[fileurlkey],isLoad:\"filenative\",isAdd:isAdd});\r\n\t\t}\r\n\t}\r\n\r\n\tMiniFileMgr.getCacheUseSize=function(){\r\n\t\tif(MiniFileMgr.filesListObj && MiniFileMgr.filesListObj['fileUsedSize'])\r\n\t\t\treturn MiniFileMgr.filesListObj['fileUsedSize'];\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tMiniFileMgr.existDir=function(dirPath,callBack){\r\n\t\tMiniFileMgr.fs.mkdir({dirPath:dirPath,success:function (data){\r\n\t\t\t\tcallBack !=null && callBack.runWith([0,{data:JSON.stringify({})}]);\r\n\t\t\t\t},fail:function (data){\r\n\t\t\t\tif (data.errMsg.indexOf(\"file already exists\")!=-1)\r\n\t\t\t\t\tMiniFileMgr.readSync(MiniFileMgr.fileListName,\"utf8\",callBack);\r\n\t\t\t\telse\r\n\t\t\t\tcallBack !=null && callBack.runWith([1,data]);\r\n\t\t}});\r\n\t}\r\n\r\n\tMiniFileMgr.readSync=function(filePath,encoding,callBack,readyUrl){\r\n\t\t(encoding===void 0)&& (encoding=\"ascill\");\r\n\t\t(readyUrl===void 0)&& (readyUrl=\"\");\r\n\t\tvar fileUrl=MiniFileMgr.getFileNativePath(filePath);\r\n\t\tvar filesListStr\r\n\t\ttry{\r\n\t\t\tfilesListStr=MiniFileMgr.fs.readFileSync(fileUrl,encoding);\r\n\t\t\tcallBack !=null && callBack.runWith([0,{data:filesListStr}]);\r\n\t\t}\r\n\t\tcatch(error){\r\n\t\t\tcallBack !=null && callBack.runWith([1]);\r\n\t\t}\r\n\t}\r\n\r\n\tMiniFileMgr.setNativeFileDir=function(value){\r\n\t\tMiniFileMgr.fileNativeDir=/*__JS__ */wx.env.USER_DATA_PATH+value;\r\n\t}\r\n\r\n\tMiniFileMgr.filesListObj={};\r\n\tMiniFileMgr.fileNativeDir=null;\r\n\tMiniFileMgr.fileListName=\"layaairfiles.txt\";\r\n\tMiniFileMgr.ziyuFileData={};\r\n\tMiniFileMgr.loadPath=\"\";\r\n\tMiniFileMgr.DESCENDING=2;\r\n\tMiniFileMgr.NUMERIC=16;\r\n\t__static(MiniFileMgr,\r\n\t['fs',function(){return this.fs=/*__JS__ */wx.getFileSystemManager();},'wxdown',function(){return this.wxdown=/*__JS__ */wx.downloadFile;}\r\n\t]);\r\n\treturn MiniFileMgr;\r\n})()\r\n\r\n\r\n/**@private **/\r\n//class laya.wx.mini.MiniImage\r\nvar MiniImage=(function(){\r\n\tfunction MiniImage(){}\r\n\t__class(MiniImage,'laya.wx.mini.MiniImage');\r\n\tvar __proto=MiniImage.prototype;\r\n\t/**@private **/\r\n\t__proto._loadImage=function(url){\r\n\t\tvar thisLoader=this;\r\n\t\tif (MiniAdpter.isZiYu){\r\n\t\t\tMiniImage.onCreateImage(url,thisLoader,true);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar isTransformUrl=false;\r\n\t\tif (!MiniFileMgr.isLocalNativeFile(url)){\r\n\t\t\tisTransformUrl=true;\r\n\t\t\turl=URL.formatURL(url);\r\n\t\t\t}else{\r\n\t\t\tif (url.indexOf(\"http://\")!=-1 || url.indexOf(\"https://\")!=-1){\r\n\t\t\t\tif(MiniFileMgr.loadPath !=\"\"){\r\n\t\t\t\t\turl=url.split(MiniFileMgr.loadPath)[1];\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\tvar tempStr=URL.rootPath !=\"\" ? URL.rootPath :URL.basePath;\r\n\t\t\t\t\tif(tempStr !=\"\")\r\n\t\t\t\t\t\turl=url.split(tempStr)[1];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!MiniFileMgr.getFileInfo(url)){\r\n\t\t\tif (url.indexOf(\"http://\")!=-1 || url.indexOf(\"https://\")!=-1){\r\n\t\t\t\tif(MiniAdpter.isZiYu){\r\n\t\t\t\t\tMiniImage.onCreateImage(url,thisLoader,true);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\tMiniFileMgr.downOtherFiles(url,new Handler(MiniImage,MiniImage.onDownImgCallBack,[url,thisLoader]),url);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\tMiniImage.onCreateImage(url,thisLoader,true);\r\n\t\t\t}else {\r\n\t\t\tMiniImage.onCreateImage(url,thisLoader,!isTransformUrl);\r\n\t\t}\r\n\t}\r\n\r\n\tMiniImage.onDownImgCallBack=function(sourceUrl,thisLoader,errorCode,tempFilePath){\r\n\t\t(tempFilePath===void 0)&& (tempFilePath=\"\");\r\n\t\tif (!errorCode)\r\n\t\t\tMiniImage.onCreateImage(sourceUrl,thisLoader,false,tempFilePath);\r\n\t\telse {\r\n\t\t\tthisLoader.onError(null);\r\n\t\t}\r\n\t}\r\n\r\n\tMiniImage.onCreateImage=function(sourceUrl,thisLoader,isLocal,tempFilePath){\r\n\t\t(isLocal===void 0)&& (isLocal=false);\r\n\t\t(tempFilePath===void 0)&& (tempFilePath=\"\");\r\n\t\tvar fileNativeUrl;\r\n\t\tif(MiniAdpter.autoCacheFile){\r\n\t\t\tif (!isLocal){\r\n\t\t\t\tif(tempFilePath !=\"\"){\r\n\t\t\t\t\tfileNativeUrl=tempFilePath;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\tvar fileObj=MiniFileMgr.getFileInfo(sourceUrl);\r\n\t\t\t\t\tvar fileMd5Name=fileObj.md5;\r\n\t\t\t\t\tfileNativeUrl=MiniFileMgr.getFileNativePath(fileMd5Name);\r\n\t\t\t\t}\r\n\t\t\t}else\r\n\t\t\tfileNativeUrl=sourceUrl;\r\n\t\t\t}else{\r\n\t\t\tif(!isLocal)\r\n\t\t\t\tfileNativeUrl=tempFilePath;\r\n\t\t\telse\r\n\t\t\tfileNativeUrl=sourceUrl;\r\n\t\t}\r\n\t\tif (thisLoader.imgCache==null)\r\n\t\t\tthisLoader.imgCache={};\r\n\t\tvar image;\r\n\t\tfunction clear (){\r\n\t\t\timage.onload=null;\r\n\t\t\timage.onerror=null;\r\n\t\t\tdelete thisLoader.imgCache[sourceUrl]\r\n\t\t};\r\n\t\tvar onload=function (){\r\n\t\t\tclear();\r\n\t\t\tthisLoader._url=URL.formatURL(thisLoader._url);\r\n\t\t\tthisLoader.onLoaded(image);\r\n\t\t};\r\n\t\tvar onerror=function (){\r\n\t\t\tclear();\r\n\t\t\tthisLoader.event(/*laya.events.Event.ERROR*/\"error\",\"Load image failed\");\r\n\t\t}\r\n\t\tif (thisLoader._type==\"nativeimage\"){\r\n\t\t\timage=new Browser.window.Image();\r\n\t\t\timage.crossOrigin=\"\";\r\n\t\t\timage.onload=onload;\r\n\t\t\timage.onerror=onerror;\r\n\t\t\timage.src=fileNativeUrl;\r\n\t\t\tthisLoader.imgCache[sourceUrl]=image;\r\n\t\t\t}else {\r\n\t\t\tnew HTMLImage.create(fileNativeUrl,{onload:onload,onerror:onerror,onCreate:function (img){\r\n\t\t\t\t\timage=img;\r\n\t\t\t\t\tthisLoader.imgCache[sourceUrl]=img;\r\n\t\t\t}});\r\n\t\t}\r\n\t}\r\n\r\n\treturn MiniImage;\r\n})()\r\n\r\n\r\n/**@private **/\r\n//class laya.wx.mini.MiniInput\r\nvar MiniInput=(function(){\r\n\tfunction MiniInput(){}\r\n\t__class(MiniInput,'laya.wx.mini.MiniInput');\r\n\tMiniInput._createInputElement=function(){\r\n\t\tInput['_initInput'](Input['area']=Browser.createElement(\"textarea\"));\r\n\t\tInput['_initInput'](Input['input']=Browser.createElement(\"input\"));\r\n\t\tInput['inputContainer']=Browser.createElement(\"div\");\r\n\t\tInput['inputContainer'].style.position=\"absolute\";\r\n\t\tInput['inputContainer'].style.zIndex=1E5;\r\n\t\tBrowser.container.appendChild(Input['inputContainer']);\r\n\t\tInput['inputContainer'].setPos=function (x,y){Input['inputContainer'].style.left=x+'px';Input['inputContainer'].style.top=y+'px';};\r\n\t\tLaya.stage.on(\"resize\",null,MiniInput._onStageResize);\r\n\t\t/*__JS__ */wx.onWindowResize && /*__JS__ */wx.onWindowResize(function(res){\r\n\t\t\t/*__JS__ */window.dispatchEvent && /*__JS__ */window.dispatchEvent(\"resize\");\r\n\t\t});\r\n\t\tSoundManager._soundClass=MiniSound;\r\n\t\tSoundManager._musicClass=MiniSound;\r\n\t\tvar model=MiniAdpter.systemInfo.model;\r\n\t\tvar system=MiniAdpter.systemInfo.system;\r\n\t\tif(model.indexOf(\"iPhone\")!=-1){\r\n\t\t\tBrowser.onIPhone=true;\r\n\t\t\tBrowser.onIOS=true;\r\n\t\t\tBrowser.onIPad=true;\r\n\t\t\tBrowser.onAndroid=false;\r\n\t\t}\r\n\t\tif(system.indexOf(\"Android\")!=-1 || system.indexOf(\"Adr\")!=-1){\r\n\t\t\tBrowser.onAndroid=true;\r\n\t\t\tBrowser.onIPhone=false;\r\n\t\t\tBrowser.onIOS=false;\r\n\t\t\tBrowser.onIPad=false;\r\n\t\t}\r\n\t}\r\n\r\n\tMiniInput._onStageResize=function(){\r\n\t\tvar ts=Laya.stage._canvasTransform.identity();\r\n\t\tts.scale((Browser.width / Render.canvas.width / RunDriver.getPixelRatio()),Browser.height / Render.canvas.height / RunDriver.getPixelRatio());\r\n\t}\r\n\r\n\tMiniInput.wxinputFocus=function(e){\r\n\t\tvar _inputTarget=Input['inputElement'].target;\r\n\t\tif (_inputTarget && !_inputTarget.editable){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tMiniAdpter.window.wx.offKeyboardConfirm();\r\n\t\tMiniAdpter.window.wx.offKeyboardInput();\r\n\t\tMiniAdpter.window.wx.showKeyboard({defaultValue:_inputTarget.text,maxLength:_inputTarget.maxChars,multiple:_inputTarget.multiline,confirmHold:true,confirmType:'done',success:function (res){\r\n\t\t\t\t},fail:function (res){\r\n\t\t}});\r\n\t\tMiniAdpter.window.wx.onKeyboardConfirm(function(res){\r\n\t\t\tvar str=res ? res.value :\"\";\r\n\t\t\t_inputTarget.text=str;\r\n\t\t\t_inputTarget.event(/*laya.events.Event.INPUT*/\"input\");\r\n\t\t\tlaya.wx.mini.MiniInput.inputEnter();\r\n\t\t})\r\n\t\tMiniAdpter.window.wx.onKeyboardInput(function(res){\r\n\t\t\tvar str=res ? res.value :\"\";\r\n\t\t\tif (!_inputTarget.multiline){\r\n\t\t\t\tif (str.indexOf(\"\\n\")!=-1){\r\n\t\t\t\t\tlaya.wx.mini.MiniInput.inputEnter();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t_inputTarget.text=str;\r\n\t\t\t_inputTarget.event(/*laya.events.Event.INPUT*/\"input\");\r\n\t\t});\r\n\t}\r\n\r\n\tMiniInput.inputEnter=function(){\r\n\t\tInput['inputElement'].target.focus=false;\r\n\t}\r\n\r\n\tMiniInput.wxinputblur=function(){\r\n\t\tMiniInput.hideKeyboard();\r\n\t}\r\n\r\n\tMiniInput.hideKeyboard=function(){\r\n\t\tMiniAdpter.window.wx.offKeyboardConfirm();\r\n\t\tMiniAdpter.window.wx.offKeyboardInput();\r\n\t\tMiniAdpter.window.wx.hideKeyboard({success:function (res){\r\n\t\t\t\tconsole.log('隐藏键盘')\r\n\t\t\t\t},fail:function (res){\r\n\t\t\t\tconsole.log(\"隐藏键盘出错:\"+(res ? res.errMsg :\"\"));\r\n\t\t}});\r\n\t}\r\n\r\n\treturn MiniInput;\r\n})()\r\n\r\n\r\n/**@private **/\r\n//class laya.wx.mini.MiniLocalStorage\r\nvar MiniLocalStorage=(function(){\r\n\tfunction MiniLocalStorage(){}\r\n\t__class(MiniLocalStorage,'laya.wx.mini.MiniLocalStorage');\r\n\tMiniLocalStorage.__init__=function(){\r\n\t\tMiniLocalStorage.items=MiniLocalStorage;\r\n\t}\r\n\r\n\tMiniLocalStorage.setItem=function(key,value){\r\n\t\t/*__JS__ */wx.setStorageSync(key,value);\r\n\t}\r\n\r\n\tMiniLocalStorage.getItem=function(key){\r\n\t\treturn /*__JS__ */wx.getStorageSync(key);\r\n\t}\r\n\r\n\tMiniLocalStorage.setJSON=function(key,value){\r\n\t\tMiniLocalStorage.setItem(key,value);\r\n\t}\r\n\r\n\tMiniLocalStorage.getJSON=function(key){\r\n\t\treturn MiniLocalStorage.getItem(key);\r\n\t}\r\n\r\n\tMiniLocalStorage.removeItem=function(key){\r\n\t\t/*__JS__ */wx.removeStorageSync(key);\r\n\t}\r\n\r\n\tMiniLocalStorage.clear=function(){\r\n\t\t/*__JS__ */wx.clearStorageSync();\r\n\t}\r\n\r\n\tMiniLocalStorage.getStorageInfoSync=function(){\r\n\t\ttry {\r\n\t\t\tvar res=/*__JS__ */wx.getStorageInfoSync()\r\n\t\t\tconsole.log(res.keys)\r\n\t\t\tconsole.log(res.currentSize)\r\n\t\t\tconsole.log(res.limitSize)\r\n\t\t\treturn res;\r\n\t\t}catch (e){}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tMiniLocalStorage.support=true;\r\n\tMiniLocalStorage.items=null;\r\n\treturn MiniLocalStorage;\r\n})()\r\n\r\n\r\n/**@private **/\r\n//class laya.wx.mini.MiniLocation\r\nvar MiniLocation=(function(){\r\n\tfunction MiniLocation(){}\r\n\t__class(MiniLocation,'laya.wx.mini.MiniLocation');\r\n\tMiniLocation.__init__=function(){\r\n\t\tMiniAdpter.window.navigator.geolocation.getCurrentPosition=MiniLocation.getCurrentPosition;\r\n\t\tMiniAdpter.window.navigator.geolocation.watchPosition=MiniLocation.watchPosition;\r\n\t\tMiniAdpter.window.navigator.geolocation.clearWatch=MiniLocation.clearWatch;\r\n\t}\r\n\r\n\tMiniLocation.getCurrentPosition=function(success,error,options){\r\n\t\tvar paramO;\r\n\t\tparamO={};\r\n\t\tparamO.success=getSuccess;\r\n\t\tparamO.fail=error;\r\n\t\tMiniAdpter.window.wx.getLocation(paramO);\r\n\t\tfunction getSuccess (res){\r\n\t\t\tif (success !=null){\r\n\t\t\t\tsuccess(res);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tMiniLocation.watchPosition=function(success,error,options){\r\n\t\tMiniLocation._curID++;\r\n\t\tvar curWatchO;\r\n\t\tcurWatchO={};\r\n\t\tcurWatchO.success=success;\r\n\t\tcurWatchO.error=error;\r\n\t\tMiniLocation._watchDic[MiniLocation._curID]=curWatchO;\r\n\t\tLaya.timer.loop(1000,null,MiniLocation._myLoop);\r\n\t\treturn MiniLocation._curID;\r\n\t}\r\n\r\n\tMiniLocation.clearWatch=function(id){\r\n\t\tdelete MiniLocation._watchDic[id];\r\n\t\tif (!MiniLocation._hasWatch()){\r\n\t\t\tLaya.timer.clear(null,MiniLocation._myLoop);\r\n\t\t}\r\n\t}\r\n\r\n\tMiniLocation._hasWatch=function(){\r\n\t\tvar key;\r\n\t\tfor (key in MiniLocation._watchDic){\r\n\t\t\tif (MiniLocation._watchDic[key])return true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tMiniLocation._myLoop=function(){\r\n\t\tMiniLocation.getCurrentPosition(MiniLocation._mySuccess,MiniLocation._myError);\r\n\t}\r\n\r\n\tMiniLocation._mySuccess=function(res){\r\n\t\tvar rst={};\r\n\t\trst.coords=res;\r\n\t\trst.timestamp=Browser.now();\r\n\t\tvar key;\r\n\t\tfor (key in MiniLocation._watchDic){\r\n\t\t\tif (MiniLocation._watchDic[key].success){\r\n\t\t\t\tMiniLocation._watchDic[key].success(rst);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tMiniLocation._myError=function(res){\r\n\t\tvar key;\r\n\t\tfor (key in MiniLocation._watchDic){\r\n\t\t\tif (MiniLocation._watchDic[key].error){\r\n\t\t\t\tMiniLocation._watchDic[key].error(res);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tMiniLocation._watchDic={};\r\n\tMiniLocation._curID=0;\r\n\treturn MiniLocation;\r\n})()\r\n\r\n\r\n/**@private **/\r\n//class laya.wx.mini.MiniAccelerator extends laya.events.EventDispatcher\r\nvar MiniAccelerator=(function(_super){\r\n\tfunction MiniAccelerator(){\r\n\t\tMiniAccelerator.__super.call(this);\r\n\t}\r\n\r\n\t__class(MiniAccelerator,'laya.wx.mini.MiniAccelerator',_super);\r\n\tvar __proto=MiniAccelerator.prototype;\r\n\t/**\r\n\t*侦听加速器运动。\r\n\t*@param observer 回调函数接受4个参数，见类说明。\r\n\t*/\r\n\t__proto.on=function(type,caller,listener,args){\r\n\t\t_super.prototype.on.call(this,type,caller,listener,args);\r\n\t\tMiniAccelerator.startListen(this[\"onDeviceOrientationChange\"]);\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**\r\n\t*取消侦听加速器。\r\n\t*@param handle 侦听加速器所用处理器。\r\n\t*/\r\n\t__proto.off=function(type,caller,listener,onceOnly){\r\n\t\t(onceOnly===void 0)&& (onceOnly=false);\r\n\t\tif (!this.hasListener(type))\r\n\t\t\tMiniAccelerator.stopListen();\r\n\t\treturn _super.prototype.off.call(this,type,caller,listener,onceOnly);\r\n\t}\r\n\r\n\tMiniAccelerator.__init__=function(){\r\n\t\ttry{\r\n\t\t\tvar Acc;\r\n\t\t\tAcc=/*__JS__ */laya.device.motion.Accelerator;\r\n\t\t\tif (!Acc)return;\r\n\t\t\tAcc[\"prototype\"][\"on\"]=MiniAccelerator[\"prototype\"][\"on\"];\r\n\t\t\tAcc[\"prototype\"][\"off\"]=MiniAccelerator[\"prototype\"][\"off\"];\r\n\t\t\t}catch (e){\r\n\t\t}\r\n\t}\r\n\r\n\tMiniAccelerator.startListen=function(callBack){\r\n\t\tMiniAccelerator._callBack=callBack;\r\n\t\tif (MiniAccelerator._isListening)return;\r\n\t\tMiniAccelerator._isListening=true;\r\n\t\ttry{\r\n\t\t\t/*__JS__ */wx.onAccelerometerChange(MiniAccelerator.onAccelerometerChange);\r\n\t\t}catch(e){}\r\n\t}\r\n\r\n\tMiniAccelerator.stopListen=function(){\r\n\t\tMiniAccelerator._isListening=false;\r\n\t\ttry{\r\n\t\t\t/*__JS__ */wx.stopAccelerometer({});\r\n\t\t}catch(e){}\r\n\t}\r\n\r\n\tMiniAccelerator.onAccelerometerChange=function(res){\r\n\t\tvar e;\r\n\t\te={};\r\n\t\te.acceleration=res;\r\n\t\te.accelerationIncludingGravity=res;\r\n\t\te.rotationRate={};\r\n\t\tif (MiniAccelerator._callBack !=null){\r\n\t\t\tMiniAccelerator._callBack(e);\r\n\t\t}\r\n\t}\r\n\r\n\tMiniAccelerator._isListening=false;\r\n\tMiniAccelerator._callBack=null;\r\n\treturn MiniAccelerator;\r\n})(EventDispatcher)\r\n\r\n\r\n/**@private **/\r\n//class laya.wx.mini.MiniLoader extends laya.events.EventDispatcher\r\nvar MiniLoader=(function(_super){\r\n\tfunction MiniLoader(){\r\n\t\tMiniLoader.__super.call(this);\r\n\t}\r\n\r\n\t__class(MiniLoader,'laya.wx.mini.MiniLoader',_super);\r\n\tvar __proto=MiniLoader.prototype;\r\n\t/**\r\n\t*@private\r\n\t*@param url\r\n\t*@param type\r\n\t*@param cache\r\n\t*@param group\r\n\t*@param ignoreCache\r\n\t*/\r\n\t__proto.load=function(url,type,cache,group,ignoreCache){\r\n\t\t(cache===void 0)&& (cache=true);\r\n\t\t(ignoreCache===void 0)&& (ignoreCache=false);\r\n\t\tvar thisLoader=this;\r\n\t\tthisLoader._url=url;\r\n\t\tif (url.indexOf(\"data:image\")===0)thisLoader._type=type=/*laya.net.Loader.IMAGE*/\"image\";\r\n\t\telse {\r\n\t\t\tthisLoader._type=type || (type=thisLoader.getTypeFromUrl(url));\r\n\t\t}\r\n\t\tthisLoader._cache=cache;\r\n\t\tthisLoader._data=null;\r\n\t\tif (!ignoreCache && Loader.loadedMap[URL.formatURL(url)]){\r\n\t\t\tthisLoader._data=Loader.loadedMap[URL.formatURL(url)];\r\n\t\t\tthis.event(/*laya.events.Event.PROGRESS*/\"progress\",1);\r\n\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\",thisLoader._data);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (Loader.parserMap[type] !=null){\r\n\t\t\tthisLoader._customParse=true;\r\n\t\t\tif (((Loader.parserMap[type])instanceof laya.utils.Handler ))Loader.parserMap[type].runWith(this);\r\n\t\t\telse Loader.parserMap[type].call(null,this);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar encoding=MiniAdpter.getUrlEncode(url,type);\r\n\t\tvar urlType=Utils.getFileExtension(url);\r\n\t\tif ((MiniLoader._fileTypeArr.indexOf(urlType)!=-1)){\r\n\t\t\tMiniAdpter.EnvConfig.load.call(this,url,type,cache,group,ignoreCache);\r\n\t\t\t}else {\r\n\t\t\tif(MiniAdpter.isZiYu && MiniFileMgr.ziyuFileData[url]){\r\n\t\t\t\tvar tempData=MiniFileMgr.ziyuFileData[url];\r\n\t\t\t\tthisLoader.onLoaded(tempData);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!MiniFileMgr.getFileInfo(url)){\r\n\t\t\t\tif (MiniFileMgr.isLocalNativeFile(url)){\r\n\t\t\t\t\tMiniFileMgr.read(url,encoding,new Handler(MiniLoader,MiniLoader.onReadNativeCallBack,[encoding,url,type,cache,group,ignoreCache,thisLoader]));\r\n\t\t\t\t\treturn;\r\n\t\t\t\t};\r\n\t\t\t\tvar tempUrl=url;\r\n\t\t\t\turl=URL.formatURL(url);\r\n\t\t\t\tif (url.indexOf(\"http://\")!=-1 || url.indexOf(\"https://\")!=-1){\r\n\t\t\t\t\tMiniAdpter.EnvConfig.load.call(thisLoader,tempUrl,type,cache,group,ignoreCache);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tMiniFileMgr.readFile(url,encoding,new Handler(MiniLoader,MiniLoader.onReadNativeCallBack,[encoding,url,type,cache,group,ignoreCache,thisLoader]),url);\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tvar fileObj=MiniFileMgr.getFileInfo(url);\r\n\t\t\t\tfileObj.encoding=fileObj.encoding==null ? \"ascii\" :fileObj.encoding;\r\n\t\t\t\tMiniFileMgr.readFile(url,fileObj.encoding,new Handler(MiniLoader,MiniLoader.onReadNativeCallBack,[encoding,url,type,cache,group,ignoreCache,thisLoader]),url);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tMiniLoader.onReadNativeCallBack=function(encoding,url,type,cache,group,ignoreCache,thisLoader,errorCode,data){\r\n\t\t(cache===void 0)&& (cache=true);\r\n\t\t(ignoreCache===void 0)&& (ignoreCache=false);\r\n\t\t(errorCode===void 0)&& (errorCode=0);\r\n\t\tif (!errorCode){\r\n\t\t\tvar tempData;\r\n\t\t\tif (type==/*laya.net.Loader.JSON*/\"json\" || type==/*laya.net.Loader.ATLAS*/\"atlas\"){\r\n\t\t\t\ttempData=MiniAdpter.getJson(data.data);\r\n\t\t\t\t}else if (type==/*laya.net.Loader.XML*/\"xml\"){\r\n\t\t\t\ttempData=Utils.parseXMLFromString(data.data);\r\n\t\t\t\t}else {\r\n\t\t\t\ttempData=data.data;\r\n\t\t\t}\r\n\t\t\tif(!MiniAdpter.isZiYu &&MiniAdpter.isPosMsgYu && type !=/*laya.net.Loader.BUFFER*/\"arraybuffer\"){\r\n\t\t\t\t/*__JS__ */wx.postMessage({url:url,data:tempData,isLoad:\"filedata\"});\r\n\t\t\t}\r\n\t\t\tthisLoader.onLoaded(tempData);\r\n\t\t\t}else if (errorCode==1){\r\n\t\t\tMiniAdpter.EnvConfig.load.call(thisLoader,url,type,cache,group,ignoreCache);\r\n\t\t}\r\n\t}\r\n\r\n\t__static(MiniLoader,\r\n\t['_fileTypeArr',function(){return this._fileTypeArr=['png','jpg','bmp','jpeg','gif'];}\r\n\t]);\r\n\treturn MiniLoader;\r\n})(EventDispatcher)\r\n\r\n\r\n/**@private **/\r\n//class laya.wx.mini.MiniSound extends laya.events.EventDispatcher\r\nvar MiniSound=(function(_super){\r\n\tfunction MiniSound(){\r\n\t\t/**@private **/\r\n\t\tthis._sound=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*声音URL\r\n\t\t*/\r\n\t\tthis.url=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*是否已加载完成\r\n\t\t*/\r\n\t\tthis.loaded=false;\r\n\t\t/**@private **/\r\n\t\tthis.readyUrl=null;\r\n\t\tMiniSound.__super.call(this);\r\n\t}\r\n\r\n\t__class(MiniSound,'laya.wx.mini.MiniSound',_super);\r\n\tvar __proto=MiniSound.prototype;\r\n\t/**\r\n\t*@private\r\n\t*加载声音。\r\n\t*@param url 地址。\r\n\t*\r\n\t*/\r\n\t__proto.load=function(url){\r\n\t\turl=URL.formatURL(url);\r\n\t\tthis.url=url;\r\n\t\tthis.readyUrl=url;\r\n\t\tif (MiniSound._audioCache[this.readyUrl]){\r\n\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif(MiniAdpter.autoCacheFile&&MiniFileMgr.getFileInfo(url)){\r\n\t\t\tthis.onDownLoadCallBack(url,0);\r\n\t\t\t}else{\r\n\t\t\tif(!MiniAdpter.autoCacheFile){\r\n\t\t\t\tthis.onDownLoadCallBack(url,0);\r\n\t\t\t\t}else{\r\n\t\t\t\tMiniFileMgr.downOtherFiles(url,Handler.create(this,this.onDownLoadCallBack,[url]),url);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private **/\r\n\t__proto.onDownLoadCallBack=function(sourceUrl,errorCode){\r\n\t\tif (!errorCode){\r\n\t\t\tvar fileNativeUrl;\r\n\t\t\tif(MiniAdpter.autoCacheFile){\r\n\t\t\t\tvar fileObj=MiniFileMgr.getFileInfo(sourceUrl);\r\n\t\t\t\tvar fileMd5Name=fileObj.md5;\r\n\t\t\t\tfileNativeUrl=MiniFileMgr.getFileNativePath(fileMd5Name);\r\n\t\t\t\tthis._sound=MiniSound._createSound();\r\n\t\t\t\tthis._sound.src=this.url=fileNativeUrl;\r\n\t\t\t\t}else{\r\n\t\t\t\tthis._sound=MiniSound._createSound();\r\n\t\t\t\tthis._sound.src=sourceUrl;\r\n\t\t\t}\r\n\t\t\tthis._sound.onCanplay(MiniSound.bindToThis(this.onCanPlay,this));\r\n\t\t\tthis._sound.onError(MiniSound.bindToThis(this.onError,this));\r\n\t\t\t}else{\r\n\t\t\tthis.event(/*laya.events.Event.ERROR*/\"error\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private **/\r\n\t__proto.onError=function(error){\r\n\t\ttry{\r\n\t\t\tconsole.log(\"-----1---------------minisound-----id:\"+MiniSound._id);\r\n\t\t\tconsole.log(error);\r\n\t\t}\r\n\t\tcatch(error){\r\n\t\t\tconsole.log(\"-----2---------------minisound-----id:\"+MiniSound._id);\r\n\t\t\tconsole.log(error);\r\n\t\t}\r\n\t\tthis.event(/*laya.events.Event.ERROR*/\"error\");\r\n\t\tthis._sound.offError(null);\r\n\t}\r\n\r\n\t/**@private **/\r\n\t__proto.onCanPlay=function(){\r\n\t\tthis.loaded=true;\r\n\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\tMiniSound._audioCache[this.readyUrl]=this;\r\n\t\tthis._sound.offCanplay(null);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*播放声音。\r\n\t*@param startTime 开始时间,单位秒\r\n\t*@param loops 循环次数,0表示一直循环\r\n\t*@return 声道 SoundChannel 对象。\r\n\t*\r\n\t*/\r\n\t__proto.play=function(startTime,loops){\r\n\t\t(startTime===void 0)&& (startTime=0);\r\n\t\t(loops===void 0)&& (loops=0);\r\n\t\tvar tSound;\r\n\t\tif (this.url==SoundManager._tMusic){\r\n\t\t\tif (!MiniSound._musicAudio)MiniSound._musicAudio=MiniSound._createSound();\r\n\t\t\ttSound=MiniSound._musicAudio;\r\n\t\t\t}else {\r\n\t\t\tif(MiniSound._audioCache[this.readyUrl]){\r\n\t\t\t\ttSound=MiniSound._audioCache[this.readyUrl]._sound;\r\n\t\t\t\t}else{\r\n\t\t\t\ttSound=MiniSound._createSound();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(MiniAdpter.autoCacheFile&&MiniFileMgr.getFileInfo(this.url)){\r\n\t\t\tvar fileNativeUrl;\r\n\t\t\tvar fileObj=MiniFileMgr.getFileInfo(this.url);\r\n\t\t\tvar fileMd5Name=fileObj.md5;\r\n\t\t\ttSound.src=this.url=MiniFileMgr.getFileNativePath(fileMd5Name);\r\n\t\t\t}else{\r\n\t\t\ttSound.src=this.url;\r\n\t\t};\r\n\t\tvar channel=new MiniSoundChannel(tSound,this);\r\n\t\tchannel.url=this.url;\r\n\t\tchannel.loops=loops;\r\n\t\tchannel.loop=(loops===0 ? true :false);\r\n\t\tchannel.startTime=startTime;\r\n\t\tchannel.play();\r\n\t\tSoundManager.addChannel(channel);\r\n\t\treturn channel;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*释放声音资源。\r\n\t*\r\n\t*/\r\n\t__proto.dispose=function(){\r\n\t\tvar ad=MiniSound._audioCache[this.readyUrl];\r\n\t\tif (ad){\r\n\t\t\tad.src=\"\";\r\n\t\t\tif(ad._sound){\r\n\t\t\t\tad._sound.destroy();\r\n\t\t\t\tad._sound=null;\r\n\t\t\t\tad=null;\r\n\t\t\t}\r\n\t\t\tdelete MiniSound._audioCache[this.readyUrl];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取总时间。\r\n\t*/\r\n\t__getset(0,__proto,'duration',function(){\r\n\t\treturn this._sound.duration;\r\n\t});\r\n\r\n\tMiniSound._createSound=function(){\r\n\t\tMiniSound._id++;\r\n\t\treturn MiniAdpter.window.wx.createInnerAudioContext();\r\n\t}\r\n\r\n\tMiniSound.bindToThis=function(fun,scope){\r\n\t\tvar rst=fun;\r\n\t\t/*__JS__ */rst=fun.bind(scope);;\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tMiniSound._musicAudio=null;\r\n\tMiniSound._id=0;\r\n\tMiniSound._audioCache={};\r\n\treturn MiniSound;\r\n})(EventDispatcher)\r\n\r\n\r\n/**@private **/\r\n//class laya.wx.mini.MiniSoundChannel extends laya.media.SoundChannel\r\nvar MiniSoundChannel=(function(_super){\r\n\tfunction MiniSoundChannel(audio,miniSound){\r\n\t\t/**@private **/\r\n\t\tthis._audio=null;\r\n\t\t/**@private **/\r\n\t\tthis._onEnd=null;\r\n\t\t/**@private **/\r\n\t\tthis._miniSound=null;\r\n\t\tMiniSoundChannel.__super.call(this);\r\n\t\tthis._audio=audio;\r\n\t\tthis._miniSound=miniSound;\r\n\t\tthis._onEnd=MiniSoundChannel.bindToThis(this.__onEnd,this);\r\n\t\taudio.onEnded(this._onEnd);\r\n\t}\r\n\r\n\t__class(MiniSoundChannel,'laya.wx.mini.MiniSoundChannel',_super);\r\n\tvar __proto=MiniSoundChannel.prototype;\r\n\t/**@private **/\r\n\t__proto.__onEnd=function(){\r\n\t\tif (this.loops==1){\r\n\t\t\tif (this.completeHandler){\r\n\t\t\t\tLaya.timer.once(10,this,this.__runComplete,[this.completeHandler],false);\r\n\t\t\t\tthis.completeHandler=null;\r\n\t\t\t}\r\n\t\t\tthis.stop();\r\n\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this.loops > 0){\r\n\t\t\tthis.loops--;\r\n\t\t}\r\n\t\tthis.startTime=0;\r\n\t\tthis.play();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*播放\r\n\t*/\r\n\t__proto.play=function(){\r\n\t\tthis.isStopped=false;\r\n\t\tSoundManager.addChannel(this);\r\n\t\tthis._audio.play();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*停止播放\r\n\t*\r\n\t*/\r\n\t__proto.stop=function(){\r\n\t\tthis.isStopped=true;\r\n\t\tSoundManager.removeChannel(this);\r\n\t\tthis.completeHandler=null;\r\n\t\tif (!this._audio)\r\n\t\t\treturn;\r\n\t\tthis._audio.pause();\r\n\t\tthis._audio.offEnded(null);\r\n\t\tthis._audio=null;\r\n\t\tthis._miniSound=null;\r\n\t\tthis._onEnd=null;\r\n\t}\r\n\r\n\t/**@private **/\r\n\t__proto.pause=function(){\r\n\t\tthis.isStopped=true;\r\n\t\tthis._audio.pause();\r\n\t}\r\n\r\n\t/**@private **/\r\n\t__proto.resume=function(){\r\n\t\tif (!this._audio)\r\n\t\t\treturn;\r\n\t\tthis.isStopped=false;\r\n\t\tSoundManager.addChannel(this);\r\n\t\tthis._audio.play();\r\n\t}\r\n\r\n\t/**@private **/\r\n\t/**\r\n\t*@private\r\n\t*自动播放\r\n\t*@param value\r\n\t*/\r\n\t__getset(0,__proto,'autoplay',function(){\r\n\t\treturn this._audio.autoplay;\r\n\t\t},function(value){\r\n\t\tthis._audio.autoplay=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*当前播放到的位置\r\n\t*@return\r\n\t*\r\n\t*/\r\n\t__getset(0,__proto,'position',function(){\r\n\t\tif (!this._audio)\r\n\t\t\treturn 0;\r\n\t\treturn this._audio.currentTime;\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取总时间。\r\n\t*/\r\n\t__getset(0,__proto,'duration',function(){\r\n\t\tif (!this._audio)\r\n\t\t\treturn 0;\r\n\t\treturn this._audio.duration;\r\n\t});\r\n\r\n\t/**@private **/\r\n\t/**@private **/\r\n\t__getset(0,__proto,'loop',function(){\r\n\t\treturn this._audio.loop;\r\n\t\t},function(value){\r\n\t\tthis._audio.loop=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*设置音量\r\n\t*@param v\r\n\t*\r\n\t*/\r\n\t/**\r\n\t*@private\r\n\t*获取音量\r\n\t*@return\r\n\t*/\r\n\t__getset(0,__proto,'volume',function(){\r\n\t\tif (!this._audio)return 1;\r\n\t\treturn this._audio.volume;\r\n\t\t},function(v){\r\n\t\tif (!this._audio)return;\r\n\t\tthis._audio.volume=v;\r\n\t});\r\n\r\n\tMiniSoundChannel.bindToThis=function(fun,scope){\r\n\t\tvar rst=fun;\r\n\t\t/*__JS__ */rst=fun.bind(scope);;\r\n\t\treturn rst;\r\n\t}\r\n\r\n\treturn MiniSoundChannel;\r\n})(SoundChannel)\r\n\r\n\r\n\r\n})(window,document,Laya);\r\n\r\nif (typeof define === 'function' && define.amd){\r\n\tdefine('laya.core', ['require', \"exports\"], function(require, exports) {\r\n        'use strict';\r\n        Object.defineProperty(exports, '__esModule', { value: true });\r\n        for (var i in Laya) {\r\n\t\t\tvar o = Laya[i];\r\n            o && o.__isclass && (exports[i] = o);\r\n        }\r\n    });\r\n}","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n  lookup[i] = code[i]\n  revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n  var len = b64.length\n\n  if (len % 4 > 0) {\n    throw new Error('Invalid string. Length must be a multiple of 4')\n  }\n\n  // Trim off extra bytes after placeholder bytes are found\n  // See: https://github.com/beatgammit/base64-js/issues/42\n  var validLen = b64.indexOf('=')\n  if (validLen === -1) validLen = len\n\n  var placeHoldersLen = validLen === len\n    ? 0\n    : 4 - (validLen % 4)\n\n  return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n  return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n  var tmp\n  var lens = getLens(b64)\n  var validLen = lens[0]\n  var placeHoldersLen = lens[1]\n\n  var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n  var curByte = 0\n\n  // if there are placeholders, only get up to the last complete 4 chars\n  var len = placeHoldersLen > 0\n    ? validLen - 4\n    : validLen\n\n  for (var i = 0; i < len; i += 4) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 18) |\n      (revLookup[b64.charCodeAt(i + 1)] << 12) |\n      (revLookup[b64.charCodeAt(i + 2)] << 6) |\n      revLookup[b64.charCodeAt(i + 3)]\n    arr[curByte++] = (tmp >> 16) & 0xFF\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 2) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 2) |\n      (revLookup[b64.charCodeAt(i + 1)] >> 4)\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  if (placeHoldersLen === 1) {\n    tmp =\n      (revLookup[b64.charCodeAt(i)] << 10) |\n      (revLookup[b64.charCodeAt(i + 1)] << 4) |\n      (revLookup[b64.charCodeAt(i + 2)] >> 2)\n    arr[curByte++] = (tmp >> 8) & 0xFF\n    arr[curByte++] = tmp & 0xFF\n  }\n\n  return arr\n}\n\nfunction tripletToBase64 (num) {\n  return lookup[num >> 18 & 0x3F] +\n    lookup[num >> 12 & 0x3F] +\n    lookup[num >> 6 & 0x3F] +\n    lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n  var tmp\n  var output = []\n  for (var i = start; i < end; i += 3) {\n    tmp =\n      ((uint8[i] << 16) & 0xFF0000) +\n      ((uint8[i + 1] << 8) & 0xFF00) +\n      (uint8[i + 2] & 0xFF)\n    output.push(tripletToBase64(tmp))\n  }\n  return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n  var tmp\n  var len = uint8.length\n  var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n  var parts = []\n  var maxChunkLength = 16383 // must be multiple of 3\n\n  // go through the array every three bytes, we'll deal with trailing stuff later\n  for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n    parts.push(encodeChunk(\n      uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n    ))\n  }\n\n  // pad the end with zeros, but make sure to not forget the extra bytes\n  if (extraBytes === 1) {\n    tmp = uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 2] +\n      lookup[(tmp << 4) & 0x3F] +\n      '=='\n    )\n  } else if (extraBytes === 2) {\n    tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n    parts.push(\n      lookup[tmp >> 10] +\n      lookup[(tmp >> 4) & 0x3F] +\n      lookup[(tmp << 2) & 0x3F] +\n      '='\n    )\n  }\n\n  return parts.join('')\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n  var e, m\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var nBits = -7\n  var i = isLE ? (nBytes - 1) : 0\n  var d = isLE ? -1 : 1\n  var s = buffer[offset + i]\n\n  i += d\n\n  e = s & ((1 << (-nBits)) - 1)\n  s >>= (-nBits)\n  nBits += eLen\n  for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  m = e & ((1 << (-nBits)) - 1)\n  e >>= (-nBits)\n  nBits += mLen\n  for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n  if (e === 0) {\n    e = 1 - eBias\n  } else if (e === eMax) {\n    return m ? NaN : ((s ? -1 : 1) * Infinity)\n  } else {\n    m = m + Math.pow(2, mLen)\n    e = e - eBias\n  }\n  return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n  var e, m, c\n  var eLen = (nBytes * 8) - mLen - 1\n  var eMax = (1 << eLen) - 1\n  var eBias = eMax >> 1\n  var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n  var i = isLE ? 0 : (nBytes - 1)\n  var d = isLE ? 1 : -1\n  var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n  value = Math.abs(value)\n\n  if (isNaN(value) || value === Infinity) {\n    m = isNaN(value) ? 1 : 0\n    e = eMax\n  } else {\n    e = Math.floor(Math.log(value) / Math.LN2)\n    if (value * (c = Math.pow(2, -e)) < 1) {\n      e--\n      c *= 2\n    }\n    if (e + eBias >= 1) {\n      value += rt / c\n    } else {\n      value += rt * Math.pow(2, 1 - eBias)\n    }\n    if (value * c >= 2) {\n      e++\n      c /= 2\n    }\n\n    if (e + eBias >= eMax) {\n      m = 0\n      e = eMax\n    } else if (e + eBias >= 1) {\n      m = ((value * c) - 1) * Math.pow(2, mLen)\n      e = e + eBias\n    } else {\n      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n      e = 0\n    }\n  }\n\n  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n  e = (e << mLen) | m\n  eLen += mLen\n  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n  buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n *   - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n *     See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n *   - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n *   - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n *     incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n  ? global.TYPED_ARRAY_SUPPORT\n  : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n  try {\n    var arr = new Uint8Array(1)\n    arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n    return arr.foo() === 42 && // typed array instances can be augmented\n        typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n        arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n  } catch (e) {\n    return false\n  }\n}\n\nfunction kMaxLength () {\n  return Buffer.TYPED_ARRAY_SUPPORT\n    ? 0x7fffffff\n    : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n  if (kMaxLength() < length) {\n    throw new RangeError('Invalid typed array length')\n  }\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = new Uint8Array(length)\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    if (that === null) {\n      that = new Buffer(length)\n    }\n    that.length = length\n  }\n\n  return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n  if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n    return new Buffer(arg, encodingOrOffset, length)\n  }\n\n  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new Error(\n        'If encoding is specified then the first argument must be a string'\n      )\n    }\n    return allocUnsafe(this, arg)\n  }\n  return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n  arr.__proto__ = Buffer.prototype\n  return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n  if (typeof value === 'number') {\n    throw new TypeError('\"value\" argument must not be a number')\n  }\n\n  if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n    return fromArrayBuffer(that, value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'string') {\n    return fromString(that, value, encodingOrOffset)\n  }\n\n  return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n  return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n  Buffer.prototype.__proto__ = Uint8Array.prototype\n  Buffer.__proto__ = Uint8Array\n  if (typeof Symbol !== 'undefined' && Symbol.species &&\n      Buffer[Symbol.species] === Buffer) {\n    // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n    Object.defineProperty(Buffer, Symbol.species, {\n      value: null,\n      configurable: true\n    })\n  }\n}\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be a number')\n  } else if (size < 0) {\n    throw new RangeError('\"size\" argument must not be negative')\n  }\n}\n\nfunction alloc (that, size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(that, size)\n  }\n  if (fill !== undefined) {\n    // Only pay attention to encoding if it's a string. This\n    // prevents accidentally sending in a number that would\n    // be interpretted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(that, size).fill(fill, encoding)\n      : createBuffer(that, size).fill(fill)\n  }\n  return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n  return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n  assertSize(size)\n  that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) {\n    for (var i = 0; i < size; ++i) {\n      that[i] = 0\n    }\n  }\n  return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n  return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n  return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('\"encoding\" must be a valid string encoding')\n  }\n\n  var length = byteLength(string, encoding) | 0\n  that = createBuffer(that, length)\n\n  var actual = that.write(string, encoding)\n\n  if (actual !== length) {\n    // Writing a hex string, for example, that contains invalid characters will\n    // cause everything after the first invalid character to be ignored. (e.g.\n    // 'abxxcd' will be treated as 'ab')\n    that = that.slice(0, actual)\n  }\n\n  return that\n}\n\nfunction fromArrayLike (that, array) {\n  var length = array.length < 0 ? 0 : checked(array.length) | 0\n  that = createBuffer(that, length)\n  for (var i = 0; i < length; i += 1) {\n    that[i] = array[i] & 255\n  }\n  return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n  array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\\'offset\\' is out of bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\\'length\\' is out of bounds')\n  }\n\n  if (byteOffset === undefined && length === undefined) {\n    array = new Uint8Array(array)\n  } else if (length === undefined) {\n    array = new Uint8Array(array, byteOffset)\n  } else {\n    array = new Uint8Array(array, byteOffset, length)\n  }\n\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    // Return an augmented `Uint8Array` instance, for best performance\n    that = array\n    that.__proto__ = Buffer.prototype\n  } else {\n    // Fallback: Return an object instance of the Buffer class\n    that = fromArrayLike(that, array)\n  }\n  return that\n}\n\nfunction fromObject (that, obj) {\n  if (Buffer.isBuffer(obj)) {\n    var len = checked(obj.length) | 0\n    that = createBuffer(that, len)\n\n    if (that.length === 0) {\n      return that\n    }\n\n    obj.copy(that, 0, 0, len)\n    return that\n  }\n\n  if (obj) {\n    if ((typeof ArrayBuffer !== 'undefined' &&\n        obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n      if (typeof obj.length !== 'number' || isnan(obj.length)) {\n        return createBuffer(that, 0)\n      }\n      return fromArrayLike(that, obj)\n    }\n\n    if (obj.type === 'Buffer' && isArray(obj.data)) {\n      return fromArrayLike(that, obj.data)\n    }\n  }\n\n  throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n  // Note: cannot use `length < kMaxLength()` here because that fails when\n  // length is NaN (which is otherwise coerced to zero.)\n  if (length >= kMaxLength()) {\n    throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n                         'size: 0x' + kMaxLength().toString(16) + ' bytes')\n  }\n  return length | 0\n}\n\nfunction SlowBuffer (length) {\n  if (+length != length) { // eslint-disable-line eqeqeq\n    length = 0\n  }\n  return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n  return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError('Arguments must be Buffers')\n  }\n\n  if (a === b) return 0\n\n  var x = a.length\n  var y = b.length\n\n  for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n    if (a[i] !== b[i]) {\n      x = a[i]\n      y = b[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n  switch (String(encoding).toLowerCase()) {\n    case 'hex':\n    case 'utf8':\n    case 'utf-8':\n    case 'ascii':\n    case 'latin1':\n    case 'binary':\n    case 'base64':\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return true\n    default:\n      return false\n  }\n}\n\nBuffer.concat = function concat (list, length) {\n  if (!isArray(list)) {\n    throw new TypeError('\"list\" argument must be an Array of Buffers')\n  }\n\n  if (list.length === 0) {\n    return Buffer.alloc(0)\n  }\n\n  var i\n  if (length === undefined) {\n    length = 0\n    for (i = 0; i < list.length; ++i) {\n      length += list[i].length\n    }\n  }\n\n  var buffer = Buffer.allocUnsafe(length)\n  var pos = 0\n  for (i = 0; i < list.length; ++i) {\n    var buf = list[i]\n    if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    }\n    buf.copy(buffer, pos)\n    pos += buf.length\n  }\n  return buffer\n}\n\nfunction byteLength (string, encoding) {\n  if (Buffer.isBuffer(string)) {\n    return string.length\n  }\n  if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n      (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    string = '' + string\n  }\n\n  var len = string.length\n  if (len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'ascii':\n      case 'latin1':\n      case 'binary':\n        return len\n      case 'utf8':\n      case 'utf-8':\n      case undefined:\n        return utf8ToBytes(string).length\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return len * 2\n      case 'hex':\n        return len >>> 1\n      case 'base64':\n        return base64ToBytes(string).length\n      default:\n        if (loweredCase) return utf8ToBytes(string).length // assume utf8\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  var loweredCase = false\n\n  // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n  // property of a typed array.\n\n  // This behaves neither like String nor Uint8Array in that we set start/end\n  // to their upper/lower bounds if the value passed is out of range.\n  // undefined is handled specially as per ECMA-262 6th Edition,\n  // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n  if (start === undefined || start < 0) {\n    start = 0\n  }\n  // Return early if start > this.length. Done here to prevent potential uint32\n  // coercion fail below.\n  if (start > this.length) {\n    return ''\n  }\n\n  if (end === undefined || end > this.length) {\n    end = this.length\n  }\n\n  if (end <= 0) {\n    return ''\n  }\n\n  // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n  end >>>= 0\n  start >>>= 0\n\n  if (end <= start) {\n    return ''\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  while (true) {\n    switch (encoding) {\n      case 'hex':\n        return hexSlice(this, start, end)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Slice(this, start, end)\n\n      case 'ascii':\n        return asciiSlice(this, start, end)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Slice(this, start, end)\n\n      case 'base64':\n        return base64Slice(this, start, end)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return utf16leSlice(this, start, end)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = (encoding + '').toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  var i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  var len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (var i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  var len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (var i = 0; i < len; i += 4) {\n    swap(this, i, i + 3)\n    swap(this, i + 1, i + 2)\n  }\n  return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n  var len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (var i = 0; i < len; i += 8) {\n    swap(this, i, i + 7)\n    swap(this, i + 1, i + 6)\n    swap(this, i + 2, i + 5)\n    swap(this, i + 3, i + 4)\n  }\n  return this\n}\n\nBuffer.prototype.toString = function toString () {\n  var length = this.length | 0\n  if (length === 0) return ''\n  if (arguments.length === 0) return utf8Slice(this, 0, length)\n  return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n  if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n  if (this === b) return true\n  return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n  var str = ''\n  var max = exports.INSPECT_MAX_BYTES\n  if (this.length > 0) {\n    str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n    if (this.length > max) str += ' ... '\n  }\n  return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError('Argument must be a Buffer')\n  }\n\n  if (start === undefined) {\n    start = 0\n  }\n  if (end === undefined) {\n    end = target ? target.length : 0\n  }\n  if (thisStart === undefined) {\n    thisStart = 0\n  }\n  if (thisEnd === undefined) {\n    thisEnd = this.length\n  }\n\n  if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n    throw new RangeError('out of range index')\n  }\n\n  if (thisStart >= thisEnd && start >= end) {\n    return 0\n  }\n  if (thisStart >= thisEnd) {\n    return -1\n  }\n  if (start >= end) {\n    return 1\n  }\n\n  start >>>= 0\n  end >>>= 0\n  thisStart >>>= 0\n  thisEnd >>>= 0\n\n  if (this === target) return 0\n\n  var x = thisEnd - thisStart\n  var y = end - start\n  var len = Math.min(x, y)\n\n  var thisCopy = this.slice(thisStart, thisEnd)\n  var targetCopy = target.slice(start, end)\n\n  for (var i = 0; i < len; ++i) {\n    if (thisCopy[i] !== targetCopy[i]) {\n      x = thisCopy[i]\n      y = targetCopy[i]\n      break\n    }\n  }\n\n  if (x < y) return -1\n  if (y < x) return 1\n  return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n  // Empty buffer means no match\n  if (buffer.length === 0) return -1\n\n  // Normalize byteOffset\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset > 0x7fffffff) {\n    byteOffset = 0x7fffffff\n  } else if (byteOffset < -0x80000000) {\n    byteOffset = -0x80000000\n  }\n  byteOffset = +byteOffset  // Coerce to Number.\n  if (isNaN(byteOffset)) {\n    // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n    byteOffset = dir ? 0 : (buffer.length - 1)\n  }\n\n  // Normalize byteOffset: negative offsets start from the end of the buffer\n  if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n  if (byteOffset >= buffer.length) {\n    if (dir) return -1\n    else byteOffset = buffer.length - 1\n  } else if (byteOffset < 0) {\n    if (dir) byteOffset = 0\n    else return -1\n  }\n\n  // Normalize val\n  if (typeof val === 'string') {\n    val = Buffer.from(val, encoding)\n  }\n\n  // Finally, search either indexOf (if dir is true) or lastIndexOf\n  if (Buffer.isBuffer(val)) {\n    // Special case: looking for empty string/buffer always fails\n    if (val.length === 0) {\n      return -1\n    }\n    return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n  } else if (typeof val === 'number') {\n    val = val & 0xFF // Search for a byte value [0-255]\n    if (Buffer.TYPED_ARRAY_SUPPORT &&\n        typeof Uint8Array.prototype.indexOf === 'function') {\n      if (dir) {\n        return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n      } else {\n        return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n      }\n    }\n    return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n  }\n\n  throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n  var indexSize = 1\n  var arrLength = arr.length\n  var valLength = val.length\n\n  if (encoding !== undefined) {\n    encoding = String(encoding).toLowerCase()\n    if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n        encoding === 'utf16le' || encoding === 'utf-16le') {\n      if (arr.length < 2 || val.length < 2) {\n        return -1\n      }\n      indexSize = 2\n      arrLength /= 2\n      valLength /= 2\n      byteOffset /= 2\n    }\n  }\n\n  function read (buf, i) {\n    if (indexSize === 1) {\n      return buf[i]\n    } else {\n      return buf.readUInt16BE(i * indexSize)\n    }\n  }\n\n  var i\n  if (dir) {\n    var foundIndex = -1\n    for (i = byteOffset; i < arrLength; i++) {\n      if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n    for (i = byteOffset; i >= 0; i--) {\n      var found = true\n      for (var j = 0; j < valLength; j++) {\n        if (read(arr, i + j) !== read(val, j)) {\n          found = false\n          break\n        }\n      }\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n  return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n  return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n  offset = Number(offset) || 0\n  var remaining = buf.length - offset\n  if (!length) {\n    length = remaining\n  } else {\n    length = Number(length)\n    if (length > remaining) {\n      length = remaining\n    }\n  }\n\n  // must be an even number of digits\n  var strLen = string.length\n  if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  for (var i = 0; i < length; ++i) {\n    var parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (isNaN(parsed)) return i\n    buf[offset + i] = parsed\n  }\n  return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n  return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n  return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n  return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n  return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n  return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n  // Buffer#write(string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n    length = this.length\n    offset = 0\n  // Buffer#write(string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    length = this.length\n    offset = 0\n  // Buffer#write(string, offset[, length][, encoding])\n  } else if (isFinite(offset)) {\n    offset = offset | 0\n    if (isFinite(length)) {\n      length = length | 0\n      if (encoding === undefined) encoding = 'utf8'\n    } else {\n      encoding = length\n      length = undefined\n    }\n  // legacy write(string, encoding, offset, length) - remove in v0.13\n  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  var remaining = this.length - offset\n  if (length === undefined || length > remaining) length = remaining\n\n  if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n    throw new RangeError('Attempt to write outside buffer bounds')\n  }\n\n  if (!encoding) encoding = 'utf8'\n\n  var loweredCase = false\n  for (;;) {\n    switch (encoding) {\n      case 'hex':\n        return hexWrite(this, string, offset, length)\n\n      case 'utf8':\n      case 'utf-8':\n        return utf8Write(this, string, offset, length)\n\n      case 'ascii':\n        return asciiWrite(this, string, offset, length)\n\n      case 'latin1':\n      case 'binary':\n        return latin1Write(this, string, offset, length)\n\n      case 'base64':\n        // Warning: maxLength not taken into account in base64Write\n        return base64Write(this, string, offset, length)\n\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return ucs2Write(this, string, offset, length)\n\n      default:\n        if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n  return {\n    type: 'Buffer',\n    data: Array.prototype.slice.call(this._arr || this, 0)\n  }\n}\n\nfunction base64Slice (buf, start, end) {\n  if (start === 0 && end === buf.length) {\n    return base64.fromByteArray(buf)\n  } else {\n    return base64.fromByteArray(buf.slice(start, end))\n  }\n}\n\nfunction utf8Slice (buf, start, end) {\n  end = Math.min(buf.length, end)\n  var res = []\n\n  var i = start\n  while (i < end) {\n    var firstByte = buf[i]\n    var codePoint = null\n    var bytesPerSequence = (firstByte > 0xEF) ? 4\n      : (firstByte > 0xDF) ? 3\n      : (firstByte > 0xBF) ? 2\n      : 1\n\n    if (i + bytesPerSequence <= end) {\n      var secondByte, thirdByte, fourthByte, tempCodePoint\n\n      switch (bytesPerSequence) {\n        case 1:\n          if (firstByte < 0x80) {\n            codePoint = firstByte\n          }\n          break\n        case 2:\n          secondByte = buf[i + 1]\n          if ((secondByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n            if (tempCodePoint > 0x7F) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 3:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n            if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n              codePoint = tempCodePoint\n            }\n          }\n          break\n        case 4:\n          secondByte = buf[i + 1]\n          thirdByte = buf[i + 2]\n          fourthByte = buf[i + 3]\n          if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n            tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n            if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n              codePoint = tempCodePoint\n            }\n          }\n      }\n    }\n\n    if (codePoint === null) {\n      // we did not generate a valid codePoint so insert a\n      // replacement char (U+FFFD) and advance only 1 byte\n      codePoint = 0xFFFD\n      bytesPerSequence = 1\n    } else if (codePoint > 0xFFFF) {\n      // encode to utf16 (surrogate pair dance)\n      codePoint -= 0x10000\n      res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n      codePoint = 0xDC00 | codePoint & 0x3FF\n    }\n\n    res.push(codePoint)\n    i += bytesPerSequence\n  }\n\n  return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  var len = codePoints.length\n  if (len <= MAX_ARGUMENTS_LENGTH) {\n    return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n  }\n\n  // Decode in chunks to avoid \"call stack size exceeded\".\n  var res = ''\n  var i = 0\n  while (i < len) {\n    res += String.fromCharCode.apply(\n      String,\n      codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n    )\n  }\n  return res\n}\n\nfunction asciiSlice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  var ret = ''\n  end = Math.min(buf.length, end)\n\n  for (var i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  var len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  var out = ''\n  for (var i = start; i < end; ++i) {\n    out += toHex(buf[i])\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  var bytes = buf.slice(start, end)\n  var res = ''\n  for (var i = 0; i < bytes.length; i += 2) {\n    res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n  }\n  return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n  var len = this.length\n  start = ~~start\n  end = end === undefined ? len : ~~end\n\n  if (start < 0) {\n    start += len\n    if (start < 0) start = 0\n  } else if (start > len) {\n    start = len\n  }\n\n  if (end < 0) {\n    end += len\n    if (end < 0) end = 0\n  } else if (end > len) {\n    end = len\n  }\n\n  if (end < start) end = start\n\n  var newBuf\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    newBuf = this.subarray(start, end)\n    newBuf.__proto__ = Buffer.prototype\n  } else {\n    var sliceLen = end - start\n    newBuf = new Buffer(sliceLen, undefined)\n    for (var i = 0; i < sliceLen; ++i) {\n      newBuf[i] = this[i + start]\n    }\n  }\n\n  return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n  if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n  if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    checkOffset(offset, byteLength, this.length)\n  }\n\n  var val = this[offset + --byteLength]\n  var mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return ((this[offset]) |\n      (this[offset + 1] << 8) |\n      (this[offset + 2] << 16)) +\n      (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] * 0x1000000) +\n    ((this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var val = this[offset]\n  var mul = 1\n  var i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n  var i = byteLength\n  var mul = 1\n  var val = this[offset + --i]\n  while (i > 0 && (mul *= 0x100)) {\n    val += this[offset + --i] * mul\n  }\n  mul *= 0x80\n\n  if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n  return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  if (!(this[offset] & 0x80)) return (this[offset])\n  return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  var val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset]) |\n    (this[offset + 1] << 8) |\n    (this[offset + 2] << 16) |\n    (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n\n  return (this[offset] << 24) |\n    (this[offset + 1] << 16) |\n    (this[offset + 2] << 8) |\n    (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 4, this.length)\n  return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n  if (!noAssert) checkOffset(offset, 8, this.length)\n  return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n  if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n  if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var mul = 1\n  var i = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  byteLength = byteLength | 0\n  if (!noAssert) {\n    var maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    this[offset + i] = (value / mul) & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n    buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n      (littleEndian ? i : 1 - i) * 8\n  }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n  if (value < 0) value = 0xffffffff + value + 1\n  for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n    buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n  }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset + 3] = (value >>> 24)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 1] = (value >>> 8)\n    this[offset] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = 0\n  var mul = 1\n  var sub = 0\n  this[offset] = value & 0xFF\n  while (++i < byteLength && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) {\n    var limit = Math.pow(2, 8 * byteLength - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  var i = byteLength - 1\n  var mul = 1\n  var sub = 0\n  this[offset + i] = value & 0xFF\n  while (--i >= 0 && (mul *= 0x100)) {\n    if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n      sub = 1\n    }\n    this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n  }\n\n  return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n  if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n  if (value < 0) value = 0xff + value + 1\n  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n  } else {\n    objectWriteUInt16(this, value, offset, true)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 8)\n    this[offset + 1] = (value & 0xff)\n  } else {\n    objectWriteUInt16(this, value, offset, false)\n  }\n  return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value & 0xff)\n    this[offset + 1] = (value >>> 8)\n    this[offset + 2] = (value >>> 16)\n    this[offset + 3] = (value >>> 24)\n  } else {\n    objectWriteUInt32(this, value, offset, true)\n  }\n  return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n  value = +value\n  offset = offset | 0\n  if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n  if (value < 0) value = 0xffffffff + value + 1\n  if (Buffer.TYPED_ARRAY_SUPPORT) {\n    this[offset] = (value >>> 24)\n    this[offset + 1] = (value >>> 16)\n    this[offset + 2] = (value >>> 8)\n    this[offset + 3] = (value & 0xff)\n  } else {\n    objectWriteUInt32(this, value, offset, false)\n  }\n  return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n  if (offset + ext > buf.length) throw new RangeError('Index out of range')\n  if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 23, 4)\n  return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n  return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n  if (!noAssert) {\n    checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n  }\n  ieee754.write(buf, value, offset, littleEndian, 52, 8)\n  return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n  return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n  if (!start) start = 0\n  if (!end && end !== 0) end = this.length\n  if (targetStart >= target.length) targetStart = target.length\n  if (!targetStart) targetStart = 0\n  if (end > 0 && end < start) end = start\n\n  // Copy 0 bytes; we're done\n  if (end === start) return 0\n  if (target.length === 0 || this.length === 0) return 0\n\n  // Fatal error conditions\n  if (targetStart < 0) {\n    throw new RangeError('targetStart out of bounds')\n  }\n  if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n  if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n  // Are we oob?\n  if (end > this.length) end = this.length\n  if (target.length - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  var len = end - start\n  var i\n\n  if (this === target && start < targetStart && targetStart < end) {\n    // descending copy from end\n    for (i = len - 1; i >= 0; --i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n    // ascending copy from start\n    for (i = 0; i < len; ++i) {\n      target[i + targetStart] = this[i + start]\n    }\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, start + len),\n      targetStart\n    )\n  }\n\n  return len\n}\n\n// Usage:\n//    buffer.fill(number[, offset[, end]])\n//    buffer.fill(buffer[, offset[, end]])\n//    buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n  // Handle string cases:\n  if (typeof val === 'string') {\n    if (typeof start === 'string') {\n      encoding = start\n      start = 0\n      end = this.length\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = this.length\n    }\n    if (val.length === 1) {\n      var code = val.charCodeAt(0)\n      if (code < 256) {\n        val = code\n      }\n    }\n    if (encoding !== undefined && typeof encoding !== 'string') {\n      throw new TypeError('encoding must be a string')\n    }\n    if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n      throw new TypeError('Unknown encoding: ' + encoding)\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  }\n\n  // Invalid ranges are not set to a default, so can range check early.\n  if (start < 0 || this.length < start || this.length < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (end <= start) {\n    return this\n  }\n\n  start = start >>> 0\n  end = end === undefined ? this.length : end >>> 0\n\n  if (!val) val = 0\n\n  var i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    var bytes = Buffer.isBuffer(val)\n      ? val\n      : utf8ToBytes(new Buffer(val, encoding).toString())\n    var len = bytes.length\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n  // Node converts strings with length < 2 to ''\n  if (str.length < 2) return ''\n  // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n  while (str.length % 4 !== 0) {\n    str = str + '='\n  }\n  return str\n}\n\nfunction stringtrim (str) {\n  if (str.trim) return str.trim()\n  return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n  if (n < 16) return '0' + n.toString(16)\n  return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n  units = units || Infinity\n  var codePoint\n  var length = string.length\n  var leadSurrogate = null\n  var bytes = []\n\n  for (var i = 0; i < length; ++i) {\n    codePoint = string.charCodeAt(i)\n\n    // is surrogate component\n    if (codePoint > 0xD7FF && codePoint < 0xE000) {\n      // last char was a lead\n      if (!leadSurrogate) {\n        // no lead yet\n        if (codePoint > 0xDBFF) {\n          // unexpected trail\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        } else if (i + 1 === length) {\n          // unpaired lead\n          if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n          continue\n        }\n\n        // valid lead\n        leadSurrogate = codePoint\n\n        continue\n      }\n\n      // 2 leads in a row\n      if (codePoint < 0xDC00) {\n        if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n        leadSurrogate = codePoint\n        continue\n      }\n\n      // valid surrogate pair\n      codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n    } else if (leadSurrogate) {\n      // valid bmp char, but last char was a lead\n      if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n    }\n\n    leadSurrogate = null\n\n    // encode utf8\n    if (codePoint < 0x80) {\n      if ((units -= 1) < 0) break\n      bytes.push(codePoint)\n    } else if (codePoint < 0x800) {\n      if ((units -= 2) < 0) break\n      bytes.push(\n        codePoint >> 0x6 | 0xC0,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x10000) {\n      if ((units -= 3) < 0) break\n      bytes.push(\n        codePoint >> 0xC | 0xE0,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else if (codePoint < 0x110000) {\n      if ((units -= 4) < 0) break\n      bytes.push(\n        codePoint >> 0x12 | 0xF0,\n        codePoint >> 0xC & 0x3F | 0x80,\n        codePoint >> 0x6 & 0x3F | 0x80,\n        codePoint & 0x3F | 0x80\n      )\n    } else {\n      throw new Error('Invalid code point')\n    }\n  }\n\n  return bytes\n}\n\nfunction asciiToBytes (str) {\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    // Node's code seems to be doing this and not & 0x7F..\n    byteArray.push(str.charCodeAt(i) & 0xFF)\n  }\n  return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n  var c, hi, lo\n  var byteArray = []\n  for (var i = 0; i < str.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    c = str.charCodeAt(i)\n    hi = c >> 8\n    lo = c % 256\n    byteArray.push(lo)\n    byteArray.push(hi)\n  }\n\n  return byteArray\n}\n\nfunction base64ToBytes (str) {\n  return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n  for (var i = 0; i < length; ++i) {\n    if ((i + offset >= dst.length) || (i >= src.length)) break\n    dst[i + offset] = src[i]\n  }\n  return i\n}\n\nfunction isnan (val) {\n  return val !== val // eslint-disable-line no-self-compare\n}\n","\r\n(function(window,document,Laya){\r\n\tvar __un=Laya.un,__uns=Laya.uns,__static=Laya.static,__class=Laya.class,__getset=Laya.getset,__newvec=Laya.__newvec;\r\n\r\n\tvar Arith=laya.maths.Arith,Bezier=laya.maths.Bezier,Bitmap=laya.resource.Bitmap,Browser=laya.utils.Browser;\r\n\tvar Byte=laya.utils.Byte,Color=laya.utils.Color,ColorFilter=laya.filters.ColorFilter,Config=Laya.Config,Context=laya.resource.Context;\r\n\tvar Event=laya.events.Event,Filter=laya.filters.Filter,Graphics=laya.display.Graphics,HTMLCanvas=laya.resource.HTMLCanvas;\r\n\tvar HTMLChar=laya.utils.HTMLChar,HTMLImage=laya.resource.HTMLImage,HTMLSubImage=laya.resource.HTMLSubImage;\r\n\tvar Handler=laya.utils.Handler,Loader=laya.net.Loader,Matrix=laya.maths.Matrix,Point=laya.maths.Point,Rectangle=laya.maths.Rectangle;\r\n\tvar Render=laya.renders.Render,RenderContext=laya.renders.RenderContext,RenderSprite=laya.renders.RenderSprite;\r\n\tvar Resource=laya.resource.Resource,ResourceManager=laya.resource.ResourceManager,RunDriver=laya.utils.RunDriver;\r\n\tvar Sprite=laya.display.Sprite,Stage=laya.display.Stage,Stat=laya.utils.Stat,StringKey=laya.utils.StringKey;\r\n\tvar Style=laya.display.css.Style,System=laya.system.System,Text=laya.display.Text,Texture=laya.resource.Texture;\r\n\tvar TransformInfo=laya.display.css.TransformInfo,URL=laya.net.URL,Utils=laya.utils.Utils,VectorGraphManager=laya.utils.VectorGraphManager;\r\n\tvar WordText=laya.utils.WordText;\r\nLaya.interface('laya.webgl.shapes.IShape');\r\nLaya.interface('laya.webgl.submit.ISubmit');\r\nLaya.interface('laya.webgl.text.ICharSegment');\r\nLaya.interface('laya.webgl.canvas.save.ISaveData');\r\nLaya.interface('laya.webgl.resource.IMergeAtlasBitmap');\r\nLaya.interface('laya.filters.IFilterActionGL','laya.filters.IFilterAction');\r\n//class laya.filters.webgl.FilterActionGL\r\nvar FilterActionGL=(function(){\r\n\tfunction FilterActionGL(){}\r\n\t__class(FilterActionGL,'laya.filters.webgl.FilterActionGL');\r\n\tvar __proto=FilterActionGL.prototype;\r\n\tLaya.imps(__proto,{\"laya.filters.IFilterActionGL\":true})\r\n\t__proto.setValue=function(shader){}\r\n\t__proto.setValueMix=function(shader){}\r\n\t__proto.apply3d=function(scope,sprite,context,x,y){return null;}\r\n\t__proto.apply=function(srcCanvas){return null;}\r\n\t__getset(0,__proto,'typeMix',function(){\r\n\t\treturn 0;\r\n\t});\r\n\r\n\treturn FilterActionGL;\r\n})()\r\n\r\n\r\n//class laya.webgl.shader.ShaderValue\r\nvar ShaderValue=(function(){\r\n\tfunction ShaderValue(){}\r\n\t__class(ShaderValue,'laya.webgl.shader.ShaderValue');\r\n\treturn ShaderValue;\r\n})()\r\n\r\n\r\n//class laya.webgl.atlas.AtlasGrid\r\nvar AtlasGrid=(function(){\r\n\tvar TexRowInfo,TexMergeTexSize;\r\n\tfunction AtlasGrid(width,height,atlasID){\r\n\t\tthis._atlasID=0;\r\n\t\tthis._width=0;\r\n\t\tthis._height=0;\r\n\t\tthis._texCount=0;\r\n\t\tthis._rowInfo=null;\r\n\t\tthis._cells=null;\r\n\t\tthis._failSize=new TexMergeTexSize();\r\n\t\t(width===void 0)&& (width=0);\r\n\t\t(height===void 0)&& (height=0);\r\n\t\t(atlasID===void 0)&& (atlasID=0);\r\n\t\tthis._cells=null;\r\n\t\tthis._rowInfo=null;\r\n\t\tthis._init(width,height);\r\n\t\tthis._atlasID=atlasID;\r\n\t}\r\n\r\n\t__class(AtlasGrid,'laya.webgl.atlas.AtlasGrid');\r\n\tvar __proto=AtlasGrid.prototype;\r\n\t//------------------------------------------------------------------------------\r\n\t__proto.getAltasID=function(){\r\n\t\treturn this._atlasID;\r\n\t}\r\n\r\n\t//------------------------------------------------------------------------------\r\n\t__proto.setAltasID=function(atlasID){\r\n\t\tif (atlasID >=0){\r\n\t\t\tthis._atlasID=atlasID;\r\n\t\t}\r\n\t}\r\n\r\n\t//------------------------------------------------------------------\r\n\t__proto.addTex=function(type,width,height){\r\n\t\tvar result=this._get(width,height);\r\n\t\tif (result.ret==false){\r\n\t\t\treturn result;\r\n\t\t}\r\n\t\tthis._fill(result.x,result.y,width,height,type);\r\n\t\tthis._texCount++;\r\n\t\treturn result;\r\n\t}\r\n\r\n\t//------------------------------------------------------------------------------\r\n\t__proto._release=function(){\r\n\t\tif (this._cells !=null){\r\n\t\t\tthis._cells.length=0;\r\n\t\t\tthis._cells=null;\r\n\t\t}\r\n\t\tif (this._rowInfo){\r\n\t\t\tthis._rowInfo.length=0;\r\n\t\t\tthis._rowInfo=null;\r\n\t\t}\r\n\t}\r\n\r\n\t//------------------------------------------------------------------------------\r\n\t__proto._init=function(width,height){\r\n\t\tthis._width=width;\r\n\t\tthis._height=height;\r\n\t\tthis._release();\r\n\t\tif (this._width==0)return false;\r\n\t\tthis._cells=new Uint8Array(this._width *this._height*3);\r\n\t\tthis._rowInfo=__newvec(this._height);\r\n\t\tfor (var i=0;i < this._height;i++){\r\n\t\t\tthis._rowInfo[i]=new TexRowInfo();\r\n\t\t}\r\n\t\tthis._clear();\r\n\t\treturn true;\r\n\t}\r\n\r\n\t//------------------------------------------------------------------\r\n\t__proto._get=function(width,height){\r\n\t\tvar pFillInfo=new MergeFillInfo();\r\n\t\tif (width >=this._failSize.width && height >=this._failSize.height){\r\n\t\t\treturn pFillInfo;\r\n\t\t};\r\n\t\tvar rx=-1;\r\n\t\tvar ry=-1;\r\n\t\tvar nWidth=this._width;\r\n\t\tvar nHeight=this._height;\r\n\t\tvar pCellBox=this._cells;\r\n\t\tfor (var y=0;y < nHeight;y++){\r\n\t\t\tif (this._rowInfo[y].spaceCount < width)continue ;\r\n\t\t\tfor (var x=0;x < nWidth;){\r\n\t\t\t\tvar tm=(y *nWidth+x)*3;\r\n\t\t\t\tif (pCellBox[tm] !=0 || pCellBox[tm+1] < width || pCellBox[tm+2] < height){\r\n\t\t\t\t\tx+=pCellBox[tm+1];\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\t}\r\n\t\t\t\trx=x;\r\n\t\t\t\try=y;\r\n\t\t\t\tfor (var xx=0;xx < width;xx++){\r\n\t\t\t\t\tif (pCellBox[3*xx+tm+2] < height){\r\n\t\t\t\t\t\trx=-1;\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (rx < 0){\r\n\t\t\t\t\tx+=pCellBox[tm+1];\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\t}\r\n\t\t\t\tpFillInfo.ret=true;\r\n\t\t\t\tpFillInfo.x=rx;\r\n\t\t\t\tpFillInfo.y=ry;\r\n\t\t\t\treturn pFillInfo;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn pFillInfo;\r\n\t}\r\n\r\n\t//------------------------------------------------------------------\r\n\t__proto._fill=function(x,y,w,h,type){\r\n\t\tvar nWidth=this._width;\r\n\t\tvar nHeghit=this._height;\r\n\t\tthis._check((x+w)<=nWidth && (y+h)<=nHeghit);\r\n\t\tfor (var yy=y;yy < (h+y);++yy){\r\n\t\t\tthis._check(this._rowInfo[yy].spaceCount >=w);\r\n\t\t\tthis._rowInfo[yy].spaceCount-=w;\r\n\t\t\tfor (var xx=0;xx < w;xx++){\r\n\t\t\t\tvar tm=(x+yy *nWidth+xx)*3;\r\n\t\t\t\tthis._check(this._cells[tm]==0);\r\n\t\t\t\tthis._cells[tm]=type;\r\n\t\t\t\tthis._cells[tm+1]=w;\r\n\t\t\t\tthis._cells[tm+2]=h;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (x > 0){\r\n\t\t\tfor (yy=0;yy < h;++yy){\r\n\t\t\t\tvar s=0;\r\n\t\t\t\tfor (xx=x-1;xx >=0;--xx,++s){\r\n\t\t\t\t\tif (this._cells[((y+yy)*nWidth+xx)*3] !=0)break ;\r\n\t\t\t\t}\r\n\t\t\t\tfor (xx=s;xx > 0;--xx){\r\n\t\t\t\t\tthis._cells[((y+yy)*nWidth+x-xx)*3+1]=xx;\r\n\t\t\t\t\tthis._check(xx > 0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (y > 0){\r\n\t\t\tfor (xx=x;xx < (x+w);++xx){\r\n\t\t\t\ts=0;\r\n\t\t\t\tfor (yy=y-1;yy >=0;--yy,s++){\r\n\t\t\t\t\tif (this._cells[(xx+yy *nWidth)*3] !=0)break ;\r\n\t\t\t\t}\r\n\t\t\t\tfor (yy=s;yy > 0;--yy){\r\n\t\t\t\t\tthis._cells[(xx+(y-yy)*nWidth)*3+2]=yy;\r\n\t\t\t\t\tthis._check(yy > 0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._check=function(ret){\r\n\t\tif (ret==false){\r\n\t\t\tconsole.log(\"xtexMerger 错误啦\");\r\n\t\t}\r\n\t}\r\n\r\n\t//------------------------------------------------------------------\r\n\t__proto._clear=function(){\r\n\t\tthis._texCount=0;\r\n\t\tfor (var y=0;y < this._height;y++){\r\n\t\t\tthis._rowInfo[y].spaceCount=this._width;\r\n\t\t}\r\n\t\tfor (var i=0;i < this._height;i++){\r\n\t\t\tfor (var j=0;j < this._width;j++){\r\n\t\t\t\tvar tm=(i *this._width+j)*3;\r\n\t\t\t\tthis._cells[tm]=0;\r\n\t\t\t\tthis._cells[tm+1]=this._width-j;\r\n\t\t\t\tthis._cells[tm+2]=this._width-i;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._failSize.width=this._width+1;\r\n\t\tthis._failSize.height=this._height+1;\r\n\t}\r\n\r\n\tAtlasGrid.__init$=function(){\r\n\t\t//------------------------------------------------------------------------------\r\n\t\t//class TexRowInfo\r\n\t\tTexRowInfo=(function(){\r\n\t\t\tfunction TexRowInfo(){\r\n\t\t\t\tthis.spaceCount=0;\r\n\t\t\t}\r\n\t\t\t__class(TexRowInfo,'');\r\n\t\t\treturn TexRowInfo;\r\n\t\t})()\r\n\t\t//------------------------------------------------------------------------------\r\n\t\t//class TexMergeTexSize\r\n\t\tTexMergeTexSize=(function(){\r\n\t\t\tfunction TexMergeTexSize(){\r\n\t\t\t\tthis.width=0;\r\n\t\t\t\tthis.height=0;\r\n\t\t\t}\r\n\t\t\t__class(TexMergeTexSize,'');\r\n\t\t\treturn TexMergeTexSize;\r\n\t\t})()\r\n\t}\r\n\r\n\treturn AtlasGrid;\r\n})()\r\n\r\n\r\n//class laya.webgl.atlas.AtlasResourceManager\r\nvar AtlasResourceManager=(function(){\r\n\tfunction AtlasResourceManager(width,height,gridSize,maxTexNum){\r\n\t\tthis._currentAtlasCount=0;\r\n\t\tthis._maxAtlaserCount=0;\r\n\t\tthis._width=0;\r\n\t\tthis._height=0;\r\n\t\tthis._gridSize=0;\r\n\t\tthis._gridNumX=0;\r\n\t\tthis._gridNumY=0;\r\n\t\tthis._init=false;\r\n\t\tthis._curAtlasIndex=0;\r\n\t\tthis._setAtlasParam=false;\r\n\t\tthis._atlaserArray=null;\r\n\t\tthis._needGC=false;\r\n\t\tthis._setAtlasParam=true;\r\n\t\tthis._width=width;\r\n\t\tthis._height=height;\r\n\t\tthis._gridSize=gridSize;\r\n\t\tthis._maxAtlaserCount=maxTexNum;\r\n\t\tthis._gridNumX=width / gridSize;\r\n\t\tthis._gridNumY=height / gridSize;\r\n\t\tthis._curAtlasIndex=0;\r\n\t\tthis._atlaserArray=[];\r\n\t}\r\n\r\n\t__class(AtlasResourceManager,'laya.webgl.atlas.AtlasResourceManager');\r\n\tvar __proto=AtlasResourceManager.prototype;\r\n\t__proto.setAtlasParam=function(width,height,gridSize,maxTexNum){\r\n\t\tif (this._setAtlasParam==true){\r\n\t\t\tAtlasResourceManager._sid_=0;\r\n\t\t\tthis._width=width;\r\n\t\t\tthis._height=height;\r\n\t\t\tthis._gridSize=gridSize;\r\n\t\t\tthis._maxAtlaserCount=maxTexNum;\r\n\t\t\tthis._gridNumX=width / gridSize;\r\n\t\t\tthis._gridNumY=height / gridSize;\r\n\t\t\tthis._curAtlasIndex=0;\r\n\t\t\tthis.freeAll();\r\n\t\t\treturn true;\r\n\t\t\t}else {\r\n\t\t\tconsole.log(\"设置大图合集参数错误，只能在开始页面设置各种参数\");\r\n\t\t\tthrow-1;\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t//添加 图片到大图集\r\n\t__proto.pushData=function(texture){\r\n\t\tvar bitmap=texture.bitmap;\r\n\t\tvar nWebGLImageIndex=-1;\r\n\t\tvar curAtlas=null;\r\n\t\tvar i=0,n=0,altasIndex=0;\r\n\t\tfor (i=0,n=this._atlaserArray.length;i < n;i++){\r\n\t\t\taltasIndex=(this._curAtlasIndex+i)% n;\r\n\t\t\tcurAtlas=this._atlaserArray[altasIndex];\r\n\t\t\tnWebGLImageIndex=curAtlas.findBitmapIsExist(bitmap);\r\n\t\t\tif (nWebGLImageIndex !=-1){\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (nWebGLImageIndex !=-1){\r\n\t\t\tvar offset=curAtlas.InAtlasWebGLImagesOffsetValue[nWebGLImageIndex];\r\n\t\t\toffsetX=offset[0];\r\n\t\t\toffsetY=offset[1];\r\n\t\t\tcurAtlas.addToAtlas(texture,offsetX,offsetY);\r\n\t\t\treturn true;\r\n\t\t\t}else {\r\n\t\t\tvar tex=texture;\r\n\t\t\tthis._setAtlasParam=false;\r\n\t\t\tvar bFound=false;\r\n\t\t\tvar nImageGridX=(Math.ceil((texture.bitmap.width+2)/ this._gridSize));\r\n\t\t\tvar nImageGridY=(Math.ceil((texture.bitmap.height+2)/ this._gridSize));\r\n\t\t\tvar bSuccess=false;\r\n\t\t\tfor (var k=0;k < 2;k++){\r\n\t\t\t\tvar maxAtlaserCount=this._maxAtlaserCount;\r\n\t\t\t\tfor (i=0;i < maxAtlaserCount;i++){\r\n\t\t\t\t\taltasIndex=(this._curAtlasIndex+i)% maxAtlaserCount;\r\n\t\t\t\t\t(this._atlaserArray.length-1 >=altasIndex)|| (this._atlaserArray.push(new Atlaser(this._gridNumX,this._gridNumY,this._width,this._height,AtlasResourceManager._sid_++)));\r\n\t\t\t\t\tvar atlas=this._atlaserArray[altasIndex];\r\n\t\t\t\t\tvar offsetX=0,offsetY=0;\r\n\t\t\t\t\tvar fillInfo=atlas.addTex(1,nImageGridX,nImageGridY);\r\n\t\t\t\t\tif (fillInfo.ret){\r\n\t\t\t\t\t\toffsetX=fillInfo.x *this._gridSize+1;\r\n\t\t\t\t\t\toffsetY=fillInfo.y *this._gridSize+1;\r\n\t\t\t\t\t\tbitmap.lock=true;\r\n\t\t\t\t\t\tatlas.addToAtlasTexture((bitmap),offsetX,offsetY);\r\n\t\t\t\t\t\tatlas.addToAtlas(texture,offsetX,offsetY);\r\n\t\t\t\t\t\tbSuccess=true;\r\n\t\t\t\t\t\tthis._curAtlasIndex=altasIndex;\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (bSuccess)\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tthis._atlaserArray.push(new Atlaser(this._gridNumX,this._gridNumY,this._width,this._height,AtlasResourceManager._sid_++));\r\n\t\t\t\tthis._needGC=true;\r\n\t\t\t\tthis.garbageCollection();\r\n\t\t\t\tthis._curAtlasIndex=this._atlaserArray.length-1;\r\n\t\t\t}\r\n\t\t\tif (!bSuccess){\r\n\t\t\t\tconsole.log(\">>>AtlasManager pushData error\");\r\n\t\t\t}\r\n\t\t\treturn bSuccess;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.addToAtlas=function(tex){\r\n\t\tlaya.webgl.atlas.AtlasResourceManager.instance.pushData(tex);\r\n\t}\r\n\r\n\t/**\r\n\t*回收大图合集,不建议手动调用\r\n\t*@return\r\n\t*/\r\n\t__proto.garbageCollection=function(){\r\n\t\tif (this._needGC===true){\r\n\t\t\tvar n=this._atlaserArray.length-this._maxAtlaserCount;\r\n\t\t\tfor (var i=0;i < n;i++){\r\n\t\t\t\tthis._atlaserArray[i].dispose();\r\n\t\t\t\tconsole.log(\"AtlasResourceManager:Dispose the inner Atlas。\");\r\n\t\t\t}\r\n\t\t\tconsole.log(\">>>>altas garbageCollection =\"+n);\r\n\t\t\tthis._atlaserArray.splice(0,n);\r\n\t\t\tthis._needGC=false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\t__proto.freeAll=function(){\r\n\t\tfor (var i=0,n=this._atlaserArray.length;i < n;i++){\r\n\t\t\tthis._atlaserArray[i].dispose();\r\n\t\t}\r\n\t\tthis._atlaserArray.length=0;\r\n\t\tthis._curAtlasIndex=0;\r\n\t}\r\n\r\n\t__proto.getAtlaserCount=function(){\r\n\t\treturn this._atlaserArray.length;\r\n\t}\r\n\r\n\t__proto.getAtlaserByIndex=function(index){\r\n\t\treturn this._atlaserArray[index];\r\n\t}\r\n\r\n\t__getset(1,AtlasResourceManager,'instance',function(){\r\n\t\tif (!AtlasResourceManager._Instance){\r\n\t\t\tAtlasResourceManager._Instance=new AtlasResourceManager(laya.webgl.atlas.AtlasResourceManager.atlasTextureWidth,laya.webgl.atlas.AtlasResourceManager.atlasTextureHeight,/*CLASS CONST:laya.webgl.atlas.AtlasResourceManager.gridSize*/16,laya.webgl.atlas.AtlasResourceManager.maxTextureCount);\r\n\t\t}\r\n\t\treturn AtlasResourceManager._Instance;\r\n\t});\r\n\r\n\t__getset(1,AtlasResourceManager,'enabled',function(){\r\n\t\treturn Config.atlasEnable;\r\n\t});\r\n\r\n\t__getset(1,AtlasResourceManager,'atlasLimitWidth',function(){\r\n\t\treturn AtlasResourceManager._atlasLimitWidth;\r\n\t\t},function(value){\r\n\t\tAtlasResourceManager._atlasLimitWidth=value;\r\n\t});\r\n\r\n\t__getset(1,AtlasResourceManager,'atlasLimitHeight',function(){\r\n\t\treturn AtlasResourceManager._atlasLimitHeight;\r\n\t\t},function(value){\r\n\t\tAtlasResourceManager._atlasLimitHeight=value;\r\n\t});\r\n\r\n\tAtlasResourceManager._enable=function(){\r\n\t\tConfig.atlasEnable=true;\r\n\t}\r\n\r\n\tAtlasResourceManager._disable=function(){\r\n\t\tConfig.atlasEnable=false;\r\n\t}\r\n\r\n\tAtlasResourceManager.__init__=function(){\r\n\t\tAtlasResourceManager.atlasTextureWidth=2048;\r\n\t\tAtlasResourceManager.atlasTextureHeight=2048;\r\n\t\tAtlasResourceManager.maxTextureCount=6;\r\n\t\tAtlasResourceManager.atlasLimitWidth=512;\r\n\t\tAtlasResourceManager.atlasLimitHeight=512;\r\n\t}\r\n\r\n\tAtlasResourceManager._atlasLimitWidth=0;\r\n\tAtlasResourceManager._atlasLimitHeight=0;\r\n\tAtlasResourceManager.gridSize=16;\r\n\tAtlasResourceManager.atlasTextureWidth=0;\r\n\tAtlasResourceManager.atlasTextureHeight=0;\r\n\tAtlasResourceManager.maxTextureCount=0;\r\n\tAtlasResourceManager._atlasRestore=0;\r\n\tAtlasResourceManager.BOARDER_TYPE_NO=0;\r\n\tAtlasResourceManager.BOARDER_TYPE_RIGHT=1;\r\n\tAtlasResourceManager.BOARDER_TYPE_LEFT=2;\r\n\tAtlasResourceManager.BOARDER_TYPE_BOTTOM=4;\r\n\tAtlasResourceManager.BOARDER_TYPE_TOP=8;\r\n\tAtlasResourceManager.BOARDER_TYPE_ALL=15;\r\n\tAtlasResourceManager._sid_=0;\r\n\tAtlasResourceManager._Instance=null;\r\n\treturn AtlasResourceManager;\r\n})()\r\n\r\n\r\n//class laya.webgl.atlas.MergeFillInfo\r\nvar MergeFillInfo=(function(){\r\n\tfunction MergeFillInfo(){\r\n\t\tthis.x=0;\r\n\t\tthis.y=0;\r\n\t\tthis.ret=false;\r\n\t\tthis.ret=false;\r\n\t\tthis.x=0;\r\n\t\tthis.y=0;\r\n\t}\r\n\r\n\t__class(MergeFillInfo,'laya.webgl.atlas.MergeFillInfo');\r\n\treturn MergeFillInfo;\r\n})()\r\n\r\n\r\n;\r\n//class laya.webgl.canvas.BlendMode\r\nvar BlendMode=(function(){\r\n\tfunction BlendMode(){}\r\n\t__class(BlendMode,'laya.webgl.canvas.BlendMode');\r\n\tBlendMode._init_=function(gl){\r\n\t\tBlendMode.fns=[BlendMode.BlendNormal,BlendMode.BlendAdd,BlendMode.BlendMultiply,BlendMode.BlendScreen,BlendMode.BlendOverlay,BlendMode.BlendLight,BlendMode.BlendMask,BlendMode.BlendDestinationOut];\r\n\t\tBlendMode.targetFns=[BlendMode.BlendNormalTarget,BlendMode.BlendAddTarget,BlendMode.BlendMultiplyTarget,BlendMode.BlendScreenTarget,BlendMode.BlendOverlayTarget,BlendMode.BlendLightTarget,BlendMode.BlendMask,BlendMode.BlendDestinationOut];\r\n\t}\r\n\r\n\tBlendMode.BlendNormal=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ONE*/1,/*laya.webgl.WebGLContext.ONE_MINUS_SRC_ALPHA*/0x0303);\r\n\t}\r\n\r\n\tBlendMode.BlendAdd=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ONE*/1,/*laya.webgl.WebGLContext.DST_ALPHA*/0x0304);\r\n\t}\r\n\r\n\tBlendMode.BlendMultiply=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.DST_COLOR*/0x0306,/*laya.webgl.WebGLContext.ONE_MINUS_SRC_ALPHA*/0x0303);\r\n\t}\r\n\r\n\tBlendMode.BlendScreen=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ONE*/1,/*laya.webgl.WebGLContext.ONE*/1);\r\n\t}\r\n\r\n\tBlendMode.BlendOverlay=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ONE*/1,/*laya.webgl.WebGLContext.ONE_MINUS_SRC_COLOR*/0x0301);\r\n\t}\r\n\r\n\tBlendMode.BlendLight=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ONE*/1,/*laya.webgl.WebGLContext.ONE*/1);\r\n\t}\r\n\r\n\tBlendMode.BlendNormalTarget=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ONE*/1,/*laya.webgl.WebGLContext.ONE_MINUS_SRC_ALPHA*/0x0303);\r\n\t}\r\n\r\n\tBlendMode.BlendAddTarget=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ONE*/1,/*laya.webgl.WebGLContext.DST_ALPHA*/0x0304);\r\n\t}\r\n\r\n\tBlendMode.BlendMultiplyTarget=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.DST_COLOR*/0x0306,/*laya.webgl.WebGLContext.ONE_MINUS_SRC_ALPHA*/0x0303);\r\n\t}\r\n\r\n\tBlendMode.BlendScreenTarget=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ONE*/1,/*laya.webgl.WebGLContext.ONE*/1);\r\n\t}\r\n\r\n\tBlendMode.BlendOverlayTarget=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ONE*/1,/*laya.webgl.WebGLContext.ONE_MINUS_SRC_COLOR*/0x0301);\r\n\t}\r\n\r\n\tBlendMode.BlendLightTarget=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ONE*/1,/*laya.webgl.WebGLContext.ONE*/1);\r\n\t}\r\n\r\n\tBlendMode.BlendMask=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ZERO*/0,/*laya.webgl.WebGLContext.SRC_ALPHA*/0x0302);\r\n\t}\r\n\r\n\tBlendMode.BlendDestinationOut=function(gl){\r\n\t\tgl.blendFunc(/*laya.webgl.WebGLContext.ZERO*/0,/*laya.webgl.WebGLContext.ZERO*/0);\r\n\t}\r\n\r\n\tBlendMode.activeBlendFunction=null;\r\n\tBlendMode.NAMES=[\"normal\",\"add\",\"multiply\",\"screen\",\"overlay\",\"light\",\"mask\",\"destination-out\"];\r\n\tBlendMode.TOINT={\"normal\":0,\"add\":1,\"multiply\":2,\"screen\":3 ,\"lighter\":1,\"overlay\":4,\"light\":5,\"mask\":6,\"destination-out\":7};\r\n\tBlendMode.NORMAL=\"normal\";\r\n\tBlendMode.ADD=\"add\";\r\n\tBlendMode.MULTIPLY=\"multiply\";\r\n\tBlendMode.SCREEN=\"screen\";\r\n\tBlendMode.LIGHT=\"light\";\r\n\tBlendMode.OVERLAY=\"overlay\";\r\n\tBlendMode.DESTINATIONOUT=\"destination-out\";\r\n\tBlendMode.fns=[];\r\n\tBlendMode.targetFns=[];\r\n\treturn BlendMode;\r\n})()\r\n\r\n\r\n//class laya.webgl.canvas.DrawStyle\r\nvar DrawStyle=(function(){\r\n\tfunction DrawStyle(value){\r\n\t\tthis._color=Color.create(\"black\");\r\n\t\tthis.setValue(value);\r\n\t}\r\n\r\n\t__class(DrawStyle,'laya.webgl.canvas.DrawStyle');\r\n\tvar __proto=DrawStyle.prototype;\r\n\t__proto.setValue=function(value){\r\n\t\tif (value){\r\n\t\t\tif ((typeof value=='string')){\r\n\t\t\t\tthis._color=Color.create(value);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif ((value instanceof laya.utils.Color )){\r\n\t\t\t\tthis._color=value;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.reset=function(){\r\n\t\tthis._color=Color.create(\"black\");\r\n\t}\r\n\r\n\t__proto.equal=function(value){\r\n\t\tif ((typeof value=='string'))return this._color.strColor===value;\r\n\t\tif ((value instanceof laya.utils.Color ))return this._color.numColor===(value).numColor;\r\n\t\treturn false;\r\n\t}\r\n\r\n\t__proto.toColorStr=function(){\r\n\t\treturn this._color.strColor;\r\n\t}\r\n\r\n\tDrawStyle.create=function(value){\r\n\t\tif (value){\r\n\t\t\tvar color;\r\n\t\t\tif ((typeof value=='string'))color=Color.create(value);\r\n\t\t\telse if ((value instanceof laya.utils.Color ))color=value;\r\n\t\t\tif (color){\r\n\t\t\t\treturn color._drawStyle || (color._drawStyle=new DrawStyle(value));\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn laya.webgl.canvas.DrawStyle.DEFAULT;\r\n\t}\r\n\r\n\t__static(DrawStyle,\r\n\t['DEFAULT',function(){return this.DEFAULT=new DrawStyle(\"#000000\");}\r\n\t]);\r\n\treturn DrawStyle;\r\n})()\r\n\r\n\r\n//class laya.webgl.canvas.Path\r\nvar Path=(function(){\r\n\tfunction Path(){\r\n\t\tthis._x=0;\r\n\t\tthis._y=0;\r\n\t\t//this._rect=null;\r\n\t\t//this.ib=null;\r\n\t\t//this.vb=null;\r\n\t\tthis.dirty=false;\r\n\t\t//this.geomatrys=null;\r\n\t\t//this._curGeomatry=null;\r\n\t\tthis.offset=0;\r\n\t\tthis.count=0;\r\n\t\tthis.geoStart=0;\r\n\t\tthis.tempArray=[];\r\n\t\tthis.closePath=false;\r\n\t\tthis.geomatrys=[];\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tthis.ib=IndexBuffer2D.create(/*laya.webgl.WebGLContext.DYNAMIC_DRAW*/0x88E8);\r\n\t\tthis.vb=VertexBuffer2D.create(5);\r\n\t}\r\n\r\n\t__class(Path,'laya.webgl.canvas.Path');\r\n\tvar __proto=Path.prototype;\r\n\t__proto.addPoint=function(pointX,pointY){\r\n\t\tthis.tempArray.push(pointX,pointY);\r\n\t}\r\n\r\n\t__proto.getEndPointX=function(){\r\n\t\treturn this.tempArray[this.tempArray.length-2];\r\n\t}\r\n\r\n\t__proto.getEndPointY=function(){\r\n\t\treturn this.tempArray[this.tempArray.length-1];\r\n\t}\r\n\r\n\t__proto.polygon=function(x,y,points,color,borderWidth,borderColor){\r\n\t\tvar geo;\r\n\t\tthis.geomatrys.push(this._curGeomatry=geo=new Polygon(x,y,points,color,borderWidth,borderColor));\r\n\t\tif (!color)geo.fill=false;\r\n\t\tif (borderColor==undefined)geo.borderWidth=0;\r\n\t\treturn geo;\r\n\t}\r\n\r\n\t__proto.setGeomtry=function(shape){\r\n\t\tthis.geomatrys.push(this._curGeomatry=shape);\r\n\t}\r\n\r\n\t__proto.drawLine=function(x,y,points,width,color){\r\n\t\tvar geo;\r\n\t\tif (this.closePath){\r\n\t\t\tthis.geomatrys.push(this._curGeomatry=geo=new LoopLine(x,y,points,width,color));\r\n\t\t\t}else {\r\n\t\t\tthis.geomatrys.push(this._curGeomatry=geo=new Line(x,y,points,width,color));\r\n\t\t}\r\n\t\tgeo.fill=false;\r\n\t\treturn geo;\r\n\t}\r\n\r\n\t__proto.update=function(){\r\n\t\tvar si=this.ib._byteLength;\r\n\t\tvar len=this.geomatrys.length;\r\n\t\tthis.offset=si;\r\n\t\tfor (var i=this.geoStart;i < len;i++){\r\n\t\t\tthis.geomatrys[i].getData(this.ib,this.vb,this.vb._byteLength / 20);\r\n\t\t}\r\n\t\tthis.geoStart=len;\r\n\t\tthis.count=(this.ib._byteLength-si)/ CONST3D2D.BYTES_PIDX;\r\n\t}\r\n\r\n\t__proto.reset=function(){\r\n\t\tthis.vb.clear();\r\n\t\tthis.ib.clear();\r\n\t\tthis.offset=this.count=this.geoStart=0;\r\n\t\tthis.geomatrys.length=0;\r\n\t}\r\n\r\n\t__proto.recover=function(){\r\n\t\tthis._curGeomatry=null;\r\n\t\tthis.vb.destory();\r\n\t\tthis.vb=null;\r\n\t\tthis.ib.destory();\r\n\t\tthis.ib=null;\r\n\t}\r\n\r\n\treturn Path;\r\n})()\r\n\r\n\r\n//class laya.webgl.canvas.save.SaveBase\r\nvar SaveBase=(function(){\r\n\tfunction SaveBase(){\r\n\t\t//this._valueName=null;\r\n\t\t//this._value=null;\r\n\t\t//this._dataObj=null;\r\n\t\t//this._newSubmit=false;\r\n\t}\r\n\r\n\t__class(SaveBase,'laya.webgl.canvas.save.SaveBase');\r\n\tvar __proto=SaveBase.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.canvas.save.ISaveData\":true})\r\n\t__proto.isSaveMark=function(){return false;}\r\n\t__proto.restore=function(context){\r\n\t\tthis._dataObj[this._valueName]=this._value;\r\n\t\tSaveBase._cache[SaveBase._cache._length++]=this;\r\n\t\tthis._newSubmit && (context._curSubmit=Submit.RENDERBASE,context._renderKey=0);\r\n\t}\r\n\r\n\tSaveBase._createArray=function(){\r\n\t\tvar value=[];\r\n\t\tvalue._length=0;\r\n\t\treturn value;\r\n\t}\r\n\r\n\tSaveBase._init=function(){\r\n\t\tvar namemap=SaveBase._namemap={};\r\n\t\tnamemap[0x1]=\"ALPHA\";\r\n\t\tnamemap[0x2]=\"fillStyle\";\r\n\t\tnamemap[0x8]=\"font\";\r\n\t\tnamemap[0x100]=\"lineWidth\";\r\n\t\tnamemap[0x200]=\"strokeStyle\";\r\n\t\tnamemap[0x2000]=\"_mergeID\";\r\n\t\tnamemap[0x400]=namemap[0x800]=namemap[0x1000]=[];\r\n\t\tnamemap[0x4000]=\"textBaseline\";\r\n\t\tnamemap[0x8000]=\"textAlign\";\r\n\t\tnamemap[0x10000]=\"_nBlendType\";\r\n\t\tnamemap[0x100000]=\"shader\";\r\n\t\tnamemap[0x200000]=\"filters\";\r\n\t\treturn namemap;\r\n\t}\r\n\r\n\tSaveBase.save=function(context,type,dataObj,newSubmit){\r\n\t\tif ((context._saveMark._saveuse & type)!==type){\r\n\t\t\tcontext._saveMark._saveuse |=type;\r\n\t\t\tvar cache=SaveBase._cache;\r\n\t\t\tvar o=cache._length > 0 ? cache[--cache._length] :(new SaveBase());\r\n\t\t\to._value=dataObj[o._valueName=SaveBase._namemap[type]];\r\n\t\t\to._dataObj=dataObj;\r\n\t\t\to._newSubmit=newSubmit;\r\n\t\t\tvar _save=context._save;\r\n\t\t\t_save[_save._length++]=o;\r\n\t\t}\r\n\t}\r\n\r\n\tSaveBase._cache=laya.webgl.canvas.save.SaveBase._createArray();\r\n\tSaveBase._namemap=SaveBase._init();\r\n\treturn SaveBase;\r\n})()\r\n\r\n\r\n//class laya.webgl.canvas.save.SaveClipRect\r\nvar SaveClipRect=(function(){\r\n\tfunction SaveClipRect(){\r\n\t\t//this._clipSaveRect=null;\r\n\t\t//this._submitScissor=null;\r\n\t\tthis._clipRect=new Rectangle();\r\n\t}\r\n\r\n\t__class(SaveClipRect,'laya.webgl.canvas.save.SaveClipRect');\r\n\tvar __proto=SaveClipRect.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.canvas.save.ISaveData\":true})\r\n\t__proto.isSaveMark=function(){return false;}\r\n\t__proto.restore=function(context){\r\n\t\tcontext._clipRect=this._clipSaveRect;\r\n\t\tSaveClipRect._cache[SaveClipRect._cache._length++]=this;\r\n\t\tthis._submitScissor.submitLength=context._submits._length-this._submitScissor.submitIndex;\r\n\t\tcontext._curSubmit=Submit.RENDERBASE;\r\n\t\tcontext._renderKey=0;\r\n\t}\r\n\r\n\tSaveClipRect.save=function(context,submitScissor){\r\n\t\tif ((context._saveMark._saveuse & /*laya.webgl.canvas.save.SaveBase.TYPE_CLIPRECT*/0x20000)==/*laya.webgl.canvas.save.SaveBase.TYPE_CLIPRECT*/0x20000)return;\r\n\t\tcontext._saveMark._saveuse |=/*laya.webgl.canvas.save.SaveBase.TYPE_CLIPRECT*/0x20000;\r\n\t\tvar cache=SaveClipRect._cache;\r\n\t\tvar o=cache._length > 0 ? cache[--cache._length] :(new SaveClipRect());\r\n\t\to._clipSaveRect=context._clipRect;\r\n\t\tcontext._clipRect=o._clipRect.copyFrom(context._clipRect);\r\n\t\to._submitScissor=submitScissor;\r\n\t\tvar _save=context._save;\r\n\t\t_save[_save._length++]=o;\r\n\t}\r\n\r\n\t__static(SaveClipRect,\r\n\t['_cache',function(){return this._cache=SaveBase._createArray();}\r\n\t]);\r\n\treturn SaveClipRect;\r\n})()\r\n\r\n\r\n//class laya.webgl.canvas.save.SaveClipRectStencil\r\nvar SaveClipRectStencil=(function(){\r\n\tfunction SaveClipRectStencil(){\r\n\t\t//this._clipSaveRect=null;\r\n\t\t//this._saveMatrix=null;\r\n\t\tthis._contextX=0;\r\n\t\tthis._contextY=0;\r\n\t\t//this._submitStencil=null;\r\n\t\tthis._clipRect=new Rectangle();\r\n\t\tthis._rect=new Rectangle();\r\n\t\tthis._matrix=new Matrix();\r\n\t}\r\n\r\n\t__class(SaveClipRectStencil,'laya.webgl.canvas.save.SaveClipRectStencil');\r\n\tvar __proto=SaveClipRectStencil.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.canvas.save.ISaveData\":true})\r\n\t__proto.isSaveMark=function(){return false;}\r\n\t__proto.restore=function(context){\r\n\t\tSubmitStencil.restore(context,this._rect,this._saveMatrix,this._contextX,this._contextY);\r\n\t\tcontext._clipRect=this._clipSaveRect;\r\n\t\tcontext._curMat=this._saveMatrix;\r\n\t\tcontext._x=this._contextX;\r\n\t\tcontext._y=this._contextY;\r\n\t\tSaveClipRectStencil._cache[SaveClipRectStencil._cache._length++]=this;\r\n\t\tcontext._curSubmit=Submit.RENDERBASE;\r\n\t}\r\n\r\n\tSaveClipRectStencil.save=function(context,submitStencil,x,y,width,height,clipX,clipY,clipWidth,clipHeight){\r\n\t\tif ((context._saveMark._saveuse & /*laya.webgl.canvas.save.SaveBase.TYPE_CLIPRECT_STENCIL*/0x40000)==/*laya.webgl.canvas.save.SaveBase.TYPE_CLIPRECT_STENCIL*/0x40000)return;\r\n\t\tcontext._saveMark._saveuse |=/*laya.webgl.canvas.save.SaveBase.TYPE_CLIPRECT_STENCIL*/0x40000;\r\n\t\tvar cache=SaveClipRectStencil._cache;\r\n\t\tvar o=cache._length > 0 ? cache[--cache._length] :(new SaveClipRectStencil());\r\n\t\to._clipSaveRect=context._clipRect;\r\n\t\to._clipRect.setTo(clipX,clipY,clipWidth,clipHeight);\r\n\t\tcontext._clipRect=o._clipRect;\r\n\t\to._rect.x=x;\r\n\t\to._rect.y=y;\r\n\t\to._rect.width=width;\r\n\t\to._rect.height=height;\r\n\t\to._contextX=context._x;\r\n\t\to._contextY=context._y;\r\n\t\to._saveMatrix=context._curMat;\r\n\t\tcontext._curMat.copyTo(o._matrix);\r\n\t\tcontext._curMat=o._matrix;\r\n\t\to._submitStencil=submitStencil;\r\n\t\tvar _save=context._save;\r\n\t\t_save[_save._length++]=o;\r\n\t}\r\n\r\n\t__static(SaveClipRectStencil,\r\n\t['_cache',function(){return this._cache=SaveBase._createArray();}\r\n\t]);\r\n\treturn SaveClipRectStencil;\r\n})()\r\n\r\n\r\n//class laya.webgl.canvas.save.SaveMark\r\nvar SaveMark=(function(){\r\n\tfunction SaveMark(){\r\n\t\tthis._saveuse=0;\r\n\t\t//this._preSaveMark=null;\r\n\t\t;\r\n\t}\r\n\r\n\t__class(SaveMark,'laya.webgl.canvas.save.SaveMark');\r\n\tvar __proto=SaveMark.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.canvas.save.ISaveData\":true})\r\n\t__proto.isSaveMark=function(){\r\n\t\treturn true;\r\n\t}\r\n\r\n\t__proto.restore=function(context){\r\n\t\tcontext._saveMark=this._preSaveMark;\r\n\t\tSaveMark._no[SaveMark._no._length++]=this;\r\n\t}\r\n\r\n\tSaveMark.Create=function(context){\r\n\t\tvar no=SaveMark._no;\r\n\t\tvar o=no._length > 0 ? no[--no._length] :(new SaveMark());\r\n\t\to._saveuse=0;\r\n\t\to._preSaveMark=context._saveMark;\r\n\t\tcontext._saveMark=o;\r\n\t\treturn o;\r\n\t}\r\n\r\n\t__static(SaveMark,\r\n\t['_no',function(){return this._no=SaveBase._createArray();}\r\n\t]);\r\n\treturn SaveMark;\r\n})()\r\n\r\n\r\n//class laya.webgl.canvas.save.SaveTransform\r\nvar SaveTransform=(function(){\r\n\tfunction SaveTransform(){\r\n\t\t//this._savematrix=null;\r\n\t\tthis._matrix=new Matrix();\r\n\t}\r\n\r\n\t__class(SaveTransform,'laya.webgl.canvas.save.SaveTransform');\r\n\tvar __proto=SaveTransform.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.canvas.save.ISaveData\":true})\r\n\t__proto.isSaveMark=function(){return false;}\r\n\t__proto.restore=function(context){\r\n\t\tcontext._curMat=this._savematrix;\r\n\t\tSaveTransform._no[SaveTransform._no._length++]=this;\r\n\t}\r\n\r\n\tSaveTransform.save=function(context){\r\n\t\tvar _saveMark=context._saveMark;\r\n\t\tif ((_saveMark._saveuse & /*laya.webgl.canvas.save.SaveBase.TYPE_TRANSFORM*/0x800)===/*laya.webgl.canvas.save.SaveBase.TYPE_TRANSFORM*/0x800)return;\r\n\t\t_saveMark._saveuse |=/*laya.webgl.canvas.save.SaveBase.TYPE_TRANSFORM*/0x800;\r\n\t\tvar no=SaveTransform._no;\r\n\t\tvar o=no._length > 0 ? no[--no._length] :(new SaveTransform());\r\n\t\to._savematrix=context._curMat;\r\n\t\tcontext._curMat=context._curMat.copyTo(o._matrix);\r\n\t\tvar _save=context._save;\r\n\t\t_save[_save._length++]=o;\r\n\t}\r\n\r\n\t__static(SaveTransform,\r\n\t['_no',function(){return this._no=SaveBase._createArray();}\r\n\t]);\r\n\treturn SaveTransform;\r\n})()\r\n\r\n\r\n//class laya.webgl.canvas.save.SaveTranslate\r\nvar SaveTranslate=(function(){\r\n\tfunction SaveTranslate(){\r\n\t\t//this._x=NaN;\r\n\t\t//this._y=NaN;\r\n\t}\r\n\r\n\t__class(SaveTranslate,'laya.webgl.canvas.save.SaveTranslate');\r\n\tvar __proto=SaveTranslate.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.canvas.save.ISaveData\":true})\r\n\t__proto.isSaveMark=function(){return false;}\r\n\t__proto.restore=function(context){\r\n\t\tvar mat=context._curMat;\r\n\t\tcontext._x=this._x;\r\n\t\tcontext._y=this._y;\r\n\t\tSaveTranslate._no[SaveTranslate._no._length++]=this;\r\n\t}\r\n\r\n\tSaveTranslate.save=function(context){\r\n\t\tvar no=SaveTranslate._no;\r\n\t\tvar o=no._length > 0 ? no[--no._length] :(new SaveTranslate());\r\n\t\to._x=context._x;\r\n\t\to._y=context._y;\r\n\t\tvar _save=context._save;\r\n\t\t_save[_save._length++]=o;\r\n\t}\r\n\r\n\t__static(SaveTranslate,\r\n\t['_no',function(){return this._no=SaveBase._createArray();}\r\n\t]);\r\n\treturn SaveTranslate;\r\n})()\r\n\r\n\r\n//class laya.webgl.resource.RenderTargetMAX\r\nvar RenderTargetMAX=(function(){\r\n\tfunction RenderTargetMAX(){\r\n\t\t//public var targets:Vector.<OneTarget>;//没用到\r\n\t\tthis.target=null;\r\n\t\tthis.repaint=false;\r\n\t\tthis._width=NaN;\r\n\t\tthis._height=NaN;\r\n\t\tthis._sp=null;\r\n\t\tthis._clipRect=new Rectangle();\r\n\t}\r\n\r\n\t__class(RenderTargetMAX,'laya.webgl.resource.RenderTargetMAX');\r\n\tvar __proto=RenderTargetMAX.prototype;\r\n\t__proto.setSP=function(sp){\r\n\t\tthis._sp=sp;\r\n\t}\r\n\r\n\t__proto.size=function(w,h){\r\n\t\tvar _$this=this;\r\n\t\tif (this._width===w && this._height===h){\r\n\t\t\tthis.target.size(w,h);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.repaint=true;\r\n\t\tthis._width=w;\r\n\t\tthis._height=h;\r\n\t\tif (!this.target)\r\n\t\t\tthis.target=RenderTarget2D.create(w,h);\r\n\t\telse\r\n\t\tthis.target.size(w,h);\r\n\t\tif (!this.target.hasListener(/*laya.events.Event.RECOVERED*/\"recovered\")){\r\n\t\t\tthis.target.on(/*laya.events.Event.RECOVERED*/\"recovered\",this,function(e){\r\n\t\t\t\tLaya.timer.callLater(_$this._sp,_$this._sp.repaint);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._flushToTarget=function(context,target){\r\n\t\tif (target._destroy)return;\r\n\t\tvar worldScissorTest=RenderState2D.worldScissorTest;\r\n\t\tvar preworldClipRect=RenderState2D.worldClipRect;\r\n\t\tRenderState2D.worldClipRect=this._clipRect;\r\n\t\tthis._clipRect.x=this._clipRect.y=0;\r\n\t\tthis._clipRect.width=this._width;\r\n\t\tthis._clipRect.height=this._height;\r\n\t\tRenderState2D.worldScissorTest=false;\r\n\t\tWebGL.mainContext.disable(/*laya.webgl.WebGLContext.SCISSOR_TEST*/0x0C11);\r\n\t\tvar preAlpha=RenderState2D.worldAlpha;\r\n\t\tvar preMatrix4=RenderState2D.worldMatrix4;\r\n\t\tvar preMatrix=RenderState2D.worldMatrix;\r\n\t\tvar preFilters=RenderState2D.worldFilters;\r\n\t\tvar preShaderDefines=RenderState2D.worldShaderDefines;\r\n\t\tRenderState2D.worldMatrix=Matrix.EMPTY;\r\n\t\tRenderState2D.restoreTempArray();\r\n\t\tRenderState2D.worldMatrix4=RenderState2D.TEMPMAT4_ARRAY;\r\n\t\tRenderState2D.worldAlpha=1;\r\n\t\tRenderState2D.worldFilters=null;\r\n\t\tRenderState2D.worldShaderDefines=null;\r\n\t\tBaseShader.activeShader=null;\r\n\t\ttarget.start();\r\n\t\tConfig.showCanvasMark ? target.clear(0,1,0,0.3):target.clear(0,0,0,0);\r\n\t\tcontext.flush();\r\n\t\ttarget.end();\r\n\t\tBaseShader.activeShader=null;\r\n\t\tRenderState2D.worldAlpha=preAlpha;\r\n\t\tRenderState2D.worldMatrix4=preMatrix4;\r\n\t\tRenderState2D.worldMatrix=preMatrix;\r\n\t\tRenderState2D.worldFilters=preFilters;\r\n\t\tRenderState2D.worldShaderDefines=preShaderDefines;\r\n\t\tRenderState2D.worldScissorTest=worldScissorTest\r\n\t\tif (worldScissorTest){\r\n\t\t\tvar y=RenderState2D.height-preworldClipRect.y-preworldClipRect.height;\r\n\t\t\tWebGL.mainContext.scissor(preworldClipRect.x,y,preworldClipRect.width,preworldClipRect.height);\r\n\t\t\tWebGL.mainContext.enable(/*laya.webgl.WebGLContext.SCISSOR_TEST*/0x0C11);\r\n\t\t}\r\n\t\tRenderState2D.worldClipRect=preworldClipRect;\r\n\t}\r\n\r\n\t__proto.flush=function(context){\r\n\t\tif (this.repaint){\r\n\t\t\tthis._flushToTarget(context,this.target);\r\n\t\t\tthis.repaint=false;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.drawTo=function(context,x,y,width,height){\r\n\t\tcontext.drawTexture(this.target.getTexture(),x,y,width,height,0,0);\r\n\t}\r\n\r\n\t__proto.destroy=function(){\r\n\t\tif (this.target){\r\n\t\t\tthis.target.destroy();\r\n\t\t\tthis.target=null;\r\n\t\t\tthis._sp=null;\r\n\t\t}\r\n\t}\r\n\r\n\treturn RenderTargetMAX;\r\n})()\r\n\r\n\r\n//class laya.webgl.shader.d2.Shader2D\r\nvar Shader2D=(function(){\r\n\tfunction Shader2D(){\r\n\t\tthis.ALPHA=1;\r\n\t\t//this.glTexture=null;\r\n\t\t//this.shader=null;\r\n\t\t//this.filters=null;\r\n\t\tthis.shaderType=0;\r\n\t\t//this.colorAdd=null;\r\n\t\t//this.strokeStyle=null;\r\n\t\t//this.fillStyle=null;\r\n\t\tthis.defines=new ShaderDefines2D();\r\n\t}\r\n\r\n\t__class(Shader2D,'laya.webgl.shader.d2.Shader2D');\r\n\tvar __proto=Shader2D.prototype;\r\n\t__proto.destroy=function(){\r\n\t\tthis.defines=null;\r\n\t\tthis.filters=null;\r\n\t\tthis.glTexture=null;\r\n\t\tthis.strokeStyle=null;\r\n\t\tthis.fillStyle=null;\r\n\t}\r\n\r\n\tShader2D.__init__=function(){\r\n\t\tShader.addInclude(\"parts/ColorFilter_ps_uniform.glsl\",\"uniform vec4 colorAlpha;\\nuniform mat4 colorMat;\");\r\n\t\tShader.addInclude(\"parts/ColorFilter_ps_logic.glsl\",\"mat4 alphaMat =colorMat;\\n\\nalphaMat[0][3] *= gl_FragColor.a;\\nalphaMat[1][3] *= gl_FragColor.a;\\nalphaMat[2][3] *= gl_FragColor.a;\\n\\ngl_FragColor = gl_FragColor * alphaMat;\\ngl_FragColor += colorAlpha/255.0*gl_FragColor.a;\\n\");\r\n\t\tShader.addInclude(\"parts/GlowFilter_ps_uniform.glsl\",\"uniform vec4 u_color;\\nuniform float u_strength;\\nuniform float u_blurX;\\nuniform float u_blurY;\\nuniform float u_offsetX;\\nuniform float u_offsetY;\\nuniform float u_textW;\\nuniform float u_textH;\");\r\n\t\tShader.addInclude(\"parts/GlowFilter_ps_logic.glsl\",\"const float c_IterationTime = 10.0;\\nfloat floatIterationTotalTime = c_IterationTime * c_IterationTime;\\nvec4 vec4Color = vec4(0.0,0.0,0.0,0.0);\\nvec2 vec2FilterDir = vec2(-(u_offsetX)/u_textW,-(u_offsetY)/u_textH);\\nvec2 vec2FilterOff = vec2(u_blurX/u_textW/c_IterationTime * 2.0,u_blurY/u_textH/c_IterationTime * 2.0);\\nfloat maxNum = u_blurX * u_blurY;\\nvec2 vec2Off = vec2(0.0,0.0);\\nfloat floatOff = c_IterationTime/2.0;\\nfor(float i = 0.0;i<=c_IterationTime; ++i){\\n\tfor(float j = 0.0;j<=c_IterationTime; ++j){\\n\t\tvec2Off = vec2(vec2FilterOff.x * (i - floatOff),vec2FilterOff.y * (j - floatOff));\\n\t\tvec4Color += texture2D(texture, v_texcoord + vec2FilterDir + vec2Off)/floatIterationTotalTime;\\n\t}\\n}\\ngl_FragColor = vec4(u_color.rgb,vec4Color.a * u_strength);\\ngl_FragColor.rgb *= gl_FragColor.a;\");\r\n\t\tShader.addInclude(\"parts/BlurFilter_ps_logic.glsl\",\"gl_FragColor =   blur();\\ngl_FragColor.w*=alpha;\");\r\n\t\tShader.addInclude(\"parts/BlurFilter_ps_uniform.glsl\",\"uniform vec4 strength_sig2_2sig2_gauss1;\\nuniform vec2 blurInfo;\\n\\n#define PI 3.141593\\n\\n//float sigma=strength/3.0;//3σ以外影响很小。即当σ=1的时候，半径为3\\n//float sig2 = sigma*sigma;\\n//float _2sig2 = 2.0*sig2;\\n//return 1.0/(2*PI*sig2)*exp(-(x*x+y*y)/_2sig2)\\n//float gauss1 = 1.0/(2.0*PI*sig2);\\n\\nfloat getGaussian(float x, float y){\\n    return strength_sig2_2sig2_gauss1.w*exp(-(x*x+y*y)/strength_sig2_2sig2_gauss1.z);\\n}\\n\\nvec4 blur(){\\n    const float blurw = 9.0;\\n    vec4 vec4Color = vec4(0.0,0.0,0.0,0.0);\\n    vec2 halfsz=vec2(blurw,blurw)/2.0/blurInfo;    \\n    vec2 startpos=v_texcoord-halfsz;\\n    vec2 ctexcoord = startpos;\\n    vec2 step = 1.0/blurInfo;  //每个像素      \\n    \\n    for(float y = 0.0;y<=blurw; ++y){\\n        ctexcoord.x=startpos.x;\\n        for(float x = 0.0;x<=blurw; ++x){\\n            //TODO 纹理坐标的固定偏移应该在vs中处理\\n            vec4Color += texture2D(texture, ctexcoord)*getGaussian(x-blurw/2.0,y-blurw/2.0);\\n            ctexcoord.x+=step.x;\\n        }\\n        ctexcoord.y+=step.y;\\n    }\\n    return vec4Color;\\n}\");\r\n\t\tShader.addInclude(\"parts/ColorAdd_ps_uniform.glsl\",\"uniform vec4 colorAdd;\\n\");\r\n\t\tShader.addInclude(\"parts/ColorAdd_ps_logic.glsl\",\"gl_FragColor = vec4(colorAdd.rgb,colorAdd.a*gl_FragColor.a);\\ngl_FragColor.xyz *= colorAdd.a;\");\r\n\t\tvar vs,ps;\r\n\t\tvs=\"attribute vec4 position;\\nattribute vec2 texcoord;\\nuniform vec2 size;\\n\\n#ifdef WORLDMAT\\nuniform mat4 mmat;\\n#endif\\nvarying vec2 v_texcoord;\\nvoid main() {\\n  #ifdef WORLDMAT\\n  vec4 pos=mmat*position;\\n  gl_Position =vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0);\\n  #else\\n  gl_Position =vec4((position.x/size.x-0.5)*2.0,(0.5-position.y/size.y)*2.0,position.z,1.0);\\n  #endif\\n  \\n  v_texcoord = texcoord;\\n}\";\r\n\t\tps=\"precision mediump float;\\n//precision highp float;\\nvarying vec2 v_texcoord;\\nuniform sampler2D texture;\\nuniform float alpha;\\n#include?BLUR_FILTER  \\\"parts/BlurFilter_ps_uniform.glsl\\\";\\n#include?COLOR_FILTER \\\"parts/ColorFilter_ps_uniform.glsl\\\";\\n#include?GLOW_FILTER \\\"parts/GlowFilter_ps_uniform.glsl\\\";\\n#include?COLOR_ADD \\\"parts/ColorAdd_ps_uniform.glsl\\\";\\n\\nvoid main() {\\n   vec4 color= texture2D(texture, v_texcoord);\\n   color.a*=alpha;\\n   color.rgb*=alpha;\\n   gl_FragColor=color;\\n   #include?COLOR_ADD \\\"parts/ColorAdd_ps_logic.glsl\\\";   \\n   #include?BLUR_FILTER  \\\"parts/BlurFilter_ps_logic.glsl\\\";\\n   #include?COLOR_FILTER \\\"parts/ColorFilter_ps_logic.glsl\\\";\\n   #include?GLOW_FILTER \\\"parts/GlowFilter_ps_logic.glsl\\\";\\n}\";\r\n\t\tShader.preCompile2D(0,/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,vs,ps,null);\r\n\t\tvs=\"attribute vec4 position;\\nuniform vec2 size;\\nuniform mat4 mmat;\\nvoid main() {\\n  vec4 pos=mmat*position;\\n  gl_Position =vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0);\\n}\";\r\n\t\tps=\"precision mediump float;\\nuniform vec4 color;\\nuniform float alpha;\\n#include?COLOR_FILTER \\\"parts/ColorFilter_ps_uniform.glsl\\\";\\nvoid main() {\\n\tvec4 a = vec4(color.r, color.g, color.b, color.a);\\n\ta.w = alpha;\\n\ta.xyz *= alpha;\\n\tgl_FragColor = a;\\n\t#include?COLOR_FILTER \\\"parts/ColorFilter_ps_logic.glsl\\\";\\n}\";\r\n\t\tShader.preCompile2D(0,/*laya.webgl.shader.d2.ShaderDefines2D.COLOR2D*/0x02,vs,ps,null);\r\n\t\tvs=\"attribute vec4 position;\\nattribute vec3 a_color;\\nuniform mat4 mmat;\\nuniform mat4 u_mmat2;\\nuniform vec2 u_pos;\\nuniform vec2 size;\\nvarying vec3 color;\\nvoid main(){\\n  vec4 tPos = vec4(position.x + u_pos.x,position.y + u_pos.y,position.z,position.w);\\n  vec4 pos=mmat*u_mmat2*tPos;\\n  gl_Position =vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0);\\n  color=a_color;\\n}\";\r\n\t\tps=\"precision mediump float;\\n//precision mediump float;\\nvarying vec3 color;\\nuniform float alpha;\\nvoid main(){\\n\t//vec4 a=vec4(color.r, color.g, color.b, 1);\\n\t//a.a*=alpha;\\n    gl_FragColor=vec4(color.r, color.g, color.b, alpha);\\n\tgl_FragColor.rgb*=alpha;\\n}\";\r\n\t\tShader.preCompile2D(0,/*laya.webgl.shader.d2.ShaderDefines2D.PRIMITIVE*/0x04,vs,ps,null);\r\n\t\tvs=\"attribute vec4 position;\\nattribute vec2 texcoord;\\nuniform vec2 size;\\n\\n#ifdef WORLDMAT\\nuniform mat4 mmat;\\n#endif\\nvarying vec2 v_texcoord;\\nvoid main() {\\n  #ifdef WORLDMAT\\n  vec4 pos=mmat*position;\\n  gl_Position =vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0);\\n  #else\\n  gl_Position =vec4((position.x/size.x-0.5)*2.0,(0.5-position.y/size.y)*2.0,position.z,1.0);\\n  #endif\\n  \\n  v_texcoord = texcoord;\\n}\";\r\n\t\tps=\"#ifdef FSHIGHPRECISION\\nprecision highp float;\\n#else\\nprecision mediump float;\\n#endif\\n//precision highp float;\\nvarying vec2 v_texcoord;\\nuniform sampler2D texture;\\nuniform float alpha;\\nuniform vec4 u_TexRange;\\nuniform vec2 u_offset;\\n#include?BLUR_FILTER  \\\"parts/BlurFilter_ps_uniform.glsl\\\";\\n#include?COLOR_FILTER \\\"parts/ColorFilter_ps_uniform.glsl\\\";\\n#include?GLOW_FILTER \\\"parts/GlowFilter_ps_uniform.glsl\\\";\\n#include?COLOR_ADD \\\"parts/ColorAdd_ps_uniform.glsl\\\";\\n\\nvoid main() {\\n   vec2 newTexCoord;\\n   newTexCoord.x = mod(u_offset.x + v_texcoord.x,u_TexRange.y) + u_TexRange.x;\\n   newTexCoord.y = mod(u_offset.y + v_texcoord.y,u_TexRange.w) + u_TexRange.z;\\n   vec4 color= texture2D(texture, newTexCoord);\\n   color.a*=alpha;\\n   gl_FragColor=color;\\n   #include?COLOR_ADD \\\"parts/ColorAdd_ps_logic.glsl\\\";   \\n   #include?BLUR_FILTER  \\\"parts/BlurFilter_ps_logic.glsl\\\";\\n   #include?COLOR_FILTER \\\"parts/ColorFilter_ps_logic.glsl\\\";\\n   #include?GLOW_FILTER \\\"parts/GlowFilter_ps_logic.glsl\\\";\\n}\";\r\n\t\tShader.preCompile2D(0,/*laya.webgl.shader.d2.ShaderDefines2D.FILLTEXTURE*/0x100,vs,ps,null);\r\n\t\tvs=\"attribute vec2 position;\\nattribute vec2 texcoord;\\nattribute vec4 color;\\nuniform vec2 size;\\nuniform float offsetX;\\nuniform float offsetY;\\nuniform mat4 mmat;\\nuniform mat4 u_mmat2;\\nvarying vec2 v_texcoord;\\nvarying vec4 v_color;\\nvoid main() {\\n  vec4 pos=mmat*u_mmat2*vec4(offsetX+position.x,offsetY+position.y,0,1 );\\n  gl_Position = vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0);\\n  v_color = color;\\n  v_color.rgb *= v_color.a;\\n  v_texcoord = texcoord;  \\n}\";\r\n\t\tps=\"precision mediump float;\\nvarying vec2 v_texcoord;\\nvarying vec4 v_color;\\nuniform sampler2D texture;\\nuniform float alpha;\\nvoid main() {\\n\tvec4 t_color = texture2D(texture, v_texcoord);\\n\tgl_FragColor = t_color.rgba * v_color;\\n\tgl_FragColor *= alpha;\\n}\";\r\n\t\tShader.preCompile2D(0,/*laya.webgl.shader.d2.ShaderDefines2D.SKINMESH*/0x200,vs,ps,null);\r\n\t}\r\n\r\n\treturn Shader2D;\r\n})()\r\n\r\n\r\n//class laya.webgl.shader.ShaderDefines\r\nvar ShaderDefines=(function(){\r\n\tfunction ShaderDefines(name2int,int2name,int2nameMap){\r\n\t\tthis._value=0;\r\n\t\t//this._name2int=null;\r\n\t\t//this._int2name=null;\r\n\t\t//this._int2nameMap=null;\r\n\t\tthis._name2int=name2int;\r\n\t\tthis._int2name=int2name;\r\n\t\tthis._int2nameMap=int2nameMap;\r\n\t}\r\n\r\n\t__class(ShaderDefines,'laya.webgl.shader.ShaderDefines');\r\n\tvar __proto=ShaderDefines.prototype;\r\n\t__proto.add=function(value){\r\n\t\tif ((typeof value=='string'))value=this._name2int[value];\r\n\t\tthis._value |=value;\r\n\t\treturn this._value;\r\n\t}\r\n\r\n\t__proto.addInt=function(value){\r\n\t\tthis._value |=value;\r\n\t\treturn this._value;\r\n\t}\r\n\r\n\t__proto.remove=function(value){\r\n\t\tif ((typeof value=='string'))value=this._name2int[value];\r\n\t\tthis._value &=(~value);\r\n\t\treturn this._value;\r\n\t}\r\n\r\n\t__proto.isDefine=function(def){\r\n\t\treturn (this._value & def)===def;\r\n\t}\r\n\r\n\t__proto.getValue=function(){\r\n\t\treturn this._value;\r\n\t}\r\n\r\n\t__proto.setValue=function(value){\r\n\t\tthis._value=value;\r\n\t}\r\n\r\n\t__proto.toNameDic=function(){\r\n\t\tvar r=this._int2nameMap[this._value];\r\n\t\treturn r ? r :ShaderDefines._toText(this._value,this._int2name,this._int2nameMap);\r\n\t}\r\n\r\n\tShaderDefines._reg=function(name,value,_name2int,_int2name){\r\n\t\t_name2int[name]=value;\r\n\t\t_int2name[value]=name;\r\n\t}\r\n\r\n\tShaderDefines._toText=function(value,_int2name,_int2nameMap){\r\n\t\tvar r=_int2nameMap[value];\r\n\t\tif (r)return r;\r\n\t\tvar o={};\r\n\t\tvar d=1;\r\n\t\tfor (var i=0;i < 32;i++){\r\n\t\t\td=1 << i;\r\n\t\t\tif (d > value)break ;\r\n\t\t\tif (value & d){\r\n\t\t\t\tvar name=_int2name[d];\r\n\t\t\t\tname && (o[name]=\"\");\r\n\t\t\t}\r\n\t\t}\r\n\t\t_int2nameMap[value]=o;\r\n\t\treturn o;\r\n\t}\r\n\r\n\tShaderDefines._toInt=function(names,_name2int){\r\n\t\tvar words=names.split('.');\r\n\t\tvar num=0;\r\n\t\tfor (var i=0,n=words.length;i < n;i++){\r\n\t\t\tvar value=_name2int[words[i]];\r\n\t\t\tif (!value)throw new Error(\"Defines to int err:\"+names+\"/\"+words[i]);\r\n\t\t\tnum |=value;\r\n\t\t}\r\n\t\treturn num;\r\n\t}\r\n\r\n\treturn ShaderDefines;\r\n})()\r\n\r\n\r\n/**\r\n*这里销毁的问题，后面待确认\r\n*/\r\n//class laya.webgl.shader.d2.skinAnishader.SkinMesh\r\nvar SkinMesh=(function(){\r\n\tfunction SkinMesh(){\r\n\t\tthis.mVBBuffer=null;\r\n\t\tthis.mIBBuffer=null;\r\n\t\tthis.mVBData=null;\r\n\t\tthis.mIBData=null;\r\n\t\tthis.mEleNum=0;\r\n\t\tthis.mTexture=null;\r\n\t\tthis.transform=null;\r\n\t\tthis._vs=null;\r\n\t\tthis._ps=null;\r\n\t\tthis._indexStart=-1;\r\n\t\tthis._verticles=null;\r\n\t\tthis._uvs=null;\r\n\t\tthis._tempMatrix=new Matrix();\r\n\t}\r\n\r\n\t__class(SkinMesh,'laya.webgl.shader.d2.skinAnishader.SkinMesh');\r\n\tvar __proto=SkinMesh.prototype;\r\n\t__proto.init=function(texture,vs,ps){\r\n\t\tif (vs){\r\n\t\t\tthis._vs=vs;\r\n\t\t\t}else {\r\n\t\t\tthis._vs=[];\r\n\t\t\tvar tWidth=texture.width;\r\n\t\t\tvar tHeight=texture.height;\r\n\t\t\tvar tRed=1;\r\n\t\t\tvar tGreed=1;\r\n\t\t\tvar tBlue=1;\r\n\t\t\tvar tAlpha=1;\r\n\t\t\tthis._vs.push(0,0,0,0,tRed,tGreed,tBlue,tAlpha);\r\n\t\t\tthis._vs.push(tWidth,0,1,0,tRed,tGreed,tBlue,tAlpha);\r\n\t\t\tthis._vs.push(tWidth,tHeight,1,1,tRed,tGreed,tBlue,tAlpha);\r\n\t\t\tthis._vs.push(0,tHeight,0,1,tRed,tGreed,tBlue,tAlpha);\r\n\t\t}\r\n\t\tif (ps){\r\n\t\t\tthis._ps=ps;\r\n\t\t\t}else {\r\n\t\t\tif (!SkinMesh._defaultPS){\r\n\t\t\t\tSkinMesh._defaultPS=[];\r\n\t\t\t\tSkinMesh._defaultPS.push(0,1,3,3,1,2);\r\n\t\t\t}\r\n\t\t\tthis._ps=SkinMesh._defaultPS;\r\n\t\t}\r\n\t\tthis.mVBData=new Float32Array(this._vs);\r\n\t\tthis.mIBData=new Uint16Array(this._ps.length);\r\n\t\tthis.mIBData[\"start\"]=-1;\r\n\t\tthis.mEleNum=this._ps.length;\r\n\t\tthis.mTexture=texture;\r\n\t}\r\n\r\n\t__proto.init2=function(texture,vs,ps,verticles,uvs){\r\n\t\tif (this.transform)this.transform=null;\r\n\t\tif (ps){\r\n\t\t\tthis._ps=ps;\r\n\t\t\t}else {\r\n\t\t\tthis._ps=[];\r\n\t\t\tthis._ps.push(0,1,3,3,1,2);\r\n\t\t}\r\n\t\tthis._verticles=verticles;\r\n\t\tthis._uvs=uvs;\r\n\t\tthis.mEleNum=this._ps.length;\r\n\t\tthis.mTexture=texture;\r\n\t\tif (Render.isConchNode || Render.isConchApp){\r\n\t\t\tthis._initMyData();\r\n\t\t\tthis.mVBData=new Float32Array(this._vs);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._initMyData=function(){\r\n\t\tvar vsI=0;\r\n\t\tvar vI=0;\r\n\t\tvar vLen=this._verticles.length;\r\n\t\tvar tempVLen=vLen *4;\r\n\t\tthis._vs=SkinMesh._tempVS;\r\n\t\tvar insertNew=false;\r\n\t\tif (Render.isConchNode || Render.isConchApp){\r\n\t\t\tthis._vs.length=tempVLen;\r\n\t\t\tinsertNew=true;\r\n\t\t\t}else{\r\n\t\t\tif (this._vs.length < tempVLen){\r\n\t\t\t\tthis._vs.length=tempVLen;\r\n\t\t\t\tinsertNew=true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tSkinMesh._tVSLen=tempVLen;\r\n\t\tif (insertNew){\r\n\t\t\twhile (vsI < tempVLen){\r\n\t\t\t\tthis._vs[vsI]=this._verticles[vI];\r\n\t\t\t\tthis._vs[vsI+1]=this._verticles[vI+1];\r\n\t\t\t\tthis._vs[vsI+2]=this._uvs[vI];\r\n\t\t\t\tthis._vs[vsI+3]=this._uvs[vI+1];\r\n\t\t\t\tthis._vs[vsI+4]=1;\r\n\t\t\t\tthis._vs[vsI+5]=1;\r\n\t\t\t\tthis._vs[vsI+6]=1;\r\n\t\t\t\tthis._vs[vsI+7]=1;\r\n\t\t\t\tvsI+=8;\r\n\t\t\t\tvI+=2;\r\n\t\t\t}\r\n\t\t\t}else{\r\n\t\t\twhile (vsI < tempVLen){\r\n\t\t\t\tthis._vs[vsI]=this._verticles[vI];\r\n\t\t\t\tthis._vs[vsI+1]=this._verticles[vI+1];\r\n\t\t\t\tthis._vs[vsI+2]=this._uvs[vI];\r\n\t\t\t\tthis._vs[vsI+3]=this._uvs[vI+1];\r\n\t\t\t\tvsI+=8;\r\n\t\t\t\tvI+=2;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.getData2=function(vb,ib,start){\r\n\t\tthis.mVBBuffer=vb;\r\n\t\tthis.mIBBuffer=ib;\r\n\t\tthis._initMyData();\r\n\t\tvb.appendEx2(this._vs,Float32Array,SkinMesh._tVSLen,4);\r\n\t\tthis._indexStart=ib._byteLength;\r\n\t\tvar tIB;\r\n\t\ttIB=SkinMesh._tempIB;\r\n\t\tif (tIB.length < this._ps.length){\r\n\t\t\ttIB.length=this._ps.length;\r\n\t\t}\r\n\t\tfor (var i=0,n=this._ps.length;i < n;i++){\r\n\t\t\ttIB[i]=this._ps[i]+start;\r\n\t\t}\r\n\t\tib.appendEx2(tIB,Uint16Array,this._ps.length,2);\r\n\t}\r\n\r\n\t__proto.getData=function(vb,ib,start){\r\n\t\tthis.mVBBuffer=vb;\r\n\t\tthis.mIBBuffer=ib;\r\n\t\tvb.append(this.mVBData);\r\n\t\tthis._indexStart=ib._byteLength;\r\n\t\tif (this.mIBData[\"start\"] !=start){\r\n\t\t\tfor (var i=0,n=this._ps.length;i < n;i++){\r\n\t\t\t\tthis.mIBData[i]=this._ps[i]+start;\r\n\t\t\t}\r\n\t\t\tthis.mIBData[\"start\"]=start;\r\n\t\t}\r\n\t\tib.append(this.mIBData);\r\n\t}\r\n\r\n\t__proto.render=function(context,x,y){\r\n\t\tif (Render.isWebGL && this.mTexture){\r\n\t\t\tcontext._renderKey=0;\r\n\t\t\tcontext._shader2D.glTexture=null;\r\n\t\t\tSkinMeshBuffer.getInstance().addSkinMesh(this);\r\n\t\t\tvar tempSubmit=Submit.createShape(context,this.mIBBuffer,this.mVBBuffer,this.mEleNum,this._indexStart,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.SKINMESH*/0x200,0));\r\n\t\t\tthis.transform || (this.transform=Matrix.EMPTY);\r\n\t\t\tthis.transform.translate(x,y);\r\n\t\t\tMatrix.mul(this.transform,context._curMat,this._tempMatrix);\r\n\t\t\tthis.transform.translate(-x,-y);\r\n\t\t\tvar tShaderValue=tempSubmit.shaderValue;\r\n\t\t\tvar tArray=tShaderValue.u_mmat2||RenderState2D.getMatrArray();\r\n\t\t\tRenderState2D.mat2MatArray(this._tempMatrix,tArray);\r\n\t\t\ttShaderValue.textureHost=this.mTexture;\r\n\t\t\ttShaderValue.offsetX=0;\r\n\t\t\ttShaderValue.offsetY=0;\r\n\t\t\ttShaderValue.u_mmat2=tArray;\r\n\t\t\ttShaderValue.ALPHA=context._shader2D.ALPHA;\r\n\t\t\tcontext._submits[context._submits._length++]=tempSubmit;\r\n\t\t}\r\n\t\telse if (Render.isConchApp&&this.mTexture){\r\n\t\t\tthis.transform || (this.transform=Matrix.EMPTY);\r\n\t\t\tcontext.setSkinMesh&&context.setSkinMesh(x,y,this._ps,this.mVBData,this.mEleNum,0,this.mTexture,this.transform);\r\n\t\t}\r\n\t}\r\n\r\n\tSkinMesh._tempVS=[];\r\n\tSkinMesh._tempIB=[];\r\n\tSkinMesh._defaultPS=null;\r\n\tSkinMesh._tVSLen=0;\r\n\treturn SkinMesh;\r\n})()\r\n\r\n\r\n//class laya.webgl.shader.d2.skinAnishader.SkinMeshBuffer\r\nvar SkinMeshBuffer=(function(){\r\n\tfunction SkinMeshBuffer(){\r\n\t\tthis.ib=null;\r\n\t\tthis.vb=null;\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tthis.ib=IndexBuffer2D.create(/*laya.webgl.WebGLContext.DYNAMIC_DRAW*/0x88E8);\r\n\t\tthis.vb=VertexBuffer2D.create(8);\r\n\t}\r\n\r\n\t__class(SkinMeshBuffer,'laya.webgl.shader.d2.skinAnishader.SkinMeshBuffer');\r\n\tvar __proto=SkinMeshBuffer.prototype;\r\n\t__proto.addSkinMesh=function(skinMesh){\r\n\t\tskinMesh.getData2(this.vb,this.ib,this.vb._byteLength / 32);\r\n\t}\r\n\r\n\t__proto.reset=function(){\r\n\t\tthis.vb.clear();\r\n\t\tthis.ib.clear();\r\n\t}\r\n\r\n\tSkinMeshBuffer.getInstance=function(){\r\n\t\treturn SkinMeshBuffer.instance=SkinMeshBuffer.instance|| new SkinMeshBuffer();\r\n\t}\r\n\r\n\tSkinMeshBuffer.instance=null;\r\n\treturn SkinMeshBuffer;\r\n})()\r\n\r\n\r\n//此类可以减少代码\r\n//class laya.webgl.shapes.BasePoly\r\nvar BasePoly=(function(){\r\n\tfunction BasePoly(x,y,width,height,edges,color,borderWidth,borderColor,round){\r\n\t\t//this.x=NaN;\r\n\t\t//this.y=NaN;\r\n\t\t//this.r=NaN;\r\n\t\t//this.width=NaN;\r\n\t\t//this.height=NaN;\r\n\t\t//this.edges=NaN;\r\n\t\tthis.r0=0\r\n\t\t//this.color=0;\r\n\t\t//this.borderColor=NaN;\r\n\t\t//this.borderWidth=NaN;\r\n\t\t//this.round=0;\r\n\t\tthis.fill=true;\r\n\t\t//this.mUint16Array=null;\r\n\t\t//this.mFloat32Array=null;\r\n\t\tthis.r1=Math.PI / 2;\r\n\t\t(round===void 0)&& (round=0);\r\n\t\tthis.x=x;\r\n\t\tthis.y=y;\r\n\t\tthis.width=width;\r\n\t\tthis.height=height;\r\n\t\tthis.edges=edges;\r\n\t\tthis.color=color;\r\n\t\tthis.borderWidth=borderWidth;\r\n\t\tthis.borderColor=borderColor;\r\n\t}\r\n\r\n\t__class(BasePoly,'laya.webgl.shapes.BasePoly');\r\n\tvar __proto=BasePoly.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.shapes.IShape\":true})\r\n\t__proto.getData=function(ib,vb,start){}\r\n\t__proto.rebuild=function(points){}\r\n\t__proto.setMatrix=function(mat){}\r\n\t__proto.needUpdate=function(mat){\r\n\t\treturn true;\r\n\t}\r\n\r\n\t__proto.sector=function(outVert,outIndex,start){\r\n\t\tvar x=this.x,y=this.y,edges=this.edges,seg=(this.r1-this.r0)/ edges;\r\n\t\tvar w=this.width,h=this.height,color=this.color;\r\n\t\tvar r=((color >> 16)& 0x0000ff)/ 255,g=((color >> 8)& 0xff)/ 255,b=(color & 0x0000ff)/ 255;\r\n\t\toutVert.push(x,y,r,g,b);\r\n\t\tfor (var i=0;i < edges+1;i++){\r\n\t\t\toutVert.push(x+Math.sin(seg *i+this.r0)*w,y+Math.cos(seg *i+this.r0)*h);\r\n\t\t\toutVert.push(r,g,b);\r\n\t\t}\r\n\t\tfor (i=0;i < edges;i++){\r\n\t\t\toutIndex.push(start,start+i+1,start+i+2);\r\n\t\t}\r\n\t}\r\n\r\n\t//用于画线\r\n\t__proto.createLine2=function(p,indices,lineWidth,len,outVertex,indexCount){\r\n\t\tvar points=p.concat();\r\n\t\tvar result=outVertex;\r\n\t\tvar color=this.borderColor;\r\n\t\tvar r=((color >> 16)& 0x0000ff)/ 255,g=((color >> 8)& 0xff)/ 255,b=(color & 0x0000ff)/ 255;\r\n\t\tvar length=points.length / 2;\r\n\t\tvar iStart=len,w=lineWidth / 2;\r\n\t\tvar px,py,p1x,p1y,p2x,p2y,p3x,p3y;\r\n\t\tvar perpx,perpy,perp2x,perp2y,perp3x,perp3y;\r\n\t\tvar a1,b1,c1,a2,b2,c2;\r\n\t\tvar denom,pdist,dist;\r\n\t\tp1x=points[0];\r\n\t\tp1y=points[1];\r\n\t\tp2x=points[2];\r\n\t\tp2y=points[3];\r\n\t\tperpx=-(p1y-p2y);\r\n\t\tperpy=p1x-p2x;\r\n\t\tdist=Math.sqrt(perpx *perpx+perpy *perpy);\r\n\t\tperpx=perpx / dist *w;\r\n\t\tperpy=perpy / dist *w;\r\n\t\tresult.push(p1x-perpx+this.x,p1y-perpy+this.y,r,g,b,p1x+perpx+this.x,p1y+perpy+this.y,r,g,b);\r\n\t\tfor (var i=1;i < length-1;i++){\r\n\t\t\tp1x=points[(i-1)*2];\r\n\t\t\tp1y=points[(i-1)*2+1];\r\n\t\t\tp2x=points[(i)*2];\r\n\t\t\tp2y=points[(i)*2+1];\r\n\t\t\tp3x=points[(i+1)*2];\r\n\t\t\tp3y=points[(i+1)*2+1];\r\n\t\t\tperpx=-(p1y-p2y);\r\n\t\t\tperpy=p1x-p2x;\r\n\t\t\tdist=Math.sqrt(perpx *perpx+perpy *perpy);\r\n\t\t\tperpx=perpx / dist *w;\r\n\t\t\tperpy=perpy / dist *w;\r\n\t\t\tperp2x=-(p2y-p3y);\r\n\t\t\tperp2y=p2x-p3x;\r\n\t\t\tdist=Math.sqrt(perp2x *perp2x+perp2y *perp2y);\r\n\t\t\tperp2x=perp2x / dist *w;\r\n\t\t\tperp2y=perp2y / dist *w;\r\n\t\t\ta1=(-perpy+p1y)-(-perpy+p2y);\r\n\t\t\tb1=(-perpx+p2x)-(-perpx+p1x);\r\n\t\t\tc1=(-perpx+p1x)*(-perpy+p2y)-(-perpx+p2x)*(-perpy+p1y);\r\n\t\t\ta2=(-perp2y+p3y)-(-perp2y+p2y);\r\n\t\t\tb2=(-perp2x+p2x)-(-perp2x+p3x);\r\n\t\t\tc2=(-perp2x+p3x)*(-perp2y+p2y)-(-perp2x+p2x)*(-perp2y+p3y);\r\n\t\t\tdenom=a1 *b2-a2 *b1;\r\n\t\t\tif (Math.abs(denom)< 0.1){\r\n\t\t\t\tdenom+=10.1;\r\n\t\t\t\tresult.push(p2x-perpx+this.x,p2y-perpy+this.y,r,g,b,p2x+perpx+this.x,p2y+perpy+this.y,r,g,b);\r\n\t\t\t\tcontinue ;\r\n\t\t\t}\r\n\t\t\tpx=(b1 *c2-b2 *c1)/ denom;\r\n\t\t\tpy=(a2 *c1-a1 *c2)/ denom;\r\n\t\t\tpdist=(px-p2x)*(px-p2x)+(py-p2y)+(py-p2y);\r\n\t\t\tresult.push(px+this.x,py+this.y,r,g,b,p2x-(px-p2x)+this.x,p2y-(py-p2y)+this.y,r,g,b);\r\n\t\t}\r\n\t\tp1x=points[points.length-4];\r\n\t\tp1y=points[points.length-3];\r\n\t\tp2x=points[points.length-2];\r\n\t\tp2y=points[points.length-1];\r\n\t\tperpx=-(p1y-p2y);\r\n\t\tperpy=p1x-p2x;\r\n\t\tdist=Math.sqrt(perpx *perpx+perpy *perpy);\r\n\t\tperpx=perpx / dist *w;\r\n\t\tperpy=perpy / dist *w;\r\n\t\tresult.push(p2x-perpx+this.x,p2y-perpy+this.y,r,g,b,p2x+perpx+this.x,p2y+perpy+this.y,r,g,b);\r\n\t\tvar groupLen=indexCount;\r\n\t\tfor (i=1;i < groupLen;i++){\r\n\t\t\tindices.push(iStart+(i-1)*2,iStart+(i-1)*2+1,iStart+i *2+1,iStart+i *2+1,iStart+i *2,iStart+(i-1)*2);\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\t// /*,outVertex:Array,outIndex:Array*/\r\n\t__proto.createLine=function(p,indices,lineWidth,len){\r\n\t\tvar points=p.concat();\r\n\t\tvar result=p;\r\n\t\tvar color=this.borderColor;\r\n\t\tvar r=((color >> 16)& 0x0000ff)/ 255,g=((color >> 8)& 0xff)/ 255,b=(color & 0x0000ff)/ 255;\r\n\t\tpoints.splice(0,5);\r\n\t\tvar length=points.length / 5;\r\n\t\tvar iStart=len,w=lineWidth / 2;\r\n\t\tvar px,py,p1x,p1y,p2x,p2y,p3x,p3y;\r\n\t\tvar perpx,perpy,perp2x,perp2y,perp3x,perp3y;\r\n\t\tvar a1,b1,c1,a2,b2,c2;\r\n\t\tvar denom,pdist,dist;\r\n\t\tp1x=points[0];\r\n\t\tp1y=points[1];\r\n\t\tp2x=points[5];\r\n\t\tp2y=points[6];\r\n\t\tperpx=-(p1y-p2y);\r\n\t\tperpy=p1x-p2x;\r\n\t\tdist=Math.sqrt(perpx *perpx+perpy *perpy);\r\n\t\tperpx=perpx / dist *w;\r\n\t\tperpy=perpy / dist *w;\r\n\t\tresult.push(p1x-perpx,p1y-perpy,r,g,b,p1x+perpx,p1y+perpy,r,g,b);\r\n\t\tfor (var i=1;i < length-1;i++){\r\n\t\t\tp1x=points[(i-1)*5];\r\n\t\t\tp1y=points[(i-1)*5+1];\r\n\t\t\tp2x=points[(i)*5];\r\n\t\t\tp2y=points[(i)*5+1];\r\n\t\t\tp3x=points[(i+1)*5];\r\n\t\t\tp3y=points[(i+1)*5+1];\r\n\t\t\tperpx=-(p1y-p2y);\r\n\t\t\tperpy=p1x-p2x;\r\n\t\t\tdist=Math.sqrt(perpx *perpx+perpy *perpy);\r\n\t\t\tperpx=perpx / dist *w;\r\n\t\t\tperpy=perpy / dist *w;\r\n\t\t\tperp2x=-(p2y-p3y);\r\n\t\t\tperp2y=p2x-p3x;\r\n\t\t\tdist=Math.sqrt(perp2x *perp2x+perp2y *perp2y);\r\n\t\t\tperp2x=perp2x / dist *w;\r\n\t\t\tperp2y=perp2y / dist *w;\r\n\t\t\ta1=(-perpy+p1y)-(-perpy+p2y);\r\n\t\t\tb1=(-perpx+p2x)-(-perpx+p1x);\r\n\t\t\tc1=(-perpx+p1x)*(-perpy+p2y)-(-perpx+p2x)*(-perpy+p1y);\r\n\t\t\ta2=(-perp2y+p3y)-(-perp2y+p2y);\r\n\t\t\tb2=(-perp2x+p2x)-(-perp2x+p3x);\r\n\t\t\tc2=(-perp2x+p3x)*(-perp2y+p2y)-(-perp2x+p2x)*(-perp2y+p3y);\r\n\t\t\tdenom=a1 *b2-a2 *b1;\r\n\t\t\tif (Math.abs(denom)< 0.1){\r\n\t\t\t\tdenom+=10.1;\r\n\t\t\t\tresult.push(p2x-perpx,p2y-perpy,r,g,b,p2x+perpx,p2y+perpy,r,g,b);\r\n\t\t\t\tcontinue ;\r\n\t\t\t}\r\n\t\t\tpx=(b1 *c2-b2 *c1)/ denom;\r\n\t\t\tpy=(a2 *c1-a1 *c2)/ denom;\r\n\t\t\tpdist=(px-p2x)*(px-p2x)+(py-p2y)+(py-p2y);\r\n\t\t\tresult.push(px,py,r,g,b,p2x-(px-p2x),p2y-(py-p2y),r,g,b);\r\n\t\t}\r\n\t\tp1x=points[points.length-10];\r\n\t\tp1y=points[points.length-9];\r\n\t\tp2x=points[points.length-5];\r\n\t\tp2y=points[points.length-4];\r\n\t\tperpx=-(p1y-p2y);\r\n\t\tperpy=p1x-p2x;\r\n\t\tdist=Math.sqrt(perpx *perpx+perpy *perpy);\r\n\t\tperpx=perpx / dist *w;\r\n\t\tperpy=perpy / dist *w;\r\n\t\tresult.push(p2x-perpx,p2y-perpy,r,g,b,p2x+perpx,p2y+perpy,r,g,b);\r\n\t\tvar groupLen=this.edges+1;\r\n\t\tfor (i=1;i < groupLen;i++){\r\n\t\t\tindices.push(iStart+(i-1)*2,iStart+(i-1)*2+1,iStart+i *2+1,iStart+i *2+1,iStart+i *2,iStart+(i-1)*2);\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\t//闭合路径\r\n\t__proto.createLoopLine=function(p,indices,lineWidth,len,outVertex,outIndex){\r\n\t\tvar points=p.concat();\r\n\t\tvar result=outVertex ? outVertex :p;\r\n\t\tvar color=this.borderColor;\r\n\t\tvar r=((color >> 16)& 0x0000ff)/ 255,g=((color >> 8)& 0xff)/ 255,b=(color & 0x0000ff)/ 255;\r\n\t\tpoints.splice(0,5);\r\n\t\tvar firstPoint=[points[0],points[1]];\r\n\t\tvar lastPoint=[points[points.length-5],points[points.length-4]];\r\n\t\tvar midPointX=lastPoint[0]+(firstPoint[0]-lastPoint[0])*0.5;\r\n\t\tvar midPointY=lastPoint[1]+(firstPoint[1]-lastPoint[1])*0.5;\r\n\t\tpoints.unshift(midPointX,midPointY,0,0,0);\r\n\t\tpoints.push(midPointX,midPointY,0,0,0);\r\n\t\tvar length=points.length / 5;\r\n\t\tvar iStart=len,w=lineWidth / 2;\r\n\t\tvar px,py,p1x,p1y,p2x,p2y,p3x,p3y;\r\n\t\tvar perpx,perpy,perp2x,perp2y,perp3x,perp3y;\r\n\t\tvar a1,b1,c1,a2,b2,c2;\r\n\t\tvar denom,pdist,dist;\r\n\t\tp1x=points[0];\r\n\t\tp1y=points[1];\r\n\t\tp2x=points[5];\r\n\t\tp2y=points[6];\r\n\t\tperpx=-(p1y-p2y);\r\n\t\tperpy=p1x-p2x;\r\n\t\tdist=Math.sqrt(perpx *perpx+perpy *perpy);\r\n\t\tperpx=perpx / dist *w;\r\n\t\tperpy=perpy / dist *w;\r\n\t\tresult.push(p1x-perpx,p1y-perpy,r,g,b,p1x+perpx,p1y+perpy,r,g,b);\r\n\t\tfor (var i=1;i < length-1;i++){\r\n\t\t\tp1x=points[(i-1)*5];\r\n\t\t\tp1y=points[(i-1)*5+1];\r\n\t\t\tp2x=points[(i)*5];\r\n\t\t\tp2y=points[(i)*5+1];\r\n\t\t\tp3x=points[(i+1)*5];\r\n\t\t\tp3y=points[(i+1)*5+1];\r\n\t\t\tperpx=-(p1y-p2y);\r\n\t\t\tperpy=p1x-p2x;\r\n\t\t\tdist=Math.sqrt(perpx *perpx+perpy *perpy);\r\n\t\t\tperpx=perpx / dist *w;\r\n\t\t\tperpy=perpy / dist *w;\r\n\t\t\tperp2x=-(p2y-p3y);\r\n\t\t\tperp2y=p2x-p3x;\r\n\t\t\tdist=Math.sqrt(perp2x *perp2x+perp2y *perp2y);\r\n\t\t\tperp2x=perp2x / dist *w;\r\n\t\t\tperp2y=perp2y / dist *w;\r\n\t\t\ta1=(-perpy+p1y)-(-perpy+p2y);\r\n\t\t\tb1=(-perpx+p2x)-(-perpx+p1x);\r\n\t\t\tc1=(-perpx+p1x)*(-perpy+p2y)-(-perpx+p2x)*(-perpy+p1y);\r\n\t\t\ta2=(-perp2y+p3y)-(-perp2y+p2y);\r\n\t\t\tb2=(-perp2x+p2x)-(-perp2x+p3x);\r\n\t\t\tc2=(-perp2x+p3x)*(-perp2y+p2y)-(-perp2x+p2x)*(-perp2y+p3y);\r\n\t\t\tdenom=a1 *b2-a2 *b1;\r\n\t\t\tif (Math.abs(denom)< 0.1){\r\n\t\t\t\tdenom+=10.1;\r\n\t\t\t\tresult.push(p2x-perpx,p2y-perpy,r,g,b,p2x+perpx,p2y+perpy,r,g,b);\r\n\t\t\t\tcontinue ;\r\n\t\t\t}\r\n\t\t\tpx=(b1 *c2-b2 *c1)/ denom;\r\n\t\t\tpy=(a2 *c1-a1 *c2)/ denom;\r\n\t\t\tpdist=(px-p2x)*(px-p2x)+(py-p2y)+(py-p2y);\r\n\t\t\tresult.push(px,py,r,g,b,p2x-(px-p2x),p2y-(py-p2y),r,g,b);\r\n\t\t}\r\n\t\tif (outIndex){\r\n\t\t\tindices=outIndex;\r\n\t\t};\r\n\t\tvar groupLen=this.edges+1;\r\n\t\tfor (i=1;i < groupLen;i++){\r\n\t\t\tindices.push(iStart+(i-1)*2,iStart+(i-1)*2+1,iStart+i *2+1,iStart+i *2+1,iStart+i *2,iStart+(i-1)*2);\r\n\t\t}\r\n\t\tindices.push(iStart+(i-1)*2,iStart+(i-1)*2+1,iStart+1,iStart+1,iStart,iStart+(i-1)*2);\r\n\t\treturn result;\r\n\t}\r\n\r\n\treturn BasePoly;\r\n})()\r\n\r\n\r\n//class laya.webgl.shapes.Earcut\r\nvar Earcut=(function(){\r\n\tfunction Earcut(){}\r\n\t__class(Earcut,'laya.webgl.shapes.Earcut');\r\n\tEarcut.earcut=function(data,holeIndices,dim){\r\n\t\tdim=dim || 2;\r\n\t\tvar hasHoles=holeIndices && holeIndices.length,\r\n\t\touterLen=hasHoles ? holeIndices[0] *dim :data.length,\r\n\t\touterNode=Earcut.linkedList(data,0,outerLen,dim,true),\r\n\t\ttriangles=[];\r\n\t\tif (!outerNode)return triangles;\r\n\t\tvar minX,minY,maxX,maxY,x,y,invSize;\r\n\t\tif (hasHoles)outerNode=Earcut.eliminateHoles(data,holeIndices,outerNode,dim);\r\n\t\tif (data.length > 80 *dim){\r\n\t\t\tminX=maxX=data[0];\r\n\t\t\tminY=maxY=data[1];\r\n\t\t\tfor (var i=dim;i < outerLen;i+=dim){\r\n\t\t\t\tx=data[i];\r\n\t\t\t\ty=data[i+1];\r\n\t\t\t\tif (x < minX)minX=x;\r\n\t\t\t\tif (y < minY)minY=y;\r\n\t\t\t\tif (x > maxX)maxX=x;\r\n\t\t\t\tif (y > maxY)maxY=y;\r\n\t\t\t}\r\n\t\t\tinvSize=Math.max(maxX-minX,maxY-minY);\r\n\t\t\tinvSize=invSize!==0 ? 1 / invSize :0;\r\n\t\t}\r\n\t\tEarcut.earcutLinked(outerNode,triangles,dim,minX,minY,invSize);\r\n\t\treturn triangles;\r\n\t}\r\n\r\n\tEarcut.linkedList=function(data,start,end,dim,clockwise){\r\n\t\tvar i,last;\r\n\t\tif (clockwise===(Earcut.signedArea(data,start,end,dim)> 0)){\r\n\t\t\tfor (i=start;i < end;i+=dim)last=Earcut.insertNode(i,data[i],data[i+1],last);\r\n\t\t\t}else {\r\n\t\t\tfor (i=end-dim;i >=start;i-=dim)last=Earcut.insertNode(i,data[i],data[i+1],last);\r\n\t\t}\r\n\t\tif (last && Earcut.equals(last,last.next)){\r\n\t\t\tEarcut.removeNode(last);\r\n\t\t\tlast=last.next;\r\n\t\t}\r\n\t\treturn last;\r\n\t}\r\n\r\n\tEarcut.filterPoints=function(start,end){\r\n\t\tif (!start)return start;\r\n\t\tif (!end)end=start;\r\n\t\tvar p=start,\r\n\t\tagain;\r\n\t\tdo {\r\n\t\t\tagain=false;\r\n\t\t\tif (!p.steiner && (Earcut.equals(p,p.next)|| Earcut.area(p.prev,p,p.next)===0)){\r\n\t\t\t\tEarcut.removeNode(p);\r\n\t\t\t\tp=end=p.prev;\r\n\t\t\t\tif (p===p.next)break ;\r\n\t\t\t\tagain=true;\r\n\t\t\t\t}else {\r\n\t\t\t\tp=p.next;\r\n\t\t\t}\r\n\t\t}while (again || p!==end);\r\n\t\treturn end;\r\n\t}\r\n\r\n\tEarcut.earcutLinked=function(ear,triangles,dim,minX,minY,invSize,pass){\r\n\t\tif (!ear)return;\r\n\t\tif (!pass && invSize)Earcut.indexCurve(ear,minX,minY,invSize);\r\n\t\tvar stop=ear,\r\n\t\tprev,next;\r\n\t\twhile (ear.prev!==ear.next){\r\n\t\t\tprev=ear.prev;\r\n\t\t\tnext=ear.next;\r\n\t\t\tif (invSize ? Earcut.isEarHashed(ear,minX,minY,invSize):Earcut.isEar(ear)){\r\n\t\t\t\ttriangles.push(prev.i / dim);\r\n\t\t\t\ttriangles.push(ear.i / dim);\r\n\t\t\t\ttriangles.push(next.i / dim);\r\n\t\t\t\tEarcut.removeNode(ear);\r\n\t\t\t\tear=next.next;\r\n\t\t\t\tstop=next.next;\r\n\t\t\t\tcontinue ;\r\n\t\t\t}\r\n\t\t\tear=next;\r\n\t\t\tif (ear===stop){\r\n\t\t\t\tif (!pass){\r\n\t\t\t\t\tEarcut.earcutLinked(Earcut.filterPoints(ear,null),triangles,dim,minX,minY,invSize,1);\r\n\t\t\t\t\t}else if (pass===1){\r\n\t\t\t\t\tear=Earcut.cureLocalIntersections(ear,triangles,dim);\r\n\t\t\t\t\tEarcut.earcutLinked(ear,triangles,dim,minX,minY,invSize,2);\r\n\t\t\t\t\t}else if (pass===2){\r\n\t\t\t\t\tEarcut.splitEarcut(ear,triangles,dim,minX,minY,invSize);\r\n\t\t\t\t}\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tEarcut.isEar=function(ear){\r\n\t\tvar a=ear.prev,\r\n\t\tb=ear,\r\n\t\tc=ear.next;\r\n\t\tif (Earcut.area(a,b,c)>=0)return false;\r\n\t\tvar p=ear.next.next;\r\n\t\twhile (p!==ear.prev){\r\n\t\t\tif (Earcut.pointInTriangle(a.x,a.y,b.x,b.y,c.x,c.y,p.x,p.y)&&\r\n\t\t\t\tEarcut.area(p.prev,p,p.next)>=0)return false;\r\n\t\t\tp=p.next;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tEarcut.isEarHashed=function(ear,minX,minY,invSize){\r\n\t\tvar a=ear.prev,\r\n\t\tb=ear,\r\n\t\tc=ear.next;\r\n\t\tif (Earcut.area(a,b,c)>=0)return false;\r\n\t\tvar minTX=a.x < b.x ? (a.x < c.x ? a.x :c.x):(b.x < c.x ? b.x :c.x),\r\n\t\tminTY=a.y < b.y ? (a.y < c.y ? a.y :c.y):(b.y < c.y ? b.y :c.y),\r\n\t\tmaxTX=a.x > b.x ? (a.x > c.x ? a.x :c.x):(b.x > c.x ? b.x :c.x),\r\n\t\tmaxTY=a.y > b.y ? (a.y > c.y ? a.y :c.y):(b.y > c.y ? b.y :c.y);\r\n\t\tvar minZ=Earcut.zOrder(minTX,minTY,minX,minY,invSize),\r\n\t\tmaxZ=Earcut.zOrder(maxTX,maxTY,minX,minY,invSize);\r\n\t\tvar p=ear.nextZ;\r\n\t\twhile (p && p.z <=maxZ){\r\n\t\t\tif (p!==ear.prev && p!==ear.next &&\r\n\t\t\t\tEarcut.pointInTriangle(a.x,a.y,b.x,b.y,c.x,c.y,p.x,p.y)&&\r\n\t\t\tEarcut.area(p.prev,p,p.next)>=0)return false;\r\n\t\t\tp=p.nextZ;\r\n\t\t}\r\n\t\tp=ear.prevZ;\r\n\t\twhile (p && p.z >=minZ){\r\n\t\t\tif (p!==ear.prev && p!==ear.next &&\r\n\t\t\t\tEarcut.pointInTriangle(a.x,a.y,b.x,b.y,c.x,c.y,p.x,p.y)&&\r\n\t\t\tEarcut.area(p.prev,p,p.next)>=0)return false;\r\n\t\t\tp=p.prevZ;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tEarcut.cureLocalIntersections=function(start,triangles,dim){\r\n\t\tvar p=start;\r\n\t\tdo {\r\n\t\t\tvar a=p.prev,\r\n\t\t\tb=p.next.next;\r\n\t\t\tif (!Earcut.equals(a,b)&& Earcut.intersects(a,p,p.next,b)&& Earcut.locallyInside(a,b)&& Earcut.locallyInside(b,a)){\r\n\t\t\t\ttriangles.push(a.i / dim);\r\n\t\t\t\ttriangles.push(p.i / dim);\r\n\t\t\t\ttriangles.push(b.i / dim);\r\n\t\t\t\tEarcut.removeNode(p);\r\n\t\t\t\tEarcut.removeNode(p.next);\r\n\t\t\t\tp=start=b;\r\n\t\t\t}\r\n\t\t\tp=p.next;\r\n\t\t}while (p!==start);\r\n\t\treturn p;\r\n\t}\r\n\r\n\tEarcut.splitEarcut=function(start,triangles,dim,minX,minY,invSize){\r\n\t\tvar a=start;\r\n\t\tdo {\r\n\t\t\tvar b=a.next.next;\r\n\t\t\twhile (b!==a.prev){\r\n\t\t\t\tif (a.i!==b.i && Earcut.isValidDiagonal(a,b)){\r\n\t\t\t\t\tvar c=Earcut.splitPolygon(a,b);\r\n\t\t\t\t\ta=Earcut.filterPoints(a,a.next);\r\n\t\t\t\t\tc=Earcut.filterPoints(c,c.next);\r\n\t\t\t\t\tEarcut.earcutLinked(a,triangles,dim,minX,minY,invSize);\r\n\t\t\t\t\tEarcut.earcutLinked(c,triangles,dim,minX,minY,invSize);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tb=b.next;\r\n\t\t\t}\r\n\t\t\ta=a.next;\r\n\t\t}while (a!==start);\r\n\t}\r\n\r\n\tEarcut.eliminateHoles=function(data,holeIndices,outerNode,dim){\r\n\t\tvar queue=[],\r\n\t\ti,len,start,end,list;\r\n\t\tfor (i=0,len=holeIndices.length;i < len;i++){\r\n\t\t\tstart=holeIndices[i] *dim;\r\n\t\t\tend=i < len-1 ? holeIndices[i+1] *dim :data.length;\r\n\t\t\tlist=Earcut.linkedList(data,start,end,dim,false);\r\n\t\t\tif (list===list.next)list.steiner=true;\r\n\t\t\tqueue.push(Earcut.getLeftmost(list));\r\n\t\t}\r\n\t\tqueue.sort(Earcut.compareX);\r\n\t\tfor (i=0;i < queue.length;i++){\r\n\t\t\tEarcut.eliminateHole(queue[i],outerNode);\r\n\t\t\touterNode=Earcut.filterPoints(outerNode,outerNode.next);\r\n\t\t}\r\n\t\treturn outerNode;\r\n\t}\r\n\r\n\tEarcut.compareX=function(a,b){\r\n\t\treturn a.x-b.x;\r\n\t}\r\n\r\n\tEarcut.eliminateHole=function(hole,outerNode){\r\n\t\touterNode=Earcut.findHoleBridge(hole,outerNode);\r\n\t\tif (outerNode){\r\n\t\t\tvar b=Earcut.splitPolygon(outerNode,hole);\r\n\t\t\tEarcut.filterPoints(b,b.next);\r\n\t\t}\r\n\t}\r\n\r\n\tEarcut.findHoleBridge=function(hole,outerNode){\r\n\t\tvar p=outerNode,\r\n\t\thx=hole.x,\r\n\t\thy=hole.y,\r\n\t\tqx=-Infinity,\r\n\t\tm;\r\n\t\tdo {\r\n\t\t\tif (hy <=p.y && hy >=p.next.y && p.next.y!==p.y){\r\n\t\t\t\tvar x=p.x+(hy-p.y)*(p.next.x-p.x)/ (p.next.y-p.y);\r\n\t\t\t\tif (x <=hx && x > qx){\r\n\t\t\t\t\tqx=x;\r\n\t\t\t\t\tif (x===hx){\r\n\t\t\t\t\t\tif (hy===p.y)return p;\r\n\t\t\t\t\t\tif (hy===p.next.y)return p.next;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tm=p.x < p.next.x ? p :p.next;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tp=p.next;\r\n\t\t}while (p!==outerNode);\r\n\t\tif (!m)return null;\r\n\t\tif (hx===qx)return m.prev;\r\n\t\tvar stop=m,\r\n\t\tmx=m.x,\r\n\t\tmy=m.y,\r\n\t\ttanMin=Infinity,\r\n\t\ttan;\r\n\t\tp=m.next;\r\n\t\twhile (p!==stop){\r\n\t\t\tif (hx >=p.x && p.x >=mx && hx!==p.x &&\r\n\t\t\t\tEarcut.pointInTriangle(hy < my ? hx :qx,hy,mx,my,hy < my ? qx :hx,hy,p.x,p.y)){\r\n\t\t\t\ttan=Math.abs(hy-p.y)/ (hx-p.x);\r\n\t\t\t\tif ((tan < tanMin || (tan===tanMin && p.x > m.x))&& Earcut.locallyInside(p,hole)){\r\n\t\t\t\t\tm=p;\r\n\t\t\t\t\ttanMin=tan;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tp=p.next;\r\n\t\t}\r\n\t\treturn m;\r\n\t}\r\n\r\n\tEarcut.indexCurve=function(start,minX,minY,invSize){\r\n\t\tvar p=start;\r\n\t\tdo {\r\n\t\t\tif (p.z===null)p.z=Earcut.zOrder(p.x,p.y,minX,minY,invSize);\r\n\t\t\tp.prevZ=p.prev;\r\n\t\t\tp.nextZ=p.next;\r\n\t\t\tp=p.next;\r\n\t\t}while (p!==start);\r\n\t\tp.prevZ.nextZ=null;\r\n\t\tp.prevZ=null;\r\n\t\tEarcut.sortLinked(p);\r\n\t}\r\n\r\n\tEarcut.sortLinked=function(list){\r\n\t\tvar i,p,q,e,tail,numMerges,pSize,qSize,\r\n\t\tinSize=1;\r\n\t\tdo {\r\n\t\t\tp=list;\r\n\t\t\tlist=null;\r\n\t\t\ttail=null;\r\n\t\t\tnumMerges=0;\r\n\t\t\twhile (p){\r\n\t\t\t\tnumMerges++;\r\n\t\t\t\tq=p;\r\n\t\t\t\tpSize=0;\r\n\t\t\t\tfor (i=0;i < inSize;i++){\r\n\t\t\t\t\tpSize++;\r\n\t\t\t\t\tq=q.nextZ;\r\n\t\t\t\t\tif (!q)break ;\r\n\t\t\t\t}\r\n\t\t\t\tqSize=inSize;\r\n\t\t\t\twhile (pSize > 0 || (qSize > 0 && q)){\r\n\t\t\t\t\tif (pSize!==0 && (qSize===0 || !q || p.z <=q.z)){\r\n\t\t\t\t\t\te=p;\r\n\t\t\t\t\t\tp=p.nextZ;\r\n\t\t\t\t\t\tpSize--;\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\te=q;\r\n\t\t\t\t\t\tq=q.nextZ;\r\n\t\t\t\t\t\tqSize--;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (tail)tail.nextZ=e;\r\n\t\t\t\t\telse list=e;\r\n\t\t\t\t\te.prevZ=tail;\r\n\t\t\t\t\ttail=e;\r\n\t\t\t\t}\r\n\t\t\t\tp=q;\r\n\t\t\t}\r\n\t\t\ttail.nextZ=null;\r\n\t\t\tinSize *=2;\r\n\t\t}while (numMerges > 1);\r\n\t\treturn list;\r\n\t}\r\n\r\n\tEarcut.zOrder=function(x,y,minX,minY,invSize){\r\n\t\tx=32767 *(x-minX)*invSize;\r\n\t\ty=32767 *(y-minY)*invSize;\r\n\t\tx=(x | (x << 8))& 0x00FF00FF;\r\n\t\tx=(x | (x << 4))& 0x0F0F0F0F;\r\n\t\tx=(x | (x << 2))& 0x33333333;\r\n\t\tx=(x | (x << 1))& 0x55555555;\r\n\t\ty=(y | (y << 8))& 0x00FF00FF;\r\n\t\ty=(y | (y << 4))& 0x0F0F0F0F;\r\n\t\ty=(y | (y << 2))& 0x33333333;\r\n\t\ty=(y | (y << 1))& 0x55555555;\r\n\t\treturn x | (y << 1);\r\n\t}\r\n\r\n\tEarcut.getLeftmost=function(start){\r\n\t\tvar p=start,\r\n\t\tleftmost=start;\r\n\t\tdo {\r\n\t\t\tif (p.x < leftmost.x)leftmost=p;\r\n\t\t\tp=p.next;\r\n\t\t}while (p!==start);\r\n\t\treturn leftmost;\r\n\t}\r\n\r\n\tEarcut.pointInTriangle=function(ax,ay,bx,by,cx,cy,px,py){\r\n\t\treturn (cx-px)*(ay-py)-(ax-px)*(cy-py)>=0 &&\r\n\t\t(ax-px)*(by-py)-(bx-px)*(ay-py)>=0 &&\r\n\t\t(bx-px)*(cy-py)-(cx-px)*(by-py)>=0;\r\n\t}\r\n\r\n\tEarcut.isValidDiagonal=function(a,b){\r\n\t\treturn a.next.i!==b.i && a.prev.i!==b.i && !Earcut.intersectsPolygon(a,b)&&\r\n\t\tEarcut.locallyInside(a,b)&& Earcut.locallyInside(b,a)&& Earcut.middleInside(a,b);\r\n\t}\r\n\r\n\tEarcut.area=function(p,q,r){\r\n\t\treturn (q.y-p.y)*(r.x-q.x)-(q.x-p.x)*(r.y-q.y);\r\n\t}\r\n\r\n\tEarcut.equals=function(p1,p2){\r\n\t\treturn p1.x===p2.x && p1.y===p2.y;\r\n\t}\r\n\r\n\tEarcut.intersects=function(p1,q1,p2,q2){\r\n\t\tif ((Earcut.equals(p1,q1)&& Earcut.equals(p2,q2))||\r\n\t\t\t(Earcut.equals(p1,q2)&& Earcut.equals(p2,q1)))return true;\r\n\t\treturn Earcut.area(p1,q1,p2)> 0!==Earcut.area(p1,q1,q2)> 0 &&\r\n\t\tEarcut.area(p2,q2,p1)> 0!==Earcut.area(p2,q2,q1)> 0;\r\n\t}\r\n\r\n\tEarcut.intersectsPolygon=function(a,b){\r\n\t\tvar p=a;\r\n\t\tdo {\r\n\t\t\tif (p.i!==a.i && p.next.i!==a.i && p.i!==b.i && p.next.i!==b.i &&\r\n\t\t\t\tEarcut.intersects(p,p.next,a,b))return true;\r\n\t\t\tp=p.next;\r\n\t\t}while (p!==a);\r\n\t\treturn false;\r\n\t}\r\n\r\n\tEarcut.locallyInside=function(a,b){\r\n\t\treturn Earcut.area(a.prev,a,a.next)< 0 ?\r\n\t\tEarcut.area(a,b,a.next)>=0 && Earcut.area(a,a.prev,b)>=0 :\r\n\t\tEarcut.area(a,b,a.prev)< 0 || Earcut.area(a,a.next,b)< 0;\r\n\t}\r\n\r\n\tEarcut.middleInside=function(a,b){\r\n\t\tvar p=a,\r\n\t\tinside=false,\r\n\t\tpx=(a.x+b.x)/ 2,\r\n\t\tpy=(a.y+b.y)/ 2;\r\n\t\tdo {\r\n\t\t\tif (((p.y > py)!==(p.next.y > py))&& p.next.y!==p.y &&\r\n\t\t\t\t(px < (p.next.x-p.x)*(py-p.y)/ (p.next.y-p.y)+p.x))\r\n\t\t\tinside=!inside;\r\n\t\t\tp=p.next;\r\n\t\t}while (p!==a);\r\n\t\treturn inside;\r\n\t}\r\n\r\n\tEarcut.splitPolygon=function(a,b){\r\n\t\tvar a2=new EarcutNode(a.i,a.x,a.y),\r\n\t\tb2=new EarcutNode(b.i,b.x,b.y),\r\n\t\tan=a.next,\r\n\t\tbp=b.prev;\r\n\t\ta.next=b;\r\n\t\tb.prev=a;\r\n\t\ta2.next=an;\r\n\t\tan.prev=a2;\r\n\t\tb2.next=a2;\r\n\t\ta2.prev=b2;\r\n\t\tbp.next=b2;\r\n\t\tb2.prev=bp;\r\n\t\treturn b2;\r\n\t}\r\n\r\n\tEarcut.insertNode=function(i,x,y,last){\r\n\t\tvar p=new EarcutNode(i,x,y);\r\n\t\tif (!last){\r\n\t\t\tp.prev=p;\r\n\t\t\tp.next=p;\r\n\t\t\t}else {\r\n\t\t\tp.next=last.next;\r\n\t\t\tp.prev=last;\r\n\t\t\tlast.next.prev=p;\r\n\t\t\tlast.next=p;\r\n\t\t}\r\n\t\treturn p;\r\n\t}\r\n\r\n\tEarcut.removeNode=function(p){\r\n\t\tp.next.prev=p.prev;\r\n\t\tp.prev.next=p.next;\r\n\t\tif (p.prevZ)p.prevZ.nextZ=p.nextZ;\r\n\t\tif (p.nextZ)p.nextZ.prevZ=p.prevZ;\r\n\t}\r\n\r\n\tEarcut.signedArea=function(data,start,end,dim){\r\n\t\tvar sum=0;\r\n\t\tfor (var i=start,j=end-dim;i < end;i+=dim){\r\n\t\t\tsum+=(data[j]-data[i])*(data[i+1]+data[j+1]);\r\n\t\t\tj=i;\r\n\t\t}\r\n\t\treturn sum;\r\n\t}\r\n\r\n\treturn Earcut;\r\n})()\r\n\r\n\r\n//class laya.webgl.shapes.EarcutNode\r\nvar EarcutNode=(function(){\r\n\tfunction EarcutNode(i,x,y){\r\n\t\tthis.i=null;\r\n\t\tthis.x=null;\r\n\t\tthis.y=null;\r\n\t\tthis.prev=null;\r\n\t\tthis.next=null;\r\n\t\tthis.z=null;\r\n\t\tthis.prevZ=null;\r\n\t\tthis.nextZ=null;\r\n\t\tthis.steiner=null;\r\n\t\tthis.i=i;\r\n\t\tthis.x=x;\r\n\t\tthis.y=y;\r\n\t\tthis.prev=null;\r\n\t\tthis.next=null;\r\n\t\tthis.z=null;\r\n\t\tthis.prevZ=null;\r\n\t\tthis.nextZ=null;\r\n\t\tthis.steiner=false;\r\n\t}\r\n\r\n\t__class(EarcutNode,'laya.webgl.shapes.EarcutNode');\r\n\treturn EarcutNode;\r\n})()\r\n\r\n\r\n//class laya.webgl.shapes.GeometryData\r\nvar GeometryData=(function(){\r\n\tfunction GeometryData(lineWidth,lineColor,lineAlpha,fillColor,fillAlpha,fill,shape){\r\n\t\t//this.lineWidth=NaN;\r\n\t\t//this.lineColor=NaN;\r\n\t\t//this.lineAlpha=NaN;\r\n\t\t//this.fillColor=NaN;\r\n\t\t//this.fillAlpha=NaN;\r\n\t\t//this.shape=null;\r\n\t\t//this.fill=false;\r\n\t\tthis.lineWidth=lineWidth;\r\n\t\tthis.lineColor=lineColor;\r\n\t\tthis.lineAlpha=lineAlpha;\r\n\t\tthis.fillColor=fillColor;\r\n\t\tthis.fillAlpha=fillAlpha;\r\n\t\tthis.shape=shape;\r\n\t\tthis.fill=fill;\r\n\t}\r\n\r\n\t__class(GeometryData,'laya.webgl.shapes.GeometryData');\r\n\tvar __proto=GeometryData.prototype;\r\n\t__proto.clone=function(){\r\n\t\treturn new GeometryData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape);\r\n\t}\r\n\r\n\t__proto.getIndexData=function(){\r\n\t\treturn null;\r\n\t}\r\n\r\n\t__proto.getVertexData=function(){\r\n\t\treturn null;\r\n\t}\r\n\r\n\t__proto.destroy=function(){\r\n\t\tthis.shape=null;\r\n\t}\r\n\r\n\treturn GeometryData;\r\n})()\r\n\r\n\r\n//class laya.webgl.shapes.Vertex\r\nvar Vertex=(function(){\r\n\tfunction Vertex(p){\r\n\t\t//this.points=null;\r\n\t\tif((p instanceof Float32Array))\r\n\t\t\tthis.points=p;\r\n\t\telse if((p instanceof Array)){\r\n\t\t\tvar len=p.length;\r\n\t\t\tthis.points=new Float32Array(p);\r\n\t\t}\r\n\t}\r\n\r\n\t__class(Vertex,'laya.webgl.shapes.Vertex');\r\n\tvar __proto=Vertex.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.shapes.IShape\":true})\r\n\t__proto.getData=function(ib,vb,start){}\r\n\t__proto.needUpdate=function(mat){\r\n\t\treturn false;\r\n\t}\r\n\r\n\t__proto.rebuild=function(points){}\r\n\t// TODO Auto Generated method stub\r\n\t__proto.setMatrix=function(mat){}\r\n\treturn Vertex;\r\n})()\r\n\r\n\r\n//class laya.webgl.submit.Submit\r\nvar Submit=(function(){\r\n\tfunction Submit(renderType){\r\n\t\t//this._selfVb=null;\r\n\t\t//this._ib=null;\r\n\t\t//this._blendFn=null;\r\n\t\t//this._renderType=0;\r\n\t\t//this._vb=null;\r\n\t\t// 从VB中什么地方开始画，画到哪\r\n\t\t//this._startIdx=0;\r\n\t\t//this._numEle=0;\r\n\t\t//this.shaderValue=null;\r\n\t\t(renderType===void 0)&& (renderType=10000);\r\n\t\tthis._renderType=renderType;\r\n\t}\r\n\r\n\t__class(Submit,'laya.webgl.submit.Submit');\r\n\tvar __proto=Submit.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.submit.ISubmit\":true})\r\n\t__proto.releaseRender=function(){\r\n\t\tvar cache=Submit._cache;\r\n\t\tcache[cache._length++]=this;\r\n\t\tthis.shaderValue.release();\r\n\t\tthis._vb=null;\r\n\t}\r\n\r\n\t__proto.getRenderType=function(){\r\n\t\treturn this._renderType;\r\n\t}\r\n\r\n\t__proto.renderSubmit=function(){\r\n\t\tif (this._numEle===0)return 1;\r\n\t\tvar _tex=this.shaderValue.textureHost;\r\n\t\tif (_tex){\r\n\t\t\tvar source=_tex.source;\r\n\t\t\tif (!_tex.bitmap || !source)\r\n\t\t\t\treturn 1;\r\n\t\t\tthis.shaderValue.texture=source;\r\n\t\t}\r\n\t\tthis._vb.bind_upload(this._ib);\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tthis.shaderValue.upload();\r\n\t\tif (BlendMode.activeBlendFunction!==this._blendFn){\r\n\t\t\tgl.enable(/*laya.webgl.WebGLContext.BLEND*/0x0BE2);\r\n\t\t\tthis._blendFn(gl);\r\n\t\t\tBlendMode.activeBlendFunction=this._blendFn;\r\n\t\t}\r\n\t\tStat.drawCall++;\r\n\t\tStat.trianglesFaces+=this._numEle / 3;\r\n\t\tgl.drawElements(/*laya.webgl.WebGLContext.TRIANGLES*/0x0004,this._numEle,/*laya.webgl.WebGLContext.UNSIGNED_SHORT*/0x1403,this._startIdx);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\tSubmit.__init__=function(){\r\n\t\tvar s=Submit.RENDERBASE=new Submit(-1);\r\n\t\ts.shaderValue=new Value2D(0,0);\r\n\t\ts.shaderValue.ALPHA=-1234;\r\n\t}\r\n\r\n\tSubmit.createSubmit=function(context,ib,vb,pos,sv){\r\n\t\tvar o=Submit._cache._length ? Submit._cache[--Submit._cache._length] :new Submit();\r\n\t\tif (vb==null){\r\n\t\t\tvb=o._selfVb || (o._selfVb=VertexBuffer2D.create(-1));\r\n\t\t\tvb.clear();\r\n\t\t\tpos=0;\r\n\t\t}\r\n\t\to._ib=ib;\r\n\t\to._vb=vb;\r\n\t\to._startIdx=pos *CONST3D2D.BYTES_PIDX;\r\n\t\to._numEle=0;\r\n\t\tvar blendType=context._nBlendType;\r\n\t\to._blendFn=context._targets ? BlendMode.targetFns[blendType] :BlendMode.fns[blendType];\r\n\t\to.shaderValue=sv;\r\n\t\to.shaderValue.setValue(context._shader2D);\r\n\t\tvar filters=context._shader2D.filters;\r\n\t\tfilters && o.shaderValue.setFilters(filters);\r\n\t\treturn o;\r\n\t}\r\n\r\n\tSubmit.createShape=function(ctx,ib,vb,numEle,offset,sv){\r\n\t\tvar o=(!Submit._cache._length)? (new Submit()):Submit._cache[--Submit._cache._length];\r\n\t\to._ib=ib;\r\n\t\to._vb=vb;\r\n\t\to._numEle=numEle;\r\n\t\to._startIdx=offset;\r\n\t\to.shaderValue=sv;\r\n\t\to.shaderValue.setValue(ctx._shader2D);\r\n\t\tvar blendType=ctx._nBlendType;\r\n\t\to._blendFn=ctx._targets ? BlendMode.targetFns[blendType] :BlendMode.fns[blendType];\r\n\t\treturn o;\r\n\t}\r\n\r\n\tSubmit.TYPE_2D=10000;\r\n\tSubmit.TYPE_CANVAS=10003;\r\n\tSubmit.TYPE_CMDSETRT=10004;\r\n\tSubmit.TYPE_CUSTOM=10005;\r\n\tSubmit.TYPE_BLURRT=10006;\r\n\tSubmit.TYPE_CMDDESTORYPRERT=10007;\r\n\tSubmit.TYPE_DISABLESTENCIL=10008;\r\n\tSubmit.TYPE_OTHERIBVB=10009;\r\n\tSubmit.TYPE_PRIMITIVE=10010;\r\n\tSubmit.TYPE_RT=10011;\r\n\tSubmit.TYPE_BLUR_RT=10012;\r\n\tSubmit.TYPE_TARGET=10013;\r\n\tSubmit.TYPE_CHANGE_VALUE=10014;\r\n\tSubmit.TYPE_SHAPE=10015;\r\n\tSubmit.TYPE_TEXTURE=10016;\r\n\tSubmit.TYPE_FILLTEXTURE=10017;\r\n\tSubmit.RENDERBASE=null;\r\n\tSubmit._cache=(Submit._cache=[],Submit._cache._length=0,Submit._cache);\r\n\treturn Submit;\r\n})()\r\n\r\n\r\n//class laya.webgl.submit.SubmitCMD\r\nvar SubmitCMD=(function(){\r\n\tfunction SubmitCMD(){\r\n\t\tthis.fun=null;\r\n\t\tthis.args=null;\r\n\t}\r\n\r\n\t__class(SubmitCMD,'laya.webgl.submit.SubmitCMD');\r\n\tvar __proto=SubmitCMD.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.submit.ISubmit\":true})\r\n\t__proto.renderSubmit=function(){\r\n\t\tthis.fun.apply(null,this.args);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto.getRenderType=function(){\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto.releaseRender=function(){\r\n\t\tvar cache=SubmitCMD._cache;\r\n\t\tcache[cache._length++]=this;\r\n\t}\r\n\r\n\tSubmitCMD.create=function(args,fun){\r\n\t\tvar o=SubmitCMD._cache._length?SubmitCMD._cache[--SubmitCMD._cache._length]:new SubmitCMD();\r\n\t\to.fun=fun;\r\n\t\to.args=args;\r\n\t\treturn o;\r\n\t}\r\n\r\n\tSubmitCMD._cache=(SubmitCMD._cache=[],SubmitCMD._cache._length=0,SubmitCMD._cache);\r\n\treturn SubmitCMD;\r\n})()\r\n\r\n\r\n//class laya.webgl.submit.SubmitCMDScope\r\nvar SubmitCMDScope=(function(){\r\n\tfunction SubmitCMDScope(){\r\n\t\tthis.variables={};\r\n\t}\r\n\r\n\t__class(SubmitCMDScope,'laya.webgl.submit.SubmitCMDScope');\r\n\tvar __proto=SubmitCMDScope.prototype;\r\n\t__proto.getValue=function(name){\r\n\t\treturn this.variables[name];\r\n\t}\r\n\r\n\t__proto.addValue=function(name,value){\r\n\t\treturn this.variables[name]=value;\r\n\t}\r\n\r\n\t__proto.setValue=function(name,value){\r\n\t\tif(this.variables.hasOwnProperty(name)){\r\n\t\t\treturn this.variables[name]=value;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t__proto.clear=function(){\r\n\t\tfor(var key in this.variables){\r\n\t\t\tdelete this.variables[key];\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.recycle=function(){\r\n\t\tthis.clear();\r\n\t\tSubmitCMDScope.POOL.push(this);\r\n\t}\r\n\r\n\tSubmitCMDScope.create=function(){\r\n\t\tvar scope=SubmitCMDScope.POOL.pop();\r\n\t\tscope||(scope=new SubmitCMDScope());\r\n\t\treturn scope;\r\n\t}\r\n\r\n\tSubmitCMDScope.POOL=[];\r\n\treturn SubmitCMDScope;\r\n})()\r\n\r\n\r\n//class laya.webgl.submit.SubmitOtherIBVB\r\nvar SubmitOtherIBVB=(function(){\r\n\tfunction SubmitOtherIBVB(){\r\n\t\tthis.offset=0;\r\n\t\t//this._vb=null;\r\n\t\t//this._ib=null;\r\n\t\t//this._blendFn=null;\r\n\t\t//this._mat=null;\r\n\t\t//this._shader=null;\r\n\t\t//this._shaderValue=null;\r\n\t\t//this._numEle=0;\r\n\t\tthis.startIndex=0;\r\n\t\t;\r\n\t\tthis._mat=Matrix.create();\r\n\t}\r\n\r\n\t__class(SubmitOtherIBVB,'laya.webgl.submit.SubmitOtherIBVB');\r\n\tvar __proto=SubmitOtherIBVB.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.submit.ISubmit\":true})\r\n\t__proto.releaseRender=function(){\r\n\t\tvar cache=SubmitOtherIBVB._cache;\r\n\t\tcache[cache._length++]=this;\r\n\t}\r\n\r\n\t__proto.getRenderType=function(){\r\n\t\treturn /*laya.webgl.submit.Submit.TYPE_OTHERIBVB*/10009;\r\n\t}\r\n\r\n\t__proto.renderSubmit=function(){\r\n\t\tvar _tex=this._shaderValue.textureHost;\r\n\t\tif (_tex){\r\n\t\t\tvar source=_tex.source;\r\n\t\t\tif (!_tex.bitmap || !source)\r\n\t\t\t\treturn 1;\r\n\t\t\tthis._shaderValue.texture=source;\r\n\t\t}\r\n\t\tthis._vb.bind_upload(this._ib);\r\n\t\tvar w=RenderState2D.worldMatrix4;\r\n\t\tvar wmat=Matrix.TEMP;\r\n\t\tMatrix.mulPre(this._mat,w[0],w[1],w[4],w[5],w[12],w[13],wmat);\r\n\t\tvar tmp=RenderState2D.worldMatrix4=SubmitOtherIBVB.tempMatrix4;\r\n\t\ttmp[0]=wmat.a;\r\n\t\ttmp[1]=wmat.b;\r\n\t\ttmp[4]=wmat.c;\r\n\t\ttmp[5]=wmat.d;\r\n\t\ttmp[12]=wmat.tx;\r\n\t\ttmp[13]=wmat.ty;\r\n\t\tthis._shader._offset=this.offset;\r\n\t\tthis._shaderValue.refresh();\r\n\t\tthis._shader.upload(this._shaderValue);\r\n\t\tthis._shader._offset=0;\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tif (BlendMode.activeBlendFunction!==this._blendFn){\r\n\t\t\tgl.enable(/*laya.webgl.WebGLContext.BLEND*/0x0BE2);\r\n\t\t\tthis._blendFn(gl);\r\n\t\t\tBlendMode.activeBlendFunction=this._blendFn;\r\n\t\t}\r\n\t\tStat.drawCall++;\r\n\t\tStat.trianglesFaces+=this._numEle / 3;\r\n\t\tgl.drawElements(/*laya.webgl.WebGLContext.TRIANGLES*/0x0004,this._numEle,/*laya.webgl.WebGLContext.UNSIGNED_SHORT*/0x1403,this.startIndex);\r\n\t\tRenderState2D.worldMatrix4=w;\r\n\t\tBaseShader.activeShader=null;\r\n\t\treturn 1;\r\n\t}\r\n\r\n\tSubmitOtherIBVB.create=function(context,vb,ib,numElement,shader,shaderValue,startIndex,offset,type){\r\n\t\t(type===void 0)&& (type=0);\r\n\t\tvar o=(!SubmitOtherIBVB._cache._length)? (new SubmitOtherIBVB()):SubmitOtherIBVB._cache[--SubmitOtherIBVB._cache._length];\r\n\t\to._ib=ib;\r\n\t\to._vb=vb;\r\n\t\to._numEle=numElement;\r\n\t\to._shader=shader;\r\n\t\to._shaderValue=shaderValue;\r\n\t\tvar blendType=context._nBlendType;\r\n\t\to._blendFn=context._targets ? BlendMode.targetFns[blendType] :BlendMode.fns[blendType];\r\n\t\tswitch(type){\r\n\t\t\tcase 0:\r\n\t\t\t\to.offset=0;\r\n\t\t\t\to.startIndex=offset / (CONST3D2D.BYTES_PE *vb.vertexStride)*1.5;\r\n\t\t\t\to.startIndex *=CONST3D2D.BYTES_PIDX;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 1:\r\n\t\t\t\to.startIndex=startIndex;\r\n\t\t\t\to.offset=offset;\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\treturn o;\r\n\t}\r\n\r\n\tSubmitOtherIBVB._cache=(SubmitOtherIBVB._cache=[],SubmitOtherIBVB._cache._length=0,SubmitOtherIBVB._cache);\r\n\tSubmitOtherIBVB.tempMatrix4=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,];\r\n\treturn SubmitOtherIBVB;\r\n})()\r\n\r\n\r\n//class laya.webgl.submit.SubmitScissor\r\nvar SubmitScissor=(function(){\r\n\tfunction SubmitScissor(){\r\n\t\tthis.submitIndex=0;\r\n\t\tthis.submitLength=0;\r\n\t\tthis.context=null;\r\n\t\tthis.clipRect=new Rectangle();\r\n\t\tthis.screenRect=new Rectangle();\r\n\t}\r\n\r\n\t__class(SubmitScissor,'laya.webgl.submit.SubmitScissor');\r\n\tvar __proto=SubmitScissor.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.submit.ISubmit\":true})\r\n\t__proto._scissor=function(x,y,w,h){\r\n\t\tvar m=RenderState2D.worldMatrix4;\r\n\t\tvar a=m[0],d=m[5],tx=m[12],ty=m[13];\r\n\t\tx=x *a+tx;\r\n\t\ty=y *d+ty;\r\n\t\tw *=a;\r\n\t\th *=d;\r\n\t\tif (w < 1 || h < 1){\r\n\t\t\treturn false;\r\n\t\t};\r\n\t\tvar r=x+w;\r\n\t\tvar b=y+h;\r\n\t\tx < 0 && (x=0,w=r-x);\r\n\t\ty < 0 && (y=0,h=b-y);\r\n\t\tvar screen=RenderState2D.worldClipRect;\r\n\t\tx=Math.max(x,screen.x);\r\n\t\ty=Math.max(y,screen.y);\r\n\t\tw=Math.min(r,screen.right)-x;\r\n\t\th=Math.min(b,screen.bottom)-y;\r\n\t\tif (w < 1 || h < 1){\r\n\t\t\treturn false;\r\n\t\t};\r\n\t\tvar worldScissorTest=RenderState2D.worldScissorTest;\r\n\t\tthis.screenRect.copyFrom(screen);\r\n\t\tscreen.x=x;\r\n\t\tscreen.y=y;\r\n\t\tscreen.width=w;\r\n\t\tscreen.height=h;\r\n\t\tRenderState2D.worldScissorTest=true;\r\n\t\ty=RenderState2D.height-y-h;\r\n\t\tWebGL.mainContext.scissor(x,y,w,h);\r\n\t\tWebGL.mainContext.enable(/*laya.webgl.WebGLContext.SCISSOR_TEST*/0x0C11);\r\n\t\tthis.context.submitElement(this.submitIndex,this.submitIndex+this.submitLength);\r\n\t\tif (worldScissorTest){\r\n\t\t\ty=RenderState2D.height-this.screenRect.y-this.screenRect.height;\r\n\t\t\tWebGL.mainContext.scissor(this.screenRect.x,y,this.screenRect.width,this.screenRect.height);\r\n\t\t\tWebGL.mainContext.enable(/*laya.webgl.WebGLContext.SCISSOR_TEST*/0x0C11);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tWebGL.mainContext.disable(/*laya.webgl.WebGLContext.SCISSOR_TEST*/0x0C11);\r\n\t\t\tRenderState2D.worldScissorTest=false;\r\n\t\t}\r\n\t\tscreen.copyFrom(this.screenRect);\r\n\t\treturn true;\r\n\t}\r\n\r\n\t__proto._scissorWithTagart=function(x,y,w,h){\r\n\t\tif (w < 1 || h < 1){\r\n\t\t\treturn false;\r\n\t\t};\r\n\t\tvar r=x+w;\r\n\t\tvar b=y+h;\r\n\t\tx < 0 && (x=0,w=r-x);\r\n\t\ty < 0 && (y=0,h=b-y);\r\n\t\tvar screen=RenderState2D.worldClipRect;\r\n\t\tx=Math.max(x,screen.x);\r\n\t\ty=Math.max(y,screen.y);\r\n\t\tw=Math.min(r,screen.right)-x;\r\n\t\th=Math.min(b,screen.bottom)-y;\r\n\t\tif (w < 1 || h < 1){\r\n\t\t\treturn false;\r\n\t\t};\r\n\t\tvar worldScissorTest=RenderState2D.worldScissorTest;\r\n\t\tthis.screenRect.copyFrom(screen);\r\n\t\tRenderState2D.worldScissorTest=true;\r\n\t\tscreen.x=x;\r\n\t\tscreen.y=y;\r\n\t\tscreen.width=w;\r\n\t\tscreen.height=h;\r\n\t\ty=RenderState2D.height-y-h;\r\n\t\tWebGL.mainContext.scissor(x,y,w,h);\r\n\t\tWebGL.mainContext.enable(/*laya.webgl.WebGLContext.SCISSOR_TEST*/0x0C11);\r\n\t\tthis.context.submitElement(this.submitIndex,this.submitIndex+this.submitLength);\r\n\t\tif (worldScissorTest){\r\n\t\t\ty=RenderState2D.height-this.screenRect.y-this.screenRect.height;\r\n\t\t\tWebGL.mainContext.scissor(this.screenRect.x,y,this.screenRect.width,this.screenRect.height);\r\n\t\t\tWebGL.mainContext.enable(/*laya.webgl.WebGLContext.SCISSOR_TEST*/0x0C11);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tWebGL.mainContext.disable(/*laya.webgl.WebGLContext.SCISSOR_TEST*/0x0C11);\r\n\t\t\tRenderState2D.worldScissorTest=false;\r\n\t\t}\r\n\t\tscreen.copyFrom(this.screenRect);\r\n\t\treturn true;\r\n\t}\r\n\r\n\t__proto.renderSubmit=function(){\r\n\t\tthis.submitLength=Math.min(this.context._submits._length-1,this.submitLength);\r\n\t\tif (this.submitLength < 1 || this.clipRect.width < 1 || this.clipRect.height < 1)\r\n\t\t\treturn this.submitLength+1;\r\n\t\tif (this.context._targets)\r\n\t\t\tthis._scissorWithTagart(this.clipRect.x,this.clipRect.y,this.clipRect.width,this.clipRect.height);\r\n\t\telse this._scissor(this.clipRect.x,this.clipRect.y,this.clipRect.width,this.clipRect.height);\r\n\t\treturn this.submitLength+1;\r\n\t}\r\n\r\n\t__proto.getRenderType=function(){\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto.releaseRender=function(){\r\n\t\tvar cache=SubmitScissor._cache;\r\n\t\tcache[cache._length++]=this;\r\n\t\tthis.context=null;\r\n\t}\r\n\r\n\tSubmitScissor.create=function(context){\r\n\t\tvar o=SubmitScissor._cache._length?SubmitScissor._cache[--SubmitScissor._cache._length]:new SubmitScissor();\r\n\t\to.context=context;\r\n\t\treturn o;\r\n\t}\r\n\r\n\tSubmitScissor._cache=(SubmitScissor._cache=[],SubmitScissor._cache._length=0,SubmitScissor._cache);\r\n\treturn SubmitScissor;\r\n})()\r\n\r\n\r\n//class laya.webgl.submit.SubmitStencil\r\nvar SubmitStencil=(function(){\r\n\tfunction SubmitStencil(){\r\n\t\tthis.step=0;\r\n\t\tthis.blendMode=null;\r\n\t\tthis.level=0;\r\n\t}\r\n\r\n\t__class(SubmitStencil,'laya.webgl.submit.SubmitStencil');\r\n\tvar __proto=SubmitStencil.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.submit.ISubmit\":true})\r\n\t__proto.renderSubmit=function(){\r\n\t\tswitch(this.step){\r\n\t\t\tcase 1:\r\n\t\t\t\tthis.do1();\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 2:\r\n\t\t\t\tthis.do2();\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 3:\r\n\t\t\t\tthis.do3();\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 4:\r\n\t\t\t\tthis.do4();\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 5:\r\n\t\t\t\tthis.do5();\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 6:\r\n\t\t\t\tthis.do6();\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 7:\r\n\t\t\t\tthis.do7();\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 8:\r\n\t\t\t\tthis.do8();\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto.getRenderType=function(){\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto.releaseRender=function(){\r\n\t\tvar cache=SubmitStencil._cache;\r\n\t\tcache[cache._length++]=this;\r\n\t}\r\n\r\n\t__proto.do1=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tgl.enable(/*laya.webgl.WebGLContext.STENCIL_TEST*/0x0B90);\r\n\t\tgl.clear(/*laya.webgl.WebGLContext.STENCIL_BUFFER_BIT*/0x00000400);\r\n\t\tgl.colorMask(false,false,false,false);\r\n\t\tgl.stencilFunc(/*laya.webgl.WebGLContext.EQUAL*/0x0202,this.level,0xFF);\r\n\t\tgl.stencilOp(/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.INCR*/0x1E02);\r\n\t}\r\n\r\n\t//gl.stencilOp(WebGLContext.KEEP,WebGLContext.KEEP,WebGLContext.INVERT);//测试通过给模版缓冲 写入值 一开始是0 现在是 0xFF (模版缓冲中不知道是多少位的数据)\r\n\t__proto.do2=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tgl.stencilFunc(/*laya.webgl.WebGLContext.EQUAL*/0x0202,this.level+1,0xFF);\r\n\t\tgl.colorMask(true,true,true,true);\r\n\t\tgl.stencilOp(/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.KEEP*/0x1E00);\r\n\t}\r\n\r\n\t__proto.do3=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tgl.colorMask(true,true,true,true);\r\n\t\tgl.stencilOp(/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.KEEP*/0x1E00);\r\n\t\tgl.clear(/*laya.webgl.WebGLContext.STENCIL_BUFFER_BIT*/0x00000400);\r\n\t\tgl.disable(/*laya.webgl.WebGLContext.STENCIL_TEST*/0x0B90);\r\n\t}\r\n\r\n\t__proto.do4=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tif (this.level==0){\r\n\t\t\tgl.enable(/*laya.webgl.WebGLContext.STENCIL_TEST*/0x0B90);\r\n\t\t\tgl.clear(/*laya.webgl.WebGLContext.STENCIL_BUFFER_BIT*/0x00000400);\r\n\t\t}\r\n\t\tgl.colorMask(false,false,false,false);\r\n\t\tgl.stencilFunc(/*laya.webgl.WebGLContext.ALWAYS*/0x0207,0,0xFF);\r\n\t\tgl.stencilOp(/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.INCR*/0x1E02);\r\n\t}\r\n\r\n\t__proto.do5=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tgl.stencilFunc(/*laya.webgl.WebGLContext.EQUAL*/0x0202,this.level,0xFF);\r\n\t\tgl.colorMask(true,true,true,true);\r\n\t\tgl.stencilOp(/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.KEEP*/0x1E00);\r\n\t}\r\n\r\n\t__proto.do6=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tBlendMode.targetFns[BlendMode.TOINT[this.blendMode]](gl);\r\n\t}\r\n\r\n\t__proto.do7=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tgl.colorMask(false,false,false,false);\r\n\t\tgl.stencilOp(/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.DECR*/0x1E03);\r\n\t}\r\n\r\n\t__proto.do8=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tgl.colorMask(true,true,true,true);\r\n\t\tgl.stencilFunc(/*laya.webgl.WebGLContext.EQUAL*/0x0202,this.level,0xFF);\r\n\t\tgl.stencilOp(/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.KEEP*/0x1E00,/*laya.webgl.WebGLContext.KEEP*/0x1E00);\r\n\t}\r\n\r\n\tSubmitStencil.restore=function(context,clip,m,_x,_y){\r\n\t\tvar submitStencil;\r\n\t\tcontext._renderKey=0;\r\n\t\tif (SubmitStencil._mask > 0){\r\n\t\t\tSubmitStencil._mask--;\r\n\t\t}\r\n\t\tif (SubmitStencil._mask==0){\r\n\t\t\tsubmitStencil=laya.webgl.submit.SubmitStencil.create(3);\r\n\t\t\tcontext.addRenderObject(submitStencil);\r\n\t\t\tcontext._curSubmit=Submit.RENDERBASE;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tsubmitStencil=laya.webgl.submit.SubmitStencil.create(7);\r\n\t\t\tcontext.addRenderObject(submitStencil);\r\n\t\t\tvar vb=context._vb;\r\n\t\t\tvar nPos=(vb._byteLength >> 2);\r\n\t\t\tif (GlUtils.fillRectImgVb(vb,null,clip.x,clip.y,clip.width,clip.height,Texture.DEF_UV,m,_x,_y,0,0)){\r\n\t\t\t\tvar shader=context._shader2D;\r\n\t\t\t\tshader.glTexture=null;\r\n\t\t\t\tvar submit=context._curSubmit=Submit.createSubmit(context,context._ib,vb,((vb._byteLength-/*laya.webgl.canvas.WebGLContext2D._RECTVBSIZE*/16 */*laya.webgl.utils.Buffer2D.FLOAT32*/4)/ 32)*3,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.COLOR2D*/0x02,0));\r\n\t\t\t\tsubmit.shaderValue.ALPHA=1.0;\r\n\t\t\t\tcontext._submits[context._submits._length++]=submit;\r\n\t\t\t\tcontext._curSubmit._numEle+=6;\r\n\t\t\t\tcontext._curSubmit=Submit.RENDERBASE;\r\n\t\t\t\t}else {\r\n\t\t\t\talert(\"clipRect calc stencil rect error\");\r\n\t\t\t}\r\n\t\t\tsubmitStencil=laya.webgl.submit.SubmitStencil.create(8);\r\n\t\t\tcontext.addRenderObject(submitStencil);\r\n\t\t}\r\n\t}\r\n\r\n\tSubmitStencil.restore2=function(context,submit){\r\n\t\tvar submitStencil;\r\n\t\tcontext._renderKey=0;\r\n\t\tif (SubmitStencil._mask > 0){\r\n\t\t\tSubmitStencil._mask--;\r\n\t\t}\r\n\t\tif (SubmitStencil._mask==0){\r\n\t\t\tsubmitStencil=laya.webgl.submit.SubmitStencil.create(3);\r\n\t\t\tcontext.addRenderObject(submitStencil);\r\n\t\t\tcontext._curSubmit=Submit.RENDERBASE;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tsubmitStencil=laya.webgl.submit.SubmitStencil.create(7);\r\n\t\t\tcontext.addRenderObject(submitStencil);\r\n\t\t\tcontext._submits[context._submits._length++]=submit;\r\n\t\t\tsubmitStencil=laya.webgl.submit.SubmitStencil.create(8);\r\n\t\t\tcontext.addRenderObject(submitStencil);\r\n\t\t}\r\n\t}\r\n\r\n\tSubmitStencil.create=function(step){\r\n\t\tvar o=SubmitStencil._cache._length?SubmitStencil._cache[--SubmitStencil._cache._length]:new SubmitStencil();\r\n\t\to.step=step;\r\n\t\tif (step==5)\r\n\t\t\t++SubmitStencil._mask;\r\n\t\to.level=SubmitStencil._mask;\r\n\t\treturn o;\r\n\t}\r\n\r\n\tSubmitStencil._cache=(SubmitStencil._cache=[],SubmitStencil._cache._length=0,SubmitStencil._cache);\r\n\tSubmitStencil._mask=0;\r\n\treturn SubmitStencil;\r\n})()\r\n\r\n\r\n//class laya.webgl.submit.SubmitTarget\r\nvar SubmitTarget=(function(){\r\n\tfunction SubmitTarget(){\r\n\t\tthis._renderType=0;\r\n\t\tthis._vb=null;\r\n\t\tthis._ib=null;\r\n\t\tthis._startIdx=0;\r\n\t\tthis._numEle=0;\r\n\t\tthis.shaderValue=null;\r\n\t\tthis.blendType=0;\r\n\t\tthis.proName=null;\r\n\t\tthis.scope=null;\r\n\t}\r\n\r\n\t__class(SubmitTarget,'laya.webgl.submit.SubmitTarget');\r\n\tvar __proto=SubmitTarget.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.submit.ISubmit\":true})\r\n\t__proto.renderSubmit=function(){\r\n\t\tthis._vb.bind_upload(this._ib);\r\n\t\tvar target=this.scope.getValue(this.proName);\r\n\t\tif (target){\r\n\t\t\tthis.shaderValue.texture=target.source;\r\n\t\t\tif (this.shaderValue[\"strength\"] && !this.shaderValue[\"blurInfo\"]){\r\n\t\t\t\tthis.shaderValue[\"blurInfo\"]=[target.width,target.height];\r\n\t\t\t}\r\n\t\t\tthis.shaderValue.upload();\r\n\t\t\tthis.blend();\r\n\t\t\tStat.drawCall++;\r\n\t\t\tStat.trianglesFaces+=this._numEle/3;\r\n\t\t\tWebGL.mainContext.drawElements(/*laya.webgl.WebGLContext.TRIANGLES*/0x0004,this._numEle,/*laya.webgl.WebGLContext.UNSIGNED_SHORT*/0x1403,this._startIdx);\r\n\t\t}\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto.blend=function(){\r\n\t\tif (BlendMode.activeBlendFunction!==BlendMode.fns[this.blendType]){\r\n\t\t\tvar gl=WebGL.mainContext;\r\n\t\t\tgl.enable(/*laya.webgl.WebGLContext.BLEND*/0x0BE2);\r\n\t\t\tBlendMode.fns[this.blendType](gl);\r\n\t\t\tBlendMode.activeBlendFunction=BlendMode.fns[this.blendType];\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.getRenderType=function(){\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto.releaseRender=function(){\r\n\t\tvar cache=SubmitTarget._cache;\r\n\t\tcache[cache._length++]=this;\r\n\t}\r\n\r\n\tSubmitTarget.create=function(context,ib,vb,pos,sv,proName){\r\n\t\tvar o=SubmitTarget._cache._length?SubmitTarget._cache[--SubmitTarget._cache._length]:new SubmitTarget();\r\n\t\to._ib=ib;\r\n\t\to._vb=vb;\r\n\t\to.proName=proName;\r\n\t\to._startIdx=pos *CONST3D2D.BYTES_PIDX;\r\n\t\to._numEle=0;\r\n\t\to.blendType=context._nBlendType;\r\n\t\to.shaderValue=sv;\r\n\t\to.shaderValue.setValue(context._shader2D);\r\n\t\treturn o;\r\n\t}\r\n\r\n\tSubmitTarget._cache=(SubmitTarget._cache=[],SubmitTarget._cache._length=0,SubmitTarget._cache);\r\n\treturn SubmitTarget;\r\n})()\r\n\r\n\r\n/**\r\n*...特殊的字符，如泰文，必须重新实现这个类\r\n*/\r\n//class laya.webgl.text.CharSegment\r\nvar CharSegment=(function(){\r\n\tfunction CharSegment(){\r\n\t\tthis._sourceStr=null;\r\n\t}\r\n\r\n\t__class(CharSegment,'laya.webgl.text.CharSegment');\r\n\tvar __proto=CharSegment.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.text.ICharSegment\":true})\r\n\t__proto.textToSpit=function(str){\r\n\t\tthis._sourceStr=str;\r\n\t}\r\n\r\n\t__proto.getChar=function(i){\r\n\t\treturn this._sourceStr.charAt(i);\r\n\t}\r\n\r\n\t__proto.getCharCode=function(i){\r\n\t\treturn this._sourceStr.charCodeAt(i);\r\n\t}\r\n\r\n\t__proto.length=function(){\r\n\t\treturn this._sourceStr.length;\r\n\t}\r\n\r\n\treturn CharSegment;\r\n})()\r\n\r\n\r\n//class laya.webgl.text.DrawText\r\nvar DrawText=(function(){\r\n\tvar CharValue;\r\n\tfunction DrawText(){}\r\n\t__class(DrawText,'laya.webgl.text.DrawText');\r\n\tDrawText.__init__=function(){\r\n\t\tDrawText._charsTemp=new Array;\r\n\t\tDrawText._drawValue=new CharValue();\r\n\t\tDrawText._charSeg=new CharSegment();\r\n\t}\r\n\r\n\tDrawText.customCharSeg=function(charseg){\r\n\t\tDrawText._charSeg=charseg;\r\n\t}\r\n\r\n\tDrawText.getChar=function(char,id,drawValue){\r\n\t\tvar result=WebGLCharImage.createOneChar(char,drawValue);\r\n\t\tif(id!=-1)\r\n\t\t\tDrawText._charsCache[id]=result;\r\n\t\treturn result;\r\n\t}\r\n\r\n\tDrawText._drawSlow=function(save,ctx,txt,words,curMat,font,textAlign,fillColor,borderColor,lineWidth,x,y,sx,sy,underLine){\r\n\t\tvar drawValue=DrawText._drawValue.value(font,fillColor,borderColor,lineWidth,sx,sy,underLine);\r\n\t\tvar i=0,n=0;\r\n\t\tvar chars=DrawText._charsTemp;\r\n\t\tvar width=0,oneChar,htmlWord,id=NaN;\r\n\t\tif (words){\r\n\t\t\tchars.length=words.length;\r\n\t\t\tfor (i=0,n=words.length;i < n;i++){\r\n\t\t\t\thtmlWord=words[i];\r\n\t\t\t\tid=htmlWord.charNum+drawValue.txtID;\r\n\t\t\t\tchars[i]=oneChar=DrawText._charsCache[id] || DrawText.getChar(htmlWord.char,id,drawValue);\r\n\t\t\t\toneChar.active();\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tvar text=((txt instanceof laya.utils.WordText ))? txt.toString():txt;\r\n\t\t\tif (Text.CharacterCache){\r\n\t\t\t\tDrawText._charSeg.textToSpit(text);\r\n\t\t\t\tvar len=/*if err,please use iflash.method.xmlLength()*/DrawText._charSeg.length();\r\n\t\t\t\tchars.length=len;\r\n\t\t\t\tfor (i=0,n=len;i < n;i++){\r\n\t\t\t\t\tid=DrawText._charSeg.getCharCode(i)+drawValue.txtID;\r\n\t\t\t\t\tchars[i]=oneChar=DrawText._charsCache[id] || DrawText.getChar(DrawText._charSeg.getChar(i),id,drawValue);\r\n\t\t\t\t\toneChar.active();\r\n\t\t\t\t\twidth+=oneChar.cw;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tchars.length=0;\r\n\t\t\t\toneChar=DrawText.getChar(text,-1,drawValue);\r\n\t\t\t\toneChar.active();\r\n\t\t\t\twidth+=oneChar.cw;\r\n\t\t\t\tchars[0]=oneChar;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar dx=0;\r\n\t\tif (textAlign!==null && textAlign!==\"left\")\r\n\t\t\tdx=-(textAlign==\"center\" ? (width / 2):width);\r\n\t\tvar uv,bdSz=NaN,texture,value,saveLength=0;\r\n\t\tif (words){\r\n\t\t\tfor (i=0,n=chars.length;i < n;i++){\r\n\t\t\t\toneChar=chars[i];\r\n\t\t\t\tif (!oneChar.isSpace){\r\n\t\t\t\t\thtmlWord=words[i];\r\n\t\t\t\t\tbdSz=oneChar.borderSize;\r\n\t\t\t\t\ttexture=oneChar.texture;\r\n\t\t\t\t\tctx._drawText(texture,x+dx+htmlWord.x *sx-bdSz,y+htmlWord.y *sy-bdSz,texture.width,texture.height,curMat,0,0,0,0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tfor (i=0,n=chars.length;i < n;i++){\r\n\t\t\t\toneChar=chars[i];\r\n\t\t\t\tif (!oneChar.isSpace){\r\n\t\t\t\t\tbdSz=oneChar.borderSize;\r\n\t\t\t\t\ttexture=oneChar.texture;\r\n\t\t\t\t\tctx._drawText(texture,x+dx-bdSz,y-bdSz,texture.width,texture.height,curMat,0,0,0,0);\r\n\t\t\t\t\tsave && (value=save[saveLength++],value || (value=save[saveLength-1]=[]),value[0]=texture,value[1]=dx-bdSz,value[2]=-bdSz);\r\n\t\t\t\t}\r\n\t\t\t\tdx+=oneChar.cw;\r\n\t\t\t}\r\n\t\t\tsave && (save.length=saveLength);\r\n\t\t}\r\n\t}\r\n\r\n\tDrawText._drawFast=function(save,ctx,curMat,x,y){\r\n\t\tvar texture,value;\r\n\t\tfor (var i=0,n=save.length;i < n;i++){\r\n\t\t\tvalue=save[i];\r\n\t\t\ttexture=value[0];\r\n\t\t\ttexture.active();\r\n\t\t\tctx._drawText(texture,x+value[1],y+value[2],texture.width,texture.height,curMat,0,0,0,0);\r\n\t\t}\r\n\t}\r\n\r\n\tDrawText.drawText=function(ctx,txt,words,curMat,font,textAlign,fillColor,borderColor,lineWidth,x,y,underLine){\r\n\t\t(underLine===void 0)&& (underLine=0);\r\n\t\tif ((txt && txt.length===0)|| (words && words.length===0))\r\n\t\t\treturn;\r\n\t\tvar sx=curMat.a,sy=curMat.d;\r\n\t\t(curMat.b!==0 || curMat.c!==0)&& (sx=sy=1);\r\n\t\tvar scale=sx!==1 || sy!==1;\r\n\t\tif (scale && Laya.stage.transform){\r\n\t\t\tvar t=Laya.stage.transform;\r\n\t\t\tscale=t.a===sx && t.d===sy;\r\n\t\t}else scale=false;\r\n\t\tif (scale){\r\n\t\t\tcurMat=curMat.copyTo(WebGLContext2D._tmpMatrix);\r\n\t\t\tvar tempTx=curMat.tx;\r\n\t\t\tvar tempTy=curMat.ty;\r\n\t\t\tcurMat.scale(1 / sx,1 / sy);\r\n\t\t\tcurMat._checkTransform();\r\n\t\t\tx *=sx;\r\n\t\t\ty *=sy;\r\n\t\t\tx+=tempTx-curMat.tx;\r\n\t\t\ty+=tempTy-curMat.ty;\r\n\t\t}else sx=sy=1;\r\n\t\tif (words){\r\n\t\t\tDrawText._drawSlow(null,ctx,txt,words,curMat,font,textAlign,fillColor,borderColor,lineWidth,x,y,sx,sy,underLine);\r\n\t\t\t}else {\r\n\t\t\tif (txt.toUpperCase===null){\r\n\t\t\t\tvar idNum=sx+sy *100000;\r\n\t\t\t\tvar myCache=txt;\r\n\t\t\t\tif (!myCache.changed && myCache.id===idNum){\r\n\t\t\t\t\tDrawText._drawFast(myCache.save,ctx,curMat,x,y);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tmyCache.id=idNum;\r\n\t\t\t\t\tmyCache.changed=false;\r\n\t\t\t\t\tDrawText._drawSlow(myCache.save,ctx,txt,words,curMat,font,textAlign,fillColor,borderColor,lineWidth,x,y,sx,sy,underLine);\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t};\r\n\t\t\tvar id=txt+font.toString()+fillColor+borderColor+lineWidth+sx+sy+textAlign;\r\n\t\t\tvar cache=DrawText._textsCache[id];\r\n\t\t\tif (Text.CharacterCache){\r\n\t\t\t\tif (cache){\r\n\t\t\t\t\tDrawText._drawFast(cache,ctx,curMat,x,y);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tDrawText._textsCache.__length || (DrawText._textsCache.__length=0);\r\n\t\t\t\t\tif (DrawText._textsCache.__length > Config.WebGLTextCacheCount){\r\n\t\t\t\t\t\tDrawText._textsCache={};\r\n\t\t\t\t\t\tDrawText._textsCache.__length=0;\r\n\t\t\t\t\t\tDrawText._curPoolIndex=0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tDrawText._textCachesPool[DrawText._curPoolIndex] ? (cache=DrawText._textsCache[id]=DrawText._textCachesPool[DrawText._curPoolIndex],cache.length=0):(DrawText._textCachesPool[DrawText._curPoolIndex]=cache=DrawText._textsCache[id]=[]);\r\n\t\t\t\t\tDrawText._textsCache.__length++\r\n\t\t\t\t\tDrawText._curPoolIndex++;\r\n\t\t\t\t\tDrawText._drawSlow(cache,ctx,txt,words,curMat,font,textAlign,fillColor,borderColor,lineWidth,x,y,sx,sy,underLine);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tDrawText._drawSlow(cache,ctx,txt,words,curMat,font,textAlign,fillColor,borderColor,lineWidth,x,y,sx,sy,underLine);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tDrawText._charsTemp=null;\r\n\tDrawText._textCachesPool=[];\r\n\tDrawText._curPoolIndex=0;\r\n\tDrawText._charsCache={};\r\n\tDrawText._textsCache={};\r\n\tDrawText._drawValue=null;\r\n\tDrawText.d=[];\r\n\tDrawText._charSeg=null;\r\n\tDrawText.__init$=function(){\r\n\t\t//class CharValue\r\n\t\tCharValue=(function(){\r\n\t\t\tfunction CharValue(){\r\n\t\t\t\t//this.txtID=NaN;\r\n\t\t\t\t//this.font=null;\r\n\t\t\t\t//this.fillColor=null;\r\n\t\t\t\t//this.borderColor=null;\r\n\t\t\t\t//this.lineWidth=0;\r\n\t\t\t\t//this.scaleX=NaN;\r\n\t\t\t\t//this.scaleY=NaN;\r\n\t\t\t\t//this.underLine=0;\r\n\t\t\t}\r\n\t\t\t__class(CharValue,'');\r\n\t\t\tvar __proto=CharValue.prototype;\r\n\t\t\t__proto.value=function(font,fillColor,borderColor,lineWidth,scaleX,scaleY,underLine){\r\n\t\t\t\tthis.font=font;\r\n\t\t\t\tthis.fillColor=fillColor;\r\n\t\t\t\tthis.borderColor=borderColor;\r\n\t\t\t\tthis.lineWidth=lineWidth;\r\n\t\t\t\tthis.scaleX=scaleX;\r\n\t\t\t\tthis.scaleY=scaleY;\r\n\t\t\t\tthis.underLine=underLine;\r\n\t\t\t\tvar key=font.toString()+scaleX+scaleY+lineWidth+fillColor+borderColor+underLine;\r\n\t\t\t\tthis.txtID=CharValue._keymap[key];\r\n\t\t\t\tif (!this.txtID){\r\n\t\t\t\t\tthis.txtID=(++CharValue._keymapCount)*0.0000001;\r\n\t\t\t\t\tCharValue._keymap[key]=this.txtID;\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t\tCharValue.clear=function(){\r\n\t\t\t\tCharValue._keymap={};\r\n\t\t\t\tCharValue._keymapCount=1;\r\n\t\t\t}\r\n\t\t\tCharValue._keymap={};\r\n\t\t\tCharValue._keymapCount=1;\r\n\t\t\treturn CharValue;\r\n\t\t})()\r\n\t}\r\n\r\n\treturn DrawText;\r\n})()\r\n\r\n\r\n//class laya.webgl.text.FontInContext\r\nvar FontInContext=(function(){\r\n\tfunction FontInContext(font){\r\n\t\t//this._text=null;\r\n\t\t//this._words=null;\r\n\t\tthis._index=0;\r\n\t\tthis._size=14;\r\n\t\tthis._italic=-2;\r\n\t\tFontInContext._cache2=FontInContext._cache2|| [];\r\n\t\tthis.setFont(font || \"14px Arial\");\r\n\t}\r\n\r\n\t__class(FontInContext,'laya.webgl.text.FontInContext');\r\n\tvar __proto=FontInContext.prototype;\r\n\t__proto.setFont=function(value){\r\n\t\tvar arr=FontInContext._cache2[value];\r\n\t\tif (!arr){\r\n\t\t\tthis._words=value.split(' ');\r\n\t\t\tfor (var i=0,n=this._words.length;i < n;i++){\r\n\t\t\t\tif (this._words[i].indexOf('px')> 0){\r\n\t\t\t\t\tthis._index=i;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._size=parseInt(this._words[this._index]);\r\n\t\t\tFontInContext._cache2[value]=[this._words,this._size];\r\n\t\t\t}else {\r\n\t\t\tthis._words=arr[0];\r\n\t\t\tthis._size=arr[1];\r\n\t\t}\r\n\t\tthis._text=null;\r\n\t\tthis._italic=-2;\r\n\t}\r\n\r\n\t__proto.getItalic=function(){\r\n\t\tthis._italic===-2 && (this._italic=this.hasType(\"italic\"));\r\n\t\treturn this._italic;\r\n\t}\r\n\r\n\t__proto.hasType=function(name){\r\n\t\tfor (var i=0,n=this._words.length;i < n;i++)\r\n\t\tif (this._words[i]===name)return i;\r\n\t\treturn-1;\r\n\t}\r\n\r\n\t__proto.removeType=function(name){\r\n\t\tfor (var i=0,n=this._words.length;i < n;i++)\r\n\t\tif (this._words[i]===name){\r\n\t\t\tthis._words.splice(i,1);\r\n\t\t\tif (this._index > i)this._index--;\r\n\t\t\tbreak ;\r\n\t\t}\r\n\t\tthis._text=null;\r\n\t\tthis._italic=-2;\r\n\t}\r\n\r\n\t__proto.copyTo=function(dec){\r\n\t\tdec._text=this._text;\r\n\t\tdec._size=this._size;\r\n\t\tdec._index=this._index;\r\n\t\tdec._words=this._words.slice();\r\n\t\tdec._italic=-2;\r\n\t\treturn dec;\r\n\t}\r\n\r\n\t__proto.toString=function(){\r\n\t\treturn this._text ? this._text :(this._text=this._words.join(' '));\r\n\t}\r\n\r\n\t__getset(0,__proto,'size',function(){\r\n\t\treturn this._size;\r\n\t\t},function(value){\r\n\t\tthis._size=value;\r\n\t\tthis._words[this._index]=value+\"px\";\r\n\t\tthis._text=null;\r\n\t});\r\n\r\n\tFontInContext.create=function(font){\r\n\t\tvar r=FontInContext._cache[font];\r\n\t\tif (r)return r;\r\n\t\tr=FontInContext._cache[font]=new FontInContext(font);\r\n\t\treturn r;\r\n\t}\r\n\r\n\tFontInContext.EMPTY=new FontInContext();\r\n\tFontInContext._cache={};\r\n\tFontInContext._cache2=null;\r\n\treturn FontInContext;\r\n})()\r\n\r\n\r\n//class laya.webgl.utils.CONST3D2D\r\nvar CONST3D2D=(function(){\r\n\tfunction CONST3D2D(){}\r\n\t__class(CONST3D2D,'laya.webgl.utils.CONST3D2D');\r\n\tCONST3D2D.defaultMatrix4=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];\r\n\tCONST3D2D.defaultMinusYMatrix4=[1,0,0,0,0,-1,0,0,0,0,1,0,0,0,0,1];\r\n\tCONST3D2D.uniformMatrix3=[1,0,0,0,0,1,0,0,0,0,1,0];\r\n\tCONST3D2D._TMPARRAY=[];\r\n\tCONST3D2D._OFFSETX=0;\r\n\tCONST3D2D._OFFSETY=0;\r\n\t__static(CONST3D2D,\r\n\t['BYTES_PE',function(){return this.BYTES_PE=/*__JS__ */Float32Array.BYTES_PER_ELEMENT;},'BYTES_PIDX',function(){return this.BYTES_PIDX=/*__JS__ */Uint16Array.BYTES_PER_ELEMENT;}\r\n\t]);\r\n\treturn CONST3D2D;\r\n})()\r\n\r\n\r\n//class laya.webgl.utils.GlUtils\r\nvar GlUtils=(function(){\r\n\tfunction GlUtils(){}\r\n\t__class(GlUtils,'laya.webgl.utils.GlUtils');\r\n\tGlUtils.make2DProjection=function(width,height,depth){\r\n\t\treturn [2.0 / width,0,0,0,0,-2.0 / height,0,0,0,0,2.0 / depth,0,-1,1,0,1,];\r\n\t}\r\n\r\n\tGlUtils.fillIBQuadrangle=function(buffer,count){\r\n\t\tif (count > 65535 / 4){\r\n\t\t\tthrow Error(\"IBQuadrangle count:\"+count+\" must<:\"+Math.floor(65535 / 4));\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tcount=Math.floor(count);\r\n\t\tbuffer._resizeBuffer((count+1)*6 */*laya.webgl.utils.Buffer2D.SHORT*/2,false);\r\n\t\tbuffer.byteLength=buffer.bufferLength;\r\n\t\tvar bufferData=buffer.getUint16Array();\r\n\t\tvar idx=0;\r\n\t\tfor (var i=0;i < count;i++){\r\n\t\t\tbufferData[idx++]=i *4;\r\n\t\t\tbufferData[idx++]=i *4+2;\r\n\t\t\tbufferData[idx++]=i *4+1;\r\n\t\t\tbufferData[idx++]=i *4;\r\n\t\t\tbufferData[idx++]=i *4+3;\r\n\t\t\tbufferData[idx++]=i *4+2;\r\n\t\t}\r\n\t\tbuffer.setNeedUpload();\r\n\t\treturn true;\r\n\t}\r\n\r\n\tGlUtils.expandIBQuadrangle=function(buffer,count){\r\n\t\tbuffer.bufferLength >=(count *6 */*laya.webgl.utils.Buffer2D.SHORT*/2)|| GlUtils.fillIBQuadrangle(buffer,count);\r\n\t}\r\n\r\n\tGlUtils.mathCeilPowerOfTwo=function(value){\r\n\t\tvalue--;\r\n\t\tvalue |=value >> 1;\r\n\t\tvalue |=value >> 2;\r\n\t\tvalue |=value >> 4;\r\n\t\tvalue |=value >> 8;\r\n\t\tvalue |=value >> 16;\r\n\t\tvalue++;\r\n\t\treturn value;\r\n\t}\r\n\r\n\tGlUtils.fillQuadrangleImgVb=function(vb,x,y,point4,uv,m,_x,_y){\r\n\t\tvar vpos=(vb._byteLength >> 2)+/*laya.webgl.canvas.WebGLContext2D._RECTVBSIZE*/16;\r\n\t\tvb.byteLength=(vpos << 2);\r\n\t\tvar vbdata=vb.getFloat32Array();\r\n\t\tvpos-=/*laya.webgl.canvas.WebGLContext2D._RECTVBSIZE*/16;\r\n\t\tvbdata[vpos+2]=uv[0];\r\n\t\tvbdata[vpos+3]=uv[1];\r\n\t\tvbdata[vpos+6]=uv[2];\r\n\t\tvbdata[vpos+7]=uv[3];\r\n\t\tvbdata[vpos+10]=uv[4];\r\n\t\tvbdata[vpos+11]=uv[5];\r\n\t\tvbdata[vpos+14]=uv[6];\r\n\t\tvbdata[vpos+15]=uv[7];\r\n\t\tvar a=m.a,b=m.b,c=m.c,d=m.d;\r\n\t\tif (a!==1 || b!==0 || c!==0 || d!==1){\r\n\t\t\tm.bTransform=true;\r\n\t\t\tvar tx=m.tx+_x,ty=m.ty+_y;\r\n\t\t\tvbdata[vpos]=(point4[0]+x)*a+(point4[1]+y)*c+tx;\r\n\t\t\tvbdata[vpos+1]=(point4[0]+x)*b+(point4[1]+y)*d+ty;\r\n\t\t\tvbdata[vpos+4]=(point4[2]+x)*a+(point4[3]+y)*c+tx;\r\n\t\t\tvbdata[vpos+5]=(point4[2]+x)*b+(point4[3]+y)*d+ty;\r\n\t\t\tvbdata[vpos+8]=(point4[4]+x)*a+(point4[5]+y)*c+tx;\r\n\t\t\tvbdata[vpos+9]=(point4[4]+x)*b+(point4[5]+y)*d+ty;\r\n\t\t\tvbdata[vpos+12]=(point4[6]+x)*a+(point4[7]+y)*c+tx;\r\n\t\t\tvbdata[vpos+13]=(point4[6]+x)*b+(point4[7]+y)*d+ty;\r\n\t\t\t}else {\r\n\t\t\tm.bTransform=false;\r\n\t\t\tx+=m.tx+_x;\r\n\t\t\ty+=m.ty+_y;\r\n\t\t\tvbdata[vpos]=x+point4[0];\r\n\t\t\tvbdata[vpos+1]=y+point4[1];\r\n\t\t\tvbdata[vpos+4]=x+point4[2];\r\n\t\t\tvbdata[vpos+5]=y+point4[3];\r\n\t\t\tvbdata[vpos+8]=x+point4[4];\r\n\t\t\tvbdata[vpos+9]=y+point4[5];\r\n\t\t\tvbdata[vpos+12]=x+point4[6];\r\n\t\t\tvbdata[vpos+13]=y+point4[7];\r\n\t\t}\r\n\t\tvb._upload=true;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tGlUtils.fillTranglesVB=function(vb,x,y,points,m,_x,_y){\r\n\t\tvar vpos=(vb._byteLength >> 2)+points.length;\r\n\t\tvb.byteLength=(vpos << 2);\r\n\t\tvar vbdata=vb.getFloat32Array();\r\n\t\tvpos-=points.length;\r\n\t\tvar len=points.length;\r\n\t\tvar a=m.a,b=m.b,c=m.c,d=m.d;\r\n\t\tfor (var i=0;i < len;i+=4){\r\n\t\t\tvbdata[vpos+i+2]=points[i+2];\r\n\t\t\tvbdata[vpos+i+3]=points[i+3];\r\n\t\t\tif (a!==1 || b!==0 || c!==0 || d!==1){\r\n\t\t\t\tm.bTransform=true;\r\n\t\t\t\tvar tx=m.tx+_x,ty=m.ty+_y;\r\n\t\t\t\tvbdata[vpos+i]=(points[i]+x)*a+(points[i+1]+y)*c+tx;\r\n\t\t\t\tvbdata[vpos+i+1]=(points[i]+x)*b+(points[i+1]+y)*d+ty;\r\n\t\t\t\t}else {\r\n\t\t\t\tm.bTransform=false;\r\n\t\t\t\tx+=m.tx+_x;\r\n\t\t\t\ty+=m.ty+_y;\r\n\t\t\t\tvbdata[vpos+i]=x+points[i];\r\n\t\t\t\tvbdata[vpos+i+1]=y+points[i+1];\r\n\t\t\t}\r\n\t\t}\r\n\t\tvb._upload=true;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tGlUtils.copyPreImgVb=function(vb,dx,dy){\r\n\t\tvar vpos=(vb._byteLength >> 2);\r\n\t\tvb.byteLength=((vpos+/*laya.webgl.canvas.WebGLContext2D._RECTVBSIZE*/16)<< 2);\r\n\t\tvar vbdata=vb.getFloat32Array();\r\n\t\tfor (var i=0,ci=vpos-16;i < 4;i++){\r\n\t\t\tvbdata[vpos]=vbdata[ci]+dx;\r\n\t\t\t++vpos;\r\n\t\t\t++ci;\r\n\t\t\tvbdata[vpos]=vbdata[ci]+dy;\r\n\t\t\t++vpos;\r\n\t\t\t++ci;\r\n\t\t\tvbdata[vpos]=vbdata[ci];\r\n\t\t\t++vpos;\r\n\t\t\t++ci;\r\n\t\t\tvbdata[vpos]=vbdata[ci];\r\n\t\t\t++vpos;\r\n\t\t\t++ci;\r\n\t\t}\r\n\t\tvb._upload=true;\r\n\t}\r\n\r\n\tGlUtils.fillRectImgVb=function(vb,clip,x,y,width,height,uv,m,_x,_y,dx,dy,round){\r\n\t\t(round===void 0)&& (round=false);\r\n\t\tvar mType=1;\r\n\t\tvar toBx,toBy,toEx,toEy;\r\n\t\tvar cBx,cBy,cEx,cEy;\r\n\t\tvar w0,h0,tx,ty;\r\n\t\tvar finalX,finalY,offsetX,offsetY;\r\n\t\tvar a=m.a,b=m.b,c=m.c,d=m.d;\r\n\t\tvar useClip=clip && clip.width < /*laya.webgl.canvas.WebGLContext2D._MAXSIZE*/99999999;\r\n\t\tif (a!==1 || b!==0 || c!==0 || d!==1){\r\n\t\t\tm.bTransform=true;\r\n\t\t\tif (b===0 && c===0){\r\n\t\t\t\tmType=23;\r\n\t\t\t\tw0=width+x,h0=height+y;\r\n\t\t\t\ttx=m.tx+_x,ty=m.ty+_y;\r\n\t\t\t\ttoBx=a *x+tx;\r\n\t\t\t\ttoEx=a *w0+tx;\r\n\t\t\t\ttoBy=d *y+ty;\r\n\t\t\t\ttoEy=d *h0+ty;\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tmType=23;\r\n\t\t\tm.bTransform=false;\r\n\t\t\ttoBx=x+m.tx+_x;\r\n\t\t\ttoEx=toBx+width;\r\n\t\t\ttoBy=y+m.ty+_y;\r\n\t\t\ttoEy=toBy+height;\r\n\t\t}\r\n\t\tif (useClip){\r\n\t\t\tcBx=clip.x,cBy=clip.y,cEx=clip.width+cBx,cEy=clip.height+cBy;\r\n\t\t}\r\n\t\tif (mType!==1){\r\n\t\t\tif (Math.min(toBx,toEx)>=cEx)return false;\r\n\t\t\tif (Math.min(toBy,toEy)>=cEy)return false;\r\n\t\t\tif (Math.max(toEx,toBx)<=cBx)return false;\r\n\t\t\tif (Math.max(toEy,toBy)<=cBy)return false;\r\n\t\t};\r\n\t\tvar vpos=(vb._byteLength >> 2);\r\n\t\tvb.byteLength=((vpos+/*laya.webgl.canvas.WebGLContext2D._RECTVBSIZE*/16)<< 2);\r\n\t\tvar vbdata=vb.getFloat32Array();\r\n\t\tvbdata[vpos+2]=uv[0];\r\n\t\tvbdata[vpos+3]=uv[1];\r\n\t\tvbdata[vpos+6]=uv[2];\r\n\t\tvbdata[vpos+7]=uv[3];\r\n\t\tvbdata[vpos+10]=uv[4];\r\n\t\tvbdata[vpos+11]=uv[5];\r\n\t\tvbdata[vpos+14]=uv[6];\r\n\t\tvbdata[vpos+15]=uv[7];\r\n\t\tswitch (mType){\r\n\t\t\tcase 1:\r\n\t\t\t\ttx=m.tx+_x,ty=m.ty+_y;\r\n\t\t\t\tw0=width+x,h0=height+y;\r\n\t\t\t\tvar w1=x,h1=y;\r\n\t\t\t\tvar aw1=a *w1,ch1=c *h1,dh1=d *h1,bw1=b *w1;\r\n\t\t\t\tvar aw0=a *w0,ch0=c *h0,dh0=d *h0,bw0=b *w0;\r\n\t\t\t\tif (round){\r\n\t\t\t\t\tfinalX=aw1+ch1+tx;\r\n\t\t\t\t\toffsetX=Math.round(finalX)-finalX;\r\n\t\t\t\t\tfinalY=dh1+bw1+ty;\r\n\t\t\t\t\toffsetY=Math.round(finalY)-finalY;\r\n\t\t\t\t\tvbdata[vpos]=finalX+offsetX;\r\n\t\t\t\t\tvbdata[vpos+1]=finalY+offsetY;\r\n\t\t\t\t\tvbdata[vpos+4]=aw0+ch1+tx+offsetX;\r\n\t\t\t\t\tvbdata[vpos+5]=dh1+bw0+ty+offsetY;\r\n\t\t\t\t\tvbdata[vpos+8]=aw0+ch0+tx+offsetX;\r\n\t\t\t\t\tvbdata[vpos+9]=dh0+bw0+ty+offsetY;\r\n\t\t\t\t\tvbdata[vpos+12]=aw1+ch0+tx+offsetX;\r\n\t\t\t\t\tvbdata[vpos+13]=dh0+bw1+ty+offsetY;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tvbdata[vpos]=aw1+ch1+tx;\r\n\t\t\t\t\tvbdata[vpos+1]=dh1+bw1+ty;\r\n\t\t\t\t\tvbdata[vpos+4]=aw0+ch1+tx;\r\n\t\t\t\t\tvbdata[vpos+5]=dh1+bw0+ty;\r\n\t\t\t\t\tvbdata[vpos+8]=aw0+ch0+tx;\r\n\t\t\t\t\tvbdata[vpos+9]=dh0+bw0+ty;\r\n\t\t\t\t\tvbdata[vpos+12]=aw1+ch0+tx;\r\n\t\t\t\t\tvbdata[vpos+13]=dh0+bw1+ty;\r\n\t\t\t\t}\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 23:\r\n\t\t\t\tif (round){\r\n\t\t\t\t\tfinalX=toBx+dx;\r\n\t\t\t\t\toffsetX=Math.round(finalX)-finalX;\r\n\t\t\t\t\tfinalY=toBy;\r\n\t\t\t\t\toffsetY=Math.round(finalY)-finalY;\r\n\t\t\t\t\tvbdata[vpos]=finalX+offsetX;\r\n\t\t\t\t\tvbdata[vpos+1]=finalY+offsetY;\r\n\t\t\t\t\tvbdata[vpos+4]=toEx+dx+offsetX;\r\n\t\t\t\t\tvbdata[vpos+5]=toBy+offsetY;\r\n\t\t\t\t\tvbdata[vpos+8]=toEx+offsetX;\r\n\t\t\t\t\tvbdata[vpos+9]=toEy+offsetY;\r\n\t\t\t\t\tvbdata[vpos+12]=toBx+offsetX;\r\n\t\t\t\t\tvbdata[vpos+13]=toEy+offsetY;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tvbdata[vpos]=toBx+dx;\r\n\t\t\t\t\tvbdata[vpos+1]=toBy;\r\n\t\t\t\t\tvbdata[vpos+4]=toEx+dx;\r\n\t\t\t\t\tvbdata[vpos+5]=toBy;\r\n\t\t\t\t\tvbdata[vpos+8]=toEx;\r\n\t\t\t\t\tvbdata[vpos+9]=toEy;\r\n\t\t\t\t\tvbdata[vpos+12]=toBx;\r\n\t\t\t\t\tvbdata[vpos+13]=toEy;\r\n\t\t\t\t}\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\tvb._upload=true;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tGlUtils.fillLineVb=function(vb,clip,fx,fy,tx,ty,width,mat){\r\n\t\tvar linew=width *.5;\r\n\t\tvar data=GlUtils._fillLineArray;\r\n\t\tvar perpx=-(fy-ty),perpy=fx-tx;\r\n\t\tvar dist=Math.sqrt(perpx *perpx+perpy *perpy);\r\n\t\tperpx /=dist,perpy /=dist,perpx *=linew,perpy *=linew;\r\n\t\tdata[0]=fx-perpx,data[1]=fy-perpy,data[4]=fx+perpx,data[5]=fy+perpy,data[8]=tx+perpx,data[9]=ty+perpy,data[12]=tx-perpx,data[13]=ty-perpy;\r\n\t\tmat && mat.transformPointArray(data,data);\r\n\t\tvar vpos=(vb._byteLength >> 2)+/*laya.webgl.canvas.WebGLContext2D._RECTVBSIZE*/16;\r\n\t\tvb.byteLength=(vpos << 2);\r\n\t\tvb.insertData(data,vpos-/*laya.webgl.canvas.WebGLContext2D._RECTVBSIZE*/16);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tGlUtils._fillLineArray=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];\r\n\treturn GlUtils;\r\n})()\r\n\r\n\r\n//class laya.webgl.utils.MatirxArray\r\nvar MatirxArray=(function(){\r\n\tfunction MatirxArray(){}\r\n\t__class(MatirxArray,'laya.webgl.utils.MatirxArray');\r\n\tMatirxArray.ArrayMul=function(a,b,o){\r\n\t\tif (!a){\r\n\t\t\tMatirxArray.copyArray(b,o);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!b){\r\n\t\t\tMatirxArray.copyArray(a,o);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar ai0=NaN,ai1=NaN,ai2=NaN,ai3=NaN;\r\n\t\tfor (var i=0;i < 4;i++){\r\n\t\t\tai0=a[i];\r\n\t\t\tai1=a[i+4];\r\n\t\t\tai2=a[i+8];\r\n\t\t\tai3=a[i+12];\r\n\t\t\to[i]=ai0 *b[0]+ai1 *b[1]+ai2 *b[2]+ai3 *b[3];\r\n\t\t\to[i+4]=ai0 *b[4]+ai1 *b[5]+ai2 *b[6]+ai3 *b[7];\r\n\t\t\to[i+8]=ai0 *b[8]+ai1 *b[9]+ai2 *b[10]+ai3 *b[11];\r\n\t\t\to[i+12]=ai0 *b[12]+ai1 *b[13]+ai2 *b[14]+ai3 *b[15];\r\n\t\t}\r\n\t}\r\n\r\n\tMatirxArray.copyArray=function(f,t){\r\n\t\tif (!f)return;\r\n\t\tif (!t)return;\r\n\t\tfor (var i=0;i < f.length;i++){\r\n\t\t\tt[i]=f[i];\r\n\t\t}\r\n\t}\r\n\r\n\treturn MatirxArray;\r\n})()\r\n\r\n\r\n/**\r\n*Mesh2d只是保存数据。描述attribute用的。本身不具有渲染功能。\r\n*/\r\n//class laya.webgl.utils.Mesh2D\r\nvar Mesh2D=(function(){\r\n\tfunction Mesh2D(stride,vballoc,iballoc){\r\n\t\tthis._stride=0;\r\n\t\t//顶点结构大小。每个mesh的顶点结构是固定的。\r\n\t\tthis.vertNum=0;\r\n\t\t//当前的顶点的个数\r\n\t\tthis.indexNum=0;\r\n\t\t//实际index 个数。例如一个三角形是3个。由于ib本身可能超过实际使用的数量，所以需要一个indexNum\r\n\t\tthis._applied=false;\r\n\t\t//是否已经设置给webgl了\r\n\t\tthis._vb=null;\r\n\t\t//vb和ib都可能需要在外部修改，所以public\r\n\t\tthis._ib=null;\r\n\t\tthis._vao=null;\r\n\t\tthis._attribInfo=null;\r\n\t\t//保存起来的属性定义数组。\r\n\t\tthis._quadNum=0;\r\n\t\t//public static var meshlist:Array=[];//活着的mesh对象列表。\r\n\t\tthis.canReuse=false;\r\n\t\tthis._stride=stride;\r\n\t\tthis._vb=new VertexBuffer2D(stride,/*laya.webgl.WebGLContext.DYNAMIC_DRAW*/0x88E8);\r\n\t\tif (vballoc){\r\n\t\t\tthis._vb._resizeBuffer(vballoc,false);\r\n\t\t}else{}\r\n\t\tthis._ib=new IndexBuffer2D();\r\n\t\tif (iballoc){\r\n\t\t\tthis._ib._resizeBuffer(iballoc,false);\r\n\t\t}\r\n\t}\r\n\r\n\t__class(Mesh2D,'laya.webgl.utils.Mesh2D');\r\n\tvar __proto=Mesh2D.prototype;\r\n\t/**\r\n\t*重新创建一个mesh。复用这个对象的vertex结构，ib对象和attribinfo对象\r\n\t*/\r\n\t__proto.cloneWithNewVB=function(){\r\n\t\tvar mesh=new Mesh2D(this._stride,0,0);\r\n\t\tmesh._ib=this._ib;\r\n\t\tmesh._quadNum=this._quadNum;\r\n\t\tmesh._attribInfo=this._attribInfo;\r\n\t\treturn mesh;\r\n\t}\r\n\r\n\t/**\r\n\t*创建一个mesh，使用当前对象的vertex结构。vb和ib自己提供。\r\n\t*@return\r\n\t*/\r\n\t__proto.cloneWithNewVBIB=function(){\r\n\t\tvar mesh=new Mesh2D(this._stride,0,0);\r\n\t\tmesh._attribInfo=this._attribInfo;\r\n\t\treturn mesh;\r\n\t}\r\n\r\n\t/**\r\n\t*获得一个可以写的vb对象\r\n\t*/\r\n\t__proto.getVBW=function(){\r\n\t\tthis._vb.setNeedUpload();\r\n\t\treturn this._vb;\r\n\t}\r\n\r\n\t/**\r\n\t*获得一个只读vb\r\n\t*/\r\n\t__proto.getVBR=function(){\r\n\t\treturn this._vb;\r\n\t}\r\n\r\n\t__proto.getIBR=function(){\r\n\t\treturn this._ib;\r\n\t}\r\n\r\n\t/**\r\n\t*获得一个可写的ib\r\n\t*/\r\n\t__proto.getIBW=function(){\r\n\t\tthis._ib.setNeedUpload();\r\n\t\treturn this._ib;\r\n\t}\r\n\r\n\t/**\r\n\t*直接创建一个固定的ib。按照固定四边形的索引。\r\n\t*@param var QuadNum\r\n\t*/\r\n\t__proto.createQuadIB=function(QuadNum){\r\n\t\tthis._quadNum=QuadNum;\r\n\t\tthis._ib._resizeBuffer(QuadNum *6 *2,false);\r\n\t\tthis._ib.byteLength=this._ib.bufferLength;\r\n\t\tvar bd=this._ib.getUint16Array();\r\n\t\tvar idx=0;\r\n\t\tvar curvert=0;\r\n\t\tfor (var i=0;i < QuadNum;i++){\r\n\t\t\tbd[idx++]=curvert;\r\n\t\t\tbd[idx++]=curvert+2;\r\n\t\t\tbd[idx++]=curvert+1;\r\n\t\t\tbd[idx++]=curvert;\r\n\t\t\tbd[idx++]=curvert+3;\r\n\t\t\tbd[idx++]=curvert+2;\r\n\t\t\tcurvert+=4;\r\n\t\t}\r\n\t\tthis._ib.setNeedUpload();\r\n\t}\r\n\r\n\t/**\r\n\t*设置mesh的属性。每3个一组，对应的location分别是0,1,2...\r\n\t*含义是：type,size,offset\r\n\t*不允许多流。因此stride是固定的，offset只是在一个vertex之内。\r\n\t*@param attribs\r\n\t*/\r\n\t__proto.setAttributes=function(attribs){\r\n\t\tthis._attribInfo=attribs;\r\n\t\tif (this._attribInfo.length % 3 !=0){\r\n\t\t\tthrow 'Mesh2D setAttributes error!';\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.getEleNum=function(){\r\n\t\treturn this._ib.getBuffer().byteLength / 2;\r\n\t}\r\n\r\n\t/**\r\n\t*子类实现。用来把自己放到对应的回收池中，以便复用。\r\n\t*/\r\n\t__proto.releaseMesh=function(){}\r\n\t/**\r\n\t*释放资源。\r\n\t*/\r\n\t__proto.destroy=function(){}\r\n\t/**\r\n\t*清理vb数据\r\n\t*/\r\n\t__proto.clearVB=function(){\r\n\t\tthis._vb.clear();\r\n\t}\r\n\r\n\tMesh2D._gvaoid=0;\r\n\treturn Mesh2D;\r\n})()\r\n\r\n\r\n//class laya.webgl.utils.RenderState2D\r\nvar RenderState2D=(function(){\r\n\tfunction RenderState2D(){}\r\n\t__class(RenderState2D,'laya.webgl.utils.RenderState2D');\r\n\tRenderState2D.getMatrArray=function(){\r\n\t\treturn [1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];\r\n\t}\r\n\r\n\tRenderState2D.mat2MatArray=function(mat,matArray){\r\n\t\tvar m=mat;\r\n\t\tvar m4=matArray;\r\n\t\tm4[0]=m.a;\r\n\t\tm4[1]=m.b;\r\n\t\tm4[2]=RenderState2D.EMPTYMAT4_ARRAY[2];\r\n\t\tm4[3]=RenderState2D.EMPTYMAT4_ARRAY[3];\r\n\t\tm4[4]=m.c;\r\n\t\tm4[5]=m.d;\r\n\t\tm4[6]=RenderState2D.EMPTYMAT4_ARRAY[6];\r\n\t\tm4[7]=RenderState2D.EMPTYMAT4_ARRAY[7];\r\n\t\tm4[8]=RenderState2D.EMPTYMAT4_ARRAY[8];\r\n\t\tm4[9]=RenderState2D.EMPTYMAT4_ARRAY[9];\r\n\t\tm4[10]=RenderState2D.EMPTYMAT4_ARRAY[10];\r\n\t\tm4[11]=RenderState2D.EMPTYMAT4_ARRAY[11];\r\n\t\tm4[12]=m.tx;\r\n\t\tm4[13]=m.ty;\r\n\t\tm4[14]=RenderState2D.EMPTYMAT4_ARRAY[14];\r\n\t\tm4[15]=RenderState2D.EMPTYMAT4_ARRAY[15];\r\n\t\treturn matArray;\r\n\t}\r\n\r\n\tRenderState2D.restoreTempArray=function(){\r\n\t\tRenderState2D.TEMPMAT4_ARRAY[0]=1;\r\n\t\tRenderState2D.TEMPMAT4_ARRAY[1]=0;\r\n\t\tRenderState2D.TEMPMAT4_ARRAY[4]=0;\r\n\t\tRenderState2D.TEMPMAT4_ARRAY[5]=1;\r\n\t\tRenderState2D.TEMPMAT4_ARRAY[12]=0;\r\n\t\tRenderState2D.TEMPMAT4_ARRAY[13]=0;\r\n\t}\r\n\r\n\tRenderState2D.clear=function(){\r\n\t\tRenderState2D.worldScissorTest=false;\r\n\t\tRenderState2D.worldShaderDefines=null;\r\n\t\tRenderState2D.worldFilters=null;\r\n\t\tRenderState2D.worldAlpha=1;\r\n\t\tRenderState2D.worldClipRect.x=RenderState2D.worldClipRect.y=0;\r\n\t\tRenderState2D.worldClipRect.width=RenderState2D.width;\r\n\t\tRenderState2D.worldClipRect.height=RenderState2D.height;\r\n\t\tRenderState2D.curRenderTarget=null;\r\n\t}\r\n\r\n\tRenderState2D._MAXSIZE=99999999;\r\n\tRenderState2D.EMPTYMAT4_ARRAY=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];\r\n\tRenderState2D.TEMPMAT4_ARRAY=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];\r\n\tRenderState2D.worldMatrix4=RenderState2D.TEMPMAT4_ARRAY;\r\n\tRenderState2D.worldAlpha=1.0;\r\n\tRenderState2D.worldScissorTest=false;\r\n\tRenderState2D.worldFilters=null;\r\n\tRenderState2D.worldShaderDefines=null;\r\n\tRenderState2D.curRenderTarget=null;\r\n\tRenderState2D.width=0;\r\n\tRenderState2D.height=0;\r\n\t__static(RenderState2D,\r\n\t['worldMatrix',function(){return this.worldMatrix=new Matrix();},'worldClipRect',function(){return this.worldClipRect=new Rectangle(0,0,99999999,99999999);}\r\n\t]);\r\n\treturn RenderState2D;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*<code>ShaderCompile</code> 类用于实现Shader编译。\r\n*/\r\n//class laya.webgl.utils.ShaderCompile\r\nvar ShaderCompile=(function(){\r\n\tvar ShaderNode,InlcudeFile;\r\n\tfunction ShaderCompile(name,vs,ps,nameMap,defs){\r\n\t\t//this._nameMap=null;\r\n\t\t//this._VS=null;\r\n\t\t//this._PS=null;\r\n\t\tvar _$this=this;\r\n\t\tfunction _compile (script){\r\n\t\t\tvar includefiles=[];\r\n\t\t\tvar top=new ShaderNode(includefiles);\r\n\t\t\t_$this._compileToTree(top,script.split('\\n'),0,includefiles,defs);\r\n\t\t\treturn top;\r\n\t\t};\r\n\t\tvar startTime=Browser.now();\r\n\t\tthis._VS=_compile(vs);\r\n\t\tthis._PS=_compile(ps);\r\n\t\tthis._nameMap=nameMap;\r\n\t\tif ((Browser.now()-startTime)> 2)\r\n\t\t\tconsole.log(\"ShaderCompile use time:\"+(Browser.now()-startTime)+\"  size:\"+vs.length+\"/\"+ps.length);\r\n\t}\r\n\r\n\t__class(ShaderCompile,'laya.webgl.utils.ShaderCompile');\r\n\tvar __proto=ShaderCompile.prototype;\r\n\t__proto._compileToTree=function(parent,lines,start,includefiles,defs){\r\n\t\tvar node,preNode;\r\n\t\tvar text,name,fname;\r\n\t\tvar ofs=0,words,noUseNode;\r\n\t\tvar i=0,n=0,j=0;\r\n\t\tfor (i=start;i < lines.length;i++){\r\n\t\t\ttext=lines[i];\r\n\t\t\tif (text.length < 1)continue ;\r\n\t\t\tofs=text.indexOf(\"//\");\r\n\t\t\tif (ofs===0)continue ;\r\n\t\t\tif (ofs >=0)text=text.substr(0,ofs);\r\n\t\t\tnode=noUseNode || new ShaderNode(includefiles);\r\n\t\t\tnoUseNode=null;\r\n\t\t\tnode.text=text;\r\n\t\t\tnode.noCompile=true;\r\n\t\t\tif ((ofs=text.indexOf(\"#\"))>=0){\r\n\t\t\t\tname=\"#\";\r\n\t\t\t\tfor (j=ofs+1,n=text.length;j < n;j++){\r\n\t\t\t\t\tvar c=text.charAt(j);\r\n\t\t\t\t\tif (c===' ' || c==='\\t' || c==='?')break ;\r\n\t\t\t\t\tname+=c;\r\n\t\t\t\t}\r\n\t\t\t\tnode.name=name;\r\n\t\t\t\tswitch (name){\r\n\t\t\t\t\tcase \"#ifdef\":\r\n\t\t\t\t\tcase \"#ifndef\":\r\n\t\t\t\t\t\tnode.src=text;\r\n\t\t\t\t\t\tnode.noCompile=text.match(/[!&|()=<>]/)!=null;\r\n\t\t\t\t\t\tif (!node.noCompile){\r\n\t\t\t\t\t\t\twords=text.replace(/^\\s*/,'').split(/\\s+/);\r\n\t\t\t\t\t\t\tnode.setCondition(words[1],name===\"#ifdef\" ? 1 :2);\r\n\t\t\t\t\t\t\tnode.text=\"//\"+node.text;\r\n\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\tconsole.log(\"function():Boolean{return \"+text.substr(ofs+node.name.length)+\"}\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnode.setParent(parent);\r\n\t\t\t\t\t\tparent=node;\r\n\t\t\t\t\t\tif (defs){\r\n\t\t\t\t\t\t\twords=text.substr(j).split(ShaderCompile._splitToWordExps3);\r\n\t\t\t\t\t\t\tfor (j=0;j < words.length;j++){\r\n\t\t\t\t\t\t\t\ttext=words[j];\r\n\t\t\t\t\t\t\t\ttext.length && (defs[ text]=true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\tcase \"#if\":\r\n\t\t\t\t\t\tnode.src=text;\r\n\t\t\t\t\t\tnode.noCompile=true;\r\n\t\t\t\t\t\tnode.setParent(parent);\r\n\t\t\t\t\t\tparent=node;\r\n\t\t\t\t\t\tif (defs){\r\n\t\t\t\t\t\t\twords=text.substr(j).split(ShaderCompile._splitToWordExps3);\r\n\t\t\t\t\t\t\tfor (j=0;j < words.length;j++){\r\n\t\t\t\t\t\t\t\ttext=words[j];\r\n\t\t\t\t\t\t\t\ttext.length && text!=\"defined\" && (defs[ text]=true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\tcase \"#else\":\r\n\t\t\t\t\t\tnode.src=text;\r\n\t\t\t\t\t\tparent=parent.parent;\r\n\t\t\t\t\t\tpreNode=parent.childs[parent.childs.length-1];\r\n\t\t\t\t\t\tnode.noCompile=preNode.noCompile\r\n\t\t\t\t\t\tif (!(node.noCompile)){\r\n\t\t\t\t\t\t\tnode.condition=preNode.condition;\r\n\t\t\t\t\t\t\tnode.conditionType=preNode.conditionType==1 ? 2 :1;\r\n\t\t\t\t\t\t\tnode.text=\"//\"+node.text+\" \"+preNode.text+\" \"+node.conditionType;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnode.setParent(parent);\r\n\t\t\t\t\t\tparent=node;\r\n\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\tcase \"#endif\":\r\n\t\t\t\t\t\tparent=parent.parent;\r\n\t\t\t\t\t\tpreNode=parent.childs[parent.childs.length-1];\r\n\t\t\t\t\t\tnode.noCompile=preNode.noCompile;\r\n\t\t\t\t\t\tif (!(node.noCompile)){\r\n\t\t\t\t\t\t\tnode.text=\"//\"+node.text;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnode.setParent(parent);\r\n\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\tcase \"#include\":\r\n\t\t\t\t\t\twords=ShaderCompile.splitToWords(text,null);\r\n\t\t\t\t\t\tvar inlcudeFile=ShaderCompile.includes[words[1]];\r\n\t\t\t\t\t\tif (!inlcudeFile){\r\n\t\t\t\t\t\t\tthrow \"ShaderCompile error no this include file:\"+words[1];\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ((ofs=words[0].indexOf(\"?\"))< 0){\r\n\t\t\t\t\t\t\tnode.setParent(parent);\r\n\t\t\t\t\t\t\ttext=inlcudeFile.getWith(words[2]=='with' ? words[3] :null);\r\n\t\t\t\t\t\t\tthis._compileToTree(node,text.split('\\n'),0,includefiles,defs);\r\n\t\t\t\t\t\t\tnode.text=\"\";\r\n\t\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tnode.setCondition(words[0].substr(ofs+1),1);\r\n\t\t\t\t\t\tnode.text=inlcudeFile.getWith(words[2]=='with' ? words[3] :null);\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase \"#import\":\r\n\t\t\t\t\t\twords=ShaderCompile.splitToWords(text,null);\r\n\t\t\t\t\t\tfname=words[1];\r\n\t\t\t\t\t\tincludefiles.push({node:node,file:ShaderCompile.includes[fname],ofs:node.text.length});\r\n\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tpreNode=parent.childs[parent.childs.length-1];\r\n\t\t\t\tif (preNode && !preNode.name){\r\n\t\t\t\t\tincludefiles.length > 0 && ShaderCompile.splitToWords(text,preNode);\r\n\t\t\t\t\tnoUseNode=node;\r\n\t\t\t\t\tpreNode.text+=\"\\n\"+text;\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\t}\r\n\t\t\t\tincludefiles.length > 0 && ShaderCompile.splitToWords(text,node);\r\n\t\t\t}\r\n\t\t\tnode.setParent(parent);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.createShader=function(define,shaderName,createShader){\r\n\t\tvar defMap={};\r\n\t\tvar defineStr=\"\";\r\n\t\tif (define){\r\n\t\t\tfor (var i in define){\r\n\t\t\t\tdefineStr+=\"#define \"+i+\"\\n\";\r\n\t\t\t\tdefMap[i]=true;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar vs=this._VS.toscript(defMap,[]);\r\n\t\tvar ps=this._PS.toscript(defMap,[]);\r\n\t\treturn (createShader || Shader.create)(defineStr+vs.join('\\n'),defineStr+ps.join('\\n'),shaderName,this._nameMap);\r\n\t}\r\n\r\n\tShaderCompile._parseOne=function(attributes,uniforms,words,i,word,b){\r\n\t\tvar one={type:ShaderCompile.shaderParamsMap[words[i+1]],name:words[i+2],size:isNaN(parseInt(words[i+3]))? 1 :parseInt(words[i+3])};\r\n\t\tif (b){\r\n\t\t\tif (word==\"attribute\"){\r\n\t\t\t\tattributes.push(one);\r\n\t\t\t\t}else {\r\n\t\t\t\tuniforms.push(one);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (words[i+3]==':'){\r\n\t\t\tone.type=words[i+4];\r\n\t\t\ti+=2;\r\n\t\t}\r\n\t\ti+=2;\r\n\t\treturn i;\r\n\t}\r\n\r\n\tShaderCompile.addInclude=function(fileName,txt){\r\n\t\tif (!txt || txt.length===0)\r\n\t\t\tthrow new Error(\"add shader include file err:\"+fileName);\r\n\t\tif (ShaderCompile.includes[fileName])\r\n\t\t\tthrow new Error(\"add shader include file err, has add:\"+fileName);\r\n\t\tShaderCompile.includes[fileName]=new InlcudeFile(txt);\r\n\t}\r\n\r\n\tShaderCompile.preGetParams=function(vs,ps){\r\n\t\tvar text=[vs,ps];\r\n\t\tvar result={};\r\n\t\tvar attributes=[];\r\n\t\tvar uniforms=[];\r\n\t\tvar definesInfo={};\r\n\t\tvar definesName=[];\r\n\t\tresult.attributes=attributes;\r\n\t\tresult.uniforms=uniforms;\r\n\t\tresult.defines=definesInfo;\r\n\t\tvar i=0,n=0,one;\r\n\t\tfor (var s=0;s < 2;s++){\r\n\t\t\ttext[s]=text[s].replace(ShaderCompile._removeAnnotation,\"\");\r\n\t\t\tvar words=text[s].match(ShaderCompile._reg);\r\n\t\t\tvar tempelse;\r\n\t\t\tfor (i=0,n=words.length;i < n;i++){\r\n\t\t\t\tvar word=words[i];\r\n\t\t\t\tif (word !=\"attribute\" && word !=\"uniform\"){\r\n\t\t\t\t\tif (word==\"#define\"){\r\n\t\t\t\t\t\tword=words[++i];\r\n\t\t\t\t\t\tdefinesName[word]=1;\r\n\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\t\t}else if (word==\"#ifdef\"){\r\n\t\t\t\t\t\ttempelse=words[++i];\r\n\t\t\t\t\t\tvar def=definesInfo[tempelse]=definesInfo[tempelse] || [];\r\n\t\t\t\t\t\tfor (i++;i < n;i++){\r\n\t\t\t\t\t\t\tword=words[i];\r\n\t\t\t\t\t\t\tif (word !=\"attribute\" && word !=\"uniform\"){\r\n\t\t\t\t\t\t\t\tif (word==\"#else\"){\r\n\t\t\t\t\t\t\t\t\tfor (i++;i < n;i++){\r\n\t\t\t\t\t\t\t\t\t\tword=words[i];\r\n\t\t\t\t\t\t\t\t\t\tif (word !=\"attribute\" && word !=\"uniform\"){\r\n\t\t\t\t\t\t\t\t\t\t\tif (word==\"#endif\"){\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\ti=ShaderCompile._parseOne(attributes,uniforms,words,i,word,!definesName[tempelse]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ti=ShaderCompile._parseOne(attributes,uniforms,words,i,word,definesName[tempelse]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\t}\r\n\t\t\t\ti=ShaderCompile._parseOne(attributes,uniforms,words,i,word,true);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tShaderCompile.splitToWords=function(str,block){\r\n\t\tvar out=[];\r\n\t\tvar c;\r\n\t\tvar ofs=-1;\r\n\t\tvar word;\r\n\t\tfor (var i=0,n=str.length;i < n;i++){\r\n\t\t\tc=str.charAt(i);\r\n\t\t\tif (\" \\t=+-*/&%!<>()'\\\",;\".indexOf(c)>=0){\r\n\t\t\t\tif (ofs >=0 && (i-ofs)> 1){\r\n\t\t\t\t\tword=str.substr(ofs,i-ofs);\r\n\t\t\t\t\tout.push(word);\r\n\t\t\t\t}\r\n\t\t\t\tif (c=='\"' || c==\"'\"){\r\n\t\t\t\t\tvar ofs2=str.indexOf(c,i+1);\r\n\t\t\t\t\tif (ofs2 < 0){\r\n\t\t\t\t\t\tthrow \"Sharder err:\"+str;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tout.push(str.substr(i+1,ofs2-i-1));\r\n\t\t\t\t\ti=ofs2;\r\n\t\t\t\t\tofs=-1;\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\t}\r\n\t\t\t\tif (c=='(' && block && out.length > 0){\r\n\t\t\t\t\tword=out[out.length-1]+\";\";\r\n\t\t\t\t\tif (\"vec4;main;\".indexOf(word)< 0)\r\n\t\t\t\t\t\tblock.useFuns+=word;\r\n\t\t\t\t}\r\n\t\t\t\tofs=-1;\r\n\t\t\t\tcontinue ;\r\n\t\t\t}\r\n\t\t\tif (ofs < 0)ofs=i;\r\n\t\t}\r\n\t\tif (ofs < n && (n-ofs)> 1){\r\n\t\t\tword=str.substr(ofs,n-ofs);\r\n\t\t\tout.push(word);\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\tShaderCompile.IFDEF_NO=0;\r\n\tShaderCompile.IFDEF_YES=1;\r\n\tShaderCompile.IFDEF_ELSE=2;\r\n\tShaderCompile.IFDEF_PARENT=3;\r\n\tShaderCompile._removeAnnotation=new RegExp(\"(/\\\\*([^*]|[\\\\r\\\\\\n]|(\\\\*+([^*/]|[\\\\r\\\\n])))*\\\\*+/)|(//.*)\",\"g\");\r\n\tShaderCompile._reg=new RegExp(\"(\\\".*\\\")|('.*')|([#\\\\w\\\\*-\\\\.+/()=<>{}\\\\\\\\]+)|([,;:\\\\\\\\])\",\"g\");\r\n\tShaderCompile._splitToWordExps=new RegExp(\"[(\\\".*\\\")]+|[('.*')]+|([ \\\\t=\\\\+\\\\-*/&%!<>!%\\(\\),;])\",\"g\");\r\n\tShaderCompile.includes={};\r\n\t__static(ShaderCompile,\r\n\t['shaderParamsMap',function(){return this.shaderParamsMap={\"float\":/*laya.webgl.WebGLContext.FLOAT*/0x1406,\"int\":/*laya.webgl.WebGLContext.INT*/0x1404,\"bool\":/*laya.webgl.WebGLContext.BOOL*/0x8B56,\"vec2\":/*laya.webgl.WebGLContext.FLOAT_VEC2*/0x8B50,\"vec3\":/*laya.webgl.WebGLContext.FLOAT_VEC3*/0x8B51,\"vec4\":/*laya.webgl.WebGLContext.FLOAT_VEC4*/0x8B52,\"ivec2\":/*laya.webgl.WebGLContext.INT_VEC2*/0x8B53,\"ivec3\":/*laya.webgl.WebGLContext.INT_VEC3*/0x8B54,\"ivec4\":/*laya.webgl.WebGLContext.INT_VEC4*/0x8B55,\"bvec2\":/*laya.webgl.WebGLContext.BOOL_VEC2*/0x8B57,\"bvec3\":/*laya.webgl.WebGLContext.BOOL_VEC3*/0x8B58,\"bvec4\":/*laya.webgl.WebGLContext.BOOL_VEC4*/0x8B59,\"mat2\":/*laya.webgl.WebGLContext.FLOAT_MAT2*/0x8B5A,\"mat3\":/*laya.webgl.WebGLContext.FLOAT_MAT3*/0x8B5B,\"mat4\":/*laya.webgl.WebGLContext.FLOAT_MAT4*/0x8B5C,\"sampler2D\":/*laya.webgl.WebGLContext.SAMPLER_2D*/0x8B5E,\"samplerCube\":/*laya.webgl.WebGLContext.SAMPLER_CUBE*/0x8B60};},'_splitToWordExps3',function(){return this._splitToWordExps3=new RegExp(\"[ \\\\t=\\\\+\\\\-*/&%!<>!%\\(\\),;\\\\|]\",\"g\");}\r\n\t]);\r\n\tShaderCompile.__init$=function(){\r\n\t\t//class ShaderNode\r\n\t\tShaderNode=(function(){\r\n\t\t\tfunction ShaderNode(includefiles){\r\n\t\t\t\tthis.childs=[];\r\n\t\t\t\tthis.text=\"\";\r\n\t\t\t\tthis.parent=null;\r\n\t\t\t\tthis.name=null;\r\n\t\t\t\tthis.noCompile=false;\r\n\t\t\t\tthis.includefiles=null;\r\n\t\t\t\tthis.condition=null;\r\n\t\t\t\tthis.conditionType=0;\r\n\t\t\t\tthis.useFuns=\"\";\r\n\t\t\t\tthis.z=0;\r\n\t\t\t\tthis.src=null;\r\n\t\t\t\tthis.includefiles=includefiles;\r\n\t\t\t}\r\n\t\t\t__class(ShaderNode,'');\r\n\t\t\tvar __proto=ShaderNode.prototype;\r\n\t\t\t__proto.setParent=function(parent){\r\n\t\t\t\tparent.childs.push(this);\r\n\t\t\t\tthis.z=parent.z+1;\r\n\t\t\t\tthis.parent=parent;\r\n\t\t\t}\r\n\t\t\t__proto.setCondition=function(condition,type){\r\n\t\t\t\tif (condition){\r\n\t\t\t\t\tthis.conditionType=type;\r\n\t\t\t\t\tcondition=condition.replace(/(\\s*$)/g,\"\");\r\n\t\t\t\t\tthis.condition=function (){\r\n\t\t\t\t\t\treturn this[condition];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.condition.__condition=condition;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t__proto.toscript=function(def,out){\r\n\t\t\t\treturn this._toscript(def,out,++ShaderNode.__id);\r\n\t\t\t}\r\n\t\t\t__proto._toscript=function(def,out,id){\r\n\t\t\t\tif (this.childs.length < 1 && !this.text)return out;\r\n\t\t\t\tvar outIndex=out.length;\r\n\t\t\t\tif (this.condition){\r\n\t\t\t\t\tvar ifdef=!!this.condition.call(def);\r\n\t\t\t\t\tthis.conditionType===/*laya.webgl.utils.ShaderCompile.IFDEF_ELSE*/2 && (ifdef=!ifdef);\r\n\t\t\t\t\tif (!ifdef)return out;\r\n\t\t\t\t}\r\n\t\t\t\tthis.text && out.push(this.text);\r\n\t\t\t\tthis.childs.length > 0 && this.childs.forEach(function(o,index,arr){\r\n\t\t\t\t\to._toscript(def,out,id);\r\n\t\t\t\t});\r\n\t\t\t\tif (this.includefiles.length > 0 && this.useFuns.length > 0){\r\n\t\t\t\t\tvar funsCode;\r\n\t\t\t\t\tfor (var i=0,n=this.includefiles.length;i < n;i++){\r\n\t\t\t\t\t\tif (this.includefiles[i].curUseID==id){\r\n\t\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfunsCode=this.includefiles[i].file.getFunsScript(this.useFuns);\r\n\t\t\t\t\t\tif (funsCode.length > 0){\r\n\t\t\t\t\t\t\tthis.includefiles[i].curUseID=id;\r\n\t\t\t\t\t\t\tout[0]=funsCode+out[0];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn out;\r\n\t\t\t}\r\n\t\t\tShaderNode.__id=1;\r\n\t\t\treturn ShaderNode;\r\n\t\t})()\r\n\t\t//class InlcudeFile\r\n\t\tInlcudeFile=(function(){\r\n\t\t\tfunction InlcudeFile(txt){\r\n\t\t\t\tthis.script=null;\r\n\t\t\t\tthis.codes={};\r\n\t\t\t\tthis.funs={};\r\n\t\t\t\tthis.curUseID=-1;\r\n\t\t\t\tthis.funnames=\"\";\r\n\t\t\t\tthis.script=txt;\r\n\t\t\t\tvar begin=0,ofs=0,end=0;\r\n\t\t\t\twhile (true){\r\n\t\t\t\t\tbegin=txt.indexOf(\"#begin\",begin);\r\n\t\t\t\t\tif (begin < 0)break ;\r\n\t\t\t\t\tend=begin+5;\r\n\t\t\t\t\twhile (true){\r\n\t\t\t\t\t\tend=txt.indexOf(\"#end\",end);\r\n\t\t\t\t\t\tif (end < 0)break ;\r\n\t\t\t\t\t\tif (txt.charAt(end+4)==='i')\r\n\t\t\t\t\t\t\tend+=5;\r\n\t\t\t\t\t\telse break ;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (end < 0){\r\n\t\t\t\t\t\tthrow \"add include err,no #end:\"+txt;\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tofs=txt.indexOf('\\n',begin);\r\n\t\t\t\t\tvar words=ShaderCompile.splitToWords(txt.substr(begin,ofs-begin),null);\r\n\t\t\t\t\tif (words[1]=='code'){\r\n\t\t\t\t\t\tthis.codes[words[2]]=txt.substr(ofs+1,end-ofs-1);\r\n\t\t\t\t\t\t}else if (words[1]=='function'){\r\n\t\t\t\t\t\tofs=txt.indexOf(\"function\",begin);\r\n\t\t\t\t\t\tofs+=\"function\".length;\r\n\t\t\t\t\t\tthis.funs[words[3]]=txt.substr(ofs+1,end-ofs-1);\r\n\t\t\t\t\t\tthis.funnames+=words[3]+\";\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbegin=end+1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t__class(InlcudeFile,'');\r\n\t\t\tvar __proto=InlcudeFile.prototype;\r\n\t\t\t__proto.getWith=function(name){\r\n\t\t\t\tvar r=name ? this.codes[name] :this.script;\r\n\t\t\t\tif (!r){\r\n\t\t\t\t\tthrow \"get with error:\"+name;\r\n\t\t\t\t}\r\n\t\t\t\treturn r;\r\n\t\t\t}\r\n\t\t\t__proto.getFunsScript=function(funsdef){\r\n\t\t\t\tvar r=\"\";\r\n\t\t\t\tfor (var i in this.funs){\r\n\t\t\t\t\tif (funsdef.indexOf(i+\";\")>=0){\r\n\t\t\t\t\t\tr+=this.funs[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn r;\r\n\t\t\t}\r\n\t\t\treturn InlcudeFile;\r\n\t\t})()\r\n\t}\r\n\r\n\treturn ShaderCompile;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.webgl.WebGL\r\nvar WebGL=(function(){\r\n\tfunction WebGL(){}\r\n\t__class(WebGL,'laya.webgl.WebGL');\r\n\tWebGL._uint8ArraySlice=function(){\r\n\t\tvar _this=/*__JS__ */this;\r\n\t\tvar sz=_this.length;\r\n\t\tvar dec=new Uint8Array(_this.length);\r\n\t\tfor (var i=0;i < sz;i++)dec[i]=_this[i];\r\n\t\treturn dec;\r\n\t}\r\n\r\n\tWebGL._float32ArraySlice=function(){\r\n\t\tvar _this=/*__JS__ */this;\r\n\t\tvar sz=_this.length;\r\n\t\tvar dec=new Float32Array(_this.length);\r\n\t\tfor (var i=0;i < sz;i++)dec[i]=_this[i];\r\n\t\treturn dec;\r\n\t}\r\n\r\n\tWebGL._uint16ArraySlice=function(__arg){\r\n\t\tvar arg=arguments;\r\n\t\tvar _this=/*__JS__ */this;\r\n\t\tvar sz=0;\r\n\t\tvar dec;\r\n\t\tvar i=0;\r\n\t\tif (arg.length===0){\r\n\t\t\tsz=_this.length;\r\n\t\t\tdec=new Uint16Array(sz);\r\n\t\t\tfor (i=0;i < sz;i++)\r\n\t\t\tdec[i]=_this[i];\r\n\t\t\t}else if (arg.length===2){\r\n\t\t\tvar start=arg[0];\r\n\t\t\tvar end=arg[1];\r\n\t\t\tif (end > start){\r\n\t\t\t\tsz=end-start;\r\n\t\t\t\tdec=new Uint16Array(sz);\r\n\t\t\t\tfor (i=start;i < end;i++)\r\n\t\t\t\tdec[i-start]=_this[i];\r\n\t\t\t\t}else {\r\n\t\t\t\tdec=new Uint16Array(0);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn dec;\r\n\t}\r\n\r\n\tWebGL.expandContext=function(){\r\n\t\tvar from=Context.prototype;\r\n\t\tvar to=/*__JS__ */CanvasRenderingContext2D.prototype;\r\n\t\tto.fillTrangles=from.fillTrangles;\r\n\t\tBuffer2D.__int__(null);\r\n\t\tto.setIBVB=function (x,y,ib,vb,numElement,mat,shader,shaderValues,startIndex,offset){\r\n\t\t\t(startIndex===void 0)&& (startIndex=0);\r\n\t\t\t(offset===void 0)&& (offset=0);\r\n\t\t\tif (ib===null){\r\n\t\t\t\tthis._ib=this._ib || IndexBuffer2D.QuadrangleIB;\r\n\t\t\t\tib=this._ib;\r\n\t\t\t\tGlUtils.expandIBQuadrangle(ib,(vb._byteLength / (4 *16)+8));\r\n\t\t\t}\r\n\t\t\tthis._setIBVB(x,y,ib,vb,numElement,mat,shader,shaderValues,startIndex,offset);\r\n\t\t};\r\n\t\tto.fillTrangles=function (tex,x,y,points,m){\r\n\t\t\tthis._curMat=this._curMat || Matrix.create();\r\n\t\t\tthis._vb=this._vb || VertexBuffer2D.create();\r\n\t\t\tif (!this._ib){\r\n\t\t\t\tthis._ib=IndexBuffer2D.create();\r\n\t\t\t\tGlUtils.fillIBQuadrangle(this._ib,length / 4);\r\n\t\t\t};\r\n\t\t\tvar vb=this._vb;\r\n\t\t\tvar length=points.length >> 4;\r\n\t\t\tGlUtils.fillTranglesVB(vb,x,y,points,m || this._curMat,0,0);\r\n\t\t\tGlUtils.expandIBQuadrangle(this._ib,(vb._byteLength / (4 *16)+8));\r\n\t\t\tvar shaderValues=new Value2D(0x01,0);\r\n\t\t\tshaderValues.textureHost=tex;\r\n\t\t\tvar sd=new Shader2X(\"attribute vec2 position; attribute vec2 texcoord; uniform vec2 size; uniform mat4 mmat; varying vec2 v_texcoord; void main() { vec4 p=vec4(position.xy,0.0,1.0);vec4 pos=mmat*p; gl_Position =vec4((pos.x/size.x-0.5)*2.0,(0.5-pos.y/size.y)*2.0,pos.z,1.0); v_texcoord = texcoord; }\",\"precision mediump float; varying vec2 v_texcoord; uniform sampler2D texture; void main() {vec4 color= texture2D(texture, v_texcoord); color.a*=1.0; gl_FragColor= color;}\");\r\n\t\t\t/*__JS__ */vb._vertType=3;\r\n\t\t\tthis._setIBVB(x,y,this._ib,vb,length *6,m,sd,shaderValues,0,0);\r\n\t\t}\r\n\t}\r\n\r\n\tWebGL.enable=function(){\r\n\t\tBrowser.__init__();\r\n\t\tif (Render.isConchApp){\r\n\t\t\tif (!Render.isConchWebGL){\r\n\t\t\t\tRunDriver.skinAniSprite=function (){\r\n\t\t\t\t\tvar tSkinSprite=new SkinMesh()\r\n\t\t\t\t\treturn tSkinSprite;\r\n\t\t\t\t}\r\n\t\t\t\tWebGL.expandContext();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tRunDriver.getWebGLContext=function getWebGLContext (canvas){\r\n\t\t\tvar gl;\r\n\t\t\tvar names=[\"webgl\",\"experimental-webgl\",\"webkit-3d\",\"moz-webgl\"];\r\n\t\t\tfor (var i=0;i < names.length;i++){\r\n\t\t\t\ttry {\r\n\t\t\t\t\tgl=canvas.getContext(names[i],{stencil:Config.isStencil,alpha:Config.isAlpha,antialias:Config.isAntialias,premultipliedAlpha:Config.premultipliedAlpha,preserveDrawingBuffer:Config.preserveDrawingBuffer});\r\n\t\t\t\t}catch (e){}\r\n\t\t\t\tif (gl)\r\n\t\t\t\t\treturn gl;\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tWebGL.mainContext=RunDriver.getWebGLContext(Render._mainCanvas);\r\n\t\tif (WebGL.mainContext==null)\r\n\t\t\treturn false;\r\n\t\tif (Render.isWebGL)return true;\r\n\t\tHTMLImage.create=function (src,def){\r\n\t\t\treturn new WebGLImage(src,def);\r\n\t\t}\r\n\t\tHTMLSubImage.create=function (canvas,offsetX,offsetY,width,height,atlasImage,src){\r\n\t\t\treturn new WebGLSubImage(canvas,offsetX,offsetY,width,height,atlasImage,src);\r\n\t\t}\r\n\t\tRender.WebGL=WebGL;\r\n\t\tRender.isWebGL=true;\r\n\t\tDrawText.__init__();\r\n\t\tRunDriver.createRenderSprite=function (type,next){\r\n\t\t\treturn new RenderSprite3D(type,next);\r\n\t\t}\r\n\t\tRunDriver.createWebGLContext2D=function (c){\r\n\t\t\treturn new WebGLContext2D(c);\r\n\t\t}\r\n\t\tRunDriver.changeWebGLSize=function (width,height){\r\n\t\t\tlaya.webgl.WebGL.onStageResize(width,height);\r\n\t\t}\r\n\t\tRunDriver.createGraphics=function (){\r\n\t\t\treturn new GraphicsGL();\r\n\t\t};\r\n\t\tvar action=RunDriver.createFilterAction;\r\n\t\tRunDriver.createFilterAction=action ? action :function (type){\r\n\t\t\treturn new ColorFilterActionGL()\r\n\t\t}\r\n\t\tRunDriver.clear=function (color){\r\n\t\t\tRenderState2D.worldScissorTest && laya.webgl.WebGL.mainContext.disable(/*laya.webgl.WebGLContext.SCISSOR_TEST*/0x0C11);\r\n\t\t\tvar ctx=Render.context.ctx;\r\n\t\t\tvar c=(ctx._submits._length==0 || Config.preserveDrawingBuffer)? Color.create(color)._color :Stage._wgColor;\r\n\t\t\tif (c)ctx.clearBG(c[0],c[1],c[2],c[3]);\r\n\t\t\tRenderState2D.clear();\r\n\t\t}\r\n\t\tRunDriver.addToAtlas=function (texture,force){\r\n\t\t\t(force===void 0)&& (force=false);\r\n\t\t\tvar bitmap=texture.bitmap;\r\n\t\t\tif (!Render.optimizeTextureMemory(texture.url,texture)){\r\n\t\t\t\t(bitmap).enableMerageInAtlas=false;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif ((Laya.__typeof(bitmap,'laya.webgl.resource.IMergeAtlasBitmap'))&& ((bitmap).allowMerageInAtlas)){\r\n\t\t\t\tbitmap.on(/*laya.events.Event.RECOVERED*/\"recovered\",texture,texture.addTextureToAtlas);\r\n\t\t\t}\r\n\t\t}\r\n\t\tRunDriver.isAtlas=function (bitmap){\r\n\t\t\treturn (bitmap instanceof laya.webgl.atlas.AtlasWebGLCanvas );\r\n\t\t}\r\n\t\tAtlasResourceManager._enable();\r\n\t\tRunDriver.beginFlush=function (){\r\n\t\t\tvar atlasResourceManager=AtlasResourceManager.instance;\r\n\t\t\tvar count=atlasResourceManager.getAtlaserCount();\r\n\t\t\tfor (var i=0;i < count;i++){\r\n\t\t\t\tvar atlerCanvas=atlasResourceManager.getAtlaserByIndex(i).texture;\r\n\t\t\t\t(atlerCanvas._flashCacheImageNeedFlush)&& (RunDriver.flashFlushImage(atlerCanvas));\r\n\t\t\t}\r\n\t\t}\r\n\t\tRunDriver.drawToCanvas=function (sprite,_renderType,canvasWidth,canvasHeight,offsetX,offsetY){\r\n\t\t\tif (canvasWidth <=0 || canvasHeight <=0){\r\n\t\t\t\tconsole.log(\"[error] canvasWidth and canvasHeight should greater than zero\");\r\n\t\t\t}\r\n\t\t\toffsetX-=sprite.x;\r\n\t\t\toffsetY-=sprite.y;\r\n\t\t\tcanvasWidth |=1;canvasHeight |=1;offsetX |=1;offsetY |=1;\r\n\t\t\tvar renderTarget=RenderTarget2D.create(canvasWidth,canvasHeight,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,0,false);\r\n\t\t\trenderTarget.start();\r\n\t\t\trenderTarget.clear(0,0,0,0);\r\n\t\t\tRender.context.clear();\r\n\t\t\tRenderSprite.renders[_renderType]._fun(sprite,Render.context,offsetX,RenderState2D.height-canvasHeight+offsetY);\r\n\t\t\tRender.context.flush();\r\n\t\t\trenderTarget.end();\r\n\t\t\tvar pixels=renderTarget.getData(0,0,canvasWidth,canvasHeight);\r\n\t\t\trenderTarget.recycle();\r\n\t\t\tif (pixels.byteLength !=canvasWidth *canvasHeight *4){\r\n\t\t\t\tconsole.log('drawToCanvas error: w:'+canvasWidth+',h:'+canvasHeight+',datalen:'+pixels.byteLength);\r\n\t\t\t\treturn;\r\n\t\t\t};\r\n\t\t\tvar htmlCanvas=new WebGLCanvas();\r\n\t\t\thtmlCanvas._canvas=Browser.createElement(\"canvas\");\r\n\t\t\thtmlCanvas.size(canvasWidth,canvasHeight);\r\n\t\t\tvar context=htmlCanvas._canvas.getContext('2d');\r\n\t\t\tBrowser.canvas.size(canvasWidth,canvasHeight);\r\n\t\t\tvar tempContext=Browser.context;\r\n\t\t\tvar imgData=tempContext.createImageData(canvasWidth,canvasHeight);\r\n\t\t\timgData.data.set(/*__JS__ */new Uint8ClampedArray(pixels.buffer));\r\n\t\t\thtmlCanvas._imgData=imgData;\r\n\t\t\ttempContext.putImageData(imgData,0,0);\r\n\t\t\tcontext.save();\r\n\t\t\tcontext.translate(0,canvasHeight);\r\n\t\t\tcontext.scale(1,-1);\r\n\t\t\tcontext.drawImage(Browser.canvas.source,0,0);\r\n\t\t\tcontext.restore();\r\n\t\t\treturn htmlCanvas;\r\n\t\t}\r\n\t\tRunDriver.createFilterAction=function (type){\r\n\t\t\tvar action;\r\n\t\t\tswitch (type){\r\n\t\t\t\tcase /*laya.filters.Filter.COLOR*/0x20:\r\n\t\t\t\t\taction=new ColorFilterActionGL();\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\treturn action;\r\n\t\t}\r\n\t\tRunDriver.addTextureToAtlas=function (texture){\r\n\t\t\ttexture._uvID++;\r\n\t\t\tAtlasResourceManager._atlasRestore++;\r\n\t\t\t((texture.bitmap).enableMerageInAtlas)&& (AtlasResourceManager.instance.addToAtlas(texture));\r\n\t\t}\r\n\t\tRunDriver.getTexturePixels=function (value,x,y,width,height){\r\n\t\t\t(Render.context.ctx).clear();\r\n\t\t\tvar tSprite=new Sprite();\r\n\t\t\ttSprite.graphics.drawTexture(value,-x,-y);\r\n\t\t\tvar tRenderTarget=RenderTarget2D.create(width,height);\r\n\t\t\ttRenderTarget.start();\r\n\t\t\ttRenderTarget.clear(0,0,0,0);\r\n\t\t\ttSprite.render(Render.context,0,0);\r\n\t\t\t(Render.context.ctx).flush();\r\n\t\t\ttRenderTarget.end();\r\n\t\t\tvar tUint8Array=tRenderTarget.getData(0,0,width,height);\r\n\t\t\tvar tArray=[];\r\n\t\t\tvar tIndex=0;\r\n\t\t\tfor (var i=height-1;i >=0;i--){\r\n\t\t\t\tfor (var j=0;j < width;j++){\r\n\t\t\t\t\ttIndex=(i *width+j)*4;\r\n\t\t\t\t\ttArray.push(tUint8Array[tIndex]);\r\n\t\t\t\t\ttArray.push(tUint8Array[tIndex+1]);\r\n\t\t\t\t\ttArray.push(tUint8Array[tIndex+2]);\r\n\t\t\t\t\ttArray.push(tUint8Array[tIndex+3]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn tArray;\r\n\t\t}\r\n\t\tRunDriver.skinAniSprite=function (){\r\n\t\t\tvar tSkinSprite=new SkinMesh()\r\n\t\t\treturn tSkinSprite;\r\n\t\t}\r\n\t\tHTMLCanvas.create=function (type,canvas){\r\n\t\t\tvar ret=new WebGLCanvas();\r\n\t\t\tret._imgData=canvas;\r\n\t\t\tret.flipY=false;\r\n\t\t\treturn ret;\r\n\t\t}\r\n\t\tFilter._filterStart=function (scope,sprite,context,x,y){\r\n\t\t\tvar b=scope.getValue(\"bounds\");\r\n\t\t\tvar source=RenderTarget2D.create(b.width,b.height);\r\n\t\t\tsource.start();\r\n\t\t\tsource.clear(0,0,0,0);\r\n\t\t\tscope.addValue(\"src\",source);\r\n\t\t\tscope.addValue(\"ScissorTest\",RenderState2D.worldScissorTest);\r\n\t\t\tif (RenderState2D.worldScissorTest){\r\n\t\t\t\tvar tClilpRect=new Rectangle();\r\n\t\t\t\ttClilpRect.copyFrom((context.ctx)._clipRect)\r\n\t\t\t\tscope.addValue(\"clipRect\",tClilpRect);\r\n\t\t\t\tRenderState2D.worldScissorTest=false;\r\n\t\t\t\tlaya.webgl.WebGL.mainContext.disable(/*laya.webgl.WebGLContext.SCISSOR_TEST*/0x0C11);\r\n\t\t\t}\r\n\t\t}\r\n\t\tFilter._filterEnd=function (scope,sprite,context,x,y){\r\n\t\t\tvar b=scope.getValue(\"bounds\");\r\n\t\t\tvar source=scope.getValue(\"src\");\r\n\t\t\tsource.end();\r\n\t\t\tvar out=RenderTarget2D.create(b.width,b.height);\r\n\t\t\tout.start();\r\n\t\t\tout.clear(0,0,0,0);\r\n\t\t\tscope.addValue(\"out\",out);\r\n\t\t\tsprite._set$P('_filterCache',out);\r\n\t\t\tsprite._set$P('_isHaveGlowFilter',scope.getValue(\"_isHaveGlowFilter\"));\r\n\t\t}\r\n\t\tFilter._EndTarget=function (scope,context){\r\n\t\t\tvar source=scope.getValue(\"src\");\r\n\t\t\tsource.recycle();\r\n\t\t\tvar out=scope.getValue(\"out\");\r\n\t\t\tout.end();\r\n\t\t\tvar b=scope.getValue(\"ScissorTest\");\r\n\t\t\tif (b){\r\n\t\t\t\tRenderState2D.worldScissorTest=true;\r\n\t\t\t\tlaya.webgl.WebGL.mainContext.enable(/*laya.webgl.WebGLContext.SCISSOR_TEST*/0x0C11);\r\n\t\t\t\tcontext.ctx.save();\r\n\t\t\t\tvar tClipRect=scope.getValue(\"clipRect\");\r\n\t\t\t\t(context.ctx).clipRect(tClipRect.x,tClipRect.y,tClipRect.width,tClipRect.height);\r\n\t\t\t}\r\n\t\t}\r\n\t\tFilter._useSrc=function (scope){\r\n\t\t\tvar source=scope.getValue(\"out\");\r\n\t\t\tsource.end();\r\n\t\t\tsource=scope.getValue(\"src\");\r\n\t\t\tsource.start();\r\n\t\t\tsource.clear(0,0,0,0);\r\n\t\t}\r\n\t\tFilter._endSrc=function (scope){\r\n\t\t\tvar source=scope.getValue(\"src\");\r\n\t\t\tsource.end();\r\n\t\t}\r\n\t\tFilter._useOut=function (scope){\r\n\t\t\tvar source=scope.getValue(\"src\");\r\n\t\t\tsource.end();\r\n\t\t\tsource=scope.getValue(\"out\");\r\n\t\t\tsource.start();\r\n\t\t\tsource.clear(0,0,0,0);\r\n\t\t}\r\n\t\tFilter._endOut=function (scope){\r\n\t\t\tvar source=scope.getValue(\"out\");\r\n\t\t\tsource.end();\r\n\t\t}\r\n\t\tFilter._recycleScope=function (scope){\r\n\t\t\tscope.recycle();\r\n\t\t}\r\n\t\tFilter._filter=function (sprite,context,x,y){\r\n\t\t\tvar next=this._next;\r\n\t\t\tif (next){\r\n\t\t\t\tvar filters=sprite.filters,len=filters.length;\r\n\t\t\t\tif (len==1 && (filters[0].type==/*laya.filters.Filter.COLOR*/0x20)){\r\n\t\t\t\t\tcontext.ctx.save();\r\n\t\t\t\t\tcontext.ctx.setFilters([filters[0]]);\r\n\t\t\t\t\tnext._fun.call(next,sprite,context,x,y);\r\n\t\t\t\t\tcontext.ctx.restore();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t};\r\n\t\t\t\tvar shaderValue;\r\n\t\t\t\tvar b;\r\n\t\t\t\tvar scope=SubmitCMDScope.create();\r\n\t\t\t\tvar p=Point.TEMP;\r\n\t\t\t\tvar tMatrix=context.ctx._getTransformMatrix();\r\n\t\t\t\tvar mat=Matrix.create();\r\n\t\t\t\ttMatrix.copyTo(mat);\r\n\t\t\t\tvar tPadding=0;\r\n\t\t\t\tvar tHalfPadding=0;\r\n\t\t\t\tvar tIsHaveGlowFilter=false;\r\n\t\t\t\tvar out=sprite._$P._filterCache ? sprite._$P._filterCache :null;\r\n\t\t\t\tif (!out || sprite._repaint){\r\n\t\t\t\t\ttIsHaveGlowFilter=sprite._isHaveGlowFilter();\r\n\t\t\t\t\tscope.addValue(\"_isHaveGlowFilter\",tIsHaveGlowFilter);\r\n\t\t\t\t\tif (tIsHaveGlowFilter){\r\n\t\t\t\t\t\ttPadding=50;\r\n\t\t\t\t\t\ttHalfPadding=25;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tb=new Rectangle();\r\n\t\t\t\t\tb.copyFrom((sprite).getSelfBounds());\r\n\t\t\t\t\tb.x+=(sprite).x;\r\n\t\t\t\t\tb.y+=(sprite).y;\r\n\t\t\t\t\tb.x-=(sprite).pivotX+4;\r\n\t\t\t\t\tb.y-=(sprite).pivotY+4;\r\n\t\t\t\t\tvar tSX=b.x;\r\n\t\t\t\t\tvar tSY=b.y;\r\n\t\t\t\t\tb.width+=(tPadding+8);\r\n\t\t\t\t\tb.height+=(tPadding+8);\r\n\t\t\t\t\tp.x=b.x *mat.a+b.y *mat.c;\r\n\t\t\t\t\tp.y=b.y *mat.d+b.x *mat.b;\r\n\t\t\t\t\tb.x=p.x;\r\n\t\t\t\t\tb.y=p.y;\r\n\t\t\t\t\tp.x=b.width *mat.a+b.height *mat.c;\r\n\t\t\t\t\tp.y=b.height *mat.d+b.width *mat.b;\r\n\t\t\t\t\tb.width=p.x;\r\n\t\t\t\t\tb.height=p.y;\r\n\t\t\t\t\tif (b.width <=0 || b.height <=0){\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tout && out.recycle();\r\n\t\t\t\t\tscope.addValue(\"bounds\",b);\r\n\t\t\t\t\tvar submit=SubmitCMD.create([scope,sprite,context,0,0],Filter._filterStart);\r\n\t\t\t\t\tcontext.addRenderObject(submit);\r\n\t\t\t\t\t(context.ctx)._renderKey=0;\r\n\t\t\t\t\t(context.ctx)._shader2D.glTexture=null;\r\n\t\t\t\t\tvar tX=sprite.x-tSX+tHalfPadding;\r\n\t\t\t\t\tvar tY=sprite.y-tSY+tHalfPadding;\r\n\t\t\t\t\tnext._fun.call(next,sprite,context,tX,tY);\r\n\t\t\t\t\tsubmit=SubmitCMD.create([scope,sprite,context,0,0],Filter._filterEnd);\r\n\t\t\t\t\tcontext.addRenderObject(submit);\r\n\t\t\t\t\tfor (var i=0;i < len;i++){\r\n\t\t\t\t\t\tif (i !=0){\r\n\t\t\t\t\t\t\tsubmit=SubmitCMD.create([scope],Filter._useSrc);\r\n\t\t\t\t\t\t\tcontext.addRenderObject(submit);\r\n\t\t\t\t\t\t\tshaderValue=Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0);\r\n\t\t\t\t\t\t\tMatrix.TEMP.identity();\r\n\t\t\t\t\t\t\tcontext.ctx.drawTarget(scope,0,0,b.width,b.height,Matrix.TEMP,\"out\",shaderValue,null,BlendMode.TOINT.overlay);\r\n\t\t\t\t\t\t\tsubmit=SubmitCMD.create([scope],Filter._useOut);\r\n\t\t\t\t\t\t\tcontext.addRenderObject(submit);\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tvar fil=filters[i];\r\n\t\t\t\t\t\tfil.action.apply3d(scope,sprite,context,0,0);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsubmit=SubmitCMD.create([scope,context],Filter._EndTarget);\r\n\t\t\t\t\tcontext.addRenderObject(submit);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\ttIsHaveGlowFilter=sprite._$P._isHaveGlowFilter ? sprite._$P._isHaveGlowFilter :false;\r\n\t\t\t\t\tif (tIsHaveGlowFilter){\r\n\t\t\t\t\t\ttPadding=50;\r\n\t\t\t\t\t\ttHalfPadding=25;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tb=sprite.getBounds();\r\n\t\t\t\t\tif (b.width <=0 || b.height <=0){\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tb.width+=tPadding;\r\n\t\t\t\t\tb.height+=tPadding;\r\n\t\t\t\t\tp.x=b.x *mat.a+b.y *mat.c;\r\n\t\t\t\t\tp.y=b.y *mat.d+b.x *mat.b;\r\n\t\t\t\t\tb.x=p.x;\r\n\t\t\t\t\tb.y=p.y;\r\n\t\t\t\t\tp.x=b.width *mat.a+b.height *mat.c;\r\n\t\t\t\t\tp.y=b.height *mat.d+b.width *mat.b;\r\n\t\t\t\t\tb.width=p.x;\r\n\t\t\t\t\tb.height=p.y;\r\n\t\t\t\t\tscope.addValue(\"out\",out);\r\n\t\t\t\t}\r\n\t\t\t\tx=x-tHalfPadding-sprite.x;\r\n\t\t\t\ty=y-tHalfPadding-sprite.y;\r\n\t\t\t\tp.setTo(x,y);\r\n\t\t\t\tmat.transformPoint(p);\r\n\t\t\t\tx=p.x+b.x;\r\n\t\t\t\ty=p.y+b.y;\r\n\t\t\t\tshaderValue=Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0);\r\n\t\t\t\tMatrix.TEMP.identity();\r\n\t\t\t\t(context.ctx).drawTarget(scope,x,y,b.width,b.height,Matrix.TEMP,\"out\",shaderValue,null,BlendMode.TOINT.overlay);\r\n\t\t\t\tsubmit=SubmitCMD.create([scope],Filter._recycleScope);\r\n\t\t\t\tcontext.addRenderObject(submit);\r\n\t\t\t\tmat.destroy();\r\n\t\t\t}\r\n\t\t}\r\n\t\tFloat32Array.prototype.slice || (Float32Array.prototype.slice=WebGL._float32ArraySlice);\r\n\t\tUint16Array.prototype.slice || (Uint16Array.prototype.slice=WebGL._uint16ArraySlice);\r\n\t\tUint8Array.prototype.slice || (Uint8Array.prototype.slice=WebGL._uint8ArraySlice);\r\n\t\treturn true;\r\n\t}\r\n\r\n\tWebGL.onStageResize=function(width,height){\r\n\t\tif (WebGL.mainContext==null)return;\r\n\t\tWebGL.mainContext.viewport(0,0,width,height);\r\n\t\tRenderState2D.width=width;\r\n\t\tRenderState2D.height=height;\r\n\t}\r\n\r\n\tWebGL.onInvalidGLRes=function(){\r\n\t\tAtlasResourceManager.instance.freeAll();\r\n\t\tResourceManager.releaseContentManagers(true);\r\n\t\tWebGL.doNodeRepaint(Laya.stage);\r\n\t\tWebGL.mainContext.viewport(0,0,RenderState2D.width,RenderState2D.height);\r\n\t\tLaya.stage.event(/*laya.events.Event.DEVICE_LOST*/\"devicelost\");\r\n\t}\r\n\r\n\tWebGL.doNodeRepaint=function(sprite){\r\n\t\t(sprite.numChildren==0)&& (sprite.repaint());\r\n\t\tfor (var i=0;i < sprite.numChildren;i++)\r\n\t\tWebGL.doNodeRepaint(sprite.getChildAt(i));\r\n\t}\r\n\r\n\tWebGL.init=function(canvas,width,height){\r\n\t\tWebGL.mainCanvas=canvas;\r\n\t\tHTMLCanvas._createContext=function (canvas){\r\n\t\t\treturn new WebGLContext2D(canvas);\r\n\t\t}\r\n\t\tWebGLCanvas._createContext=function (canvas){\r\n\t\t\treturn new WebGLContext2D(canvas);\r\n\t\t};\r\n\t\tvar gl=laya.webgl.WebGL.mainContext;\r\n\t\tif (gl.getShaderPrecisionFormat !=null){\r\n\t\t\tvar vertexPrecisionFormat=gl.getShaderPrecisionFormat(/*laya.webgl.WebGLContext.VERTEX_SHADER*/0x8B31,/*laya.webgl.WebGLContext.HIGH_FLOAT*/0x8DF2);\r\n\t\t\tvar framePrecisionFormat=gl.getShaderPrecisionFormat(/*laya.webgl.WebGLContext.FRAGMENT_SHADER*/0x8B30,/*laya.webgl.WebGLContext.HIGH_FLOAT*/0x8DF2);\r\n\t\t\tWebGL.shaderHighPrecision=(vertexPrecisionFormat.precision&&framePrecisionFormat.precision)? true :false;\r\n\t\t\t}else {\r\n\t\t\tWebGL.shaderHighPrecision=false;\r\n\t\t}\r\n\t\tWebGL.compressAstc=gl.getExtension(\"WEBGL_compressed_texture_astc\");\r\n\t\tWebGL.compressAtc=gl.getExtension(\"WEBGL_compressed_texture_atc\");\r\n\t\tWebGL.compressEtc=gl.getExtension(\"WEBGL_compressed_texture_etc\");\r\n\t\tWebGL.compressEtc1=gl.getExtension(\"WEBGL_compressed_texture_etc1\");\r\n\t\tWebGL.compressPvrtc=gl.getExtension(\"WEBGL_compressed_texture_pvrtc\");\r\n\t\tWebGL.compressS3tc=gl.getExtension(\"WEBGL_compressed_texture_s3tc\");\r\n\t\tWebGL.compressS3tc_srgb=gl.getExtension(\"WEBGL_compressed_texture_s3tc_srgb\");\r\n\t\tgl.deleteTexture1=gl.deleteTexture;\r\n\t\tgl.deleteTexture=function (t){\r\n\t\t\tif (t==WebGLContext.curBindTexValue){\r\n\t\t\t\tWebGLContext.curBindTexValue=null;\r\n\t\t\t}\r\n\t\t\tgl.deleteTexture1(t);\r\n\t\t}\r\n\t\tWebGL.onStageResize(width,height);\r\n\t\tif (WebGL.mainContext==null)\r\n\t\t\tthrow new Error(\"webGL getContext err!\");\r\n\t\tSystem.__init__();\r\n\t\tAtlasResourceManager.__init__();\r\n\t\tShaderDefines2D.__init__();\r\n\t\tSubmit.__init__();\r\n\t\tWebGLContext2D.__init__();\r\n\t\tValue2D.__init__();\r\n\t\tShader2D.__init__();\r\n\t\tBuffer2D.__int__(gl);\r\n\t\tBlendMode._init_(gl);\r\n\t\tif (Render.isConchApp){\r\n\t\t\t/*__JS__ */conch.setOnInvalidGLRes(WebGL.onInvalidGLRes);\r\n\t\t}\r\n\t}\r\n\r\n\tWebGL.compressAstc=null;\r\n\tWebGL.compressAtc=null;\r\n\tWebGL.compressEtc=null;\r\n\tWebGL.compressEtc1=null;\r\n\tWebGL.compressPvrtc=null;\r\n\tWebGL.compressS3tc=null;\r\n\tWebGL.compressS3tc_srgb=null;\r\n\tWebGL.mainCanvas=null;\r\n\tWebGL.mainContext=null;\r\n\tWebGL.antialias=true;\r\n\tWebGL.shaderHighPrecision=false;\r\n\tWebGL._bg_null=[0,0,0,0];\r\n\treturn WebGL;\r\n})()\r\n\r\n\r\n//class laya.webgl.WebGLContext\r\nvar WebGLContext=(function(){\r\n\tfunction WebGLContext(){}\r\n\t__class(WebGLContext,'laya.webgl.WebGLContext');\r\n\tWebGLContext.UseProgram=function(program){\r\n\t\tif (WebGLContext._useProgram===program)return false;\r\n\t\tWebGL.mainContext.useProgram(program);\r\n\t\tWebGLContext._useProgram=program;\r\n\t\treturn true;\r\n\t}\r\n\r\n\tWebGLContext.setDepthTest=function(gl,value){\r\n\t\tvalue!==WebGLContext._depthTest && (WebGLContext._depthTest=value,value?gl.enable(/*CLASS CONST:laya.webgl.WebGLContext.DEPTH_TEST*/0x0B71):gl.disable(/*CLASS CONST:laya.webgl.WebGLContext.DEPTH_TEST*/0x0B71));\r\n\t}\r\n\r\n\tWebGLContext.setDepthMask=function(gl,value){\r\n\t\tvalue!==WebGLContext._depthMask && (WebGLContext._depthMask=value,gl.depthMask(value));\r\n\t}\r\n\r\n\tWebGLContext.setDepthFunc=function(gl,value){\r\n\t\tvalue!==WebGLContext._depthFunc && (WebGLContext._depthFunc=value,gl.depthFunc(value));\r\n\t}\r\n\r\n\tWebGLContext.setBlend=function(gl,value){\r\n\t\tvalue!==WebGLContext._blend && (WebGLContext._blend=value,value?gl.enable(/*CLASS CONST:laya.webgl.WebGLContext.BLEND*/0x0BE2):gl.disable(/*CLASS CONST:laya.webgl.WebGLContext.BLEND*/0x0BE2));\r\n\t}\r\n\r\n\tWebGLContext.setBlendFunc=function(gl,sFactor,dFactor){\r\n\t\t(sFactor!==WebGLContext._sFactor||dFactor!==WebGLContext._dFactor)&& (WebGLContext._sFactor=sFactor,WebGLContext._dFactor=dFactor,gl.blendFunc(sFactor,dFactor));\r\n\t}\r\n\r\n\tWebGLContext.setCullFace=function(gl,value){\r\n\t\tvalue!==WebGLContext._cullFace && (WebGLContext._cullFace=value,value?gl.enable(/*CLASS CONST:laya.webgl.WebGLContext.CULL_FACE*/0x0B44):gl.disable(/*CLASS CONST:laya.webgl.WebGLContext.CULL_FACE*/0x0B44));\r\n\t}\r\n\r\n\tWebGLContext.setFrontFace=function(gl,value){\r\n\t\tvalue!==WebGLContext._frontFace && (WebGLContext._frontFace=value,gl.frontFace(value));\r\n\t}\r\n\r\n\tWebGLContext.bindTexture=function(gl,target,texture){\r\n\t\tgl.bindTexture(target,texture);\r\n\t\tWebGLContext.curBindTexTarget=target;\r\n\t\tWebGLContext.curBindTexValue=texture;\r\n\t}\r\n\r\n\tWebGLContext.DEPTH_BUFFER_BIT=0x00000100;\r\n\tWebGLContext.STENCIL_BUFFER_BIT=0x00000400;\r\n\tWebGLContext.COLOR_BUFFER_BIT=0x00004000;\r\n\tWebGLContext.POINTS=0x0000;\r\n\tWebGLContext.LINES=0x0001;\r\n\tWebGLContext.LINE_LOOP=0x0002;\r\n\tWebGLContext.LINE_STRIP=0x0003;\r\n\tWebGLContext.TRIANGLES=0x0004;\r\n\tWebGLContext.TRIANGLE_STRIP=0x0005;\r\n\tWebGLContext.TRIANGLE_FAN=0x0006;\r\n\tWebGLContext.ZERO=0;\r\n\tWebGLContext.ONE=1;\r\n\tWebGLContext.SRC_COLOR=0x0300;\r\n\tWebGLContext.ONE_MINUS_SRC_COLOR=0x0301;\r\n\tWebGLContext.SRC_ALPHA=0x0302;\r\n\tWebGLContext.ONE_MINUS_SRC_ALPHA=0x0303;\r\n\tWebGLContext.DST_ALPHA=0x0304;\r\n\tWebGLContext.ONE_MINUS_DST_ALPHA=0x0305;\r\n\tWebGLContext.DST_COLOR=0x0306;\r\n\tWebGLContext.ONE_MINUS_DST_COLOR=0x0307;\r\n\tWebGLContext.SRC_ALPHA_SATURATE=0x0308;\r\n\tWebGLContext.FUNC_ADD=0x8006;\r\n\tWebGLContext.BLEND_EQUATION=0x8009;\r\n\tWebGLContext.BLEND_EQUATION_RGB=0x8009;\r\n\tWebGLContext.BLEND_EQUATION_ALPHA=0x883D;\r\n\tWebGLContext.FUNC_SUBTRACT=0x800A;\r\n\tWebGLContext.FUNC_REVERSE_SUBTRACT=0x800B;\r\n\tWebGLContext.BLEND_DST_RGB=0x80C8;\r\n\tWebGLContext.BLEND_SRC_RGB=0x80C9;\r\n\tWebGLContext.BLEND_DST_ALPHA=0x80CA;\r\n\tWebGLContext.BLEND_SRC_ALPHA=0x80CB;\r\n\tWebGLContext.CONSTANT_COLOR=0x8001;\r\n\tWebGLContext.ONE_MINUS_CONSTANT_COLOR=0x8002;\r\n\tWebGLContext.CONSTANT_ALPHA=0x8003;\r\n\tWebGLContext.ONE_MINUS_CONSTANT_ALPHA=0x8004;\r\n\tWebGLContext.BLEND_COLOR=0x8005;\r\n\tWebGLContext.ARRAY_BUFFER=0x8892;\r\n\tWebGLContext.ELEMENT_ARRAY_BUFFER=0x8893;\r\n\tWebGLContext.ARRAY_BUFFER_BINDING=0x8894;\r\n\tWebGLContext.ELEMENT_ARRAY_BUFFER_BINDING=0x8895;\r\n\tWebGLContext.STREAM_DRAW=0x88E0;\r\n\tWebGLContext.STATIC_DRAW=0x88E4;\r\n\tWebGLContext.DYNAMIC_DRAW=0x88E8;\r\n\tWebGLContext.BUFFER_SIZE=0x8764;\r\n\tWebGLContext.BUFFER_USAGE=0x8765;\r\n\tWebGLContext.CURRENT_VERTEX_ATTRIB=0x8626;\r\n\tWebGLContext.FRONT=0x0404;\r\n\tWebGLContext.BACK=0x0405;\r\n\tWebGLContext.CULL_FACE=0x0B44;\r\n\tWebGLContext.FRONT_AND_BACK=0x0408;\r\n\tWebGLContext.BLEND=0x0BE2;\r\n\tWebGLContext.DITHER=0x0BD0;\r\n\tWebGLContext.STENCIL_TEST=0x0B90;\r\n\tWebGLContext.DEPTH_TEST=0x0B71;\r\n\tWebGLContext.SCISSOR_TEST=0x0C11;\r\n\tWebGLContext.POLYGON_OFFSET_FILL=0x8037;\r\n\tWebGLContext.SAMPLE_ALPHA_TO_COVERAGE=0x809E;\r\n\tWebGLContext.SAMPLE_COVERAGE=0x80A0;\r\n\tWebGLContext.NO_ERROR=0;\r\n\tWebGLContext.INVALID_ENUM=0x0500;\r\n\tWebGLContext.INVALID_VALUE=0x0501;\r\n\tWebGLContext.INVALID_OPERATION=0x0502;\r\n\tWebGLContext.OUT_OF_MEMORY=0x0505;\r\n\tWebGLContext.CW=0x0900;\r\n\tWebGLContext.CCW=0x0901;\r\n\tWebGLContext.LINE_WIDTH=0x0B21;\r\n\tWebGLContext.ALIASED_POINT_SIZE_RANGE=0x846D;\r\n\tWebGLContext.ALIASED_LINE_WIDTH_RANGE=0x846E;\r\n\tWebGLContext.CULL_FACE_MODE=0x0B45;\r\n\tWebGLContext.FRONT_FACE=0x0B46;\r\n\tWebGLContext.DEPTH_RANGE=0x0B70;\r\n\tWebGLContext.DEPTH_WRITEMASK=0x0B72;\r\n\tWebGLContext.DEPTH_CLEAR_VALUE=0x0B73;\r\n\tWebGLContext.DEPTH_FUNC=0x0B74;\r\n\tWebGLContext.STENCIL_CLEAR_VALUE=0x0B91;\r\n\tWebGLContext.STENCIL_FUNC=0x0B92;\r\n\tWebGLContext.STENCIL_FAIL=0x0B94;\r\n\tWebGLContext.STENCIL_PASS_DEPTH_FAIL=0x0B95;\r\n\tWebGLContext.STENCIL_PASS_DEPTH_PASS=0x0B96;\r\n\tWebGLContext.STENCIL_REF=0x0B97;\r\n\tWebGLContext.STENCIL_VALUE_MASK=0x0B93;\r\n\tWebGLContext.STENCIL_WRITEMASK=0x0B98;\r\n\tWebGLContext.STENCIL_BACK_FUNC=0x8800;\r\n\tWebGLContext.STENCIL_BACK_FAIL=0x8801;\r\n\tWebGLContext.STENCIL_BACK_PASS_DEPTH_FAIL=0x8802;\r\n\tWebGLContext.STENCIL_BACK_PASS_DEPTH_PASS=0x8803;\r\n\tWebGLContext.STENCIL_BACK_REF=0x8CA3;\r\n\tWebGLContext.STENCIL_BACK_VALUE_MASK=0x8CA4;\r\n\tWebGLContext.STENCIL_BACK_WRITEMASK=0x8CA5;\r\n\tWebGLContext.VIEWPORT=0x0BA2;\r\n\tWebGLContext.SCISSOR_BOX=0x0C10;\r\n\tWebGLContext.COLOR_CLEAR_VALUE=0x0C22;\r\n\tWebGLContext.COLOR_WRITEMASK=0x0C23;\r\n\tWebGLContext.UNPACK_ALIGNMENT=0x0CF5;\r\n\tWebGLContext.PACK_ALIGNMENT=0x0D05;\r\n\tWebGLContext.MAX_TEXTURE_SIZE=0x0D33;\r\n\tWebGLContext.MAX_VIEWPORT_DIMS=0x0D3A;\r\n\tWebGLContext.SUBPIXEL_BITS=0x0D50;\r\n\tWebGLContext.RED_BITS=0x0D52;\r\n\tWebGLContext.GREEN_BITS=0x0D53;\r\n\tWebGLContext.BLUE_BITS=0x0D54;\r\n\tWebGLContext.ALPHA_BITS=0x0D55;\r\n\tWebGLContext.DEPTH_BITS=0x0D56;\r\n\tWebGLContext.STENCIL_BITS=0x0D57;\r\n\tWebGLContext.POLYGON_OFFSET_UNITS=0x2A00;\r\n\tWebGLContext.POLYGON_OFFSET_FACTOR=0x8038;\r\n\tWebGLContext.TEXTURE_BINDING_2D=0x8069;\r\n\tWebGLContext.SAMPLE_BUFFERS=0x80A8;\r\n\tWebGLContext.SAMPLES=0x80A9;\r\n\tWebGLContext.SAMPLE_COVERAGE_VALUE=0x80AA;\r\n\tWebGLContext.SAMPLE_COVERAGE_INVERT=0x80AB;\r\n\tWebGLContext.NUM_COMPRESSED_TEXTURE_FORMATS=0x86A2;\r\n\tWebGLContext.COMPRESSED_TEXTURE_FORMATS=0x86A3;\r\n\tWebGLContext.DONT_CARE=0x1100;\r\n\tWebGLContext.FASTEST=0x1101;\r\n\tWebGLContext.NICEST=0x1102;\r\n\tWebGLContext.GENERATE_MIPMAP_HINT=0x8192;\r\n\tWebGLContext.BYTE=0x1400;\r\n\tWebGLContext.UNSIGNED_BYTE=0x1401;\r\n\tWebGLContext.SHORT=0x1402;\r\n\tWebGLContext.UNSIGNED_SHORT=0x1403;\r\n\tWebGLContext.INT=0x1404;\r\n\tWebGLContext.UNSIGNED_INT=0x1405;\r\n\tWebGLContext.FLOAT=0x1406;\r\n\tWebGLContext.DEPTH_COMPONENT=0x1902;\r\n\tWebGLContext.ALPHA=0x1906;\r\n\tWebGLContext.RGB=0x1907;\r\n\tWebGLContext.RGBA=0x1908;\r\n\tWebGLContext.LUMINANCE=0x1909;\r\n\tWebGLContext.LUMINANCE_ALPHA=0x190A;\r\n\tWebGLContext.UNSIGNED_SHORT_4_4_4_4=0x8033;\r\n\tWebGLContext.UNSIGNED_SHORT_5_5_5_1=0x8034;\r\n\tWebGLContext.UNSIGNED_SHORT_5_6_5=0x8363;\r\n\tWebGLContext.FRAGMENT_SHADER=0x8B30;\r\n\tWebGLContext.VERTEX_SHADER=0x8B31;\r\n\tWebGLContext.MAX_VERTEX_ATTRIBS=0x8869;\r\n\tWebGLContext.MAX_VERTEX_UNIFORM_VECTORS=0x8DFB;\r\n\tWebGLContext.MAX_VARYING_VECTORS=0x8DFC;\r\n\tWebGLContext.MAX_COMBINED_TEXTURE_IMAGE_UNITS=0x8B4D;\r\n\tWebGLContext.MAX_VERTEX_TEXTURE_IMAGE_UNITS=0x8B4C;\r\n\tWebGLContext.MAX_TEXTURE_IMAGE_UNITS=0x8872;\r\n\tWebGLContext.MAX_FRAGMENT_UNIFORM_VECTORS=0x8DFD;\r\n\tWebGLContext.SHADER_TYPE=0x8B4F;\r\n\tWebGLContext.DELETE_STATUS=0x8B80;\r\n\tWebGLContext.LINK_STATUS=0x8B82;\r\n\tWebGLContext.VALIDATE_STATUS=0x8B83;\r\n\tWebGLContext.ATTACHED_SHADERS=0x8B85;\r\n\tWebGLContext.ACTIVE_UNIFORMS=0x8B86;\r\n\tWebGLContext.ACTIVE_ATTRIBUTES=0x8B89;\r\n\tWebGLContext.SHADING_LANGUAGE_VERSION=0x8B8C;\r\n\tWebGLContext.CURRENT_PROGRAM=0x8B8D;\r\n\tWebGLContext.NEVER=0x0200;\r\n\tWebGLContext.LESS=0x0201;\r\n\tWebGLContext.EQUAL=0x0202;\r\n\tWebGLContext.LEQUAL=0x0203;\r\n\tWebGLContext.GREATER=0x0204;\r\n\tWebGLContext.NOTEQUAL=0x0205;\r\n\tWebGLContext.GEQUAL=0x0206;\r\n\tWebGLContext.ALWAYS=0x0207;\r\n\tWebGLContext.KEEP=0x1E00;\r\n\tWebGLContext.REPLACE=0x1E01;\r\n\tWebGLContext.INCR=0x1E02;\r\n\tWebGLContext.DECR=0x1E03;\r\n\tWebGLContext.INVERT=0x150A;\r\n\tWebGLContext.INCR_WRAP=0x8507;\r\n\tWebGLContext.DECR_WRAP=0x8508;\r\n\tWebGLContext.VENDOR=0x1F00;\r\n\tWebGLContext.RENDERER=0x1F01;\r\n\tWebGLContext.VERSION=0x1F02;\r\n\tWebGLContext.NEAREST=0x2600;\r\n\tWebGLContext.LINEAR=0x2601;\r\n\tWebGLContext.NEAREST_MIPMAP_NEAREST=0x2700;\r\n\tWebGLContext.LINEAR_MIPMAP_NEAREST=0x2701;\r\n\tWebGLContext.NEAREST_MIPMAP_LINEAR=0x2702;\r\n\tWebGLContext.LINEAR_MIPMAP_LINEAR=0x2703;\r\n\tWebGLContext.TEXTURE_MAG_FILTER=0x2800;\r\n\tWebGLContext.TEXTURE_MIN_FILTER=0x2801;\r\n\tWebGLContext.TEXTURE_WRAP_S=0x2802;\r\n\tWebGLContext.TEXTURE_WRAP_T=0x2803;\r\n\tWebGLContext.TEXTURE_2D=0x0DE1;\r\n\tWebGLContext.TEXTURE=0x1702;\r\n\tWebGLContext.TEXTURE_CUBE_MAP=0x8513;\r\n\tWebGLContext.TEXTURE_BINDING_CUBE_MAP=0x8514;\r\n\tWebGLContext.TEXTURE_CUBE_MAP_POSITIVE_X=0x8515;\r\n\tWebGLContext.TEXTURE_CUBE_MAP_NEGATIVE_X=0x8516;\r\n\tWebGLContext.TEXTURE_CUBE_MAP_POSITIVE_Y=0x8517;\r\n\tWebGLContext.TEXTURE_CUBE_MAP_NEGATIVE_Y=0x8518;\r\n\tWebGLContext.TEXTURE_CUBE_MAP_POSITIVE_Z=0x8519;\r\n\tWebGLContext.TEXTURE_CUBE_MAP_NEGATIVE_Z=0x851A;\r\n\tWebGLContext.MAX_CUBE_MAP_TEXTURE_SIZE=0x851C;\r\n\tWebGLContext.TEXTURE0=0x84C0;\r\n\tWebGLContext.TEXTURE1=0x84C1;\r\n\tWebGLContext.TEXTURE2=0x84C2;\r\n\tWebGLContext.TEXTURE3=0x84C3;\r\n\tWebGLContext.TEXTURE4=0x84C4;\r\n\tWebGLContext.TEXTURE5=0x84C5;\r\n\tWebGLContext.TEXTURE6=0x84C6;\r\n\tWebGLContext.TEXTURE7=0x84C7;\r\n\tWebGLContext.TEXTURE8=0x84C8;\r\n\tWebGLContext.TEXTURE9=0x84C9;\r\n\tWebGLContext.TEXTURE10=0x84CA;\r\n\tWebGLContext.TEXTURE11=0x84CB;\r\n\tWebGLContext.TEXTURE12=0x84CC;\r\n\tWebGLContext.TEXTURE13=0x84CD;\r\n\tWebGLContext.TEXTURE14=0x84CE;\r\n\tWebGLContext.TEXTURE15=0x84CF;\r\n\tWebGLContext.TEXTURE16=0x84D0;\r\n\tWebGLContext.TEXTURE17=0x84D1;\r\n\tWebGLContext.TEXTURE18=0x84D2;\r\n\tWebGLContext.TEXTURE19=0x84D3;\r\n\tWebGLContext.TEXTURE20=0x84D4;\r\n\tWebGLContext.TEXTURE21=0x84D5;\r\n\tWebGLContext.TEXTURE22=0x84D6;\r\n\tWebGLContext.TEXTURE23=0x84D7;\r\n\tWebGLContext.TEXTURE24=0x84D8;\r\n\tWebGLContext.TEXTURE25=0x84D9;\r\n\tWebGLContext.TEXTURE26=0x84DA;\r\n\tWebGLContext.TEXTURE27=0x84DB;\r\n\tWebGLContext.TEXTURE28=0x84DC;\r\n\tWebGLContext.TEXTURE29=0x84DD;\r\n\tWebGLContext.TEXTURE30=0x84DE;\r\n\tWebGLContext.TEXTURE31=0x84DF;\r\n\tWebGLContext.ACTIVE_TEXTURE=0x84E0;\r\n\tWebGLContext.REPEAT=0x2901;\r\n\tWebGLContext.CLAMP_TO_EDGE=0x812F;\r\n\tWebGLContext.MIRRORED_REPEAT=0x8370;\r\n\tWebGLContext.FLOAT_VEC2=0x8B50;\r\n\tWebGLContext.FLOAT_VEC3=0x8B51;\r\n\tWebGLContext.FLOAT_VEC4=0x8B52;\r\n\tWebGLContext.INT_VEC2=0x8B53;\r\n\tWebGLContext.INT_VEC3=0x8B54;\r\n\tWebGLContext.INT_VEC4=0x8B55;\r\n\tWebGLContext.BOOL=0x8B56;\r\n\tWebGLContext.BOOL_VEC2=0x8B57;\r\n\tWebGLContext.BOOL_VEC3=0x8B58;\r\n\tWebGLContext.BOOL_VEC4=0x8B59;\r\n\tWebGLContext.FLOAT_MAT2=0x8B5A;\r\n\tWebGLContext.FLOAT_MAT3=0x8B5B;\r\n\tWebGLContext.FLOAT_MAT4=0x8B5C;\r\n\tWebGLContext.SAMPLER_2D=0x8B5E;\r\n\tWebGLContext.SAMPLER_CUBE=0x8B60;\r\n\tWebGLContext.VERTEX_ATTRIB_ARRAY_ENABLED=0x8622;\r\n\tWebGLContext.VERTEX_ATTRIB_ARRAY_SIZE=0x8623;\r\n\tWebGLContext.VERTEX_ATTRIB_ARRAY_STRIDE=0x8624;\r\n\tWebGLContext.VERTEX_ATTRIB_ARRAY_TYPE=0x8625;\r\n\tWebGLContext.VERTEX_ATTRIB_ARRAY_NORMALIZED=0x886A;\r\n\tWebGLContext.VERTEX_ATTRIB_ARRAY_POINTER=0x8645;\r\n\tWebGLContext.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=0x889F;\r\n\tWebGLContext.COMPILE_STATUS=0x8B81;\r\n\tWebGLContext.LOW_FLOAT=0x8DF0;\r\n\tWebGLContext.MEDIUM_FLOAT=0x8DF1;\r\n\tWebGLContext.HIGH_FLOAT=0x8DF2;\r\n\tWebGLContext.LOW_INT=0x8DF3;\r\n\tWebGLContext.MEDIUM_INT=0x8DF4;\r\n\tWebGLContext.HIGH_INT=0x8DF5;\r\n\tWebGLContext.FRAMEBUFFER=0x8D40;\r\n\tWebGLContext.RENDERBUFFER=0x8D41;\r\n\tWebGLContext.RGBA4=0x8056;\r\n\tWebGLContext.RGB5_A1=0x8057;\r\n\tWebGLContext.RGB565=0x8D62;\r\n\tWebGLContext.DEPTH_COMPONENT16=0x81A5;\r\n\tWebGLContext.STENCIL_INDEX=0x1901;\r\n\tWebGLContext.STENCIL_INDEX8=0x8D48;\r\n\tWebGLContext.DEPTH_STENCIL=0x84F9;\r\n\tWebGLContext.RENDERBUFFER_WIDTH=0x8D42;\r\n\tWebGLContext.RENDERBUFFER_HEIGHT=0x8D43;\r\n\tWebGLContext.RENDERBUFFER_INTERNAL_FORMAT=0x8D44;\r\n\tWebGLContext.RENDERBUFFER_RED_SIZE=0x8D50;\r\n\tWebGLContext.RENDERBUFFER_GREEN_SIZE=0x8D51;\r\n\tWebGLContext.RENDERBUFFER_BLUE_SIZE=0x8D52;\r\n\tWebGLContext.RENDERBUFFER_ALPHA_SIZE=0x8D53;\r\n\tWebGLContext.RENDERBUFFER_DEPTH_SIZE=0x8D54;\r\n\tWebGLContext.RENDERBUFFER_STENCIL_SIZE=0x8D55;\r\n\tWebGLContext.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=0x8CD0;\r\n\tWebGLContext.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=0x8CD1;\r\n\tWebGLContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=0x8CD2;\r\n\tWebGLContext.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=0x8CD3;\r\n\tWebGLContext.COLOR_ATTACHMENT0=0x8CE0;\r\n\tWebGLContext.DEPTH_ATTACHMENT=0x8D00;\r\n\tWebGLContext.STENCIL_ATTACHMENT=0x8D20;\r\n\tWebGLContext.DEPTH_STENCIL_ATTACHMENT=0x821A;\r\n\tWebGLContext.NONE=0;\r\n\tWebGLContext.FRAMEBUFFER_COMPLETE=0x8CD5;\r\n\tWebGLContext.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=0x8CD6;\r\n\tWebGLContext.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=0x8CD7;\r\n\tWebGLContext.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=0x8CD9;\r\n\tWebGLContext.FRAMEBUFFER_UNSUPPORTED=0x8CDD;\r\n\tWebGLContext.FRAMEBUFFER_BINDING=0x8CA6;\r\n\tWebGLContext.RENDERBUFFER_BINDING=0x8CA7;\r\n\tWebGLContext.MAX_RENDERBUFFER_SIZE=0x84E8;\r\n\tWebGLContext.INVALID_FRAMEBUFFER_OPERATION=0x0506;\r\n\tWebGLContext.UNPACK_FLIP_Y_WEBGL=0x9240;\r\n\tWebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL=0x9241;\r\n\tWebGLContext.CONTEXT_LOST_WEBGL=0x9242;\r\n\tWebGLContext.UNPACK_COLORSPACE_CONVERSION_WEBGL=0x9243;\r\n\tWebGLContext.BROWSER_DEFAULT_WEBGL=0x9244;\r\n\tWebGLContext._useProgram=null;\r\n\tWebGLContext._depthTest=true;\r\n\tWebGLContext._depthMask=true;\r\n\tWebGLContext._blend=false;\r\n\tWebGLContext._cullFace=false;\r\n\tWebGLContext.curBindTexTarget=null;\r\n\tWebGLContext.curBindTexValue=null;\r\n\t__static(WebGLContext,\r\n\t['_depthFunc',function(){return this._depthFunc=/*CLASS CONST:laya.webgl.WebGLContext.LESS*/0x0201;},'_sFactor',function(){return this._sFactor=/*CLASS CONST:laya.webgl.WebGLContext.ONE*/1;},'_dFactor',function(){return this._dFactor=/*CLASS CONST:laya.webgl.WebGLContext.ZERO*/0;},'_frontFace',function(){return this._frontFace=/*CLASS CONST:laya.webgl.WebGLContext.CCW*/0x0901;}\r\n\t]);\r\n\treturn WebGLContext;\r\n})()\r\n\r\n\r\n//class laya.webgl.display.GraphicsGL extends laya.display.Graphics\r\nvar GraphicsGL=(function(_super){\r\n\tfunction GraphicsGL(){\r\n\t\tGraphicsGL.__super.call(this);\r\n\t}\r\n\r\n\t__class(GraphicsGL,'laya.webgl.display.GraphicsGL',_super);\r\n\tvar __proto=GraphicsGL.prototype;\r\n\t__proto.setShader=function(shader){\r\n\t\tthis._saveToCmd(Render.context._setShader,[shader]);\r\n\t}\r\n\r\n\t__proto.setIBVB=function(x,y,ib,vb,numElement,shader){\r\n\t\tthis._saveToCmd(Render.context._setIBVB,[x,y,ib,vb,numElement,shader]);\r\n\t}\r\n\r\n\t__proto.drawParticle=function(x,y,ps){\r\n\t\tvar pt=RunDriver.createParticleTemplate2D(ps);\r\n\t\tpt.x=x;\r\n\t\tpt.y=y;\r\n\t\tthis._saveToCmd(Render.context._drawParticle,[pt]);\r\n\t}\r\n\r\n\treturn GraphicsGL;\r\n})(Graphics)\r\n\r\n\r\n//class laya.webgl.canvas.WebGLContext2D extends laya.resource.Context\r\nvar WebGLContext2D=(function(_super){\r\n\tvar ContextParams;\r\n\tfunction WebGLContext2D(c){\r\n\t\tthis._x=0;\r\n\t\tthis._y=0;\r\n\t\tthis._id=++WebGLContext2D._COUNT;\r\n\t\t//this._other=null;\r\n\t\tthis._path=null;\r\n\t\t//this._primitiveValue2D=null;\r\n\t\tthis._drawCount=1;\r\n\t\tthis._maxNumEle=0;\r\n\t\tthis._clear=false;\r\n\t\tthis._isMain=false;\r\n\t\tthis._atlasResourceChange=0;\r\n\t\tthis._submits=null;\r\n\t\tthis._curSubmit=null;\r\n\t\tthis._ib=null;\r\n\t\tthis._vb=null;\r\n\t\t//this._curMat=null;\r\n\t\tthis._nBlendType=0;\r\n\t\t//this._save=null;\r\n\t\t//this._targets=null;\r\n\t\t//this._renderKey=NaN;\r\n\t\tthis._saveMark=null;\r\n\t\tthis._shader2D=null;\r\n\t\t//this._triangleMesh=null;\r\n\t\t//drawTriangles专用mesh。由于ib不固定，所以不能与_mesh通用\r\n\t\tthis.meshlist=[];\r\n\t\t/**所cacheAs精灵*/\r\n\t\t//this.sprite=null;\r\n\t\t/*******************************************start矢量绘制***************************************************/\r\n\t\tthis.mId=-1;\r\n\t\tthis.mHaveKey=false;\r\n\t\tthis.mHaveLineKey=false;\r\n\t\tthis.mX=0;\r\n\t\tthis.mY=0;\r\n\t\tWebGLContext2D.__super.call(this);\r\n\t\tthis._width=99999999;\r\n\t\tthis._height=99999999;\r\n\t\tthis._clipRect=WebGLContext2D.MAXCLIPRECT;\r\n\t\tthis.mOutPoint\r\n\t\tthis._canvas=c;\r\n\t\tWebGLContext2D._contextcount++;\r\n\t\tif (Render.isFlash){\r\n\t\t\tthis._ib=IndexBuffer2D.create(/*laya.webgl.WebGLContext.STATIC_DRAW*/0x88E4);\r\n\t\t\tGlUtils.fillIBQuadrangle(this._ib,16);\r\n\t\t}else\r\n\t\tthis._ib=IndexBuffer2D.QuadrangleIB;\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t__class(WebGLContext2D,'laya.webgl.canvas.WebGLContext2D',_super);\r\n\tvar __proto=WebGLContext2D.prototype;\r\n\t__proto.setIsMainContext=function(){\r\n\t\tthis._isMain=true;\r\n\t}\r\n\r\n\t__proto.clearBG=function(r,g,b,a){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tgl.clearColor(r,g,b,a);\r\n\t\tgl.clear(/*laya.webgl.WebGLContext.COLOR_BUFFER_BIT*/0x00004000);\r\n\t}\r\n\r\n\t__proto._getSubmits=function(){\r\n\t\treturn this._submits;\r\n\t}\r\n\r\n\t__proto._releaseMem=function(){\r\n\t\tif (!this._submits)\r\n\t\t\treturn;\r\n\t\tthis._curMat.destroy();\r\n\t\tthis._curMat=null;\r\n\t\tthis._shader2D.destroy();\r\n\t\tthis._shader2D=null;\r\n\t\tfor (var i=0,n=this._submits._length;i < n;i++)\r\n\t\tthis._submits[i].releaseRender();\r\n\t\tthis._submits.length=0;\r\n\t\tthis._submits._length=0;\r\n\t\tthis._submits=null;\r\n\t\tthis._curSubmit=null;\r\n\t\tthis._path && this._path.recover();\r\n\t\tthis._path=null;\r\n\t\tthis._other && (this._other.font=null);\r\n\t\tthis._save=null;\r\n\t\tif (this._vb){\r\n\t\t\tthis._vb.releaseResource();\r\n\t\t\tthis._vb.destroy();\r\n\t\t\tthis._vb.destory();\r\n\t\t\tthis._vb=null;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.destroy=function(){\r\n\t\t--WebGLContext2D._contextcount;\r\n\t\tthis.sprite=null;\r\n\t\tthis._releaseMem();\r\n\t\tthis._targets && this._targets.destroy();\r\n\t\tthis._targets=null;\r\n\t\tthis._canvas=null;\r\n\t\tthis._ib && (this._ib !=IndexBuffer2D.QuadrangleIB)&& this._ib.releaseResource();\r\n\t}\r\n\r\n\t__proto.clear=function(){\r\n\t\tif (!this._submits){\r\n\t\t\tthis._other=ContextParams.DEFAULT;\r\n\t\t\tthis._curMat=Matrix.create();\r\n\t\t\tthis._vb=VertexBuffer2D.create(-1);\r\n\t\t\tthis._submits=[];\r\n\t\t\tthis._save=[SaveMark.Create(this)];\r\n\t\t\tthis._save.length=10;\r\n\t\t\tthis._shader2D=new Shader2D();\r\n\t\t\tthis._triangleMesh=MeshTexture.getAMesh();\r\n\t\t}\r\n\t\tthis._vb.clear();\r\n\t\tthis._targets && (this._targets.repaint=true);\r\n\t\tthis._other=ContextParams.DEFAULT;\r\n\t\tthis._clear=true;\r\n\t\tthis._repaint=false;\r\n\t\tthis._drawCount=1;\r\n\t\tthis._renderKey=0;\r\n\t\tthis._other.lineWidth=this._shader2D.ALPHA=1.0;\r\n\t\tthis._nBlendType=0;\r\n\t\tthis._clipRect=WebGLContext2D.MAXCLIPRECT;\r\n\t\tthis._curSubmit=Submit.RENDERBASE;\r\n\t\tthis._shader2D.glTexture=null;\r\n\t\tthis._shader2D.fillStyle=this._shader2D.strokeStyle=DrawStyle.DEFAULT;\r\n\t\tfor (var i=0,n=this._submits._length;i < n;i++)\r\n\t\tthis._submits[i].releaseRender();\r\n\t\tthis._submits._length=0;\r\n\t\tthis._curMat.identity();\r\n\t\tthis._other.clear();\r\n\t\tthis._saveMark=this._save[0];\r\n\t\tthis._save._length=1;\r\n\t}\r\n\r\n\t__proto.size=function(w,h){\r\n\t\tif (this._width !=w || this._height !=h){\r\n\t\t\tif (w==0 || h==0){\r\n\t\t\t\tif (this._vb._byteLength !=0){\r\n\t\t\t\t\tthis._width=w;\r\n\t\t\t\t\tthis._height=h;\r\n\t\t\t\t\tthis._vb.clear();\r\n\t\t\t\t\tthis._vb.upload();\r\n\t\t\t\t}\r\n\t\t\t\tfor (var i=0,n=this._submits._length;i < n;i++)\r\n\t\t\t\tthis._submits[i].releaseRender();\r\n\t\t\t\tthis._submits.length=0;\r\n\t\t\t\tthis._submits._length=0;\r\n\t\t\t\tthis._curSubmit=null;\r\n\t\t\t\tthis._path && this._path.recover();\r\n\t\t\t\tthis._path=null;\r\n\t\t\t\tthis.sprite=null;\r\n\t\t\t\tthis._targets && (this._targets.destroy());\r\n\t\t\t\tthis._targets=null;\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._width=w;\r\n\t\t\t\tthis._height=h;\r\n\t\t\t\tthis._targets && (this._targets.size(w,h));\r\n\t\t\t\tthis._canvas.memorySize-=this._canvas.memorySize;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (w===0 && h===0)this._releaseMem();\r\n\t}\r\n\r\n\t__proto._getTransformMatrix=function(){\r\n\t\treturn this._curMat;\r\n\t}\r\n\r\n\t__proto.translate=function(x,y){\r\n\t\tif (x!==0 || y!==0){\r\n\t\t\tSaveTranslate.save(this);\r\n\t\t\tif (this._curMat.bTransform){\r\n\t\t\t\tSaveTransform.save(this);\r\n\t\t\t\tthis._curMat.transformPointN(Point.TEMP.setTo(x,y));\r\n\t\t\t\tx=Point.TEMP.x;\r\n\t\t\t\ty=Point.TEMP.y;\r\n\t\t\t}\r\n\t\t\tthis._x+=x;\r\n\t\t\tthis._y+=y;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.save=function(){\r\n\t\tthis._save[this._save._length++]=SaveMark.Create(this);\r\n\t}\r\n\r\n\t__proto.restore=function(){\r\n\t\tvar sz=this._save._length;\r\n\t\tif (sz < 1)\r\n\t\t\treturn;\r\n\t\tfor (var i=sz-1;i >=0;i--){\r\n\t\t\tvar o=this._save[i];\r\n\t\t\to.restore(this);\r\n\t\t\tif (o.isSaveMark()){\r\n\t\t\t\tthis._save._length=i;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._fillText=function(txt,words,x,y,fontStr,color,strokeColor,lineWidth,textAlign,underLine){\r\n\t\t(underLine===void 0)&& (underLine=0);\r\n\t\tvar shader=this._shader2D;\r\n\t\tvar curShader=this._curSubmit.shaderValue;\r\n\t\tvar font=fontStr ? FontInContext.create(fontStr):this._other.font;\r\n\t\tif (AtlasResourceManager.enabled){\r\n\t\t\tif (shader.ALPHA!==curShader.ALPHA)\r\n\t\t\t\tshader.glTexture=null;\r\n\t\t\tDrawText.drawText(this,txt,words,this._curMat,font,textAlign || this._other.textAlign,color,strokeColor,lineWidth,x,y,underLine);\r\n\t\t\t}else {\r\n\t\t\tvar preDef=this._shader2D.defines.getValue();\r\n\t\t\tvar colorAdd=color ? Color.create(color)._color :shader.colorAdd;\r\n\t\t\tif (shader.ALPHA!==curShader.ALPHA || colorAdd!==shader.colorAdd || curShader.colorAdd!==shader.colorAdd){\r\n\t\t\t\tshader.glTexture=null;\r\n\t\t\t\tshader.colorAdd=colorAdd;\r\n\t\t\t}\r\n\t\t\tDrawText.drawText(this,txt,words,this._curMat,font,textAlign || this._other.textAlign,color,strokeColor,lineWidth,x,y,underLine);\r\n\t\t}\r\n\t}\r\n\r\n\t//TODO:实现下划线\r\n\t__proto.fillWords=function(words,x,y,fontStr,color,underLine){\r\n\t\tthis._fillText(null,words,x,y,fontStr,color,null,-1,null,underLine);\r\n\t}\r\n\r\n\t__proto.fillBorderWords=function(words,x,y,font,color,borderColor,lineWidth){\r\n\t\tthis._fillBorderText(null,words,x,y,font,color,borderColor,lineWidth,null);\r\n\t}\r\n\r\n\t__proto.fillText=function(txt,x,y,fontStr,color,textAlign){\r\n\t\tthis._fillText(txt,null,x,y,fontStr,color,null,-1,textAlign);\r\n\t}\r\n\r\n\t__proto.strokeText=function(txt,x,y,fontStr,color,lineWidth,textAlign){\r\n\t\tthis._fillText(txt,null,x,y,fontStr,null,color,lineWidth || 1,textAlign);\r\n\t}\r\n\r\n\t__proto.fillBorderText=function(txt,x,y,fontStr,fillColor,borderColor,lineWidth,textAlign){\r\n\t\tthis._fillBorderText(txt,null,x,y,fontStr,fillColor,borderColor,lineWidth,textAlign);\r\n\t}\r\n\r\n\t__proto._fillBorderText=function(txt,words,x,y,fontStr,fillColor,borderColor,lineWidth,textAlign){\r\n\t\tif (!AtlasResourceManager.enabled){\r\n\t\t\tthis._fillText(txt,words,x,y,fontStr,null,borderColor,lineWidth || 1,textAlign);\r\n\t\t\tthis._fillText(txt,words,x,y,fontStr,fillColor,null,-1,textAlign);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar shader=this._shader2D;\r\n\t\tvar curShader=this._curSubmit.shaderValue;\r\n\t\tif (shader.ALPHA!==curShader.ALPHA)\r\n\t\t\tshader.glTexture=null;\r\n\t\tvar font=fontStr ? (WebGLContext2D._fontTemp.setFont(fontStr),WebGLContext2D._fontTemp):this._other.font;\r\n\t\tDrawText.drawText(this,txt,words,this._curMat,font,textAlign || this._other.textAlign,fillColor,borderColor,lineWidth || 1,x,y,0);\r\n\t}\r\n\r\n\t__proto.fillRect=function(x,y,width,height,fillStyle){\r\n\t\tvar vb=this._vb;\r\n\t\tif (GlUtils.fillRectImgVb(vb,this._clipRect,x,y,width,height,Texture.DEF_UV,this._curMat,this._x,this._y,0,0)){\r\n\t\t\tthis._renderKey=0;\r\n\t\t\tvar pre=this._shader2D.fillStyle;\r\n\t\t\tfillStyle && (this._shader2D.fillStyle=DrawStyle.create(fillStyle));\r\n\t\t\tvar shader=this._shader2D;\r\n\t\t\tvar curShader=this._curSubmit.shaderValue;\r\n\t\t\tif (shader.fillStyle!==curShader.fillStyle || shader.ALPHA!==curShader.ALPHA){\r\n\t\t\t\tshader.glTexture=null;\r\n\t\t\t\tvar submit=this._curSubmit=Submit.createSubmit(this,this._ib,vb,((vb._byteLength-16 */*laya.webgl.utils.Buffer2D.FLOAT32*/4)/ 32)*3,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.COLOR2D*/0x02,0));\r\n\t\t\t\tsubmit.shaderValue.color=shader.fillStyle._color._color;\r\n\t\t\t\tsubmit.shaderValue.ALPHA=shader.ALPHA;\r\n\t\t\t\tthis._submits[this._submits._length++]=submit;\r\n\t\t\t}\r\n\t\t\tthis._curSubmit._numEle+=6;\r\n\t\t\tthis._shader2D.fillStyle=pre;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.fillTexture=function(texture,x,y,width,height,type,offset,other){\r\n\t\tif (!(texture.loaded && texture.bitmap && texture.source)){\r\n\t\t\tif (this.sprite){\r\n\t\t\t\tLaya.timer.callLater(this,this._repaintSprite);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar vb=this._vb;\r\n\t\tvar w=texture.bitmap.width,h=texture.bitmap.height,uv=texture.uv;\r\n\t\tvar ox=offset.x % texture.width,oy=offset.y % texture.height;\r\n\t\tif (w !=other.w || h !=other.h){\r\n\t\t\tif (!other.w && !other.h){\r\n\t\t\t\tother.oy=other.ox=0;\r\n\t\t\t\tswitch (type){\r\n\t\t\t\t\tcase \"repeat\":\r\n\t\t\t\t\t\tother.width=width;\r\n\t\t\t\t\t\tother.height=height;\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase \"repeat-x\":\r\n\t\t\t\t\t\tother.width=width;\r\n\t\t\t\t\t\tif (oy < 0){\r\n\t\t\t\t\t\t\tif (texture.height+oy > height){\r\n\t\t\t\t\t\t\t\tother.height=height;\r\n\t\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\t\tother.height=texture.height+oy;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\tother.oy=oy;\r\n\t\t\t\t\t\t\tif (texture.height+oy > height){\r\n\t\t\t\t\t\t\t\tother.height=height-oy;\r\n\t\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\t\tother.height=texture.height;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase \"repeat-y\":\r\n\t\t\t\t\t\tif (ox < 0){\r\n\t\t\t\t\t\t\tif (texture.width+ox > width){\r\n\t\t\t\t\t\t\t\tother.width=width;\r\n\t\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\t\tother.width=texture.width+ox;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\tother.ox=ox;\r\n\t\t\t\t\t\t\tif (texture.width+ox > width){\r\n\t\t\t\t\t\t\t\tother.width=width-ox;\r\n\t\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\t\tother.width=texture.width;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tother.height=height;\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tdefault :\r\n\t\t\t\t\t\tother.width=width;\r\n\t\t\t\t\t\tother.height=height;\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tother.w=w;\r\n\t\t\tother.h=h;\r\n\t\t\tother.uv=[0,0,other.width / w,0,other.width / w,other.height / h,0,other.height / h];\r\n\t\t}\r\n\t\tx+=other.ox;\r\n\t\ty+=other.oy;\r\n\t\tox-=other.ox;\r\n\t\toy-=other.oy;\r\n\t\tif (GlUtils.fillRectImgVb(vb,this._clipRect,x,y,other.width,other.height,other.uv,this._curMat,this._x,this._y,0,0)){\r\n\t\t\tthis._renderKey=0;\r\n\t\t\tvar submit=SubmitTexture.create(this,this._ib,vb,((vb._byteLength-16 */*laya.webgl.utils.Buffer2D.FLOAT32*/4)/ 32)*3,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.FILLTEXTURE*/0x100,0));\r\n\t\t\tthis._submits[this._submits._length++]=submit;\r\n\t\t\tvar shaderValue=submit.shaderValue;\r\n\t\t\tshaderValue.textureHost=texture;\r\n\t\t\tvar tTextureX=uv[0] *w;\r\n\t\t\tvar tTextureY=uv[1] *h;\r\n\t\t\tvar tTextureW=(uv[2]-uv[0])*w;\r\n\t\t\tvar tTextureH=(uv[5]-uv[3])*h;\r\n\t\t\tvar tx=-ox / w;\r\n\t\t\tvar ty=-oy / h;\r\n\t\t\tshaderValue.u_TexRange[0]=tTextureX / w;\r\n\t\t\tshaderValue.u_TexRange[1]=tTextureW / w;\r\n\t\t\tshaderValue.u_TexRange[2]=tTextureY / h;\r\n\t\t\tshaderValue.u_TexRange[3]=tTextureH / h;\r\n\t\t\tshaderValue.u_offset[0]=tx;\r\n\t\t\tshaderValue.u_offset[1]=ty;\r\n\t\t\tif (AtlasResourceManager.enabled && !this._isMain)\r\n\t\t\t\tsubmit.addTexture(texture,(vb._byteLength >> 2)-/*CLASS CONST:laya.webgl.canvas.WebGLContext2D._RECTVBSIZE*/16);\r\n\t\t\tthis._curSubmit=submit;\r\n\t\t\tsubmit._renderType=/*laya.webgl.submit.Submit.TYPE_FILLTEXTURE*/10017;\r\n\t\t\tsubmit._numEle+=6;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.setShader=function(shader){\r\n\t\tSaveBase.save(this,/*laya.webgl.canvas.save.SaveBase.TYPE_SHADER*/0x100000,this._shader2D,true);\r\n\t\tthis._shader2D.shader=shader;\r\n\t}\r\n\r\n\t__proto.setFilters=function(value){\r\n\t\tSaveBase.save(this,/*laya.webgl.canvas.save.SaveBase.TYPE_FILTERS*/0x200000,this._shader2D,true);\r\n\t\tthis._shader2D.filters=value;\r\n\t\tthis._curSubmit=Submit.RENDERBASE;\r\n\t\tthis._renderKey=0;\r\n\t\tthis._drawCount++;\r\n\t}\r\n\r\n\t__proto.drawTexture=function(tex,x,y,width,height,tx,ty){\r\n\t\tthis._drawTextureM(tex,x,y,width,height,tx,ty,null,1);\r\n\t}\r\n\r\n\t__proto.addTextureVb=function(invb,x,y){\r\n\t\tvar finalVB=this._curSubmit._vb || this._vb;\r\n\t\tvar vpos=(finalVB._byteLength >> 2);\r\n\t\tfinalVB.byteLength=((vpos+/*CLASS CONST:laya.webgl.canvas.WebGLContext2D._RECTVBSIZE*/16)<< 2);\r\n\t\tvar vbdata=finalVB.getFloat32Array();\r\n\t\tfor (var i=0,ci=0;i < 16;i+=4){\r\n\t\t\tvbdata[vpos++]=invb[i]+x;\r\n\t\t\tvbdata[vpos++]=invb[i+1]+y;\r\n\t\t\tvbdata[vpos++]=invb[i+2];\r\n\t\t\tvbdata[vpos++]=invb[i+3];\r\n\t\t}\r\n\t\tthis._curSubmit._numEle+=6;\r\n\t\tthis._maxNumEle=Math.max(this._maxNumEle,this._curSubmit._numEle);\r\n\t\tfinalVB._upload=true;\r\n\t}\r\n\r\n\t__proto.willDrawTexture=function(tex,alpha){\r\n\t\tif (!(tex.loaded && tex.bitmap && tex.source)){\r\n\t\t\tif (this.sprite){\r\n\t\t\t\tLaya.timer.callLater(this,this._repaintSprite);\r\n\t\t\t}\r\n\t\t\treturn 0;\r\n\t\t};\r\n\t\tvar webGLImg=tex.bitmap;\r\n\t\tvar rid=webGLImg.id+this._shader2D.ALPHA *alpha+/*laya.webgl.submit.Submit.TYPE_TEXTURE*/10016;\r\n\t\tif (rid==this._renderKey)return rid;\r\n\t\tvar shader=this._shader2D;\r\n\t\tvar preAlpha=shader.ALPHA;\r\n\t\tvar curShader=this._curSubmit.shaderValue;\r\n\t\tshader.ALPHA *=alpha;\r\n\t\tthis._renderKey=rid;\r\n\t\tthis._drawCount++;\r\n\t\tshader.glTexture=webGLImg;\r\n\t\tvar vb=this._vb;\r\n\t\tvar submit=null;\r\n\t\tvar vbSize=(vb._byteLength / 32)*3;\r\n\t\tsubmit=SubmitTexture.create(this,this._ib,vb,vbSize,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0));\r\n\t\tthis._submits[this._submits._length++]=submit;\r\n\t\tsubmit.shaderValue.textureHost=tex;\r\n\t\tsubmit._renderType=/*laya.webgl.submit.Submit.TYPE_TEXTURE*/10016;\r\n\t\tsubmit._preIsSameTextureShader=this._curSubmit._renderType===/*laya.webgl.submit.Submit.TYPE_TEXTURE*/10016 && shader.ALPHA===curShader.ALPHA;\r\n\t\tthis._curSubmit=submit;\r\n\t\tshader.ALPHA=preAlpha;\r\n\t\treturn rid;\r\n\t}\r\n\r\n\t__proto.drawTextures=function(tex,pos,tx,ty){\r\n\t\tif (!(tex.loaded && tex.bitmap && tex.source)){\r\n\t\t\tthis.sprite && Laya.timer.callLater(this,this._repaintSprite);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar pre=this._clipRect;\r\n\t\tthis._clipRect=WebGLContext2D.MAXCLIPRECT;\r\n\t\tif (!this._drawTextureM(tex,pos[0],pos[1],tex.width,tex.height,tx,ty,null,1)){\r\n\t\t\talert(\"drawTextures err\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._clipRect=pre;\r\n\t\tStat.drawCall++;\r\n\t\tif (pos.length < 4)\r\n\t\t\treturn;\r\n\t\tvar finalVB=this._curSubmit._vb || this._vb;\r\n\t\tvar sx=this._curMat.a,sy=this._curMat.d;\r\n\t\tfor (var i=2,sz=pos.length;i < sz;i+=2){\r\n\t\t\tGlUtils.copyPreImgVb(finalVB,(pos[i]-pos[i-2])*sx,(pos[i+1]-pos[i-1])*sy);\r\n\t\t\tthis._curSubmit._numEle+=6;\r\n\t\t}\r\n\t\tthis._maxNumEle=Math.max(this._maxNumEle,this._curSubmit._numEle);\r\n\t}\r\n\r\n\t__proto._drawTextureM=function(tex,x,y,width,height,tx,ty,m,alpha){\r\n\t\tif (!(tex.loaded && tex.source)){\r\n\t\t\tif (this.sprite){\r\n\t\t\t\tLaya.timer.callLater(this,this._repaintSprite);\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\t\tvar finalVB=this._curSubmit._vb || this._vb;\r\n\t\tvar webGLImg=tex.bitmap;\r\n\t\tx+=tx;\r\n\t\ty+=ty;\r\n\t\tthis._drawCount++;\r\n\t\tvar rid=webGLImg.id+this._shader2D.ALPHA *alpha+/*laya.webgl.submit.Submit.TYPE_TEXTURE*/10016;\r\n\t\tif (rid !=this._renderKey){\r\n\t\t\tthis._renderKey=rid;\r\n\t\t\tvar curShader=this._curSubmit.shaderValue;\r\n\t\t\tvar shader=this._shader2D;\r\n\t\t\tvar alphaBack=shader.ALPHA;\r\n\t\t\tshader.ALPHA *=alpha;\r\n\t\t\tshader.glTexture=webGLImg;\r\n\t\t\tvar vb=this._vb;\r\n\t\t\tvar submit=null;\r\n\t\t\tvar vbSize=(vb._byteLength / 32)*3;\r\n\t\t\tsubmit=SubmitTexture.create(this,this._ib,vb,vbSize,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0));\r\n\t\t\tthis._submits[this._submits._length++]=submit;\r\n\t\t\tsubmit.shaderValue.textureHost=tex;\r\n\t\t\tsubmit._renderType=/*laya.webgl.submit.Submit.TYPE_TEXTURE*/10016;\r\n\t\t\tsubmit._preIsSameTextureShader=this._curSubmit._renderType===/*laya.webgl.submit.Submit.TYPE_TEXTURE*/10016 && shader.ALPHA===curShader.ALPHA;\r\n\t\t\tthis._curSubmit=submit;\r\n\t\t\tfinalVB=this._curSubmit._vb || this._vb;\r\n\t\t\tshader.ALPHA=alphaBack;\r\n\t\t}\r\n\t\tif (GlUtils.fillRectImgVb(finalVB,this._clipRect,x,y,width || tex.width,height || tex.height,tex.uv,m || this._curMat,this._x,this._y,0,0)){\r\n\t\t\tif (AtlasResourceManager.enabled && !this._isMain)\r\n\t\t\t\t(this._curSubmit).addTexture(tex,(finalVB._byteLength >> 2)-/*CLASS CONST:laya.webgl.canvas.WebGLContext2D._RECTVBSIZE*/16);\r\n\t\t\tthis._curSubmit._numEle+=6;\r\n\t\t\tthis._maxNumEle=Math.max(this._maxNumEle,this._curSubmit._numEle);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t__proto._repaintSprite=function(){\r\n\t\tif(this.sprite)\r\n\t\t\tthis.sprite.repaint();\r\n\t}\r\n\r\n\t//}\r\n\t__proto._drawText=function(tex,x,y,width,height,m,tx,ty,dx,dy){\r\n\t\tvar webGLImg=tex.bitmap;\r\n\t\tthis._drawCount++;\r\n\t\tvar rid=webGLImg.id+this._shader2D.ALPHA+/*laya.webgl.submit.Submit.TYPE_TEXTURE*/10016;\r\n\t\tif (rid !=this._renderKey){\r\n\t\t\tthis._renderKey=rid;\r\n\t\t\tvar curShader=this._curSubmit.shaderValue;\r\n\t\t\tvar shader=this._shader2D;\r\n\t\t\tshader.glTexture=webGLImg;\r\n\t\t\tvar vb=this._vb;\r\n\t\t\tvar submit=null;\r\n\t\t\tvar submitID=NaN;\r\n\t\t\tvar vbSize=(vb._byteLength / 32)*3;\r\n\t\t\tif (AtlasResourceManager.enabled){\r\n\t\t\t\tsubmit=SubmitTexture.create(this,this._ib,vb,vbSize,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0));\r\n\t\t\t\t}else {\r\n\t\t\t\tsubmit=SubmitTexture.create(this,this._ib,vb,vbSize,TextSV.create());\r\n\t\t\t}\r\n\t\t\tsubmit._preIsSameTextureShader=this._curSubmit._renderType===/*laya.webgl.submit.Submit.TYPE_TEXTURE*/10016 && shader.ALPHA===curShader.ALPHA;\r\n\t\t\tthis._submits[this._submits._length++]=submit;\r\n\t\t\tsubmit.shaderValue.textureHost=tex;\r\n\t\t\tsubmit._renderType=/*laya.webgl.submit.Submit.TYPE_TEXTURE*/10016;\r\n\t\t\tthis._curSubmit=submit;\r\n\t\t}\r\n\t\ttex.active();\r\n\t\tvar finalVB=this._curSubmit._vb || this._vb;\r\n\t\tif (GlUtils.fillRectImgVb(finalVB,this._clipRect,x+tx,y+ty,width || tex.width,height || tex.height,tex.uv,m || this._curMat,this._x,this._y,dx,dy,true)){\r\n\t\t\tif (AtlasResourceManager.enabled && !this._isMain){\r\n\t\t\t\t(this._curSubmit).addTexture(tex,(finalVB._byteLength >> 2)-/*CLASS CONST:laya.webgl.canvas.WebGLContext2D._RECTVBSIZE*/16);\r\n\t\t\t}\r\n\t\t\tthis._curSubmit._numEle+=6;\r\n\t\t\tthis._maxNumEle=Math.max(this._maxNumEle,this._curSubmit._numEle);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.drawTextureWithTransform=function(tex,x,y,width,height,transform,tx,ty,alpha){\r\n\t\tif (!transform){\r\n\t\t\tthis._drawTextureM(tex,x,y,width,height,tx,ty,null,alpha);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar curMat=this._curMat;\r\n\t\tvar prex=this._x;\r\n\t\tvar prey=this._y;\r\n\t\t(tx!==0 || ty!==0)&& (this._x=tx *curMat.a+ty *curMat.c,this._y=ty *curMat.d+tx *curMat.b);\r\n\t\tif (transform && curMat.bTransform){\r\n\t\t\tMatrix.mul(transform,curMat,WebGLContext2D._tmpMatrix);\r\n\t\t\ttransform=WebGLContext2D._tmpMatrix;\r\n\t\t\ttransform._checkTransform();\r\n\t\t\t}else {\r\n\t\t\tthis._x+=curMat.tx;\r\n\t\t\tthis._y+=curMat.ty;\r\n\t\t}\r\n\t\tthis._drawTextureM(tex,x,y,width,height,0,0,transform,alpha);\r\n\t\tthis._x=prex;\r\n\t\tthis._y=prey;\r\n\t}\r\n\r\n\t__proto.fillQuadrangle=function(tex,x,y,point4,m){\r\n\t\tvar submit=this._curSubmit;\r\n\t\tvar vb=this._vb;\r\n\t\tvar shader=this._shader2D;\r\n\t\tvar curShader=submit.shaderValue;\r\n\t\tthis._renderKey=0;\r\n\t\tif (tex.bitmap){\r\n\t\t\tvar t_tex=tex.bitmap;\r\n\t\t\tif (shader.glTexture !=t_tex || shader.ALPHA!==curShader.ALPHA){\r\n\t\t\t\tshader.glTexture=t_tex;\r\n\t\t\t\tsubmit=this._curSubmit=Submit.createSubmit(this,this._ib,vb,((vb._byteLength)/ 32)*3,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0));\r\n\t\t\t\tsubmit.shaderValue.glTexture=t_tex;\r\n\t\t\t\tthis._submits[this._submits._length++]=submit;\r\n\t\t\t}\r\n\t\t\tGlUtils.fillQuadrangleImgVb(vb,x,y,point4,tex.uv,m || this._curMat,this._x,this._y);\r\n\t\t\t}else {\r\n\t\t\tif (!submit.shaderValue.fillStyle || !submit.shaderValue.fillStyle.equal(tex)|| shader.ALPHA!==curShader.ALPHA){\r\n\t\t\t\tshader.glTexture=null;\r\n\t\t\t\tsubmit=this._curSubmit=Submit.createSubmit(this,this._ib,vb,((vb._byteLength)/ 32)*3,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.COLOR2D*/0x02,0));\r\n\t\t\t\tsubmit.shaderValue.defines.add(/*laya.webgl.shader.d2.ShaderDefines2D.COLOR2D*/0x02);\r\n\t\t\t\tsubmit.shaderValue.fillStyle=DrawStyle.create(tex);\r\n\t\t\t\tthis._submits[this._submits._length++]=submit;\r\n\t\t\t}\r\n\t\t\tGlUtils.fillQuadrangleImgVb(vb,x,y,point4,Texture.DEF_UV,m || this._curMat,this._x,this._y);\r\n\t\t}\r\n\t\tsubmit._numEle+=6;\r\n\t}\r\n\r\n\t__proto.drawTexture2=function(x,y,pivotX,pivotY,transform,alpha,blendMode,args){\r\n\t\tif (alpha==0)return;\r\n\t\tvar curMat=this._curMat;\r\n\t\tthis._x=x *curMat.a+y *curMat.c;\r\n\t\tthis._y=y *curMat.d+x *curMat.b;\r\n\t\tif (transform){\r\n\t\t\tif (curMat.bTransform || transform.bTransform){\r\n\t\t\t\tMatrix.mul(transform,curMat,WebGLContext2D._tmpMatrix);\r\n\t\t\t\ttransform=WebGLContext2D._tmpMatrix;\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._x+=transform.tx+curMat.tx;\r\n\t\t\t\tthis._y+=transform.ty+curMat.ty;\r\n\t\t\t\ttransform=Matrix.EMPTY;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (alpha===1 && !blendMode)\r\n\t\t\tthis._drawTextureM(args[0],args[1]-pivotX,args[2]-pivotY,args[3],args[4],0,0,transform,1);\r\n\t\telse {\r\n\t\t\tvar preAlpha=this._shader2D.ALPHA;\r\n\t\t\tvar preblendType=this._nBlendType;\r\n\t\t\tthis._shader2D.ALPHA=alpha;\r\n\t\t\tblendMode && (this._nBlendType=BlendMode.TOINT(blendMode));\r\n\t\t\tthis._drawTextureM(args[0],args[1]-pivotX,args[2]-pivotY,args[3],args[4],0,0,transform,1);\r\n\t\t\tthis._shader2D.ALPHA=preAlpha;\r\n\t\t\tthis._nBlendType=preblendType;\r\n\t\t}\r\n\t\tthis._x=this._y=0;\r\n\t}\r\n\r\n\t__proto.drawCanvas=function(canvas,x,y,width,height){\r\n\t\tvar src=canvas.context;\r\n\t\tthis._renderKey=0;\r\n\t\tif (src._targets){\r\n\t\t\tthis._submits[this._submits._length++]=SubmitCanvas.create(src,0,null);\r\n\t\t\tthis._curSubmit=Submit.RENDERBASE;\r\n\t\t\tsrc._targets.drawTo(this,x,y,width,height);\r\n\t\t\t}else {\r\n\t\t\tvar submit=this._submits[this._submits._length++]=SubmitCanvas.create(src,this._shader2D.ALPHA,this._shader2D.filters);\r\n\t\t\tvar sx=width / canvas.width;\r\n\t\t\tvar sy=height / canvas.height;\r\n\t\t\tvar mat=submit._matrix;\r\n\t\t\tthis._curMat.copyTo(mat);\r\n\t\t\tsx !=1 && sy !=1 && mat.scale(sx,sy);\r\n\t\t\tvar tx=mat.tx,ty=mat.ty;\r\n\t\t\tmat.tx=mat.ty=0;\r\n\t\t\tmat.transformPoint(Point.TEMP.setTo(x,y));\r\n\t\t\tmat.translate(Point.TEMP.x+tx,Point.TEMP.y+ty);\r\n\t\t\tthis._curSubmit=Submit.RENDERBASE;\r\n\t\t}\r\n\t\tif (Config.showCanvasMark){\r\n\t\t\tthis.save();\r\n\t\t\tthis.lineWidth=4;\r\n\t\t\tthis.strokeStyle=src._targets ? \"yellow\" :\"green\";\r\n\t\t\tthis.strokeRect(x-1,y-1,width+2,height+2,1);\r\n\t\t\tthis.strokeRect(x,y,width,height,1);\r\n\t\t\tthis.restore();\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.drawTarget=function(scope,x,y,width,height,m,proName,shaderValue,uv,blend){\r\n\t\t(blend===void 0)&& (blend=-1);\r\n\t\tvar vb=this._vb;\r\n\t\tif (GlUtils.fillRectImgVb(vb,this._clipRect,x,y,width,height,uv || Texture.DEF_UV,m || this._curMat,this._x,this._y,0,0)){\r\n\t\t\tthis._renderKey=0;\r\n\t\t\tvar shader=this._shader2D;\r\n\t\t\tshader.glTexture=null;\r\n\t\t\tvar curShader=this._curSubmit.shaderValue;\r\n\t\t\tvar submit=this._curSubmit=SubmitTarget.create(this,this._ib,vb,((vb._byteLength-16 */*laya.webgl.utils.Buffer2D.FLOAT32*/4)/ 32)*3,shaderValue,proName);\r\n\t\t\tif (blend==-1){\r\n\t\t\t\tsubmit.blendType=this._nBlendType;\r\n\t\t\t\t}else {\r\n\t\t\t\tsubmit.blendType=blend;\r\n\t\t\t}\r\n\t\t\tsubmit.scope=scope;\r\n\t\t\tthis._submits[this._submits._length++]=submit;\r\n\t\t\tthis._curSubmit._numEle+=6;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*把颜色跟当前设置的alpha混合\r\n\t*@return\r\n\t*/\r\n\t__proto.mixRGBandAlpha=function(color){\r\n\t\treturn this._mixRGBandAlpha(color,this._shader2D.ALPHA);\r\n\t}\r\n\r\n\t__proto._mixRGBandAlpha=function(color,alpha){\r\n\t\tvar a=((color & 0xff000000)>>> 24);\r\n\t\tif (a !=0){\r\n\t\t\ta*=alpha;\r\n\t\t\t}else {\r\n\t\t\ta=alpha*255;\r\n\t\t}\r\n\t\treturn (color & 0x00ffffff)| (a << 24);\r\n\t}\r\n\r\n\t__proto.drawTriangles=function(tex,x,y,vertices,uvs,indices,matrix,alpha,color,blendMode){\r\n\t\tif (!(tex.loaded && tex.source)){\r\n\t\t\tif (this.sprite){\r\n\t\t\t\tLaya.timer.callLater(this,this._repaintSprite);\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tthis._drawCount++;\r\n\t\tvar webGLImg=tex.bitmap;\r\n\t\tvar rgba=this._mixRGBandAlpha(0xffffffff,alpha);\r\n\t\tvar vertNum=vertices.length / 2;\r\n\t\tvar eleNum=indices.length;\r\n\t\tthis._renderKey=-1;\r\n\t\tvar submit=this._curSubmit=SubmitTexture.create(this,this._triangleMesh.getIBR(),this._triangleMesh.getVBR(),this._triangleMesh.indexNum,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0));\r\n\t\tsubmit.shaderValue.textureHost=tex;\r\n\t\tsubmit._renderType=/*laya.webgl.submit.Submit.TYPE_TEXTURE*/10016;\r\n\t\tthis._submits[this._submits._length++]=submit;\r\n\t\tif(matrix){\r\n\t\t\tWebGLContext2D._tmpMatrix.a=matrix.a;WebGLContext2D._tmpMatrix.b=matrix.b;WebGLContext2D._tmpMatrix.c=matrix.c;WebGLContext2D._tmpMatrix.d=matrix.d;WebGLContext2D._tmpMatrix.tx=matrix.tx+x;WebGLContext2D._tmpMatrix.ty=matrix.ty+y;\r\n\t\t\tMatrix.mul(WebGLContext2D._tmpMatrix,this._curMat,WebGLContext2D._tmpMatrix);\r\n\t\t\t}else {\r\n\t\t\tWebGLContext2D._tmpMatrix.a=this._curMat.a;WebGLContext2D._tmpMatrix.b=this._curMat.b;WebGLContext2D._tmpMatrix.c=this._curMat.c;WebGLContext2D._tmpMatrix.d=this._curMat.d;WebGLContext2D._tmpMatrix.tx=this._curMat.tx+x;WebGLContext2D._tmpMatrix.ty=this._curMat.ty+y;\r\n\t\t}\r\n\t\tthis._triangleMesh.addData(vertices,uvs,indices,WebGLContext2D._tmpMatrix,rgba,this);\r\n\t\tthis._curSubmit._numEle+=eleNum;\r\n\t\tthis._maxNumEle=Math.max(this._maxNumEle,this._curSubmit._numEle);\r\n\t\treturn true;\r\n\t}\r\n\r\n\t__proto.transform=function(a,b,c,d,tx,ty){\r\n\t\tSaveTransform.save(this);\r\n\t\tMatrix.mul(Matrix.TEMP.setTo(a,b,c,d,tx,ty),this._curMat,this._curMat);\r\n\t\tthis._curMat._checkTransform();\r\n\t}\r\n\r\n\t__proto.setTransformByMatrix=function(value){\r\n\t\tvalue.copyTo(this._curMat);\r\n\t}\r\n\r\n\t__proto.transformByMatrix=function(value){\r\n\t\tSaveTransform.save(this);\r\n\t\tMatrix.mul(value,this._curMat,this._curMat);\r\n\t\tthis._curMat._checkTransform();\r\n\t}\r\n\r\n\t__proto.rotate=function(angle){\r\n\t\tSaveTransform.save(this);\r\n\t\tthis._curMat.rotateEx(angle);\r\n\t}\r\n\r\n\t__proto.scale=function(scaleX,scaleY){\r\n\t\tSaveTransform.save(this);\r\n\t\tthis._curMat.scaleEx(scaleX,scaleY);\r\n\t}\r\n\r\n\t__proto.clipRect=function(x,y,width,height){\r\n\t\tif (this._curMat.b !=0 || this._curMat.c !=0){\r\n\t\t\tthis._renderKey=0;\r\n\t\t\tvar submitStencil0=SubmitStencil.create(4);\r\n\t\t\tthis.addRenderObject(submitStencil0);\r\n\t\t\tvar vb=this._vb;\r\n\t\t\tvar nPos=(vb._byteLength >> 2);\r\n\t\t\tif (GlUtils.fillRectImgVb(vb,null,x,y,width,height,Texture.DEF_UV,this._curMat,this._x,this._y,0,0)){\r\n\t\t\t\tvar shader=this._shader2D;\r\n\t\t\t\tshader.glTexture=null;\r\n\t\t\t\tvar submit=this._curSubmit=Submit.createSubmit(this,this._ib,vb,((vb._byteLength-16 */*laya.webgl.utils.Buffer2D.FLOAT32*/4)/ 32)*3,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.COLOR2D*/0x02,0));\r\n\t\t\t\tsubmit.shaderValue.ALPHA=1.0;\r\n\t\t\t\tthis._submits[this._submits._length++]=submit;\r\n\t\t\t\tthis._curSubmit._numEle+=6;\r\n\t\t\t\t}else {\r\n\t\t\t\talert(\"clipRect calc stencil rect error\");\r\n\t\t\t};\r\n\t\t\tvar submitStencil1=SubmitStencil.create(5);\r\n\t\t\tthis.addRenderObject(submitStencil1);\r\n\t\t\tvar vbdata=vb.getFloat32Array();\r\n\t\t\tvar minx=Math.min(Math.min(Math.min(vbdata[nPos+0],vbdata[nPos+4]),vbdata[nPos+8]),vbdata[nPos+12]);\r\n\t\t\tvar maxx=Math.max(Math.max(Math.max(vbdata[nPos+0],vbdata[nPos+4]),vbdata[nPos+8]),vbdata[nPos+12]);\r\n\t\t\tvar miny=Math.min(Math.min(Math.min(vbdata[nPos+1],vbdata[nPos+5]),vbdata[nPos+9]),vbdata[nPos+13]);\r\n\t\t\tvar maxy=Math.max(Math.max(Math.max(vbdata[nPos+1],vbdata[nPos+5]),vbdata[nPos+9]),vbdata[nPos+13]);\r\n\t\t\tSaveClipRectStencil.save(this,submitStencil1,x,y,width,height,minx,miny,maxx-minx,maxy-miny);\r\n\t\t\tthis._curSubmit=Submit.RENDERBASE;\r\n\t\t\t}else {\r\n\t\t\twidth *=this._curMat.a;\r\n\t\t\theight *=this._curMat.d;\r\n\t\t\tvar p=Point.TEMP;\r\n\t\t\tthis._curMat.transformPoint(p.setTo(x,y));\r\n\t\t\tif (width < 0){\r\n\t\t\t\tp.x=p.x+width;\r\n\t\t\t\twidth=-width;\r\n\t\t\t}\r\n\t\t\tif (height < 0){\r\n\t\t\t\tp.y=p.y+height;\r\n\t\t\t\theight=-height;\r\n\t\t\t}\r\n\t\t\tthis._renderKey=0;\r\n\t\t\tvar submitSc=this._curSubmit=SubmitScissor.create(this);\r\n\t\t\tthis._submits[this._submits._length++]=submitSc;\r\n\t\t\tsubmitSc.submitIndex=this._submits._length;\r\n\t\t\tsubmitSc.submitLength=9999999;\r\n\t\t\tSaveClipRect.save(this,submitSc);\r\n\t\t\tvar clip=this._clipRect;\r\n\t\t\tvar x1=clip.x,y1=clip.y;\r\n\t\t\tvar r=p.x+width,b=p.y+height;\r\n\t\t\tx1 < p.x && (clip.x=p.x);\r\n\t\t\ty1 < p.y && (clip.y=p.y);\r\n\t\t\tclip.width=Math.min(r,x1+clip.width)-clip.x;\r\n\t\t\tclip.height=Math.min(b,y1+clip.height)-clip.y;\r\n\t\t\tthis._shader2D.glTexture=null;\r\n\t\t\tsubmitSc.clipRect.copyFrom(clip);\r\n\t\t\tthis._curSubmit=Submit.RENDERBASE;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.setIBVB=function(x,y,ib,vb,numElement,mat,shader,shaderValues,startIndex,offset,type){\r\n\t\t(startIndex===void 0)&& (startIndex=0);\r\n\t\t(offset===void 0)&& (offset=0);\r\n\t\t(type===void 0)&& (type=0);\r\n\t\tif (ib===null){\r\n\t\t\tif (!Render.isFlash){\r\n\t\t\t\tib=this._ib;\r\n\t\t\t\t}else {\r\n\t\t\t\tvar falshVB=vb;\r\n\t\t\t\t(falshVB._selfIB)|| (falshVB._selfIB=IndexBuffer2D.create(/*laya.webgl.WebGLContext.STATIC_DRAW*/0x88E4));\r\n\t\t\t\tfalshVB._selfIB.clear();\r\n\t\t\t\tib=falshVB._selfIB;\r\n\t\t\t}\r\n\t\t\tGlUtils.expandIBQuadrangle(ib,(vb._byteLength / (/*laya.webgl.utils.Buffer2D.FLOAT32*/4 *vb.vertexStride *4)));\r\n\t\t}\r\n\t\tif (!shaderValues || !shader)\r\n\t\t\tthrow Error(\"setIBVB must input:shader shaderValues\");\r\n\t\tvar submit=SubmitOtherIBVB.create(this,vb,ib,numElement,shader,shaderValues,startIndex,offset,type);\r\n\t\tmat || (mat=Matrix.EMPTY);\r\n\t\tmat.translate(x,y);\r\n\t\tMatrix.mul(mat,this._curMat,submit._mat);\r\n\t\tmat.translate(-x,-y);\r\n\t\tthis._submits[this._submits._length++]=submit;\r\n\t\tthis._curSubmit=Submit.RENDERBASE;\r\n\t\tthis._renderKey=0;\r\n\t}\r\n\r\n\t__proto.addRenderObject=function(o){\r\n\t\tthis._submits[this._submits._length++]=o;\r\n\t}\r\n\r\n\t__proto.fillTrangles=function(tex,x,y,points,m){\r\n\t\tvar submit=this._curSubmit;\r\n\t\tvar vb=this._vb;\r\n\t\tvar shader=this._shader2D;\r\n\t\tvar curShader=submit.shaderValue;\r\n\t\tvar length=points.length >> 4;\r\n\t\tvar t_tex=tex.bitmap;\r\n\t\tthis._renderKey=0;\r\n\t\tif (shader.glTexture !=t_tex || shader.ALPHA!==curShader.ALPHA){\r\n\t\t\tsubmit=this._curSubmit=Submit.createSubmit(this,this._ib,vb,((vb._byteLength)/ 32)*3,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0));\r\n\t\t\tsubmit.shaderValue.textureHost=tex;\r\n\t\t\tthis._submits[this._submits._length++]=submit;\r\n\t\t}\r\n\t\tGlUtils.fillTranglesVB(vb,x,y,points,m || this._curMat,this._x,this._y);\r\n\t\tsubmit._numEle+=length *6;\r\n\t}\r\n\r\n\t__proto.submitElement=function(start,end){\r\n\t\tvar renderList=this._submits;\r\n\t\tend < 0 && (end=renderList._length);\r\n\t\twhile (start < end){\r\n\t\t\tstart+=renderList[start].renderSubmit();\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.finish=function(){\r\n\t\tWebGL.mainContext.finish();\r\n\t}\r\n\r\n\t__proto.flush=function(){\r\n\t\tvar maxNum=Math.max(this._vb._byteLength / (/*laya.webgl.utils.Buffer2D.FLOAT32*/4 *16),this._maxNumEle / 6)+8;\r\n\t\tif (maxNum > (this._ib.bufferLength / (6 */*laya.webgl.utils.Buffer2D.SHORT*/2))){\r\n\t\t\tGlUtils.expandIBQuadrangle(this._ib,maxNum);\r\n\t\t}\r\n\t\tif (!this._isMain && AtlasResourceManager.enabled && AtlasResourceManager._atlasRestore > this._atlasResourceChange){\r\n\t\t\tthis._atlasResourceChange=AtlasResourceManager._atlasRestore;\r\n\t\t\tvar renderList=this._submits;\r\n\t\t\tfor (var i=0,s=renderList._length;i < s;i++){\r\n\t\t\t\tvar submit=renderList [i];\r\n\t\t\t\tif (submit.getRenderType()===/*laya.webgl.submit.Submit.TYPE_TEXTURE*/10016)\r\n\t\t\t\t\t(submit).checkTexture();\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.submitElement(0,this._submits._length);\r\n\t\tthis._path && this._path.reset();\r\n\t\tSkinMeshBuffer.instance && SkinMeshBuffer.getInstance().reset();\r\n\t\tvar sz=0;\r\n\t\tfor (i=0,sz=this.meshlist.length;i < sz;i++){\r\n\t\t\tvar curm=this.meshlist[i];\r\n\t\t\tcurm.canReuse?(curm.releaseMesh()):(curm.destroy());\r\n\t\t}\r\n\t\tthis.meshlist.length=0;\r\n\t\tthis._curSubmit=Submit.RENDERBASE;\r\n\t\tthis._renderKey=0;\r\n\t\tthis._triangleMesh=MeshTexture.getAMesh();\r\n\t\tthis.meshlist.push(this._triangleMesh);\r\n\t\treturn this._submits._length;\r\n\t}\r\n\r\n\t__proto.setPathId=function(id){\r\n\t\tthis.mId=id;\r\n\t\tif (this.mId !=-1){\r\n\t\t\tthis.mHaveKey=false;\r\n\t\t\tvar tVGM=VectorGraphManager.getInstance();\r\n\t\t\tif (tVGM.shapeDic[this.mId]){\r\n\t\t\t\tthis.mHaveKey=true;\r\n\t\t\t}\r\n\t\t\tthis.mHaveLineKey=false;\r\n\t\t\tif (tVGM.shapeLineDic[this.mId]){\r\n\t\t\t\tthis.mHaveLineKey=true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.movePath=function(x,y){\r\n\t\tvar _x1=x,_y1=y;\r\n\t\tx=this._curMat.a *_x1+this._curMat.c *_y1+this._curMat.tx;\r\n\t\ty=this._curMat.b *_x1+this._curMat.d *_y1+this._curMat.ty;\r\n\t\tthis.mX+=x;\r\n\t\tthis.mY+=y;\r\n\t}\r\n\r\n\t__proto.beginPath=function(){\r\n\t\tvar tPath=this._getPath();\r\n\t\ttPath.tempArray.length=0;\r\n\t\ttPath.closePath=false;\r\n\t\tthis.mX=0;\r\n\t\tthis.mY=0;\r\n\t}\r\n\r\n\t__proto.closePath=function(){\r\n\t\tthis._path.closePath=true;\r\n\t}\r\n\r\n\t__proto.fill=function(isConvexPolygon){\r\n\t\t(isConvexPolygon===void 0)&& (isConvexPolygon=false);\r\n\t\tvar tPath=this._getPath();\r\n\t\tthis.drawPoly(0,0,tPath.tempArray,this.fillStyle._color.numColor,0,0,isConvexPolygon);\r\n\t}\r\n\r\n\t__proto.stroke=function(){\r\n\t\tvar tPath=this._getPath();\r\n\t\tif (this.lineWidth > 0){\r\n\t\t\tif (this.mId==-1){\r\n\t\t\t\ttPath.drawLine(0,0,tPath.tempArray,this.lineWidth,this.strokeStyle._color.numColor);\r\n\t\t\t\t}else {\r\n\t\t\t\tif (this.mHaveLineKey){\r\n\t\t\t\t\tvar tShapeLine=VectorGraphManager.getInstance().shapeLineDic[this.mId];\r\n\t\t\t\t\ttShapeLine.rebuild(tPath.tempArray);\r\n\t\t\t\t\ttPath.setGeomtry(tShapeLine);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tVectorGraphManager.getInstance().addLine(this.mId,tPath.drawLine(0,0,tPath.tempArray,this.lineWidth,this.strokeStyle._color.numColor));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttPath.update();\r\n\t\t\tvar tPosArray=[this.mX,this.mY];\r\n\t\t\tvar tempSubmit=Submit.createShape(this,tPath.ib,tPath.vb,tPath.count,tPath.offset,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.PRIMITIVE*/0x04,0));\r\n\t\t\ttempSubmit.shaderValue.ALPHA=this._shader2D.ALPHA;\r\n\t\t\t(tempSubmit.shaderValue).u_pos=tPosArray;\r\n\t\t\ttempSubmit.shaderValue.u_mmat2=RenderState2D.TEMPMAT4_ARRAY;\r\n\t\t\tthis._submits[this._submits._length++]=tempSubmit;\r\n\t\t\tthis._renderKey=-1;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.line=function(fromX,fromY,toX,toY,lineWidth,mat){\r\n\t\tvar submit=this._curSubmit;\r\n\t\tvar vb=this._vb;\r\n\t\tif (GlUtils.fillLineVb(vb,this._clipRect,fromX,fromY,toX,toY,lineWidth,mat)){\r\n\t\t\tthis._renderKey=0;\r\n\t\t\tvar shader=this._shader2D;\r\n\t\t\tvar curShader=submit.shaderValue;\r\n\t\t\tif (shader.strokeStyle!==curShader.strokeStyle || shader.ALPHA!==curShader.ALPHA){\r\n\t\t\t\tshader.glTexture=null;\r\n\t\t\t\tsubmit=this._curSubmit=Submit.createSubmit(this,this._ib,vb,((vb._byteLength-16 */*laya.webgl.utils.Buffer2D.FLOAT32*/4)/ 32)*3,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.COLOR2D*/0x02,0));\r\n\t\t\t\tsubmit.shaderValue.strokeStyle=shader.strokeStyle;\r\n\t\t\t\tsubmit.shaderValue.mainID=/*laya.webgl.shader.d2.ShaderDefines2D.COLOR2D*/0x02;\r\n\t\t\t\tsubmit.shaderValue.ALPHA=shader.ALPHA;\r\n\t\t\t\tthis._submits[this._submits._length++]=submit;\r\n\t\t\t}\r\n\t\t\tsubmit._numEle+=6;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.moveTo=function(x,y,b){\r\n\t\t(b===void 0)&& (b=true);\r\n\t\tvar tPath=this._getPath();\r\n\t\tif (b){\r\n\t\t\tvar _x1=x,_y1=y;\r\n\t\t\tx=this._curMat.a *_x1+this._curMat.c *_y1;\r\n\t\t\ty=this._curMat.b *_x1+this._curMat.d *_y1;\r\n\t\t}\r\n\t\ttPath.addPoint(x,y);\r\n\t}\r\n\r\n\t__proto.lineTo=function(x,y,b){\r\n\t\t(b===void 0)&& (b=true);\r\n\t\tvar tPath=this._getPath();\r\n\t\tif (b){\r\n\t\t\tvar _x1=x,_y1=y;\r\n\t\t\tx=this._curMat.a *_x1+this._curMat.c *_y1;\r\n\t\t\ty=this._curMat.b *_x1+this._curMat.d *_y1;\r\n\t\t}\r\n\t\ttPath.addPoint(x,y);\r\n\t}\r\n\r\n\t__proto.drawCurves=function(x,y,args){\r\n\t\tthis.setPathId(-1);\r\n\t\tthis.beginPath();\r\n\t\tthis.strokeStyle=args[3];\r\n\t\tthis.lineWidth=args[4];\r\n\t\tvar points=args[2];\r\n\t\tx+=args[0],y+=args[1];\r\n\t\tthis.movePath(x,y);\r\n\t\tthis.moveTo(points[0],points[1]);\r\n\t\tvar i=2,n=points.length;\r\n\t\twhile (i < n){\r\n\t\t\tthis.quadraticCurveTo(points[i++],points[i++],points[i++],points[i++]);\r\n\t\t}\r\n\t\tthis.stroke();\r\n\t}\r\n\r\n\t__proto.arcTo=function(x1,y1,x2,y2,r){\r\n\t\tif (this.mId !=-1){\r\n\t\t\tif (this.mHaveKey){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar i=0;\r\n\t\tvar x=0,y=0;\r\n\t\tvar tPath=this._getPath();\r\n\t\tthis._curMat.copyTo(WebGLContext2D._tmpMatrix);\r\n\t\tWebGLContext2D._tmpMatrix.tx=WebGLContext2D._tmpMatrix.ty=0;\r\n\t\tWebGLContext2D._tempPoint.setTo(tPath.getEndPointX(),tPath.getEndPointY());\r\n\t\tWebGLContext2D._tmpMatrix.invertTransformPoint(WebGLContext2D._tempPoint);\r\n\t\tvar dx=WebGLContext2D._tempPoint.x-x1;\r\n\t\tvar dy=WebGLContext2D._tempPoint.y-y1;\r\n\t\tvar len1=Math.sqrt(dx*dx+dy*dy);\r\n\t\tif (len1 <=0.000001){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar ndx=dx / len1;\r\n\t\tvar ndy=dy / len1;\r\n\t\tvar dx2=x2-x1;\r\n\t\tvar dy2=y2-y1;\r\n\t\tvar len22=dx2*dx2+dy2*dy2;\r\n\t\tvar len2=Math.sqrt(len22);\r\n\t\tif (len2 <=0.000001){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar ndx2=dx2 / len2;\r\n\t\tvar ndy2=dy2 / len2;\r\n\t\tvar odx=ndx+ndx2;\r\n\t\tvar ody=ndy+ndy2;\r\n\t\tvar olen=Math.sqrt(odx*odx+ody*ody);\r\n\t\tif (olen <=0.000001){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar nOdx=odx / olen;\r\n\t\tvar nOdy=ody / olen;\r\n\t\tvar alpha=Math.acos(nOdx*ndx+nOdy*ndy);\r\n\t\tvar halfAng=Math.PI / 2-alpha;\r\n\t\tlen1=r / Math.tan(halfAng);\r\n\t\tvar ptx1=len1*ndx+x1;\r\n\t\tvar pty1=len1*ndy+y1;\r\n\t\tvar orilen=Math.sqrt(len1*len1+r*r);\r\n\t\tvar orix=x1+nOdx*orilen;\r\n\t\tvar oriy=y1+nOdy*orilen;\r\n\t\tvar ptx2=len1*ndx2+x1;\r\n\t\tvar pty2=len1*ndy2+y1;\r\n\t\tvar dir=ndx *ndy2-ndy *ndx2;\r\n\t\tvar fChgAng=0;\r\n\t\tvar sinx=0.0;\r\n\t\tvar cosx=0.0;\r\n\t\tif (dir >=0){\r\n\t\t\tfChgAng=halfAng *2;\r\n\t\t\tvar fda=fChgAng / WebGLContext2D.SEGNUM;\r\n\t\t\tsinx=Math.sin(fda);\r\n\t\t\tcosx=Math.cos(fda);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tfChgAng=-halfAng *2;\r\n\t\t\tfda=fChgAng / WebGLContext2D.SEGNUM;\r\n\t\t\tsinx=Math.sin(fda);\r\n\t\t\tcosx=Math.cos(fda);\r\n\t\t}\r\n\t\tx=this._curMat.a *ptx1+this._curMat.c *pty1;\r\n\t\ty=this._curMat.b *ptx1+this._curMat.d *pty1;\r\n\t\tif (x !=this._path.getEndPointX()|| y !=this._path.getEndPointY()){\r\n\t\t\ttPath.addPoint(x,y);\r\n\t\t};\r\n\t\tvar cvx=ptx1-orix;\r\n\t\tvar cvy=pty1-oriy;\r\n\t\tvar tx=0.0;\r\n\t\tvar ty=0.0;\r\n\t\tfor (i=0;i < WebGLContext2D.SEGNUM;i++){\r\n\t\t\tvar cx=cvx*cosx+cvy*sinx;\r\n\t\t\tvar cy=-cvx*sinx+cvy*cosx;\r\n\t\t\tx=cx+orix;\r\n\t\t\ty=cy+oriy;\r\n\t\t\tx1=this._curMat.a *x+this._curMat.c *y;\r\n\t\t\ty1=this._curMat.b *x+this._curMat.d *y;\r\n\t\t\tx=x1;\r\n\t\t\ty=y1;\r\n\t\t\tif (x !=this._path.getEndPointX()|| y !=this._path.getEndPointY()){\r\n\t\t\t\ttPath.addPoint(x,y);\r\n\t\t\t}\r\n\t\t\tcvx=cx;\r\n\t\t\tcvy=cy;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.arc=function(cx,cy,r,startAngle,endAngle,counterclockwise,b){\r\n\t\t(counterclockwise===void 0)&& (counterclockwise=false);\r\n\t\t(b===void 0)&& (b=true);\r\n\t\tif (this.mId !=-1){\r\n\t\t\tvar tShape=VectorGraphManager.getInstance().shapeDic[this.mId];\r\n\t\t\tif (tShape){\r\n\t\t\t\tif (this.mHaveKey && !tShape.needUpdate(this._curMat))\r\n\t\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tcx=0;\r\n\t\t\tcy=0;\r\n\t\t};\r\n\t\tvar a=0,da=0,hda=0,kappa=0;\r\n\t\tvar dx=0,dy=0,x=0,y=0,tanx=0,tany=0;\r\n\t\tvar px=0,py=0,ptanx=0,ptany=0;\r\n\t\tvar i=0,ndivs=0,nvals=0;\r\n\t\tda=endAngle-startAngle;\r\n\t\tif (!counterclockwise){\r\n\t\t\tif (Math.abs(da)>=Math.PI *2){\r\n\t\t\t\tda=Math.PI *2;\r\n\t\t\t\t}else {\r\n\t\t\t\twhile (da < 0.0){\r\n\t\t\t\t\tda+=Math.PI *2;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tif (Math.abs(da)>=Math.PI *2){\r\n\t\t\t\tda=-Math.PI *2;\r\n\t\t\t\t}else {\r\n\t\t\t\twhile (da > 0.0){\r\n\t\t\t\t\tda-=Math.PI *2;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (r < 101){\r\n\t\t\tndivs=Math.max(10,da *r / 5);\r\n\t\t\t}else if (r < 201){\r\n\t\t\tndivs=Math.max(10,da *r / 20);\r\n\t\t\t}else {\r\n\t\t\tndivs=Math.max(10,da *r / 40);\r\n\t\t}\r\n\t\thda=(da / ndivs)/ 2.0;\r\n\t\tkappa=Math.abs(4 / 3 *(1-Math.cos(hda))/ Math.sin(hda));\r\n\t\tif (counterclockwise)\r\n\t\t\tkappa=-kappa;\r\n\t\tnvals=0;\r\n\t\tvar tPath=this._getPath();\r\n\t\tvar _x1=NaN,_y1=NaN;\r\n\t\tfor (i=0;i <=ndivs;i++){\r\n\t\t\ta=startAngle+da *(i / ndivs);\r\n\t\t\tdx=Math.cos(a);\r\n\t\t\tdy=Math.sin(a);\r\n\t\t\tx=cx+dx *r;\r\n\t\t\ty=cy+dy *r;\r\n\t\t\tif (b){\r\n\t\t\t\t_x1=x,_y1=y;\r\n\t\t\t\tx=this._curMat.a *_x1+this._curMat.c *_y1;\r\n\t\t\t\ty=this._curMat.b *_x1+this._curMat.d *_y1;\r\n\t\t\t}\r\n\t\t\tif (x !=this._path.getEndPointX()|| y !=this._path.getEndPointY()){\r\n\t\t\t\ttPath.addPoint(x,y);\r\n\t\t\t}\r\n\t\t}\r\n\t\tdx=Math.cos(endAngle);\r\n\t\tdy=Math.sin(endAngle);\r\n\t\tx=cx+dx *r;\r\n\t\ty=cy+dy *r;\r\n\t\tif (b){\r\n\t\t\t_x1=x,_y1=y;\r\n\t\t\tx=this._curMat.a *_x1+this._curMat.c *_y1;\r\n\t\t\ty=this._curMat.b *_x1+this._curMat.d *_y1;\r\n\t\t}\r\n\t\tif (x !=this._path.getEndPointX()|| y !=this._path.getEndPointY()){\r\n\t\t\ttPath.addPoint(x,y);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.quadraticCurveTo=function(cpx,cpy,x,y){\r\n\t\tvar tBezier=Bezier.I;\r\n\t\tvar tResultArray=[];\r\n\t\tvar _x1=x,_y1=y;\r\n\t\tx=this._curMat.a *_x1+this._curMat.c *_y1;\r\n\t\ty=this._curMat.b *_x1+this._curMat.d *_y1;\r\n\t\t_x1=cpx,_y1=cpy;\r\n\t\tcpx=this._curMat.a *_x1+this._curMat.c *_y1;\r\n\t\tcpy=this._curMat.b *_x1+this._curMat.d *_y1;\r\n\t\tvar tArray=tBezier.getBezierPoints([this._path.getEndPointX(),this._path.getEndPointY(),cpx,cpy,x,y],30,2);\r\n\t\tfor (var i=0,n=tArray.length / 2;i < n;i++){\r\n\t\t\tthis.lineTo(tArray[i *2],tArray[i *2+1],false);\r\n\t\t}\r\n\t\tthis.lineTo(x,y,false);\r\n\t}\r\n\r\n\t__proto.rect=function(x,y,width,height){\r\n\t\tthis._other=this._other.make();\r\n\t\tthis._other.path || (this._other.path=new Path());\r\n\t\tthis._other.path.rect(x,y,width,height);\r\n\t}\r\n\r\n\t__proto.strokeRect=function(x,y,width,height,parameterLineWidth){\r\n\t\tvar tW=parameterLineWidth *0.5;\r\n\t\tthis.line(x-tW,y,x+width+tW,y,parameterLineWidth,this._curMat);\r\n\t\tthis.line(x+width,y,x+width,y+height,parameterLineWidth,this._curMat);\r\n\t\tthis.line(x,y,x,y+height,parameterLineWidth,this._curMat);\r\n\t\tthis.line(x-tW,y+height,x+width+tW,y+height,parameterLineWidth,this._curMat);\r\n\t}\r\n\r\n\t__proto.clip=function(){}\r\n\t/**\r\n\t*画多边形(用)\r\n\t*@param x\r\n\t*@param y\r\n\t*@param points\r\n\t*/\r\n\t__proto.drawPoly=function(x,y,points,color,lineWidth,boderColor,isConvexPolygon){\r\n\t\t(isConvexPolygon===void 0)&& (isConvexPolygon=false);\r\n\t\tthis._renderKey=0;\r\n\t\tthis._shader2D.glTexture=null;\r\n\t\tvar tPath=this._getPath();\r\n\t\tif (this.mId==-1){\r\n\t\t\ttPath.polygon(x,y,points,color,lineWidth ? lineWidth :1,boderColor)\r\n\t\t\t}else {\r\n\t\t\tif (this.mHaveKey){\r\n\t\t\t\tvar tShape=VectorGraphManager.getInstance().shapeDic[this.mId];\r\n\t\t\t\ttShape.setMatrix(this._curMat);\r\n\t\t\t\ttShape.rebuild(tPath.tempArray);\r\n\t\t\t\ttPath.setGeomtry(tShape);\r\n\t\t\t\t}else {\r\n\t\t\t\tvar t=tPath.polygon(x,y,points,color,lineWidth ? lineWidth :1,boderColor);\r\n\t\t\t\tVectorGraphManager.getInstance().addShape(this.mId,t);\r\n\t\t\t\tt.setMatrix(this._curMat);\r\n\t\t\t}\r\n\t\t}\r\n\t\ttPath.update();\r\n\t\tvar tPosArray=[this.mX,this.mY];\r\n\t\tvar tempSubmit;\r\n\t\ttempSubmit=Submit.createShape(this,tPath.ib,tPath.vb,tPath.count,tPath.offset,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.PRIMITIVE*/0x04,0));\r\n\t\ttempSubmit.shaderValue.ALPHA=this._shader2D.ALPHA;\r\n\t\t(tempSubmit.shaderValue).u_pos=tPosArray;\r\n\t\ttempSubmit.shaderValue.u_mmat2=RenderState2D.EMPTYMAT4_ARRAY;\r\n\t\tthis._submits[this._submits._length++]=tempSubmit;\r\n\t\tif (lineWidth > 0){\r\n\t\t\tif (this.mHaveLineKey){\r\n\t\t\t\tvar tShapeLine=VectorGraphManager.getInstance().shapeLineDic[this.mId];\r\n\t\t\t\ttShapeLine.rebuild(tPath.tempArray);\r\n\t\t\t\ttPath.setGeomtry(tShapeLine);\r\n\t\t\t\t}else {\r\n\t\t\t\tVectorGraphManager.getInstance().addShape(this.mId,tPath.drawLine(x,y,points,lineWidth,boderColor));\r\n\t\t\t}\r\n\t\t\ttPath.update();\r\n\t\t\ttempSubmit=Submit.createShape(this,tPath.ib,tPath.vb,tPath.count,tPath.offset,Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.PRIMITIVE*/0x04,0));\r\n\t\t\ttempSubmit.shaderValue.ALPHA=this._shader2D.ALPHA;\r\n\t\t\ttempSubmit.shaderValue.u_mmat2=RenderState2D.EMPTYMAT4_ARRAY;\r\n\t\t\tthis._submits[this._submits._length++]=tempSubmit;\r\n\t\t}\r\n\t}\r\n\r\n\t/*******************************************end矢量绘制***************************************************/\r\n\t__proto.drawParticle=function(x,y,pt){\r\n\t\tpt.x=x;\r\n\t\tpt.y=y;\r\n\t\tthis._submits[this._submits._length++]=pt;\r\n\t}\r\n\r\n\t__proto._getPath=function(){\r\n\t\treturn this._path || (this._path=new Path());\r\n\t}\r\n\r\n\t/*,_shader2D.ALPHA=1*/\r\n\t__getset(0,__proto,'globalCompositeOperation',function(){\r\n\t\treturn BlendMode.NAMES[this._nBlendType];\r\n\t\t},function(value){\r\n\t\tvar n=BlendMode.TOINT[value];\r\n\t\tn==null || (this._nBlendType===n)|| (SaveBase.save(this,/*laya.webgl.canvas.save.SaveBase.TYPE_GLOBALCOMPOSITEOPERATION*/0x10000,this,true),this._curSubmit=Submit.RENDERBASE,this._renderKey=0,this._nBlendType=n);\r\n\t});\r\n\r\n\t__getset(0,__proto,'strokeStyle',function(){\r\n\t\treturn this._shader2D.strokeStyle;\r\n\t\t},function(value){\r\n\t\tthis._shader2D.strokeStyle.equal(value)|| (SaveBase.save(this,/*laya.webgl.canvas.save.SaveBase.TYPE_STROKESTYLE*/0x200,this._shader2D,false),this._shader2D.strokeStyle=DrawStyle.create(value));\r\n\t});\r\n\r\n\t__getset(0,__proto,'globalAlpha',function(){\r\n\t\treturn this._shader2D.ALPHA;\r\n\t\t},function(value){\r\n\t\tvalue=Math.floor(value *1000)/ 1000;\r\n\t\tif (value !=this._shader2D.ALPHA){\r\n\t\t\tSaveBase.save(this,/*laya.webgl.canvas.save.SaveBase.TYPE_ALPHA*/0x1,this._shader2D,true);\r\n\t\t\tthis._shader2D.ALPHA=value;\r\n\t\t}\r\n\t});\r\n\r\n\t__getset(0,__proto,'asBitmap',null,function(value){\r\n\t\tif (value){\r\n\t\t\tthis._targets || (this._targets=new RenderTargetMAX());\r\n\t\t\tthis._targets.repaint=true;\r\n\t\t\tif (!this._width || !this._height)\r\n\t\t\t\tthrow Error(\"asBitmap no size!\");\r\n\t\t\tthis._targets.setSP(this.sprite);\r\n\t\t\tthis._targets.size(this._width,this._height);\r\n\t\t}else\r\n\t\tthis._targets=null;\r\n\t});\r\n\r\n\t__getset(0,__proto,'fillStyle',function(){\r\n\t\treturn this._shader2D.fillStyle;\r\n\t\t},function(value){\r\n\t\tthis._shader2D.fillStyle.equal(value)|| (SaveBase.save(this,/*laya.webgl.canvas.save.SaveBase.TYPE_FILESTYLE*/0x2,this._shader2D,false),this._shader2D.fillStyle=DrawStyle.create(value));\r\n\t});\r\n\r\n\t__getset(0,__proto,'textAlign',function(){\r\n\t\treturn this._other.textAlign;\r\n\t\t},function(value){\r\n\t\t(this._other.textAlign===value)|| (this._other=this._other.make(),SaveBase.save(this,/*laya.webgl.canvas.save.SaveBase.TYPE_TEXTALIGN*/0x8000,this._other,false),this._other.textAlign=value);\r\n\t});\r\n\r\n\t__getset(0,__proto,'lineWidth',function(){\r\n\t\treturn this._other.lineWidth;\r\n\t\t},function(value){\r\n\t\t(this._other.lineWidth===value)|| (this._other=this._other.make(),SaveBase.save(this,/*laya.webgl.canvas.save.SaveBase.TYPE_LINEWIDTH*/0x100,this._other,false),this._other.lineWidth=value);\r\n\t});\r\n\r\n\t__getset(0,__proto,'textBaseline',function(){\r\n\t\treturn this._other.textBaseline;\r\n\t\t},function(value){\r\n\t\t(this._other.textBaseline===value)|| (this._other=this._other.make(),SaveBase.save(this,/*laya.webgl.canvas.save.SaveBase.TYPE_TEXTBASELINE*/0x4000,this._other,false),this._other.textBaseline=value);\r\n\t});\r\n\r\n\t__getset(0,__proto,'font',null,function(str){\r\n\t\tif (str==this._other.font.toString())\r\n\t\t\treturn;\r\n\t\tthis._other=this._other.make();\r\n\t\tSaveBase.save(this,/*laya.webgl.canvas.save.SaveBase.TYPE_FONT*/0x8,this._other,false);\r\n\t\tthis._other.font===FontInContext.EMPTY ? (this._other.font=new FontInContext(str)):(this._other.font.setFont(str));\r\n\t});\r\n\r\n\tWebGLContext2D.__init__=function(){\r\n\t\tContextParams.DEFAULT=new ContextParams();\r\n\t}\r\n\r\n\tWebGLContext2D._tempPoint=new Point();\r\n\tWebGLContext2D._SUBMITVBSIZE=32000;\r\n\tWebGLContext2D._MAXSIZE=99999999;\r\n\tWebGLContext2D._RECTVBSIZE=16;\r\n\tWebGLContext2D.MAXCLIPRECT=new Rectangle(0,0,99999999,99999999);\r\n\tWebGLContext2D._COUNT=0;\r\n\tWebGLContext2D._tmpMatrix=new Matrix();\r\n\tWebGLContext2D.SEGNUM=32;\r\n\tWebGLContext2D._contextcount=0;\r\n\t__static(WebGLContext2D,\r\n\t['_fontTemp',function(){return this._fontTemp=new FontInContext();},'_drawStyleTemp',function(){return this._drawStyleTemp=new DrawStyle(null);}\r\n\t]);\r\n\tWebGLContext2D.__init$=function(){\r\n\t\t//class ContextParams\r\n\t\tContextParams=(function(){\r\n\t\t\tfunction ContextParams(){\r\n\t\t\t\tthis.lineWidth=1;\r\n\t\t\t\tthis.path=null;\r\n\t\t\t\tthis.textAlign=null;\r\n\t\t\t\tthis.textBaseline=null;\r\n\t\t\t\tthis.font=FontInContext.EMPTY;\r\n\t\t\t}\r\n\t\t\t__class(ContextParams,'');\r\n\t\t\tvar __proto=ContextParams.prototype;\r\n\t\t\t__proto.clear=function(){\r\n\t\t\t\tthis.lineWidth=1;\r\n\t\t\t\tthis.path && this.path.clear();\r\n\t\t\t\tthis.textAlign=this.textBaseline=null;\r\n\t\t\t\tthis.font=FontInContext.EMPTY;\r\n\t\t\t}\r\n\t\t\t__proto.make=function(){\r\n\t\t\t\treturn this===ContextParams.DEFAULT ? new ContextParams():this;\r\n\t\t\t}\r\n\t\t\tContextParams.DEFAULT=null;\r\n\t\t\treturn ContextParams;\r\n\t\t})()\r\n\t}\r\n\r\n\treturn WebGLContext2D;\r\n})(Context)\r\n\r\n\r\n//class laya.webgl.shader.d2.value.Value2D extends laya.webgl.shader.ShaderValue\r\nvar Value2D=(function(_super){\r\n\tfunction Value2D(mainID,subID){\r\n\t\tthis.size=[0,0];\r\n\t\tthis.alpha=1.0;\r\n\t\t//this.mmat=null;\r\n\t\tthis.ALPHA=1.0;\r\n\t\t//this.shader=null;\r\n\t\t//this.mainID=0;\r\n\t\tthis.subID=0;\r\n\t\t//this.filters=null;\r\n\t\t//this.textureHost=null;\r\n\t\t//this.texture=null;\r\n\t\t//this.fillStyle=null;\r\n\t\t//this.color=null;\r\n\t\t//this.strokeStyle=null;\r\n\t\t//this.colorAdd=null;\r\n\t\t//this.glTexture=null;\r\n\t\t//this.u_mmat2=null;\r\n\t\t//this._inClassCache=null;\r\n\t\tthis._cacheID=0;\r\n\t\tValue2D.__super.call(this);\r\n\t\tthis.defines=new ShaderDefines2D();\r\n\t\tthis.position=Value2D._POSITION;\r\n\t\tthis.mainID=mainID;\r\n\t\tthis.subID=subID;\r\n\t\tthis.textureHost=null;\r\n\t\tthis.texture=null;\r\n\t\tthis.fillStyle=null;\r\n\t\tthis.color=null;\r\n\t\tthis.strokeStyle=null;\r\n\t\tthis.colorAdd=null;\r\n\t\tthis.glTexture=null;\r\n\t\tthis.u_mmat2=null;\r\n\t\tthis._cacheID=mainID|subID;\r\n\t\tthis._inClassCache=Value2D._cache[this._cacheID];\r\n\t\tif (mainID>0 && !this._inClassCache){\r\n\t\t\tthis._inClassCache=Value2D._cache[this._cacheID]=[];\r\n\t\t\tthis._inClassCache._length=0;\r\n\t\t}\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t__class(Value2D,'laya.webgl.shader.d2.value.Value2D',_super);\r\n\tvar __proto=Value2D.prototype;\r\n\t__proto.setValue=function(value){}\r\n\t//throw new Error(\"todo in subclass\");\r\n\t__proto.refresh=function(){\r\n\t\tvar size=this.size;\r\n\t\tsize[0]=RenderState2D.width;\r\n\t\tsize[1]=RenderState2D.height;\r\n\t\tthis.alpha=this.ALPHA *RenderState2D.worldAlpha;\r\n\t\tthis.mmat=RenderState2D.worldMatrix4;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t__proto._ShaderWithCompile=function(){\r\n\t\treturn Shader.withCompile2D(0,this.mainID,this.defines.toNameDic(),this.mainID | this.defines._value,Shader2X.create);\r\n\t}\r\n\r\n\t__proto._withWorldShaderDefines=function(){\r\n\t\tvar defs=RenderState2D.worldShaderDefines;\r\n\t\tvar sd=Shader.sharders [this.mainID | this.defines._value | defs.getValue()];\r\n\t\tif (!sd){\r\n\t\t\tvar def={};\r\n\t\t\tvar dic;\r\n\t\t\tvar name;\r\n\t\t\tdic=this.defines.toNameDic();for (name in dic)def[name]=\"\";\r\n\t\t\tdic=defs.toNameDic();for (name in dic)def[name]=\"\";\r\n\t\t\tsd=Shader.withCompile2D(0,this.mainID,def,this.mainID | this.defines._value| defs.getValue(),Shader2X.create);\r\n\t\t};\r\n\t\tvar worldFilters=RenderState2D.worldFilters;\r\n\t\tif (!worldFilters)return sd;\r\n\t\tvar n=worldFilters.length,f;\r\n\t\tfor (var i=0;i < n;i++){\r\n\t\t\t((f=worldFilters[i]))&& f.action.setValue(this);\r\n\t\t}\r\n\t\treturn sd;\r\n\t}\r\n\r\n\t__proto.upload=function(){\r\n\t\tvar renderstate2d=RenderState2D;\r\n\t\tthis.alpha=this.ALPHA *renderstate2d.worldAlpha;\r\n\t\tif (RenderState2D.worldMatrix4!==RenderState2D.TEMPMAT4_ARRAY)this.defines.add(/*laya.webgl.shader.d2.ShaderDefines2D.WORLDMAT*/0x80);\r\n\t\t(WebGL.shaderHighPrecision)&& (this.defines.add(/*laya.webgl.shader.d2.ShaderDefines2D.SHADERDEFINE_FSHIGHPRECISION*/0x400));\r\n\t\tvar sd=renderstate2d.worldShaderDefines?this._withWorldShaderDefines():(Shader.sharders [this.mainID | this.defines._value] || this._ShaderWithCompile());\r\n\t\tvar params;\r\n\t\tthis.size[0]=renderstate2d.width,this.size[1]=renderstate2d.height;\r\n\t\tthis.mmat=renderstate2d.worldMatrix4;\r\n\t\tif (BaseShader.activeShader!==sd){\r\n\t\t\tif (sd._shaderValueWidth!==renderstate2d.width || sd._shaderValueHeight!==renderstate2d.height){\r\n\t\t\t\tsd._shaderValueWidth=renderstate2d.width;\r\n\t\t\t\tsd._shaderValueHeight=renderstate2d.height;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tparams=sd._params2dQuick2 || sd._make2dQuick2();\r\n\t\t\t}\r\n\t\t\tsd.upload(this,params);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tif (sd._shaderValueWidth!==renderstate2d.width || sd._shaderValueHeight!==renderstate2d.height){\r\n\t\t\t\tsd._shaderValueWidth=renderstate2d.width;\r\n\t\t\t\tsd._shaderValueHeight=renderstate2d.height;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tparams=(sd._params2dQuick1)|| sd._make2dQuick1();\r\n\t\t\t}\r\n\t\t\tsd.upload(this,params);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.setFilters=function(value){\r\n\t\tthis.filters=value;\r\n\t\tif (!value)\r\n\t\t\treturn;\r\n\t\tvar n=value.length,f;\r\n\t\tfor (var i=0;i < n;i++){\r\n\t\t\tf=value[i];\r\n\t\t\tif (f){\r\n\t\t\t\tthis.defines.add(f.type);\r\n\t\t\t\tf.action.setValue(this);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.clear=function(){\r\n\t\tthis.defines.setValue(this.subID);\r\n\t}\r\n\r\n\t__proto.release=function(){\r\n\t\tthis._inClassCache[this._inClassCache._length++]=this;\r\n\t\tthis.fillStyle=null;\r\n\t\tthis.strokeStyle=null;\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\tValue2D._initone=function(type,classT){\r\n\t\tValue2D._typeClass[type]=classT;\r\n\t\tValue2D._cache[type]=[];\r\n\t\tValue2D._cache[type]._length=0;\r\n\t}\r\n\r\n\tValue2D.__init__=function(){\r\n\t\tValue2D._POSITION=[2,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,4 *CONST3D2D.BYTES_PE,0];\r\n\t\tValue2D._TEXCOORD=[2,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,4 *CONST3D2D.BYTES_PE,2 *CONST3D2D.BYTES_PE];\r\n\t\tValue2D._initone(/*laya.webgl.shader.d2.ShaderDefines2D.COLOR2D*/0x02,Color2dSV);\r\n\t\tValue2D._initone(/*laya.webgl.shader.d2.ShaderDefines2D.PRIMITIVE*/0x04,PrimitiveSV);\r\n\t\tValue2D._initone(/*laya.webgl.shader.d2.ShaderDefines2D.FILLTEXTURE*/0x100,FillTextureSV);\r\n\t\tValue2D._initone(/*laya.webgl.shader.d2.ShaderDefines2D.SKINMESH*/0x200,SkinSV);\r\n\t\tValue2D._initone(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,TextureSV);\r\n\t\tValue2D._initone(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01 | /*laya.webgl.shader.d2.ShaderDefines2D.COLORADD*/0x40,TextSV);\r\n\t\tValue2D._initone(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01 | /*laya.webgl.shader.d2.ShaderDefines2D.FILTERGLOW*/0x08,TextureSV);\r\n\t}\r\n\r\n\tValue2D.create=function(mainType,subType){\r\n\t\tvar types=Value2D._cache[mainType|subType];\r\n\t\tif (types._length)\r\n\t\t\treturn types[--types._length];\r\n\t\telse\r\n\t\treturn new Value2D._typeClass[mainType|subType](subType);\r\n\t}\r\n\r\n\tValue2D._POSITION=null;\r\n\tValue2D._TEXCOORD=null;\r\n\tValue2D._cache=[];\r\n\tValue2D._typeClass=[];\r\n\tValue2D.TEMPMAT4_ARRAY=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];\r\n\treturn Value2D;\r\n})(ShaderValue)\r\n\r\n\r\n//class laya.webgl.utils.RenderSprite3D extends laya.renders.RenderSprite\r\nvar RenderSprite3D=(function(_super){\r\n\tfunction RenderSprite3D(type,next){\r\n\t\tRenderSprite3D.__super.call(this,type,next);\r\n\t}\r\n\r\n\t__class(RenderSprite3D,'laya.webgl.utils.RenderSprite3D',_super);\r\n\tvar __proto=RenderSprite3D.prototype;\r\n\t__proto.onCreate=function(type){\r\n\t\tswitch (type){\r\n\t\t\tcase 0x08:\r\n\t\t\t\tthis._fun=this._blend;\r\n\t\t\t\treturn;\r\n\t\t\tcase 0x04:\r\n\t\t\t\tthis._fun=this._transform;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t}\r\n\r\n\t__proto._mask=function(sprite,context,x,y){\r\n\t\tvar next=this._next;\r\n\t\tvar mask=sprite.mask;\r\n\t\tvar submitCMD;\r\n\t\tvar submitStencil;\r\n\t\tif (mask){\r\n\t\t\tcontext.ctx.save();\r\n\t\t\tvar preBlendMode=(context.ctx).globalCompositeOperation;\r\n\t\t\tvar tRect=new Rectangle();\r\n\t\t\ttRect.copyFrom(mask.getBounds());\r\n\t\t\ttRect.width=Math.round(tRect.width);\r\n\t\t\ttRect.height=Math.round(tRect.height);\r\n\t\t\ttRect.x=Math.round(tRect.x);\r\n\t\t\ttRect.y=Math.round(tRect.y);\r\n\t\t\tif (tRect.width > 0 && tRect.height > 0){\r\n\t\t\t\tvar tf=sprite._style._tf;\r\n\t\t\t\tvar scope=SubmitCMDScope.create();\r\n\t\t\t\tscope.addValue(\"bounds\",tRect);\r\n\t\t\t\tsubmitCMD=SubmitCMD.create([scope,context],laya.webgl.utils.RenderSprite3D.tmpTarget);\r\n\t\t\t\tcontext.addRenderObject(submitCMD);\r\n\t\t\t\tmask.render(context,-tRect.x,-tRect.y);\r\n\t\t\t\tsubmitCMD=SubmitCMD.create([scope],laya.webgl.utils.RenderSprite3D.endTmpTarget);\r\n\t\t\t\tcontext.addRenderObject(submitCMD);\r\n\t\t\t\tcontext.ctx.save();\r\n\t\t\t\tcontext.clipRect(x-tf.translateX+tRect.x,y-tf.translateY+tRect.y,tRect.width,tRect.height);\r\n\t\t\t\tnext._fun.call(next,sprite,context,x,y);\r\n\t\t\t\tcontext.ctx.restore();\r\n\t\t\t\tsubmitStencil=SubmitStencil.create(6);\r\n\t\t\t\tpreBlendMode=(context.ctx).globalCompositeOperation;\r\n\t\t\t\tsubmitStencil.blendMode=\"mask\";\r\n\t\t\t\tcontext.addRenderObject(submitStencil);\r\n\t\t\t\tMatrix.TEMP.identity();\r\n\t\t\t\tvar shaderValue=Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0);\r\n\t\t\t\tvar uv=Texture.INV_UV;\r\n\t\t\t\tvar w=tRect.width;\r\n\t\t\t\tvar h=tRect.height;\r\n\t\t\t\tvar tempLimit=32;\r\n\t\t\t\tif (tRect.width < tempLimit || tRect.height < tempLimit){\r\n\t\t\t\t\tuv=RenderSprite3D.tempUV;\r\n\t\t\t\t\tuv[0]=0;\r\n\t\t\t\t\tuv[1]=0;\r\n\t\t\t\t\tuv[2]=(tRect.width >=32)? 1 :tRect.width/tempLimit;\r\n\t\t\t\t\tuv[3]=0\r\n\t\t\t\t\tuv[4]=(tRect.width >=32)? 1 :tRect.width/tempLimit;\r\n\t\t\t\t\tuv[5]=(tRect.height >=32)? 1 :tRect.height/tempLimit;\r\n\t\t\t\t\tuv[6]=0;\r\n\t\t\t\t\tuv[7]=(tRect.height >=32)? 1 :tRect.height/tempLimit;\r\n\t\t\t\t\ttRect.width=(tRect.width >=32)? tRect.width :tempLimit;\r\n\t\t\t\t\ttRect.height=(tRect.height >=32)? tRect.height :tempLimit;\r\n\t\t\t\t\tuv[1] *=-1;uv[3] *=-1;uv[5] *=-1;uv[7] *=-1;\r\n\t\t\t\t\tuv[1]+=1;uv[3]+=1;uv[5]+=1;uv[7]+=1;\r\n\t\t\t\t}\r\n\t\t\t\t(context.ctx).drawTarget(scope,x+tRect.x-tf.translateX,y+tRect.y-tf.translateY,w,h,Matrix.TEMP,\"tmpTarget\",shaderValue,uv,6);\r\n\t\t\t\tsubmitCMD=SubmitCMD.create([scope],laya.webgl.utils.RenderSprite3D.recycleTarget);\r\n\t\t\t\tcontext.addRenderObject(submitCMD);\r\n\t\t\t\tsubmitStencil=SubmitStencil.create(6);\r\n\t\t\t\tsubmitStencil.blendMode=preBlendMode;\r\n\t\t\t\tcontext.addRenderObject(submitStencil);\r\n\t\t\t}\r\n\t\t\tcontext.ctx.restore();\r\n\t\t}\r\n\t\telse{\r\n\t\t\tnext._fun.call(next,sprite,context,x,y);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._blend=function(sprite,context,x,y){\r\n\t\tvar style=sprite._style;\r\n\t\tvar next=this._next;\r\n\t\tif (style.blendMode){\r\n\t\t\tcontext.ctx.save();\r\n\t\t\tcontext.ctx.globalCompositeOperation=style.blendMode;\r\n\t\t\tnext._fun.call(next,sprite,context,x,y);\r\n\t\t\tcontext.ctx.restore();\r\n\t\t}\r\n\t\telse{\r\n\t\t\tnext._fun.call(next,sprite,context,x,y);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._transform=function(sprite,context,x,y){\r\n\t\tvar transform=sprite.transform,_next=this._next;\r\n\t\tif (transform && _next !=RenderSprite.NORENDER){\r\n\t\t\tvar ctx=context.ctx;\r\n\t\t\tvar style=sprite._style;\r\n\t\t\ttransform.tx=x;\r\n\t\t\ttransform.ty=y;\r\n\t\t\tvar m2=ctx._getTransformMatrix();\r\n\t\t\tvar m1=m2.clone();\r\n\t\t\tMatrix.mul(transform,m2,m2);\r\n\t\t\tm2._checkTransform();\r\n\t\t\ttransform.tx=transform.ty=0;\r\n\t\t\t_next._fun.call(_next,sprite,context,0,0);\r\n\t\t\tm1.copyTo(m2);\r\n\t\t\tm1.destroy();\r\n\t\t\t}else {\r\n\t\t\t_next._fun.call(_next,sprite,context,x,y);\r\n\t\t}\r\n\t}\r\n\r\n\tRenderSprite3D.tmpTarget=function(scope,context){\r\n\t\tvar b=scope.getValue(\"bounds\");\r\n\t\tvar tmpTarget=RenderTarget2D.create(b.width,b.height);\r\n\t\ttmpTarget.start();\r\n\t\ttmpTarget.clear(0,0,0,0);\r\n\t\tscope.addValue(\"tmpTarget\",tmpTarget);\r\n\t}\r\n\r\n\tRenderSprite3D.endTmpTarget=function(scope){\r\n\t\tvar tmpTarget=scope.getValue(\"tmpTarget\");\r\n\t\ttmpTarget.end();\r\n\t}\r\n\r\n\tRenderSprite3D.recycleTarget=function(scope){\r\n\t\tvar tmpTarget=scope.getValue(\"tmpTarget\");\r\n\t\ttmpTarget.recycle();\r\n\t\tscope.recycle();\r\n\t}\r\n\r\n\t__static(RenderSprite3D,\r\n\t['tempUV',function(){return this.tempUV=new Array(8);}\r\n\t]);\r\n\treturn RenderSprite3D;\r\n})(RenderSprite)\r\n\r\n\r\n//class laya.filters.webgl.ColorFilterActionGL extends laya.filters.webgl.FilterActionGL\r\nvar ColorFilterActionGL=(function(_super){\r\n\tfunction ColorFilterActionGL(){\r\n\t\tthis.data=null;\r\n\t\tColorFilterActionGL.__super.call(this);\r\n\t}\r\n\r\n\t__class(ColorFilterActionGL,'laya.filters.webgl.ColorFilterActionGL',_super);\r\n\tvar __proto=ColorFilterActionGL.prototype;\r\n\tLaya.imps(__proto,{\"laya.filters.IFilterActionGL\":true})\r\n\t__proto.setValue=function(shader){\r\n\t\tshader.colorMat=this.data._mat;\r\n\t\tshader.colorAlpha=this.data._alpha;\r\n\t}\r\n\r\n\t__proto.apply3d=function(scope,sprite,context,x,y){\r\n\t\tvar b=scope.getValue(\"bounds\");\r\n\t\tvar shaderValue=Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0);\r\n\t\tshaderValue.setFilters([this.data]);\r\n\t\tvar tMatrix=Matrix.TEMP;\r\n\t\ttMatrix.identity();\r\n\t\tcontext.ctx.drawTarget(scope,0,0,b.width,b.height,tMatrix,\"src\",shaderValue);\r\n\t}\r\n\r\n\treturn ColorFilterActionGL;\r\n})(FilterActionGL)\r\n\r\n\r\n//class laya.webgl.atlas.Atlaser extends laya.webgl.atlas.AtlasGrid\r\nvar Atlaser=(function(_super){\r\n\tfunction Atlaser(gridNumX,gridNumY,width,height,atlasID){\r\n\t\tthis._atlasCanvas=null;\r\n\t\tthis._inAtlasTextureKey=null;\r\n\t\tthis._inAtlasTextureBitmapValue=null;\r\n\t\tthis._inAtlasTextureOriUVValue=null;\r\n\t\tthis._InAtlasWebGLImagesKey=null;\r\n\t\tthis._InAtlasWebGLImagesOffsetValue=null;\r\n\t\tAtlaser.__super.call(this,gridNumX,gridNumY,atlasID);\r\n\t\tthis._inAtlasTextureKey=[];\r\n\t\tthis._inAtlasTextureBitmapValue=[];\r\n\t\tthis._inAtlasTextureOriUVValue=[];\r\n\t\tthis._InAtlasWebGLImagesKey={};\r\n\t\tthis._InAtlasWebGLImagesOffsetValue=[];\r\n\t\tthis._atlasCanvas=new AtlasWebGLCanvas();\r\n\t\tthis._atlasCanvas._atlaser=this;\r\n\t\tthis._atlasCanvas.width=width;\r\n\t\tthis._atlasCanvas.height=height;\r\n\t\tthis._atlasCanvas.activeResource();\r\n\t\tthis._atlasCanvas.lock=true;\r\n\t}\r\n\r\n\t__class(Atlaser,'laya.webgl.atlas.Atlaser',_super);\r\n\tvar __proto=Atlaser.prototype;\r\n\t__proto.computeUVinAtlasTexture=function(texture,oriUV,offsetX,offsetY){\r\n\t\tvar tex=texture;\r\n\t\tvar _width=AtlasResourceManager.atlasTextureWidth;\r\n\t\tvar _height=AtlasResourceManager.atlasTextureHeight;\r\n\t\tvar u1=offsetX / _width,v1=offsetY / _height,u2=(offsetX+texture.bitmap.width)/ _width,v2=(offsetY+texture.bitmap.height)/ _height;\r\n\t\tvar inAltasUVWidth=texture.bitmap.width / _width,inAltasUVHeight=texture.bitmap.height / _height;\r\n\t\ttexture.uv=[u1+oriUV[0] *inAltasUVWidth,v1+oriUV[1] *inAltasUVHeight,u2-(1-oriUV[2])*inAltasUVWidth,v1+oriUV[3] *inAltasUVHeight,u2-(1-oriUV[4])*inAltasUVWidth,v2-(1-oriUV[5])*inAltasUVHeight,u1+oriUV[6] *inAltasUVWidth,v2-(1-oriUV[7])*inAltasUVHeight];\r\n\t}\r\n\r\n\t__proto.findBitmapIsExist=function(bitmap){\r\n\t\tif ((bitmap instanceof laya.webgl.resource.WebGLImage )){\r\n\t\t\tvar webImage=bitmap;\r\n\t\t\tvar sUrl=webImage.url;\r\n\t\t\tvar object=this._InAtlasWebGLImagesKey[sUrl?sUrl:webImage.id]\r\n\t\t\tif (object){\r\n\t\t\t\treturn object.offsetInfoID;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn-1;\r\n\t}\r\n\r\n\t/**\r\n\t*\r\n\t*@param inAtlasRes\r\n\t*@return 是否已经存在队列中\r\n\t*/\r\n\t__proto.addToAtlasTexture=function(mergeAtlasBitmap,offsetX,offsetY){\r\n\t\tif ((mergeAtlasBitmap instanceof laya.webgl.resource.WebGLImage )){\r\n\t\t\tvar webImage=mergeAtlasBitmap;\r\n\t\t\tvar sUrl=webImage.url;\r\n\t\t\tthis._InAtlasWebGLImagesKey[sUrl?sUrl:webImage.id]={bitmap:mergeAtlasBitmap,offsetInfoID:this._InAtlasWebGLImagesOffsetValue.length};\r\n\t\t\tthis._InAtlasWebGLImagesOffsetValue.push([offsetX,offsetY]);\r\n\t\t}\r\n\t\tthis._atlasCanvas.texSubImage2D(offsetX,offsetY,mergeAtlasBitmap.atlasSource);\r\n\t\tmergeAtlasBitmap.clearAtlasSource();\r\n\t}\r\n\r\n\t__proto.addToAtlas=function(texture,offsetX,offsetY){\r\n\t\ttexture._atlasID=this._inAtlasTextureKey.length;\r\n\t\tvar oriUV=texture.uv.slice();\r\n\t\tvar oriBitmap=texture.bitmap;\r\n\t\tthis._inAtlasTextureKey.push(texture);\r\n\t\tthis._inAtlasTextureOriUVValue.push(oriUV);\r\n\t\tthis._inAtlasTextureBitmapValue.push(oriBitmap);\r\n\t\tthis.computeUVinAtlasTexture(texture,oriUV,offsetX,offsetY);\r\n\t\ttexture.bitmap=this._atlasCanvas;\r\n\t}\r\n\r\n\t__proto.clear=function(){\r\n\t\tfor (var i=0,n=this._inAtlasTextureKey.length;i < n;i++){\r\n\t\t\tthis._inAtlasTextureKey[i].bitmap=this._inAtlasTextureBitmapValue[i];\r\n\t\t\tthis._inAtlasTextureKey[i].uv=this._inAtlasTextureOriUVValue[i];\r\n\t\t\tthis._inAtlasTextureKey[i]._atlasID=-1;\r\n\t\t\tthis._inAtlasTextureKey[i].bitmap.lock=false;\r\n\t\t\tthis._inAtlasTextureKey[i].bitmap.releaseResource();\r\n\t\t}\r\n\t\tthis._inAtlasTextureKey.length=0;\r\n\t\tthis._inAtlasTextureBitmapValue.length=0;\r\n\t\tthis._inAtlasTextureOriUVValue.length=0;\r\n\t\tthis._InAtlasWebGLImagesKey=null;\r\n\t\tthis._InAtlasWebGLImagesOffsetValue.length=0;\r\n\t}\r\n\r\n\t__proto.dispose=function(){\r\n\t\tthis.clear();\r\n\t\tthis._atlasCanvas.destroy();\r\n\t}\r\n\r\n\t__getset(0,__proto,'InAtlasWebGLImagesOffsetValue',function(){\r\n\t\treturn this._InAtlasWebGLImagesOffsetValue;\r\n\t});\r\n\r\n\t__getset(0,__proto,'texture',function(){\r\n\t\treturn this._atlasCanvas;\r\n\t});\r\n\r\n\t__getset(0,__proto,'inAtlasWebGLImagesKey',function(){\r\n\t\treturn this._InAtlasWebGLImagesKey;\r\n\t});\r\n\r\n\treturn Atlaser;\r\n})(AtlasGrid)\r\n\r\n\r\n//class laya.webgl.shader.d2.ShaderDefines2D extends laya.webgl.shader.ShaderDefines\r\nvar ShaderDefines2D=(function(_super){\r\n\tfunction ShaderDefines2D(){\r\n\t\tShaderDefines2D.__super.call(this,ShaderDefines2D.__name2int,ShaderDefines2D.__int2name,ShaderDefines2D.__int2nameMap);\r\n\t}\r\n\r\n\t__class(ShaderDefines2D,'laya.webgl.shader.d2.ShaderDefines2D',_super);\r\n\tShaderDefines2D.__init__=function(){\r\n\t\tShaderDefines2D.reg(\"TEXTURE2D\",0x01);\r\n\t\tShaderDefines2D.reg(\"COLOR2D\",0x02);\r\n\t\tShaderDefines2D.reg(\"PRIMITIVE\",0x04);\r\n\t\tShaderDefines2D.reg(\"GLOW_FILTER\",0x08);\r\n\t\tShaderDefines2D.reg(\"BLUR_FILTER\",0x10);\r\n\t\tShaderDefines2D.reg(\"COLOR_FILTER\",0x20);\r\n\t\tShaderDefines2D.reg(\"COLOR_ADD\",0x40);\r\n\t\tShaderDefines2D.reg(\"WORLDMAT\",0x80);\r\n\t\tShaderDefines2D.reg(\"FILLTEXTURE\",0x100);\r\n\t\tShaderDefines2D.reg(\"FSHIGHPRECISION\",0x400);\r\n\t}\r\n\r\n\tShaderDefines2D.reg=function(name,value){\r\n\t\tShaderDefines._reg(name,value,ShaderDefines2D.__name2int,ShaderDefines2D.__int2name);\r\n\t}\r\n\r\n\tShaderDefines2D.toText=function(value,int2name,int2nameMap){\r\n\t\treturn ShaderDefines._toText(value,int2name,int2nameMap);\r\n\t}\r\n\r\n\tShaderDefines2D.toInt=function(names){\r\n\t\treturn ShaderDefines._toInt(names,ShaderDefines2D.__name2int);\r\n\t}\r\n\r\n\tShaderDefines2D.TEXTURE2D=0x01;\r\n\tShaderDefines2D.COLOR2D=0x02;\r\n\tShaderDefines2D.PRIMITIVE=0x04;\r\n\tShaderDefines2D.FILTERGLOW=0x08;\r\n\tShaderDefines2D.FILTERBLUR=0x10;\r\n\tShaderDefines2D.FILTERCOLOR=0x20;\r\n\tShaderDefines2D.COLORADD=0x40;\r\n\tShaderDefines2D.WORLDMAT=0x80;\r\n\tShaderDefines2D.FILLTEXTURE=0x100;\r\n\tShaderDefines2D.SKINMESH=0x200;\r\n\tShaderDefines2D.SHADERDEFINE_FSHIGHPRECISION=0x400;\r\n\tShaderDefines2D.__name2int={};\r\n\tShaderDefines2D.__int2name=[];\r\n\tShaderDefines2D.__int2nameMap=[];\r\n\treturn ShaderDefines2D;\r\n})(ShaderDefines)\r\n\r\n\r\n//class laya.webgl.shapes.Ellipse extends laya.webgl.shapes.BasePoly\r\nvar Ellipse=(function(_super){\r\n\tfunction Ellipse(x,y,width,height,color,borderWidth,borderColor){\r\n\t\tEllipse.__super.call(this,x,y,width,height,40,color,borderWidth,borderColor);\r\n\t}\r\n\r\n\t__class(Ellipse,'laya.webgl.shapes.Ellipse',_super);\r\n\treturn Ellipse;\r\n})(BasePoly)\r\n\r\n\r\n//class laya.webgl.shapes.Line extends laya.webgl.shapes.BasePoly\r\nvar Line=(function(_super){\r\n\tfunction Line(x,y,points,borderWidth,color){\r\n\t\tthis._points=[];\r\n\t\tthis.rebuild(points);\r\n\t\tLine.__super.call(this,x,y,0,0,0,color,borderWidth,color,0);\r\n\t}\r\n\r\n\t__class(Line,'laya.webgl.shapes.Line',_super);\r\n\tvar __proto=Line.prototype;\r\n\t__proto.rebuild=function(points){\r\n\t\tvar len=points.length;\r\n\t\tvar preLen=this._points.length;\r\n\t\tif (len !=preLen){\r\n\t\t\tthis.mUint16Array=new Uint16Array((len/2-1)*6);\r\n\t\t\tthis.mFloat32Array=new Float32Array(len*5);\r\n\t\t}\r\n\t\tthis._points.length=0;\r\n\t\tvar tCurrX=NaN;\r\n\t\tvar tCurrY=NaN;\r\n\t\tvar tLastX=-1;\r\n\t\tvar tLastY=-1;\r\n\t\tvar tLen=points.length / 2;\r\n\t\tfor (var i=0;i < tLen;i++){\r\n\t\t\ttCurrX=points[i *2];\r\n\t\t\ttCurrY=points[i *2+1];\r\n\t\t\tif (Math.abs(tLastX-tCurrX)> 0.01 || Math.abs(tLastY-tCurrY)>0.01){\r\n\t\t\t\tthis._points.push(tCurrX,tCurrY);\r\n\t\t\t}\r\n\t\t\ttLastX=tCurrX;\r\n\t\t\ttLastY=tCurrY;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.getData=function(ib,vb,start){\r\n\t\tvar indices=[];\r\n\t\tvar verts=[];\r\n\t\t(this.borderWidth > 0)&& this.createLine2(this._points,indices,this.borderWidth,start,verts,this._points.length / 2);\r\n\t\tthis.mUint16Array.set(indices,0);\r\n\t\tthis.mFloat32Array.set(verts,0);\r\n\t\tib.append(this.mUint16Array);\r\n\t\tvb.append(this.mFloat32Array);\r\n\t}\r\n\r\n\treturn Line;\r\n})(BasePoly)\r\n\r\n\r\n//class laya.webgl.shapes.LoopLine extends laya.webgl.shapes.BasePoly\r\nvar LoopLine=(function(_super){\r\n\tfunction LoopLine(x,y,points,width,color){\r\n\t\tthis._points=[];\r\n\t\tvar tCurrX=NaN;\r\n\t\tvar tCurrY=NaN;\r\n\t\tvar tLastX=-1;\r\n\t\tvar tLastY=-1;\r\n\t\tvar tLen=points.length / 2-1;\r\n\t\tfor (var i=0;i < tLen;i++){\r\n\t\t\ttCurrX=points[i *2];\r\n\t\t\ttCurrY=points[i *2+1];\r\n\t\t\tif (Math.abs(tLastX-tCurrX)> 0.01 || Math.abs(tLastY-tCurrY)> 0.01){\r\n\t\t\t\tthis._points.push(tCurrX,tCurrY);\r\n\t\t\t}\r\n\t\t\ttLastX=tCurrX;\r\n\t\t\ttLastY=tCurrY;\r\n\t\t}\r\n\t\ttCurrX=points[tLen *2];\r\n\t\ttCurrY=points[tLen *2+1];\r\n\t\ttLastX=this._points[0];\r\n\t\ttLastY=this._points[1];\r\n\t\tif (Math.abs(tLastX-tCurrX)> 0.01 || Math.abs(tLastY-tCurrY)> 0.01){\r\n\t\t\tthis._points.push(tCurrX,tCurrY);\r\n\t\t}\r\n\t\tLoopLine.__super.call(this,x,y,0,0,this._points.length / 2,0,width,color);\r\n\t}\r\n\r\n\t__class(LoopLine,'laya.webgl.shapes.LoopLine',_super);\r\n\tvar __proto=LoopLine.prototype;\r\n\t__proto.getData=function(ib,vb,start){\r\n\t\tif (this.borderWidth > 0){\r\n\t\t\tvar color=this.color;\r\n\t\t\tvar r=((color >> 16)& 0x0000ff)/ 255,g=((color >> 8)& 0xff)/ 255,b=(color & 0x0000ff)/ 255;\r\n\t\t\tvar verts=[];\r\n\t\t\tvar tLastX=-1,tLastY=-1;\r\n\t\t\tvar tCurrX=0,tCurrY=0;\r\n\t\t\tvar indices=[];\r\n\t\t\tvar tLen=Math.floor(this._points.length / 2);\r\n\t\t\tfor (var i=0;i < tLen;i++){\r\n\t\t\t\ttCurrX=this._points[i *2];\r\n\t\t\t\ttCurrY=this._points[i *2+1];\r\n\t\t\t\tverts.push(this.x+tCurrX,this.y+tCurrY,r,g,b);\r\n\t\t\t}\r\n\t\t\tthis.createLoopLine(verts,indices,this.borderWidth,start+verts.length / 5);\r\n\t\t\tib.append(new Uint16Array(indices));\r\n\t\t\tvb.append(new Float32Array(verts));\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.createLoopLine=function(p,indices,lineWidth,len,outVertex,outIndex){\r\n\t\tvar tLen=p.length / 5;\r\n\t\tvar points=p.concat();\r\n\t\tvar result=outVertex ? outVertex :p;\r\n\t\tvar color=this.borderColor;\r\n\t\tvar r=((color >> 16)& 0x0000ff)/ 255,g=((color >> 8)& 0xff)/ 255,b=(color & 0x0000ff)/ 255;\r\n\t\tvar firstPoint=[points[0],points[1]];\r\n\t\tvar lastPoint=[points[points.length-5],points[points.length-4]];\r\n\t\tvar midPointX=lastPoint[0]+(firstPoint[0]-lastPoint[0])*0.5;\r\n\t\tvar midPointY=lastPoint[1]+(firstPoint[1]-lastPoint[1])*0.5;\r\n\t\tpoints.unshift(midPointX,midPointY,0,0,0);\r\n\t\tpoints.push(midPointX,midPointY,0,0,0);\r\n\t\tvar length=points.length / 5;\r\n\t\tvar iStart=len,w=lineWidth / 2;\r\n\t\tvar px,py,p1x,p1y,p2x,p2y,p3x,p3y;\r\n\t\tvar perpx,perpy,perp2x,perp2y,perp3x,perp3y;\r\n\t\tvar a1,b1,c1,a2,b2,c2;\r\n\t\tvar denom,pdist,dist;\r\n\t\tp1x=points[0];\r\n\t\tp1y=points[1];\r\n\t\tp2x=points[5];\r\n\t\tp2y=points[6];\r\n\t\tperpx=-(p1y-p2y);\r\n\t\tperpy=p1x-p2x;\r\n\t\tdist=Math.sqrt(perpx *perpx+perpy *perpy);\r\n\t\tperpx=perpx / dist *w;\r\n\t\tperpy=perpy / dist *w;\r\n\t\tresult.push(p1x-perpx,p1y-perpy,r,g,b,p1x+perpx,p1y+perpy,r,g,b);\r\n\t\tfor (var i=1;i < length-1;i++){\r\n\t\t\tp1x=points[(i-1)*5];\r\n\t\t\tp1y=points[(i-1)*5+1];\r\n\t\t\tp2x=points[(i)*5];\r\n\t\t\tp2y=points[(i)*5+1];\r\n\t\t\tp3x=points[(i+1)*5];\r\n\t\t\tp3y=points[(i+1)*5+1];\r\n\t\t\tperpx=-(p1y-p2y);\r\n\t\t\tperpy=p1x-p2x;\r\n\t\t\tdist=Math.sqrt(perpx *perpx+perpy *perpy);\r\n\t\t\tperpx=perpx / dist *w;\r\n\t\t\tperpy=perpy / dist *w;\r\n\t\t\tperp2x=-(p2y-p3y);\r\n\t\t\tperp2y=p2x-p3x;\r\n\t\t\tdist=Math.sqrt(perp2x *perp2x+perp2y *perp2y);\r\n\t\t\tperp2x=perp2x / dist *w;\r\n\t\t\tperp2y=perp2y / dist *w;\r\n\t\t\ta1=(-perpy+p1y)-(-perpy+p2y);\r\n\t\t\tb1=(-perpx+p2x)-(-perpx+p1x);\r\n\t\t\tc1=(-perpx+p1x)*(-perpy+p2y)-(-perpx+p2x)*(-perpy+p1y);\r\n\t\t\ta2=(-perp2y+p3y)-(-perp2y+p2y);\r\n\t\t\tb2=(-perp2x+p2x)-(-perp2x+p3x);\r\n\t\t\tc2=(-perp2x+p3x)*(-perp2y+p2y)-(-perp2x+p2x)*(-perp2y+p3y);\r\n\t\t\tdenom=a1 *b2-a2 *b1;\r\n\t\t\tif (Math.abs(denom)< 0.1){\r\n\t\t\t\tdenom+=10.1;\r\n\t\t\t\tresult.push(p2x-perpx,p2y-perpy,r,g,b,p2x+perpx,p2y+perpy,r,g,b);\r\n\t\t\t\tcontinue ;\r\n\t\t\t}\r\n\t\t\tpx=(b1 *c2-b2 *c1)/ denom;\r\n\t\t\tpy=(a2 *c1-a1 *c2)/ denom;\r\n\t\t\tpdist=(px-p2x)*(px-p2x)+(py-p2y)+(py-p2y);\r\n\t\t\tresult.push(px,py,r,g,b,p2x-(px-p2x),p2y-(py-p2y),r,g,b);\r\n\t\t}\r\n\t\tif (outIndex){\r\n\t\t\tindices=outIndex;\r\n\t\t};\r\n\t\tvar groupLen=this.edges+1;\r\n\t\tfor (i=1;i < groupLen;i++){\r\n\t\t\tindices.push(iStart+(i-1)*2,iStart+(i-1)*2+1,iStart+i *2+1,iStart+i *2+1,iStart+i *2,iStart+(i-1)*2);\r\n\t\t}\r\n\t\tindices.push(iStart+(i-1)*2,iStart+(i-1)*2+1,iStart+1,iStart+1,iStart,iStart+(i-1)*2);\r\n\t\treturn result;\r\n\t}\r\n\r\n\treturn LoopLine;\r\n})(BasePoly)\r\n\r\n\r\n//class laya.webgl.shapes.Polygon extends laya.webgl.shapes.BasePoly\r\nvar Polygon=(function(_super){\r\n\tfunction Polygon(x,y,points,color,borderWidth,borderColor){\r\n\t\tthis._points=null;\r\n\t\tthis._start=-1;\r\n\t\tthis._repaint=false;\r\n\t\tthis.earcutTriangles=null;\r\n\t\tthis._mat=Matrix.create();\r\n\t\tthis._points=points.slice(0,points.length);\r\n\t\tPolygon.__super.call(this,x,y,0,0,this._points.length / 2,color,borderWidth,borderColor);\r\n\t}\r\n\r\n\t__class(Polygon,'laya.webgl.shapes.Polygon',_super);\r\n\tvar __proto=Polygon.prototype;\r\n\t__proto.rebuild=function(point){\r\n\t\tif (!this._repaint){\r\n\t\t\tthis._points.length=0;\r\n\t\t\tthis._points=this._points.concat(point);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.setMatrix=function(mat){\r\n\t\tmat.copyTo(this._mat);\r\n\t}\r\n\r\n\t__proto.needUpdate=function(mat){\r\n\t\tthis._repaint=(this._mat.a==mat.a && this._mat.b==mat.b && this._mat.c==mat.c && this._mat.d==mat.d && this._mat.tx==mat.tx && this._mat.ty==mat.ty);\r\n\t\treturn !this._repaint;\r\n\t}\r\n\r\n\t__proto.getData=function(ib,vb,start){\r\n\t\tvar indices,i=0;\r\n\t\tvar tArray=this._points;\r\n\t\tvar tLen=0;\r\n\t\tif (this.mUint16Array && this.mFloat32Array&&this._repaint){\r\n\t\t\tif (this._start !=start){\r\n\t\t\t\tthis._start=start;\r\n\t\t\t\tindices=[];\r\n\t\t\t\ttLen=this.earcutTriangles.length;\r\n\t\t\t\tfor (i=0;i < tLen;i++){\r\n\t\t\t\t\tindices.push(this.earcutTriangles[i]+start);\r\n\t\t\t\t}\r\n\t\t\t\tthis.mUint16Array=new Uint16Array(indices);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._start=start;\r\n\t\t\tindices=[];\r\n\t\t\tvar verts=[];\r\n\t\t\tvar vertsEarcut=[];\r\n\t\t\tvar color=this.color;\r\n\t\t\tvar r=((color >> 16)& 0x0000ff)/ 255,g=((color >> 8)& 0xff)/ 255,b=(color & 0x0000ff)/ 255;\r\n\t\t\ttLen=Math.floor(tArray.length / 2);\r\n\t\t\tfor (i=0;i < tLen;i++){\r\n\t\t\t\tverts.push(this.x+tArray[i *2],this.y+tArray[i *2+1],r,g,b);\r\n\t\t\t\tvertsEarcut.push(this.x+tArray[i *2],this.y+tArray[i *2+1]);\r\n\t\t\t}\r\n\t\t\tthis.earcutTriangles=Earcut.earcut(vertsEarcut,null,2);\r\n\t\t\ttLen=this.earcutTriangles.length;\r\n\t\t\tfor (i=0;i < tLen;i++){\r\n\t\t\t\tindices.push(this.earcutTriangles[i]+start);\r\n\t\t\t}\r\n\t\t\tthis.mUint16Array=new Uint16Array(indices);\r\n\t\t\tthis.mFloat32Array=new Float32Array(verts);\r\n\t\t}\r\n\t\tib.append(this.mUint16Array);\r\n\t\tvb.append(this.mFloat32Array);\r\n\t}\r\n\r\n\treturn Polygon;\r\n})(BasePoly)\r\n\r\n\r\n//class laya.webgl.submit.SubmitCanvas extends laya.webgl.submit.Submit\r\nvar SubmitCanvas=(function(_super){\r\n\tfunction SubmitCanvas(){\r\n\t\t//this._ctx_src=null;\r\n\t\tthis._matrix=new Matrix();\r\n\t\tthis._matrix4=CONST3D2D.defaultMatrix4.concat();\r\n\t\tSubmitCanvas.__super.call(this,/*laya.webgl.submit.Submit.TYPE_2D*/10000);\r\n\t\tthis.shaderValue=new Value2D(0,0);\r\n\t}\r\n\r\n\t__class(SubmitCanvas,'laya.webgl.submit.SubmitCanvas',_super);\r\n\tvar __proto=SubmitCanvas.prototype;\r\n\t__proto.renderSubmit=function(){\r\n\t\tif (this._ctx_src._targets){\r\n\t\t\tthis._ctx_src._targets.flush(this._ctx_src);\r\n\t\t\treturn 1;\r\n\t\t};\r\n\t\tvar preAlpha=RenderState2D.worldAlpha;\r\n\t\tvar preMatrix4=RenderState2D.worldMatrix4;\r\n\t\tvar preMatrix=RenderState2D.worldMatrix;\r\n\t\tvar preFilters=RenderState2D.worldFilters;\r\n\t\tvar preWorldShaderDefines=RenderState2D.worldShaderDefines;\r\n\t\tvar v=this.shaderValue;\r\n\t\tvar m=this._matrix;\r\n\t\tvar m4=this._matrix4;\r\n\t\tvar mout=Matrix.TEMP;\r\n\t\tMatrix.mul(m,preMatrix,mout);\r\n\t\tm4[0]=mout.a;\r\n\t\tm4[1]=mout.b;\r\n\t\tm4[4]=mout.c;\r\n\t\tm4[5]=mout.d;\r\n\t\tm4[12]=mout.tx;\r\n\t\tm4[13]=mout.ty;\r\n\t\tRenderState2D.worldMatrix=mout.clone();\r\n\t\tRenderState2D.worldMatrix4=m4;\r\n\t\tRenderState2D.worldAlpha=RenderState2D.worldAlpha *v.alpha;\r\n\t\tif (v.filters && v.filters.length){\r\n\t\t\tRenderState2D.worldFilters=v.filters;\r\n\t\t\tRenderState2D.worldShaderDefines=v.defines;\r\n\t\t}\r\n\t\tthis._ctx_src.flush();\r\n\t\tRenderState2D.worldAlpha=preAlpha;\r\n\t\tRenderState2D.worldMatrix4=preMatrix4;\r\n\t\tRenderState2D.worldMatrix.destroy();\r\n\t\tRenderState2D.worldMatrix=preMatrix;\r\n\t\tRenderState2D.worldFilters=preFilters;\r\n\t\tRenderState2D.worldShaderDefines=preWorldShaderDefines;\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto.releaseRender=function(){\r\n\t\tvar cache=SubmitCanvas._cache;\r\n\t\tthis._ctx_src=null;\r\n\t\tcache[cache._length++]=this;\r\n\t}\r\n\r\n\t__proto.getRenderType=function(){\r\n\t\treturn /*laya.webgl.submit.Submit.TYPE_CANVAS*/10003;\r\n\t}\r\n\r\n\tSubmitCanvas.create=function(ctx_src,alpha,filters){\r\n\t\tvar o=(!SubmitCanvas._cache._length)? (new SubmitCanvas()):SubmitCanvas._cache[--SubmitCanvas._cache._length];\r\n\t\to._ctx_src=ctx_src;\r\n\t\tvar v=o.shaderValue;\r\n\t\tv.alpha=alpha;\r\n\t\tv.defines.setValue(0);\r\n\t\tfilters && filters.length && v.setFilters(filters);\r\n\t\treturn o;\r\n\t}\r\n\r\n\tSubmitCanvas._cache=(SubmitCanvas._cache=[],SubmitCanvas._cache._length=0,SubmitCanvas._cache);\r\n\treturn SubmitCanvas;\r\n})(Submit)\r\n\r\n\r\n//class laya.webgl.submit.SubmitTexture extends laya.webgl.submit.Submit\r\nvar SubmitTexture=(function(_super){\r\n\tfunction SubmitTexture(renderType){\r\n\t\tthis._preIsSameTextureShader=false;\r\n\t\tthis._isSameTexture=true;\r\n\t\tthis._texs=new Array;\r\n\t\tthis._texsID=new Array;\r\n\t\tthis._vbPos=new Array;\r\n\t\t(renderType===void 0)&& (renderType=10000);\r\n\t\tSubmitTexture.__super.call(this,renderType);\r\n\t}\r\n\r\n\t__class(SubmitTexture,'laya.webgl.submit.SubmitTexture',_super);\r\n\tvar __proto=SubmitTexture.prototype;\r\n\t__proto.releaseRender=function(){\r\n\t\tvar cache=SubmitTexture._cache;\r\n\t\tcache[cache._length++]=this;\r\n\t\tthis.shaderValue.release();\r\n\t\tthis._preIsSameTextureShader=false;\r\n\t\tthis._vb=null;\r\n\t\tthis._texs.length=0;\r\n\t\tthis._vbPos.length=0;\r\n\t\tthis._isSameTexture=true;\r\n\t}\r\n\r\n\t__proto.addTexture=function(tex,vbpos){\r\n\t\tthis._texsID[this._texs.length]=tex._uvID;\r\n\t\tthis._texs.push(tex);\r\n\t\tthis._vbPos.push(vbpos);\r\n\t}\r\n\r\n\t//检查材质是否修改，修改UV，设置是否是同一材质\r\n\t__proto.checkTexture=function(){\r\n\t\tif (this._texs.length < 1){\r\n\t\t\tthis._isSameTexture=true;\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar _tex=this.shaderValue.textureHost;\r\n\t\tvar webGLImg=_tex.bitmap;\r\n\t\tif (webGLImg===null)return;\r\n\t\tvar vbdata=this._vb.getFloat32Array();\r\n\t\tfor (var i=0,s=this._texs.length;i < s;i++){\r\n\t\t\tvar tex=this._texs[i];\r\n\t\t\ttex.active();\r\n\t\t\tvar newUV=tex.uv;\r\n\t\t\tif (this._texsID[i]!==tex._uvID){\r\n\t\t\t\tthis._texsID[i]=tex._uvID;\r\n\t\t\t\tvar vbPos=this._vbPos[i];\r\n\t\t\t\tvbdata[vbPos+2]=newUV[0];\r\n\t\t\t\tvbdata[vbPos+3]=newUV[1];\r\n\t\t\t\tvbdata[vbPos+6]=newUV[2];\r\n\t\t\t\tvbdata[vbPos+7]=newUV[3];\r\n\t\t\t\tvbdata[vbPos+10]=newUV[4];\r\n\t\t\t\tvbdata[vbPos+11]=newUV[5];\r\n\t\t\t\tvbdata[vbPos+14]=newUV[6];\r\n\t\t\t\tvbdata[vbPos+15]=newUV[7];\r\n\t\t\t\tthis._vb.setNeedUpload();\r\n\t\t\t}\r\n\t\t\tif (tex.bitmap!==webGLImg){\r\n\t\t\t\tthis._isSameTexture=false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.renderSubmit=function(){\r\n\t\tif (this._numEle===0){\r\n\t\t\tSubmitTexture._shaderSet=false;\r\n\t\t\treturn 1;\r\n\t\t};\r\n\t\tvar _tex=this.shaderValue.textureHost;\r\n\t\tif (_tex){\r\n\t\t\tvar source=_tex.source;\r\n\t\t\tif (!_tex.bitmap || !source){\r\n\t\t\t\tSubmitTexture._shaderSet=false;\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t\tthis.shaderValue.texture=source;\r\n\t\t}\r\n\t\tthis._vb.bind_upload(this._ib);\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tif (BlendMode.activeBlendFunction!==this._blendFn){\r\n\t\t\tgl.enable(/*laya.webgl.WebGLContext.BLEND*/0x0BE2);\r\n\t\t\tthis._blendFn(gl);\r\n\t\t\tBlendMode.activeBlendFunction=this._blendFn;\r\n\t\t}\r\n\t\tStat.drawCall++;\r\n\t\tStat.trianglesFaces+=this._numEle / 3;\r\n\t\tif (this._preIsSameTextureShader && BaseShader.activeShader && SubmitTexture._shaderSet)\r\n\t\t\t(BaseShader.activeShader).uploadTexture2D(this.shaderValue.texture);\r\n\t\telse this.shaderValue.upload();\r\n\t\tSubmitTexture._shaderSet=true;\r\n\t\tif (this._texs.length > 1 && !this._isSameTexture){\r\n\t\t\tvar webGLImg=_tex.bitmap;\r\n\t\t\tvar index=0;\r\n\t\t\tvar shader=BaseShader.activeShader;\r\n\t\t\tfor (var i=0,s=this._texs.length;i < s;i++){\r\n\t\t\t\tvar tex2=this._texs[i];\r\n\t\t\t\tif (tex2.bitmap!==webGLImg || (i+1)===s){\r\n\t\t\t\t\tshader.uploadTexture2D(tex2.source);\r\n\t\t\t\t\tgl.drawElements(/*laya.webgl.WebGLContext.TRIANGLES*/0x0004,(i-index+1)*6,/*laya.webgl.WebGLContext.UNSIGNED_SHORT*/0x1403,this._startIdx+index *6 *CONST3D2D.BYTES_PIDX);\r\n\t\t\t\t\twebGLImg=tex2.bitmap;\r\n\t\t\t\t\tindex=i;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tgl.drawElements(/*laya.webgl.WebGLContext.TRIANGLES*/0x0004,this._numEle,/*laya.webgl.WebGLContext.UNSIGNED_SHORT*/0x1403,this._startIdx);\r\n\t\t}\r\n\t\treturn 1;\r\n\t}\r\n\r\n\tSubmitTexture.create=function(context,ib,vb,pos,sv){\r\n\t\tvar o=SubmitTexture._cache._length ? SubmitTexture._cache[--SubmitTexture._cache._length] :new SubmitTexture();\r\n\t\tif (vb==null){\r\n\t\t\tvb=o._selfVb || (o._selfVb=VertexBuffer2D.create(-1));\r\n\t\t\tvb.clear();\r\n\t\t\tpos=0;\r\n\t\t}\r\n\t\to._ib=ib;\r\n\t\to._vb=vb;\r\n\t\to._startIdx=pos *CONST3D2D.BYTES_PIDX;\r\n\t\to._numEle=0;\r\n\t\tvar blendType=context._nBlendType;\r\n\t\to._blendFn=context._targets ? BlendMode.targetFns[blendType] :BlendMode.fns[blendType];\r\n\t\to.shaderValue=sv;\r\n\t\to.shaderValue.setValue(context._shader2D);\r\n\t\tvar filters=context._shader2D.filters;\r\n\t\tfilters && o.shaderValue.setFilters(filters);\r\n\t\treturn o;\r\n\t}\r\n\r\n\tSubmitTexture._cache=(SubmitTexture._cache=[],SubmitTexture._cache._length=0,SubmitTexture._cache);\r\n\tSubmitTexture._shaderSet=true;\r\n\treturn SubmitTexture;\r\n})(Submit)\r\n\r\n\r\n/**\r\n*与MeshQuadTexture基本相同。不过index不是固定的\r\n*/\r\n//class laya.webgl.utils.MeshTexture extends laya.webgl.utils.Mesh2D\r\nvar MeshTexture=(function(_super){\r\n\tfunction MeshTexture(){\r\n\t\tMeshTexture.__super.call(this,laya.webgl.utils.MeshTexture.const_stride,0,0);\r\n\t\tthis.canReuse=true;\r\n\t\tthis.setAttributes(laya.webgl.utils.MeshTexture._fixattriInfo);\r\n\t}\r\n\r\n\t__class(MeshTexture,'laya.webgl.utils.MeshTexture',_super);\r\n\tvar __proto=MeshTexture.prototype;\r\n\t__proto.addData=function(vertices,uvs,idx,matrix,rgba,ctx){\r\n\t\tvar sz=vertices.length / 2;\r\n\t\tvar startpos=this._vb.needSize(sz *MeshTexture.const_stride);\r\n\t\tvar f32pos=startpos >> 2;\r\n\t\tvar vbdata=this._vb.getFloat32Array();\r\n\t\tvar ci=0;\r\n\t\tfor (var i=0;i < sz;i++){\r\n\t\t\tvar x=vertices[ci],y=vertices[ci+1];\r\n\t\t\tvar x1=x *matrix.a+y *matrix.c+matrix.tx;\r\n\t\t\tvar y1=x *matrix.b+y *matrix.d+matrix.ty;\r\n\t\t\tvbdata[f32pos++]=x1;vbdata[f32pos++]=y1;\r\n\t\t\tvbdata[f32pos++]=uvs[ci];vbdata[f32pos++]=uvs[ci+1];\r\n\t\t\tci+=2;\r\n\t\t}\r\n\t\tthis._vb.setNeedUpload();\r\n\t\tvar vertN=this.vertNum;\r\n\t\tif (vertN > 0){\r\n\t\t\tsz=idx.length;\r\n\t\t\tif (sz > MeshTexture.tmpIdx.length)MeshTexture.tmpIdx=new Uint16Array(sz);\r\n\t\t\tfor (var ii=0;ii < sz;ii++){\r\n\t\t\t\tMeshTexture.tmpIdx[ii]=idx[ii]+vertN;\r\n\t\t\t}\r\n\t\t\tthis._ib.appendU16Array(MeshTexture.tmpIdx,idx.length);\r\n\t\t\t}else {\r\n\t\t\tthis._ib.append(idx);\r\n\t\t}\r\n\t\tthis._ib.setNeedUpload();\r\n\t\tthis.vertNum+=sz;\r\n\t\tthis.indexNum+=idx.length;\r\n\t}\r\n\r\n\t/**\r\n\t*把本对象放到回收池中，以便getMesh能用。\r\n\t*/\r\n\t__proto.releaseMesh=function(){\r\n\t\tthis._vb._byteLength=0;\r\n\t\tthis._ib._byteLength=0;\r\n\t\tthis.vertNum=0;\r\n\t\tthis.indexNum=0;\r\n\t\tlaya.webgl.utils.MeshTexture._POOL.push(this);\r\n\t}\r\n\r\n\t__proto.destroy=function(){\r\n\t\tthis._ib.destroy();\r\n\t\tthis._vb.destroy();\r\n\t}\r\n\r\n\tMeshTexture.getAMesh=function(){\r\n\t\tif (laya.webgl.utils.MeshTexture._POOL.length){\r\n\t\t\treturn laya.webgl.utils.MeshTexture._POOL.pop();\r\n\t\t}\r\n\t\treturn new MeshTexture();\r\n\t}\r\n\r\n\tMeshTexture.const_stride=16;\r\n\tMeshTexture._POOL=[];\r\n\t__static(MeshTexture,\r\n\t['_fixattriInfo',function(){return this._fixattriInfo=[\r\n\t\t/*laya.webgl.WebGLContext.FLOAT*/0x1406,2,0,\r\n\t\t/*laya.webgl.WebGLContext.FLOAT*/0x1406,2,8];},'tmpIdx',function(){return this.tmpIdx=new Uint16Array(4);}\r\n\t]);\r\n\treturn MeshTexture;\r\n})(Mesh2D)\r\n\r\n\r\n/**\r\n*...\r\n*@author ...\r\n*/\r\n//class laya.webgl.shader.BaseShader extends laya.resource.Resource\r\nvar BaseShader=(function(_super){\r\n\tfunction BaseShader(){\r\n\t\tBaseShader.__super.call(this);\r\n\t\tthis.lock=true;\r\n\t}\r\n\r\n\t__class(BaseShader,'laya.webgl.shader.BaseShader',_super);\r\n\tBaseShader.activeShader=null;\r\n\tBaseShader.bindShader=null;\r\n\treturn BaseShader;\r\n})(Resource)\r\n\r\n\r\n//class laya.webgl.resource.RenderTarget2D extends laya.resource.Texture\r\nvar RenderTarget2D=(function(_super){\r\n\tfunction RenderTarget2D(width,height,surfaceFormat,surfaceType,depthStencilFormat,mipMap,repeat,minFifter,magFifter){\r\n\t\tthis._type=0;\r\n\t\tthis._svWidth=NaN;\r\n\t\tthis._svHeight=NaN;\r\n\t\tthis._preRenderTarget=null;\r\n\t\t//TODO:.........................................................\r\n\t\tthis._alreadyResolved=false;\r\n\t\tthis._looked=false;\r\n\t\tthis._surfaceFormat=0;\r\n\t\tthis._surfaceType=0;\r\n\t\tthis._depthStencilFormat=0;\r\n\t\tthis._mipMap=false;\r\n\t\tthis._repeat=false;\r\n\t\tthis._minFifter=0;\r\n\t\tthis._magFifter=0;\r\n\t\tthis._destroy=false;\r\n\t\t(surfaceFormat===void 0)&& (surfaceFormat=/*laya.webgl.WebGLContext.RGBA*/0x1908);\r\n\t\t(surfaceType===void 0)&& (surfaceType=/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401);\r\n\t\t(depthStencilFormat===void 0)&& (depthStencilFormat=/*laya.webgl.WebGLContext.DEPTH_STENCIL*/0x84F9);\r\n\t\t(mipMap===void 0)&& (mipMap=false);\r\n\t\t(repeat===void 0)&& (repeat=false);\r\n\t\t(minFifter===void 0)&& (minFifter=-1);\r\n\t\t(magFifter===void 0)&& (magFifter=-1);\r\n\t\tthis._type=1;\r\n\t\tthis._w=width;\r\n\t\tthis._h=height;\r\n\t\tthis._surfaceFormat=surfaceFormat;\r\n\t\tthis._surfaceType=surfaceType;\r\n\t\tthis._depthStencilFormat=depthStencilFormat;\r\n\t\tif (Render.isConchWebGL && this._depthStencilFormat===/*laya.webgl.WebGLContext.DEPTH_STENCIL*/0x84F9){\r\n\t\t\tthis._depthStencilFormat=/*laya.webgl.WebGLContext.DEPTH_COMPONENT16*/0x81A5;\r\n\t\t}\r\n\t\tthis._mipMap=mipMap;\r\n\t\tthis._repeat=repeat;\r\n\t\tthis._minFifter=minFifter;\r\n\t\tthis._magFifter=magFifter;\r\n\t\tthis._createWebGLRenderTarget();\r\n\t\tthis.bitmap.lock=true;\r\n\t\tRenderTarget2D.__super.call(this,this.bitmap,Texture.INV_UV);\r\n\t}\r\n\r\n\t__class(RenderTarget2D,'laya.webgl.resource.RenderTarget2D',_super);\r\n\tvar __proto=RenderTarget2D.prototype;\r\n\tLaya.imps(__proto,{\"laya.resource.IDispose\":true})\r\n\t//TODO:临时......................................................\r\n\t__proto.getType=function(){\r\n\t\treturn this._type;\r\n\t}\r\n\r\n\t//*/\r\n\t__proto.getTexture=function(){\r\n\t\treturn this;\r\n\t}\r\n\r\n\t__proto.size=function(w,h){\r\n\t\tif (this._w==w && this._h==h)return;\r\n\t\tthis._w=w;\r\n\t\tthis._h=h;\r\n\t\tthis.release();\r\n\t\tif (this._w !=0 && this._h !=0)this._createWebGLRenderTarget();\r\n\t}\r\n\r\n\t__proto.release=function(){\r\n\t\tthis.destroy();\r\n\t}\r\n\r\n\t__proto.recycle=function(){\r\n\t\tRenderTarget2D.POOL.push(this);\r\n\t}\r\n\r\n\t__proto.start=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tthis._preRenderTarget=RenderState2D.curRenderTarget;\r\n\t\tRenderState2D.curRenderTarget=this;\r\n\t\tgl.bindFramebuffer(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40,this.bitmap.frameBuffer);\r\n\t\tthis._alreadyResolved=false;\r\n\t\tif (this._type==1){\r\n\t\t\tgl.viewport(0,0,this._w,this._h);\r\n\t\t\tthis._svWidth=RenderState2D.width;\r\n\t\t\tthis._svHeight=RenderState2D.height;\r\n\t\t\tRenderState2D.width=this._w;\r\n\t\t\tRenderState2D.height=this._h;\r\n\t\t\tBaseShader.activeShader=null;\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\t__proto.clear=function(r,g,b,a){\r\n\t\t(r===void 0)&& (r=0.0);\r\n\t\t(g===void 0)&& (g=0.0);\r\n\t\t(b===void 0)&& (b=0.0);\r\n\t\t(a===void 0)&& (a=1.0);\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tgl.clearColor(r,g,b,a);\r\n\t\tvar clearFlag=/*laya.webgl.WebGLContext.COLOR_BUFFER_BIT*/0x00004000;\r\n\t\tswitch (this._depthStencilFormat){\r\n\t\t\tcase /*laya.webgl.WebGLContext.DEPTH_COMPONENT16*/0x81A5:\r\n\t\t\t\tclearFlag |=/*laya.webgl.WebGLContext.DEPTH_BUFFER_BIT*/0x00000100;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase /*laya.webgl.WebGLContext.STENCIL_INDEX8*/0x8D48:\r\n\t\t\t\tclearFlag |=/*laya.webgl.WebGLContext.STENCIL_BUFFER_BIT*/0x00000400;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase /*laya.webgl.WebGLContext.DEPTH_STENCIL*/0x84F9:\r\n\t\t\t\tclearFlag |=/*laya.webgl.WebGLContext.DEPTH_BUFFER_BIT*/0x00000100;\r\n\t\t\t\tclearFlag |=/*laya.webgl.WebGLContext.STENCIL_BUFFER_BIT*/0x00000400\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\tgl.clear(clearFlag);\r\n\t}\r\n\r\n\t__proto.end=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tgl.bindFramebuffer(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40,this._preRenderTarget ? this._preRenderTarget.bitmap.frameBuffer :null);\r\n\t\tthis._alreadyResolved=true;\r\n\t\tRenderState2D.curRenderTarget=this._preRenderTarget;\r\n\t\tif (this._type==1){\r\n\t\t\tgl.viewport(0,0,this._svWidth,this._svHeight);\r\n\t\t\tRenderState2D.width=this._svWidth;\r\n\t\t\tRenderState2D.height=this._svHeight;\r\n\t\t\tBaseShader.activeShader=null;\r\n\t\t}else gl.viewport(0,0,Laya.stage.width,Laya.stage.height);\r\n\t}\r\n\r\n\t__proto.getData=function(x,y,width,height){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tgl.bindFramebuffer(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40,(this.bitmap).frameBuffer);\r\n\t\tvar canRead=(gl.checkFramebufferStatus(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40)===/*laya.webgl.WebGLContext.FRAMEBUFFER_COMPLETE*/0x8CD5);\r\n\t\tif (!canRead){\r\n\t\t\tgl.bindFramebuffer(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40,null);\r\n\t\t\treturn null;\r\n\t\t};\r\n\t\tvar pixels=new Uint8Array(this._w *this._h *4);\r\n\t\tgl.readPixels(x,y,width,height,this._surfaceFormat,this._surfaceType,pixels);\r\n\t\tgl.bindFramebuffer(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40,null);\r\n\t\treturn pixels;\r\n\t}\r\n\r\n\t/**彻底清理资源,注意会强制解锁清理*/\r\n\t__proto.destroy=function(foreDiposeTexture){\r\n\t\t(foreDiposeTexture===void 0)&& (foreDiposeTexture=false);\r\n\t\tif (!this._destroy){\r\n\t\t\tthis._loaded=false;\r\n\t\t\tthis.bitmap.offAll();\r\n\t\t\tthis.bitmap.disposeResource();\r\n\t\t\tthis.bitmap.dispose();\r\n\t\t\tthis.offAll();\r\n\t\t\tthis.bitmap=null;\r\n\t\t\tthis._alreadyResolved=false;\r\n\t\t\tthis._destroy=true;\r\n\t\t\t_super.prototype.destroy.call(this);\r\n\t\t}\r\n\t}\r\n\r\n\t//待测试\r\n\t__proto.dispose=function(){}\r\n\t__proto._createWebGLRenderTarget=function(){\r\n\t\tthis.bitmap=new WebGLRenderTarget(this.width,this.height,this._surfaceFormat,this._surfaceType,this._depthStencilFormat,this._mipMap,this._repeat,this._minFifter,this._magFifter);\r\n\t\tthis.bitmap.activeResource();\r\n\t\tthis._alreadyResolved=true;\r\n\t\tthis._destroy=false;\r\n\t\tthis._loaded=true;\r\n\t\tthis.bitmap.on(/*laya.events.Event.RECOVERED*/\"recovered\",this,function(e){\r\n\t\t\tthis.event(/*laya.events.Event.RECOVERED*/\"recovered\");\r\n\t\t})\r\n\t}\r\n\r\n\t__getset(0,__proto,'surfaceFormat',function(){\r\n\t\treturn this._surfaceFormat;\r\n\t});\r\n\r\n\t__getset(0,__proto,'magFifter',function(){\r\n\t\treturn this._magFifter;\r\n\t});\r\n\r\n\t__getset(0,__proto,'surfaceType',function(){\r\n\t\treturn this._surfaceType;\r\n\t});\r\n\r\n\t__getset(0,__proto,'mipMap',function(){\r\n\t\treturn this._mipMap;\r\n\t});\r\n\r\n\t__getset(0,__proto,'depthStencilFormat',function(){\r\n\t\treturn this._depthStencilFormat;\r\n\t});\r\n\r\n\t//}\r\n\t__getset(0,__proto,'minFifter',function(){\r\n\t\treturn this._minFifter;\r\n\t});\r\n\r\n\t/**返回RenderTarget的Texture*/\r\n\t__getset(0,__proto,'source',function(){\r\n\t\tif (this._alreadyResolved)\r\n\t\t\treturn Laya.superGet(Texture,this,'source');\r\n\t\treturn null;\r\n\t});\r\n\r\n\tRenderTarget2D.create=function(w,h,surfaceFormat,surfaceType,depthStencilFormat,mipMap,repeat,minFifter,magFifter){\r\n\t\t(surfaceFormat===void 0)&& (surfaceFormat=/*laya.webgl.WebGLContext.RGBA*/0x1908);\r\n\t\t(surfaceType===void 0)&& (surfaceType=/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401);\r\n\t\t(depthStencilFormat===void 0)&& (depthStencilFormat=/*laya.webgl.WebGLContext.DEPTH_STENCIL*/0x84F9);\r\n\t\t(mipMap===void 0)&& (mipMap=false);\r\n\t\t(repeat===void 0)&& (repeat=false);\r\n\t\t(minFifter===void 0)&& (minFifter=-1);\r\n\t\t(magFifter===void 0)&& (magFifter=-1);\r\n\t\tvar t=RenderTarget2D.POOL.pop();\r\n\t\tt || (t=new RenderTarget2D(w,h));\r\n\t\tif (!t.bitmap || t._w !=w || t._h !=h || t._surfaceFormat !=surfaceFormat || t._surfaceType !=surfaceType || t._depthStencilFormat !=depthStencilFormat || t._mipMap !=mipMap || t._repeat !=repeat || t._minFifter !=minFifter || t._magFifter !=magFifter){\r\n\t\t\tt._w=w;\r\n\t\t\tt._h=h;\r\n\t\t\tt._surfaceFormat=surfaceFormat;\r\n\t\t\tt._surfaceType=surfaceType;\r\n\t\t\tt._depthStencilFormat=depthStencilFormat;\r\n\t\t\tif (Render.isConchWebGL && t._depthStencilFormat===/*laya.webgl.WebGLContext.DEPTH_STENCIL*/0x84F9){\r\n\t\t\t\tt._depthStencilFormat=/*laya.webgl.WebGLContext.DEPTH_COMPONENT16*/0x81A5;\r\n\t\t\t}\r\n\t\t\tt._mipMap=mipMap;\r\n\t\t\tt._repeat=repeat;\r\n\t\t\tt._minFifter=minFifter;\r\n\t\t\tt._magFifter=magFifter;\r\n\t\t\tt.release();\r\n\t\t\tt._createWebGLRenderTarget();\r\n\t\t}\r\n\t\treturn t;\r\n\t}\r\n\r\n\tRenderTarget2D.TYPE2D=1;\r\n\tRenderTarget2D.TYPE3D=2;\r\n\tRenderTarget2D.POOL=[];\r\n\treturn RenderTarget2D;\r\n})(Texture)\r\n\r\n\r\n//class laya.webgl.utils.Buffer extends laya.resource.Resource\r\nvar Buffer=(function(_super){\r\n\tfunction Buffer(){\r\n\t\tthis._glBuffer=null;\r\n\t\tthis._buffer=null;\r\n\t\t//可能为Float32Array、Uint16Array、Uint8Array、ArrayBuffer等。\r\n\t\tthis._bufferType=0;\r\n\t\tthis._bufferUsage=0;\r\n\t\tthis._byteLength=0;\r\n\t\tBuffer.__super.call(this);\r\n\t\tBuffer._gl=WebGL.mainContext;\r\n\t}\r\n\r\n\t__class(Buffer,'laya.webgl.utils.Buffer',_super);\r\n\tvar __proto=Buffer.prototype;\r\n\t__proto._bind=function(){\r\n\t\tthis.activeResource();\r\n\t\tif (Buffer._bindActive[this._bufferType]!==this._glBuffer){\r\n\t\t\t(this._bufferType===/*laya.webgl.WebGLContext.ARRAY_BUFFER*/0x8892)&& (Buffer._bindVertexBuffer=this._glBuffer);\r\n\t\t\tBuffer._gl.bindBuffer(this._bufferType,Buffer._bindActive[this._bufferType]=this._glBuffer);\r\n\t\t\tBaseShader.activeShader=null;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.recreateResource=function(){\r\n\t\tthis._glBuffer || (this._glBuffer=Buffer._gl.createBuffer());\r\n\t\tthis.completeCreate();\r\n\t}\r\n\r\n\t__proto.disposeResource=function(){\r\n\t\tif (this._glBuffer){\r\n\t\t\tWebGL.mainContext.deleteBuffer(this._glBuffer);\r\n\t\t\tthis._glBuffer=null;\r\n\t\t}\r\n\t\tthis.memorySize=0;\r\n\t}\r\n\r\n\t__getset(0,__proto,'bufferUsage',function(){\r\n\t\treturn this._bufferUsage;\r\n\t});\r\n\r\n\tBuffer._gl=null;\r\n\tBuffer._bindActive={};\r\n\tBuffer._bindVertexBuffer=null;\r\n\tBuffer._enableAtributes=[];\r\n\treturn Buffer;\r\n})(Resource)\r\n\r\n\r\n//class laya.webgl.shader.d2.skinAnishader.SkinSV extends laya.webgl.shader.d2.value.Value2D\r\nvar SkinSV=(function(_super){\r\n\tfunction SkinSV(type){\r\n\t\tthis.texcoord=null;\r\n\t\tthis.offsetX=300;\r\n\t\tthis.offsetY=0;\r\n\t\tSkinSV.__super.call(this,/*laya.webgl.shader.d2.ShaderDefines2D.SKINMESH*/0x200,0);\r\n\t\tvar _vlen=8 *CONST3D2D.BYTES_PE;\r\n\t\tthis.position=[2,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,_vlen,0];\r\n\t\tthis.texcoord=[2,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,_vlen,2 *CONST3D2D.BYTES_PE];\r\n\t\tthis.color=[4,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,_vlen,4 *CONST3D2D.BYTES_PE];\r\n\t}\r\n\r\n\t__class(SkinSV,'laya.webgl.shader.d2.skinAnishader.SkinSV',_super);\r\n\treturn SkinSV;\r\n})(Value2D)\r\n\r\n\r\n//class laya.webgl.shader.d2.value.Color2dSV extends laya.webgl.shader.d2.value.Value2D\r\nvar Color2dSV=(function(_super){\r\n\tfunction Color2dSV(args){\r\n\t\tColor2dSV.__super.call(this,/*laya.webgl.shader.d2.ShaderDefines2D.COLOR2D*/0x02,0);\r\n\t\tthis.color=[];\r\n\t}\r\n\r\n\t__class(Color2dSV,'laya.webgl.shader.d2.value.Color2dSV',_super);\r\n\tvar __proto=Color2dSV.prototype;\r\n\t__proto.setValue=function(value){\r\n\t\tvalue.fillStyle&&(this.color=value.fillStyle._color._color);\r\n\t\tvalue.strokeStyle&&(this.color=value.strokeStyle._color._color);\r\n\t}\r\n\r\n\treturn Color2dSV;\r\n})(Value2D)\r\n\r\n\r\n//class laya.webgl.shader.d2.value.FillTextureSV extends laya.webgl.shader.d2.value.Value2D\r\nvar FillTextureSV=(function(_super){\r\n\tfunction FillTextureSV(type){\r\n\t\tthis.u_colorMatrix=null;\r\n\t\tthis.strength=0;\r\n\t\tthis.colorMat=null;\r\n\t\tthis.colorAlpha=null;\r\n\t\tthis.u_TexRange=[0,1,0,1];\r\n\t\tthis.u_offset=[0,0];\r\n\t\tthis.texcoord=Value2D._TEXCOORD;\r\n\t\tFillTextureSV.__super.call(this,/*laya.webgl.shader.d2.ShaderDefines2D.FILLTEXTURE*/0x100,0);\r\n\t}\r\n\r\n\t__class(FillTextureSV,'laya.webgl.shader.d2.value.FillTextureSV',_super);\r\n\tvar __proto=FillTextureSV.prototype;\r\n\t//this.color=[4,WebGLContext.FLOAT,false,_vlen,4 *CONST3D2D.BYTES_PE];\r\n\t__proto.setValue=function(vo){\r\n\t\tthis.ALPHA=vo.ALPHA;\r\n\t\tvo.filters && this.setFilters(vo.filters);\r\n\t}\r\n\r\n\t__proto.clear=function(){\r\n\t\tthis.texture=null;\r\n\t\tthis.shader=null;\r\n\t\tthis.defines.setValue(0);\r\n\t}\r\n\r\n\treturn FillTextureSV;\r\n})(Value2D)\r\n\r\n\r\n//class laya.webgl.shader.d2.value.TextureSV extends laya.webgl.shader.d2.value.Value2D\r\nvar TextureSV=(function(_super){\r\n\tfunction TextureSV(subID){\r\n\t\tthis.u_colorMatrix=null;\r\n\t\tthis.strength=0;\r\n\t\tthis.blurInfo=null;\r\n\t\tthis.colorMat=null;\r\n\t\tthis.colorAlpha=null;\r\n\t\tthis.texcoord=Value2D._TEXCOORD;\r\n\t\t(subID===void 0)&& (subID=0);\r\n\t\tTextureSV.__super.call(this,/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,subID);\r\n\t}\r\n\r\n\t__class(TextureSV,'laya.webgl.shader.d2.value.TextureSV',_super);\r\n\tvar __proto=TextureSV.prototype;\r\n\t__proto.setValue=function(vo){\r\n\t\tthis.ALPHA=vo.ALPHA;\r\n\t\tvo.filters && this.setFilters(vo.filters);\r\n\t}\r\n\r\n\t__proto.clear=function(){\r\n\t\tthis.texture=null;\r\n\t\tthis.shader=null;\r\n\t\tthis.defines.setValue(0);\r\n\t}\r\n\r\n\treturn TextureSV;\r\n})(Value2D)\r\n\r\n\r\n//class laya.webgl.shader.d2.value.PrimitiveSV extends laya.webgl.shader.d2.value.Value2D\r\nvar PrimitiveSV=(function(_super){\r\n\tfunction PrimitiveSV(args){\r\n\t\tthis.a_color=null;\r\n\t\tthis.u_pos=[0,0];\r\n\t\tPrimitiveSV.__super.call(this,/*laya.webgl.shader.d2.ShaderDefines2D.PRIMITIVE*/0x04,0);\r\n\t\tthis.position=[2,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,5 *CONST3D2D.BYTES_PE,0];\r\n\t\tthis.a_color=[3,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,5 *CONST3D2D.BYTES_PE,2 *CONST3D2D.BYTES_PE];\r\n\t}\r\n\r\n\t__class(PrimitiveSV,'laya.webgl.shader.d2.value.PrimitiveSV',_super);\r\n\treturn PrimitiveSV;\r\n})(Value2D)\r\n\r\n\r\n//class laya.webgl.atlas.AtlasWebGLCanvas extends laya.resource.Bitmap\r\nvar AtlasWebGLCanvas=(function(_super){\r\n\tfunction AtlasWebGLCanvas(){\r\n\t\tthis._atlaser=null;\r\n\t\t/**兼容Stage3D使用*/\r\n\t\tthis._flashCacheImage=null;\r\n\t\tthis._flashCacheImageNeedFlush=false;\r\n\t\tAtlasWebGLCanvas.__super.call(this);\r\n\t}\r\n\r\n\t__class(AtlasWebGLCanvas,'laya.webgl.atlas.AtlasWebGLCanvas',_super);\r\n\tvar __proto=AtlasWebGLCanvas.prototype;\r\n\t/***重新创建资源*/\r\n\t__proto.recreateResource=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tvar glTex=this._source=gl.createTexture();\r\n\t\tvar preTarget=WebGLContext.curBindTexTarget;\r\n\t\tvar preTexture=WebGLContext.curBindTexValue;\r\n\t\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,glTex);\r\n\t\tgl.texImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,/*laya.webgl.WebGLContext.RGBA*/0x1908,this._w,this._h,0,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,null);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MIN_FILTER*/0x2801,/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MAG_FILTER*/0x2800,/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_S*/0x2802,/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_T*/0x2803,/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F);\r\n\t\t(preTarget && preTexture)&& (WebGLContext.bindTexture(gl,preTarget,preTexture));\r\n\t\tthis.memorySize=this._w *this._h *4;\r\n\t\tthis.completeCreate();\r\n\t}\r\n\r\n\t/***销毁资源*/\r\n\t__proto.disposeResource=function(){\r\n\t\tif (this._source){\r\n\t\t\tWebGL.mainContext.deleteTexture(this._source);\r\n\t\t\tthis._source=null;\r\n\t\t\tthis.memorySize=0;\r\n\t\t}\r\n\t}\r\n\r\n\t/**采样image到WebGLTexture的一部分*/\r\n\t__proto.texSubImage2D=function(xoffset,yoffset,bitmap){\r\n\t\tif (!Render.isFlash){\r\n\t\t\tvar gl=WebGL.mainContext;\r\n\t\t\tvar preTarget=WebGLContext.curBindTexTarget;\r\n\t\t\tvar preTexture=WebGLContext.curBindTexValue;\r\n\t\t\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,this._source);\r\n\t\t\tif (Render.isConchWebGL){\r\n\t\t\t\t(xoffset-1 >=0)&& (gl.texSubImage2DEx(true,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset-1,yoffset,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,bitmap));\r\n\t\t\t\t(xoffset+1 <=this._w)&& (gl.texSubImage2DEx(true,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset+1,yoffset,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,bitmap));\r\n\t\t\t\t(yoffset-1 >=0)&& (gl.texSubImage2DEx(true,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset,yoffset-1,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,bitmap));\r\n\t\t\t\t(yoffset+1 <=this._h)&& (gl.texSubImage2DEx(true,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset,yoffset+1,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,bitmap));\r\n\t\t\t\tgl.texSubImage2DEx(true,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset,yoffset,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,bitmap);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,true);\r\n\t\t\t\t(xoffset-1 >=0)&& (gl.texSubImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset-1,yoffset,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,bitmap));\r\n\t\t\t\t(xoffset+1 <=this._w)&& (gl.texSubImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset+1,yoffset,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,bitmap));\r\n\t\t\t\t(yoffset-1 >=0)&& (gl.texSubImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset,yoffset-1,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,bitmap));\r\n\t\t\t\t(yoffset+1 <=this._h)&& (gl.texSubImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset,yoffset+1,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,bitmap));\r\n\t\t\t\tgl.texSubImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset,yoffset,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,bitmap);\r\n\t\t\t\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,false);\r\n\t\t\t}\r\n\t\t\t(preTarget && preTexture)&& (WebGLContext.bindTexture(gl,preTarget,preTexture));\r\n\t\t\t}else {\r\n\t\t\tif (!this._flashCacheImage){\r\n\t\t\t\tthis._flashCacheImage=HTMLImage.create(\"\");\r\n\t\t\t\tthis._flashCacheImage._image.createCanvas(this._w,this._h);\r\n\t\t\t};\r\n\t\t\tvar bmData=bitmap.bitmapdata;\r\n\t\t\tthis._flashCacheImage._image.copyPixels(bmData,0,0,bmData.width,bmData.height,xoffset,yoffset);\r\n\t\t\t(this._flashCacheImageNeedFlush)|| (this._flashCacheImageNeedFlush=true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**采样image到WebGLTexture的一部分*/\r\n\t__proto.texSubImage2DPixel=function(xoffset,yoffset,width,height,pixel){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tvar preTarget=WebGLContext.curBindTexTarget;\r\n\t\tvar preTexture=WebGLContext.curBindTexValue;\r\n\t\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,this._source);\r\n\t\tvar pixels=new Uint8Array(pixel.data);\r\n\t\tif (Render.isConchWebGL){\r\n\t\t\tgl.texSubImage2DEx(true,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset,yoffset,width,height,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,pixels);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,true);\r\n\t\t\tgl.texSubImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset,yoffset,width,height,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,pixels);\r\n\t\t\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,false);\r\n\t\t}\r\n\t\t(preTarget && preTexture)&& (WebGLContext.bindTexture(gl,preTarget,preTexture));\r\n\t}\r\n\r\n\t/***\r\n\t*设置图片宽度\r\n\t*@param value 图片宽度\r\n\t*/\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tthis._w=value;\r\n\t});\r\n\r\n\t/***\r\n\t*设置图片高度\r\n\t*@param value 图片高度\r\n\t*/\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tthis._h=value;\r\n\t});\r\n\r\n\treturn AtlasWebGLCanvas;\r\n})(Bitmap)\r\n\r\n\r\n/**@private */\r\n//class laya.webgl.resource.WebGLCanvas extends laya.resource.Bitmap\r\nvar WebGLCanvas=(function(_super){\r\n\tfunction WebGLCanvas(){\r\n\t\tthis.flipY=true;\r\n\t\t//上传的时候是否预乘alpha\r\n\t\t//this._ctx=null;\r\n\t\t/**HTML Canvas*/\r\n\t\t//this._canvas=null;\r\n\t\t//this._imgData=null;\r\n\t\t//}\r\n\t\t//this.iscpuSource=false;\r\n\t\tthis.alwaysChange=false;\r\n\t\tWebGLCanvas.__super.call(this);\r\n\t}\r\n\r\n\t__class(WebGLCanvas,'laya.webgl.resource.WebGLCanvas',_super);\r\n\tvar __proto=WebGLCanvas.prototype;\r\n\t//}\r\n\t__proto.getCanvas=function(){\r\n\t\treturn this._canvas;\r\n\t}\r\n\r\n\t__proto.clear=function(){\r\n\t\tthis._ctx && this._ctx.clear();\r\n\t}\r\n\r\n\t__proto.destroy=function(){\r\n\t\tthis._ctx && this._ctx.destroy();\r\n\t\tthis._ctx=null;\r\n\t}\r\n\r\n\t__proto._setContext=function(context){\r\n\t\tthis._ctx=context;\r\n\t}\r\n\r\n\t__proto.getContext=function(contextID,other){\r\n\t\treturn this._ctx ? this._ctx :(this._ctx=WebGLCanvas._createContext(this));\r\n\t}\r\n\r\n\t/*override public function copyTo(dec:Bitmap):void {\r\n\tsuper.copyTo(dec);\r\n\t(dec as WebGLCanvas)._ctx=_ctx;\r\n}*/\r\n\r\n\r\n__proto.size=function(w,h){\r\n\tif (this._w !=w || this._h !=h){\r\n\t\tthis._w=w;\r\n\t\tthis._h=h;\r\n\t\tthis._ctx && this._ctx.size(w,h);\r\n\t\tthis._canvas && (this._canvas.height=h,this._canvas.width=w);\r\n\t}\r\n\r\n}\r\n\r\n\r\n__proto.activeResource=function(force){\r\n\t(force===void 0)&& (force=false);\r\n\tif (!this._source){\r\n\t\tthis.recreateResource();\r\n\t}\r\n\r\n}\r\n\r\n\r\n__proto.recreateResource=function(){\r\n\tthis.createWebGlTexture();\r\n\tthis.completeCreate();\r\n}\r\n\r\n\r\n__proto.disposeResource=function(){\r\n\tif (this._source && !this.iscpuSource){\r\n\t\tWebGL.mainContext.deleteTexture(this._source);\r\n\t\tthis._source=null;\r\n\t\tthis.memorySize=0;\r\n\t}\r\n\r\n}\r\n\r\n\r\n__proto.createWebGlTexture=function(){\r\n\tvar gl=WebGL.mainContext;\r\n\tif (!this._canvas){\r\n\t};\r\n\r\n\tvar glTex=this._source=gl.createTexture();\r\n\tthis.iscpuSource=false;\r\n\tvar preTarget=WebGLContext.curBindTexTarget;\r\n\tvar preTexture=WebGLContext.curBindTexValue;\r\n\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,glTex);\r\n\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_FLIP_Y_WEBGL*/0x9240,this.flipY?1:0);\r\n\tif (Render.isConchWebGL){\r\n\t\tgl.texImage2DEx(WebGLCanvas.premulAlpha,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,this._imgData);\r\n\t}\r\n\r\n\telse {\r\n\t\tWebGLCanvas.premulAlpha&&gl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,true);\r\n\t\tgl.texImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,this._imgData);\r\n\t\tWebGLCanvas.premulAlpha && gl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,false);\r\n\t}\r\n\r\n\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MAG_FILTER*/0x2800,/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MIN_FILTER*/0x2801,/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_S*/0x2802,/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F);\r\n\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_T*/0x2803,/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F);\r\n\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_FLIP_Y_WEBGL*/0x9240,0);\r\n\tthis.memorySize=this._w *this._h *4;\r\n\t(preTarget && preTexture)&& (WebGLContext.bindTexture(gl,preTarget,preTexture));\r\n}\r\n\r\n\r\n//_canvas=null;\r\n__proto.reloadCanvasData=function(){\r\n\tvar gl=WebGL.mainContext;\r\n\tif (!this._source){\r\n\t\tthrow \"reloadCanvasData error, gl texture not created!\";\r\n\t};\r\n\r\n\tvar preTarget=WebGLContext.curBindTexTarget;\r\n\tvar preTexture=WebGLContext.curBindTexValue;\r\n\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,this._source);\r\n\tif (Render.isConchWebGL){\r\n\t\tgl.texImage2DEx(WebGLCanvas.premulAlpha,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,this._imgData);\r\n\t}\r\n\r\n\telse {\r\n\t\tWebGLCanvas.premulAlpha&&gl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,true);\r\n\t\tgl.texImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,this._imgData);\r\n\t\tWebGLCanvas.premulAlpha && gl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,false);\r\n\t}\r\n\r\n\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_FLIP_Y_WEBGL*/0x9240,0);\r\n\t(preTarget && preTexture)&& (WebGLContext.bindTexture(gl,preTarget,preTexture));\r\n}\r\n\r\n\r\n//_canvas=null;\r\n__proto.texSubImage2D=function(webglCanvas,xoffset,yoffset){\r\n\tvar gl=WebGL.mainContext;\r\n\tvar preTarget=WebGLContext.curBindTexTarget;\r\n\tvar preTexture=WebGLContext.curBindTexValue;\r\n\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,this._source);\r\n\tif (Render.isConchWebGL){\r\n\t\tgl.texSubImage2DEx(true,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset,yoffset,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,webglCanvas._source);\r\n\t}\r\n\r\n\telse {\r\n\t\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,true);\r\n\t\tgl.texSubImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,xoffset,yoffset,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,webglCanvas._source);\r\n\t\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,false);\r\n\t}\r\n\r\n\t(preTarget && preTexture)&& (WebGLContext.bindTexture(gl,preTarget,preTexture));\r\n}\r\n\r\n\r\n__proto.toBase64=function(type,encoderOptions,callBack){\r\n\tvar base64Data=null;\r\n\tif (this._canvas){\r\n\t\tbase64Data=this._canvas.toDataURL(type,encoderOptions);\r\n\t}\r\n\r\n\tcallBack.call(this,base64Data);\r\n}\r\n\r\n\r\n__getset(0,__proto,'context',function(){\r\n\treturn this._ctx;\r\n});\r\n\r\n\r\n__getset(0,__proto,'source',function(){\r\n\tif (this.alwaysChange)this.reloadCanvasData();\r\n\treturn this._source;\r\n});\r\n\r\n\r\n__getset(0,__proto,'asBitmap',null,function(value){\r\n\tthis._ctx && (this._ctx.asBitmap=value);\r\n});\r\n\r\n\r\nWebGLCanvas._createContext=null;\r\nWebGLCanvas.premulAlpha=false;\r\nreturn WebGLCanvas;\r\n})(Bitmap)\r\n\r\n\r\n//class laya.webgl.resource.WebGLCharImage extends laya.resource.Bitmap\r\nvar WebGLCharImage=(function(_super){\r\n\tfunction WebGLCharImage(content,drawValue){\r\n\t\tthis.CborderSize=12;\r\n\t\t//this._ctx=null;\r\n\t\t/***是否创建私有Source*/\r\n\t\t//this._allowMerageInAtlas=false;\r\n\t\t/**是否允许加入大图合集*/\r\n\t\t//this._enableMerageInAtlas=false;\r\n\t\t/**HTML Canvas，绘制字符载体,非私有数据载体*/\r\n\t\t//this.canvas=null;\r\n\t\t/**********************************************************************************/\r\n\t\t//this.cw=NaN;\r\n\t\t//this.ch=NaN;\r\n\t\t//this.xs=NaN;\r\n\t\t//this.ys=NaN;\r\n\t\t//this.char=null;\r\n\t\t//this.fillColor=null;\r\n\t\t//this.borderColor=null;\r\n\t\t//this.borderSize=0;\r\n\t\t//this.font=null;\r\n\t\t//this.fontSize=0;\r\n\t\t//this.texture=null;\r\n\t\t//this.lineWidth=0;\r\n\t\t//this.UV=null;\r\n\t\t//this.isSpace=false;\r\n\t\t//this.underLine=0;\r\n\t\tWebGLCharImage.__super.call(this);\r\n\t\tthis.char=content;\r\n\t\tthis.isSpace=content===' ';\r\n\t\tthis.xs=drawValue.scaleX;\r\n\t\tthis.ys=drawValue.scaleY;\r\n\t\tthis.font=drawValue.font.toString();\r\n\t\tthis.fontSize=drawValue.font.size;\r\n\t\tthis.fillColor=drawValue.fillColor;\r\n\t\tthis.borderColor=drawValue.borderColor;\r\n\t\tthis.lineWidth=drawValue.lineWidth;\r\n\t\tthis.underLine=drawValue.underLine;\r\n\t\tvar bIsConchApp=Render.isConchApp;\r\n\t\tvar pCanvas;\r\n\t\tif (bIsConchApp){\r\n\t\t\t/*__JS__ */pCanvas=ConchTextCanvas;\r\n\t\t\t/*__JS__ */pCanvas._source=ConchTextCanvas;\r\n\t\t\t/*__JS__ */pCanvas._source.canvas=ConchTextCanvas;\r\n\t\t\t}else {\r\n\t\t\tpCanvas=Browser.canvas.source;\r\n\t\t}\r\n\t\tthis.canvas=pCanvas;\r\n\t\tthis._enableMerageInAtlas=true;\r\n\t\tif (bIsConchApp){\r\n\t\t\t/*__JS__ */this._ctx=pCanvas;\r\n\t\t\t}else {\r\n\t\t\tthis._ctx=this.canvas.getContext('2d',undefined);\r\n\t\t};\r\n\t\tvar t=Utils.measureText(this.char,this.font);\r\n\t\tthis.cw=t.width *this.xs;\r\n\t\tthis.ch=(t.height || this.fontSize)*this.ys;\r\n\t\tthis.onresize(this.cw+this.CborderSize *2,this.ch+this.CborderSize *2);\r\n\t\tthis.texture=new Texture(this);\r\n\t}\r\n\r\n\t__class(WebGLCharImage,'laya.webgl.resource.WebGLCharImage',_super);\r\n\tvar __proto=WebGLCharImage.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.resource.IMergeAtlasBitmap\":true})\r\n\t__proto.active=function(){\r\n\t\tthis.texture.active();\r\n\t}\r\n\r\n\t__proto.recreateResource=function(){\r\n\t\tvar bIsConchApp=Render.isConchApp;\r\n\t\tthis.onresize(this.cw+this.CborderSize *2,this.ch+this.CborderSize *2);\r\n\t\tthis.canvas && (this.canvas.height=this._h,this.canvas.width=this._w);\r\n\t\tif (bIsConchApp){\r\n\t\t\tvar nFontSize=this.fontSize;\r\n\t\t\tif (this.xs !=1 || this.ys !=1){\r\n\t\t\t\tnFontSize=parseInt(nFontSize *((this.xs > this.ys)? this.xs :this.ys)+\"\");\r\n\t\t\t};\r\n\t\t\tvar sFont=\"normal 100 \"+nFontSize+\"px Arial\";\r\n\t\t\tif (this.borderColor){\r\n\t\t\t\tsFont+=\" 1 \"+this.borderColor;\r\n\t\t\t}\r\n\t\t\tthis._ctx.font=sFont;\r\n\t\t\tthis._ctx.textBaseline=\"top\";\r\n\t\t\tthis._ctx.fillStyle=this.fillColor;\r\n\t\t\tthis._ctx.fillText(this.char,this.CborderSize,this.CborderSize,null,null,null);\r\n\t\t\t}else {\r\n\t\t\tthis._ctx.save();\r\n\t\t\t(this._ctx).clearRect(0,0,this.cw+this.CborderSize *2,this.ch+this.CborderSize *2);\r\n\t\t\tthis._ctx.font=this.font;\r\n\t\t\tif (Text.RightToLeft){\r\n\t\t\t\tthis._ctx.textAlign=\"end\";\r\n\t\t\t}\r\n\t\t\tthis._ctx.textBaseline=\"top\";\r\n\t\t\tthis._ctx.translate(this.CborderSize,this.CborderSize);\r\n\t\t\tif (this.xs !=1 || this.ys !=1){\r\n\t\t\t\tthis._ctx.scale(this.xs,this.ys);\r\n\t\t\t}\r\n\t\t\tif (this.fillColor && this.borderColor){\r\n\t\t\t\tthis._ctx.strokeStyle=this.borderColor;\r\n\t\t\t\tthis._ctx.lineWidth=this.lineWidth;\r\n\t\t\t\tthis._ctx.strokeText(this.char,0,0,null,null,0,null);\r\n\t\t\t\tthis._ctx.fillStyle=this.fillColor;\r\n\t\t\t\tthis._ctx.fillText(this.char,0,0,null,null,null);\r\n\t\t\t\t}else {\r\n\t\t\t\tif (this.lineWidth===-1){\r\n\t\t\t\t\tthis._ctx.fillStyle=this.fillColor ? this.fillColor :\"white\";\r\n\t\t\t\t\tthis._ctx.fillText(this.char,0,0,null,null,null);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tthis._ctx.strokeStyle=this.borderColor?this.borderColor:'white';\r\n\t\t\t\t\tthis._ctx.lineWidth=this.lineWidth;\r\n\t\t\t\t\tthis._ctx.strokeText(this.char,0,0,null,null,0,null);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.underLine){\r\n\t\t\t\tthis._ctx.lineWidth=1;\r\n\t\t\t\tthis._ctx.strokeStyle=this.fillColor;\r\n\t\t\t\tthis._ctx.beginPath();\r\n\t\t\t\tthis._ctx.moveTo(0,this.fontSize+1);\r\n\t\t\t\tvar nW=this._ctx.measureText(this.char).width+1;\r\n\t\t\t\tthis._ctx.lineTo(nW,this.fontSize+1);\r\n\t\t\t\tthis._ctx.stroke();\r\n\t\t\t}\r\n\t\t\tthis._ctx.restore();\r\n\t\t}\r\n\t\tthis.borderSize=this.CborderSize;\r\n\t\tthis.completeCreate();\r\n\t}\r\n\r\n\t__proto.onresize=function(w,h){\r\n\t\tthis._w=w;\r\n\t\tthis._h=h;\r\n\t\tthis._allowMerageInAtlas=true;\r\n\t}\r\n\r\n\t__proto.clearAtlasSource=function(){}\r\n\t/**\r\n\t*是否创建私有Source\r\n\t*@return 是否创建\r\n\t*/\r\n\t__getset(0,__proto,'allowMerageInAtlas',function(){\r\n\t\treturn this._allowMerageInAtlas;\r\n\t});\r\n\r\n\t__getset(0,__proto,'atlasSource',function(){\r\n\t\treturn this.canvas;\r\n\t});\r\n\r\n\t/**\r\n\t*是否创建私有Source,通常禁止修改\r\n\t*@param value 是否创建\r\n\t*/\r\n\t/**\r\n\t*是否创建私有Source\r\n\t*@return 是否创建\r\n\t*/\r\n\t__getset(0,__proto,'enableMerageInAtlas',function(){\r\n\t\treturn this._enableMerageInAtlas;\r\n\t\t},function(value){\r\n\t\tthis._enableMerageInAtlas=value;\r\n\t});\r\n\r\n\tWebGLCharImage.createOneChar=function(content,drawValue){\r\n\t\tvar char=new WebGLCharImage(content,drawValue);\r\n\t\treturn char;\r\n\t}\r\n\r\n\treturn WebGLCharImage;\r\n})(Bitmap)\r\n\r\n\r\n//class laya.webgl.resource.WebGLRenderTarget extends laya.resource.Bitmap\r\nvar WebGLRenderTarget=(function(_super){\r\n\tfunction WebGLRenderTarget(width,height,surfaceFormat,surfaceType,depthStencilFormat,mipMap,repeat,minFifter,magFifter){\r\n\t\t//this._frameBuffer=null;\r\n\t\t//this._depthStencilBuffer=null;\r\n\t\t//this._surfaceFormat=0;\r\n\t\t//this._surfaceType=0;\r\n\t\t//this._depthStencilFormat=0;\r\n\t\t//this._mipMap=false;\r\n\t\t//this._repeat=false;\r\n\t\t//this._minFifter=0;\r\n\t\t//this._magFifter=0;\r\n\t\t(surfaceFormat===void 0)&& (surfaceFormat=/*laya.webgl.WebGLContext.RGBA*/0x1908);\r\n\t\t(surfaceType===void 0)&& (surfaceType=/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401);\r\n\t\t(depthStencilFormat===void 0)&& (depthStencilFormat=/*laya.webgl.WebGLContext.DEPTH_STENCIL*/0x84F9);\r\n\t\t(mipMap===void 0)&& (mipMap=false);\r\n\t\t(repeat===void 0)&& (repeat=false);\r\n\t\t(minFifter===void 0)&& (minFifter=-1);\r\n\t\t(magFifter===void 0)&& (magFifter=1);\r\n\t\tWebGLRenderTarget.__super.call(this);\r\n\t\tthis._w=width;\r\n\t\tthis._h=height;\r\n\t\tthis._surfaceFormat=surfaceFormat;\r\n\t\tthis._surfaceType=surfaceType;\r\n\t\tthis._depthStencilFormat=depthStencilFormat;\r\n\t\tif (Render.isConchWebGL && this._depthStencilFormat===/*laya.webgl.WebGLContext.DEPTH_STENCIL*/0x84F9){\r\n\t\t\tthis._depthStencilFormat=/*laya.webgl.WebGLContext.DEPTH_COMPONENT16*/0x81A5;\r\n\t\t}\r\n\t\tthis._mipMap=mipMap;\r\n\t\tthis._repeat=repeat;\r\n\t\tthis._minFifter=minFifter;\r\n\t\tthis._magFifter=magFifter;\r\n\t}\r\n\r\n\t__class(WebGLRenderTarget,'laya.webgl.resource.WebGLRenderTarget',_super);\r\n\tvar __proto=WebGLRenderTarget.prototype;\r\n\t__proto.recreateResource=function(){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tthis._frameBuffer || (this._frameBuffer=gl.createFramebuffer());\r\n\t\tthis._source || (this._source=gl.createTexture());\r\n\t\tvar preTarget=WebGLContext.curBindTexTarget;\r\n\t\tvar preTexture=WebGLContext.curBindTexValue;\r\n\t\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,this._source);\r\n\t\tgl.texImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,/*laya.webgl.WebGLContext.RGBA*/0x1908,this._w,this._h,0,this._surfaceFormat,this._surfaceType,null);\r\n\t\tvar minFifter=this._minFifter;\r\n\t\tvar magFifter=this._magFifter;\r\n\t\tvar repeat=this._repeat ? /*laya.webgl.WebGLContext.REPEAT*/0x2901 :/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F;\r\n\t\tvar isPot=Arith.isPOT(this._w,this._h);\r\n\t\tif (isPot){\r\n\t\t\tif (this._mipMap)\r\n\t\t\t\t(minFifter!==-1)|| (minFifter=/*laya.webgl.WebGLContext.LINEAR_MIPMAP_LINEAR*/0x2703);\r\n\t\t\telse\r\n\t\t\t(minFifter!==-1)|| (minFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\t\t(magFifter!==-1)|| (magFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MIN_FILTER*/0x2801,minFifter);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MAG_FILTER*/0x2800,magFifter);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_S*/0x2802,repeat);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_T*/0x2803,repeat);\r\n\t\t\tthis._mipMap && gl.generateMipmap(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1);\r\n\t\t\t}else {\r\n\t\t\t(minFifter!==-1)|| (minFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\t\t(magFifter!==-1)|| (magFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MIN_FILTER*/0x2801,minFifter);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MAG_FILTER*/0x2800,magFifter);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_S*/0x2802,/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_T*/0x2803,/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F);\r\n\t\t}\r\n\t\tgl.bindFramebuffer(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40,this._frameBuffer);\r\n\t\tgl.framebufferTexture2D(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40,/*laya.webgl.WebGLContext.COLOR_ATTACHMENT0*/0x8CE0,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,this._source,0);\r\n\t\tif (this._depthStencilFormat){\r\n\t\t\tthis._depthStencilBuffer || (this._depthStencilBuffer=gl.createRenderbuffer());\r\n\t\t\tgl.bindRenderbuffer(/*laya.webgl.WebGLContext.RENDERBUFFER*/0x8D41,this._depthStencilBuffer);\r\n\t\t\tgl.renderbufferStorage(/*laya.webgl.WebGLContext.RENDERBUFFER*/0x8D41,this._depthStencilFormat,this._w,this._h);\r\n\t\t\tswitch (this._depthStencilFormat){\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.DEPTH_COMPONENT16*/0x81A5:\r\n\t\t\t\t\tgl.framebufferRenderbuffer(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40,/*laya.webgl.WebGLContext.DEPTH_ATTACHMENT*/0x8D00,/*laya.webgl.WebGLContext.RENDERBUFFER*/0x8D41,this._depthStencilBuffer);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.STENCIL_INDEX8*/0x8D48:\r\n\t\t\t\t\tgl.framebufferRenderbuffer(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40,/*laya.webgl.WebGLContext.STENCIL_ATTACHMENT*/0x8D20,/*laya.webgl.WebGLContext.RENDERBUFFER*/0x8D41,this._depthStencilBuffer);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.DEPTH_STENCIL*/0x84F9:\r\n\t\t\t\t\tgl.framebufferRenderbuffer(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40,/*laya.webgl.WebGLContext.DEPTH_STENCIL_ATTACHMENT*/0x821A,/*laya.webgl.WebGLContext.RENDERBUFFER*/0x8D41,this._depthStencilBuffer);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t}\r\n\t\tgl.bindFramebuffer(/*laya.webgl.WebGLContext.FRAMEBUFFER*/0x8D40,null);\r\n\t\t(preTarget && preTexture)&& (WebGLContext.bindTexture(gl,preTarget,preTexture));\r\n\t\tgl.bindRenderbuffer(/*laya.webgl.WebGLContext.RENDERBUFFER*/0x8D41,null);\r\n\t\tif (isPot && this._mipMap)\r\n\t\t\tthis.memorySize=this._w *this._h *4 *(1+1 / 3);\r\n\t\telse\r\n\t\tthis.memorySize=this._w *this._h *4;\r\n\t\tthis.completeCreate();\r\n\t}\r\n\r\n\t__proto.disposeResource=function(){\r\n\t\tif (this._frameBuffer){\r\n\t\t\tWebGL.mainContext.deleteTexture(this._source);\r\n\t\t\tWebGL.mainContext.deleteFramebuffer(this._frameBuffer);\r\n\t\t\tWebGL.mainContext.deleteRenderbuffer(this._depthStencilBuffer);\r\n\t\t\tthis._source=null;\r\n\t\t\tthis._frameBuffer=null;\r\n\t\t\tthis._depthStencilBuffer=null;\r\n\t\t\tthis.memorySize=0;\r\n\t\t}\r\n\t}\r\n\r\n\t__getset(0,__proto,'depthStencilBuffer',function(){\r\n\t\treturn this._depthStencilBuffer;\r\n\t});\r\n\r\n\t__getset(0,__proto,'frameBuffer',function(){\r\n\t\treturn this._frameBuffer;\r\n\t});\r\n\r\n\treturn WebGLRenderTarget;\r\n})(Bitmap)\r\n\r\n\r\n//class laya.webgl.resource.WebGLSubImage extends laya.resource.Bitmap\r\nvar WebGLSubImage=(function(_super){\r\n\tfunction WebGLSubImage(canvas,offsetX,offsetY,width,height,atlasImage,src){\r\n\t\t/**HTML Context*/\r\n\t\t//this._ctx=null;\r\n\t\t/***是否创建私有Source,值为false时不根据src创建私有WebGLTexture,同时销毁时也只清空source=null,不调用WebGL.mainContext.deleteTexture类似函数，调用资源激活前有效*/\r\n\t\t//this._allowMerageInAtlas=false;\r\n\t\t/**是否允许加入大图合集*/\r\n\t\t//this._enableMerageInAtlas=false;\r\n\t\t/**HTML Canvas，绘制子图载体,非私有数据载体*/\r\n\t\t//this.canvas=null;\r\n\t\t/**是否使用重复模式纹理寻址*/\r\n\t\t//this.repeat=false;\r\n\t\t/**是否使用mipLevel*/\r\n\t\t//this.mipmap=false;\r\n\t\t/**缩小过滤器*/\r\n\t\t//this.minFifter=0;\r\n\t\t/**放大过滤器*/\r\n\t\t//this.magFifter=0;\r\n\t\t//动态默认值，判断是否可生成miplevel\r\n\t\t//this.atlasImage=null;\r\n\t\tthis.offsetX=0;\r\n\t\tthis.offsetY=0;\r\n\t\t//this.src=null;\r\n\t\tWebGLSubImage.__super.call(this);\r\n\t\tthis.repeat=true;\r\n\t\tthis.mipmap=false;\r\n\t\tthis.minFifter=-1;\r\n\t\tthis.magFifter=-1;\r\n\t\tthis.atlasImage=atlasImage;\r\n\t\tthis.canvas=canvas;\r\n\t\tthis._ctx=canvas.getContext('2d',undefined);\r\n\t\tthis._w=width;\r\n\t\tthis._h=height;\r\n\t\tthis.offsetX=offsetX;\r\n\t\tthis.offsetY=offsetY;\r\n\t\tthis.src=src;\r\n\t\tthis._enableMerageInAtlas=true;\r\n\t\t(AtlasResourceManager.enabled)&& (this._w < AtlasResourceManager.atlasLimitWidth && this._h < AtlasResourceManager.atlasLimitHeight)? this._allowMerageInAtlas=true :this._allowMerageInAtlas=false;\r\n\t}\r\n\r\n\t__class(WebGLSubImage,'laya.webgl.resource.WebGLSubImage',_super);\r\n\tvar __proto=WebGLSubImage.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.resource.IMergeAtlasBitmap\":true})\r\n\t/*override public function copyTo(dec:Bitmap):void {\r\n\tvar d:WebGLSubImage=dec as WebGLSubImage;\r\n\tsuper.copyTo(dec);\r\n\td._ctx=_ctx;\r\n}*/\r\n\r\n\r\n__proto.size=function(w,h){\r\n\tthis._w=w;\r\n\tthis._h=h;\r\n\tthis._ctx && this._ctx.size(w,h);\r\n\tthis.canvas && (this.canvas.height=h,this.canvas.width=w);\r\n}\r\n\r\n\r\n__proto.recreateResource=function(){\r\n\tthis.size(this._w,this._h);\r\n\tthis._ctx.drawImage(this.atlasImage,this.offsetX,this.offsetY,this._w,this._h,0,0,this._w,this._h);\r\n\t(!(this._allowMerageInAtlas && this._enableMerageInAtlas))? (this.createWebGlTexture()):(this.memorySize=0);\r\n\tthis.completeCreate();\r\n}\r\n\r\n\r\n__proto.createWebGlTexture=function(){\r\n\tvar gl=WebGL.mainContext;\r\n\tif (!this.canvas){\r\n\t\tthrow \"create GLTextur err:no data:\"+this.canvas;\r\n\t};\r\n\r\n\tvar glTex=this._source=gl.createTexture();\r\n\tvar preTarget=WebGLContext.curBindTexTarget;\r\n\tvar preTexture=WebGLContext.curBindTexValue;\r\n\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,glTex);\r\n\tif (Render.isConchWebGL){\r\n\t\tgl.texImage2DEx(true,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,this.canvas);\r\n\t}\r\n\r\n\telse {\r\n\t\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,true);\r\n\t\tgl.texImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,this.canvas);\r\n\t\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,false);\r\n\t};\r\n\r\n\tvar minFifter=this.minFifter;\r\n\tvar magFifter=this.magFifter;\r\n\tvar repeat=this.repeat ? /*laya.webgl.WebGLContext.REPEAT*/0x2901 :/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F;\r\n\tvar isPOT=Arith.isPOT(this.width,this.height);\r\n\tif (isPOT){\r\n\t\tif (this.mipmap)\r\n\t\t\t(minFifter!==-1)|| (minFifter=/*laya.webgl.WebGLContext.LINEAR_MIPMAP_LINEAR*/0x2703);\r\n\t\telse\r\n\t\t(minFifter!==-1)|| (minFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\t(magFifter!==-1)|| (magFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MAG_FILTER*/0x2800,magFifter);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MIN_FILTER*/0x2801,minFifter);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_S*/0x2802,repeat);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_T*/0x2803,repeat);\r\n\t\tthis.mipmap && gl.generateMipmap(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1);\r\n\t\t}else {\r\n\t\t(minFifter!==-1)|| (minFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\t(magFifter!==-1)|| (magFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MIN_FILTER*/0x2801,minFifter);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MAG_FILTER*/0x2800,magFifter);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_S*/0x2802,/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F);\r\n\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_T*/0x2803,/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F);\r\n\t}\r\n\r\n\t(preTarget && preTexture)&& (WebGLContext.bindTexture(gl,preTarget,preTexture));\r\n\tthis.canvas=null;\r\n\tif (isPOT && this.mipmap)\r\n\t\tthis.memorySize=this._w *this._h *4 *(1+1 / 3);\r\n\telse\r\n\tthis.memorySize=this._w *this._h *4;\r\n}\r\n\r\n\r\n__proto.disposeResource=function(){\r\n\tif (!(AtlasResourceManager.enabled && this._allowMerageInAtlas)&& this._source){\r\n\t\tWebGL.mainContext.deleteTexture(this._source);\r\n\t\tthis._source=null;\r\n\t\tthis.memorySize=0;\r\n\t}\r\n\r\n}\r\n\r\n\r\n//}\r\n__proto.clearAtlasSource=function(){}\r\n/**\r\n*是否创建私有Source\r\n*@return 是否创建\r\n*/\r\n__getset(0,__proto,'allowMerageInAtlas',function(){\r\n\treturn this._allowMerageInAtlas;\r\n});\r\n\r\n\r\n//public var createFromPixel:Boolean=true;\r\n__getset(0,__proto,'atlasSource',function(){\r\n\treturn this.canvas;\r\n});\r\n\r\n\r\n/**\r\n*是否创建私有Source,通常禁止修改\r\n*@param value 是否创建\r\n*/\r\n/**\r\n*是否创建私有Source\r\n*@return 是否创建\r\n*/\r\n__getset(0,__proto,'enableMerageInAtlas',function(){\r\n\treturn this._allowMerageInAtlas;\r\n\t},function(value){\r\n\r\n\tthis._allowMerageInAtlas=value;\r\n});\r\n\r\n\r\nreturn WebGLSubImage;\r\n})(Bitmap)\r\n\r\n\r\n//class laya.webgl.shader.Shader extends laya.webgl.shader.BaseShader\r\nvar Shader=(function(_super){\r\n\tfunction Shader(vs,ps,saveName,nameMap){\r\n\t\t//this._nameMap=null;\r\n\t\t//shader参数别名，语义\r\n\t\t//this._vs=null;\r\n\t\t//this._ps=null;\r\n\t\tthis._curActTexIndex=0;\r\n\t\t//this._reCompile=false;\r\n\t\t//存储一些私有变量\r\n\t\tthis.tag={};\r\n\t\t//this._vshader=null;\r\n\t\t//this._pshader=null;\r\n\t\tthis._program=null;\r\n\t\tthis._params=null;\r\n\t\tthis._paramsMap={};\r\n\t\tthis._offset=0;\r\n\t\t//this._id=0;\r\n\t\tShader.__super.call(this);\r\n\t\tif ((!vs)|| (!ps))throw \"Shader Error\";\r\n\t\tthis._id=++Shader._count;\r\n\t\tthis._vs=vs;\r\n\t\tthis._ps=ps;\r\n\t\tthis._nameMap=nameMap ? nameMap :{};\r\n\t\tsaveName !=null && (Shader.sharders[saveName]=this);\r\n\t}\r\n\r\n\t__class(Shader,'laya.webgl.shader.Shader',_super);\r\n\tvar __proto=Shader.prototype;\r\n\t__proto.recreateResource=function(){\r\n\t\tthis._compile();\r\n\t\tthis.completeCreate();\r\n\t\tthis.memorySize=0;\r\n\t}\r\n\r\n\t//忽略尺寸尺寸\r\n\t__proto.disposeResource=function(){\r\n\t\tWebGL.mainContext.deleteShader(this._vshader);\r\n\t\tWebGL.mainContext.deleteShader(this._pshader);\r\n\t\tWebGL.mainContext.deleteProgram(this._program);\r\n\t\tthis._vshader=this._pshader=this._program=null;\r\n\t\tthis._params=null;\r\n\t\tthis._paramsMap={};\r\n\t\tthis.memorySize=0;\r\n\t\tthis._curActTexIndex=0;\r\n\t}\r\n\r\n\t__proto._compile=function(){\r\n\t\tif (!this._vs || !this._ps || this._params)\r\n\t\t\treturn;\r\n\t\tthis._reCompile=true;\r\n\t\tthis._params=[];\r\n\t\tvar text=[this._vs,this._ps];\r\n\t\tvar result;\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tthis._program=gl.createProgram();\r\n\t\tthis._vshader=Shader._createShader(gl,text[0],/*laya.webgl.WebGLContext.VERTEX_SHADER*/0x8B31);\r\n\t\tthis._pshader=Shader._createShader(gl,text[1],/*laya.webgl.WebGLContext.FRAGMENT_SHADER*/0x8B30);\r\n\t\tgl.attachShader(this._program,this._vshader);\r\n\t\tgl.attachShader(this._program,this._pshader);\r\n\t\tgl.linkProgram(this._program);\r\n\t\tif (!Render.isConchApp && !gl.getProgramParameter(this._program,/*laya.webgl.WebGLContext.LINK_STATUS*/0x8B82)){\r\n\t\t\tthrow gl.getProgramInfoLog(this._program);\r\n\t\t};\r\n\t\tvar one,i=0,j=0,n=0,location;\r\n\t\tvar attribNum=0;\r\n\t\tif (Render.isConchApp){\r\n\t\t\tattribNum=gl.getProgramParameterEx(this._vs,this._ps,\"\",/*laya.webgl.WebGLContext.ACTIVE_ATTRIBUTES*/0x8B89);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tattribNum=gl.getProgramParameter(this._program,/*laya.webgl.WebGLContext.ACTIVE_ATTRIBUTES*/0x8B89);\r\n\t\t}\r\n\t\tfor (i=0;i < attribNum;i++){\r\n\t\t\tvar attrib=null;\r\n\t\t\tif (Render.isConchApp){\r\n\t\t\t\tattrib=gl.getActiveAttribEx(this._vs,this._ps,\"\",i);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tattrib=gl.getActiveAttrib(this._program,i);\r\n\t\t\t}\r\n\t\t\tlocation=gl.getAttribLocation(this._program,attrib.name);\r\n\t\t\tone={vartype:\"attribute\",glfun:null,ivartype:0,attrib:attrib,location:location,name:attrib.name,type:attrib.type,isArray:false,isSame:false,preValue:null,indexOfParams:0};\r\n\t\t\tthis._params.push(one);\r\n\t\t};\r\n\t\tvar nUniformNum=0;\r\n\t\tif (Render.isConchApp){\r\n\t\t\tnUniformNum=gl.getProgramParameterEx(this._vs,this._ps,\"\",/*laya.webgl.WebGLContext.ACTIVE_UNIFORMS*/0x8B86);\r\n\t\t}\r\n\t\telse{\r\n\t\t\tnUniformNum=gl.getProgramParameter(this._program,/*laya.webgl.WebGLContext.ACTIVE_UNIFORMS*/0x8B86);\r\n\t\t}\r\n\t\tfor (i=0;i < nUniformNum;i++){\r\n\t\t\tvar uniform=null;\r\n\t\t\tif (Render.isConchApp){\r\n\t\t\t\tuniform=gl.getActiveUniformEx(this._vs,this._ps,\"\",i);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tuniform=gl.getActiveUniform(this._program,i);\r\n\t\t\t}\r\n\t\t\tlocation=gl.getUniformLocation(this._program,uniform.name);\r\n\t\t\tone={vartype:\"uniform\",glfun:null,ivartype:1,attrib:attrib,location:location,name:uniform.name,type:uniform.type,isArray:false,isSame:false,preValue:null,indexOfParams:0};\r\n\t\t\tif (one.name.indexOf('[0]')> 0){\r\n\t\t\t\tone.name=one.name.substr(0,one.name.length-3);\r\n\t\t\t\tone.isArray=true;\r\n\t\t\t\tone.location=gl.getUniformLocation(this._program,one.name);\r\n\t\t\t}\r\n\t\t\tthis._params.push(one);\r\n\t\t}\r\n\t\tfor (i=0,n=this._params.length;i < n;i++){\r\n\t\t\tone=this._params[i];\r\n\t\t\tone.indexOfParams=i;\r\n\t\t\tone.index=1;\r\n\t\t\tone.value=[one.location,null];\r\n\t\t\tone.codename=one.name;\r\n\t\t\tone.name=this._nameMap[one.codename] ? this._nameMap[one.codename] :one.codename;\r\n\t\t\tthis._paramsMap[one.name]=one;\r\n\t\t\tone._this=this;\r\n\t\t\tone.uploadedValue=[];\r\n\t\t\tif (one.vartype===\"attribute\"){\r\n\t\t\t\tone.fun=this._attribute;\r\n\t\t\t\tcontinue ;\r\n\t\t\t}\r\n\t\t\tswitch (one.type){\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.INT*/0x1404:\r\n\t\t\t\t\tone.fun=one.isArray ? this._uniform1iv :this._uniform1i;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.FLOAT*/0x1406:\r\n\t\t\t\t\tone.fun=one.isArray ? this._uniform1fv :this._uniform1f;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.FLOAT_VEC2*/0x8B50:\r\n\t\t\t\t\tone.fun=one.isArray ? this._uniform_vec2v:this._uniform_vec2;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.FLOAT_VEC3*/0x8B51:\r\n\t\t\t\t\tone.fun=one.isArray ? this._uniform_vec3v:this._uniform_vec3;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.FLOAT_VEC4*/0x8B52:\r\n\t\t\t\t\tone.fun=one.isArray ? this._uniform_vec4v:this._uniform_vec4;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.SAMPLER_2D*/0x8B5E:\r\n\t\t\t\t\tone.fun=this._uniform_sampler2D;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.SAMPLER_CUBE*/0x8B60:\r\n\t\t\t\t\tone.fun=this._uniform_samplerCube;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.FLOAT_MAT4*/0x8B5C:\r\n\t\t\t\t\tone.glfun=gl.uniformMatrix4fv;\r\n\t\t\t\t\tone.fun=this._uniformMatrix4fv;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.BOOL*/0x8B56:\r\n\t\t\t\t\tone.fun=this._uniform1i;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.FLOAT_MAT2*/0x8B5A:\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.FLOAT_MAT3*/0x8B5B:\r\n\t\t\t\t\tthrow new Error(\"compile shader err!\");\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tdefault :\r\n\t\t\t\t\tthrow new Error(\"compile shader err!\");\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*根据变量名字获得\r\n\t*@param name\r\n\t*@return\r\n\t*/\r\n\t__proto.getUniform=function(name){\r\n\t\treturn this._paramsMap[name];\r\n\t}\r\n\r\n\t__proto._attribute=function(one,value){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tvar enableAtributes=Buffer._enableAtributes;\r\n\t\tvar location=one.location;\r\n\t\t(enableAtributes[location])||(gl.enableVertexAttribArray(location));\r\n\t\tgl.vertexAttribPointer(location,value[0],value[1],value[2],value[3],value[4]+this._offset);\r\n\t\tenableAtributes[location]=Buffer._bindVertexBuffer;\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto._uniform1f=function(one,value){\r\n\t\tvar uploadedValue=one.uploadedValue;\r\n\t\tif (uploadedValue[0]!==value){\r\n\t\t\tWebGL.mainContext.uniform1f(one.location,uploadedValue[0]=value);\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto._uniform1fv=function(one,value){\r\n\t\tif (value.length < 4){\r\n\t\t\tvar uploadedValue=one.uploadedValue;\r\n\t\t\tif (uploadedValue[0]!==value[0] || uploadedValue[1]!==value[1] || uploadedValue[2]!==value[2] || uploadedValue[3]!==value[3]){\r\n\t\t\t\tWebGL.mainContext.uniform1fv(one.location,value);\r\n\t\t\t\tuploadedValue[0]=value[0];\r\n\t\t\t\tuploadedValue[1]=value[1];\r\n\t\t\t\tuploadedValue[2]=value[2];\r\n\t\t\t\tuploadedValue[3]=value[3];\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t\treturn 0;\r\n\t\t\t}else {\r\n\t\t\tWebGL.mainContext.uniform1fv(one.location,value);\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._uniform_vec2=function(one,value){\r\n\t\tvar uploadedValue=one.uploadedValue;\r\n\t\tif (uploadedValue[0]!==value[0] || uploadedValue[1]!==value[1]){\r\n\t\t\tWebGL.mainContext.uniform2f(one.location,uploadedValue[0]=value[0],uploadedValue[1]=value[1]);\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto._uniform_vec2v=function(one,value){\r\n\t\tif (value.length < 2){\r\n\t\t\tvar uploadedValue=one.uploadedValue;\r\n\t\t\tif (uploadedValue[0]!==value[0] || uploadedValue[1]!==value[1] || uploadedValue[2]!==value[2] || uploadedValue[3]!==value[3]){\r\n\t\t\t\tWebGL.mainContext.uniform2fv(one.location,value);\r\n\t\t\t\tuploadedValue[0]=value[0];\r\n\t\t\t\tuploadedValue[1]=value[1];\r\n\t\t\t\tuploadedValue[2]=value[2];\r\n\t\t\t\tuploadedValue[3]=value[3];\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\t\t\treturn 0;\r\n\t\t\t}else {\r\n\t\t\tWebGL.mainContext.uniform2fv(one.location,value);\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._uniform_vec3=function(one,value){\r\n\t\tvar uploadedValue=one.uploadedValue;\r\n\t\tif (uploadedValue[0]!==value[0] || uploadedValue[1]!==value[1] || uploadedValue[2]!==value[2]){\r\n\t\t\tWebGL.mainContext.uniform3f(one.location,uploadedValue[0]=value[0],uploadedValue[1]=value[1],uploadedValue[2]=value[2]);\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto._uniform_vec3v=function(one,value){\r\n\t\tWebGL.mainContext.uniform3fv(one.location,value);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto._uniform_vec4=function(one,value){\r\n\t\tvar uploadedValue=one.uploadedValue;\r\n\t\tif (uploadedValue[0]!==value[0] || uploadedValue[1]!==value[1] || uploadedValue[2]!==value[2] || uploadedValue[3]!==value[3]){\r\n\t\t\tWebGL.mainContext.uniform4f(one.location,uploadedValue[0]=value[0],uploadedValue[1]=value[1],uploadedValue[2]=value[2],uploadedValue[3]=value[3]);\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto._uniform_vec4v=function(one,value){\r\n\t\tWebGL.mainContext.uniform4fv(one.location,value);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto._uniformMatrix2fv=function(one,value){\r\n\t\tWebGL.mainContext.uniformMatrix2fv(one.location,false,value);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto._uniformMatrix3fv=function(one,value){\r\n\t\tWebGL.mainContext.uniformMatrix3fv(one.location,false,value);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto._uniformMatrix4fv=function(one,value){\r\n\t\tWebGL.mainContext.uniformMatrix4fv(one.location,false,value);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto._uniform1i=function(one,value){\r\n\t\tvar uploadedValue=one.uploadedValue;\r\n\t\tif (uploadedValue[0]!==value){\r\n\t\t\tWebGL.mainContext.uniform1i(one.location,uploadedValue[0]=value);\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto._uniform1iv=function(one,value){\r\n\t\tWebGL.mainContext.uniform1iv(one.location,value);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto._uniform_ivec2=function(one,value){\r\n\t\tvar uploadedValue=one.uploadedValue;\r\n\t\tif (uploadedValue[0]!==value[0] || uploadedValue[1]!==value[1]){\r\n\t\t\tWebGL.mainContext.uniform2i(one.location,uploadedValue[0]=value[0],uploadedValue[1]=value[1]);\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto._uniform_ivec2v=function(one,value){\r\n\t\tWebGL.mainContext.uniform2iv(one.location,value);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto._uniform_vec3i=function(one,value){\r\n\t\tvar uploadedValue=one.uploadedValue;\r\n\t\tif (uploadedValue[0]!==value[0] || uploadedValue[1]!==value[1] || uploadedValue[2]!==value[2]){\r\n\t\t\tWebGL.mainContext.uniform3i(one.location,uploadedValue[0]=value[0],uploadedValue[1]=value[1],uploadedValue[2]=value[2]);\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto._uniform_vec3vi=function(one,value){\r\n\t\tWebGL.mainContext.uniform3iv(one.location,value);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto._uniform_vec4i=function(one,value){\r\n\t\tvar uploadedValue=one.uploadedValue;\r\n\t\tif (uploadedValue[0]!==value[0] || uploadedValue[1]!==value[1] || uploadedValue[2]!==value[2] || uploadedValue[3]!==value[3]){\r\n\t\t\tWebGL.mainContext.uniform4i(one.location,uploadedValue[0]=value[0],uploadedValue[1]=value[1],uploadedValue[2]=value[2],uploadedValue[3]=value[3]);\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t__proto._uniform_vec4vi=function(one,value){\r\n\t\tWebGL.mainContext.uniform4iv(one.location,value);\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto._uniform_sampler2D=function(one,value){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tvar uploadedValue=one.uploadedValue;\r\n\t\tif (uploadedValue[0]==null){\r\n\t\t\tuploadedValue[0]=this._curActTexIndex;\r\n\t\t\tgl.uniform1i(one.location,this._curActTexIndex);\r\n\t\t\tgl.activeTexture(Shader._TEXTURES[this._curActTexIndex]);\r\n\t\t\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,value);\r\n\t\t\tthis._curActTexIndex++;\r\n\t\t\treturn 1;\r\n\t\t\t}else {\r\n\t\t\tgl.activeTexture(Shader._TEXTURES[uploadedValue[0]]);\r\n\t\t\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,value);\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._uniform_samplerCube=function(one,value){\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tvar uploadedValue=one.uploadedValue;\r\n\t\tif (uploadedValue[0]==null){\r\n\t\t\tuploadedValue[0]=this._curActTexIndex;\r\n\t\t\tgl.uniform1i(one.location,this._curActTexIndex);\r\n\t\t\tgl.activeTexture(Shader._TEXTURES[this._curActTexIndex]);\r\n\t\t\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_CUBE_MAP*/0x8513,value);\r\n\t\t\tthis._curActTexIndex++;\r\n\t\t\treturn 1;\r\n\t\t\t}else {\r\n\t\t\tgl.activeTexture(Shader._TEXTURES[uploadedValue[0]]);\r\n\t\t\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_CUBE_MAP*/0x8513,value);\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._noSetValue=function(one){\r\n\t\tconsole.log(\"no....:\"+one.name);\r\n\t}\r\n\r\n\t//throw new Error(\"upload shader err,must set value:\"+one.name);\r\n\t__proto.uploadOne=function(name,value){\r\n\t\tthis.activeResource();\r\n\t\tWebGLContext.UseProgram(this._program);\r\n\t\tvar one=this._paramsMap[name];\r\n\t\tone.fun.call(this,one,value);\r\n\t}\r\n\r\n\t__proto.uploadTexture2D=function(value){\r\n\t\tStat.shaderCall++;\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tgl.activeTexture(/*laya.webgl.WebGLContext.TEXTURE0*/0x84C0);\r\n\t\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,value);\r\n\t}\r\n\r\n\t/**\r\n\t*提交shader到GPU\r\n\t*@param shaderValue\r\n\t*/\r\n\t__proto.upload=function(shaderValue,params){\r\n\t\tBaseShader.activeShader=BaseShader.bindShader=this;\r\n\t\tthis._lastUseFrameCount===Stat.loopCount || this.activeResource();\r\n\t\tWebGLContext.UseProgram(this._program);\r\n\t\tif (this._reCompile){\r\n\t\t\tparams=this._params;\r\n\t\t\tthis._reCompile=false;\r\n\t\t\t}else {\r\n\t\t\tparams=params || this._params;\r\n\t\t};\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tvar one,value,n=params.length,shaderCall=0;\r\n\t\tfor (var i=0;i < n;i++){\r\n\t\t\tone=params[i];\r\n\t\t\tif ((value=shaderValue[one.name])!==null)\r\n\t\t\t\tshaderCall+=one.fun.call(this,one,value);\r\n\t\t}\r\n\t\tStat.shaderCall+=shaderCall;\r\n\t}\r\n\r\n\t/**\r\n\t*按数组的定义提交\r\n\t*@param shaderValue 数组格式[name,value,...]\r\n\t*/\r\n\t__proto.uploadArray=function(shaderValue,length,_bufferUsage){\r\n\t\tBaseShader.activeShader=this;\r\n\t\tBaseShader.bindShader=this;\r\n\t\tthis.activeResource();\r\n\t\tWebGLContext.UseProgram(this._program);\r\n\t\tvar params=this._params,value;\r\n\t\tvar one,shaderCall=0;\r\n\t\tfor (var i=length-2;i >=0;i-=2){\r\n\t\t\tone=this._paramsMap[shaderValue[i]];\r\n\t\t\tif (!one)\r\n\t\t\t\tcontinue ;\r\n\t\t\tvalue=shaderValue[i+1];\r\n\t\t\tif (value !=null){\r\n\t\t\t\t_bufferUsage && _bufferUsage[one.name] && _bufferUsage[one.name].bind();\r\n\t\t\t\tshaderCall+=one.fun.call(this,one,value);\r\n\t\t\t}\r\n\t\t}\r\n\t\tStat.shaderCall+=shaderCall;\r\n\t}\r\n\r\n\t/**\r\n\t*得到编译后的变量及相关预定义\r\n\t*@return\r\n\t*/\r\n\t__proto.getParams=function(){\r\n\t\treturn this._params;\r\n\t}\r\n\r\n\tShader.getShader=function(name){\r\n\t\treturn Shader.sharders[name];\r\n\t}\r\n\r\n\tShader.create=function(vs,ps,saveName,nameMap){\r\n\t\treturn new Shader(vs,ps,saveName,nameMap);\r\n\t}\r\n\r\n\tShader.withCompile=function(nameID,define,shaderName,createShader){\r\n\t\tif (shaderName && Shader.sharders[shaderName])\r\n\t\t\treturn Shader.sharders[shaderName];\r\n\t\tvar pre=Shader._preCompileShader[0.0002 *nameID];\r\n\t\tif (!pre)\r\n\t\t\tthrow new Error(\"withCompile shader err!\"+nameID);\r\n\t\treturn pre.createShader(define,shaderName,createShader);\r\n\t}\r\n\r\n\tShader.withCompile2D=function(nameID,mainID,define,shaderName,createShader){\r\n\t\tif (shaderName && Shader.sharders[shaderName])\r\n\t\t\treturn Shader.sharders[shaderName];\r\n\t\tvar pre=Shader._preCompileShader[0.0002 *nameID+mainID];\r\n\t\tif (!pre)\r\n\t\t\tthrow new Error(\"withCompile shader err!\"+nameID+\" \"+mainID);\r\n\t\treturn pre.createShader(define,shaderName,createShader);\r\n\t}\r\n\r\n\tShader.addInclude=function(fileName,txt){\r\n\t\tShaderCompile.addInclude(fileName,txt);\r\n\t}\r\n\r\n\tShader.preCompile=function(nameID,vs,ps,nameMap){\r\n\t\tvar id=0.0002 *nameID;\r\n\t\tShader._preCompileShader[id]=new ShaderCompile(id,vs,ps,nameMap);\r\n\t}\r\n\r\n\tShader.preCompile2D=function(nameID,mainID,vs,ps,nameMap){\r\n\t\tvar id=0.0002 *nameID+mainID;\r\n\t\tShader._preCompileShader[id]=new ShaderCompile(id,vs,ps,nameMap);\r\n\t}\r\n\r\n\tShader._createShader=function(gl,str,type){\r\n\t\tvar shader=gl.createShader(type);\r\n\t\tgl.shaderSource(shader,str);\r\n\t\tgl.compileShader(shader);\r\n\t\treturn shader;\r\n\t}\r\n\r\n\tShader._TEXTURES=[ /*laya.webgl.WebGLContext.TEXTURE0*/0x84C0,/*laya.webgl.WebGLContext.TEXTURE1*/0x84C1,/*laya.webgl.WebGLContext.TEXTURE2*/0x84C2,/*laya.webgl.WebGLContext.TEXTURE3*/0x84C3,/*laya.webgl.WebGLContext.TEXTURE4*/0x84C4,/*laya.webgl.WebGLContext.TEXTURE5*/0x84C5,/*laya.webgl.WebGLContext.TEXTURE6*/0x84C6,,/*laya.webgl.WebGLContext.TEXTURE7*/0x84C7,/*laya.webgl.WebGLContext.TEXTURE8*/0x84C8];\r\n\tShader._count=0;\r\n\tShader._preCompileShader={};\r\n\tShader.SHADERNAME2ID=0.0002;\r\n\tShader.sharders=(Shader.sharders=[],Shader.sharders.length=0x20,Shader.sharders);\r\n\t__static(Shader,\r\n\t['nameKey',function(){return this.nameKey=new StringKey();}\r\n\t]);\r\n\treturn Shader;\r\n})(BaseShader)\r\n\r\n\r\n//class laya.webgl.utils.Buffer2D extends laya.webgl.utils.Buffer\r\nvar Buffer2D=(function(_super){\r\n\tfunction Buffer2D(){\r\n\t\tthis._maxsize=0;\r\n\t\tthis._upload=true;\r\n\t\tthis._uploadSize=0;\r\n\t\tBuffer2D.__super.call(this);\r\n\t\tthis.lock=true;\r\n\t}\r\n\r\n\t__class(Buffer2D,'laya.webgl.utils.Buffer2D',_super);\r\n\tvar __proto=Buffer2D.prototype;\r\n\t/**\r\n\t*在当前的基础上需要多大空间，单位是byte\r\n\t*@param sz\r\n\t*@return 增加大小之前的写位置。单位是byte\r\n\t*/\r\n\t__proto.needSize=function(sz){\r\n\t\tvar old=this._byteLength;\r\n\t\tif (sz){\r\n\t\t\tvar needsz=this._byteLength+sz;\r\n\t\t\tneedsz <=this._buffer.byteLength || (this._resizeBuffer(needsz << 1,true));\r\n\t\t\tthis._byteLength=needsz;\r\n\t\t}\r\n\t\treturn old;\r\n\t}\r\n\r\n\t__proto._bufferData=function(){\r\n\t\tthis._maxsize=Math.max(this._maxsize,this._byteLength);\r\n\t\tif (Stat.loopCount % 30==0){\r\n\t\t\tif (this._buffer.byteLength > (this._maxsize+64)){\r\n\t\t\t\tthis.memorySize=this._buffer.byteLength;\r\n\t\t\t\tthis._buffer=this._buffer.slice(0,this._maxsize+64);\r\n\t\t\t\tthis._checkArrayUse();\r\n\t\t\t}\r\n\t\t\tthis._maxsize=this._byteLength;\r\n\t\t}\r\n\t\tif (this._uploadSize < this._buffer.byteLength){\r\n\t\t\tthis._uploadSize=this._buffer.byteLength;\r\n\t\t\tBuffer._gl.bufferData(this._bufferType,this._uploadSize,this._bufferUsage);\r\n\t\t\tthis.memorySize=this._uploadSize;\r\n\t\t}\r\n\t\tBuffer._gl.bufferSubData(this._bufferType,0,this._buffer);\r\n\t}\r\n\r\n\t__proto._bufferSubData=function(offset,dataStart,dataLength){\r\n\t\t(offset===void 0)&& (offset=0);\r\n\t\t(dataStart===void 0)&& (dataStart=0);\r\n\t\t(dataLength===void 0)&& (dataLength=0);\r\n\t\tthis._maxsize=Math.max(this._maxsize,this._byteLength);\r\n\t\tif (Stat.loopCount % 30==0){\r\n\t\t\tif (this._buffer.byteLength > (this._maxsize+64)){\r\n\t\t\t\tthis.memorySize=this._buffer.byteLength;\r\n\t\t\t\tthis._buffer=this._buffer.slice(0,this._maxsize+64);\r\n\t\t\t\tthis._checkArrayUse();\r\n\t\t\t}\r\n\t\t\tthis._maxsize=this._byteLength;\r\n\t\t}\r\n\t\tif (this._uploadSize < this._buffer.byteLength){\r\n\t\t\tthis._uploadSize=this._buffer.byteLength;\r\n\t\t\tBuffer._gl.bufferData(this._bufferType,this._uploadSize,this._bufferUsage);\r\n\t\t\tthis.memorySize=this._uploadSize;\r\n\t\t}\r\n\t\tif (dataStart || dataLength){\r\n\t\t\tvar subBuffer=this._buffer.slice(dataStart,dataLength);\r\n\t\t\tBuffer._gl.bufferSubData(this._bufferType,offset,subBuffer);\r\n\t\t\t}else {\r\n\t\t\tBuffer._gl.bufferSubData(this._bufferType,offset,this._buffer);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._checkArrayUse=function(){}\r\n\t__proto._bind_upload=function(){\r\n\t\tif (!this._upload)\r\n\t\t\treturn false;\r\n\t\tthis._upload=false;\r\n\t\tthis._bind();\r\n\t\tthis._bufferData();\r\n\t\treturn true;\r\n\t}\r\n\r\n\t__proto._bind_subUpload=function(offset,dataStart,dataLength){\r\n\t\t(offset===void 0)&& (offset=0);\r\n\t\t(dataStart===void 0)&& (dataStart=0);\r\n\t\t(dataLength===void 0)&& (dataLength=0);\r\n\t\tif (!this._upload)\r\n\t\t\treturn false;\r\n\t\tthis._upload=false;\r\n\t\tthis._bind();\r\n\t\tthis._bufferSubData(offset,dataStart,dataLength);\r\n\t\treturn true;\r\n\t}\r\n\r\n\t__proto._resizeBuffer=function(nsz,copy){\r\n\t\tif (nsz < this._buffer.byteLength)\r\n\t\t\treturn this;\r\n\t\tthis.memorySize=nsz;\r\n\t\tif (copy && this._buffer && this._buffer.byteLength > 0){\r\n\t\t\tvar newbuffer=new ArrayBuffer(nsz);\r\n\t\t\tvar n=new Uint8Array(newbuffer);\r\n\t\t\tn.set(new Uint8Array(this._buffer),0);\r\n\t\t\tthis._buffer=newbuffer;\r\n\t\t}else\r\n\t\tthis._buffer=new ArrayBuffer(nsz);\r\n\t\tthis._checkArrayUse();\r\n\t\tthis._upload=true;\r\n\t\treturn this;\r\n\t}\r\n\r\n\t__proto.append=function(data){\r\n\t\tthis._upload=true;\r\n\t\tvar byteLen=0,n;\r\n\t\tbyteLen=data.byteLength;\r\n\t\tif ((data instanceof Uint8Array)){\r\n\t\t\tthis._resizeBuffer(this._byteLength+byteLen,true);\r\n\t\t\tn=new Uint8Array(this._buffer,this._byteLength);\r\n\t\t\t}else if ((data instanceof Uint16Array)){\r\n\t\t\tthis._resizeBuffer(this._byteLength+byteLen,true);\r\n\t\t\tn=new Uint16Array(this._buffer,this._byteLength);\r\n\t\t\t}else if ((data instanceof Float32Array)){\r\n\t\t\tthis._resizeBuffer(this._byteLength+byteLen,true);\r\n\t\t\tn=new Float32Array(this._buffer,this._byteLength);\r\n\t\t}\r\n\t\tn.set(data,0);\r\n\t\tthis._byteLength+=byteLen;\r\n\t\tthis._checkArrayUse();\r\n\t}\r\n\r\n\t/**\r\n\t*附加Uint16Array的数据。数据长度是len。byte的话要*2\r\n\t*@param data\r\n\t*@param len\r\n\t*/\r\n\t__proto.appendU16Array=function(data,len){\r\n\t\tthis._resizeBuffer(this._byteLength+len*2,true);\r\n\t\tvar u=new Uint16Array(this._buffer,this._byteLength,len);\r\n\t\tfor (var i=0;i < len;i++){\r\n\t\t\tu[i]=data[i];\r\n\t\t}\r\n\t\tthis._byteLength+=len *2;\r\n\t\tthis._checkArrayUse();\r\n\t}\r\n\r\n\t__proto.appendEx=function(data,type){\r\n\t\tthis._upload=true;\r\n\t\tvar byteLen=0,n;\r\n\t\tbyteLen=data.byteLength;\r\n\t\tthis._resizeBuffer(this._byteLength+byteLen,true);\r\n\t\tn=new type(this._buffer,this._byteLength);\r\n\t\tn.set(data,0);\r\n\t\tthis._byteLength+=byteLen;\r\n\t\tthis._checkArrayUse();\r\n\t}\r\n\r\n\t__proto.appendEx2=function(data,type,dataLen,perDataLen){\r\n\t\t(perDataLen===void 0)&& (perDataLen=1);\r\n\t\tthis._upload=true;\r\n\t\tvar byteLen=0,n;\r\n\t\tbyteLen=dataLen*perDataLen;\r\n\t\tthis._resizeBuffer(this._byteLength+byteLen,true);\r\n\t\tn=new type(this._buffer,this._byteLength);\r\n\t\tvar i=0;\r\n\t\tfor (i=0;i < dataLen;i++){\r\n\t\t\tn[i]=data[i];\r\n\t\t}\r\n\t\tthis._byteLength+=byteLen;\r\n\t\tthis._checkArrayUse();\r\n\t}\r\n\r\n\t__proto.getBuffer=function(){\r\n\t\treturn this._buffer;\r\n\t}\r\n\r\n\t__proto.setNeedUpload=function(){\r\n\t\tthis._upload=true;\r\n\t}\r\n\r\n\t__proto.getNeedUpload=function(){\r\n\t\treturn this._upload;\r\n\t}\r\n\r\n\t__proto.upload=function(){\r\n\t\tvar scuess=this._bind_upload();\r\n\t\tBuffer._gl.bindBuffer(this._bufferType,null);\r\n\t\tBuffer._bindActive[this._bufferType]=null;\r\n\t\tBaseShader.activeShader=null\r\n\t\treturn scuess;\r\n\t}\r\n\r\n\t__proto.subUpload=function(offset,dataStart,dataLength){\r\n\t\t(offset===void 0)&& (offset=0);\r\n\t\t(dataStart===void 0)&& (dataStart=0);\r\n\t\t(dataLength===void 0)&& (dataLength=0);\r\n\t\tvar scuess=this._bind_subUpload();\r\n\t\tBuffer._gl.bindBuffer(this._bufferType,null);\r\n\t\tBuffer._bindActive[this._bufferType]=null;\r\n\t\tBaseShader.activeShader=null\r\n\t\treturn scuess;\r\n\t}\r\n\r\n\t__proto.disposeResource=function(){\r\n\t\t_super.prototype.disposeResource.call(this);\r\n\t\tthis._upload=true;\r\n\t\tthis._uploadSize=0;\r\n\t}\r\n\r\n\t__proto.clear=function(){\r\n\t\tthis._byteLength=0;\r\n\t\tthis._upload=true;\r\n\t}\r\n\r\n\t__getset(0,__proto,'bufferLength',function(){\r\n\t\treturn this._buffer.byteLength;\r\n\t});\r\n\r\n\t__getset(0,__proto,'byteLength',null,function(value){\r\n\t\tif (this._byteLength===value)\r\n\t\t\treturn;\r\n\t\tvalue <=this._buffer.byteLength || (this._resizeBuffer(value *2+256,true));\r\n\t\tthis._byteLength=value;\r\n\t});\r\n\r\n\tBuffer2D.__int__=function(gl){\r\n\t\tIndexBuffer2D.QuadrangleIB=IndexBuffer2D.create(/*laya.webgl.WebGLContext.STATIC_DRAW*/0x88E4);\r\n\t\tGlUtils.fillIBQuadrangle(IndexBuffer2D.QuadrangleIB,16);\r\n\t}\r\n\r\n\tBuffer2D.FLOAT32=4;\r\n\tBuffer2D.SHORT=2;\r\n\treturn Buffer2D;\r\n})(Buffer)\r\n\r\n\r\n//class laya.webgl.shader.d2.value.GlowSV extends laya.webgl.shader.d2.value.TextureSV\r\nvar GlowSV=(function(_super){\r\n\tfunction GlowSV(args){\r\n\t\tthis.u_blurX=false;\r\n\t\tthis.u_color=null;\r\n\t\tthis.u_offset=null;\r\n\t\tthis.u_strength=NaN;\r\n\t\tthis.u_texW=0;\r\n\t\tthis.u_texH=0;\r\n\t\tGlowSV.__super.call(this,/*laya.webgl.shader.d2.ShaderDefines2D.FILTERGLOW*/0x08| /*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01);\r\n\t}\r\n\r\n\t__class(GlowSV,'laya.webgl.shader.d2.value.GlowSV',_super);\r\n\tvar __proto=GlowSV.prototype;\r\n\t__proto.setValue=function(vo){\r\n\t\t_super.prototype.setValue.call(this,vo);\r\n\t}\r\n\r\n\t__proto.clear=function(){\r\n\t\t_super.prototype.clear.call(this);\r\n\t}\r\n\r\n\treturn GlowSV;\r\n})(TextureSV)\r\n\r\n\r\n//class laya.webgl.shader.d2.value.TextSV extends laya.webgl.shader.d2.value.TextureSV\r\nvar TextSV=(function(_super){\r\n\tfunction TextSV(args){\r\n\t\tTextSV.__super.call(this,/*laya.webgl.shader.d2.ShaderDefines2D.COLORADD*/0x40);\r\n\t\tthis.defines.add(/*laya.webgl.shader.d2.ShaderDefines2D.COLORADD*/0x40);\r\n\t}\r\n\r\n\t__class(TextSV,'laya.webgl.shader.d2.value.TextSV',_super);\r\n\tvar __proto=TextSV.prototype;\r\n\t__proto.release=function(){\r\n\t\tTextSV.pool[TextSV._length++]=this;\r\n\t\tthis.clear();\r\n\t}\r\n\r\n\t__proto.clear=function(){\r\n\t\t_super.prototype.clear.call(this);\r\n\t}\r\n\r\n\tTextSV.create=function(){\r\n\t\tif (TextSV._length)return TextSV.pool[--TextSV._length];\r\n\t\telse return new TextSV(null);\r\n\t}\r\n\r\n\tTextSV.pool=[];\r\n\tTextSV._length=0;\r\n\treturn TextSV;\r\n})(TextureSV)\r\n\r\n\r\n//class laya.webgl.shader.d2.Shader2X extends laya.webgl.shader.Shader\r\nvar Shader2X=(function(_super){\r\n\tfunction Shader2X(vs,ps,saveName,nameMap){\r\n\t\tthis._params2dQuick1=null;\r\n\t\tthis._params2dQuick2=null;\r\n\t\tthis._shaderValueWidth=NaN;\r\n\t\tthis._shaderValueHeight=NaN;\r\n\t\tShader2X.__super.call(this,vs,ps,saveName,nameMap);\r\n\t}\r\n\r\n\t__class(Shader2X,'laya.webgl.shader.d2.Shader2X',_super);\r\n\tvar __proto=Shader2X.prototype;\r\n\t__proto.upload2dQuick1=function(shaderValue){\r\n\t\tthis.upload(shaderValue,this._params2dQuick1 || this._make2dQuick1());\r\n\t}\r\n\r\n\t__proto._make2dQuick1=function(){\r\n\t\tif (!this._params2dQuick1){\r\n\t\t\tthis.activeResource();\r\n\t\t\tthis._params2dQuick1=[];\r\n\t\t\tvar params=this._params,one;\r\n\t\t\tfor (var i=0,n=params.length;i < n;i++){\r\n\t\t\t\tone=params[i];\r\n\t\t\t\tif (!Render.isFlash && (one.name===\"size\" || one.name===\"position\" || one.name===\"texcoord\"))continue ;\r\n\t\t\t\tthis._params2dQuick1.push(one);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._params2dQuick1;\r\n\t}\r\n\r\n\t__proto.disposeResource=function(){\r\n\t\t_super.prototype.disposeResource.call(this);\r\n\t\tthis._params2dQuick1=null;\r\n\t\tthis._params2dQuick2=null;\r\n\t}\r\n\r\n\t__proto.upload2dQuick2=function(shaderValue){\r\n\t\tthis.upload(shaderValue,this._params2dQuick2 || this._make2dQuick2());\r\n\t}\r\n\r\n\t__proto._make2dQuick2=function(){\r\n\t\tif (!this._params2dQuick2){\r\n\t\t\tthis.activeResource();\r\n\t\t\tthis._params2dQuick2=[];\r\n\t\t\tvar params=this._params,one;\r\n\t\t\tfor (var i=0,n=params.length;i < n;i++){\r\n\t\t\t\tone=params[i];\r\n\t\t\t\tif (!Render.isFlash && (one.name===\"size\"))continue ;\r\n\t\t\t\tthis._params2dQuick2.push(one);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this._params2dQuick2;\r\n\t}\r\n\r\n\tShader2X.create=function(vs,ps,saveName,nameMap){\r\n\t\treturn new Shader2X(vs,ps,saveName,nameMap);\r\n\t}\r\n\r\n\treturn Shader2X;\r\n})(Shader)\r\n\r\n\r\n//class laya.webgl.utils.IndexBuffer2D extends laya.webgl.utils.Buffer2D\r\nvar IndexBuffer2D=(function(_super){\r\n\tfunction IndexBuffer2D(bufferUsage){\r\n\t\tthis._uint8Array=null;\r\n\t\tthis._uint16Array=null;\r\n\t\t(bufferUsage===void 0)&& (bufferUsage=/*laya.webgl.WebGLContext.STATIC_DRAW*/0x88E4);\r\n\t\tIndexBuffer2D.__super.call(this);\r\n\t\tthis._bufferUsage=bufferUsage;\r\n\t\tthis._bufferType=/*laya.webgl.WebGLContext.ELEMENT_ARRAY_BUFFER*/0x8893;\r\n\t\tRender.isFlash || (this._buffer=new ArrayBuffer(8));\r\n\t}\r\n\r\n\t__class(IndexBuffer2D,'laya.webgl.utils.IndexBuffer2D',_super);\r\n\tvar __proto=IndexBuffer2D.prototype;\r\n\t__proto._checkArrayUse=function(){\r\n\t\tthis._uint8Array && (this._uint8Array=new Uint8Array(this._buffer));\r\n\t\tthis._uint16Array && (this._uint16Array=new Uint16Array(this._buffer));\r\n\t}\r\n\r\n\t__proto.getUint8Array=function(){\r\n\t\treturn this._uint8Array || (this._uint8Array=new Uint8Array(this._buffer));\r\n\t}\r\n\r\n\t__proto.getUint16Array=function(){\r\n\t\treturn this._uint16Array || (this._uint16Array=new Uint16Array(this._buffer));\r\n\t}\r\n\r\n\t__proto.destory=function(){\r\n\t\tthis._uint16Array=null;\r\n\t\tthis._uint8Array=null;\r\n\t\tthis._buffer=null;\r\n\t}\r\n\r\n\tIndexBuffer2D.QuadrangleIB=null;\r\n\tIndexBuffer2D.create=function(bufferUsage){\r\n\t\t(bufferUsage===void 0)&& (bufferUsage=/*laya.webgl.WebGLContext.STATIC_DRAW*/0x88E4);\r\n\t\treturn new IndexBuffer2D(bufferUsage);\r\n\t}\r\n\r\n\treturn IndexBuffer2D;\r\n})(Buffer2D)\r\n\r\n\r\n//class laya.webgl.utils.VertexBuffer2D extends laya.webgl.utils.Buffer2D\r\nvar VertexBuffer2D=(function(_super){\r\n\tfunction VertexBuffer2D(vertexStride,bufferUsage){\r\n\t\tthis._floatArray32=null;\r\n\t\tthis._vertexStride=0;\r\n\t\tVertexBuffer2D.__super.call(this);\r\n\t\tthis._vertexStride=vertexStride;\r\n\t\tthis._bufferUsage=bufferUsage;\r\n\t\tthis._bufferType=/*laya.webgl.WebGLContext.ARRAY_BUFFER*/0x8892;\r\n\t\tRender.isFlash || (this._buffer=new ArrayBuffer(8));\r\n\t\tthis.getFloat32Array();\r\n\t}\r\n\r\n\t__class(VertexBuffer2D,'laya.webgl.utils.VertexBuffer2D',_super);\r\n\tvar __proto=VertexBuffer2D.prototype;\r\n\t__proto.getFloat32Array=function(){\r\n\t\treturn this._floatArray32 || (this._floatArray32=new Float32Array(this._buffer));\r\n\t}\r\n\r\n\t__proto.bind=function(ibBuffer){\r\n\t\t(ibBuffer)&& (ibBuffer._bind());\r\n\t\tthis._bind();\r\n\t}\r\n\r\n\t__proto.insertData=function(data,pos){\r\n\t\tvar vbdata=this.getFloat32Array();\r\n\t\tvbdata.set(data,pos);\r\n\t\tthis._upload=true;\r\n\t}\r\n\r\n\t__proto.bind_upload=function(ibBuffer){\r\n\t\t(ibBuffer._bind_upload())|| (ibBuffer._bind());\r\n\t\t(this._bind_upload())|| (this._bind());\r\n\t}\r\n\r\n\t__proto._checkArrayUse=function(){\r\n\t\tthis._floatArray32 && (this._floatArray32=new Float32Array(this._buffer));\r\n\t}\r\n\r\n\t__proto.disposeResource=function(){\r\n\t\t_super.prototype.disposeResource.call(this);\r\n\t\tvar enableAtributes=Buffer._enableAtributes;\r\n\t\tif (!Render.isConchWebGL){\r\n\t\t\tfor (var i=0;i < 10;i++){\r\n\t\t\t\tWebGL.mainContext.disableVertexAttribArray(i);\r\n\t\t\t\tenableAtributes[i]=null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t//}\r\n\t__proto.destory=function(){\r\n\t\tthis._byteLength=0;\r\n\t\tthis._upload=true;\r\n\t\tthis._buffer=null;\r\n\t\tthis._floatArray32=null;\r\n\t}\r\n\r\n\t__getset(0,__proto,'vertexStride',function(){\r\n\t\treturn this._vertexStride;\r\n\t});\r\n\r\n\tVertexBuffer2D.create=function(vertexStride,bufferUsage){\r\n\t\t(bufferUsage===void 0)&& (bufferUsage=/*laya.webgl.WebGLContext.DYNAMIC_DRAW*/0x88E8);\r\n\t\treturn new VertexBuffer2D(vertexStride,bufferUsage);\r\n\t}\r\n\r\n\treturn VertexBuffer2D;\r\n})(Buffer2D)\r\n\r\n\r\n//class laya.webgl.resource.WebGLImage extends laya.resource.HTMLImage\r\nvar WebGLImage=(function(_super){\r\n\tfunction WebGLImage(data,def,format,mipmap){\r\n\t\t/**@private */\r\n\t\tthis._format=0;\r\n\t\t/**@private */\r\n\t\tthis._mipmap=false;\r\n\t\t/***是否创建私有Source,值为false时不根据src创建私有WebGLTexture,同时销毁时也只清空source=null,不调用WebGL.mainContext.deleteTexture类似函数，调用资源激活前有效*/\r\n\t\tthis._allowMerageInAtlas=false;\r\n\t\t/**是否允许加入大图合集*/\r\n\t\tthis._enableMerageInAtlas=false;\r\n\t\t/**是否使用重复模式纹理寻址*/\r\n\t\tthis.repeat=false;\r\n\t\t/**@private */\r\n\t\tthis._image=null;\r\n\t\t/**缩小过滤器*/\r\n\t\tthis.minFifter=0;\r\n\t\t/**放大过滤器*/\r\n\t\tthis.magFifter=0;\r\n\t\t(format===void 0)&& (format=/*laya.webgl.WebGLContext.RGBA*/0x1908);\r\n\t\t(mipmap===void 0)&& (mipmap=true);\r\n\t\tWebGLImage.__super.call(this,data,def);\r\n\t\tthis._format=format;\r\n\t\tthis._mipmap=mipmap;\r\n\t\tthis.repeat=false;\r\n\t\tthis.minFifter=-1;\r\n\t\tthis.magFifter=-1;\r\n\t\tif ((typeof data=='string')){\r\n\t\t\tthis._url=data;\r\n\t\t\tthis._src=data;\r\n\t\t\tthis._image=new Browser.window.Image();\r\n\t\t\tif (def){\r\n\t\t\t\tdef.onload && (this.onload=def.onload);\r\n\t\t\t\tdef.onerror && (this.onerror=def.onerror);\r\n\t\t\t\tdef.onCreate && def.onCreate(this);\r\n\t\t\t}\r\n\t\t\tthis._image.crossOrigin=(data && (data.indexOf(\"data:\")==0))? null :\"\";\r\n\t\t\t(data)&& (this._image.src=data);\r\n\t\t\t}else if ((data instanceof ArrayBuffer)){\r\n\t\t\tthis._src=def;\r\n\t\t\tthis._url=this._src;\r\n\t\t\tvar readData=new Byte(data);\r\n\t\t\tvar magicNumber=readData.readUTFBytes(4);\r\n\t\t\tvar version=readData.readUTFBytes(2);\r\n\t\t\tvar dataType=readData.getInt16();\r\n\t\t\treadData.endian=/*laya.utils.Byte.BIG_ENDIAN*/\"bigEndian\";\r\n\t\t\tthis._w=readData.getInt16();\r\n\t\t\tthis._h=readData.getInt16();\r\n\t\t\tvar originalWidth=readData.getInt16();\r\n\t\t\tvar originalHeight=readData.getInt16();\r\n\t\t\tthis._image=new Uint8Array(data,readData.pos);\r\n\t\t\tthis._format=WebGL.compressEtc1.COMPRESSED_RGB_ETC1_WEBGL;\r\n\t\t\t(AtlasResourceManager.enabled)&& (this._w < AtlasResourceManager.atlasLimitWidth && this._h < AtlasResourceManager.atlasLimitHeight)? this._allowMerageInAtlas=true :this._allowMerageInAtlas=false;\r\n\t\t\t}else {\r\n\t\t\tthis._src=def;\r\n\t\t\tthis._url=this._src;\r\n\t\t\tthis._image=data[\"source\"] || data;\r\n\t\t\tthis.onresize();\r\n\t\t}\r\n\t\tthis._$5__enableMerageInAtlas=true;\r\n\t}\r\n\r\n\t__class(WebGLImage,'laya.webgl.resource.WebGLImage',_super);\r\n\tvar __proto=WebGLImage.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.resource.IMergeAtlasBitmap\":true})\r\n\t__proto._init_=function(src,def){}\r\n\t__proto._createWebGlTexture=function(){\r\n\t\tif (!this._image){\r\n\t\t\tthrow \"create GLTextur err:no data:\"+this._image;\r\n\t\t};\r\n\t\tvar gl=WebGL.mainContext;\r\n\t\tvar glTex=this._source=gl.createTexture();\r\n\t\tvar preTarget=WebGLContext.curBindTexTarget;\r\n\t\tvar preTexture=WebGLContext.curBindTexValue;\r\n\t\tWebGLContext.bindTexture(gl,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,glTex);\r\n\t\tif (Render.isConchWebGL){\r\n\t\t\tswitch (this._format){\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.RGBA*/0x1908:\r\n\t\t\t\t\tgl.texImage2DEx(true,/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,this._format,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,this._image);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase WebGL.compressEtc1.COMPRESSED_RGB_ETC1_WEBGL:\r\n\t\t\t\t\tgl.compressedTexImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,this._format,this._w,this._h,0,this._image);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,true);\r\n\t\t\tswitch (this._format){\r\n\t\t\t\tcase /*laya.webgl.WebGLContext.RGBA*/0x1908:\r\n\t\t\t\t\tgl.texImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,this._format,/*laya.webgl.WebGLContext.RGBA*/0x1908,/*laya.webgl.WebGLContext.UNSIGNED_BYTE*/0x1401,this._image);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase WebGL.compressEtc1.COMPRESSED_RGB_ETC1_WEBGL:\r\n\t\t\t\t\tgl.compressedTexImage2D(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,0,this._format,this._w,this._h,0,this._image);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\tgl.pixelStorei(/*laya.webgl.WebGLContext.UNPACK_PREMULTIPLY_ALPHA_WEBGL*/0x9241,false);\r\n\t\t};\r\n\t\tvar minFifter=this.minFifter;\r\n\t\tvar magFifter=this.magFifter;\r\n\t\tvar repeat=this.repeat ? /*laya.webgl.WebGLContext.REPEAT*/0x2901 :/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F;\r\n\t\tvar isPot=Arith.isPOT(this._w,this._h);\r\n\t\tif (isPot){\r\n\t\t\tif (this.mipmap)\r\n\t\t\t\t(minFifter!==-1)|| (minFifter=/*laya.webgl.WebGLContext.LINEAR_MIPMAP_LINEAR*/0x2703);\r\n\t\t\telse\r\n\t\t\t(minFifter!==-1)|| (minFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\t\t(magFifter!==-1)|| (magFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MIN_FILTER*/0x2801,minFifter);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MAG_FILTER*/0x2800,magFifter);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_S*/0x2802,repeat);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_T*/0x2803,repeat);\r\n\t\t\tthis.mipmap && gl.generateMipmap(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1);\r\n\t\t\t}else {\r\n\t\t\t(minFifter!==-1)|| (minFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\t\t(magFifter!==-1)|| (magFifter=/*laya.webgl.WebGLContext.LINEAR*/0x2601);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MIN_FILTER*/0x2801,minFifter);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_MAG_FILTER*/0x2800,magFifter);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_S*/0x2802,/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F);\r\n\t\t\tgl.texParameteri(/*laya.webgl.WebGLContext.TEXTURE_2D*/0x0DE1,/*laya.webgl.WebGLContext.TEXTURE_WRAP_T*/0x2803,/*laya.webgl.WebGLContext.CLAMP_TO_EDGE*/0x812F);\r\n\t\t}\r\n\t\t(preTarget && preTexture)&& (WebGLContext.bindTexture(gl,preTarget,preTexture));\r\n\t\tthis._image.onload=null;\r\n\t\tthis._image=null;\r\n\t\tif (isPot && this.mipmap)\r\n\t\t\tthis.memorySize=this._w *this._h *4 *(1+1 / 3);\r\n\t\telse\r\n\t\tthis.memorySize=this._w *this._h *4;\r\n\t\tthis._recreateLock=false;\r\n\t}\r\n\r\n\t/***重新创建资源，如果异步创建中被强制释放再创建，则需等待释放完成后再重新加载创建。*/\r\n\t__proto.recreateResource=function(){\r\n\t\tvar _$this=this;\r\n\t\tif (this._src==null || this._src===\"\")\r\n\t\t\treturn;\r\n\t\tthis._needReleaseAgain=false;\r\n\t\tif (!this._image){\r\n\t\t\tthis._recreateLock=true;\r\n\t\t\tvar _this=this;\r\n\t\t\tthis._image=new Browser.window.Image();\r\n\t\t\tthis._image.crossOrigin=this._src.indexOf(\"data:\")==0 ? null :\"\";\r\n\t\t\tthis._image.onload=function (){\r\n\t\t\t\tif (_this._needReleaseAgain){\r\n\t\t\t\t\t_this._needReleaseAgain=false;\r\n\t\t\t\t\t_this._image.onload=null;\r\n\t\t\t\t\t_this._image=null;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t(!(_this._allowMerageInAtlas && _this._enableMerageInAtlas))? (_this._createWebGlTexture()):(_$this.memorySize=0,_$this._recreateLock=false);\r\n\t\t\t\t_this.completeCreate();\r\n\t\t\t};\r\n\t\t\tthis._image.src=this._src;\r\n\t\t\t}else {\r\n\t\t\tif (this._recreateLock){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t(!(this._allowMerageInAtlas && this._$5__enableMerageInAtlas))? (this._createWebGlTexture()):(this.memorySize=0,this._recreateLock=false);\r\n\t\t\tthis.completeCreate();\r\n\t\t}\r\n\t}\r\n\r\n\t/***销毁资源*/\r\n\t__proto.disposeResource=function(){\r\n\t\tif (this._recreateLock){\r\n\t\t\tthis._needReleaseAgain=true;\r\n\t\t}\r\n\t\tif (this._source){\r\n\t\t\tWebGL.mainContext.deleteTexture(this._source);\r\n\t\t\tthis._source=null;\r\n\t\t\tthis._image=null;\r\n\t\t\tthis.memorySize=0;\r\n\t\t}\r\n\t}\r\n\r\n\t/***调整尺寸*/\r\n\t__proto.onresize=function(){\r\n\t\tthis._w=this._image.width;\r\n\t\tthis._h=this._image.height;\r\n\t\t(AtlasResourceManager.enabled)&& (this._w < AtlasResourceManager.atlasLimitWidth && this._h < AtlasResourceManager.atlasLimitHeight)? this._allowMerageInAtlas=true :this._allowMerageInAtlas=false;\r\n\t}\r\n\r\n\t__proto.clearAtlasSource=function(){\r\n\t\tthis._image=null;\r\n\t}\r\n\r\n\t/**\r\n\t*获取纹理格式。\r\n\t*/\r\n\t__getset(0,__proto,'format',function(){\r\n\t\treturn this._format;\r\n\t});\r\n\r\n\t/**\r\n\t*是否创建私有Source,通常禁止修改\r\n\t*@param value 是否创建\r\n\t*/\r\n\t/**\r\n\t*是否创建私有Source\r\n\t*@return 是否创建\r\n\t*/\r\n\t__getset(0,__proto,'enableMerageInAtlas',function(){\r\n\t\treturn this._$5__enableMerageInAtlas;\r\n\t\t},function(value){\r\n\t\tthis._$5__enableMerageInAtlas=value;\r\n\t});\r\n\r\n\t/**\r\n\t*获取是否具有mipmap。\r\n\t*/\r\n\t__getset(0,__proto,'mipmap',function(){\r\n\t\treturn this._mipmap;\r\n\t});\r\n\r\n\t/**\r\n\t*是否创建私有Source\r\n\t*@return 是否创建\r\n\t*/\r\n\t__getset(0,__proto,'allowMerageInAtlas',function(){\r\n\t\treturn this._allowMerageInAtlas;\r\n\t});\r\n\r\n\t__getset(0,__proto,'atlasSource',function(){\r\n\t\treturn this._image;\r\n\t});\r\n\r\n\t/***\r\n\t*设置onload函数\r\n\t*@param value onload函数\r\n\t*/\r\n\t__getset(0,__proto,'onload',null,function(value){\r\n\t\tvar _$this=this;\r\n\t\tthis._onload=value;\r\n\t\tthis._image && (this._image.onload=this._onload !=null ? (function(){\r\n\t\t\t_$this.onresize();\r\n\t\t\t_$this._onload();\r\n\t\t}):null);\r\n\t});\r\n\r\n\t/***\r\n\t*设置onerror函数\r\n\t*@param value onerror函数\r\n\t*/\r\n\t__getset(0,__proto,'onerror',null,function(value){\r\n\t\tvar _$this=this;\r\n\t\tthis._onerror=value;\r\n\t\tthis._image && (this._image.onerror=this._onerror !=null ? (function(){\r\n\t\t\t_$this._onerror()\r\n\t\t}):null);\r\n\t});\r\n\r\n\treturn WebGLImage;\r\n})(HTMLImage)\r\n\r\n\r\n\tLaya.__init([DrawText,AtlasGrid,WebGLContext2D,ShaderCompile]);\r\n})(window,document,Laya);\r\n\r\nif (typeof define === 'function' && define.amd){\r\n\tdefine('laya.core', ['require', \"exports\"], function(require, exports) {\r\n        'use strict';\r\n        Object.defineProperty(exports, '__esModule', { value: true });\r\n        for (var i in Laya) {\r\n\t\t\tvar o = Laya[i];\r\n            o && o.__isclass && (exports[i] = o);\r\n        }\r\n    });\r\n}","\r\n(function(window,document,Laya){\r\n\tvar __un=Laya.un,__uns=Laya.uns,__static=Laya.static,__class=Laya.class,__getset=Laya.getset,__newvec=Laya.__newvec;\r\n\r\n\tvar Bezier=laya.maths.Bezier,Browser=laya.utils.Browser,Byte=laya.utils.Byte,Event=laya.events.Event;\r\n\tvar EventDispatcher=laya.events.EventDispatcher,Graphics=laya.display.Graphics,HTMLCanvas=laya.resource.HTMLCanvas;\r\n\tvar Handler=laya.utils.Handler,Loader=laya.net.Loader,MathUtil=laya.maths.MathUtil,Matrix=laya.maths.Matrix;\r\n\tvar Node=laya.display.Node,Point=laya.maths.Point,Rectangle=laya.maths.Rectangle,Render=laya.renders.Render;\r\n\tvar RenderContext=laya.renders.RenderContext,Resource=laya.resource.Resource,RunDriver=laya.utils.RunDriver;\r\n\tvar Sprite=laya.display.Sprite,Stat=laya.utils.Stat,Texture=laya.resource.Texture,URL=laya.net.URL,Utils=laya.utils.Utils;\r\n/**\r\n*@private\r\n*@author ...\r\n*/\r\n//class laya.ani.AnimationContent\r\nvar AnimationContent=(function(){\r\n\tfunction AnimationContent(){\r\n\t\tthis.nodes=null;\r\n\t\tthis.name=null;\r\n\t\tthis.playTime=NaN;\r\n\t\tthis.bone3DMap=null;\r\n\t\tthis.totalKeyframeDatasLength=0;\r\n\t}\r\n\r\n\t__class(AnimationContent,'laya.ani.AnimationContent');\r\n\treturn AnimationContent;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*@author ...\r\n*/\r\n//class laya.ani.AnimationNodeContent\r\nvar AnimationNodeContent=(function(){\r\n\tfunction AnimationNodeContent(){\r\n\t\tthis.name=null;\r\n\t\tthis.parentIndex=0;\r\n\t\tthis.parent=null;\r\n\t\tthis.keyframeWidth=0;\r\n\t\tthis.lerpType=0;\r\n\t\tthis.interpolationMethod=null;\r\n\t\tthis.childs=null;\r\n\t\tthis.keyFrame=null;\r\n\t\t//=new Vector.<KeyFramesContent>;\r\n\t\tthis.playTime=NaN;\r\n\t\tthis.extenData=null;\r\n\t\tthis.dataOffset=0;\r\n\t}\r\n\r\n\t__class(AnimationNodeContent,'laya.ani.AnimationNodeContent');\r\n\treturn AnimationNodeContent;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.AnimationParser01\r\nvar AnimationParser01=(function(){\r\n\tfunction AnimationParser01(){}\r\n\t__class(AnimationParser01,'laya.ani.AnimationParser01');\r\n\tAnimationParser01.parse=function(templet,reader){\r\n\t\tvar data=reader.__getBuffer();\r\n\t\tvar i=0,j=0,k=0,n=0,l=0,m=0,o=0;\r\n\t\tvar aniClassName=reader.readUTFString();\r\n\t\ttemplet._aniClassName=aniClassName;\r\n\t\tvar strList=reader.readUTFString().split(\"\\n\");\r\n\t\tvar aniCount=reader.getUint8();\r\n\t\tvar publicDataPos=reader.getUint32();\r\n\t\tvar publicExtDataPos=reader.getUint32();\r\n\t\tvar publicData;\r\n\t\tif (publicDataPos > 0)\r\n\t\t\tpublicData=data.slice(publicDataPos,publicExtDataPos);\r\n\t\tvar publicRead=new Byte(publicData);\r\n\t\tif (publicExtDataPos > 0)\r\n\t\t\ttemplet._publicExtData=data.slice(publicExtDataPos,data.byteLength);\r\n\t\ttemplet._useParent=!!reader.getUint8();\r\n\t\ttemplet._anis.length=aniCount;\r\n\t\tfor (i=0;i < aniCount;i++){\r\n\t\t\tvar ani=templet._anis[i]=new AnimationContent();\r\n\t\t\t{};\r\n\t\t\tani.nodes=new Array;\r\n\t\t\tvar name=ani.name=strList[reader.getUint16()];\r\n\t\t\ttemplet._aniMap[name]=i;\r\n\t\t\tani.bone3DMap={};\r\n\t\t\tani.playTime=reader.getFloat32();\r\n\t\t\tvar boneCount=ani.nodes.length=reader.getUint8();\r\n\t\t\tani.totalKeyframeDatasLength=0;\r\n\t\t\tfor (j=0;j < boneCount;j++){\r\n\t\t\t\tvar node=ani.nodes[j]=new AnimationNodeContent();\r\n\t\t\t\t{};\r\n\t\t\t\tnode.childs=[];\r\n\t\t\t\tvar nameIndex=reader.getInt16();\r\n\t\t\t\tif (nameIndex >=0){\r\n\t\t\t\t\tnode.name=strList[nameIndex];\r\n\t\t\t\t\tani.bone3DMap[node.name]=j;\r\n\t\t\t\t}\r\n\t\t\t\tnode.keyFrame=new Array;\r\n\t\t\t\tnode.parentIndex=reader.getInt16();\r\n\t\t\t\tnode.parentIndex==-1 ? node.parent=null :node.parent=ani.nodes[node.parentIndex]\r\n\t\t\t\tnode.lerpType=reader.getUint8();\r\n\t\t\t\tvar keyframeParamsOffset=reader.getUint32();\r\n\t\t\t\tpublicRead.pos=keyframeParamsOffset;\r\n\t\t\t\tvar keyframeDataCount=node.keyframeWidth=publicRead.getUint16();\r\n\t\t\t\tani.totalKeyframeDatasLength+=keyframeDataCount;\r\n\t\t\t\tif (node.lerpType===0 || node.lerpType===1){\r\n\t\t\t\t\tnode.interpolationMethod=[];\r\n\t\t\t\t\tnode.interpolationMethod.length=keyframeDataCount;\r\n\t\t\t\t\tfor (k=0;k < keyframeDataCount;k++)\r\n\t\t\t\t\tnode.interpolationMethod[k]=AnimationTemplet.interpolation[publicRead.getUint8()];\r\n\t\t\t\t}\r\n\t\t\t\tif (node.parent !=null)\r\n\t\t\t\t\tnode.parent.childs.push(node);\r\n\t\t\t\tvar privateDataLen=reader.getUint16();\r\n\t\t\t\tif (privateDataLen > 0){\r\n\t\t\t\t\tnode.extenData=data.slice(reader.pos,reader.pos+privateDataLen);\r\n\t\t\t\t\treader.pos+=privateDataLen;\r\n\t\t\t\t};\r\n\t\t\t\tvar keyframeCount=reader.getUint16();\r\n\t\t\t\tnode.keyFrame.length=keyframeCount;\r\n\t\t\t\tvar startTime=0;\r\n\t\t\t\tvar keyFrame;\r\n\t\t\t\tfor (k=0,n=keyframeCount;k < n;k++){\r\n\t\t\t\t\tkeyFrame=node.keyFrame[k]=new KeyFramesContent();\r\n\t\t\t\t\t{};\r\n\t\t\t\t\tkeyFrame.duration=reader.getFloat32();\r\n\t\t\t\t\tkeyFrame.startTime=startTime;\r\n\t\t\t\t\tif (node.lerpType===2){\r\n\t\t\t\t\t\tkeyFrame.interpolationData=[];\r\n\t\t\t\t\t\tvar interDataLength=reader.getUint8();\r\n\t\t\t\t\t\tvar lerpType=0;\r\n\t\t\t\t\t\tlerpType=reader.getFloat32();\r\n\t\t\t\t\t\tswitch (lerpType){\r\n\t\t\t\t\t\t\tcase 254:\r\n\t\t\t\t\t\t\t\tkeyFrame.interpolationData.length=keyframeDataCount;\r\n\t\t\t\t\t\t\t\tfor (o=0;o < keyframeDataCount;o++)\r\n\t\t\t\t\t\t\t\tkeyFrame.interpolationData[o]=0;\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tcase 255:\r\n\t\t\t\t\t\t\t\tkeyFrame.interpolationData.length=keyframeDataCount;\r\n\t\t\t\t\t\t\t\tfor (o=0;o < keyframeDataCount;o++)\r\n\t\t\t\t\t\t\t\tkeyFrame.interpolationData[o]=5;\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tdefault :\r\n\t\t\t\t\t\t\t\tkeyFrame.interpolationData.push(lerpType);\r\n\t\t\t\t\t\t\t\tfor (m=1;m < interDataLength;m++){\r\n\t\t\t\t\t\t\t\t\tkeyFrame.interpolationData.push(reader.getFloat32());\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tkeyFrame.data=new Float32Array(keyframeDataCount);\r\n\t\t\t\t\tfor (l=0;l < keyframeDataCount;l++){\r\n\t\t\t\t\t\tkeyFrame.data[l]=reader.getFloat32();\r\n\t\t\t\t\t\tif (keyFrame.data[l] >-0.00000001 && keyFrame.data[l] < 0.00000001)keyFrame.data[l]=0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstartTime+=keyFrame.duration;\r\n\t\t\t\t}\r\n\t\t\t\tkeyFrame.startTime=ani.playTime;\r\n\t\t\t\tnode.playTime=ani.playTime;\r\n\t\t\t\ttemplet._calculateKeyFrame(node,keyframeCount,keyframeDataCount);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn AnimationParser01;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.AnimationParser02\r\nvar AnimationParser02=(function(){\r\n\tfunction AnimationParser02(){}\r\n\t__class(AnimationParser02,'laya.ani.AnimationParser02');\r\n\tAnimationParser02.READ_DATA=function(){\r\n\t\tAnimationParser02._DATA.offset=AnimationParser02._reader.getUint32();\r\n\t\tAnimationParser02._DATA.size=AnimationParser02._reader.getUint32();\r\n\t}\r\n\r\n\tAnimationParser02.READ_BLOCK=function(){\r\n\t\tvar count=AnimationParser02._BLOCK.count=AnimationParser02._reader.getUint16();\r\n\t\tvar blockStarts=AnimationParser02._BLOCK.blockStarts=[];\r\n\t\tvar blockLengths=AnimationParser02._BLOCK.blockLengths=[];\r\n\t\tfor (var i=0;i < count;i++){\r\n\t\t\tblockStarts.push(AnimationParser02._reader.getUint32());\r\n\t\t\tblockLengths.push(AnimationParser02._reader.getUint32());\r\n\t\t}\r\n\t}\r\n\r\n\tAnimationParser02.READ_STRINGS=function(){\r\n\t\tvar offset=AnimationParser02._reader.getUint32();\r\n\t\tvar count=AnimationParser02._reader.getUint16();\r\n\t\tvar prePos=AnimationParser02._reader.pos;\r\n\t\tAnimationParser02._reader.pos=offset+AnimationParser02._DATA.offset;\r\n\t\tfor (var i=0;i < count;i++)\r\n\t\tAnimationParser02._strings[i]=AnimationParser02._reader.readUTFString();\r\n\t\tAnimationParser02._reader.pos=prePos;\r\n\t}\r\n\r\n\tAnimationParser02.parse=function(templet,reader){\r\n\t\tAnimationParser02._templet=templet;\r\n\t\tAnimationParser02._reader=reader;\r\n\t\tvar arrayBuffer=reader.__getBuffer();\r\n\t\tAnimationParser02.READ_DATA();\r\n\t\tAnimationParser02.READ_BLOCK();\r\n\t\tAnimationParser02.READ_STRINGS();\r\n\t\tfor (var i=0,n=AnimationParser02._BLOCK.count;i < n;i++){\r\n\t\t\tvar index=reader.getUint16();\r\n\t\t\tvar blockName=AnimationParser02._strings[index];\r\n\t\t\tvar fn=AnimationParser02[\"READ_\"+blockName];\r\n\t\t\tif (fn==null)\r\n\t\t\t\tthrow new Error(\"model file err,no this function:\"+index+\" \"+blockName);\r\n\t\t\telse\r\n\t\t\tfn.call();\r\n\t\t}\r\n\t}\r\n\r\n\tAnimationParser02.READ_ANIMATIONS=function(){\r\n\t\tvar reader=AnimationParser02._reader;\r\n\t\tvar arrayBuffer=reader.__getBuffer();\r\n\t\tvar i=0,j=0,k=0,n=0,l=0;\r\n\t\tvar keyframeWidth=reader.getUint16();\r\n\t\tvar interpolationMethod=[];\r\n\t\tinterpolationMethod.length=keyframeWidth;\r\n\t\tfor (i=0;i < keyframeWidth;i++)\r\n\t\tinterpolationMethod[i]=AnimationTemplet.interpolation[reader.getByte()];\r\n\t\tvar aniCount=reader.getUint8();\r\n\t\tAnimationParser02._templet._anis.length=aniCount;\r\n\t\tfor (i=0;i < aniCount;i++){\r\n\t\t\tvar ani=AnimationParser02._templet._anis[i]=\r\n\t\t\t{};\r\n\t\t\tani.nodes=new Array;\r\n\t\t\tvar aniName=ani.name=AnimationParser02._strings[reader.getUint16()];\r\n\t\t\tAnimationParser02._templet._aniMap[aniName]=i;\r\n\t\t\tani.bone3DMap={};\r\n\t\t\tani.playTime=reader.getFloat32();\r\n\t\t\tvar boneCount=ani.nodes.length=reader.getInt16();\r\n\t\t\tani.totalKeyframeDatasLength=0;\r\n\t\t\tfor (j=0;j < boneCount;j++){\r\n\t\t\t\tvar node=ani.nodes[j]=\r\n\t\t\t\t{};\r\n\t\t\t\tnode.keyframeWidth=keyframeWidth;\r\n\t\t\t\tnode.childs=[];\r\n\t\t\t\tvar nameIndex=reader.getUint16();\r\n\t\t\t\tif (nameIndex >=0){\r\n\t\t\t\t\tnode.name=AnimationParser02._strings[nameIndex];\r\n\t\t\t\t\tani.bone3DMap[node.name]=j;\r\n\t\t\t\t}\r\n\t\t\t\tnode.keyFrame=new Array;\r\n\t\t\t\tnode.parentIndex=reader.getInt16();\r\n\t\t\t\tnode.parentIndex==-1 ? node.parent=null :node.parent=ani.nodes[node.parentIndex]\r\n\t\t\t\tani.totalKeyframeDatasLength+=keyframeWidth;\r\n\t\t\t\tnode.interpolationMethod=interpolationMethod;\r\n\t\t\t\tif (node.parent !=null)\r\n\t\t\t\t\tnode.parent.childs.push(node);\r\n\t\t\t\tvar keyframeCount=reader.getUint16();\r\n\t\t\t\tnode.keyFrame.length=keyframeCount;\r\n\t\t\t\tvar keyFrame=null,lastKeyFrame=null;\r\n\t\t\t\tfor (k=0,n=keyframeCount;k < n;k++){\r\n\t\t\t\t\tkeyFrame=node.keyFrame[k]=\r\n\t\t\t\t\t{};\r\n\t\t\t\t\tkeyFrame.startTime=reader.getFloat32();\r\n\t\t\t\t\t(lastKeyFrame)&& (lastKeyFrame.duration=keyFrame.startTime-lastKeyFrame.startTime);\r\n\t\t\t\t\tvar offset=AnimationParser02._DATA.offset;\r\n\t\t\t\t\tvar keyframeDataOffset=reader.getUint32();\r\n\t\t\t\t\tvar keyframeDataLength=keyframeWidth *4;\r\n\t\t\t\t\tvar keyframeArrayBuffer=arrayBuffer.slice(offset+keyframeDataOffset,offset+keyframeDataOffset+keyframeDataLength);\r\n\t\t\t\t\tkeyFrame.data=new Float32Array(keyframeArrayBuffer);\r\n\t\t\t\t\tlastKeyFrame=keyFrame;\r\n\t\t\t\t}\r\n\t\t\t\tkeyFrame.duration=0;\r\n\t\t\t\tnode.playTime=ani.playTime;\r\n\t\t\t\tAnimationParser02._templet._calculateKeyFrame(node,keyframeCount,keyframeWidth);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tAnimationParser02._templet=null;\r\n\tAnimationParser02._reader=null;\r\n\tAnimationParser02._strings=[];\r\n\t__static(AnimationParser02,\r\n\t['_BLOCK',function(){return this._BLOCK={count:0};},'_DATA',function(){return this._DATA={offset:0,size:0};}\r\n\t]);\r\n\treturn AnimationParser02;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.AnimationState\r\nvar AnimationState=(function(){\r\n\tfunction AnimationState(){}\r\n\t__class(AnimationState,'laya.ani.AnimationState');\r\n\tAnimationState.stopped=0;\r\n\tAnimationState.paused=1;\r\n\tAnimationState.playing=2;\r\n\treturn AnimationState;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.Bone\r\nvar Bone=(function(){\r\n\tfunction Bone(){\r\n\t\tthis.name=null;\r\n\t\tthis.root=null;\r\n\t\tthis.parentBone=null;\r\n\t\tthis.length=10;\r\n\t\tthis.transform=null;\r\n\t\tthis.inheritScale=true;\r\n\t\tthis.inheritRotation=true;\r\n\t\tthis.rotation=NaN;\r\n\t\tthis.resultRotation=NaN;\r\n\t\tthis.d=-1;\r\n\t\tthis._tempMatrix=null;\r\n\t\tthis._sprite=null;\r\n\t\tthis.resultTransform=new Transform();\r\n\t\tthis.resultMatrix=new Matrix();\r\n\t\tthis._children=[];\r\n\t}\r\n\r\n\t__class(Bone,'laya.ani.bone.Bone');\r\n\tvar __proto=Bone.prototype;\r\n\t__proto.setTempMatrix=function(matrix){\r\n\t\tthis._tempMatrix=matrix;\r\n\t\tvar i=0,n=0;\r\n\t\tvar tBone;\r\n\t\tfor (i=0,n=this._children.length;i < n;i++){\r\n\t\t\ttBone=this._children[i];\r\n\t\t\ttBone.setTempMatrix(this._tempMatrix);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.update=function(pMatrix){\r\n\t\tthis.rotation=this.transform.skX;\r\n\t\tvar tResultMatrix;\r\n\t\tif (pMatrix){\r\n\t\t\ttResultMatrix=this.resultTransform.getMatrix();\r\n\t\t\tMatrix.mul(tResultMatrix,pMatrix,this.resultMatrix);\r\n\t\t\tthis.resultRotation=this.rotation;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.resultRotation=this.rotation+this.parentBone.resultRotation;\r\n\t\t\tif (this.parentBone){\r\n\t\t\t\tif (this.inheritRotation && this.inheritScale){\r\n\t\t\t\t\ttResultMatrix=this.resultTransform.getMatrix();\r\n\t\t\t\t\tMatrix.mul(tResultMatrix,this.parentBone.resultMatrix,this.resultMatrix);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvar temp=0;\r\n\t\t\t\t\tvar parent=this.parentBone;\r\n\t\t\t\t\tvar tAngle=NaN;\r\n\t\t\t\t\tvar cos=NaN;\r\n\t\t\t\t\tvar sin=NaN;\r\n\t\t\t\t\tvar tParentMatrix=this.parentBone.resultMatrix;\r\n\t\t\t\t\ttResultMatrix=this.resultTransform.getMatrix();\r\n\t\t\t\t\tvar worldX=tParentMatrix.a *tResultMatrix.tx+tParentMatrix.c *tResultMatrix.ty+tParentMatrix.tx;\r\n\t\t\t\t\tvar worldY=tParentMatrix.b *tResultMatrix.tx+tParentMatrix.d *tResultMatrix.ty+tParentMatrix.ty;\r\n\t\t\t\t\tvar tTestMatrix=new Matrix();\r\n\t\t\t\t\tif (this.inheritRotation){\r\n\t\t\t\t\t\ttAngle=Math.atan2(parent.resultMatrix.b,parent.resultMatrix.a);\r\n\t\t\t\t\t\tcos=Math.cos(tAngle),sin=Math.sin(tAngle);\r\n\t\t\t\t\t\ttTestMatrix.setTo(cos,sin,-sin,cos,0,0);\r\n\t\t\t\t\t\tMatrix.mul(this._tempMatrix,tTestMatrix,Matrix.TEMP);\r\n\t\t\t\t\t\tMatrix.TEMP.copyTo(tTestMatrix);\r\n\t\t\t\t\t\ttResultMatrix=this.resultTransform.getMatrix();\r\n\t\t\t\t\t\tMatrix.mul(tResultMatrix,tTestMatrix,this.resultMatrix);\r\n\t\t\t\t\t\tif (this.resultTransform.scX *this.resultTransform.scY < 0){\r\n\t\t\t\t\t\t\tthis.resultMatrix.rotate(Math.PI*0.5);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.resultMatrix.tx=worldX;\r\n\t\t\t\t\t\tthis.resultMatrix.ty=worldY;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if (this.inheritScale){\r\n\t\t\t\t\t\ttResultMatrix=this.resultTransform.getMatrix();\r\n\t\t\t\t\t\tMatrix.TEMP.identity();\r\n\t\t\t\t\t\tMatrix.TEMP.d=this.d;\r\n\t\t\t\t\t\tMatrix.mul(tResultMatrix,Matrix.TEMP,this.resultMatrix);\r\n\t\t\t\t\t\tthis.resultMatrix.tx=worldX;\r\n\t\t\t\t\t\tthis.resultMatrix.ty=worldY;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttResultMatrix=this.resultTransform.getMatrix();\r\n\t\t\t\t\t\tMatrix.TEMP.identity();\r\n\t\t\t\t\t\tMatrix.TEMP.d=this.d;\r\n\t\t\t\t\t\tMatrix.mul(tResultMatrix,Matrix.TEMP,this.resultMatrix);\r\n\t\t\t\t\t\tthis.resultMatrix.tx=worldX;\r\n\t\t\t\t\t\tthis.resultMatrix.ty=worldY;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttResultMatrix=this.resultTransform.getMatrix();\r\n\t\t\t\ttResultMatrix.copyTo(this.resultMatrix);\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar i=0,n=0;\r\n\t\tvar tBone;\r\n\t\tfor (i=0,n=this._children.length;i < n;i++){\r\n\t\t\ttBone=this._children[i];\r\n\t\t\ttBone.update();\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.updateChild=function(){\r\n\t\tvar i=0,n=0;\r\n\t\tvar tBone;\r\n\t\tfor (i=0,n=this._children.length;i < n;i++){\r\n\t\t\ttBone=this._children[i];\r\n\t\t\ttBone.update();\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.setRotation=function(rd){\r\n\t\tif (this._sprite){\r\n\t\t\tthis._sprite.rotation=rd *180 / Math.PI;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.updateDraw=function(x,y){\r\n\t\tif (!Bone.ShowBones || Bone.ShowBones[this.name]){\r\n\t\t\tif (this._sprite){\r\n\t\t\t\tthis._sprite.x=x+this.resultMatrix.tx;\r\n\t\t\t\tthis._sprite.y=y+this.resultMatrix.ty;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis._sprite=new Sprite();\r\n\t\t\t\tthis._sprite.graphics.drawCircle(0,0,5,\"#ff0000\");\r\n\t\t\t\tthis._sprite.graphics.drawLine(0,0,this.length,0,\"#00ff00\");\r\n\t\t\t\tthis._sprite.graphics.fillText(this.name,0,0,\"20px Arial\",\"#00ff00\",\"center\");\r\n\t\t\t\tLaya.stage.addChild(this._sprite);\r\n\t\t\t\tthis._sprite.x=x+this.resultMatrix.tx;\r\n\t\t\t\tthis._sprite.y=y+this.resultMatrix.ty;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar i=0,n=0;\r\n\t\tvar tBone;\r\n\t\tfor (i=0,n=this._children.length;i < n;i++){\r\n\t\t\ttBone=this._children[i];\r\n\t\t\ttBone.updateDraw(x,y);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.addChild=function(bone){\r\n\t\tthis._children.push(bone);\r\n\t\tbone.parentBone=this;\r\n\t}\r\n\r\n\t__proto.findBone=function(boneName){\r\n\t\tif (this.name==boneName){\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tvar i=0,n=0;\r\n\t\t\tvar tBone;\r\n\t\t\tvar tResult;\r\n\t\t\tfor (i=0,n=this._children.length;i < n;i++){\r\n\t\t\t\ttBone=this._children[i];\r\n\t\t\t\ttResult=tBone.findBone(boneName);\r\n\t\t\t\tif (tResult){\r\n\t\t\t\t\treturn tResult;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t__proto.localToWorld=function(local){\r\n\t\tvar localX=local[0];\r\n\t\tvar localY=local[1];\r\n\t\tlocal[0]=localX *this.resultMatrix.a+localY *this.resultMatrix.c+this.resultMatrix.tx;\r\n\t\tlocal[1]=localX *this.resultMatrix.b+localY *this.resultMatrix.d+this.resultMatrix.ty;\r\n\t}\r\n\r\n\tBone.ShowBones={};\r\n\treturn Bone;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.BoneSlot\r\nvar BoneSlot=(function(){\r\n\tfunction BoneSlot(){\r\n\t\t/**插槽名称 */\r\n\t\tthis.name=null;\r\n\t\t/**插槽绑定的骨骼名称 */\r\n\t\tthis.parent=null;\r\n\t\t/**插糟显示数据数据的名称 */\r\n\t\tthis.attachmentName=null;\r\n\t\t/**原始数据的索引 */\r\n\t\tthis.srcDisplayIndex=-1;\r\n\t\t/**判断对象是否是原对象 */\r\n\t\tthis.type=\"src\";\r\n\t\t/**模板的指针 */\r\n\t\tthis.templet=null;\r\n\t\t/**当前插槽对应的数据 */\r\n\t\tthis.currSlotData=null;\r\n\t\t/**当前插槽显示的纹理 */\r\n\t\tthis.currTexture=null;\r\n\t\t/**显示对象对应的数据 */\r\n\t\tthis.currDisplayData=null;\r\n\t\t/**显示皮肤的索引 */\r\n\t\tthis.displayIndex=-1;\r\n\t\t/**用户自定义的皮肤 */\r\n\t\tthis._diyTexture=null;\r\n\t\tthis._parentMatrix=null;\r\n\t\tthis._resultMatrix=null;\r\n\t\t/**索引替换表 */\r\n\t\tthis._replaceDic={};\r\n\t\t/**当前diyTexture的动画纹理 */\r\n\t\tthis._curDiyUV=null;\r\n\t\tthis._curDiyVS=null;\r\n\t\t/**实时模式下，复用使用 */\r\n\t\tthis._skinSprite=null;\r\n\t\t/**@private 变形动画数据 */\r\n\t\tthis.deformData=null;\r\n\t\tthis._mVerticleArr=null;\r\n\t}\r\n\r\n\t__class(BoneSlot,'laya.ani.bone.BoneSlot');\r\n\tvar __proto=BoneSlot.prototype;\r\n\t/**\r\n\t*设置要显示的插槽数据\r\n\t*@param slotData\r\n\t*@param disIndex\r\n\t*@param freshIndex 是否重置纹理\r\n\t*/\r\n\t__proto.showSlotData=function(slotData,freshIndex){\r\n\t\t(freshIndex===void 0)&& (freshIndex=true);\r\n\t\tthis.currSlotData=slotData;\r\n\t\tif(freshIndex)\r\n\t\t\tthis.displayIndex=this.srcDisplayIndex;\r\n\t\tthis.currDisplayData=null;\r\n\t\tthis.currTexture=null;\r\n\t}\r\n\r\n\t/**\r\n\t*通过名字显示指定对象\r\n\t*@param name\r\n\t*/\r\n\t__proto.showDisplayByName=function(name){\r\n\t\tif (this.currSlotData){\r\n\t\t\tthis.showDisplayByIndex(this.currSlotData.getDisplayByName(name));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*替换贴图名\r\n\t*@param tarName 要替换的贴图名\r\n\t*@param newName 替换后的贴图名\r\n\t*/\r\n\t__proto.replaceDisplayByName=function(tarName,newName){\r\n\t\tif (!this.currSlotData)return;\r\n\t\tvar preIndex=0;\r\n\t\tpreIndex=this.currSlotData.getDisplayByName(tarName);\r\n\t\tvar newIndex=0;\r\n\t\tnewIndex=this.currSlotData.getDisplayByName(newName);\r\n\t\tthis.replaceDisplayByIndex(preIndex,newIndex);\r\n\t}\r\n\r\n\t/**\r\n\t*替换贴图索引\r\n\t*@param tarIndex 要替换的索引\r\n\t*@param newIndex 替换后的索引\r\n\t*/\r\n\t__proto.replaceDisplayByIndex=function(tarIndex,newIndex){\r\n\t\tif (!this.currSlotData)return;\r\n\t\tthis._replaceDic[tarIndex]=newIndex;\r\n\t\tif (this.displayIndex==tarIndex){\r\n\t\t\tthis.showDisplayByIndex(tarIndex);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*指定显示对象\r\n\t*@param index\r\n\t*/\r\n\t__proto.showDisplayByIndex=function(index){\r\n\t\tif (this._replaceDic[index]!=null)index=this._replaceDic[index];\r\n\t\tif (this.currSlotData && index >-1 && index < this.currSlotData.displayArr.length){\r\n\t\t\tthis.displayIndex=index;\r\n\t\t\tthis.currDisplayData=this.currSlotData.displayArr[index];\r\n\t\t\tif (this.currDisplayData){\r\n\t\t\t\tvar tName=this.currDisplayData.name;\r\n\t\t\t\tthis.currTexture=this.templet.getTexture(tName);\r\n\t\t\t\tif (this.currTexture && this.currDisplayData.type==0 && this.currDisplayData.uvs && (!Render.isConchApp || (Render.isConchApp && Sprite.RUNTIMEVERION > \"0.9.15\"))){\r\n\t\t\t\t\tthis.currTexture=this.currDisplayData.createTexture(this.currTexture);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tthis.displayIndex=-1;\r\n\t\t\tthis.currDisplayData=null;\r\n\t\t\tthis.currTexture=null;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*替换皮肤\r\n\t*@param _texture\r\n\t*/\r\n\t__proto.replaceSkin=function(_texture){\r\n\t\tthis._diyTexture=_texture;\r\n\t\tif (this._curDiyUV)this._curDiyUV.length=0;\r\n\t\tif (this.currDisplayData&&this._diyTexture==this.currDisplayData.texture){\r\n\t\t\tthis._diyTexture=null;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*保存父矩阵的索引\r\n\t*@param parentMatrix\r\n\t*/\r\n\t__proto.setParentMatrix=function(parentMatrix){\r\n\t\tthis._parentMatrix=parentMatrix;\r\n\t}\r\n\r\n\t/**\r\n\t*把纹理画到Graphics上\r\n\t*@param graphics\r\n\t*@param noUseSave\r\n\t*/\r\n\t__proto.draw=function(graphics,boneMatrixArray,noUseSave,alpha){\r\n\t\t(noUseSave===void 0)&& (noUseSave=false);\r\n\t\t(alpha===void 0)&& (alpha=1);\r\n\t\tif ((this._diyTexture==null && this.currTexture==null)|| this.currDisplayData==null){\r\n\t\t\tif (!(this.currDisplayData && this.currDisplayData.type==3)){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar tTexture=this.currTexture;\r\n\t\tif (this._diyTexture)tTexture=this._diyTexture;\r\n\t\tvar tSkinSprite;\r\n\t\tswitch (this.currDisplayData.type){\r\n\t\t\tcase 0:\r\n\t\t\t\tif (graphics){\r\n\t\t\t\t\tvar tCurrentMatrix=this.getDisplayMatrix();\r\n\t\t\t\t\tif (this._parentMatrix){\r\n\t\t\t\t\t\tvar tRotateKey=false;\r\n\t\t\t\t\t\tif (tCurrentMatrix){\r\n\t\t\t\t\t\t\tMatrix.mul(tCurrentMatrix,this._parentMatrix,Matrix.TEMP);\r\n\t\t\t\t\t\t\tvar tResultMatrix;\r\n\t\t\t\t\t\t\tif (noUseSave){\r\n\t\t\t\t\t\t\t\tif (this._resultMatrix==null)this._resultMatrix=new Matrix();\r\n\t\t\t\t\t\t\t\ttResultMatrix=this._resultMatrix;\r\n\t\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\t\ttResultMatrix=new Matrix();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif ((!Render.isWebGL && this.currDisplayData.uvs)|| (Render.isWebGL && this._diyTexture && this.currDisplayData.uvs)){\r\n\t\t\t\t\t\t\t\tvar tTestMatrix=BoneSlot._tempMatrix;\r\n\t\t\t\t\t\t\t\ttTestMatrix.identity();\r\n\t\t\t\t\t\t\t\tif (this.currDisplayData.uvs[1] > this.currDisplayData.uvs[5]){\r\n\t\t\t\t\t\t\t\t\ttTestMatrix.d=-1;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (this.currDisplayData.uvs[0] > this.currDisplayData.uvs[4]\r\n\t\t\t\t\t\t\t\t\t&& this.currDisplayData.uvs[1] > this.currDisplayData.uvs[5]){\r\n\t\t\t\t\t\t\t\t\ttRotateKey=true;\r\n\t\t\t\t\t\t\t\t\ttTestMatrix.rotate(-Math.PI/2);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tMatrix.mul(tTestMatrix,Matrix.TEMP,tResultMatrix);\r\n\t\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\t\tMatrix.TEMP.copyTo(tResultMatrix);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (tRotateKey){\r\n\t\t\t\t\t\t\t\tgraphics.drawTexture(tTexture,-this.currDisplayData.height / 2,-this.currDisplayData.width / 2,this.currDisplayData.height,this.currDisplayData.width,tResultMatrix);\r\n\t\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\t\tgraphics.drawTexture(tTexture,-this.currDisplayData.width / 2,-this.currDisplayData.height / 2,this.currDisplayData.width,this.currDisplayData.height,tResultMatrix);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 1:\r\n\t\t\t\tif (noUseSave){\r\n\t\t\t\t\tif (this._skinSprite==null){\r\n\t\t\t\t\t\tthis._skinSprite=BoneSlot.createSkinMesh();\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttSkinSprite=this._skinSprite;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\ttSkinSprite=BoneSlot.createSkinMesh();\r\n\t\t\t\t}\r\n\t\t\t\tif (tSkinSprite==null){\r\n\t\t\t\t\treturn;\r\n\t\t\t\t};\r\n\t\t\t\tvar tIBArray;\r\n\t\t\t\tvar tRed=1;\r\n\t\t\t\tvar tGreed=1;\r\n\t\t\t\tvar tBlue=1;\r\n\t\t\t\tvar tAlpha=1;\r\n\t\t\t\tif (this.currDisplayData.bones==null){\r\n\t\t\t\t\tvar tVertices=this.currDisplayData.weights;\r\n\t\t\t\t\tif (this.deformData){\r\n\t\t\t\t\t\ttVertices=this.deformData;\r\n\t\t\t\t\t};\r\n\t\t\t\t\tvar tUVs;\r\n\t\t\t\t\tif (this._diyTexture){\r\n\t\t\t\t\t\tif (!this._curDiyUV){\r\n\t\t\t\t\t\t\tthis._curDiyUV=[];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (this._curDiyUV.length==0){\r\n\t\t\t\t\t\t\tthis._curDiyUV=UVTools.getRelativeUV(this.currTexture.uv,this.currDisplayData.uvs,this._curDiyUV);\r\n\t\t\t\t\t\t\tthis._curDiyUV=UVTools.getAbsoluteUV(this._diyTexture.uv,this._curDiyUV,this._curDiyUV);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttUVs=this._curDiyUV;\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\ttUVs=this.currDisplayData.uvs;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis._mVerticleArr=tVertices;\r\n\t\t\t\t\tvar tTriangleNum=this.currDisplayData.triangles.length / 3;\r\n\t\t\t\t\ttIBArray=this.currDisplayData.triangles;\r\n\t\t\t\t\ttSkinSprite.init2(tTexture,null ,tIBArray,this._mVerticleArr,tUVs);\r\n\t\t\t\t\tvar tCurrentMatrix2=this.getDisplayMatrix();\r\n\t\t\t\t\tif (this._parentMatrix){\r\n\t\t\t\t\t\tif (tCurrentMatrix2){\r\n\t\t\t\t\t\t\tMatrix.mul(tCurrentMatrix2,this._parentMatrix,Matrix.TEMP);\r\n\t\t\t\t\t\t\tvar tResultMatrix2;\r\n\t\t\t\t\t\t\tif (noUseSave){\r\n\t\t\t\t\t\t\t\tif (this._resultMatrix==null)this._resultMatrix=new Matrix();\r\n\t\t\t\t\t\t\t\ttResultMatrix2=this._resultMatrix;\r\n\t\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\t\ttResultMatrix2=new Matrix();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tMatrix.TEMP.copyTo(tResultMatrix2);\r\n\t\t\t\t\t\t\ttSkinSprite.transform=tResultMatrix2;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tthis.skinMesh(boneMatrixArray,tSkinSprite,alpha);\r\n\t\t\t\t}\r\n\t\t\t\tgraphics.drawSkin(tSkinSprite);\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 2:\r\n\t\t\t\tif (noUseSave){\r\n\t\t\t\t\tif (this._skinSprite==null){\r\n\t\t\t\t\t\tthis._skinSprite=BoneSlot.createSkinMesh();\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttSkinSprite=this._skinSprite;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\ttSkinSprite=BoneSlot.createSkinMesh();\r\n\t\t\t\t}\r\n\t\t\t\tif (tSkinSprite==null){\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tthis.skinMesh(boneMatrixArray,tSkinSprite,alpha);\r\n\t\t\t\tgraphics.drawSkin(tSkinSprite);\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 3:\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*显示蒙皮动画\r\n\t*@param boneMatrixArray 当前帧的骨骼矩阵\r\n\t*/\r\n\t__proto.skinMesh=function(boneMatrixArray,skinSprite,alpha){\r\n\t\tvar tTexture=this.currTexture;\r\n\t\tvar tBones=this.currDisplayData.bones;\r\n\t\tvar tUvs;\r\n\t\tif (this._diyTexture){\r\n\t\t\ttTexture=this._diyTexture;\r\n\t\t\tif (!this._curDiyUV){\r\n\t\t\t\tthis._curDiyUV=[];\r\n\t\t\t}\r\n\t\t\tif (this._curDiyUV.length==0){\r\n\t\t\t\tthis._curDiyUV=UVTools.getRelativeUV(this.currTexture.uv,this.currDisplayData.uvs,this._curDiyUV);\r\n\t\t\t\tthis._curDiyUV=UVTools.getAbsoluteUV(this._diyTexture.uv,this._curDiyUV,this._curDiyUV);\r\n\t\t\t}\r\n\t\t\ttUvs=this._curDiyUV;\r\n\t\t\t}else{\r\n\t\t\ttUvs=this.currDisplayData.uvs;\r\n\t\t};\r\n\t\tvar tWeights=this.currDisplayData.weights;\r\n\t\tvar tTriangles=this.currDisplayData.triangles;\r\n\t\tvar tIBArray;\r\n\t\tvar tRx=0;\r\n\t\tvar tRy=0;\r\n\t\tvar nn=0;\r\n\t\tvar tMatrix;\r\n\t\tvar tX=NaN;\r\n\t\tvar tY=NaN;\r\n\t\tvar tB=0;\r\n\t\tvar tWeight=0;\r\n\t\tvar tVertices=[];\r\n\t\tvar i=0,j=0,n=0;\r\n\t\tvar tRed=1;\r\n\t\tvar tGreed=1;\r\n\t\tvar tBlue=1;\r\n\t\tvar tAlpha=alpha;\r\n\t\tif (this.deformData && this.deformData.length > 0){\r\n\t\t\tvar f=0;\r\n\t\t\tfor (i=0,n=tBones.length;i < n;){\r\n\t\t\t\tnn=tBones[i++]+i;\r\n\t\t\t\ttRx=0,tRy=0;\r\n\t\t\t\tfor (;i < nn;i++){\r\n\t\t\t\t\ttMatrix=boneMatrixArray[tBones[i]]\r\n\t\t\t\t\ttX=tWeights[tB]+this.deformData[f++];\r\n\t\t\t\t\ttY=tWeights[tB+1]+this.deformData[f++];\r\n\t\t\t\t\ttWeight=tWeights[tB+2];\r\n\t\t\t\t\ttRx+=(tX *tMatrix.a+tY *tMatrix.c+tMatrix.tx)*tWeight;\r\n\t\t\t\t\ttRy+=(tX *tMatrix.b+tY *tMatrix.d+tMatrix.ty)*tWeight;\r\n\t\t\t\t\ttB+=3;\r\n\t\t\t\t}\r\n\t\t\t\ttVertices.push(tRx,tRy);\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tfor (i=0,n=tBones.length;i < n;){\r\n\t\t\t\tnn=tBones[i++]+i;\r\n\t\t\t\ttRx=0,tRy=0;\r\n\t\t\t\tfor (;i < nn;i++){\r\n\t\t\t\t\ttMatrix=boneMatrixArray[tBones[i]]\r\n\t\t\t\t\ttX=tWeights[tB];\r\n\t\t\t\t\ttY=tWeights[tB+1];\r\n\t\t\t\t\ttWeight=tWeights[tB+2];\r\n\t\t\t\t\ttRx+=(tX *tMatrix.a+tY *tMatrix.c+tMatrix.tx)*tWeight;\r\n\t\t\t\t\ttRy+=(tX *tMatrix.b+tY *tMatrix.d+tMatrix.ty)*tWeight;\r\n\t\t\t\t\ttB+=3;\r\n\t\t\t\t}\r\n\t\t\t\ttVertices.push(tRx,tRy);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._mVerticleArr=tVertices;\r\n\t\ttIBArray=tTriangles;\r\n\t\tskinSprite.init2(tTexture,null,tIBArray,this._mVerticleArr,tUvs);\r\n\t}\r\n\r\n\t/**\r\n\t*画骨骼的起始点，方便调试\r\n\t*@param graphics\r\n\t*/\r\n\t__proto.drawBonePoint=function(graphics){\r\n\t\tif (graphics && this._parentMatrix){\r\n\t\t\tgraphics.drawCircle(this._parentMatrix.tx,this._parentMatrix.ty,5,\"#ff0000\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*得到显示对象的矩阵\r\n\t*@return\r\n\t*/\r\n\t__proto.getDisplayMatrix=function(){\r\n\t\tif (this.currDisplayData){\r\n\t\t\treturn this.currDisplayData.transform.getMatrix();\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*得到插糟的矩阵\r\n\t*@return\r\n\t*/\r\n\t__proto.getMatrix=function(){\r\n\t\treturn this._resultMatrix;\r\n\t}\r\n\r\n\t/**\r\n\t*用原始数据拷贝出一个\r\n\t*@return\r\n\t*/\r\n\t__proto.copy=function(){\r\n\t\tvar tBoneSlot=new BoneSlot();\r\n\t\ttBoneSlot.type=\"copy\";\r\n\t\ttBoneSlot.name=this.name;\r\n\t\ttBoneSlot.attachmentName=this.attachmentName;\r\n\t\ttBoneSlot.srcDisplayIndex=this.srcDisplayIndex;\r\n\t\ttBoneSlot.parent=this.parent;\r\n\t\ttBoneSlot.displayIndex=this.displayIndex;\r\n\t\ttBoneSlot.templet=this.templet;\r\n\t\ttBoneSlot.currSlotData=this.currSlotData;\r\n\t\ttBoneSlot.currTexture=this.currTexture;\r\n\t\ttBoneSlot.currDisplayData=this.currDisplayData;\r\n\t\treturn tBoneSlot;\r\n\t}\r\n\r\n\tBoneSlot.createSkinMesh=function(){\r\n\t\tif (Render.isWebGL || Render.isConchApp){\r\n\t\t\treturn RunDriver.skinAniSprite();\r\n\t\t\t}else{\r\n\t\t\tif (!Render.isWebGL){\r\n\t\t\t\tif (Skeleton.useSimpleMeshInCanvas){\r\n\t\t\t\t\treturn new SimpleSkinMeshCanvas();\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\treturn new SkinMeshCanvas();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t__static(BoneSlot,\r\n\t['_tempMatrix',function(){return this._tempMatrix=new Matrix();}\r\n\t]);\r\n\treturn BoneSlot;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*canvas mesh渲染器\r\n*/\r\n//class laya.ani.bone.canvasmesh.CanvasMeshRender\r\nvar CanvasMeshRender=(function(){\r\n\tfunction CanvasMeshRender(){\r\n\t\t/**\r\n\t\t*mesh数据\r\n\t\t*/\r\n\t\tthis.mesh=null;\r\n\t\t/**\r\n\t\t*矩阵\r\n\t\t*/\r\n\t\tthis.transform=null;\r\n\t\t/**\r\n\t\t*绘图环境\r\n\t\t*/\r\n\t\tthis.context=null;\r\n\t\t/**\r\n\t\t*绘制mesh的模式 0:顶点索引模式 1：无顶点索引模式\r\n\t\t*/\r\n\t\tthis.mode=0;\r\n\t}\r\n\r\n\t__class(CanvasMeshRender,'laya.ani.bone.canvasmesh.CanvasMeshRender');\r\n\tvar __proto=CanvasMeshRender.prototype;\r\n\t/**\r\n\t*将mesh数据渲染到context上面\r\n\t*@param context\r\n\t*\r\n\t*/\r\n\t__proto.renderToContext=function(context){\r\n\t\tthis.context=context.ctx||context;\r\n\t\tif (this.mesh){\r\n\t\t\tif (this.mode==0){\r\n\t\t\t\tthis._renderWithIndexes(this.mesh);\r\n\t\t\t\t}else{\r\n\t\t\t\tthis._renderNoIndexes(this.mesh);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*无顶点索引的模式\r\n\t*@param mesh\r\n\t*\r\n\t*/\r\n\t__proto._renderNoIndexes=function(mesh){\r\n\t\tvar i=0,len=mesh.vertices.length / 2;\r\n\t\tvar index=0;\r\n\t\tfor (i=0;i < len-2;i++){\r\n\t\t\tindex=i *2;\r\n\t\t\tthis._renderDrawTriangle(mesh,index,(index+2),(index+4));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*使用顶点索引模式绘制\r\n\t*@param mesh\r\n\t*\r\n\t*/\r\n\t__proto._renderWithIndexes=function(mesh){\r\n\t\tvar indexes=mesh.indexes;\r\n\t\tvar i=0,len=indexes.length;\r\n\t\tfor (i=0;i < len;i+=3){\r\n\t\t\tvar index0=indexes[i] *2;\r\n\t\t\tvar index1=indexes[i+1] *2;\r\n\t\t\tvar index2=indexes[i+2] *2;\r\n\t\t\tthis._renderDrawTriangle(mesh,index0,index1,index2);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*绘制三角形\r\n\t*@param mesh mesh\r\n\t*@param index0 顶点0\r\n\t*@param index1 顶点1\r\n\t*@param index2 顶点2\r\n\t*\r\n\t*/\r\n\t__proto._renderDrawTriangle=function(mesh,index0,index1,index2){\r\n\t\tvar context=this.context;\r\n\t\tvar uvs=mesh.uvs;\r\n\t\tvar vertices=mesh.vertices;\r\n\t\tvar texture=mesh.texture;\r\n\t\tvar source=texture.bitmap;\r\n\t\tvar textureSource=source.source;\r\n\t\tvar textureWidth=texture.width;\r\n\t\tvar textureHeight=texture.height;\r\n\t\tvar sourceWidth=source.width;\r\n\t\tvar sourceHeight=source.height;\r\n\t\tvar u0=NaN;\r\n\t\tvar u1=NaN;\r\n\t\tvar u2=NaN;\r\n\t\tvar v0=NaN;\r\n\t\tvar v1=NaN;\r\n\t\tvar v2=NaN;\r\n\t\tif (mesh.useUvTransform){\r\n\t\t\tvar ut=mesh.uvTransform;\r\n\t\t\tu0=((uvs[index0] *ut.a)+(uvs[index0+1] *ut.c)+ut.tx)*sourceWidth;\r\n\t\t\tu1=((uvs[index1] *ut.a)+(uvs[index1+1] *ut.c)+ut.tx)*sourceWidth;\r\n\t\t\tu2=((uvs[index2] *ut.a)+(uvs[index2+1] *ut.c)+ut.tx)*sourceWidth;\r\n\t\t\tv0=((uvs[index0] *ut.b)+(uvs[index0+1] *ut.d)+ut.ty)*sourceHeight;\r\n\t\t\tv1=((uvs[index1] *ut.b)+(uvs[index1+1] *ut.d)+ut.ty)*sourceHeight;\r\n\t\t\tv2=((uvs[index2] *ut.b)+(uvs[index2+1] *ut.d)+ut.ty)*sourceHeight;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tu0=uvs[index0] *sourceWidth;\r\n\t\t\tu1=uvs[index1] *sourceWidth;\r\n\t\t\tu2=uvs[index2] *sourceWidth;\r\n\t\t\tv0=uvs[index0+1] *sourceHeight;\r\n\t\t\tv1=uvs[index1+1] *sourceHeight;\r\n\t\t\tv2=uvs[index2+1] *sourceHeight;\r\n\t\t};\r\n\t\tvar x0=vertices[index0];\r\n\t\tvar x1=vertices[index1];\r\n\t\tvar x2=vertices[index2];\r\n\t\tvar y0=vertices[index0+1];\r\n\t\tvar y1=vertices[index1+1];\r\n\t\tvar y2=vertices[index2+1];\r\n\t\tif (mesh.canvasPadding > 0){\r\n\t\t\tvar paddingX=mesh.canvasPadding;\r\n\t\t\tvar paddingY=mesh.canvasPadding;\r\n\t\t\tvar centerX=(x0+x1+x2)/ 3;\r\n\t\t\tvar centerY=(y0+y1+y2)/ 3;\r\n\t\t\tvar normX=x0-centerX;\r\n\t\t\tvar normY=y0-centerY;\r\n\t\t\tvar dist=Math.sqrt((normX *normX)+(normY *normY));\r\n\t\t\tx0=centerX+((normX / dist)*(dist+paddingX));\r\n\t\t\ty0=centerY+((normY / dist)*(dist+paddingY));\r\n\t\t\tnormX=x1-centerX;\r\n\t\t\tnormY=y1-centerY;\r\n\t\t\tdist=Math.sqrt((normX *normX)+(normY *normY));\r\n\t\t\tx1=centerX+((normX / dist)*(dist+paddingX));\r\n\t\t\ty1=centerY+((normY / dist)*(dist+paddingY));\r\n\t\t\tnormX=x2-centerX;\r\n\t\t\tnormY=y2-centerY;\r\n\t\t\tdist=Math.sqrt((normX *normX)+(normY *normY));\r\n\t\t\tx2=centerX+((normX / dist)*(dist+paddingX));\r\n\t\t\ty2=centerY+((normY / dist)*(dist+paddingY));\r\n\t\t}\r\n\t\tcontext.save();\r\n\t\tif (this.transform){\r\n\t\t\tvar mt=this.transform;\r\n\t\t\tcontext.transform(mt.a,mt.b,mt.c,mt.d,mt.tx,mt.ty);\r\n\t\t}\r\n\t\tcontext.beginPath();\r\n\t\tcontext.moveTo(x0,y0);\r\n\t\tcontext.lineTo(x1,y1);\r\n\t\tcontext.lineTo(x2,y2);\r\n\t\tcontext.closePath();\r\n\t\tcontext.clip();\r\n\t\tvar delta=(u0 *v1)+(v0 *u2)+(u1 *v2)-(v1 *u2)-(v0 *u1)-(u0 *v2);\r\n\t\tvar dDelta=1 / delta;\r\n\t\tvar deltaA=(x0 *v1)+(v0 *x2)+(x1 *v2)-(v1 *x2)-(v0 *x1)-(x0 *v2);\r\n\t\tvar deltaB=(u0 *x1)+(x0 *u2)+(u1 *x2)-(x1 *u2)-(x0 *u1)-(u0 *x2);\r\n\t\tvar deltaC=(u0 *v1 *x2)+(v0 *x1 *u2)+(x0 *u1 *v2)-(x0 *v1 *u2)-(v0 *u1 *x2)-(u0 *x1 *v2);\r\n\t\tvar deltaD=(y0 *v1)+(v0 *y2)+(y1 *v2)-(v1 *y2)-(v0 *y1)-(y0 *v2);\r\n\t\tvar deltaE=(u0 *y1)+(y0 *u2)+(u1 *y2)-(y1 *u2)-(y0 *u1)-(u0 *y2);\r\n\t\tvar deltaF=(u0 *v1 *y2)+(v0 *y1 *u2)+(y0 *u1 *v2)-(y0 *v1 *u2)-(v0 *u1 *y2)-(u0 *y1 *v2);\r\n\t\tcontext.transform(deltaA *dDelta,deltaD *dDelta,deltaB *dDelta,deltaE*dDelta,deltaC *dDelta,deltaF *dDelta);\r\n\t\tcontext.drawImage(textureSource,texture.uv[0]*sourceWidth,texture.uv[1]*sourceHeight,textureWidth,textureHeight,texture.uv[0]*sourceWidth,texture.uv[1]*sourceHeight,textureWidth,textureHeight);\r\n\t\tcontext.restore();\r\n\t}\r\n\r\n\treturn CanvasMeshRender;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.canvasmesh.MeshData\r\nvar MeshData=(function(){\r\n\tfunction MeshData(){\r\n\t\t/**\r\n\t\t*纹理\r\n\t\t*/\r\n\t\tthis.texture=null;\r\n\t\t/**\r\n\t\t*uv数据\r\n\t\t*/\r\n\t\tthis.uvs=[0,0,1,0,1,1,0,1];\r\n\t\t/**\r\n\t\t*顶点数据\r\n\t\t*/\r\n\t\tthis.vertices=[0,0,100,0,100,100,0,100];\r\n\t\t/**\r\n\t\t*顶点索引\r\n\t\t*/\r\n\t\tthis.indexes=[0,1,3,3,1,2];\r\n\t\t/**\r\n\t\t*uv变换矩阵\r\n\t\t*/\r\n\t\tthis.uvTransform=null;\r\n\t\t/**\r\n\t\t*是否有uv变化矩阵\r\n\t\t*/\r\n\t\tthis.useUvTransform=false;\r\n\t\t/**\r\n\t\t*扩展像素,用来去除黑边\r\n\t\t*/\r\n\t\tthis.canvasPadding=1;\r\n\t}\r\n\r\n\t__class(MeshData,'laya.ani.bone.canvasmesh.MeshData');\r\n\tvar __proto=MeshData.prototype;\r\n\t/**\r\n\t*计算mesh的Bounds\r\n\t*@return\r\n\t*\r\n\t*/\r\n\t__proto.getBounds=function(){\r\n\t\treturn Rectangle._getWrapRec(this.vertices);\r\n\t}\r\n\r\n\treturn MeshData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.DeformAniData\r\nvar DeformAniData=(function(){\r\n\tfunction DeformAniData(){\r\n\t\tthis.skinName=null;\r\n\t\tthis.deformSlotDataList=[];\r\n\t}\r\n\r\n\t__class(DeformAniData,'laya.ani.bone.DeformAniData');\r\n\treturn DeformAniData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.DeformSlotData\r\nvar DeformSlotData=(function(){\r\n\tfunction DeformSlotData(){\r\n\t\tthis.deformSlotDisplayList=[];\r\n\t}\r\n\r\n\t__class(DeformSlotData,'laya.ani.bone.DeformSlotData');\r\n\treturn DeformSlotData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.DeformSlotDisplayData\r\nvar DeformSlotDisplayData=(function(){\r\n\tfunction DeformSlotDisplayData(){\r\n\t\tthis.boneSlot=null;\r\n\t\tthis.slotIndex=-1;\r\n\t\tthis.attachment=null;\r\n\t\tthis.deformData=null;\r\n\t\tthis.frameIndex=0;\r\n\t\tthis.timeList=[];\r\n\t\tthis.vectices=[];\r\n\t\tthis.tweenKeyList=[];\r\n\t}\r\n\r\n\t__class(DeformSlotDisplayData,'laya.ani.bone.DeformSlotDisplayData');\r\n\tvar __proto=DeformSlotDisplayData.prototype;\r\n\t__proto.binarySearch1=function(values,target){\r\n\t\tvar low=0;\r\n\t\tvar high=values.length-2;\r\n\t\tif (high==0)\r\n\t\t\treturn 1;\r\n\t\tvar current=high >>> 1;\r\n\t\twhile (true){\r\n\t\t\tif (values[Math.floor(current+1)] <=target)\r\n\t\t\t\tlow=current+1;\r\n\t\t\telse\r\n\t\t\thigh=current;\r\n\t\t\tif (low==high)\r\n\t\t\t\treturn low+1;\r\n\t\t\tcurrent=(low+high)>>> 1;\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t// Can't happen.\r\n\t__proto.apply=function(time,boneSlot,alpha){\r\n\t\t(alpha===void 0)&& (alpha=1);\r\n\t\ttime+=0.05;\r\n\t\tif (this.timeList.length <=0){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar i=0;\r\n\t\tvar n=0;\r\n\t\tvar tTime=this.timeList[0];\r\n\t\tif (time < tTime){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar tVertexCount=this.vectices[0].length;\r\n\t\tvar tVertices=[];\r\n\t\tvar tFrameIndex=this.binarySearch1(this.timeList,time);\r\n\t\tthis.frameIndex=tFrameIndex;\r\n\t\tif (time >=this.timeList[this.timeList.length-1]){\r\n\t\t\tvar lastVertices=this.vectices[this.vectices.length-1];\r\n\t\t\tif (alpha < 1){\r\n\t\t\t\tfor (i=0;i < tVertexCount;i++){\r\n\t\t\t\t\ttVertices[i]+=(lastVertices[i]-tVertices[i])*alpha;\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tfor (i=0;i < tVertexCount;i++){\r\n\t\t\t\t\ttVertices[i]=lastVertices[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.deformData=tVertices;\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar tTweenKey=this.tweenKeyList[this.frameIndex];\r\n\t\tvar tPrevVertices=this.vectices[this.frameIndex-1];\r\n\t\tvar tNextVertices=this.vectices[this.frameIndex];\r\n\t\tvar tPreFrameTime=this.timeList[this.frameIndex-1];\r\n\t\tvar tFrameTime=this.timeList[this.frameIndex];\r\n\t\tif (this.tweenKeyList[tFrameIndex-1]){\r\n\t\t\talpha=(time-tPreFrameTime)/ (tFrameTime-tPreFrameTime);\r\n\t\t\t}else {\r\n\t\t\talpha=0;\r\n\t\t};\r\n\t\tvar tPrev=NaN;\r\n\t\tfor (i=0;i < tVertexCount;i++){\r\n\t\t\ttPrev=tPrevVertices[i];\r\n\t\t\ttVertices[i]=tPrev+(tNextVertices[i]-tPrev)*alpha;\r\n\t\t}\r\n\t\tthis.deformData=tVertices;\r\n\t}\r\n\r\n\treturn DeformSlotDisplayData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.DrawOrderData\r\nvar DrawOrderData=(function(){\r\n\tfunction DrawOrderData(){\r\n\t\tthis.time=NaN;\r\n\t\tthis.drawOrder=[];\r\n\t}\r\n\r\n\t__class(DrawOrderData,'laya.ani.bone.DrawOrderData');\r\n\treturn DrawOrderData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.EventData\r\nvar EventData=(function(){\r\n\tfunction EventData(){\r\n\t\tthis.name=null;\r\n\t\tthis.intValue=0;\r\n\t\tthis.floatValue=NaN;\r\n\t\tthis.stringValue=null;\r\n\t\tthis.time=NaN;\r\n\t}\r\n\r\n\t__class(EventData,'laya.ani.bone.EventData');\r\n\treturn EventData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.IkConstraint\r\nvar IkConstraint=(function(){\r\n\tfunction IkConstraint(data,bones){\r\n\t\tthis._targetBone=null;\r\n\t\tthis._bones=null;\r\n\t\tthis._data=null;\r\n\t\tthis.name=null;\r\n\t\tthis.mix=NaN;\r\n\t\tthis.bendDirection=NaN;\r\n\t\tthis.isSpine=true;\r\n\t\t//debug相关代码\r\n\t\tthis._sp=null;\r\n\t\tthis.isDebug=false;\r\n\t\tthis._data=data;\r\n\t\tthis._targetBone=bones[data.targetBoneIndex];\r\n\t\tthis.isSpine=data.isSpine;\r\n\t\tif (this._bones==null)this._bones=[];\r\n\t\tthis._bones.length=0;\r\n\t\tfor (var i=0,n=data.boneIndexs.length;i < n;i++){\r\n\t\t\tthis._bones.push(bones[data.boneIndexs[i]]);\r\n\t\t}\r\n\t\tthis.name=data.name;\r\n\t\tthis.mix=data.mix;\r\n\t\tthis.bendDirection=data.bendDirection;\r\n\t}\r\n\r\n\t__class(IkConstraint,'laya.ani.bone.IkConstraint');\r\n\tvar __proto=IkConstraint.prototype;\r\n\t__proto.apply=function(){\r\n\t\tswitch (this._bones.length){\r\n\t\t\tcase 1:\r\n\t\t\t\tthis._applyIk1(this._bones[0],this._targetBone.resultMatrix.tx,this._targetBone.resultMatrix.ty,this.mix);\r\n\t\t\t\tbreak ;\r\n\t\t\tcase 2:\r\n\t\t\t\tif (this.isSpine){\r\n\t\t\t\t\tthis._applyIk2(this._bones[0],this._bones[1],this._targetBone.resultMatrix.tx,this._targetBone.resultMatrix.ty,this.bendDirection,this.mix);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\tthis._applyIk3(this._bones[0],this._bones[1],this._targetBone.resultMatrix.tx,this._targetBone.resultMatrix.ty,this.bendDirection,this.mix);\r\n\t\t\t\t}\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t}\r\n\r\n\t__proto._applyIk1=function(bone,targetX,targetY,alpha){\r\n\t\tvar pp=bone.parentBone;\r\n\t\tvar id=1 / (pp.resultMatrix.a *pp.resultMatrix.d-pp.resultMatrix.b *pp.resultMatrix.c);\r\n\t\tvar x=targetX-pp.resultMatrix.tx;\r\n\t\tvar y=targetY-pp.resultMatrix.ty;\r\n\t\tvar tx=(x *pp.resultMatrix.d-y *pp.resultMatrix.c)*id-bone.transform.x;\r\n\t\tvar ty=(y *pp.resultMatrix.a-x *pp.resultMatrix.b)*id-bone.transform.y;\r\n\t\tvar rotationIK=Math.atan2(ty,tx)*IkConstraint.radDeg-0-bone.transform.skX;\r\n\t\tif (bone.transform.scX < 0)rotationIK+=180;\r\n\t\tif (rotationIK > 180)\r\n\t\t\trotationIK-=360;\r\n\t\telse if (rotationIK <-180)rotationIK+=360;\r\n\t\tbone.transform.skX=bone.transform.skY=bone.transform.skX+rotationIK *alpha;\r\n\t\tbone.update();\r\n\t}\r\n\r\n\t__proto.updatePos=function(x,y){\r\n\t\tif (this._sp){\r\n\t\t\tthis._sp.pos(x,y);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._applyIk2=function(parent,child,targetX,targetY,bendDir,alpha){\r\n\t\tif (alpha==0){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar px=parent.resultTransform.x,py=parent.resultTransform.y;\r\n\t\tvar psx=parent.transform.scX,psy=parent.transform.scY;\r\n\t\tvar csx=child.transform.scX;\r\n\t\tvar os1=0,os2=0,s2=0;\r\n\t\tif (psx < 0){\r\n\t\t\tpsx=-psx;\r\n\t\t\tos1=180;\r\n\t\t\ts2=-1;\r\n\t\t\t}else {\r\n\t\t\tos1=0;\r\n\t\t\ts2=1;\r\n\t\t}\r\n\t\tif (psy < 0){\r\n\t\t\tpsy=-psy;\r\n\t\t\ts2=-s2;\r\n\t\t}\r\n\t\tif (csx < 0){\r\n\t\t\tcsx=-csx;\r\n\t\t\tos2=180;\r\n\t\t\t}else {\r\n\t\t\tos2=0\r\n\t\t};\r\n\t\tvar cx=child.resultTransform.x,cy=NaN,cwx=NaN,cwy=NaN;\r\n\t\tvar a=parent.resultMatrix.a,b=parent.resultMatrix.c;\r\n\t\tvar c=parent.resultMatrix.b,d=parent.resultMatrix.d;\r\n\t\tvar u=Math.abs(psx-psy)<=0.0001;\r\n\t\tif (!u){\r\n\t\t\tcy=0;\r\n\t\t\tcwx=a *cx+parent.resultMatrix.tx;\r\n\t\t\tcwy=c *cx+parent.resultMatrix.ty;\r\n\t\t\t}else {\r\n\t\t\tcy=child.resultTransform.y;\r\n\t\t\tcwx=a *cx+b *cy+parent.resultMatrix.tx;\r\n\t\t\tcwy=c *cx+d *cy+parent.resultMatrix.ty;\r\n\t\t}\r\n\t\tif (this.isDebug){\r\n\t\t\tif (!this._sp){\r\n\t\t\t\tthis._sp=new Sprite();\r\n\t\t\t\tLaya.stage.addChild(this._sp);\r\n\t\t\t}\r\n\t\t\tthis._sp.graphics.clear();\r\n\t\t\tthis._sp.graphics.drawCircle(targetX,targetY,15,\"#ffff00\");\r\n\t\t\tthis._sp.graphics.drawCircle(cwx,cwy,15,\"#ff00ff\");\r\n\t\t}\r\n\t\tparent.setRotation(Math.atan2(cwy-parent.resultMatrix.ty,cwx-parent.resultMatrix.tx));\r\n\t\tvar pp=parent.parentBone;\r\n\t\ta=pp.resultMatrix.a;\r\n\t\tb=pp.resultMatrix.c;\r\n\t\tc=pp.resultMatrix.b;\r\n\t\td=pp.resultMatrix.d;\r\n\t\tvar id=1 / (a *d-b *c);\r\n\t\tvar x=targetX-pp.resultMatrix.tx,y=targetY-pp.resultMatrix.ty;\r\n\t\tvar tx=(x *d-y *b)*id-px;\r\n\t\tvar ty=(y *a-x *c)*id-py;\r\n\t\tx=cwx-pp.resultMatrix.tx;\r\n\t\ty=cwy-pp.resultMatrix.ty;\r\n\t\tvar dx=(x *d-y *b)*id-px;\r\n\t\tvar dy=(y *a-x *c)*id-py;\r\n\t\tvar l1=Math.sqrt(dx *dx+dy *dy);\r\n\t\tvar l2=child.length *csx;\r\n\t\tvar a1=NaN,a2=NaN;\r\n\t\tif (u){\r\n\t\t\tl2 *=psx;\r\n\t\t\tvar cos=(tx *tx+ty *ty-l1 *l1-l2 *l2)/ (2 *l1 *l2);\r\n\t\t\tif (cos <-1)\r\n\t\t\t\tcos=-1;\r\n\t\t\telse if (cos > 1)cos=1;\r\n\t\t\ta2=Math.acos(cos)*bendDir;\r\n\t\t\ta=l1+l2 *cos;\r\n\t\t\tb=l2 *Math.sin(a2);\r\n\t\t\ta1=Math.atan2(ty *a-tx *b,tx *a+ty *b);\r\n\t\t\t}else {\r\n\t\t\ta=psx *l2;\r\n\t\t\tb=psy *l2;\r\n\t\t\tvar aa=a *a,bb=b *b,dd=tx *tx+ty *ty,ta=Math.atan2(ty,tx);\r\n\t\t\tc=bb *l1 *l1+aa *dd-aa *bb;\r\n\t\t\tvar c1=-2 *bb *l1,c2=bb-aa;\r\n\t\t\td=c1 *c1-4 *c2 *c;\r\n\t\t\tif (d > 0){\r\n\t\t\t\tvar q=Math.sqrt(d);\r\n\t\t\t\tif (c1 < 0)q=-q;\r\n\t\t\t\tq=-(c1+q)/ 2;\r\n\t\t\t\tvar r0=q / c2,r1=c / q;\r\n\t\t\t\tvar r=Math.abs(r0)< Math.abs(r1)? r0 :r1;\r\n\t\t\t\tif (r *r <=dd){\r\n\t\t\t\t\ty=Math.sqrt(dd-r *r)*bendDir;\r\n\t\t\t\t\ta1=ta-Math.atan2(y,r);\r\n\t\t\t\t\ta2=Math.atan2(y / psy,(r-l1)/ psx);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tvar minAngle=0,minDist=Number.MAX_VALUE,minX=0,minY=0;\r\n\t\t\tvar maxAngle=0,maxDist=0,maxX=0,maxY=0;\r\n\t\t\tx=l1+a;\r\n\t\t\td=x *x;\r\n\t\t\tif (d > maxDist){\r\n\t\t\t\tmaxAngle=0;\r\n\t\t\t\tmaxDist=d;\r\n\t\t\t\tmaxX=x;\r\n\t\t\t}\r\n\t\t\tx=l1-a;\r\n\t\t\td=x *x;\r\n\t\t\tif (d < minDist){\r\n\t\t\t\tminAngle=Math.PI;\r\n\t\t\t\tminDist=d;\r\n\t\t\t\tminX=x;\r\n\t\t\t};\r\n\t\t\tvar angle=Math.acos(-a *l1 / (aa-bb));\r\n\t\t\tx=a *Math.cos(angle)+l1;\r\n\t\t\ty=b *Math.sin(angle);\r\n\t\t\td=x *x+y *y;\r\n\t\t\tif (d < minDist){\r\n\t\t\t\tminAngle=angle;\r\n\t\t\t\tminDist=d;\r\n\t\t\t\tminX=x;\r\n\t\t\t\tminY=y;\r\n\t\t\t}\r\n\t\t\tif (d > maxDist){\r\n\t\t\t\tmaxAngle=angle;\r\n\t\t\t\tmaxDist=d;\r\n\t\t\t\tmaxX=x;\r\n\t\t\t\tmaxY=y;\r\n\t\t\t}\r\n\t\t\tif (dd <=(minDist+maxDist)/ 2){\r\n\t\t\t\ta1=ta-Math.atan2(minY *bendDir,minX);\r\n\t\t\t\ta2=minAngle *bendDir;\r\n\t\t\t\t}else {\r\n\t\t\t\ta1=ta-Math.atan2(maxY *bendDir,maxX);\r\n\t\t\t\ta2=maxAngle *bendDir;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar os=Math.atan2(cy,cx)*s2;\r\n\t\tvar rotation=parent.resultTransform.skX;\r\n\t\ta1=(a1-os)*IkConstraint.radDeg+os1-rotation;\r\n\t\tif (a1 > 180)\r\n\t\t\ta1-=360;\r\n\t\telse if (a1 <-180)a1+=360;\r\n\t\tparent.resultTransform.x=px;\r\n\t\tparent.resultTransform.y=py;\r\n\t\tparent.resultTransform.skX=parent.resultTransform.skY=rotation+a1 *alpha;\r\n\t\trotation=child.resultTransform.skX;\r\n\t\trotation=rotation % 360;\r\n\t\ta2=((a2+os)*IkConstraint.radDeg-0)*s2+os2-rotation;\r\n\t\tif (a2 > 180)\r\n\t\t\ta2-=360;\r\n\t\telse if (a2 <-180)a2+=360;\r\n\t\tchild.resultTransform.x=cx;\r\n\t\tchild.resultTransform.y=cy;\r\n\t\tchild.resultTransform.skX=child.resultTransform.skY=child.resultTransform.skY+a2 *alpha;\r\n\t\tparent.update();\r\n\t}\r\n\r\n\t__proto._applyIk3=function(parent,child,targetX,targetY,bendDir,alpha){\r\n\t\tif (alpha==0){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar cwx=NaN,cwy=NaN;\r\n\t\tvar x=child.resultMatrix.a *child.length;\r\n\t\tvar y=child.resultMatrix.b *child.length;\r\n\t\tvar lLL=x *x+y *y;\r\n\t\tvar lL=Math.sqrt(lLL);\r\n\t\tvar parentX=parent.resultMatrix.tx;\r\n\t\tvar parentY=parent.resultMatrix.ty;\r\n\t\tvar childX=child.resultMatrix.tx;\r\n\t\tvar childY=child.resultMatrix.ty;\r\n\t\tvar dX=childX-parentX;\r\n\t\tvar dY=childY-parentY;\r\n\t\tvar lPP=dX *dX+dY *dY;\r\n\t\tvar lP=Math.sqrt(lPP);\r\n\t\tdX=targetX-parent.resultMatrix.tx;\r\n\t\tdY=targetY-parent.resultMatrix.ty;\r\n\t\tvar lTT=dX *dX+dY *dY;\r\n\t\tvar lT=Math.sqrt(lTT);\r\n\t\tvar ikRadianA=0;\r\n\t\tif (lL+lP <=lT || lT+lL <=lP || lT+lP <=lL){\r\n\t\t\tvar rate=NaN;\r\n\t\t\tif (lL+lP <=lT){\r\n\t\t\t\trate=1;\r\n\t\t\t\t}else{\r\n\t\t\t\trate=-1;\r\n\t\t\t}\r\n\t\t\tchildX=parentX+rate*(targetX-parentX)*lP / lT;\r\n\t\t\tchildY=parentY+rate*(targetY-parentY)*lP / lT;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tvar h=(lPP-lLL+lTT)/ (2 *lTT);\r\n\t\t\tvar r=Math.sqrt(lPP-h *h *lTT)/ lT;\r\n\t\t\tvar hX=parentX+(dX *h);\r\n\t\t\tvar hY=parentY+(dY *h);\r\n\t\t\tvar rX=-dY *r;\r\n\t\t\tvar rY=dX *r;\r\n\t\t\tif (bendDir>0){\r\n\t\t\t\tchildX=hX-rX;\r\n\t\t\t\tchildY=hY-rY;\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tchildX=hX+rX;\r\n\t\t\t\tchildY=hY+rY;\r\n\t\t\t}\r\n\t\t}\r\n\t\tcwx=childX;\r\n\t\tcwy=childY;\r\n\t\tif (this.isDebug){\r\n\t\t\tif (!this._sp){\r\n\t\t\t\tthis._sp=new Sprite();\r\n\t\t\t\tLaya.stage.addChild(this._sp);\r\n\t\t\t}\r\n\t\t\tthis._sp.graphics.clear();\r\n\t\t\tthis._sp.graphics.drawCircle(parentX,parentY,15,\"#ff00ff\");\r\n\t\t\tthis._sp.graphics.drawCircle(targetX,targetY,15,\"#ffff00\");\r\n\t\t\tthis._sp.graphics.drawCircle(cwx,cwy,15,\"#ff00ff\");\r\n\t\t};\r\n\t\tvar pRotation=NaN;\r\n\t\tpRotation=Math.atan2(cwy-parent.resultMatrix.ty,cwx-parent.resultMatrix.tx);\r\n\t\tparent.setRotation(pRotation);\r\n\t\tvar pTarMatrix;\r\n\t\tpTarMatrix=IkConstraint._tempMatrix;\r\n\t\tpTarMatrix.identity();\r\n\t\tpTarMatrix.rotate(pRotation);\r\n\t\tpTarMatrix.scale(parent.resultMatrix.getScaleX(),parent.resultMatrix.getScaleY());\r\n\t\tpTarMatrix.translate(parent.resultMatrix.tx,parent.resultMatrix.ty);\r\n\t\tpTarMatrix.copyTo(parent.resultMatrix);\r\n\t\tparent.updateChild();\r\n\t\tvar childRotation=NaN;\r\n\t\tchildRotation=Math.atan2(targetY-cwy,targetX-cwx);\r\n\t\tchild.setRotation(childRotation);\r\n\t\tvar childTarMatrix;\r\n\t\tchildTarMatrix=IkConstraint._tempMatrix;\r\n\t\tchildTarMatrix.identity();\r\n\t\tchildTarMatrix.rotate(childRotation);\r\n\t\tchildTarMatrix.scale(child.resultMatrix.getScaleX(),child.resultMatrix.getScaleY());\r\n\t\tchildTarMatrix.translate(cwx,cwy);\r\n\t\tpTarMatrix.copyTo(child.resultMatrix);\r\n\t\tchild.updateChild();\r\n\t}\r\n\r\n\t__static(IkConstraint,\r\n\t['radDeg',function(){return this.radDeg=180 / Math.PI;},'degRad',function(){return this.degRad=Math.PI / 180;},'_tempMatrix',function(){return this._tempMatrix=new Matrix();}\r\n\t]);\r\n\treturn IkConstraint;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.IkConstraintData\r\nvar IkConstraintData=(function(){\r\n\tfunction IkConstraintData(){\r\n\t\tthis.name=null;\r\n\t\tthis.targetBoneName=null;\r\n\t\tthis.bendDirection=1;\r\n\t\tthis.mix=1;\r\n\t\tthis.isSpine=true;\r\n\t\tthis.targetBoneIndex=-1;\r\n\t\tthis.boneNames=[];\r\n\t\tthis.boneIndexs=[];\r\n\t}\r\n\r\n\t__class(IkConstraintData,'laya.ani.bone.IkConstraintData');\r\n\treturn IkConstraintData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*Mesh数据处理工具\r\n*@version 1.0\r\n*\r\n*@created 2017-4-28 下午2:46:23\r\n*/\r\n//class laya.ani.bone.MeshTools\r\nvar MeshTools=(function(){\r\n\tfunction MeshTools(){}\r\n\t__class(MeshTools,'laya.ani.bone.MeshTools');\r\n\tMeshTools.findEdge=function(verticles,offI,min){\r\n\t\t(offI===void 0)&& (offI=0);\r\n\t\t(min===void 0)&& (min=true);\r\n\t\tvar i=0,len=0;\r\n\t\tvar tIndex=0;\r\n\t\tlen=verticles.length;\r\n\t\ttIndex=-1;\r\n\t\tfor (i=0;i < len;i+=2){\r\n\t\t\tif (tIndex < 0 || (min==(verticles[tIndex+offI] < verticles[i+offI]))){\r\n\t\t\t\ttIndex=i;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn tIndex;\r\n\t}\r\n\r\n\tMeshTools.findBestTriangle=function(verticles){\r\n\t\tvar topI=0;\r\n\t\ttopI=MeshTools.findEdge(verticles,1,true);\r\n\t\tvar bottomI=0;\r\n\t\tbottomI=MeshTools.findEdge(verticles,1,false);\r\n\t\tvar leftI=0;\r\n\t\tleftI=MeshTools.findEdge(verticles,0,true);\r\n\t\tvar rightI=0;\r\n\t\trightI=MeshTools.findEdge(verticles,0,false);\r\n\t\tvar rst;\r\n\t\trst=MeshTools._bestTriangle;\r\n\t\trst.length=0;\r\n\t\trst.push(leftI,rightI);\r\n\t\tif (rst.indexOf(topI)< 0)rst.push(topI);\r\n\t\tif (rst.indexOf(bottomI)< 0)rst.push(bottomI);\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tMeshTools.solveMesh=function(mesh,rst){\r\n\t\trst=rst||[];\r\n\t\trst.length=0;\r\n\t\tvar mUv;\r\n\t\tmUv=mesh.uvs;\r\n\t\tvar mVer;\r\n\t\tmVer=mesh.vertices;\r\n\t\tvar uvAbs;\r\n\t\tvar indexs;\r\n\t\tindexs=MeshTools.findBestTriangle(mUv);\r\n\t\tvar index0=0;\r\n\t\tvar index1=0;\r\n\t\tvar index2=0;\r\n\t\tindex0=indexs[0];\r\n\t\tindex1=indexs[1];\r\n\t\tindex2=indexs[2];\r\n\t\tMeshTools._absArr.length=0;\r\n\t\tvar newVerticles;\r\n\t\tif (MeshTools.isNormalUV(mesh.texture.uv)){\r\n\t\t\tMeshTools.adptTexture(mesh);\r\n\t\t}\r\n\t\tuvAbs=MeshTools.solvePoints(mesh.texture.uv,mUv[index0],mUv[index0+1],mUv[index1]-mUv[index0],mUv[index1+1]-mUv[index0+1],mUv[index2]-mUv[index0],mUv[index2+1]-mUv[index0+1],MeshTools._absArr);\r\n\t\tnewVerticles=MeshTools.transPoints(uvAbs,mVer[index0],mVer[index0+1],mVer[index1]-mVer[index0],mVer[index1+1]-mVer[index0+1],mVer[index2]-mVer[index0],mVer[index2+1]-mVer[index0+1],rst);\r\n\t\treturn newVerticles;\r\n\t}\r\n\r\n\tMeshTools.findWrapRect=function(verticles){\r\n\t\tvar topI=0;\r\n\t\ttopI=MeshTools.findEdge(verticles,1,true);\r\n\t\tvar bottomI=0;\r\n\t\tbottomI=MeshTools.findEdge(verticles,1,false);\r\n\t\tvar leftI=0;\r\n\t\tleftI=MeshTools.findEdge(verticles,0,true);\r\n\t\tvar rightI=0;\r\n\t\trightI=MeshTools.findEdge(verticles,0,false);\r\n\t\tvar left=NaN;\r\n\t\tleft=verticles[leftI];\r\n\t\tvar right=NaN;\r\n\t\tright=verticles[rightI];\r\n\t\tvar top=NaN;\r\n\t\ttop=verticles[topI+1];\r\n\t\tvar bottom=NaN;\r\n\t\tbottom=verticles[bottomI+1];\r\n\t\tvar rst;\r\n\t\treturn [right,bottom,left-right,top-bottom];\r\n\t}\r\n\r\n\tMeshTools.adptTexture=function(mesh){\r\n\t\tvar rec;\r\n\t\trec=MeshTools.findWrapRect(mesh.uvs);\r\n\t\tvar oTex;\r\n\t\tvar nTex;\r\n\t\toTex=mesh.texture;\r\n\t\tvar oWidth=oTex.width;\r\n\t\tvar oHeight=oTex.height;\r\n\t\tnTex=Texture.create(oTex,rec[0] *oWidth,rec[1] *oHeight,rec[2] *oWidth,rec[3] *oHeight);\r\n\t\tmesh.texture=nTex;\r\n\t}\r\n\r\n\tMeshTools.isNormalUV=function(uv){\r\n\t\treturn uv[0]==0 && uv[1]==0 && uv[4]==1 && uv[5]==1;\r\n\t}\r\n\r\n\tMeshTools.solvePoints=function(pointList,oX,oY,v1x,v1y,v2x,v2y,rst){\r\n\t\trst=rst||[];\r\n\t\tvar i=0,len=0;\r\n\t\tlen=pointList.length;\r\n\t\tvar tRst;\r\n\t\tfor (i=0;i < len;i+=2){\r\n\t\t\ttRst=MeshTools.solve2(pointList[i],pointList[i+1],oX,oY,v1x,v1y,v2x,v2y);\r\n\t\t\trst.push(tRst[0],tRst[1]);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tMeshTools.transPoints=function(abs,oX,oY,v1x,v1y,v2x,v2y,rst){\r\n\t\trst=rst|| [];\r\n\t\tvar i=0,len=0;\r\n\t\tlen=abs.length;\r\n\t\tvar tRst;\r\n\t\tfor (i=0;i < len;i+=2){\r\n\t\t\ttRst=MeshTools.transPoint(abs[i],abs[i+1],oX,oY,v1x,v1y,v2x,v2y,rst);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tMeshTools.transPoint=function(a,b,oX,oY,v1x,v1y,v2x,v2y,rst){\r\n\t\trst=rst|| [];\r\n\t\tvar nX=NaN;\r\n\t\tvar nY=NaN;\r\n\t\tnX=oX+v1x *a+v2x *b;\r\n\t\tnY=oY+v1y *a+v2y *b;\r\n\t\trst.push(nX,nY)\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tMeshTools.solve2=function(rx,ry,oX,oY,v1x,v1y,v2x,v2y,rv,rst){\r\n\t\t(rv===void 0)&& (rv=false);\r\n\t\trst=rst||[];\r\n\t\tvar a=NaN,b=NaN;\r\n\t\tif (v1x==0){\r\n\t\t\treturn MeshTools.solve2(rx,ry,oX,oY,v2x,v2y,v1x,v1y,true,rst);\r\n\t\t};\r\n\t\tvar dX=NaN;\r\n\t\tvar dY=NaN;\r\n\t\tdX=rx-oX;\r\n\t\tdY=ry-oY;\r\n\t\tb=(dY-dX *v1y / v1x)/ (v2y-v2x *v1y / v1x);\r\n\t\ta=(dX-b *v2x)/ v1x;\r\n\t\tif(rv){\r\n\t\t\trst.push(b,a);\r\n\t\t\t}else{\r\n\t\t\trst.push(a,b);\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tMeshTools.solve=function(pointC,point0,v1,v2){\r\n\t\treturn MeshTools.solve2(pointC.x,pointC.y,point0.x,point0.y,v1.x,v1.y,v2.x,v2.y);\r\n\t}\r\n\r\n\tMeshTools._bestTriangle=[];\r\n\tMeshTools._absArr=[];\r\n\treturn MeshTools;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*路径作用器\r\n*1，生成根据骨骼计算控制点\r\n*2，根据控制点生成路径，并计算路径上的节点\r\n*3，根据节点，重新调整骨骼位置\r\n*/\r\n//class laya.ani.bone.PathConstraint\r\nvar PathConstraint=(function(){\r\n\tfunction PathConstraint(data,bones){\r\n\t\tthis.target=null;\r\n\t\tthis.data=null;\r\n\t\tthis.bones=null;\r\n\t\tthis.position=NaN;\r\n\t\tthis.spacing=NaN;\r\n\t\tthis.rotateMix=NaN;\r\n\t\tthis.translateMix=NaN;\r\n\t\tthis._debugKey=false;\r\n\t\tthis._spaces=null;\r\n\t\tthis._segments=[];\r\n\t\tthis._curves=[];\r\n\t\tthis.data=data;\r\n\t\tthis.position=data.position;\r\n\t\tthis.spacing=data.spacing;\r\n\t\tthis.rotateMix=data.rotateMix;\r\n\t\tthis.translateMix=data.translateMix;\r\n\t\tthis.bones=[];\r\n\t\tvar tBoneIds=this.data.bones;\r\n\t\tfor (var i=0,n=tBoneIds.length;i < n;i++){\r\n\t\t\tthis.bones.push(bones[tBoneIds[i]]);\r\n\t\t}\r\n\t}\r\n\r\n\t__class(PathConstraint,'laya.ani.bone.PathConstraint');\r\n\tvar __proto=PathConstraint.prototype;\r\n\t/**\r\n\t*计算骨骼在路径上的节点\r\n\t*@param boneSlot\r\n\t*@param boneMatrixArray\r\n\t*@param graphics\r\n\t*/\r\n\t__proto.apply=function(boneList,graphics){\r\n\t\tif (!this.target)\r\n\t\t\treturn;\r\n\t\tvar tTranslateMix=this.translateMix;\r\n\t\tvar tRotateMix=this.translateMix;\r\n\t\tvar tTranslate=tTranslateMix > 0;\r\n\t\tvar tRotate=tRotateMix > 0;\r\n\t\tvar tSpacingMode=this.data.spacingMode;\r\n\t\tvar tLengthSpacing=tSpacingMode==\"length\";\r\n\t\tvar tRotateMode=this.data.rotateMode;\r\n\t\tvar tTangents=tRotateMode==\"tangent\";\r\n\t\tvar tScale=tRotateMode==\"chainScale\";\r\n\t\tvar lengths=[];\r\n\t\tvar boneCount=this.bones.length;\r\n\t\tvar spacesCount=tTangents ? boneCount :boneCount+1;\r\n\t\tvar spaces=[];\r\n\t\tthis._spaces=spaces;\r\n\t\tspaces[0]=this.position;\r\n\t\tvar spacing=this.spacing;\r\n\t\tif (tScale || tLengthSpacing){\r\n\t\t\tfor (var i=0,n=spacesCount-1;i < n;){\r\n\t\t\t\tvar bone=this.bones[i];\r\n\t\t\t\tvar length=bone.length;\r\n\t\t\t\tvar x=length *bone.resultMatrix.a;\r\n\t\t\t\tvar y=length *bone.resultMatrix.b;\r\n\t\t\t\tlength=Math.sqrt(x *x+y *y);\r\n\t\t\t\tif (tScale)\r\n\t\t\t\t\tlengths[i]=length;\r\n\t\t\t\tspaces[++i]=tLengthSpacing ? Math.max(0,length+spacing):spacing;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tfor (i=1;i < spacesCount;i++){\r\n\t\t\t\tspaces[i]=spacing;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar positions=this.computeWorldPositions(this.target,boneList,graphics,spacesCount,tTangents,this.data.positionMode==\"percent\",tSpacingMode==\"percent\");\r\n\t\tif (this._debugKey){\r\n\t\t\tfor (i=0;i < positions.length;i++){\r\n\t\t\t\tgraphics.drawCircle(positions[i++],positions[i++],5,\"#00ff00\");\r\n\t\t\t};\r\n\t\t\tvar tLinePos=[];\r\n\t\t\tfor (i=0;i < positions.length;i++){\r\n\t\t\t\ttLinePos.push(positions[i++],positions[i++]);\r\n\t\t\t}\r\n\t\t\tgraphics.drawLines(0,0,tLinePos,\"#ff0000\");\r\n\t\t};\r\n\t\tvar skeletonX=NaN;\r\n\t\tvar skeletonY=NaN;\r\n\t\tvar boneX=positions[0];\r\n\t\tvar boneY=positions[1];\r\n\t\tvar offsetRotation=this.data.offsetRotation;\r\n\t\tvar tip=tRotateMode==\"chain\" && offsetRotation==0;\r\n\t\tvar p=NaN;\r\n\t\tfor (i=0,p=3;i < boneCount;i++,p+=3){\r\n\t\t\tbone=this.bones[i];\r\n\t\t\tbone.resultMatrix.tx+=(boneX-bone.resultMatrix.tx)*tTranslateMix;\r\n\t\t\tbone.resultMatrix.ty+=(boneY-bone.resultMatrix.ty)*tTranslateMix;\r\n\t\t\tx=positions[p];\r\n\t\t\ty=positions[p+1];\r\n\t\t\tvar dx=x-boneX,dy=y-boneY;\r\n\t\t\tif (tScale){\r\n\t\t\t\tlength=lengths[i];\r\n\t\t\t\tif (length !=0){\r\n\t\t\t\t\tvar s=(Math.sqrt(dx *dx+dy *dy)/ length-1)*tRotateMix+1;\r\n\t\t\t\t\tbone.resultMatrix.a *=s;\r\n\t\t\t\t\tbone.resultMatrix.c *=s;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tboneX=x;\r\n\t\t\tboneY=y;\r\n\t\t\tif (tRotate){\r\n\t\t\t\tvar a=bone.resultMatrix.a;\r\n\t\t\t\tvar b=bone.resultMatrix.c;\r\n\t\t\t\tvar c=bone.resultMatrix.b;\r\n\t\t\t\tvar d=bone.resultMatrix.d;\r\n\t\t\t\tvar r=NaN;\r\n\t\t\t\tvar cos=NaN;\r\n\t\t\t\tvar sin=NaN;\r\n\t\t\t\tif (tTangents){\r\n\t\t\t\t\tr=positions[p-1];\r\n\t\t\t\t}\r\n\t\t\t\telse if (spaces[i+1]==0){\r\n\t\t\t\t\tr=positions[p+2];\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tr=Math.atan2(dy,dx);\r\n\t\t\t\t}\r\n\t\t\t\tr-=Math.atan2(c,a)-offsetRotation / 180 *Math.PI;\r\n\t\t\t\tif (tip){\r\n\t\t\t\t\tcos=Math.cos(r);\r\n\t\t\t\t\tsin=Math.sin(r);\r\n\t\t\t\t\tlength=bone.length;\r\n\t\t\t\t\tboneX+=(length *(cos *a-sin *c)-dx)*tRotateMix;\r\n\t\t\t\t\tboneY+=(length *(sin *a+cos *c)-dy)*tRotateMix;\r\n\t\t\t\t}\r\n\t\t\t\tif (r > Math.PI){\r\n\t\t\t\t\tr-=(Math.PI *2);\r\n\t\t\t\t}\r\n\t\t\t\telse if (r <-Math.PI){\r\n\t\t\t\t\tr+=(Math.PI *2);\r\n\t\t\t\t}\r\n\t\t\t\tr *=tRotateMix;\r\n\t\t\t\tcos=Math.cos(r);\r\n\t\t\t\tsin=Math.sin(r);\r\n\t\t\t\tbone.resultMatrix.a=cos *a-sin *c;\r\n\t\t\t\tbone.resultMatrix.c=cos *b-sin *d;\r\n\t\t\t\tbone.resultMatrix.b=sin *a+cos *c;\r\n\t\t\t\tbone.resultMatrix.d=sin *b+cos *d;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*计算顶点的世界坐标\r\n\t*@param boneSlot\r\n\t*@param boneList\r\n\t*@param start\r\n\t*@param count\r\n\t*@param worldVertices\r\n\t*@param offset\r\n\t*/\r\n\t__proto.computeWorldVertices2=function(boneSlot,boneList,start,count,worldVertices,offset){\r\n\t\tvar tBones=boneSlot.currDisplayData.bones;\r\n\t\tvar tWeights=boneSlot.currDisplayData.weights;\r\n\t\tvar tTriangles=boneSlot.currDisplayData.triangles;\r\n\t\tvar tMatrix;\r\n\t\tvar i=0;\r\n\t\tvar v=0;\r\n\t\tvar skip=0;\r\n\t\tvar n=0;\r\n\t\tvar w=0;\r\n\t\tvar b=0;\r\n\t\tvar wx=0;\r\n\t\tvar wy=0;\r\n\t\tvar vx=0;\r\n\t\tvar vy=0;\r\n\t\tvar bone;\r\n\t\tvar len=0;\r\n\t\tif (tBones==null){\r\n\t\t\tif (!tTriangles)tTriangles=tWeights;\r\n\t\t\tif (boneSlot.deformData)\r\n\t\t\t\ttTriangles=boneSlot.deformData;\r\n\t\t\tvar parentName;\r\n\t\t\tparentName=boneSlot.parent;\r\n\t\t\tif (boneList){\r\n\t\t\t\tlen=boneList.length;\r\n\t\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\t\tif (boneList[i].name==parentName){\r\n\t\t\t\t\t\tbone=boneList[i];\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tvar tBoneMt;\r\n\t\t\tif (bone){\r\n\t\t\t\ttBoneMt=bone.resultMatrix;\r\n\t\t\t}\r\n\t\t\tif (!tBoneMt)tBoneMt=PathConstraint._tempMt;\r\n\t\t\tvar x=tBoneMt.tx;\r\n\t\t\tvar y=tBoneMt.ty;\r\n\t\t\tvar a=tBoneMt.a,bb=tBoneMt.b,c=tBoneMt.c,d=tBoneMt.d;\r\n\t\t\tif(bone)d*=bone.d;\r\n\t\t\tfor (v=start,w=offset;w < count;v+=2,w+=2){\r\n\t\t\t\tvx=tTriangles[v],vy=tTriangles[v+1];\r\n\t\t\t\tworldVertices[w]=vx *a+vy *bb+x;\r\n\t\t\t\tworldVertices[w+1]=-(vx *c+vy *d+y);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tfor (i=0;i < start;i+=2){\r\n\t\t\tn=tBones[v];\r\n\t\t\tv+=n+1;\r\n\t\t\tskip+=n;\r\n\t\t};\r\n\t\tvar skeletonBones=boneList;\r\n\t\tfor (w=offset,b=skip *3;w < count;w+=2){\r\n\t\t\twx=0,wy=0;\r\n\t\t\tn=tBones[v++];\r\n\t\t\tn+=v;\r\n\t\t\tfor (;v < n;v++,b+=3){\r\n\t\t\t\ttMatrix=skeletonBones[tBones[v]].resultMatrix;\r\n\t\t\t\tvx=tWeights[b];\r\n\t\t\t\tvy=tWeights[b+1];\r\n\t\t\t\tvar weight=tWeights[b+2];\r\n\t\t\t\twx+=(vx *tMatrix.a+vy *tMatrix.c+tMatrix.tx)*weight;\r\n\t\t\t\twy+=(vx *tMatrix.b+vy *tMatrix.d+tMatrix.ty)*weight;\r\n\t\t\t}\r\n\t\t\tworldVertices[w]=wx;\r\n\t\t\tworldVertices[w+1]=wy;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*计算路径上的节点\r\n\t*@param boneSlot\r\n\t*@param boneList\r\n\t*@param graphics\r\n\t*@param spacesCount\r\n\t*@param tangents\r\n\t*@param percentPosition\r\n\t*@param percentSpacing\r\n\t*@return\r\n\t*/\r\n\t__proto.computeWorldPositions=function(boneSlot,boneList,graphics,spacesCount,tangents,percentPosition,percentSpacing){\r\n\t\tvar tBones=boneSlot.currDisplayData.bones;\r\n\t\tvar tWeights=boneSlot.currDisplayData.weights;\r\n\t\tvar tTriangles=boneSlot.currDisplayData.triangles;\r\n\t\tvar tRx=0;\r\n\t\tvar tRy=0;\r\n\t\tvar nn=0;\r\n\t\tvar tMatrix;\r\n\t\tvar tX=NaN;\r\n\t\tvar tY=NaN;\r\n\t\tvar tB=0;\r\n\t\tvar tWeight=0;\r\n\t\tvar tVertices=[];\r\n\t\tvar i=0,j=0,n=0;\r\n\t\tvar verticesLength=boneSlot.currDisplayData.verLen;\r\n\t\tvar target=boneSlot;\r\n\t\tvar position=this.position;\r\n\t\tvar spaces=this._spaces;\r\n\t\tvar world=[];\r\n\t\tvar out=[];\r\n\t\tvar closed=false;\r\n\t\tvar curveCount=verticesLength / 6;\r\n\t\tvar prevCurve=-1;\r\n\t\tvar pathLength=NaN;\r\n\t\tvar o=0,curve=0;\r\n\t\tvar p=NaN;\r\n\t\tvar space=NaN;\r\n\t\tvar prev=NaN;\r\n\t\tvar length=NaN;\r\n\t\tif (!true){\r\n\t\t\tvar lengths=boneSlot.currDisplayData.lengths;\r\n\t\t\tcurveCount-=closed ? 1 :2;\r\n\t\t\tpathLength=lengths[curveCount];\r\n\t\t\tif (percentPosition)\r\n\t\t\t\tposition *=pathLength;\r\n\t\t\tif (percentSpacing){\r\n\t\t\t\tfor (i=0;i < spacesCount;i++)\r\n\t\t\t\tspaces[i] *=pathLength;\r\n\t\t\t}\r\n\t\t\tworld.length=8;\r\n\t\t\tfor (i=0,o=0,curve=0;i < spacesCount;i++,o+=3){\r\n\t\t\t\tspace=spaces[i];\r\n\t\t\t\tposition+=space;\r\n\t\t\t\tp=position;\r\n\t\t\t\tif (closed){\r\n\t\t\t\t\tp %=pathLength;\r\n\t\t\t\t\tif (p < 0)\r\n\t\t\t\t\t\tp+=pathLength;\r\n\t\t\t\t\tcurve=0;\r\n\t\t\t\t}\r\n\t\t\t\telse if (p < 0){\r\n\t\t\t\t\tif (prevCurve !=PathConstraint.BEFORE){\r\n\t\t\t\t\t\tprevCurve=PathConstraint.BEFORE;\r\n\t\t\t\t\t\tthis.computeWorldVertices2(target,boneList,2,4,world,0);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.addBeforePosition(p,world,0,out,o);\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\t}\r\n\t\t\t\telse if (p > pathLength){\r\n\t\t\t\t\tif (prevCurve !=PathConstraint.AFTER){\r\n\t\t\t\t\t\tprevCurve=PathConstraint.AFTER;\r\n\t\t\t\t\t\tthis.computeWorldVertices2(target,boneList,verticesLength-6,4,world,0);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.addAfterPosition(p-pathLength,world,0,out,o);\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\t}\r\n\t\t\t\tfor (;;curve++){\r\n\t\t\t\t\tlength=lengths[curve];\r\n\t\t\t\t\tif (p > length)\r\n\t\t\t\t\t\tcontinue ;\r\n\t\t\t\t\tif (curve==0)\r\n\t\t\t\t\t\tp /=length;\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tprev=lengths[curve-1];\r\n\t\t\t\t\t\tp=(p-prev)/ (length-prev);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\t\tif (curve !=prevCurve){\r\n\t\t\t\t\tprevCurve=curve;\r\n\t\t\t\t\tif (closed && curve==curveCount){\r\n\t\t\t\t\t\tthis.computeWorldVertices2(target,boneList,verticesLength-4,4,world,0);\r\n\t\t\t\t\t\tthis.computeWorldVertices2(target,boneList,0,4,world,4);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\tthis.computeWorldVertices2(target,boneList,curve *6+2,8,world,0);\r\n\t\t\t\t}\r\n\t\t\t\tthis.addCurvePosition(p,world[0],world[1],world[2],world[3],world[4],world[5],world[6],world[7],out,o,tangents || (i > 0 && space==0));\r\n\t\t\t}\r\n\t\t\treturn out;\r\n\t\t}\r\n\t\tif (closed){\r\n\t\t\tverticesLength+=2;\r\n\t\t\tworld[verticesLength-2]=world[0];\r\n\t\t\tworld[verticesLength-1]=world[1];\r\n\t\t}\r\n\t\telse {\r\n\t\t\tcurveCount--;\r\n\t\t\tverticesLength-=4;\r\n\t\t\tthis.computeWorldVertices2(boneSlot,boneList,2,verticesLength,tVertices,0);\r\n\t\t\tif (this._debugKey){\r\n\t\t\t\tfor (i=0;i < tVertices.length;){\r\n\t\t\t\t\tgraphics.drawCircle(tVertices[i++],tVertices[i++],10,\"#ff0000\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tworld=tVertices;\r\n\t\t}\r\n\t\tthis._curves.length=curveCount;\r\n\t\tvar curves=this._curves;\r\n\t\tpathLength=0;\r\n\t\tvar x1=world[0],y1=world[1],cx1=0,cy1=0,cx2=0,cy2=0,x2=0,y2=0;\r\n\t\tvar tmpx=NaN,tmpy=NaN,dddfx=NaN,dddfy=NaN,ddfx=NaN,ddfy=NaN,dfx=NaN,dfy=NaN;\r\n\t\tvar w=0;\r\n\t\tfor (i=0,w=2;i < curveCount;i++,w+=6){\r\n\t\t\tcx1=world[w];\r\n\t\t\tcy1=world[w+1];\r\n\t\t\tcx2=world[w+2];\r\n\t\t\tcy2=world[w+3];\r\n\t\t\tx2=world[w+4];\r\n\t\t\ty2=world[w+5];\r\n\t\t\ttmpx=(x1-cx1 *2+cx2)*0.1875;\r\n\t\t\ttmpy=(y1-cy1 *2+cy2)*0.1875;\r\n\t\t\tdddfx=((cx1-cx2)*3-x1+x2)*0.09375;\r\n\t\t\tdddfy=((cy1-cy2)*3-y1+y2)*0.09375;\r\n\t\t\tddfx=tmpx *2+dddfx;\r\n\t\t\tddfy=tmpy *2+dddfy;\r\n\t\t\tdfx=(cx1-x1)*0.75+tmpx+dddfx *0.16666667;\r\n\t\t\tdfy=(cy1-y1)*0.75+tmpy+dddfy *0.16666667;\r\n\t\t\tpathLength+=Math.sqrt(dfx *dfx+dfy *dfy);\r\n\t\t\tdfx+=ddfx;\r\n\t\t\tdfy+=ddfy;\r\n\t\t\tddfx+=dddfx;\r\n\t\t\tddfy+=dddfy;\r\n\t\t\tpathLength+=Math.sqrt(dfx *dfx+dfy *dfy);\r\n\t\t\tdfx+=ddfx;\r\n\t\t\tdfy+=ddfy;\r\n\t\t\tpathLength+=Math.sqrt(dfx *dfx+dfy *dfy);\r\n\t\t\tdfx+=ddfx+dddfx;\r\n\t\t\tdfy+=ddfy+dddfy;\r\n\t\t\tpathLength+=Math.sqrt(dfx *dfx+dfy *dfy);\r\n\t\t\tcurves[i]=pathLength;\r\n\t\t\tx1=x2;\r\n\t\t\ty1=y2;\r\n\t\t}\r\n\t\tif (percentPosition)\r\n\t\t\tposition *=pathLength;\r\n\t\tif (percentSpacing){\r\n\t\t\tfor (i=0;i < spacesCount;i++)\r\n\t\t\tspaces[i] *=pathLength;\r\n\t\t};\r\n\t\tvar segments=this._segments;\r\n\t\tvar curveLength=0;\r\n\t\tvar segment=0;\r\n\t\tfor (i=0,o=0,curve=0,segment=0;i < spacesCount;i++,o+=3){\r\n\t\t\tspace=spaces[i];\r\n\t\t\tposition+=space;\r\n\t\t\tp=position;\r\n\t\t\tif (closed){\r\n\t\t\t\tp %=pathLength;\r\n\t\t\t\tif (p < 0)\r\n\t\t\t\t\tp+=pathLength;\r\n\t\t\t\tcurve=0;\r\n\t\t\t}\r\n\t\t\telse if (p < 0){\r\n\t\t\t\tthis.addBeforePosition(p,world,0,out,o);\r\n\t\t\t\tcontinue ;\r\n\t\t\t}\r\n\t\t\telse if (p > pathLength){\r\n\t\t\t\tthis.addAfterPosition(p-pathLength,world,verticesLength-4,out,o);\r\n\t\t\t\tcontinue ;\r\n\t\t\t}\r\n\t\t\tfor (;;curve++){\r\n\t\t\t\tlength=curves[curve];\r\n\t\t\t\tif (p > length)\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\tif (curve==0)\r\n\t\t\t\t\tp /=length;\r\n\t\t\t\telse {\r\n\t\t\t\t\tprev=curves[curve-1];\r\n\t\t\t\t\tp=(p-prev)/ (length-prev);\r\n\t\t\t\t}\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\t\tif (curve !=prevCurve){\r\n\t\t\t\tprevCurve=curve;\r\n\t\t\t\tvar ii=curve *6;\r\n\t\t\t\tx1=world[ii];\r\n\t\t\t\ty1=world[ii+1];\r\n\t\t\t\tcx1=world[ii+2];\r\n\t\t\t\tcy1=world[ii+3];\r\n\t\t\t\tcx2=world[ii+4];\r\n\t\t\t\tcy2=world[ii+5];\r\n\t\t\t\tx2=world[ii+6];\r\n\t\t\t\ty2=world[ii+7];\r\n\t\t\t\ttmpx=(x1-cx1 *2+cx2)*0.03;\r\n\t\t\t\ttmpy=(y1-cy1 *2+cy2)*0.03;\r\n\t\t\t\tdddfx=((cx1-cx2)*3-x1+x2)*0.006;\r\n\t\t\t\tdddfy=((cy1-cy2)*3-y1+y2)*0.006;\r\n\t\t\t\tddfx=tmpx *2+dddfx;\r\n\t\t\t\tddfy=tmpy *2+dddfy;\r\n\t\t\t\tdfx=(cx1-x1)*0.3+tmpx+dddfx *0.16666667;\r\n\t\t\t\tdfy=(cy1-y1)*0.3+tmpy+dddfy *0.16666667;\r\n\t\t\t\tcurveLength=Math.sqrt(dfx *dfx+dfy *dfy);\r\n\t\t\t\tsegments[0]=curveLength;\r\n\t\t\t\tfor (ii=1;ii < 8;ii++){\r\n\t\t\t\t\tdfx+=ddfx;\r\n\t\t\t\t\tdfy+=ddfy;\r\n\t\t\t\t\tddfx+=dddfx;\r\n\t\t\t\t\tddfy+=dddfy;\r\n\t\t\t\t\tcurveLength+=Math.sqrt(dfx *dfx+dfy *dfy);\r\n\t\t\t\t\tsegments[ii]=curveLength;\r\n\t\t\t\t}\r\n\t\t\t\tdfx+=ddfx;\r\n\t\t\t\tdfy+=ddfy;\r\n\t\t\t\tcurveLength+=Math.sqrt(dfx *dfx+dfy *dfy);\r\n\t\t\t\tsegments[8]=curveLength;\r\n\t\t\t\tdfx+=ddfx+dddfx;\r\n\t\t\t\tdfy+=ddfy+dddfy;\r\n\t\t\t\tcurveLength+=Math.sqrt(dfx *dfx+dfy *dfy);\r\n\t\t\t\tsegments[9]=curveLength;\r\n\t\t\t\tsegment=0;\r\n\t\t\t}\r\n\t\t\tp *=curveLength;\r\n\t\t\tfor (;;segment++){\r\n\t\t\t\tlength=segments[segment];\r\n\t\t\t\tif (p > length)\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\tif (segment==0)\r\n\t\t\t\t\tp /=length;\r\n\t\t\t\telse {\r\n\t\t\t\t\tprev=segments[segment-1];\r\n\t\t\t\t\tp=segment+(p-prev)/ (length-prev);\r\n\t\t\t\t}\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\t\tthis.addCurvePosition(p *0.1,x1,y1,cx1,cy1,cx2,cy2,x2,y2,out,o,tangents || (i > 0 && space==0));\r\n\t\t}\r\n\t\treturn out;\r\n\t}\r\n\r\n\t__proto.addBeforePosition=function(p,temp,i,out,o){\r\n\t\tvar x1=temp[i],y1=temp[i+1],dx=temp[i+2]-x1,dy=temp[i+3]-y1,r=Math.atan2(dy,dx);\r\n\t\tout[o]=x1+p *Math.cos(r);\r\n\t\tout[o+1]=y1+p *Math.sin(r);\r\n\t\tout[o+2]=r;\r\n\t}\r\n\r\n\t__proto.addAfterPosition=function(p,temp,i,out,o){\r\n\t\tvar x1=temp[i+2],y1=temp[i+3],dx=x1-temp[i],dy=y1-temp[i+1],r=Math.atan2(dy,dx);\r\n\t\tout[o]=x1+p *Math.cos(r);\r\n\t\tout[o+1]=y1+p *Math.sin(r);\r\n\t\tout[o+2]=r;\r\n\t}\r\n\r\n\t__proto.addCurvePosition=function(p,x1,y1,cx1,cy1,cx2,cy2,x2,y2,out,o,tangents){\r\n\t\tif (p==0)\r\n\t\t\tp=0.0001;\r\n\t\tvar tt=p *p,ttt=tt *p,u=1-p,uu=u *u,uuu=uu *u;\r\n\t\tvar ut=u *p,ut3=ut *3,uut3=u *ut3,utt3=ut3 *p;\r\n\t\tvar x=x1 *uuu+cx1 *uut3+cx2 *utt3+x2 *ttt,y=y1 *uuu+cy1 *uut3+cy2 *utt3+y2 *ttt;\r\n\t\tout[o]=x;\r\n\t\tout[o+1]=y;\r\n\t\tif (tangents){\r\n\t\t\tout[o+2]=Math.atan2(y-(y1 *uu+cy1 *ut *2+cy2 *tt),x-(x1 *uu+cx1 *ut *2+cx2 *tt));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tout[o+2]=0;\r\n\t\t}\r\n\t}\r\n\r\n\tPathConstraint.NONE=-1;\r\n\tPathConstraint.BEFORE=-2;\r\n\tPathConstraint.AFTER=-3;\r\n\t__static(PathConstraint,\r\n\t['_tempMt',function(){return this._tempMt=new Matrix();}\r\n\t]);\r\n\treturn PathConstraint;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.PathConstraintData\r\nvar PathConstraintData=(function(){\r\n\tfunction PathConstraintData(){\r\n\t\tthis.name=null;\r\n\t\tthis.target=null;\r\n\t\tthis.positionMode=null;\r\n\t\tthis.spacingMode=null;\r\n\t\tthis.rotateMode=null;\r\n\t\tthis.offsetRotation=NaN;\r\n\t\tthis.position=NaN;\r\n\t\tthis.spacing=NaN;\r\n\t\tthis.rotateMix=NaN;\r\n\t\tthis.translateMix=NaN;\r\n\t\tthis.bones=[];\r\n\t}\r\n\r\n\t__class(PathConstraintData,'laya.ani.bone.PathConstraintData');\r\n\treturn PathConstraintData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.SkinData\r\nvar SkinData=(function(){\r\n\tfunction SkinData(){\r\n\t\tthis.name=null;\r\n\t\tthis.slotArr=[];\r\n\t}\r\n\r\n\t__class(SkinData,'laya.ani.bone.SkinData');\r\n\treturn SkinData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.SkinSlotDisplayData\r\nvar SkinSlotDisplayData=(function(){\r\n\tfunction SkinSlotDisplayData(){\r\n\t\tthis.name=null;\r\n\t\tthis.attachmentName=null;\r\n\t\tthis.type=0;\r\n\t\tthis.transform=null;\r\n\t\tthis.width=NaN;\r\n\t\tthis.height=NaN;\r\n\t\tthis.texture=null;\r\n\t\tthis.bones=null;\r\n\t\tthis.uvs=null;\r\n\t\tthis.weights=null;\r\n\t\tthis.triangles=null;\r\n\t\tthis.vertices=null;\r\n\t\tthis.lengths=null;\r\n\t\tthis.verLen=0;\r\n\t}\r\n\r\n\t__class(SkinSlotDisplayData,'laya.ani.bone.SkinSlotDisplayData');\r\n\tvar __proto=SkinSlotDisplayData.prototype;\r\n\t__proto.createTexture=function(currTexture){\r\n\t\tif (this.texture)return this.texture;\r\n\t\tthis.texture=new Texture(currTexture.bitmap,this.uvs);\r\n\t\tif (this.uvs[0] > this.uvs[4]\r\n\t\t\t&& this.uvs[1] > this.uvs[5]){\r\n\t\t\tthis.texture.width=currTexture.height;\r\n\t\t\tthis.texture.height=currTexture.width;\r\n\t\t\tthis.texture.offsetX=-currTexture.offsetX;\r\n\t\t\tthis.texture.offsetY=-currTexture.offsetY;\r\n\t\t\tthis.texture.sourceWidth=currTexture.sourceHeight;\r\n\t\t\tthis.texture.sourceHeight=currTexture.sourceWidth;\r\n\t\t\t}else {\r\n\t\t\tthis.texture.width=currTexture.width;\r\n\t\t\tthis.texture.height=currTexture.height;\r\n\t\t\tthis.texture.offsetX=-currTexture.offsetX;\r\n\t\t\tthis.texture.offsetY=-currTexture.offsetY;\r\n\t\t\tthis.texture.sourceWidth=currTexture.sourceWidth;\r\n\t\t\tthis.texture.sourceHeight=currTexture.sourceHeight;\r\n\t\t}\r\n\t\tif (!Render.isWebGL){\r\n\t\t\tif (this.uvs[1] > this.uvs[5]){\r\n\t\t\t\tthis.texture.offsetY=this.texture.sourceHeight-this.texture.height-this.texture.offsetY;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.texture;\r\n\t}\r\n\r\n\t__proto.destory=function(){\r\n\t\tif (this.texture)this.texture.destroy();\r\n\t}\r\n\r\n\treturn SkinSlotDisplayData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.SlotData\r\nvar SlotData=(function(){\r\n\tfunction SlotData(){\r\n\t\tthis.name=null;\r\n\t\tthis.displayArr=[];\r\n\t}\r\n\r\n\t__class(SlotData,'laya.ani.bone.SlotData');\r\n\tvar __proto=SlotData.prototype;\r\n\t__proto.getDisplayByName=function(name){\r\n\t\tvar tDisplay;\r\n\t\tfor (var i=0,n=this.displayArr.length;i < n;i++){\r\n\t\t\ttDisplay=this.displayArr[i];\r\n\t\t\tif (tDisplay.attachmentName==name){\r\n\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn-1;\r\n\t}\r\n\r\n\treturn SlotData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.TfConstraint\r\nvar TfConstraint=(function(){\r\n\tfunction TfConstraint(data,bones){\r\n\t\tthis._data=null;\r\n\t\tthis._bones=null;\r\n\t\tthis.target=null;\r\n\t\tthis.rotateMix=NaN;\r\n\t\tthis.translateMix=NaN;\r\n\t\tthis.scaleMix=NaN;\r\n\t\tthis.shearMix=NaN;\r\n\t\tthis._temp=__newvec(2,0);\r\n\t\tthis._data=data;\r\n\t\tif (this._bones==null){\r\n\t\t\tthis._bones=[];\r\n\t\t}\r\n\t\tthis.target=bones[data.targetIndex];\r\n\t\tvar j=0,n=0;\r\n\t\tfor (j=0,n=data.boneIndexs.length;j < n;j++){\r\n\t\t\tthis._bones.push(bones[data.boneIndexs[j]]);\r\n\t\t}\r\n\t\tthis.rotateMix=data.rotateMix;\r\n\t\tthis.translateMix=data.translateMix;\r\n\t\tthis.scaleMix=data.scaleMix;\r\n\t\tthis.shearMix=data.shearMix;\r\n\t}\r\n\r\n\t__class(TfConstraint,'laya.ani.bone.TfConstraint');\r\n\tvar __proto=TfConstraint.prototype;\r\n\t__proto.apply=function(){\r\n\t\tvar tTfBone;\r\n\t\tvar ta=this.target.resultMatrix.a,tb=this.target.resultMatrix.b,tc=this.target.resultMatrix.c,td=this.target.resultMatrix.d;\r\n\t\tfor (var j=0,n=this._bones.length;j < n;j++){\r\n\t\t\ttTfBone=this._bones[j];\r\n\t\t\tif (this.rotateMix > 0){\r\n\t\t\t\tvar a=tTfBone.resultMatrix.a,b=tTfBone.resultMatrix.b,c=tTfBone.resultMatrix.c,d=tTfBone.resultMatrix.d;\r\n\t\t\t\tvar r=Math.atan2(tc,ta)-Math.atan2(c,a)+this._data.offsetRotation *Math.PI / 180;\r\n\t\t\t\tif (r > Math.PI)\r\n\t\t\t\t\tr-=Math.PI *2;\r\n\t\t\t\telse if (r <-Math.PI)r+=Math.PI *2;\r\n\t\t\t\tr *=this.rotateMix;\r\n\t\t\t\tvar cos=Math.cos(r),sin=Math.sin(r);\r\n\t\t\t\ttTfBone.resultMatrix.a=cos *a-sin *c;\r\n\t\t\t\ttTfBone.resultMatrix.b=cos *b-sin *d;\r\n\t\t\t\ttTfBone.resultMatrix.c=sin *a+cos *c;\r\n\t\t\t\ttTfBone.resultMatrix.d=sin *b+cos *d;\r\n\t\t\t}\r\n\t\t\tif (this.translateMix){\r\n\t\t\t\tthis._temp[0]=this._data.offsetX;\r\n\t\t\t\tthis._temp[1]=this._data.offsetY;\r\n\t\t\t\tthis.target.localToWorld(this._temp);\r\n\t\t\t\ttTfBone.resultMatrix.tx+=(this._temp[0]-tTfBone.resultMatrix.tx)*this.translateMix;\r\n\t\t\t\ttTfBone.resultMatrix.ty+=(this._temp[1]-tTfBone.resultMatrix.ty)*this.translateMix;\r\n\t\t\t\ttTfBone.updateChild();\r\n\t\t\t}\r\n\t\t\tif (this.scaleMix > 0){\r\n\t\t\t\tvar bs=Math.sqrt(tTfBone.resultMatrix.a *tTfBone.resultMatrix.a+tTfBone.resultMatrix.c *tTfBone.resultMatrix.c);\r\n\t\t\t\tvar ts=Math.sqrt(ta *ta+tc *tc);\r\n\t\t\t\tvar s=bs > 0.00001 ? (bs+(ts-bs+this._data.offsetScaleX)*this.scaleMix)/ bs :0;\r\n\t\t\t\ttTfBone.resultMatrix.a *=s;\r\n\t\t\t\ttTfBone.resultMatrix.c *=s;\r\n\t\t\t\tbs=Math.sqrt(tTfBone.resultMatrix.b *tTfBone.resultMatrix.b+tTfBone.resultMatrix.d *tTfBone.resultMatrix.d);\r\n\t\t\t\tts=Math.sqrt(tb *tb+td *td);\r\n\t\t\t\ts=bs > 0.00001 ? (bs+(ts-bs+this._data.offsetScaleY)*this.scaleMix)/ bs :0;\r\n\t\t\t\ttTfBone.resultMatrix.b *=s;\r\n\t\t\t\ttTfBone.resultMatrix.d *=s;\r\n\t\t\t}\r\n\t\t\tif (this.shearMix > 0){\r\n\t\t\t\tb=tTfBone.resultMatrix.b,d=tTfBone.resultMatrix.d;\r\n\t\t\t\tvar by=Math.atan2(d,b);\r\n\t\t\t\tr=Math.atan2(td,tb)-Math.atan2(tc,ta)-(by-Math.atan2(tTfBone.resultMatrix.c,tTfBone.resultMatrix.a));\r\n\t\t\t\tif (r > Math.PI)\r\n\t\t\t\t\tr-=Math.PI *2;\r\n\t\t\t\telse if (r <-Math.PI)r+=Math.PI *2;\r\n\t\t\t\tr=by+(r+this._data.offsetShearY *Math.PI / 180)*this.shearMix;\r\n\t\t\t\ts=Math.sqrt(b *b+d *d);\r\n\t\t\t\ttTfBone.resultMatrix.b=Math.cos(r)*s;\r\n\t\t\t\ttTfBone.resultMatrix.d=Math.sin(r)*s;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn TfConstraint;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.TfConstraintData\r\nvar TfConstraintData=(function(){\r\n\tfunction TfConstraintData(){\r\n\t\tthis.name=null;\r\n\t\tthis.targetIndex=0;\r\n\t\tthis.rotateMix=NaN;\r\n\t\tthis.translateMix=NaN;\r\n\t\tthis.scaleMix=NaN;\r\n\t\tthis.shearMix=NaN;\r\n\t\tthis.offsetRotation=NaN;\r\n\t\tthis.offsetX=NaN;\r\n\t\tthis.offsetY=NaN;\r\n\t\tthis.offsetScaleX=NaN;\r\n\t\tthis.offsetScaleY=NaN;\r\n\t\tthis.offsetShearY=NaN;\r\n\t\tthis.boneIndexs=[];\r\n\t}\r\n\r\n\t__class(TfConstraintData,'laya.ani.bone.TfConstraintData');\r\n\treturn TfConstraintData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.bone.Transform\r\nvar Transform=(function(){\r\n\tfunction Transform(){\r\n\t\tthis.skX=0;\r\n\t\tthis.skY=0;\r\n\t\tthis.scX=1;\r\n\t\tthis.scY=1;\r\n\t\tthis.x=0;\r\n\t\tthis.y=0;\r\n\t\tthis.skewX=0;\r\n\t\tthis.skewY=0;\r\n\t\tthis.mMatrix=null;\r\n\t}\r\n\r\n\t__class(Transform,'laya.ani.bone.Transform');\r\n\tvar __proto=Transform.prototype;\r\n\t__proto.initData=function(data){\r\n\t\tif (data.x !=undefined){\r\n\t\t\tthis.x=data.x;\r\n\t\t}\r\n\t\tif (data.y !=undefined){\r\n\t\t\tthis.y=data.y;\r\n\t\t}\r\n\t\tif (data.skX !=undefined){\r\n\t\t\tthis.skX=data.skX;\r\n\t\t}\r\n\t\tif (data.skY !=undefined){\r\n\t\t\tthis.skY=data.skY;\r\n\t\t}\r\n\t\tif (data.scX !=undefined){\r\n\t\t\tthis.scX=data.scX;\r\n\t\t}\r\n\t\tif (data.scY !=undefined){\r\n\t\t\tthis.scY=data.scY;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.getMatrix=function(){\r\n\t\tvar tMatrix;\r\n\t\tif (this.mMatrix){\r\n\t\t\ttMatrix=this.mMatrix;\r\n\t\t\t}else {\r\n\t\t\ttMatrix=this.mMatrix=new Matrix();\r\n\t\t}\r\n\t\ttMatrix.identity();\r\n\t\ttMatrix.scale(this.scX,this.scY);\r\n\t\tif (this.skewX || this.skewY){\r\n\t\t\tthis.skew(tMatrix,this.skewX *Math.PI / 180,this.skewY *Math.PI / 180);\r\n\t\t}\r\n\t\ttMatrix.rotate(this.skX *Math.PI / 180);\r\n\t\ttMatrix.translate(this.x,this.y);\r\n\t\treturn tMatrix;\r\n\t}\r\n\r\n\t__proto.skew=function(m,x,y){\r\n\t\tvar sinX=Math.sin(y);\r\n\t\tvar cosX=Math.cos(y);\r\n\t\tvar sinY=Math.sin(x);\r\n\t\tvar cosY=Math.cos(x);\r\n\t\tm.setTo(m.a *cosY-m.b *sinX,\r\n\t\tm.a *sinY+m.b *cosX,\r\n\t\tm.c *cosY-m.d *sinX,\r\n\t\tm.c *sinY+m.d *cosX,\r\n\t\tm.tx *cosY-m.ty *sinX,\r\n\t\tm.tx *sinY+m.ty *cosX);\r\n\t\treturn m;\r\n\t}\r\n\r\n\treturn Transform;\r\n})()\r\n\r\n\r\n/**\r\n*用于UV转换的工具类\r\n*@private\r\n*/\r\n//class laya.ani.bone.UVTools\r\nvar UVTools=(function(){\r\n\tfunction UVTools(){}\r\n\t__class(UVTools,'laya.ani.bone.UVTools');\r\n\tUVTools.getRelativeUV=function(bigUV,smallUV,rst){\r\n\t\tvar startX=bigUV[0];\r\n\t\tvar width=bigUV[2]-bigUV[0];\r\n\t\tvar startY=bigUV[1];\r\n\t\tvar height=bigUV[5]-bigUV[1];\r\n\t\tif(!rst)rst=[];\r\n\t\trst.length=smallUV.length;\r\n\t\tvar i=0,len=0;\r\n\t\tlen=rst.length;\r\n\t\tvar dWidth=1 / width;\r\n\t\tvar dHeight=1 / height;\r\n\t\tfor (i=0;i < len;i+=2){\r\n\t\t\trst[i]=(smallUV[i]-startX)*dWidth;\r\n\t\t\trst[i+1]=(smallUV[i+1]-startY)*dHeight;\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\tUVTools.getAbsoluteUV=function(bigUV,smallUV,rst){\r\n\t\tif (bigUV[0]==0 && bigUV[1]==0 && bigUV[4]==1 && bigUV[5]==1){\r\n\t\t\tif (rst){\r\n\t\t\t\tUtils.copyArray(rst,smallUV);\r\n\t\t\t\treturn rst;\r\n\t\t\t\t}else{\r\n\t\t\t\treturn smallUV;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar startX=bigUV[0];\r\n\t\tvar width=bigUV[2]-bigUV[0];\r\n\t\tvar startY=bigUV[1];\r\n\t\tvar height=bigUV[5]-bigUV[1];\r\n\t\tif(!rst)rst=[];\r\n\t\trst.length=smallUV.length;\r\n\t\tvar i=0,len=0;\r\n\t\tlen=rst.length;\r\n\t\tfor (i=0;i < len;i+=2){\r\n\t\t\trst[i]=smallUV[i]*width+startX;\r\n\t\t\trst[i+1]=smallUV[i+1]*height+startY;\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\treturn UVTools;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*@author ...\r\n*/\r\n//class laya.ani.KeyFramesContent\r\nvar KeyFramesContent=(function(){\r\n\tfunction KeyFramesContent(){\r\n\t\tthis.startTime=NaN;\r\n\t\tthis.duration=NaN;\r\n\t\tthis.interpolationData=null;\r\n\t\t//私有插值方式 [type0(插值类型),Data0(插值数据,可为空)，type1(插值类型),Data1(插值数据,可为空)] 注意：254全线性插值，255全不插值\r\n\t\tthis.data=null;\r\n\t\t//=new Float32Array();\r\n\t\tthis.nextData=null;\r\n\t}\r\n\r\n\t__class(KeyFramesContent,'laya.ani.KeyFramesContent');\r\n\treturn KeyFramesContent;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*...\r\n*@author ww\r\n*/\r\n//class laya.ani.math.BezierLerp\r\nvar BezierLerp=(function(){\r\n\tfunction BezierLerp(){}\r\n\t__class(BezierLerp,'laya.ani.math.BezierLerp');\r\n\tBezierLerp.getBezierRate=function(t,px0,py0,px1,py1){\r\n\t\tvar key=BezierLerp._getBezierParamKey(px0,py0,px1,py1);\r\n\t\tvar vKey=key *100+t;\r\n\t\tif (BezierLerp._bezierResultCache[vKey])return BezierLerp._bezierResultCache[vKey];\r\n\t\tvar points=BezierLerp._getBezierPoints(px0,py0,px1,py1,key);\r\n\t\tvar i=0,len=0;\r\n\t\tlen=points.length;\r\n\t\tfor (i=0;i < len;i+=2){\r\n\t\t\tif (t <=points[i]){\r\n\t\t\t\tBezierLerp._bezierResultCache[vKey]=points[i+1];\r\n\t\t\t\treturn points[i+1];\r\n\t\t\t}\r\n\t\t}\r\n\t\tBezierLerp._bezierResultCache[vKey]=1;\r\n\t\treturn 1;\r\n\t}\r\n\r\n\tBezierLerp._getBezierParamKey=function(px0,py0,px1,py1){\r\n\t\treturn (((px0 *100+py0)*100+px1)*100+py1)*100;\r\n\t}\r\n\r\n\tBezierLerp._getBezierPoints=function(px0,py0,px1,py1,key){\r\n\t\tif (BezierLerp._bezierPointsCache[key])return BezierLerp._bezierPointsCache[key];\r\n\t\tvar controlPoints;\r\n\t\tcontrolPoints=[0,0,px0,py0,px1,py1,1,1];\r\n\t\tvar bz;\r\n\t\tbz=new Bezier();\r\n\t\tvar points;\r\n\t\tpoints=bz.getBezierPoints(controlPoints,100,3);\r\n\t\tBezierLerp._bezierPointsCache[key]=points;\r\n\t\treturn points;\r\n\t}\r\n\r\n\tBezierLerp._bezierResultCache={};\r\n\tBezierLerp._bezierPointsCache={};\r\n\treturn BezierLerp;\r\n})()\r\n\r\n\r\n/**\r\n*<code>AnimationPlayer</code> 类用于动画播放器。\r\n*/\r\n//class laya.ani.AnimationPlayer extends laya.events.EventDispatcher\r\nvar AnimationPlayer=(function(_super){\r\n\tfunction AnimationPlayer(){\r\n\t\t/**@private */\r\n\t\tthis._destroyed=false;\r\n\t\t/**数据模板*/\r\n\t\tthis._templet=null;\r\n\t\t/**当前精确时间，不包括重播时间*/\r\n\t\tthis._currentTime=NaN;\r\n\t\t/**当前帧时间，不包括重播时间*/\r\n\t\tthis._currentFrameTime=NaN;\r\n\t\t/**动画播放的起始时间位置*/\r\n\t\tthis._playStart=NaN;\r\n\t\t/**动画播放的结束时间位置*/\r\n\t\tthis._playEnd=NaN;\r\n\t\t/**动画播放一次的总时间*/\r\n\t\tthis._playDuration=NaN;\r\n\t\t/**动画播放总时间*/\r\n\t\tthis._overallDuration=NaN;\r\n\t\t/**是否在一帧结束时停止*/\r\n\t\tthis._stopWhenCircleFinish=false;\r\n\t\t/**已播放时间，包括重播时间*/\r\n\t\tthis._elapsedPlaybackTime=NaN;\r\n\t\t/**播放时帧数*/\r\n\t\tthis._startUpdateLoopCount=NaN;\r\n\t\t/**当前动画索引*/\r\n\t\tthis._currentAnimationClipIndex=0;\r\n\t\t/**当前帧数*/\r\n\t\tthis._currentKeyframeIndex=0;\r\n\t\t/**是否暂停*/\r\n\t\tthis._paused=false;\r\n\t\t/**默认帧率,必须大于0*/\r\n\t\tthis._cacheFrameRate=0;\r\n\t\t/**帧率间隔时间*/\r\n\t\tthis._cacheFrameRateInterval=NaN;\r\n\t\t/**缓存播放速率*/\r\n\t\tthis._cachePlayRate=NaN;\r\n\t\tthis._fullFrames=null;\r\n\t\t/**是否缓存*/\r\n\t\tthis.isCache=true;\r\n\t\t/**播放速率*/\r\n\t\tthis.playbackRate=1.0;\r\n\t\t/**停止时是否归零*/\r\n\t\tthis.returnToZeroStopped=false;\r\n\t\tAnimationPlayer.__super.call(this);\r\n\t\tthis._destroyed=false;\r\n\t\tthis._currentAnimationClipIndex=-1;\r\n\t\tthis._currentKeyframeIndex=-1;\r\n\t\tthis._currentTime=0.0;\r\n\t\tthis._overallDuration=Number.MAX_VALUE;\r\n\t\tthis._stopWhenCircleFinish=false;\r\n\t\tthis._elapsedPlaybackTime=0;\r\n\t\tthis._startUpdateLoopCount=-1;\r\n\t\tthis._cachePlayRate=1.0;\r\n\t\tthis.cacheFrameRate=60;\r\n\t\tthis.returnToZeroStopped=false;\r\n\t}\r\n\r\n\t__class(AnimationPlayer,'laya.ani.AnimationPlayer',_super);\r\n\tvar __proto=AnimationPlayer.prototype;\r\n\tLaya.imps(__proto,{\"laya.resource.IDestroy\":true})\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._onTempletLoadedComputeFullKeyframeIndices=function(cachePlayRate,cacheFrameRate,templet){\r\n\t\tif (this._templet===templet && this._cachePlayRate===cachePlayRate && this._cacheFrameRate===cacheFrameRate)\r\n\t\t\tthis._computeFullKeyframeIndices();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._computeFullKeyframeIndices=function(){\r\n\t\tvar anifullFrames=this._fullFrames=[];\r\n\t\tvar templet=this._templet;\r\n\t\tvar cacheFrameInterval=this._cacheFrameRateInterval *this._cachePlayRate;\r\n\t\tfor (var i=0,iNum=templet.getAnimationCount();i < iNum;i++){\r\n\t\t\tvar aniFullFrame=[];\r\n\t\t\tfor (var j=0,jNum=templet.getAnimation(i).nodes.length;j < jNum;j++){\r\n\t\t\t\tvar node=templet.getAnimation(i).nodes[j];\r\n\t\t\t\tvar frameCount=Math.floor(node.playTime / cacheFrameInterval+0.01);\r\n\t\t\t\tvar nodeFullFrames=new Uint16Array(frameCount+1);\r\n\t\t\t\tvar lastFrameIndex=-1;\r\n\t\t\t\tfor (var n=0,nNum=node.keyFrame.length;n < nNum;n++){\r\n\t\t\t\t\tvar keyFrame=node.keyFrame[n];\r\n\t\t\t\t\tvar tm=keyFrame.startTime;\r\n\t\t\t\t\tvar endTm=tm+keyFrame.duration+cacheFrameInterval;\r\n\t\t\t\t\tdo {\r\n\t\t\t\t\t\tvar frameIndex=Math.floor(tm / cacheFrameInterval+0.5);\r\n\t\t\t\t\t\tfor (var k=lastFrameIndex+1;k < frameIndex;k++)\r\n\t\t\t\t\t\tnodeFullFrames[k]=n;\r\n\t\t\t\t\t\tlastFrameIndex=frameIndex;\r\n\t\t\t\t\t\tnodeFullFrames[frameIndex]=n;\r\n\t\t\t\t\t\ttm+=cacheFrameInterval;\r\n\t\t\t\t\t}while (tm <=endTm);\r\n\t\t\t\t}\r\n\t\t\t\taniFullFrame.push(nodeFullFrames);\r\n\t\t\t}\r\n\t\t\tanifullFrames.push(aniFullFrame);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._onAnimationTempletLoaded=function(){\r\n\t\t(this.destroyed)|| (this._calculatePlayDuration());\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._calculatePlayDuration=function(){\r\n\t\tif (this.state!==/*laya.ani.AnimationState.stopped*/0){\r\n\t\t\tvar oriDuration=this._templet.getAniDuration(this._currentAnimationClipIndex);\r\n\t\t\t(this._playEnd===0)&& (this._playEnd=oriDuration);\r\n\t\t\tif (this._playEnd > oriDuration)\r\n\t\t\t\tthis._playEnd=oriDuration;\r\n\t\t\tthis._playDuration=this._playEnd-this._playStart;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._setPlayParams=function(time,cacheFrameInterval){\r\n\t\tthis._currentTime=time;\r\n\t\tthis._currentKeyframeIndex=Math.max(Math.floor((this.currentPlayTime)/ cacheFrameInterval+0.01),0);\r\n\t\tthis._currentFrameTime=this._currentKeyframeIndex *cacheFrameInterval;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._setPlayParamsWhenStop=function(currentAniClipPlayDuration,cacheFrameInterval){\r\n\t\tthis._currentTime=currentAniClipPlayDuration;\r\n\t\tthis._currentKeyframeIndex=Math.max(Math.floor(currentAniClipPlayDuration / cacheFrameInterval+0.01),0);\r\n\t\tthis._currentFrameTime=this._currentKeyframeIndex *cacheFrameInterval;\r\n\t\tthis._currentAnimationClipIndex=-1;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._update=function(elapsedTime){\r\n\t\tif (this._currentAnimationClipIndex===-1 || this._paused || !this._templet || !this._templet.loaded)\r\n\t\t\treturn;\r\n\t\tvar cacheFrameInterval=this._cacheFrameRateInterval *this._cachePlayRate;\r\n\t\tvar time=0;\r\n\t\t(this._startUpdateLoopCount!==Stat.loopCount)&& (time=elapsedTime *this.playbackRate,this._elapsedPlaybackTime+=time);\r\n\t\tvar currentAniClipPlayDuration=this.playDuration;\r\n\t\tif ((this._overallDuration!==0 && this._elapsedPlaybackTime >=this._overallDuration)|| (this._overallDuration===0 && this._elapsedPlaybackTime >=currentAniClipPlayDuration)){\r\n\t\t\tthis._setPlayParamsWhenStop(currentAniClipPlayDuration,cacheFrameInterval);\r\n\t\t\tthis.event(/*laya.events.Event.STOPPED*/\"stopped\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\ttime+=this._currentTime;\r\n\t\tif (currentAniClipPlayDuration > 0){\r\n\t\t\tif (time >=currentAniClipPlayDuration){\r\n\t\t\t\tdo {\r\n\t\t\t\t\ttime-=currentAniClipPlayDuration;\r\n\t\t\t\t\tif (this._stopWhenCircleFinish){\r\n\t\t\t\t\t\tthis._setPlayParamsWhenStop(currentAniClipPlayDuration,cacheFrameInterval);\r\n\t\t\t\t\t\tthis._stopWhenCircleFinish=false;\r\n\t\t\t\t\t\tthis.event(/*laya.events.Event.STOPPED*/\"stopped\");\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (time < currentAniClipPlayDuration){\r\n\t\t\t\t\t\tthis._setPlayParams(time,cacheFrameInterval);\r\n\t\t\t\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}while (time >=currentAniClipPlayDuration)\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._setPlayParams(time,cacheFrameInterval);\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tif (this._stopWhenCircleFinish){\r\n\t\t\t\tthis._setPlayParamsWhenStop(currentAniClipPlayDuration,cacheFrameInterval);\r\n\t\t\t\tthis._stopWhenCircleFinish=false;\r\n\t\t\t\tthis.event(/*laya.events.Event.STOPPED*/\"stopped\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis._currentTime=this._currentFrameTime=this._currentKeyframeIndex=0;\r\n\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._destroy=function(){\r\n\t\tthis.offAll();\r\n\t\tthis._templet=null;\r\n\t\tthis._fullFrames=null;\r\n\t\tthis._destroyed=true;\r\n\t}\r\n\r\n\t/**\r\n\t*播放动画。\r\n\t*@param index 动画索引。\r\n\t*@param playbackRate 播放速率。\r\n\t*@param duration 播放时长（0为1次,Number.MAX_VALUE为循环播放）。\r\n\t*@param playStart 播放的起始时间位置。\r\n\t*@param playEnd 播放的结束时间位置。（0为动画一次循环的最长结束时间位置）。\r\n\t*/\r\n\t__proto.play=function(index,playbackRate,overallDuration,playStart,playEnd){\r\n\t\t(index===void 0)&& (index=0);\r\n\t\t(playbackRate===void 0)&& (playbackRate=1.0);\r\n\t\t(overallDuration===void 0)&& (overallDuration=2147483647);\r\n\t\t(playStart===void 0)&& (playStart=0);\r\n\t\t(playEnd===void 0)&& (playEnd=0);\r\n\t\tif (!this._templet)\r\n\t\t\tthrow new Error(\"AnimationPlayer:templet must not be null,maybe you need to set url.\");\r\n\t\tif (overallDuration < 0 || playStart < 0 || playEnd < 0)\r\n\t\t\tthrow new Error(\"AnimationPlayer:overallDuration,playStart and playEnd must large than zero.\");\r\n\t\tif ((playEnd!==0)&& (playStart > playEnd))\r\n\t\t\tthrow new Error(\"AnimationPlayer:start must less than end.\");\r\n\t\tthis._currentTime=0;\r\n\t\tthis._currentFrameTime=0;\r\n\t\tthis._elapsedPlaybackTime=0;\r\n\t\tthis.playbackRate=playbackRate;\r\n\t\tthis._overallDuration=overallDuration;\r\n\t\tthis._playStart=playStart;\r\n\t\tthis._playEnd=playEnd;\r\n\t\tthis._paused=false;\r\n\t\tthis._currentAnimationClipIndex=index;\r\n\t\tthis._currentKeyframeIndex=0;\r\n\t\tthis._startUpdateLoopCount=Stat.loopCount;\r\n\t\tthis.event(/*laya.events.Event.PLAYED*/\"played\");\r\n\t\tif (this._templet.loaded)\r\n\t\t\tthis._calculatePlayDuration();\r\n\t\telse\r\n\t\tthis._templet.once(/*laya.events.Event.LOADED*/\"loaded\",this,this._onAnimationTempletLoaded);\r\n\t\tthis._update(0);\r\n\t}\r\n\r\n\t/**\r\n\t*播放动画。\r\n\t*@param index 动画索引。\r\n\t*@param playbackRate 播放速率。\r\n\t*@param duration 播放时长（0为1次,Number.MAX_VALUE为循环播放）。\r\n\t*@param playStartFrame 播放的原始起始帧率位置。\r\n\t*@param playEndFrame 播放的原始结束帧率位置。（0为动画一次循环的最长结束时间位置）。\r\n\t*/\r\n\t__proto.playByFrame=function(index,playbackRate,overallDuration,playStartFrame,playEndFrame,fpsIn3DBuilder){\r\n\t\t(index===void 0)&& (index=0);\r\n\t\t(playbackRate===void 0)&& (playbackRate=1.0);\r\n\t\t(overallDuration===void 0)&& (overallDuration=2147483647);\r\n\t\t(playStartFrame===void 0)&& (playStartFrame=0);\r\n\t\t(playEndFrame===void 0)&& (playEndFrame=0);\r\n\t\t(fpsIn3DBuilder===void 0)&& (fpsIn3DBuilder=30);\r\n\t\tvar interval=1000.0 / fpsIn3DBuilder;\r\n\t\tthis.play(index,playbackRate,overallDuration,playStartFrame *interval,playEndFrame *interval);\r\n\t}\r\n\r\n\t/**\r\n\t*停止播放当前动画\r\n\t*@param immediate 是否立即停止\r\n\t*/\r\n\t__proto.stop=function(immediate){\r\n\t\t(immediate===void 0)&& (immediate=true);\r\n\t\tif (immediate){\r\n\t\t\tthis._currentTime=this._currentFrameTime=this._currentKeyframeIndex=0;\r\n\t\t\tthis._currentAnimationClipIndex=-1;\r\n\t\t\tthis.event(/*laya.events.Event.STOPPED*/\"stopped\");\r\n\t\t\t}else {\r\n\t\t\tthis._stopWhenCircleFinish=true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*动画播放的结束时间位置。\r\n\t*@return 结束时间位置。\r\n\t*/\r\n\t__getset(0,__proto,'playEnd',function(){\r\n\t\treturn this._playEnd;\r\n\t});\r\n\r\n\t/**\r\n\t*设置动画数据模板,注意：修改此值会有计算开销。\r\n\t*@param value 动画数据模板\r\n\t*/\r\n\t/**\r\n\t*获取动画数据模板\r\n\t*@param value 动画数据模板\r\n\t*/\r\n\t__getset(0,__proto,'templet',function(){\r\n\t\treturn this._templet;\r\n\t\t},function(value){\r\n\t\tif (!this.state===/*laya.ani.AnimationState.stopped*/0)\r\n\t\t\tthis.stop(true);\r\n\t\tif (this._templet!==value){\r\n\t\t\tthis._templet=value;\r\n\t\t\tif (value.loaded)\r\n\t\t\t\tthis._computeFullKeyframeIndices();\r\n\t\t\telse\r\n\t\t\tvalue.once(/*laya.events.Event.LOADED*/\"loaded\",this,this._onTempletLoadedComputeFullKeyframeIndices,[this._cachePlayRate,this._cacheFrameRate]);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*动画播放的起始时间位置。\r\n\t*@return 起始时间位置。\r\n\t*/\r\n\t__getset(0,__proto,'playStart',function(){\r\n\t\treturn this._playStart;\r\n\t});\r\n\r\n\t/**\r\n\t*获取动画播放一次的总时间\r\n\t*@return 动画播放一次的总时间\r\n\t*/\r\n\t__getset(0,__proto,'playDuration',function(){\r\n\t\treturn this._playDuration;\r\n\t});\r\n\r\n\t/**\r\n\t*获取当前播放状态\r\n\t*@return 当前播放状态\r\n\t*/\r\n\t__getset(0,__proto,'state',function(){\r\n\t\tif (this._currentAnimationClipIndex===-1)\r\n\t\t\treturn /*laya.ani.AnimationState.stopped*/0;\r\n\t\tif (this._paused)\r\n\t\t\treturn /*laya.ani.AnimationState.paused*/1;\r\n\t\treturn /*laya.ani.AnimationState.playing*/2;\r\n\t});\r\n\r\n\t/**\r\n\t*获取当前帧数\r\n\t*@return 当前帧数\r\n\t*/\r\n\t__getset(0,__proto,'currentKeyframeIndex',function(){\r\n\t\treturn this._currentKeyframeIndex;\r\n\t});\r\n\r\n\t/**\r\n\t*获取动画播放的总总时间\r\n\t*@return 动画播放的总时间\r\n\t*/\r\n\t__getset(0,__proto,'overallDuration',function(){\r\n\t\treturn this._overallDuration;\r\n\t});\r\n\r\n\t/**\r\n\t*获取当前帧时间，不包括重播时间\r\n\t*@return value 当前时间\r\n\t*/\r\n\t__getset(0,__proto,'currentFrameTime',function(){\r\n\t\treturn this._currentFrameTime;\r\n\t});\r\n\r\n\t/**\r\n\t*获取当前动画索引\r\n\t*@return value 当前动画索引\r\n\t*/\r\n\t__getset(0,__proto,'currentAnimationClipIndex',function(){\r\n\t\treturn this._currentAnimationClipIndex;\r\n\t});\r\n\r\n\t/**\r\n\t*获取当前精确时间，不包括重播时间\r\n\t*@return value 当前时间\r\n\t*/\r\n\t__getset(0,__proto,'currentPlayTime',function(){\r\n\t\treturn this._currentTime+this._playStart;\r\n\t});\r\n\r\n\t/**\r\n\t*设置缓存播放速率,默认值为1.0,注意：修改此值会有计算开销。*\r\n\t*@return value 缓存播放速率。\r\n\t*/\r\n\t/**\r\n\t*获取缓存播放速率。*\r\n\t*@return 缓存播放速率。\r\n\t*/\r\n\t__getset(0,__proto,'cachePlayRate',function(){\r\n\t\treturn this._cachePlayRate;\r\n\t\t},function(value){\r\n\t\tif (this._cachePlayRate!==value){\r\n\t\t\tthis._cachePlayRate=value;\r\n\t\t\tif (this._templet)\r\n\t\t\t\tif (this._templet.loaded)\r\n\t\t\tthis._computeFullKeyframeIndices();\r\n\t\t\telse\r\n\t\t\tthis._templet.once(/*laya.events.Event.LOADED*/\"loaded\",this,this._onTempletLoadedComputeFullKeyframeIndices,[value,this._cacheFrameRate]);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*设置默认帧率,每秒60帧,注意：修改此值会有计算开销。*\r\n\t*@return value 缓存帧率\r\n\t*/\r\n\t/**\r\n\t*获取默认帧率*\r\n\t*@return value 默认帧率\r\n\t*/\r\n\t__getset(0,__proto,'cacheFrameRate',function(){\r\n\t\treturn this._cacheFrameRate;\r\n\t\t},function(value){\r\n\t\tif (this._cacheFrameRate!==value){\r\n\t\t\tthis._cacheFrameRate=value;\r\n\t\t\tthis._cacheFrameRateInterval=1000.0 / this._cacheFrameRate;\r\n\t\t\tif (this._templet)\r\n\t\t\t\tif (this._templet.loaded)\r\n\t\t\tthis._computeFullKeyframeIndices();\r\n\t\t\telse\r\n\t\t\tthis._templet.once(/*laya.events.Event.LOADED*/\"loaded\",this,this._onTempletLoadedComputeFullKeyframeIndices,[this._cachePlayRate,value]);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*设置当前播放位置\r\n\t*@param value 当前时间\r\n\t*/\r\n\t__getset(0,__proto,'currentTime',null,function(value){\r\n\t\tif (this._currentAnimationClipIndex===-1 || !this._templet || !this._templet.loaded)\r\n\t\t\treturn;\r\n\t\tif (value < this._playStart || value > this._playEnd)\r\n\t\t\tthrow new Error(\"AnimationPlayer:value must large than playStartTime,small than playEndTime.\");\r\n\t\tthis._startUpdateLoopCount=Stat.loopCount;\r\n\t\tvar cacheFrameInterval=this._cacheFrameRateInterval *this._cachePlayRate;\r\n\t\tthis._currentTime=value;\r\n\t\tthis._currentKeyframeIndex=Math.max(Math.floor(this.currentPlayTime / cacheFrameInterval),0);\r\n\t\tthis._currentFrameTime=this._currentKeyframeIndex *cacheFrameInterval;\r\n\t});\r\n\r\n\t/**\r\n\t*设置是否暂停\r\n\t*@param value 是否暂停\r\n\t*/\r\n\t/**\r\n\t*获取当前是否暂停\r\n\t*@return 是否暂停\r\n\t*/\r\n\t__getset(0,__proto,'paused',function(){\r\n\t\treturn this._paused;\r\n\t\t},function(value){\r\n\t\tthis._paused=value;\r\n\t\tvalue && this.event(/*laya.events.Event.PAUSED*/\"paused\");\r\n\t});\r\n\r\n\t/**\r\n\t*获取缓存帧率间隔时间\r\n\t*@return 缓存帧率间隔时间\r\n\t*/\r\n\t__getset(0,__proto,'cacheFrameRateInterval',function(){\r\n\t\treturn this._cacheFrameRateInterval;\r\n\t});\r\n\r\n\t/**\r\n\t*获取是否已销毁。\r\n\t*@return 是否已销毁。\r\n\t*/\r\n\t__getset(0,__proto,'destroyed',function(){\r\n\t\treturn this._destroyed;\r\n\t});\r\n\r\n\treturn AnimationPlayer;\r\n})(EventDispatcher)\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.ani.GraphicsAni extends laya.display.Graphics\r\nvar GraphicsAni=(function(_super){\r\n\tfunction GraphicsAni(){\r\n\t\tGraphicsAni.__super.call(this);\r\n\t\tif (Render.isConchNode){\r\n\t\t\tthis[\"drawSkin\"]=function (skin){\r\n\t\t\t\tskin.transform || (skin.transform=Matrix.EMPTY);\r\n\t\t\t\t/*__JS__ */this._addCmd([skin]);\r\n\t\t\t\tthis.setSkinMesh&&this.setSkinMesh(skin._ps,skin.mVBData,skin.mEleNum,0,skin.mTexture,skin.transform);\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n\r\n\t__class(GraphicsAni,'laya.ani.GraphicsAni',_super);\r\n\tvar __proto=GraphicsAni.prototype;\r\n\t/**\r\n\t*@private\r\n\t*画自定义蒙皮动画\r\n\t*@param skin\r\n\t*/\r\n\t__proto.drawSkin=function(skin){\r\n\t\tvar arr=[skin];\r\n\t\tthis._saveToCmd(Render._context._drawSkin,arr);\r\n\t}\r\n\r\n\tGraphicsAni.create=function(){\r\n\t\tvar rs=GraphicsAni._caches.pop();\r\n\t\treturn rs||new GraphicsAni();\r\n\t}\r\n\r\n\tGraphicsAni.recycle=function(graphics){\r\n\t\tgraphics.clear();\r\n\t\tGraphicsAni._caches.push(graphics);\r\n\t}\r\n\r\n\tGraphicsAni._caches=[];\r\n\treturn GraphicsAni;\r\n})(Graphics)\r\n\r\n\r\n/**\r\n*@private\r\n*Canvas版本的SkinMesh\r\n*/\r\n//class laya.ani.bone.canvasmesh.SkinMeshCanvas extends laya.ani.bone.canvasmesh.CanvasMeshRender\r\nvar SkinMeshCanvas=(function(_super){\r\n\tfunction SkinMeshCanvas(){\r\n\t\tSkinMeshCanvas.__super.call(this);\r\n\t\tthis.mesh=new MeshData();\r\n\t}\r\n\r\n\t__class(SkinMeshCanvas,'laya.ani.bone.canvasmesh.SkinMeshCanvas',_super);\r\n\tvar __proto=SkinMeshCanvas.prototype;\r\n\t__proto.init2=function(texture,vs,ps,verticles,uvs){\r\n\t\tif (this.transform){\r\n\t\t\tthis.transform=null;\r\n\t\t};\r\n\t\tvar _ps;\r\n\t\tif (ps){\r\n\t\t\t_ps=ps;\r\n\t\t\t}else {\r\n\t\t\t_ps=[];\r\n\t\t\t_ps.push(0,1,3,3,1,2);\r\n\t\t}\r\n\t\tthis.mesh.texture=texture;\r\n\t\tthis.mesh.indexes=_ps;\r\n\t\tthis.mesh.vertices=verticles;\r\n\t\tthis.mesh.uvs=uvs;\r\n\t}\r\n\r\n\t__proto.render=function(context,x,y){\r\n\t\tif(!this.mesh.texture)return;\r\n\t\tif(!this.transform){\r\n\t\t\tthis.transform=SkinMeshCanvas._tempMatrix;\r\n\t\t\tthis.transform.identity();\r\n\t\t\tthis.transform.translate(x,y);\r\n\t\t\tthis.renderToContext(context);\r\n\t\t\tthis.transform.translate(-x,-y);\r\n\t\t\tthis.transform=null;\r\n\t\t\t}else{\r\n\t\t\tthis.transform.translate(x,y);\r\n\t\t\tthis.renderToContext(context);\r\n\t\t\tthis.transform.translate(-x,-y);\r\n\t\t}\r\n\t}\r\n\r\n\t__static(SkinMeshCanvas,\r\n\t['_tempMatrix',function(){return this._tempMatrix=new Matrix();}\r\n\t]);\r\n\treturn SkinMeshCanvas;\r\n})(CanvasMeshRender)\r\n\r\n\r\n/**\r\n*<code>AnimationTemplet</code> 类用于动画模板资源。\r\n*/\r\n//class laya.ani.AnimationTemplet extends laya.resource.Resource\r\nvar AnimationTemplet=(function(_super){\r\n\tfunction AnimationTemplet(){\r\n\t\t/**@private */\r\n\t\t//this._aniVersion=null;\r\n\t\t/**@private */\r\n\t\tthis._aniMap={};\r\n\t\t/**@private */\r\n\t\t//this._publicExtData=null;\r\n\t\t/**@private */\r\n\t\t//this._useParent=false;\r\n\t\t/**@private */\r\n\t\t//this.unfixedCurrentFrameIndexes=null;\r\n\t\t/**@private */\r\n\t\t//this.unfixedCurrentTimes=null;\r\n\t\t/**@private */\r\n\t\t//this.unfixedKeyframes=null;\r\n\t\t/**@private */\r\n\t\tthis.unfixedLastAniIndex=-1;\r\n\t\t/**@private */\r\n\t\t//this._aniClassName=null;\r\n\t\t/**@private */\r\n\t\t//this._animationDatasCache=null;\r\n\t\tAnimationTemplet.__super.call(this);\r\n\t\tthis._anis=new Array;\r\n\t}\r\n\r\n\t__class(AnimationTemplet,'laya.ani.AnimationTemplet',_super);\r\n\tvar __proto=AnimationTemplet.prototype;\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.parse=function(data){\r\n\t\tvar reader=new Byte(data);\r\n\t\tthis._aniVersion=reader.readUTFString();\r\n\t\tAnimationParser01.parse(this,reader);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._calculateKeyFrame=function(node,keyframeCount,keyframeDataCount){\r\n\t\tvar keyFrames=node.keyFrame;\r\n\t\tkeyFrames[keyframeCount]=keyFrames[0];\r\n\t\tfor (var i=0;i < keyframeCount;i++){\r\n\t\t\tvar keyFrame=keyFrames[i];\r\n\t\t\tkeyFrame.nextData=(keyFrame.duration===0)? keyFrame.data :keyFrames[i+1].data;\r\n\t\t}\r\n\t\tkeyFrames.length--;\r\n\t}\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__proto.onAsynLoaded=function(url,data,params){\r\n\t\tvar reader=new Byte(data);\r\n\t\tthis._aniVersion=reader.readUTFString();\r\n\t\tswitch (this._aniVersion){\r\n\t\t\tcase \"LAYAANIMATION:02\":\r\n\t\t\t\tAnimationParser02.parse(this,reader);\r\n\t\t\t\tbreak ;\r\n\t\t\tdefault :\r\n\t\t\t\tAnimationParser01.parse(this,reader);\r\n\t\t\t}\r\n\t\tthis._endLoaded();\r\n\t}\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__proto.disposeResource=function(){\r\n\t\tthis._aniVersion=null;\r\n\t\tthis._anis=null;\r\n\t\tthis._aniMap=null;\r\n\t\tthis._publicExtData=null;\r\n\t\tthis.unfixedCurrentFrameIndexes=null;\r\n\t\tthis.unfixedCurrentTimes=null;\r\n\t\tthis.unfixedKeyframes=null;\r\n\t\tthis._aniClassName=null;\r\n\t\tthis._animationDatasCache=null;\r\n\t}\r\n\r\n\t__proto.getAnimationCount=function(){\r\n\t\treturn this._anis.length;\r\n\t}\r\n\r\n\t__proto.getAnimation=function(aniIndex){\r\n\t\treturn this._anis[aniIndex];\r\n\t}\r\n\r\n\t__proto.getAniDuration=function(aniIndex){\r\n\t\treturn this._anis[aniIndex].playTime;\r\n\t}\r\n\r\n\t__proto.getNodes=function(aniIndex){\r\n\t\treturn this._anis[aniIndex].nodes;\r\n\t}\r\n\r\n\t__proto.getNodeIndexWithName=function(aniIndex,name){\r\n\t\treturn this._anis[aniIndex].bone3DMap[name];\r\n\t}\r\n\r\n\t__proto.getNodeCount=function(aniIndex){\r\n\t\treturn this._anis[aniIndex].nodes.length;\r\n\t}\r\n\r\n\t__proto.getTotalkeyframesLength=function(aniIndex){\r\n\t\treturn this._anis[aniIndex].totalKeyframeDatasLength;\r\n\t}\r\n\r\n\t__proto.getPublicExtData=function(){\r\n\t\treturn this._publicExtData;\r\n\t}\r\n\r\n\t__proto.getAnimationDataWithCache=function(key,cacheDatas,aniIndex,frameIndex){\r\n\t\tvar aniDatas=cacheDatas[aniIndex];\r\n\t\tif (!aniDatas){\r\n\t\t\treturn null;\r\n\t\t\t}else {\r\n\t\t\tvar keyDatas=aniDatas[key];\r\n\t\t\tif (!keyDatas)\r\n\t\t\t\treturn null;\r\n\t\t\telse {\r\n\t\t\t\treturn keyDatas[frameIndex];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.setAnimationDataWithCache=function(key,cacheDatas,aniIndex,frameIndex,data){\r\n\t\tvar aniDatas=(cacheDatas[aniIndex])|| (cacheDatas[aniIndex]={});\r\n\t\tvar aniDatasCache=(aniDatas[key])|| (aniDatas[key]=[]);\r\n\t\taniDatasCache[frameIndex]=data;\r\n\t}\r\n\r\n\t__proto.getOriginalData=function(aniIndex,originalData,nodesFrameIndices,frameIndex,playCurTime){\r\n\t\tvar oneAni=this._anis[aniIndex];\r\n\t\tvar nodes=oneAni.nodes;\r\n\t\tvar j=0;\r\n\t\tfor (var i=0,n=nodes.length,outOfs=0;i < n;i++){\r\n\t\t\tvar node=nodes[i];\r\n\t\t\tvar key;\r\n\t\t\tkey=node.keyFrame[nodesFrameIndices[i][frameIndex]];\r\n\t\t\tnode.dataOffset=outOfs;\r\n\t\t\tvar dt=playCurTime-key.startTime;\r\n\t\t\tvar lerpType=node.lerpType;\r\n\t\t\tif (lerpType){\r\n\t\t\t\tswitch (lerpType){\r\n\t\t\t\t\tcase 0:\r\n\t\t\t\t\tcase 1:\r\n\t\t\t\t\t\tfor (j=0;j < node.keyframeWidth;)\r\n\t\t\t\t\t\tj+=node.interpolationMethod[j](node,j,originalData,outOfs+j,key.data,dt,null,key.duration,key.nextData);\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase 2:;\r\n\t\t\t\t\t\tvar interpolationData=key.interpolationData;\r\n\t\t\t\t\t\tvar interDataLen=interpolationData.length;\r\n\t\t\t\t\t\tvar dataIndex=0;\r\n\t\t\t\t\t\tfor (j=0;j < interDataLen;){\r\n\t\t\t\t\t\t\tvar type=interpolationData[j];\r\n\t\t\t\t\t\tswitch (type){\r\n\t\t\t\t\t\t\tcase 6:\r\n\t\t\t\t\t\t\t\tj+=AnimationTemplet.interpolation[type](node,dataIndex,originalData,outOfs+dataIndex,key.data,dt,null,key.duration,key.nextData,interpolationData,j+1);\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tcase 7:\r\n\t\t\t\t\t\t\t\tj+=AnimationTemplet.interpolation[type](node,dataIndex,originalData,outOfs+dataIndex,key.data,dt,null,key.duration,key.nextData,interpolationData,j+1);\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tdefault :\r\n\t\t\t\t\t\t\t\tj+=AnimationTemplet.interpolation[type](node,dataIndex,originalData,outOfs+dataIndex,key.data,dt,null,key.duration,key.nextData);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdataIndex++;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tfor (j=0;j < node.keyframeWidth;)\r\n\t\t\t\tj+=node.interpolationMethod[j](node,j,originalData,outOfs+j,key.data,dt,null,key.duration,key.nextData);\r\n\t\t\t}\r\n\t\t\toutOfs+=node.keyframeWidth;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.getNodesCurrentFrameIndex=function(aniIndex,playCurTime){\r\n\t\tvar ani=this._anis[aniIndex];\r\n\t\tvar nodes=ani.nodes;\r\n\t\tif (aniIndex!==this.unfixedLastAniIndex){\r\n\t\t\tthis.unfixedCurrentFrameIndexes=new Uint32Array(nodes.length);\r\n\t\t\tthis.unfixedCurrentTimes=new Float32Array(nodes.length);\r\n\t\t\tthis.unfixedLastAniIndex=aniIndex;\r\n\t\t}\r\n\t\tfor (var i=0,n=nodes.length,outOfs=0;i < n;i++){\r\n\t\t\tvar node=nodes[i];\r\n\t\t\tif (playCurTime < this.unfixedCurrentTimes[i])\r\n\t\t\t\tthis.unfixedCurrentFrameIndexes[i]=0;\r\n\t\t\tthis.unfixedCurrentTimes[i]=playCurTime;\r\n\t\t\twhile ((this.unfixedCurrentFrameIndexes[i] < node.keyFrame.length)){\r\n\t\t\t\tif (node.keyFrame[this.unfixedCurrentFrameIndexes[i]].startTime > this.unfixedCurrentTimes[i])\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tthis.unfixedCurrentFrameIndexes[i]++;\r\n\t\t\t}\r\n\t\t\tthis.unfixedCurrentFrameIndexes[i]--;\r\n\t\t}\r\n\t\treturn this.unfixedCurrentFrameIndexes;\r\n\t}\r\n\r\n\t__proto.getOriginalDataUnfixedRate=function(aniIndex,originalData,playCurTime){\r\n\t\tvar oneAni=this._anis[aniIndex];\r\n\t\tvar nodes=oneAni.nodes;\r\n\t\tif (aniIndex!==this.unfixedLastAniIndex){\r\n\t\t\tthis.unfixedCurrentFrameIndexes=new Uint32Array(nodes.length);\r\n\t\t\tthis.unfixedCurrentTimes=new Float32Array(nodes.length);\r\n\t\t\tthis.unfixedKeyframes=__newvec(nodes.length);\r\n\t\t\tthis.unfixedLastAniIndex=aniIndex;\r\n\t\t};\r\n\t\tvar j=0;\r\n\t\tfor (var i=0,n=nodes.length,outOfs=0;i < n;i++){\r\n\t\t\tvar node=nodes[i];\r\n\t\t\tif (playCurTime < this.unfixedCurrentTimes[i])\r\n\t\t\t\tthis.unfixedCurrentFrameIndexes[i]=0;\r\n\t\t\tthis.unfixedCurrentTimes[i]=playCurTime;\r\n\t\t\twhile (this.unfixedCurrentFrameIndexes[i] < node.keyFrame.length){\r\n\t\t\t\tif (node.keyFrame[this.unfixedCurrentFrameIndexes[i]].startTime > this.unfixedCurrentTimes[i])\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tthis.unfixedKeyframes[i]=node.keyFrame[this.unfixedCurrentFrameIndexes[i]];\r\n\t\t\t\tthis.unfixedCurrentFrameIndexes[i]++;\r\n\t\t\t};\r\n\t\t\tvar key=this.unfixedKeyframes[i];\r\n\t\t\tnode.dataOffset=outOfs;\r\n\t\t\tvar dt=playCurTime-key.startTime;\r\n\t\t\tvar lerpType=node.lerpType;\r\n\t\t\tif (lerpType){\r\n\t\t\t\tswitch (node.lerpType){\r\n\t\t\t\t\tcase 0:\r\n\t\t\t\t\tcase 1:\r\n\t\t\t\t\t\tfor (j=0;j < node.keyframeWidth;)\r\n\t\t\t\t\t\tj+=node.interpolationMethod[j](node,j,originalData,outOfs+j,key.data,dt,null,key.duration,key.nextData);\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase 2:;\r\n\t\t\t\t\t\tvar interpolationData=key.interpolationData;\r\n\t\t\t\t\t\tvar interDataLen=interpolationData.length;\r\n\t\t\t\t\t\tvar dataIndex=0;\r\n\t\t\t\t\t\tfor (j=0;j < interDataLen;){\r\n\t\t\t\t\t\t\tvar type=interpolationData[j];\r\n\t\t\t\t\t\tswitch (type){\r\n\t\t\t\t\t\t\tcase 6:\r\n\t\t\t\t\t\t\t\tj+=AnimationTemplet.interpolation[type](node,dataIndex,originalData,outOfs+dataIndex,key.data,dt,null,key.duration,key.nextData,interpolationData,j+1);\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tcase 7:\r\n\t\t\t\t\t\t\t\tj+=AnimationTemplet.interpolation[type](node,dataIndex,originalData,outOfs+dataIndex,key.data,dt,null,key.duration,key.nextData,interpolationData,j+1);\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tdefault :\r\n\t\t\t\t\t\t\t\tj+=AnimationTemplet.interpolation[type](node,dataIndex,originalData,outOfs+dataIndex,key.data,dt,null,key.duration,key.nextData);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdataIndex++;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tfor (j=0;j < node.keyframeWidth;)\r\n\t\t\t\tj+=node.interpolationMethod[j](node,j,originalData,outOfs+j,key.data,dt,null,key.duration,key.nextData);\r\n\t\t\t}\r\n\t\t\toutOfs+=node.keyframeWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tAnimationTemplet._LinearInterpolation_0=function(bone,index,out,outOfs,data,dt,dData,duration,nextData,interData){\r\n\t\tvar amount=duration===0 ? 0 :dt / duration;\r\n\t\tout[outOfs]=(1.0-amount)*data[index]+amount *nextData[index];\r\n\t\treturn 1;\r\n\t}\r\n\r\n\tAnimationTemplet._QuaternionInterpolation_1=function(bone,index,out,outOfs,data,dt,dData,duration,nextData,interData){\r\n\t\tvar amount=duration===0 ? 0 :dt / duration;\r\n\t\tMathUtil.slerpQuaternionArray(data,index,nextData,index,amount,out,outOfs);\r\n\t\treturn 4;\r\n\t}\r\n\r\n\tAnimationTemplet._AngleInterpolation_2=function(bone,index,out,outOfs,data,dt,dData,duration,nextData,interData){\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tAnimationTemplet._RadiansInterpolation_3=function(bone,index,out,outOfs,data,dt,dData,duration,nextData,interData){\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tAnimationTemplet._Matrix4x4Interpolation_4=function(bone,index,out,outOfs,data,dt,dData,duration,nextData,interData){\r\n\t\tfor (var i=0;i < 16;i++,index++)\r\n\t\tout[outOfs+i]=data[index]+dt *dData[index];\r\n\t\treturn 16;\r\n\t}\r\n\r\n\tAnimationTemplet._NoInterpolation_5=function(bone,index,out,outOfs,data,dt,dData,duration,nextData,interData){\r\n\t\tout[outOfs]=data[index];\r\n\t\treturn 1;\r\n\t}\r\n\r\n\tAnimationTemplet._BezierInterpolation_6=function(bone,index,out,outOfs,data,dt,dData,duration,nextData,interData,offset){\r\n\t\t(offset===void 0)&& (offset=0);\r\n\t\tout[outOfs]=data[index]+(nextData[index]-data[index])*BezierLerp.getBezierRate(dt / duration,interData[offset],interData[offset+1],interData[offset+2],interData[offset+3]);\r\n\t\treturn 5;\r\n\t}\r\n\r\n\tAnimationTemplet._BezierInterpolation_7=function(bone,index,out,outOfs,data,dt,dData,duration,nextData,interData,offset){\r\n\t\t(offset===void 0)&& (offset=0);\r\n\t\tout[outOfs]=interData[offset+4]+interData[offset+5] *BezierLerp.getBezierRate((dt *0.001+interData[offset+6])/ interData[offset+7],interData[offset],interData[offset+1],interData[offset+2],interData[offset+3]);\r\n\t\treturn 9;\r\n\t}\r\n\r\n\tAnimationTemplet.load=function(url){\r\n\t\treturn Laya.loader.create(url,null,null,AnimationTemplet);\r\n\t}\r\n\r\n\tAnimationTemplet.interpolation=[AnimationTemplet._LinearInterpolation_0,AnimationTemplet._QuaternionInterpolation_1,AnimationTemplet._AngleInterpolation_2,AnimationTemplet._RadiansInterpolation_3,AnimationTemplet._Matrix4x4Interpolation_4,AnimationTemplet._NoInterpolation_5,AnimationTemplet._BezierInterpolation_6,AnimationTemplet._BezierInterpolation_7];\r\n\treturn AnimationTemplet;\r\n})(Resource)\r\n\r\n\r\n/**\r\n*@private\r\n*将mesh元素缓存到canvas中并进行绘制\r\n*/\r\n//class laya.ani.bone.canvasmesh.CacheAbleSkinMesh extends laya.ani.bone.canvasmesh.SkinMeshCanvas\r\nvar CacheAbleSkinMesh=(function(_super){\r\n\tfunction CacheAbleSkinMesh(){\r\n\t\tthis.isCached=false;\r\n\t\tthis.canvas=null;\r\n\t\tthis.tex=null;\r\n\t\tthis.rec=null;\r\n\t\tCacheAbleSkinMesh.__super.call(this);\r\n\t}\r\n\r\n\t__class(CacheAbleSkinMesh,'laya.ani.bone.canvasmesh.CacheAbleSkinMesh',_super);\r\n\tvar __proto=CacheAbleSkinMesh.prototype;\r\n\t__proto.getCanvasPic=function(){\r\n\t\tvar canvas=new HTMLCanvas(\"2D\");\r\n\t\tvar ctx=canvas.getContext('2d');\r\n\t\tthis.rec=this.mesh.getBounds();\r\n\t\tdebugger;\r\n\t\tcanvas.size(this.rec.width,this.rec.height);\r\n\t\tvar preTransform;\r\n\t\tpreTransform=this.transform;\r\n\t\tthis.transform=CacheAbleSkinMesh.tempMt;\r\n\t\tthis.transform.identity();\r\n\t\tthis.transform.translate(-this.rec.x,-this.rec.y);\r\n\t\tthis.renderToContext(ctx);\r\n\t\tthis.transform.translate(+this.rec.x,+this.rec.y);\r\n\t\tthis.transform=preTransform;\r\n\t\treturn new Texture(canvas);\r\n\t}\r\n\r\n\t__proto.render=function(context,x,y){\r\n\t\tif (!this.mesh.texture)return;\r\n\t\tif (!this.isCached){\r\n\t\t\tthis.isCached=true;\r\n\t\t\tthis.tex=this.getCanvasPic();\r\n\t\t}\r\n\t\tif(!this.transform){\r\n\t\t\tthis.transform=SkinMeshCanvas._tempMatrix;\r\n\t\t\tthis.transform.identity();\r\n\t\t\tthis.transform.translate(x,y);\r\n\t\t\tthis._renderTextureToContext(context);\r\n\t\t\tthis.transform.translate(-x,-y);\r\n\t\t\tthis.transform=null;\r\n\t\t\t}else{\r\n\t\t\tthis.transform.translate(x,y);\r\n\t\t\tthis._renderTextureToContext(context);\r\n\t\t\tthis.transform.translate(-x,-y);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._renderTextureToContext=function(context){\r\n\t\tthis.context=context.ctx || context;\r\n\t\tcontext.save();\r\n\t\tvar texture;\r\n\t\ttexture=this.tex;\r\n\t\tif (this.transform){\r\n\t\t\tvar mt=this.transform;\r\n\t\t\tcontext.transform(mt.a,mt.b,mt.c,mt.d,mt.tx,mt.ty);\r\n\t\t}\r\n\t\tthis.rec=this.mesh.getBounds();\r\n\t\tcontext.translate(this.rec.x,this.rec.y);\r\n\t\tcontext.drawTexture(texture,0,0,texture.width,texture.height,0,0);\r\n\t\tcontext.restore();\r\n\t}\r\n\r\n\t__static(CacheAbleSkinMesh,\r\n\t['tempMt',function(){return this.tempMt=new Matrix();}\r\n\t]);\r\n\treturn CacheAbleSkinMesh;\r\n})(SkinMeshCanvas)\r\n\r\n\r\n/**\r\n*@private\r\n*简化mesh绘制，多顶点mesh改为四顶点mesh，只绘制矩形不绘制三角形\r\n*/\r\n//class laya.ani.bone.canvasmesh.SimpleSkinMeshCanvas extends laya.ani.bone.canvasmesh.SkinMeshCanvas\r\nvar SimpleSkinMeshCanvas=(function(_super){\r\n\tfunction SimpleSkinMeshCanvas(){\r\n\t\t/**\r\n\t\t*当前mesh数据是否可用\r\n\t\t*/\r\n\t\tthis.cacheOK=false;\r\n\t\t/**\r\n\t\t*当前渲染数据是否可用\r\n\t\t*/\r\n\t\tthis.cacheCmdOK=false;\r\n\t\t/**\r\n\t\t*transform参数缓存\r\n\t\t*/\r\n\t\tthis.transformCmds=[];\r\n\t\t/**\r\n\t\t*drawImage参数缓存\r\n\t\t*/\r\n\t\tthis.drawCmds=[]\r\n\t\tSimpleSkinMeshCanvas.__super.call(this);\r\n\t\tthis.tempMesh=new MeshData();\r\n\t}\r\n\r\n\t__class(SimpleSkinMeshCanvas,'laya.ani.bone.canvasmesh.SimpleSkinMeshCanvas',_super);\r\n\tvar __proto=SimpleSkinMeshCanvas.prototype;\r\n\t__proto.init2=function(texture,vs,ps,verticles,uvs){\r\n\t\t_super.prototype.init2.call(this,texture,vs,ps,verticles,uvs);\r\n\t\tthis.cacheOK=false;\r\n\t\tthis.cacheCmdOK=false;\r\n\t\tthis.transformCmds.length=6;\r\n\t\tthis.drawCmds.length=9;\r\n\t}\r\n\r\n\t__proto.renderToContext=function(context){\r\n\t\tthis.context=context.ctx || context;\r\n\t\tif (this.mesh){\r\n\t\t\tif (this.mesh.uvs.length <=8){\r\n\t\t\t\tif (this.mode==0){\r\n\t\t\t\t\tthis._renderWithIndexes(this.mesh);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._renderNoIndexes(this.mesh);\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!this.cacheOK){\r\n\t\t\t\tthis.tempMesh.texture=this.mesh.texture;\r\n\t\t\t\tthis.tempMesh.uvs=this.mesh.texture.uv;\r\n\t\t\t\tthis.tempMesh.vertices=MeshTools.solveMesh(this.mesh,this.tempMesh.vertices);\r\n\t\t\t\tthis.cacheOK=true;\r\n\t\t\t}\r\n\t\t\tif (this.mode==0){\r\n\t\t\t\tthis._renderWithIndexes(this.tempMesh);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis._renderNoIndexes(this.tempMesh);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._renderWithIndexes=function(mesh){\r\n\t\tif(this.cacheCmdOK){\r\n\t\t\tthis.renderByCache(mesh);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar indexes=mesh.indexes;\r\n\t\tvar i=0,len=indexes.length;\r\n\t\tif (len > 1)\r\n\t\t\tlen=1;\r\n\t\tfor (i=0;i < len;i+=3){\r\n\t\t\tvar index0=indexes[i] *2;\r\n\t\t\tvar index1=indexes[i+1] *2;\r\n\t\t\tvar index2=indexes[i+2] *2;\r\n\t\t\tthis._renderDrawTriangle(mesh,index0,index1,index2);\r\n\t\t}\r\n\t\tthis.cacheCmdOK=true;\r\n\t}\r\n\r\n\t__proto._renderDrawTriangle=function(mesh,index0,index1,index2){\r\n\t\tvar context=this.context;\r\n\t\tvar uvs=mesh.uvs;\r\n\t\tvar vertices=mesh.vertices;\r\n\t\tvar texture=mesh.texture;\r\n\t\tvar source=texture.bitmap;\r\n\t\tvar textureSource=source.source;\r\n\t\tvar textureWidth=texture.width;\r\n\t\tvar textureHeight=texture.height;\r\n\t\tvar sourceWidth=source.width;\r\n\t\tvar sourceHeight=source.height;\r\n\t\tvar u0=NaN;\r\n\t\tvar u1=NaN;\r\n\t\tvar u2=NaN;\r\n\t\tvar v0=NaN;\r\n\t\tvar v1=NaN;\r\n\t\tvar v2=NaN;\r\n\t\tif (mesh.useUvTransform){\r\n\t\t\tvar ut=mesh.uvTransform;\r\n\t\t\tu0=((uvs[index0] *ut.a)+(uvs[index0+1] *ut.c)+ut.tx)*sourceWidth;\r\n\t\t\tu1=((uvs[index1] *ut.a)+(uvs[index1+1] *ut.c)+ut.tx)*sourceWidth;\r\n\t\t\tu2=((uvs[index2] *ut.a)+(uvs[index2+1] *ut.c)+ut.tx)*sourceWidth;\r\n\t\t\tv0=((uvs[index0] *ut.b)+(uvs[index0+1] *ut.d)+ut.ty)*sourceHeight;\r\n\t\t\tv1=((uvs[index1] *ut.b)+(uvs[index1+1] *ut.d)+ut.ty)*sourceHeight;\r\n\t\t\tv2=((uvs[index2] *ut.b)+(uvs[index2+1] *ut.d)+ut.ty)*sourceHeight;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tu0=uvs[index0] *sourceWidth;\r\n\t\t\tu1=uvs[index1] *sourceWidth;\r\n\t\t\tu2=uvs[index2] *sourceWidth;\r\n\t\t\tv0=uvs[index0+1] *sourceHeight;\r\n\t\t\tv1=uvs[index1+1] *sourceHeight;\r\n\t\t\tv2=uvs[index2+1] *sourceHeight;\r\n\t\t};\r\n\t\tvar x0=vertices[index0];\r\n\t\tvar x1=vertices[index1];\r\n\t\tvar x2=vertices[index2];\r\n\t\tvar y0=vertices[index0+1];\r\n\t\tvar y1=vertices[index1+1];\r\n\t\tvar y2=vertices[index2+1];\r\n\t\tvar delta=(u0 *v1)+(v0 *u2)+(u1 *v2)-(v1 *u2)-(v0 *u1)-(u0 *v2);\r\n\t\tvar dDelta=1 / delta;\r\n\t\tvar deltaA=(x0 *v1)+(v0 *x2)+(x1 *v2)-(v1 *x2)-(v0 *x1)-(x0 *v2);\r\n\t\tvar deltaB=(u0 *x1)+(x0 *u2)+(u1 *x2)-(x1 *u2)-(x0 *u1)-(u0 *x2);\r\n\t\tvar deltaC=(u0 *v1 *x2)+(v0 *x1 *u2)+(x0 *u1 *v2)-(x0 *v1 *u2)-(v0 *u1 *x2)-(u0 *x1 *v2);\r\n\t\tvar deltaD=(y0 *v1)+(v0 *y2)+(y1 *v2)-(v1 *y2)-(v0 *y1)-(y0 *v2);\r\n\t\tvar deltaE=(u0 *y1)+(y0 *u2)+(u1 *y2)-(y1 *u2)-(y0 *u1)-(u0 *y2);\r\n\t\tvar deltaF=(u0 *v1 *y2)+(v0 *y1 *u2)+(y0 *u1 *v2)-(y0 *v1 *u2)-(v0 *u1 *y2)-(u0 *y1 *v2);\r\n\t\tthis.transformCmds[0]=deltaA *dDelta;\r\n\t\tthis.transformCmds[1]=deltaD *dDelta;\r\n\t\tthis.transformCmds[2]=deltaB *dDelta;\r\n\t\tthis.transformCmds[3]=deltaE *dDelta;\r\n\t\tthis.transformCmds[4]=deltaC *dDelta;\r\n\t\tthis.transformCmds[5]=deltaF *dDelta;\r\n\t\tthis.drawCmds[0]=textureSource;\r\n\t\tthis.drawCmds[1]=texture.uv[0] *sourceWidth;\r\n\t\tthis.drawCmds[2]=texture.uv[1] *sourceHeight;\r\n\t\tthis.drawCmds[3]=textureWidth;\r\n\t\tthis.drawCmds[4]=textureHeight;\r\n\t\tthis.drawCmds[5]=texture.uv[0] *sourceWidth;\r\n\t\tthis.drawCmds[6]=texture.uv[1] *sourceHeight;\r\n\t\tthis.drawCmds[7]=textureWidth;\r\n\t\tthis.drawCmds[8]=textureHeight;\r\n\t\tcontext.save();\r\n\t\tif (this.transform){\r\n\t\t\tvar mt=this.transform;\r\n\t\t\tcontext.transform(mt.a,mt.b,mt.c,mt.d,mt.tx,mt.ty);\r\n\t\t}\r\n\t\tcontext.transform.apply(context,this.transformCmds);\r\n\t\tcontext.drawImage.apply(context,this.drawCmds);\r\n\t\tcontext.restore();\r\n\t}\r\n\r\n\t/**\r\n\t*绘制缓存的命令\r\n\t*@param mesh\r\n\t*\r\n\t*/\r\n\t__proto.renderByCache=function(mesh){\r\n\t\tvar context=this.context;\r\n\t\tcontext.save();\r\n\t\tif (this.transform){\r\n\t\t\tvar mt=this.transform;\r\n\t\t\tcontext.transform(mt.a,mt.b,mt.c,mt.d,mt.tx,mt.ty);\r\n\t\t}\r\n\t\tcontext.transform.apply(context,this.transformCmds);\r\n\t\tcontext.drawImage.apply(context,this.drawCmds);\r\n\t\tcontext.restore();\r\n\t}\r\n\r\n\treturn SimpleSkinMeshCanvas;\r\n})(SkinMeshCanvas)\r\n\r\n\r\n/**\r\n*骨骼动画由<code>Templet</code>，<code>AnimationPlayer</code>，<code>Skeleton</code>三部分组成。\r\n*/\r\n//class laya.ani.bone.Skeleton extends laya.display.Sprite\r\nvar Skeleton=(function(_super){\r\n\tfunction Skeleton(templet,aniMode){\r\n\t\tthis._templet=null;\r\n\t\t/**@private */\r\n\t\tthis._player=null;\r\n\t\t/**@private */\r\n\t\tthis._curOriginalData=null;\r\n\t\t//当前骨骼的偏移数据\r\n\t\tthis._boneMatrixArray=[];\r\n\t\t//当前骨骼动画的最终结果数据\r\n\t\tthis._lastTime=0;\r\n\t\t//上次的帧时间\r\n\t\tthis._currAniName=null;\r\n\t\tthis._currAniIndex=-1;\r\n\t\tthis._pause=true;\r\n\t\t/**@private */\r\n\t\tthis._aniClipIndex=-1;\r\n\t\t/**@private */\r\n\t\tthis._clipIndex=-1;\r\n\t\tthis._skinIndex=0;\r\n\t\tthis._skinName=\"default\";\r\n\t\tthis._aniMode=0;\r\n\t\t//当前动画自己的缓冲区\r\n\t\tthis._graphicsCache=null;\r\n\t\tthis._boneSlotDic=null;\r\n\t\tthis._bindBoneBoneSlotDic=null;\r\n\t\tthis._boneSlotArray=null;\r\n\t\tthis._index=-1;\r\n\t\tthis._total=-1;\r\n\t\tthis._indexControl=false;\r\n\t\t//加载路径\r\n\t\tthis._aniPath=null;\r\n\t\tthis._texturePath=null;\r\n\t\tthis._complete=null;\r\n\t\tthis._loadAniMode=0;\r\n\t\tthis._yReverseMatrix=null;\r\n\t\tthis._ikArr=null;\r\n\t\tthis._tfArr=null;\r\n\t\tthis._pathDic=null;\r\n\t\tthis._rootBone=null;\r\n\t\t/**@private */\r\n\t\tthis._boneList=null;\r\n\t\t/**@private */\r\n\t\tthis._aniSectionDic=null;\r\n\t\tthis._eventIndex=0;\r\n\t\tthis._drawOrderIndex=0;\r\n\t\tthis._drawOrder=null;\r\n\t\tthis._lastAniClipIndex=-1;\r\n\t\tthis._lastUpdateAniClipIndex=-1;\r\n\t\tSkeleton.__super.call(this);\r\n\t\t(aniMode===void 0)&& (aniMode=0);\r\n\t\tif (templet)this.init(templet,aniMode);\r\n\t}\r\n\r\n\t__class(Skeleton,'laya.ani.bone.Skeleton',_super);\r\n\tvar __proto=Skeleton.prototype;\r\n\t/**\r\n\t*初始化动画\r\n\t*@param templet 模板\r\n\t*@param aniMode 动画模式\r\n\t*<table>\r\n\t*<tr><th>模式</th><th>描述</th></tr>\r\n\t*<tr>\r\n\t*<td>0</td> <td>使用模板缓冲的数据，模板缓冲的数据，不允许修改（内存开销小，计算开销小，不支持换装）</td>\r\n\t*</tr>\r\n\t*<tr>\r\n\t*<td>1</td> <td>使用动画自己的缓冲区，每个动画都会有自己的缓冲区，相当耗费内存 （内存开销大，计算开销小，支持换装）</td>\r\n\t*</tr>\r\n\t*<tr>\r\n\t*<td>2</td> <td>使用动态方式，去实时去画（内存开销小，计算开销大，支持换装,不建议使用）</td>\r\n\t*</tr>\r\n\t*</table>\r\n\t*/\r\n\t__proto.init=function(templet,aniMode){\r\n\t\t(aniMode===void 0)&& (aniMode=0);\r\n\t\tvar i=0,n=0;\r\n\t\tif (aniMode==1){\r\n\t\t\tthis._graphicsCache=[];\r\n\t\t\tfor (i=0,n=templet.getAnimationCount();i < n;i++){\r\n\t\t\t\tthis._graphicsCache.push([]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._yReverseMatrix=templet.yReverseMatrix;\r\n\t\tthis._aniMode=aniMode;\r\n\t\tthis._templet=templet;\r\n\t\tthis._player=new AnimationPlayer();\r\n\t\tthis._player.cacheFrameRate=templet.rate;\r\n\t\tthis._player.templet=templet;\r\n\t\tthis._player.play();\r\n\t\tthis._parseSrcBoneMatrix();\r\n\t\tthis._boneList=templet.mBoneArr;\r\n\t\tthis._rootBone=templet.mRootBone;\r\n\t\tthis._aniSectionDic=templet.aniSectionDic;\r\n\t\tif (templet.ikArr.length > 0){\r\n\t\t\tthis._ikArr=[];\r\n\t\t\tfor (i=0,n=templet.ikArr.length;i < n;i++){\r\n\t\t\t\tthis._ikArr.push(new IkConstraint(templet.ikArr[i],this._boneList));\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (templet.pathArr.length > 0){\r\n\t\t\tvar tPathData;\r\n\t\t\tvar tPathConstraint;\r\n\t\t\tif (this._pathDic==null)this._pathDic={};\r\n\t\t\tvar tBoneSlot;\r\n\t\t\tfor (i=0,n=templet.pathArr.length;i < n;i++){\r\n\t\t\t\ttPathData=templet.pathArr[i];\r\n\t\t\t\ttPathConstraint=new PathConstraint(tPathData,this._boneList);\r\n\t\t\t\ttBoneSlot=this._boneSlotDic[tPathData.name];\r\n\t\t\t\tif (tBoneSlot){\r\n\t\t\t\t\ttPathConstraint=new PathConstraint(tPathData,this._boneList);\r\n\t\t\t\t\ttPathConstraint.target=tBoneSlot;\r\n\t\t\t\t}\r\n\t\t\t\tthis._pathDic[tPathData.name]=tPathConstraint;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (templet.tfArr.length > 0){\r\n\t\t\tthis._tfArr=[];\r\n\t\t\tfor (i=0,n=templet.tfArr.length;i < n;i++){\r\n\t\t\t\tthis._tfArr.push(new TfConstraint(templet.tfArr[i],this._boneList));\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (templet.skinDataArray.length > 0){\r\n\t\t\tvar tSkinData=this._templet.skinDataArray[this._skinIndex];\r\n\t\t\tthis._skinName=tSkinData.name;\r\n\t\t}\r\n\t\tthis._player.on(/*laya.events.Event.PLAYED*/\"played\",this,this._onPlay);\r\n\t\tthis._player.on(/*laya.events.Event.STOPPED*/\"stopped\",this,this._onStop);\r\n\t\tthis._player.on(/*laya.events.Event.PAUSED*/\"paused\",this,this._onPause);\r\n\t}\r\n\r\n\t/**\r\n\t*通过加载直接创建动画\r\n\t*@param path 要加载的动画文件路径\r\n\t*@param complete 加载完成的回调函数\r\n\t*@param aniMode 与<code>Skeleton.init</code>的<code>aniMode</code>作用一致\r\n\t*/\r\n\t__proto.load=function(path,complete,aniMode){\r\n\t\t(aniMode===void 0)&& (aniMode=0);\r\n\t\tthis._aniPath=path;\r\n\t\tthis._complete=complete;\r\n\t\tthis._loadAniMode=aniMode;\r\n\t\tLaya.loader.load([{url:path,type:/*laya.net.Loader.BUFFER*/\"arraybuffer\"}],Handler.create(this,this._onLoaded));\r\n\t}\r\n\r\n\t/**\r\n\t*加载完成\r\n\t*/\r\n\t__proto._onLoaded=function(){\r\n\t\tvar arraybuffer=Loader.getRes(this._aniPath);\r\n\t\tif (arraybuffer==null)return;\r\n\t\tif (Templet.TEMPLET_DICTIONARY==null){\r\n\t\t\tTemplet.TEMPLET_DICTIONARY={};\r\n\t\t};\r\n\t\tvar tFactory;\r\n\t\ttFactory=Templet.TEMPLET_DICTIONARY[this._aniPath];\r\n\t\tif (tFactory){\r\n\t\t\tif (tFactory.isParseFail){\r\n\t\t\t\tthis._parseFail();\r\n\t\t\t\t}else {\r\n\t\t\t\tif (tFactory.isParserComplete){\r\n\t\t\t\t\tthis._parseComplete();\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\ttFactory.on(/*laya.events.Event.COMPLETE*/\"complete\",this,this._parseComplete);\r\n\t\t\t\t\ttFactory.on(/*laya.events.Event.ERROR*/\"error\",this,this._parseFail);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\ttFactory=new Templet();\r\n\t\t\ttFactory._setUrl(this._aniPath);\r\n\t\t\tTemplet.TEMPLET_DICTIONARY[this._aniPath]=tFactory;\r\n\t\t\ttFactory.on(/*laya.events.Event.COMPLETE*/\"complete\",this,this._parseComplete);\r\n\t\t\ttFactory.on(/*laya.events.Event.ERROR*/\"error\",this,this._parseFail);\r\n\t\t\ttFactory.isParserComplete=false;\r\n\t\t\ttFactory.parseData(null,arraybuffer);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*解析完成\r\n\t*/\r\n\t__proto._parseComplete=function(){\r\n\t\tvar tTemple=Templet.TEMPLET_DICTIONARY[this._aniPath];\r\n\t\tif (tTemple){\r\n\t\t\tthis.init(tTemple,this._loadAniMode);\r\n\t\t\tthis.play(0,true);\r\n\t\t}\r\n\t\tthis._complete && this._complete.runWith(this);\r\n\t}\r\n\r\n\t/**\r\n\t*解析失败\r\n\t*/\r\n\t__proto._parseFail=function(){\r\n\t\tconsole.log(\"[Error]:\"+this._aniPath+\"解析失败\");\r\n\t}\r\n\r\n\t/**\r\n\t*传递PLAY事件\r\n\t*/\r\n\t__proto._onPlay=function(){\r\n\t\tthis.event(/*laya.events.Event.PLAYED*/\"played\");\r\n\t}\r\n\r\n\t/**\r\n\t*传递STOP事件\r\n\t*/\r\n\t__proto._onStop=function(){\r\n\t\tvar tEventData;\r\n\t\tvar tEventAniArr=this._templet.eventAniArr;\r\n\t\tvar tEventArr=tEventAniArr[this._aniClipIndex];\r\n\t\tif (tEventArr && this._eventIndex < tEventArr.length){\r\n\t\t\tfor (;this._eventIndex < tEventArr.length;this._eventIndex++){\r\n\t\t\t\ttEventData=tEventArr[this._eventIndex];\r\n\t\t\t\tif (tEventData.time >=this._player.playStart && tEventData.time <=this._player.playEnd){\r\n\t\t\t\t\tthis.event(/*laya.events.Event.LABEL*/\"label\",tEventData);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._eventIndex=0;\r\n\t\tthis._drawOrder=null;\r\n\t\tthis.event(/*laya.events.Event.STOPPED*/\"stopped\");\r\n\t}\r\n\r\n\t/**\r\n\t*传递PAUSE事件\r\n\t*/\r\n\t__proto._onPause=function(){\r\n\t\tthis.event(/*laya.events.Event.PAUSED*/\"paused\");\r\n\t}\r\n\r\n\t/**\r\n\t*创建骨骼的矩阵，保存每次计算的最终结果\r\n\t*/\r\n\t__proto._parseSrcBoneMatrix=function(){\r\n\t\tvar i=0,n=0;\r\n\t\tn=this._templet.srcBoneMatrixArr.length;\r\n\t\tfor (i=0;i < n;i++){\r\n\t\t\tthis._boneMatrixArray.push(new Matrix());\r\n\t\t}\r\n\t\tif (this._aniMode==0){\r\n\t\t\tthis._boneSlotDic=this._templet.boneSlotDic;\r\n\t\t\tthis._bindBoneBoneSlotDic=this._templet.bindBoneBoneSlotDic;\r\n\t\t\tthis._boneSlotArray=this._templet.boneSlotArray;\r\n\t\t\t}else {\r\n\t\t\tif (this._boneSlotDic==null)this._boneSlotDic={};\r\n\t\t\tif (this._bindBoneBoneSlotDic==null)this._bindBoneBoneSlotDic={};\r\n\t\t\tif (this._boneSlotArray==null)this._boneSlotArray=[];\r\n\t\t\tvar tArr=this._templet.boneSlotArray;\r\n\t\t\tvar tBS;\r\n\t\t\tvar tBSArr;\r\n\t\t\tfor (i=0,n=tArr.length;i < n;i++){\r\n\t\t\t\ttBS=tArr[i];\r\n\t\t\t\ttBSArr=this._bindBoneBoneSlotDic[tBS.parent];\r\n\t\t\t\tif (tBSArr==null){\r\n\t\t\t\t\tthis._bindBoneBoneSlotDic[tBS.parent]=tBSArr=[];\r\n\t\t\t\t}\r\n\t\t\t\tthis._boneSlotDic[tBS.name]=tBS=tBS.copy();\r\n\t\t\t\ttBSArr.push(tBS);\r\n\t\t\t\tthis._boneSlotArray.push(tBS);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._emitMissedEvents=function(startTime,endTime,startIndex){\r\n\t\t(startIndex===void 0)&& (startIndex=0);\r\n\t\tvar tEventAniArr=this._templet.eventAniArr;\r\n\t\tvar tEventArr=tEventAniArr[this._player.currentAnimationClipIndex];\r\n\t\tif (tEventArr){\r\n\t\t\tvar i=0,len=0;\r\n\t\t\tvar tEventData;\r\n\t\t\tlen=tEventArr.length;\r\n\t\t\tfor (i=startIndex;i < len;i++){\r\n\t\t\t\ttEventData=tEventArr[i];\r\n\t\t\t\tif (tEventData.time >=this._player.playStart && tEventData.time <=this._player.playEnd){\r\n\t\t\t\t\tthis.event(/*laya.events.Event.LABEL*/\"label\",tEventData);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*更新动画\r\n\t*@param autoKey true为正常更新，false为index手动更新\r\n\t*/\r\n\t__proto._update=function(autoKey){\r\n\t\t(autoKey===void 0)&& (autoKey=true);\r\n\t\tif (this._pause)return;\r\n\t\tif (autoKey && this._indexControl){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar tCurrTime=this.timer.currTimer;\r\n\t\tvar preIndex=this._player.currentKeyframeIndex;\r\n\t\tvar dTime=tCurrTime-this._lastTime;\r\n\t\tif (autoKey){\r\n\t\t\tthis._player._update(dTime);\r\n\t\t\t}else {\r\n\t\t\tpreIndex=-1;\r\n\t\t}\r\n\t\tthis._lastTime=tCurrTime;\r\n\t\tif (!this._player)return;\r\n\t\tthis._index=this._clipIndex=this._player.currentKeyframeIndex;\r\n\t\tif (this._index < 0)return;\r\n\t\tif (dTime > 0 && this._clipIndex==preIndex && this._lastUpdateAniClipIndex==this._aniClipIndex){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._lastUpdateAniClipIndex=this._aniClipIndex;\r\n\t\tif (preIndex > this._clipIndex && this._eventIndex !=0){\r\n\t\t\tthis._emitMissedEvents(this._player.playStart,this._player.playEnd,this._eventIndex);\r\n\t\t\tthis._eventIndex=0;\r\n\t\t};\r\n\t\tvar tEventData;\r\n\t\tvar tEventAniArr=this._templet.eventAniArr;\r\n\t\tvar tEventArr=tEventAniArr[this._aniClipIndex];\r\n\t\tif (tEventArr && this._eventIndex < tEventArr.length){\r\n\t\t\ttEventData=tEventArr[this._eventIndex];\r\n\t\t\tif (tEventData.time >=this._player.playStart && tEventData.time <=this._player.playEnd){\r\n\t\t\t\tif (this._player.currentPlayTime >=tEventData.time){\r\n\t\t\t\t\tthis.event(/*laya.events.Event.LABEL*/\"label\",tEventData);\r\n\t\t\t\t\tthis._eventIndex++;\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._eventIndex++;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar tGraphics;\r\n\t\tif (this._aniMode==0){\r\n\t\t\ttGraphics=this._templet.getGrahicsDataWithCache(this._aniClipIndex,this._clipIndex);\r\n\t\t\tif (tGraphics){\r\n\t\t\t\tif (this.graphics !=tGraphics){\r\n\t\t\t\t\tthis.graphics=tGraphics;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t\t}else {\r\n\t\t\t\tvar i=0,minIndex=0;\r\n\t\t\t\tminIndex=this._clipIndex;\r\n\t\t\t\twhile ((!this._templet.getGrahicsDataWithCache(this._aniClipIndex,minIndex-1))&& (minIndex > 0)){\r\n\t\t\t\t\tminIndex--;\r\n\t\t\t\t}\r\n\t\t\t\tif (minIndex < this._clipIndex){\r\n\t\t\t\t\tfor (i=minIndex;i < this._clipIndex;i++){\r\n\t\t\t\t\t\tthis._createGraphics(i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else if (this._aniMode==1){\r\n\t\t\ttGraphics=this._getGrahicsDataWithCache(this._aniClipIndex,this._clipIndex);\r\n\t\t\tif (tGraphics){\r\n\t\t\t\tif (this.graphics !=tGraphics){\r\n\t\t\t\t\tthis.graphics=tGraphics;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t\t}else {\r\n\t\t\t\tminIndex=this._clipIndex;\r\n\t\t\t\twhile ((!this._getGrahicsDataWithCache(this._aniClipIndex,minIndex-1))&& (minIndex > 0)){\r\n\t\t\t\t\tminIndex--;\r\n\t\t\t\t}\r\n\t\t\t\tif (minIndex < this._clipIndex){\r\n\t\t\t\t\tfor (i=minIndex;i < this._clipIndex;i++){\r\n\t\t\t\t\t\tthis._createGraphics(i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._createGraphics();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*创建grahics图像\r\n\t*/\r\n\t__proto._createGraphics=function(_clipIndex){\r\n\t\t(_clipIndex===void 0)&& (_clipIndex=-1);\r\n\t\tif (_clipIndex==-1)_clipIndex=this._clipIndex;\r\n\t\tvar curTime=_clipIndex *this._player.cacheFrameRateInterval;\r\n\t\tvar tDrawOrderData;\r\n\t\tvar tDrawOrderAniArr=this._templet.drawOrderAniArr;\r\n\t\tvar tDrawOrderArr=tDrawOrderAniArr[this._aniClipIndex];\r\n\t\tif (tDrawOrderArr && tDrawOrderArr.length > 0){\r\n\t\t\tthis._drawOrderIndex=0;\r\n\t\t\ttDrawOrderData=tDrawOrderArr[this._drawOrderIndex];\r\n\t\t\twhile (curTime >=tDrawOrderData.time){\r\n\t\t\t\tthis._drawOrder=tDrawOrderData.drawOrder;\r\n\t\t\t\tthis._drawOrderIndex++;\r\n\t\t\t\tif (this._drawOrderIndex >=tDrawOrderArr.length){\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\t\ttDrawOrderData=tDrawOrderArr[this._drawOrderIndex];\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar tGraphics;\r\n\t\tif (this._aniMode==0 || this._aniMode==1){\r\n\t\t\tthis.graphics=GraphicsAni.create();\r\n\t\t\t}else {\r\n\t\t\tif ((this.graphics instanceof laya.ani.GraphicsAni )){\r\n\t\t\t\tthis.graphics.clear();\r\n\t\t\t\t}else {\r\n\t\t\t\tthis.graphics=GraphicsAni.create();\r\n\t\t\t}\r\n\t\t}\r\n\t\ttGraphics=this.graphics;\r\n\t\tvar bones=this._templet.getNodes(this._aniClipIndex);\r\n\t\tthis._templet.getOriginalData(this._aniClipIndex,this._curOriginalData,this._player._fullFrames[this._aniClipIndex],_clipIndex,curTime);\r\n\t\tvar tSectionArr=this._aniSectionDic[this._aniClipIndex];\r\n\t\tvar tParentMatrix;\r\n\t\tvar tStartIndex=0;\r\n\t\tvar i=0,j=0,k=0,n=0;\r\n\t\tvar tDBBoneSlot;\r\n\t\tvar tDBBoneSlotArr;\r\n\t\tvar tParentTransform;\r\n\t\tvar tSrcBone;\r\n\t\tvar boneCount=this._templet.srcBoneMatrixArr.length;\r\n\t\tfor (i=0,n=tSectionArr[0];i < boneCount;i++){\r\n\t\t\ttSrcBone=this._boneList[i];\r\n\t\t\ttParentTransform=this._templet.srcBoneMatrixArr[i];\r\n\t\t\ttSrcBone.resultTransform.scX=tParentTransform.scX *this._curOriginalData[tStartIndex++];\r\n\t\t\ttSrcBone.resultTransform.skX=tParentTransform.skX+this._curOriginalData[tStartIndex++];\r\n\t\t\ttSrcBone.resultTransform.skY=tParentTransform.skY+this._curOriginalData[tStartIndex++];\r\n\t\t\ttSrcBone.resultTransform.scY=tParentTransform.scY *this._curOriginalData[tStartIndex++];\r\n\t\t\ttSrcBone.resultTransform.x=tParentTransform.x+this._curOriginalData[tStartIndex++];\r\n\t\t\ttSrcBone.resultTransform.y=tParentTransform.y+this._curOriginalData[tStartIndex++];\r\n\t\t\tif (this._templet.tMatrixDataLen===8){\r\n\t\t\t\ttSrcBone.resultTransform.skewX=tParentTransform.skewX+this._curOriginalData[tStartIndex++];\r\n\t\t\t\ttSrcBone.resultTransform.skewY=tParentTransform.skewY+this._curOriginalData[tStartIndex++];\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar tSlotDic={};\r\n\t\tvar tSlotAlphaDic={};\r\n\t\tvar tBoneData;\r\n\t\tfor (n+=tSectionArr[1];i < n;i++){\r\n\t\t\ttBoneData=bones[i];\r\n\t\t\ttSlotDic[tBoneData.name]=this._curOriginalData[tStartIndex++];\r\n\t\t\ttSlotAlphaDic[tBoneData.name]=this._curOriginalData[tStartIndex++];\r\n\t\t\tthis._curOriginalData[tStartIndex++];\r\n\t\t\tthis._curOriginalData[tStartIndex++];\r\n\t\t\tthis._curOriginalData[tStartIndex++];\r\n\t\t\tthis._curOriginalData[tStartIndex++];\r\n\t\t};\r\n\t\tvar tBendDirectionDic={};\r\n\t\tvar tMixDic={};\r\n\t\tfor (n+=tSectionArr[2];i < n;i++){\r\n\t\t\ttBoneData=bones[i];\r\n\t\t\ttBendDirectionDic[tBoneData.name]=this._curOriginalData[tStartIndex++];\r\n\t\t\ttMixDic[tBoneData.name]=this._curOriginalData[tStartIndex++];\r\n\t\t\tthis._curOriginalData[tStartIndex++];\r\n\t\t\tthis._curOriginalData[tStartIndex++];\r\n\t\t\tthis._curOriginalData[tStartIndex++];\r\n\t\t\tthis._curOriginalData[tStartIndex++];\r\n\t\t}\r\n\t\tif (this._pathDic){\r\n\t\t\tvar tPathConstraint;\r\n\t\t\tfor (n+=tSectionArr[3];i < n;i++){\r\n\t\t\t\ttBoneData=bones[i];\r\n\t\t\t\ttPathConstraint=this._pathDic[tBoneData.name];\r\n\t\t\t\tif (tPathConstraint){\r\n\t\t\t\t\tvar tByte=new Byte(tBoneData.extenData);\r\n\t\t\t\t\tswitch (tByte.getByte()){\r\n\t\t\t\t\t\tcase 1:\r\n\t\t\t\t\t\t\ttPathConstraint.position=this._curOriginalData[tStartIndex++];\r\n\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\tcase 2:\r\n\t\t\t\t\t\t\ttPathConstraint.spacing=this._curOriginalData[tStartIndex++];\r\n\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\tcase 3:\r\n\t\t\t\t\t\t\ttPathConstraint.rotateMix=this._curOriginalData[tStartIndex++];\r\n\t\t\t\t\t\t\ttPathConstraint.translateMix=this._curOriginalData[tStartIndex++];\r\n\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._yReverseMatrix){\r\n\t\t\tthis._rootBone.update(this._yReverseMatrix);\r\n\t\t\t}else {\r\n\t\t\tthis._rootBone.update(Matrix.TEMP.identity());\r\n\t\t}\r\n\t\tif (this._ikArr){\r\n\t\t\tvar tIkConstraint;\r\n\t\t\tfor (i=0,n=this._ikArr.length;i < n;i++){\r\n\t\t\t\ttIkConstraint=this._ikArr[i];\r\n\t\t\t\tif (tBendDirectionDic.hasOwnProperty(tIkConstraint.name)){\r\n\t\t\t\t\ttIkConstraint.bendDirection=tBendDirectionDic[tIkConstraint.name];\r\n\t\t\t\t}\r\n\t\t\t\tif (tMixDic.hasOwnProperty(tIkConstraint.name)){\r\n\t\t\t\t\ttIkConstraint.mix=tMixDic[tIkConstraint.name]\r\n\t\t\t\t}\r\n\t\t\t\ttIkConstraint.apply();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._pathDic){\r\n\t\t\tfor (var tPathStr in this._pathDic){\r\n\t\t\t\ttPathConstraint=this._pathDic[tPathStr];\r\n\t\t\t\ttPathConstraint.apply(this._boneList,tGraphics);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._tfArr){\r\n\t\t\tvar tTfConstraint;\r\n\t\t\tfor (i=0,k=this._tfArr.length;i < k;i++){\r\n\t\t\t\ttTfConstraint=this._tfArr[i];\r\n\t\t\t\ttTfConstraint.apply();\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (i=0,k=this._boneList.length;i < k;i++){\r\n\t\t\ttSrcBone=this._boneList[i];\r\n\t\t\ttDBBoneSlotArr=this._bindBoneBoneSlotDic[tSrcBone.name];\r\n\t\t\ttSrcBone.resultMatrix.copyTo(this._boneMatrixArray[i]);\r\n\t\t\tif (tDBBoneSlotArr){\r\n\t\t\t\tfor (j=0,n=tDBBoneSlotArr.length;j < n;j++){\r\n\t\t\t\t\ttDBBoneSlot=tDBBoneSlotArr[j];\r\n\t\t\t\t\tif (tDBBoneSlot){\r\n\t\t\t\t\t\ttDBBoneSlot.setParentMatrix(tSrcBone.resultMatrix);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar tDeformDic={};\r\n\t\tvar tDeformAniArr=this._templet.deformAniArr;\r\n\t\tvar tDeformAniData;\r\n\t\tvar tDeformSlotData;\r\n\t\tvar tDeformSlotDisplayData;\r\n\t\tif (tDeformAniArr && tDeformAniArr.length > 0){\r\n\t\t\tif (this._lastAniClipIndex !=this._aniClipIndex){\r\n\t\t\t\tthis._lastAniClipIndex=this._aniClipIndex;\r\n\t\t\t\tfor (i=0,n=this._boneSlotArray.length;i < n;i++){\r\n\t\t\t\t\ttDBBoneSlot=this._boneSlotArray[i];\r\n\t\t\t\t\ttDBBoneSlot.deformData=null;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tvar tSkinDeformAni=tDeformAniArr[this._aniClipIndex];\r\n\t\t\ttDeformAniData=(tSkinDeformAni[\"default\"]);\r\n\t\t\tthis._setDeform(tDeformAniData,tDeformDic,this._boneSlotArray,curTime);\r\n\t\t\tvar tSkin;\r\n\t\t\tfor (tSkin in tSkinDeformAni){\r\n\t\t\t\tif (tSkin !=\"default\" && tSkin !=this._skinName){\r\n\t\t\t\t\ttDeformAniData=tSkinDeformAni [tSkin];\r\n\t\t\t\t\tthis._setDeform(tDeformAniData,tDeformDic,this._boneSlotArray,curTime);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttDeformAniData=(tSkinDeformAni[this._skinName]);\r\n\t\t\tthis._setDeform(tDeformAniData,tDeformDic,this._boneSlotArray,curTime);\r\n\t\t};\r\n\t\tvar tSlotData2;\r\n\t\tvar tSlotData3;\r\n\t\tvar tObject;\r\n\t\tif (this._drawOrder){\r\n\t\t\tfor (i=0,n=this._drawOrder.length;i < n;i++){\r\n\t\t\t\ttDBBoneSlot=this._boneSlotArray[this._drawOrder[i]];\r\n\t\t\t\ttSlotData2=tSlotDic[tDBBoneSlot.name];\r\n\t\t\t\ttSlotData3=tSlotAlphaDic[tDBBoneSlot.name];\r\n\t\t\t\tif (!isNaN(tSlotData3)){\r\n\t\t\t\t\ttGraphics.save();\r\n\t\t\t\t\ttGraphics.alpha(tSlotData3);\r\n\t\t\t\t}\r\n\t\t\t\tif (!isNaN(tSlotData2)&& tSlotData2 !=-2){\r\n\t\t\t\t\tif (this._templet.attachmentNames){\r\n\t\t\t\t\t\ttDBBoneSlot.showDisplayByName(this._templet.attachmentNames[tSlotData2]);\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\ttDBBoneSlot.showDisplayByIndex(tSlotData2);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (tDeformDic[this._drawOrder[i]]){\r\n\t\t\t\t\ttObject=tDeformDic[this._drawOrder[i]];\r\n\t\t\t\t\tif (tDBBoneSlot.currDisplayData && tObject[tDBBoneSlot.currDisplayData.attachmentName]){\r\n\t\t\t\t\t\ttDBBoneSlot.deformData=tObject[tDBBoneSlot.currDisplayData.attachmentName];\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\ttDBBoneSlot.deformData=null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\ttDBBoneSlot.deformData=null;\r\n\t\t\t\t}\r\n\t\t\t\tif (!isNaN(tSlotData3)){\r\n\t\t\t\t\ttDBBoneSlot.draw(tGraphics,this._boneMatrixArray,this._aniMode==2,tSlotData3);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\ttDBBoneSlot.draw(tGraphics,this._boneMatrixArray,this._aniMode==2);\r\n\t\t\t\t}\r\n\t\t\t\tif (!isNaN(tSlotData3)){\r\n\t\t\t\t\ttGraphics.restore();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tfor (i=0,n=this._boneSlotArray.length;i < n;i++){\r\n\t\t\t\ttDBBoneSlot=this._boneSlotArray[i];\r\n\t\t\t\ttSlotData2=tSlotDic[tDBBoneSlot.name];\r\n\t\t\t\ttSlotData3=tSlotAlphaDic[tDBBoneSlot.name];\r\n\t\t\t\tif (!isNaN(tSlotData3)){\r\n\t\t\t\t\ttGraphics.save();\r\n\t\t\t\t\ttGraphics.alpha(tSlotData3);\r\n\t\t\t\t}\r\n\t\t\t\tif (!isNaN(tSlotData2)&& tSlotData2 !=-2){\r\n\t\t\t\t\tif (this._templet.attachmentNames){\r\n\t\t\t\t\t\ttDBBoneSlot.showDisplayByName(this._templet.attachmentNames[tSlotData2]);\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\ttDBBoneSlot.showDisplayByIndex(tSlotData2);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (tDeformDic[i]){\r\n\t\t\t\t\ttObject=tDeformDic[i];\r\n\t\t\t\t\tif (tDBBoneSlot.currDisplayData && tObject[tDBBoneSlot.currDisplayData.attachmentName]){\r\n\t\t\t\t\t\ttDBBoneSlot.deformData=tObject[tDBBoneSlot.currDisplayData.attachmentName];\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\ttDBBoneSlot.deformData=null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\ttDBBoneSlot.deformData=null;\r\n\t\t\t\t}\r\n\t\t\t\tif (!isNaN(tSlotData3)){\r\n\t\t\t\t\ttDBBoneSlot.draw(tGraphics,this._boneMatrixArray,this._aniMode==2,tSlotData3);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\ttDBBoneSlot.draw(tGraphics,this._boneMatrixArray,this._aniMode==2);\r\n\t\t\t\t}\r\n\t\t\t\tif (!isNaN(tSlotData3)){\r\n\t\t\t\t\ttGraphics.restore();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._aniMode==0){\r\n\t\t\tthis._templet.setGrahicsDataWithCache(this._aniClipIndex,_clipIndex,tGraphics);\r\n\t\t\t}else if (this._aniMode==1){\r\n\t\t\tthis._setGrahicsDataWithCache(this._aniClipIndex,_clipIndex,tGraphics);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*设置deform数据\r\n\t*@param tDeformAniData\r\n\t*@param tDeformDic\r\n\t*@param _boneSlotArray\r\n\t*@param curTime\r\n\t*/\r\n\t__proto._setDeform=function(tDeformAniData,tDeformDic,_boneSlotArray,curTime){\r\n\t\tif (!tDeformAniData)return;\r\n\t\tvar tDeformSlotData;\r\n\t\tvar tDeformSlotDisplayData;\r\n\t\tvar tDBBoneSlot;\r\n\t\tvar i=0,n=0,j=0;\r\n\t\tif (tDeformAniData){\r\n\t\t\tfor (i=0,n=tDeformAniData.deformSlotDataList.length;i < n;i++){\r\n\t\t\t\ttDeformSlotData=tDeformAniData.deformSlotDataList[i];\r\n\t\t\t\tfor (j=0;j < tDeformSlotData.deformSlotDisplayList.length;j++){\r\n\t\t\t\t\ttDeformSlotDisplayData=tDeformSlotData.deformSlotDisplayList[j];\r\n\t\t\t\t\ttDBBoneSlot=_boneSlotArray[tDeformSlotDisplayData.slotIndex];\r\n\t\t\t\t\ttDeformSlotDisplayData.apply(curTime,tDBBoneSlot);\r\n\t\t\t\t\tif (!tDeformDic[tDeformSlotDisplayData.slotIndex]){\r\n\t\t\t\t\t\ttDeformDic[tDeformSlotDisplayData.slotIndex]={};\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttDeformDic[tDeformSlotDisplayData.slotIndex][tDeformSlotDisplayData.attachment]=tDeformSlotDisplayData.deformData;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*得到当前动画的数量\r\n\t*@return 当前动画的数量\r\n\t*/\r\n\t__proto.getAnimNum=function(){\r\n\t\treturn this._templet.getAnimationCount();\r\n\t}\r\n\r\n\t/**\r\n\t*得到指定动画的名字\r\n\t*@param index 动画的索引\r\n\t*/\r\n\t__proto.getAniNameByIndex=function(index){\r\n\t\treturn this._templet.getAniNameByIndex(index);\r\n\t}\r\n\r\n\t/**\r\n\t*通过名字得到插槽的引用\r\n\t*@param name 动画的名字\r\n\t*@return 插槽的引用\r\n\t*/\r\n\t__proto.getSlotByName=function(name){\r\n\t\treturn this._boneSlotDic[name];\r\n\t}\r\n\r\n\t/**\r\n\t*通过名字显示一套皮肤\r\n\t*@param name 皮肤的名字\r\n\t*@param freshSlotIndex 是否将插槽纹理重置到初始化状态\r\n\t*/\r\n\t__proto.showSkinByName=function(name,freshSlotIndex){\r\n\t\t(freshSlotIndex===void 0)&& (freshSlotIndex=true);\r\n\t\tthis.showSkinByIndex(this._templet.getSkinIndexByName(name),freshSlotIndex);\r\n\t}\r\n\r\n\t/**\r\n\t*通过索引显示一套皮肤\r\n\t*@param skinIndex 皮肤索引\r\n\t*@param freshSlotIndex 是否将插槽纹理重置到初始化状态\r\n\t*/\r\n\t__proto.showSkinByIndex=function(skinIndex,freshSlotIndex){\r\n\t\t(freshSlotIndex===void 0)&& (freshSlotIndex=true);\r\n\t\tfor (var i=0;i < this._boneSlotArray.length;i++){\r\n\t\t\t(this._boneSlotArray [i]).showSlotData(null,freshSlotIndex);\r\n\t\t}\r\n\t\tif (this._templet.showSkinByIndex(this._boneSlotDic,skinIndex,freshSlotIndex)){\r\n\t\t\tvar tSkinData=this._templet.skinDataArray[skinIndex];\r\n\t\t\tthis._skinIndex=skinIndex;\r\n\t\t\tthis._skinName=tSkinData.name;\r\n\t\t}\r\n\t\tthis._clearCache();\r\n\t}\r\n\r\n\t/**\r\n\t*设置某插槽的皮肤\r\n\t*@param slotName 插槽名称\r\n\t*@param index 插糟皮肤的索引\r\n\t*/\r\n\t__proto.showSlotSkinByIndex=function(slotName,index){\r\n\t\tif (this._aniMode==0)return;\r\n\t\tvar tBoneSlot=this.getSlotByName(slotName);\r\n\t\tif (tBoneSlot){\r\n\t\t\ttBoneSlot.showDisplayByIndex(index);\r\n\t\t}\r\n\t\tthis._clearCache();\r\n\t}\r\n\r\n\t/**\r\n\t*设置某插槽的皮肤\r\n\t*@param slotName 插槽名称\r\n\t*@param name 皮肤名称\r\n\t*/\r\n\t__proto.showSlotSkinByName=function(slotName,name){\r\n\t\tif (this._aniMode==0)return;\r\n\t\tvar tBoneSlot=this.getSlotByName(slotName);\r\n\t\tif (tBoneSlot){\r\n\t\t\ttBoneSlot.showDisplayByName(name);\r\n\t\t}\r\n\t\tthis._clearCache();\r\n\t}\r\n\r\n\t/**\r\n\t*替换插槽贴图名\r\n\t*@param slotName 插槽名称\r\n\t*@param oldName 要替换的贴图名\r\n\t*@param newName 替换后的贴图名\r\n\t*/\r\n\t__proto.replaceSlotSkinName=function(slotName,oldName,newName){\r\n\t\tif (this._aniMode==0)return;\r\n\t\tvar tBoneSlot=this.getSlotByName(slotName);\r\n\t\tif (tBoneSlot){\r\n\t\t\ttBoneSlot.replaceDisplayByName(oldName,newName);\r\n\t\t}\r\n\t\tthis._clearCache();\r\n\t}\r\n\r\n\t/**\r\n\t*替换插槽的贴图索引\r\n\t*@param slotName 插槽名称\r\n\t*@param oldIndex 要替换的索引\r\n\t*@param newIndex 替换后的索引\r\n\t*/\r\n\t__proto.replaceSlotSkinByIndex=function(slotName,oldIndex,newIndex){\r\n\t\tif (this._aniMode==0)return;\r\n\t\tvar tBoneSlot=this.getSlotByName(slotName);\r\n\t\tif (tBoneSlot){\r\n\t\t\ttBoneSlot.replaceDisplayByIndex(oldIndex,newIndex);\r\n\t\t}\r\n\t\tthis._clearCache();\r\n\t}\r\n\r\n\t/**\r\n\t*设置自定义皮肤\r\n\t*@param name 插糟的名字\r\n\t*@param texture 自定义的纹理\r\n\t*/\r\n\t__proto.setSlotSkin=function(slotName,texture){\r\n\t\tif (this._aniMode==0)return;\r\n\t\tvar tBoneSlot=this.getSlotByName(slotName);\r\n\t\tif (tBoneSlot){\r\n\t\t\ttBoneSlot.replaceSkin(texture);\r\n\t\t}\r\n\t\tthis._clearCache();\r\n\t}\r\n\r\n\t/**\r\n\t*换装的时候，需要清一下缓冲区\r\n\t*/\r\n\t__proto._clearCache=function(){\r\n\t\tif (this._aniMode==1){\r\n\t\t\tfor (var i=0,n=this._graphicsCache.length;i < n;i++){\r\n\t\t\t\tfor (var j=0,len=this._graphicsCache[i].length;j < len;j++){\r\n\t\t\t\t\tvar gp=this._graphicsCache[i][j];\r\n\t\t\t\t\tif (gp !=this.graphics){\r\n\t\t\t\t\t\tGraphicsAni.recycle(gp);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis._graphicsCache[i].length=0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*播放动画\r\n\t*\r\n\t*@param nameOrIndex 动画名字或者索引\r\n\t*@param loop 是否循环播放\r\n\t*@param force false,如果要播的动画跟上一个相同就不生效,true,强制生效\r\n\t*@param start 起始时间\r\n\t*@param end 结束时间\r\n\t*@param freshSkin 是否刷新皮肤数据\r\n\t*/\r\n\t__proto.play=function(nameOrIndex,loop,force,start,end,freshSkin){\r\n\t\t(force===void 0)&& (force=true);\r\n\t\t(start===void 0)&& (start=0);\r\n\t\t(end===void 0)&& (end=0);\r\n\t\t(freshSkin===void 0)&& (freshSkin=true);\r\n\t\tthis._indexControl=false;\r\n\t\tvar index=-1;\r\n\t\tvar duration=NaN;\r\n\t\tif (loop){\r\n\t\t\tduration=2147483647;\r\n\t\t\t}else {\r\n\t\t\tduration=0;\r\n\t\t}\r\n\t\tif ((typeof nameOrIndex=='string')){\r\n\t\t\tfor (var i=0,n=this._templet.getAnimationCount();i < n;i++){\r\n\t\t\t\tvar animation=this._templet.getAnimation(i);\r\n\t\t\t\tif (animation && nameOrIndex==animation.name){\r\n\t\t\t\t\tindex=i;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tindex=nameOrIndex;\r\n\t\t}\r\n\t\tif (index >-1 && index < this.getAnimNum()){\r\n\t\t\tthis._aniClipIndex=index;\r\n\t\t\tif (force || this._pause || this._currAniIndex !=index){\r\n\t\t\t\tthis._currAniIndex=index;\r\n\t\t\t\tthis._curOriginalData=new Float32Array(this._templet.getTotalkeyframesLength(index));\r\n\t\t\t\tthis._drawOrder=null;\r\n\t\t\t\tthis._eventIndex=0;\r\n\t\t\t\tthis._player.play(index,this._player.playbackRate,duration,start,end);\r\n\t\t\t\tif (freshSkin)\r\n\t\t\t\t\tthis._templet.showSkinByIndex(this._boneSlotDic,this._skinIndex);\r\n\t\t\t\tif (this._pause){\r\n\t\t\t\t\tthis._pause=false;\r\n\t\t\t\t\tthis._lastTime=Browser.now();\r\n\t\t\t\t\tthis.timer.frameLoop(1,this,this._update,null,true);\r\n\t\t\t\t}\r\n\t\t\t\tthis._update();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*停止动画\r\n\t*/\r\n\t__proto.stop=function(){\r\n\t\tif (!this._pause){\r\n\t\t\tthis._pause=true;\r\n\t\t\tif (this._player){\r\n\t\t\t\tthis._player.stop(true);\r\n\t\t\t}\r\n\t\t\tthis.timer.clear(this,this._update);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*设置动画播放速率\r\n\t*@param value 1为标准速率\r\n\t*/\r\n\t__proto.playbackRate=function(value){\r\n\t\tif (this._player){\r\n\t\t\tthis._player.playbackRate=value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*暂停动画的播放\r\n\t*/\r\n\t__proto.paused=function(){\r\n\t\tif (!this._pause){\r\n\t\t\tthis._pause=true;\r\n\t\t\tif (this._player){\r\n\t\t\t\tthis._player.paused=true;\r\n\t\t\t}\r\n\t\t\tthis.timer.clear(this,this._update);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*恢复动画的播放\r\n\t*/\r\n\t__proto.resume=function(){\r\n\t\tthis._indexControl=false;\r\n\t\tif (this._pause){\r\n\t\t\tthis._pause=false;\r\n\t\t\tif (this._player){\r\n\t\t\t\tthis._player.paused=false;\r\n\t\t\t}\r\n\t\t\tthis._lastTime=Browser.now();\r\n\t\t\tthis.timer.frameLoop(1,this,this._update,null,true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*得到缓冲数据\r\n\t*@param aniIndex\r\n\t*@param frameIndex\r\n\t*@return\r\n\t*/\r\n\t__proto._getGrahicsDataWithCache=function(aniIndex,frameIndex){\r\n\t\treturn this._graphicsCache[aniIndex][frameIndex];\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*保存缓冲grahpics\r\n\t*@param aniIndex\r\n\t*@param frameIndex\r\n\t*@param graphics\r\n\t*/\r\n\t__proto._setGrahicsDataWithCache=function(aniIndex,frameIndex,graphics){\r\n\t\tthis._graphicsCache[aniIndex][frameIndex]=graphics;\r\n\t}\r\n\r\n\t/**\r\n\t*销毁当前动画\r\n\t*/\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._templet=null;\r\n\t\tif (this._player)this._player.offAll();\r\n\t\tthis._player=null;\r\n\t\tthis._curOriginalData=null;\r\n\t\tthis._boneMatrixArray.length=0;\r\n\t\tthis._lastTime=0;\r\n\t\tthis.timer.clear(this,this._update);\r\n\t}\r\n\r\n\t/**\r\n\t*设置动画路径\r\n\t*/\r\n\t/**\r\n\t*得到资源的URL\r\n\t*/\r\n\t__getset(0,__proto,'url',function(){\r\n\t\treturn this._aniPath;\r\n\t\t},function(path){\r\n\t\tthis.load(path);\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*设置帧索引\r\n\t*/\r\n\t/**\r\n\t*@private\r\n\t*得到帧索引\r\n\t*/\r\n\t__getset(0,__proto,'index',function(){\r\n\t\treturn this._index;\r\n\t\t},function(value){\r\n\t\tif (this.player){\r\n\t\t\tthis._index=value;\r\n\t\t\tthis._player.currentTime=this._index *1000 / this._player.cacheFrameRate;\r\n\t\t\tthis._indexControl=true;\r\n\t\t\tthis._update(false);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*得到总帧数据\r\n\t*/\r\n\t__getset(0,__proto,'total',function(){\r\n\t\tif (this._templet && this._player){\r\n\t\t\tthis._total=Math.floor(this._templet.getAniDuration(this._player.currentAnimationClipIndex)/ 1000 *this._player.cacheFrameRate);\r\n\t\t\t}else {\r\n\t\t\tthis._total=-1;\r\n\t\t}\r\n\t\treturn this._total;\r\n\t});\r\n\r\n\t/**\r\n\t*得到动画模板的引用\r\n\t*/\r\n\t__getset(0,__proto,'templet',function(){\r\n\t\treturn this._templet;\r\n\t});\r\n\r\n\t/**\r\n\t*得到播放器的引用\r\n\t*/\r\n\t__getset(0,__proto,'player',function(){\r\n\t\treturn this._player;\r\n\t});\r\n\r\n\tSkeleton.useSimpleMeshInCanvas=false;\r\n\treturn Skeleton;\r\n})(Sprite)\r\n\r\n\r\n/**\r\n*<p> <code>MovieClip</code> 用于播放经过工具处理后的 swf 动画。</p>\r\n*/\r\n//class laya.ani.swf.MovieClip extends laya.display.Sprite\r\nvar MovieClip=(function(_super){\r\n\tfunction MovieClip(parentMovieClip){\r\n\t\t/**@private 数据起始位置。*/\r\n\t\tthis._start=0;\r\n\t\t/**@private 当前位置。*/\r\n\t\tthis._Pos=0;\r\n\t\t/**@private 数据。*/\r\n\t\tthis._data=null;\r\n\t\t/**@private */\r\n\t\tthis._curIndex=0;\r\n\t\t/**@private */\r\n\t\tthis._preIndex=0;\r\n\t\t/**@private */\r\n\t\tthis._playIndex=0;\r\n\t\t/**@private */\r\n\t\tthis._playing=false;\r\n\t\t/**@private */\r\n\t\tthis._ended=true;\r\n\t\t/**@private 总帧数。*/\r\n\t\tthis._count=0;\r\n\t\t/**@private id_data起始位置表*/\r\n\t\tthis._ids=null;\r\n\t\t/**@private */\r\n\t\tthis._loadedImage={};\r\n\t\t/**@private id_实例表*/\r\n\t\tthis._idOfSprite=null;\r\n\t\t/**@private 父mc*/\r\n\t\tthis._parentMovieClip=null;\r\n\t\t/**@private 需要更新的movieClip表*/\r\n\t\tthis._movieClipList=null;\r\n\t\t/**@private */\r\n\t\tthis._labels=null;\r\n\t\t/**资源根目录。*/\r\n\t\tthis.basePath=null;\r\n\t\t/**@private */\r\n\t\tthis._atlasPath=null;\r\n\t\t/**@private */\r\n\t\tthis._url=null;\r\n\t\t/**@private */\r\n\t\tthis._isRoot=false;\r\n\t\t/**@private */\r\n\t\tthis._completeHandler=null;\r\n\t\t/**@private */\r\n\t\tthis._endFrame=-1;\r\n\t\t/**播放间隔(单位：毫秒)。*/\r\n\t\tthis.interval=30;\r\n\t\t/**是否循环播放 */\r\n\t\tthis.loop=false;\r\n\t\tMovieClip.__super.call(this);\r\n\t\tthis._ids={};\r\n\t\tthis._idOfSprite=[];\r\n\t\tthis._reset();\r\n\t\tthis._playing=false;\r\n\t\tthis._parentMovieClip=parentMovieClip;\r\n\t\tif (!parentMovieClip){\r\n\t\t\tthis._movieClipList=[this];\r\n\t\t\tthis._isRoot=true;\r\n\t\t\tthis._setUpNoticeType(/*laya.display.Node.NOTICE_DISPLAY*/0x1);\r\n\t\t\t}else {\r\n\t\t\tthis._isRoot=false;\r\n\t\t\tthis._movieClipList=parentMovieClip._movieClipList;\r\n\t\t\tthis._movieClipList.push(this);\r\n\t\t}\r\n\t}\r\n\r\n\t__class(MovieClip,'laya.ani.swf.MovieClip',_super);\r\n\tvar __proto=MovieClip.prototype;\r\n\t/**\r\n\t*<p>销毁此对象。以及销毁引用的Texture</p>\r\n\t*@param destroyChild 是否同时销毁子节点，若值为true,则销毁子节点，否则不销毁子节点。\r\n\t*/\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tthis._clear();\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setDisplay=function(value){\r\n\t\t_super.prototype._setDisplay.call(this,value);\r\n\t\tif (this._isRoot){\r\n\t\t\tthis._$3__onDisplay(value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._$3__onDisplay=function(value){\r\n\t\tif (value)this.timer.loop(this.interval,this,this.updates,null,true);\r\n\t\telse this.timer.clear(this,this.updates);\r\n\t}\r\n\r\n\t/**@private 更新时间轴*/\r\n\t__proto.updates=function(){\r\n\t\tif (this._parentMovieClip)return;\r\n\t\tvar i=0,len=0;\r\n\t\tlen=this._movieClipList.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tthis._movieClipList[i]&&this._movieClipList[i]._update();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*增加一个标签到index帧上，播放到此index后会派发label事件\r\n\t*@param label 标签名称\r\n\t*@param index 索引位置\r\n\t*/\r\n\t__proto.addLabel=function(label,index){\r\n\t\tif (!this._labels)this._labels={};\r\n\t\tthis._labels[index]=label;\r\n\t}\r\n\r\n\t/**\r\n\t*删除某个标签\r\n\t*@param label 标签名字，如果label为空，则删除所有Label\r\n\t*/\r\n\t__proto.removeLabel=function(label){\r\n\t\tif (!label)this._labels=null;\r\n\t\telse if (!this._labels){\r\n\t\t\tfor (var name in this._labels){\r\n\t\t\t\tif (this._labels[name]===label){\r\n\t\t\t\t\tdelete this._labels[name];\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*动画的帧更新处理函数。\r\n\t*/\r\n\t__proto._update=function(){\r\n\t\tif (!this._data)return;\r\n\t\tif (!this._playing)return;\r\n\t\tthis._playIndex++;\r\n\t\tif (this._playIndex >=this._count){\r\n\t\t\tif (!this.loop){\r\n\t\t\t\tthis._playIndex--;\r\n\t\t\t\tthis.stop();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis._playIndex=0;\r\n\t\t}\r\n\t\tthis._parse(this._playIndex);\r\n\t\tif (this._labels && this._labels[this._playIndex])this.event(/*laya.events.Event.LABEL*/\"label\",this._labels[this._playIndex]);\r\n\t\tif (this._endFrame!=-1&&this._endFrame==this._playIndex){\r\n\t\t\tthis._endFrame=-1;\r\n\t\t\tif (this._completeHandler !=null){\r\n\t\t\t\tvar handler=this._completeHandler;\r\n\t\t\t\tthis._completeHandler=null;\r\n\t\t\t\thandler.run();\r\n\t\t\t}\r\n\t\t\tthis.stop();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*停止播放动画。\r\n\t*/\r\n\t__proto.stop=function(){\r\n\t\tthis._playing=false;\r\n\t}\r\n\r\n\t/**\r\n\t*跳到某帧并停止播放动画。\r\n\t*@param frame 要跳到的帧\r\n\t*/\r\n\t__proto.gotoAndStop=function(index){\r\n\t\tthis.index=index;\r\n\t\tthis.stop();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*清理。\r\n\t*/\r\n\t__proto._clear=function(){\r\n\t\tthis.stop();\r\n\t\tthis._idOfSprite.length=0;\r\n\t\tif (!this._parentMovieClip){\r\n\t\t\tthis.timer.clear(this,this.updates);\r\n\t\t\tvar i=0,len=0;\r\n\t\t\tlen=this._movieClipList.length;\r\n\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\tif (this._movieClipList[i] !=this)\r\n\t\t\t\t\tthis._movieClipList[i]._clear();\r\n\t\t\t}\r\n\t\t\tthis._movieClipList.length=0;\r\n\t\t}\r\n\t\tif (this._atlasPath){\r\n\t\t\tLoader.clearRes(this._atlasPath);\r\n\t\t};\r\n\t\tvar key;\r\n\t\tfor (key in this._loadedImage){\r\n\t\t\tif (this._loadedImage[key]){\r\n\t\t\t\tLoader.clearRes(key);\r\n\t\t\t\tthis._loadedImage[key]=false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.removeChildren();\r\n\t\tthis.graphics=null;\r\n\t\tthis._parentMovieClip=null;\r\n\t}\r\n\r\n\t/**\r\n\t*播放动画。\r\n\t*@param index 帧索引。\r\n\t*/\r\n\t__proto.play=function(index,loop){\r\n\t\t(index===void 0)&& (index=0);\r\n\t\t(loop===void 0)&& (loop=true);\r\n\t\tthis.loop=loop;\r\n\t\tthis._playing=true;\r\n\t\tif (this._data)\r\n\t\t\tthis._displayFrame(index);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._displayFrame=function(frameIndex){\r\n\t\t(frameIndex===void 0)&& (frameIndex=-1);\r\n\t\tif (frameIndex !=-1){\r\n\t\t\tif (this._curIndex > frameIndex)this._reset();\r\n\t\t\tthis._parse(frameIndex);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._reset=function(rm){\r\n\t\t(rm===void 0)&& (rm=true);\r\n\t\tif (rm && this._curIndex !=1)this.removeChildren();\r\n\t\tthis._preIndex=this._curIndex=-1;\r\n\t\tthis._Pos=this._start;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._parse=function(frameIndex){\r\n\t\tvar curChild=this;\r\n\t\tvar mc,sp,key=0,type=0,tPos=0,ttype=0,ifAdd=false;\r\n\t\tvar _idOfSprite=this._idOfSprite,_data=this._data,eStr;\r\n\t\tif (this._ended)this._reset();\r\n\t\t_data.pos=this._Pos;\r\n\t\tthis._ended=false;\r\n\t\tthis._playIndex=frameIndex;\r\n\t\tif (this._curIndex > frameIndex&&frameIndex<this._preIndex){\r\n\t\t\tthis._reset(true);\r\n\t\t\t_data.pos=this._Pos;\r\n\t\t}\r\n\t\twhile ((this._curIndex <=frameIndex)&& (!this._ended)){\r\n\t\t\ttype=_data.getUint16();\r\n\t\t\tswitch (type){\r\n\t\t\t\tcase 12:\r\n\t\t\t\t\tkey=_data.getUint16();\r\n\t\t\t\t\ttPos=this._ids[_data.getUint16()];\r\n\t\t\t\t\tthis._Pos=_data.pos;\r\n\t\t\t\t\t_data.pos=tPos;\r\n\t\t\t\t\tif ((ttype=_data.getUint8())==0){\r\n\t\t\t\t\t\tvar pid=_data.getUint16();\r\n\t\t\t\t\t\tsp=_idOfSprite[key]\r\n\t\t\t\t\t\tif (!sp){\r\n\t\t\t\t\t\t\tsp=_idOfSprite[key]=new Sprite();\r\n\t\t\t\t\t\t\tvar spp=new Sprite();\r\n\t\t\t\t\t\t\tspp.loadImage(this.basePath+pid+\".png\");\r\n\t\t\t\t\t\t\tthis._loadedImage[this.basePath+pid+\".png\"]=true;\r\n\t\t\t\t\t\t\tsp.addChild(spp);\r\n\t\t\t\t\t\t\tspp.size(_data.getFloat32(),_data.getFloat32());\r\n\t\t\t\t\t\t\tvar mat=_data._getMatrix();\r\n\t\t\t\t\t\t\tspp.transform=mat;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsp.alpha=1;\r\n\t\t\t\t\t\t}else if (ttype==1){\r\n\t\t\t\t\t\tmc=_idOfSprite[key]\r\n\t\t\t\t\t\tif (!mc){\r\n\t\t\t\t\t\t\t_idOfSprite[key]=mc=new MovieClip(this);\r\n\t\t\t\t\t\t\tmc.interval=this.interval;\r\n\t\t\t\t\t\t\tmc._ids=this._ids;\r\n\t\t\t\t\t\t\tmc.basePath=this.basePath;\r\n\t\t\t\t\t\t\tmc._setData(_data,tPos);\r\n\t\t\t\t\t\t\tmc._initState();\r\n\t\t\t\t\t\t\tmc.play(0);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tmc.alpha=1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t_data.pos=this._Pos;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 3:;\r\n\t\t\t\t\tvar node=_idOfSprite[ _data.getUint16()];\r\n\t\t\t\t\tif (node){\r\n\t\t\t\t\t\tthis.addChild(node);\r\n\t\t\t\t\t\tnode.zOrder=_data.getUint16();\r\n\t\t\t\t\t\tifAdd=true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 4:\r\n\t\t\t\t\tnode=_idOfSprite[ _data.getUint16()];\r\n\t\t\t\t\tnode && node.removeSelf();\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 5:\r\n\t\t\t\t\t_idOfSprite[_data.getUint16()][MovieClip._ValueList[_data.getUint16()]]=(_data.getFloat32());\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 6:\r\n\t\t\t\t\t_idOfSprite[_data.getUint16()].visible=(_data.getUint8()> 0);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 7:\r\n\t\t\t\t\tsp=_idOfSprite[ _data.getUint16()];\r\n\t\t\t\t\tvar mt=sp.transform || Matrix.create();\r\n\t\t\t\t\tmt.setTo(_data.getFloat32(),_data.getFloat32(),_data.getFloat32(),_data.getFloat32(),_data.getFloat32(),_data.getFloat32());\r\n\t\t\t\t\tsp.transform=mt;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 8:\r\n\t\t\t\t\t_idOfSprite[_data.getUint16()].setPos(_data.getFloat32(),_data.getFloat32());\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 9:\r\n\t\t\t\t\t_idOfSprite[_data.getUint16()].setSize(_data.getFloat32(),_data.getFloat32());\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 10:\r\n\t\t\t\t\t_idOfSprite[ _data.getUint16()].alpha=_data.getFloat32();\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 11:\r\n\t\t\t\t\t_idOfSprite[_data.getUint16()].setScale(_data.getFloat32(),_data.getFloat32());\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 98:\r\n\t\t\t\t\teStr=_data.getString();\r\n\t\t\t\t\tthis.event(eStr);\r\n\t\t\t\t\tif (eStr==\"stop\")this.stop();\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 99:\r\n\t\t\t\t\tthis._curIndex=_data.getUint16();\r\n\t\t\t\t\tifAdd && this.updateZOrder();\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase 100:\r\n\t\t\t\t\tthis._count=this._curIndex+1;\r\n\t\t\t\t\tthis._ended=true;\r\n\t\t\t\t\tif (this._playing){\r\n\t\t\t\t\t\tthis.event(/*laya.events.Event.FRAME*/\"enterframe\");\r\n\t\t\t\t\t\tthis.event(/*laya.events.Event.END*/\"end\");\r\n\t\t\t\t\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis._reset(false);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t}\r\n\t\tif (this._playing&&!this._ended)this.event(/*laya.events.Event.FRAME*/\"enterframe\");\r\n\t\tthis._Pos=_data.pos;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setData=function(data,start){\r\n\t\tthis._data=data;\r\n\t\tthis._start=start+3;\r\n\t}\r\n\r\n\t/**\r\n\t*加载资源。\r\n\t*@param url swf 资源地址。\r\n\t*@param atlas 是否使用图集资源\r\n\t*@param atlasPath 图集路径，默认使用与swf同名的图集\r\n\t*/\r\n\t__proto.load=function(url,atlas,atlasPath){\r\n\t\t(atlas===void 0)&& (atlas=false);\r\n\t\tthis._url=url=URL.formatURL(url);\r\n\t\tif(atlas)this._atlasPath=atlasPath?atlasPath:url.split(\".swf\")[0]+\".json\";\r\n\t\tthis.stop();\r\n\t\tthis._clear();\r\n\t\tthis._movieClipList=[this];\r\n\t\tvar urls;\r\n\t\turls=[ {url:url,type:/*laya.net.Loader.BUFFER*/\"arraybuffer\" }];\r\n\t\tif (this._atlasPath){\r\n\t\t\turls.push({url:this._atlasPath,type:/*laya.net.Loader.ATLAS*/\"atlas\" });\r\n\t\t}\r\n\t\tLaya.loader.load(urls,Handler.create(this,this._onLoaded));\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._onLoaded=function(){\r\n\t\tvar data;\r\n\t\tdata=Loader.getRes(this._url);\r\n\t\tif (!data){\r\n\t\t\tthis.event(/*laya.events.Event.ERROR*/\"error\",\"file not find\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.basePath=this._atlasPath?Loader.getAtlas(this._atlasPath).dir:this._url.split(\".swf\")[0]+\"/image/\";\r\n\t\tthis._initData(data);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._initState=function(){\r\n\t\tthis._reset();\r\n\t\tthis._ended=false;\r\n\t\tvar preState=this._playing;\r\n\t\tthis._playing=false;\r\n\t\tthis._curIndex=0;\r\n\t\twhile (!this._ended)this._parse(++this._curIndex);\r\n\t\tthis._playing=preState;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._initData=function(data){\r\n\t\tthis._data=new Byte(data);\r\n\t\tvar i=0,len=this._data.getUint16();\r\n\t\tfor (i=0;i < len;i++)this._ids[this._data.getInt16()]=this._data.getInt32();\r\n\t\tthis.interval=1000 / this._data.getUint16();\r\n\t\tthis._setData(this._data,this._ids[32767]);\r\n\t\tthis._initState();\r\n\t\tthis.play(0);\r\n\t\tthis.event(/*laya.events.Event.LOADED*/\"loaded\");\r\n\t\tif (!this._parentMovieClip)this.timer.loop(this.interval,this,this.updates,null,true);\r\n\t}\r\n\r\n\t/**\r\n\t*从开始索引播放到结束索引，结束之后出发complete回调\r\n\t*@param start 开始索引\r\n\t*@param end 结束索引\r\n\t*@param complete 结束回调\r\n\t*/\r\n\t__proto.playTo=function(start,end,complete){\r\n\t\tthis._completeHandler=complete;\r\n\t\tthis._endFrame=end;\r\n\t\tthis.play(start,false);\r\n\t}\r\n\r\n\t/**当前播放索引。*/\r\n\t__getset(0,__proto,'index',function(){\r\n\t\treturn this._playIndex;\r\n\t\t},function(value){\r\n\t\tthis._playIndex=value;\r\n\t\tif (this._data)\r\n\t\t\tthis._displayFrame(this._playIndex);\r\n\t\tif (this._labels && this._labels[value])this.event(/*laya.events.Event.LABEL*/\"label\",this._labels[value]);\r\n\t});\r\n\r\n\t/**\r\n\t*帧总数。\r\n\t*/\r\n\t__getset(0,__proto,'count',function(){\r\n\t\treturn this._count;\r\n\t});\r\n\r\n\t/**\r\n\t*是否在播放中\r\n\t*/\r\n\t__getset(0,__proto,'playing',function(){\r\n\t\treturn this._playing;\r\n\t});\r\n\r\n\t/**\r\n\t*资源地址。\r\n\t*/\r\n\t__getset(0,__proto,'url',null,function(path){\r\n\t\tthis.load(path);\r\n\t});\r\n\r\n\tMovieClip._ValueList=[\"x\",\"y\",\"width\",\"height\",\"scaleX\",\"scaleY\",\"rotation\",\"alpha\"];\r\n\treturn MovieClip;\r\n})(Sprite)\r\n\r\n\r\n/**\r\n*动画模板类\r\n*/\r\n//class laya.ani.bone.Templet extends laya.ani.AnimationTemplet\r\nvar Templet=(function(_super){\r\n\tfunction Templet(){\r\n\t\tthis._mainTexture=null;\r\n\t\tthis._textureJson=null;\r\n\t\tthis._graphicsCache=[];\r\n\t\t/**存放原始骨骼信息 */\r\n\t\tthis.srcBoneMatrixArr=[];\r\n\t\t/**IK数据 */\r\n\t\tthis.ikArr=[];\r\n\t\t/**transform数据 */\r\n\t\tthis.tfArr=[];\r\n\t\t/**path数据 */\r\n\t\tthis.pathArr=[];\r\n\t\t/**存放插槽数据的字典 */\r\n\t\tthis.boneSlotDic={};\r\n\t\t/**绑定插槽数据的字典 */\r\n\t\tthis.bindBoneBoneSlotDic={};\r\n\t\t/**存放插糟数据的数组 */\r\n\t\tthis.boneSlotArray=[];\r\n\t\t/**皮肤数据 */\r\n\t\tthis.skinDataArray=[];\r\n\t\t/**皮肤的字典数据 */\r\n\t\tthis.skinDic={};\r\n\t\t/**存放纹理数据 */\r\n\t\tthis.subTextureDic={};\r\n\t\t/**是否解析失败 */\r\n\t\tthis.isParseFail=false;\r\n\t\t/**反转矩阵，有些骨骼动画要反转才能显示 */\r\n\t\tthis.yReverseMatrix=null;\r\n\t\t/**渲染顺序动画数据 */\r\n\t\tthis.drawOrderAniArr=[];\r\n\t\t/**事件动画数据 */\r\n\t\tthis.eventAniArr=[];\r\n\t\t/**@private 索引对应的名称 */\r\n\t\tthis.attachmentNames=null;\r\n\t\t/**顶点动画数据 */\r\n\t\tthis.deformAniArr=[];\r\n\t\tthis._isDestroyed=false;\r\n\t\tthis._rate=30;\r\n\t\tthis.isParserComplete=false;\r\n\t\tthis.aniSectionDic={};\r\n\t\tthis._skBufferUrl=null;\r\n\t\tthis._textureDic={};\r\n\t\tthis._loadList=null;\r\n\t\tthis._path=null;\r\n\t\t/**@private */\r\n\t\tthis.tMatrixDataLen=0;\r\n\t\tthis.mRootBone=null;\r\n\t\tTemplet.__super.call(this);\r\n\t\tthis.skinSlotDisplayDataArr=[];\r\n\t\tthis.mBoneArr=[];\r\n\t}\r\n\r\n\t__class(Templet,'laya.ani.bone.Templet',_super);\r\n\tvar __proto=Templet.prototype;\r\n\t__proto.loadAni=function(url){\r\n\t\tthis._skBufferUrl=url;\r\n\t\tLaya.loader.load(url,Handler.create(this,this.onComplete),null,/*laya.net.Loader.BUFFER*/\"arraybuffer\");\r\n\t}\r\n\r\n\t__proto.onComplete=function(content){\r\n\t\tif (this._isDestroyed){\r\n\t\t\tthis.destroy();\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar tSkBuffer=Loader.getRes(this._skBufferUrl);\r\n\t\tif (!tSkBuffer){\r\n\t\t\tthis.event(/*laya.events.Event.ERROR*/\"error\",\"load failed:\"+this._skBufferUrl);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._path=this._skBufferUrl.slice(0,this._skBufferUrl.lastIndexOf(\"/\"))+\"/\";\r\n\t\tthis.parseData(null,tSkBuffer);\r\n\t}\r\n\r\n\t/**\r\n\t*解析骨骼动画数据\r\n\t*@param texture 骨骼动画用到的纹理\r\n\t*@param skeletonData 骨骼动画信息及纹理分块信息\r\n\t*@param playbackRate 缓冲的帧率数据（会根据帧率去分帧）\r\n\t*/\r\n\t__proto.parseData=function(texture,skeletonData,playbackRate){\r\n\t\t(playbackRate===void 0)&& (playbackRate=30);\r\n\t\tif(!this._path&&this.url)this._path=this.url.slice(0,this.url.lastIndexOf(\"/\"))+\"/\";\r\n\t\tthis._mainTexture=texture;\r\n\t\tif (this._mainTexture){\r\n\t\t\tif (Render.isWebGL && texture.bitmap){\r\n\t\t\t\ttexture.bitmap.enableMerageInAtlas=false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._rate=playbackRate;\r\n\t\tthis.parse(skeletonData);\r\n\t}\r\n\r\n\t/**\r\n\t*创建动画\r\n\t*0,使用模板缓冲的数据，模板缓冲的数据，不允许修改 （内存开销小，计算开销小，不支持换装）\r\n\t*1,使用动画自己的缓冲区，每个动画都会有自己的缓冲区，相当耗费内存 （内存开销大，计算开销小，支持换装）\r\n\t*2,使用动态方式，去实时去画 （内存开销小，计算开销大，支持换装,不建议使用）\r\n\t*@param aniMode 0 动画模式，0:不支持换装,1,2支持换装\r\n\t*@return\r\n\t*/\r\n\t__proto.buildArmature=function(aniMode){\r\n\t\t(aniMode===void 0)&& (aniMode=0);\r\n\t\treturn new Skeleton(this,aniMode);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*解析动画\r\n\t*@param data 解析的二进制数据\r\n\t*@param playbackRate 帧率\r\n\t*/\r\n\t__proto.parse=function(data){\r\n\t\t_super.prototype.parse.call(this,data);\r\n\t\tthis._endLoaded();\r\n\t\tif (this._aniVersion !=Templet.LAYA_ANIMATION_VISION){\r\n\t\t\tconsole.log(\"[Error] 版本不一致，请使用IDE版本配套的重新导出\"+this._aniVersion+\"->\"+Templet.LAYA_ANIMATION_VISION);\r\n\t\t\tthis._loaded=false;\r\n\t\t}\r\n\t\tif (this.loaded){\r\n\t\t\tif (this._mainTexture){\r\n\t\t\t\tthis._parsePublicExtData();\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._parseTexturePath();\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tthis.event(/*laya.events.Event.ERROR*/\"error\",this);\r\n\t\t\tthis.isParseFail=true;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._parseTexturePath=function(){\r\n\t\tif (this._isDestroyed){\r\n\t\t\tthis.destroy();\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar i=0;\r\n\t\tthis._loadList=[];\r\n\t\tvar tByte=new Byte(this.getPublicExtData());\r\n\t\tvar tX=0,tY=0,tWidth=0,tHeight=0;\r\n\t\tvar tFrameX=0,tFrameY=0,tFrameWidth=0,tFrameHeight=0;\r\n\t\tvar tTempleData=0;\r\n\t\tvar tTextureLen=tByte.getInt32();\r\n\t\tvar tTextureName=tByte.readUTFString();\r\n\t\tvar tTextureNameArr=tTextureName.split(\"\\n\");\r\n\t\tvar tTexture;\r\n\t\tvar tSrcTexturePath;\r\n\t\tfor (i=0;i < tTextureLen;i++){\r\n\t\t\ttSrcTexturePath=this._path+tTextureNameArr[i *2];\r\n\t\t\ttTextureName=tTextureNameArr[i *2+1];\r\n\t\t\ttX=tByte.getFloat32();\r\n\t\t\ttY=tByte.getFloat32();\r\n\t\t\ttWidth=tByte.getFloat32();\r\n\t\t\ttHeight=tByte.getFloat32();\r\n\t\t\ttTempleData=tByte.getFloat32();\r\n\t\t\ttFrameX=isNaN(tTempleData)? 0 :tTempleData;\r\n\t\t\ttTempleData=tByte.getFloat32();\r\n\t\t\ttFrameY=isNaN(tTempleData)? 0 :tTempleData;\r\n\t\t\ttTempleData=tByte.getFloat32();\r\n\t\t\ttFrameWidth=isNaN(tTempleData)? tWidth :tTempleData;\r\n\t\t\ttTempleData=tByte.getFloat32();\r\n\t\t\ttFrameHeight=isNaN(tTempleData)? tHeight :tTempleData;\r\n\t\t\tif (this._loadList.indexOf(tSrcTexturePath)==-1){\r\n\t\t\t\tthis._loadList.push(tSrcTexturePath);\r\n\t\t\t}\r\n\t\t}\r\n\t\tLaya.loader.load(this._loadList,Handler.create(this,this._textureComplete));\r\n\t}\r\n\r\n\t/**\r\n\t*纹理加载完成\r\n\t*/\r\n\t__proto._textureComplete=function(){\r\n\t\tvar tTexture;\r\n\t\tvar tTextureName;\r\n\t\tfor (var i=0,n=this._loadList.length;i < n;i++){\r\n\t\t\ttTextureName=this._loadList[i];\r\n\t\t\ttTexture=this._textureDic[tTextureName]=Loader.getRes(tTextureName);\r\n\t\t\tif (Render.isWebGL && tTexture && tTexture.bitmap){\r\n\t\t\t\ttTexture.bitmap.enableMerageInAtlas=false;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._parsePublicExtData();\r\n\t}\r\n\r\n\t/**\r\n\t*解析自定义数据\r\n\t*/\r\n\t__proto._parsePublicExtData=function(){\r\n\t\tvar i=0,j=0,k=0,l=0,n=0;\r\n\t\tfor (i=0,n=this.getAnimationCount();i < n;i++){\r\n\t\t\tthis._graphicsCache.push([]);\r\n\t\t};\r\n\t\tvar isSpine=false;\r\n\t\tisSpine=this._aniClassName !=\"Dragon\";\r\n\t\tvar tByte=new Byte(this.getPublicExtData());\r\n\t\tvar tX=0,tY=0,tWidth=0,tHeight=0;\r\n\t\tvar tFrameX=0,tFrameY=0,tFrameWidth=0,tFrameHeight=0;\r\n\t\tvar tTempleData=0;\r\n\t\tvar tTextureLen=tByte.getInt32();\r\n\t\tvar tTextureName=tByte.readUTFString();\r\n\t\tvar tTextureNameArr=tTextureName.split(\"\\n\");\r\n\t\tvar tTexture;\r\n\t\tvar tSrcTexturePath;\r\n\t\tfor (i=0;i < tTextureLen;i++){\r\n\t\t\ttTexture=this._mainTexture;\r\n\t\t\ttSrcTexturePath=this._path+tTextureNameArr[i *2];\r\n\t\t\ttTextureName=tTextureNameArr[i *2+1];\r\n\t\t\tif (this._mainTexture==null){\r\n\t\t\t\ttTexture=this._textureDic[tSrcTexturePath];\r\n\t\t\t}\r\n\t\t\tif (!tTexture){\r\n\t\t\t\tthis.event(/*laya.events.Event.ERROR*/\"error\",this);\r\n\t\t\t\tthis.isParseFail=true;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\ttX=tByte.getFloat32();\r\n\t\t\ttY=tByte.getFloat32();\r\n\t\t\ttWidth=tByte.getFloat32();\r\n\t\t\ttHeight=tByte.getFloat32();\r\n\t\t\ttTempleData=tByte.getFloat32();\r\n\t\t\ttFrameX=isNaN(tTempleData)? 0 :tTempleData;\r\n\t\t\ttTempleData=tByte.getFloat32();\r\n\t\t\ttFrameY=isNaN(tTempleData)? 0 :tTempleData;\r\n\t\t\ttTempleData=tByte.getFloat32();\r\n\t\t\ttFrameWidth=isNaN(tTempleData)? tWidth :tTempleData;\r\n\t\t\ttTempleData=tByte.getFloat32();\r\n\t\t\ttFrameHeight=isNaN(tTempleData)? tHeight :tTempleData;\r\n\t\t\tthis.subTextureDic[tTextureName]=Texture.create(tTexture,tX,tY,tWidth,tHeight,-tFrameX,-tFrameY,tFrameWidth,tFrameHeight);\r\n\t\t}\r\n\t\tthis._mainTexture=tTexture;\r\n\t\tvar tAniCount=tByte.getUint16();\r\n\t\tvar tSectionArr;\r\n\t\tfor (i=0;i < tAniCount;i++){\r\n\t\t\ttSectionArr=[];\r\n\t\t\ttSectionArr.push(tByte.getUint16());\r\n\t\t\ttSectionArr.push(tByte.getUint16());\r\n\t\t\ttSectionArr.push(tByte.getUint16());\r\n\t\t\ttSectionArr.push(tByte.getUint16());\r\n\t\t\tthis.aniSectionDic[i]=tSectionArr;\r\n\t\t};\r\n\t\tvar tBone;\r\n\t\tvar tParentBone;\r\n\t\tvar tName;\r\n\t\tvar tParentName;\r\n\t\tvar tBoneLen=tByte.getInt16();\r\n\t\tvar tBoneDic={};\r\n\t\tvar tRootBone;\r\n\t\tfor (i=0;i < tBoneLen;i++){\r\n\t\t\ttBone=new Bone();\r\n\t\t\tif (i==0){\r\n\t\t\t\ttRootBone=tBone;\r\n\t\t\t\t}else {\r\n\t\t\t\ttBone.root=tRootBone;\r\n\t\t\t}\r\n\t\t\ttBone.d=isSpine?-1:1;\r\n\t\t\ttName=tByte.readUTFString();\r\n\t\t\ttParentName=tByte.readUTFString();\r\n\t\t\ttBone.length=tByte.getFloat32();\r\n\t\t\tif (tByte.getByte()==1){\r\n\t\t\t\ttBone.inheritRotation=false;\r\n\t\t\t}\r\n\t\t\tif (tByte.getByte()==1){\r\n\t\t\t\ttBone.inheritScale=false;\r\n\t\t\t}\r\n\t\t\ttBone.name=tName;\r\n\t\t\tif (tParentName){\r\n\t\t\t\ttParentBone=tBoneDic[tParentName];\r\n\t\t\t\tif (tParentBone){\r\n\t\t\t\t\ttParentBone.addChild(tBone);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tthis.mRootBone=tBone;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttBoneDic[tName]=tBone;\r\n\t\t\tthis.mBoneArr.push(tBone);\r\n\t\t}\r\n\t\tthis.tMatrixDataLen=tByte.getUint16();\r\n\t\tvar tLen=tByte.getUint16();\r\n\t\tvar parentIndex=0;\r\n\t\tvar boneLength=Math.floor(tLen / this.tMatrixDataLen);\r\n\t\tvar tResultTransform;\r\n\t\tvar tMatrixArray=this.srcBoneMatrixArr;\r\n\t\tfor (i=0;i < boneLength;i++){\r\n\t\t\ttResultTransform=new Transform();\r\n\t\t\ttResultTransform.scX=tByte.getFloat32();\r\n\t\t\ttResultTransform.skX=tByte.getFloat32();\r\n\t\t\ttResultTransform.skY=tByte.getFloat32();\r\n\t\t\ttResultTransform.scY=tByte.getFloat32();\r\n\t\t\ttResultTransform.x=tByte.getFloat32();\r\n\t\t\ttResultTransform.y=tByte.getFloat32();\r\n\t\t\tif (this.tMatrixDataLen===8){\r\n\t\t\t\ttResultTransform.skewX=tByte.getFloat32();\r\n\t\t\t\ttResultTransform.skewY=tByte.getFloat32();\r\n\t\t\t}\r\n\t\t\ttMatrixArray.push(tResultTransform);\r\n\t\t\ttBone=this.mBoneArr[i];\r\n\t\t\ttBone.transform=tResultTransform;\r\n\t\t};\r\n\t\tvar tIkConstraintData;\r\n\t\tvar tIkLen=tByte.getUint16();\r\n\t\tvar tIkBoneLen=0;\r\n\t\tfor (i=0;i < tIkLen;i++){\r\n\t\t\ttIkConstraintData=new IkConstraintData();\r\n\t\t\ttIkBoneLen=tByte.getUint16();\r\n\t\t\tfor (j=0;j < tIkBoneLen;j++){\r\n\t\t\t\ttIkConstraintData.boneNames.push(tByte.readUTFString());\r\n\t\t\t\ttIkConstraintData.boneIndexs.push(tByte.getInt16());\r\n\t\t\t}\r\n\t\t\ttIkConstraintData.name=tByte.readUTFString();\r\n\t\t\ttIkConstraintData.targetBoneName=tByte.readUTFString();\r\n\t\t\ttIkConstraintData.targetBoneIndex=tByte.getInt16();\r\n\t\t\ttIkConstraintData.bendDirection=tByte.getFloat32();\r\n\t\t\ttIkConstraintData.mix=tByte.getFloat32();\r\n\t\t\ttIkConstraintData.isSpine=isSpine;\r\n\t\t\tthis.ikArr.push(tIkConstraintData);\r\n\t\t};\r\n\t\tvar tTfConstraintData;\r\n\t\tvar tTfLen=tByte.getUint16();\r\n\t\tvar tTfBoneLen=0;\r\n\t\tfor (i=0;i < tTfLen;i++){\r\n\t\t\ttTfConstraintData=new TfConstraintData();\r\n\t\t\ttTfBoneLen=tByte.getUint16();\r\n\t\t\tfor (j=0;j < tTfBoneLen;j++){\r\n\t\t\t\ttTfConstraintData.boneIndexs.push(tByte.getInt16());\r\n\t\t\t}\r\n\t\t\ttTfConstraintData.name=tByte.getUTFString();\r\n\t\t\ttTfConstraintData.targetIndex=tByte.getInt16();\r\n\t\t\ttTfConstraintData.rotateMix=tByte.getFloat32();\r\n\t\t\ttTfConstraintData.translateMix=tByte.getFloat32();\r\n\t\t\ttTfConstraintData.scaleMix=tByte.getFloat32();\r\n\t\t\ttTfConstraintData.shearMix=tByte.getFloat32();\r\n\t\t\ttTfConstraintData.offsetRotation=tByte.getFloat32();\r\n\t\t\ttTfConstraintData.offsetX=tByte.getFloat32();\r\n\t\t\ttTfConstraintData.offsetY=tByte.getFloat32();\r\n\t\t\ttTfConstraintData.offsetScaleX=tByte.getFloat32();\r\n\t\t\ttTfConstraintData.offsetScaleY=tByte.getFloat32();\r\n\t\t\ttTfConstraintData.offsetShearY=tByte.getFloat32();\r\n\t\t\tthis.tfArr.push(tTfConstraintData);\r\n\t\t};\r\n\t\tvar tPathConstraintData;\r\n\t\tvar tPathLen=tByte.getUint16();\r\n\t\tvar tPathBoneLen=0;\r\n\t\tfor (i=0;i < tPathLen;i++){\r\n\t\t\ttPathConstraintData=new PathConstraintData();\r\n\t\t\ttPathConstraintData.name=tByte.readUTFString();\r\n\t\t\ttPathBoneLen=tByte.getUint16();\r\n\t\t\tfor (j=0;j < tPathBoneLen;j++){\r\n\t\t\t\ttPathConstraintData.bones.push(tByte.getInt16());\r\n\t\t\t}\r\n\t\t\ttPathConstraintData.target=tByte.readUTFString();\r\n\t\t\ttPathConstraintData.positionMode=tByte.readUTFString();\r\n\t\t\ttPathConstraintData.spacingMode=tByte.readUTFString();\r\n\t\t\ttPathConstraintData.rotateMode=tByte.readUTFString();\r\n\t\t\ttPathConstraintData.offsetRotation=tByte.getFloat32();\r\n\t\t\ttPathConstraintData.position=tByte.getFloat32();\r\n\t\t\ttPathConstraintData.spacing=tByte.getFloat32();\r\n\t\t\ttPathConstraintData.rotateMix=tByte.getFloat32();\r\n\t\t\ttPathConstraintData.translateMix=tByte.getFloat32();\r\n\t\t\tthis.pathArr.push(tPathConstraintData);\r\n\t\t};\r\n\t\tvar tDeformSlotLen=0;\r\n\t\tvar tDeformSlotDisplayLen=0;\r\n\t\tvar tDSlotIndex=0;\r\n\t\tvar tDAttachment;\r\n\t\tvar tDeformTimeLen=0;\r\n\t\tvar tDTime=NaN;\r\n\t\tvar tDeformVecticesLen=0;\r\n\t\tvar tDeformAniData;\r\n\t\tvar tDeformSlotData;\r\n\t\tvar tDeformSlotDisplayData;\r\n\t\tvar tDeformVectices;\r\n\t\tvar tDeformAniLen=tByte.getInt16();\r\n\t\tfor (i=0;i < tDeformAniLen;i++){\r\n\t\t\tvar tDeformSkinLen=tByte.getUint8();\r\n\t\t\tvar tSkinDic={};\r\n\t\t\tthis.deformAniArr.push(tSkinDic);\r\n\t\t\tfor (var f=0;f < tDeformSkinLen;f++){\r\n\t\t\t\ttDeformAniData=new DeformAniData();\r\n\t\t\t\ttDeformAniData.skinName=tByte.getUTFString();\r\n\t\t\t\ttSkinDic[tDeformAniData.skinName]=tDeformAniData;\r\n\t\t\t\ttDeformSlotLen=tByte.getInt16();\r\n\t\t\t\tfor (j=0;j < tDeformSlotLen;j++){\r\n\t\t\t\t\ttDeformSlotData=new DeformSlotData();\r\n\t\t\t\t\ttDeformAniData.deformSlotDataList.push(tDeformSlotData);\r\n\t\t\t\t\ttDeformSlotDisplayLen=tByte.getInt16();\r\n\t\t\t\t\tfor (k=0;k < tDeformSlotDisplayLen;k++){\r\n\t\t\t\t\t\ttDeformSlotDisplayData=new DeformSlotDisplayData();\r\n\t\t\t\t\t\ttDeformSlotData.deformSlotDisplayList.push(tDeformSlotDisplayData);\r\n\t\t\t\t\t\ttDeformSlotDisplayData.slotIndex=tDSlotIndex=tByte.getInt16();\r\n\t\t\t\t\t\ttDeformSlotDisplayData.attachment=tDAttachment=tByte.getUTFString();\r\n\t\t\t\t\t\ttDeformTimeLen=tByte.getInt16();\r\n\t\t\t\t\t\tfor (l=0;l < tDeformTimeLen;l++){\r\n\t\t\t\t\t\t\tif (tByte.getByte()==1){\r\n\t\t\t\t\t\t\t\ttDeformSlotDisplayData.tweenKeyList.push(true);\r\n\t\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\t\ttDeformSlotDisplayData.tweenKeyList.push(false);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ttDTime=tByte.getFloat32();\r\n\t\t\t\t\t\t\ttDeformSlotDisplayData.timeList.push(tDTime);\r\n\t\t\t\t\t\t\ttDeformVectices=[];\r\n\t\t\t\t\t\t\ttDeformSlotDisplayData.vectices.push(tDeformVectices);\r\n\t\t\t\t\t\t\ttDeformVecticesLen=tByte.getInt16();\r\n\t\t\t\t\t\t\tfor (n=0;n < tDeformVecticesLen;n++){\r\n\t\t\t\t\t\t\t\ttDeformVectices.push(tByte.getFloat32());\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar tDrawOrderArr;\r\n\t\tvar tDrawOrderAniLen=tByte.getInt16();\r\n\t\tvar tDrawOrderLen=0;\r\n\t\tvar tDrawOrderData;\r\n\t\tvar tDoLen=0;\r\n\t\tfor (i=0;i < tDrawOrderAniLen;i++){\r\n\t\t\ttDrawOrderLen=tByte.getInt16();\r\n\t\t\ttDrawOrderArr=[];\r\n\t\t\tfor (j=0;j < tDrawOrderLen;j++){\r\n\t\t\t\ttDrawOrderData=new DrawOrderData();\r\n\t\t\t\ttDrawOrderData.time=tByte.getFloat32();\r\n\t\t\t\ttDoLen=tByte.getInt16();\r\n\t\t\t\tfor (k=0;k < tDoLen;k++){\r\n\t\t\t\t\ttDrawOrderData.drawOrder.push(tByte.getInt16());\r\n\t\t\t\t}\r\n\t\t\t\ttDrawOrderArr.push(tDrawOrderData);\r\n\t\t\t}\r\n\t\t\tthis.drawOrderAniArr.push(tDrawOrderArr);\r\n\t\t};\r\n\t\tvar tEventArr;\r\n\t\tvar tEventAniLen=tByte.getInt16();\r\n\t\tvar tEventLen=0;\r\n\t\tvar tEventData;\r\n\t\tfor (i=0;i < tEventAniLen;i++){\r\n\t\t\ttEventLen=tByte.getInt16();\r\n\t\t\ttEventArr=[];\r\n\t\t\tfor (j=0;j < tEventLen;j++){\r\n\t\t\t\ttEventData=new EventData();\r\n\t\t\t\ttEventData.name=tByte.getUTFString();\r\n\t\t\t\ttEventData.intValue=tByte.getInt32();\r\n\t\t\t\ttEventData.floatValue=tByte.getFloat32();\r\n\t\t\t\ttEventData.stringValue=tByte.getUTFString();\r\n\t\t\t\ttEventData.time=tByte.getFloat32();\r\n\t\t\t\ttEventArr.push(tEventData);\r\n\t\t\t}\r\n\t\t\tthis.eventAniArr.push(tEventArr);\r\n\t\t};\r\n\t\tvar tAttachmentLen=tByte.getInt16();\r\n\t\tif (tAttachmentLen > 0){\r\n\t\t\tthis.attachmentNames=[];\r\n\t\t\tfor (i=0;i < tAttachmentLen;i++){\r\n\t\t\t\tthis.attachmentNames.push(tByte.getUTFString());\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar tBoneSlotLen=tByte.getInt16();\r\n\t\tvar tDBBoneSlot;\r\n\t\tvar tDBBoneSlotArr;\r\n\t\tfor (i=0;i < tBoneSlotLen;i++){\r\n\t\t\ttDBBoneSlot=new BoneSlot();\r\n\t\t\ttDBBoneSlot.name=tByte.readUTFString();\r\n\t\t\ttDBBoneSlot.parent=tByte.readUTFString();\r\n\t\t\ttDBBoneSlot.attachmentName=tByte.readUTFString();\r\n\t\t\ttDBBoneSlot.srcDisplayIndex=tDBBoneSlot.displayIndex=tByte.getInt16();\r\n\t\t\ttDBBoneSlot.templet=this;\r\n\t\t\tthis.boneSlotDic[tDBBoneSlot.name]=tDBBoneSlot;\r\n\t\t\ttDBBoneSlotArr=this.bindBoneBoneSlotDic[tDBBoneSlot.parent];\r\n\t\t\tif (tDBBoneSlotArr==null){\r\n\t\t\t\tthis.bindBoneBoneSlotDic[tDBBoneSlot.parent]=tDBBoneSlotArr=[];\r\n\t\t\t}\r\n\t\t\ttDBBoneSlotArr.push(tDBBoneSlot);\r\n\t\t\tthis.boneSlotArray.push(tDBBoneSlot);\r\n\t\t};\r\n\t\tvar tNameString=tByte.readUTFString();\r\n\t\tvar tNameArray=tNameString.split(\"\\n\");\r\n\t\tvar tNameStartIndex=0;\r\n\t\tvar tSkinDataLen=tByte.getUint8();\r\n\t\tvar tSkinData,tSlotData,tDisplayData;\r\n\t\tvar tSlotDataLen=0,tDisplayDataLen=0;\r\n\t\tvar tUvLen=0,tWeightLen=0,tTriangleLen=0,tVerticeLen=0,tLengthLen=0;\r\n\t\tfor (i=0;i < tSkinDataLen;i++){\r\n\t\t\ttSkinData=new SkinData();\r\n\t\t\ttSkinData.name=tNameArray[tNameStartIndex++];\r\n\t\t\ttSlotDataLen=tByte.getUint8();\r\n\t\t\tfor (j=0;j < tSlotDataLen;j++){\r\n\t\t\t\ttSlotData=new SlotData();\r\n\t\t\t\ttSlotData.name=tNameArray[tNameStartIndex++];\r\n\t\t\t\ttDBBoneSlot=this.boneSlotDic[tSlotData.name];\r\n\t\t\t\ttDisplayDataLen=tByte.getUint8();\r\n\t\t\t\tfor (k=0;k < tDisplayDataLen;k++){\r\n\t\t\t\t\ttDisplayData=new SkinSlotDisplayData();\r\n\t\t\t\t\tthis.skinSlotDisplayDataArr.push(tDisplayData);\r\n\t\t\t\t\ttDisplayData.name=tNameArray[tNameStartIndex++];\r\n\t\t\t\t\ttDisplayData.attachmentName=tNameArray[tNameStartIndex++];\r\n\t\t\t\t\ttDisplayData.transform=new Transform();\r\n\t\t\t\t\ttDisplayData.transform.scX=tByte.getFloat32();\r\n\t\t\t\t\ttDisplayData.transform.skX=tByte.getFloat32();\r\n\t\t\t\t\ttDisplayData.transform.skY=tByte.getFloat32();\r\n\t\t\t\t\ttDisplayData.transform.scY=tByte.getFloat32();\r\n\t\t\t\t\ttDisplayData.transform.x=tByte.getFloat32();\r\n\t\t\t\t\ttDisplayData.transform.y=tByte.getFloat32();\r\n\t\t\t\t\ttSlotData.displayArr.push(tDisplayData);\r\n\t\t\t\t\ttDisplayData.width=tByte.getFloat32();\r\n\t\t\t\t\ttDisplayData.height=tByte.getFloat32();\r\n\t\t\t\t\ttDisplayData.type=tByte.getUint8();\r\n\t\t\t\t\ttDisplayData.verLen=tByte.getUint16();\r\n\t\t\t\t\ttBoneLen=tByte.getUint16();\r\n\t\t\t\t\tif (tBoneLen > 0){\r\n\t\t\t\t\t\ttDisplayData.bones=[];\r\n\t\t\t\t\t\tfor (l=0;l < tBoneLen;l++){\r\n\t\t\t\t\t\t\tvar tBoneId=tByte.getUint16();\r\n\t\t\t\t\t\t\ttDisplayData.bones.push(tBoneId);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttUvLen=tByte.getUint16();\r\n\t\t\t\t\tif (tUvLen > 0){\r\n\t\t\t\t\t\ttDisplayData.uvs=[];\r\n\t\t\t\t\t\tfor (l=0;l < tUvLen;l++){\r\n\t\t\t\t\t\t\ttDisplayData.uvs.push(tByte.getFloat32());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttWeightLen=tByte.getUint16();\r\n\t\t\t\t\tif (tWeightLen > 0){\r\n\t\t\t\t\t\ttDisplayData.weights=[];\r\n\t\t\t\t\t\tfor (l=0;l < tWeightLen;l++){\r\n\t\t\t\t\t\t\ttDisplayData.weights.push(tByte.getFloat32());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttTriangleLen=tByte.getUint16();\r\n\t\t\t\t\tif (tTriangleLen > 0){\r\n\t\t\t\t\t\ttDisplayData.triangles=[];\r\n\t\t\t\t\t\tfor (l=0;l < tTriangleLen;l++){\r\n\t\t\t\t\t\t\ttDisplayData.triangles.push(tByte.getUint16());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttVerticeLen=tByte.getUint16();\r\n\t\t\t\t\tif (tVerticeLen > 0){\r\n\t\t\t\t\t\ttDisplayData.vertices=[];\r\n\t\t\t\t\t\tfor (l=0;l < tVerticeLen;l++){\r\n\t\t\t\t\t\t\ttDisplayData.vertices.push(tByte.getFloat32());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttLengthLen=tByte.getUint16();\r\n\t\t\t\t\tif (tLengthLen > 0){\r\n\t\t\t\t\t\ttDisplayData.lengths=[];\r\n\t\t\t\t\t\tfor (l=0;l < tLengthLen;l++){\r\n\t\t\t\t\t\t\ttDisplayData.lengths.push(tByte.getFloat32());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttSkinData.slotArr.push(tSlotData);\r\n\t\t\t}\r\n\t\t\tthis.skinDic[tSkinData.name]=tSkinData;\r\n\t\t\tthis.skinDataArray.push(tSkinData);\r\n\t\t};\r\n\t\tvar tReverse=tByte.getUint8();\r\n\t\tif (tReverse==1){\r\n\t\t\tthis.yReverseMatrix=new Matrix(1,0,0,-1,0,0);\r\n\t\t\tif (tRootBone){\r\n\t\t\t\ttRootBone.setTempMatrix(this.yReverseMatrix);\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tif (tRootBone){\r\n\t\t\t\ttRootBone.setTempMatrix(new Matrix());\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.showSkinByIndex(this.boneSlotDic,0);\r\n\t\tthis.isParserComplete=true;\r\n\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\",this);\r\n\t}\r\n\r\n\t/**\r\n\t*得到指定的纹理\r\n\t*@param name 纹理的名字\r\n\t*@return\r\n\t*/\r\n\t__proto.getTexture=function(name){\r\n\t\tvar tTexture=this.subTextureDic[name];\r\n\t\tif (!tTexture){\r\n\t\t\ttTexture=this.subTextureDic[name.substr(0,name.length-1)];\r\n\t\t}\r\n\t\tif (tTexture==null){\r\n\t\t\treturn this._mainTexture;\r\n\t\t}\r\n\t\treturn tTexture;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*显示指定的皮肤\r\n\t*@param boneSlotDic 插糟字典的引用\r\n\t*@param skinIndex 皮肤的索引\r\n\t*@param freshDisplayIndex 是否重置插槽纹理\r\n\t*/\r\n\t__proto.showSkinByIndex=function(boneSlotDic,skinIndex,freshDisplayIndex){\r\n\t\t(freshDisplayIndex===void 0)&& (freshDisplayIndex=true);\r\n\t\tif (skinIndex < 0 && skinIndex >=this.skinDataArray.length)return false;\r\n\t\tvar i=0,n=0;\r\n\t\tvar tBoneSlot;\r\n\t\tvar tSlotData;\r\n\t\tvar tSkinData=this.skinDataArray[skinIndex];\r\n\t\tif (tSkinData){\r\n\t\t\tfor (i=0,n=tSkinData.slotArr.length;i < n;i++){\r\n\t\t\t\ttSlotData=tSkinData.slotArr[i];\r\n\t\t\t\tif (tSlotData){\r\n\t\t\t\t\ttBoneSlot=boneSlotDic[tSlotData.name];\r\n\t\t\t\t\tif (tBoneSlot){\r\n\t\t\t\t\t\ttBoneSlot.showSlotData(tSlotData,freshDisplayIndex);\r\n\t\t\t\t\t\tif (freshDisplayIndex&&tBoneSlot.attachmentName !=\"undefined\" && tBoneSlot.attachmentName !=\"null\"){\r\n\t\t\t\t\t\t\ttBoneSlot.showDisplayByName(tBoneSlot.attachmentName);\r\n\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\ttBoneSlot.showDisplayByIndex(tBoneSlot.displayIndex);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t*通过皮肤名字得到皮肤索引\r\n\t*@param skinName 皮肤名称\r\n\t*@return\r\n\t*/\r\n\t__proto.getSkinIndexByName=function(skinName){\r\n\t\tvar tSkinData;\r\n\t\tfor (var i=0,n=this.skinDataArray.length;i < n;i++){\r\n\t\t\ttSkinData=this.skinDataArray[i];\r\n\t\t\tif (tSkinData.name==skinName){\r\n\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn-1;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*得到缓冲数据\r\n\t*@param aniIndex 动画索引\r\n\t*@param frameIndex 帧索引\r\n\t*@return\r\n\t*/\r\n\t__proto.getGrahicsDataWithCache=function(aniIndex,frameIndex){\r\n\t\treturn this._graphicsCache[aniIndex][frameIndex];\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*保存缓冲grahpics\r\n\t*@param aniIndex 动画索引\r\n\t*@param frameIndex 帧索引\r\n\t*@param graphics 要保存的数据\r\n\t*/\r\n\t__proto.setGrahicsDataWithCache=function(aniIndex,frameIndex,graphics){\r\n\t\tthis._graphicsCache[aniIndex][frameIndex]=graphics;\r\n\t}\r\n\r\n\t/**\r\n\t*释放纹理\r\n\t*/\r\n\t__proto.destroy=function(){\r\n\t\tthis._isDestroyed=true;\r\n\t\tvar tTexture;\r\n\t\t/*for each*/for(var $each_tTexture in this.subTextureDic){\r\n\t\t\ttTexture=this.subTextureDic[$each_tTexture];\r\n\t\t\tif(tTexture)\r\n\t\t\t\ttTexture.destroy();\r\n\t\t}\r\n\t\tvar $each_tTexture;\r\n\t\t/*for each*/for($each_tTexture in this._textureDic){\r\n\t\t\ttTexture=this._textureDic[$each_tTexture];\r\n\t\t\tif(tTexture)\r\n\t\t\t\ttTexture.destroy();\r\n\t\t};\r\n\t\tvar tSkinSlotDisplayData;\r\n\t\tfor (var i=0,n=this.skinSlotDisplayDataArr.length;i < n;i++){\r\n\t\t\ttSkinSlotDisplayData=this.skinSlotDisplayDataArr[i];\r\n\t\t\ttSkinSlotDisplayData.destory();\r\n\t\t}\r\n\t\tthis.skinSlotDisplayDataArr.length=0;\r\n\t\tif (this.url){\r\n\t\t\tdelete Templet.TEMPLET_DICTIONARY[this.url];\r\n\t\t}\r\n\t\tlaya.resource.Resource.prototype.destroy.call(this);\r\n\t}\r\n\r\n\t/**\r\n\t*通过索引得动画名称\r\n\t*@param index\r\n\t*@return\r\n\t*/\r\n\t__proto.getAniNameByIndex=function(index){\r\n\t\tvar tAni=this.getAnimation(index);\r\n\t\tif (tAni)return tAni.name;\r\n\t\treturn null;\r\n\t}\r\n\r\n\t__getset(0,__proto,'rate',function(){\r\n\t\treturn this._rate;\r\n\t\t},function(v){\r\n\t\tthis._rate=v;\r\n\t});\r\n\r\n\tTemplet.LAYA_ANIMATION_VISION=\"LAYAANIMATION:1.6.0\";\r\n\tTemplet.TEMPLET_DICTIONARY=null;\r\n\treturn Templet;\r\n})(AnimationTemplet)\r\n\r\n\r\n\r\n})(window,document,Laya);\r\n\r\nif (typeof define === 'function' && define.amd){\r\n\tdefine('laya.core', ['require', \"exports\"], function(require, exports) {\r\n        'use strict';\r\n        Object.defineProperty(exports, '__esModule', { value: true });\r\n        for (var i in Laya) {\r\n\t\t\tvar o = Laya[i];\r\n            o && o.__isclass && (exports[i] = o);\r\n        }\r\n    });\r\n}","\r\n(function(window,document,Laya){\r\n\tvar __un=Laya.un,__uns=Laya.uns,__static=Laya.static,__class=Laya.class,__getset=Laya.getset,__newvec=Laya.__newvec;\r\n\r\n\tvar Browser=laya.utils.Browser,Color=laya.utils.Color,ColorFilterAction=laya.filters.ColorFilterAction;\r\n\tvar ColorFilterActionGL=laya.filters.webgl.ColorFilterActionGL,Filter=laya.filters.Filter,FilterActionGL=laya.filters.webgl.FilterActionGL;\r\n\tvar Matrix=laya.maths.Matrix,Rectangle=laya.maths.Rectangle,Render=laya.renders.Render,RenderContext=laya.renders.RenderContext;\r\n\tvar RenderTarget2D=laya.webgl.resource.RenderTarget2D,RunDriver=laya.utils.RunDriver,ShaderDefines2D=laya.webgl.shader.d2.ShaderDefines2D;\r\n\tvar Sprite=laya.display.Sprite,Texture=laya.resource.Texture,Value2D=laya.webgl.shader.d2.value.Value2D;\r\n/**\r\n*默认的FILTER,什么都不做\r\n*@private\r\n*/\r\n//class laya.filters.FilterAction\r\nvar FilterAction=(function(){\r\n\tfunction FilterAction(){\r\n\t\tthis.data=null;\r\n\t}\r\n\r\n\t__class(FilterAction,'laya.filters.FilterAction');\r\n\tvar __proto=FilterAction.prototype;\r\n\tLaya.imps(__proto,{\"laya.filters.IFilterAction\":true})\r\n\t__proto.apply=function(data){\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn FilterAction;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.filters.WebGLFilter\r\nvar WebGLFilter=(function(){\r\n\tfunction WebGLFilter(){}\r\n\t__class(WebGLFilter,'laya.filters.WebGLFilter');\r\n\tWebGLFilter.enable=function(){\r\n\t\tif (WebGLFilter.isInit)return;\r\n\t\tWebGLFilter.isInit=true;\r\n\t\tif (!Render.isWebGL)return;\r\n\t\tRunDriver.createFilterAction=function (type){\r\n\t\t\tvar action;\r\n\t\t\tswitch (type){\r\n\t\t\t\tcase /*laya.filters.Filter.COLOR*/0x20:\r\n\t\t\t\t\taction=new ColorFilterActionGL();\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.filters.Filter.BLUR*/0x10:\r\n\t\t\t\t\taction=new BlurFilterActionGL();\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.filters.Filter.GLOW*/0x08:\r\n\t\t\t\t\taction=new GlowFilterActionGL();\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\treturn action;\r\n\t\t}\r\n\t}\r\n\r\n\tWebGLFilter.isInit=false;\r\n\tWebGLFilter.__init$=function(){\r\n\t\tBlurFilterActionGL;\r\n\t\tColorFilterActionGL;\r\n\t\tGlowFilterActionGL;\r\n\t\tRender;\r\n\t\tRunDriver;{\r\n\t\t\tRunDriver.createFilterAction=function (type){\r\n\t\t\t\tvar action;\r\n\t\t\t\tswitch (type){\r\n\t\t\t\t\tcase /*laya.filters.Filter.BLUR*/0x10:\r\n\t\t\t\t\t\taction=new FilterAction();\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase /*laya.filters.Filter.GLOW*/0x08:\r\n\t\t\t\t\t\taction=new FilterAction();\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase /*laya.filters.Filter.COLOR*/0x20:\r\n\t\t\t\t\t\taction=new ColorFilterAction();\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t}\r\n\t\t\t\treturn action;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn WebGLFilter;\r\n})()\r\n\r\n\r\n/**\r\n*模糊滤镜\r\n*/\r\n//class laya.filters.BlurFilter extends laya.filters.Filter\r\nvar BlurFilter=(function(_super){\r\n\tfunction BlurFilter(strength){\r\n\t\t/**模糊滤镜的强度(值越大，越不清晰 */\r\n\t\tthis.strength=NaN;\r\n\t\tthis.strength_sig2_2sig2_gauss1=[];\r\n\t\tBlurFilter.__super.call(this);\r\n\t\t(strength===void 0)&& (strength=4);\r\n\t\tif (Render.isWebGL)WebGLFilter.enable();\r\n\t\tthis.strength=strength;\r\n\t\tthis._action=RunDriver.createFilterAction(0x10);\r\n\t\tthis._action.data=this;\r\n\t}\r\n\r\n\t__class(BlurFilter,'laya.filters.BlurFilter',_super);\r\n\tvar __proto=BlurFilter.prototype;\r\n\t/**\r\n\t*@private 通知微端\r\n\t*/\r\n\t__proto.callNative=function(sp){\r\n\t\tsp.conchModel &&sp.conchModel.blurFilter&&sp.conchModel.blurFilter(this.strength);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*当前滤镜对应的操作器\r\n\t*/\r\n\t__getset(0,__proto,'action',function(){\r\n\t\treturn this._action;\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*当前滤镜的类型\r\n\t*/\r\n\t__getset(0,__proto,'type',function(){\r\n\t\treturn 0x10;\r\n\t});\r\n\r\n\treturn BlurFilter;\r\n})(Filter)\r\n\r\n\r\n/**\r\n*发光滤镜(也可以当成阴影滤使用）\r\n*/\r\n//class laya.filters.GlowFilter extends laya.filters.Filter\r\nvar GlowFilter=(function(_super){\r\n\tfunction GlowFilter(color,blur,offX,offY){\r\n\t\t/**滤镜的颜色*/\r\n\t\tthis._color=null;\r\n\t\tGlowFilter.__super.call(this);\r\n\t\tthis._elements=new Float32Array(9);\r\n\t\t(blur===void 0)&& (blur=4);\r\n\t\t(offX===void 0)&& (offX=6);\r\n\t\t(offY===void 0)&& (offY=6);\r\n\t\tif (Render.isWebGL){\r\n\t\t\tWebGLFilter.enable();\r\n\t\t}\r\n\t\tthis._color=new Color(color);\r\n\t\tthis.blur=Math.min(blur,20);\r\n\t\tthis.offX=offX;\r\n\t\tthis.offY=offY;\r\n\t\tthis._action=RunDriver.createFilterAction(0x08);\r\n\t\tthis._action.data=this;\r\n\t}\r\n\r\n\t__class(GlowFilter,'laya.filters.GlowFilter',_super);\r\n\tvar __proto=GlowFilter.prototype;\r\n\t/**@private */\r\n\t__proto.getColor=function(){\r\n\t\treturn this._color._color;\r\n\t}\r\n\r\n\t/**\r\n\t*@private 通知微端\r\n\t*/\r\n\t__proto.callNative=function(sp){\r\n\t\tsp.conchModel &&sp.conchModel.glowFilter&&sp.conchModel.glowFilter(this._color.strColor,this._elements[4],this._elements[5],this._elements[6]);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*滤镜类型\r\n\t*/\r\n\t__getset(0,__proto,'type',function(){\r\n\t\treturn 0x08;\r\n\t});\r\n\r\n\t/**@private */\r\n\t__getset(0,__proto,'action',function(){\r\n\t\treturn this._action;\r\n\t});\r\n\r\n\t/**@private */\r\n\t/**@private */\r\n\t__getset(0,__proto,'offY',function(){\r\n\t\treturn this._elements[6];\r\n\t\t},function(value){\r\n\t\tthis._elements[6]=value;\r\n\t});\r\n\r\n\t/**@private */\r\n\t/**@private */\r\n\t__getset(0,__proto,'offX',function(){\r\n\t\treturn this._elements[5];\r\n\t\t},function(value){\r\n\t\tthis._elements[5]=value;\r\n\t});\r\n\r\n\t/**@private */\r\n\t/**@private */\r\n\t__getset(0,__proto,'blur',function(){\r\n\t\treturn this._elements[4];\r\n\t\t},function(value){\r\n\t\tthis._elements[4]=value;\r\n\t});\r\n\r\n\treturn GlowFilter;\r\n})(Filter)\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.filters.webgl.BlurFilterActionGL extends laya.filters.webgl.FilterActionGL\r\nvar BlurFilterActionGL=(function(_super){\r\n\tfunction BlurFilterActionGL(){\r\n\t\tthis.data=null;\r\n\t\tBlurFilterActionGL.__super.call(this);\r\n\t}\r\n\r\n\t__class(BlurFilterActionGL,'laya.filters.webgl.BlurFilterActionGL',_super);\r\n\tvar __proto=BlurFilterActionGL.prototype;\r\n\t__proto.setValueMix=function(shader){\r\n\t\tshader.defines.add(this.data.type);\r\n\t\tvar o=shader;\r\n\t}\r\n\r\n\t__proto.apply3d=function(scope,sprite,context,x,y){\r\n\t\tvar b=scope.getValue(\"bounds\");\r\n\t\tvar shaderValue=Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0);\r\n\t\tshaderValue.setFilters([this.data]);\r\n\t\tvar tMatrix=Matrix.EMPTY;\r\n\t\ttMatrix.identity();\r\n\t\tcontext.ctx.drawTarget(scope,0,0,b.width,b.height,Matrix.EMPTY,\"src\",shaderValue);\r\n\t\tshaderValue.setFilters(null);\r\n\t}\r\n\r\n\t__proto.setValue=function(shader){\r\n\t\tshader.strength=this.data.strength;\r\n\t\tvar sigma=this.data.strength/3.0;\r\n\t\tvar sigma2=sigma*sigma;\r\n\t\tthis.data.strength_sig2_2sig2_gauss1[0]=this.data.strength;\r\n\t\tthis.data.strength_sig2_2sig2_gauss1[1]=sigma2;\r\n\t\tthis.data.strength_sig2_2sig2_gauss1[2]=2.0*sigma2;\r\n\t\tthis.data.strength_sig2_2sig2_gauss1[3]=1.0/(2.0*Math.PI*sigma2);\r\n\t\tshader.strength_sig2_2sig2_gauss1=this.data.strength_sig2_2sig2_gauss1;\r\n\t}\r\n\r\n\t__getset(0,__proto,'typeMix',function(){return /*laya.filters.Filter.BLUR*/0x10;});\r\n\treturn BlurFilterActionGL;\r\n})(FilterActionGL)\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.filters.webgl.GlowFilterActionGL extends laya.filters.webgl.FilterActionGL\r\nvar GlowFilterActionGL=(function(_super){\r\n\tfunction GlowFilterActionGL(){\r\n\t\tthis.data=null;\r\n\t\tthis._initKey=false;\r\n\t\tthis._textureWidth=0;\r\n\t\tthis._textureHeight=0;\r\n\t\tGlowFilterActionGL.__super.call(this);\r\n\t}\r\n\r\n\t__class(GlowFilterActionGL,'laya.filters.webgl.GlowFilterActionGL',_super);\r\n\tvar __proto=GlowFilterActionGL.prototype;\r\n\tLaya.imps(__proto,{\"laya.filters.IFilterActionGL\":true})\r\n\t__proto.setValueMix=function(shader){}\r\n\t__proto.apply3d=function(scope,sprite,context,x,y){\r\n\t\tvar b=scope.getValue(\"bounds\");\r\n\t\tscope.addValue(\"color\",this.data.getColor());\r\n\t\tvar w=b.width,h=b.height;\r\n\t\tthis._textureWidth=w;\r\n\t\tthis._textureHeight=h;\r\n\t\tvar shaderValue;\r\n\t\tvar mat=Matrix.TEMP;\r\n\t\tmat.identity();\r\n\t\tshaderValue=Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0);\r\n\t\tshaderValue.setFilters([this.data]);\r\n\t\tcontext.ctx.drawTarget(scope,0,0,this._textureWidth,this._textureHeight,mat,\"src\",shaderValue,null);\r\n\t\tshaderValue=Value2D.create(/*laya.webgl.shader.d2.ShaderDefines2D.TEXTURE2D*/0x01,0);\r\n\t\tcontext.ctx.drawTarget(scope,0,0,this._textureWidth,this._textureHeight,mat,\"src\",shaderValue);\r\n\t\treturn null;\r\n\t}\r\n\r\n\t__proto.setSpriteWH=function(sprite){\r\n\t\tthis._textureWidth=sprite.width;\r\n\t\tthis._textureHeight=sprite.height;\r\n\t}\r\n\r\n\t__proto.setValue=function(shader){\r\n\t\tshader.u_offsetX=this.data.offX;\r\n\t\tshader.u_offsetY=-this.data.offY;\r\n\t\tshader.u_strength=1.0;\r\n\t\tshader.u_blurX=this.data.blur;\r\n\t\tshader.u_blurY=this.data.blur;\r\n\t\tshader.u_textW=this._textureWidth;\r\n\t\tshader.u_textH=this._textureHeight;\r\n\t\tshader.u_color=this.data.getColor();\r\n\t}\r\n\r\n\t__getset(0,__proto,'typeMix',function(){return /*laya.filters.Filter.GLOW*/0x08;});\r\n\tGlowFilterActionGL.tmpTarget=function(scope,sprite,context,x,y){\r\n\t\tvar b=scope.getValue(\"bounds\");\r\n\t\tvar out=scope.getValue(\"out\");\r\n\t\tout.end();\r\n\t\tvar tmpTarget=RenderTarget2D.create(b.width,b.height);\r\n\t\ttmpTarget.start();\r\n\t\tvar color=scope.getValue(\"color\");\r\n\t\tif (color){\r\n\t\t\ttmpTarget.clear(color[0],color[1],color[2],0);\r\n\t\t}\r\n\t\tscope.addValue(\"tmpTarget\",tmpTarget);\r\n\t}\r\n\r\n\tGlowFilterActionGL.startOut=function(scope,sprite,context,x,y){\r\n\t\tvar tmpTarget=scope.getValue(\"tmpTarget\");\r\n\t\ttmpTarget.end();\r\n\t\tvar out=scope.getValue(\"out\");\r\n\t\tout.start();\r\n\t\tvar color=scope.getValue(\"color\");\r\n\t\tif (color){\r\n\t\t\tout.clear(color[0],color[1],color[2],0);\r\n\t\t}\r\n\t}\r\n\r\n\tGlowFilterActionGL.recycleTarget=function(scope,sprite,context,x,y){\r\n\t\tvar src=scope.getValue(\"src\");\r\n\t\tvar tmpTarget=scope.getValue(\"tmpTarget\");\r\n\t\ttmpTarget.recycle();\r\n\t}\r\n\r\n\treturn GlowFilterActionGL;\r\n})(FilterActionGL)\r\n\r\n\r\n\tLaya.__init([WebGLFilter]);\r\n})(window,document,Laya);\r\n\r\nif (typeof define === 'function' && define.amd){\r\n\tdefine('laya.core', ['require', \"exports\"], function(require, exports) {\r\n        'use strict';\r\n        Object.defineProperty(exports, '__esModule', { value: true });\r\n        for (var i in Laya) {\r\n\t\t\tvar o = Laya[i];\r\n            o && o.__isclass && (exports[i] = o);\r\n        }\r\n    });\r\n}","\r\n(function(window,document,Laya){\r\n\tvar __un=Laya.un,__uns=Laya.uns,__static=Laya.static,__class=Laya.class,__getset=Laya.getset,__newvec=Laya.__newvec;\r\n\r\n\tvar BlendMode=laya.webgl.canvas.BlendMode,Event=laya.events.Event,HTMLCanvas=laya.resource.HTMLCanvas;\r\n\tvar Handler=laya.utils.Handler,IndexBuffer2D=laya.webgl.utils.IndexBuffer2D,Loader=laya.net.Loader,MathUtil=laya.maths.MathUtil;\r\n\tvar Matrix=laya.maths.Matrix,Render=laya.renders.Render,RenderContext=laya.renders.RenderContext,RenderSprite=laya.renders.RenderSprite;\r\n\tvar Shader=laya.webgl.shader.Shader,Sprite=laya.display.Sprite,Stat=laya.utils.Stat,Texture=laya.resource.Texture;\r\n\tvar Utils=laya.utils.Utils,Value2D=laya.webgl.shader.d2.value.Value2D,VertexBuffer2D=laya.webgl.utils.VertexBuffer2D;\r\n\tvar WebGL=laya.webgl.WebGL,WebGLContext=laya.webgl.WebGLContext;\r\n/**\r\n*<code>EmitterBase</code> 类是粒子发射器类\r\n*/\r\n//class laya.particle.emitter.EmitterBase\r\nvar EmitterBase=(function(){\r\n\tfunction EmitterBase(){\r\n\t\t/**\r\n\t\t*积累的帧时间\r\n\t\t*/\r\n\t\tthis._frameTime=0;\r\n\t\t/**\r\n\t\t*粒子发射速率\r\n\t\t*/\r\n\t\tthis._emissionRate=60;\r\n\t\t/**\r\n\t\t*当前剩余发射时间\r\n\t\t*/\r\n\t\tthis._emissionTime=0;\r\n\t\t/**\r\n\t\t*发射粒子最小时间间隔\r\n\t\t*/\r\n\t\tthis.minEmissionTime=1 / 60;\r\n\t\t/**@private */\r\n\t\tthis._particleTemplate=null;\r\n\t}\r\n\r\n\t__class(EmitterBase,'laya.particle.emitter.EmitterBase');\r\n\tvar __proto=EmitterBase.prototype;\r\n\t/**\r\n\t*开始发射粒子\r\n\t*@param duration 发射持续的时间(秒)\r\n\t*/\r\n\t__proto.start=function(duration){\r\n\t\t(duration===void 0)&& (duration=2147483647);\r\n\t\tif (this._emissionRate !=0)\r\n\t\t\tthis._emissionTime=duration;\r\n\t}\r\n\r\n\t/**\r\n\t*停止发射粒子\r\n\t*@param clearParticles 是否清理当前的粒子\r\n\t*/\r\n\t__proto.stop=function(){\r\n\t\tthis._emissionTime=0;\r\n\t}\r\n\r\n\t/**\r\n\t*清理当前的活跃粒子\r\n\t*@param clearTexture 是否清理贴图数据,若清除贴图数据将无法再播放\r\n\t*/\r\n\t__proto.clear=function(){\r\n\t\tthis._emissionTime=0;\r\n\t}\r\n\r\n\t/**\r\n\t*发射一个粒子\r\n\t*\r\n\t*/\r\n\t__proto.emit=function(){}\r\n\t/**\r\n\t*时钟前进\r\n\t*@param passedTime 前进时间\r\n\t*\r\n\t*/\r\n\t__proto.advanceTime=function(passedTime){\r\n\t\t(passedTime===void 0)&& (passedTime=1);\r\n\t\tthis._emissionTime-=passedTime;\r\n\t\tif (this._emissionTime < 0)return;\r\n\t\tthis._frameTime+=passedTime;\r\n\t\tif (this._frameTime < this.minEmissionTime)return;\r\n\t\twhile (this._frameTime > this.minEmissionTime){\r\n\t\t\tthis._frameTime-=this.minEmissionTime;\r\n\t\t\tthis.emit();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*设置粒子粒子模板\r\n\t*@param particleTemplate 粒子模板\r\n\t*\r\n\t*/\r\n\t__getset(0,__proto,'particleTemplate',null,function(particleTemplate){\r\n\t\tthis._particleTemplate=particleTemplate;\r\n\t});\r\n\r\n\t/**\r\n\t*设置粒子发射速率\r\n\t*@param emissionRate 粒子发射速率 (个/秒)\r\n\t*/\r\n\t/**\r\n\t*获取粒子发射速率\r\n\t*@return 发射速率 粒子发射速率 (个/秒)\r\n\t*/\r\n\t__getset(0,__proto,'emissionRate',function(){\r\n\t\treturn this._emissionRate;\r\n\t\t},function(_emissionRate){\r\n\t\tif (_emissionRate <=0)return;\r\n\t\tthis._emissionRate=_emissionRate;\r\n\t\t(_emissionRate > 0)&& (this.minEmissionTime=1 / _emissionRate);\r\n\t});\r\n\r\n\treturn EmitterBase;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.particle.ParticleData\r\nvar ParticleData=(function(){\r\n\tfunction ParticleData(){\r\n\t\tthis.position=null;\r\n\t\tthis.velocity=null;\r\n\t\tthis.startColor=null;\r\n\t\tthis.endColor=null;\r\n\t\tthis.sizeRotation=null;\r\n\t\tthis.radius=null;\r\n\t\tthis.radian=null;\r\n\t\tthis.durationAddScale=NaN;\r\n\t\tthis.time=NaN;\r\n\t}\r\n\r\n\t__class(ParticleData,'laya.particle.ParticleData');\r\n\tParticleData.Create=function(settings,position,velocity,time){\r\n\t\tvar particleData=new ParticleData();\r\n\t\tparticleData.position=position;\r\n\t\tMathUtil.scaleVector3(velocity,settings.emitterVelocitySensitivity,ParticleData._tempVelocity);\r\n\t\tvar horizontalVelocity=MathUtil.lerp(settings.minHorizontalVelocity,settings.maxHorizontalVelocity,Math.random());\r\n\t\tvar horizontalAngle=Math.random()*Math.PI *2;\r\n\t\tParticleData._tempVelocity[0]+=horizontalVelocity *Math.cos(horizontalAngle);\r\n\t\tParticleData._tempVelocity[2]+=horizontalVelocity *Math.sin(horizontalAngle);\r\n\t\tParticleData._tempVelocity[1]+=MathUtil.lerp(settings.minVerticalVelocity,settings.maxVerticalVelocity,Math.random());\r\n\t\tparticleData.velocity=ParticleData._tempVelocity;\r\n\t\tparticleData.startColor=ParticleData._tempStartColor;\r\n\t\tparticleData.endColor=ParticleData._tempEndColor;\r\n\t\tvar i=0;\r\n\t\tif (settings.disableColor){\r\n\t\t\tfor (i=0;i < 4;i++){\r\n\t\t\t\tparticleData.startColor[i]=1;\r\n\t\t\t\tparticleData.endColor[i]=1;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse{\r\n\t\t\tif (settings.colorComponentInter){\r\n\t\t\t\tfor (i=0;i < 4;i++){\r\n\t\t\t\t\tparticleData.startColor[i]=MathUtil.lerp(settings.minStartColor[i],settings.maxStartColor[i],Math.random());\r\n\t\t\t\t\tparticleData.endColor[i]=MathUtil.lerp(settings.minEndColor[i],settings.maxEndColor[i],Math.random());\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tMathUtil.lerpVector4(settings.minStartColor,settings.maxStartColor,Math.random(),particleData.startColor);\r\n\t\t\t\tMathUtil.lerpVector4(settings.minEndColor,settings.maxEndColor,Math.random(),particleData.endColor);\r\n\t\t\t}\r\n\t\t}\r\n\t\tparticleData.sizeRotation=ParticleData._tempSizeRotation;\r\n\t\tvar sizeRandom=Math.random();\r\n\t\tparticleData.sizeRotation[0]=MathUtil.lerp(settings.minStartSize,settings.maxStartSize,sizeRandom);\r\n\t\tparticleData.sizeRotation[1]=MathUtil.lerp(settings.minEndSize,settings.maxEndSize,sizeRandom);\r\n\t\tparticleData.sizeRotation[2]=MathUtil.lerp(settings.minRotateSpeed,settings.maxRotateSpeed,Math.random());\r\n\t\tparticleData.radius=ParticleData._tempRadius;\r\n\t\tvar radiusRandom=Math.random();\r\n\t\tparticleData.radius[0]=MathUtil.lerp(settings.minStartRadius,settings.maxStartRadius,radiusRandom);\r\n\t\tparticleData.radius[1]=MathUtil.lerp(settings.minEndRadius,settings.maxEndRadius,radiusRandom);\r\n\t\tparticleData.radian=ParticleData._tempRadian;\r\n\t\tparticleData.radian[0]=MathUtil.lerp(settings.minHorizontalStartRadian,settings.maxHorizontalStartRadian,Math.random());\r\n\t\tparticleData.radian[1]=MathUtil.lerp(settings.minVerticalStartRadian,settings.maxVerticalStartRadian,Math.random());\r\n\t\tvar useEndRadian=settings.useEndRadian;\r\n\t\tparticleData.radian[2]=useEndRadian?MathUtil.lerp(settings.minHorizontalEndRadian,settings.maxHorizontalEndRadian,Math.random()):particleData.radian[0];\r\n\t\tparticleData.radian[3]=useEndRadian?MathUtil.lerp(settings.minVerticalEndRadian,settings.maxVerticalEndRadian,Math.random()):particleData.radian[1];\r\n\t\tparticleData.durationAddScale=settings.ageAddScale *Math.random();\r\n\t\tparticleData.time=time;\r\n\t\treturn particleData;\r\n\t}\r\n\r\n\t__static(ParticleData,\r\n\t['_tempVelocity',function(){return this._tempVelocity=new Float32Array(3);},'_tempStartColor',function(){return this._tempStartColor=new Float32Array(4);},'_tempEndColor',function(){return this._tempEndColor=new Float32Array(4);},'_tempSizeRotation',function(){return this._tempSizeRotation=new Float32Array(3);},'_tempRadius',function(){return this._tempRadius=new Float32Array(2);},'_tempRadian',function(){return this._tempRadian=new Float32Array(4);}\r\n\t]);\r\n\treturn ParticleData;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.particle.ParticleEmitter\r\nvar ParticleEmitter=(function(){\r\n\tfunction ParticleEmitter(templet,particlesPerSecond,initialPosition){\r\n\t\tthis._templet=null;\r\n\t\tthis._timeBetweenParticles=NaN;\r\n\t\tthis._previousPosition=null;\r\n\t\tthis._timeLeftOver=0;\r\n\t\tthis._tempVelocity=new Float32Array([0,0,0]);\r\n\t\tthis._tempPosition=new Float32Array([0,0,0]);\r\n\t\tthis._templet=templet;\r\n\t\tthis._timeBetweenParticles=1.0 / particlesPerSecond;\r\n\t\tthis._previousPosition=initialPosition;\r\n\t}\r\n\r\n\t__class(ParticleEmitter,'laya.particle.ParticleEmitter');\r\n\tvar __proto=ParticleEmitter.prototype;\r\n\t__proto.update=function(elapsedTime,newPosition){\r\n\t\telapsedTime=elapsedTime / 1000;\r\n\t\tif (elapsedTime > 0){\r\n\t\t\tMathUtil.subtractVector3(newPosition,this._previousPosition,this._tempVelocity);\r\n\t\t\tMathUtil.scaleVector3(this._tempVelocity,1 / elapsedTime,this._tempVelocity);\r\n\t\t\tvar timeToSpend=this._timeLeftOver+elapsedTime;\r\n\t\t\tvar currentTime=-this._timeLeftOver;\r\n\t\t\twhile (timeToSpend > this._timeBetweenParticles){\r\n\t\t\t\tcurrentTime+=this._timeBetweenParticles;\r\n\t\t\t\ttimeToSpend-=this._timeBetweenParticles;\r\n\t\t\t\tMathUtil.lerpVector3(this._previousPosition,newPosition,currentTime / elapsedTime,this._tempPosition);\r\n\t\t\t\tthis._templet.addParticleArray(this._tempPosition,this._tempVelocity);\r\n\t\t\t}\r\n\t\t\tthis._timeLeftOver=timeToSpend;\r\n\t\t}\r\n\t\tthis._previousPosition[0]=newPosition[0];\r\n\t\tthis._previousPosition[1]=newPosition[1];\r\n\t\tthis._previousPosition[2]=newPosition[2];\r\n\t}\r\n\r\n\treturn ParticleEmitter;\r\n})()\r\n\r\n\r\n/**\r\n*<code>ParticleSettings</code> 类是粒子配置数据类\r\n*/\r\n//class laya.particle.ParticleSetting\r\nvar ParticleSetting=(function(){\r\n\tfunction ParticleSetting(){\r\n\t\t/**贴图*/\r\n\t\tthis.textureName=null;\r\n\t\t/**贴图个数,默认为1可不设置*/\r\n\t\tthis.textureCount=1;\r\n\t\t/**最大同屏粒子个数，最大饱和粒子数为maxPartices-1。注意:WebGL模式下释放粒子时间为最大声明周期，可能会出现释放延迟,实际看到的同屏粒子数小于该数值，如连续喷发出现中断，请调大该数值。*/\r\n\t\tthis.maxPartices=100;\r\n\t\t/**粒子持续时间(单位:秒）*/\r\n\t\tthis.duration=1;\r\n\t\t/**如果大于0，某些粒子的持续时间会小于其他粒子,并具有随机性(单位:无）*/\r\n\t\tthis.ageAddScale=0;\r\n\t\t/**粒子受发射器速度的敏感度（需在自定义发射器中编码设置）*/\r\n\t\tthis.emitterVelocitySensitivity=1;\r\n\t\t/**最小开始尺寸（单位：2D像素、3D坐标）*/\r\n\t\tthis.minStartSize=100;\r\n\t\t/**最大开始尺寸（单位：2D像素、3D坐标）*/\r\n\t\tthis.maxStartSize=100;\r\n\t\t/**最小结束尺寸（单位：2D像素、3D坐标）*/\r\n\t\tthis.minEndSize=100;\r\n\t\t/**最大结束尺寸（单位：2D像素、3D坐标）*/\r\n\t\tthis.maxEndSize=100;\r\n\t\t/**最小水平速度（单位：2D像素、3D坐标）*/\r\n\t\tthis.minHorizontalVelocity=0;\r\n\t\t/**最大水平速度（单位：2D像素、3D坐标）*/\r\n\t\tthis.maxHorizontalVelocity=0;\r\n\t\t/**最小垂直速度（单位：2D像素、3D坐标）*/\r\n\t\tthis.minVerticalVelocity=0;\r\n\t\t/**最大垂直速度（单位：2D像素、3D坐标）*/\r\n\t\tthis.maxVerticalVelocity=0;\r\n\t\t/**等于1时粒子从出生到消亡保持一致的速度，等于0时粒子消亡时速度为0，大于1时粒子会保持加速（单位：无）*/\r\n\t\tthis.endVelocity=1;\r\n\t\t/**最小旋转速度（单位：2D弧度/秒、3D弧度/秒）*/\r\n\t\tthis.minRotateSpeed=0;\r\n\t\t/**最大旋转速度（单位：2D弧度/秒、3D弧度/秒）*/\r\n\t\tthis.maxRotateSpeed=0;\r\n\t\t/**最小开始半径（单位：2D像素、3D坐标）*/\r\n\t\tthis.minStartRadius=0;\r\n\t\t/**最大开始半径（单位：2D像素、3D坐标）*/\r\n\t\tthis.maxStartRadius=0;\r\n\t\t/**最小结束半径（单位：2D像素、3D坐标）*/\r\n\t\tthis.minEndRadius=0;\r\n\t\t/**最大结束半径（单位：2D像素、3D坐标）*/\r\n\t\tthis.maxEndRadius=0;\r\n\t\t/**最小水平开始弧度（单位：2D弧度、3D弧度）*/\r\n\t\tthis.minHorizontalStartRadian=0;\r\n\t\t/**最大水平开始弧度（单位：2D弧度、3D弧度）*/\r\n\t\tthis.maxHorizontalStartRadian=0;\r\n\t\t/**最小垂直开始弧度（单位：2D弧度、3D弧度）*/\r\n\t\tthis.minVerticalStartRadian=0;\r\n\t\t/**最大垂直开始弧度（单位：2D弧度、3D弧度）*/\r\n\t\tthis.maxVerticalStartRadian=0;\r\n\t\t/**是否使用结束弧度,false为结束时与起始弧度保持一致,true为根据minHorizontalEndRadian、maxHorizontalEndRadian、minVerticalEndRadian、maxVerticalEndRadian计算结束弧度。*/\r\n\t\tthis.useEndRadian=true;\r\n\t\t/**最小水平结束弧度（单位：2D弧度、3D弧度）*/\r\n\t\tthis.minHorizontalEndRadian=0;\r\n\t\t/**最大水平结束弧度（单位：2D弧度、3D弧度）*/\r\n\t\tthis.maxHorizontalEndRadian=0;\r\n\t\t/**最小垂直结束弧度（单位：2D弧度、3D弧度）*/\r\n\t\tthis.minVerticalEndRadian=0;\r\n\t\t/**最大垂直结束弧度（单位：2D弧度、3D弧度）*/\r\n\t\tthis.maxVerticalEndRadian=0;\r\n\t\t/**false代表RGBA整体插值，true代表RGBA逐分量插值*/\r\n\t\tthis.colorComponentInter=false;\r\n\t\t/**false代表使用参数颜色数据，true代表使用原图颜色数据*/\r\n\t\tthis.disableColor=false;\r\n\t\t/**混合模式，待调整，引擎中暂无BlendState抽象*/\r\n\t\tthis.blendState=0;\r\n\t\t/**发射器类型,\"point\",\"box\",\"sphere\",\"ring\"*/\r\n\t\tthis.emitterType=\"null\";\r\n\t\t/**发射器发射速率*/\r\n\t\tthis.emissionRate=0;\r\n\t\t/**球发射器半径*/\r\n\t\tthis.sphereEmitterRadius=1;\r\n\t\t/**球发射器速度*/\r\n\t\tthis.sphereEmitterVelocity=0;\r\n\t\t/**球发射器速度随机值*/\r\n\t\tthis.sphereEmitterVelocityAddVariance=0;\r\n\t\t/**环发射器半径*/\r\n\t\tthis.ringEmitterRadius=30;\r\n\t\t/**环发射器速度*/\r\n\t\tthis.ringEmitterVelocity=0;\r\n\t\t/**环发射器速度随机值*/\r\n\t\tthis.ringEmitterVelocityAddVariance=0;\r\n\t\t/**环发射器up向量，0代表X轴,1代表Y轴,2代表Z轴*/\r\n\t\tthis.ringEmitterUp=2;\r\n\t\tthis.gravity=new Float32Array([0,0,0]);\r\n\t\tthis.minStartColor=new Float32Array([1,1,1,1]);\r\n\t\tthis.maxStartColor=new Float32Array([1,1,1,1]);\r\n\t\tthis.minEndColor=new Float32Array([1,1,1,1]);\r\n\t\tthis.maxEndColor=new Float32Array([1,1,1,1]);\r\n\t\tthis.pointEmitterPosition=new Float32Array([0,0,0]);\r\n\t\tthis.pointEmitterPositionVariance=new Float32Array([0,0,0]);\r\n\t\tthis.pointEmitterVelocity=new Float32Array([0,0,0]);\r\n\t\tthis.pointEmitterVelocityAddVariance=new Float32Array([0,0,0]);\r\n\t\tthis.boxEmitterCenterPosition=new Float32Array([0,0,0]);\r\n\t\tthis.boxEmitterSize=new Float32Array([0,0,0]);\r\n\t\tthis.boxEmitterVelocity=new Float32Array([0,0,0]);\r\n\t\tthis.boxEmitterVelocityAddVariance=new Float32Array([0,0,0]);\r\n\t\tthis.sphereEmitterCenterPosition=new Float32Array([0,0,0]);\r\n\t\tthis.ringEmitterCenterPosition=new Float32Array([0,0,0]);\r\n\t\tthis.positionVariance=new Float32Array([0,0,0]);\r\n\t}\r\n\r\n\t__class(ParticleSetting,'laya.particle.ParticleSetting');\r\n\tParticleSetting.checkSetting=function(setting){\r\n\t\tvar key;\r\n\t\tfor (key in ParticleSetting._defaultSetting){\r\n\t\t\tif (!setting.hasOwnProperty(key)){\r\n\t\t\t\tsetting[key]=ParticleSetting._defaultSetting[key];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__static(ParticleSetting,\r\n\t['_defaultSetting',function(){return this._defaultSetting=new ParticleSetting();}\r\n\t]);\r\n\treturn ParticleSetting;\r\n})()\r\n\r\n\r\n/**\r\n*\r\n*<code>ParticleTemplateBase</code> 类是粒子模板基类\r\n*\r\n*/\r\n//class laya.particle.ParticleTemplateBase\r\nvar ParticleTemplateBase=(function(){\r\n\tfunction ParticleTemplateBase(){\r\n\t\t/**\r\n\t\t*粒子配置数据\r\n\t\t*/\r\n\t\tthis.settings=null;\r\n\t\t/**\r\n\t\t*粒子贴图\r\n\t\t*/\r\n\t\tthis.texture=null;\r\n\t}\r\n\r\n\t__class(ParticleTemplateBase,'laya.particle.ParticleTemplateBase');\r\n\tvar __proto=ParticleTemplateBase.prototype;\r\n\t/**\r\n\t*添加一个粒子\r\n\t*@param position 粒子位置\r\n\t*@param velocity 粒子速度\r\n\t*\r\n\t*/\r\n\t__proto.addParticleArray=function(position,velocity){}\r\n\treturn ParticleTemplateBase;\r\n})()\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.particle.particleUtils.CanvasShader\r\nvar CanvasShader=(function(){\r\n\tfunction CanvasShader(){\r\n\t\tthis.u_Duration=NaN;\r\n\t\tthis.u_EndVelocity=NaN;\r\n\t\tthis.u_Gravity=null;\r\n\t\tthis.a_Position=null;\r\n\t\tthis.a_Velocity=null;\r\n\t\tthis.a_StartColor=null;\r\n\t\tthis.a_EndColor=null;\r\n\t\tthis.a_SizeRotation=null;\r\n\t\tthis.a_Radius=null;\r\n\t\tthis.a_Radian=null;\r\n\t\tthis.a_AgeAddScale=NaN;\r\n\t\tthis.gl_Position=null;\r\n\t\tthis.v_Color=null;\r\n\t\tthis.oSize=NaN;\r\n\t\tthis._color=new Float32Array(4);\r\n\t\tthis._position=new Float32Array(3);\r\n\t}\r\n\r\n\t__class(CanvasShader,'laya.particle.particleUtils.CanvasShader');\r\n\tvar __proto=CanvasShader.prototype;\r\n\t__proto.getLen=function(position){\r\n\t\treturn Math.sqrt(position[0] *position[0]+position[1] *position[1]+position[2] *position[2]);\r\n\t}\r\n\r\n\t__proto.ComputeParticlePosition=function(position,velocity,age,normalizedAge){\r\n\t\tthis._position[0]=position[0];\r\n\t\tthis._position[1]=position[1];\r\n\t\tthis._position[2]=position[2];\r\n\t\tvar startVelocity=this.getLen(velocity);\r\n\t\tvar endVelocity=startVelocity *this.u_EndVelocity;\r\n\t\tvar velocityIntegral=startVelocity *normalizedAge+(endVelocity-startVelocity)*normalizedAge *normalizedAge / 2.0;\r\n\t\tvar lenVelocity=NaN;\r\n\t\tlenVelocity=this.getLen(velocity);\r\n\t\tvar i=0,len=0;\r\n\t\tlen=3;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tthis._position[i]=this._position[i]+(velocity[i] / lenVelocity)*velocityIntegral *this.u_Duration;\r\n\t\t\tthis._position[i]+=this.u_Gravity[i] *age *normalizedAge;\r\n\t\t};\r\n\t\tvar radius=MathUtil.lerp(this.a_Radius[0],this.a_Radius[1],normalizedAge);\r\n\t\tvar radianHorizontal=MathUtil.lerp(this.a_Radian[0],this.a_Radian[2],normalizedAge);\r\n\t\tvar radianVertical=MathUtil.lerp(this.a_Radian[1],this.a_Radian[3],normalizedAge);\r\n\t\tvar r=Math.cos(radianVertical)*radius;\r\n\t\tthis._position[1]+=Math.sin(radianVertical)*radius;\r\n\t\tthis._position[0]+=Math.cos(radianHorizontal)*r;\r\n\t\tthis._position[2]+=Math.sin(radianHorizontal)*r;\r\n\t\treturn new Float32Array([this._position[0],this._position[1],0.0,1.0]);\r\n\t}\r\n\r\n\t__proto.ComputeParticleSize=function(startSize,endSize,normalizedAge){\r\n\t\tvar size=MathUtil.lerp(startSize,endSize,normalizedAge);\r\n\t\treturn size;\r\n\t}\r\n\r\n\t__proto.ComputeParticleRotation=function(rot,age){\r\n\t\treturn rot *age;\r\n\t}\r\n\r\n\t__proto.ComputeParticleColor=function(startColor,endColor,normalizedAge){\r\n\t\tvar rst=this._color;\r\n\t\tMathUtil.lerpVector4(startColor,endColor,normalizedAge,rst);\r\n\t\trst[3]=rst[3]*normalizedAge *(1.0-normalizedAge)*(1.0-normalizedAge)*6.7;\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t__proto.clamp=function(value,min,max){\r\n\t\tif(value<min)return min;\r\n\t\tif(value>max)return max;\r\n\t\treturn value;\r\n\t}\r\n\r\n\t__proto.getData=function(age){\r\n\t\tage *=1.0+this.a_AgeAddScale;\r\n\t\tvar normalizedAge=this.clamp(age / this.u_Duration,0.0,1.0);\r\n\t\tthis.gl_Position=this.ComputeParticlePosition(this.a_Position,this.a_Velocity,age,normalizedAge);\r\n\t\tvar pSize=this.ComputeParticleSize(this.a_SizeRotation[0],this.a_SizeRotation[1],normalizedAge);\r\n\t\tvar rotation=this.ComputeParticleRotation(this.a_SizeRotation[2],age);\r\n\t\tthis.v_Color=this.ComputeParticleColor(this.a_StartColor,this.a_EndColor,normalizedAge);\r\n\t\tvar matric=new Matrix();\r\n\t\tvar scale=NaN;\r\n\t\tscale=pSize/this.oSize*2;\r\n\t\tmatric.scale(scale,scale);\r\n\t\tmatric.rotate(rotation);\r\n\t\tmatric.setTranslate(this.gl_Position[0],-this.gl_Position[1]);\r\n\t\tvar alpha=NaN;\r\n\t\talpha=this.v_Color[3];\r\n\t\treturn [this.v_Color,alpha,matric,this.v_Color[0]*alpha,this.v_Color[1]*alpha,this.v_Color[2]*alpha];\r\n\t}\r\n\r\n\treturn CanvasShader;\r\n})()\r\n\r\n\r\n/**\r\n*\r\n*@private\r\n*\r\n*@created 2015-8-25 下午3:41:07\r\n*/\r\n//class laya.particle.particleUtils.CMDParticle\r\nvar CMDParticle=(function(){\r\n\tfunction CMDParticle(){\r\n\t\t/**\r\n\t\t*最大帧\r\n\t\t*/\r\n\t\tthis.maxIndex=0;\r\n\t\t/**\r\n\t\t*帧命令数组\r\n\t\t*/\r\n\t\tthis.cmds=null;\r\n\t\t/**\r\n\t\t*粒子id\r\n\t\t*/\r\n\t\tthis.id=0;\r\n\t}\r\n\r\n\t__class(CMDParticle,'laya.particle.particleUtils.CMDParticle');\r\n\tvar __proto=CMDParticle.prototype;\r\n\t__proto.setCmds=function(cmds){\r\n\t\tthis.cmds=cmds;\r\n\t\tthis.maxIndex=cmds.length-1;\r\n\t}\r\n\r\n\treturn CMDParticle;\r\n})()\r\n\r\n\r\n//class laya.particle.particleUtils.PicTool\r\nvar PicTool=(function(){\r\n\tfunction PicTool(){}\r\n\t__class(PicTool,'laya.particle.particleUtils.PicTool');\r\n\tPicTool.getCanvasPic=function(img,color){\r\n\t\timg=img.bitmap;\r\n\t\tvar canvas=new HTMLCanvas(\"2D\");\r\n\t\tvar ctx=canvas.getContext('2d');\r\n\t\tcanvas.size(img.width,img.height);\r\n\t\tvar red=(color >> 16 & 0xFF);\r\n\t\tvar green=(color >> 8 & 0xFF);\r\n\t\tvar blue=(color & 0xFF);\r\n\t\tif(Render.isConchApp){\r\n\t\t\tctx.setFilter(red/255,green/255,blue/255,0);\r\n\t\t}\r\n\t\tctx.drawImage(img.source,0,0);\r\n\t\tif (!Render.isConchApp){\r\n\t\t\tvar imgdata=ctx.getImageData(0,0,canvas.width,canvas.height);\r\n\t\t\tvar data=imgdata.data;\r\n\t\t\tfor (var i=0,n=data.length;i < n;i+=4){\r\n\t\t\t\tif (data[i+3]==0)continue ;\r\n\t\t\t\tdata[i] *=red/255;\r\n\t\t\t\tdata[i+1] *=green/255;\r\n\t\t\t\tdata[i+2] *=blue/255;\r\n\t\t\t}\r\n\t\t\tctx.putImageData(imgdata,0,0);\r\n\t\t}\r\n\t\treturn canvas;\r\n\t}\r\n\r\n\tPicTool.getRGBPic=function(img){\r\n\t\tvar rst;\r\n\t\trst=[new Texture(PicTool.getCanvasPic(img,0xFF0000)),new Texture(PicTool.getCanvasPic(img,0x00FF00)),new Texture(PicTool.getCanvasPic(img,0x0000FF))];\r\n\t\treturn rst;\r\n\t}\r\n\r\n\treturn PicTool;\r\n})()\r\n\r\n\r\n/**\r\n*\r\n*@private\r\n*/\r\n//class laya.particle.emitter.Emitter2D extends laya.particle.emitter.EmitterBase\r\nvar Emitter2D=(function(_super){\r\n\tfunction Emitter2D(_template){\r\n\t\tthis.setting=null;\r\n\t\tthis._posRange=null;\r\n\t\tthis._canvasTemplate=null;\r\n\t\tthis._emitFun=null;\r\n\t\tEmitter2D.__super.call(this);\r\n\t\tthis.template=_template;\r\n\t}\r\n\r\n\t__class(Emitter2D,'laya.particle.emitter.Emitter2D',_super);\r\n\tvar __proto=Emitter2D.prototype;\r\n\t__proto.emit=function(){\r\n\t\t_super.prototype.emit.call(this);\r\n\t\tif(this._emitFun!=null)\r\n\t\t\tthis._emitFun();\r\n\t}\r\n\r\n\t__proto.getRandom=function(value){\r\n\t\treturn (Math.random()*2-1)*value;\r\n\t}\r\n\r\n\t__proto.webGLEmit=function(){\r\n\t\tvar pos=new Float32Array(3);\r\n\t\tpos[0]=this.getRandom(this._posRange[0]);\r\n\t\tpos[1]=this.getRandom(this._posRange[1]);\r\n\t\tpos[2]=this.getRandom(this._posRange[2]);\r\n\t\tvar v=new Float32Array(3);\r\n\t\tv[0]=0;\r\n\t\tv[1]=0;\r\n\t\tv[2]=0;\r\n\t\tthis._particleTemplate.addParticleArray(pos,v);\r\n\t}\r\n\r\n\t__proto.canvasEmit=function(){\r\n\t\tvar pos=new Float32Array(3);\r\n\t\tpos[0]=this.getRandom(this._posRange[0]);\r\n\t\tpos[1]=this.getRandom(this._posRange[1]);\r\n\t\tpos[2]=this.getRandom(this._posRange[2]);\r\n\t\tvar v=new Float32Array(3);\r\n\t\tv[0]=0;\r\n\t\tv[1]=0;\r\n\t\tv[2]=0;\r\n\t\tthis._particleTemplate.addParticleArray(pos,v);\r\n\t}\r\n\r\n\t__getset(0,__proto,'template',function(){\r\n\t\treturn this._particleTemplate;\r\n\t\t},function(template){\r\n\t\tthis._particleTemplate=template;\r\n\t\tif (!template){\r\n\t\t\tthis._emitFun=null;\r\n\t\t\tthis.setting=null;\r\n\t\t\tthis._posRange=null;\r\n\t\t};\r\n\t\tthis.setting=template.settings;\r\n\t\tthis._posRange=this.setting.positionVariance;\r\n\t\tif((this._particleTemplate instanceof laya.particle.ParticleTemplate2D )){\r\n\t\t\tthis._emitFun=this.webGLEmit;\r\n\t\t}else\r\n\t\tif((this._particleTemplate instanceof laya.particle.ParticleTemplateCanvas )){\r\n\t\t\tthis._canvasTemplate=template;\r\n\t\t\tthis._emitFun=this.canvasEmit;\r\n\t\t}\r\n\t});\r\n\r\n\treturn Emitter2D;\r\n})(EmitterBase)\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.particle.ParticleTemplateWebGL extends laya.particle.ParticleTemplateBase\r\nvar ParticleTemplateWebGL=(function(_super){\r\n\tfunction ParticleTemplateWebGL(parSetting){\r\n\t\tthis._vertices=null;\r\n\t\tthis._vertexBuffer=null;\r\n\t\tthis._indexBuffer=null;\r\n\t\tthis._floatCountPerVertex=29;\r\n\t\t//0~3为CornerTextureCoordinate,4~6为Position,7~9Velocity,10到13为StartColor,14到17为EndColor,18到20位SizeRotation，21到22位Radius,23到26位Radian，27为DurationAddScaleShaderValue,28为Time\r\n\t\tthis._firstActiveElement=0;\r\n\t\tthis._firstNewElement=0;\r\n\t\tthis._firstFreeElement=0;\r\n\t\tthis._firstRetiredElement=0;\r\n\t\tthis._currentTime=0;\r\n\t\tthis._drawCounter=0;\r\n\t\tParticleTemplateWebGL.__super.call(this);\r\n\t\tthis.settings=parSetting;\r\n\t}\r\n\r\n\t__class(ParticleTemplateWebGL,'laya.particle.ParticleTemplateWebGL',_super);\r\n\tvar __proto=ParticleTemplateWebGL.prototype;\r\n\t__proto.initialize=function(){\r\n\t\tthis._vertices=new Float32Array(this.settings.maxPartices *this._floatCountPerVertex *4);\r\n\t\tvar particleOffset=0;\r\n\t\tfor (var i=0;i < this.settings.maxPartices;i++){\r\n\t\t\tvar random=Math.random();\r\n\t\t\tvar cornerYSegement=this.settings.textureCount ? 1.0 / this.settings.textureCount :1.0;\r\n\t\t\tvar cornerY=NaN;\r\n\t\t\tfor (cornerY=0;cornerY < this.settings.textureCount;cornerY+=cornerYSegement){\r\n\t\t\t\tif (random < cornerY+cornerYSegement)\r\n\t\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\t\tparticleOffset=i *this._floatCountPerVertex *4;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *0+0]=-1;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *0+1]=-1;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *0+2]=0;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *0+3]=cornerY;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *1+0]=1;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *1+1]=-1;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *1+2]=1;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *1+3]=cornerY;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *2+0]=1;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *2+1]=1;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *2+2]=1;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *2+3]=cornerY+cornerYSegement;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *3+0]=-1;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *3+1]=1;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *3+2]=0;\r\n\t\t\tthis._vertices[particleOffset+this._floatCountPerVertex *3+3]=cornerY+cornerYSegement;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.loadContent=function(){}\r\n\t__proto.update=function(elapsedTime){\r\n\t\tthis._currentTime+=elapsedTime / 1000;\r\n\t\tthis.retireActiveParticles();\r\n\t\tthis.freeRetiredParticles();\r\n\t\tif (this._firstActiveElement==this._firstFreeElement)\r\n\t\t\tthis._currentTime=0;\r\n\t\tif (this._firstRetiredElement==this._firstActiveElement)\r\n\t\t\tthis._drawCounter=0;\r\n\t}\r\n\r\n\t__proto.retireActiveParticles=function(){\r\n\t\tvar epsilon=0.0001;\r\n\t\tvar particleDuration=this.settings.duration;\r\n\t\twhile (this._firstActiveElement !=this._firstNewElement){\r\n\t\t\tvar offset=this._firstActiveElement *this._floatCountPerVertex *4;\r\n\t\t\tvar index=offset+28;\r\n\t\t\tvar particleAge=this._currentTime-this._vertices[index];\r\n\t\t\tparticleAge *=(1.0+this._vertices[offset+27]);\r\n\t\t\tif (particleAge+epsilon < particleDuration)\r\n\t\t\t\tbreak ;\r\n\t\t\tthis._vertices[index]=this._drawCounter;\r\n\t\t\tthis._firstActiveElement++;\r\n\t\t\tif (this._firstActiveElement >=this.settings.maxPartices)\r\n\t\t\t\tthis._firstActiveElement=0;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.freeRetiredParticles=function(){\r\n\t\twhile (this._firstRetiredElement !=this._firstActiveElement){\r\n\t\t\tvar age=this._drawCounter-this._vertices[this._firstRetiredElement *this._floatCountPerVertex *4+28];\r\n\t\t\tif (age < 3)\r\n\t\t\t\tbreak ;\r\n\t\t\tthis._firstRetiredElement++;\r\n\t\t\tif (this._firstRetiredElement >=this.settings.maxPartices)\r\n\t\t\t\tthis._firstRetiredElement=0;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.addNewParticlesToVertexBuffer=function(){}\r\n\t__proto.addParticleArray=function(position,velocity){\r\n\t\tvar nextFreeParticle=this._firstFreeElement+1;\r\n\t\tif (nextFreeParticle >=this.settings.maxPartices)\r\n\t\t\tnextFreeParticle=0;\r\n\t\tif (nextFreeParticle===this._firstRetiredElement)\r\n\t\t\treturn;\r\n\t\tvar particleData=ParticleData.Create(this.settings,position,velocity,this._currentTime);\r\n\t\tvar startIndex=this._firstFreeElement *this._floatCountPerVertex *4;\r\n\t\tfor (var i=0;i < 4;i++){\r\n\t\t\tvar j=0,offset=0;\r\n\t\t\tfor (j=0,offset=4;j < 3;j++)\r\n\t\t\tthis._vertices[startIndex+i *this._floatCountPerVertex+offset+j]=particleData.position[j];\r\n\t\t\tfor (j=0,offset=7;j < 3;j++)\r\n\t\t\tthis._vertices[startIndex+i *this._floatCountPerVertex+offset+j]=particleData.velocity[j];\r\n\t\t\tfor (j=0,offset=10;j < 4;j++)\r\n\t\t\tthis._vertices[startIndex+i *this._floatCountPerVertex+offset+j]=particleData.startColor[j];\r\n\t\t\tfor (j=0,offset=14;j < 4;j++)\r\n\t\t\tthis._vertices[startIndex+i *this._floatCountPerVertex+offset+j]=particleData.endColor[j];\r\n\t\t\tfor (j=0,offset=18;j < 3;j++)\r\n\t\t\tthis._vertices[startIndex+i *this._floatCountPerVertex+offset+j]=particleData.sizeRotation[j];\r\n\t\t\tfor (j=0,offset=21;j < 2;j++)\r\n\t\t\tthis._vertices[startIndex+i *this._floatCountPerVertex+offset+j]=particleData.radius[j];\r\n\t\t\tfor (j=0,offset=23;j < 4;j++)\r\n\t\t\tthis._vertices[startIndex+i *this._floatCountPerVertex+offset+j]=particleData.radian[j];\r\n\t\t\tthis._vertices[startIndex+i *this._floatCountPerVertex+27]=particleData.durationAddScale;\r\n\t\t\tthis._vertices[startIndex+i *this._floatCountPerVertex+28]=particleData.time;\r\n\t\t}\r\n\t\tthis._firstFreeElement=nextFreeParticle;\r\n\t}\r\n\r\n\treturn ParticleTemplateWebGL;\r\n})(ParticleTemplateBase)\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.particle.ParticleTemplateCanvas extends laya.particle.ParticleTemplateBase\r\nvar ParticleTemplateCanvas=(function(_super){\r\n\tfunction ParticleTemplateCanvas(particleSetting){\r\n\t\t/**\r\n\t\t*是否处于可播放状态\r\n\t\t*/\r\n\t\tthis._ready=false;\r\n\t\t/**\r\n\t\t*贴图列表\r\n\t\t*/\r\n\t\tthis.textureList=[];\r\n\t\t/**\r\n\t\t*粒子列表\r\n\t\t*/\r\n\t\tthis.particleList=[];\r\n\t\t/**\r\n\t\t*贴图中心偏移x\r\n\t\t*/\r\n\t\tthis.pX=0;\r\n\t\t/**\r\n\t\t*贴图中心偏移y\r\n\t\t*/\r\n\t\tthis.pY=0;\r\n\t\t/**\r\n\t\t*当前活跃的粒子\r\n\t\t*/\r\n\t\tthis.activeParticles=[];\r\n\t\t/**\r\n\t\t*粒子pool\r\n\t\t*/\r\n\t\tthis.deadParticles=[];\r\n\t\t/**\r\n\t\t*粒子播放进度列表\r\n\t\t*/\r\n\t\tthis.iList=[];\r\n\t\t/**\r\n\t\t*粒子系统使用的最大粒子数\r\n\t\t*/\r\n\t\tthis._maxNumParticles=0;\r\n\t\t/**\r\n\t\t*纹理的宽度\r\n\t\t*/\r\n\t\tthis.textureWidth=NaN;\r\n\t\t/**\r\n\t\t*宽度倒数\r\n\t\t*/\r\n\t\tthis.dTextureWidth=NaN;\r\n\t\t/**\r\n\t\t*是否支持颜色变化\r\n\t\t*/\r\n\t\tthis.colorChange=true;\r\n\t\t/**\r\n\t\t*采样步长\r\n\t\t*/\r\n\t\tthis.step=1/60;\r\n\t\tthis.canvasShader=new CanvasShader();\r\n\t\tParticleTemplateCanvas.__super.call(this);\r\n\t\tthis.settings=particleSetting;\r\n\t\tthis._maxNumParticles=particleSetting.maxPartices;\r\n\t\tthis.texture=new Texture();\r\n\t\tthis.texture.on(/*laya.events.Event.LOADED*/\"loaded\",this,this._textureLoaded);\r\n\t\tthis.texture.load(particleSetting.textureName);\r\n\t}\r\n\r\n\t__class(ParticleTemplateCanvas,'laya.particle.ParticleTemplateCanvas',_super);\r\n\tvar __proto=ParticleTemplateCanvas.prototype;\r\n\t__proto._textureLoaded=function(e){\r\n\t\tthis.setTexture(this.texture);\r\n\t\tthis._ready=true;\r\n\t}\r\n\r\n\t__proto.clear=function(clearTexture){\r\n\t\t(clearTexture===void 0)&& (clearTexture=true);\r\n\t\tthis.deadParticles.length=0;\r\n\t\tthis.activeParticles.length=0;\r\n\t\tthis.textureList.length=0;\r\n\t}\r\n\r\n\t/**\r\n\t*设置纹理\r\n\t*@param texture\r\n\t*\r\n\t*/\r\n\t__proto.setTexture=function(texture){\r\n\t\tthis.texture=texture;\r\n\t\tthis.textureWidth=texture.width;\r\n\t\tthis.dTextureWidth=1/this.textureWidth;\r\n\t\tthis.pX=-texture.width*0.5;\r\n\t\tthis.pY=-texture.height*0.5;\r\n\t\tthis.textureList=ParticleTemplateCanvas.changeTexture(texture,this.textureList);\r\n\t\tthis.particleList.length=0;\r\n\t\tthis.deadParticles.length=0;\r\n\t\tthis.activeParticles.length=0;\r\n\t}\r\n\r\n\t/**\r\n\t*创建一个粒子数据\r\n\t*@return\r\n\t*\r\n\t*/\r\n\t__proto._createAParticleData=function(position,velocity){\r\n\t\tthis.canvasShader.u_EndVelocity=this.settings.endVelocity;\r\n\t\tthis.canvasShader.u_Gravity=this.settings.gravity;\r\n\t\tthis.canvasShader.u_Duration=this.settings.duration;\r\n\t\tvar particle;\r\n\t\tparticle=ParticleData.Create(this.settings,position,velocity,0);\r\n\t\tthis.canvasShader.a_Position=particle.position;\r\n\t\tthis.canvasShader.a_Velocity=particle.velocity;\r\n\t\tthis.canvasShader.a_StartColor=particle.startColor;\r\n\t\tthis.canvasShader.a_EndColor=particle.endColor;\r\n\t\tthis.canvasShader.a_SizeRotation=particle.sizeRotation;\r\n\t\tthis.canvasShader.a_Radius=particle.radius;\r\n\t\tthis.canvasShader.a_Radian=particle.radian;\r\n\t\tthis.canvasShader.a_AgeAddScale=particle.durationAddScale;\r\n\t\tthis.canvasShader.oSize=this.textureWidth;\r\n\t\tvar rst=new CMDParticle();\r\n\t\tvar i=0,len=this.settings.duration/(1+particle.durationAddScale);\r\n\t\tvar params=[];\r\n\t\tvar mStep=NaN;\r\n\t\tfor(i=0;i<len;i+=this.step){\r\n\t\t\tparams.push(this.canvasShader.getData(i));\r\n\t\t}\r\n\t\trst.id=this.particleList.length;\r\n\t\tthis.particleList.push(rst);\r\n\t\trst.setCmds(params);\r\n\t\treturn rst;\r\n\t}\r\n\r\n\t__proto.addParticleArray=function(position,velocity){\r\n\t\tif(!this._ready)return;\r\n\t\tvar tParticle;\r\n\t\tif(this.particleList.length<this._maxNumParticles){\r\n\t\t\ttParticle=this._createAParticleData(position,velocity);\r\n\t\t\tthis.iList[tParticle.id]=0;\r\n\t\t\tthis.activeParticles.push(tParticle);\r\n\t\t\t}else{\r\n\t\t\tif(this.deadParticles.length>0){\r\n\t\t\t\ttParticle=this.deadParticles.pop();\r\n\t\t\t\tthis.iList[tParticle.id]=0;\r\n\t\t\t\tthis.activeParticles.push(tParticle);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.advanceTime=function(passedTime){\r\n\t\t(passedTime===void 0)&& (passedTime=1);\r\n\t\tif(!this._ready)return;\r\n\t\tvar particleList=this.activeParticles;\r\n\t\tvar pool=this.deadParticles;\r\n\t\tvar i=0,len=particleList.length;\r\n\t\tvar tcmd;\r\n\t\tvar tI=0;\r\n\t\tvar iList=this.iList;\r\n\t\tfor(i=len-1;i>-1;i--){\r\n\t\t\ttcmd=particleList[i];\r\n\t\t\ttI=iList[tcmd.id];\r\n\t\t\tif(tI>=tcmd.maxIndex){\r\n\t\t\t\ttI=0;\r\n\t\t\t\tparticleList.splice(i,1);\r\n\t\t\t\tpool.push(tcmd);\r\n\t\t\t\t}else{\r\n\t\t\t\ttI+=1;\r\n\t\t\t}\r\n\t\t\tiList[tcmd.id]=tI;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.render=function(context,x,y){\r\n\t\tif(!this._ready)return;\r\n\t\tif(this.activeParticles.length<1)return;\r\n\t\tif (this.textureList.length < 2)return;\r\n\t\tif (this.settings.disableColor){\r\n\t\t\tthis.noColorRender(context,x,y);\r\n\t\t\t}else{\r\n\t\t\tthis.canvasRender(context,x,y);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.noColorRender=function(context,x,y){\r\n\t\tvar particleList=this.activeParticles;\r\n\t\tvar i=0,len=particleList.length;\r\n\t\tvar tcmd;\r\n\t\tvar tParam;\r\n\t\tvar tAlpha=NaN;\r\n\t\tvar px=this.pX,py=this.pY;\r\n\t\tvar pw=-px*2,ph=-py*2;\r\n\t\tvar tI=0;\r\n\t\tvar textureList=this.textureList;\r\n\t\tvar iList=this.iList;\r\n\t\tvar preAlpha=NaN;\r\n\t\tcontext.translate(x,y);\r\n\t\tpreAlpha=context.ctx.globalAlpha;\r\n\t\tfor(i=0;i<len;i++){\r\n\t\t\ttcmd=particleList[i];\r\n\t\t\ttI=iList[tcmd.id];\r\n\t\t\ttParam=tcmd.cmds[tI];\r\n\t\t\tif (!tParam)continue ;\r\n\t\t\tif ((tAlpha=tParam[1])<=0.01)continue ;\r\n\t\t\tcontext.setAlpha(preAlpha*tAlpha);\r\n\t\t\tcontext.drawTextureWithTransform(this.texture,px,py,pw,ph,tParam[2],1);\r\n\t\t}\r\n\t\tcontext.setAlpha(preAlpha);\r\n\t\tcontext.translate(-x,-y);\r\n\t}\r\n\r\n\t__proto.canvasRender=function(context,x,y){\r\n\t\tvar particleList=this.activeParticles;\r\n\t\tvar i=0,len=particleList.length;\r\n\t\tvar tcmd;\r\n\t\tvar tParam;\r\n\t\tvar tAlpha=NaN;\r\n\t\tvar px=this.pX,py=this.pY;\r\n\t\tvar pw=-px*2,ph=-py*2;\r\n\t\tvar tI=0;\r\n\t\tvar textureList=this.textureList;\r\n\t\tvar iList=this.iList;\r\n\t\tvar preAlpha=NaN;\r\n\t\tvar preB;\r\n\t\tcontext.translate(x,y);\r\n\t\tpreAlpha=context.ctx.globalAlpha;\r\n\t\tpreB=context.ctx.globalCompositeOperation;\r\n\t\tcontext.blendMode(\"lighter\");\r\n\t\tfor(i=0;i<len;i++){\r\n\t\t\ttcmd=particleList[i];\r\n\t\t\ttI=iList[tcmd.id];\r\n\t\t\ttParam=tcmd.cmds[tI];\r\n\t\t\tif (!tParam)continue ;\r\n\t\t\tif ((tAlpha=tParam[1])<=0.01)continue ;\r\n\t\t\tcontext.save();\r\n\t\t\tcontext.transformByMatrix(tParam[2]);\r\n\t\t\tif(tParam[3]>0.01){\r\n\t\t\t\tcontext.setAlpha(preAlpha*tParam[3]);\r\n\t\t\t\tcontext.drawTexture(textureList[0],px,py,pw,ph);\r\n\t\t\t}\r\n\t\t\tif(tParam[4]>0.01){\r\n\t\t\t\tcontext.setAlpha(preAlpha*tParam[4]);\r\n\t\t\t\tcontext.drawTexture(textureList[1],px,py,pw,ph);\r\n\t\t\t}\r\n\t\t\tif(tParam[5]>0.01){\r\n\t\t\t\tcontext.setAlpha(preAlpha*tParam[5]);\r\n\t\t\t\tcontext.drawTexture(textureList[2],px,py,pw,ph);\r\n\t\t\t}\r\n\t\t\tcontext.restore();\r\n\t\t}\r\n\t\tcontext.setAlpha(preAlpha);\r\n\t\tcontext.translate(-x,-y);\r\n\t\tcontext.blendMode(preB);\r\n\t}\r\n\r\n\tParticleTemplateCanvas.changeTexture=function(texture,rst,settings){\r\n\t\tif(!rst)rst=[];\r\n\t\trst.length=0;\r\n\t\tif (settings&&settings.disableColor){\r\n\t\t\trst.push(texture,texture,texture);\r\n\t\t\t}else{\r\n\t\t\tUtils.copyArray(rst,PicTool.getRGBPic(texture));\r\n\t\t}\r\n\t\treturn rst;\r\n\t}\r\n\r\n\treturn ParticleTemplateCanvas;\r\n})(ParticleTemplateBase)\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.particle.ParticleTemplate2D extends laya.particle.ParticleTemplateWebGL\r\nvar ParticleTemplate2D=(function(_super){\r\n\tfunction ParticleTemplate2D(parSetting){\r\n\t\tthis._vertexBuffer2D=null;\r\n\t\tthis._indexBuffer2D=null;\r\n\t\tthis.x=0;\r\n\t\tthis.y=0;\r\n\t\tthis._blendFn=null;\r\n\t\tthis._startTime=0;\r\n\t\tthis.sv=new ParticleShaderValue();\r\n\t\tParticleTemplate2D.__super.call(this,parSetting);\r\n\t\tvar _this=this;\r\n\t\tLaya.loader.load(this.settings.textureName,Handler.create(null,function(texture){\r\n\t\t\t(texture.bitmap).enableMerageInAtlas=false;\r\n\t\t\t_this.texture=texture;\r\n\t\t}));\r\n\t\tthis.sv.u_Duration=this.settings.duration;\r\n\t\tthis.sv.u_Gravity=this.settings.gravity;\r\n\t\tthis.sv.u_EndVelocity=this.settings.endVelocity;\r\n\t\tthis._blendFn=BlendMode.fns[parSetting.blendState];\r\n\t\tthis.initialize();\r\n\t\tthis._vertexBuffer=this._vertexBuffer2D=VertexBuffer2D.create(-1,/*laya.webgl.WebGLContext.DYNAMIC_DRAW*/0x88E8);\r\n\t\tthis._indexBuffer=this._indexBuffer2D=IndexBuffer2D.create(/*laya.webgl.WebGLContext.STATIC_DRAW*/0x88E4);\r\n\t\tthis.loadContent();\r\n\t}\r\n\r\n\t__class(ParticleTemplate2D,'laya.particle.ParticleTemplate2D',_super);\r\n\tvar __proto=ParticleTemplate2D.prototype;\r\n\tLaya.imps(__proto,{\"laya.webgl.submit.ISubmit\":true})\r\n\t__proto.getRenderType=function(){return-111}\r\n\t__proto.releaseRender=function(){}\r\n\t__proto.addParticleArray=function(position,velocity){\r\n\t\tposition[0]+=this.x;\r\n\t\tposition[1]+=this.y;\r\n\t\t_super.prototype.addParticleArray.call(this,position,velocity);\r\n\t}\r\n\r\n\t__proto.loadContent=function(){\r\n\t\tvar indexes=new Uint16Array(this.settings.maxPartices *6);\r\n\t\tfor (var i=0;i < this.settings.maxPartices;i++){\r\n\t\t\tindexes[i *6+0]=(i *4+0);\r\n\t\t\tindexes[i *6+1]=(i *4+1);\r\n\t\t\tindexes[i *6+2]=(i *4+2);\r\n\t\t\tindexes[i *6+3]=(i *4+0);\r\n\t\t\tindexes[i *6+4]=(i *4+2);\r\n\t\t\tindexes[i *6+5]=(i *4+3);\r\n\t\t}\r\n\t\tthis._indexBuffer2D.clear();\r\n\t\tthis._indexBuffer2D.append(indexes);\r\n\t\tthis._indexBuffer2D.upload();\r\n\t}\r\n\r\n\t__proto.addNewParticlesToVertexBuffer=function(){\r\n\t\tthis._vertexBuffer2D.clear();\r\n\t\tthis._vertexBuffer2D.append(this._vertices);\r\n\t\tvar start=0;\r\n\t\tif (this._firstNewElement < this._firstFreeElement){\r\n\t\t\tstart=this._firstNewElement *4 *this._floatCountPerVertex *4;\r\n\t\t\tthis._vertexBuffer2D.subUpload(start,start,start+(this._firstFreeElement-this._firstNewElement)*4 *this._floatCountPerVertex *4);\r\n\t\t\t}else {\r\n\t\t\tstart=this._firstNewElement *4 *this._floatCountPerVertex *4;\r\n\t\t\tthis._vertexBuffer2D.subUpload(start,start,start+(this.settings.maxPartices-this._firstNewElement)*4 *this._floatCountPerVertex *4);\r\n\t\t\tif (this._firstFreeElement > 0){\r\n\t\t\t\tthis._vertexBuffer2D.setNeedUpload();\r\n\t\t\t\tthis._vertexBuffer2D.subUpload(0,0,this._firstFreeElement *4 *this._floatCountPerVertex *4);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._firstNewElement=this._firstFreeElement;\r\n\t}\r\n\r\n\t__proto.renderSubmit=function(){\r\n\t\tif (this.texture&&this.texture.loaded){\r\n\t\t\tthis.update(Laya.timer.delta);\r\n\t\t\tthis.sv.u_CurrentTime=this._currentTime;\r\n\t\t\tif (this._firstNewElement !=this._firstFreeElement){\r\n\t\t\t\tthis.addNewParticlesToVertexBuffer();\r\n\t\t\t}\r\n\t\t\tthis.blend();\r\n\t\t\tif (this._firstActiveElement !=this._firstFreeElement){\r\n\t\t\t\tvar gl=WebGL.mainContext;\r\n\t\t\t\tthis._vertexBuffer2D.bind(this._indexBuffer2D);\r\n\t\t\t\tthis.sv.u_texture=this.texture.source;\r\n\t\t\t\tthis.sv.upload();\r\n\t\t\t\tif (this._firstActiveElement < this._firstFreeElement){\r\n\t\t\t\t\tWebGL.mainContext.drawElements(/*laya.webgl.WebGLContext.TRIANGLES*/0x0004,(this._firstFreeElement-this._firstActiveElement)*6,/*laya.webgl.WebGLContext.UNSIGNED_SHORT*/0x1403,this._firstActiveElement *6 *2);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tWebGL.mainContext.drawElements(/*laya.webgl.WebGLContext.TRIANGLES*/0x0004,(this.settings.maxPartices-this._firstActiveElement)*6,/*laya.webgl.WebGLContext.UNSIGNED_SHORT*/0x1403,this._firstActiveElement *6 *2);\r\n\t\t\t\t\tif (this._firstFreeElement > 0)\r\n\t\t\t\t\t\tWebGL.mainContext.drawElements(/*laya.webgl.WebGLContext.TRIANGLES*/0x0004,this._firstFreeElement *6,/*laya.webgl.WebGLContext.UNSIGNED_SHORT*/0x1403,0);\r\n\t\t\t\t}\r\n\t\t\t\tStat.drawCall++;\r\n\t\t\t}\r\n\t\t\tthis._drawCounter++;\r\n\t\t}\r\n\t\treturn 1;\r\n\t}\r\n\r\n\t__proto.blend=function(){\r\n\t\tif (BlendMode.activeBlendFunction!==this._blendFn){\r\n\t\t\tvar gl=WebGL.mainContext;\r\n\t\t\tgl.enable(/*laya.webgl.WebGLContext.BLEND*/0x0BE2);\r\n\t\t\tthis._blendFn(gl);\r\n\t\t\tBlendMode.activeBlendFunction=this._blendFn;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.dispose=function(){\r\n\t\tthis._vertexBuffer2D.dispose();\r\n\t\tthis._indexBuffer2D.dispose();\r\n\t}\r\n\r\n\tParticleTemplate2D.activeBlendType=-1;\r\n\treturn ParticleTemplate2D;\r\n})(ParticleTemplateWebGL)\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.particle.shader.value.ParticleShaderValue extends laya.webgl.shader.d2.value.Value2D\r\nvar ParticleShaderValue=(function(_super){\r\n\tfunction ParticleShaderValue(){\r\n\t\tthis.a_CornerTextureCoordinate=[4,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,116,0];\r\n\t\tthis.a_Position=[3,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,116,16];\r\n\t\tthis.a_Velocity=[3,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,116,28];\r\n\t\tthis.a_StartColor=[4,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,116,40];\r\n\t\tthis.a_EndColor=[4,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,116,56];\r\n\t\tthis.a_SizeRotation=[3,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,116,72];\r\n\t\tthis.a_Radius=[2,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,116,84];\r\n\t\tthis.a_Radian=[4,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,116,92];\r\n\t\tthis.a_AgeAddScale=[1,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,116,108];\r\n\t\tthis.a_Time=[1,/*laya.webgl.WebGLContext.FLOAT*/0x1406,false,116,112];\r\n\t\tthis.u_CurrentTime=NaN;\r\n\t\tthis.u_Duration=NaN;\r\n\t\tthis.u_Gravity=null;\r\n\t\t//v3\r\n\t\tthis.u_EndVelocity=NaN;\r\n\t\tthis.u_texture=null;\r\n\t\tParticleShaderValue.__super.call(this,0,0);\r\n\t}\r\n\r\n\t__class(ParticleShaderValue,'laya.particle.shader.value.ParticleShaderValue',_super);\r\n\tvar __proto=ParticleShaderValue.prototype;\r\n\t__proto.upload=function(){\r\n\t\tthis.refresh();\r\n\t\tParticleShaderValue.pShader.upload(this);\r\n\t}\r\n\r\n\t__static(ParticleShaderValue,\r\n\t['pShader',function(){return this.pShader=new ParticleShader();}\r\n\t]);\r\n\treturn ParticleShaderValue;\r\n})(Value2D)\r\n\r\n\r\n/**\r\n*<code>Particle2D</code> 类是2D粒子播放类\r\n*\r\n*/\r\n//class laya.particle.Particle2D extends laya.display.Sprite\r\nvar Particle2D=(function(_super){\r\n\tfunction Particle2D(setting){\r\n\t\t/**@private */\r\n\t\tthis._matrix4=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];\r\n\t\t/**@private */\r\n\t\tthis._particleTemplate=null;\r\n\t\t/**@private */\r\n\t\tthis._canvasTemplate=null;\r\n\t\t/**@private */\r\n\t\tthis._emitter=null;\r\n\t\t/**是否自动播放*/\r\n\t\tthis.autoPlay=true;\r\n\t\tParticle2D.__super.call(this);\r\n\t\tif (setting)this.setParticleSetting(setting);\r\n\t}\r\n\r\n\t__class(Particle2D,'laya.particle.Particle2D',_super);\r\n\tvar __proto=Particle2D.prototype;\r\n\t/**\r\n\t*加载粒子文件\r\n\t*@param url 粒子文件地址\r\n\t*/\r\n\t__proto.load=function(url){\r\n\t\tLaya.loader.load(url,Handler.create(this,this.setParticleSetting),null,/*laya.net.Loader.JSON*/\"json\");\r\n\t}\r\n\r\n\t/**\r\n\t*设置粒子配置数据\r\n\t*@param settings 粒子配置数据\r\n\t*/\r\n\t__proto.setParticleSetting=function(setting){\r\n\t\tvar _$this=this;\r\n\t\tif (!setting)return this.stop();\r\n\t\tParticleSetting.checkSetting(setting);\r\n\t\tif(/*__JS__ */!window.ConchParticleTemplate2D||Render.isWebGL)this.customRenderEnable=true;\r\n\t\tif (Render.isWebGL){\r\n\t\t\tthis._particleTemplate=new ParticleTemplate2D(setting);\r\n\t\t\tthis.graphics._saveToCmd(Render.context._drawParticle,[this._particleTemplate]);\r\n\t\t}\r\n\t\telse if (Render.isConchApp&&/*__JS__ */window.ConchParticleTemplate2D){\r\n\t\t\tthis._particleTemplate=/*__JS__ */new ConchParticleTemplate2D();\r\n\t\t\tvar _this=this;\r\n\t\t\tLaya.loader.load(setting.textureName,Handler.create(null,function(texture){\r\n\t\t\t\t/*__JS__ */_this._particleTemplate.texture=texture;\r\n\t\t\t\t_this._particleTemplate.settings=setting;\r\n\t\t\t\tif (Render.isConchNode){\r\n\t\t\t\t\t/*__JS__ */_this.graphics.drawParticle(_this._particleTemplate);\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\t_this.graphics._saveToCmd(Render.context._drawParticle,[_$this._particleTemplate]);\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t\t\tthis._emitter={start:function (){}};\r\n\t\t\t/*__JS__ */this.play=this._particleTemplate.play.bind(this._particleTemplate);\r\n\t\t\t/*__JS__ */this.stop=this._particleTemplate.stop.bind(this._particleTemplate);\r\n\t\t\tif (this.autoPlay)this.play();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._particleTemplate=this._canvasTemplate=new ParticleTemplateCanvas(setting);\r\n\t\t}\r\n\t\tif (!this._emitter){\r\n\t\t\tthis._emitter=new Emitter2D(this._particleTemplate);\r\n\t\t\t}else {\r\n\t\t\t(this._emitter).template=this._particleTemplate;\r\n\t\t}\r\n\t\tif (this.autoPlay){\r\n\t\t\tthis.emitter.start();\r\n\t\t\tthis.play();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*播放\r\n\t*/\r\n\t__proto.play=function(){\r\n\t\tthis.timer.frameLoop(1,this,this._loop);\r\n\t}\r\n\r\n\t/**\r\n\t*停止\r\n\t*/\r\n\t__proto.stop=function(){\r\n\t\tthis.timer.clear(this,this._loop);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._loop=function(){\r\n\t\tthis.advanceTime(1 / 60);\r\n\t}\r\n\r\n\t/**\r\n\t*时钟前进\r\n\t*@param passedTime 时钟前进时间\r\n\t*/\r\n\t__proto.advanceTime=function(passedTime){\r\n\t\t(passedTime===void 0)&& (passedTime=1);\r\n\t\tif (this._canvasTemplate){\r\n\t\t\tthis._canvasTemplate.advanceTime(passedTime);\r\n\t\t}\r\n\t\tif (this._emitter){\r\n\t\t\tthis._emitter.advanceTime(passedTime);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.customRender=function(context,x,y){\r\n\t\tif (Render.isWebGL){\r\n\t\t\tthis._matrix4[0]=context.ctx._curMat.a;\r\n\t\t\tthis._matrix4[1]=context.ctx._curMat.b;\r\n\t\t\tthis._matrix4[4]=context.ctx._curMat.c;\r\n\t\t\tthis._matrix4[5]=context.ctx._curMat.d;\r\n\t\t\tthis._matrix4[12]=context.ctx._curMat.tx;\r\n\t\t\tthis._matrix4[13]=context.ctx._curMat.ty;\r\n\t\t\tvar sv=(this._particleTemplate).sv;\r\n\t\t\tsv.u_mmat=this._matrix4;\r\n\t\t}\r\n\t\tif (this._canvasTemplate){\r\n\t\t\tthis._canvasTemplate.render(context,x,y);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tif ((this._particleTemplate instanceof laya.particle.ParticleTemplate2D ))\r\n\t\t\t(this._particleTemplate).dispose();\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t}\r\n\r\n\t/**\r\n\t*设置 粒子文件地址\r\n\t*@param path 粒子文件地址\r\n\t*/\r\n\t__getset(0,__proto,'url',null,function(url){\r\n\t\tthis.load(url);\r\n\t});\r\n\r\n\t/**\r\n\t*获取粒子发射器\r\n\t*/\r\n\t__getset(0,__proto,'emitter',function(){\r\n\t\treturn this._emitter;\r\n\t});\r\n\r\n\treturn Particle2D;\r\n})(Sprite)\r\n\r\n\r\n/**\r\n*@private\r\n*/\r\n//class laya.particle.shader.ParticleShader extends laya.webgl.shader.Shader\r\nvar ParticleShader=(function(_super){\r\n\tfunction ParticleShader(){\r\n\t\tParticleShader.__super.call(this,ParticleShader.vs,ParticleShader.ps,\"ParticleShader\");\r\n\t}\r\n\r\n\t__class(ParticleShader,'laya.particle.shader.ParticleShader',_super);\r\n\t__static(ParticleShader,\r\n\t['vs',function(){return this.vs=\"attribute vec4 a_CornerTextureCoordinate;\\nattribute vec3 a_Position;\\nattribute vec3 a_Velocity;\\nattribute vec4 a_StartColor;\\nattribute vec4 a_EndColor;\\nattribute vec3 a_SizeRotation;\\nattribute vec2 a_Radius;\\nattribute vec4 a_Radian;\\nattribute float a_AgeAddScale;\\nattribute float a_Time;\\n\\nvarying vec4 v_Color;\\nvarying vec2 v_TextureCoordinate;\\n\\nuniform float u_CurrentTime;\\nuniform float u_Duration;\\nuniform float u_EndVelocity;\\nuniform vec3 u_Gravity;\\n\\n#ifdef PARTICLE3D\\n uniform mat4 u_WorldMat;\\n uniform mat4 u_View;\\n uniform mat4 u_Projection;\\n uniform vec2 u_ViewportScale;\\n#else\\n uniform vec2 size;\\n uniform mat4 mmat;\\n uniform mat4 u_mmat;\\n#endif\\n\\nvec4 ComputeParticlePosition(in vec3 position, in vec3 velocity,in float age,in float normalizedAge)\\n{\\n\\n   float startVelocity = length(velocity);//起始标量速度\\n   float endVelocity = startVelocity * u_EndVelocity;//结束标量速度\\n\\n   float velocityIntegral = startVelocity * normalizedAge +(endVelocity - startVelocity) * normalizedAge *normalizedAge/2.0;//计算当前速度的标量（单位空间），vt=v0*t+(1/2)*a*(t^2)\\n   \\n   vec3 addPosition = normalize(velocity) * velocityIntegral * u_Duration;//计算受自身速度影响的位置，转换标量到矢量    \\n   addPosition += u_Gravity * age * normalizedAge;//计算受重力影响的位置\\n   \\n   float radius=mix(a_Radius.x, a_Radius.y, normalizedAge); //计算粒子受半径和角度影响（无需计算角度和半径时，可用宏定义优化屏蔽此计算）\\n   float radianHorizontal =mix(a_Radian.x,a_Radian.z,normalizedAge);\\n   float radianVertical =mix(a_Radian.y,a_Radian.w,normalizedAge);\\n   \\n   float r =cos(radianVertical)* radius;\\n   addPosition.y += sin(radianVertical) * radius;\\n\t\\n   addPosition.x += cos(radianHorizontal) *r;\\n   addPosition.z += sin(radianHorizontal) *r;\\n  \\n   #ifdef PARTICLE3D\\n   position+=addPosition;\\n    return  u_Projection*u_View*u_WorldMat*(vec4(position, 1.0));\\n   #else\\n   addPosition.y=-addPosition.y;//2D粒子位置更新需要取负，2D粒子坐标系Y轴正向朝上\\n   position+=addPosition;\\n    return  vec4(position,1.0);\\n   #endif\\n}\\n\\nfloat ComputeParticleSize(in float startSize,in float endSize, in float normalizedAge)\\n{    \\n    float size = mix(startSize, endSize, normalizedAge);\\n    \\n\t#ifdef PARTICLE3D\\n    //Project the size into screen coordinates.\\n     return size * u_Projection[1][1];\\n\t#else\\n\t return size;\\n\t#endif\\n}\\n\\nmat2 ComputeParticleRotation(in float rot,in float age)\\n{    \\n    float rotation =rot * age;\\n    //计算2x2旋转矩阵.\\n    float c = cos(rotation);\\n    float s = sin(rotation);\\n    return mat2(c, -s, s, c);\\n}\\n\\nvec4 ComputeParticleColor(in vec4 startColor,in vec4 endColor,in float normalizedAge)\\n{\\n\tvec4 color=mix(startColor,endColor,normalizedAge);\\n    //硬编码设置，使粒子淡入很快，淡出很慢,6.7的缩放因子把置归一在0到1之间，可以谷歌x*(1-x)*(1-x)*6.7的制图表\\n    color.a *= normalizedAge * (1.0-normalizedAge) * (1.0-normalizedAge) * 6.7;\\n   \\n    return color;\\n}\\n\\nvoid main()\\n{\\n   float age = u_CurrentTime - a_Time;\\n   age *= 1.0 + a_AgeAddScale;\\n   float normalizedAge = clamp(age / u_Duration,0.0,1.0);\\n   gl_Position = ComputeParticlePosition(a_Position, a_Velocity, age, normalizedAge);//计算粒子位置\\n   float pSize = ComputeParticleSize(a_SizeRotation.x,a_SizeRotation.y, normalizedAge);\\n   mat2 rotation = ComputeParticleRotation(a_SizeRotation.z, age);\\n\t\\n   #ifdef PARTICLE3D\\n\tgl_Position.xy += (rotation*a_CornerTextureCoordinate.xy) * pSize * u_ViewportScale;\\n   #else\\n    mat4 mat=u_mmat*mmat;\\n    gl_Position=vec4((mat*gl_Position).xy,0.0,1.0);\\n\tgl_Position.xy += (rotation*a_CornerTextureCoordinate.xy) * pSize*vec2(mat[0][0],mat[1][1]);\\n    gl_Position=vec4((gl_Position.x/size.x-0.5)*2.0,(0.5-gl_Position.y/size.y)*2.0,0.0,1.0);\\n   #endif\\n   \\n   v_Color = ComputeParticleColor(a_StartColor,a_EndColor, normalizedAge);\\n   v_TextureCoordinate =a_CornerTextureCoordinate.zw;\\n}\\n\\n\";},'ps',function(){return this.ps=\"#ifdef FSHIGHPRECISION\\nprecision highp float;\\n#else\\nprecision mediump float;\\n#endif\\n\\nvarying vec4 v_Color;\\nvarying vec2 v_TextureCoordinate;\\nuniform sampler2D u_texture;\\n\\nvoid main()\\n{\t\\n\tgl_FragColor=texture2D(u_texture,v_TextureCoordinate)*v_Color;\\n\tgl_FragColor.xyz *= v_Color.w;\\n}\";}\r\n\t]);\r\n\treturn ParticleShader;\r\n})(Shader)\r\n\r\n\r\n\r\n})(window,document,Laya);\r\n\r\nif (typeof define === 'function' && define.amd){\r\n\tdefine('laya.core', ['require', \"exports\"], function(require, exports) {\r\n        'use strict';\r\n        Object.defineProperty(exports, '__esModule', { value: true });\r\n        for (var i in Laya) {\r\n\t\t\tvar o = Laya[i];\r\n            o && o.__isclass && (exports[i] = o);\r\n        }\r\n    });\r\n}","\r\n(function(window,document,Laya){\r\n\tvar __un=Laya.un,__uns=Laya.uns,__static=Laya.static,__class=Laya.class,__getset=Laya.getset,__newvec=Laya.__newvec;\r\n\r\n\tvar Browser=laya.utils.Browser,HTMLCanvas=laya.resource.HTMLCanvas,Handler=laya.utils.Handler,Loader=laya.net.Loader;\r\n\tvar Point=laya.maths.Point,Rectangle=laya.maths.Rectangle,Render=laya.renders.Render,RenderContext=laya.renders.RenderContext;\r\n\tvar Sprite=laya.display.Sprite,Texture=laya.resource.Texture;\r\n/**\r\n*tiledMap是整个地图的核心\r\n*地图以层级来划分地图（例如：地表层，植被层，建筑层）\r\n*每层又以分块（GridSprite)来处理显示对象，只显示在视口区域的区\r\n*每块又包括N*N个格子（tile)\r\n*格子类型又分为动画格子跟图片格子两种\r\n*@author ...\r\n*/\r\n//class laya.map.TiledMap\r\nvar TiledMap=(function(){\r\n\tvar GRect,TileMapAniData,TileSet;\r\n\tfunction TiledMap(){\r\n\t\t//json数据\r\n\t\tthis._jsonData=null;\r\n\t\t//存放地图中用到的所有子纹理数据\r\n\t\tthis._tileTexSetArr=[];\r\n\t\t//主纹理数据，主要在释放纹理资源时使用\r\n\t\tthis._texArray=[];\r\n\t\t//地图信息中的一些基本数据\r\n\t\tthis._x=0;\r\n\t\t//地图的坐标\r\n\t\tthis._y=0;\r\n\t\t//_height=_mapTileH *_mapH\r\n\t\tthis._width=0;\r\n\t\t//地图的宽度\r\n\t\tthis._height=0;\r\n\t\t//地图的高度\r\n\t\tthis._mapW=0;\r\n\t\t//地图的横向格子数\r\n\t\tthis._mapH=0;\r\n\t\t//地图的竖向格子数\r\n\t\tthis._mapTileW=0;\r\n\t\t//tile的宽度\r\n\t\tthis._mapTileH=0;\r\n\t\t//地图的显示对象\r\n\t\tthis._mapSprite=null;\r\n\t\t//地图的显示对象\r\n\t\tthis._layerArray=[];\r\n\t\t//这里保存所有的MapLayer对象\r\n\t\tthis._renderLayerArray=[];\r\n\t\t//这里保存需要渲染的MapLayer对象\r\n\t\tthis._gridArray=[];\r\n\t\t//地图块相关的\r\n\t\tthis._showGridKey=false;\r\n\t\t//是否显示块边界线（用来调试用）\r\n\t\tthis._totalGridNum=0;\r\n\t\t//一层中的GridSprite的总数\r\n\t\tthis._gridW=0;\r\n\t\t//地图的横向块数\r\n\t\tthis._gridH=0;\r\n\t\t//地图的坚向块数\r\n\t\tthis._gridWidth=450;\r\n\t\t//块的默认宽度\r\n\t\tthis._gridHeight=450;\r\n\t\t//块的默认高度\r\n\t\tthis._jsonLoader=null;\r\n\t\t//用来加载JSON文件用的LOADER\r\n\t\tthis._loader=null;\r\n\t\t//用来加载纹理数据用的LOADER\r\n\t\tthis._tileSetArray=[];\r\n\t\t//用来存放还需要哪些儿纹理等待加载\r\n\t\tthis._currTileSet=null;\r\n\t\t//正在加载的纹理需要的数据源\r\n\t\tthis._completeHandler=null;\r\n\t\t//上次视口显示的块范围\r\n\t\tthis._index=0;\r\n\t\tthis._animationDic={};\r\n\t\t//需要创建的动画数据\r\n\t\tthis._properties=null;\r\n\t\t//当前地图的自定义属性\r\n\t\tthis._tileProperties={};\r\n\t\t//图块属性\r\n\t\tthis._tileProperties2={};\r\n\t\t//默认的地图类型（具体要看JSON文件）\r\n\t\tthis._orientation=\"orthogonal\";\r\n\t\t//默认的tile渲染顺序（具体要看JSON文件）\r\n\t\tthis._renderOrder=\"right-down\";\r\n\t\t//调试用的颜色组合\r\n\t\tthis._colorArray=[\"FF\",\"00\",\"33\",\"66\"];\r\n\t\t//缩放相关的操作\r\n\t\tthis._scale=1;\r\n\t\tthis._pivotScaleX=0.5;\r\n\t\tthis._pivotScaleY=0.5;\r\n\t\tthis._centerX=0;\r\n\t\tthis._centerY=0;\r\n\t\t/**@private */\r\n\t\tthis._viewPortX=0;\r\n\t\t/**@private */\r\n\t\tthis._viewPortY=0;\r\n\t\tthis._viewPortWidth=0;\r\n\t\tthis._viewPortHeight=0;\r\n\t\t//是否开启线性取样\r\n\t\tthis._enableLinear=true;\r\n\t\t//资源的相对路径\r\n\t\tthis._resPath=null;\r\n\t\tthis._pathArray=null;\r\n\t\t//把地图限制在显示区域\r\n\t\tthis._limitRange=false;\r\n\t\t/**\r\n\t\t*快速更新模式是否不可用\r\n\t\t*/\r\n\t\tthis._fastDirty=true;\r\n\t\t/**\r\n\t\t*是否自动缓存没有动画的地块\r\n\t\t*/\r\n\t\tthis.autoCache=true;\r\n\t\t/**\r\n\t\t*自动缓存类型,地图较大时建议使用normal\r\n\t\t*/\r\n\t\tthis.autoCacheType=\"normal\";\r\n\t\t/**\r\n\t\t*是否合并图层,开启合并图层时，图层属性内可添加layer属性，运行时将会将相邻的layer属性相同的图层进行合并以提高性能\r\n\t\t*/\r\n\t\tthis.enableMergeLayer=false;\r\n\t\t/**\r\n\t\t*是否移除被覆盖的格子,地块可添加type属性，type不为0时表示不透明，被不透明地块遮挡的地块将会被剔除以提高性能\r\n\t\t*/\r\n\t\tthis.removeCoveredTile=false;\r\n\t\t/**\r\n\t\t*是否显示大格子里显示的贴图数量\r\n\t\t*/\r\n\t\tthis.showGridTextureCount=false;\r\n\t\t/**\r\n\t\t*是否调整地块边缘消除缩放导致的缝隙\r\n\t\t*/\r\n\t\tthis.antiCrack=true;\r\n\t\t/**\r\n\t\t*是否在加载完成之后cache所有大格子\r\n\t\t*/\r\n\t\tthis.cacheAllAfterInit=false;\r\n\t\tthis._texutreStartDic={};\r\n\t\tthis._rect=new Rectangle();\r\n\t\tthis._paddingRect=new Rectangle();\r\n\t\tthis._mapRect=new GRect();\r\n\t\tthis._mapLogicRect=new GRect();\r\n\t\tthis._mapLastRect=new GRect();\r\n\t\tthis._mapSprite=new Sprite();\r\n\t}\r\n\r\n\t__class(TiledMap,'laya.map.TiledMap');\r\n\tvar __proto=TiledMap.prototype;\r\n\t/**\r\n\t*创建地图\r\n\t*@param mapName JSON文件名字\r\n\t*@param viewRect 视口区域\r\n\t*@param completeHandler 地图创建完成的回调函数\r\n\t*@param viewRectPadding 视口扩充区域，把视口区域上、下、左、右扩充一下，防止视口移动时的穿帮\r\n\t*@param gridSize grid大小\r\n\t*@param enableLinear 是否开启线性取样（为false时，可以解决地图黑线的问题，但画质会锐化）\r\n\t*@param limitRange 把地图限制在显示区域\r\n\t*/\r\n\t__proto.createMap=function(mapName,viewRect,completeHandler,viewRectPadding,gridSize,enableLinear,limitRange){\r\n\t\t(enableLinear===void 0)&& (enableLinear=true);\r\n\t\t(limitRange===void 0)&& (limitRange=false);\r\n\t\tthis._enableLinear=enableLinear;\r\n\t\tthis._limitRange=limitRange;\r\n\t\tthis._rect.x=viewRect.x;\r\n\t\tthis._rect.y=viewRect.y;\r\n\t\tthis._rect.width=viewRect.width;\r\n\t\tthis._rect.height=viewRect.height;\r\n\t\tthis._viewPortWidth=viewRect.width / this._scale;\r\n\t\tthis._viewPortHeight=viewRect.height / this._scale;\r\n\t\tthis._completeHandler=completeHandler;\r\n\t\tif (viewRectPadding){\r\n\t\t\tthis._paddingRect.copyFrom(viewRectPadding);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._paddingRect.setTo(0,0,0,0);\r\n\t\t}\r\n\t\tif (gridSize){\r\n\t\t\tthis._gridWidth=gridSize.x;\r\n\t\t\tthis._gridHeight=gridSize.y;\r\n\t\t};\r\n\t\tvar tIndex=mapName.lastIndexOf(\"/\");\r\n\t\tif (tIndex >-1){\r\n\t\t\tthis._resPath=mapName.substr(0,tIndex);\r\n\t\t\tthis._pathArray=this._resPath.split(\"/\");\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._resPath=\"\";\r\n\t\t\tthis._pathArray=[];\r\n\t\t}\r\n\t\tthis._jsonLoader=new Loader();\r\n\t\tthis._jsonLoader.once(\"complete\",this,this.onJsonComplete);\r\n\t\tthis._jsonLoader.load(mapName,/*laya.net.Loader.JSON*/\"json\",false);\r\n\t}\r\n\r\n\t/**\r\n\t*json文件读取成功后，解析里面的纹理数据，进行加载\r\n\t*@param e JSON数据\r\n\t*/\r\n\t__proto.onJsonComplete=function(e){\r\n\t\tvar tJsonData=this._jsonData=e;\r\n\t\tthis._properties=tJsonData.properties;\r\n\t\tthis._orientation=tJsonData.orientation;\r\n\t\tthis._renderOrder=tJsonData.renderorder;\r\n\t\tthis._mapW=tJsonData.width;\r\n\t\tthis._mapH=tJsonData.height;\r\n\t\tthis._mapTileW=tJsonData.tilewidth;\r\n\t\tthis._mapTileH=tJsonData.tileheight;\r\n\t\tthis._width=this._mapTileW *this._mapW;\r\n\t\tthis._height=this._mapTileH *this._mapH;\r\n\t\tif (this._orientation==\"staggered\"){\r\n\t\t\tthis._height=(0.5+this._mapH *0.5)*this._mapTileH;\r\n\t\t}\r\n\t\tthis._mapLastRect.top=this._mapLastRect.bottom=this._mapLastRect.left=this._mapLastRect.right=-1;\r\n\t\tvar tArray=tJsonData.tilesets;\r\n\t\tvar tileset;\r\n\t\tvar tTileSet;\r\n\t\tvar i=0;\r\n\t\tfor (i=0;i < tArray.length;i++){\r\n\t\t\ttileset=tArray[i];\r\n\t\t\ttTileSet=new TileSet();\r\n\t\t\ttTileSet.init(tileset);\r\n\t\t\tif (tTileSet.properties && tTileSet.properties.ignore)continue ;\r\n\t\t\tthis._tileProperties[i]=tTileSet.tileproperties;\r\n\t\t\tthis.addTileProperties(tTileSet.tileproperties);\r\n\t\t\tthis._tileSetArray.push(tTileSet);\r\n\t\t\tvar tTiles=tileset.tiles;\r\n\t\t\tif (tTiles){\r\n\t\t\t\tfor (var p in tTiles){\r\n\t\t\t\t\tvar tAnimation=tTiles[p].animation;\r\n\t\t\t\t\tif (tAnimation){\r\n\t\t\t\t\t\tvar tAniData=new TileMapAniData();\r\n\t\t\t\t\t\tthis._animationDic[p]=tAniData;\r\n\t\t\t\t\t\ttAniData.image=tileset.image;\r\n\t\t\t\t\t\tfor (var j=0;j < tAnimation.length;j++){\r\n\t\t\t\t\t\t\tvar tAnimationItem=tAnimation[j];\r\n\t\t\t\t\t\t\ttAniData.mAniIdArray.push(tAnimationItem.tileid);\r\n\t\t\t\t\t\t\ttAniData.mDurationTimeArray.push(tAnimationItem.duration);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._tileTexSetArr.push(null);\r\n\t\tif (this._tileSetArray.length > 0){\r\n\t\t\ttTileSet=this._currTileSet=this._tileSetArray.shift();\r\n\t\t\tthis._loader=new Loader();\r\n\t\t\tthis._loader.once(\"complete\",this,this.onTextureComplete);\r\n\t\t\tvar tPath=this.mergePath(this._resPath,tTileSet.image);\r\n\t\t\tthis._loader.load(tPath,/*laya.net.Loader.IMAGE*/\"image\",false);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*合并路径\r\n\t*@param resPath\r\n\t*@param relativePath\r\n\t*@return\r\n\t*/\r\n\t__proto.mergePath=function(resPath,relativePath){\r\n\t\tvar tResultPath=\"\";\r\n\t\tvar tImageArray=relativePath.split(\"/\");\r\n\t\tvar tParentPathNum=0;\r\n\t\tvar i=0;\r\n\t\tfor (i=tImageArray.length-1;i >=0;i--){\r\n\t\t\tif (tImageArray[i]==\"..\"){\r\n\t\t\t\ttParentPathNum++;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (tParentPathNum==0){\r\n\t\t\tif (this._pathArray.length > 0){\r\n\t\t\t\ttResultPath=resPath+\"/\"+relativePath;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttResultPath=relativePath;\r\n\t\t\t}\r\n\t\t\treturn tResultPath;\r\n\t\t};\r\n\t\tvar tSrcNum=this._pathArray.length-tParentPathNum;\r\n\t\tif (tSrcNum < 0){\r\n\t\t\tconsole.log(\"[error]path does not exist\",this._pathArray,tImageArray,resPath,relativePath);\r\n\t\t}\r\n\t\tfor (i=0;i < tSrcNum;i++){\r\n\t\t\tif (i==0){\r\n\t\t\t\ttResultPath+=this._pathArray[i];\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttResultPath=tResultPath+\"/\"+this._pathArray[i];\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (i=tParentPathNum;i < tImageArray.length;i++){\r\n\t\t\ttResultPath=tResultPath+\"/\"+tImageArray[i];\r\n\t\t}\r\n\t\treturn tResultPath;\r\n\t}\r\n\r\n\t/**\r\n\t*纹理加载完成，如果所有的纹理加载，开始初始化地图\r\n\t*@param e 纹理数据\r\n\t*/\r\n\t__proto.onTextureComplete=function(e){\r\n\t\tvar json=this._jsonData;\r\n\t\tvar tTexture=e;\r\n\t\tif (Render.isWebGL && (!this._enableLinear)){\r\n\t\t\ttTexture.bitmap.minFifter=0x2600;\r\n\t\t\ttTexture.bitmap.magFifter=0x2600;\r\n\t\t\ttTexture.bitmap.enableMerageInAtlas=false;\r\n\t\t}\r\n\t\tthis._texArray.push(tTexture);\r\n\t\tvar tSubTexture=null;\r\n\t\tvar tTileSet=this._currTileSet;\r\n\t\tvar tTileTextureW=tTileSet.tilewidth;\r\n\t\tvar tTileTextureH=tTileSet.tileheight;\r\n\t\tvar tImageWidth=tTileSet.imagewidth;\r\n\t\tvar tImageHeight=tTileSet.imageheight;\r\n\t\tvar tFirstgid=tTileSet.firstgid;\r\n\t\tvar tTileWNum=Math.floor((tImageWidth-tTileSet.margin-tTileTextureW)/ (tTileTextureW+tTileSet.spacing))+1;\r\n\t\tvar tTileHNum=Math.floor((tImageHeight-tTileSet.margin-tTileTextureH)/ (tTileTextureH+tTileSet.spacing))+1;\r\n\t\tvar tTileTexSet=null;\r\n\t\tthis._texutreStartDic[tTileSet.image]=this._tileTexSetArr.length;\r\n\t\tfor (var i=0;i < tTileHNum;i++){\r\n\t\t\tfor (var j=0;j < tTileWNum;j++){\r\n\t\t\t\ttTileTexSet=new TileTexSet();\r\n\t\t\t\ttTileTexSet.offX=tTileSet.titleoffsetX;\r\n\t\t\t\ttTileTexSet.offY=tTileSet.titleoffsetY-(tTileTextureH-this._mapTileH);\r\n\t\t\t\ttTileTexSet.texture=Texture.createFromTexture(tTexture,tTileSet.margin+(tTileTextureW+tTileSet.spacing)*j,tTileSet.margin+(tTileTextureH+tTileSet.spacing)*i,tTileTextureW,tTileTextureH);\r\n\t\t\t\tif(this.antiCrack)\r\n\t\t\t\t\tthis.adptTexture(tTileTexSet.texture);\r\n\t\t\t\tthis._tileTexSetArr.push(tTileTexSet);\r\n\t\t\t\ttTileTexSet.gid=this._tileTexSetArr.length;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._tileSetArray.length > 0){\r\n\t\t\ttTileSet=this._currTileSet=this._tileSetArray.shift();\r\n\t\t\tthis._loader.once(\"complete\",this,this.onTextureComplete);\r\n\t\t\tvar tPath=this.mergePath(this._resPath,tTileSet.image);\r\n\t\t\tthis._loader.load(tPath,/*laya.net.Loader.IMAGE*/\"image\",false);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis._currTileSet=null;\r\n\t\t\tthis.initMap();\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.adptTexture=function(tex){\r\n\t\tif (!tex)return;\r\n\t\tvar pX=tex.uv[0];\r\n\t\tvar pX1=tex.uv[2];\r\n\t\tvar pY=tex.uv[1];\r\n\t\tvar pY1=tex.uv[7];\r\n\t\tvar dW=1 / tex.bitmap.width;\r\n\t\tvar dH=1 / tex.bitmap.height;\r\n\t\ttex.uv[0]=tex.uv[6]=pX+dW;\r\n\t\ttex.uv[2]=tex.uv[4]=pX1-dW;\r\n\t\ttex.uv[1]=tex.uv[3]=pY+dH;\r\n\t\ttex.uv[5]=tex.uv[7]=pY1-dH;\r\n\t}\r\n\r\n\t/**\r\n\t*初始化地图\r\n\t*/\r\n\t__proto.initMap=function(){\r\n\t\tvar i=0,n=0;\r\n\t\tfor (var p in this._animationDic){\r\n\t\t\tvar tAniData=this._animationDic[p];\r\n\t\t\tvar gStart=0;\r\n\t\t\tgStart=this._texutreStartDic[tAniData.image];\r\n\t\t\tvar tTileTexSet=this.getTexture(parseInt(p)+gStart);\r\n\t\t\tif (tAniData.mAniIdArray.length > 0){\r\n\t\t\t\ttTileTexSet.textureArray=[];\r\n\t\t\t\ttTileTexSet.durationTimeArray=tAniData.mDurationTimeArray;\r\n\t\t\t\ttTileTexSet.isAnimation=true;\r\n\t\t\t\ttTileTexSet.animationTotalTime=0;\r\n\t\t\t\tfor (i=0,n=tTileTexSet.durationTimeArray.length;i < n;i++){\r\n\t\t\t\t\ttTileTexSet.animationTotalTime+=tTileTexSet.durationTimeArray[i];\r\n\t\t\t\t}\r\n\t\t\t\tfor (i=0,n=tAniData.mAniIdArray.length;i < n;i++){\r\n\t\t\t\t\tvar tTexture=this.getTexture(tAniData.mAniIdArray[i]+gStart);\r\n\t\t\t\t\ttTileTexSet.textureArray.push(tTexture);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._gridWidth=Math.floor(this._gridWidth / this._mapTileW)*this._mapTileW;\r\n\t\tthis._gridHeight=Math.floor(this._gridHeight / this._mapTileH)*this._mapTileH;\r\n\t\tif (this._gridWidth < this._mapTileW){\r\n\t\t\tthis._gridWidth=this._mapTileW;\r\n\t\t}\r\n\t\tif (this._gridHeight < this._mapTileH){\r\n\t\t\tthis._gridHeight=this._mapTileH;\r\n\t\t}\r\n\t\tthis._gridW=Math.ceil(this._width / this._gridWidth);\r\n\t\tthis._gridH=Math.ceil(this._height / this._gridHeight);\r\n\t\tthis._totalGridNum=this._gridW *this._gridH;\r\n\t\tfor (i=0;i < this._gridH;i++){\r\n\t\t\tvar tGridArray=[];\r\n\t\t\tthis._gridArray.push(tGridArray);\r\n\t\t\tfor (var j=0;j < this._gridW;j++){\r\n\t\t\t\ttGridArray.push(null);\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar tLayerArray=this._jsonData.layers;\r\n\t\tvar isFirst=true;\r\n\t\tvar tTarLayerID=1;\r\n\t\tvar tLayerTarLayerName;\r\n\t\tvar preLayerTarName;\r\n\t\tvar preLayer;\r\n\t\tfor (var tLayerLoop=0;tLayerLoop < tLayerArray.length;tLayerLoop++){\r\n\t\t\tvar tLayerData=tLayerArray[tLayerLoop];\r\n\t\t\tif (tLayerData.visible==true){\r\n\t\t\t\tvar tMapLayer=new MapLayer();\r\n\t\t\t\ttMapLayer.init(tLayerData,this);\r\n\t\t\t\tif (!this.enableMergeLayer){\r\n\t\t\t\t\tthis._mapSprite.addChild(tMapLayer);\r\n\t\t\t\t\tthis._renderLayerArray.push(tMapLayer);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\ttLayerTarLayerName=tMapLayer.getLayerProperties(\"layer\");\r\n\t\t\t\t\tisFirst=isFirst || (!preLayer)|| (tLayerTarLayerName !=preLayerTarName);\r\n\t\t\t\t\tif (isFirst){\r\n\t\t\t\t\t\tisFirst=false;\r\n\t\t\t\t\t\ttMapLayer.tarLayer=tMapLayer;\r\n\t\t\t\t\t\tpreLayer=tMapLayer;\r\n\t\t\t\t\t\tthis._mapSprite.addChild(tMapLayer);\r\n\t\t\t\t\t\tthis._renderLayerArray.push(tMapLayer);\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\ttMapLayer.tarLayer=preLayer;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpreLayerTarName=tLayerTarLayerName;\r\n\t\t\t\t}\r\n\t\t\t\tthis._layerArray.push(tMapLayer);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.removeCoveredTile){\r\n\t\t\tthis.adptTiledMapData();\r\n\t\t}\r\n\t\tif (this.cacheAllAfterInit){\r\n\t\t\tthis.cacheAllGrid();\r\n\t\t}\r\n\t\tthis.moveViewPort(this._rect.x,this._rect.y);\r\n\t\tLaya.stage.addChild(this.mapSprite());\r\n\t\tif (this._completeHandler !=null){\r\n\t\t\tthis._completeHandler.run();\r\n\t\t}\r\n\t}\r\n\r\n\t//这里应该发送消息，通知上层，地图创建完成\r\n\t__proto.addTileProperties=function(tileDataDic){\r\n\t\tvar key;\r\n\t\tfor (key in tileDataDic){\r\n\t\t\tthis._tileProperties2[key]=tileDataDic[key];\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.getTileUserData=function(id,sign,defaultV){\r\n\t\tif (!this._tileProperties2 || !this._tileProperties2[id] || !(sign in this._tileProperties2[id]))return defaultV;\r\n\t\treturn this._tileProperties2[id][sign];\r\n\t}\r\n\r\n\t__proto.adptTiledMapData=function(){\r\n\t\tvar i=0,len=0;\r\n\t\tlen=this._layerArray.length;\r\n\t\tvar tLayer;\r\n\t\tvar noNeeds={};\r\n\t\tvar tDatas;\r\n\t\tfor (i=len-1;i >=0;i--){\r\n\t\t\ttLayer=this._layerArray[i];\r\n\t\t\ttDatas=tLayer._mapData;\r\n\t\t\tif (!tDatas)continue ;\r\n\t\t\tthis.removeCoverd(tDatas,noNeeds);\r\n\t\t\tthis.collectCovers(tDatas,noNeeds,i);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.removeCoverd=function(datas,noNeeds){\r\n\t\tvar i=0,len=0;\r\n\t\tlen=datas.length;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\tif (noNeeds[i]){\r\n\t\t\t\tdatas[i]=0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.collectCovers=function(datas,noNeeds,layer){\r\n\t\tvar i=0,len=0;\r\n\t\tlen=datas.length;\r\n\t\tvar tTileData=0;\r\n\t\tvar isCover=0;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\ttTileData=datas[i];\r\n\t\t\tif (tTileData > 0){\r\n\t\t\t\tisCover=this.getTileUserData(tTileData-1,\"type\",0);\r\n\t\t\t\tif (isCover > 0){\r\n\t\t\t\t\tnoNeeds[i]=tTileData;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*得到一块指定的地图纹理\r\n\t*@param index 纹理的索引值，默认从1开始\r\n\t*@return\r\n\t*/\r\n\t__proto.getTexture=function(index){\r\n\t\tif (index < this._tileTexSetArr.length){\r\n\t\t\treturn this._tileTexSetArr[index];\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*得到地图的自定义属性\r\n\t*@param name 属性名称\r\n\t*@return\r\n\t*/\r\n\t__proto.getMapProperties=function(name){\r\n\t\tif (this._properties){\r\n\t\t\treturn this._properties[name];\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*得到tile自定义属性\r\n\t*@param index 地图块索引\r\n\t*@param id 具体的TileSetID\r\n\t*@param name 属性名称\r\n\t*@return\r\n\t*/\r\n\t__proto.getTileProperties=function(index,id,name){\r\n\t\tif (this._tileProperties[index] && this._tileProperties[index][id]){\r\n\t\t\treturn this._tileProperties[index][id][name];\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*通过纹理索引，生成一个可控制物件\r\n\t*@param index 纹理的索引值，默认从1开始\r\n\t*@return\r\n\t*/\r\n\t__proto.getSprite=function(index,width,height){\r\n\t\tif (0 < this._tileTexSetArr.length){\r\n\t\t\tvar tGridSprite=new GridSprite();\r\n\t\t\ttGridSprite.initData(this,true);\r\n\t\t\ttGridSprite.size(width,height);\r\n\t\t\tvar tTileTexSet=this._tileTexSetArr[index];\r\n\t\t\tif (tTileTexSet !=null && tTileTexSet.texture !=null){\r\n\t\t\t\tif (tTileTexSet.isAnimation){\r\n\t\t\t\t\tvar tAnimationSprite=new TileAniSprite();\r\n\t\t\t\t\tthis._index++;\r\n\t\t\t\t\ttAnimationSprite.setTileTextureSet(this._index.toString(),tTileTexSet);\r\n\t\t\t\t\ttGridSprite.addAniSprite(tAnimationSprite);\r\n\t\t\t\t\ttGridSprite.addChild(tAnimationSprite);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttGridSprite.graphics.drawTexture(tTileTexSet.texture,0,0,width,height);\r\n\t\t\t\t}\r\n\t\t\t\ttGridSprite.drawImageNum++;\r\n\t\t\t}\r\n\t\t\treturn tGridSprite;\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*设置视口的缩放中心点（例如：scaleX=scaleY=0.5,就是以视口中心缩放）\r\n\t*@param scaleX\r\n\t*@param scaleY\r\n\t*/\r\n\t__proto.setViewPortPivotByScale=function(scaleX,scaleY){\r\n\t\tthis._pivotScaleX=scaleX;\r\n\t\tthis._pivotScaleY=scaleY;\r\n\t\tthis._fastDirty=true;\r\n\t}\r\n\r\n\t/**\r\n\t*移动视口\r\n\t*@param moveX 视口的坐标x\r\n\t*@param moveY 视口的坐标y\r\n\t*/\r\n\t__proto.moveViewPort=function(moveX,moveY){\r\n\t\tthis._x=-moveX;\r\n\t\tthis._y=-moveY;\r\n\t\tif (this._fastDirty){\r\n\t\t\tthis._rect.x=moveX;\r\n\t\t\tthis._rect.y=moveY;\r\n\t\t\tthis.updateViewPort();\r\n\t\t\t}else{\r\n\t\t\tvar dx=NaN,dy=NaN;\r\n\t\t\tdx=moveX-this._rect.x;\r\n\t\t\tdy=moveY-this._rect.y;\r\n\t\t\tthis._rect.x=moveX;\r\n\t\t\tthis._rect.y=moveY;\r\n\t\t\tthis.updateViewPortFast(dx,dy);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*改变视口大小\r\n\t*@param moveX 视口的坐标x\r\n\t*@param moveY 视口的坐标y\r\n\t*@param width 视口的宽\r\n\t*@param height 视口的高\r\n\t*/\r\n\t__proto.changeViewPort=function(moveX,moveY,width,height){\r\n\t\tif (moveX==this._rect.x && moveY==this._rect.y && width==this._rect.width && height==this._rect.height)return;\r\n\t\tif (width==this._rect.width && height==this._rect.height){\r\n\t\t\tthis.moveViewPort(moveX,moveY);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis._fastDirty=true;\r\n\t\tthis._x=-moveX;\r\n\t\tthis._y=-moveY;\r\n\t\tthis._rect.x=moveX;\r\n\t\tthis._rect.y=moveY;\r\n\t\tthis._rect.width=width;\r\n\t\tthis._rect.height=height;\r\n\t\tthis._viewPortWidth=width / this._scale;\r\n\t\tthis._viewPortHeight=height / this._scale;\r\n\t\tthis.updateViewPort();\r\n\t}\r\n\r\n\t/**\r\n\t*在锚点的基础上计算，通过宽和高，重新计算视口\r\n\t*@param width 新视口宽\r\n\t*@param height 新视口高\r\n\t*@param rect 返回的结果\r\n\t*@return\r\n\t*/\r\n\t__proto.changeViewPortBySize=function(width,height,rect){\r\n\t\tif (rect==null){\r\n\t\t\trect=new Rectangle();\r\n\t\t}\r\n\t\tthis._centerX=this._rect.x+this._rect.width *this._pivotScaleX;\r\n\t\tthis._centerY=this._rect.y+this._rect.height *this._pivotScaleY;\r\n\t\trect.x=this._centerX-width *this._pivotScaleX;\r\n\t\trect.y=this._centerY-height *this._pivotScaleY;\r\n\t\trect.width=width;\r\n\t\trect.height=height;\r\n\t\tthis.changeViewPort(rect.x,rect.y,rect.width,rect.height);\r\n\t\treturn rect;\r\n\t}\r\n\r\n\t/**\r\n\t*快速更新视口 ,只有在视口大小和各种缩放信息没有改变时才可以使用这个函数更新\r\n\t*@param dx 视口偏移x\r\n\t*@param dy 视口偏移y\r\n\t*/\r\n\t__proto.updateViewPortFast=function(dx,dy){\r\n\t\tthis._centerX+=dx;\r\n\t\tthis._centerY+=dy;\r\n\t\tthis._viewPortX+=dx;\r\n\t\tthis._viewPortY+=dy;\r\n\t\tvar posChanged=false;\r\n\t\tvar dyG=dy / this._gridHeight;\r\n\t\tvar dxG=dx / this._gridWidth;\r\n\t\tthis._mapLogicRect.top+=dyG;\r\n\t\tthis._mapLogicRect.bottom+=dyG;\r\n\t\tthis._mapLogicRect.left+=dxG;\r\n\t\tthis._mapLogicRect.right+=dxG;\r\n\t\tthis._mapRect.top=0|this._mapLogicRect.top;\r\n\t\tthis._mapRect.bottom=0|this._mapLogicRect.bottom;\r\n\t\tthis._mapRect.left=0|this._mapLogicRect.left;\r\n\t\tthis._mapRect.right=0|this._mapLogicRect.right;\r\n\t\tif (this._mapRect.top !=this._mapLastRect.top || this._mapRect.bottom !=this._mapLastRect.bottom || this._mapRect.left !=this._mapLastRect.left || this._mapRect.right !=this._mapLastRect.right){\r\n\t\t\tthis.clipViewPort();\r\n\t\t\tthis._mapLastRect.top=this._mapRect.top;\r\n\t\t\tthis._mapLastRect.bottom=this._mapRect.bottom;\r\n\t\t\tthis._mapLastRect.left=this._mapRect.left;\r\n\t\t\tthis._mapLastRect.right=this._mapRect.right;\r\n\t\t\tposChanged=true;\r\n\t\t};posChanged=posChanged|| (dx !=0 || dy !=0);\r\n\t\tif (!posChanged)return;\r\n\t\tthis.updateMapLayersPos();\r\n\t}\r\n\r\n\t/**\r\n\t*刷新地图层坐标\r\n\t*/\r\n\t__proto.updateMapLayersPos=function(){\r\n\t\tvar tMapLayer;\r\n\t\tvar len=this._renderLayerArray.length;\r\n\t\tfor (var i=0;i < len;i++){\r\n\t\t\ttMapLayer=this._renderLayerArray[i];\r\n\t\t\tif (tMapLayer._gridSpriteArray.length > 0){\r\n\t\t\t\ttMapLayer.updateAloneObject();\r\n\t\t\t\ttMapLayer.pos(-this._viewPortX,-this._viewPortY);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*刷新视口\r\n\t*/\r\n\t__proto.updateViewPort=function(){\r\n\t\tthis._fastDirty=false;\r\n\t\tvar dw=this._rect.width *this._pivotScaleX;\r\n\t\tvar dh=this._rect.height *this._pivotScaleY;\r\n\t\tthis._centerX=this._rect.x+dw;\r\n\t\tthis._centerY=this._rect.y+dh;\r\n\t\tvar posChanged=false;\r\n\t\tvar preValue=this._viewPortX;\r\n\t\tthis._viewPortX=this._centerX-dw / this._scale;\r\n\t\tif (preValue !=this._viewPortX){\r\n\t\t\tposChanged=true;\r\n\t\t\t}else {\r\n\t\t\tpreValue=this._viewPortY;\r\n\t\t}\r\n\t\tthis._viewPortY=this._centerY-dh/ this._scale;\r\n\t\tif (!posChanged && preValue !=this._viewPortY){\r\n\t\t\tposChanged=true;\r\n\t\t}\r\n\t\tif (this._limitRange){\r\n\t\t\tvar tRight=this._viewPortX+this._viewPortWidth;\r\n\t\t\tif (tRight > this._width){\r\n\t\t\t\tthis._viewPortX=this._width-this._viewPortWidth;\r\n\t\t\t};\r\n\t\t\tvar tBottom=this._viewPortY+this._viewPortHeight;\r\n\t\t\tif (tBottom > this._height){\r\n\t\t\t\tthis._viewPortY=this._height-this._viewPortHeight;\r\n\t\t\t}\r\n\t\t\tif (this._viewPortX < 0){\r\n\t\t\t\tthis._viewPortX=0;\r\n\t\t\t}\r\n\t\t\tif (this._viewPortY < 0){\r\n\t\t\t\tthis._viewPortY=0;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar tPaddingRect=this._paddingRect;\r\n\t\tthis._mapLogicRect.top=(this._viewPortY-tPaddingRect.y)/ this._gridHeight;\r\n\t\tthis._mapLogicRect.bottom=(this._viewPortY+this._viewPortHeight+tPaddingRect.height+tPaddingRect.y)/ this._gridHeight;\r\n\t\tthis._mapLogicRect.left=(this._viewPortX-tPaddingRect.x)/ this._gridWidth;\r\n\t\tthis._mapLogicRect.right=(this._viewPortX+this._viewPortWidth+tPaddingRect.width+tPaddingRect.x)/ this._gridWidth;\r\n\t\tthis._mapRect.top=0|this._mapLogicRect.top;\r\n\t\tthis._mapRect.bottom=0|this._mapLogicRect.bottom;\r\n\t\tthis._mapRect.left=0|this._mapLogicRect.left;\r\n\t\tthis._mapRect.right=0|this._mapLogicRect.right;\r\n\t\tif (this._mapRect.top !=this._mapLastRect.top || this._mapRect.bottom !=this._mapLastRect.bottom || this._mapRect.left !=this._mapLastRect.left || this._mapRect.right !=this._mapLastRect.right){\r\n\t\t\tthis.clipViewPort();\r\n\t\t\tthis._mapLastRect.top=this._mapRect.top;\r\n\t\t\tthis._mapLastRect.bottom=this._mapRect.bottom;\r\n\t\t\tthis._mapLastRect.left=this._mapRect.left;\r\n\t\t\tthis._mapLastRect.right=this._mapRect.right;\r\n\t\t\tposChanged=true;\r\n\t\t}\r\n\t\tif (!posChanged)return;\r\n\t\tthis.updateMapLayersPos();\r\n\t}\r\n\r\n\t/**\r\n\t*GRID裁剪\r\n\t*/\r\n\t__proto.clipViewPort=function(){\r\n\t\tvar tSpriteNum=0;\r\n\t\tvar tSprite;\r\n\t\tvar tIndex=0;\r\n\t\tvar tSub=0;\r\n\t\tvar tAdd=0;\r\n\t\tvar i=0,j=0;\r\n\t\tif (this._mapRect.left > this._mapLastRect.left){\r\n\t\t\ttSub=this._mapRect.left-this._mapLastRect.left;\r\n\t\t\tif (tSub > 0){\r\n\t\t\t\tfor (j=this._mapLastRect.left;j < this._mapLastRect.left+tSub;j++){\r\n\t\t\t\t\tfor (i=this._mapLastRect.top;i <=this._mapLastRect.bottom;i++){\r\n\t\t\t\t\t\tthis.hideGrid(j,i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\ttAdd=Math.min(this._mapLastRect.left,this._mapRect.right+1)-this._mapRect.left;\r\n\t\t\tif (tAdd > 0){\r\n\t\t\t\tfor (j=this._mapRect.left;j < this._mapRect.left+tAdd;j++){\r\n\t\t\t\t\tfor (i=this._mapRect.top;i <=this._mapRect.bottom;i++){\r\n\t\t\t\t\t\tthis.showGrid(j,i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._mapRect.right > this._mapLastRect.right){\r\n\t\t\ttAdd=this._mapRect.right-this._mapLastRect.right;\r\n\t\t\tif (tAdd > 0){\r\n\t\t\t\tfor (j=Math.max(this._mapLastRect.right+1,this._mapRect.left);j <=this._mapLastRect.right+tAdd;j++){\r\n\t\t\t\t\tfor (i=this._mapRect.top;i <=this._mapRect.bottom;i++){\r\n\t\t\t\t\t\tthis.showGrid(j,i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\ttSub=this._mapLastRect.right-this._mapRect.right\r\n\t\t\tif (tSub > 0){\r\n\t\t\t\tfor (j=this._mapRect.right+1;j <=this._mapRect.right+tSub;j++){\r\n\t\t\t\t\tfor (i=this._mapLastRect.top;i <=this._mapLastRect.bottom;i++){\r\n\t\t\t\t\t\tthis.hideGrid(j,i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._mapRect.top > this._mapLastRect.top){\r\n\t\t\ttSub=this._mapRect.top-this._mapLastRect.top;\r\n\t\t\tif (tSub > 0){\r\n\t\t\t\tfor (i=this._mapLastRect.top;i < this._mapLastRect.top+tSub;i++){\r\n\t\t\t\t\tfor (j=this._mapLastRect.left;j <=this._mapLastRect.right;j++){\r\n\t\t\t\t\t\tthis.hideGrid(j,i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\ttAdd=Math.min(this._mapLastRect.top,this._mapRect.bottom+1)-this._mapRect.top;\r\n\t\t\tif (tAdd > 0){\r\n\t\t\t\tfor (i=this._mapRect.top;i < this._mapRect.top+tAdd;i++){\r\n\t\t\t\t\tfor (j=this._mapRect.left;j <=this._mapRect.right;j++){\r\n\t\t\t\t\t\tthis.showGrid(j,i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._mapRect.bottom > this._mapLastRect.bottom){\r\n\t\t\ttAdd=this._mapRect.bottom-this._mapLastRect.bottom;\r\n\t\t\tif (tAdd > 0){\r\n\t\t\t\tfor (i=Math.max(this._mapLastRect.bottom+1,this._mapRect.top);i <=this._mapLastRect.bottom+tAdd;i++){\r\n\t\t\t\t\tfor (j=this._mapRect.left;j <=this._mapRect.right;j++){\r\n\t\t\t\t\t\tthis.showGrid(j,i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\ttSub=this._mapLastRect.bottom-this._mapRect.bottom\r\n\t\t\tif (tSub > 0){\r\n\t\t\t\tfor (i=this._mapRect.bottom+1;i <=this._mapRect.bottom+tSub;i++){\r\n\t\t\t\t\tfor (j=this._mapLastRect.left;j <=this._mapLastRect.right;j++){\r\n\t\t\t\t\t\tthis.hideGrid(j,i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*显示指定的GRID\r\n\t*@param gridX\r\n\t*@param gridY\r\n\t*/\r\n\t__proto.showGrid=function(gridX,gridY){\r\n\t\tif (gridX < 0 || gridX >=this._gridW || gridY < 0 || gridY >=this._gridH){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar i=0,j=0;\r\n\t\tvar tGridSprite;\r\n\t\tvar tTempArray=this._gridArray[gridY][gridX];\r\n\t\tif (tTempArray==null){\r\n\t\t\ttTempArray=this.getGridArray(gridX,gridY);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tfor (i=0;i < tTempArray.length && i < this._layerArray.length;i++){\r\n\t\t\t\tvar tLayerSprite=this._layerArray[i];\r\n\t\t\t\tif (tLayerSprite && tTempArray[i]){\r\n\t\t\t\t\ttGridSprite=tTempArray[i];\r\n\t\t\t\t\tif (tGridSprite.visible==false && tGridSprite.drawImageNum > 0){\r\n\t\t\t\t\t\ttGridSprite.show();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.cacheAllGrid=function(){\r\n\t\tvar i=0,j=0;\r\n\t\tvar tempArr;\r\n\t\tfor (i=0;i < this._gridW;i++){\r\n\t\t\tfor (j=0;j < this._gridH;j++){\r\n\t\t\t\ttempArr=this.getGridArray(i,j);\r\n\t\t\t\tthis.cacheGridsArray(tempArr);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.cacheGridsArray=function(arr){\r\n\t\tvar canvas;\r\n\t\tif (!TiledMap._tempContext){\r\n\t\t\tTiledMap._tempContext=new RenderContext(1,1,HTMLCanvas.create(/*laya.resource.HTMLCanvas.TYPEAUTO*/\"AUTO\"));\r\n\t\t}\r\n\t\tcanvas=TiledMap._tempContext.canvas;\r\n\t\tcanvas.context.asBitmap=false;\r\n\t\tvar i=0,len=0;\r\n\t\tlen=arr.length;\r\n\t\tvar tGrid;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\ttGrid=arr[i];\r\n\t\t\tcanvas.clear();\r\n\t\t\tcanvas.size(1,1);\r\n\t\t\ttGrid.render(TiledMap._tempContext,0,0);\r\n\t\t\ttGrid.hide();\r\n\t\t}\r\n\t\tcanvas.clear();\r\n\t\tcanvas.size(1,1);\r\n\t}\r\n\r\n\t__proto.getGridArray=function(gridX,gridY){\r\n\t\tvar i=0,j=0;\r\n\t\tvar tGridSprite;\r\n\t\tvar tTempArray=this._gridArray[gridY][gridX];\r\n\t\tif (tTempArray==null){\r\n\t\t\ttTempArray=this._gridArray[gridY][gridX]=[];\r\n\t\t\tvar tLeft=0;\r\n\t\t\tvar tRight=0;\r\n\t\t\tvar tTop=0;\r\n\t\t\tvar tBottom=0;\r\n\t\t\tvar tGridWidth=this._gridWidth;\r\n\t\t\tvar tGridHeight=this._gridHeight;\r\n\t\t\tswitch (this.orientation){\r\n\t\t\t\tcase /*CLASS CONST:laya.map.TiledMap.ORIENTATION_ISOMETRIC*/\"isometric\":\r\n\t\t\t\t\ttLeft=Math.floor(gridX *tGridWidth);\r\n\t\t\t\t\ttRight=Math.floor(gridX *tGridWidth+tGridWidth);\r\n\t\t\t\t\ttTop=Math.floor(gridY *tGridHeight);\r\n\t\t\t\t\ttBottom=Math.floor(gridY *tGridHeight+tGridHeight);\r\n\t\t\t\t\tvar tLeft1=0,tRight1=0,tTop1=0,tBottom1=0;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*CLASS CONST:laya.map.TiledMap.ORIENTATION_STAGGERED*/\"staggered\":\r\n\t\t\t\t\ttLeft=Math.floor(gridX *tGridWidth / this._mapTileW);\r\n\t\t\t\t\ttRight=Math.floor((gridX *tGridWidth+tGridWidth)/ this._mapTileW);\r\n\t\t\t\t\ttTop=Math.floor(gridY *tGridHeight / (this._mapTileH / 2));\r\n\t\t\t\t\ttBottom=Math.floor((gridY *tGridHeight+tGridHeight)/ (this._mapTileH / 2));\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*CLASS CONST:laya.map.TiledMap.ORIENTATION_ORTHOGONAL*/\"orthogonal\":\r\n\t\t\t\t\ttLeft=Math.floor(gridX *tGridWidth / this._mapTileW);\r\n\t\t\t\t\ttRight=Math.floor((gridX *tGridWidth+tGridWidth)/ this._mapTileW);\r\n\t\t\t\t\ttTop=Math.floor(gridY *tGridHeight / this._mapTileH);\r\n\t\t\t\t\ttBottom=Math.floor((gridY *tGridHeight+tGridHeight)/ this._mapTileH);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*CLASS CONST:laya.map.TiledMap.ORIENTATION_HEXAGONAL*/\"hexagonal\":;\r\n\t\t\t\t\tvar tHeight=this._mapTileH *2 / 3;\r\n\t\t\t\t\ttLeft=Math.floor(gridX *tGridWidth / this._mapTileW);\r\n\t\t\t\t\ttRight=Math.ceil((gridX *tGridWidth+tGridWidth)/ this._mapTileW);\r\n\t\t\t\t\ttTop=Math.floor(gridY *tGridHeight / tHeight);\r\n\t\t\t\t\ttBottom=Math.ceil((gridY *tGridHeight+tGridHeight)/ tHeight);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t};\r\n\t\t\tvar tLayer=null;\r\n\t\t\tvar tTGridSprite;\r\n\t\t\tvar tDrawMapLayer;\r\n\t\t\tfor (var z=0;z < this._layerArray.length;z++){\r\n\t\t\t\ttLayer=this._layerArray[z];\r\n\t\t\t\tif (this.enableMergeLayer){\r\n\t\t\t\t\tif (tLayer.tarLayer !=tDrawMapLayer){\r\n\t\t\t\t\t\ttTGridSprite=null;\r\n\t\t\t\t\t\ttDrawMapLayer=tLayer.tarLayer;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!tTGridSprite){\r\n\t\t\t\t\t\ttTGridSprite=tDrawMapLayer.getDrawSprite(gridX,gridY);\r\n\t\t\t\t\t\ttTempArray.push(tTGridSprite);\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttGridSprite=tTGridSprite;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ttGridSprite=tLayer.getDrawSprite(gridX,gridY);\r\n\t\t\t\t\ttTempArray.push(tGridSprite);\r\n\t\t\t\t};\r\n\t\t\t\tvar tColorStr;\r\n\t\t\t\tif (this._showGridKey){\r\n\t\t\t\t\ttColorStr=\"#\";\r\n\t\t\t\t\ttColorStr+=this._colorArray[Math.floor(Math.random()*this._colorArray.length)];\r\n\t\t\t\t\ttColorStr+=this._colorArray[Math.floor(Math.random()*this._colorArray.length)];\r\n\t\t\t\t\ttColorStr+=this._colorArray[Math.floor(Math.random()*this._colorArray.length)];\r\n\t\t\t\t}\r\n\t\t\t\tswitch (this.orientation){\r\n\t\t\t\t\tcase /*CLASS CONST:laya.map.TiledMap.ORIENTATION_ISOMETRIC*/\"isometric\":;\r\n\t\t\t\t\t\tvar tHalfTileHeight=this.tileHeight / 2;\r\n\t\t\t\t\t\tvar tHalfTileWidth=this.tileWidth / 2;\r\n\t\t\t\t\t\tvar tHalfMapWidth=this._width / 2;\r\n\t\t\t\t\t\ttTop1=Math.floor(tTop / tHalfTileHeight);\r\n\t\t\t\t\t\ttBottom1=Math.floor(tBottom / tHalfTileHeight);\r\n\t\t\t\t\t\ttLeft1=this._mapW+Math.floor((tLeft-tHalfMapWidth)/ tHalfTileWidth);\r\n\t\t\t\t\t\ttRight1=this._mapW+Math.floor((tRight-tHalfMapWidth)/ tHalfTileWidth);\r\n\t\t\t\t\t\tvar tMapW=this._mapW *2;\r\n\t\t\t\t\t\tvar tMapH=this._mapH *2;\r\n\t\t\t\t\t\tif (tTop1 < 0){\r\n\t\t\t\t\t\t\ttTop1=0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (tTop1 >=tMapH){\r\n\t\t\t\t\t\t\ttTop1=tMapH-1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (tBottom1 < 0){\r\n\t\t\t\t\t\t\ttBottom=0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (tBottom1 >=tMapH){\r\n\t\t\t\t\t\t\ttBottom1=tMapH-1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttGridSprite.zOrder=this._totalGridNum *z+gridY *this._gridW+gridX;\r\n\t\t\t\t\t\tfor (i=tTop1;i < tBottom1;i++){\r\n\t\t\t\t\t\t\tfor (j=0;j <=i;j++){\r\n\t\t\t\t\t\t\t\tvar tIndexX=i-j;\r\n\t\t\t\t\t\t\t\tvar tIndexY=j;\r\n\t\t\t\t\t\t\t\tvar tIndexValue=(tIndexX-tIndexY)+this._mapW;\r\n\t\t\t\t\t\t\t\tif (tIndexValue > tLeft1 && tIndexValue <=tRight1){\r\n\t\t\t\t\t\t\t\t\tif (tLayer.drawTileTexture(tGridSprite,tIndexX,tIndexY)){\r\n\t\t\t\t\t\t\t\t\t\ttGridSprite.drawImageNum++;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase /*CLASS CONST:laya.map.TiledMap.ORIENTATION_STAGGERED*/\"staggered\":\r\n\t\t\t\t\t\ttGridSprite.zOrder=z *this._totalGridNum+gridY *this._gridW+gridX;\r\n\t\t\t\t\t\tfor (i=tTop;i < tBottom;i++){\r\n\t\t\t\t\t\t\tfor (j=tLeft;j < tRight;j++){\r\n\t\t\t\t\t\t\t\tif (tLayer.drawTileTexture(tGridSprite,j,i)){\r\n\t\t\t\t\t\t\t\t\ttGridSprite.drawImageNum++;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase /*CLASS CONST:laya.map.TiledMap.ORIENTATION_ORTHOGONAL*/\"orthogonal\":\r\n\t\t\t\t\tcase /*CLASS CONST:laya.map.TiledMap.ORIENTATION_HEXAGONAL*/\"hexagonal\":\r\n\t\t\t\t\tswitch (this._renderOrder){\r\n\t\t\t\t\t\tcase \"right-down\":\r\n\t\t\t\t\t\t\ttGridSprite.zOrder=z *this._totalGridNum+gridY *this._gridW+gridX;\r\n\t\t\t\t\t\t\tfor (i=tTop;i < tBottom;i++){\r\n\t\t\t\t\t\t\t\tfor (j=tLeft;j < tRight;j++){\r\n\t\t\t\t\t\t\t\t\tif (tLayer.drawTileTexture(tGridSprite,j,i)){\r\n\t\t\t\t\t\t\t\t\t\ttGridSprite.drawImageNum++;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\tcase \"right-up\":\r\n\t\t\t\t\t\t\ttGridSprite.zOrder=z *this._totalGridNum+(this._gridH-1-gridY)*this._gridW+gridX;\r\n\t\t\t\t\t\t\tfor (i=tBottom-1;i >=tTop;i--){\r\n\t\t\t\t\t\t\t\tfor (j=tLeft;j < tRight;j++){\r\n\t\t\t\t\t\t\t\t\tif (tLayer.drawTileTexture(tGridSprite,j,i)){\r\n\t\t\t\t\t\t\t\t\t\ttGridSprite.drawImageNum++;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\tcase \"left-down\":\r\n\t\t\t\t\t\t\ttGridSprite.zOrder=z *this._totalGridNum+gridY *this._gridW+(this._gridW-1-gridX);\r\n\t\t\t\t\t\t\tfor (i=tTop;i < tBottom;i++){\r\n\t\t\t\t\t\t\t\tfor (j=tRight-1;j >=tLeft;j--){\r\n\t\t\t\t\t\t\t\t\tif (tLayer.drawTileTexture(tGridSprite,j,i)){\r\n\t\t\t\t\t\t\t\t\t\ttGridSprite.drawImageNum++;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\tcase \"left-up\":\r\n\t\t\t\t\t\t\ttGridSprite.zOrder=z *this._totalGridNum+(this._gridH-1-gridY)*this._gridW+(this._gridW-1-gridX);\r\n\t\t\t\t\t\t\tfor (i=tBottom-1;i >=tTop;i--){\r\n\t\t\t\t\t\t\t\tfor (j=tRight-1;j >=tLeft;j--){\r\n\t\t\t\t\t\t\t\t\tif (tLayer.drawTileTexture(tGridSprite,j,i)){\r\n\t\t\t\t\t\t\t\t\t\ttGridSprite.drawImageNum++;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\t\tif (!tGridSprite.isHaveAnimation){\r\n\t\t\t\t\ttGridSprite.autoSize=true;\r\n\t\t\t\t\tif (this.autoCache)\r\n\t\t\t\t\t\ttGridSprite.cacheAs=this.autoCacheType;\r\n\t\t\t\t\ttGridSprite.autoSize=false;\r\n\t\t\t\t}\r\n\t\t\t\tif (!this.enableMergeLayer){\r\n\t\t\t\t\tif (tGridSprite.drawImageNum > 0){\r\n\t\t\t\t\t\ttLayer.addChild(tGridSprite);\r\n\t\t\t\t\t\ttGridSprite.visible=false;\r\n\t\t\t\t\t\ttGridSprite.show();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this._showGridKey){\r\n\t\t\t\t\t\ttGridSprite.graphics.drawRect(0,0,tGridWidth,tGridHeight,null,tColorStr);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\tif (tTGridSprite && tTGridSprite.drawImageNum > 0&&tDrawMapLayer){\r\n\t\t\t\t\t\ttDrawMapLayer.addChild(tTGridSprite);\r\n\t\t\t\t\t\ttTGridSprite.visible=false;\r\n\t\t\t\t\t\ttTGridSprite.show();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (this.enableMergeLayer&&this.showGridTextureCount){\r\n\t\t\t\tif (tTGridSprite){\r\n\t\t\t\t\ttTGridSprite.graphics.fillText(tTGridSprite.drawImageNum+\"\",20,20,null,\"#ff0000\",\"left\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn tTempArray;\r\n\t}\r\n\r\n\t/**\r\n\t*隐藏指定的GRID\r\n\t*@param gridX\r\n\t*@param gridY\r\n\t*/\r\n\t__proto.hideGrid=function(gridX,gridY){\r\n\t\tif (gridX < 0 || gridX >=this._gridW || gridY < 0 || gridY >=this._gridH){\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar tTempArray=this._gridArray[gridY][gridX];\r\n\t\tif (tTempArray){\r\n\t\t\tvar tGridSprite;\r\n\t\t\tfor (var i=0;i < tTempArray.length;i++){\r\n\t\t\t\ttGridSprite=tTempArray[i];\r\n\t\t\t\tif (tGridSprite.drawImageNum > 0){\r\n\t\t\t\t\tif (tGridSprite !=null){\r\n\t\t\t\t\t\ttGridSprite.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*得到对象层上的某一个物品\r\n\t*@param layerName 层的名称\r\n\t*@param objectName 所找物品的名称\r\n\t*@return\r\n\t*/\r\n\t__proto.getLayerObject=function(layerName,objectName){\r\n\t\tvar tLayer=null;\r\n\t\tfor (var i=0;i < this._layerArray.length;i++){\r\n\t\t\ttLayer=this._layerArray[i];\r\n\t\t\tif (tLayer.layerName==layerName){\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (tLayer){\r\n\t\t\treturn tLayer.getObjectByName(objectName);\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*销毁地图\r\n\t*/\r\n\t__proto.destroy=function(){\r\n\t\tthis._orientation=\"orthogonal\";\r\n\t\tthis._jsonData=null;\r\n\t\tvar i=0;\r\n\t\tvar j=0;\r\n\t\tvar z=0;\r\n\t\tthis._gridArray=[];\r\n\t\tvar tTileTexSet;\r\n\t\tfor (i=0;i < this._tileTexSetArr.length;i++){\r\n\t\t\ttTileTexSet=this._tileTexSetArr[i];\r\n\t\t\tif (tTileTexSet){\r\n\t\t\t\ttTileTexSet.clearAll();\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis._tileTexSetArr=[];\r\n\t\tvar tTexture;\r\n\t\tfor (i=0;i < this._texArray.length;i++){\r\n\t\t\ttTexture=this._texArray[i];\r\n\t\t\ttTexture.destroy();\r\n\t\t}\r\n\t\tthis._texArray=[];\r\n\t\tthis._width=0;\r\n\t\tthis._height=0;\r\n\t\tthis._mapW=0;\r\n\t\tthis._mapH=0;\r\n\t\tthis._mapTileW=0;\r\n\t\tthis._mapTileH=0;\r\n\t\tthis._rect.setTo(0,0,0,0);\r\n\t\tvar tLayer;\r\n\t\tfor (i=0;i < this._layerArray.length;i++){\r\n\t\t\ttLayer=this._layerArray[i];\r\n\t\t\ttLayer.clearAll();\r\n\t\t}\r\n\t\tthis._layerArray=[];\r\n\t\tthis._renderLayerArray=[];\r\n\t\tif (this._mapSprite){\r\n\t\t\tthis._mapSprite.destroy();\r\n\t\t\tthis._mapSprite=null;\r\n\t\t}\r\n\t\tthis._jsonLoader=null;\r\n\t\tthis._loader=null;\r\n\t\tvar tDic=this._animationDic;\r\n\t\tfor (var p in tDic){\r\n\t\t\tdelete tDic[p];\r\n\t\t}\r\n\t\tthis._properties=null;\r\n\t\ttDic=this._tileProperties;\r\n\t\tfor (p in tDic){\r\n\t\t\tdelete tDic[p];\r\n\t\t}\r\n\t\tthis._currTileSet=null;\r\n\t\tthis._completeHandler=null;\r\n\t\tthis._mapRect.clearAll();\r\n\t\tthis._mapLastRect.clearAll();\r\n\t\tthis._tileSetArray=[];\r\n\t\tthis._gridWidth=450;\r\n\t\tthis._gridHeight=450;\r\n\t\tthis._gridW=0;\r\n\t\tthis._gridH=0;\r\n\t\tthis._x=0;\r\n\t\tthis._y=0;\r\n\t\tthis._index=0;\r\n\t\tthis._enableLinear=true;\r\n\t\tthis._resPath=null;\r\n\t\tthis._pathArray=null;\r\n\t}\r\n\r\n\t/**\r\n\t*整个地图的显示容器\r\n\t*@return 地图的显示容器\r\n\t*/\r\n\t__proto.mapSprite=function(){\r\n\t\treturn this._mapSprite;\r\n\t}\r\n\r\n\t/**\r\n\t*得到指定的MapLayer\r\n\t*@param layerName 要找的层名称\r\n\t*@return\r\n\t*/\r\n\t__proto.getLayerByName=function(layerName){\r\n\t\tvar tMapLayer;\r\n\t\tfor (var i=0;i < this._layerArray.length;i++){\r\n\t\t\ttMapLayer=this._layerArray[i];\r\n\t\t\tif (layerName==tMapLayer.layerName){\r\n\t\t\t\treturn tMapLayer;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*通过索引得MapLayer\r\n\t*@param index 要找的层索引\r\n\t*@return\r\n\t*/\r\n\t__proto.getLayerByIndex=function(index){\r\n\t\tif (index < this._layerArray.length){\r\n\t\t\treturn this._layerArray[index];\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*当前地图类型\r\n\t*/\r\n\t__getset(0,__proto,'orientation',function(){\r\n\t\treturn this._orientation;\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*视口x坐标\r\n\t*/\r\n\t__getset(0,__proto,'viewPortX',function(){\r\n\t\treturn-this._viewPortX;\r\n\t});\r\n\r\n\t/**\r\n\t*设置地图缩放\r\n\t*@param scale\r\n\t*/\r\n\t/**\r\n\t*得到当前地图的缩放\r\n\t*/\r\n\t__getset(0,__proto,'scale',function(){\r\n\t\treturn this._scale;\r\n\t\t},function(scale){\r\n\t\tif (scale <=0)\r\n\t\t\treturn;\r\n\t\tthis._scale=scale;\r\n\t\tthis._viewPortWidth=this._rect.width / scale;\r\n\t\tthis._viewPortHeight=this._rect.height / scale;\r\n\t\tthis._mapSprite.scale(this._scale,this._scale);\r\n\t\tthis.updateViewPort();\r\n\t});\r\n\r\n\t/**\r\n\t*格子的宽度\r\n\t*/\r\n\t__getset(0,__proto,'tileWidth',function(){\r\n\t\treturn this._mapTileW;\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*视口的y坐标\r\n\t*/\r\n\t__getset(0,__proto,'viewPortY',function(){\r\n\t\treturn-this._viewPortY;\r\n\t});\r\n\r\n\t/**\r\n\t*格子的高度\r\n\t*/\r\n\t__getset(0,__proto,'tileHeight',function(){\r\n\t\treturn this._mapTileH;\r\n\t});\r\n\r\n\t/**\r\n\t*地图的宽度\r\n\t*/\r\n\t__getset(0,__proto,'width',function(){\r\n\t\treturn this._width;\r\n\t});\r\n\r\n\t/**\r\n\t*地图竖向的格子数\r\n\t*/\r\n\t__getset(0,__proto,'numRowsTile',function(){\r\n\t\treturn this._mapH;\r\n\t});\r\n\r\n\t/**\r\n\t*地图横向的格子数\r\n\t*/\r\n\t__getset(0,__proto,'numColumnsTile',function(){\r\n\t\treturn this._mapW;\r\n\t});\r\n\r\n\t/**\r\n\t*地图的高度\r\n\t*/\r\n\t__getset(0,__proto,'height',function(){\r\n\t\treturn this._height;\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*视口的宽度\r\n\t*/\r\n\t__getset(0,__proto,'viewPortWidth',function(){\r\n\t\treturn this._viewPortWidth;\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*视口的高度\r\n\t*/\r\n\t__getset(0,__proto,'viewPortHeight',function(){\r\n\t\treturn this._viewPortHeight;\r\n\t});\r\n\r\n\t/**\r\n\t*地图的x坐标\r\n\t*/\r\n\t__getset(0,__proto,'x',function(){\r\n\t\treturn this._x;\r\n\t});\r\n\r\n\t/**\r\n\t*地图的y坐标\r\n\t*/\r\n\t__getset(0,__proto,'y',function(){\r\n\t\treturn this._y;\r\n\t});\r\n\r\n\t/**\r\n\t*块的宽度\r\n\t*/\r\n\t__getset(0,__proto,'gridWidth',function(){\r\n\t\treturn this._gridWidth;\r\n\t});\r\n\r\n\t/**\r\n\t*块的高度\r\n\t*/\r\n\t__getset(0,__proto,'gridHeight',function(){\r\n\t\treturn this._gridHeight;\r\n\t});\r\n\r\n\t/**\r\n\t*地图的横向块数\r\n\t*/\r\n\t__getset(0,__proto,'numColumnsGrid',function(){\r\n\t\treturn this._gridW;\r\n\t});\r\n\r\n\t/**\r\n\t*地图的坚向块数\r\n\t*/\r\n\t__getset(0,__proto,'numRowsGrid',function(){\r\n\t\treturn this._gridH;\r\n\t});\r\n\r\n\t/**\r\n\t*tile渲染顺序\r\n\t*/\r\n\t__getset(0,__proto,'renderOrder',function(){\r\n\t\treturn this._renderOrder;\r\n\t});\r\n\r\n\tTiledMap.ORIENTATION_ORTHOGONAL=\"orthogonal\";\r\n\tTiledMap.ORIENTATION_ISOMETRIC=\"isometric\";\r\n\tTiledMap.ORIENTATION_STAGGERED=\"staggered\";\r\n\tTiledMap.ORIENTATION_HEXAGONAL=\"hexagonal\";\r\n\tTiledMap.RENDERORDER_RIGHTDOWN=\"right-down\";\r\n\tTiledMap.RENDERORDER_RIGHTUP=\"right-up\";\r\n\tTiledMap.RENDERORDER_LEFTDOWN=\"left-down\";\r\n\tTiledMap.RENDERORDER_LEFTUP=\"left-up\";\r\n\tTiledMap._tempContext=null;\r\n\tTiledMap.__init$=function(){\r\n\t\t//class GRect\r\n\t\tGRect=(function(){\r\n\t\t\tfunction GRect(){\r\n\t\t\t\tthis.left=0;\r\n\t\t\t\tthis.top=0;\r\n\t\t\t\tthis.right=0;\r\n\t\t\t\tthis.bottom=0;\r\n\t\t\t}\r\n\t\t\t__class(GRect,'');\r\n\t\t\tvar __proto=GRect.prototype;\r\n\t\t\t__proto.clearAll=function(){\r\n\t\t\t\tthis.left=this.top=this.right=this.bottom=0;\r\n\t\t\t}\r\n\t\t\treturn GRect;\r\n\t\t})()\r\n\t\t//class TileMapAniData\r\n\t\tTileMapAniData=(function(){\r\n\t\t\tfunction TileMapAniData(){\r\n\t\t\t\tthis.mAniIdArray=[];\r\n\t\t\t\tthis.mDurationTimeArray=[];\r\n\t\t\t\tthis.mTileTexSetArr=[];\r\n\t\t\t\tthis.image=null;\r\n\t\t\t}\r\n\t\t\t__class(TileMapAniData,'');\r\n\t\t\treturn TileMapAniData;\r\n\t\t})()\r\n\t\t//class TileSet\r\n\t\tTileSet=(function(){\r\n\t\t\tfunction TileSet(){\r\n\t\t\t\tthis.firstgid=0;\r\n\t\t\t\tthis.image=\"\";\r\n\t\t\t\tthis.imageheight=0;\r\n\t\t\t\tthis.imagewidth=0;\r\n\t\t\t\tthis.margin=0;\r\n\t\t\t\tthis.name=0;\r\n\t\t\t\tthis.properties=null;\r\n\t\t\t\tthis.spacing=0;\r\n\t\t\t\tthis.tileheight=0;\r\n\t\t\t\tthis.tilewidth=0;\r\n\t\t\t\tthis.titleoffsetX=0;\r\n\t\t\t\tthis.titleoffsetY=0;\r\n\t\t\t\tthis.tileproperties=null;\r\n\t\t\t}\r\n\t\t\t__class(TileSet,'');\r\n\t\t\tvar __proto=TileSet.prototype;\r\n\t\t\t__proto.init=function(data){\r\n\t\t\t\tthis.firstgid=data.firstgid;\r\n\t\t\t\tthis.image=data.image;\r\n\t\t\t\tthis.imageheight=data.imageheight;\r\n\t\t\t\tthis.imagewidth=data.imagewidth;\r\n\t\t\t\tthis.margin=data.margin;\r\n\t\t\t\tthis.name=data.name;\r\n\t\t\t\tthis.properties=data.properties;\r\n\t\t\t\tthis.spacing=data.spacing;\r\n\t\t\t\tthis.tileheight=data.tileheight;\r\n\t\t\t\tthis.tilewidth=data.tilewidth;\r\n\t\t\t\tthis.tileproperties=data.tileproperties;\r\n\t\t\t\tvar tTileoffset=data.tileoffset;\r\n\t\t\t\tif (tTileoffset){\r\n\t\t\t\t\tthis.titleoffsetX=tTileoffset.x;\r\n\t\t\t\t\tthis.titleoffsetY=tTileoffset.y;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn TileSet;\r\n\t\t})()\r\n\t}\r\n\r\n\treturn TiledMap;\r\n})()\r\n\r\n\r\n/**\r\n*此类是子纹理类，也包括同类动画的管理\r\n*TiledMap会把纹理分割成无数子纹理，也可以把其中的某块子纹理替换成一个动画序列\r\n*本类的实现就是如果发现子纹理被替换成一个动画序列，animationKey会被设为true\r\n*即animationKey为true,就使用TileAniSprite来做显示，把动画序列根据时间画到TileAniSprite上\r\n*@author ...\r\n*/\r\n//class laya.map.TileTexSet\r\nvar TileTexSet=(function(){\r\n\tfunction TileTexSet(){\r\n\t\t/**唯一标识*/\r\n\t\tthis.gid=-1;\r\n\t\t/**子纹理的引用*/\r\n\t\tthis.texture=null;\r\n\t\t/**纹理显示时的坐标偏移X*/\r\n\t\tthis.offX=0;\r\n\t\t/**纹理显示时的坐标偏移Y*/\r\n\t\tthis.offY=0;\r\n\t\t/**当前要播放动画的纹理序列*/\r\n\t\tthis.textureArray=null;\r\n\t\t/**当前动画每帧的时间间隔*/\r\n\t\tthis.durationTimeArray=null;\r\n\t\t/**动画播放的总时间 */\r\n\t\tthis.animationTotalTime=0;\r\n\t\t/**true表示当前纹理，是一组动画，false表示当前只有一个纹理*/\r\n\t\tthis.isAnimation=false;\r\n\t\tthis._spriteNum=0;\r\n\t\t//当前动画有多少个显示对象\r\n\t\tthis._aniDic=null;\r\n\t\t//通过显示对象的唯一名字，去保存显示显示对象\r\n\t\tthis._frameIndex=0;\r\n\t\t//当前动画播放到第几帧\r\n\t\tthis._time=0;\r\n\t\t//距离上次动画刷新，过了多少长时间\r\n\t\tthis._interval=0;\r\n\t\t//每帧刷新的时间间隔\r\n\t\tthis._preFrameTime=0;\r\n\t}\r\n\r\n\t__class(TileTexSet,'laya.map.TileTexSet');\r\n\tvar __proto=TileTexSet.prototype;\r\n\t/**\r\n\t*加入一个动画显示对象到此动画中\r\n\t*@param aniName //显示对象的名字\r\n\t*@param sprite //显示对象\r\n\t*/\r\n\t__proto.addAniSprite=function(aniName,sprite){\r\n\t\tif (this.animationTotalTime==0){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this._aniDic==null){\r\n\t\t\tthis._aniDic={};\r\n\t\t}\r\n\t\tif (this._spriteNum==0){\r\n\t\t\tLaya.timer.frameLoop(3,this,this.animate);\r\n\t\t\tthis._preFrameTime=Browser.now();\r\n\t\t\tthis._frameIndex=0;\r\n\t\t\tthis._time=0;\r\n\t\t\tthis._interval=0;\r\n\t\t}\r\n\t\tthis._spriteNum++;\r\n\t\tthis._aniDic[aniName]=sprite;\r\n\t\tif (this.textureArray && this._frameIndex < this.textureArray.length){\r\n\t\t\tvar tTileTextureSet=this.textureArray[this._frameIndex];\r\n\t\t\tthis.drawTexture(sprite,tTileTextureSet);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*把动画画到所有注册的SPRITE上\r\n\t*/\r\n\t__proto.animate=function(){\r\n\t\tif (this.textureArray && this.textureArray.length > 0 && this.durationTimeArray && this.durationTimeArray.length > 0){\r\n\t\t\tvar tNow=Browser.now();\r\n\t\t\tthis._interval=tNow-this._preFrameTime;\r\n\t\t\tthis._preFrameTime=tNow;\r\n\t\t\tif (this._interval > this.animationTotalTime){\r\n\t\t\t\tthis._interval=this._interval % this.animationTotalTime;\r\n\t\t\t}\r\n\t\t\tthis._time+=this._interval;\r\n\t\t\tvar tTime=this.durationTimeArray[this._frameIndex];\r\n\t\t\twhile (this._time > tTime){\r\n\t\t\t\tthis._time-=tTime;\r\n\t\t\t\tthis._frameIndex++;\r\n\t\t\t\tif (this._frameIndex >=this.durationTimeArray.length || this._frameIndex >=this.textureArray.length){\r\n\t\t\t\t\tthis._frameIndex=0;\r\n\t\t\t\t};\r\n\t\t\t\tvar tTileTextureSet=this.textureArray[this._frameIndex];\r\n\t\t\t\tvar tSprite;\r\n\t\t\t\tfor (var p in this._aniDic){\r\n\t\t\t\t\ttSprite=this._aniDic[p];\r\n\t\t\t\t\tthis.drawTexture(tSprite,tTileTextureSet);\r\n\t\t\t\t}\r\n\t\t\t\ttTime=this.durationTimeArray[this._frameIndex];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.drawTexture=function(sprite,tileTextSet){\r\n\t\tsprite.graphics.clear();\r\n\t\tsprite.graphics.drawTexture(tileTextSet.texture,tileTextSet.offX,tileTextSet.offY);\r\n\t}\r\n\r\n\t/**\r\n\t*移除不需要更新的SPRITE\r\n\t*@param _name\r\n\t*/\r\n\t__proto.removeAniSprite=function(_name){\r\n\t\tif (this._aniDic && this._aniDic[_name]){\r\n\t\t\tdelete this._aniDic[_name];\r\n\t\t\tthis._spriteNum--\r\n\t\t\tif (this._spriteNum==0){\r\n\t\t\t\tLaya.timer.clear(this,this.animate);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*显示当前动画的使用情况\r\n\t*/\r\n\t__proto.showDebugInfo=function(){\r\n\t\tvar tInfo=null;\r\n\t\tif (this._spriteNum > 0){\r\n\t\t\ttInfo=\"TileTextureSet::gid:\"+this.gid.toString()+\" 动画数:\"+this._spriteNum.toString();\r\n\t\t}\r\n\t\treturn tInfo;\r\n\t}\r\n\r\n\t/**\r\n\t*清理\r\n\t*/\r\n\t__proto.clearAll=function(){\r\n\t\tthis.gid=-1;\r\n\t\tif (this.texture){\r\n\t\t\tthis.texture.destroy();\r\n\t\t\tthis.texture=null;\r\n\t\t}\r\n\t\tthis.offX=0;\r\n\t\tthis.offY=0;\r\n\t\tthis.textureArray=null;\r\n\t\tthis.durationTimeArray=null;\r\n\t\tthis.isAnimation=false;\r\n\t\tthis._spriteNum=0;\r\n\t\tthis._aniDic=null;\r\n\t\tthis._frameIndex=0;\r\n\t\tthis._preFrameTime=0;\r\n\t\tthis._time=0;\r\n\t\tthis._interval=0;\r\n\t}\r\n\r\n\treturn TileTexSet;\r\n})()\r\n\r\n\r\n/**\r\n*地图的每层都会分块渲染处理\r\n*本类就是地图的块数据\r\n*@author ...\r\n*/\r\n//class laya.map.GridSprite extends laya.display.Sprite\r\nvar GridSprite=(function(_super){\r\n\tfunction GridSprite(){\r\n\t\t/**相对于地图X轴的坐标*/\r\n\t\tthis.relativeX=0;\r\n\t\t/**相对于地图Y轴的坐标*/\r\n\t\tthis.relativeY=0;\r\n\t\t/**是否用于对象层的独立物件*/\r\n\t\tthis.isAloneObject=false;\r\n\t\t/**当前GRID中是否有动画*/\r\n\t\tthis.isHaveAnimation=false;\r\n\t\t/**当前GRID包含的动画*/\r\n\t\tthis.aniSpriteArray=null;\r\n\t\t/**当前GRID包含多少个TILE(包含动画)*/\r\n\t\tthis.drawImageNum=0;\r\n\t\tthis._map=null;\r\n\t\tGridSprite.__super.call(this);\r\n\t}\r\n\r\n\t__class(GridSprite,'laya.map.GridSprite',_super);\r\n\tvar __proto=GridSprite.prototype;\r\n\t/**\r\n\t*传入必要的参数，用于裁剪，跟确认此对象类型\r\n\t*@param map 把地图的引用传进来，参与一些裁剪计算\r\n\t*@param objectKey true:表示当前GridSprite是个活动对象，可以控制，false:地图层的组成块\r\n\t*/\r\n\t__proto.initData=function(map,objectKey){\r\n\t\t(objectKey===void 0)&& (objectKey=false);\r\n\t\tthis._map=map;\r\n\t\tthis.isAloneObject=objectKey;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setDisplay=function(value){\r\n\t\tif (!value){\r\n\t\t\tvar cc=this._$P.cacheCanvas;\r\n\t\t\tif (cc && cc.ctx){\r\n\t\t\t\tcc.ctx.canvas.destroy();\r\n\t\t\t\tcc.ctx=null;\r\n\t\t\t};\r\n\t\t\tvar fc=this._$P._filterCache;\r\n\t\t\tif (fc){\r\n\t\t\t\tfc.destroy();\r\n\t\t\t\tfc.recycle();\r\n\t\t\t\tthis._set$P('_filterCache',null);\r\n\t\t\t}\r\n\t\t\tthis._$P._isHaveGlowFilter && this._set$P('_isHaveGlowFilter',false);\r\n\t\t}\r\n\t\t_super.prototype._setDisplay.call(this,value);\r\n\t}\r\n\r\n\t/**\r\n\t*把一个动画对象绑定到当前GridSprite\r\n\t*@param sprite 动画的显示对象\r\n\t*/\r\n\t__proto.addAniSprite=function(sprite){\r\n\t\tif (this.aniSpriteArray==null){\r\n\t\t\tthis.aniSpriteArray=[];\r\n\t\t}\r\n\t\tthis.aniSpriteArray.push(sprite);\r\n\t}\r\n\r\n\t/**\r\n\t*显示当前GridSprite，并把上面的动画全部显示\r\n\t*/\r\n\t__proto.show=function(){\r\n\t\tif (!this.visible){\r\n\t\t\tthis.visible=true;\r\n\t\t\tif (!this.isAloneObject){\r\n\t\t\t\tvar tParent;\r\n\t\t\t\ttParent=this.parent;\r\n\t\t\t\tif (tParent){\r\n\t\t\t\t\ttParent.showGridSprite(this);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!Render.isWebGL&&this._map.autoCache){\r\n\t\t\t\tthis.cacheAs=this._map.autoCacheType;\r\n\t\t\t}\r\n\t\t\tif (this.aniSpriteArray==null){\r\n\t\t\t\treturn;\r\n\t\t\t};\r\n\t\t\tvar tAniSprite;\r\n\t\t\tfor (var i=0;i < this.aniSpriteArray.length;i++){\r\n\t\t\t\ttAniSprite=this.aniSpriteArray[i];\r\n\t\t\t\ttAniSprite.show();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*隐藏当前GridSprite，并把上面绑定的动画全部移除\r\n\t*/\r\n\t__proto.hide=function(){\r\n\t\tif (this.visible){\r\n\t\t\tthis.visible=false;\r\n\t\t\tif (!this.isAloneObject){\r\n\t\t\t\tvar tParent;\r\n\t\t\t\ttParent=this.parent;\r\n\t\t\t\tif (tParent){\r\n\t\t\t\t\ttParent.hideGridSprite(this);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (!Render.isWebGL&&this._map.autoCache){\r\n\t\t\t\tthis.cacheAs=\"none\";\r\n\t\t\t}\r\n\t\t\tif (this.aniSpriteArray==null){\r\n\t\t\t\treturn;\r\n\t\t\t};\r\n\t\t\tvar tAniSprite;\r\n\t\t\tfor (var i=0;i < this.aniSpriteArray.length;i++){\r\n\t\t\t\ttAniSprite=this.aniSpriteArray[i];\r\n\t\t\t\ttAniSprite.hide();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*刷新坐标，当我们自己控制一个GridSprite移动时，需要调用此函数，手动刷新\r\n\t*/\r\n\t__proto.updatePos=function(){\r\n\t\tif (this.isAloneObject){\r\n\t\t\tif (this._map){\r\n\t\t\t\tthis.x=this.relativeX;\r\n\t\t\t\tthis.y=this.relativeY;\r\n\t\t\t}\r\n\t\t\tif (this.x < 0 || this.x > this._map.viewPortWidth || this.y < 0 || this.y > this._map.viewPortHeight){\r\n\t\t\t\tthis.hide();\r\n\t\t\t\t}else {\r\n\t\t\t\tthis.show();\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tif (this._map){\r\n\t\t\t\tthis.x=this.relativeX;\r\n\t\t\t\tthis.y=this.relativeY;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*重置当前对象的所有属性\r\n\t*/\r\n\t__proto.clearAll=function(){\r\n\t\tif (this._map){\r\n\t\t\tthis._map=null;\r\n\t\t}\r\n\t\tthis.visible=false;\r\n\t\tvar tAniSprite;\r\n\t\tif (this.aniSpriteArray !=null){\r\n\t\t\tfor (var i=0;i < this.aniSpriteArray.length;i++){\r\n\t\t\t\ttAniSprite=this.aniSpriteArray[i];\r\n\t\t\t\ttAniSprite.clearAll();\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.destroy();\r\n\t\tthis.relativeX=0;\r\n\t\tthis.relativeY=0;\r\n\t\tthis.isHaveAnimation=false;\r\n\t\tthis.aniSpriteArray=null;\r\n\t\tthis.drawImageNum=0;\r\n\t}\r\n\r\n\treturn GridSprite;\r\n})(Sprite)\r\n\r\n\r\n/**\r\n*地图支持多层渲染（例如，地表层，植被层，建筑层等）\r\n*本类就是层级类\r\n*@author ...\r\n*/\r\n//class laya.map.MapLayer extends laya.display.Sprite\r\nvar MapLayer=(function(_super){\r\n\tfunction MapLayer(){\r\n\t\tthis._map=null;\r\n\t\tthis._mapData=null;\r\n\t\tthis._tileWidthHalf=0;\r\n\t\tthis._tileHeightHalf=0;\r\n\t\tthis._mapWidthHalf=0;\r\n\t\tthis._mapHeightHalf=0;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._gridSpriteArray=[];\r\n\t\tthis._objDic=null;\r\n\t\t//用来做字典，方便查询\r\n\t\tthis._dataDic=null;\r\n\t\t//临时变量\r\n\t\tthis._properties=null;\r\n\t\t/**被合到的层*/\r\n\t\tthis.tarLayer=null;\r\n\t\t/**当前Layer的名称*/\r\n\t\tthis.layerName=null;\r\n\t\t/**\r\n\t\t*当前需要更新的gridSprite列表\r\n\t\t*/\r\n\t\tthis._showGridList=[];\r\n\t\t/**\r\n\t\t*活动对象列表,活动对象不管是否显示都需要更新\r\n\t\t*/\r\n\t\tthis._aloneObjs=[];\r\n\t\tMapLayer.__super.call(this);\r\n\t\tthis._tempMapPos=new Point();\r\n\t}\r\n\r\n\t__class(MapLayer,'laya.map.MapLayer',_super);\r\n\tvar __proto=MapLayer.prototype;\r\n\t/**\r\n\t*解析LAYER数据，以及初始化一些数据\r\n\t*@param layerData 地图数据中，layer数据的引用\r\n\t*@param map 地图的引用\r\n\t*/\r\n\t__proto.init=function(layerData,map){\r\n\t\tthis._map=map;\r\n\t\tthis._mapData=layerData.data;\r\n\t\tvar tHeight=layerData.height;\r\n\t\tvar tWidth=layerData.width;\r\n\t\tvar tTileW=map.tileWidth;\r\n\t\tvar tTileH=map.tileHeight;\r\n\t\tthis.layerName=layerData.name;\r\n\t\tthis._properties=layerData.properties;\r\n\t\tthis.alpha=layerData.opacity;\r\n\t\tthis._tileWidthHalf=tTileW / 2;\r\n\t\tthis._tileHeightHalf=tTileH / 2;\r\n\t\tthis._mapWidthHalf=this._map.width / 2-this._tileWidthHalf;\r\n\t\tthis._mapHeightHalf=this._map.height / 2;\r\n\t\tswitch (layerData.type){\r\n\t\t\tcase \"tilelayer\":\r\n\t\t\t\tbreak ;\r\n\t\t\tcase \"objectgroup\":;\r\n\t\t\t\tvar tObjectGid=0;\r\n\t\t\t\tvar tArray=layerData.objects;\r\n\t\t\t\tif (tArray.length > 0){\r\n\t\t\t\t\tthis._objDic={};\r\n\t\t\t\t\tthis._dataDic={};\r\n\t\t\t\t};\r\n\t\t\t\tvar tObjectData;\r\n\t\t\t\tvar tObjWidth=NaN;\r\n\t\t\t\tvar tObjHeight=NaN;\r\n\t\t\t\tfor (var i=0;i < tArray.length;i++){\r\n\t\t\t\t\ttObjectData=tArray[i];\r\n\t\t\t\t\tthis._dataDic[tObjectData.name]=tObjectData;\r\n\t\t\t\t\tif (tObjectData.visible==true){\r\n\t\t\t\t\t\ttObjWidth=tObjectData.width;\r\n\t\t\t\t\t\ttObjHeight=tObjectData.height;\r\n\t\t\t\t\t\tvar tSprite=map.getSprite(tObjectData.gid,tObjWidth,tObjHeight);\r\n\t\t\t\t\t\tif (tSprite !=null){\r\n\t\t\t\t\t\tswitch (this._map.orientation){\r\n\t\t\t\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_ISOMETRIC*/\"isometric\":\r\n\t\t\t\t\t\t\t\tthis.getScreenPositionByTilePos(tObjectData.x / tTileH,tObjectData.y / tTileH,Point.TEMP);\r\n\t\t\t\t\t\t\t\ttSprite.pivot(tObjWidth / 2,tObjHeight / 2);\r\n\t\t\t\t\t\t\t\ttSprite.rotation=tObjectData.rotation;\r\n\t\t\t\t\t\t\t\ttSprite.x=tSprite.relativeX=Point.TEMP.x+this._map.viewPortX;\r\n\t\t\t\t\t\t\t\ttSprite.y=tSprite.relativeY=Point.TEMP.y+this._map.viewPortY-tObjHeight / 2;\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_STAGGERED*/\"staggered\":\r\n\t\t\t\t\t\t\t\ttSprite.pivot(tObjWidth / 2,tObjHeight / 2);\r\n\t\t\t\t\t\t\t\ttSprite.rotation=tObjectData.rotation;\r\n\t\t\t\t\t\t\t\ttSprite.x=tSprite.relativeX=tObjectData.x+tObjWidth / 2;\r\n\t\t\t\t\t\t\t\ttSprite.y=tSprite.relativeY=tObjectData.y-tObjHeight / 2;\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_ORTHOGONAL*/\"orthogonal\":\r\n\t\t\t\t\t\t\t\ttSprite.pivot(tObjWidth / 2,tObjHeight / 2);\r\n\t\t\t\t\t\t\t\ttSprite.rotation=tObjectData.rotation;\r\n\t\t\t\t\t\t\t\ttSprite.x=tSprite.relativeX=tObjectData.x+tObjWidth / 2;\r\n\t\t\t\t\t\t\t\ttSprite.y=tSprite.relativeY=tObjectData.y-tObjHeight / 2;\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_HEXAGONAL*/\"hexagonal\":\r\n\t\t\t\t\t\t\t\ttSprite.x=tSprite.relativeX=tObjectData.x;\r\n\t\t\t\t\t\t\t\ttSprite.y=tSprite.relativeY=tObjectData.y;\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.addChild(tSprite);\r\n\t\t\t\t\t\tthis._gridSpriteArray.push(tSprite);\r\n\t\t\t\t\t\tif (tSprite.isAloneObject){\r\n\t\t\t\t\t\t\tthis._showGridList.push(tSprite);\r\n\t\t\t\t\t\t\tthis._aloneObjs.push(tSprite);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis._objDic[tObjectData.name]=tSprite;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tbreak ;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*通过名字获取控制对象，如果找不到返回为null\r\n\t*@param objName 所要获取对象的名字\r\n\t*@return\r\n\t*/\r\n\t__proto.getObjectByName=function(objName){\r\n\t\tif (this._objDic){\r\n\t\t\treturn this._objDic[objName];\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*通过名字获取数据，如果找不到返回为null\r\n\t*@param objName 所要获取对象的名字\r\n\t*@return\r\n\t*/\r\n\t__proto.getObjectDataByName=function(objName){\r\n\t\tif (this._dataDic){\r\n\t\t\treturn this._dataDic[objName];\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*得到地图层的自定义属性\r\n\t*@param name\r\n\t*@return\r\n\t*/\r\n\t__proto.getLayerProperties=function(name){\r\n\t\tif (this._properties){\r\n\t\t\treturn this._properties[name];\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*得到指定格子的数据\r\n\t*@param tileX 格子坐标X\r\n\t*@param tileY 格子坐标Y\r\n\t*@return\r\n\t*/\r\n\t__proto.getTileData=function(tileX,tileY){\r\n\t\tif (tileY >=0 && tileY < this._map.numRowsTile && tileX >=0 && tileX < this._map.numColumnsTile){\r\n\t\t\tvar tIndex=tileY *this._map.numColumnsTile+tileX;\r\n\t\t\tvar tMapData=this._mapData;\r\n\t\t\tif (tMapData !=null && tIndex < tMapData.length){\r\n\t\t\t\treturn tMapData[tIndex];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn 0;\r\n\t}\r\n\r\n\t/**\r\n\t*通过地图坐标得到屏幕坐标\r\n\t*@param tileX 格子坐标X\r\n\t*@param tileY 格子坐标Y\r\n\t*@param screenPos 把计算好的屏幕坐标数据，放到此对象中\r\n\t*/\r\n\t__proto.getScreenPositionByTilePos=function(tileX,tileY,screenPos){\r\n\t\tif (screenPos){\r\n\t\t\tswitch (this._map.orientation){\r\n\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_ISOMETRIC*/\"isometric\":\r\n\t\t\t\t\tscreenPos.x=this._map.width / 2-(tileY-tileX)*this._tileWidthHalf;\r\n\t\t\t\t\tscreenPos.y=(tileY+tileX)*this._tileHeightHalf;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_STAGGERED*/\"staggered\":\r\n\t\t\t\t\ttileX=Math.floor(tileX);\r\n\t\t\t\t\ttileY=Math.floor(tileY);\r\n\t\t\t\t\tscreenPos.x=tileX *this._map.tileWidth+(tileY & 1)*this._tileWidthHalf;\r\n\t\t\t\t\tscreenPos.y=tileY *this._tileHeightHalf;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_ORTHOGONAL*/\"orthogonal\":\r\n\t\t\t\t\tscreenPos.x=tileX *this._map.tileWidth;\r\n\t\t\t\t\tscreenPos.y=tileY *this._map.tileHeight;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_HEXAGONAL*/\"hexagonal\":\r\n\t\t\t\t\ttileX=Math.floor(tileX);\r\n\t\t\t\t\ttileY=Math.floor(tileY);\r\n\t\t\t\t\tvar tTileHeight=this._map.tileHeight *2 / 3;\r\n\t\t\t\t\tscreenPos.x=(tileX *this._map.tileWidth+tileY % 2 *this._tileWidthHalf)% this._map.gridWidth;\r\n\t\t\t\t\tscreenPos.y=(tileY *tTileHeight)% this._map.gridHeight;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t\tscreenPos.x=(screenPos.x+this._map.viewPortX)*this._map.scale;\r\n\t\t\tscreenPos.y=(screenPos.y+this._map.viewPortY)*this._map.scale;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*通过屏幕坐标来获取选中格子的数据\r\n\t*@param screenX 屏幕坐标x\r\n\t*@param screenY 屏幕坐标y\r\n\t*@return\r\n\t*/\r\n\t__proto.getTileDataByScreenPos=function(screenX,screenY){\r\n\t\tvar tData=0;\r\n\t\tif (this.getTilePositionByScreenPos(screenX,screenY,this._tempMapPos)){\r\n\t\t\ttData=this.getTileData(Math.floor(this._tempMapPos.x),Math.floor(this._tempMapPos.y));\r\n\t\t}\r\n\t\treturn tData;\r\n\t}\r\n\r\n\t/**\r\n\t*通过屏幕坐标来获取选中格子的索引\r\n\t*@param screenX 屏幕坐标x\r\n\t*@param screenY 屏幕坐标y\r\n\t*@param result 把计算好的格子坐标，放到此对象中\r\n\t*@return\r\n\t*/\r\n\t__proto.getTilePositionByScreenPos=function(screenX,screenY,result){\r\n\t\tscreenX=screenX/this._map.scale-this._map.viewPortX;\r\n\t\tscreenY=screenY/this._map.scale-this._map.viewPortY;\r\n\t\tvar tTileW=this._map.tileWidth;\r\n\t\tvar tTileH=this._map.tileHeight;\r\n\t\tvar tV=0;\r\n\t\tvar tU=0;\r\n\t\tswitch (this._map.orientation){\r\n\t\t\tcase /*laya.map.TiledMap.ORIENTATION_ISOMETRIC*/\"isometric\":;\r\n\t\t\t\tvar tDirX=screenX-this._map.width / 2;\r\n\t\t\t\tvar tDirY=screenY;\r\n\t\t\t\ttV=-(tDirX / tTileW-tDirY / tTileH);\r\n\t\t\t\ttU=tDirX / tTileW+tDirY / tTileH;\r\n\t\t\t\tif (result){\r\n\t\t\t\t\tresult.x=tU;\r\n\t\t\t\t\tresult.y=tV;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase /*laya.map.TiledMap.ORIENTATION_STAGGERED*/\"staggered\":\r\n\t\t\t\tif (result){\r\n\t\t\t\t\tvar cx=0,cy=0,rx=0,ry=0;\r\n\t\t\t\t\tcx=Math.floor(screenX / tTileW)*tTileW+tTileW / 2;\r\n\t\t\t\t\tcy=Math.floor(screenY / tTileH)*tTileH+tTileH / 2;\r\n\t\t\t\t\trx=(screenX-cx)*tTileH / 2;\r\n\t\t\t\t\try=(screenY-cy)*tTileW / 2;\r\n\t\t\t\t\tif (Math.abs(rx)+Math.abs(ry)<=tTileW *tTileH / 4){\r\n\t\t\t\t\t\ttU=Math.floor(screenX / tTileW);\r\n\t\t\t\t\t\ttV=Math.floor(screenY / tTileH)*2;\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tscreenX=screenX-tTileW / 2;\r\n\t\t\t\t\t\ttU=Math.floor(screenX / tTileW)+1;\r\n\t\t\t\t\t\tscreenY=screenY-tTileH / 2;\r\n\t\t\t\t\t\ttV=Math.floor(screenY / tTileH)*2+1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresult.x=tU-(tV & 1);\r\n\t\t\t\t\tresult.y=tV;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase /*laya.map.TiledMap.ORIENTATION_ORTHOGONAL*/\"orthogonal\":\r\n\t\t\t\ttU=screenX / tTileW;\r\n\t\t\t\ttV=screenY / tTileH;\r\n\t\t\t\tif (result){\r\n\t\t\t\t\tresult.x=tU;\r\n\t\t\t\t\tresult.y=tV;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t\tbreak ;\r\n\t\t\tcase /*laya.map.TiledMap.ORIENTATION_HEXAGONAL*/\"hexagonal\":;\r\n\t\t\t\tvar tTileHeight=tTileH *2 / 3;\r\n\t\t\t\ttV=screenY / tTileHeight;\r\n\t\t\t\ttU=(screenX-tV % 2 *this._tileWidthHalf)/ tTileW;\r\n\t\t\t\tif (result){\r\n\t\t\t\t\tresult.x=tU;\r\n\t\t\t\t\tresult.y=tV;\r\n\t\t\t\t}\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t*得到一个GridSprite\r\n\t*@param gridX 当前Grid的X轴索引\r\n\t*@param gridY 当前Grid的Y轴索引\r\n\t*@return 一个GridSprite对象\r\n\t*/\r\n\t__proto.getDrawSprite=function(gridX,gridY){\r\n\t\tvar tSprite=new GridSprite();\r\n\t\ttSprite.relativeX=gridX *this._map.gridWidth;\r\n\t\ttSprite.relativeY=gridY *this._map.gridHeight;\r\n\t\ttSprite.initData(this._map);\r\n\t\ttSprite.updatePos();\r\n\t\tthis._gridSpriteArray.push(tSprite);\r\n\t\treturn tSprite;\r\n\t}\r\n\r\n\t/**\r\n\t*将gridSprite设为显示状态\r\n\t*@param gridSprite\r\n\t*/\r\n\t__proto.showGridSprite=function(gridSprite){\r\n\t\tvar gridList=this._showGridList;\r\n\t\tvar i=0,len=0;\r\n\t\tlen=gridList.length;\r\n\t\tvar ok_i=-1;\r\n\t\tvar tGridSprite;\r\n\t\tfor (i=0;i < len;i++){\r\n\t\t\ttGridSprite=gridList[i];\r\n\t\t\tif (tGridSprite==gridSprite)return;\r\n\t\t\tif (!tGridSprite.isAloneObject && !tGridSprite.visible){\r\n\t\t\t\tok_i=i;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (ok_i >=0){\r\n\t\t\tgridList[ok_i]=gridSprite;\r\n\t\t\t}else{\r\n\t\t\tgridList.push(gridSprite);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*将gridSprite设为隐藏状态\r\n\t*@param gridSprite\r\n\t*\r\n\t*/\r\n\t__proto.hideGridSprite=function(gridSprite){\r\n\t\tgridSprite.visible=false;\r\n\t}\r\n\r\n\t/**\r\n\t*更新此层中块的坐标\r\n\t*手动刷新的目的是，保持层级的宽和高保持最小，加快渲染\r\n\t*/\r\n\t__proto.updateGridPos=function(){\r\n\t\tvar tSprite;\r\n\t\tvar tList;\r\n\t\ttList=this._showGridList;\r\n\t\tvar len=0;\r\n\t\tlen=tList.length;\r\n\t\tfor (var i=0;i < len;i++){\r\n\t\t\ttSprite=tList[i];\r\n\t\t\tif ((tSprite._style.visible || tSprite.isAloneObject)&& tSprite.drawImageNum > 0){\r\n\t\t\t\ttSprite.updatePos();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*更新此层中的活动对象\r\n\t*/\r\n\t__proto.updateAloneObject=function(){\r\n\t\tvar tSprite;\r\n\t\tvar tList;\r\n\t\ttList=this._aloneObjs;\r\n\t\tvar len=0;\r\n\t\tlen=tList.length;\r\n\t\tfor (var i=0;i < len;i++){\r\n\t\t\ttSprite=tList[i];\r\n\t\t\tif (tSprite.drawImageNum > 0){\r\n\t\t\t\ttSprite.updatePos();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*渲染时使用需要更新的列表进行渲染，减少遍历\r\n\t*@param context\r\n\t*@param x\r\n\t*@param y\r\n\t*\r\n\t*/\r\n\t__proto.render=function(context,x,y){\r\n\t\tvar childs=this._childs;\r\n\t\tthis._childs=this._showGridList;\r\n\t\t_super.prototype.render.call(this,context,x,y);\r\n\t\tthis._childs=childs;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*把tile画到指定的显示对象上\r\n\t*@param gridSprite 被指定显示的目标\r\n\t*@param tileX 格子的X轴坐标\r\n\t*@param tileY 格子的Y轴坐标\r\n\t*@return\r\n\t*/\r\n\t__proto.drawTileTexture=function(gridSprite,tileX,tileY){\r\n\t\tif (tileY >=0 && tileY < this._map.numRowsTile && tileX >=0 && tileX < this._map.numColumnsTile){\r\n\t\t\tvar tIndex=tileY *this._map.numColumnsTile+tileX;\r\n\t\t\tvar tMapData=this._mapData;\r\n\t\t\tif (tMapData !=null && tIndex < tMapData.length){\r\n\t\t\t\tif (tMapData[tIndex] !=0){\r\n\t\t\t\t\tvar tTileTexSet=this._map.getTexture(tMapData[tIndex]);\r\n\t\t\t\t\tif (tTileTexSet){\r\n\t\t\t\t\t\tvar tX=0;\r\n\t\t\t\t\t\tvar tY=0;\r\n\t\t\t\t\t\tvar tTexture=tTileTexSet.texture;\r\n\t\t\t\t\t\tswitch (this._map.orientation){\r\n\t\t\t\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_STAGGERED*/\"staggered\":\r\n\t\t\t\t\t\t\t\ttX=tileX *this._map.tileWidth % this._map.gridWidth+(tileY & 1)*this._tileWidthHalf;\r\n\t\t\t\t\t\t\t\ttY=tileY *this._tileHeightHalf % this._map.gridHeight;\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_ORTHOGONAL*/\"orthogonal\":\r\n\t\t\t\t\t\t\t\ttX=tileX *this._map.tileWidth % this._map.gridWidth;\r\n\t\t\t\t\t\t\t\ttY=tileY *this._map.tileHeight % this._map.gridHeight;\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_ISOMETRIC*/\"isometric\":\r\n\t\t\t\t\t\t\t\ttX=(this._mapWidthHalf+(tileX-tileY)*this._tileWidthHalf)% this._map.gridWidth;\r\n\t\t\t\t\t\t\t\ttY=((tileX+tileY)*this._tileHeightHalf)% this._map.gridHeight;\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\tcase /*laya.map.TiledMap.ORIENTATION_HEXAGONAL*/\"hexagonal\":;\r\n\t\t\t\t\t\t\t\tvar tTileHeight=this._map.tileHeight *2 / 3;\r\n\t\t\t\t\t\t\t\ttX=(tileX *this._map.tileWidth+tileY % 2 *this._tileWidthHalf)% this._map.gridWidth;\r\n\t\t\t\t\t\t\t\ttY=(tileY *tTileHeight)% this._map.gridHeight;\r\n\t\t\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (tTileTexSet.isAnimation){\r\n\t\t\t\t\t\t\tvar tAnimationSprite=new TileAniSprite();\r\n\t\t\t\t\t\t\ttAnimationSprite.x=tX;\r\n\t\t\t\t\t\t\ttAnimationSprite.y=tY;\r\n\t\t\t\t\t\t\ttAnimationSprite.setTileTextureSet(tIndex.toString(),tTileTexSet);\r\n\t\t\t\t\t\t\tgridSprite.addAniSprite(tAnimationSprite);\r\n\t\t\t\t\t\t\tgridSprite.addChild(tAnimationSprite);\r\n\t\t\t\t\t\t\tgridSprite.isHaveAnimation=true;\r\n\t\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\t\tgridSprite.graphics.drawTexture(tTileTexSet.texture,tX+tTileTexSet.offX,tY+tTileTexSet.offY);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*清理当前对象\r\n\t*/\r\n\t__proto.clearAll=function(){\r\n\t\tthis._map=null;\r\n\t\tthis._mapData=null;\r\n\t\tthis._tileWidthHalf=0;\r\n\t\tthis._tileHeightHalf=0;\r\n\t\tthis._mapWidthHalf=0;\r\n\t\tthis._mapHeightHalf=0;\r\n\t\tthis.layerName=null;\r\n\t\tvar i=0;\r\n\t\tif (this._objDic){\r\n\t\t\tfor (var p in this._objDic){\r\n\t\t\t\tdelete this._objDic[p];\r\n\t\t\t}\r\n\t\t\tthis._objDic=null;\r\n\t\t}\r\n\t\tif (this._dataDic){\r\n\t\t\tfor (p in this._dataDic){\r\n\t\t\t\tdelete this._dataDic[p];\r\n\t\t\t}\r\n\t\t\tthis._dataDic=null;\r\n\t\t};\r\n\t\tvar tGridSprite;\r\n\t\tfor (i=0;i < this._gridSpriteArray.length;i++){\r\n\t\t\ttGridSprite=this._gridSpriteArray[i];\r\n\t\t\ttGridSprite.clearAll();\r\n\t\t}\r\n\t\tthis._properties=null;\r\n\t\tthis._tempMapPos=null;\r\n\t\tthis.tarLayer=null;\r\n\t}\r\n\r\n\treturn MapLayer;\r\n})(Sprite)\r\n\r\n\r\n/**\r\n*TildMap的动画显示对象（一个动画（TileTexSet），可以绑定多个动画显示对象（TileAniSprite））\r\n*@author ...\r\n*/\r\n//class laya.map.TileAniSprite extends laya.display.Sprite\r\nvar TileAniSprite=(function(_super){\r\n\tfunction TileAniSprite(){\r\n\t\tthis._tileTextureSet=null;\r\n\t\t//动画的引用\r\n\t\tthis._aniName=null;\r\n\t\tTileAniSprite.__super.call(this);\r\n\t}\r\n\r\n\t__class(TileAniSprite,'laya.map.TileAniSprite',_super);\r\n\tvar __proto=TileAniSprite.prototype;\r\n\t/**\r\n\t*确定当前显示对象的名称以及属于哪个动画\r\n\t*@param aniName 当前动画显示对象的名字，名字唯一\r\n\t*@param tileTextureSet 当前显示对象属于哪个动画（一个动画，可以绑定多个同类显示对象）\r\n\t*/\r\n\t__proto.setTileTextureSet=function(aniName,tileTextureSet){\r\n\t\tthis._aniName=aniName;\r\n\t\tthis._tileTextureSet=tileTextureSet;\r\n\t\ttileTextureSet.addAniSprite(this._aniName,this);\r\n\t}\r\n\r\n\t/**\r\n\t*把当前动画加入到对应的动画刷新列表中\r\n\t*/\r\n\t__proto.show=function(){\r\n\t\tthis._tileTextureSet.addAniSprite(this._aniName,this);\r\n\t}\r\n\r\n\t/**\r\n\t*把当前动画从对应的动画刷新列表中移除\r\n\t*/\r\n\t__proto.hide=function(){\r\n\t\tthis._tileTextureSet.removeAniSprite(this._aniName);\r\n\t}\r\n\r\n\t/**\r\n\t*清理\r\n\t*/\r\n\t__proto.clearAll=function(){\r\n\t\tthis._tileTextureSet.removeAniSprite(this._aniName);\r\n\t\tthis.destroy();\r\n\t\tthis._tileTextureSet=null;\r\n\t\tthis._aniName=null;\r\n\t}\r\n\r\n\treturn TileAniSprite;\r\n})(Sprite)\r\n\r\n\r\n\tLaya.__init([TiledMap]);\r\n})(window,document,Laya);\r\n\r\nif (typeof define === 'function' && define.amd){\r\n\tdefine('laya.core', ['require', \"exports\"], function(require, exports) {\r\n        'use strict';\r\n        Object.defineProperty(exports, '__esModule', { value: true });\r\n        for (var i in Laya) {\r\n\t\t\tvar o = Laya[i];\r\n            o && o.__isclass && (exports[i] = o);\r\n        }\r\n    });\r\n}","\r\n(function(window,document,Laya){\r\n\tvar __un=Laya.un,__uns=Laya.uns,__static=Laya.static,__class=Laya.class,__getset=Laya.getset,__newvec=Laya.__newvec;\r\n\r\n\tvar Animation=laya.display.Animation,Browser=laya.utils.Browser,ClassUtils=laya.utils.ClassUtils,ColorFilter=laya.filters.ColorFilter;\r\n\tvar Ease=laya.utils.Ease,Event=laya.events.Event,EventDispatcher=laya.events.EventDispatcher,Font=laya.display.css.Font;\r\n\tvar FrameAnimation=laya.display.FrameAnimation,Graphics=laya.display.Graphics,Handler=laya.utils.Handler;\r\n\tvar Input=laya.display.Input,Loader=laya.net.Loader,Node=laya.display.Node,Point=laya.maths.Point,Rectangle=laya.maths.Rectangle;\r\n\tvar Render=laya.renders.Render,Sprite=laya.display.Sprite,Text=laya.display.Text,Texture=laya.resource.Texture;\r\n\tvar Tween=laya.utils.Tween,Utils=laya.utils.Utils,WeakObject=laya.utils.WeakObject;\r\nLaya.interface('laya.ui.IItem');\r\nLaya.interface('laya.ui.ISelect');\r\nLaya.interface('laya.ui.IRender');\r\nLaya.interface('laya.ui.IComponent');\r\nLaya.interface('laya.ui.IBox','IComponent');\r\n/**\r\n*<code>LayoutStyle</code> 是一个布局样式类。\r\n*/\r\n//class laya.ui.LayoutStyle\r\nvar LayoutStyle=(function(){\r\n\tfunction LayoutStyle(){\r\n\t\t/**一个布尔值，表示是否有效。*/\r\n\t\tthis.enable=false;\r\n\t\tthis.top=NaN;\r\n\t\tthis.bottom=NaN;\r\n\t\tthis.left=NaN;\r\n\t\tthis.right=NaN;\r\n\t\tthis.centerX=NaN;\r\n\t\tthis.centerY=NaN;\r\n\t\tthis.anchorX=NaN;\r\n\t\tthis.anchorY=NaN;\r\n\t}\r\n\r\n\t__class(LayoutStyle,'laya.ui.LayoutStyle');\r\n\t__static(LayoutStyle,\r\n\t['EMPTY',function(){return this.EMPTY=new LayoutStyle();}\r\n\t]);\r\n\treturn LayoutStyle;\r\n})()\r\n\r\n\r\n/**\r\n*<code>Styles</code> 定义了组件常用的样式属性。\r\n*/\r\n//class laya.ui.Styles\r\nvar Styles=(function(){\r\n\tfunction Styles(){}\r\n\t__class(Styles,'laya.ui.Styles');\r\n\tStyles.labelColor=\"#000000\";\r\n\tStyles.buttonStateNum=3;\r\n\tStyles.scrollBarMinNum=15;\r\n\tStyles.scrollBarDelayTime=500;\r\n\t__static(Styles,\r\n\t['defaultSizeGrid',function(){return this.defaultSizeGrid=[4,4,4,4,0];},'labelPadding',function(){return this.labelPadding=[2,2,2,2];},'inputLabelPadding',function(){return this.inputLabelPadding=[1,1,1,3];},'buttonLabelColors',function(){return this.buttonLabelColors=[\"#32556b\",\"#32cc6b\",\"#ff0000\",\"#C0C0C0\"];},'comboBoxItemColors',function(){return this.comboBoxItemColors=[\"#5e95b6\",\"#ffffff\",\"#000000\",\"#8fa4b1\",\"#ffffff\"];}\r\n\t]);\r\n\treturn Styles;\r\n})()\r\n\r\n\r\n/**\r\n*<code>UIUtils</code> 是文本工具集。\r\n*/\r\n//class laya.ui.UIUtils\r\nvar UIUtils=(function(){\r\n\tfunction UIUtils(){}\r\n\t__class(UIUtils,'laya.ui.UIUtils');\r\n\tUIUtils.fillArray=function(arr,str,type){\r\n\t\tvar temp=arr.concat();\r\n\t\tif (str){\r\n\t\t\tvar a=str.split(\",\");\r\n\t\t\tfor (var i=0,n=Math.min(temp.length,a.length);i < n;i++){\r\n\t\t\t\tvar value=a[i];\r\n\t\t\t\ttemp[i]=(value==\"true\" ? true :(value==\"false\" ? false :value));\r\n\t\t\t\tif (type !=null)temp[i]=type(value);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn temp;\r\n\t}\r\n\r\n\tUIUtils.toColor=function(color){\r\n\t\treturn Utils.toHexColor(color);\r\n\t}\r\n\r\n\tUIUtils.gray=function(traget,isGray){\r\n\t\t(isGray===void 0)&& (isGray=true);\r\n\t\tif (isGray){\r\n\t\t\tUIUtils.addFilter(traget,UIUtils.grayFilter);\r\n\t\t\t}else {\r\n\t\t\tUIUtils.clearFilter(traget,ColorFilter);\r\n\t\t}\r\n\t}\r\n\r\n\tUIUtils.addFilter=function(target,filter){\r\n\t\tvar filters=target.filters || [];\r\n\t\tfilters.push(filter);\r\n\t\ttarget.filters=filters;\r\n\t}\r\n\r\n\tUIUtils.clearFilter=function(target,filterType){\r\n\t\tvar filters=target.filters;\r\n\t\tif (filters !=null && filters.length > 0){\r\n\t\t\tfor (var i=filters.length-1;i >-1;i--){\r\n\t\t\t\tvar filter=filters[i];\r\n\t\t\t\tif (Laya.__typeof(filter,filterType))filters.splice(i,1);\r\n\t\t\t}\r\n\t\t\ttarget.filters=filters;\r\n\t\t}\r\n\t}\r\n\r\n\tUIUtils._getReplaceStr=function(word){\r\n\t\treturn UIUtils.escapeSequence[word];\r\n\t}\r\n\r\n\tUIUtils.adptString=function(str){\r\n\t\treturn str.replace(/\\\\(\\w)/g,UIUtils._getReplaceStr);\r\n\t}\r\n\r\n\tUIUtils.getBindFun=function(value){\r\n\t\tvar fun=UIUtils._funMap.get(value);\r\n\t\tif (fun==null){\r\n\t\t\tvar temp=\"\\\"\"+value+\"\\\"\";\r\n\t\t\ttemp=temp.replace(/^\"\\${|}\"$/g,\"\").replace(/\\${/g,\"\\\"+\").replace(/}/g,\"+\\\"\");\r\n\t\t\tvar str=\"(function(data){if(data==null)return;with(data){try{\\nreturn \"+temp+\"\\n}catch(e){}}})\";\r\n\t\t\tfun=Laya._runScript(str);\r\n\t\t\tUIUtils._funMap.set(value,fun);\r\n\t\t}\r\n\t\treturn fun;\r\n\t}\r\n\r\n\t__static(UIUtils,\r\n\t['grayFilter',function(){return this.grayFilter=new ColorFilter([0.3086,0.6094,0.082,0,0,0.3086,0.6094,0.082,0,0,0.3086,0.6094,0.082,0,0,0,0,0,1,0]);},'escapeSequence',function(){return this.escapeSequence={\"\\\\n\":\"\\n\",\"\\\\t\":\"\\t\"};},'_funMap',function(){return this._funMap=new WeakObject();}\r\n\t]);\r\n\treturn UIUtils;\r\n})()\r\n\r\n\r\n/**全局配置*/\r\n//class UIConfig\r\nvar UIConfig=(function(){\r\n\tfunction UIConfig(){}\r\n\t__class(UIConfig,'UIConfig');\r\n\tUIConfig.touchScrollEnable=true;\r\n\tUIConfig.mouseWheelEnable=true;\r\n\tUIConfig.showButtons=true;\r\n\tUIConfig.popupBgColor=\"#000000\";\r\n\tUIConfig.popupBgAlpha=0.5;\r\n\tUIConfig.closeDialogOnSide=true;\r\n\treturn UIConfig;\r\n})()\r\n\r\n\r\n/**\r\n*<code>AutoBitmap</code> 类是用于表示位图图像或绘制图形的显示对象。\r\n*<p>封装了位置，宽高及九宫格的处理，供UI组件使用。</p>\r\n*/\r\n//class laya.ui.AutoBitmap extends laya.display.Graphics\r\nvar AutoBitmap=(function(_super){\r\n\tfunction AutoBitmap(){\r\n\t\t/**@private 是否自动缓存命令*/\r\n\t\tthis.autoCacheCmd=true;\r\n\t\t/**@private 宽度*/\r\n\t\tthis._width=0;\r\n\t\t/**@private 高度*/\r\n\t\tthis._height=0;\r\n\t\t/**@private 源数据*/\r\n\t\tthis._source=null;\r\n\t\t/**@private 网格数据*/\r\n\t\tthis._sizeGrid=null;\r\n\t\t/**@private */\r\n\t\tthis._isChanged=false;\r\n\t\t/**@private */\r\n\t\tthis._offset=null;\r\n\t\tAutoBitmap.__super.call(this);\r\n\t}\r\n\r\n\t__class(AutoBitmap,'laya.ui.AutoBitmap',_super);\r\n\tvar __proto=AutoBitmap.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(){\r\n\t\t_super.prototype.destroy.call(this);\r\n\t\tthis._source=null;\r\n\t\tthis._sizeGrid=null;\r\n\t\tthis._offset=null;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setChanged=function(){\r\n\t\tif (!this._isChanged){\r\n\t\t\tthis._isChanged=true;\r\n\t\t\tLaya.timer.callLater(this,this.changeSource);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*修改纹理资源。\r\n\t*/\r\n\t__proto.changeSource=function(){\r\n\t\tthis._isChanged=false;\r\n\t\tvar source=this._source;\r\n\t\tif (!source || !source.bitmap)return;\r\n\t\tvar width=this.width;\r\n\t\tvar height=this.height;\r\n\t\tvar sizeGrid=this._sizeGrid;\r\n\t\tvar sw=source.sourceWidth;\r\n\t\tvar sh=source.sourceHeight;\r\n\t\tif (!sizeGrid || (sw===width && sh===height)){\r\n\t\t\tthis.cleanByTexture(source,this._offset ? this._offset[0] :0,this._offset ? this._offset[1] :0,width,height);\r\n\t\t\t}else {\r\n\t\t\tsource.$_GID || (source.$_GID=Utils.getGID());\r\n\t\t\tvar key=source.$_GID+\".\"+width+\".\"+height+\".\"+sizeGrid.join(\".\");\r\n\t\t\tif (Utils.isOKCmdList(WeakObject.I.get(key))){\r\n\t\t\t\tthis.cmds=WeakObject.I.get(key);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.clear();\r\n\t\t\tvar top=sizeGrid[0];\r\n\t\t\tvar right=sizeGrid[1];\r\n\t\t\tvar bottom=sizeGrid[2];\r\n\t\t\tvar left=sizeGrid[3];\r\n\t\t\tvar repeat=sizeGrid[4];\r\n\t\t\tvar needClip=false;\r\n\t\t\tif (width==sw){\r\n\t\t\t\tleft=right=0;\r\n\t\t\t}\r\n\t\t\tif (height==sh){\r\n\t\t\t\ttop=bottom=0;\r\n\t\t\t}\r\n\t\t\tif (left+right > width){\r\n\t\t\t\tvar clipWidth=width;\r\n\t\t\t\tneedClip=true;\r\n\t\t\t\twidth=left+right;\r\n\t\t\t\tthis.save();\r\n\t\t\t\tthis.clipRect(0,0,clipWidth,height);\r\n\t\t\t}\r\n\t\t\tleft && top && this.drawTexture(AutoBitmap.getTexture(source,0,0,left,top),0,0,left,top);\r\n\t\t\tright && top && this.drawTexture(AutoBitmap.getTexture(source,sw-right,0,right,top),width-right,0,right,top);\r\n\t\t\tleft && bottom && this.drawTexture(AutoBitmap.getTexture(source,0,sh-bottom,left,bottom),0,height-bottom,left,bottom);\r\n\t\t\tright && bottom && this.drawTexture(AutoBitmap.getTexture(source,sw-right,sh-bottom,right,bottom),width-right,height-bottom,right,bottom);\r\n\t\t\ttop && this.drawBitmap(repeat,AutoBitmap.getTexture(source,left,0,sw-left-right,top),left,0,width-left-right,top);\r\n\t\t\tbottom && this.drawBitmap(repeat,AutoBitmap.getTexture(source,left,sh-bottom,sw-left-right,bottom),left,height-bottom,width-left-right,bottom);\r\n\t\t\tleft && this.drawBitmap(repeat,AutoBitmap.getTexture(source,0,top,left,sh-top-bottom),0,top,left,height-top-bottom);\r\n\t\t\tright && this.drawBitmap(repeat,AutoBitmap.getTexture(source,sw-right,top,right,sh-top-bottom),width-right,top,right,height-top-bottom);\r\n\t\t\tthis.drawBitmap(repeat,AutoBitmap.getTexture(source,left,top,sw-left-right,sh-top-bottom),left,top,width-left-right,height-top-bottom);\r\n\t\t\tif (needClip)this.restore();\r\n\t\t\tif (this.autoCacheCmd && !Render.isConchApp)WeakObject.I.set(key,this.cmds);\r\n\t\t}\r\n\t\tthis._repaint();\r\n\t}\r\n\r\n\t__proto.drawBitmap=function(repeat,tex,x,y,width,height){\r\n\t\t(width===void 0)&& (width=0);\r\n\t\t(height===void 0)&& (height=0);\r\n\t\tif (width < 0.1 || height < 0.1)return;\r\n\t\tif (repeat && (tex.width !=width || tex.height !=height))this.fillTexture(tex,x,y,width,height);\r\n\t\telse this.drawTexture(tex,x,y,width,height);\r\n\t}\r\n\r\n\t__proto.clear=function(recoverCmds){\r\n\t\t(recoverCmds===void 0)&& (recoverCmds=true);\r\n\t\t_super.prototype.clear.call(this,false);\r\n\t}\r\n\r\n\t/**\r\n\t*当前实例的有效缩放网格数据。\r\n\t*<p>如果设置为null,则在应用任何缩放转换时，将正常缩放整个显示对象。</p>\r\n\t*<p>数据格式：[上边距,右边距,下边距,左边距,是否重复填充(值为0：不重复填充，1：重复填充)]。\r\n\t*<ul><li>例如：[4,4,4,4,1]</li></ul></p>\r\n\t*<p> <code>sizeGrid</code> 的值如下所示：\r\n\t*<ol>\r\n\t*<li>上边距</li>\r\n\t*<li>右边距</li>\r\n\t*<li>下边距</li>\r\n\t*<li>左边距</li>\r\n\t*<li>是否重复填充(值为0：不重复填充，1：重复填充)</li>\r\n\t*</ol></p>\r\n\t*<p>当定义 <code>sizeGrid</code> 属性时，该显示对象被分割到以 <code>sizeGrid</code> 数据中的\"上边距,右边距,下边距,左边距\" 组成的矩形为基础的具有九个区域的网格中，该矩形定义网格的中心区域。网格的其它八个区域如下所示：\r\n\t*<ul>\r\n\t*<li>矩形上方的区域</li>\r\n\t*<li>矩形外的右上角</li>\r\n\t*<li>矩形左侧的区域</li>\r\n\t*<li>矩形右侧的区域</li>\r\n\t*<li>矩形外的左下角</li>\r\n\t*<li>矩形下方的区域</li>\r\n\t*<li>矩形外的右下角</li>\r\n\t*<li>矩形外的左上角</li>\r\n\t*</ul>\r\n\t*同时也支持3宫格，比如0,4,0,4,1为水平3宫格，4,0,4,0,1为垂直3宫格，3宫格性能比9宫格高。\r\n\t*</p>\r\n\t*/\r\n\t__getset(0,__proto,'sizeGrid',function(){\r\n\t\treturn this._sizeGrid;\r\n\t\t},function(value){\r\n\t\tthis._sizeGrid=value;\r\n\t\tthis._setChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*表示显示对象的宽度，以像素为单位。\r\n\t*/\r\n\t__getset(0,__proto,'width',function(){\r\n\t\tif (this._width)return this._width;\r\n\t\tif (this._source)return this._source.sourceWidth;\r\n\t\treturn 0;\r\n\t\t},function(value){\r\n\t\tif (this._width !=value){\r\n\t\t\tthis._width=value;\r\n\t\t\tthis._setChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示显示对象的高度，以像素为单位。\r\n\t*/\r\n\t__getset(0,__proto,'height',function(){\r\n\t\tif (this._height)return this._height;\r\n\t\tif (this._source)return this._source.sourceHeight;\r\n\t\treturn 0;\r\n\t\t},function(value){\r\n\t\tif (this._height !=value){\r\n\t\t\tthis._height=value;\r\n\t\t\tthis._setChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*对象的纹理资源。\r\n\t*@see laya.resource.Texture\r\n\t*/\r\n\t__getset(0,__proto,'source',function(){\r\n\t\treturn this._source;\r\n\t\t},function(value){\r\n\t\tif (value){\r\n\t\t\tthis._source=value\r\n\t\t\tthis._setChanged();\r\n\t\t\t}else {\r\n\t\t\tthis._source=null;\r\n\t\t\tthis.clear();\r\n\t\t}\r\n\t});\r\n\r\n\tAutoBitmap.getTexture=function(tex,x,y,width,height){\r\n\t\tif (width <=0)width=1;\r\n\t\tif (height <=0)height=1;\r\n\t\ttex.$_GID || (tex.$_GID=Utils.getGID())\r\n\t\tvar key=tex.$_GID+\".\"+x+\".\"+y+\".\"+width+\".\"+height;\r\n\t\tvar texture=WeakObject.I.get(key);\r\n\t\tif (!texture||!texture.source){\r\n\t\t\ttexture=Texture.createFromTexture(tex,x,y,width,height);\r\n\t\t\tWeakObject.I.set(key,texture);\r\n\t\t}\r\n\t\treturn texture;\r\n\t}\r\n\r\n\treturn AutoBitmap;\r\n})(Graphics)\r\n\r\n\r\n/**\r\n*<code>UIEvent</code> 类用来定义UI组件类的事件类型。\r\n*/\r\n//class laya.ui.UIEvent extends laya.events.Event\r\nvar UIEvent=(function(_super){\r\n\tfunction UIEvent(){\r\n\t\tUIEvent.__super.call(this);;\r\n\t}\r\n\r\n\t__class(UIEvent,'laya.ui.UIEvent',_super);\r\n\tUIEvent.SHOW_TIP=\"showtip\";\r\n\tUIEvent.HIDE_TIP=\"hidetip\";\r\n\treturn UIEvent;\r\n})(Event)\r\n\r\n\r\n/**\r\n*<code>Component</code> 是ui控件类的基类。\r\n*<p>生命周期：preinitialize > createChildren > initialize > 组件构造函数</p>\r\n*/\r\n//class laya.ui.Component extends laya.display.Sprite\r\nvar Component=(function(_super){\r\n\tfunction Component(){\r\n\t\tthis._comXml=null;\r\n\t\t/**@private 控件的元数据。 */\r\n\t\tthis._dataSource=null;\r\n\t\t/**@private 鼠标悬停提示 */\r\n\t\tthis._toolTip=null;\r\n\t\t/**@private 标签 */\r\n\t\tthis._tag=null;\r\n\t\t/**@private 禁用 */\r\n\t\tthis._disabled=false;\r\n\t\t/**@private 变灰*/\r\n\t\tthis._gray=false;\r\n\t\t/**\r\n\t\t*是否启用相对布局\r\n\t\t*/\r\n\t\tthis.layoutEnabled=true;\r\n\t\tComponent.__super.call(this);\r\n\t\tthis._layout=LayoutStyle.EMPTY;\r\n\t\tthis.preinitialize();\r\n\t\tthis.createChildren();\r\n\t\tthis.initialize();\r\n\t}\r\n\r\n\t__class(Component,'laya.ui.Component',_super);\r\n\tvar __proto=Component.prototype;\r\n\tLaya.imps(__proto,{\"laya.ui.IComponent\":true})\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._dataSource=this._layout=null;\r\n\t\tthis._tag=null;\r\n\t\tthis._toolTip=null;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>预初始化。</p>\r\n\t*@internal 子类可在此函数内设置、修改属性默认值\r\n\t*/\r\n\t__proto.preinitialize=function(){}\r\n\t/**\r\n\t*<p>创建并添加控件子节点。</p>\r\n\t*@internal 子类可在此函数内创建并添加子节点。\r\n\t*/\r\n\t__proto.createChildren=function(){}\r\n\t/**\r\n\t*<p>控件初始化。</p>\r\n\t*@internal 在此子对象已被创建，可以对子对象进行修改。\r\n\t*/\r\n\t__proto.initialize=function(){}\r\n\t/**\r\n\t*<p>延迟运行指定的函数。</p>\r\n\t*<p>在控件被显示在屏幕之前调用，一般用于延迟计算数据。</p>\r\n\t*@param method 要执行的函数的名称。例如，functionName。\r\n\t*@param args 传递给 <code>method</code> 函数的可选参数列表。\r\n\t*\r\n\t*@see #runCallLater()\r\n\t*/\r\n\t__proto.callLater=function(method,args){\r\n\t\tLaya.timer.callLater(this,method,args);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>如果有需要延迟调用的函数（通过 <code>callLater</code> 函数设置），则立即执行延迟调用函数。</p>\r\n\t*@param method 要执行的函数名称。例如，functionName。\r\n\t*@see #callLater()\r\n\t*/\r\n\t__proto.runCallLater=function(method){\r\n\t\tLaya.timer.runCallLater(this,method);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>立即执行影响宽高度量的延迟调用函数。</p>\r\n\t*@internal <p>使用 <code>runCallLater</code> 函数，立即执行影响宽高度量的延迟运行函数(使用 <code>callLater</code> 设置延迟执行函数)。</p>\r\n\t*@see #callLater()\r\n\t*@see #runCallLater()\r\n\t*/\r\n\t__proto.commitMeasure=function(){}\r\n\t/**\r\n\t*<p>重新调整对象的大小。</p>\r\n\t*/\r\n\t__proto.changeSize=function(){\r\n\t\tthis.event(/*laya.events.Event.RESIZE*/\"resize\");\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*<p>获取对象的布局样式。</p>\r\n\t*/\r\n\t__proto.getLayout=function(){\r\n\t\tthis._layout===LayoutStyle.EMPTY && (this._layout=new LayoutStyle());\r\n\t\treturn this._layout;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*<p>指定对象是否可使用布局。</p>\r\n\t*<p>如果值为true,则此对象可以使用布局样式，否则不使用布局样式。</p>\r\n\t*@param value 一个 Boolean 值，指定对象是否可使用布局。\r\n\t*/\r\n\t__proto._setLayoutEnabled=function(value){\r\n\t\tif (this._layout && this._layout.enable !=value){\r\n\t\t\tthis._layout.enable=value;\r\n\t\t\tthis.on(/*laya.events.Event.ADDED*/\"added\",this,this.onAdded);\r\n\t\t\tthis.on(/*laya.events.Event.REMOVED*/\"removed\",this,this.onRemoved);\r\n\t\t\tif (this.parent){\r\n\t\t\t\tthis.onAdded();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*对象从显示列表移除的事件侦听处理函数。\r\n\t*/\r\n\t__proto.onRemoved=function(){\r\n\t\tthis.parent.off(/*laya.events.Event.RESIZE*/\"resize\",this,this.onCompResize);\r\n\t}\r\n\r\n\t/**\r\n\t*对象被添加到显示列表的事件侦听处理函数。\r\n\t*/\r\n\t__proto.onAdded=function(){\r\n\t\tthis.parent.on(/*laya.events.Event.RESIZE*/\"resize\",this,this.onCompResize);\r\n\t\tthis.resetLayoutX();\r\n\t\tthis.resetLayoutY();\r\n\t}\r\n\r\n\t/**\r\n\t*父容器的 <code>Event.RESIZE</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onCompResize=function(){\r\n\t\tif (this._layout && this._layout.enable){\r\n\t\t\tthis.resetLayoutX();\r\n\t\t\tthis.resetLayoutY();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*<p>重置对象的 <code>X</code> 轴（水平方向）布局。</p>\r\n\t*/\r\n\t__proto.resetLayoutX=function(){\r\n\t\tvar layout=this._layout;\r\n\t\tif (!isNaN(layout.anchorX))this.pivotX=layout.anchorX *this.width;\r\n\t\tif (!this.layoutEnabled)return;\r\n\t\tvar parent=this.parent;\r\n\t\tif (parent){\r\n\t\t\tif (!isNaN(layout.centerX)){\r\n\t\t\t\tthis.x=Math.round((parent.width-this.displayWidth)*0.5+layout.centerX+this.pivotX *this.scaleX);\r\n\t\t\t\t}else if (!isNaN(layout.left)){\r\n\t\t\t\tthis.x=Math.round(layout.left+this.pivotX *this.scaleX);\r\n\t\t\t\tif (!isNaN(layout.right)){\r\n\t\t\t\t\tthis.width=(parent._width-layout.left-layout.right)/ (this.scaleX || 0.01);\r\n\t\t\t\t}\r\n\t\t\t\t}else if (!isNaN(layout.right)){\r\n\t\t\t\tthis.x=Math.round(parent.width-this.displayWidth-layout.right+this.pivotX *this.scaleX);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*<p>重置对象的 <code>Y</code> 轴（垂直方向）布局。</p>\r\n\t*/\r\n\t__proto.resetLayoutY=function(){\r\n\t\tvar layout=this._layout;\r\n\t\tif (!isNaN(layout.anchorY))this.pivotY=layout.anchorY *this.height;\r\n\t\tif (!this.layoutEnabled)return;\r\n\t\tvar parent=this.parent;\r\n\t\tif (parent){\r\n\t\t\tif (!isNaN(layout.centerY)){\r\n\t\t\t\tthis.y=Math.round((parent.height-this.displayHeight)*0.5+layout.centerY+this.pivotY *this.scaleY);\r\n\t\t\t\t}else if (!isNaN(layout.top)){\r\n\t\t\t\tthis.y=Math.round(layout.top+this.pivotY *this.scaleY);\r\n\t\t\t\tif (!isNaN(layout.bottom)){\r\n\t\t\t\t\tthis.height=(parent._height-layout.top-layout.bottom)/ (this.scaleY || 0.01);\r\n\t\t\t\t}\r\n\t\t\t\t}else if (!isNaN(layout.bottom)){\r\n\t\t\t\tthis.y=Math.round(parent.height-this.displayHeight-layout.bottom+this.pivotY *this.scaleY);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*对象的 <code>Event.MOUSE_OVER</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onMouseOver=function(e){\r\n\t\tLaya.stage.event(/*laya.ui.UIEvent.SHOW_TIP*/\"showtip\",this._toolTip);\r\n\t}\r\n\r\n\t/**\r\n\t*对象的 <code>Event.MOUSE_OUT</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onMouseOut=function(e){\r\n\t\tLaya.stage.event(/*laya.ui.UIEvent.HIDE_TIP*/\"hidetip\",this._toolTip);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>对象的显示宽度（以像素为单位）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'displayWidth',function(){\r\n\t\treturn this.width *this.scaleX;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>表示显示对象的宽度，以像素为单位。</p>\r\n\t*<p><b>注：</b>当值为0时，宽度为自适应大小。</p>\r\n\t*/\r\n\t__getset(0,__proto,'width',function(){\r\n\t\tif (this._width)return this._width;\r\n\t\treturn this.measureWidth;\r\n\t\t},function(value){\r\n\t\tif (this._width !=value){\r\n\t\t\tthis._width=value;\r\n\t\t\tthis.conchModel && this.conchModel.size(this._width,this._height);\r\n\t\t\tthis.callLater(this.changeSize);\r\n\t\t\tif (this._layout.enable && (!isNaN(this._layout.centerX)|| !isNaN(this._layout.right)|| !isNaN(this._layout.anchorX)))this.resetLayoutX();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>显示对象的实际显示区域宽度（以像素为单位）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'measureWidth',function(){\r\n\t\tvar max=0;\r\n\t\tthis.commitMeasure();\r\n\t\tfor (var i=this.numChildren-1;i >-1;i--){\r\n\t\t\tvar comp=this.getChildAt(i);\r\n\t\t\tif (comp.visible){\r\n\t\t\t\tmax=Math.max(comp.x+comp.width *comp.scaleX,max);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>对象的显示高度（以像素为单位）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'displayHeight',function(){\r\n\t\treturn this.height *this.scaleY;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>表示显示对象的高度，以像素为单位。</p>\r\n\t*<p><b>注：</b>当值为0时，高度为自适应大小。</p>\r\n\t*/\r\n\t__getset(0,__proto,'height',function(){\r\n\t\tif (this._height)return this._height;\r\n\t\treturn this.measureHeight;\r\n\t\t},function(value){\r\n\t\tif (this._height !=value){\r\n\t\t\tthis._height=value;\r\n\t\t\tthis.conchModel && this.conchModel.size(this._width,this._height);\r\n\t\t\tthis.callLater(this.changeSize);\r\n\t\t\tif (this._layout.enable && (!isNaN(this._layout.centerY)|| !isNaN(this._layout.bottom)|| !isNaN(this._layout.anchorY)))this.resetLayoutY();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>数据赋值，通过对UI赋值来控制UI显示逻辑。</p>\r\n\t*<p>简单赋值会更改组件的默认属性，使用大括号可以指定组件的任意属性进行赋值。</p>\r\n\t*@example\r\n\t//默认属性赋值\r\n\tdataSource={label1:\"改变了label\",checkbox1:true};//(更改了label1的text属性值，更改checkbox1的selected属性)。\r\n\t//任意属性赋值\r\n\tdataSource={label2:{text:\"改变了label\",size:14},checkbox2:{selected:true,x:10}};\r\n\t*/\r\n\t__getset(0,__proto,'dataSource',function(){\r\n\t\treturn this._dataSource;\r\n\t\t},function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tfor (var prop in this._dataSource){\r\n\t\t\tif (this.hasOwnProperty(prop)&& !((typeof (this[prop])=='function'))){\r\n\t\t\t\tthis[prop]=this._dataSource[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'scaleY',_super.prototype._$get_scaleY,function(value){\r\n\t\tif (Laya.superGet(Sprite,this,'scaleY')!=value){\r\n\t\t\tLaya.superSet(Sprite,this,'scaleY',value);\r\n\t\t\tthis.callLater(this.changeSize);\r\n\t\t\tthis._layout.enable && this.resetLayoutY();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>显示对象的实际显示区域高度（以像素为单位）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'measureHeight',function(){\r\n\t\tvar max=0;\r\n\t\tthis.commitMeasure();\r\n\t\tfor (var i=this.numChildren-1;i >-1;i--){\r\n\t\t\tvar comp=this.getChildAt(i);\r\n\t\t\tif (comp.visible){\r\n\t\t\t\tmax=Math.max(comp.y+comp.height *comp.scaleY,max);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'scaleX',_super.prototype._$get_scaleX,function(value){\r\n\t\tif (Laya.superGet(Sprite,this,'scaleX')!=value){\r\n\t\t\tLaya.superSet(Sprite,this,'scaleX',value);\r\n\t\t\tthis.callLater(this.changeSize);\r\n\t\t\tthis._layout.enable && this.resetLayoutX();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>从组件顶边到其内容区域顶边之间的垂直距离（以像素为单位）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'top',function(){\r\n\t\treturn this._layout.top;\r\n\t\t},function(value){\r\n\t\tif (value !=this._layout.top){\r\n\t\t\tthis.getLayout().top=value;\r\n\t\t\tthis._setLayoutEnabled(true);\r\n\t\t}\r\n\t\tthis.resetLayoutY();\r\n\t});\r\n\r\n\t/**\r\n\t*<p>从组件底边到其内容区域底边之间的垂直距离（以像素为单位）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'bottom',function(){\r\n\t\treturn this._layout.bottom;\r\n\t\t},function(value){\r\n\t\tif (value !=this._layout.bottom){\r\n\t\t\tthis.getLayout().bottom=value;\r\n\t\t\tthis._setLayoutEnabled(true);\r\n\t\t}\r\n\t\tthis.resetLayoutY();\r\n\t});\r\n\r\n\t/**\r\n\t*<p>从组件左边到其内容区域左边之间的水平距离（以像素为单位）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'left',function(){\r\n\t\treturn this._layout.left;\r\n\t\t},function(value){\r\n\t\tif (value !=this._layout.left){\r\n\t\t\tthis.getLayout().left=value;\r\n\t\t\tthis._setLayoutEnabled(true);\r\n\t\t}\r\n\t\tthis.resetLayoutX();\r\n\t});\r\n\r\n\t/**\r\n\t*<p>从组件右边到其内容区域右边之间的水平距离（以像素为单位）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'right',function(){\r\n\t\treturn this._layout.right;\r\n\t\t},function(value){\r\n\t\tif (value !=this._layout.right){\r\n\t\t\tthis.getLayout().right=value;\r\n\t\t\tthis._setLayoutEnabled(true);\r\n\t\t}\r\n\t\tthis.resetLayoutX();\r\n\t});\r\n\r\n\t/**\r\n\t*<p>在父容器中，此对象的水平方向中轴线与父容器的水平方向中心线的距离（以像素为单位）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'centerX',function(){\r\n\t\treturn this._layout.centerX;\r\n\t\t},function(value){\r\n\t\tif (value !=this._layout.centerX){\r\n\t\t\tthis.getLayout().centerX=value;\r\n\t\t\tthis._setLayoutEnabled(true);\r\n\t\t}\r\n\t\tthis.resetLayoutX();\r\n\t});\r\n\r\n\t/**\r\n\t*<p>在父容器中，此对象的垂直方向中轴线与父容器的垂直方向中心线的距离（以像素为单位）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'centerY',function(){\r\n\t\treturn this._layout.centerY;\r\n\t\t},function(value){\r\n\t\tif (value !=this._layout.centerY){\r\n\t\t\tthis.getLayout().centerY=value;\r\n\t\t\tthis._setLayoutEnabled(true);\r\n\t\t}\r\n\t\tthis.resetLayoutY();\r\n\t});\r\n\r\n\t/**X轴锚点，值为0-1*/\r\n\t__getset(0,__proto,'anchorX',function(){\r\n\t\treturn this._layout.anchorX;\r\n\t\t},function(value){\r\n\t\tif (value !=this._layout.anchorX){\r\n\t\t\tthis.getLayout().anchorX=value;\r\n\t\t\tthis._setLayoutEnabled(true);\r\n\t\t}\r\n\t\tthis.resetLayoutX();\r\n\t});\r\n\r\n\t/**Y轴锚点，值为0-1*/\r\n\t__getset(0,__proto,'anchorY',function(){\r\n\t\treturn this._layout.anchorY;\r\n\t\t},function(value){\r\n\t\tif (value !=this._layout.anchorY){\r\n\t\t\tthis.getLayout().anchorY=value;\r\n\t\t\tthis._setLayoutEnabled(true);\r\n\t\t}\r\n\t\tthis.resetLayoutY();\r\n\t});\r\n\r\n\t/**\r\n\t*<p>对象的标签。</p>\r\n\t*@internal 冗余字段，可以用来储存数据。\r\n\t*/\r\n\t__getset(0,__proto,'tag',function(){\r\n\t\treturn this._tag;\r\n\t\t},function(value){\r\n\t\tthis._tag=value;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>鼠标悬停提示。</p>\r\n\t*<p>可以赋值为文本 <code>String</code> 或函数 <code>Handler</code> ，用来实现自定义样式的鼠标提示和参数携带等。</p>\r\n\t*@example\r\n\t*private var _testTips:TestTipsUI=new TestTipsUI();\r\n\t*private function testTips():void {\r\n\t\t//简单鼠标提示\r\n\t\t*btn2.toolTip=\"这里是鼠标提示&lt;b&gt;粗体&lt;/b&gt;&lt;br&gt;换行\";\r\n\t\t//自定义的鼠标提示\r\n\t\t*btn1.toolTip=showTips1;\r\n\t\t//带参数的自定义鼠标提示\r\n\t\t*clip.toolTip=new Handler(this,showTips2,[\"clip\"]);\r\n\t\t*}\r\n\t*private function showTips1():void {\r\n\t\t*_testTips.label.text=\"这里是按钮[\"+btn1.label+\"]\";\r\n\t\t*tip.addChild(_testTips);\r\n\t\t*}\r\n\t*private function showTips2(name:String):void {\r\n\t\t*_testTips.label.text=\"这里是\"+name;\r\n\t\t*tip.addChild(_testTips);\r\n\t\t*}\r\n\t*/\r\n\t__getset(0,__proto,'toolTip',function(){\r\n\t\treturn this._toolTip;\r\n\t\t},function(value){\r\n\t\tif (this._toolTip !=value){\r\n\t\t\tthis._toolTip=value;\r\n\t\t\tif (value !=null){\r\n\t\t\t\tthis.on(/*laya.events.Event.MOUSE_OVER*/\"mouseover\",this,this.onMouseOver);\r\n\t\t\t\tthis.on(/*laya.events.Event.MOUSE_OUT*/\"mouseout\",this,this.onMouseOut);\r\n\t\t\t\t}else {\r\n\t\t\t\tthis.off(/*laya.events.Event.MOUSE_OVER*/\"mouseover\",this,this.onMouseOver);\r\n\t\t\t\tthis.off(/*laya.events.Event.MOUSE_OUT*/\"mouseout\",this,this.onMouseOut);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*XML 数据。\r\n\t*/\r\n\t__getset(0,__proto,'comXml',function(){\r\n\t\treturn this._comXml;\r\n\t\t},function(value){\r\n\t\tthis._comXml=value;\r\n\t});\r\n\r\n\t/**是否变灰。*/\r\n\t__getset(0,__proto,'gray',function(){\r\n\t\treturn this._gray;\r\n\t\t},function(value){\r\n\t\tif (value!==this._gray){\r\n\t\t\tthis._gray=value;\r\n\t\t\tUIUtils.gray(this,value);\r\n\t\t}\r\n\t});\r\n\r\n\t/**是否禁用页面，设置为true后，会变灰并且禁用鼠标。*/\r\n\t__getset(0,__proto,'disabled',function(){\r\n\t\treturn this._disabled;\r\n\t\t},function(value){\r\n\t\tif (value!==this._disabled){\r\n\t\t\tthis.gray=this._disabled=value;\r\n\t\t\tthis.mouseEnabled=!value;\r\n\t\t}\r\n\t});\r\n\r\n\treturn Component;\r\n})(Sprite)\r\n\r\n\r\n/**\r\n*<code>DialogManager</code> 对话框管理容器，所有的对话框都在该容器内，并且受管理器管理。\r\n*任意对话框打开和关闭，都会出发管理类的open和close事件\r\n*可以通过UIConfig设置弹出框背景透明度，模式窗口点击边缘是否关闭，点击窗口是否切换层次等\r\n*通过设置对话框的zOrder属性，可以更改弹出的层次\r\n*/\r\n//class laya.ui.DialogManager extends laya.display.Sprite\r\nvar DialogManager=(function(_super){\r\n\tfunction DialogManager(){\r\n\t\t/**锁屏层*/\r\n\t\tthis.lockLayer=null;\r\n\t\t/**@private 全局默认弹出对话框效果，可以设置一个效果代替默认的弹出效果，如果不想有任何效果，可以赋值为null*/\r\n\t\tthis.popupEffect=function(dialog){\r\n\t\t\tdialog.scale(1,1);\r\n\t\t\tTween.from(dialog,{x:Laya.stage.width / 2,y:Laya.stage.height / 2,scaleX:0,scaleY:0},300,Ease.backOut,Handler.create(this,this.doOpen,[dialog]));\r\n\t\t}\r\n\t\t/**@private 全局默认关闭对话框效果，可以设置一个效果代替默认的关闭效果，如果不想有任何效果，可以赋值为null*/\r\n\t\tthis.closeEffect=function(dialog,type){\r\n\t\t\tTween.to(dialog,{x:Laya.stage.width / 2,y:Laya.stage.height / 2,scaleX:0,scaleY:0},300,Ease.strongOut,Handler.create(this,this.doClose,[dialog,type]));\r\n\t\t}\r\n\t\tDialogManager.__super.call(this);\r\n\t\tthis.maskLayer=new Sprite();\r\n\t\tthis.popupEffectHandler=new Handler(this,this.popupEffect);\r\n\t\tthis.closeEffectHandler=new Handler(this,this.closeEffect);\r\n\t\tthis.mouseEnabled=this.maskLayer.mouseEnabled=true;\r\n\t\tthis.zOrder=1000;\r\n\t\tLaya.stage.addChild(this);\r\n\t\tLaya.stage.on(/*laya.events.Event.RESIZE*/\"resize\",this,this._onResize);\r\n\t\tif (UIConfig.closeDialogOnSide)this.maskLayer.on(\"click\",this,this._closeOnSide);\r\n\t\tthis._onResize(null);\r\n\t}\r\n\r\n\t__class(DialogManager,'laya.ui.DialogManager',_super);\r\n\tvar __proto=DialogManager.prototype;\r\n\t__proto._closeOnSide=function(){\r\n\t\tvar dialog=this.getChildAt(this.numChildren-1);\r\n\t\tif ((dialog instanceof laya.ui.Dialog ))dialog.close(\"side\");\r\n\t}\r\n\r\n\t/**设置锁定界面，如果为空则什么都不显示*/\r\n\t__proto.setLockView=function(value){\r\n\t\tif (!this.lockLayer){\r\n\t\t\tthis.lockLayer=new Box();\r\n\t\t\tthis.lockLayer.mouseEnabled=true;\r\n\t\t\tthis.lockLayer.size(Laya.stage.width,Laya.stage.height);\r\n\t\t}\r\n\t\tthis.lockLayer.removeChildren();\r\n\t\tif (value){\r\n\t\t\tvalue.centerX=value.centerY=0;\r\n\t\t\tthis.lockLayer.addChild(value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._onResize=function(e){\r\n\t\tvar width=this.maskLayer.width=Laya.stage.width;\r\n\t\tvar height=this.maskLayer.height=Laya.stage.height;\r\n\t\tif (this.lockLayer)this.lockLayer.size(width,height);\r\n\t\tthis.maskLayer.graphics.clear();\r\n\t\tthis.maskLayer.graphics.drawRect(0,0,width,height,UIConfig.popupBgColor);\r\n\t\tthis.maskLayer.alpha=UIConfig.popupBgAlpha;\r\n\t\tfor (var i=this.numChildren-1;i >-1;i--){\r\n\t\t\tvar item=this.getChildAt(i);\r\n\t\t\tif (item.popupCenter)this._centerDialog(item);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._centerDialog=function(dialog){\r\n\t\tdialog.x=Math.round(((Laya.stage.width-dialog.width)>> 1)+dialog.pivotX);\r\n\t\tdialog.y=Math.round(((Laya.stage.height-dialog.height)>> 1)+dialog.pivotY);\r\n\t}\r\n\r\n\t/**\r\n\t*显示对话框(非模式窗口类型)。\r\n\t*@param dialog 需要显示的对象框 <code>Dialog</code> 实例。\r\n\t*@param closeOther 是否关闭其它对话框，若值为ture，则关闭其它的对话框。\r\n\t*@param showEffect 是否显示弹出效果\r\n\t*/\r\n\t__proto.open=function(dialog,closeOther,showEffect){\r\n\t\t(closeOther===void 0)&& (closeOther=false);\r\n\t\t(showEffect===void 0)&& (showEffect=false);\r\n\t\tif (closeOther)this._closeAll();\r\n\t\tif (dialog.popupCenter)this._centerDialog(dialog);\r\n\t\tthis.addChild(dialog);\r\n\t\tif (dialog.isModal || this._$P[\"hasZorder\"])this.timer.callLater(this,this._checkMask);\r\n\t\tif (showEffect && dialog.popupEffect !=null)dialog.popupEffect.runWith(dialog);\r\n\t\telse this.doOpen(dialog);\r\n\t\tthis.event(/*laya.events.Event.OPEN*/\"open\");\r\n\t}\r\n\r\n\t/**\r\n\t*执行打开对话框。\r\n\t*@param dialog 需要关闭的对象框 <code>Dialog</code> 实例。\r\n\t*@param type 关闭的类型，默认为空\r\n\t*/\r\n\t__proto.doOpen=function(dialog){\r\n\t\tdialog.onOpened();\r\n\t}\r\n\r\n\t/**\r\n\t*锁定所有层，显示加载条信息，防止双击\r\n\t*/\r\n\t__proto.lock=function(value){\r\n\t\tif (this.lockLayer){\r\n\t\t\tif (value)this.addChild(this.lockLayer);\r\n\t\t\telse this.lockLayer.removeSelf();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*关闭对话框。\r\n\t*@param dialog 需要关闭的对象框 <code>Dialog</code> 实例。\r\n\t*@param type 关闭的类型，默认为空\r\n\t*@param showEffect 是否显示弹出效果\r\n\t*/\r\n\t__proto.close=function(dialog,type,showEffect){\r\n\t\t(showEffect===void 0)&& (showEffect=false);\r\n\t\tif (showEffect && dialog.closeEffect !=null)dialog.closeEffect.runWith([dialog,type]);\r\n\t\telse this.doClose(dialog,type);\r\n\t\tthis.event(/*laya.events.Event.CLOSE*/\"close\");\r\n\t}\r\n\r\n\t/**\r\n\t*执行关闭对话框。\r\n\t*@param dialog 需要关闭的对象框 <code>Dialog</code> 实例。\r\n\t*@param type 关闭的类型，默认为空\r\n\t*/\r\n\t__proto.doClose=function(dialog,type){\r\n\t\tdialog.removeSelf();\r\n\t\tdialog.isModal && this._checkMask();\r\n\t\tdialog.closeHandler && dialog.closeHandler.runWith(type);\r\n\t\tdialog.onClosed(type);\r\n\t}\r\n\r\n\t/**\r\n\t*关闭所有的对话框。\r\n\t*/\r\n\t__proto.closeAll=function(){\r\n\t\tthis._closeAll();\r\n\t\tthis.event(/*laya.events.Event.CLOSE*/\"close\");\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._closeAll=function(){\r\n\t\tfor (var i=this.numChildren-1;i >-1;i--){\r\n\t\t\tvar item=this.getChildAt(i);\r\n\t\t\tif (item && item.close !=null){\r\n\t\t\t\tthis.doClose(item);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*根据组获取所有对话框\r\n\t*@param group 组名称\r\n\t*@return 对话框数组\r\n\t*/\r\n\t__proto.getDialogsByGroup=function(group){\r\n\t\tvar arr=[];\r\n\t\tfor (var i=this.numChildren-1;i >-1;i--){\r\n\t\t\tvar item=this.getChildAt(i);\r\n\t\t\tif (item && item.group===group){\r\n\t\t\t\tarr.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr;\r\n\t}\r\n\r\n\t/**\r\n\t*根据组关闭所有弹出框\r\n\t*@param group 需要关闭的组名称\r\n\t*@return 需要关闭的对话框数组\r\n\t*/\r\n\t__proto.closeByGroup=function(group){\r\n\t\tvar arr=[];\r\n\t\tfor (var i=this.numChildren-1;i >-1;i--){\r\n\t\t\tvar item=this.getChildAt(i);\r\n\t\t\tif (item && item.group===group){\r\n\t\t\t\titem.close();\r\n\t\t\t\tarr.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr;\r\n\t}\r\n\r\n\t/**@private 发生层次改变后，重新检查遮罩层是否正确*/\r\n\t__proto._checkMask=function(){\r\n\t\tthis.maskLayer.removeSelf();\r\n\t\tfor (var i=this.numChildren-1;i >-1;i--){\r\n\t\t\tvar dialog=this.getChildAt(i);\r\n\t\t\tif (dialog && dialog.isModal){\r\n\t\t\t\tthis.addChildAt(this.maskLayer,i);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn DialogManager;\r\n})(Sprite)\r\n\r\n\r\n/**\r\n*<code>Box</code> 类是一个控件容器类。\r\n*/\r\n//class laya.ui.Box extends laya.ui.Component\r\nvar Box=(function(_super){\r\n\tfunction Box(){\r\n\t\tBox.__super.call(this);;\r\n\t}\r\n\r\n\t__class(Box,'laya.ui.Box',_super);\r\n\tvar __proto=Box.prototype;\r\n\tLaya.imps(__proto,{\"laya.ui.IBox\":true})\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tfor (var name in value){\r\n\t\t\tvar comp=this.getChildByName(name);\r\n\t\t\tif (comp)comp.dataSource=value[name];\r\n\t\t\telse if (this.hasOwnProperty(name)&& !((typeof (this[name])=='function')))this[name]=value[name];\r\n\t\t}\r\n\t});\r\n\r\n\treturn Box;\r\n})(Component)\r\n\r\n\r\n/**\r\n*<code>Button</code> 组件用来表示常用的多态按钮。 <code>Button</code> 组件可显示文本标签、图标或同时显示两者。 *\r\n*<p>可以是单态，两态和三态，默认三态(up,over,down)。</p>\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>Button</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.Button;\r\n\t*import laya.utils.Handler;\r\n\t*public class Button_Example\r\n\t*{\r\n\t\t*public function Button_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load(\"resource/ui/button.png\",Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*trace(\"资源加载完成！\");\r\n\t\t\t*var button:Button=new Button(\"resource/ui/button.png\",\"label\");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。\r\n\t\t\t*button.x=100;//设置 button 对象的属性 x 的值，用于控制 button 对象的显示位置。\r\n\t\t\t*button.y=100;//设置 button 对象的属性 y 的值，用于控制 button 对象的显示位置。\r\n\t\t\t*button.clickHandler=new Handler(this,onClickButton,[button]);//设置 button 的点击事件处理器。\r\n\t\t\t*Laya.stage.addChild(button);//将此 button 对象添加到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onClickButton(button:Button):void\r\n\t\t*{\r\n\t\t\t*trace(\"按钮button被点击了！\");\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n*Laya.loader.load(\"resource/ui/button.png\",laya.utils.Handler.create(this,loadComplete));//加载资源\r\n*function loadComplete()\r\n*{\r\n\t*console.log(\"资源加载完成！\");\r\n\t*var button=new laya.ui.Button(\"resource/ui/button.png\",\"label\");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。\r\n\t*button.x=100;//设置 button 对象的属性 x 的值，用于控制 button 对象的显示位置。\r\n\t*button.y=100;//设置 button 对象的属性 y 的值，用于控制 button 对象的显示位置。\r\n\t*button.clickHandler=laya.utils.Handler.create(this,onClickButton,[button],false);//设置 button 的点击事件处理函数。\r\n\t*Laya.stage.addChild(button);//将此 button 对象添加到显示列表。\r\n\t*}\r\n*function onClickButton(button)\r\n*{\r\n\t*console.log(\"按钮被点击了。\",button);\r\n\t*}\r\n*@example\r\n*import Button=laya.ui.Button;\r\n*import Handler=laya.utils.Handler;\r\n*class Button_Example{\r\n\t*constructor()\r\n\t*{\r\n\t\t*Laya.init(640,800);\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load(\"resource/ui/button.png\",laya.utils.Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete()\r\n\t*{\r\n\t\t*var button:Button=new Button(\"resource/ui/button.png\",\"label\");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。\r\n\t\t*button.x=100;//设置 button 对象的属性 x 的值，用于控制 button 对象的显示位置。\r\n\t\t*button.y=100;//设置 button 对象的属性 y 的值，用于控制 button 对象的显示位置。\r\n\t\t*button.clickHandler=new Handler(this,this.onClickButton,[button]);//设置 button 的点击事件处理器。\r\n\t\t*Laya.stage.addChild(button);//将此 button 对象添加到显示列表。\r\n\t\t*}\r\n\t*private onClickButton(button:Button):void\r\n\t*{\r\n\t\t*console.log(\"按钮button被点击了！\")\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.Button extends laya.ui.Component\r\nvar Button=(function(_super){\r\n\tfunction Button(skin,label){\r\n\t\t/**\r\n\t\t*指定按钮按下时是否是切换按钮的显示状态。\r\n\t\t*\r\n\t\t*@example 以下示例代码，创建了一个 <code>Button</code> 实例，并设置为切换按钮。\r\n\t\t*@example\r\n\t\t*package\r\n\t\t*{\r\n\t\t\t*import laya.ui.Button;\r\n\t\t\t*import laya.utils.Handler;\r\n\t\t\t*public class Button_toggle\r\n\t\t\t*{\r\n\t\t\t\t*public function Button_toggle()\r\n\t\t\t\t*{\r\n\t\t\t\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t\t\t*Laya.loader.load(\"resource/ui/button.png\",Handler.create(this,onLoadComplete));\r\n\t\t\t\t\t*}\r\n\t\t\t\t*private function onLoadComplete():void\r\n\t\t\t\t*{\r\n\t\t\t\t\t*trace(\"资源加载完成！\");\r\n\t\t\t\t\t*var button:Button=new Button(\"resource/ui/button.png\",\"label\");//创建一个 Button 实例对象 button ,传入它的皮肤skin和标签label。\r\n\t\t\t\t\t*button.x=100;//设置 button 对象的属性 x 的值，用于控制 button 对象的显示位置。\r\n\t\t\t\t\t*button.y=100;//设置 button 对象的属性 y 的值，用于控制 button 对象的显示位置。\r\n\t\t\t\t\t*button.toggle=true;//设置 button 对象为切换按钮。\r\n\t\t\t\t\t*button.clickHandler=new Handler(this,onClickButton,[button]);//设置 button 的点击事件处理器。\r\n\t\t\t\t\t*Laya.stage.addChild(button);//将此 button 对象添加到显示列表。\r\n\t\t\t\t\t*}\r\n\t\t\t\t*private function onClickButton(button:Button):void\r\n\t\t\t\t*{\r\n\t\t\t\t\t*trace(\"button.selected = \"+button.selected);\r\n\t\t\t\t\t*}\r\n\t\t\t\t*}\r\n\t\t\t*}\r\n\t\t*@example\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load(\"resource/ui/button.png\",laya.utils.Handler.create(this,loadComplete));//加载资源\r\n\t\t*function loadComplete()\r\n\t\t*{\r\n\t\t\t*console.log(\"资源加载完成！\");\r\n\t\t\t*var button=new laya.ui.Button(\"resource/ui/button.png\",\"label\");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。\r\n\t\t\t*button.x=100;//设置 button 对象的属性 x 的值，用于控制 button 对象的显示位置。\r\n\t\t\t*button.y=100;//设置 button 对象的属性 y 的值，用于控制 button 对象的显示位置。\r\n\t\t\t*button.toggle=true;//设置 button 对象为切换按钮。\r\n\t\t\t*button.clickHandler=laya.utils.Handler.create(this,onClickButton,[button],false);//设置 button 的点击事件处理器。\r\n\t\t\t*Laya.stage.addChild(button);//将此 button 对象添加到显示列表。\r\n\t\t\t*}\r\n\t\t*function onClickButton(button)\r\n\t\t*{\r\n\t\t\t*console.log(\"button.selected = \",button.selected);\r\n\t\t\t*}\r\n\t\t*@example\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load(\"button.png\",null,null,null,null,null);//加载资源\r\n\t\t*function loadComplete(){\r\n\t\t\t*console.log(\"资源加载完成！\");\r\n\t\t\t*var button:laya.ui.Button=new laya.ui.Button(\"button.png\",\"label\");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。\r\n\t\t\t*button.x=100;//设置 button 对象的属性 x 的值，用于控制 button 对象的显示位置。\r\n\t\t\t*button.y=100;//设置 button 对象的属性 y 的值，用于控制 button 对象的显示位置。\r\n\t\t\t*button.toggle=true;//设置 button 对象为切换按钮。\r\n\t\t\t*button.clickHandler=laya.utils.Handler.create(this,onClickButton,[button],false);//设置 button 的点击事件处理器。\r\n\t\t\t*Laya.stage.addChild(button);//将此 button 对象添加到显示列表。\r\n\t\t\t*}\r\n\t\t*function onClickButton(button){\r\n\t\t\t*console.log(\"button.selected = \",button.selected);\r\n\t\t\t*}\r\n\t\t*/\r\n\t\tthis.toggle=false;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._bitmap=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*按钮上的文本。\r\n\t\t*/\r\n\t\tthis._text=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*按钮文本标签描边的颜色值。\r\n\t\t*/\r\n\t\tthis._strokeColors=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*按钮的状态值。\r\n\t\t*/\r\n\t\tthis._state=0;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示按钮的选中状态。\r\n\t\t*/\r\n\t\tthis._selected=false;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*按钮的皮肤资源。\r\n\t\t*/\r\n\t\tthis._skin=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*指定此显示对象是否自动计算并改变大小等属性。\r\n\t\t*/\r\n\t\tthis._autoSize=true;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*源数据。\r\n\t\t*/\r\n\t\tthis._sources=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*按钮的点击事件函数。\r\n\t\t*/\r\n\t\tthis._clickHandler=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._stateChanged=false;\r\n\t\tButton.__super.call(this);\r\n\t\tthis._labelColors=Styles.buttonLabelColors;\r\n\t\tthis._stateNum=Styles.buttonStateNum;\r\n\t\t(label===void 0)&& (label=\"\");\r\n\t\tthis.skin=skin;\r\n\t\tthis.label=label;\r\n\t}\r\n\r\n\t__class(Button,'laya.ui.Button',_super);\r\n\tvar __proto=Button.prototype;\r\n\tLaya.imps(__proto,{\"laya.ui.ISelect\":true})\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._bitmap && this._bitmap.destroy();\r\n\t\tthis._text && this._text.destroy(destroyChild);\r\n\t\tthis._bitmap=null;\r\n\t\tthis._text=null;\r\n\t\tthis._clickHandler=null;\r\n\t\tthis._labelColors=this._sources=this._strokeColors=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.graphics=this._bitmap=new AutoBitmap();\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.createText=function(){\r\n\t\tif (!this._text){\r\n\t\t\tthis._text=new Text();\r\n\t\t\tthis._text.overflow=Text.HIDDEN;\r\n\t\t\tthis._text.align=\"center\";\r\n\t\t\tthis._text.valign=\"middle\";\r\n\t\t\tthis._text.width=this._width;\r\n\t\t\tthis._text.height=this._height;\r\n\t\t}\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.initialize=function(){\r\n\t\tif (this._mouseEnableState!==1){\r\n\t\t\tthis.mouseEnabled=true;\r\n\t\t\tthis._setBit(/*laya.display.Node.MOUSEENABLE*/0x2,true);\r\n\t\t}\r\n\t\tthis._createListener(/*laya.events.Event.MOUSE_OVER*/\"mouseover\",this,this.onMouse,null,false,false);\r\n\t\tthis._createListener(/*laya.events.Event.MOUSE_OUT*/\"mouseout\",this,this.onMouse,null,false,false);\r\n\t\tthis._createListener(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onMouse,null,false,false);\r\n\t\tthis._createListener(/*laya.events.Event.MOUSE_UP*/\"mouseup\",this,this.onMouse,null,false,false);\r\n\t\tthis._createListener(/*laya.events.Event.CLICK*/\"click\",this,this.onMouse,null,false,false);\r\n\t}\r\n\r\n\t/**\r\n\t*对象的 <code>Event.MOUSE_OVER、Event.MOUSE_OUT、Event.MOUSE_DOWN、Event.MOUSE_UP、Event.CLICK</code> 事件侦听处理函数。\r\n\t*@param e Event 对象。\r\n\t*/\r\n\t__proto.onMouse=function(e){\r\n\t\tif (this.toggle===false && this._selected)return;\r\n\t\tif (e.type===/*laya.events.Event.CLICK*/\"click\"){\r\n\t\t\tthis.toggle && (this.selected=!this._selected);\r\n\t\t\tthis._clickHandler && this._clickHandler.run();\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t!this._selected && (this.state=Button.stateMap[e.type]);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*对象的资源切片发生改变。\r\n\t*/\r\n\t__proto.changeClips=function(){\r\n\t\tvar img=Loader.getRes(this._skin);\r\n\t\tif (!img){\r\n\t\t\tconsole.log(\"lose skin\",this._skin);\r\n\t\t\treturn;\r\n\t\t};\r\n\t\tvar width=img.sourceWidth;\r\n\t\tvar height=img.sourceHeight / this._stateNum;\r\n\t\timg.$_GID || (img.$_GID=Utils.getGID());\r\n\t\tvar key=img.$_GID+\"-\"+this._stateNum;\r\n\t\tvar clips=WeakObject.I.get(key);\r\n\t\tif (!Utils.isOkTextureList(clips)){\r\n\t\t\tclips=null;\r\n\t\t}\r\n\t\tif (clips)this._sources=clips;\r\n\t\telse {\r\n\t\t\tthis._sources=[];\r\n\t\t\tif (this._stateNum===1){\r\n\t\t\t\tthis._sources.push(img);\r\n\t\t\t\t}else {\r\n\t\t\t\tfor (var i=0;i < this._stateNum;i++){\r\n\t\t\t\t\tthis._sources.push(Texture.createFromTexture(img,0,height *i,width,height));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tWeakObject.I.set(key,this._sources);\r\n\t\t}\r\n\t\tif (this._autoSize){\r\n\t\t\tthis._bitmap.width=this._width || width;\r\n\t\t\tthis._bitmap.height=this._height || height;\r\n\t\t\tif (this._text){\r\n\t\t\t\tthis._text.width=this._bitmap.width;\r\n\t\t\t\tthis._text.height=this._bitmap.height;\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tthis._text && (this._text.x=width);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*改变对象的状态。\r\n\t*/\r\n\t__proto.changeState=function(){\r\n\t\tthis._stateChanged=false;\r\n\t\tthis.runCallLater(this.changeClips);\r\n\t\tvar index=this._state < this._stateNum ? this._state :this._stateNum-1;\r\n\t\tthis._sources && (this._bitmap.source=this._sources[index]);\r\n\t\tif (this.label){\r\n\t\t\tthis._text.color=this._labelColors[index];\r\n\t\t\tif (this._strokeColors)this._text.strokeColor=this._strokeColors[index];\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setStateChanged=function(){\r\n\t\tif (!this._stateChanged){\r\n\t\t\tthis._stateChanged=true;\r\n\t\t\tthis.callLater(this.changeState);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*<p>描边颜色，以字符串表示。</p>\r\n\t*默认值为 \"#000000\"（黑色）;\r\n\t*@see laya.display.Text.strokeColor()\r\n\t*/\r\n\t__getset(0,__proto,'labelStrokeColor',function(){\r\n\t\tthis.createText();\r\n\t\treturn this._text.strokeColor;\r\n\t\t},function(value){\r\n\t\tthis.createText();\r\n\t\tthis._text.strokeColor=value\r\n\t});\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'measureHeight',function(){\r\n\t\tthis.runCallLater(this.changeClips);\r\n\t\treturn this._text ? Math.max(this._bitmap.height,this._text.height):this._bitmap.height;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>对象的皮肤资源地址。</p>\r\n\t*支持单态，两态和三态，用 <code>stateNum</code> 属性设置\r\n\t*<p>对象的皮肤地址，以字符串表示。</p>\r\n\t*@see #stateNum\r\n\t*/\r\n\t__getset(0,__proto,'skin',function(){\r\n\t\treturn this._skin;\r\n\t\t},function(value){\r\n\t\tif (this._skin !=value){\r\n\t\t\tthis._skin=value;\r\n\t\t\tthis.callLater(this.changeClips);\r\n\t\t\tthis._setStateChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*对象的状态值。\r\n\t*@see #stateMap\r\n\t*/\r\n\t__getset(0,__proto,'state',function(){\r\n\t\treturn this._state;\r\n\t\t},function(value){\r\n\t\tif (this._state !=value){\r\n\t\t\tthis._state=value;\r\n\t\t\tthis._setStateChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*按钮文本标签 <code>Text</code> 控件。\r\n\t*/\r\n\t__getset(0,__proto,'text',function(){\r\n\t\tthis.createText();\r\n\t\treturn this._text;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>指定对象的状态值，以数字表示。</p>\r\n\t*<p>默认值为3。此值决定皮肤资源图片的切割方式。</p>\r\n\t*<p><b>取值：</b>\r\n\t*<li>1：单态。图片不做切割，按钮的皮肤状态只有一种。</li>\r\n\t*<li>2：两态。图片将以竖直方向被等比切割为2部分，从上向下，依次为\r\n\t*弹起状态皮肤、\r\n\t*按下和经过及选中状态皮肤。</li>\r\n\t*<li>3：三态。图片将以竖直方向被等比切割为3部分，从上向下，依次为\r\n\t*弹起状态皮肤、\r\n\t*经过状态皮肤、\r\n\t*按下和选中状态皮肤</li>\r\n\t*</p>\r\n\t*/\r\n\t__getset(0,__proto,'stateNum',function(){\r\n\t\treturn this._stateNum;\r\n\t\t},function(value){\r\n\t\tif ((typeof value=='string')){\r\n\t\t\tvalue=parseInt(value);\r\n\t\t}\r\n\t\tif (this._stateNum !=value){\r\n\t\t\tthis._stateNum=value < 1 ? 1 :value > 3 ? 3 :value;\r\n\t\t\tthis.callLater(this.changeClips);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮各个状态下的描边颜色。\r\n\t*<p><b>格式:</b> \"upColor,overColor,downColor,disableColor\"。</p>\r\n\t*/\r\n\t__getset(0,__proto,'strokeColors',function(){\r\n\t\treturn this._strokeColors ? this._strokeColors.join(\",\"):\"\";\r\n\t\t},function(value){\r\n\t\tthis._strokeColors=UIUtils.fillArray(Styles.buttonLabelColors,value,String);\r\n\t\tthis._setStateChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮各个状态下的文本颜色。\r\n\t*<p><b>格式:</b> \"upColor,overColor,downColor,disableColor\"。</p>\r\n\t*/\r\n\t__getset(0,__proto,'labelColors',function(){\r\n\t\treturn this._labelColors.join(\",\");\r\n\t\t},function(value){\r\n\t\tthis._labelColors=UIUtils.fillArray(Styles.buttonLabelColors,value,String);\r\n\t\tthis._setStateChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'measureWidth',function(){\r\n\t\tthis.runCallLater(this.changeClips);\r\n\t\tif (this._autoSize)return this._bitmap.width;\r\n\t\tthis.runCallLater(this.changeState);\r\n\t\treturn this._bitmap.width+(this._text ? this._text.width :0);\r\n\t});\r\n\r\n\t/**\r\n\t*按钮的文本内容。\r\n\t*/\r\n\t__getset(0,__proto,'label',function(){\r\n\t\treturn this._text ? this._text.text :null;\r\n\t\t},function(value){\r\n\t\tif (!this._text && !value)return;\r\n\t\tthis.createText();\r\n\t\tif (this._text.text !=value){\r\n\t\t\tvalue && !this._text.parent && this.addChild(this._text);\r\n\t\t\tthis._text.text=(value+\"\").replace(/\\\\n/g,\"\\n\");\r\n\t\t\tthis._setStateChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮的选中状态。\r\n\t*<p>如果值为true，表示该对象处于选中状态。否则该对象处于未选中状态。</p>\r\n\t*/\r\n\t__getset(0,__proto,'selected',function(){\r\n\t\treturn this._selected;\r\n\t\t},function(value){\r\n\t\tif (this._selected !=value){\r\n\t\t\tthis._selected=value;\r\n\t\t\tthis.state=this._selected ? 2 :0;\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮文本标签的边距。\r\n\t*<p><b>格式：</b>\"上边距,右边距,下边距,左边距\"。</p>\r\n\t*/\r\n\t__getset(0,__proto,'labelPadding',function(){\r\n\t\tthis.createText();\r\n\t\treturn this._text.padding.join(\",\");\r\n\t\t},function(value){\r\n\t\tthis.createText();\r\n\t\tthis._text.padding=UIUtils.fillArray(Styles.labelPadding,value,Number);\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮文本标签的字体大小。\r\n\t*@see laya.display.Text.fontSize()\r\n\t*/\r\n\t__getset(0,__proto,'labelSize',function(){\r\n\t\tthis.createText();\r\n\t\treturn this._text.fontSize;\r\n\t\t},function(value){\r\n\t\tthis.createText();\r\n\t\tthis._text.fontSize=value\r\n\t});\r\n\r\n\t/**\r\n\t*<p>描边宽度（以像素为单位）。</p>\r\n\t*默认值0，表示不描边。\r\n\t*@see laya.display.Text.stroke()\r\n\t*/\r\n\t__getset(0,__proto,'labelStroke',function(){\r\n\t\tthis.createText();\r\n\t\treturn this._text.stroke;\r\n\t\t},function(value){\r\n\t\tthis.createText();\r\n\t\tthis._text.stroke=value\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮文本标签是否为粗体字。\r\n\t*@see laya.display.Text.bold()\r\n\t*/\r\n\t__getset(0,__proto,'labelBold',function(){\r\n\t\tthis.createText();\r\n\t\treturn this._text.bold;\r\n\t\t},function(value){\r\n\t\tthis.createText();\r\n\t\tthis._text.bold=value;\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮文本标签的字体名称，以字符串形式表示。\r\n\t*@see laya.display.Text.font()\r\n\t*/\r\n\t__getset(0,__proto,'labelFont',function(){\r\n\t\tthis.createText();\r\n\t\treturn this._text.font;\r\n\t\t},function(value){\r\n\t\tthis.createText();\r\n\t\tthis._text.font=value;\r\n\t});\r\n\r\n\t/**标签对齐模式，默认为居中对齐。*/\r\n\t__getset(0,__proto,'labelAlign',function(){\r\n\t\tthis.createText()\r\n\t\treturn this._text.align;\r\n\t\t},function(value){\r\n\t\tthis.createText()\r\n\t\tthis._text.align=value;\r\n\t});\r\n\r\n\t/**\r\n\t*对象的点击事件处理器函数（无默认参数）。\r\n\t*/\r\n\t__getset(0,__proto,'clickHandler',function(){\r\n\t\treturn this._clickHandler;\r\n\t\t},function(value){\r\n\t\tthis._clickHandler=value;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>\r\n\t*<p>数据格式：\"上边距,右边距,下边距,左边距,是否重复填充(值为0：不重复填充，1：重复填充)\"，以逗号分隔。\r\n\t*<ul><li>例如：\"4,4,4,4,1\"</li></ul></p>\r\n\t*@see laya.ui.AutoBitmap.sizeGrid\r\n\t*/\r\n\t__getset(0,__proto,'sizeGrid',function(){\r\n\t\tif (this._bitmap.sizeGrid)return this._bitmap.sizeGrid.join(\",\");\r\n\t\treturn null;\r\n\t\t},function(value){\r\n\t\tthis._bitmap.sizeGrid=UIUtils.fillArray(Styles.defaultSizeGrid,value,Number);\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tLaya.superSet(Component,this,'width',value);\r\n\t\tif (this._autoSize){\r\n\t\t\tthis._bitmap.width=value;\r\n\t\t\tthis._text && (this._text.width=value);\r\n\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tLaya.superSet(Component,this,'height',value);\r\n\t\tif (this._autoSize){\r\n\t\t\tthis._bitmap.height=value;\r\n\t\t\tthis._text && (this._text.height=value);\r\n\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif ((typeof value=='number')|| (typeof value=='string'))this.label=value+\"\";\r\n\t\telse Laya.superSet(Component,this,'dataSource',value);\r\n\t});\r\n\r\n\t/**图标x,y偏移，格式：100,100*/\r\n\t__getset(0,__proto,'iconOffset',function(){\r\n\t\treturn this._bitmap._offset ? this._bitmap._offset.join(\",\"):null;\r\n\t\t},function(value){\r\n\t\tif (value)this._bitmap._offset=UIUtils.fillArray([1,1],value,Number);\r\n\t\telse this._bitmap._offset=[];\r\n\t});\r\n\r\n\t__static(Button,\r\n\t['stateMap',function(){return this.stateMap={\"mouseup\":0,\"mouseover\":1,\"mousedown\":2,\"mouseout\":0};}\r\n\t]);\r\n\treturn Button;\r\n})(Component)\r\n\r\n\r\n/**\r\n*<p> <code>Clip</code> 类是位图切片动画。</p>\r\n*<p> <code>Clip</code> 可将一张图片，按横向分割数量 <code>clipX</code> 、竖向分割数量 <code>clipY</code> ，\r\n*或横向分割每个切片的宽度 <code>clipWidth</code> 、竖向分割每个切片的高度 <code>clipHeight</code> ，\r\n*从左向右，从上到下，分割组合为一个切片动画。</p>\r\n*Image和Clip组件是唯一支持异步加载的两个组件，比如clip.skin=\"abc/xxx.png\"，其他UI组件均不支持异步加载。\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>Clip</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.Clip;\r\n\t*public class Clip_Example\r\n\t*{\r\n\t\t*private var clip:Clip;\r\n\t\t*public function Clip_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*onInit();\r\n\t\t\t*}\r\n\t\t*private function onInit():void\r\n\t\t*{\r\n\t\t\t*clip=new Clip(\"resource/ui/clip_num.png\",10,1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。\r\n\t\t\t*clip.autoPlay=true;//设置 clip 动画自动播放。\r\n\t\t\t*clip.interval=100;//设置 clip 动画的播放时间间隔。\r\n\t\t\t*clip.x=100;//设置 clip 对象的属性 x 的值，用于控制 clip 对象的显示位置。\r\n\t\t\t*clip.y=100;//设置 clip 对象的属性 y 的值，用于控制 clip 对象的显示位置。\r\n\t\t\t*clip.on(Event.CLICK,this,onClick);//给 clip 添加点击事件函数侦听。\r\n\t\t\t*Laya.stage.addChild(clip);//将此 clip 对象添加到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onClick():void\r\n\t\t*{\r\n\t\t\t*trace(\"clip 的点击事件侦听处理函数。clip.total=\"+clip.total);\r\n\t\t\t*if (clip.isPlaying==true)\r\n\t\t\t*{\r\n\t\t\t\t*clip.stop();//停止动画。\r\n\t\t\t\t*}else {\r\n\t\t\t\t*clip.play();//播放动画。\r\n\t\t\t\t*}\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*var clip;\r\n*Laya.loader.load(\"resource/ui/clip_num.png\",laya.utils.Handler.create(this,loadComplete));//加载资源\r\n*function loadComplete(){\r\n\t*console.log(\"资源加载完成！\");\r\n\t*clip=new laya.ui.Clip(\"resource/ui/clip_num.png\",10,1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。\r\n\t*clip.autoPlay=true;//设置 clip 动画自动播放。\r\n\t*clip.interval=100;//设置 clip 动画的播放时间间隔。\r\n\t*clip.x=100;//设置 clip 对象的属性 x 的值，用于控制 clip 对象的显示位置。\r\n\t*clip.y=100;//设置 clip 对象的属性 y 的值，用于控制 clip 对象的显示位置。\r\n\t*clip.on(Event.CLICK,this,onClick);//给 clip 添加点击事件函数侦听。\r\n\t*Laya.stage.addChild(clip);//将此 clip 对象添加到显示列表。\r\n\t*}\r\n*function onClick()\r\n*{\r\n\t*console.log(\"clip 的点击事件侦听处理函数。\");\r\n\t*if(clip.isPlaying==true)\r\n\t*{\r\n\t\t*clip.stop();\r\n\t\t*}else {\r\n\t\t*clip.play();\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*import Clip=laya.ui.Clip;\r\n*import Handler=laya.utils.Handler;\r\n*class Clip_Example {\r\n\t*private clip:Clip;\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*this.onInit();\r\n\t\t*}\r\n\t*private onInit():void {\r\n\t\t*this.clip=new Clip(\"resource/ui/clip_num.png\",10,1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。\r\n\t\t*this.clip.autoPlay=true;//设置 clip 动画自动播放。\r\n\t\t*this.clip.interval=100;//设置 clip 动画的播放时间间隔。\r\n\t\t*this.clip.x=100;//设置 clip 对象的属性 x 的值，用于控制 clip 对象的显示位置。\r\n\t\t*this.clip.y=100;//设置 clip 对象的属性 y 的值，用于控制 clip 对象的显示位置。\r\n\t\t*this.clip.on(laya.events.Event.CLICK,this,this.onClick);//给 clip 添加点击事件函数侦听。\r\n\t\t*Laya.stage.addChild(this.clip);//将此 clip 对象添加到显示列表。\r\n\t\t*}\r\n\t*private onClick():void {\r\n\t\t*console.log(\"clip 的点击事件侦听处理函数。clip.total=\"+this.clip.total);\r\n\t\t*if (this.clip.isPlaying==true){\r\n\t\t\t*this.clip.stop();//停止动画。\r\n\t\t\t*}else {\r\n\t\t\t*this.clip.play();//播放动画。\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*\r\n*/\r\n//class laya.ui.Clip extends laya.ui.Component\r\nvar Clip=(function(_super){\r\n\tfunction Clip(url,clipX,clipY){\r\n\t\t/**@private */\r\n\t\tthis._sources=null;\r\n\t\t/**@private */\r\n\t\tthis._bitmap=null;\r\n\t\t/**@private */\r\n\t\tthis._skin=null;\r\n\t\t/**@private */\r\n\t\tthis._clipX=1;\r\n\t\t/**@private */\r\n\t\tthis._clipY=1;\r\n\t\t/**@private */\r\n\t\tthis._clipWidth=0;\r\n\t\t/**@private */\r\n\t\tthis._clipHeight=0;\r\n\t\t/**@private */\r\n\t\tthis._autoPlay=false;\r\n\t\t/**@private */\r\n\t\tthis._interval=50;\r\n\t\t/**@private */\r\n\t\tthis._complete=null;\r\n\t\t/**@private */\r\n\t\tthis._isPlaying=false;\r\n\t\t/**@private */\r\n\t\tthis._index=0;\r\n\t\t/**@private */\r\n\t\tthis._clipChanged=false;\r\n\t\t/**@private */\r\n\t\tthis._group=null;\r\n\t\t/**@private */\r\n\t\tthis._toIndex=-1;\r\n\t\tClip.__super.call(this);\r\n\t\t(clipX===void 0)&& (clipX=1);\r\n\t\t(clipY===void 0)&& (clipY=1);\r\n\t\tthis._clipX=clipX;\r\n\t\tthis._clipY=clipY;\r\n\t\tthis.skin=url;\r\n\t}\r\n\r\n\t__class(Clip,'laya.ui.Clip',_super);\r\n\tvar __proto=Clip.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,true);\r\n\t\tthis._bitmap && this._bitmap.destroy();\r\n\t\tthis._bitmap=null;\r\n\t\tthis._sources=null;\r\n\t}\r\n\r\n\t/**\r\n\t*销毁对象并释放加载的皮肤资源。\r\n\t*/\r\n\t__proto.dispose=function(){\r\n\t\tthis.destroy(true);\r\n\t\tLaya.loader.clearRes(this._skin);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.graphics=this._bitmap=new AutoBitmap();\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._onDisplay=function(e){\r\n\t\tif (this._isPlaying){\r\n\t\t\tif (this._displayedInStage)this.play();\r\n\t\t\telse this.stop();\r\n\t\t\t}else if (this._autoPlay){\r\n\t\t\tthis.play();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*改变切片的资源、切片的大小。\r\n\t*/\r\n\t__proto.changeClip=function(){\r\n\t\tthis._clipChanged=false;\r\n\t\tif (!this._skin)return;\r\n\t\tvar img=Loader.getRes(this._skin);\r\n\t\tif (img){\r\n\t\t\tthis.loadComplete(this._skin,img);\r\n\t\t\t}else {\r\n\t\t\tLaya.loader.load(this._skin,Handler.create(this,this.loadComplete,[this._skin]));\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*加载切片图片资源完成函数。\r\n\t*@param url 资源地址。\r\n\t*@param img 纹理。\r\n\t*/\r\n\t__proto.loadComplete=function(url,img){\r\n\t\tif (url===this._skin && img){\r\n\t\t\tvar w=this._clipWidth || Math.ceil(img.sourceWidth / this._clipX);\r\n\t\t\tvar h=this._clipHeight || Math.ceil(img.sourceHeight / this._clipY);\r\n\t\t\tvar key=this._skin+w+h;\r\n\t\t\tvar clips=WeakObject.I.get(key);\r\n\t\t\tif (!Utils.isOkTextureList(clips)){\r\n\t\t\t\tclips=null;\r\n\t\t\t}\r\n\t\t\tif (clips)this._sources=clips;\r\n\t\t\telse {\r\n\t\t\t\tthis._sources=[];\r\n\t\t\t\tfor (var i=0;i < this._clipY;i++){\r\n\t\t\t\t\tfor (var j=0;j < this._clipX;j++){\r\n\t\t\t\t\t\tthis._sources.push(Texture.createFromTexture(img,w *j,h *i,w,h));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tWeakObject.I.set(key,this._sources);\r\n\t\t\t}\r\n\t\t\tthis.index=this._index;\r\n\t\t\tthis.event(/*laya.events.Event.LOADED*/\"loaded\");\r\n\t\t\tthis.onCompResize();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*播放动画。\r\n\t*@param from 开始索引\r\n\t*@param to 结束索引，-1为不限制\r\n\t*/\r\n\t__proto.play=function(from,to){\r\n\t\t(from===void 0)&& (from=0);\r\n\t\t(to===void 0)&& (to=-1);\r\n\t\tthis._isPlaying=true;\r\n\t\tthis.index=from;\r\n\t\tthis._toIndex=to;\r\n\t\tthis._index++;\r\n\t\tLaya.timer.loop(this.interval,this,this._loop);\r\n\t\tthis.on(/*laya.events.Event.DISPLAY*/\"display\",this,this._onDisplay);\r\n\t\tthis.on(/*laya.events.Event.UNDISPLAY*/\"undisplay\",this,this._onDisplay);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._loop=function(){\r\n\t\tif (this._style.visible && this._sources){\r\n\t\t\tthis._index++;\r\n\t\t\tif (this._toIndex >-1 && this._index >=this._toIndex)this.stop();\r\n\t\t\telse if (this._index >=this._sources.length)this._index=0;\r\n\t\t\tthis.index=this._index;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*停止动画。\r\n\t*/\r\n\t__proto.stop=function(){\r\n\t\tthis._isPlaying=false;\r\n\t\tLaya.timer.clear(this,this._loop);\r\n\t\tthis.event(/*laya.events.Event.COMPLETE*/\"complete\");\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setClipChanged=function(){\r\n\t\tif (!this._clipChanged){\r\n\t\t\tthis._clipChanged=true;\r\n\t\t\tthis.callLater(this.changeClip);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*表示动画播放间隔时间(以毫秒为单位)。\r\n\t*/\r\n\t__getset(0,__proto,'interval',function(){\r\n\t\treturn this._interval;\r\n\t\t},function(value){\r\n\t\tif (this._interval !=value){\r\n\t\t\tthis._interval=value;\r\n\t\t\tif (this._isPlaying)this.play();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.ui.Image#skin\r\n\t*/\r\n\t__getset(0,__proto,'skin',function(){\r\n\t\treturn this._skin;\r\n\t\t},function(value){\r\n\t\tif (this._skin !=value){\r\n\t\t\tthis._skin=value;\r\n\t\t\tif (value){\r\n\t\t\t\tthis._setClipChanged()\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._bitmap.source=null;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*源数据。\r\n\t*/\r\n\t__getset(0,__proto,'sources',function(){\r\n\t\treturn this._sources;\r\n\t\t},function(value){\r\n\t\tthis._sources=value;\r\n\t\tthis.index=this._index;\r\n\t\tthis.event(/*laya.events.Event.LOADED*/\"loaded\");\r\n\t});\r\n\r\n\t/**X轴（横向）切片数量。*/\r\n\t__getset(0,__proto,'clipX',function(){\r\n\t\treturn this._clipX;\r\n\t\t},function(value){\r\n\t\tthis._clipX=value || 1;\r\n\t\tthis._setClipChanged()\r\n\t});\r\n\r\n\t/**Y轴(竖向)切片数量。*/\r\n\t__getset(0,__proto,'clipY',function(){\r\n\t\treturn this._clipY;\r\n\t\t},function(value){\r\n\t\tthis._clipY=value || 1;\r\n\t\tthis._setClipChanged()\r\n\t});\r\n\r\n\t/**\r\n\t*切片动画的总帧数。\r\n\t*/\r\n\t__getset(0,__proto,'total',function(){\r\n\t\tthis.runCallLater(this.changeClip);\r\n\t\treturn this._sources ? this._sources.length :0;\r\n\t});\r\n\r\n\t/**\r\n\t*横向分割时每个切片的宽度，与 <code>clipX</code> 同时设置时优先级高于 <code>clipX</code> 。\r\n\t*/\r\n\t__getset(0,__proto,'clipWidth',function(){\r\n\t\treturn this._clipWidth;\r\n\t\t},function(value){\r\n\t\tthis._clipWidth=value;\r\n\t\tthis._setClipChanged()\r\n\t});\r\n\r\n\t/**\r\n\t*<p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>\r\n\t*<p>数据格式：\"上边距,右边距,下边距,左边距,是否重复填充(值为0：不重复填充，1：重复填充)\"，以逗号分隔。\r\n\t*<ul><li>例如：\"4,4,4,4,1\"</li></ul></p>\r\n\t*@see laya.ui.AutoBitmap.sizeGrid\r\n\t*/\r\n\t__getset(0,__proto,'sizeGrid',function(){\r\n\t\tif (this._bitmap.sizeGrid)return this._bitmap.sizeGrid.join(\",\");\r\n\t\treturn null;\r\n\t\t},function(value){\r\n\t\tthis._bitmap.sizeGrid=UIUtils.fillArray(Styles.defaultSizeGrid,value,Number);\r\n\t});\r\n\r\n\t/**\r\n\t*资源分组。\r\n\t*/\r\n\t__getset(0,__proto,'group',function(){\r\n\t\treturn this._group;\r\n\t\t},function(value){\r\n\t\tif (value && this._skin)Loader.setGroup(this._skin,value);\r\n\t\tthis._group=value;\r\n\t});\r\n\r\n\t/**\r\n\t*竖向分割时每个切片的高度，与 <code>clipY</code> 同时设置时优先级高于 <code>clipY</code> 。\r\n\t*/\r\n\t__getset(0,__proto,'clipHeight',function(){\r\n\t\treturn this._clipHeight;\r\n\t\t},function(value){\r\n\t\tthis._clipHeight=value;\r\n\t\tthis._setClipChanged()\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tLaya.superSet(Component,this,'width',value);\r\n\t\tthis._bitmap.width=value;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tLaya.superSet(Component,this,'height',value);\r\n\t\tthis._bitmap.height=value;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureWidth',function(){\r\n\t\tthis.runCallLater(this.changeClip);\r\n\t\treturn this._bitmap.width;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureHeight',function(){\r\n\t\tthis.runCallLater(this.changeClip);\r\n\t\treturn this._bitmap.height;\r\n\t});\r\n\r\n\t/**\r\n\t*当前帧索引。\r\n\t*/\r\n\t__getset(0,__proto,'index',function(){\r\n\t\treturn this._index;\r\n\t\t},function(value){\r\n\t\tthis._index=value;\r\n\t\tthis._bitmap && this._sources && (this._bitmap.source=this._sources[value]);\r\n\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t});\r\n\r\n\t/**\r\n\t*表示是否自动播放动画，若自动播放值为true,否则值为false;\r\n\t*<p>可控制切片动画的播放、停止。</p>\r\n\t*/\r\n\t__getset(0,__proto,'autoPlay',function(){\r\n\t\treturn this._autoPlay;\r\n\t\t},function(value){\r\n\t\tif (this._autoPlay !=value){\r\n\t\t\tthis._autoPlay=value;\r\n\t\t\tvalue ? this.play():this.stop();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示动画的当前播放状态。\r\n\t*如果动画正在播放中，则为true，否则为flash。\r\n\t*/\r\n\t__getset(0,__proto,'isPlaying',function(){\r\n\t\treturn this._isPlaying;\r\n\t\t},function(value){\r\n\t\tthis._isPlaying=value;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif (((typeof value=='number')&& Math.floor(value)==value)|| (typeof value=='string'))this.index=parseInt(value);\r\n\t\telse Laya.superSet(Component,this,'dataSource',value);\r\n\t});\r\n\r\n\t/**\r\n\t*<code>AutoBitmap</code> 位图实例。\r\n\t*/\r\n\t__getset(0,__proto,'bitmap',function(){\r\n\t\treturn this._bitmap;\r\n\t});\r\n\r\n\treturn Clip;\r\n})(Component)\r\n\r\n\r\n/**\r\n*<code>ColorPicker</code> 组件将显示包含多个颜色样本的列表，用户可以从中选择颜色。\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>ColorPicker</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.ColorPicker;\r\n\t*import laya.utils.Handler;\r\n\t*public class ColorPicker_Example\r\n\t*{\r\n\t\t*public function ColorPicker_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load(\"resource/ui/color.png\",Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*trace(\"资源加载完成！\");\r\n\t\t\t*var colorPicket:ColorPicker=new ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。\r\n\t\t\t*colorPicket.skin=\"resource/ui/color.png\";//设置 colorPicket 的皮肤。\r\n\t\t\t*colorPicket.x=100;//设置 colorPicket 对象的属性 x 的值，用于控制 colorPicket 对象的显示位置。\r\n\t\t\t*colorPicket.y=100;//设置 colorPicket 对象的属性 y 的值，用于控制 colorPicket 对象的显示位置。\r\n\t\t\t*colorPicket.changeHandler=new Handler(this,onChangeColor,[colorPicket]);//设置 colorPicket 的颜色改变回调函数。\r\n\t\t\t*Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onChangeColor(colorPicket:ColorPicker):void\r\n\t\t*{\r\n\t\t\t*trace(\"当前选择的颜色： \"+colorPicket.selectedColor);\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*Laya.loader.load(\"resource/ui/color.png\",laya.utils.Handler.create(this,loadComplete));//加载资源\r\n*function loadComplete()\r\n*{\r\n\t*console.log(\"资源加载完成！\");\r\n\t*var colorPicket=new laya.ui.ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。\r\n\t*colorPicket.skin=\"resource/ui/color.png\";//设置 colorPicket 的皮肤。\r\n\t*colorPicket.x=100;//设置 colorPicket 对象的属性 x 的值，用于控制 colorPicket 对象的显示位置。\r\n\t*colorPicket.y=100;//设置 colorPicket 对象的属性 y 的值，用于控制 colorPicket 对象的显示位置。\r\n\t*colorPicket.changeHandler=laya.utils.Handler.create(this,onChangeColor,[colorPicket],false);//设置 colorPicket 的颜色改变回调函数。\r\n\t*Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。\r\n\t*}\r\n*function onChangeColor(colorPicket)\r\n*{\r\n\t*console.log(\"当前选择的颜色： \"+colorPicket.selectedColor);\r\n\t*}\r\n*@example\r\n*import ColorPicker=laya.ui.ColorPicker;\r\n*import Handler=laya.utils.Handler;\r\n*class ColorPicker_Example {\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load(\"resource/ui/color.png\",Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*console.log(\"资源加载完成！\");\r\n\t\t*var colorPicket:ColorPicker=new ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。\r\n\t\t*colorPicket.skin=\"resource/ui/color.png\";//设置 colorPicket 的皮肤。\r\n\t\t*colorPicket.x=100;//设置 colorPicket 对象的属性 x 的值，用于控制 colorPicket 对象的显示位置。\r\n\t\t*colorPicket.y=100;//设置 colorPicket 对象的属性 y 的值，用于控制 colorPicket 对象的显示位置。\r\n\t\t*colorPicket.changeHandler=new Handler(this,this.onChangeColor,[colorPicket]);//设置 colorPicket 的颜色改变回调函数。\r\n\t\t*Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。\r\n\t\t*}\r\n\t*private onChangeColor(colorPicket:ColorPicker):void {\r\n\t\t*console.log(\"当前选择的颜色： \"+colorPicket.selectedColor);\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.ColorPicker extends laya.ui.Component\r\nvar ColorPicker=(function(_super){\r\n\tfunction ColorPicker(){\r\n\t\t/**\r\n\t\t*当颜色发生改变时执行的函数处理器。\r\n\t\t*默认返回参数color：颜色值字符串。\r\n\t\t*/\r\n\t\tthis.changeHandler=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*指定每个正方形的颜色小格子的宽高（以像素为单位）。\r\n\t\t*/\r\n\t\tthis._gridSize=11;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示颜色样本列表面板的背景颜色值。\r\n\t\t*/\r\n\t\tthis._bgColor=\"#ffffff\";\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示颜色样本列表面板的边框颜色值。\r\n\t\t*/\r\n\t\tthis._borderColor=\"#000000\";\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示颜色样本列表面板选择或输入的颜色值。\r\n\t\t*/\r\n\t\tthis._inputColor=\"#000000\";\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示颜色输入框的背景颜色值。\r\n\t\t*/\r\n\t\tthis._inputBgColor=\"#efefef\";\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示颜色样本列表面板。\r\n\t\t*/\r\n\t\tthis._colorPanel=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示颜色网格。\r\n\t\t*/\r\n\t\tthis._colorTiles=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示颜色块显示对象。\r\n\t\t*/\r\n\t\tthis._colorBlock=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示颜色输入框控件 <code>Input</code> 。\r\n\t\t*/\r\n\t\tthis._colorInput=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示点击后显示颜色样本列表面板的按钮控件 <code>Button</code> 。\r\n\t\t*/\r\n\t\tthis._colorButton=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示颜色值列表。\r\n\t\t*/\r\n\t\tthis._colors=[];\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*表示选择的颜色值。\r\n\t\t*/\r\n\t\tthis._selectedColor=\"#000000\";\r\n\t\t/**@private */\r\n\t\tthis._panelChanged=false;\r\n\t\tColorPicker.__super.call(this);\r\n\t}\r\n\r\n\t__class(ColorPicker,'laya.ui.ColorPicker',_super);\r\n\tvar __proto=ColorPicker.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._colorPanel && this._colorPanel.destroy(destroyChild);\r\n\t\tthis._colorButton && this._colorButton.destroy(destroyChild);\r\n\t\tthis._colorPanel=null;\r\n\t\tthis._colorTiles=null;\r\n\t\tthis._colorBlock=null;\r\n\t\tthis._colorInput=null;\r\n\t\tthis._colorButton=null;\r\n\t\tthis._colors=null;\r\n\t\tthis.changeHandler=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.addChild(this._colorButton=new Button());\r\n\t\tthis._colorPanel=new Box();\r\n\t\tthis._colorPanel.size(230,166);\r\n\t\tthis._colorPanel.addChild(this._colorTiles=new Sprite());\r\n\t\tthis._colorPanel.addChild(this._colorBlock=new Sprite());\r\n\t\tthis._colorPanel.addChild(this._colorInput=new Input());\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.initialize=function(){\r\n\t\tthis._colorButton.on(/*laya.events.Event.CLICK*/\"click\",this,this.onColorButtonClick);\r\n\t\tthis._colorBlock.pos(5,5);\r\n\t\tthis._colorInput.pos(60,5);\r\n\t\tthis._colorInput.size(60,20);\r\n\t\tthis._colorInput.on(/*laya.events.Event.CHANGE*/\"change\",this,this.onColorInputChange);\r\n\t\tthis._colorInput.on(/*laya.events.Event.KEY_DOWN*/\"keydown\",this,this.onColorFieldKeyDown);\r\n\t\tthis._colorTiles.pos(5,30);\r\n\t\tthis._colorTiles.on(/*laya.events.Event.MOUSE_MOVE*/\"mousemove\",this,this.onColorTilesMouseMove);\r\n\t\tthis._colorTiles.on(/*laya.events.Event.CLICK*/\"click\",this,this.onColorTilesClick);\r\n\t\tthis._colorTiles.size(20 *this._gridSize,12 *this._gridSize);\r\n\t\tthis._colorPanel.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onPanelMouseDown);\r\n\t\tthis.bgColor=this._bgColor;\r\n\t}\r\n\r\n\t__proto.onPanelMouseDown=function(e){\r\n\t\te.stopPropagation();\r\n\t}\r\n\r\n\t/**\r\n\t*改变颜色样本列表面板。\r\n\t*/\r\n\t__proto.changePanel=function(){\r\n\t\tthis._panelChanged=false;\r\n\t\tvar g=this._colorPanel.graphics;\r\n\t\tg.clear();\r\n\t\tg.drawRect(0,0,230,166,this._bgColor,this._borderColor);\r\n\t\tthis.drawBlock(this._selectedColor);\r\n\t\tthis._colorInput.borderColor=this._borderColor;\r\n\t\tthis._colorInput.bgColor=this._inputBgColor;\r\n\t\tthis._colorInput.color=this._inputColor;\r\n\t\tg=this._colorTiles.graphics;\r\n\t\tg.clear();\r\n\t\tvar mainColors=[0x000000,0x333333,0x666666,0x999999,0xCCCCCC,0xFFFFFF,0xFF0000,0x00FF00,0x0000FF,0xFFFF00,0x00FFFF,0xFF00FF];\r\n\t\tfor (var i=0;i < 12;i++){\r\n\t\t\tfor (var j=0;j < 20;j++){\r\n\t\t\t\tvar color=0;\r\n\t\t\t\tif (j===0)color=mainColors[i];\r\n\t\t\t\telse if (j===1)color=0x000000;\r\n\t\t\t\telse color=(((i *3+j / 6)% 3 << 0)+((i / 6)<< 0)*3)*0x33 << 16 | j % 6 *0x33 << 8 | (i << 0)% 6 *0x33;\r\n\t\t\t\tvar strColor=UIUtils.toColor(color);\r\n\t\t\t\tthis._colors.push(strColor);\r\n\t\t\t\tvar x=j *this._gridSize;\r\n\t\t\t\tvar y=i *this._gridSize;\r\n\t\t\t\tg.drawRect(x,y,this._gridSize,this._gridSize,strColor,\"#000000\");\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*颜色样本列表面板的显示按钮的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onColorButtonClick=function(e){\r\n\t\tif (this._colorPanel.parent)this.close();\r\n\t\telse this.open();\r\n\t}\r\n\r\n\t/**\r\n\t*打开颜色样本列表面板。\r\n\t*/\r\n\t__proto.open=function(){\r\n\t\tvar p=this.localToGlobal(new Point());\r\n\t\tvar px=p.x+this._colorPanel.width <=Laya.stage.width ? p.x :Laya.stage.width-this._colorPanel.width;\r\n\t\tvar py=p.y+this._colorButton.height;\r\n\t\tpy=py+this._colorPanel.height <=Laya.stage.height ? py :p.y-this._colorPanel.height;\r\n\t\tthis._colorPanel.pos(px,py);\r\n\t\tthis._colorPanel.zOrder=1001;\r\n\t\tLaya._currentStage.addChild(this._colorPanel);\r\n\t\tLaya.stage.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.removeColorBox);\r\n\t}\r\n\r\n\t/**\r\n\t*关闭颜色样本列表面板。\r\n\t*/\r\n\t__proto.close=function(){\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.removeColorBox);\r\n\t\tthis._colorPanel.removeSelf();\r\n\t}\r\n\r\n\t/**\r\n\t*舞台的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.removeColorBox=function(e){\r\n\t\tthis.close();\r\n\t}\r\n\r\n\t/**\r\n\t*小格子色块的 <code>Event.KEY_DOWN</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onColorFieldKeyDown=function(e){\r\n\t\tif (e.keyCode==13){\r\n\t\t\tif (this._colorInput.text)this.selectedColor=this._colorInput.text;\r\n\t\t\telse this.selectedColor=null;\r\n\t\t\tthis.close();\r\n\t\t\te.stopPropagation();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*颜色值输入框 <code>Event.CHANGE</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onColorInputChange=function(e){\r\n\t\tif (this._colorInput.text)this.drawBlock(this._colorInput.text);\r\n\t\telse this.drawBlock(\"#FFFFFF\");\r\n\t}\r\n\r\n\t/**\r\n\t*小格子色块的 <code>Event.CLICK</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onColorTilesClick=function(e){\r\n\t\tthis.selectedColor=this.getColorByMouse();\r\n\t\tthis.close();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*小格子色块的 <code>Event.MOUSE_MOVE</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onColorTilesMouseMove=function(e){\r\n\t\tthis._colorInput.focus=false;\r\n\t\tvar color=this.getColorByMouse();\r\n\t\tthis._colorInput.text=color;\r\n\t\tthis.drawBlock(color);\r\n\t}\r\n\r\n\t/**\r\n\t*通过鼠标位置取对应的颜色块的颜色值。\r\n\t*/\r\n\t__proto.getColorByMouse=function(){\r\n\t\tvar point=this._colorTiles.getMousePoint();\r\n\t\tvar x=Math.floor(point.x / this._gridSize);\r\n\t\tvar y=Math.floor(point.y / this._gridSize);\r\n\t\treturn this._colors[y *20+x];\r\n\t}\r\n\r\n\t/**\r\n\t*绘制颜色块。\r\n\t*@param color 需要绘制的颜色块的颜色值。\r\n\t*/\r\n\t__proto.drawBlock=function(color){\r\n\t\tvar g=this._colorBlock.graphics;\r\n\t\tg.clear();\r\n\t\tvar showColor=color ? color :\"#ffffff\";\r\n\t\tg.drawRect(0,0,50,20,showColor,this._borderColor);\r\n\t\tcolor || g.drawLine(0,0,50,20,\"#ff0000\");\r\n\t}\r\n\r\n\t/**\r\n\t*改变颜色。\r\n\t*/\r\n\t__proto.changeColor=function(){\r\n\t\tvar g=this.graphics;\r\n\t\tg.clear();\r\n\t\tvar showColor=this._selectedColor || \"#000000\";\r\n\t\tg.drawRect(0,0,this._colorButton.width,this._colorButton.height,showColor);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setPanelChanged=function(){\r\n\t\tif (!this._panelChanged){\r\n\t\t\tthis._panelChanged=true;\r\n\t\t\tthis.callLater(this.changePanel);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*表示颜色输入框的背景颜色值。\r\n\t*/\r\n\t__getset(0,__proto,'inputBgColor',function(){\r\n\t\treturn this._inputBgColor;\r\n\t\t},function(value){\r\n\t\tthis._inputBgColor=value;\r\n\t\tthis._setPanelChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*表示选择的颜色值。\r\n\t*/\r\n\t__getset(0,__proto,'selectedColor',function(){\r\n\t\treturn this._selectedColor;\r\n\t\t},function(value){\r\n\t\tif (this._selectedColor !=value){\r\n\t\t\tthis._selectedColor=this._colorInput.text=value;\r\n\t\t\tthis.drawBlock(value);\r\n\t\t\tthis.changeColor();\r\n\t\t\tthis.changeHandler && this.changeHandler.runWith(this._selectedColor);\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\",Event.EMPTY.setTo(/*laya.events.Event.CHANGE*/\"change\",this,this));\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.ui.Button#skin\r\n\t*/\r\n\t__getset(0,__proto,'skin',function(){\r\n\t\treturn this._colorButton.skin;\r\n\t\t},function(value){\r\n\t\tthis._colorButton.skin=value;\r\n\t\tthis.changeColor();\r\n\t});\r\n\r\n\t/**\r\n\t*表示颜色样本列表面板的背景颜色值。\r\n\t*/\r\n\t__getset(0,__proto,'bgColor',function(){\r\n\t\treturn this._bgColor;\r\n\t\t},function(value){\r\n\t\tthis._bgColor=value;\r\n\t\tthis._setPanelChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*表示颜色样本列表面板的边框颜色值。\r\n\t*/\r\n\t__getset(0,__proto,'borderColor',function(){\r\n\t\treturn this._borderColor;\r\n\t\t},function(value){\r\n\t\tthis._borderColor=value;\r\n\t\tthis._setPanelChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*表示颜色样本列表面板选择或输入的颜色值。\r\n\t*/\r\n\t__getset(0,__proto,'inputColor',function(){\r\n\t\treturn this._inputColor;\r\n\t\t},function(value){\r\n\t\tthis._inputColor=value;\r\n\t\tthis._setPanelChanged();\r\n\t});\r\n\r\n\treturn ColorPicker;\r\n})(Component)\r\n\r\n\r\n/**\r\n*<code>ComboBox</code> 组件包含一个下拉列表，用户可以从该列表中选择单个值。\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>ComboBox</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.ComboBox;\r\n\t*import laya.utils.Handler;\r\n\t*public class ComboBox_Example\r\n\t*{\r\n\t\t*public function ComboBox_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load(\"resource/ui/button.png\",Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*trace(\"资源加载完成！\");\r\n\t\t\t*var comboBox:ComboBox=new ComboBox(\"resource/ui/button.png\",\"item0,item1,item2,item3,item4,item5\");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。\r\n\t\t\t*comboBox.x=100;//设置 comboBox 对象的属性 x 的值，用于控制 comboBox 对象的显示位置。\r\n\t\t\t*comboBox.y=100;//设置 comboBox 对象的属性 x 的值，用于控制 comboBox 对象的显示位置。\r\n\t\t\t*comboBox.selectHandler=new Handler(this,onSelect);//设置 comboBox 选择项改变时执行的处理器。\r\n\t\t\t*Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onSelect(index:int):void\r\n\t\t*{\r\n\t\t\t*trace(\"当前选中的项对象索引： \",index);\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高。\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n*Laya.loader.load(\"resource/ui/button.png\",laya.utils.Handler.create(this,loadComplete));//加载资源\r\n*function loadComplete(){\r\n\t*console.log(\"资源加载完成！\");\r\n\t*var comboBox=new laya.ui.ComboBox(\"resource/ui/button.png\",\"item0,item1,item2,item3,item4,item5\");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。\r\n\t*comboBox.x=100;//设置 comboBox 对象的属性 x 的值，用于控制 comboBox 对象的显示位置。\r\n\t*comboBox.y=100;//设置 comboBox 对象的属性 x 的值，用于控制 comboBox 对象的显示位置。\r\n\t*comboBox.selectHandler=new laya.utils.Handler(this,onSelect);//设置 comboBox 选择项改变时执行的处理器。\r\n\t*Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。\r\n\t*}\r\n*function onSelect(index)\r\n*{\r\n\t*console.log(\"当前选中的项对象索引： \",index);\r\n\t*}\r\n*@example\r\n*import ComboBox=laya.ui.ComboBox;\r\n*import Handler=laya.utils.Handler;\r\n*class ComboBox_Example {\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load(\"resource/ui/button.png\",Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*console.log(\"资源加载完成！\");\r\n\t\t*var comboBox:ComboBox=new ComboBox(\"resource/ui/button.png\",\"item0,item1,item2,item3,item4,item5\");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。\r\n\t\t*comboBox.x=100;//设置 comboBox 对象的属性 x 的值，用于控制 comboBox 对象的显示位置。\r\n\t\t*comboBox.y=100;//设置 comboBox 对象的属性 x 的值，用于控制 comboBox 对象的显示位置。\r\n\t\t*comboBox.selectHandler=new Handler(this,this.onSelect);//设置 comboBox 选择项改变时执行的处理器。\r\n\t\t*Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。\r\n\t\t*}\r\n\t*private onSelect(index:number):void {\r\n\t\t*console.log(\"当前选中的项对象索引： \",index);\r\n\t\t*}\r\n\t*}\r\n*\r\n*/\r\n//class laya.ui.ComboBox extends laya.ui.Component\r\nvar ComboBox=(function(_super){\r\n\tfunction ComboBox(skin,labels){\r\n\t\t/**@private */\r\n\t\tthis._visibleNum=6;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._button=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._list=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._isOpen=false;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._itemSize=12;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._labels=[];\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._selectedIndex=-1;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._selectHandler=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._itemHeight=NaN;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._listHeight=NaN;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._listChanged=false;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._itemChanged=false;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._scrollBarSkin=null;\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*/\r\n\t\tthis._isCustomList=false;\r\n\t\t/**\r\n\t\t*渲染项，用来显示下拉列表展示对象\r\n\t\t*/\r\n\t\tthis.itemRender=null;\r\n\t\tComboBox.__super.call(this);\r\n\t\tthis._itemColors=Styles.comboBoxItemColors;\r\n\t\tthis.skin=skin;\r\n\t\tthis.labels=labels;\r\n\t}\r\n\r\n\t__class(ComboBox,'laya.ui.ComboBox',_super);\r\n\tvar __proto=ComboBox.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._button && this._button.destroy(destroyChild);\r\n\t\tthis._list && this._list.destroy(destroyChild);\r\n\t\tthis._button=null;\r\n\t\tthis._list=null;\r\n\t\tthis._itemColors=null;\r\n\t\tthis._labels=null;\r\n\t\tthis._selectHandler=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.addChild(this._button=new Button());\r\n\t\tthis._button.text.align=\"left\";\r\n\t\tthis._button.labelPadding=\"0,0,0,5\";\r\n\t\tthis._button.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onButtonMouseDown);\r\n\t}\r\n\r\n\t__proto._createList=function(){\r\n\t\tthis._list=new List();\r\n\t\tif (this._scrollBarSkin)this._list.vScrollBarSkin=this._scrollBarSkin;\r\n\t\tthis._setListEvent(this._list);\r\n\t}\r\n\r\n\t__proto._setListEvent=function(list){\r\n\t\tthis._list.selectEnable=true;\r\n\t\tthis._list.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onListDown);\r\n\t\tthis._list.mouseHandler=Handler.create(this,this.onlistItemMouse,null,false);\r\n\t\tif (this._list.scrollBar)this._list.scrollBar.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onScrollBarDown);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.onListDown=function(e){\r\n\t\te.stopPropagation();\r\n\t}\r\n\r\n\t__proto.onScrollBarDown=function(e){\r\n\t\te.stopPropagation();\r\n\t}\r\n\r\n\t__proto.onButtonMouseDown=function(e){\r\n\t\tthis.callLater(this.switchTo,[!this._isOpen]);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.changeList=function(){\r\n\t\tthis._listChanged=false;\r\n\t\tvar labelWidth=this.width-2;\r\n\t\tvar labelColor=this._itemColors[2];\r\n\t\tthis._itemHeight=this._itemSize+6;\r\n\t\tthis._list.itemRender=this.itemRender || {type:\"Box\",child:[{type:\"Label\",props:{name:\"label\",x:1,padding:\"3,3,3,3\",width:labelWidth,height:this._itemHeight,fontSize:this._itemSize,color:labelColor}}]};\r\n\t\tthis._list.repeatY=this._visibleNum;\r\n\t\tthis._list.refresh();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*下拉列表的鼠标事件响应函数。\r\n\t*/\r\n\t__proto.onlistItemMouse=function(e,index){\r\n\t\tvar type=e.type;\r\n\t\tif (type===/*laya.events.Event.MOUSE_OVER*/\"mouseover\" || type===/*laya.events.Event.MOUSE_OUT*/\"mouseout\"){\r\n\t\t\tif (this._isCustomList)return;\r\n\t\t\tvar box=this._list.getCell(index);\r\n\t\t\tif (!box)return;\r\n\t\t\tvar label=box.getChildByName(\"label\");\r\n\t\t\tif (label){\r\n\t\t\t\tif (type===/*laya.events.Event.ROLL_OVER*/\"mouseover\"){\r\n\t\t\t\t\tlabel.bgColor=this._itemColors[0];\r\n\t\t\t\t\tlabel.color=this._itemColors[1];\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tlabel.bgColor=null;\r\n\t\t\t\t\tlabel.color=this._itemColors[2];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t}else if (type===/*laya.events.Event.CLICK*/\"click\"){\r\n\t\t\tthis.selectedIndex=index;\r\n\t\t\tthis.isOpen=false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.switchTo=function(value){\r\n\t\tthis.isOpen=value;\r\n\t}\r\n\r\n\t/**\r\n\t*更改下拉列表的打开状态。\r\n\t*/\r\n\t__proto.changeOpen=function(){\r\n\t\tthis.isOpen=!this._isOpen;\r\n\t}\r\n\r\n\t/**\r\n\t*更改下拉列表。\r\n\t*/\r\n\t__proto.changeItem=function(){\r\n\t\tthis._itemChanged=false;\r\n\t\tthis._listHeight=this._labels.length > 0 ? Math.min(this._visibleNum,this._labels.length)*this._itemHeight :this._itemHeight;\r\n\t\tif (!this._isCustomList){\r\n\t\t\tvar g=this._list.graphics;\r\n\t\t\tg.clear();\r\n\t\t\tg.drawRect(0,0,this.width-1,this._listHeight,this._itemColors[4],this._itemColors[3]);\r\n\t\t};\r\n\t\tvar a=this._list.array || [];\r\n\t\ta.length=0;\r\n\t\tfor (var i=0,n=this._labels.length;i < n;i++){\r\n\t\t\ta.push({label:this._labels[i]});\r\n\t\t}\r\n\t\tthis._list.height=this._listHeight;\r\n\t\tthis._list.array=a;\r\n\t}\r\n\r\n\t__proto.changeSelected=function(){\r\n\t\tthis._button.label=this.selectedLabel;\r\n\t}\r\n\r\n\t__proto._onStageMouseWheel=function(e){\r\n\t\tif(!this._list||this._list.contains(e.target))return;\r\n\t\tthis.removeList(null);\r\n\t}\r\n\r\n\t/**\r\n\t*关闭下拉列表。\r\n\t*/\r\n\t__proto.removeList=function(e){\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.removeList);\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_WHEEL*/\"mousewheel\",this,this._onStageMouseWheel);\r\n\t\tthis.isOpen=false;\r\n\t}\r\n\r\n\t/**\r\n\t*表示选择的下拉列表项的索引。\r\n\t*/\r\n\t__getset(0,__proto,'selectedIndex',function(){\r\n\t\treturn this._selectedIndex;\r\n\t\t},function(value){\r\n\t\tif (this._selectedIndex !=value){\r\n\t\t\tthis._selectedIndex=value;\r\n\t\t\tif (this._labels.length > 0)this.changeSelected();\r\n\t\t\telse this.callLater(this.changeSelected);\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\",[Event.EMPTY.setTo(/*laya.events.Event.CHANGE*/\"change\",this,this)]);\r\n\t\t\tthis._selectHandler && this._selectHandler.runWith(this._selectedIndex);\r\n\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureHeight',function(){\r\n\t\treturn this._button.height;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.ui.Button#skin\r\n\t*/\r\n\t__getset(0,__proto,'skin',function(){\r\n\t\treturn this._button.skin;\r\n\t\t},function(value){\r\n\t\tif (this._button.skin !=value){\r\n\t\t\tthis._button.skin=value;\r\n\t\t\tthis._listChanged=true;\r\n\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureWidth',function(){\r\n\t\treturn this._button.width;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tLaya.superSet(Component,this,'width',value);\r\n\t\tthis._button.width=this._width;\r\n\t\tthis._itemChanged=true;\r\n\t\tthis._listChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*表示选择的下拉列表项的的标签。\r\n\t*/\r\n\t__getset(0,__proto,'selectedLabel',function(){\r\n\t\treturn this._selectedIndex >-1 && this._selectedIndex < this._labels.length ? this._labels[this._selectedIndex] :null;\r\n\t\t},function(value){\r\n\t\tthis.selectedIndex=this._labels.indexOf(value);\r\n\t});\r\n\r\n\t/**\r\n\t*标签集合字符串。\r\n\t*/\r\n\t__getset(0,__proto,'labels',function(){\r\n\t\treturn this._labels.join(\",\");\r\n\t\t},function(value){\r\n\t\tif (this._labels.length > 0)this.selectedIndex=-1;\r\n\t\tif (value)this._labels=value.split(\",\");\r\n\t\telse this._labels.length=0;\r\n\t\tthis._itemChanged=true;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tLaya.superSet(Component,this,'height',value);\r\n\t\tthis._button.height=this._height;\r\n\t});\r\n\r\n\t/**\r\n\t*改变下拉列表的选择项时执行的处理器(默认返回参数index:int)。\r\n\t*/\r\n\t__getset(0,__proto,'selectHandler',function(){\r\n\t\treturn this._selectHandler;\r\n\t\t},function(value){\r\n\t\tthis._selectHandler=value;\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置没有滚动条的下拉列表中可显示的最大行数。\r\n\t*/\r\n\t__getset(0,__proto,'visibleNum',function(){\r\n\t\treturn this._visibleNum;\r\n\t\t},function(value){\r\n\t\tthis._visibleNum=value;\r\n\t\tthis._listChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮文本标签是否为粗体字。\r\n\t*@see laya.display.Text#bold\r\n\t*/\r\n\t__getset(0,__proto,'labelBold',function(){\r\n\t\treturn this._button.text.bold;\r\n\t\t},function(value){\r\n\t\tthis._button.text.bold=value\r\n\t});\r\n\r\n\t/**\r\n\t*下拉列表项颜色。\r\n\t*<p><b>格式：</b>\"悬停或被选中时背景颜色,悬停或被选中时标签颜色,标签颜色,边框颜色,背景颜色\"</p>\r\n\t*/\r\n\t__getset(0,__proto,'itemColors',function(){\r\n\t\treturn String(this._itemColors)\r\n\t\t},function(value){\r\n\t\tthis._itemColors=UIUtils.fillArray(this._itemColors,value,String);\r\n\t\tthis._listChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*下拉列表项标签的字体大小。\r\n\t*/\r\n\t__getset(0,__proto,'itemSize',function(){\r\n\t\treturn this._itemSize;\r\n\t\t},function(value){\r\n\t\tthis._itemSize=value;\r\n\t\tthis._listChanged=true;\r\n\t});\r\n\r\n\t/**\r\n\t*获取对 <code>ComboBox</code> 组件所包含的 <code>VScrollBar</code> 滚动条组件的引用。\r\n\t*/\r\n\t__getset(0,__proto,'scrollBar',function(){\r\n\t\treturn this.list.scrollBar;\r\n\t});\r\n\r\n\t/**\r\n\t*表示下拉列表的打开状态。\r\n\t*/\r\n\t__getset(0,__proto,'isOpen',function(){\r\n\t\treturn this._isOpen;\r\n\t\t},function(value){\r\n\t\tif (this._isOpen !=value){\r\n\t\t\tthis._isOpen=value;\r\n\t\t\tthis._button.selected=this._isOpen;\r\n\t\t\tif (this._isOpen){\r\n\t\t\t\tthis._list || this._createList();\r\n\t\t\t\tthis._listChanged && !this._isCustomList && this.changeList();\r\n\t\t\t\tthis._itemChanged && this.changeItem();\r\n\t\t\t\tvar p=this.localToGlobal(Point.TEMP.setTo(0,0));\r\n\t\t\t\tvar py=p.y+this._button.height;\r\n\t\t\t\tpy=py+this._listHeight <=Laya.stage.height ? py :p.y-this._listHeight;\r\n\t\t\t\tthis._list.pos(p.x,py);\r\n\t\t\t\tthis._list.zOrder=1001;\r\n\t\t\t\tLaya._currentStage.addChild(this._list);\r\n\t\t\t\tLaya.stage.once(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.removeList);\r\n\t\t\t\tLaya.stage.on(/*laya.events.Event.MOUSE_WHEEL*/\"mousewheel\",this,this._onStageMouseWheel);\r\n\t\t\t\tthis._list.selectedIndex=this._selectedIndex;\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._list && this._list.removeSelf();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*滚动条皮肤。\r\n\t*/\r\n\t__getset(0,__proto,'scrollBarSkin',function(){\r\n\t\treturn this._scrollBarSkin;\r\n\t\t},function(value){\r\n\t\tthis._scrollBarSkin=value;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>\r\n\t*<p>数据格式：\"上边距,右边距,下边距,左边距,是否重复填充(值为0：不重复填充，1：重复填充)\"，以逗号分隔。\r\n\t*<ul><li>例如：\"4,4,4,4,1\"</li></ul></p>\r\n\t*@see laya.ui.AutoBitmap.sizeGrid\r\n\t*/\r\n\t__getset(0,__proto,'sizeGrid',function(){\r\n\t\treturn this._button.sizeGrid;\r\n\t\t},function(value){\r\n\t\tthis._button.sizeGrid=value;\r\n\t});\r\n\r\n\t/**\r\n\t*获取对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的引用。\r\n\t*/\r\n\t__getset(0,__proto,'button',function(){\r\n\t\treturn this._button;\r\n\t});\r\n\r\n\t/**\r\n\t*获取对 <code>ComboBox</code> 组件所包含的 <code>List</code> 列表组件的引用。\r\n\t*/\r\n\t__getset(0,__proto,'list',function(){\r\n\t\tthis._list || this._createList();\r\n\t\treturn this._list;\r\n\t\t},function(value){\r\n\t\tif (value){\r\n\t\t\tvalue.removeSelf();\r\n\t\t\tthis._isCustomList=true;\r\n\t\t\tthis._list=value;\r\n\t\t\tthis._setListEvent(value);\r\n\t\t\tthis._itemHeight=value.getCell(0).height+value.spaceY;\r\n\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif (((typeof value=='number')&& Math.floor(value)==value)|| (typeof value=='string'))this.selectedIndex=parseInt(value);\r\n\t\telse if ((value instanceof Array))this.labels=(value).join(\",\");\r\n\t\telse Laya.superSet(Component,this,'dataSource',value);\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的文本标签颜色。\r\n\t*<p><b>格式：</b>upColor,overColor,downColor,disableColor</p>\r\n\t*/\r\n\t__getset(0,__proto,'labelColors',function(){\r\n\t\treturn this._button.labelColors;\r\n\t\t},function(value){\r\n\t\tif (this._button.labelColors !=value){\r\n\t\t\tthis._button.labelColors=value;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的文本边距。\r\n\t*<p><b>格式：</b>上边距,右边距,下边距,左边距</p>\r\n\t*/\r\n\t__getset(0,__proto,'labelPadding',function(){\r\n\t\treturn this._button.text.padding.join(\",\");\r\n\t\t},function(value){\r\n\t\tthis._button.text.padding=UIUtils.fillArray(Styles.labelPadding,value,Number);\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的标签字体大小。\r\n\t*/\r\n\t__getset(0,__proto,'labelSize',function(){\r\n\t\treturn this._button.text.fontSize;\r\n\t\t},function(value){\r\n\t\tthis._button.text.fontSize=value\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮文本标签的字体名称，以字符串形式表示。\r\n\t*@see laya.display.Text#font\r\n\t*/\r\n\t__getset(0,__proto,'labelFont',function(){\r\n\t\treturn this._button.text.font;\r\n\t\t},function(value){\r\n\t\tthis._button.text.font=value\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮的状态值。\r\n\t*@see laya.ui.Button#stateNum\r\n\t*/\r\n\t__getset(0,__proto,'stateNum',function(){\r\n\t\treturn this._button.stateNum;\r\n\t\t},function(value){\r\n\t\tthis._button.stateNum=value\r\n\t});\r\n\r\n\treturn ComboBox;\r\n})(Component)\r\n\r\n\r\n/**\r\n*<code>ScrollBar</code> 组件是一个滚动条组件。\r\n*<p>当数据太多以至于显示区域无法容纳时，最终用户可以使用 <code>ScrollBar</code> 组件控制所显示的数据部分。</p>\r\n*<p> 滚动条由四部分组成：两个箭头按钮、一个轨道和一个滑块。 </p> *\r\n*\r\n*@see laya.ui.VScrollBar\r\n*@see laya.ui.HScrollBar\r\n*/\r\n//class laya.ui.ScrollBar extends laya.ui.Component\r\nvar ScrollBar=(function(_super){\r\n\tfunction ScrollBar(skin){\r\n\t\t/**滚动衰减系数*/\r\n\t\tthis.rollRatio=0.95;\r\n\t\t/**滚动变化时回调，回传value参数。*/\r\n\t\tthis.changeHandler=null;\r\n\t\t/**是否缩放滑动条，默认值为true。 */\r\n\t\tthis.scaleBar=true;\r\n\t\t/**一个布尔值，指定是否自动隐藏滚动条(无需滚动时)，默认值为false。*/\r\n\t\tthis.autoHide=false;\r\n\t\t/**橡皮筋效果极限距离，0为没有橡皮筋效果。*/\r\n\t\tthis.elasticDistance=0;\r\n\t\t/**橡皮筋回弹时间，单位为毫秒。*/\r\n\t\tthis.elasticBackTime=500;\r\n\t\t/**上按钮 */\r\n\t\tthis.upButton=null;\r\n\t\t/**下按钮 */\r\n\t\tthis.downButton=null;\r\n\t\t/**滑条 */\r\n\t\tthis.slider=null;\r\n\t\t/**@private */\r\n\t\tthis._scrollSize=1;\r\n\t\t/**@private */\r\n\t\tthis._skin=null;\r\n\t\t/**@private */\r\n\t\tthis._thumbPercent=1;\r\n\t\t/**@private */\r\n\t\tthis._target=null;\r\n\t\t/**@private */\r\n\t\tthis._lastPoint=null;\r\n\t\t/**@private */\r\n\t\tthis._lastOffset=0;\r\n\t\t/**@private */\r\n\t\tthis._checkElastic=false;\r\n\t\t/**@private */\r\n\t\tthis._isElastic=false;\r\n\t\t/**@private */\r\n\t\tthis._value=NaN;\r\n\t\t/**@private */\r\n\t\tthis._hide=false;\r\n\t\t/**@private */\r\n\t\tthis._clickOnly=true;\r\n\t\t/**@private */\r\n\t\tthis._offsets=null;\r\n\t\tScrollBar.__super.call(this);\r\n\t\tthis._showButtons=UIConfig.showButtons;\r\n\t\tthis._touchScrollEnable=UIConfig.touchScrollEnable;\r\n\t\tthis._mouseWheelEnable=UIConfig.mouseWheelEnable;\r\n\t\tthis.skin=skin;\r\n\t\tthis.max=1;\r\n\t}\r\n\r\n\t__class(ScrollBar,'laya.ui.ScrollBar',_super);\r\n\tvar __proto=ScrollBar.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tthis.stopScroll();\r\n\t\tthis.target=null;\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis.upButton && this.upButton.destroy(destroyChild);\r\n\t\tthis.downButton && this.downButton.destroy(destroyChild);\r\n\t\tthis.slider && this.slider.destroy(destroyChild);\r\n\t\tthis.upButton=this.downButton=null;\r\n\t\tthis.slider=null;\r\n\t\tthis.changeHandler=null;\r\n\t\tthis._offsets=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.addChild(this.slider=new Slider());\r\n\t\tthis.addChild(this.upButton=new Button());\r\n\t\tthis.addChild(this.downButton=new Button());\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.initialize=function(){\r\n\t\tthis.slider.showLabel=false;\r\n\t\tthis.slider.on(/*laya.events.Event.CHANGE*/\"change\",this,this.onSliderChange);\r\n\t\tthis.slider.setSlider(0,0,0);\r\n\t\tthis.upButton.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onButtonMouseDown);\r\n\t\tthis.downButton.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onButtonMouseDown);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*滑块位置发生改变的处理函数。\r\n\t*/\r\n\t__proto.onSliderChange=function(){\r\n\t\tif(this._value !=this.slider.value)this.value=this.slider.value;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*向上和向下按钮的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onButtonMouseDown=function(e){\r\n\t\tvar isUp=e.currentTarget===this.upButton;\r\n\t\tthis.slide(isUp);\r\n\t\tLaya.timer.once(Styles.scrollBarDelayTime,this,this.startLoop,[isUp]);\r\n\t\tLaya.stage.once(/*laya.events.Event.MOUSE_UP*/\"mouseup\",this,this.onStageMouseUp);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.startLoop=function(isUp){\r\n\t\tLaya.timer.frameLoop(1,this,this.slide,[isUp]);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.slide=function(isUp){\r\n\t\tif (isUp)this.value-=this._scrollSize;\r\n\t\telse this.value+=this._scrollSize;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*舞台的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onStageMouseUp=function(e){\r\n\t\tLaya.timer.clear(this,this.startLoop);\r\n\t\tLaya.timer.clear(this,this.slide);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*更改对象的皮肤及位置。\r\n\t*/\r\n\t__proto.changeScrollBar=function(){\r\n\t\tthis.upButton.visible=this._showButtons;\r\n\t\tthis.downButton.visible=this._showButtons;\r\n\t\tif (this._showButtons){\r\n\t\t\tthis.upButton.skin=this._skin.replace(\".png\",\"$up.png\");\r\n\t\t\tthis.downButton.skin=this._skin.replace(\".png\",\"$down.png\");\r\n\t\t}\r\n\t\tif (this.slider.isVertical)this.slider.y=this._showButtons ? this.upButton.height :0;\r\n\t\telse this.slider.x=this._showButtons ? this.upButton.width :0;\r\n\t\tthis.resetPositions();\r\n\t\tthis.repaint();\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.changeSize=function(){\r\n\t\t_super.prototype.changeSize.call(this);\r\n\t\tthis.repaint();\r\n\t\tthis.resetPositions();\r\n\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t\tthis.changeHandler && this.changeHandler.runWith(this.value);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.resetPositions=function(){\r\n\t\tif (this.slider.isVertical)this.slider.height=this.height-(this._showButtons ? (this.upButton.height+this.downButton.height):0);\r\n\t\telse this.slider.width=this.width-(this._showButtons ? (this.upButton.width+this.downButton.width):0);\r\n\t\tthis.resetButtonPosition();\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.resetButtonPosition=function(){\r\n\t\tif (this.slider.isVertical)this.downButton.y=this.slider.y+this.slider.height;\r\n\t\telse this.downButton.x=this.slider.x+this.slider.width;\r\n\t}\r\n\r\n\t/**\r\n\t*设置滚动条信息。\r\n\t*@param min 滚动条最小位置值。\r\n\t*@param max 滚动条最大位置值。\r\n\t*@param value 滚动条当前位置值。\r\n\t*/\r\n\t__proto.setScroll=function(min,max,value){\r\n\t\tthis.runCallLater(this.changeSize);\r\n\t\tthis.slider.setSlider(min,max,value);\r\n\t\tthis.slider.bar.visible=max > 0;\r\n\t\tif (!this._hide && this.autoHide)this.visible=false;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.onTargetMouseWheel=function(e){\r\n\t\tthis.value-=e.delta *this._scrollSize;\r\n\t\tthis.target=this._target;\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.onTargetMouseDown=function(e){\r\n\t\tthis._clickOnly=true;\r\n\t\tthis._lastOffset=0;\r\n\t\tthis._checkElastic=false;\r\n\t\tthis._lastPoint || (this._lastPoint=new Point());\r\n\t\tthis._lastPoint.setTo(Laya.stage.mouseX,Laya.stage.mouseY);\r\n\t\tLaya.timer.clear(this,this.tweenMove);\r\n\t\tTween.clearTween(this);\r\n\t\tLaya.stage.once(/*laya.events.Event.MOUSE_UP*/\"mouseup\",this,this.onStageMouseUp2);\r\n\t\tLaya.stage.once(/*laya.events.Event.MOUSE_OUT*/\"mouseout\",this,this.onStageMouseUp2);\r\n\t\tLaya.timer.frameLoop(1,this,this.loop);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.loop=function(){\r\n\t\tvar mouseY=Laya.stage.mouseY;\r\n\t\tvar mouseX=Laya.stage.mouseX;\r\n\t\tthis._lastOffset=this.isVertical ? (mouseY-this._lastPoint.y):(mouseX-this._lastPoint.x);\r\n\t\tif (this._clickOnly){\r\n\t\t\tif (Math.abs(this._lastOffset *(this.isVertical ? Laya.stage._canvasTransform.getScaleY():Laya.stage._canvasTransform.getScaleX()))> 1){\r\n\t\t\t\tthis._clickOnly=false;\r\n\t\t\t\tthis._offsets || (this._offsets=[]);\r\n\t\t\t\tthis._offsets.length=0;\r\n\t\t\t\tthis._target.mouseEnabled=false;\r\n\t\t\t\tif (!this.hide && this.autoHide){\r\n\t\t\t\t\tthis.alpha=1;\r\n\t\t\t\t\tthis.visible=true;\r\n\t\t\t\t}\r\n\t\t\t\tthis.event(/*laya.events.Event.START*/\"start\");\r\n\t\t\t}else return;\r\n\t\t}\r\n\t\tthis._offsets.push(this._lastOffset);\r\n\t\tthis._lastPoint.x=mouseX;\r\n\t\tthis._lastPoint.y=mouseY;\r\n\t\tif (this._lastOffset===0)return;\r\n\t\tif (!this._checkElastic){\r\n\t\t\tif (this.elasticDistance > 0){\r\n\t\t\t\tif (!this._checkElastic && this._lastOffset !=0){\r\n\t\t\t\t\tif ((this._lastOffset > 0 && this._value <=this.min)|| (this._lastOffset < 0 && this._value >=this.max)){\r\n\t\t\t\t\t\tthis._isElastic=true;\r\n\t\t\t\t\t\tthis._checkElastic=true;\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tthis._isElastic=false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._checkElastic=true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this._isElastic){\r\n\t\t\tif (this._value <=this.min){\r\n\t\t\t\tthis.value-=this._lastOffset *Math.max(0,(1-((this.min-this._value)/ this.elasticDistance)));\r\n\t\t\t\t}else if (this._value >=this.max){\r\n\t\t\t\tthis.value-=this._lastOffset *Math.max(0,(1-((this._value-this.max)/ this.elasticDistance)));\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tthis.value-=this._lastOffset;\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.onStageMouseUp2=function(e){\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_UP*/\"mouseup\",this,this.onStageMouseUp2);\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_OUT*/\"mouseout\",this,this.onStageMouseUp2);\r\n\t\tLaya.timer.clear(this,this.loop);\r\n\t\tif (this._clickOnly){\r\n\t\t\tif(this._value>=this.min&&this._value<=this.max)\r\n\t\t\t\treturn;\r\n\t\t}\r\n\t\tthis._target.mouseEnabled=true;\r\n\t\tif (this._isElastic){\r\n\t\t\tif (this._value < this.min){\r\n\t\t\t\tTween.to(this,{value:this.min},this.elasticBackTime,Ease.sineOut,Handler.create(this,this.elasticOver));\r\n\t\t\t\t}else if (this._value > this.max){\r\n\t\t\t\tTween.to(this,{value:this.max},this.elasticBackTime,Ease.sineOut,Handler.create(this,this.elasticOver));\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tif (!this._offsets)return;\r\n\t\t\tif (this._offsets.length < 1){\r\n\t\t\t\tthis._offsets[0]=this.isVertical ? Laya.stage.mouseY-this._lastPoint.y :Laya.stage.mouseX-this._lastPoint.x;\r\n\t\t\t};\r\n\t\t\tvar offset=0;\r\n\t\t\tvar n=Math.min(this._offsets.length,3);\r\n\t\t\tfor (var i=0;i < n;i++){\r\n\t\t\t\toffset+=this._offsets[this._offsets.length-1-i];\r\n\t\t\t}\r\n\t\t\tthis._lastOffset=offset / n;\r\n\t\t\toffset=Math.abs(this._lastOffset);\r\n\t\t\tif (offset < 2){\r\n\t\t\t\tthis.event(/*laya.events.Event.END*/\"end\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (offset > 60)this._lastOffset=this._lastOffset > 0 ? 60 :-60;\r\n\t\t\tvar dis=Math.round(Math.abs(this.elasticDistance *(this._lastOffset / 240)));\r\n\t\t\tLaya.timer.frameLoop(1,this,this.tweenMove,[dis]);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.elasticOver=function(){\r\n\t\tthis._isElastic=false;\r\n\t\tif (!this.hide && this.autoHide){\r\n\t\t\tTween.to(this,{alpha:0},500);\r\n\t\t}\r\n\t\tthis.event(/*laya.events.Event.END*/\"end\");\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.tweenMove=function(maxDistance){\r\n\t\tthis._lastOffset *=this.rollRatio;\r\n\t\tvar tarSpeed=NaN;\r\n\t\tif (maxDistance > 0){\r\n\t\t\tif (this._lastOffset > 0 && this.value <=this.min){\r\n\t\t\t\tthis._isElastic=true;\r\n\t\t\t\ttarSpeed=-(this.min-maxDistance-this.value)*0.5;\r\n\t\t\t\tif (this._lastOffset > tarSpeed)this._lastOffset=tarSpeed;\r\n\t\t\t\t}else if (this._lastOffset < 0 && this.value >=this.max){\r\n\t\t\t\tthis._isElastic=true;\r\n\t\t\t\ttarSpeed=-(this.max+maxDistance-this.value)*0.5;\r\n\t\t\t\tif (this._lastOffset < tarSpeed)this._lastOffset=tarSpeed;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.value-=this._lastOffset;\r\n\t\tif (Math.abs(this._lastOffset)< 1){\r\n\t\t\tLaya.timer.clear(this,this.tweenMove);\r\n\t\t\tif (this._isElastic){\r\n\t\t\t\tif (this._value < this.min){\r\n\t\t\t\t\tTween.to(this,{value:this.min},this.elasticBackTime,Ease.sineOut,Handler.create(this,this.elasticOver));\r\n\t\t\t\t\t}else if (this._value > this.max){\r\n\t\t\t\t\tTween.to(this,{value:this.max},this.elasticBackTime,Ease.sineOut,Handler.create(this,this.elasticOver));\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tthis.elasticOver();\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tthis.event(/*laya.events.Event.END*/\"end\");\r\n\t\t\tif (!this.hide && this.autoHide){\r\n\t\t\t\tTween.to(this,{alpha:0},500);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*停止滑动。\r\n\t*/\r\n\t__proto.stopScroll=function(){\r\n\t\tthis.onStageMouseUp2(null);\r\n\t\tLaya.timer.clear(this,this.tweenMove);\r\n\t\tTween.clearTween(this);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureHeight',function(){\r\n\t\tif (this.slider.isVertical)return 100;\r\n\t\treturn this.slider.height;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.ui.Image#skin\r\n\t*/\r\n\t__getset(0,__proto,'skin',function(){\r\n\t\treturn this._skin;\r\n\t\t},function(value){\r\n\t\tif (this._skin !=value){\r\n\t\t\tthis._skin=value;\r\n\t\t\tthis.slider.skin=this._skin;\r\n\t\t\tthis.callLater(this.changeScrollBar);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置表示最高滚动位置的数字。\r\n\t*/\r\n\t__getset(0,__proto,'max',function(){\r\n\t\treturn this.slider.max;\r\n\t\t},function(value){\r\n\t\tthis.slider.max=value;\r\n\t});\r\n\r\n\t/**一个布尔值，指定是否显示向上、向下按钮，默认值为true。*/\r\n\t__getset(0,__proto,'showButtons',function(){\r\n\t\treturn this._showButtons;\r\n\t\t},function(value){\r\n\t\tthis._showButtons=value;\r\n\t\tthis.callLater(this.changeScrollBar);\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureWidth',function(){\r\n\t\tif (this.slider.isVertical)return this.slider.width;\r\n\t\treturn 100;\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置表示最低滚动位置的数字。\r\n\t*/\r\n\t__getset(0,__proto,'min',function(){\r\n\t\treturn this.slider.min;\r\n\t\t},function(value){\r\n\t\tthis.slider.min=value;\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置表示当前滚动位置的数字。\r\n\t*/\r\n\t__getset(0,__proto,'value',function(){\r\n\t\treturn this._value;\r\n\t\t},function(v){\r\n\t\tif (v!==this._value){\r\n\t\t\tthis._value=v;\r\n\t\t\tif (!this._isElastic){\r\n\t\t\t\tif (this.slider._value !=v){\r\n\t\t\t\t\tthis.slider._value=v;\r\n\t\t\t\t\tthis.slider.changeValue();\r\n\t\t\t\t}\r\n\t\t\t\tthis._value=this.slider._value;\r\n\t\t\t}\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t\t\tthis.changeHandler && this.changeHandler.runWith(this._value);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*一个布尔值，指示滚动条是否为垂直滚动。如果值为true，则为垂直滚动，否则为水平滚动。\r\n\t*<p>默认值为：true。</p>\r\n\t*/\r\n\t__getset(0,__proto,'isVertical',function(){\r\n\t\treturn this.slider.isVertical;\r\n\t\t},function(value){\r\n\t\tthis.slider.isVertical=value;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>当前实例的 <code>Slider</code> 实例的有效缩放网格数据。</p>\r\n\t*<p>数据格式：\"上边距,右边距,下边距,左边距,是否重复填充(值为0：不重复填充，1：重复填充)\"，以逗号分隔。\r\n\t*<ul><li>例如：\"4,4,4,4,1\"</li></ul></p>\r\n\t*@see laya.ui.AutoBitmap.sizeGrid\r\n\t*/\r\n\t__getset(0,__proto,'sizeGrid',function(){\r\n\t\treturn this.slider.sizeGrid;\r\n\t\t},function(value){\r\n\t\tthis.slider.sizeGrid=value;\r\n\t});\r\n\r\n\t/**获取或设置一个值，该值表示按下滚动条轨道时页面滚动的增量。 */\r\n\t__getset(0,__proto,'scrollSize',function(){\r\n\t\treturn this._scrollSize;\r\n\t\t},function(value){\r\n\t\tthis._scrollSize=value;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif ((typeof value=='number')|| (typeof value=='string'))this.value=Number(value);\r\n\t\telse Laya.superSet(Component,this,'dataSource',value);\r\n\t});\r\n\r\n\t/**获取或设置一个值，该值表示滑条长度比例，值为：（0-1）。 */\r\n\t__getset(0,__proto,'thumbPercent',function(){\r\n\t\treturn this._thumbPercent;\r\n\t\t},function(value){\r\n\t\tthis.runCallLater(this.changeScrollBar);\r\n\t\tthis.runCallLater(this.changeSize);\r\n\t\tvalue=value >=1 ? 0.99 :value;\r\n\t\tthis._thumbPercent=value;\r\n\t\tif (this.scaleBar){\r\n\t\t\tif (this.slider.isVertical)this.slider.bar.height=Math.max(this.slider.height *value,Styles.scrollBarMinNum);\r\n\t\t\telse this.slider.bar.width=Math.max(this.slider.width *value,Styles.scrollBarMinNum);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*设置滚动对象。\r\n\t*@see laya.ui.TouchScroll#target\r\n\t*/\r\n\t__getset(0,__proto,'target',function(){\r\n\t\treturn this._target;\r\n\t\t},function(value){\r\n\t\tif (this._target){\r\n\t\t\tthis._target.off(/*laya.events.Event.MOUSE_WHEEL*/\"mousewheel\",this,this.onTargetMouseWheel);\r\n\t\t\tthis._target.off(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onTargetMouseDown);\r\n\t\t}\r\n\t\tthis._target=value;\r\n\t\tif (value){\r\n\t\t\tthis._mouseWheelEnable && this._target.on(/*laya.events.Event.MOUSE_WHEEL*/\"mousewheel\",this,this.onTargetMouseWheel);\r\n\t\t\tthis._touchScrollEnable && this._target.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onTargetMouseDown);\r\n\t\t}\r\n\t});\r\n\r\n\t/**是否隐藏滚动条，不显示滚动条，但是可以正常滚动，默认为false。*/\r\n\t__getset(0,__proto,'hide',function(){\r\n\t\treturn this._hide;\r\n\t\t},function(value){\r\n\t\tthis._hide=value;\r\n\t\tthis.visible=!value;\r\n\t});\r\n\r\n\t/**一个布尔值，指定是否开启触摸，默认值为true。*/\r\n\t__getset(0,__proto,'touchScrollEnable',function(){\r\n\t\treturn this._touchScrollEnable;\r\n\t\t},function(value){\r\n\t\tthis._touchScrollEnable=value;\r\n\t\tthis.target=this._target;\r\n\t});\r\n\r\n\t/**一个布尔值，指定是否滑轮滚动，默认值为true。*/\r\n\t__getset(0,__proto,'mouseWheelEnable',function(){\r\n\t\treturn this._mouseWheelEnable;\r\n\t\t},function(value){\r\n\t\tthis._mouseWheelEnable=value;\r\n\t});\r\n\r\n\t/**\r\n\t*滚动的刻度值，滑动数值为tick的整数倍。默认值为1。\r\n\t*/\r\n\t__getset(0,__proto,'tick',function(){\r\n\t\treturn this.slider.tick;\r\n\t\t},function(value){\r\n\t\tthis.slider.tick=value;\r\n\t});\r\n\r\n\treturn ScrollBar;\r\n})(Component)\r\n\r\n\r\n/**\r\n*使用 <code>Slider</code> 控件，用户可以通过在滑块轨道的终点之间移动滑块来选择值。\r\n*<p>滑块的当前值由滑块端点（对应于滑块的最小值和最大值）之间滑块的相对位置确定。</p>\r\n*<p>滑块允许最小值和最大值之间特定间隔内的值。滑块还可以使用数据提示显示其当前值。</p>\r\n*\r\n*@see laya.ui.HSlider\r\n*@see laya.ui.VSlider\r\n*/\r\n//class laya.ui.Slider extends laya.ui.Component\r\nvar Slider=(function(_super){\r\n\tfunction Slider(skin){\r\n\t\t/**\r\n\t\t*数据变化处理器。\r\n\t\t*<p>默认回调参数为滑块位置属性 <code>value</code>属性值：Number 。</p>\r\n\t\t*/\r\n\t\tthis.changeHandler=null;\r\n\t\t/**\r\n\t\t*一个布尔值，指示是否为垂直滚动。如果值为true，则为垂直方向，否则为水平方向。\r\n\t\t*<p>默认值为：true。</p>\r\n\t\t*@default true\r\n\t\t*/\r\n\t\tthis.isVertical=true;\r\n\t\t/**\r\n\t\t*一个布尔值，指示是否显示标签。\r\n\t\t*@default true\r\n\t\t*/\r\n\t\tthis.showLabel=true;\r\n\t\t/**@private */\r\n\t\tthis._allowClickBack=false;\r\n\t\t/**@private */\r\n\t\tthis._max=100;\r\n\t\t/**@private */\r\n\t\tthis._min=0;\r\n\t\t/**@private */\r\n\t\tthis._tick=1;\r\n\t\t/**@private */\r\n\t\tthis._value=0;\r\n\t\t/**@private */\r\n\t\tthis._skin=null;\r\n\t\t/**@private */\r\n\t\tthis._bg=null;\r\n\t\t/**@private */\r\n\t\tthis._progress=null;\r\n\t\t/**@private */\r\n\t\tthis._bar=null;\r\n\t\t/**@private */\r\n\t\tthis._tx=NaN;\r\n\t\t/**@private */\r\n\t\tthis._ty=NaN;\r\n\t\t/**@private */\r\n\t\tthis._maxMove=NaN;\r\n\t\t/**@private */\r\n\t\tthis._globalSacle=null;\r\n\t\tSlider.__super.call(this);\r\n\t\tthis.skin=skin;\r\n\t}\r\n\r\n\t__class(Slider,'laya.ui.Slider',_super);\r\n\tvar __proto=Slider.prototype;\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._bg && this._bg.destroy(destroyChild);\r\n\t\tthis._bar && this._bar.destroy(destroyChild);\r\n\t\tthis._progress && this._progress.destroy(destroyChild);\r\n\t\tthis._bg=null;\r\n\t\tthis._bar=null;\r\n\t\tthis._progress=null;\r\n\t\tthis.changeHandler=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.addChild(this._bg=new Image());\r\n\t\tthis.addChild(this._bar=new Button());\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.initialize=function(){\r\n\t\tthis._bar.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onBarMouseDown);\r\n\t\tthis._bg.sizeGrid=this._bar.sizeGrid=\"4,4,4,4,0\";\r\n\t\tif (this._progress)this._progress.sizeGrid=this._bar.sizeGrid;\r\n\t\tthis.allowClickBack=true;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*滑块的的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onBarMouseDown=function(e){\r\n\t\tthis._globalSacle || (this._globalSacle=new Point());\r\n\t\tthis._globalSacle.setTo(this.globalScaleX || 0.01,this.globalScaleY || 0.01);\r\n\t\tthis._maxMove=this.isVertical ? (this.height-this._bar.height):(this.width-this._bar.width);\r\n\t\tthis._tx=Laya.stage.mouseX;\r\n\t\tthis._ty=Laya.stage.mouseY;\r\n\t\tLaya.stage.on(/*laya.events.Event.MOUSE_MOVE*/\"mousemove\",this,this.mouseMove);\r\n\t\tLaya.stage.once(/*laya.events.Event.MOUSE_UP*/\"mouseup\",this,this.mouseUp);\r\n\t\tLaya.stage.once(/*laya.events.Event.MOUSE_OUT*/\"mouseout\",this,this.mouseUp);\r\n\t\tthis.showValueText();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*显示标签。\r\n\t*/\r\n\t__proto.showValueText=function(){\r\n\t\tif (this.showLabel){\r\n\t\t\tvar label=laya.ui.Slider.label;\r\n\t\t\tthis.addChild(label);\r\n\t\t\tlabel.textField.changeText(this._value+\"\");\r\n\t\t\tif (this.isVertical){\r\n\t\t\t\tlabel.x=this._bar.x+20;\r\n\t\t\t\tlabel.y=(this._bar.height-label.height)*0.5+this._bar.y;\r\n\t\t\t\t}else {\r\n\t\t\t\tlabel.y=this._bar.y-20;\r\n\t\t\t\tlabel.x=(this._bar.width-label.width)*0.5+this._bar.x;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*隐藏标签。\r\n\t*/\r\n\t__proto.hideValueText=function(){\r\n\t\tlaya.ui.Slider.label && laya.ui.Slider.label.removeSelf();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.mouseUp=function(e){\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_MOVE*/\"mousemove\",this,this.mouseMove);\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_UP*/\"mouseup\",this,this.mouseUp);\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_OUT*/\"mouseout\",this,this.mouseUp);\r\n\t\tthis.sendChangeEvent(/*laya.events.Event.CHANGED*/\"changed\");\r\n\t\tthis.hideValueText();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.mouseMove=function(e){\r\n\t\tvar oldValue=this._value;\r\n\t\tif (this.isVertical){\r\n\t\t\tthis._bar.y+=(Laya.stage.mouseY-this._ty)/ this._globalSacle.y;\r\n\t\t\tif (this._bar.y > this._maxMove)this._bar.y=this._maxMove;\r\n\t\t\telse if (this._bar.y < 0)this._bar.y=0;\r\n\t\t\tthis._value=this._bar.y / this._maxMove *(this._max-this._min)+this._min;\r\n\t\t\tif(this._progress)this._progress.height=this._bar.y+0.5*this._bar.height;\r\n\t\t\t}else {\r\n\t\t\tthis._bar.x+=(Laya.stage.mouseX-this._tx)/ this._globalSacle.x;\r\n\t\t\tif (this._bar.x > this._maxMove)this._bar.x=this._maxMove;\r\n\t\t\telse if (this._bar.x < 0)this._bar.x=0;\r\n\t\t\tthis._value=this._bar.x / this._maxMove *(this._max-this._min)+this._min;\r\n\t\t\tif(this._progress)this._progress.width=this._bar.x+0.5*this._bar.width;\r\n\t\t}\r\n\t\tthis._tx=Laya.stage.mouseX;\r\n\t\tthis._ty=Laya.stage.mouseY;\r\n\t\tvar pow=Math.pow(10,(this._tick+\"\").length-1);\r\n\t\tthis._value=Math.round(Math.round(this._value / this._tick)*this._tick *pow)/ pow;\r\n\t\tif (this._value !=oldValue){\r\n\t\t\tthis.sendChangeEvent();\r\n\t\t}\r\n\t\tthis.showValueText();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.sendChangeEvent=function(type){\r\n\t\t(type===void 0)&& (type=/*laya.events.Event.CHANGE*/\"change\");\r\n\t\tthis.event(type);\r\n\t\tthis.changeHandler && this.changeHandler.runWith(this._value);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*设置滑块的位置信息。\r\n\t*/\r\n\t__proto.setBarPoint=function(){\r\n\t\tif (this.isVertical)this._bar.x=Math.round((this._bg.width-this._bar.width)*0.5);\r\n\t\telse this._bar.y=Math.round((this._bg.height-this._bar.height)*0.5);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.changeSize=function(){\r\n\t\t_super.prototype.changeSize.call(this);\r\n\t\tif (this.isVertical)this._bg.height=this.height;\r\n\t\telse this._bg.width=this.width;\r\n\t\tthis.setBarPoint();\r\n\t\tthis.changeValue();\r\n\t}\r\n\r\n\t/**\r\n\t*设置滑动条的信息。\r\n\t*@param min 滑块的最小值。\r\n\t*@param max 滑块的最小值。\r\n\t*@param value 滑块的当前值。\r\n\t*/\r\n\t__proto.setSlider=function(min,max,value){\r\n\t\tthis._value=-1;\r\n\t\tthis._min=min;\r\n\t\tthis._max=max > min ? max :min;\r\n\t\tthis.value=value < min ? min :value > max ? max :value;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*改变滑块的位置值。\r\n\t*/\r\n\t__proto.changeValue=function(){\r\n\t\tvar pow=Math.pow(10,(this._tick+\"\").length-1);\r\n\t\tthis._value=Math.round(Math.round(this._value / this._tick)*this._tick *pow)/ pow;\r\n\t\tthis._value=this._value > this._max ? this._max :this._value < this._min ? this._min :this._value;\r\n\t\tvar num=this._max-this._min;\r\n\t\tif (num===0)num=1;\r\n\t\tif (this.isVertical){\r\n\t\t\tthis._bar.y=(this._value-this._min)/ num *(this.height-this._bar.height);\r\n\t\t\tif(this._progress)this._progress.height=this._bar.y+0.5*this._bar.height;\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis._bar.x=(this._value-this._min)/ num *(this.width-this._bar.width);\r\n\t\t\tif(this._progress)this._progress.width=this._bar.x+0.5*this._bar.width;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*滑动条的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onBgMouseDown=function(e){\r\n\t\tvar point=this._bg.getMousePoint();\r\n\t\tif (this.isVertical)this.value=point.y / (this.height-this._bar.height)*(this._max-this._min)+this._min;\r\n\t\telse this.value=point.x / (this.width-this._bar.width)*(this._max-this._min)+this._min;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureHeight',function(){\r\n\t\treturn Math.max(this._bg.height,this._bar.height);\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.ui.Image#skin\r\n\t*/\r\n\t__getset(0,__proto,'skin',function(){\r\n\t\treturn this._skin;\r\n\t\t},function(value){\r\n\t\tif (this._skin !=value){\r\n\t\t\tthis._skin=value;\r\n\t\t\tthis._bg.skin=this._skin;\r\n\t\t\tthis._bar.skin=this._skin.replace(\".png\",\"$bar.png\");\r\n\t\t\tvar progressSkin=this._skin.replace(\".png\",\"$progress.png\");\r\n\t\t\tif (Loader.getRes(progressSkin)){\r\n\t\t\t\tif (!this._progress){\r\n\t\t\t\t\tthis.addChild(this._progress=new Image());\r\n\t\t\t\t\tthis._progress.sizeGrid=this._bar.sizeGrid;\r\n\t\t\t\t\tthis.setChildIndex(this._progress,1);\r\n\t\t\t\t}\r\n\t\t\t\tthis._progress.skin=progressSkin;\r\n\t\t\t}\r\n\t\t\tthis.setBarPoint();\r\n\t\t\tthis.callLater(this.changeValue);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*一个布尔值，指定是否允许通过点击滑动条改变 <code>Slider</code> 的 <code>value</code> 属性值。\r\n\t*/\r\n\t__getset(0,__proto,'allowClickBack',function(){\r\n\t\treturn this._allowClickBack;\r\n\t\t},function(value){\r\n\t\tif (this._allowClickBack !=value){\r\n\t\t\tthis._allowClickBack=value;\r\n\t\t\tif (value)this._bg.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onBgMouseDown);\r\n\t\t\telse this._bg.off(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onBgMouseDown);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置表示最高位置的数字。 默认值为100。\r\n\t*/\r\n\t__getset(0,__proto,'max',function(){\r\n\t\treturn this._max;\r\n\t\t},function(value){\r\n\t\tif (this._max !=value){\r\n\t\t\tthis._max=value;\r\n\t\t\tthis.callLater(this.changeValue);\r\n\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureWidth',function(){\r\n\t\treturn Math.max(this._bg.width,this._bar.width);\r\n\t});\r\n\r\n\t/**\r\n\t*滑动的刻度值，滑动数值为tick的整数倍。默认值为1。\r\n\t*/\r\n\t__getset(0,__proto,'tick',function(){\r\n\t\treturn this._tick;\r\n\t\t},function(value){\r\n\t\tif (this._tick !=value){\r\n\t\t\tthis._tick=value;\r\n\t\t\tthis.callLater(this.changeValue);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>当前实例的背景图（ <code>Image</code> ）和滑块按钮（ <code>Button</code> ）实例的有效缩放网格数据。</p>\r\n\t*<p>数据格式：\"上边距,右边距,下边距,左边距,是否重复填充(值为0：不重复填充，1：重复填充)\"，以逗号分隔。\r\n\t*<ul><li>例如：\"4,4,4,4,1\"</li></ul></p>\r\n\t*@see laya.ui.AutoBitmap.sizeGrid\r\n\t*/\r\n\t__getset(0,__proto,'sizeGrid',function(){\r\n\t\treturn this._bg.sizeGrid;\r\n\t\t},function(value){\r\n\t\tthis._bg.sizeGrid=value;\r\n\t\tthis._bar.sizeGrid=value;\r\n\t\tif (this._progress)this._progress.sizeGrid=this._bar.sizeGrid;\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置表示最低位置的数字。 默认值为0。\r\n\t*/\r\n\t__getset(0,__proto,'min',function(){\r\n\t\treturn this._min;\r\n\t\t},function(value){\r\n\t\tif (this._min !=value){\r\n\t\t\tthis._min=value;\r\n\t\t\tthis.callLater(this.changeValue);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置表示当前滑块位置的数字。\r\n\t*/\r\n\t__getset(0,__proto,'value',function(){\r\n\t\treturn this._value;\r\n\t\t},function(num){\r\n\t\tif (this._value !=num){\r\n\t\t\tvar oldValue=this._value;\r\n\t\t\tthis._value=num;\r\n\t\t\tthis.changeValue();\r\n\t\t\tif (this._value !=oldValue){\r\n\t\t\t\tthis.sendChangeEvent();\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif ((typeof value=='number')|| (typeof value=='string'))this.value=Number(value);\r\n\t\telse Laya.superSet(Component,this,'dataSource',value);\r\n\t});\r\n\r\n\t/**\r\n\t*表示滑块按钮的引用。\r\n\t*/\r\n\t__getset(0,__proto,'bar',function(){\r\n\t\treturn this._bar;\r\n\t});\r\n\r\n\t__static(Slider,\r\n\t['label',function(){return this.label=new Label();}\r\n\t]);\r\n\treturn Slider;\r\n})(Component)\r\n\r\n\r\n/**\r\n*<code>Image</code> 类是用于表示位图图像或绘制图形的显示对象。\r\n*Image和Clip组件是唯一支持异步加载的两个组件，比如img.skin=\"abc/xxx.png\"，其他UI组件均不支持异步加载。\r\n*\r\n*@example <caption>以下示例代码，创建了一个新的 <code>Image</code> 实例，设置了它的皮肤、位置信息，并添加到舞台上。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.Image;\r\n\t*public class Image_Example\r\n\t*{\r\n\t\t*public function Image_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*onInit();\r\n\t\t\t*}\r\n\t\t*private function onInit():void\r\n\t\t*{\r\n\t\t\t*var bg:Image=new Image(\"resource/ui/bg.png\");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。\r\n\t\t\t*bg.x=100;//设置 bg 对象的属性 x 的值，用于控制 bg 对象的显示位置。\r\n\t\t\t*bg.y=100;//设置 bg 对象的属性 y 的值，用于控制 bg 对象的显示位置。\r\n\t\t\t*bg.sizeGrid=\"40,10,5,10\";//设置 bg 对象的网格信息。\r\n\t\t\t*bg.width=150;//设置 bg 对象的宽度。\r\n\t\t\t*bg.height=250;//设置 bg 对象的高度。\r\n\t\t\t*Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。\r\n\t\t\t*var image:Image=new Image(\"resource/ui/image.png\");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。\r\n\t\t\t*image.x=100;//设置 image 对象的属性 x 的值，用于控制 image 对象的显示位置。\r\n\t\t\t*image.y=100;//设置 image 对象的属性 y 的值，用于控制 image 对象的显示位置。\r\n\t\t\t*Laya.stage.addChild(image);//将此 image 对象添加到显示列表。\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*onInit();\r\n*function onInit(){\r\n\t*var bg=new laya.ui.Image(\"resource/ui/bg.png\");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。\r\n\t*bg.x=100;//设置 bg 对象的属性 x 的值，用于控制 bg 对象的显示位置。\r\n\t*bg.y=100;//设置 bg 对象的属性 y 的值，用于控制 bg 对象的显示位置。\r\n\t*bg.sizeGrid=\"40,10,5,10\";//设置 bg 对象的网格信息。\r\n\t*bg.width=150;//设置 bg 对象的宽度。\r\n\t*bg.height=250;//设置 bg 对象的高度。\r\n\t*Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。\r\n\t*var image=new laya.ui.Image(\"resource/ui/image.png\");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。\r\n\t*image.x=100;//设置 image 对象的属性 x 的值，用于控制 image 对象的显示位置。\r\n\t*image.y=100;//设置 image 对象的属性 y 的值，用于控制 image 对象的显示位置。\r\n\t*Laya.stage.addChild(image);//将此 image 对象添加到显示列表。\r\n\t*}\r\n*@example\r\n*class Image_Example {\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*this.onInit();\r\n\t\t*}\r\n\t*private onInit():void {\r\n\t\t*var bg:laya.ui.Image=new laya.ui.Image(\"resource/ui/bg.png\");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。\r\n\t\t*bg.x=100;//设置 bg 对象的属性 x 的值，用于控制 bg 对象的显示位置。\r\n\t\t*bg.y=100;//设置 bg 对象的属性 y 的值，用于控制 bg 对象的显示位置。\r\n\t\t*bg.sizeGrid=\"40,10,5,10\";//设置 bg 对象的网格信息。\r\n\t\t*bg.width=150;//设置 bg 对象的宽度。\r\n\t\t*bg.height=250;//设置 bg 对象的高度。\r\n\t\t*Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。\r\n\t\t*var image:laya.ui.Image=new laya.ui.Image(\"resource/ui/image.png\");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。\r\n\t\t*image.x=100;//设置 image 对象的属性 x 的值，用于控制 image 对象的显示位置。\r\n\t\t*image.y=100;//设置 image 对象的属性 y 的值，用于控制 image 对象的显示位置。\r\n\t\t*Laya.stage.addChild(image);//将此 image 对象添加到显示列表。\r\n\t\t*}\r\n\t*}\r\n*@see laya.ui.AutoBitmap\r\n*/\r\n//class laya.ui.Image extends laya.ui.Component\r\nvar Image=(function(_super){\r\n\tfunction Image(skin){\r\n\t\t/**@private */\r\n\t\tthis._bitmap=null;\r\n\t\t/**@private */\r\n\t\tthis._skin=null;\r\n\t\t/**@private */\r\n\t\tthis._group=null;\r\n\t\tImage.__super.call(this);\r\n\t\tthis.skin=skin;\r\n\t}\r\n\r\n\t__class(Image,'laya.ui.Image',_super);\r\n\tvar __proto=Image.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,true);\r\n\t\tthis._bitmap && this._bitmap.destroy();\r\n\t\tthis._bitmap=null;\r\n\t}\r\n\r\n\t/**\r\n\t*销毁对象并释放加载的皮肤资源。\r\n\t*/\r\n\t__proto.dispose=function(){\r\n\t\tthis.destroy(true);\r\n\t\tLaya.loader.clearRes(this._skin);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.graphics=this._bitmap=new AutoBitmap();\r\n\t\tthis._bitmap.autoCacheCmd=false;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*设置皮肤资源。\r\n\t*/\r\n\t__proto.setSource=function(url,img){\r\n\t\tif (url===this._skin && img){\r\n\t\t\tthis.source=img\r\n\t\t\tthis.onCompResize();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@copy laya.ui.AutoBitmap#source\r\n\t*/\r\n\t__getset(0,__proto,'source',function(){\r\n\t\treturn this._bitmap.source;\r\n\t\t},function(value){\r\n\t\tif (!this._bitmap)return;\r\n\t\tthis._bitmap.source=value;\r\n\t\tthis.event(/*laya.events.Event.LOADED*/\"loaded\");\r\n\t\tthis.repaint();\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif ((typeof value=='string'))this.skin=value;\r\n\t\telse Laya.superSet(Component,this,'dataSource',value);\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureHeight',function(){\r\n\t\treturn this._bitmap.height;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>对象的皮肤地址，以字符串表示。</p>\r\n\t*<p>如果资源未加载，则先加载资源，加载完成后应用于此对象。</p>\r\n\t*<b>注意：</b>资源加载完成后，会自动缓存至资源库中。\r\n\t*/\r\n\t__getset(0,__proto,'skin',function(){\r\n\t\treturn this._skin;\r\n\t\t},function(value){\r\n\t\tif (this._skin !=value){\r\n\t\t\tthis._skin=value;\r\n\t\t\tif (value){\r\n\t\t\t\tvar source=Loader.getRes(value);\r\n\t\t\t\tif (source){\r\n\t\t\t\t\tthis.source=source;\r\n\t\t\t\t\tthis.onCompResize();\r\n\t\t\t\t}else Laya.loader.load(this._skin,Handler.create(this,this.setSource,[this._skin]),null,/*laya.net.Loader.IMAGE*/\"image\",1,true,this._group);\r\n\t\t\t\t}else {\r\n\t\t\t\tthis.source=null;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*资源分组。\r\n\t*/\r\n\t__getset(0,__proto,'group',function(){\r\n\t\treturn this._group;\r\n\t\t},function(value){\r\n\t\tif (value && this._skin)Loader.setGroup(this._skin,value);\r\n\t\tthis._group=value;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>\r\n\t*<p>数据格式：\"上边距,右边距,下边距,左边距,是否重复填充(值为0：不重复填充，1：重复填充)\"，以逗号分隔。\r\n\t*<ul><li>例如：\"4,4,4,4,1\"。</li></ul></p>\r\n\t*@see laya.ui.AutoBitmap#sizeGrid\r\n\t*/\r\n\t__getset(0,__proto,'sizeGrid',function(){\r\n\t\tif (this._bitmap.sizeGrid)return this._bitmap.sizeGrid.join(\",\");\r\n\t\treturn null;\r\n\t\t},function(value){\r\n\t\tthis._bitmap.sizeGrid=UIUtils.fillArray(Styles.defaultSizeGrid,value,Number);\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureWidth',function(){\r\n\t\treturn this._bitmap.width;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tLaya.superSet(Component,this,'width',value);\r\n\t\tthis._bitmap.width=value==0 ? 0.0000001 :value;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tLaya.superSet(Component,this,'height',value);\r\n\t\tthis._bitmap.height=value==0 ? 0.0000001 :value;\r\n\t});\r\n\r\n\treturn Image;\r\n})(Component)\r\n\r\n\r\n/**\r\n*<p> <code>Label</code> 类用于创建显示对象以显示文本。</p>\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>Label</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.Label;\r\n\t*public class Label_Example\r\n\t*{\r\n\t\t*public function Label_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*onInit();\r\n\t\t\t*}\r\n\t\t*private function onInit():void\r\n\t\t*{\r\n\t\t\t*var label:Label=new Label();//创建一个 Label 类的实例对象 label 。\r\n\t\t\t*label.font=\"Arial\";//设置 label 的字体。\r\n\t\t\t*label.bold=true;//设置 label 显示为粗体。\r\n\t\t\t*label.leading=4;//设置 label 的行间距。\r\n\t\t\t*label.wordWrap=true;//设置 label 自动换行。\r\n\t\t\t*label.padding=\"10,10,10,10\";//设置 label 的边距。\r\n\t\t\t*label.color=\"#ff00ff\";//设置 label 的颜色。\r\n\t\t\t*label.text=\"Hello everyone,我是一个可爱的文本！\";//设置 label 的文本内容。\r\n\t\t\t*label.x=100;//设置 label 对象的属性 x 的值，用于控制 label 对象的显示位置。\r\n\t\t\t*label.y=100;//设置 label 对象的属性 y 的值，用于控制 label 对象的显示位置。\r\n\t\t\t*label.width=300;//设置 label 的宽度。\r\n\t\t\t*label.height=200;//设置 label 的高度。\r\n\t\t\t*Laya.stage.addChild(label);//将 label 添加到显示列表。\r\n\t\t\t*var passwordLabel:Label=new Label(\"请原谅我，我不想被人看到我心里话。\");//创建一个 Label 类的实例对象 passwordLabel 。\r\n\t\t\t*passwordLabel.asPassword=true;//设置 passwordLabel 的显示反式为密码显示。\r\n\t\t\t*passwordLabel.x=100;//设置 passwordLabel 对象的属性 x 的值，用于控制 passwordLabel 对象的显示位置。\r\n\t\t\t*passwordLabel.y=350;//设置 passwordLabel 对象的属性 y 的值，用于控制 passwordLabel 对象的显示位置。\r\n\t\t\t*passwordLabel.width=300;//设置 passwordLabel 的宽度。\r\n\t\t\t*passwordLabel.color=\"#000000\";//设置 passwordLabel 的文本颜色。\r\n\t\t\t*passwordLabel.bgColor=\"#ccffff\";//设置 passwordLabel 的背景颜色。\r\n\t\t\t*passwordLabel.fontSize=20;//设置 passwordLabel 的文本字体大小。\r\n\t\t\t*Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*onInit();\r\n*function onInit(){\r\n\t*var label=new laya.ui.Label();//创建一个 Label 类的实例对象 label 。\r\n\t*label.font=\"Arial\";//设置 label 的字体。\r\n\t*label.bold=true;//设置 label 显示为粗体。\r\n\t*label.leading=4;//设置 label 的行间距。\r\n\t*label.wordWrap=true;//设置 label 自动换行。\r\n\t*label.padding=\"10,10,10,10\";//设置 label 的边距。\r\n\t*label.color=\"#ff00ff\";//设置 label 的颜色。\r\n\t*label.text=\"Hello everyone,我是一个可爱的文本！\";//设置 label 的文本内容。\r\n\t*label.x=100;//设置 label 对象的属性 x 的值，用于控制 label 对象的显示位置。\r\n\t*label.y=100;//设置 label 对象的属性 y 的值，用于控制 label 对象的显示位置。\r\n\t*label.width=300;//设置 label 的宽度。\r\n\t*label.height=200;//设置 label 的高度。\r\n\t*Laya.stage.addChild(label);//将 label 添加到显示列表。\r\n\t*var passwordLabel=new laya.ui.Label(\"请原谅我，我不想被人看到我心里话。\");//创建一个 Label 类的实例对象 passwordLabel 。\r\n\t*passwordLabel.asPassword=true;//设置 passwordLabel 的显示反式为密码显示。\r\n\t*passwordLabel.x=100;//设置 passwordLabel 对象的属性 x 的值，用于控制 passwordLabel 对象的显示位置。\r\n\t*passwordLabel.y=350;//设置 passwordLabel 对象的属性 y 的值，用于控制 passwordLabel 对象的显示位置。\r\n\t*passwordLabel.width=300;//设置 passwordLabel 的宽度。\r\n\t*passwordLabel.color=\"#000000\";//设置 passwordLabel 的文本颜色。\r\n\t*passwordLabel.bgColor=\"#ccffff\";//设置 passwordLabel 的背景颜色。\r\n\t*passwordLabel.fontSize=20;//设置 passwordLabel 的文本字体大小。\r\n\t*Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。\r\n\t*}\r\n*@example\r\n*import Label=laya.ui.Label;\r\n*class Label_Example {\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*this.onInit();\r\n\t\t*}\r\n\t*private onInit():void {\r\n\t\t*var label:Label=new Label();//创建一个 Label 类的实例对象 label 。\r\n\t\t*label.font=\"Arial\";//设置 label 的字体。\r\n\t\t*label.bold=true;//设置 label 显示为粗体。\r\n\t\t*label.leading=4;//设置 label 的行间距。\r\n\t\t*label.wordWrap=true;//设置 label 自动换行。\r\n\t\t*label.padding=\"10,10,10,10\";//设置 label 的边距。\r\n\t\t*label.color=\"#ff00ff\";//设置 label 的颜色。\r\n\t\t*label.text=\"Hello everyone,我是一个可爱的文本！\";//设置 label 的文本内容。\r\n\t\t*label.x=100;//设置 label 对象的属性 x 的值，用于控制 label 对象的显示位置。\r\n\t\t*label.y=100;//设置 label 对象的属性 y 的值，用于控制 label 对象的显示位置。\r\n\t\t*label.width=300;//设置 label 的宽度。\r\n\t\t*label.height=200;//设置 label 的高度。\r\n\t\t*Laya.stage.addChild(label);//将 label 添加到显示列表。\r\n\t\t*var passwordLabel:Label=new Label(\"请原谅我，我不想被人看到我心里话。\");//创建一个 Label 类的实例对象 passwordLabel 。\r\n\t\t*passwordLabel.asPassword=true;//设置 passwordLabel 的显示反式为密码显示。\r\n\t\t*passwordLabel.x=100;//设置 passwordLabel 对象的属性 x 的值，用于控制 passwordLabel 对象的显示位置。\r\n\t\t*passwordLabel.y=350;//设置 passwordLabel 对象的属性 y 的值，用于控制 passwordLabel 对象的显示位置。\r\n\t\t*passwordLabel.width=300;//设置 passwordLabel 的宽度。\r\n\t\t*passwordLabel.color=\"#000000\";//设置 passwordLabel 的文本颜色。\r\n\t\t*passwordLabel.bgColor=\"#ccffff\";//设置 passwordLabel 的背景颜色。\r\n\t\t*passwordLabel.fontSize=20;//设置 passwordLabel 的文本字体大小。\r\n\t\t*Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。\r\n\t\t*}\r\n\t*}\r\n*@see laya.display.Text\r\n*/\r\n//class laya.ui.Label extends laya.ui.Component\r\nvar Label=(function(_super){\r\n\tfunction Label(text){\r\n\t\t/**\r\n\t\t*@private\r\n\t\t*文本 <code>Text</code> 实例。\r\n\t\t*/\r\n\t\tthis._tf=null;\r\n\t\tLabel.__super.call(this);\r\n\t\t(text===void 0)&& (text=\"\");\r\n\t\tFont.defaultColor=Styles.labelColor;\r\n\t\tthis.text=text;\r\n\t}\r\n\r\n\t__class(Label,'laya.ui.Label',_super);\r\n\tvar __proto=Label.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._tf=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.addChild(this._tf=new Text());\r\n\t}\r\n\r\n\t/**@copy laya.display.Text#changeText()\r\n\t**/\r\n\t__proto.changeText=function(text){\r\n\t\tthis._tf.changeText(text);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>边距信息</p>\r\n\t*<p>\"上边距，右边距，下边距 , 左边距（边距以像素为单位）\"</p>\r\n\t*@see laya.display.Text.padding\r\n\t*/\r\n\t__getset(0,__proto,'padding',function(){\r\n\t\treturn this._tf.padding.join(\",\");\r\n\t\t},function(value){\r\n\t\tthis._tf.padding=UIUtils.fillArray(Styles.labelPadding,value,Number);\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#bold\r\n\t*/\r\n\t__getset(0,__proto,'bold',function(){\r\n\t\treturn this._tf.bold;\r\n\t\t},function(value){\r\n\t\tthis._tf.bold=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#align\r\n\t*/\r\n\t__getset(0,__proto,'align',function(){\r\n\t\treturn this._tf.align;\r\n\t\t},function(value){\r\n\t\tthis._tf.align=value;\r\n\t});\r\n\r\n\t/**\r\n\t*当前文本内容字符串。\r\n\t*@see laya.display.Text.text\r\n\t*/\r\n\t__getset(0,__proto,'text',function(){\r\n\t\treturn this._tf.text;\r\n\t\t},function(value){\r\n\t\tif (this._tf.text !=value){\r\n\t\t\tif(value)\r\n\t\t\t\tvalue=UIUtils.adptString(value+\"\");\r\n\t\t\tthis._tf.text=value;\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t\t\tif (!this._width || !this._height)this.onCompResize();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#italic\r\n\t*/\r\n\t__getset(0,__proto,'italic',function(){\r\n\t\treturn this._tf.italic;\r\n\t\t},function(value){\r\n\t\tthis._tf.italic=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#wordWrap\r\n\t*/\r\n\t/**\r\n\t*@copy laya.display.Text#wordWrap\r\n\t*/\r\n\t__getset(0,__proto,'wordWrap',function(){\r\n\t\treturn this._tf.wordWrap;\r\n\t\t},function(value){\r\n\t\tthis._tf.wordWrap=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#font\r\n\t*/\r\n\t__getset(0,__proto,'font',function(){\r\n\t\treturn this._tf.font;\r\n\t\t},function(value){\r\n\t\tthis._tf.font=value;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif ((typeof value=='number')|| (typeof value=='string'))this.text=value+\"\";\r\n\t\telse Laya.superSet(Component,this,'dataSource',value);\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#color\r\n\t*/\r\n\t__getset(0,__proto,'color',function(){\r\n\t\treturn this._tf.color;\r\n\t\t},function(value){\r\n\t\tthis._tf.color=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#valign\r\n\t*/\r\n\t__getset(0,__proto,'valign',function(){\r\n\t\treturn this._tf.valign;\r\n\t\t},function(value){\r\n\t\tthis._tf.valign=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#leading\r\n\t*/\r\n\t__getset(0,__proto,'leading',function(){\r\n\t\treturn this._tf.leading;\r\n\t\t},function(value){\r\n\t\tthis._tf.leading=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#fontSize\r\n\t*/\r\n\t__getset(0,__proto,'fontSize',function(){\r\n\t\treturn this._tf.fontSize;\r\n\t\t},function(value){\r\n\t\tthis._tf.fontSize=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#bgColor\r\n\t*/\r\n\t__getset(0,__proto,'bgColor',function(){\r\n\t\treturn this._tf.bgColor\r\n\t\t},function(value){\r\n\t\tthis._tf.bgColor=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#borderColor\r\n\t*/\r\n\t__getset(0,__proto,'borderColor',function(){\r\n\t\treturn this._tf.borderColor\r\n\t\t},function(value){\r\n\t\tthis._tf.borderColor=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#stroke\r\n\t*/\r\n\t__getset(0,__proto,'stroke',function(){\r\n\t\treturn this._tf.stroke;\r\n\t\t},function(value){\r\n\t\tthis._tf.stroke=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#strokeColor\r\n\t*/\r\n\t__getset(0,__proto,'strokeColor',function(){\r\n\t\treturn this._tf.strokeColor;\r\n\t\t},function(value){\r\n\t\tthis._tf.strokeColor=value;\r\n\t});\r\n\r\n\t/**\r\n\t*文本控件实体 <code>Text</code> 实例。\r\n\t*/\r\n\t__getset(0,__proto,'textField',function(){\r\n\t\treturn this._tf;\r\n\t});\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'measureWidth',function(){\r\n\t\treturn this._tf.width;\r\n\t});\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'measureHeight',function(){\r\n\t\treturn this._tf.height;\r\n\t});\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'width',function(){\r\n\t\tif (this._width || this._tf.text)return Laya.superGet(Component,this,'width');\r\n\t\treturn 0;\r\n\t\t},function(value){\r\n\t\tLaya.superSet(Component,this,'width',value);\r\n\t\tthis._tf.width=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'height',function(){\r\n\t\tif (this._height || this._tf.text)return Laya.superGet(Component,this,'height');\r\n\t\treturn 0;\r\n\t\t},function(value){\r\n\t\tLaya.superSet(Component,this,'height',value);\r\n\t\tthis._tf.height=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#overflow\r\n\t*/\r\n\t/**\r\n\t*@copy laya.display.Text#overflow\r\n\t*/\r\n\t__getset(0,__proto,'overflow',function(){\r\n\t\treturn this._tf.overflow;\r\n\t\t},function(value){\r\n\t\tthis._tf.overflow=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#underline\r\n\t*/\r\n\t/**\r\n\t*@copy laya.display.Text#underline\r\n\t*/\r\n\t__getset(0,__proto,'underline',function(){\r\n\t\treturn this._tf.underline;\r\n\t\t},function(value){\r\n\t\tthis._tf.underline=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Text#underlineColor\r\n\t*/\r\n\t/**\r\n\t*@copy laya.display.Text#underlineColor\r\n\t*/\r\n\t__getset(0,__proto,'underlineColor',function(){\r\n\t\treturn this._tf.underlineColor;\r\n\t\t},function(value){\r\n\t\tthis._tf.underlineColor=value;\r\n\t});\r\n\r\n\treturn Label;\r\n})(Component)\r\n\r\n\r\n/**\r\n*<code>ProgressBar</code> 组件显示内容的加载进度。\r\n*@example <caption>以下示例代码，创建了一个新的 <code>ProgressBar</code> 实例，设置了它的皮肤、位置、宽高、网格等信息，并添加到舞台上。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.ProgressBar;\r\n\t*import laya.utils.Handler;\r\n\t*public class ProgressBar_Example\r\n\t*{\r\n\t\t*private var progressBar:ProgressBar;\r\n\t\t*public function ProgressBar_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load([\"resource/ui/progress.png\",\"resource/ui/progress$bar.png\"],Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*progressBar=new ProgressBar(\"resource/ui/progress.png\");//创建一个 ProgressBar 类的实例对象 progressBar 。\r\n\t\t\t*progressBar.x=100;//设置 progressBar 对象的属性 x 的值，用于控制 progressBar 对象的显示位置。\r\n\t\t\t*progressBar.y=100;//设置 progressBar 对象的属性 y 的值，用于控制 progressBar 对象的显示位置。\r\n\t\t\t*progressBar.value=0.3;//设置 progressBar 的进度值。\r\n\t\t\t*progressBar.width=200;//设置 progressBar 的宽度。\r\n\t\t\t*progressBar.height=50;//设置 progressBar 的高度。\r\n\t\t\t*progressBar.sizeGrid=\"5,10,5,10\";//设置 progressBar 的网格信息。\r\n\t\t\t*progressBar.changeHandler=new Handler(this,onChange);//设置 progressBar 的value值改变时执行的处理器。\r\n\t\t\t*Laya.stage.addChild(progressBar);//将 progressBar 添加到显示列表。\r\n\t\t\t*Laya.timer.once(3000,this,changeValue);//设定 3000ms（毫秒）后，执行函数changeValue。\r\n\t\t\t*}\r\n\t\t*private function changeValue():void\r\n\t\t*{\r\n\t\t\t*trace(\"改变进度条的进度值。\");\r\n\t\t\t*progressBar.value=0.6;\r\n\t\t\t*}\r\n\t\t*private function onChange(value:Number):void\r\n\t\t*{\r\n\t\t\t*trace(\"进度发生改变： value=\" ,value);\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*var res=[\"resource/ui/progress.png\",\"resource/ui/progress$bar.png\"];\r\n*Laya.loader.load(res,laya.utils.Handler.create(this,onLoadComplete));//加载资源。\r\n*function onLoadComplete()\r\n*{\r\n\t*progressBar=new laya.ui.ProgressBar(\"resource/ui/progress.png\");//创建一个 ProgressBar 类的实例对象 progressBar 。\r\n\t*progressBar.x=100;//设置 progressBar 对象的属性 x 的值，用于控制 progressBar 对象的显示位置。\r\n\t*progressBar.y=100;//设置 progressBar 对象的属性 y 的值，用于控制 progressBar 对象的显示位置。\r\n\t*progressBar.value=0.3;//设置 progressBar 的进度值。\r\n\t*progressBar.width=200;//设置 progressBar 的宽度。\r\n\t*progressBar.height=50;//设置 progressBar 的高度。\r\n\t*progressBar.sizeGrid=\"10,5,10,5\";//设置 progressBar 的网格信息。\r\n\t*progressBar.changeHandler=new laya.utils.Handler(this,onChange);//设置 progressBar 的value值改变时执行的处理器。\r\n\t*Laya.stage.addChild(progressBar);//将 progressBar 添加到显示列表。\r\n\t*Laya.timer.once(3000,this,changeValue);//设定 3000ms（毫秒）后，执行函数changeValue。\r\n\t*}\r\n*function changeValue()\r\n*{\r\n\t*console.log(\"改变进度条的进度值。\");\r\n\t*progressBar.value=0.6;\r\n\t*}\r\n*function onChange(value)\r\n*{\r\n\t*console.log(\"进度发生改变： value=\" ,value);\r\n\t*}\r\n*@example\r\n*import ProgressBar=laya.ui.ProgressBar;\r\n*import Handler=laya.utils.Handler;\r\n*class ProgressBar_Example {\r\n\t*private progressBar:ProgressBar;\r\n\t*public ProgressBar_Example(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load([\"resource/ui/progress.png\",\"resource/ui/progress$bar.png\"],Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*this.progressBar=new ProgressBar(\"resource/ui/progress.png\");//创建一个 ProgressBar 类的实例对象 progressBar 。\r\n\t\t*this.progressBar.x=100;//设置 progressBar 对象的属性 x 的值，用于控制 progressBar 对象的显示位置。\r\n\t\t*this.progressBar.y=100;//设置 progressBar 对象的属性 y 的值，用于控制 progressBar 对象的显示位置。\r\n\t\t*this.progressBar.value=0.3;//设置 progressBar 的进度值。\r\n\t\t*this.progressBar.width=200;//设置 progressBar 的宽度。\r\n\t\t*this.progressBar.height=50;//设置 progressBar 的高度。\r\n\t\t*this.progressBar.sizeGrid=\"5,10,5,10\";//设置 progressBar 的网格信息。\r\n\t\t*this.progressBar.changeHandler=new Handler(this,this.onChange);//设置 progressBar 的value值改变时执行的处理器。\r\n\t\t*Laya.stage.addChild(this.progressBar);//将 progressBar 添加到显示列表。\r\n\t\t*Laya.timer.once(3000,this,this.changeValue);//设定 3000ms（毫秒）后，执行函数changeValue。\r\n\t\t*}\r\n\t*private changeValue():void {\r\n\t\t*console.log(\"改变进度条的进度值。\");\r\n\t\t*this.progressBar.value=0.6;\r\n\t\t*}\r\n\t*private onChange(value:number):void {\r\n\t\t*console.log(\"进度发生改变： value=\",value);\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.ProgressBar extends laya.ui.Component\r\nvar ProgressBar=(function(_super){\r\n\tfunction ProgressBar(skin){\r\n\t\t/**\r\n\t\t*当 <code>ProgressBar</code> 实例的 <code>value</code> 属性发生变化时的函数处理器。\r\n\t\t*<p>默认返回参数<code>value</code> 属性（进度值）。</p>\r\n\t\t*/\r\n\t\tthis.changeHandler=null;\r\n\t\t/**@private */\r\n\t\tthis._bg=null;\r\n\t\t/**@private */\r\n\t\tthis._bar=null;\r\n\t\t/**@private */\r\n\t\tthis._skin=null;\r\n\t\t/**@private */\r\n\t\tthis._value=0.5;\r\n\t\tProgressBar.__super.call(this);\r\n\t\tthis.skin=skin;\r\n\t}\r\n\r\n\t__class(ProgressBar,'laya.ui.ProgressBar',_super);\r\n\tvar __proto=ProgressBar.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._bg && this._bg.destroy(destroyChild);\r\n\t\tthis._bar && this._bar.destroy(destroyChild);\r\n\t\tthis._bg=this._bar=null;\r\n\t\tthis.changeHandler=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.addChild(this._bg=new Image());\r\n\t\tthis.addChild(this._bar=new Image());\r\n\t\tthis._bar._bitmap.autoCacheCmd=false;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*更改进度值的显示。\r\n\t*/\r\n\t__proto.changeValue=function(){\r\n\t\tif (this.sizeGrid){\r\n\t\t\tvar grid=this.sizeGrid.split(\",\");\r\n\t\t\tvar left=Number(grid[3]);\r\n\t\t\tvar right=Number(grid[1]);\r\n\t\t\tvar max=this.width-left-right;\r\n\t\t\tvar sw=max *this._value;\r\n\t\t\tthis._bar.width=left+right+sw;\r\n\t\t\tthis._bar.visible=this._bar.width > left+right;\r\n\t\t\t}else {\r\n\t\t\tthis._bar.width=this.width *this._value;\r\n\t\t}\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureHeight',function(){\r\n\t\treturn this._bg.height;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.ui.Image#skin\r\n\t*/\r\n\t__getset(0,__proto,'skin',function(){\r\n\t\treturn this._skin;\r\n\t\t},function(value){\r\n\t\tif (this._skin !=value){\r\n\t\t\tthis._skin=value;\r\n\t\t\tthis._bg.skin=this._skin;\r\n\t\t\tthis._bar.skin=this._skin.replace(\".png\",\"$bar.png\");\r\n\t\t\tthis.callLater(this.changeValue);\r\n\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'measureWidth',function(){\r\n\t\treturn this._bg.width;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tLaya.superSet(Component,this,'height',value);\r\n\t\tthis._bg.height=this._height;\r\n\t\tthis._bar.height=this._height;\r\n\t});\r\n\r\n\t/**\r\n\t*获取进度条对象。\r\n\t*/\r\n\t__getset(0,__proto,'bar',function(){\r\n\t\treturn this._bar;\r\n\t});\r\n\r\n\t/**\r\n\t*当前的进度量。\r\n\t*<p><b>取值：</b>介于0和1之间。</p>\r\n\t*/\r\n\t__getset(0,__proto,'value',function(){\r\n\t\treturn this._value;\r\n\t\t},function(num){\r\n\t\tif (this._value !=num){\r\n\t\t\tnum=num > 1 ? 1 :num < 0 ? 0 :num;\r\n\t\t\tthis._value=num;\r\n\t\t\tthis.callLater(this.changeValue);\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t\t\tthis.changeHandler && this.changeHandler.runWith(num);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*获取背景条对象。\r\n\t*/\r\n\t__getset(0,__proto,'bg',function(){\r\n\t\treturn this._bg;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>当前 <code>ProgressBar</code> 实例的进度条背景位图（ <code>Image</code> 实例）的有效缩放网格数据。</p>\r\n\t*<p>数据格式：\"上边距,右边距,下边距,左边距,是否重复填充(值为0：不重复填充，1：重复填充)\"，以逗号分隔。\r\n\t*<ul><li>例如：\"4,4,4,4,1\"</li></ul></p>\r\n\t*@see laya.ui.AutoBitmap.sizeGrid\r\n\t*/\r\n\t__getset(0,__proto,'sizeGrid',function(){\r\n\t\treturn this._bg.sizeGrid;\r\n\t\t},function(value){\r\n\t\tthis._bg.sizeGrid=this._bar.sizeGrid=value;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tLaya.superSet(Component,this,'width',value);\r\n\t\tthis._bg.width=this._width;\r\n\t\tthis.callLater(this.changeValue);\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif ((typeof value=='number')|| (typeof value=='string'))this.value=Number(value);\r\n\t\telse Laya.superSet(Component,this,'dataSource',value);\r\n\t});\r\n\r\n\treturn ProgressBar;\r\n})(Component)\r\n\r\n\r\n/**鼠标提示管理类*/\r\n//class laya.ui.TipManager extends laya.ui.Component\r\nvar TipManager=(function(_super){\r\n\tfunction TipManager(){\r\n\t\tthis._tipBox=null;\r\n\t\tthis._tipText=null;\r\n\t\tthis._defaultTipHandler=null;\r\n\t\tTipManager.__super.call(this);\r\n\t\tthis._tipBox=new Component();\r\n\t\tthis._tipBox.addChild(this._tipText=new Text());\r\n\t\tthis._tipText.x=this._tipText.y=5;\r\n\t\tthis._tipText.color=TipManager.tipTextColor;\r\n\t\tthis._defaultTipHandler=this._showDefaultTip;\r\n\t\tLaya.stage.on(/*laya.ui.UIEvent.SHOW_TIP*/\"showtip\",this,this._onStageShowTip);\r\n\t\tLaya.stage.on(/*laya.ui.UIEvent.HIDE_TIP*/\"hidetip\",this,this._onStageHideTip);\r\n\t\tthis.zOrder=1100\r\n\t}\r\n\r\n\t__class(TipManager,'laya.ui.TipManager',_super);\r\n\tvar __proto=TipManager.prototype;\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._onStageHideTip=function(e){\r\n\t\tLaya.timer.clear(this,this._showTip);\r\n\t\tthis.closeAll();\r\n\t\tthis.removeSelf();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._onStageShowTip=function(data){\r\n\t\tLaya.timer.once(TipManager.tipDelay,this,this._showTip,[data],true);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._showTip=function(tip){\r\n\t\tif ((typeof tip=='string')){\r\n\t\t\tvar text=String(tip);\r\n\t\t\tif (Boolean(text)){\r\n\t\t\t\tthis._defaultTipHandler(text);\r\n\t\t\t}\r\n\t\t\t}else if ((tip instanceof laya.utils.Handler )){\r\n\t\t\t(tip).run();\r\n\t\t\t}else if ((typeof tip=='function')){\r\n\t\t\t(tip).apply();\r\n\t\t}\r\n\t\tif (true){\r\n\t\t\tLaya.stage.on(/*laya.events.Event.MOUSE_MOVE*/\"mousemove\",this,this._onStageMouseMove);\r\n\t\t\tLaya.stage.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this._onStageMouseDown);\r\n\t\t}\r\n\t\tthis._onStageMouseMove(null);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._onStageMouseDown=function(e){\r\n\t\tthis.closeAll();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._onStageMouseMove=function(e){\r\n\t\tthis._showToStage(this,TipManager.offsetX,TipManager.offsetY);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._showToStage=function(dis,offX,offY){\r\n\t\t(offX===void 0)&& (offX=0);\r\n\t\t(offY===void 0)&& (offY=0);\r\n\t\tvar rec=dis.getBounds();\r\n\t\tdis.x=Laya.stage.mouseX+offX;\r\n\t\tdis.y=Laya.stage.mouseY+offY;\r\n\t\tif (dis.x+rec.width > Laya.stage.width){\r\n\t\t\tdis.x-=rec.width+offX;\r\n\t\t}\r\n\t\tif (dis.y+rec.height > Laya.stage.height){\r\n\t\t\tdis.y-=rec.height+offY;\r\n\t\t}\r\n\t}\r\n\r\n\t/**关闭所有鼠标提示*/\r\n\t__proto.closeAll=function(){\r\n\t\tLaya.timer.clear(this,this._showTip);\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_MOVE*/\"mousemove\",this,this._onStageMouseMove);\r\n\t\tLaya.stage.off(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this._onStageMouseDown);\r\n\t\tthis.removeChildren();\r\n\t}\r\n\r\n\t/**\r\n\t*显示显示对象类型的tip\r\n\t*/\r\n\t__proto.showDislayTip=function(tip){\r\n\t\tthis.addChild(tip);\r\n\t\tthis._showToStage(this);\r\n\t\tLaya._currentStage.addChild(this);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._showDefaultTip=function(text){\r\n\t\tthis._tipText.text=text;\r\n\t\tvar g=this._tipBox.graphics;\r\n\t\tg.clear();\r\n\t\tg.drawRect(0,0,this._tipText.width+10,this._tipText.height+10,TipManager.tipBackColor);\r\n\t\tthis.addChild(this._tipBox);\r\n\t\tthis._showToStage(this);\r\n\t\tLaya._currentStage.addChild(this);\r\n\t}\r\n\r\n\t/**默认鼠标提示函数*/\r\n\t__getset(0,__proto,'defaultTipHandler',function(){\r\n\t\treturn this._defaultTipHandler;\r\n\t\t},function(value){\r\n\t\tthis._defaultTipHandler=value;\r\n\t});\r\n\r\n\tTipManager.offsetX=10;\r\n\tTipManager.offsetY=15;\r\n\tTipManager.tipTextColor=\"#ffffff\";\r\n\tTipManager.tipBackColor=\"#111111\";\r\n\tTipManager.tipDelay=200;\r\n\treturn TipManager;\r\n})(Component)\r\n\r\n\r\n/**\r\n*<code>View</code> 是一个视图类。\r\n*@internal <p><code>View</code></p>\r\n*/\r\n//class laya.ui.View extends laya.ui.Box\r\nvar View=(function(_super){\r\n\tvar DataWatcher;\r\n\tfunction View(){\r\n\t\t/**@private */\r\n\t\tthis._idMap=null;\r\n\t\t/**@private */\r\n\t\tthis._aniList=null;\r\n\t\t/**@private */\r\n\t\tthis._watchMap={};\r\n\t\tView.__super.call(this);\r\n\t}\r\n\r\n\t__class(View,'laya.ui.View',_super);\r\n\tvar __proto=View.prototype;\r\n\t/**\r\n\t*@private\r\n\t*通过视图数据创建视图。\r\n\t*@param uiView 视图数据信息。\r\n\t*/\r\n\t__proto.createView=function(uiView){\r\n\t\tif (uiView.animations && !this._idMap)this._idMap={};\r\n\t\tView.createComp(uiView,this,this);\r\n\t\tif (uiView.animations){\r\n\t\t\tvar anilist=[];\r\n\t\t\tvar animations=uiView.animations;\r\n\t\t\tvar i=0,len=animations.length;\r\n\t\t\tvar tAni;\r\n\t\t\tvar tAniO;\r\n\t\t\tfor (i=0;i < len;i++){\r\n\t\t\t\ttAni=new FrameAnimation();\r\n\t\t\t\ttAniO=animations[i];\r\n\t\t\t\ttAni._setUp(this._idMap,tAniO);\r\n\t\t\t\tthis[tAniO.name]=tAni;\r\n\t\t\t\ttAni._setControlNode(this);\r\n\t\t\t\tswitch (tAniO.action){\r\n\t\t\t\t\tcase 1:\r\n\t\t\t\t\t\ttAni.play(0,false);\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\tcase 2:\r\n\t\t\t\t\t\ttAni.play(0,true);\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t}\r\n\t\t\t\tanilist.push(tAni);\r\n\t\t\t}\r\n\t\t\tthis._aniList=anilist;\r\n\t\t}\r\n\t\tif (this._width > 0 && uiView.props.hitTestPrior==null && !this.mouseThrough)this.hitTestPrior=true;\r\n\t}\r\n\r\n\t__proto.onEvent=function(type,event){}\r\n\t/**\r\n\t*@private\r\n\t*装载UI视图。用于加载模式。\r\n\t*@param path UI资源地址。\r\n\t*/\r\n\t__proto.loadUI=function(path){\r\n\t\tvar uiView=View.uiMap[path];\r\n\t\tuiView && this.createView(uiView);\r\n\t}\r\n\r\n\t/**\r\n\t*<p>销毁此对象。</p>\r\n\t*@param destroyChild 是否同时销毁子节点，若值为true,则销毁子节点，否则不销毁子节点。\r\n\t*/\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tif (this._aniList)this._aniList.length=0;\r\n\t\tthis._idMap=null;\r\n\t\tthis._aniList=null;\r\n\t\tthis._watchMap=null;\r\n\t\tlaya.ui.Component.prototype.destroy.call(this,destroyChild);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.changeData=function(key){\r\n\t\tvar arr=this._watchMap[key];\r\n\t\tif (!arr)return;\r\n\t\tconsole.log(\"change\",key);\r\n\t\tfor (var i=0,n=arr.length;i < n;i++){\r\n\t\t\tvar watcher=arr[i];\r\n\t\t\twatcher.exe(this);\r\n\t\t}\r\n\t}\r\n\r\n\tView._regs=function(){\r\n\t\tfor (var key in View.uiClassMap){\r\n\t\t\tClassUtils.regClass(key,View.uiClassMap[key]);\r\n\t\t}\r\n\t}\r\n\r\n\tView.createComp=function(uiView,comp,view,dataMap){\r\n\t\tcomp=comp || View.getCompInstance(uiView);\r\n\t\tif (!comp){\r\n\t\t\tconsole.warn(\"can not create:\"+uiView.type);\r\n\t\t\treturn null;\r\n\t\t};\r\n\t\tvar child=uiView.child;\r\n\t\tif (child){\r\n\t\t\tvar isList=(comp instanceof laya.ui.List );\r\n\t\t\tfor (var i=0,n=child.length;i < n;i++){\r\n\t\t\t\tvar node=child[i];\r\n\t\t\t\tif (comp.hasOwnProperty(\"itemRender\")&& (node.props.name==\"render\" || node.props.renderType===\"render\")){\r\n\t\t\t\t\t(comp).itemRender=node;\r\n\t\t\t\t\t}else if (node.type==\"Graphic\"){\r\n\t\t\t\t\tClassUtils.addGraphicsToSprite(node,comp);\r\n\t\t\t\t\t}else if (ClassUtils.isDrawType(node.type)){\r\n\t\t\t\t\tClassUtils.addGraphicToSprite(node,comp,true);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tif (isList){\r\n\t\t\t\t\t\tvar arr=[];\r\n\t\t\t\t\t\tvar tChild=View.createComp(node,null,view,arr);\r\n\t\t\t\t\t\tif (arr.length)tChild[\"_$bindData\"]=arr;\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\ttChild=View.createComp(node,null,view,dataMap);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (node.type==\"Script\"){\r\n\t\t\t\t\t\tif (\"owner\" in tChild){\r\n\t\t\t\t\t\t\ttChild[\"owner\"]=comp;\r\n\t\t\t\t\t\t\t}else if (\"target\" in tChild){\r\n\t\t\t\t\t\t\ttChild[\"target\"]=comp;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}else if (node.props.renderType==\"mask\" || node.props.name==\"mask\"){\r\n\t\t\t\t\t\tcomp.mask=tChild;\r\n\t\t\t\t\t\t}else {(\r\n\t\t\t\t\t\ttChild instanceof laya.display.Sprite )&& comp.addChild(tChild);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar props=uiView.props;\r\n\t\tfor (var prop in props){\r\n\t\t\tvar value=props[prop];\r\n\t\t\tif (View.eventDic[prop]){\r\n\t\t\t\tif (value&&view){\r\n\t\t\t\t\t(comp).on(prop,view,view.onEvent,[value]);\r\n\t\t\t\t}\r\n\t\t\t}else\r\n\t\t\tView.setCompValue(comp,prop,value,view,dataMap);\r\n\t\t}\r\n\t\tif (Laya.__typeof(comp,'laya.ui.IItem'))(comp).initItems();\r\n\t\tif (uiView.compId && view && view._idMap){\r\n\t\t\tview._idMap[uiView.compId]=comp;\r\n\t\t}\r\n\t\treturn comp;\r\n\t}\r\n\r\n\tView.setCompValue=function(comp,prop,value,view,dataMap){\r\n\t\tif ((typeof value=='string')&& value.indexOf(\"${\")>-1){\r\n\t\t\tView._sheet || (View._sheet=ClassUtils.getClass(\"laya.data.Table\"));\r\n\t\t\tif (!View._sheet){\r\n\t\t\t\tconsole.warn(\"Can not find class Sheet\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (dataMap){\r\n\t\t\t\tdataMap.push(comp,prop,value);\r\n\t\t\t\t}else if (view){\r\n\t\t\t\tif (value.indexOf(\"].\")==-1){\r\n\t\t\t\t\tvalue=value.replace(\".\",\"[0].\");\r\n\t\t\t\t};\r\n\t\t\t\tvar watcher=new DataWatcher(comp,prop,value);\r\n\t\t\t\twatcher.exe(view);\r\n\t\t\t\tvar one,temp;\r\n\t\t\t\tvar str=value.replace(/\\[.*?\\]\\./g,\".\");\r\n\t\t\t\twhile ((one=View._parseWatchData.exec(str))!=null){\r\n\t\t\t\t\tvar key1=one[1];\r\n\t\t\t\t\twhile ((temp=View._parseKeyWord.exec(key1))!=null){\r\n\t\t\t\t\t\tvar key2=temp[0];\r\n\t\t\t\t\t\tvar arr=(view._watchMap[key2] || (view._watchMap[key2]=[]));\r\n\t\t\t\t\t\tarr.push(watcher);\r\n\t\t\t\t\t\tView._sheet.I.notifer.on(key2,view,view.changeData,[key2]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tarr=(view._watchMap[key1] || (view._watchMap[key1]=[]));\r\n\t\t\t\t\tarr.push(watcher);\r\n\t\t\t\t\tView._sheet.I.notifer.on(key1,view,view.changeData,[key1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (prop===\"var\" && view){\r\n\t\t\tview[value]=comp;\r\n\t\t\t}else if (prop==\"onClick\"){\r\n\t\t\tvar fun=Laya._runScript(\"(function(){\"+value+\"})\");\r\n\t\t\tcomp.on(/*laya.events.Event.CLICK*/\"click\",view,fun);\r\n\t\t\t}else {\r\n\t\t\tcomp[prop]=(value===\"true\" ? true :(value===\"false\" ? false :value));\r\n\t\t}\r\n\t}\r\n\r\n\tView.getCompInstance=function(json){\r\n\t\tvar runtime=json.props ? json.props.runtime :null;\r\n\t\tvar compClass;\r\n\t\tcompClass=runtime ? (View.viewClassMap[runtime] || View.uiClassMap[runtime]|| Laya[\"__classmap\"][runtime]):View.uiClassMap[json.type];\r\n\t\tif (json.props && json.props.hasOwnProperty(\"renderType\")&& json.props[\"renderType\"]==\"instance\")return compClass[\"instance\"];\r\n\t\treturn compClass ? new compClass():null;\r\n\t}\r\n\r\n\tView.regComponent=function(key,compClass){\r\n\t\tView.uiClassMap[key]=compClass;\r\n\t\tClassUtils.regClass(key,compClass);\r\n\t}\r\n\r\n\tView.regViewRuntime=function(key,compClass){\r\n\t\tView.viewClassMap[key]=compClass;\r\n\t}\r\n\r\n\tView.uiMap={};\r\n\tView.viewClassMap={};\r\n\tView._sheet=null;\r\n\t__static(View,\r\n\t['uiClassMap',function(){return this.uiClassMap={\"ViewStack\":ViewStack,\"LinkButton\":Button,\"TextArea\":TextArea,\"ColorPicker\":ColorPicker,\"Box\":Box,\"Button\":Button,\"CheckBox\":CheckBox,\"Clip\":Clip,\"ComboBox\":ComboBox,\"Component\":Component,\"HScrollBar\":HScrollBar,\"HSlider\":HSlider,\"Image\":Image,\"Label\":Label,\"List\":List,\"Panel\":Panel,\"ProgressBar\":ProgressBar,\"Radio\":Radio,\"RadioGroup\":RadioGroup,\"ScrollBar\":ScrollBar,\"Slider\":Slider,\"Tab\":Tab,\"TextInput\":TextInput,\"View\":View,\"VScrollBar\":VScrollBar,\"VSlider\":VSlider,\"Tree\":Tree,\"HBox\":HBox,\"VBox\":VBox,\"Sprite\":Sprite,\"Animation\":Animation,\"Text\":Text,\"FontClip\":FontClip};},'eventDic',function(){return this.eventDic={\"mousedown\":true,\"mouseup\":true,\"mousemove\":true,\"mouseover\":true,\"mouseout\":true,\"click\":true,\"doubleclick\":true,\"rightmousedown\":true,\"rightmouseup\":true,\"rightclick\":true };},'_parseWatchData',function(){return this._parseWatchData=/\\${(.*?)}/g;},'_parseKeyWord',function(){return this._parseKeyWord=/[a-zA-Z_][a-zA-Z0-9_]*(?:(?:\\.[a-zA-Z_][a-zA-Z0-9_]*)+)/g;}\r\n\t]);\r\n\tView.__init$=function(){\r\n\t\tView._regs()\r\n\t\t//class DataWatcher\r\n\t\tDataWatcher=(function(){\r\n\t\t\tfunction DataWatcher(comp,prop,value){\r\n\t\t\t\tthis.comp=null;\r\n\t\t\t\tthis.prop=null;\r\n\t\t\t\tthis.value=null;\r\n\t\t\t\tthis.comp=comp;\r\n\t\t\t\tthis.prop=prop;\r\n\t\t\t\tthis.value=value;\r\n\t\t\t}\r\n\t\t\t__class(DataWatcher,'');\r\n\t\t\tvar __proto=DataWatcher.prototype;\r\n\t\t\t__proto.exe=function(view){\r\n\t\t\t\tvar fun=UIUtils.getBindFun(this.value);\r\n\t\t\t\tthis.comp[this.prop]=fun.call(this,view);\r\n\t\t\t}\r\n\t\t\treturn DataWatcher;\r\n\t\t})()\r\n\t}\r\n\r\n\treturn View;\r\n})(Box)\r\n\r\n\r\n/**\r\n*<code>CheckBox</code> 组件显示一个小方框，该方框内可以有选中标记。\r\n*<code>CheckBox</code> 组件还可以显示可选的文本标签，默认该标签位于 CheckBox 右侧。\r\n*<p><code>CheckBox</code> 使用 <code>dataSource</code>赋值时的的默认属性是：<code>selected</code>。</p>\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>CheckBox</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.CheckBox;\r\n\t*import laya.utils.Handler;\r\n\t*public class CheckBox_Example\r\n\t*{\r\n\t\t*public function CheckBox_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load(\"resource/ui/check.png\",Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*trace(\"资源加载完成！\");\r\n\t\t\t*var checkBox:CheckBox=new CheckBox(\"resource/ui/check.png\",\"这个是一个CheckBox组件。\");//创建一个 CheckBox 类的实例对象 checkBox ,传入它的皮肤skin和标签label。\r\n\t\t\t*checkBox.x=100;//设置 checkBox 对象的属性 x 的值，用于控制 checkBox 对象的显示位置。\r\n\t\t\t*checkBox.y=100;//设置 checkBox 对象的属性 y 的值，用于控制 checkBox 对象的显示位置。\r\n\t\t\t*checkBox.clickHandler=new Handler(this,onClick,[checkBox]);//设置 checkBox 的点击事件处理器。\r\n\t\t\t*Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onClick(checkBox:CheckBox):void\r\n\t\t*{\r\n\t\t\t*trace(\"输出选中状态: checkBox.selected = \"+checkBox.selected);\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*Laya.loader.load(\"resource/ui/check.png\",laya.utils.Handler.create(this,loadComplete));//加载资源\r\n*function loadComplete()\r\n*{\r\n\t*console.log(\"资源加载完成！\");\r\n\t*var checkBox:laya.ui.CheckBox=new laya.ui.CheckBox(\"resource/ui/check.png\",\"这个是一个CheckBox组件。\");//创建一个 CheckBox 类的类的实例对象 checkBox ,传入它的皮肤skin和标签label。\r\n\t*checkBox.x=100;//设置 checkBox 对象的属性 x 的值，用于控制 checkBox 对象的显示位置。\r\n\t*checkBox.y=100;//设置 checkBox 对象的属性 y 的值，用于控制 checkBox 对象的显示位置。\r\n\t*checkBox.clickHandler=new laya.utils.Handler(this,this.onClick,[checkBox],false);//设置 checkBox 的点击事件处理器。\r\n\t*Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。\r\n\t*}\r\n*function onClick(checkBox)\r\n*{\r\n\t*console.log(\"checkBox.selected = \",checkBox.selected);\r\n\t*}\r\n*@example\r\n*import CheckBox=laya.ui.CheckBox;\r\n*import Handler=laya.utils.Handler;\r\n*class CheckBox_Example{\r\n\t*constructor()\r\n\t*{\r\n\t\t*Laya.init(640,800);\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load(\"resource/ui/check.png\",Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete()\r\n\t*{\r\n\t\t*var checkBox:CheckBox=new CheckBox(\"resource/ui/check.png\",\"这个是一个CheckBox组件。\");//创建一个 CheckBox 类的实例对象 checkBox ,传入它的皮肤skin和标签label。\r\n\t\t*checkBox.x=100;//设置 checkBox 对象的属性 x 的值，用于控制 checkBox 对象的显示位置。\r\n\t\t*checkBox.y=100;//设置 checkBox 对象的属性 y 的值，用于控制 checkBox 对象的显示位置。\r\n\t\t*checkBox.clickHandler=new Handler(this,this.onClick,[checkBox]);//设置 checkBox 的点击事件处理器。\r\n\t\t*Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。\r\n\t\t*}\r\n\t*private onClick(checkBox:CheckBox):void\r\n\t*{\r\n\t\t*console.log(\"输出选中状态: checkBox.selected = \"+checkBox.selected);\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.CheckBox extends laya.ui.Button\r\nvar CheckBox=(function(_super){\r\n\t/**\r\n\t*创建一个新的 <code>CheckBox</code> 组件实例。\r\n\t*@param skin 皮肤资源地址。\r\n\t*@param label 文本标签的内容。\r\n\t*/\r\n\tfunction CheckBox(skin,label){\r\n\t\t(label===void 0)&& (label=\"\");\r\n\t\tCheckBox.__super.call(this,skin,label);\r\n\t}\r\n\r\n\t__class(CheckBox,'laya.ui.CheckBox',_super);\r\n\tvar __proto=CheckBox.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.preinitialize=function(){\r\n\t\tlaya.ui.Component.prototype.preinitialize.call(this);\r\n\t\tthis.toggle=true;\r\n\t\tthis._autoSize=false;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.initialize=function(){\r\n\t\t_super.prototype.initialize.call(this);\r\n\t\tthis.createText();\r\n\t\tthis._text.align=\"left\";\r\n\t\tthis._text.valign=\"top\";\r\n\t\tthis._text.width=0;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif ((typeof value=='boolean'))this.selected=value;\r\n\t\telse if ((typeof value=='string'))this.selected=value===\"true\";\r\n\t\telse Laya.superSet(Button,this,'dataSource',value);\r\n\t});\r\n\r\n\treturn CheckBox;\r\n})(Button)\r\n\r\n\r\n/**\r\n*<code>LayoutBox</code> 是一个布局容器类。\r\n*/\r\n//class laya.ui.LayoutBox extends laya.ui.Box\r\nvar LayoutBox=(function(_super){\r\n\tfunction LayoutBox(){\r\n\t\t/**@private */\r\n\t\tthis._space=0;\r\n\t\t/**@private */\r\n\t\tthis._align=\"none\";\r\n\t\t/**@private */\r\n\t\tthis._itemChanged=false;\r\n\t\tLayoutBox.__super.call(this);\r\n\t}\r\n\r\n\t__class(LayoutBox,'laya.ui.LayoutBox',_super);\r\n\tvar __proto=LayoutBox.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.addChild=function(child){\r\n\t\tchild.on(/*laya.events.Event.RESIZE*/\"resize\",this,this.onResize);\r\n\t\tthis._setItemChanged();\r\n\t\treturn laya.display.Node.prototype.addChild.call(this,child);\r\n\t}\r\n\r\n\t__proto.onResize=function(e){\r\n\t\tthis._setItemChanged();\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.addChildAt=function(child,index){\r\n\t\tchild.on(/*laya.events.Event.RESIZE*/\"resize\",this,this.onResize);\r\n\t\tthis._setItemChanged();\r\n\t\treturn laya.display.Node.prototype.addChildAt.call(this,child,index);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.removeChild=function(child){\r\n\t\tchild.off(/*laya.events.Event.RESIZE*/\"resize\",this,this.onResize);\r\n\t\tthis._setItemChanged();\r\n\t\treturn laya.display.Node.prototype.removeChild.call(this,child);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.removeChildAt=function(index){\r\n\t\tthis.getChildAt(index).off(/*laya.events.Event.RESIZE*/\"resize\",this,this.onResize);\r\n\t\tthis._setItemChanged();\r\n\t\treturn laya.display.Node.prototype.removeChildAt.call(this,index);\r\n\t}\r\n\r\n\t/**刷新。*/\r\n\t__proto.refresh=function(){\r\n\t\tthis._setItemChanged();\r\n\t}\r\n\r\n\t/**\r\n\t*改变子对象的布局。\r\n\t*/\r\n\t__proto.changeItems=function(){\r\n\t\tthis._itemChanged=false;\r\n\t}\r\n\r\n\t/**\r\n\t*排序项目列表。可通过重写改变默认排序规则。\r\n\t*@param items 项目列表。\r\n\t*/\r\n\t__proto.sortItem=function(items){\r\n\t\tif (items)items.sort(function(a,b){return a.y-b.y;});\r\n\t}\r\n\r\n\t__proto._setItemChanged=function(){\r\n\t\tif (!this._itemChanged){\r\n\t\t\tthis._itemChanged=true;\r\n\t\t\tthis.callLater(this.changeItems);\r\n\t\t}\r\n\t}\r\n\r\n\t/**子对象的间隔。*/\r\n\t__getset(0,__proto,'space',function(){\r\n\t\treturn this._space;\r\n\t\t},function(value){\r\n\t\tthis._space=value;\r\n\t\tthis._setItemChanged();\r\n\t});\r\n\r\n\t/**子对象对齐方式。*/\r\n\t__getset(0,__proto,'align',function(){\r\n\t\treturn this._align;\r\n\t\t},function(value){\r\n\t\tthis._align=value;\r\n\t\tthis._setItemChanged();\r\n\t});\r\n\r\n\treturn LayoutBox;\r\n})(Box)\r\n\r\n\r\n/**\r\n*字体切片，简化版的位图字体，只需设置一个切片图片和文字内容即可使用，效果同位图字体\r\n*使用方式：设置位图字体皮肤skin，设置皮肤对应的字体内容sheet（如果多行，可以使用空格换行），示例：\r\n*fontClip.skin=\"font1.png\";//设置皮肤\r\n*fontClip.sheet=\"abc123 456\";//设置皮肤对应的内容，空格换行。此皮肤为2行5列（显示时skin会被等分为2行5列），第一行对应的文字为\"abc123\"，第二行为\"456\"\r\n*fontClip.value=\"a1326\";//显示\"a1326\"文字\r\n*/\r\n//class laya.ui.FontClip extends laya.ui.Clip\r\nvar FontClip=(function(_super){\r\n\tfunction FontClip(skin,sheet){\r\n\t\t/**数值*/\r\n\t\tthis._valueArr=null;\r\n\t\t/**文字内容数组**/\r\n\t\tthis._indexMap=null;\r\n\t\t/**位图字体内容**/\r\n\t\tthis._sheet=null;\r\n\t\t/**@private */\r\n\t\tthis._direction=\"horizontal\";\r\n\t\t/**X方向间隙*/\r\n\t\tthis._spaceX=0;\r\n\t\t/**Y方向间隙*/\r\n\t\tthis._spaceY=0;\r\n\t\t/**@private 水平对齐方式*/\r\n\t\tthis._align=\"left\";\r\n\t\t/**@private 显示文字宽*/\r\n\t\tthis._wordsW=0;\r\n\t\t/**@private 显示文字高*/\r\n\t\tthis._wordsH=0;\r\n\t\tFontClip.__super.call(this);\r\n\t\tif (skin)this.skin=skin;\r\n\t\tif (sheet)this.sheet=sheet;\r\n\t}\r\n\r\n\t__class(FontClip,'laya.ui.FontClip',_super);\r\n\tvar __proto=FontClip.prototype;\r\n\t__proto.createChildren=function(){\r\n\t\tthis._bitmap=new AutoBitmap();\r\n\t\tthis.on(/*laya.events.Event.LOADED*/\"loaded\",this,this._onClipLoaded);\r\n\t}\r\n\r\n\t/**\r\n\t*资源加载完毕\r\n\t*/\r\n\t__proto._onClipLoaded=function(){\r\n\t\tthis.callLater(this.changeValue);\r\n\t}\r\n\r\n\t/**渲染数值*/\r\n\t__proto.changeValue=function(){\r\n\t\tif (!this._sources)return;\r\n\t\tif (!this._valueArr)return;\r\n\t\tthis.graphics.clear(true);\r\n\t\tvar texture;\r\n\t\ttexture=this._sources[0];\r\n\t\tif (!texture)return;\r\n\t\tvar isHorizontal=(this._direction===\"horizontal\");\r\n\t\tif (isHorizontal){\r\n\t\t\tthis._wordsW=this._valueArr.length *(texture.sourceWidth+this.spaceX);\r\n\t\t\tthis._wordsH=texture.sourceHeight;\r\n\t\t\t}else{\r\n\t\t\tthis._wordsW=texture.sourceWidth;\r\n\t\t\tthis._wordsH=(texture.sourceHeight+this.spaceY)*this._valueArr.length;\r\n\t\t};\r\n\t\tvar dX=0;\r\n\t\tif (this._width){\r\n\t\t\tswitch(this._align){\r\n\t\t\t\tcase \"center\":\r\n\t\t\t\t\tdX=0.5 *(this._width-this._wordsW);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tcase \"right\":\r\n\t\t\t\t\tdX=this._width-this._wordsW;\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\tdefault :\r\n\t\t\t\t\tdX=0;\r\n\t\t\t\t}\r\n\t\t}\r\n\t\tfor (var i=0,sz=this._valueArr.length;i < sz;i++){\r\n\t\t\tvar index=this._indexMap[this._valueArr.charAt(i)];\r\n\t\t\tif (!this.sources[index])continue ;\r\n\t\t\ttexture=this.sources[index];\r\n\t\t\tif (isHorizontal)this.graphics.drawTexture(texture,dX+i *(texture.sourceWidth+this.spaceX),0,texture.sourceWidth,texture.sourceHeight);\r\n\t\t\telse this.graphics.drawTexture(texture,0+dX,i *(texture.sourceHeight+this.spaceY),texture.sourceWidth,texture.sourceHeight);\r\n\t\t}\r\n\t\tif (!this._width){\r\n\t\t\tthis.resetLayoutX();\r\n\t\t\tthis.callLater(this.changeSize);\r\n\t\t}\r\n\t\tif (!this._height){\r\n\t\t\tthis.resetLayoutY();\r\n\t\t\tthis.callLater(this.changeSize);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tthis._valueArr=null;\r\n\t\tthis._indexMap=null;\r\n\t\tthis.graphics.clear(true);\r\n\t\tthis.removeSelf();\r\n\t\tthis.off(/*laya.events.Event.LOADED*/\"loaded\",this,this._onClipLoaded);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t}\r\n\r\n\t/**\r\n\t*设置位图字体内容，空格代表换行。比如\"abc123 456\"，代表第一行对应的文字为\"abc123\"，第二行为\"456\"\r\n\t*/\r\n\t__getset(0,__proto,'sheet',function(){\r\n\t\treturn this._sheet;\r\n\t\t},function(value){\r\n\t\tvalue+=\"\";\r\n\t\tthis._sheet=value;\r\n\t\tvar arr=value.split(\" \");\r\n\t\tthis._clipX=String(arr[0]).length;\r\n\t\tthis.clipY=arr.length;\r\n\t\tthis._indexMap={};\r\n\t\tfor (var i=0;i < this._clipY;i++){\r\n\t\t\tvar line=arr[i].split(\"\");\r\n\t\t\tfor (var j=0,n=line.length;j < n;j++){\r\n\t\t\t\tthis._indexMap[line[j]]=i *this._clipX+j;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tLaya.superSet(Clip,this,'height',value);\r\n\t\tthis.callLater(this.changeValue);\r\n\t});\r\n\r\n\t/**\r\n\t*布局方向。\r\n\t*<p>默认值为\"horizontal\"。</p>\r\n\t*<p><b>取值：</b>\r\n\t*<li>\"horizontal\"：表示水平布局。</li>\r\n\t*<li>\"vertical\"：表示垂直布局。</li>\r\n\t*</p>\r\n\t*/\r\n\t__getset(0,__proto,'direction',function(){\r\n\t\treturn this._direction;\r\n\t\t},function(value){\r\n\t\tthis._direction=value;\r\n\t\tthis.callLater(this.changeValue);\r\n\t});\r\n\r\n\t/**\r\n\t*设置位图字体的显示内容\r\n\t*/\r\n\t__getset(0,__proto,'value',function(){\r\n\t\tif (!this._valueArr)return \"\";\r\n\t\treturn this._valueArr;\r\n\t\t},function(value){\r\n\t\tvalue+=\"\";\r\n\t\tthis._valueArr=value;\r\n\t\tthis.callLater(this.changeValue);\r\n\t});\r\n\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tLaya.superSet(Clip,this,'width',value);\r\n\t\tthis.callLater(this.changeValue);\r\n\t});\r\n\r\n\t/**X方向文字间隙*/\r\n\t__getset(0,__proto,'spaceX',function(){\r\n\t\treturn this._spaceX;\r\n\t\t},function(value){\r\n\t\tthis._spaceX=value;\r\n\t\tif (this._direction===\"horizontal\")this.callLater(this.changeValue);\r\n\t});\r\n\r\n\t/**Y方向文字间隙*/\r\n\t__getset(0,__proto,'spaceY',function(){\r\n\t\treturn this._spaceY;\r\n\t\t},function(value){\r\n\t\tthis._spaceY=value;\r\n\t\tif (!(this._direction===\"horizontal\"))this.callLater(this.changeValue);\r\n\t});\r\n\r\n\t/**水平对齐方式*/\r\n\t__getset(0,__proto,'align',function(){\r\n\t\treturn this._align;\r\n\t\t},function(v){\r\n\t\tthis._align=v;\r\n\t\tthis.callLater(this.changeValue);\r\n\t});\r\n\r\n\t__getset(0,__proto,'measureWidth',function(){\r\n\t\treturn this._wordsW;\r\n\t});\r\n\r\n\t__getset(0,__proto,'measureHeight',function(){\r\n\t\treturn this._wordsH;\r\n\t});\r\n\r\n\treturn FontClip;\r\n})(Clip)\r\n\r\n\r\n/**\r\n*<code>List</code> 控件可显示项目列表。默认为垂直方向列表。可通过UI编辑器自定义列表。\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>List</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.List;\r\n\t*import laya.utils.Handler;\r\n\t*public class List_Example\r\n\t*{\r\n\t\t*public function List_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800,\"false\");//设置游戏画布宽高、渲染模式。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load([\"resource/ui/vscroll.png\",\"resource/ui/vscroll$bar.png\",\"resource/ui/vscroll$down.png\",\"resource/ui/vscroll$up.png\"],Handler.create(this,onLoadComplete));\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*var arr:Array=[];//创建一个数组，用于存贮列表的数据信息。\r\n\t\t\t*for (var i:int=0;i &lt;20;i++)\r\n\t\t\t*{\r\n\t\t\t\t*arr.push({label:\"item\"+i});\r\n\t\t\t\t*}\r\n\t\t\t*var list:List=new List();//创建一个 List 类的实例对象 list 。\r\n\t\t\t*list.itemRender=Item;//设置 list 的单元格渲染器。\r\n\t\t\t*list.repeatX=1;//设置 list 的水平方向单元格数量。\r\n\t\t\t*list.repeatY=10;//设置 list 的垂直方向单元格数量。\r\n\t\t\t*list.vScrollBarSkin=\"resource/ui/vscroll.png\";//设置 list 的垂直方向滚动条皮肤。\r\n\t\t\t*list.array=arr;//设置 list 的列表数据源。\r\n\t\t\t*list.pos(100,100);//设置 list 的位置。\r\n\t\t\t*list.selectEnable=true;//设置 list 可选。\r\n\t\t\t*list.selectHandler=new Handler(this,onSelect);//设置 list 改变选择项执行的处理器。\r\n\t\t\t*Laya.stage.addChild(list);//将 list 添加到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onSelect(index:int):void\r\n\t\t*{\r\n\t\t\t*trace(\"当前选择的项目索引： index= \",index);\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*import laya.ui.Box;\r\n*import laya.ui.Label;\r\n*class Item extends Box\r\n*{\r\n\t*public function Item()\r\n\t*{\r\n\t\t*graphics.drawRect(0,0,100,20,null,\"#ff0000\");\r\n\t\t*var label:Label=new Label();\r\n\t\t*label.text=\"100000\";\r\n\t\t*label.name=\"label\";//设置 label 的name属性值。\r\n\t\t*label.size(100,20);\r\n\t\t*addChild(label);\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*(function (_super){\r\n\t*function Item(){\r\n\t\t*Item.__super.call(this);//初始化父类\r\n\t\t*this.graphics.drawRect(0,0,100,20,\"#ff0000\");\r\n\t\t*var label=new laya.ui.Label();//创建一个 Label 类的实例对象 label 。\r\n\t\t*label.text=\"100000\";//设置 label 的文本内容。\r\n\t\t*label.name=\"label\";//设置 label 的name属性值。\r\n\t\t*label.size(100,20);//设置 label 的宽度、高度。\r\n\t\t*this.addChild(label);//将 label 添加到显示列表。\r\n\t\t*};\r\n\t*Laya.class(Item,\"mypackage.listExample.Item\",_super);//注册类 Item 。\r\n\t*})(laya.ui.Box);\r\n*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n*var res=[\"resource/ui/vscroll.png\",\"resource/ui/vscroll$bar.png\",\"resource/ui/vscroll$down.png\",\"resource/ui/vscroll$up.png\"];\r\n*Laya.loader.load(res,new laya.utils.Handler(this,onLoadComplete));//加载资源。\r\n*function onLoadComplete(){\r\n\t*var arr=[];//创建一个数组，用于存贮列表的数据信息。\r\n\t*for (var i=0;i &lt;20;i++){\r\n\t\t*arr.push({label:\"item\"+i});\r\n\t\t*}\r\n\t*var list=new laya.ui.List();//创建一个 List 类的实例对象 list 。\r\n\t*list.itemRender=mypackage.listExample.Item;//设置 list 的单元格渲染器。\r\n\t*list.repeatX=1;//设置 list 的水平方向单元格数量。\r\n\t*list.repeatY=10;//设置 list 的垂直方向单元格数量。\r\n\t*list.vScrollBarSkin=\"resource/ui/vscroll.png\";//设置 list 的垂直方向滚动条皮肤。\r\n\t*list.array=arr;//设置 list 的列表数据源。\r\n\t*list.pos(100,100);//设置 list 的位置。\r\n\t*list.selectEnable=true;//设置 list 可选。\r\n\t*list.selectHandler=new laya.utils.Handler(this,onSelect);//设置 list 改变选择项执行的处理器。\r\n\t*Laya.stage.addChild(list);//将 list 添加到显示列表。\r\n\t*}\r\n*function onSelect(index)\r\n*{\r\n\t*console.log(\"当前选择的项目索引： index= \",index);\r\n\t*}\r\n*\r\n*@example\r\n*import List=laya.ui.List;\r\n*import Handler=laya.utils.Handler;\r\n*public class List_Example {\r\n\t*public List_Example(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load([\"resource/ui/vscroll.png\",\"resource/ui/vscroll$bar.png\",\"resource/ui/vscroll$down.png\",\"resource/ui/vscroll$up.png\"],Handler.create(this,this.onLoadComplete));\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*var arr=[];//创建一个数组，用于存贮列表的数据信息。\r\n\t\t*for (var i:number=0;i &lt;20;i++)\r\n\t\t*{\r\n\t\t\t*arr.push({label:\"item\"+i });\r\n\t\t\t*}\r\n\t\t*var list:List=new List();//创建一个 List 类的实例对象 list 。\r\n\t\t*list.itemRender=Item;//设置 list 的单元格渲染器。\r\n\t\t*list.repeatX=1;//设置 list 的水平方向单元格数量。\r\n\t\t*list.repeatY=10;//设置 list 的垂直方向单元格数量。\r\n\t\t*list.vScrollBarSkin=\"resource/ui/vscroll.png\";//设置 list 的垂直方向滚动条皮肤。\r\n\t\t*list.array=arr;//设置 list 的列表数据源。\r\n\t\t*list.pos(100,100);//设置 list 的位置。\r\n\t\t*list.selectEnable=true;//设置 list 可选。\r\n\t\t*list.selectHandler=new Handler(this,this.onSelect);//设置 list 改变选择项执行的处理器。\r\n\t\t*Laya.stage.addChild(list);//将 list 添加到显示列表。\r\n\t\t*}\r\n\t*private onSelect(index:number):void {\r\n\t\t*console.log(\"当前选择的项目索引： index= \",index);\r\n\t\t*}\r\n\t*}\r\n*import Box=laya.ui.Box;\r\n*import Label=laya.ui.Label;\r\n*class Item extends Box {\r\n\t*constructor(){\r\n\t\t*this.graphics.drawRect(0,0,100,20,null,\"#ff0000\");\r\n\t\t*var label:Label=new Label();\r\n\t\t*label.text=\"100000\";\r\n\t\t*label.name=\"label\";//设置 label 的name属性值。\r\n\t\t*label.size(100,20);\r\n\t\t*this.addChild(label);\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.List extends laya.ui.Box\r\nvar List=(function(_super){\r\n\tfunction List(){\r\n\t\t/**改变 <code>List</code> 的选择项时执行的处理器，(默认返回参数： 项索引（index:int）)。*/\r\n\t\tthis.selectHandler=null;\r\n\t\t/**单元格渲染处理器(默认返回参数cell:Box,index:int)。*/\r\n\t\tthis.renderHandler=null;\r\n\t\t/**单元格鼠标事件处理器(默认返回参数e:Event,index:int)。*/\r\n\t\tthis.mouseHandler=null;\r\n\t\t/**指定是否可以选择，若值为true则可以选择，否则不可以选择。 @default false*/\r\n\t\tthis.selectEnable=false;\r\n\t\t/**最大分页数。*/\r\n\t\tthis.totalPage=0;\r\n\t\t/**@private */\r\n\t\tthis._content=null;\r\n\t\t/**@private */\r\n\t\tthis._scrollBar=null;\r\n\t\t/**@private */\r\n\t\tthis._itemRender=null;\r\n\t\t/**@private */\r\n\t\tthis._repeatX=0;\r\n\t\t/**@private */\r\n\t\tthis._repeatY=0;\r\n\t\t/**@private */\r\n\t\tthis._repeatX2=0;\r\n\t\t/**@private */\r\n\t\tthis._repeatY2=0;\r\n\t\t/**@private */\r\n\t\tthis._spaceX=0;\r\n\t\t/**@private */\r\n\t\tthis._spaceY=0;\r\n\t\t/**@private */\r\n\t\tthis._array=null;\r\n\t\t/**@private */\r\n\t\tthis._startIndex=0;\r\n\t\t/**@private */\r\n\t\tthis._selectedIndex=-1;\r\n\t\t/**@private */\r\n\t\tthis._page=0;\r\n\t\t/**@private */\r\n\t\tthis._isVertical=true;\r\n\t\t/**@private */\r\n\t\tthis._cellSize=20;\r\n\t\t/**@private */\r\n\t\tthis._cellOffset=0;\r\n\t\t/**@private */\r\n\t\tthis._isMoved=false;\r\n\t\t/**是否缓存内容，如果数据源较少，并且list内无动画，设置此属性为true能大大提高性能 */\r\n\t\tthis.cacheContent=false;\r\n\t\t/**@private */\r\n\t\tthis._createdLine=0;\r\n\t\t/**@private */\r\n\t\tthis._cellChanged=false;\r\n\t\tList.__super.call(this);\r\n\t\tthis._cells=[];\r\n\t\tthis._offset=new Point();\r\n\t}\r\n\r\n\t__class(List,'laya.ui.List',_super);\r\n\tvar __proto=List.prototype;\r\n\tLaya.imps(__proto,{\"laya.ui.IRender\":true,\"laya.ui.IItem\":true})\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tthis._content && this._content.destroy(destroyChild);\r\n\t\tthis._scrollBar && this._scrollBar.destroy(destroyChild);\r\n\t\tlaya.ui.Component.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._content=null;\r\n\t\tthis._scrollBar=null;\r\n\t\tthis._itemRender=null;\r\n\t\tthis._cells=null;\r\n\t\tthis._array=null;\r\n\t\tthis.selectHandler=this.renderHandler=this.mouseHandler=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.addChild(this._content=new Box());\r\n\t}\r\n\r\n\t__proto.onScrollStart=function(){\r\n\t\tthis._$P.cacheAs || (this._$P.cacheAs=Laya.superGet(Box,this,'cacheAs'));\r\n\t\tLaya.superSet(Box,this,'cacheAs',\"none\");\r\n\t\tthis._scrollBar.once(/*laya.events.Event.END*/\"end\",this,this.onScrollEnd);\r\n\t}\r\n\r\n\t__proto.onScrollEnd=function(){\r\n\t\tLaya.superSet(Box,this,'cacheAs',this._$P.cacheAs);\r\n\t}\r\n\r\n\t__proto._removePreScrollBar=function(){\r\n\t\tvar preNode=this.removeChildByName(\"scrollBar\");\r\n\t\tif (preNode)preNode.destroy(true);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*更改单元格的信息。\r\n\t*@internal 在此销毁、创建单元格，并设置单元格的位置等属性。相当于此列表内容发送改变时调用此函数。\r\n\t*/\r\n\t__proto.changeCells=function(){\r\n\t\tthis._cellChanged=false;\r\n\t\tif (this._itemRender){\r\n\t\t\tthis.scrollBar=this.getChildByName(\"scrollBar\");\r\n\t\t\tvar cell=this._getOneCell();\r\n\t\t\tvar cellWidth=(cell.width+this._spaceX)|| 1;\r\n\t\t\tvar cellHeight=(cell.height+this._spaceY)|| 1;\r\n\t\t\tif (this._width > 0)this._repeatX2=this._isVertical ? Math.round(this._width / cellWidth):Math.ceil(this._width / cellWidth);\r\n\t\t\tif (this._height > 0)this._repeatY2=this._isVertical ? Math.ceil(this._height / cellHeight):Math.round(this._height / cellHeight);\r\n\t\t\tvar listWidth=this._width ? this._width :(cellWidth *this.repeatX-this._spaceX);\r\n\t\t\tvar listHeight=this._height ? this._height :(cellHeight *this.repeatY-this._spaceY);\r\n\t\t\tthis._cellSize=this._isVertical ? cellHeight :cellWidth;\r\n\t\t\tthis._cellOffset=this._isVertical ? (cellHeight *Math.max(this._repeatY2,this._repeatY)-listHeight-this._spaceY):(cellWidth *Math.max(this._repeatX2,this._repeatX)-listWidth-this._spaceX);\r\n\t\t\tif (this._isVertical && this._scrollBar)this._scrollBar.height=listHeight;\r\n\t\t\telse if (!this._isVertical && this._scrollBar)this._scrollBar.width=listWidth;\r\n\t\t\tthis.setContentSize(listWidth,listHeight);\r\n\t\t\tvar numX=this._isVertical ? this.repeatX :this.repeatY;\r\n\t\t\tvar numY=(this._isVertical ? this.repeatY :this.repeatX)+(this._scrollBar ? 1 :0);\r\n\t\t\tthis._createItems(0,numX,numY);\r\n\t\t\tthis._createdLine=numY;\r\n\t\t\tif (this._array){\r\n\t\t\t\tthis.array=this._array;\r\n\t\t\t\tthis.runCallLater(this.renderItems);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._getOneCell=function(){\r\n\t\tif (this._cells.length===0){\r\n\t\t\tvar item=this.createItem();\r\n\t\t\tthis._offset.setTo(item.x,item.y);\r\n\t\t\tif (this.cacheContent)return item;\r\n\t\t\tthis._cells.push(item);\r\n\t\t}\r\n\t\treturn this._cells[0];\r\n\t}\r\n\r\n\t__proto._createItems=function(startY,numX,numY){\r\n\t\tvar box=this._content;\r\n\t\tvar cell=this._getOneCell();\r\n\t\tvar cellWidth=cell.width+this._spaceX;\r\n\t\tvar cellHeight=cell.height+this._spaceY;\r\n\t\tif (this.cacheContent){\r\n\t\t\tvar cacheBox=new Box();\r\n\t\t\tcacheBox.cacheAsBitmap=true;\r\n\t\t\tcacheBox.pos((this._isVertical ? 0 :startY)*cellWidth,(this._isVertical ? startY :0)*cellHeight);\r\n\t\t\tthis._content.addChild(cacheBox);\r\n\t\t\tthis._content.optimizeScrollRect=true;\r\n\t\t\tbox=cacheBox;\r\n\t\t\t}else {\r\n\t\t\tvar arr=[];\r\n\t\t\tfor (var i=this._cells.length-1;i >-1;i--){\r\n\t\t\t\tvar item=this._cells[i];\r\n\t\t\t\titem.removeSelf();\r\n\t\t\t\tarr.push(item);\r\n\t\t\t}\r\n\t\t\tthis._cells.length=0;\r\n\t\t}\r\n\t\tfor (var k=startY;k < numY;k++){\r\n\t\t\tfor (var l=0;l < numX;l++){\r\n\t\t\t\tif (arr && arr.length){\r\n\t\t\t\t\tcell=arr.pop();\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tcell=this.createItem();\r\n\t\t\t\t}\r\n\t\t\t\tcell.x=(this._isVertical ? l :k)*cellWidth-box.x;\r\n\t\t\t\tcell.y=(this._isVertical ? k :l)*cellHeight-box.y;\r\n\t\t\t\tcell.name=\"item\"+(k *numX+l);\r\n\t\t\t\tbox.addChild(cell);\r\n\t\t\t\tthis.addCell(cell);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.createItem=function(){\r\n\t\tvar arr=[];\r\n\t\tif ((typeof this._itemRender=='function')){\r\n\t\t\tvar box=new this._itemRender();\r\n\t\t\t}else {\r\n\t\t\tbox=View.createComp(this._itemRender,null,null,arr)\r\n\t\t}\r\n\t\tif (arr.length==0 && box._watchMap){\r\n\t\t\tvar watchMap=box._watchMap;\r\n\t\t\tfor (var name in watchMap){\r\n\t\t\t\tvar a=watchMap[name];\r\n\t\t\t\tfor (var i=0;i < a.length;i++){\r\n\t\t\t\t\tvar watcher=a[i];\r\n\t\t\t\t\tarr.push(watcher.comp,watcher.prop,watcher.value)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (arr.length)box[\"_$bindData\"]=arr;\r\n\t\treturn box;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*添加单元格。\r\n\t*@param cell 需要添加的单元格对象。\r\n\t*/\r\n\t__proto.addCell=function(cell){\r\n\t\tcell.on(/*laya.events.Event.CLICK*/\"click\",this,this.onCellMouse);\r\n\t\tcell.on(/*laya.events.Event.RIGHT_CLICK*/\"rightclick\",this,this.onCellMouse);\r\n\t\tcell.on(/*laya.events.Event.MOUSE_OVER*/\"mouseover\",this,this.onCellMouse);\r\n\t\tcell.on(/*laya.events.Event.MOUSE_OUT*/\"mouseout\",this,this.onCellMouse);\r\n\t\tcell.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this.onCellMouse);\r\n\t\tcell.on(/*laya.events.Event.MOUSE_UP*/\"mouseup\",this,this.onCellMouse);\r\n\t\tthis._cells.push(cell);\r\n\t}\r\n\r\n\t/**\r\n\t*初始化单元格信息。\r\n\t*/\r\n\t__proto.initItems=function(){\r\n\t\tif (!this._itemRender && this.getChildByName(\"item0\")!=null){\r\n\t\t\tthis.repeatX=1;\r\n\t\t\tvar count=0;\r\n\t\t\tcount=0;\r\n\t\t\tfor (var i=0;i < 10000;i++){\r\n\t\t\t\tvar cell=this.getChildByName(\"item\"+i);\r\n\t\t\t\tif (cell){\r\n\t\t\t\t\tthis.addCell(cell);\r\n\t\t\t\t\tcount++;\r\n\t\t\t\t\tcontinue ;\r\n\t\t\t\t}\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\t\tthis.repeatY=count;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*设置可视区域大小。\r\n\t*<p>以（0，0，width参数，height参数）组成的矩形区域为可视区域。</p>\r\n\t*@param width 可视区域宽度。\r\n\t*@param height 可视区域高度。\r\n\t*/\r\n\t__proto.setContentSize=function(width,height){\r\n\t\tthis._content.width=width;\r\n\t\tthis._content.height=height;\r\n\t\tif (this._scrollBar || this._offset.x !=0 || this._offset.y !=0){\r\n\t\t\tthis._content.scrollRect || (this._content.scrollRect=new Rectangle());\r\n\t\t\tthis._content.scrollRect.setTo(-this._offset.x,-this._offset.y,width,height);\r\n\t\t\tthis._content.scrollRect=this._content.scrollRect;\r\n\t\t}\r\n\t\tthis.event(/*laya.events.Event.RESIZE*/\"resize\");\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*单元格的鼠标事件侦听处理函数。\r\n\t*/\r\n\t__proto.onCellMouse=function(e){\r\n\t\tif (e.type===/*laya.events.Event.MOUSE_DOWN*/\"mousedown\")this._isMoved=false;\r\n\t\tvar cell=e.currentTarget;\r\n\t\tvar index=this._startIndex+this._cells.indexOf(cell);\r\n\t\tif (index < 0)return;\r\n\t\tif (e.type===/*laya.events.Event.CLICK*/\"click\" || e.type===/*laya.events.Event.RIGHT_CLICK*/\"rightclick\"){\r\n\t\t\tif (this.selectEnable && !this._isMoved)this.selectedIndex=index;\r\n\t\t\telse this.changeCellState(cell,true,0);\r\n\t\t\t}else if ((e.type===/*laya.events.Event.MOUSE_OVER*/\"mouseover\" || e.type===/*laya.events.Event.MOUSE_OUT*/\"mouseout\")&& this._selectedIndex!==index){\r\n\t\t\tthis.changeCellState(cell,e.type===/*laya.events.Event.MOUSE_OVER*/\"mouseover\",0);\r\n\t\t}\r\n\t\tthis.mouseHandler && this.mouseHandler.runWith([e,index]);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*改变单元格的可视状态。\r\n\t*@param cell 单元格对象。\r\n\t*@param visable 是否显示。\r\n\t*@param index 单元格的属性 <code>index</code> 值。\r\n\t*/\r\n\t__proto.changeCellState=function(cell,visable,index){\r\n\t\tvar selectBox=cell.getChildByName(\"selectBox\");\r\n\t\tif (selectBox){\r\n\t\t\tthis.selectEnable=true;\r\n\t\t\tselectBox.visible=visable;\r\n\t\t\tselectBox.index=index;\r\n\t\t}\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.changeSize=function(){\r\n\t\tlaya.ui.Component.prototype.changeSize.call(this);\r\n\t\tthis.setContentSize(this.width,this.height);\r\n\t\tif (this._scrollBar)this.callLater(this.onScrollBarChange);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*滚动条的 <code>Event.CHANGE</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onScrollBarChange=function(e){\r\n\t\tthis.runCallLater(this.changeCells);\r\n\t\tvar scrollValue=this._scrollBar.value;\r\n\t\tvar lineX=(this._isVertical ? this.repeatX :this.repeatY);\r\n\t\tvar lineY=(this._isVertical ? this.repeatY :this.repeatX);\r\n\t\tvar scrollLine=Math.floor(scrollValue / this._cellSize);\r\n\t\tif (!this.cacheContent){\r\n\t\t\tvar index=scrollLine *lineX;\r\n\t\t\tvar num=0;\r\n\t\t\tif (index > this._startIndex){\r\n\t\t\t\tnum=index-this._startIndex;\r\n\t\t\t\tvar down=true;\r\n\t\t\t\tvar toIndex=this._startIndex+lineX *(lineY+1);\r\n\t\t\t\tthis._isMoved=true;\r\n\t\t\t\t}else if (index < this._startIndex){\r\n\t\t\t\tnum=this._startIndex-index;\r\n\t\t\t\tdown=false;\r\n\t\t\t\ttoIndex=this._startIndex-1;\r\n\t\t\t\tthis._isMoved=true;\r\n\t\t\t}\r\n\t\t\tfor (var i=0;i < num;i++){\r\n\t\t\t\tif (down){\r\n\t\t\t\t\tvar cell=this._cells.shift();\r\n\t\t\t\t\tthis._cells[this._cells.length]=cell;\r\n\t\t\t\t\tvar cellIndex=toIndex+i;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tcell=this._cells.pop();\r\n\t\t\t\t\tthis._cells.unshift(cell);\r\n\t\t\t\t\tcellIndex=toIndex-i;\r\n\t\t\t\t};\r\n\t\t\t\tvar pos=Math.floor(cellIndex / lineX)*this._cellSize;\r\n\t\t\t\tthis._isVertical ? cell.y=pos :cell.x=pos;\r\n\t\t\t\tthis.renderItem(cell,cellIndex);\r\n\t\t\t}\r\n\t\t\tthis._startIndex=index;\r\n\t\t\tthis.changeSelectStatus();\r\n\t\t\t}else {\r\n\t\t\tnum=(lineY+1);\r\n\t\t\tif (this._createdLine-scrollLine < num){\r\n\t\t\t\tthis._createItems(this._createdLine,lineX,this._createdLine+num);\r\n\t\t\t\tthis.renderItems(this._createdLine *lineX,0);\r\n\t\t\t\tthis._createdLine+=num;\r\n\t\t\t}\r\n\t\t};\r\n\t\tvar r=this._content.scrollRect;\r\n\t\tif (this._isVertical){\r\n\t\t\tr.y=scrollValue-this._offset.y;\r\n\t\t\tr.x=-this._offset.x;\r\n\t\t\t}else {\r\n\t\t\tr.y=-this._offset.y;\r\n\t\t\tr.x=scrollValue-this._offset.x;\r\n\t\t}\r\n\t\tthis._content.scrollRect=r;\r\n\t}\r\n\r\n\t__proto.posCell=function(cell,cellIndex){\r\n\t\tif (!this._scrollBar)return;\r\n\t\tvar lineX=(this._isVertical ? this.repeatX :this.repeatY);\r\n\t\tvar lineY=(this._isVertical ? this.repeatY :this.repeatX);\r\n\t\tvar pos=Math.floor(cellIndex / lineX)*this._cellSize;\r\n\t\tthis._isVertical ? cell.y=pos :cell.x=pos;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*改变单元格的选择状态。\r\n\t*/\r\n\t__proto.changeSelectStatus=function(){\r\n\t\tfor (var i=0,n=this._cells.length;i < n;i++){\r\n\t\t\tthis.changeCellState(this._cells[i],this._selectedIndex===this._startIndex+i,1);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*渲染单元格列表。\r\n\t*/\r\n\t__proto.renderItems=function(from,to){\r\n\t\t(from===void 0)&& (from=0);\r\n\t\t(to===void 0)&& (to=0);\r\n\t\tfor (var i=from,n=to || this._cells.length;i < n;i++){\r\n\t\t\tthis.renderItem(this._cells[i],this._startIndex+i);\r\n\t\t}\r\n\t\tthis.changeSelectStatus();\r\n\t}\r\n\r\n\t/**\r\n\t*渲染一个单元格。\r\n\t*@param cell 需要渲染的单元格对象。\r\n\t*@param index 单元格索引。\r\n\t*/\r\n\t__proto.renderItem=function(cell,index){\r\n\t\tif (this._array && index >=0 && index < this._array.length){\r\n\t\t\tcell.visible=true;\r\n\t\t\tif (cell._$bindData){\r\n\t\t\t\tcell._dataSource=this._array[index];\r\n\t\t\t\tthis._bindData(cell,this._array[index]);\r\n\t\t\t}else cell.dataSource=this._array[index];\r\n\t\t\tif (!this.cacheContent){\r\n\t\t\t\tthis.posCell(cell,index);\r\n\t\t\t}\r\n\t\t\tif (this.hasListener(/*laya.events.Event.RENDER*/\"render\"))this.event(/*laya.events.Event.RENDER*/\"render\",[cell,index]);\r\n\t\t\tif (this.renderHandler)this.renderHandler.runWith([cell,index]);\r\n\t\t\t}else {\r\n\t\t\tcell.visible=false;\r\n\t\t\tcell.dataSource=null;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto._bindData=function(cell,data){\r\n\t\tvar arr=cell._$bindData;\r\n\t\tfor (var i=0,n=arr.length;i < n;i++){\r\n\t\t\tvar ele=arr[i++];\r\n\t\t\tvar prop=arr[i++];\r\n\t\t\tvar value=arr[i];\r\n\t\t\tvar fun=UIUtils.getBindFun(value);\r\n\t\t\tele[prop]=fun.call(this,data);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*刷新列表数据源。\r\n\t*/\r\n\t__proto.refresh=function(){\r\n\t\tthis.array=this._array;\r\n\t}\r\n\r\n\t/**\r\n\t*获取单元格数据源。\r\n\t*@param index 单元格索引。\r\n\t*/\r\n\t__proto.getItem=function(index){\r\n\t\tif (index >-1 && index < this._array.length){\r\n\t\t\treturn this._array[index];\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*修改单元格数据源。\r\n\t*@param index 单元格索引。\r\n\t*@param source 单元格数据源。\r\n\t*/\r\n\t__proto.changeItem=function(index,source){\r\n\t\tif (index >-1 && index < this._array.length){\r\n\t\t\tthis._array[index]=source;\r\n\t\t\tif (index >=this._startIndex && index < this._startIndex+this._cells.length){\r\n\t\t\t\tthis.renderItem(this.getCell(index),index);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*设置单元格数据源。\r\n\t*@param index 单元格索引。\r\n\t*@param source 单元格数据源。\r\n\t*/\r\n\t__proto.setItem=function(index,source){\r\n\t\tthis.changeItem(index,source);\r\n\t}\r\n\r\n\t/**\r\n\t*添加单元格数据源。\r\n\t*@param souce 数据源。\r\n\t*/\r\n\t__proto.addItem=function(souce){\r\n\t\tthis._array.push(souce);\r\n\t\tthis.array=this._array;\r\n\t}\r\n\r\n\t/**\r\n\t*添加单元格数据源到对应的数据索引处。\r\n\t*@param souce 单元格数据源。\r\n\t*@param index 索引。\r\n\t*/\r\n\t__proto.addItemAt=function(souce,index){\r\n\t\tthis._array.splice(index,0,souce);\r\n\t\tthis.array=this._array;\r\n\t}\r\n\r\n\t/**\r\n\t*通过数据源索引删除单元格数据源。\r\n\t*@param index 需要删除的数据源索引值。\r\n\t*/\r\n\t__proto.deleteItem=function(index){\r\n\t\tthis._array.splice(index,1);\r\n\t\tthis.array=this._array;\r\n\t}\r\n\r\n\t/**\r\n\t*通过可视单元格索引，获取单元格。\r\n\t*@param index 可视单元格索引。\r\n\t*@return 单元格对象。\r\n\t*/\r\n\t__proto.getCell=function(index){\r\n\t\tthis.runCallLater(this.changeCells);\r\n\t\tif (index >-1 && this._cells){\r\n\t\t\treturn this._cells[(index-this._startIndex)% this._cells.length];\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*<p>滚动列表，以设定的数据索引对应的单元格为当前可视列表的第一项。</p>\r\n\t*@param index 单元格在数据列表中的索引。\r\n\t*/\r\n\t__proto.scrollTo=function(index){\r\n\t\tif (this._scrollBar){\r\n\t\t\tvar numX=this._isVertical ? this.repeatX :this.repeatY;\r\n\t\t\tthis._scrollBar.value=Math.floor(index / numX)*this._cellSize;\r\n\t\t\t}else {\r\n\t\t\tthis.startIndex=index;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*<p>缓动滚动列表，以设定的数据索引对应的单元格为当前可视列表的第一项。</p>\r\n\t*@param index 单元格在数据列表中的索引。\r\n\t*@param time 缓动时间。\r\n\t*@param complete 缓动结束回掉\r\n\t*/\r\n\t__proto.tweenTo=function(index,time,complete){\r\n\t\t(time===void 0)&& (time=200);\r\n\t\tif (this._scrollBar){\r\n\t\t\tvar numX=this._isVertical ? this.repeatX :this.repeatY;\r\n\t\t\tTween.to(this._scrollBar,{value:Math.floor(index / numX)*this._cellSize},time,null,complete,0,true);\r\n\t\t\t}else {\r\n\t\t\tthis.startIndex=index;\r\n\t\t\tif (complete)complete.run();\r\n\t\t}\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setCellChanged=function(){\r\n\t\tif (!this._cellChanged){\r\n\t\t\tthis._cellChanged=true;\r\n\t\t\tthis.callLater(this.changeCells);\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.commitMeasure=function(){\r\n\t\tthis.runCallLater(this.changeCells);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'cacheAs',_super.prototype._$get_cacheAs,function(value){\r\n\t\tLaya.superSet(Box,this,'cacheAs',value);\r\n\t\tif (this._scrollBar){\r\n\t\t\tthis._$P.cacheAs=null;\r\n\t\t\tif (value!==\"none\")this._scrollBar.on(/*laya.events.Event.START*/\"start\",this,this.onScrollStart);\r\n\t\t\telse this._scrollBar.off(/*laya.events.Event.START*/\"start\",this,this.onScrollStart);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*获取对 <code>List</code> 组件所包含的内容容器 <code>Box</code> 组件的引用。\r\n\t*/\r\n\t__getset(0,__proto,'content',function(){\r\n\t\treturn this._content;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tif (value !=this._height){\r\n\t\t\tLaya.superSet(Box,this,'height',value);\r\n\t\t\tthis._setCellChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*单元格渲染器。\r\n\t*<p><b>取值：</b>\r\n\t*<ol>\r\n\t*<li>单元格类对象。</li>\r\n\t*<li> UI 的 JSON 描述。</li>\r\n\t*</ol></p>\r\n\t*/\r\n\t__getset(0,__proto,'itemRender',function(){\r\n\t\treturn this._itemRender;\r\n\t\t},function(value){\r\n\t\tif (this._itemRender !=value){\r\n\t\t\tthis._itemRender=value;\r\n\t\t\tfor (var i=this._cells.length-1;i >-1;i--){\r\n\t\t\t\tthis._cells[i].destroy();\r\n\t\t\t}\r\n\t\t\tthis._cells.length=0;\r\n\t\t\tthis._setCellChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*垂直方向滚动条皮肤。\r\n\t*/\r\n\t__getset(0,__proto,'vScrollBarSkin',function(){\r\n\t\treturn this._scrollBar ? this._scrollBar.skin :null;\r\n\t\t},function(value){\r\n\t\tthis._removePreScrollBar();\r\n\t\tvar scrollBar=new VScrollBar();\r\n\t\tscrollBar.name=\"scrollBar\";\r\n\t\tscrollBar.right=0;\r\n\t\tif (value && value !=\" \")\r\n\t\t\tscrollBar.skin=value;\r\n\t\tthis.scrollBar=scrollBar;\r\n\t\tthis.addChild(scrollBar);\r\n\t\tthis._setCellChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*列表的当前页码。\r\n\t*/\r\n\t__getset(0,__proto,'page',function(){\r\n\t\treturn this._page;\r\n\t\t},function(value){\r\n\t\tthis._page=value\r\n\t\tif (this._array){\r\n\t\t\tthis._page=value > 0 ? value :0;\r\n\t\t\tthis._page=this._page < this.totalPage ? this._page :this.totalPage-1;\r\n\t\t\tthis.startIndex=this._page *this.repeatX *this.repeatY;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*水平方向滚动条皮肤。\r\n\t*/\r\n\t__getset(0,__proto,'hScrollBarSkin',function(){\r\n\t\treturn this._scrollBar ? this._scrollBar.skin :null;\r\n\t\t},function(value){\r\n\t\tthis._removePreScrollBar();\r\n\t\tvar scrollBar=new HScrollBar();\r\n\t\tscrollBar.name=\"scrollBar\";\r\n\t\tscrollBar.bottom=0;\r\n\t\tif (value && value !=\" \")\r\n\t\t\tscrollBar.skin=value;\r\n\t\tthis.scrollBar=scrollBar;\r\n\t\tthis.addChild(scrollBar);\r\n\t\tthis._setCellChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*水平方向显示的单元格数量。\r\n\t*/\r\n\t__getset(0,__proto,'repeatX',function(){\r\n\t\treturn this._repeatX > 0 ? this._repeatX :this._repeatX2 > 0 ? this._repeatX2 :1;\r\n\t\t},function(value){\r\n\t\tthis._repeatX=value;\r\n\t\tthis._setCellChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*获取对 <code>List</code> 组件所包含的滚动条 <code>ScrollBar</code> 组件的引用。\r\n\t*/\r\n\t__getset(0,__proto,'scrollBar',function(){\r\n\t\treturn this._scrollBar;\r\n\t\t},function(value){\r\n\t\tif (this._scrollBar !=value){\r\n\t\t\tthis._scrollBar=value;\r\n\t\t\tif (value){\r\n\t\t\t\tthis._isVertical=this._scrollBar.isVertical;\r\n\t\t\t\tthis.addChild(this._scrollBar);\r\n\t\t\t\tthis._scrollBar.on(/*laya.events.Event.CHANGE*/\"change\",this,this.onScrollBarChange);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tif (value !=this._width){\r\n\t\t\tLaya.superSet(Box,this,'width',value);\r\n\t\t\tthis._setCellChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*垂直方向显示的单元格数量。\r\n\t*/\r\n\t__getset(0,__proto,'repeatY',function(){\r\n\t\treturn this._repeatY > 0 ? this._repeatY :this._repeatY2 > 0 ? this._repeatY2 :1;\r\n\t\t},function(value){\r\n\t\tthis._repeatY=value;\r\n\t\tthis._setCellChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*水平方向显示的单元格之间的间距（以像素为单位）。\r\n\t*/\r\n\t__getset(0,__proto,'spaceX',function(){\r\n\t\treturn this._spaceX;\r\n\t\t},function(value){\r\n\t\tthis._spaceX=value;\r\n\t\tthis._setCellChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*垂直方向显示的单元格之间的间距（以像素为单位）。\r\n\t*/\r\n\t__getset(0,__proto,'spaceY',function(){\r\n\t\treturn this._spaceY;\r\n\t\t},function(value){\r\n\t\tthis._spaceY=value;\r\n\t\tthis._setCellChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*表示当前选择的项索引。selectedIndex值更改会引起list重新渲染\r\n\t*/\r\n\t__getset(0,__proto,'selectedIndex',function(){\r\n\t\treturn this._selectedIndex;\r\n\t\t},function(value){\r\n\t\tif (this._selectedIndex !=value){\r\n\t\t\tthis._selectedIndex=value;\r\n\t\t\tthis.changeSelectStatus();\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t\t\tthis.selectHandler && this.selectHandler.runWith(value);\r\n\t\t\tthis.startIndex=this._startIndex;\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*当前选中的单元格数据源。\r\n\t*/\r\n\t__getset(0,__proto,'selectedItem',function(){\r\n\t\treturn this._selectedIndex !=-1 ? this._array[this._selectedIndex] :null;\r\n\t\t},function(value){\r\n\t\tthis.selectedIndex=this._array.indexOf(value);\r\n\t});\r\n\r\n\t/**\r\n\t*列表的数据总个数。\r\n\t*/\r\n\t__getset(0,__proto,'length',function(){\r\n\t\treturn this._array ? this._array.length :0;\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置当前选择的单元格对象。\r\n\t*/\r\n\t__getset(0,__proto,'selection',function(){\r\n\t\treturn this.getCell(this._selectedIndex);\r\n\t\t},function(value){\r\n\t\tthis.selectedIndex=this._startIndex+this._cells.indexOf(value);\r\n\t});\r\n\r\n\t/**\r\n\t*当前显示的单元格列表的开始索引。\r\n\t*/\r\n\t__getset(0,__proto,'startIndex',function(){\r\n\t\treturn this._startIndex;\r\n\t\t},function(value){\r\n\t\tthis._startIndex=value > 0 ? value :0;\r\n\t\tthis.callLater(this.renderItems);\r\n\t});\r\n\r\n\t/**\r\n\t*列表数据源。\r\n\t*/\r\n\t__getset(0,__proto,'array',function(){\r\n\t\treturn this._array;\r\n\t\t},function(value){\r\n\t\tthis.runCallLater(this.changeCells);\r\n\t\tthis._array=value || [];\r\n\t\tvar length=this._array.length;\r\n\t\tthis.totalPage=Math.ceil(length / (this.repeatX *this.repeatY));\r\n\t\tthis._selectedIndex=this._selectedIndex < length ? this._selectedIndex :length-1;\r\n\t\tthis.startIndex=this._startIndex;\r\n\t\tif (this._scrollBar){\r\n\t\t\tthis._scrollBar.stopScroll();\r\n\t\t\tvar numX=this._isVertical ? this.repeatX :this.repeatY;\r\n\t\t\tvar numY=this._isVertical ? this.repeatY :this.repeatX;\r\n\t\t\tvar lineCount=Math.ceil(length / numX);\r\n\t\t\tvar total=this._cellOffset > 0 ? this.totalPage+1 :this.totalPage;\r\n\t\t\tif (total > 1){\r\n\t\t\t\tthis._scrollBar.scrollSize=this._cellSize;\r\n\t\t\t\tthis._scrollBar.thumbPercent=numY / lineCount;\r\n\t\t\t\tthis._scrollBar.setScroll(0,(lineCount-numY)*this._cellSize+this._cellOffset,this._scrollBar.value);\r\n\t\t\t\tthis._scrollBar.target=this._content;\r\n\t\t\t\t}else {\r\n\t\t\t\tthis._scrollBar.setScroll(0,0,0);\r\n\t\t\t\tthis._scrollBar.target=this._content;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif (((typeof value=='number')&& Math.floor(value)==value)|| (typeof value=='string'))this.selectedIndex=parseInt(value);\r\n\t\telse if ((value instanceof Array))this.array=value\r\n\t\telse Laya.superSet(Box,this,'dataSource',value);\r\n\t});\r\n\r\n\t/**\r\n\t*单元格集合。\r\n\t*/\r\n\t__getset(0,__proto,'cells',function(){\r\n\t\tthis.runCallLater(this.changeCells);\r\n\t\treturn this._cells;\r\n\t});\r\n\r\n\treturn List;\r\n})(Box)\r\n\r\n\r\n/**\r\n*使用 <code>HScrollBar</code> （水平 <code>ScrollBar</code> ）控件，可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。\r\n*@example <caption>以下示例代码，创建了一个 <code>HScrollBar</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.HScrollBar;\r\n\t*import laya.utils.Handler;\r\n\t*public class HScrollBar_Example\r\n\t*{\r\n\t\t*private var hScrollBar:HScrollBar;\r\n\t\t*public function HScrollBar_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load([\"resource/ui/hscroll.png\",\"resource/ui/hscroll$bar.png\",\"resource/ui/hscroll$down.png\",\"resource/ui/hscroll$up.png\"],Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*hScrollBar=new HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。\r\n\t\t\t*hScrollBar.skin=\"resource/ui/hscroll.png\";//设置 hScrollBar 的皮肤。\r\n\t\t\t*hScrollBar.x=100;//设置 hScrollBar 对象的属性 x 的值，用于控制 hScrollBar 对象的显示位置。\r\n\t\t\t*hScrollBar.y=100;//设置 hScrollBar 对象的属性 y 的值，用于控制 hScrollBar 对象的显示位置。\r\n\t\t\t*hScrollBar.changeHandler=new Handler(this,onChange);//设置 hScrollBar 的滚动变化处理器。\r\n\t\t\t*Laya.stage.addChild(hScrollBar);//将此 hScrollBar 对象添加到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onChange(value:Number):void\r\n\t\t*{\r\n\t\t\t*trace(\"滚动条的位置： value=\"+value);\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*var hScrollBar;\r\n*var res=[\"resource/ui/hscroll.png\",\"resource/ui/hscroll$bar.png\",\"resource/ui/hscroll$down.png\",\"resource/ui/hscroll$up.png\"];\r\n*Laya.loader.load(res,laya.utils.Handler.create(this,onLoadComplete));//加载资源。\r\n*function onLoadComplete(){\r\n\t*console.log(\"资源加载完成！\");\r\n\t*hScrollBar=new laya.ui.HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。\r\n\t*hScrollBar.skin=\"resource/ui/hscroll.png\";//设置 hScrollBar 的皮肤。\r\n\t*hScrollBar.x=100;//设置 hScrollBar 对象的属性 x 的值，用于控制 hScrollBar 对象的显示位置。\r\n\t*hScrollBar.y=100;//设置 hScrollBar 对象的属性 y 的值，用于控制 hScrollBar 对象的显示位置。\r\n\t*hScrollBar.changeHandler=new laya.utils.Handler(this,onChange);//设置 hScrollBar 的滚动变化处理器。\r\n\t*Laya.stage.addChild(hScrollBar);//将此 hScrollBar 对象添加到显示列表。\r\n\t*}\r\n*function onChange(value)\r\n*{\r\n\t*console.log(\"滚动条的位置： value=\"+value);\r\n\t*}\r\n*@example\r\n*import HScrollBar=laya.ui.HScrollBar;\r\n*import Handler=laya.utils.Handler;\r\n*class HScrollBar_Example {\r\n\t*private hScrollBar:HScrollBar;\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load([\"resource/ui/hscroll.png\",\"resource/ui/hscroll$bar.png\",\"resource/ui/hscroll$down.png\",\"resource/ui/hscroll$up.png\"],Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*this.hScrollBar=new HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。\r\n\t\t*this.hScrollBar.skin=\"resource/ui/hscroll.png\";//设置 hScrollBar 的皮肤。\r\n\t\t*this.hScrollBar.x=100;//设置 hScrollBar 对象的属性 x 的值，用于控制 hScrollBar 对象的显示位置。\r\n\t\t*this.hScrollBar.y=100;//设置 hScrollBar 对象的属性 y 的值，用于控制 hScrollBar 对象的显示位置。\r\n\t\t*this.hScrollBar.changeHandler=new Handler(this,this.onChange);//设置 hScrollBar 的滚动变化处理器。\r\n\t\t*Laya.stage.addChild(this.hScrollBar);//将此 hScrollBar 对象添加到显示列表。\r\n\t\t*}\r\n\t*private onChange(value:number):void {\r\n\t\t*console.log(\"滚动条的位置： value=\"+value);\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.HScrollBar extends laya.ui.ScrollBar\r\nvar HScrollBar=(function(_super){\r\n\tfunction HScrollBar(){\r\n\t\tHScrollBar.__super.call(this);;\r\n\t}\r\n\r\n\t__class(HScrollBar,'laya.ui.HScrollBar',_super);\r\n\tvar __proto=HScrollBar.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.initialize=function(){\r\n\t\t_super.prototype.initialize.call(this);\r\n\t\tthis.slider.isVertical=false;\r\n\t}\r\n\r\n\treturn HScrollBar;\r\n})(ScrollBar)\r\n\r\n\r\n/**\r\n*<code>Panel</code> 是一个面板容器类。\r\n*/\r\n//class laya.ui.Panel extends laya.ui.Box\r\nvar Panel=(function(_super){\r\n\tfunction Panel(){\r\n\t\t/**@private */\r\n\t\tthis._content=null;\r\n\t\t/**@private */\r\n\t\tthis._vScrollBar=null;\r\n\t\t/**@private */\r\n\t\tthis._hScrollBar=null;\r\n\t\t/**@private */\r\n\t\tthis._scrollChanged=false;\r\n\t\tPanel.__super.call(this);\r\n\t\tthis.width=this.height=100;\r\n\t}\r\n\r\n\t__class(Panel,'laya.ui.Panel',_super);\r\n\tvar __proto=Panel.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tlaya.ui.Component.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._content && this._content.destroy(destroyChild);\r\n\t\tthis._vScrollBar && this._vScrollBar.destroy(destroyChild);\r\n\t\tthis._hScrollBar && this._hScrollBar.destroy(destroyChild);\r\n\t\tthis._vScrollBar=null;\r\n\t\tthis._hScrollBar=null;\r\n\t\tthis._content=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.destroyChildren=function(){\r\n\t\tthis._content.destroyChildren();\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tlaya.display.Node.prototype.addChild.call(this,this._content=new Box());\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.addChild=function(child){\r\n\t\tchild.on(/*laya.events.Event.RESIZE*/\"resize\",this,this.onResize);\r\n\t\tthis._setScrollChanged();\r\n\t\treturn this._content.addChild(child);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*子对象的 <code>Event.RESIZE</code> 事件侦听处理函数。\r\n\t*/\r\n\t__proto.onResize=function(){\r\n\t\tthis._setScrollChanged();\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.addChildAt=function(child,index){\r\n\t\tchild.on(/*laya.events.Event.RESIZE*/\"resize\",this,this.onResize);\r\n\t\tthis._setScrollChanged();\r\n\t\treturn this._content.addChildAt(child,index);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.removeChild=function(child){\r\n\t\tchild.off(/*laya.events.Event.RESIZE*/\"resize\",this,this.onResize);\r\n\t\tthis._setScrollChanged();\r\n\t\treturn this._content.removeChild(child);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.removeChildAt=function(index){\r\n\t\tthis.getChildAt(index).off(/*laya.events.Event.RESIZE*/\"resize\",this,this.onResize);\r\n\t\tthis._setScrollChanged();\r\n\t\treturn this._content.removeChildAt(index);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.removeChildren=function(beginIndex,endIndex){\r\n\t\t(beginIndex===void 0)&& (beginIndex=0);\r\n\t\t(endIndex===void 0)&& (endIndex=0x7fffffff);\r\n\t\tfor (var i=this._content.numChildren-1;i >-1;i--){\r\n\t\t\tthis._content.removeChildAt(i);\r\n\t\t}\r\n\t\tthis._setScrollChanged();\r\n\t\treturn this;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.getChildAt=function(index){\r\n\t\treturn this._content.getChildAt(index);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.getChildByName=function(name){\r\n\t\treturn this._content.getChildByName(name);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.getChildIndex=function(child){\r\n\t\treturn this._content.getChildIndex(child);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto.changeScroll=function(){\r\n\t\tthis._scrollChanged=false;\r\n\t\tvar contentW=this.contentWidth || 1;\r\n\t\tvar contentH=this.contentHeight || 1;\r\n\t\tvar vscroll=this._vScrollBar;\r\n\t\tvar hscroll=this._hScrollBar;\r\n\t\tvar vShow=vscroll && contentH > this._height;\r\n\t\tvar hShow=hscroll && contentW > this._width;\r\n\t\tvar showWidth=vShow ? this._width-vscroll.width :this._width;\r\n\t\tvar showHeight=hShow ? this._height-hscroll.height :this._height;\r\n\t\tif (vscroll){\r\n\t\t\tvscroll.x=this._width-vscroll.width;\r\n\t\t\tvscroll.y=0;\r\n\t\t\tvscroll.height=this._height-(hShow ? hscroll.height :0);\r\n\t\t\tvscroll.scrollSize=Math.max(this._height *0.033,1);\r\n\t\t\tvscroll.thumbPercent=showHeight / contentH;\r\n\t\t\tvscroll.setScroll(0,contentH-showHeight,vscroll.value);\r\n\t\t}\r\n\t\tif (hscroll){\r\n\t\t\thscroll.x=0;\r\n\t\t\thscroll.y=this._height-hscroll.height;\r\n\t\t\thscroll.width=this._width-(vShow ? vscroll.width :0);\r\n\t\t\thscroll.scrollSize=Math.max(this._width *0.033,1);\r\n\t\t\thscroll.thumbPercent=showWidth / contentW;\r\n\t\t\thscroll.setScroll(0,contentW-showWidth,hscroll.value);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.changeSize=function(){\r\n\t\tlaya.ui.Component.prototype.changeSize.call(this);\r\n\t\tthis.setContentSize(this._width,this._height);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*设置内容的宽度、高度（以像素为单位）。\r\n\t*@param width 宽度。\r\n\t*@param height 高度。\r\n\t*/\r\n\t__proto.setContentSize=function(width,height){\r\n\t\tvar content=this._content;\r\n\t\tcontent.width=width;\r\n\t\tcontent.height=height;\r\n\t\tcontent.scrollRect || (content.scrollRect=new Rectangle());\r\n\t\tcontent.scrollRect.setTo(0,0,width,height);\r\n\t\tcontent.scrollRect=content.scrollRect;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*滚动条的<code><code>Event.MOUSE_DOWN</code>事件侦听处理函数。</code>事件侦听处理函数。\r\n\t*@param scrollBar 滚动条对象。\r\n\t*@param e Event 对象。\r\n\t*/\r\n\t__proto.onScrollBarChange=function(scrollBar){\r\n\t\tvar rect=this._content.scrollRect;\r\n\t\tif (rect){\r\n\t\t\tvar start=Math.round(scrollBar.value);\r\n\t\t\tscrollBar.isVertical ? rect.y=start :rect.x=start;\r\n\t\t\tthis._content.scrollRect=rect;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*<p>滚动内容容器至设定的垂直、水平方向滚动条位置。</p>\r\n\t*@param x 水平方向滚动条属性value值。滚动条位置数字。\r\n\t*@param y 垂直方向滚动条属性value值。滚动条位置数字。\r\n\t*/\r\n\t__proto.scrollTo=function(x,y){\r\n\t\t(x===void 0)&& (x=0);\r\n\t\t(y===void 0)&& (y=0);\r\n\t\tif (this.vScrollBar)this.vScrollBar.value=y;\r\n\t\tif (this.hScrollBar)this.hScrollBar.value=x;\r\n\t}\r\n\r\n\t/**\r\n\t*刷新滚动内容。\r\n\t*/\r\n\t__proto.refresh=function(){\r\n\t\tthis.changeScroll();\r\n\t}\r\n\r\n\t__proto.onScrollStart=function(){\r\n\t\tthis._$P.cacheAs || (this._$P.cacheAs=Laya.superGet(Box,this,'cacheAs'));\r\n\t\tLaya.superSet(Box,this,'cacheAs',\"none\");\r\n\t\tthis._hScrollBar && this._hScrollBar.once(/*laya.events.Event.END*/\"end\",this,this.onScrollEnd);\r\n\t\tthis._vScrollBar && this._vScrollBar.once(/*laya.events.Event.END*/\"end\",this,this.onScrollEnd);\r\n\t}\r\n\r\n\t__proto.onScrollEnd=function(){\r\n\t\tLaya.superSet(Box,this,'cacheAs',this._$P.cacheAs);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setScrollChanged=function(){\r\n\t\tif (!this._scrollChanged){\r\n\t\t\tthis._scrollChanged=true;\r\n\t\t\tthis.callLater(this.changeScroll);\r\n\t\t}\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'numChildren',function(){\r\n\t\treturn this._content.numChildren;\r\n\t});\r\n\r\n\t/**\r\n\t*水平方向滚动条皮肤。\r\n\t*/\r\n\t__getset(0,__proto,'hScrollBarSkin',function(){\r\n\t\treturn this._hScrollBar ? this._hScrollBar.skin :null;\r\n\t\t},function(value){\r\n\t\tif (this._hScrollBar==null){\r\n\t\t\tlaya.display.Node.prototype.addChild.call(this,this._hScrollBar=new HScrollBar());\r\n\t\t\tthis._hScrollBar.on(/*laya.events.Event.CHANGE*/\"change\",this,this.onScrollBarChange,[this._hScrollBar]);\r\n\t\t\tthis._hScrollBar.target=this._content;\r\n\t\t\tthis._setScrollChanged();\r\n\t\t}\r\n\t\tthis._hScrollBar.skin=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取内容宽度（以像素为单位）。\r\n\t*/\r\n\t__getset(0,__proto,'contentWidth',function(){\r\n\t\tvar max=0;\r\n\t\tfor (var i=this._content.numChildren-1;i >-1;i--){\r\n\t\t\tvar comp=this._content.getChildAt(i);\r\n\t\t\tmax=Math.max(comp.x+comp.width *comp.scaleX,max);\r\n\t\t}\r\n\t\treturn max;\r\n\t});\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取内容高度（以像素为单位）。\r\n\t*/\r\n\t__getset(0,__proto,'contentHeight',function(){\r\n\t\tvar max=0;\r\n\t\tfor (var i=this._content.numChildren-1;i >-1;i--){\r\n\t\t\tvar comp=this._content.getChildAt(i);\r\n\t\t\tmax=Math.max(comp.y+comp.height *comp.scaleY,max);\r\n\t\t}\r\n\t\treturn max;\r\n\t});\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tLaya.superSet(Box,this,'width',value);\r\n\t\tthis._setScrollChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*水平方向滚动条对象。\r\n\t*/\r\n\t__getset(0,__proto,'hScrollBar',function(){\r\n\t\treturn this._hScrollBar;\r\n\t});\r\n\r\n\t/**\r\n\t*获取内容容器对象。\r\n\t*/\r\n\t__getset(0,__proto,'content',function(){\r\n\t\treturn this._content;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tLaya.superSet(Box,this,'height',value);\r\n\t\tthis._setScrollChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*垂直方向滚动条皮肤。\r\n\t*/\r\n\t__getset(0,__proto,'vScrollBarSkin',function(){\r\n\t\treturn this._vScrollBar ? this._vScrollBar.skin :null;\r\n\t\t},function(value){\r\n\t\tif (this._vScrollBar==null){\r\n\t\t\tlaya.display.Node.prototype.addChild.call(this,this._vScrollBar=new VScrollBar());\r\n\t\t\tthis._vScrollBar.on(/*laya.events.Event.CHANGE*/\"change\",this,this.onScrollBarChange,[this._vScrollBar]);\r\n\t\t\tthis._vScrollBar.target=this._content;\r\n\t\t\tthis._setScrollChanged();\r\n\t\t}\r\n\t\tthis._vScrollBar.skin=value;\r\n\t});\r\n\r\n\t/**\r\n\t*垂直方向滚动条对象。\r\n\t*/\r\n\t__getset(0,__proto,'vScrollBar',function(){\r\n\t\treturn this._vScrollBar;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'cacheAs',_super.prototype._$get_cacheAs,function(value){\r\n\t\tLaya.superSet(Box,this,'cacheAs',value);\r\n\t\tthis._$P.cacheAs=null;\r\n\t\tif (value!==\"none\"){\r\n\t\t\tthis._hScrollBar && this._hScrollBar.on(/*laya.events.Event.START*/\"start\",this,this.onScrollStart);\r\n\t\t\tthis._vScrollBar && this._vScrollBar.on(/*laya.events.Event.START*/\"start\",this,this.onScrollStart);\r\n\t\t\t}else {\r\n\t\t\tthis._hScrollBar && this._hScrollBar.off(/*laya.events.Event.START*/\"start\",this,this.onScrollStart);\r\n\t\t\tthis._vScrollBar && this._vScrollBar.off(/*laya.events.Event.START*/\"start\",this,this.onScrollStart);\r\n\t\t}\r\n\t});\r\n\r\n\treturn Panel;\r\n})(Box)\r\n\r\n\r\n/**\r\n*使用 <code>HSlider</code> 控件，用户可以通过在滑块轨道的终点之间移动滑块来选择值。\r\n*<p> <code>HSlider</code> 控件采用水平方向。滑块轨道从左向右扩展，而标签位于轨道的顶部或底部。</p>\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>HSlider</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.HSlider;\r\n\t*import laya.utils.Handler;\r\n\t*public class HSlider_Example\r\n\t*{\r\n\t\t*private var hSlider:HSlider;\r\n\t\t*public function HSlider_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load([\"resource/ui/hslider.png\",\"resource/ui/hslider$bar.png\"],Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*hSlider=new HSlider();//创建一个 HSlider 类的实例对象 hSlider 。\r\n\t\t\t*hSlider.skin=\"resource/ui/hslider.png\";//设置 hSlider 的皮肤。\r\n\t\t\t*hSlider.min=0;//设置 hSlider 最低位置值。\r\n\t\t\t*hSlider.max=10;//设置 hSlider 最高位置值。\r\n\t\t\t*hSlider.value=2;//设置 hSlider 当前位置值。\r\n\t\t\t*hSlider.tick=1;//设置 hSlider 刻度值。\r\n\t\t\t*hSlider.x=100;//设置 hSlider 对象的属性 x 的值，用于控制 hSlider 对象的显示位置。\r\n\t\t\t*hSlider.y=100;//设置 hSlider 对象的属性 y 的值，用于控制 hSlider 对象的显示位置。\r\n\t\t\t*hSlider.changeHandler=new Handler(this,onChange);//设置 hSlider 位置变化处理器。\r\n\t\t\t*Laya.stage.addChild(hSlider);//把 hSlider 添加到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onChange(value:Number):void\r\n\t\t*{\r\n\t\t\t*trace(\"滑块的位置： value=\"+value);\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800,\"canvas\");//设置游戏画布宽高、渲染模式\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*var hSlider;\r\n*var res=[\"resource/ui/hslider.png\",\"resource/ui/hslider$bar.png\"];\r\n*Laya.loader.load(res,laya.utils.Handler.create(this,onLoadComplete));\r\n*function onLoadComplete(){\r\n\t*console.log(\"资源加载完成！\");\r\n\t*hSlider=new laya.ui.HSlider();//创建一个 HSlider 类的实例对象 hSlider 。\r\n\t*hSlider.skin=\"resource/ui/hslider.png\";//设置 hSlider 的皮肤。\r\n\t*hSlider.min=0;//设置 hSlider 最低位置值。\r\n\t*hSlider.max=10;//设置 hSlider 最高位置值。\r\n\t*hSlider.value=2;//设置 hSlider 当前位置值。\r\n\t*hSlider.tick=1;//设置 hSlider 刻度值。\r\n\t*hSlider.x=100;//设置 hSlider 对象的属性 x 的值，用于控制 hSlider 对象的显示位置。\r\n\t*hSlider.y=100;//设置 hSlider 对象的属性 y 的值，用于控制 hSlider 对象的显示位置。\r\n\t*hSlider.changeHandler=new laya.utils.Handler(this,onChange);//设置 hSlider 位置变化处理器。\r\n\t*Laya.stage.addChild(hSlider);//把 hSlider 添加到显示列表。\r\n\t*}\r\n*function onChange(value)\r\n*{\r\n\t*console.log(\"滑块的位置： value=\"+value);\r\n\t*}\r\n*@example\r\n*import Handler=laya.utils.Handler;\r\n*import HSlider=laya.ui.HSlider;\r\n*class HSlider_Example {\r\n\t*private hSlider:HSlider;\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load([\"resource/ui/hslider.png\",\"resource/ui/hslider$bar.png\"],Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*this.hSlider=new HSlider();//创建一个 HSlider 类的实例对象 hSlider 。\r\n\t\t*this.hSlider.skin=\"resource/ui/hslider.png\";//设置 hSlider 的皮肤。\r\n\t\t*this.hSlider.min=0;//设置 hSlider 最低位置值。\r\n\t\t*this.hSlider.max=10;//设置 hSlider 最高位置值。\r\n\t\t*this.hSlider.value=2;//设置 hSlider 当前位置值。\r\n\t\t*this.hSlider.tick=1;//设置 hSlider 刻度值。\r\n\t\t*this.hSlider.x=100;//设置 hSlider 对象的属性 x 的值，用于控制 hSlider 对象的显示位置。\r\n\t\t*this.hSlider.y=100;//设置 hSlider 对象的属性 y 的值，用于控制 hSlider 对象的显示位置。\r\n\t\t*this.hSlider.changeHandler=new Handler(this,this.onChange);//设置 hSlider 位置变化处理器。\r\n\t\t*Laya.stage.addChild(this.hSlider);//把 hSlider 添加到显示列表。\r\n\t\t*}\r\n\t*private onChange(value:number):void {\r\n\t\t*console.log(\"滑块的位置： value=\"+value);\r\n\t\t*}\r\n\t*}\r\n*\r\n*@see laya.ui.Slider\r\n*/\r\n//class laya.ui.HSlider extends laya.ui.Slider\r\nvar HSlider=(function(_super){\r\n\t/**\r\n\t*创建一个 <code>HSlider</code> 类实例。\r\n\t*@param skin 皮肤。\r\n\t*/\r\n\tfunction HSlider(skin){\r\n\t\tHSlider.__super.call(this,skin);\r\n\t\tthis.isVertical=false;\r\n\t}\r\n\r\n\t__class(HSlider,'laya.ui.HSlider',_super);\r\n\treturn HSlider;\r\n})(Slider)\r\n\r\n\r\n/**\r\n*<code>Group</code> 是一个可以自动布局的项集合控件。\r\n*<p> <code>Group</code> 的默认项对象为 <code>Button</code> 类实例。\r\n*<code>Group</code> 是 <code>Tab</code> 和 <code>RadioGroup</code> 的基类。</p>\r\n*/\r\n//class laya.ui.UIGroup extends laya.ui.Box\r\nvar UIGroup=(function(_super){\r\n\tfunction UIGroup(labels,skin){\r\n\t\t/**\r\n\t\t*改变 <code>Group</code> 的选择项时执行的处理器，(默认返回参数： 项索引（index:int）)。\r\n\t\t*/\r\n\t\tthis.selectHandler=null;\r\n\t\t/**@private */\r\n\t\tthis._items=null;\r\n\t\t/**@private */\r\n\t\tthis._selectedIndex=-1;\r\n\t\t/**@private */\r\n\t\tthis._skin=null;\r\n\t\t/**@private */\r\n\t\tthis._direction=\"horizontal\";\r\n\t\t/**@private */\r\n\t\tthis._space=0;\r\n\t\t/**@private */\r\n\t\tthis._labels=null;\r\n\t\t/**@private */\r\n\t\tthis._labelColors=null;\r\n\t\t/**@private */\r\n\t\tthis._labelFont=null;\r\n\t\t/**@private */\r\n\t\tthis._labelStrokeColor=null;\r\n\t\t/**@private */\r\n\t\tthis._strokeColors=null;\r\n\t\t/**@private */\r\n\t\tthis._labelStroke=NaN;\r\n\t\t/**@private */\r\n\t\tthis._labelSize=0;\r\n\t\t/**@private */\r\n\t\tthis._labelBold=false;\r\n\t\t/**@private */\r\n\t\tthis._labelPadding=null;\r\n\t\t/**@private */\r\n\t\tthis._labelAlign=null;\r\n\t\t/**@private */\r\n\t\tthis._stateNum=0;\r\n\t\t/**@private */\r\n\t\tthis._labelChanged=false;\r\n\t\tUIGroup.__super.call(this);\r\n\t\tthis.skin=skin;\r\n\t\tthis.labels=labels;\r\n\t}\r\n\r\n\t__class(UIGroup,'laya.ui.UIGroup',_super);\r\n\tvar __proto=UIGroup.prototype;\r\n\tLaya.imps(__proto,{\"laya.ui.IItem\":true})\r\n\t/**@inheritDoc */\r\n\t__proto.preinitialize=function(){\r\n\t\tthis.mouseEnabled=true;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tlaya.ui.Component.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._items && (this._items.length=0);\r\n\t\tthis._items=null;\r\n\t\tthis.selectHandler=null;\r\n\t}\r\n\r\n\t/**\r\n\t*添加一个项对象，返回此项对象的索引id。\r\n\t*\r\n\t*@param item 需要添加的项对象。\r\n\t*@param autoLayOut 是否自动布局，如果为true，会根据 <code>direction</code> 和 <code>space</code> 属性计算item的位置。\r\n\t*@return\r\n\t*/\r\n\t__proto.addItem=function(item,autoLayOut){\r\n\t\t(autoLayOut===void 0)&& (autoLayOut=true);\r\n\t\tvar display=item;\r\n\t\tvar index=this._items.length;\r\n\t\tdisplay.name=\"item\"+index;\r\n\t\tthis.addChild(display);\r\n\t\tthis.initItems();\r\n\t\tif (autoLayOut && index > 0){\r\n\t\t\tvar preItem=this._items [index-1];\r\n\t\t\tif (this._direction==\"horizontal\"){\r\n\t\t\t\tdisplay.x=preItem.x+preItem.width+this._space;\r\n\t\t\t\t}else {\r\n\t\t\t\tdisplay.y=preItem.y+preItem.height+this._space;\r\n\t\t\t}\r\n\t\t\t}else {\r\n\t\t\tif (autoLayOut){\r\n\t\t\t\tdisplay.x=0;\r\n\t\t\t\tdisplay.y=0;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn index;\r\n\t}\r\n\r\n\t/**\r\n\t*删除一个项对象。\r\n\t*@param item 需要删除的项对象。\r\n\t*@param autoLayOut 是否自动布局，如果为true，会根据 <code>direction</code> 和 <code>space</code> 属性计算item的位置。\r\n\t*/\r\n\t__proto.delItem=function(item,autoLayOut){\r\n\t\t(autoLayOut===void 0)&& (autoLayOut=true);\r\n\t\tvar index=this._items.indexOf(item);\r\n\t\tif (index !=-1){\r\n\t\t\tvar display=item;\r\n\t\t\tthis.removeChild(display);\r\n\t\t\tfor (var i=index+1,n=this._items.length;i < n;i++){\r\n\t\t\t\tvar child=this._items [i];\r\n\t\t\t\tchild.name=\"item\"+(i-1);\r\n\t\t\t\tif (autoLayOut){\r\n\t\t\t\t\tif (this._direction==\"horizontal\"){\r\n\t\t\t\t\t\tchild.x-=display.width+this._space;\r\n\t\t\t\t\t\t}else {\r\n\t\t\t\t\t\tchild.y-=display.height+this._space;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.initItems();\r\n\t\t\tif (this._selectedIndex >-1){\r\n\t\t\t\tvar newIndex=0;\r\n\t\t\t\tnewIndex=this._selectedIndex < this._items.length ? this._selectedIndex :(this._selectedIndex-1);\r\n\t\t\t\tthis._selectedIndex=-1;\r\n\t\t\t\tthis.selectedIndex=newIndex;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*初始化项对象们。\r\n\t*/\r\n\t__proto.initItems=function(){\r\n\t\tthis._items || (this._items=[]);\r\n\t\tthis._items.length=0;\r\n\t\tfor (var i=0;i < 10000;i++){\r\n\t\t\tvar item=this.getChildByName(\"item\"+i);\r\n\t\t\tif (item==null)break ;\r\n\t\t\tthis._items.push(item);\r\n\t\t\titem.selected=(i===this._selectedIndex);\r\n\t\t\titem.clickHandler=Handler.create(this,this.itemClick,[i],false);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*项对象的点击事件侦听处理函数。\r\n\t*@param index 项索引。\r\n\t*/\r\n\t__proto.itemClick=function(index){\r\n\t\tthis.selectedIndex=index;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*通过对象的索引设置项对象的 <code>selected</code> 属性值。\r\n\t*@param index 需要设置的项对象的索引。\r\n\t*@param selected 表示项对象的选中状态。\r\n\t*/\r\n\t__proto.setSelect=function(index,selected){\r\n\t\tif (this._items && index >-1 && index < this._items.length)this._items[index].selected=selected;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*创建一个项显示对象。\r\n\t*@param skin 项对象的皮肤。\r\n\t*@param label 项对象标签。\r\n\t*/\r\n\t__proto.createItem=function(skin,label){\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*更改项对象的属性值。\r\n\t*/\r\n\t__proto.changeLabels=function(){\r\n\t\tthis._labelChanged=false;\r\n\t\tif (this._items){\r\n\t\t\tvar left=0\r\n\t\t\tfor (var i=0,n=this._items.length;i < n;i++){\r\n\t\t\t\tvar btn=this._items [i];\r\n\t\t\t\tthis._skin && (btn.skin=this._skin);\r\n\t\t\t\tthis._labelColors && (btn.labelColors=this._labelColors);\r\n\t\t\t\tthis._labelSize && (btn.labelSize=this._labelSize);\r\n\t\t\t\tthis._labelStroke && (btn.labelStroke=this._labelStroke);\r\n\t\t\t\tthis._labelStrokeColor && (btn.labelStrokeColor=this._labelStrokeColor);\r\n\t\t\t\tthis._strokeColors && (btn.strokeColors=this._strokeColors);\r\n\t\t\t\tthis._labelBold && (btn.labelBold=this._labelBold);\r\n\t\t\t\tthis._labelPadding && (btn.labelPadding=this._labelPadding);\r\n\t\t\t\tthis._labelAlign && (btn.labelAlign=this._labelAlign);\r\n\t\t\t\tthis._stateNum && (btn.stateNum=this._stateNum);\r\n\t\t\t\tthis._labelFont && (btn.labelFont=this._labelFont);\r\n\t\t\t\tif (this._direction===\"horizontal\"){\r\n\t\t\t\t\tbtn.y=0;\r\n\t\t\t\t\tbtn.x=left;\r\n\t\t\t\t\tleft+=btn.width+this._space;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tbtn.x=0;\r\n\t\t\t\t\tbtn.y=left;\r\n\t\t\t\t\tleft+=btn.height+this._space;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.changeSize();\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.commitMeasure=function(){\r\n\t\tthis.runCallLater(this.changeLabels);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._setLabelChanged=function(){\r\n\t\tif (!this._labelChanged){\r\n\t\t\tthis._labelChanged=true;\r\n\t\t\tthis.callLater(this.changeLabels);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*<p>描边颜色，以字符串表示。</p>\r\n\t*默认值为 \"#000000\"（黑色）;\r\n\t*@see laya.display.Text.strokeColor()\r\n\t*/\r\n\t__getset(0,__proto,'labelStrokeColor',function(){\r\n\t\treturn this._labelStrokeColor;\r\n\t\t},function(value){\r\n\t\tif (this._labelStrokeColor !=value){\r\n\t\t\tthis._labelStrokeColor=value;\r\n\t\t\tthis._setLabelChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.ui.Image#skin\r\n\t*/\r\n\t__getset(0,__proto,'skin',function(){\r\n\t\treturn this._skin;\r\n\t\t},function(value){\r\n\t\tif (this._skin !=value){\r\n\t\t\tthis._skin=value;\r\n\t\t\tthis._setLabelChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示当前选择的项索引。默认值为-1。\r\n\t*/\r\n\t__getset(0,__proto,'selectedIndex',function(){\r\n\t\treturn this._selectedIndex;\r\n\t\t},function(value){\r\n\t\tif (this._selectedIndex !=value){\r\n\t\t\tthis.setSelect(this._selectedIndex,false);\r\n\t\t\tthis._selectedIndex=value;\r\n\t\t\tthis.setSelect(value,true);\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t\t\tthis.selectHandler && this.selectHandler.runWith(this._selectedIndex);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*标签集合字符串。以逗号做分割，如\"item0,item1,item2,item3,item4,item5\"。\r\n\t*/\r\n\t__getset(0,__proto,'labels',function(){\r\n\t\treturn this._labels;\r\n\t\t},function(value){\r\n\t\tif (this._labels !=value){\r\n\t\t\tthis._labels=value;\r\n\t\t\tthis.removeChildren();\r\n\t\t\tthis._setLabelChanged();\r\n\t\t\tif (this._labels){\r\n\t\t\t\tvar a=this._labels.split(\",\");\r\n\t\t\t\tfor (var i=0,n=a.length;i < n;i++){\r\n\t\t\t\t\tvar item=this.createItem(this._skin,a[i]);\r\n\t\t\t\t\titem.name=\"item\"+i;\r\n\t\t\t\t\tthis.addChild(item);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.initItems();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>表示各个状态下的描边颜色。</p>\r\n\t*@see laya.display.Text.strokeColor()\r\n\t*/\r\n\t__getset(0,__proto,'strokeColors',function(){\r\n\t\treturn this._strokeColors;\r\n\t\t},function(value){\r\n\t\tif (this._strokeColors !=value){\r\n\t\t\tthis._strokeColors=value;\r\n\t\t\tthis._setLabelChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.ui.Button#labelColors()\r\n\t*/\r\n\t__getset(0,__proto,'labelColors',function(){\r\n\t\treturn this._labelColors;\r\n\t\t},function(value){\r\n\t\tif (this._labelColors !=value){\r\n\t\t\tthis._labelColors=value;\r\n\t\t\tthis._setLabelChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>描边宽度（以像素为单位）。</p>\r\n\t*默认值0，表示不描边。\r\n\t*@see laya.display.Text.stroke()\r\n\t*/\r\n\t__getset(0,__proto,'labelStroke',function(){\r\n\t\treturn this._labelStroke;\r\n\t\t},function(value){\r\n\t\tif (this._labelStroke !=value){\r\n\t\t\tthis._labelStroke=value;\r\n\t\t\tthis._setLabelChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮文本标签的字体大小。\r\n\t*/\r\n\t__getset(0,__proto,'labelSize',function(){\r\n\t\treturn this._labelSize;\r\n\t\t},function(value){\r\n\t\tif (this._labelSize !=value){\r\n\t\t\tthis._labelSize=value;\r\n\t\t\tthis._setLabelChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮的状态值，以数字表示，默认为3态。\r\n\t*@see laya.ui.Button#stateNum\r\n\t*/\r\n\t__getset(0,__proto,'stateNum',function(){\r\n\t\treturn this._stateNum;\r\n\t\t},function(value){\r\n\t\tif (this._stateNum !=value){\r\n\t\t\tthis._stateNum=value;\r\n\t\t\tthis._setLabelChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮文本标签是否为粗体字。\r\n\t*/\r\n\t__getset(0,__proto,'labelBold',function(){\r\n\t\treturn this._labelBold;\r\n\t\t},function(value){\r\n\t\tif (this._labelBold !=value){\r\n\t\t\tthis._labelBold=value;\r\n\t\t\tthis._setLabelChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮文本标签的字体名称，以字符串形式表示。\r\n\t*@see laya.display.Text.font()\r\n\t*/\r\n\t__getset(0,__proto,'labelFont',function(){\r\n\t\treturn this._labelFont;\r\n\t\t},function(value){\r\n\t\tif (this._labelFont !=value){\r\n\t\t\tthis._labelFont=value;\r\n\t\t\tthis._setLabelChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示按钮文本标签的边距。\r\n\t*<p><b>格式：</b>\"上边距,右边距,下边距,左边距\"。</p>\r\n\t*/\r\n\t__getset(0,__proto,'labelPadding',function(){\r\n\t\treturn this._labelPadding;\r\n\t\t},function(value){\r\n\t\tif (this._labelPadding !=value){\r\n\t\t\tthis._labelPadding=value;\r\n\t\t\tthis._setLabelChanged();\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*布局方向。\r\n\t*<p>默认值为\"horizontal\"。</p>\r\n\t*<p><b>取值：</b>\r\n\t*<li>\"horizontal\"：表示水平布局。</li>\r\n\t*<li>\"vertical\"：表示垂直布局。</li>\r\n\t*</p>\r\n\t*/\r\n\t__getset(0,__proto,'direction',function(){\r\n\t\treturn this._direction;\r\n\t\t},function(value){\r\n\t\tthis._direction=value;\r\n\t\tthis._setLabelChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*项对象们之间的间隔（以像素为单位）。\r\n\t*/\r\n\t__getset(0,__proto,'space',function(){\r\n\t\treturn this._space;\r\n\t\t},function(value){\r\n\t\tthis._space=value;\r\n\t\tthis._setLabelChanged();\r\n\t});\r\n\r\n\t/**\r\n\t*项对象们的存放数组。\r\n\t*/\r\n\t__getset(0,__proto,'items',function(){\r\n\t\treturn this._items;\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置当前选择的项对象。\r\n\t*/\r\n\t__getset(0,__proto,'selection',function(){\r\n\t\treturn this._selectedIndex >-1 && this._selectedIndex < this._items.length ? this._items[this._selectedIndex] :null;\r\n\t\t},function(value){\r\n\t\tthis.selectedIndex=this._items.indexOf(value);\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif (((typeof value=='number')&& Math.floor(value)==value)|| (typeof value=='string'))this.selectedIndex=parseInt(value);\r\n\t\telse if ((value instanceof Array))this.labels=(value).join(\",\");\r\n\t\telse Laya.superSet(Box,this,'dataSource',value);\r\n\t});\r\n\r\n\treturn UIGroup;\r\n})(Box)\r\n\r\n\r\n/**\r\n*<code>Radio</code> 控件使用户可在一组互相排斥的选择中做出一种选择。\r\n*用户一次只能选择 <code>Radio</code> 组中的一个成员。选择未选中的组成员将取消选择该组中当前所选的 <code>Radio</code> 控件。\r\n*@see laya.ui.RadioGroup\r\n*/\r\n//class laya.ui.Radio extends laya.ui.Button\r\nvar Radio=(function(_super){\r\n\tfunction Radio(skin,label){\r\n\t\t/**@private */\r\n\t\tthis._value=null;\r\n\t\t(label===void 0)&& (label=\"\");\r\n\t\tRadio.__super.call(this,skin,label);\r\n\t}\r\n\r\n\t__class(Radio,'laya.ui.Radio',_super);\r\n\tvar __proto=Radio.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._value=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.preinitialize=function(){\r\n\t\tlaya.ui.Component.prototype.preinitialize.call(this);\r\n\t\tthis.toggle=false;\r\n\t\tthis._autoSize=false;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.initialize=function(){\r\n\t\t_super.prototype.initialize.call(this);\r\n\t\tthis.createText();\r\n\t\tthis._text.align=\"left\";\r\n\t\tthis._text.valign=\"top\";\r\n\t\tthis._text.width=0;\r\n\t\tthis.on(/*laya.events.Event.CLICK*/\"click\",this,this.onClick);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*对象的<code>Event.CLICK</code>事件侦听处理函数。\r\n\t*/\r\n\t__proto.onClick=function(e){\r\n\t\tthis.selected=true;\r\n\t}\r\n\r\n\t/**\r\n\t*获取或设置 <code>Radio</code> 关联的可选用户定义值。\r\n\t*/\r\n\t__getset(0,__proto,'value',function(){\r\n\t\treturn this._value !=null ? this._value :this.label;\r\n\t\t},function(obj){\r\n\t\tthis._value=obj;\r\n\t});\r\n\r\n\treturn Radio;\r\n})(Button)\r\n\r\n\r\n/**\r\n*<code>Tree</code> 控件使用户可以查看排列为可扩展树的层次结构数据。\r\n*\r\n*@example\r\n*package\r\n*{\r\n\t*import laya.ui.Tree;\r\n\t*import laya.utils.Browser;\r\n\t*import laya.utils.Handler;\r\n\t*public class Tree_Example\r\n\t*{\r\n\t\t*public function Tree_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load([\"resource/ui/vscroll.png\",\"resource/ui/vscroll$bar.png\",\"resource/ui/vscroll$down.png\",\"resource/ui/vscroll$up.png\",\"resource/ui/clip_selectBox.png\",\"resource/ui/clip_tree_folder.png\",\"resource/ui/clip_tree_arrow.png\"],Handler.create(this,onLoadComplete));\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*var xmlString:String;//创建一个xml字符串，用于存储树结构数据。\r\n\t\t\t*xmlString=\"&lt;root&gt;&lt;item label='box1'&gt;&lt;abc label='child1'/&gt;&lt;abc label='child2'/&gt;&lt;abc label='child3'/&gt;&lt;abc label='child4'/&gt;&lt;abc label='child5'/&gt;&lt;/item&gt;&lt;item label='box2'&gt;&lt;abc label='child1'/&gt;&lt;abc label='child2'/&gt;&lt;abc label='child3'/&gt;&lt;abc label='child4'/&gt;&lt;/item&gt;&lt;/root&gt;\";\r\n\t\t\t*var domParser:*=new Browser.window.DOMParser();//创建一个DOMParser实例domParser。\r\n\t\t\t*var xml:*=domParser.parseFromString(xmlString,\"text/xml\");//解析xml字符。\r\n\t\t\t*var tree:Tree=new Tree();//创建一个 Tree 类的实例对象 tree 。\r\n\t\t\t*tree.scrollBarSkin=\"resource/ui/vscroll.png\";//设置 tree 的皮肤。\r\n\t\t\t*tree.itemRender=Item;//设置 tree 的项渲染器。\r\n\t\t\t*tree.xml=xml;//设置 tree 的树结构数据。\r\n\t\t\t*tree.x=100;//设置 tree 对象的属性 x 的值，用于控制 tree 对象的显示位置。\r\n\t\t\t*tree.y=100;//设置 tree 对象的属性 y 的值，用于控制 tree 对象的显示位置。\r\n\t\t\t*tree.width=200;//设置 tree 的宽度。\r\n\t\t\t*tree.height=100;//设置 tree 的高度。\r\n\t\t\t*Laya.stage.addChild(tree);//将 tree 添加到显示列表。\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*import laya.ui.Box;\r\n*import laya.ui.Clip;\r\n*import laya.ui.Label;\r\n*class Item extends Box\r\n*{\r\n\t*public function Item()\r\n\t*{\r\n\t\t*this.name=\"render\";\r\n\t\t*this.right=0;\r\n\t\t*this.left=0;\r\n\t\t*var selectBox:Clip=new Clip(\"resource/ui/clip_selectBox.png\",1,2);\r\n\t\t*selectBox.name=\"selectBox\";\r\n\t\t*selectBox.height=24;\r\n\t\t*selectBox.x=13;\r\n\t\t*selectBox.y=0;\r\n\t\t*selectBox.left=12;\r\n\t\t*addChild(selectBox);\r\n\t\t*var folder:Clip=new Clip(\"resource/ui/clip_tree_folder.png\",1,3);\r\n\t\t*folder.name=\"folder\";\r\n\t\t*folder.x=14;\r\n\t\t*folder.y=4;\r\n\t\t*addChild(folder);\r\n\t\t*var label:Label=new Label(\"treeItem\");\r\n\t\t*label.name=\"label\";\r\n\t\t*label.color=\"#ffff00\";\r\n\t\t*label.width=150;\r\n\t\t*label.height=22;\r\n\t\t*label.x=33;\r\n\t\t*label.y=1;\r\n\t\t*label.left=33;\r\n\t\t*label.right=0;\r\n\t\t*addChild(label);\r\n\t\t*var arrow:Clip=new Clip(\"resource/ui/clip_tree_arrow.png\",1,2);\r\n\t\t*arrow.name=\"arrow\";\r\n\t\t*arrow.x=0;\r\n\t\t*arrow.y=5;\r\n\t\t*addChild(arrow);\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高、渲染模式\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*var res=[\"resource/ui/vscroll.png\",\"resource/ui/vscroll$bar.png\",\"resource/ui/vscroll$down.png\",\"resource/ui/vscroll$up.png\",\"resource/ui/clip_selectBox.png\",\"resource/ui/clip_tree_folder.png\",\"resource/ui/clip_tree_arrow.png\"];\r\n*Laya.loader.load(res,new laya.utils.Handler(this,onLoadComplete));\r\n*function onLoadComplete(){\r\n\t*var xmlString;//创建一个xml字符串，用于存储树结构数据。\r\n\t*xmlString=\"&lt;root&gt;&lt;item label='box1'&gt;&lt;abc label='child1'/&gt;&lt;abc label='child2'/&gt;&lt;abc label='child3'/&gt;&lt;abc label='child4'/&gt;&lt;abc label='child5'/&gt;&lt;/item&gt;&lt;item label='box2'&gt;&lt;abc label='child1'/&gt;&lt;abc label='child2'/&gt;&lt;abc label='child3'/&gt;&lt;abc label='child4'/&gt;&lt;/item&gt;&lt;/root&gt;\";\r\n\t*var domParser=new laya.utils.Browser.window.DOMParser();//创建一个DOMParser实例domParser。\r\n\t*var xml=domParser.parseFromString(xmlString,\"text/xml\");//解析xml字符。\r\n\t*var tree=new laya.ui.Tree();//创建一个 Tree 类的实例对象 tree 。\r\n\t*tree.scrollBarSkin=\"resource/ui/vscroll.png\";//设置 tree 的皮肤。\r\n\t*tree.itemRender=mypackage.treeExample.Item;//设置 tree 的项渲染器。\r\n\t*tree.xml=xml;//设置 tree 的树结构数据。\r\n\t*tree.x=100;//设置 tree 对象的属性 x 的值，用于控制 tree 对象的显示位置。\r\n\t*tree.y=100;//设置 tree 对象的属性 y 的值，用于控制 tree 对象的显示位置。\r\n\t*tree.width=200;//设置 tree 的宽度。\r\n\t*tree.height=100;//设置 tree 的高度。\r\n\t*Laya.stage.addChild(tree);//将 tree 添加到显示列表。\r\n\t*}\r\n*(function (_super){\r\n\t*function Item(){\r\n\t\t*Item.__super.call(this);//初始化父类。\r\n\t\t*this.right=0;\r\n\t\t*this.left=0;\r\n\t\t*var selectBox=new laya.ui.Clip(\"resource/ui/clip_selectBox.png\",1,2);\r\n\t\t*selectBox.name=\"selectBox\";//设置 selectBox 的name 为“selectBox”时，将被识别为树结构的项的背景。2帧：悬停时背景、选中时背景。\r\n\t\t*selectBox.height=24;\r\n\t\t*selectBox.x=13;\r\n\t\t*selectBox.y=0;\r\n\t\t*selectBox.left=12;\r\n\t\t*this.addChild(selectBox);//需要使用this.访问父类的属性或方法。\r\n\t\t*var folder=new laya.ui.Clip(\"resource/ui/clip_tree_folder.png\",1,3);\r\n\t\t*folder.name=\"folder\";//设置 folder 的name 为“folder”时，将被识别为树结构的文件夹开启状态图表。2帧：折叠状态、打开状态。\r\n\t\t*folder.x=14;\r\n\t\t*folder.y=4;\r\n\t\t*this.addChild(folder);\r\n\t\t*var label=new laya.ui.Label(\"treeItem\");\r\n\t\t*label.name=\"label\";//设置 label 的name 为“label”时，此值将用于树结构数据赋值。\r\n\t\t*label.color=\"#ffff00\";\r\n\t\t*label.width=150;\r\n\t\t*label.height=22;\r\n\t\t*label.x=33;\r\n\t\t*label.y=1;\r\n\t\t*label.left=33;\r\n\t\t*label.right=0;\r\n\t\t*this.addChild(label);\r\n\t\t*var arrow=new laya.ui.Clip(\"resource/ui/clip_tree_arrow.png\",1,2);\r\n\t\t*arrow.name=\"arrow\";//设置 arrow 的name 为“arrow”时，将被识别为树结构的文件夹开启状态图表。2帧：折叠状态、打开状态。\r\n\t\t*arrow.x=0;\r\n\t\t*arrow.y=5;\r\n\t\t*this.addChild(arrow);\r\n\t\t*};\r\n\t*Laya.class(Item,\"mypackage.treeExample.Item\",_super);//注册类 Item 。\r\n\t*})(laya.ui.Box);\r\n*@example\r\n*import Tree=laya.ui.Tree;\r\n*import Browser=laya.utils.Browser;\r\n*import Handler=laya.utils.Handler;\r\n*class Tree_Example {\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load([\"resource/ui/vscroll.png\",\"resource/ui/vscroll$bar.png\",\"resource/ui/vscroll$down.png\",\"resource/ui/vscroll$up.png\",\"resource/ui/vscroll$up.png\",\"resource/ui/clip_selectBox.png\",\"resource/ui/clip_tree_folder * . * png\",\"resource/ui/clip_tree_arrow.png\"],Handler.create(this,this.onLoadComplete));\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*var xmlString:String;//创建一个xml字符串，用于存储树结构数据。\r\n\t\t*xmlString=\"&lt;root&gt;&lt;item label='box1'&gt;&lt;abc label='child1'/&gt;&lt;abc label='child2'/&gt;&lt;abc label='child3'/&gt;&lt;abc label='child4'/&gt;&lt;abc label='child5'/&gt;&lt;/item&gt;&lt;item label='box2'&gt;&lt;abc  * label='child1'/&gt;&lt;abc label='child2'/&gt;&lt;abc label='child3'/&gt;&lt;abc label='child4'/&gt;&lt;/item&gt;&lt;/root&gt;\";\r\n\t\t*var domParser:any=new Browser.window.DOMParser();//创建一个DOMParser实例domParser。\r\n\t\t*var xml:any=domParser.parseFromString(xmlString,\"text/xml\");//解析xml字符。\r\n\t\t*var tree:Tree=new Tree();//创建一个 Tree 类的实例对象 tree 。\r\n\t\t*tree.scrollBarSkin=\"resource/ui/vscroll.png\";//设置 tree 的皮肤。\r\n\t\t*tree.itemRender=Item;//设置 tree 的项渲染器。\r\n\t\t*tree.xml=xml;//设置 tree 的树结构数据。\r\n\t\t*tree.x=100;//设置 tree 对象的属性 x 的值，用于控制 tree 对象的显示位置。\r\n\t\t*tree.y=100;//设置 tree 对象的属性 y 的值，用于控制 tree 对象的显示位置。\r\n\t\t*tree.width=200;//设置 tree 的宽度。\r\n\t\t*tree.height=100;//设置 tree 的高度。\r\n\t\t*Laya.stage.addChild(tree);//将 tree 添加到显示列表。\r\n\t\t*}\r\n\t*}\r\n*import Box=laya.ui.Box;\r\n*import Clip=laya.ui.Clip;\r\n*import Label=laya.ui.Label;\r\n*class Item extends Box {\r\n\t*constructor(){\r\n\t\t*super();\r\n\t\t*this.name=\"render\";\r\n\t\t*this.right=0;\r\n\t\t*this.left=0;\r\n\t\t*var selectBox:Clip=new Clip(\"resource/ui/clip_selectBox.png\",1,2);\r\n\t\t*selectBox.name=\"selectBox\";\r\n\t\t*selectBox.height=24;\r\n\t\t*selectBox.x=13;\r\n\t\t*selectBox.y=0;\r\n\t\t*selectBox.left=12;\r\n\t\t*this.addChild(selectBox);\r\n\t\t*var folder:Clip=new Clip(\"resource/ui/clip_tree_folder.png\",1,3);\r\n\t\t*folder.name=\"folder\";\r\n\t\t*folder.x=14;\r\n\t\t*folder.y=4;\r\n\t\t*this.addChild(folder);\r\n\t\t*var label:Label=new Label(\"treeItem\");\r\n\t\t*label.name=\"label\";\r\n\t\t*label.color=\"#ffff00\";\r\n\t\t*label.width=150;\r\n\t\t*label.height=22;\r\n\t\t*label.x=33;\r\n\t\t*label.y=1;\r\n\t\t*label.left=33;\r\n\t\t*label.right=0;\r\n\t\t*this.addChild(label);\r\n\t\t*var arrow:Clip=new Clip(\"resource/ui/clip_tree_arrow.png\",1,2);\r\n\t\t*arrow.name=\"arrow\";\r\n\t\t*arrow.x=0;\r\n\t\t*arrow.y=5;\r\n\t\t*this.addChild(arrow);\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.Tree extends laya.ui.Box\r\nvar Tree=(function(_super){\r\n\tfunction Tree(){\r\n\t\t/**@private */\r\n\t\tthis._list=null;\r\n\t\t/**@private */\r\n\t\tthis._source=null;\r\n\t\t/**@private */\r\n\t\tthis._renderHandler=null;\r\n\t\t/**@private */\r\n\t\tthis._spaceLeft=10;\r\n\t\t/**@private */\r\n\t\tthis._spaceBottom=0;\r\n\t\t/**@private */\r\n\t\tthis._keepStatus=true;\r\n\t\tTree.__super.call(this);\r\n\t\tthis.width=this.height=200;\r\n\t}\r\n\r\n\t__class(Tree,'laya.ui.Tree',_super);\r\n\tvar __proto=Tree.prototype;\r\n\tLaya.imps(__proto,{\"laya.ui.IRender\":true})\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tlaya.ui.Component.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._list && this._list.destroy(destroyChild);\r\n\t\tthis._list=null;\r\n\t\tthis._source=null;\r\n\t\tthis._renderHandler=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.addChild(this._list=new List());\r\n\t\tthis._list.renderHandler=Handler.create(this,this.renderItem,null,false);\r\n\t\tthis._list.repeatX=1;\r\n\t\tthis._list.on(/*laya.events.Event.CHANGE*/\"change\",this,this.onListChange);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*此对象包含的<code>List</code>实例的<code>Event.CHANGE</code>事件侦听处理函数。\r\n\t*/\r\n\t__proto.onListChange=function(e){\r\n\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取数据源集合。\r\n\t*/\r\n\t__proto.getArray=function(){\r\n\t\tvar arr=[];\r\n\t\tvar item;\r\n\t\t/*for each*/for(var $each_item in this._source){\r\n\t\t\titem=this._source[$each_item];\r\n\t\t\tif (this.getParentOpenStatus(item)){\r\n\t\t\t\titem.x=this._spaceLeft *this.getDepth(item);\r\n\t\t\t\tarr.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn arr;\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取项对象的深度。\r\n\t*/\r\n\t__proto.getDepth=function(item,num){\r\n\t\t(num===void 0)&& (num=0);\r\n\t\tif (item.nodeParent==null)return num;\r\n\t\telse return this.getDepth(item.nodeParent,num+1);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取项对象的上一级的打开状态。\r\n\t*/\r\n\t__proto.getParentOpenStatus=function(item){\r\n\t\tvar parent=item.nodeParent;\r\n\t\tif (parent==null){\r\n\t\t\treturn true;\r\n\t\t\t}else {\r\n\t\t\tif (parent.isOpen){\r\n\t\t\t\tif (parent.nodeParent !=null)return this.getParentOpenStatus(parent);\r\n\t\t\t\telse return true;\r\n\t\t\t\t}else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*渲染一个项对象。\r\n\t*@param cell 一个项对象。\r\n\t*@param index 项的索引。\r\n\t*/\r\n\t__proto.renderItem=function(cell,index){\r\n\t\tvar item=cell.dataSource;\r\n\t\tif (item){\r\n\t\t\tcell.left=item.x;\r\n\t\t\tvar arrow=cell.getChildByName(\"arrow\");\r\n\t\t\tif (arrow){\r\n\t\t\t\tif (item.hasChild){\r\n\t\t\t\t\tarrow.visible=true;\r\n\t\t\t\t\tarrow.index=item.isOpen ? 1 :0;\r\n\t\t\t\t\tarrow.tag=index;\r\n\t\t\t\t\tarrow.off(/*laya.events.Event.CLICK*/\"click\",this,this.onArrowClick);\r\n\t\t\t\t\tarrow.on(/*laya.events.Event.CLICK*/\"click\",this,this.onArrowClick);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tarrow.visible=false;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tvar folder=cell.getChildByName(\"folder\");\r\n\t\t\tif (folder){\r\n\t\t\t\tif (folder.clipY==2){\r\n\t\t\t\t\tfolder.index=item.isDirectory ? 0 :1;\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\tfolder.index=item.isDirectory ? item.isOpen ? 1 :0 :2;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._renderHandler && this._renderHandler.runWith([cell,index]);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto.onArrowClick=function(e){\r\n\t\tvar arrow=e.currentTarget;\r\n\t\tvar index=arrow.tag;\r\n\t\tthis._list.array[index].isOpen=!this._list.array[index].isOpen;\r\n\t\tthis.event(/*laya.events.Event.OPEN*/\"open\");\r\n\t\tthis._list.array=this.getArray();\r\n\t}\r\n\r\n\t/**\r\n\t*设置指定项索引的项对象的打开状态。\r\n\t*@param index 项索引。\r\n\t*@param isOpen 是否处于打开状态。\r\n\t*/\r\n\t__proto.setItemState=function(index,isOpen){\r\n\t\tif (!this._list.array[index])return;\r\n\t\tthis._list.array[index].isOpen=isOpen;\r\n\t\tthis._list.array=this.getArray();\r\n\t}\r\n\r\n\t/**\r\n\t*刷新项列表。\r\n\t*/\r\n\t__proto.fresh=function(){\r\n\t\tthis._list.array=this.getArray();\r\n\t\tthis.repaint();\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*解析并处理XML类型的数据源。\r\n\t*/\r\n\t__proto.parseXml=function(xml,source,nodeParent,isRoot){\r\n\t\tvar obj;\r\n\t\tvar list=xml.childNodes;\r\n\t\tvar childCount=list.length;\r\n\t\tif (!isRoot){\r\n\t\t\tobj={};\r\n\t\t\tvar list2=xml.attributes;\r\n\t\t\tvar attrs;\r\n\t\t\t/*for each*/for(var $each_attrs in list2){\r\n\t\t\t\tattrs=list2[$each_attrs];\r\n\t\t\t\tvar prop=attrs.nodeName;\r\n\t\t\t\tvar value=attrs.nodeValue;\r\n\t\t\t\tobj[prop]=value==\"true\" ? true :value==\"false\" ? false :value;\r\n\t\t\t}\r\n\t\t\tobj.nodeParent=nodeParent;\r\n\t\t\tif (childCount > 0)obj.isDirectory=true;\r\n\t\t\tobj.hasChild=childCount > 0;\r\n\t\t\tsource.push(obj);\r\n\t\t}\r\n\t\tfor (var i=0;i < childCount;i++){\r\n\t\t\tvar node=list[i];\r\n\t\t\tthis.parseXml(node,source,obj,false);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*处理数据项的打开状态。\r\n\t*/\r\n\t__proto.parseOpenStatus=function(oldSource,newSource){\r\n\t\tfor (var i=0,n=newSource.length;i < n;i++){\r\n\t\t\tvar newItem=newSource[i];\r\n\t\t\tif (newItem.isDirectory){\r\n\t\t\t\tfor (var j=0,m=oldSource.length;j < m;j++){\r\n\t\t\t\t\tvar oldItem=oldSource[j];\r\n\t\t\t\t\tif (oldItem.isDirectory && this.isSameParent(oldItem,newItem)&& newItem.label==oldItem.label){\r\n\t\t\t\t\t\tnewItem.isOpen=oldItem.isOpen;\r\n\t\t\t\t\t\tbreak ;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*判断两个项对象在树结构中的父节点是否相同。\r\n\t*@param item1 项对象。\r\n\t*@param item2 项对象。\r\n\t*@return 如果父节点相同值为true，否则值为false。\r\n\t*/\r\n\t__proto.isSameParent=function(item1,item2){\r\n\t\tif (item1.nodeParent==null && item2.nodeParent==null)return true;\r\n\t\telse if (item1.nodeParent==null || item2.nodeParent==null)return false\r\n\t\telse {\r\n\t\t\tif (item1.nodeParent.label==item2.nodeParent.label)return this.isSameParent(item1.nodeParent,item2.nodeParent);\r\n\t\t\telse return false;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*更新项列表，显示指定键名的数据项。\r\n\t*@param key 键名。\r\n\t*/\r\n\t__proto.filter=function(key){\r\n\t\tif (Boolean(key)){\r\n\t\t\tvar result=[];\r\n\t\t\tthis.getFilterSource(this._source,result,key);\r\n\t\t\tthis._list.array=result;\r\n\t\t\t}else {\r\n\t\t\tthis._list.array=this.getArray();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*获取数据源中指定键名的值。\r\n\t*/\r\n\t__proto.getFilterSource=function(array,result,key){\r\n\t\tkey=key.toLocaleLowerCase();\r\n\t\tvar item;\r\n\t\t/*for each*/for(var $each_item in array){\r\n\t\t\titem=array[$each_item];\r\n\t\t\tif (!item.isDirectory && String(item.label).toLowerCase().indexOf(key)>-1){\r\n\t\t\t\titem.x=0;\r\n\t\t\t\tresult.push(item);\r\n\t\t\t}\r\n\t\t\tif (item.child && item.child.length > 0){\r\n\t\t\t\tthis.getFilterSource(item.child,result,key);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*每一项之间的间隔距离（以像素为单位）。\r\n\t*/\r\n\t__getset(0,__proto,'spaceBottom',function(){\r\n\t\treturn this._list.spaceY;\r\n\t\t},function(value){\r\n\t\tthis._list.spaceY=value;\r\n\t});\r\n\r\n\t/**\r\n\t*数据源发生变化后，是否保持之前打开状态，默认为true。\r\n\t*<p><b>取值：</b>\r\n\t*<li>true：保持之前打开状态。</li>\r\n\t*<li>false：不保持之前打开状态。</li>\r\n\t*</p>\r\n\t*/\r\n\t__getset(0,__proto,'keepStatus',function(){\r\n\t\treturn this._keepStatus;\r\n\t\t},function(value){\r\n\t\tthis._keepStatus=value;\r\n\t});\r\n\r\n\t/**\r\n\t*此对象包含的<code>List</code>实例的单元格渲染器。\r\n\t*<p><b>取值：</b>\r\n\t*<ol>\r\n\t*<li>单元格类对象。</li>\r\n\t*<li> UI 的 JSON 描述。</li>\r\n\t*</ol></p>\r\n\t*/\r\n\t__getset(0,__proto,'itemRender',function(){\r\n\t\treturn this._list.itemRender;\r\n\t\t},function(value){\r\n\t\tthis._list.itemRender=value;\r\n\t});\r\n\r\n\t/**\r\n\t*列表数据源，只包含当前可视节点数据。\r\n\t*/\r\n\t__getset(0,__proto,'array',function(){\r\n\t\treturn this._list.array;\r\n\t\t},function(value){\r\n\t\tif (this._keepStatus && this._list.array && value){\r\n\t\t\tthis.parseOpenStatus(this._list.array,value);\r\n\t\t}\r\n\t\tthis._source=value;\r\n\t\tthis._list.array=this.getArray();\r\n\t});\r\n\r\n\t/**\r\n\t*单元格鼠标事件处理器。\r\n\t*<p>默认返回参数（e:Event,index:int）。</p>\r\n\t*/\r\n\t__getset(0,__proto,'mouseHandler',function(){\r\n\t\treturn this._list.mouseHandler;\r\n\t\t},function(value){\r\n\t\tthis._list.mouseHandler=value;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tLaya.superSet(Box,this,'dataSource',value);\r\n\t});\r\n\r\n\t/**\r\n\t*数据源，全部节点数据。\r\n\t*/\r\n\t__getset(0,__proto,'source',function(){\r\n\t\treturn this._source;\r\n\t});\r\n\r\n\t/**滚动条*/\r\n\t__getset(0,__proto,'scrollBar',function(){\r\n\t\treturn this._list.scrollBar;\r\n\t});\r\n\r\n\t/**\r\n\t*此对象包含的<code>List</code>实例对象。\r\n\t*/\r\n\t__getset(0,__proto,'list',function(){\r\n\t\treturn this._list;\r\n\t});\r\n\r\n\t/**\r\n\t*滚动条皮肤。\r\n\t*/\r\n\t__getset(0,__proto,'scrollBarSkin',function(){\r\n\t\treturn this._list.vScrollBarSkin;\r\n\t\t},function(value){\r\n\t\tthis._list.vScrollBarSkin=value;\r\n\t});\r\n\r\n\t/**\r\n\t*<code>Tree</code> 实例的渲染处理器。\r\n\t*/\r\n\t__getset(0,__proto,'renderHandler',function(){\r\n\t\treturn this._renderHandler;\r\n\t\t},function(value){\r\n\t\tthis._renderHandler=value;\r\n\t});\r\n\r\n\t/**\r\n\t*表示当前选择的项索引。\r\n\t*/\r\n\t__getset(0,__proto,'selectedIndex',function(){\r\n\t\treturn this._list.selectedIndex;\r\n\t\t},function(value){\r\n\t\tthis._list.selectedIndex=value;\r\n\t});\r\n\r\n\t/**\r\n\t*左侧缩进距离（以像素为单位）。\r\n\t*/\r\n\t__getset(0,__proto,'spaceLeft',function(){\r\n\t\treturn this._spaceLeft;\r\n\t\t},function(value){\r\n\t\tthis._spaceLeft=value;\r\n\t});\r\n\r\n\t/**\r\n\t*当前选中的项对象的数据源。\r\n\t*/\r\n\t__getset(0,__proto,'selectedItem',function(){\r\n\t\treturn this._list.selectedItem;\r\n\t\t},function(value){\r\n\t\tthis._list.selectedItem=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@inheritDoc\r\n\t*/\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tLaya.superSet(Box,this,'width',value);\r\n\t\tthis._list.width=value;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tLaya.superSet(Box,this,'height',value);\r\n\t\tthis._list.height=value;\r\n\t});\r\n\r\n\t/**\r\n\t*xml结构的数据源。\r\n\t*/\r\n\t__getset(0,__proto,'xml',null,function(value){\r\n\t\tvar arr=[];\r\n\t\tthis.parseXml(value.childNodes[0],arr,null,true);\r\n\t\tthis.array=arr;\r\n\t});\r\n\r\n\t/**\r\n\t*表示选择的树节点项的<code>path</code>属性值。\r\n\t*/\r\n\t__getset(0,__proto,'selectedPath',function(){\r\n\t\tif (this._list.selectedItem){\r\n\t\t\treturn this._list.selectedItem.path;\r\n\t\t}\r\n\t\treturn null;\r\n\t});\r\n\r\n\treturn Tree;\r\n})(Box)\r\n\r\n\r\n/**\r\n*<code>ViewStack</code> 类用于视图堆栈类，用于视图的显示等设置处理。\r\n*/\r\n//class laya.ui.ViewStack extends laya.ui.Box\r\nvar ViewStack=(function(_super){\r\n\tfunction ViewStack(){\r\n\t\t/**@private */\r\n\t\tthis._items=null;\r\n\t\t/**@private */\r\n\t\tthis._selectedIndex=0;\r\n\t\tViewStack.__super.call(this);\r\n\t\tthis._setIndexHandler=Handler.create(this,this.setIndex,null,false);\r\n\t}\r\n\r\n\t__class(ViewStack,'laya.ui.ViewStack',_super);\r\n\tvar __proto=ViewStack.prototype;\r\n\tLaya.imps(__proto,{\"laya.ui.IItem\":true})\r\n\t/**\r\n\t*批量设置视图对象。\r\n\t*@param views 视图对象数组。\r\n\t*/\r\n\t__proto.setItems=function(views){\r\n\t\tthis.removeChildren();\r\n\t\tvar index=0;\r\n\t\tfor (var i=0,n=views.length;i < n;i++){\r\n\t\t\tvar item=views[i];\r\n\t\t\tif (item){\r\n\t\t\t\titem.name=\"item\"+index;\r\n\t\t\t\tthis.addChild(item);\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.initItems();\r\n\t}\r\n\r\n\t/**\r\n\t*添加视图。\r\n\t*@internal 添加视图对象，并设置此视图对象的<code>name</code> 属性。\r\n\t*@param view 需要添加的视图对象。\r\n\t*/\r\n\t__proto.addItem=function(view){\r\n\t\tview.name=\"item\"+this._items.length;\r\n\t\tthis.addChild(view);\r\n\t\tthis.initItems();\r\n\t}\r\n\r\n\t/**\r\n\t*初始化视图对象集合。\r\n\t*/\r\n\t__proto.initItems=function(){\r\n\t\tthis._items=[];\r\n\t\tfor (var i=0;i < 10000;i++){\r\n\t\t\tvar item=this.getChildByName(\"item\"+i);\r\n\t\t\tif (item==null){\r\n\t\t\t\tbreak ;\r\n\t\t\t}\r\n\t\t\tthis._items.push(item);\r\n\t\t\titem.visible=(i==this._selectedIndex);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*通过对象的索引设置项对象的 <code>selected</code> 属性值。\r\n\t*@param index 需要设置的对象的索引。\r\n\t*@param selected 表示对象的选中状态。\r\n\t*/\r\n\t__proto.setSelect=function(index,selected){\r\n\t\tif (this._items && index >-1 && index < this._items.length){\r\n\t\t\tthis._items[index].visible=selected;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*设置属性<code>selectedIndex</code>的值。\r\n\t*@param index 选中项索引值。\r\n\t*/\r\n\t__proto.setIndex=function(index){\r\n\t\tthis.selectedIndex=index;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'dataSource',_super.prototype._$get_dataSource,function(value){\r\n\t\tthis._dataSource=value;\r\n\t\tif (((typeof value=='number')&& Math.floor(value)==value)|| (typeof value=='string')){\r\n\t\t\tthis.selectedIndex=parseInt(value);\r\n\t\t\t}else {\r\n\t\t\tfor (var prop in this._dataSource){\r\n\t\t\t\tif (this.hasOwnProperty(prop)){\r\n\t\t\t\t\tthis[prop]=this._dataSource[prop];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示当前视图索引。\r\n\t*/\r\n\t__getset(0,__proto,'selectedIndex',function(){\r\n\t\treturn this._selectedIndex;\r\n\t\t},function(value){\r\n\t\tif (this._selectedIndex !=value){\r\n\t\t\tthis.setSelect(this._selectedIndex,false);\r\n\t\t\tthis._selectedIndex=value;\r\n\t\t\tthis.setSelect(this._selectedIndex,true);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*获取或设置当前选择的项对象。\r\n\t*/\r\n\t__getset(0,__proto,'selection',function(){\r\n\t\treturn this._selectedIndex >-1 && this._selectedIndex < this._items.length ? this._items[this._selectedIndex] :null;\r\n\t\t},function(value){\r\n\t\tthis.selectedIndex=this._items.indexOf(value);\r\n\t});\r\n\r\n\t/**\r\n\t*视图集合数组。\r\n\t*/\r\n\t__getset(0,__proto,'items',function(){\r\n\t\treturn this._items;\r\n\t});\r\n\r\n\t/**\r\n\t*索引设置处理器。\r\n\t*<p>默认回调参数：index:int</p>\r\n\t*/\r\n\t__getset(0,__proto,'setIndexHandler',function(){\r\n\t\treturn this._setIndexHandler;\r\n\t\t},function(value){\r\n\t\tthis._setIndexHandler=value;\r\n\t});\r\n\r\n\treturn ViewStack;\r\n})(Box)\r\n\r\n\r\n/**\r\n*\r\n*使用 <code>VScrollBar</code> （垂直 <code>ScrollBar</code> ）控件，可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>VScrollBar</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.vScrollBar;\r\n\t*import laya.ui.VScrollBar;\r\n\t*import laya.utils.Handler;\r\n\t*public class VScrollBar_Example\r\n\t*{\r\n\t\t*private var vScrollBar:VScrollBar;\r\n\t\t*public function VScrollBar_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load([\"resource/ui/vscroll.png\",\"resource/ui/vscroll$bar.png\",\"resource/ui/vscroll$down.png\",\"resource/ui/vscroll$up.png\"],Handler.create(this,onLoadComplete));\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*vScrollBar=new VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。\r\n\t\t\t*vScrollBar.skin=\"resource/ui/vscroll.png\";//设置 vScrollBar 的皮肤。\r\n\t\t\t*vScrollBar.x=100;//设置 vScrollBar 对象的属性 x 的值，用于控制 vScrollBar 对象的显示位置。\r\n\t\t\t*vScrollBar.y=100;//设置 vScrollBar 对象的属性 y 的值，用于控制 vScrollBar 对象的显示位置。\r\n\t\t\t*vScrollBar.changeHandler=new Handler(this,onChange);//设置 vScrollBar 的滚动变化处理器。\r\n\t\t\t*Laya.stage.addChild(vScrollBar);//将此 vScrollBar 对象添加到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onChange(value:Number):void\r\n\t\t*{\r\n\t\t\t*trace(\"滚动条的位置： value=\"+value);\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*var vScrollBar;\r\n*var res=[\"resource/ui/vscroll.png\",\"resource/ui/vscroll$bar.png\",\"resource/ui/vscroll$down.png\",\"resource/ui/vscroll$up.png\"];\r\n*Laya.loader.load(res,laya.utils.Handler.create(this,onLoadComplete));//加载资源。\r\n*function onLoadComplete(){\r\n\t*vScrollBar=new laya.ui.VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。\r\n\t*vScrollBar.skin=\"resource/ui/vscroll.png\";//设置 vScrollBar 的皮肤。\r\n\t*vScrollBar.x=100;//设置 vScrollBar 对象的属性 x 的值，用于控制 vScrollBar 对象的显示位置。\r\n\t*vScrollBar.y=100;//设置 vScrollBar 对象的属性 y 的值，用于控制 vScrollBar 对象的显示位置。\r\n\t*vScrollBar.changeHandler=new laya.utils.Handler(this,onChange);//设置 vScrollBar 的滚动变化处理器。\r\n\t*Laya.stage.addChild(vScrollBar);//将此 vScrollBar 对象添加到显示列表。\r\n\t*}\r\n*function onChange(value){\r\n\t*console.log(\"滚动条的位置： value=\"+value);\r\n\t*}\r\n*@example\r\n*import VScrollBar=laya.ui.VScrollBar;\r\n*import Handler=laya.utils.Handler;\r\n*class VScrollBar_Example {\r\n\t*private vScrollBar:VScrollBar;\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load([\"resource/ui/vscroll.png\",\"resource/ui/vscroll$bar.png\",\"resource/ui/vscroll$down.png\",\"resource/ui/vscroll$up.png\"],Handler.create(this,this.onLoadComplete));\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*this.vScrollBar=new VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。\r\n\t\t*this.vScrollBar.skin=\"resource/ui/vscroll.png\";//设置 vScrollBar 的皮肤。\r\n\t\t*this.vScrollBar.x=100;//设置 vScrollBar 对象的属性 x 的值，用于控制 vScrollBar 对象的显示位置。\r\n\t\t*this.vScrollBar.y=100;//设置 vScrollBar 对象的属性 y 的值，用于控制 vScrollBar 对象的显示位置。\r\n\t\t*this.vScrollBar.changeHandler=new Handler(this,this.onChange);//设置 vScrollBar 的滚动变化处理器。\r\n\t\t*Laya.stage.addChild(this.vScrollBar);//将此 vScrollBar 对象添加到显示列表。\r\n\t\t*}\r\n\t*private onChange(value:number):void {\r\n\t\t*console.log(\"滚动条的位置： value=\"+value);\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.VScrollBar extends laya.ui.ScrollBar\r\nvar VScrollBar=(function(_super){\r\n\tfunction VScrollBar(){\r\n\t\tVScrollBar.__super.call(this);;\r\n\t}\r\n\r\n\t__class(VScrollBar,'laya.ui.VScrollBar',_super);\r\n\treturn VScrollBar;\r\n})(ScrollBar)\r\n\r\n\r\n/**\r\n*<code>TextInput</code> 类用于创建显示对象以显示和输入文本。\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>TextInput</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.display.Stage;\r\n\t*import laya.ui.TextInput;\r\n\t*import laya.utils.Handler;\r\n\t*public class TextInput_Example\r\n\t*{\r\n\t\t*public function TextInput_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load([\"resource/ui/input.png\"],Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*var textInput:TextInput=new TextInput(\"这是一个TextInput实例。\");//创建一个 TextInput 类的实例对象 textInput 。\r\n\t\t\t*textInput.skin=\"resource/ui/input.png\";//设置 textInput 的皮肤。\r\n\t\t\t*textInput.sizeGrid=\"4,4,4,4\";//设置 textInput 的网格信息。\r\n\t\t\t*textInput.color=\"#008fff\";//设置 textInput 的文本颜色。\r\n\t\t\t*textInput.font=\"Arial\";//设置 textInput 的文本字体。\r\n\t\t\t*textInput.bold=true;//设置 textInput 的文本显示为粗体。\r\n\t\t\t*textInput.fontSize=30;//设置 textInput 的字体大小。\r\n\t\t\t*textInput.wordWrap=true;//设置 textInput 的文本自动换行。\r\n\t\t\t*textInput.x=100;//设置 textInput 对象的属性 x 的值，用于控制 textInput 对象的显示位置。\r\n\t\t\t*textInput.y=100;//设置 textInput 对象的属性 y 的值，用于控制 textInput 对象的显示位置。\r\n\t\t\t*textInput.width=300;//设置 textInput 的宽度。\r\n\t\t\t*textInput.height=200;//设置 textInput 的高度。\r\n\t\t\t*Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*Laya.loader.load([\"resource/ui/input.png\"],laya.utils.Handler.create(this,onLoadComplete));//加载资源。\r\n*function onLoadComplete(){\r\n\t*var textInput=new laya.ui.TextInput(\"这是一个TextInput实例。\");//创建一个 TextInput 类的实例对象 textInput 。\r\n\t*textInput.skin=\"resource/ui/input.png\";//设置 textInput 的皮肤。\r\n\t*textInput.sizeGrid=\"4,4,4,4\";//设置 textInput 的网格信息。\r\n\t*textInput.color=\"#008fff\";//设置 textInput 的文本颜色。\r\n\t*textInput.font=\"Arial\";//设置 textInput 的文本字体。\r\n\t*textInput.bold=true;//设置 textInput 的文本显示为粗体。\r\n\t*textInput.fontSize=30;//设置 textInput 的字体大小。\r\n\t*textInput.wordWrap=true;//设置 textInput 的文本自动换行。\r\n\t*textInput.x=100;//设置 textInput 对象的属性 x 的值，用于控制 textInput 对象的显示位置。\r\n\t*textInput.y=100;//设置 textInput 对象的属性 y 的值，用于控制 textInput 对象的显示位置。\r\n\t*textInput.width=300;//设置 textInput 的宽度。\r\n\t*textInput.height=200;//设置 textInput 的高度。\r\n\t*Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。\r\n\t*}\r\n*@example\r\n*import Stage=laya.display.Stage;\r\n*import TextInput=laya.ui.TextInput;\r\n*import Handler=laya.utils.Handler;\r\n*class TextInput_Example {\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load([\"resource/ui/input.png\"],Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*var textInput:TextInput=new TextInput(\"这是一个TextInput实例。\");//创建一个 TextInput 类的实例对象 textInput 。\r\n\t\t*textInput.skin=\"resource/ui/input.png\";//设置 textInput 的皮肤。\r\n\t\t*textInput.sizeGrid=\"4,4,4,4\";//设置 textInput 的网格信息。\r\n\t\t*textInput.color=\"#008fff\";//设置 textInput 的文本颜色。\r\n\t\t*textInput.font=\"Arial\";//设置 textInput 的文本字体。\r\n\t\t*textInput.bold=true;//设置 textInput 的文本显示为粗体。\r\n\t\t*textInput.fontSize=30;//设置 textInput 的字体大小。\r\n\t\t*textInput.wordWrap=true;//设置 textInput 的文本自动换行。\r\n\t\t*textInput.x=100;//设置 textInput 对象的属性 x 的值，用于控制 textInput 对象的显示位置。\r\n\t\t*textInput.y=100;//设置 textInput 对象的属性 y 的值，用于控制 textInput 对象的显示位置。\r\n\t\t*textInput.width=300;//设置 textInput 的宽度。\r\n\t\t*textInput.height=200;//设置 textInput 的高度。\r\n\t\t*Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.TextInput extends laya.ui.Label\r\nvar TextInput=(function(_super){\r\n\tfunction TextInput(text){\r\n\t\t/**@private */\r\n\t\tthis._bg=null;\r\n\t\t/**@private */\r\n\t\tthis._skin=null;\r\n\t\tTextInput.__super.call(this);\r\n\t\t(text===void 0)&& (text=\"\");\r\n\t\tthis.text=text;\r\n\t\tthis.skin=this.skin;\r\n\t}\r\n\r\n\t__class(TextInput,'laya.ui.TextInput',_super);\r\n\tvar __proto=TextInput.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.preinitialize=function(){\r\n\t\tthis.mouseEnabled=true;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._bg && this._bg.destroy();\r\n\t\tthis._bg=null;\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.createChildren=function(){\r\n\t\tthis.addChild(this._tf=new Input());\r\n\t\tthis._tf.padding=Styles.inputLabelPadding;\r\n\t\tthis._tf.on(/*laya.events.Event.INPUT*/\"input\",this,this._onInput);\r\n\t\tthis._tf.on(/*laya.events.Event.ENTER*/\"enter\",this,this._onEnter);\r\n\t\tthis._tf.on(/*laya.events.Event.BLUR*/\"blur\",this,this._onBlur);\r\n\t\tthis._tf.on(/*laya.events.Event.FOCUS*/\"focus\",this,this._onFocus);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._onFocus=function(){\r\n\t\tthis.event(/*laya.events.Event.FOCUS*/\"focus\",this);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._onBlur=function(){\r\n\t\tthis.event(/*laya.events.Event.BLUR*/\"blur\",this);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._onInput=function(){\r\n\t\tthis.event(/*laya.events.Event.INPUT*/\"input\",this);\r\n\t}\r\n\r\n\t/**\r\n\t*@private\r\n\t*/\r\n\t__proto._onEnter=function(){\r\n\t\tthis.event(/*laya.events.Event.ENTER*/\"enter\",this);\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.initialize=function(){\r\n\t\tthis.width=128;\r\n\t\tthis.height=22;\r\n\t}\r\n\r\n\t/**选中输入框内的文本。*/\r\n\t__proto.select=function(){\r\n\t\t(this._tf).select();\r\n\t}\r\n\r\n\t__proto.setSelection=function(startIndex,endIndex){\r\n\t\t(this._tf).setSelection(startIndex,endIndex);\r\n\t}\r\n\r\n\t/**\r\n\t*当前文本内容字符串。\r\n\t*@see laya.display.Text.text\r\n\t*/\r\n\t__getset(0,__proto,'text',_super.prototype._$get_text,function(value){\r\n\t\tif (this._tf.text !=value){\r\n\t\t\tvalue=value+\"\";\r\n\t\t\tthis._tf.text=value;\r\n\t\t\tthis.event(/*laya.events.Event.CHANGE*/\"change\");\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*表示此对象包含的文本背景 <code>AutoBitmap</code> 组件实例。\r\n\t*/\r\n\t__getset(0,__proto,'bg',function(){\r\n\t\treturn this._bg;\r\n\t\t},function(value){\r\n\t\tthis.graphics=this._bg=value;\r\n\t});\r\n\r\n\t/**\r\n\t*设置原生input输入框的y坐标偏移。\r\n\t*/\r\n\t__getset(0,__proto,'inputElementYAdjuster',function(){\r\n\t\treturn (this._tf).inputElementYAdjuster;\r\n\t\t},function(value){\r\n\t\t(this._tf).inputElementYAdjuster=value;\r\n\t});\r\n\r\n\t/**\r\n\t*<p>指示当前是否是文本域。</p>\r\n\t*值为true表示当前是文本域，否则不是文本域。\r\n\t*/\r\n\t__getset(0,__proto,'multiline',function(){\r\n\t\treturn (this._tf).multiline;\r\n\t\t},function(value){\r\n\t\t(this._tf).multiline=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.ui.Image#skin\r\n\t*/\r\n\t__getset(0,__proto,'skin',function(){\r\n\t\treturn this._skin;\r\n\t\t},function(value){\r\n\t\tif (this._skin !=value){\r\n\t\t\tthis._skin=value;\r\n\t\t\tthis._bg || (this.graphics=this._bg=new AutoBitmap());\r\n\t\t\tthis._bg.source=Loader.getRes(this._skin);\r\n\t\t\tthis._width && (this._bg.width=this._width);\r\n\t\t\tthis._height && (this._bg.height=this._height);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*<p>当前实例的背景图（ <code>AutoBitmap</code> ）实例的有效缩放网格数据。</p>\r\n\t*<p>数据格式：\"上边距,右边距,下边距,左边距,是否重复填充(值为0：不重复填充，1：重复填充)\"，以逗号分隔。\r\n\t*<ul><li>例如：\"4,4,4,4,1\"</li></ul></p>\r\n\t*@see laya.ui.AutoBitmap.sizeGrid\r\n\t*/\r\n\t__getset(0,__proto,'sizeGrid',function(){\r\n\t\treturn this._bg && this._bg.sizeGrid ? this._bg.sizeGrid.join(\",\"):null;\r\n\t\t},function(value){\r\n\t\tthis._bg || (this.graphics=this._bg=new AutoBitmap());\r\n\t\tthis._bg.sizeGrid=UIUtils.fillArray(Styles.defaultSizeGrid,value,Number);\r\n\t});\r\n\r\n\t/**\r\n\t*设置原生input输入框的x坐标偏移。\r\n\t*/\r\n\t__getset(0,__proto,'inputElementXAdjuster',function(){\r\n\t\treturn (this._tf).inputElementXAdjuster;\r\n\t\t},function(value){\r\n\t\t(this._tf).inputElementXAdjuster=value;\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tLaya.superSet(Label,this,'width',value);\r\n\t\tthis._bg && (this._bg.width=value);\r\n\t});\r\n\r\n\t/**@inheritDoc */\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tLaya.superSet(Label,this,'height',value);\r\n\t\tthis._bg && (this._bg.height=value);\r\n\t});\r\n\r\n\t/**\r\n\t*设置可编辑状态。\r\n\t*/\r\n\t__getset(0,__proto,'editable',function(){\r\n\t\treturn (this._tf).editable;\r\n\t\t},function(value){\r\n\t\t(this._tf).editable=value;\r\n\t});\r\n\r\n\t/**限制输入的字符。*/\r\n\t__getset(0,__proto,'restrict',function(){\r\n\t\treturn (this._tf).restrict;\r\n\t\t},function(pattern){\r\n\t\t(this._tf).restrict=pattern;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Input#prompt\r\n\t*/\r\n\t__getset(0,__proto,'prompt',function(){\r\n\t\treturn (this._tf).prompt;\r\n\t\t},function(value){\r\n\t\t(this._tf).prompt=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Input#promptColor\r\n\t*/\r\n\t__getset(0,__proto,'promptColor',function(){\r\n\t\treturn (this._tf).promptColor;\r\n\t\t},function(value){\r\n\t\t(this._tf).promptColor=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Input#maxChars\r\n\t*/\r\n\t__getset(0,__proto,'maxChars',function(){\r\n\t\treturn (this._tf).maxChars;\r\n\t\t},function(value){\r\n\t\t(this._tf).maxChars=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Input#focus\r\n\t*/\r\n\t__getset(0,__proto,'focus',function(){\r\n\t\treturn (this._tf).focus;\r\n\t\t},function(value){\r\n\t\t(this._tf).focus=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Input#type\r\n\t*/\r\n\t__getset(0,__proto,'type',function(){\r\n\t\treturn (this._tf).type;\r\n\t\t},function(value){\r\n\t\t(this._tf).type=value;\r\n\t});\r\n\r\n\t/**\r\n\t*@copy laya.display.Input#asPassword\r\n\t*/\r\n\t__getset(0,__proto,'asPassword',function(){\r\n\t\treturn (this._tf).asPassword;\r\n\t\t},function(value){\r\n\t\t(this._tf).asPassword=value;\r\n\t});\r\n\r\n\treturn TextInput;\r\n})(Label)\r\n\r\n\r\n/**\r\n*使用 <code>VSlider</code> 控件，用户可以通过在滑块轨道的终点之间移动滑块来选择值。\r\n*<p> <code>VSlider</code> 控件采用垂直方向。滑块轨道从下往上扩展，而标签位于轨道的左右两侧。</p>\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>VSlider</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.HSlider;\r\n\t*import laya.ui.VSlider;\r\n\t*import laya.utils.Handler;\r\n\t*public class VSlider_Example\r\n\t*{\r\n\t\t*private var vSlider:VSlider;\r\n\t\t*public function VSlider_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load([\"resource/ui/vslider.png\",\"resource/ui/vslider$bar.png\"],Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*vSlider=new VSlider();//创建一个 VSlider 类的实例对象 vSlider 。\r\n\t\t\t*vSlider.skin=\"resource/ui/vslider.png\";//设置 vSlider 的皮肤。\r\n\t\t\t*vSlider.min=0;//设置 vSlider 最低位置值。\r\n\t\t\t*vSlider.max=10;//设置 vSlider 最高位置值。\r\n\t\t\t*vSlider.value=2;//设置 vSlider 当前位置值。\r\n\t\t\t*vSlider.tick=1;//设置 vSlider 刻度值。\r\n\t\t\t*vSlider.x=100;//设置 vSlider 对象的属性 x 的值，用于控制 vSlider 对象的显示位置。\r\n\t\t\t*vSlider.y=100;//设置 vSlider 对象的属性 y 的值，用于控制 vSlider 对象的显示位置。\r\n\t\t\t*vSlider.changeHandler=new Handler(this,onChange);//设置 vSlider 位置变化处理器。\r\n\t\t\t*Laya.stage.addChild(vSlider);//把 vSlider 添加到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onChange(value:Number):void\r\n\t\t*{\r\n\t\t\t*trace(\"滑块的位置： value=\"+value);\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*var vSlider;\r\n*Laya.loader.load([\"resource/ui/vslider.png\",\"resource/ui/vslider$bar.png\"],laya.utils.Handler.create(this,onLoadComplete));//加载资源。\r\n*function onLoadComplete(){\r\n\t*vSlider=new laya.ui.VSlider();//创建一个 VSlider 类的实例对象 vSlider 。\r\n\t*vSlider.skin=\"resource/ui/vslider.png\";//设置 vSlider 的皮肤。\r\n\t*vSlider.min=0;//设置 vSlider 最低位置值。\r\n\t*vSlider.max=10;//设置 vSlider 最高位置值。\r\n\t*vSlider.value=2;//设置 vSlider 当前位置值。\r\n\t*vSlider.tick=1;//设置 vSlider 刻度值。\r\n\t*vSlider.x=100;//设置 vSlider 对象的属性 x 的值，用于控制 vSlider 对象的显示位置。\r\n\t*vSlider.y=100;//设置 vSlider 对象的属性 y 的值，用于控制 vSlider 对象的显示位置。\r\n\t*vSlider.changeHandler=new laya.utils.Handler(this,onChange);//设置 vSlider 位置变化处理器。\r\n\t*Laya.stage.addChild(vSlider);//把 vSlider 添加到显示列表。\r\n\t*}\r\n*function onChange(value){\r\n\t*console.log(\"滑块的位置： value=\"+value);\r\n\t*}\r\n*@example\r\n*import HSlider=laya.ui.HSlider;\r\n*import VSlider=laya.ui.VSlider;\r\n*import Handler=laya.utils.Handler;\r\n*class VSlider_Example {\r\n\t*private vSlider:VSlider;\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load([\"resource/ui/vslider.png\",\"resource/ui/vslider$bar.png\"],Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*this.vSlider=new VSlider();//创建一个 VSlider 类的实例对象 vSlider 。\r\n\t\t*this.vSlider.skin=\"resource/ui/vslider.png\";//设置 vSlider 的皮肤。\r\n\t\t*this.vSlider.min=0;//设置 vSlider 最低位置值。\r\n\t\t*this.vSlider.max=10;//设置 vSlider 最高位置值。\r\n\t\t*this.vSlider.value=2;//设置 vSlider 当前位置值。\r\n\t\t*this.vSlider.tick=1;//设置 vSlider 刻度值。\r\n\t\t*this.vSlider.x=100;//设置 vSlider 对象的属性 x 的值，用于控制 vSlider 对象的显示位置。\r\n\t\t*this.vSlider.y=100;//设置 vSlider 对象的属性 y 的值，用于控制 vSlider 对象的显示位置。\r\n\t\t*this.vSlider.changeHandler=new Handler(this,this.onChange);//设置 vSlider 位置变化处理器。\r\n\t\t*Laya.stage.addChild(this.vSlider);//把 vSlider 添加到显示列表。\r\n\t\t*}\r\n\t*private onChange(value:number):void {\r\n\t\t*console.log(\"滑块的位置： value=\"+value);\r\n\t\t*}\r\n\t*}\r\n*@see laya.ui.Slider\r\n*/\r\n//class laya.ui.VSlider extends laya.ui.Slider\r\nvar VSlider=(function(_super){\r\n\tfunction VSlider(){\r\n\t\tVSlider.__super.call(this);;\r\n\t}\r\n\r\n\t__class(VSlider,'laya.ui.VSlider',_super);\r\n\treturn VSlider;\r\n})(Slider)\r\n\r\n\r\n/**\r\n*<code>Dialog</code> 组件是一个弹出对话框，实现对话框弹出，拖动，模式窗口功能。\r\n*可以通过UIConfig设置弹出框背景透明度，模式窗口点击边缘是否关闭等\r\n*通过设置zOrder属性，可以更改弹出的层次\r\n*通过设置popupEffect和closeEffect可以设置弹出效果和关闭效果，如果不想有任何弹出关闭效果，可以设置前述属性为空\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>Dialog</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.Dialog;\r\n\t*import laya.utils.Handler;\r\n\t*public class Dialog_Example\r\n\t*{\r\n\t\t*private var dialog:Dialog_Instance;\r\n\t\t*public function Dialog_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load(\"resource/ui/btn_close.png\",Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*dialog=new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。\r\n\t\t\t*dialog.dragArea=\"0,0,150,50\";//设置 dialog 的拖拽区域。\r\n\t\t\t*dialog.show();//显示 dialog。\r\n\t\t\t*dialog.closeHandler=new Handler(this,onClose);//设置 dialog 的关闭函数处理器。\r\n\t\t\t*}\r\n\t\t*private function onClose(name:String):void\r\n\t\t*{\r\n\t\t\t*if (name==Dialog.CLOSE)\r\n\t\t\t*{\r\n\t\t\t\t*trace(\"通过点击 name 为\"+name+\"的组件，关闭了dialog。\");\r\n\t\t\t\t*}\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*import laya.ui.Button;\r\n*import laya.ui.Dialog;\r\n*import laya.ui.Image;\r\n*class Dialog_Instance extends Dialog\r\n*{\r\n\t*function Dialog_Instance():void\r\n\t*{\r\n\t\t*var bg:Image=new Image(\"resource/ui/bg.png\");\r\n\t\t*bg.sizeGrid=\"40,10,5,10\";\r\n\t\t*bg.width=150;\r\n\t\t*bg.height=250;\r\n\t\t*addChild(bg);\r\n\t\t*var image:Image=new Image(\"resource/ui/image.png\");\r\n\t\t*addChild(image);\r\n\t\t*var button:Button=new Button(\"resource/ui/btn_close.png\");\r\n\t\t*button.name=Dialog.CLOSE;//设置button的name属性值。\r\n\t\t*button.x=0;\r\n\t\t*button.y=0;\r\n\t\t*addChild(button);\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高、渲染模式\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*var dialog;\r\n*Laya.loader.load(\"resource/ui/btn_close.png\",laya.utils.Handler.create(this,loadComplete));//加载资源\r\n*(function (_super){//新建一个类Dialog_Instance继承自laya.ui.Dialog。\r\n\t*function Dialog_Instance(){\r\n\t\t*Dialog_Instance.__super.call(this);//初始化父类\r\n\t\t*var bg=new laya.ui.Image(\"resource/ui/bg.png\");//新建一个 Image 类的实例 bg 。\r\n\t\t*bg.sizeGrid=\"10,40,10,5\";//设置 bg 的网格信息。\r\n\t\t*bg.width=150;//设置 bg 的宽度。\r\n\t\t*bg.height=250;//设置 bg 的高度。\r\n\t\t*this.addChild(bg);//将 bg 添加到显示列表。\r\n\t\t*var image=new laya.ui.Image(\"resource/ui/image.png\");//新建一个 Image 类的实例 image 。\r\n\t\t*this.addChild(image);//将 image 添加到显示列表。\r\n\t\t*var button=new laya.ui.Button(\"resource/ui/btn_close.png\");//新建一个 Button 类的实例 bg 。\r\n\t\t*button.name=laya.ui.Dialog.CLOSE;//设置 button 的 name 属性值。\r\n\t\t*button.x=0;//设置 button 对象的属性 x 的值，用于控制 button 对象的显示位置。\r\n\t\t*button.y=0;//设置 button 对象的属性 y 的值，用于控制 button 对象的显示位置。\r\n\t\t*this.addChild(button);//将 button 添加到显示列表。\r\n\t\t*};\r\n\t*Laya.class(Dialog_Instance,\"mypackage.dialogExample.Dialog_Instance\",_super);//注册类Dialog_Instance。\r\n\t*})(laya.ui.Dialog);\r\n*function loadComplete(){\r\n\t*console.log(\"资源加载完成！\");\r\n\t*dialog=new mypackage.dialogExample.Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。\r\n\t*dialog.dragArea=\"0,0,150,50\";//设置 dialog 的拖拽区域。\r\n\t*dialog.show();//显示 dialog。\r\n\t*dialog.closeHandler=new laya.utils.Handler(this,onClose);//设置 dialog 的关闭函数处理器。\r\n\t*}\r\n*function onClose(name){\r\n\t*if (name==laya.ui.Dialog.CLOSE){\r\n\t\t*console.log(\"通过点击 name 为\"+name+\"的组件，关闭了dialog。\");\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*import Dialog=laya.ui.Dialog;\r\n*import Handler=laya.utils.Handler;\r\n*class Dialog_Example {\r\n\t*private dialog:Dialog_Instance;\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load(\"resource/ui/btn_close.png\",Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*this.dialog=new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。\r\n\t\t*this.dialog.dragArea=\"0,0,150,50\";//设置 dialog 的拖拽区域。\r\n\t\t*this.dialog.show();//显示 dialog。\r\n\t\t*this.dialog.closeHandler=new Handler(this,this.onClose);//设置 dialog 的关闭函数处理器。\r\n\t\t*}\r\n\t*private onClose(name:string):void {\r\n\t\t*if (name==Dialog.CLOSE){\r\n\t\t\t*console.log(\"通过点击 name 为\"+name+\"的组件，关闭了dialog。\");\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*import Button=laya.ui.Button;\r\n*class Dialog_Instance extends Dialog {\r\n\t*Dialog_Instance():void {\r\n\t\t*var bg:laya.ui.Image=new laya.ui.Image(\"resource/ui/bg.png\");\r\n\t\t*bg.sizeGrid=\"40,10,5,10\";\r\n\t\t*bg.width=150;\r\n\t\t*bg.height=250;\r\n\t\t*this.addChild(bg);\r\n\t\t*var image:laya.ui.Image=new laya.ui.Image(\"resource/ui/image.png\");\r\n\t\t*this.addChild(image);\r\n\t\t*var button:Button=new Button(\"resource/ui/btn_close.png\");\r\n\t\t*button.name=Dialog.CLOSE;//设置button的name属性值。\r\n\t\t*button.x=0;\r\n\t\t*button.y=0;\r\n\t\t*this.addChild(button);\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.Dialog extends laya.ui.View\r\nvar Dialog=(function(_super){\r\n\tfunction Dialog(){\r\n\t\t/**\r\n\t\t*一个布尔值，指定对话框是否居中弹。\r\n\t\t*<p>如果值为true，则居中弹出，否则，则根据对象坐标显示，默认为true。</p>\r\n\t\t*/\r\n\t\tthis.popupCenter=true;\r\n\t\t/**\r\n\t\t*对话框被关闭时会触发的回调函数处理器。\r\n\t\t*<p>回调函数参数为用户点击的按钮名字name:String。</p>\r\n\t\t*/\r\n\t\tthis.closeHandler=null;\r\n\t\t/**\r\n\t\t*弹出对话框效果，可以设置一个效果代替默认的弹出效果，如果不想有任何效果，可以赋值为null\r\n\t\t*全局默认弹出效果可以通过manager.popupEffect修改\r\n\t\t*/\r\n\t\tthis.popupEffect=null;\r\n\t\t/**\r\n\t\t*关闭对话框效果，可以设置一个效果代替默认的关闭效果，如果不想有任何效果，可以赋值为null\r\n\t\t*全局默认关闭效果可以通过manager.closeEffect修改\r\n\t\t*/\r\n\t\tthis.closeEffect=null;\r\n\t\t/**组名称*/\r\n\t\tthis.group=null;\r\n\t\t/**是否是模式窗口*/\r\n\t\tthis.isModal=false;\r\n\t\t/**@private */\r\n\t\tthis._dragArea=null;\r\n\t\tDialog.__super.call(this);\r\n\t}\r\n\r\n\t__class(Dialog,'laya.ui.Dialog',_super);\r\n\tvar __proto=Dialog.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.initialize=function(){\r\n\t\tthis.popupEffect=Dialog.manager.popupEffectHandler;\r\n\t\tthis.closeEffect=Dialog.manager.closeEffectHandler;\r\n\t\tthis._dealDragArea();\r\n\t\tthis.on(/*laya.events.Event.CLICK*/\"click\",this,this._onClick);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._dealDragArea=function(){\r\n\t\tvar dragTarget=this.getChildByName(\"drag\");\r\n\t\tif (dragTarget){\r\n\t\t\tthis.dragArea=dragTarget.x+\",\"+dragTarget.y+\",\"+dragTarget.width+\",\"+dragTarget.height;\r\n\t\t\tdragTarget.removeSelf();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*@private (protected)\r\n\t*对象的 <code>Event.CLICK</code> 点击事件侦听处理函数。\r\n\t*/\r\n\t__proto._onClick=function(e){\r\n\t\tvar btn=e.target;\r\n\t\tif (btn){\r\n\t\t\tswitch (btn.name){\r\n\t\t\t\tcase \"close\":\r\n\t\t\t\tcase \"cancel\":\r\n\t\t\t\tcase \"sure\":\r\n\t\t\t\tcase \"no\":\r\n\t\t\t\tcase \"ok\":\r\n\t\t\t\tcase \"yes\":\r\n\t\t\t\t\tthis.close(btn.name);\r\n\t\t\t\t\tbreak ;\r\n\t\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t*显示对话框（以非模式窗口方式显示）。\r\n\t*@param closeOther 是否关闭其它的对话框。若值为true则关闭其它对话框。\r\n\t*@param showEffect 是否显示弹出效果\r\n\t*/\r\n\t__proto.show=function(closeOther,showEffect){\r\n\t\t(closeOther===void 0)&& (closeOther=false);\r\n\t\t(showEffect===void 0)&& (showEffect=true);\r\n\t\tthis._open(false,closeOther,showEffect);\r\n\t}\r\n\r\n\t/**\r\n\t*显示对话框（以模式窗口方式显示）。\r\n\t*@param closeOther 是否关闭其它的对话框。若值为true则关闭其它对话框。\r\n\t*@param showEffect 是否显示弹出效果\r\n\t*/\r\n\t__proto.popup=function(closeOther,showEffect){\r\n\t\t(closeOther===void 0)&& (closeOther=false);\r\n\t\t(showEffect===void 0)&& (showEffect=true);\r\n\t\tthis._open(true,closeOther,showEffect);\r\n\t}\r\n\r\n\t/**@private */\r\n\t__proto._open=function(modal,closeOther,showEffect){\r\n\t\tDialog.manager.lock(false);\r\n\t\tthis.isModal=modal;\r\n\t\tDialog.manager.open(this,closeOther,showEffect);\r\n\t}\r\n\r\n\t/**打开完成后，调用此方法（如果有弹出动画，则在动画完成后执行）*/\r\n\t__proto.onOpened=function(){}\r\n\t/**\r\n\t*关闭对话框。\r\n\t*@param type 如果是点击默认关闭按钮触发，则传入关闭按钮的名字(name)，否则为null。\r\n\t*@param showEffect 是否显示关闭效果\r\n\t*/\r\n\t__proto.close=function(type,showEffect){\r\n\t\t(showEffect===void 0)&& (showEffect=true);\r\n\t\tDialog.manager.close(this,type,showEffect);\r\n\t}\r\n\r\n\t/**关闭完成后，调用此方法（如果有关闭动画，则在动画完成后执行）\r\n\t*@param type 如果是点击默认关闭按钮触发，则传入关闭按钮的名字(name)，否则为null。\r\n\t*/\r\n\t__proto.onClosed=function(type){}\r\n\t/**@private */\r\n\t__proto._onMouseDown=function(e){\r\n\t\tvar point=this.getMousePoint();\r\n\t\tif (this._dragArea.contains(point.x,point.y))this.startDrag();\r\n\t\telse this.stopDrag();\r\n\t}\r\n\r\n\t/**\r\n\t*用来指定对话框的拖拽区域。默认值为\"0,0,0,0\"。\r\n\t*<p><b>格式：</b>构成一个矩形所需的 x,y,width,heith 值，用逗号连接为字符串。\r\n\t*例如：\"0,0,100,200\"。\r\n\t*</p>\r\n\t*\r\n\t*@see #includeExamplesSummary 请参考示例\r\n\t*/\r\n\t__getset(0,__proto,'dragArea',function(){\r\n\t\tif (this._dragArea)return this._dragArea.toString();\r\n\t\treturn null;\r\n\t\t},function(value){\r\n\t\tif (value){\r\n\t\t\tvar a=UIUtils.fillArray([0,0,0,0],value,Number);\r\n\t\t\tthis._dragArea=new Rectangle(a[0],a[1],a[2],a[3]);\r\n\t\t\tthis.on(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this._onMouseDown);\r\n\t\t\t}else {\r\n\t\t\tthis._dragArea=null;\r\n\t\t\tthis.off(/*laya.events.Event.MOUSE_DOWN*/\"mousedown\",this,this._onMouseDown);\r\n\t\t}\r\n\t});\r\n\r\n\t/**\r\n\t*弹出框的显示状态；如果弹框处于显示中，则为true，否则为false;\r\n\t*/\r\n\t__getset(0,__proto,'isPopup',function(){\r\n\t\treturn this.parent !=null;\r\n\t});\r\n\r\n\t__getset(0,__proto,'zOrder',_super.prototype._$get_zOrder,function(value){\r\n\t\tLaya.superSet(View,this,'zOrder',value);\r\n\t\tDialog.manager._checkMask();\r\n\t});\r\n\r\n\t/**对话框管理容器，所有的对话框都在该容器内，并且受管理器管，可以自定义自己的管理器，来更改窗口管理的流程。\r\n\t*任意对话框打开和关闭，都会触发管理类的open和close事件*/\r\n\t__getset(1,Dialog,'manager',function(){\r\n\t\treturn Dialog._manager=Dialog._manager|| new DialogManager();\r\n\t\t},function(value){\r\n\t\tDialog._manager=value;\r\n\t});\r\n\r\n\tDialog.setLockView=function(view){\r\n\t\tDialog.manager.setLockView(view);\r\n\t}\r\n\r\n\tDialog.lock=function(value){\r\n\t\tDialog.manager.lock(value);\r\n\t}\r\n\r\n\tDialog.closeAll=function(){\r\n\t\tDialog.manager.closeAll();\r\n\t}\r\n\r\n\tDialog.getDialogsByGroup=function(group){\r\n\t\treturn Dialog.manager.getDialogsByGroup(group);\r\n\t}\r\n\r\n\tDialog.closeByGroup=function(group){\r\n\t\treturn Dialog.manager.closeByGroup(group);\r\n\t}\r\n\r\n\tDialog.CLOSE=\"close\";\r\n\tDialog.CANCEL=\"cancel\";\r\n\tDialog.SURE=\"sure\";\r\n\tDialog.NO=\"no\";\r\n\tDialog.OK=\"ok\";\r\n\tDialog.YES=\"yes\";\r\n\tDialog._manager=null;\r\n\treturn Dialog;\r\n})(View)\r\n\r\n\r\n/**\r\n*<code>HBox</code> 是一个水平布局容器类。\r\n*/\r\n//class laya.ui.HBox extends laya.ui.LayoutBox\r\nvar HBox=(function(_super){\r\n\tfunction HBox(){\r\n\t\tHBox.__super.call(this);;\r\n\t}\r\n\r\n\t__class(HBox,'laya.ui.HBox',_super);\r\n\tvar __proto=HBox.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.sortItem=function(items){\r\n\t\tif (items)items.sort(function(a,b){return a.x-b.x;});\r\n\t}\r\n\r\n\t/**@inheritDoc */\r\n\t__proto.changeItems=function(){\r\n\t\tthis._itemChanged=false;\r\n\t\tvar items=[];\r\n\t\tvar maxHeight=0;\r\n\t\tfor (var i=0,n=this.numChildren;i < n;i++){\r\n\t\t\tvar item=this.getChildAt(i);\r\n\t\t\tif (item&&item.layoutEnabled){\r\n\t\t\t\titems.push(item);\r\n\t\t\t\tmaxHeight=this._height?this._height:Math.max(maxHeight,item.height *item.scaleY);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.sortItem(items);\r\n\t\tvar left=0;\r\n\t\tfor (i=0,n=items.length;i < n;i++){\r\n\t\t\titem=items[i];\r\n\t\t\titem.x=left;\r\n\t\t\tleft+=item.width *item.scaleX+this._space;\r\n\t\t\tif (this._align==\"top\"){\r\n\t\t\t\titem.y=0;\r\n\t\t\t\t}else if (this._align==\"middle\"){\r\n\t\t\t\titem.y=(maxHeight-item.height *item.scaleY)*0.5;\r\n\t\t\t\t}else if (this._align==\"bottom\"){\r\n\t\t\t\titem.y=maxHeight-item.height *item.scaleY;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.changeSize();\r\n\t}\r\n\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tif (this._height !=value){\r\n\t\t\tLaya.superSet(LayoutBox,this,'height',value);\r\n\t\t\tthis.callLater(this.changeItems);\r\n\t\t}\r\n\t});\r\n\r\n\tHBox.NONE=\"none\";\r\n\tHBox.TOP=\"top\";\r\n\tHBox.MIDDLE=\"middle\";\r\n\tHBox.BOTTOM=\"bottom\";\r\n\treturn HBox;\r\n})(LayoutBox)\r\n\r\n\r\n/**\r\n*<code>VBox</code> 是一个垂直布局容器类。\r\n*/\r\n//class laya.ui.VBox extends laya.ui.LayoutBox\r\nvar VBox=(function(_super){\r\n\tfunction VBox(){\r\n\t\tVBox.__super.call(this);;\r\n\t}\r\n\r\n\t__class(VBox,'laya.ui.VBox',_super);\r\n\tvar __proto=VBox.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.changeItems=function(){\r\n\t\tthis._itemChanged=false;\r\n\t\tvar items=[];\r\n\t\tvar maxWidth=0;\r\n\t\tfor (var i=0,n=this.numChildren;i < n;i++){\r\n\t\t\tvar item=this.getChildAt(i);\r\n\t\t\tif (item&&item.layoutEnabled){\r\n\t\t\t\titems.push(item);\r\n\t\t\t\tmaxWidth=this._width?this._width:Math.max(maxWidth,item.width *item.scaleX);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.sortItem(items);\r\n\t\tvar top=0;\r\n\t\tfor (i=0,n=items.length;i < n;i++){\r\n\t\t\titem=items[i];\r\n\t\t\titem.y=top;\r\n\t\t\ttop+=item.height *item.scaleY+this._space;\r\n\t\t\tif (this._align==\"left\"){\r\n\t\t\t\titem.x=0;\r\n\t\t\t\t}else if (this._align==\"center\"){\r\n\t\t\t\titem.x=(maxWidth-item.width *item.scaleX)*0.5;\r\n\t\t\t\t}else if (this._align==\"right\"){\r\n\t\t\t\titem.x=maxWidth-item.width *item.scaleX;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.changeSize();\r\n\t}\r\n\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tif (this._width !=value){\r\n\t\t\tLaya.superSet(LayoutBox,this,'width',value);\r\n\t\t\tthis.callLater(this.changeItems);\r\n\t\t}\r\n\t});\r\n\r\n\tVBox.NONE=\"none\";\r\n\tVBox.LEFT=\"left\";\r\n\tVBox.CENTER=\"center\";\r\n\tVBox.RIGHT=\"right\";\r\n\treturn VBox;\r\n})(LayoutBox)\r\n\r\n\r\n/**\r\n*<code>RadioGroup</code> 控件定义一组 <code>Radio</code> 控件，这些控件相互排斥；\r\n*因此，用户每次只能选择一个 <code>Radio</code> 控件。\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>RadioGroup</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.Radio;\r\n\t*import laya.ui.RadioGroup;\r\n\t*import laya.utils.Handler;\r\n\t*public class RadioGroup_Example\r\n\t*{\r\n\t\t*public function RadioGroup_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load([\"resource/ui/radio.png\"],Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*var radioGroup:RadioGroup=new RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。\r\n\t\t\t*radioGroup.pos(100,100);//设置 radioGroup 的位置信息。\r\n\t\t\t*radioGroup.labels=\"item0,item1,item2\";//设置 radioGroup 的标签集。\r\n\t\t\t*radioGroup.skin=\"resource/ui/radio.png\";//设置 radioGroup 的皮肤。\r\n\t\t\t*radioGroup.space=10;//设置 radioGroup 的项间隔距离。\r\n\t\t\t*radioGroup.selectHandler=new Handler(this,onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。\r\n\t\t\t*Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onSelect(index:int):void\r\n\t\t*{\r\n\t\t\t*trace(\"当前选择的单选按钮索引: index= \",index);\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高、渲染模式\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*Laya.loader.load([\"resource/ui/radio.png\"],laya.utils.Handler.create(this,onLoadComplete));\r\n*function onLoadComplete(){\r\n\t*var radioGroup=new laya.ui.RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。\r\n\t*radioGroup.pos(100,100);//设置 radioGroup 的位置信息。\r\n\t*radioGroup.labels=\"item0,item1,item2\";//设置 radioGroup 的标签集。\r\n\t*radioGroup.skin=\"resource/ui/radio.png\";//设置 radioGroup 的皮肤。\r\n\t*radioGroup.space=10;//设置 radioGroup 的项间隔距离。\r\n\t*radioGroup.selectHandler=new laya.utils.Handler(this,onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。\r\n\t*Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。\r\n\t*}\r\n*function onSelect(index){\r\n\t*console.log(\"当前选择的单选按钮索引: index= \",index);\r\n\t*}\r\n*@example\r\n*import Radio=laya.ui.Radio;\r\n*import RadioGroup=laya.ui.RadioGroup;\r\n*import Handler=laya.utils.Handler;\r\n*class RadioGroup_Example {\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load([\"resource/ui/radio.png\"],Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*var radioGroup:RadioGroup=new RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。\r\n\t\t*radioGroup.pos(100,100);//设置 radioGroup 的位置信息。\r\n\t\t*radioGroup.labels=\"item0,item1,item2\";//设置 radioGroup 的标签集。\r\n\t\t*radioGroup.skin=\"resource/ui/radio.png\";//设置 radioGroup 的皮肤。\r\n\t\t*radioGroup.space=10;//设置 radioGroup 的项间隔距离。\r\n\t\t*radioGroup.selectHandler=new Handler(this,this.onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。\r\n\t\t*Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。\r\n\t\t*}\r\n\t*private onSelect(index:number):void {\r\n\t\t*console.log(\"当前选择的单选按钮索引: index= \",index);\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.RadioGroup extends laya.ui.UIGroup\r\nvar RadioGroup=(function(_super){\r\n\tfunction RadioGroup(){\r\n\t\tRadioGroup.__super.call(this);;\r\n\t}\r\n\r\n\t__class(RadioGroup,'laya.ui.RadioGroup',_super);\r\n\tvar __proto=RadioGroup.prototype;\r\n\t/**@inheritDoc */\r\n\t__proto.createItem=function(skin,label){\r\n\t\treturn new Radio(skin,label);\r\n\t}\r\n\r\n\treturn RadioGroup;\r\n})(UIGroup)\r\n\r\n\r\n/**\r\n*<code>Tab</code> 组件用来定义选项卡按钮组。 *\r\n*@internal <p>属性：<code>selectedIndex</code> 的默认值为-1。</p>\r\n*\r\n*@example <caption>以下示例代码，创建了一个 <code>Tab</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.Tab;\r\n\t*import laya.utils.Handler;\r\n\t*public class Tab_Example\r\n\t*{\r\n\t\t*public function Tab_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load([\"resource/ui/tab.png\"],Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*var tab:Tab=new Tab();//创建一个 Tab 类的实例对象 tab 。\r\n\t\t\t*tab.skin=\"resource/ui/tab.png\";//设置 tab 的皮肤。\r\n\t\t\t*tab.labels=\"item0,item1,item2\";//设置 tab 的标签集。\r\n\t\t\t*tab.x=100;//设置 tab 对象的属性 x 的值，用于控制 tab 对象的显示位置。\r\n\t\t\t*tab.y=100;//设置 tab 对象的属性 y 的值，用于控制 tab 对象的显示位置。\r\n\t\t\t*tab.selectHandler=new Handler(this,onSelect);//设置 tab 的选择项发生改变时执行的处理器。\r\n\t\t\t*Laya.stage.addChild(tab);//将 tab 添到显示列表。\r\n\t\t\t*}\r\n\t\t*private function onSelect(index:int):void\r\n\t\t*{\r\n\t\t\t*trace(\"当前选择的表情页索引: index= \",index);\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*Laya.loader.load([\"resource/ui/tab.png\"],laya.utils.Handler.create(this,onLoadComplete));\r\n*function onLoadComplete(){\r\n\t*var tab=new laya.ui.Tab();//创建一个 Tab 类的实例对象 tab 。\r\n\t*tab.skin=\"resource/ui/tab.png\";//设置 tab 的皮肤。\r\n\t*tab.labels=\"item0,item1,item2\";//设置 tab 的标签集。\r\n\t*tab.x=100;//设置 tab 对象的属性 x 的值，用于控制 tab 对象的显示位置。\r\n\t*tab.y=100;//设置 tab 对象的属性 y 的值，用于控制 tab 对象的显示位置。\r\n\t*tab.selectHandler=new laya.utils.Handler(this,onSelect);//设置 tab 的选择项发生改变时执行的处理器。\r\n\t*Laya.stage.addChild(tab);//将 tab 添到显示列表。\r\n\t*}\r\n*function onSelect(index){\r\n\t*console.log(\"当前选择的标签页索引: index= \",index);\r\n\t*}\r\n*@example\r\n*import Tab=laya.ui.Tab;\r\n*import Handler=laya.utils.Handler;\r\n*class Tab_Example {\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load([\"resource/ui/tab.png\"],Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*var tab:Tab=new Tab();//创建一个 Tab 类的实例对象 tab 。\r\n\t\t*tab.skin=\"resource/ui/tab.png\";//设置 tab 的皮肤。\r\n\t\t*tab.labels=\"item0,item1,item2\";//设置 tab 的标签集。\r\n\t\t*tab.x=100;//设置 tab 对象的属性 x 的值，用于控制 tab 对象的显示位置。\r\n\t\t*tab.y=100;//设置 tab 对象的属性 y 的值，用于控制 tab 对象的显示位置。\r\n\t\t*tab.selectHandler=new Handler(this,this.onSelect);//设置 tab 的选择项发生改变时执行的处理器。\r\n\t\t*Laya.stage.addChild(tab);//将 tab 添到显示列表。\r\n\t\t*}\r\n\t*private onSelect(index:number):void {\r\n\t\t*console.log(\"当前选择的表情页索引: index= \",index);\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.Tab extends laya.ui.UIGroup\r\nvar Tab=(function(_super){\r\n\tfunction Tab(){\r\n\t\tTab.__super.call(this);;\r\n\t}\r\n\r\n\t__class(Tab,'laya.ui.Tab',_super);\r\n\tvar __proto=Tab.prototype;\r\n\t/**\r\n\t*@private\r\n\t*@inheritDoc\r\n\t*/\r\n\t__proto.createItem=function(skin,label){\r\n\t\treturn new Button(skin,label);\r\n\t}\r\n\r\n\treturn Tab;\r\n})(UIGroup)\r\n\r\n\r\n/**\r\n*<code>TextArea</code> 类用于创建显示对象以显示和输入文本。\r\n*@example <caption>以下示例代码，创建了一个 <code>TextArea</code> 实例。</caption>\r\n*package\r\n*{\r\n\t*import laya.ui.TextArea;\r\n\t*import laya.utils.Handler;\r\n\t*public class TextArea_Example\r\n\t*{\r\n\t\t*public function TextArea_Example()\r\n\t\t*{\r\n\t\t\t*Laya.init(640,800);//设置游戏画布宽高。\r\n\t\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t\t*Laya.loader.load([\"resource/ui/input.png\"],Handler.create(this,onLoadComplete));//加载资源。\r\n\t\t\t*}\r\n\t\t*private function onLoadComplete():void\r\n\t\t*{\r\n\t\t\t*var textArea:TextArea=new TextArea(\"这个一个TextArea实例。\");//创建一个 TextArea 类的实例对象 textArea 。\r\n\t\t\t*textArea.skin=\"resource/ui/input.png\";//设置 textArea 的皮肤。\r\n\t\t\t*textArea.sizeGrid=\"4,4,4,4\";//设置 textArea 的网格信息。\r\n\t\t\t*textArea.color=\"#008fff\";//设置 textArea 的文本颜色。\r\n\t\t\t*textArea.font=\"Arial\";//设置 textArea 的字体。\r\n\t\t\t*textArea.bold=true;//设置 textArea 的文本显示为粗体。\r\n\t\t\t*textArea.fontSize=20;//设置 textArea 的文本字体大小。\r\n\t\t\t*textArea.wordWrap=true;//设置 textArea 的文本自动换行。\r\n\t\t\t*textArea.x=100;//设置 textArea 对象的属性 x 的值，用于控制 textArea 对象的显示位置。\r\n\t\t\t*textArea.y=100;//设置 textArea 对象的属性 y 的值，用于控制 textArea 对象的显示位置。\r\n\t\t\t*textArea.width=300;//设置 textArea 的宽度。\r\n\t\t\t*textArea.height=200;//设置 textArea 的高度。\r\n\t\t\t*Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。\r\n\t\t\t*}\r\n\t\t*}\r\n\t*}\r\n*@example\r\n*Laya.init(640,800);//设置游戏画布宽高、渲染模式\r\n*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色\r\n*Laya.loader.load([\"resource/ui/input.png\"],laya.utils.Handler.create(this,onLoadComplete));//加载资源。\r\n*function onLoadComplete(){\r\n\t*var textArea=new laya.ui.TextArea(\"这个一个TextArea实例。\");//创建一个 TextArea 类的实例对象 textArea 。\r\n\t*textArea.skin=\"resource/ui/input.png\";//设置 textArea 的皮肤。\r\n\t*textArea.sizeGrid=\"4,4,4,4\";//设置 textArea 的网格信息。\r\n\t*textArea.color=\"#008fff\";//设置 textArea 的文本颜色。\r\n\t*textArea.font=\"Arial\";//设置 textArea 的字体。\r\n\t*textArea.bold=true;//设置 textArea 的文本显示为粗体。\r\n\t*textArea.fontSize=20;//设置 textArea 的文本字体大小。\r\n\t*textArea.wordWrap=true;//设置 textArea 的文本自动换行。\r\n\t*textArea.x=100;//设置 textArea 对象的属性 x 的值，用于控制 textArea 对象的显示位置。\r\n\t*textArea.y=100;//设置 textArea 对象的属性 y 的值，用于控制 textArea 对象的显示位置。\r\n\t*textArea.width=300;//设置 textArea 的宽度。\r\n\t*textArea.height=200;//设置 textArea 的高度。\r\n\t*Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。\r\n\t*}\r\n*@example\r\n*import TextArea=laya.ui.TextArea;\r\n*import Handler=laya.utils.Handler;\r\n*class TextArea_Example {\r\n\t*constructor(){\r\n\t\t*Laya.init(640,800);//设置游戏画布宽高、渲染模式。\r\n\t\t*Laya.stage.bgColor=\"#efefef\";//设置画布的背景颜色。\r\n\t\t*Laya.loader.load([\"resource/ui/input.png\"],Handler.create(this,this.onLoadComplete));//加载资源。\r\n\t\t*}\r\n\t*private onLoadComplete():void {\r\n\t\t*var textArea:TextArea=new TextArea(\"这个一个TextArea实例。\");//创建一个 TextArea 类的实例对象 textArea 。\r\n\t\t*textArea.skin=\"resource/ui/input.png\";//设置 textArea 的皮肤。\r\n\t\t*textArea.sizeGrid=\"4,4,4,4\";//设置 textArea 的网格信息。\r\n\t\t*textArea.color=\"#008fff\";//设置 textArea 的文本颜色。\r\n\t\t*textArea.font=\"Arial\";//设置 textArea 的字体。\r\n\t\t*textArea.bold=true;//设置 textArea 的文本显示为粗体。\r\n\t\t*textArea.fontSize=20;//设置 textArea 的文本字体大小。\r\n\t\t*textArea.wordWrap=true;//设置 textArea 的文本自动换行。\r\n\t\t*textArea.x=100;//设置 textArea 对象的属性 x 的值，用于控制 textArea 对象的显示位置。\r\n\t\t*textArea.y=100;//设置 textArea 对象的属性 y 的值，用于控制 textArea 对象的显示位置。\r\n\t\t*textArea.width=300;//设置 textArea 的宽度。\r\n\t\t*textArea.height=200;//设置 textArea 的高度。\r\n\t\t*Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。\r\n\t\t*}\r\n\t*}\r\n*/\r\n//class laya.ui.TextArea extends laya.ui.TextInput\r\nvar TextArea=(function(_super){\r\n\tfunction TextArea(text){\r\n\t\t/**@private */\r\n\t\tthis._vScrollBar=null;\r\n\t\t/**@private */\r\n\t\tthis._hScrollBar=null;\r\n\t\t(text===void 0)&& (text=\"\");\r\n\t\tTextArea.__super.call(this,text);\r\n\t}\r\n\r\n\t__class(TextArea,'laya.ui.TextArea',_super);\r\n\tvar __proto=TextArea.prototype;\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\t_super.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._vScrollBar && this._vScrollBar.destroy();\r\n\t\tthis._hScrollBar && this._hScrollBar.destroy();\r\n\t\tthis._vScrollBar=null;\r\n\t\tthis._hScrollBar=null;\r\n\t}\r\n\r\n\t__proto.initialize=function(){\r\n\t\tthis.width=180;\r\n\t\tthis.height=150;\r\n\t\tthis._tf.wordWrap=true;\r\n\t\tthis.multiline=true;\r\n\t}\r\n\r\n\t__proto.onVBarChanged=function(e){\r\n\t\tif (this._tf.scrollY !=this._vScrollBar.value){\r\n\t\t\tthis._tf.scrollY=this._vScrollBar.value;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.onHBarChanged=function(e){\r\n\t\tif (this._tf.scrollX !=this._hScrollBar.value){\r\n\t\t\tthis._tf.scrollX=this._hScrollBar.value;\r\n\t\t}\r\n\t}\r\n\r\n\t__proto.changeScroll=function(){\r\n\t\tvar vShow=this._vScrollBar && this._tf.maxScrollY > 0;\r\n\t\tvar hShow=this._hScrollBar && this._tf.maxScrollX > 0;\r\n\t\tvar showWidth=vShow ? this._width-this._vScrollBar.width :this._width;\r\n\t\tvar showHeight=hShow ? this._height-this._hScrollBar.height :this._height;\r\n\t\tvar padding=this._tf.padding || Styles.labelPadding;\r\n\t\tthis._tf.width=showWidth;\r\n\t\tthis._tf.height=showHeight;\r\n\t\tif (this._vScrollBar){\r\n\t\t\tthis._vScrollBar.x=this._width-this._vScrollBar.width-padding[2];\r\n\t\t\tthis._vScrollBar.y=padding[1];\r\n\t\t\tthis._vScrollBar.height=this._height-(hShow ? this._hScrollBar.height :0)-padding[1]-padding[3];\r\n\t\t\tthis._vScrollBar.scrollSize=1;\r\n\t\t\tthis._vScrollBar.thumbPercent=showHeight / Math.max(this._tf.textHeight,showHeight);\r\n\t\t\tthis._vScrollBar.setScroll(1,this._tf.maxScrollY,this._tf.scrollY);\r\n\t\t\tthis._vScrollBar.visible=vShow;\r\n\t\t}\r\n\t\tif (this._hScrollBar){\r\n\t\t\tthis._hScrollBar.x=padding[0];\r\n\t\t\tthis._hScrollBar.y=this._height-this._hScrollBar.height-padding[3];\r\n\t\t\tthis._hScrollBar.width=this._width-(vShow ? this._vScrollBar.width :0)-padding[0]-padding[2];\r\n\t\t\tthis._hScrollBar.scrollSize=Math.max(showWidth *0.033,1);\r\n\t\t\tthis._hScrollBar.thumbPercent=showWidth / Math.max(this._tf.textWidth,showWidth);\r\n\t\t\tthis._hScrollBar.setScroll(0,this.maxScrollX,this.scrollX);\r\n\t\t\tthis._hScrollBar.visible=hShow;\r\n\t\t}\r\n\t}\r\n\r\n\t/**滚动到某个位置*/\r\n\t__proto.scrollTo=function(y){\r\n\t\tthis.commitMeasure();\r\n\t\tthis._tf.scrollY=y;\r\n\t}\r\n\r\n\t/**垂直滚动值*/\r\n\t__getset(0,__proto,'scrollY',function(){\r\n\t\treturn this._tf.scrollY;\r\n\t});\r\n\r\n\t__getset(0,__proto,'width',_super.prototype._$get_width,function(value){\r\n\t\tLaya.superSet(TextInput,this,'width',value);\r\n\t\tthis.callLater(this.changeScroll);\r\n\t});\r\n\r\n\t/**水平滚动条实体*/\r\n\t__getset(0,__proto,'hScrollBar',function(){\r\n\t\treturn this._hScrollBar;\r\n\t});\r\n\r\n\t__getset(0,__proto,'height',_super.prototype._$get_height,function(value){\r\n\t\tLaya.superSet(TextInput,this,'height',value);\r\n\t\tthis.callLater(this.changeScroll);\r\n\t});\r\n\r\n\t/**水平滚动最大值*/\r\n\t__getset(0,__proto,'maxScrollX',function(){\r\n\t\treturn this._tf.maxScrollX;\r\n\t});\r\n\r\n\t/**垂直滚动条皮肤*/\r\n\t__getset(0,__proto,'vScrollBarSkin',function(){\r\n\t\treturn this._vScrollBar ? this._vScrollBar.skin :null;\r\n\t\t},function(value){\r\n\t\tif (this._vScrollBar==null){\r\n\t\t\tthis.addChild(this._vScrollBar=new VScrollBar());\r\n\t\t\tthis._vScrollBar.on(/*laya.events.Event.CHANGE*/\"change\",this,this.onVBarChanged);\r\n\t\t\tthis._vScrollBar.target=this._tf;\r\n\t\t\tthis.callLater(this.changeScroll);\r\n\t\t}\r\n\t\tthis._vScrollBar.skin=value;\r\n\t});\r\n\r\n\t/**水平滚动条皮肤*/\r\n\t__getset(0,__proto,'hScrollBarSkin',function(){\r\n\t\treturn this._hScrollBar ? this._hScrollBar.skin :null;\r\n\t\t},function(value){\r\n\t\tif (this._hScrollBar==null){\r\n\t\t\tthis.addChild(this._hScrollBar=new HScrollBar());\r\n\t\t\tthis._hScrollBar.on(/*laya.events.Event.CHANGE*/\"change\",this,this.onHBarChanged);\r\n\t\t\tthis._hScrollBar.mouseWheelEnable=false;\r\n\t\t\tthis._hScrollBar.target=this._tf;\r\n\t\t\tthis.callLater(this.changeScroll);\r\n\t\t}\r\n\t\tthis._hScrollBar.skin=value;\r\n\t});\r\n\r\n\t/**垂直滚动条实体*/\r\n\t__getset(0,__proto,'vScrollBar',function(){\r\n\t\treturn this._vScrollBar;\r\n\t});\r\n\r\n\t/**垂直滚动最大值*/\r\n\t__getset(0,__proto,'maxScrollY',function(){\r\n\t\treturn this._tf.maxScrollY;\r\n\t});\r\n\r\n\t/**水平滚动值*/\r\n\t__getset(0,__proto,'scrollX',function(){\r\n\t\treturn this._tf.scrollX;\r\n\t});\r\n\r\n\treturn TextArea;\r\n})(TextInput)\r\n\r\n\r\n/**\r\n*异步Dialog的生命周期:show或者popup > onCreate(如果没有创建过)> onOpen > onClose > onDestroy(如果销毁)\r\n*onCreate在页面未创建时执行一次，再次打开页面不会再执行，适合写一些只执行一次的逻辑，比如资源加载，节点事件监听\r\n*onOpen在页面每次打开都会执行，适合做一些每次都需要处理的事情，比如消息请求，根据数据初始化页面\r\n*onClose在每次关闭的时候调用，适合关闭时停止动画，网络消息监听等逻辑\r\n*onDestroy在页面被销毁的时候调用，适合置空引用对象\r\n*/\r\n//class laya.ui.AsynDialog extends laya.ui.Dialog\r\nvar AsynDialog=(function(_super){\r\n\tfunction AsynDialog(){\r\n\t\t/**@private */\r\n\t\tthis._uiView=null;\r\n\t\t/**打开时是否关闭其他页面*/\r\n\t\tthis.isCloseOther=false;\r\n\t\tAsynDialog.__super.call(this);\r\n\t}\r\n\r\n\t__class(AsynDialog,'laya.ui.AsynDialog',_super);\r\n\tvar __proto=AsynDialog.prototype;\r\n\t/**@private */\r\n\t__proto.createView=function(uiView){\r\n\t\tthis._uiView=uiView;\r\n\t}\r\n\r\n\t__proto._open=function(modal,closeOther,showEffect){\r\n\t\tthis.isModal=modal;\r\n\t\tthis.isCloseOther=closeOther;\r\n\t\tDialog.manager.lock(true);\r\n\t\tif (this._uiView)this.onCreated();\r\n\t\telse this.onOpen();\r\n\t}\r\n\r\n\t/**\r\n\t*在页面未创建时执行一次，再次打开页面不会再执行，适合写一些只执行一次的逻辑，比如资源加载，节点事件监听\r\n\t*/\r\n\t__proto.onCreated=function(){\r\n\t\tthis.createUI();\r\n\t\tthis.onOpen();\r\n\t}\r\n\r\n\t/**根据节点数据创建UI*/\r\n\t__proto.createUI=function(){\r\n\t\tlaya.ui.View.prototype.createView.call(this,this._uiView);\r\n\t\tthis._uiView=null;\r\n\t\tthis._dealDragArea();\r\n\t}\r\n\r\n\t/**\r\n\t*在页面每次打开都会执行，适合做一些每次都需要处理的事情，比如消息请求，根据数据初始化页面\r\n\t*/\r\n\t__proto.onOpen=function(){\r\n\t\tDialog.manager.open(this,this.isCloseOther);\r\n\t\tDialog.manager.lock(false);\r\n\t}\r\n\r\n\t__proto.close=function(type,showEffect){\r\n\t\t(showEffect===void 0)&& (showEffect=true);\r\n\t\tDialog.manager.close(this);\r\n\t\tthis.onClose();\r\n\t}\r\n\r\n\t/**\r\n\t*在每次关闭的时候调用，适合关闭时停止动画，网络消息监听等逻辑\r\n\t*/\r\n\t__proto.onClose=function(){}\r\n\t__proto.destroy=function(destroyChild){\r\n\t\t(destroyChild===void 0)&& (destroyChild=true);\r\n\t\tlaya.ui.View.prototype.destroy.call(this,destroyChild);\r\n\t\tthis._uiView=null;\r\n\t\tthis.onDestroy();\r\n\t}\r\n\r\n\t/**\r\n\t*在页面被销毁的时候调用，适合置空引用对象\r\n\t*/\r\n\t__proto.onDestroy=function(){}\r\n\treturn AsynDialog;\r\n})(Dialog)\r\n\r\n\r\n\tLaya.__init([View]);\r\n})(window,document,Laya);\r\n\r\nif (typeof define === 'function' && define.amd){\r\n\tdefine('laya.core', ['require', \"exports\"], function(require, exports) {\r\n        'use strict';\r\n        Object.defineProperty(exports, '__esModule', { value: true });\r\n        for (var i in Laya) {\r\n\t\t\tvar o = Laya[i];\r\n            o && o.__isclass && (exports[i] = o);\r\n        }\r\n    });\r\n}","require('./libs/laya.core.js');\nrequire('./libs/laya.wxmini.js');\nrequire('./libs/laya.webgl.js');\nrequire('./libs/laya.ani.js');\nrequire('./libs/laya.filter.js');\n// require(\"./libs/laya.html.js\");\nrequire('./libs/laya.particle.js');\nrequire('./libs/laya.tiledmap.js');\nrequire('./libs/laya.ui.js');\n"]}