LayaAir.d.ts 1.3 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883
  1. /**
  2. * Config 用于配置一些全局参数。如需更改,请在初始化引擎之前设置。
  3. */
  4. declare class Config {
  5. /**
  6. * 动画 Animation 的默认播放时间间隔,单位为毫秒。
  7. */
  8. static animationInterval:number;
  9. /**
  10. * 设置是否抗锯齿,只对2D(WebGL)、3D有效。
  11. */
  12. static isAntialias:boolean;
  13. /**
  14. * 设置画布是否透明,只对2D(WebGL)、3D有效。
  15. */
  16. static isAlpha:boolean;
  17. /**
  18. * 设置画布是否预乘,只对2D(WebGL)、3D有效。
  19. */
  20. static premultipliedAlpha:boolean;
  21. /**
  22. * 设置画布的是否开启模板缓冲,只对2D(WebGL)、3D有效。
  23. */
  24. static isStencil:boolean;
  25. /**
  26. * 是否强制WebGL同步刷新。
  27. */
  28. static preserveDrawingBuffer:boolean;
  29. /**
  30. * 当使用webGL渲染2d的时候,每次创建vb是否直接分配足够64k个顶点的缓存。这样可以提高效率。
  31. */
  32. static webGL2D_MeshAllocMaxMem:boolean;
  33. /**
  34. * 是否强制使用像素采样。适用于像素风格游戏
  35. */
  36. static is2DPixelArtGame:boolean;
  37. /**
  38. * 是否使用webgl2
  39. */
  40. static useWebGL2:boolean;
  41. static useRetinalCanvas:boolean;
  42. }
  43. /**
  44. * <code>Config3D</code> 类用于创建3D初始化配置。
  45. */
  46. declare class Config3D implements laya.d3.core.IClone {
  47. /**
  48. * 是否开启抗锯齿。
  49. */
  50. isAntialias:boolean;
  51. /**
  52. * 设置画布是否透明。
  53. */
  54. isAlpha:boolean;
  55. /**
  56. * 设置画布是否预乘。
  57. */
  58. premultipliedAlpha:boolean;
  59. /**
  60. * 设置画布的是否开启模板缓冲。
  61. */
  62. isStencil:boolean;
  63. /**
  64. * 是否开启多光源。
  65. */
  66. enbaleMultiLight:boolean;
  67. /**
  68. * 是否开启八叉树裁剪。
  69. */
  70. octreeCulling:boolean;
  71. /**
  72. * 八叉树初始化尺寸。
  73. */
  74. octreeInitialSize:number;
  75. /**
  76. * 八叉树初始化中心。
  77. */
  78. octreeInitialCenter:laya.d3.math.Vector3;
  79. /**
  80. * 八叉树最小尺寸。
  81. */
  82. octreeMinNodeSize:number;
  83. /**
  84. * 八叉树松散值。
  85. */
  86. octreeLooseness:number;
  87. /**
  88. * 是否开启视锥裁剪调试。
  89. * 如果开启八叉树裁剪,使用红色绘制高层次八叉树节点包围盒,使用蓝色绘制低层次八叉节点包围盒,精灵包围盒和八叉树节点包围盒颜色一致,但Alpha为非透明。如果视锥完全包含八叉树节点,八叉树节点包围盒和精灵包围盒变为蓝色,同样精灵包围盒的Alpha为非透明。
  90. * 如果不开启八叉树裁剪,使用绿色像素线绘制精灵包围盒。
  91. */
  92. debugFrustumCulling:boolean;
  93. /**
  94. * 默认物理功能初始化内存,单位为M。
  95. */
  96. defaultPhysicsMemory:number;
  97. /**
  98. * 最大光源数量。
  99. */
  100. maxLightCount:number;
  101. /**
  102. * X、Y、Z轴的光照集群数量,Z值会影响Cluster接受区域光(点光、聚光)影响的数量,Math.floor(2048 / lightClusterCount.z - 1) * 4 为每个Cluster的最大平均接受区域光数量,如果每个Cluster所接受光源影响的平均数量大于该值,则较远的Cluster会忽略其中多余的光照影响。
  103. */
  104. lightClusterCount:laya.d3.math.Vector3;
  105. /**
  106. * 创建一个 <code>Config3D</code> 实例。
  107. */
  108. constructor();
  109. /**
  110. * 克隆。
  111. * @param destObject 克隆源。
  112. */
  113. cloneTo(dest:any):void;
  114. /**
  115. * 克隆。
  116. * @return 克隆副本。
  117. */
  118. clone():any;
  119. }
  120. declare module laya.ani {
  121. /**
  122. * 开始播放时调度。
  123. * @eventType Event.PLAYED
  124. */
  125. /**
  126. * 暂停时调度。
  127. * @eventType Event.PAUSED
  128. */
  129. /**
  130. * 完成一次循环时调度。
  131. * @eventType Event.COMPLETE
  132. */
  133. /**
  134. * 停止时调度。
  135. * @eventType Event.STOPPED
  136. */
  137. /**
  138. * <code>AnimationPlayer</code> 类用于动画播放器。
  139. */
  140. class AnimationPlayer extends laya.events.EventDispatcher implements laya.resource.IDestroy {
  141. /**
  142. * 是否缓存
  143. */
  144. isCache:boolean;
  145. /**
  146. * 播放速率
  147. */
  148. playbackRate:number;
  149. /**
  150. * 停止时是否归零
  151. */
  152. returnToZeroStopped:boolean;
  153. /**
  154. * 获取动画数据模板
  155. * @param value 动画数据模板
  156. */
  157. /**
  158. * 设置动画数据模板,注意:修改此值会有计算开销。
  159. * @param value 动画数据模板
  160. */
  161. templet:laya.ani.AnimationTemplet;
  162. /**
  163. * 动画播放的起始时间位置。
  164. * @return 起始时间位置。
  165. */
  166. readonly playStart:number;
  167. /**
  168. * 动画播放的结束时间位置。
  169. * @return 结束时间位置。
  170. */
  171. readonly playEnd:number;
  172. /**
  173. * 获取动画播放一次的总时间
  174. * @return 动画播放一次的总时间
  175. */
  176. readonly playDuration:number;
  177. /**
  178. * 获取动画播放的总总时间
  179. * @return 动画播放的总时间
  180. */
  181. readonly overallDuration:number;
  182. /**
  183. * 获取当前动画索引
  184. * @return value 当前动画索引
  185. */
  186. readonly currentAnimationClipIndex:number;
  187. /**
  188. * 获取当前帧数
  189. * @return 当前帧数
  190. */
  191. readonly currentKeyframeIndex:number;
  192. /**
  193. * 获取当前精确时间,不包括重播时间
  194. * @return value 当前时间
  195. */
  196. readonly currentPlayTime:number;
  197. /**
  198. * 获取当前帧时间,不包括重播时间
  199. * @return value 当前时间
  200. */
  201. readonly currentFrameTime:number;
  202. /**
  203. * 获取缓存播放速率。*
  204. * @return 缓存播放速率。
  205. */
  206. /**
  207. * 设置缓存播放速率,默认值为1.0,注意:修改此值会有计算开销。*
  208. * @return value 缓存播放速率。
  209. */
  210. cachePlayRate:number;
  211. /**
  212. * 获取默认帧率*
  213. * @return value 默认帧率
  214. */
  215. /**
  216. * 设置默认帧率,每秒60帧,注意:修改此值会有计算开销。*
  217. * @return value 缓存帧率
  218. */
  219. cacheFrameRate:number;
  220. /**
  221. * 设置当前播放位置
  222. * @param value 当前时间
  223. */
  224. currentTime:number;
  225. /**
  226. * 获取当前是否暂停
  227. * @return 是否暂停
  228. */
  229. /**
  230. * 设置是否暂停
  231. * @param value 是否暂停
  232. */
  233. paused:boolean;
  234. /**
  235. * 获取缓存帧率间隔时间
  236. * @return 缓存帧率间隔时间
  237. */
  238. readonly cacheFrameRateInterval:number;
  239. /**
  240. * 获取当前播放状态
  241. * @return 当前播放状态
  242. */
  243. readonly state:number;
  244. /**
  245. * 获取是否已销毁。
  246. * @return 是否已销毁。
  247. */
  248. readonly destroyed:boolean;
  249. /**
  250. * 创建一个 <code>AnimationPlayer</code> 实例。
  251. */
  252. constructor();
  253. /**
  254. * @private
  255. */
  256. private _setPlayParams:any;
  257. /**
  258. * 动画停止了对应的参数。目前都是设置时间为最后
  259. * @private
  260. */
  261. private _setPlayParamsWhenStop:any;
  262. /**
  263. * 播放动画。
  264. * @param index 动画索引。
  265. * @param playbackRate 播放速率。
  266. * @param duration 播放时长(0为1次,Number.MAX_VALUE为循环播放)。
  267. * @param playStart 播放的起始时间位置。
  268. * @param playEnd 播放的结束时间位置。(0为动画一次循环的最长结束时间位置)。
  269. */
  270. play(index?:number,playbackRate?:number,overallDuration?:number,playStart?:number,playEnd?:number):void;
  271. /**
  272. * 播放动画。
  273. * @param index 动画索引。
  274. * @param playbackRate 播放速率。
  275. * @param duration 播放时长(0为1次,Number.MAX_VALUE为循环播放)。
  276. * @param playStartFrame 播放的原始起始帧率位置。
  277. * @param playEndFrame 播放的原始结束帧率位置。(0为动画一次循环的最长结束时间位置)。
  278. */
  279. playByFrame(index?:number,playbackRate?:number,overallDuration?:number,playStartFrame?:number,playEndFrame?:number,fpsIn3DBuilder?:number):void;
  280. /**
  281. * 停止播放当前动画
  282. * 如果不是立即停止就等待动画播放完成后再停止
  283. * @param immediate 是否立即停止
  284. */
  285. stop(immediate?:boolean):void;
  286. /**
  287. * @private
  288. */
  289. destroy():void;
  290. }
  291. }
  292. declare module laya.ani {
  293. /**
  294. * <code>AnimationTemplet</code> 类用于动画模板资源。
  295. */
  296. class AnimationTemplet extends laya.resource.Resource {
  297. static interpolation:any[];
  298. /**
  299. * @private
  300. */
  301. private static _LinearInterpolation_0:any;
  302. /**
  303. * @private
  304. */
  305. private static _QuaternionInterpolation_1:any;
  306. /**
  307. * @private
  308. */
  309. private static _AngleInterpolation_2:any;
  310. /**
  311. * @private
  312. */
  313. private static _RadiansInterpolation_3:any;
  314. /**
  315. * @private
  316. */
  317. private static _Matrix4x4Interpolation_4:any;
  318. /**
  319. * @private
  320. */
  321. private static _NoInterpolation_5:any;
  322. /**
  323. * @private
  324. */
  325. private static _BezierInterpolation_6:any;
  326. /**
  327. * @private
  328. */
  329. private static _BezierInterpolation_7:any;
  330. /**
  331. * @private
  332. */
  333. protected unfixedCurrentFrameIndexes:Uint32Array;
  334. /**
  335. * @private
  336. */
  337. protected unfixedCurrentTimes:Float32Array;
  338. /**
  339. * @private
  340. */
  341. protected unfixedKeyframes:laya.ani.KeyFramesContent[];
  342. /**
  343. * @private
  344. */
  345. protected unfixedLastAniIndex:number;
  346. /**
  347. * @private
  348. */
  349. private _boneCurKeyFrm:any;
  350. constructor();
  351. /**
  352. * @private
  353. */
  354. parse(data:ArrayBuffer):void;
  355. getAnimationCount():number;
  356. getAnimation(aniIndex:number):any;
  357. getAniDuration(aniIndex:number):number;
  358. getNodes(aniIndex:number):any;
  359. getNodeIndexWithName(aniIndex:number,name:string):number;
  360. getNodeCount(aniIndex:number):number;
  361. getTotalkeyframesLength(aniIndex:number):number;
  362. getPublicExtData():ArrayBuffer;
  363. getAnimationDataWithCache(key:any,cacheDatas:any,aniIndex:number,frameIndex:number):Float32Array;
  364. setAnimationDataWithCache(key:any,cacheDatas:any[],aniIndex:number,frameIndex:number,data:any):void;
  365. /**
  366. * 计算当前时间应该对应关键帧的哪一帧
  367. * @param nodeframes 当前骨骼的关键帧数据
  368. * @param nodeid 骨骼id,因为要使用和更新 _boneCurKeyFrm
  369. * @param tm
  370. * @return 问题 最后一帧有问题,例如倒数第二帧时间是0.033ms,则后两帧非常靠近,当实际给最后一帧的时候,根据帧数计算出的时间实际上落在倒数第二帧 使用与AnimationPlayer一致的累积时间就行
  371. */
  372. getNodeKeyFrame(nodeframes:laya.ani.KeyFramesContent[],nodeid:number,tm:number):number;
  373. /**
  374. * @param aniIndex
  375. * @param originalData
  376. * @param nodesFrameIndices
  377. * @param frameIndex
  378. * @param playCurTime
  379. */
  380. getOriginalData(aniIndex:number,originalData:Float32Array,nodesFrameIndices:any[],frameIndex:number,playCurTime:number):void;
  381. getNodesCurrentFrameIndex(aniIndex:number,playCurTime:number):Uint32Array;
  382. getOriginalDataUnfixedRate(aniIndex:number,originalData:Float32Array,playCurTime:number):void;
  383. }
  384. }
  385. declare module laya.ani.bone {
  386. /**
  387. * @private
  388. */
  389. class Bone {
  390. static ShowBones:any;
  391. name:string;
  392. root:Bone;
  393. parentBone:Bone;
  394. length:number;
  395. transform:laya.ani.bone.Transform;
  396. resultTransform:laya.ani.bone.Transform;
  397. resultMatrix:laya.maths.Matrix;
  398. inheritScale:boolean;
  399. inheritRotation:boolean;
  400. rotation:number;
  401. resultRotation:number;
  402. d:number;
  403. constructor();
  404. setTempMatrix(matrix:laya.maths.Matrix):void;
  405. update(pMatrix?:laya.maths.Matrix|null):void;
  406. updateChild():void;
  407. setRotation(rd:number):void;
  408. updateDraw(x:number,y:number):void;
  409. addChild(bone:Bone):void;
  410. findBone(boneName:string):Bone|null;
  411. localToWorld(local:number[]):void;
  412. }
  413. }
  414. declare module laya.ani.bone {
  415. class BoneSlot {
  416. /**
  417. * 插槽名称
  418. */
  419. name:string;
  420. /**
  421. * 插槽绑定的骨骼名称
  422. */
  423. parent:string;
  424. /**
  425. * 插糟显示数据数据的名称
  426. */
  427. attachmentName:string;
  428. /**
  429. * 原始数据的索引
  430. */
  431. srcDisplayIndex:number;
  432. /**
  433. * 判断对象是否是原对象
  434. */
  435. type:string;
  436. /**
  437. * 模板的指针
  438. */
  439. templet:laya.ani.bone.Templet;
  440. /**
  441. * 当前插槽对应的数据
  442. */
  443. currSlotData:laya.ani.bone.SlotData;
  444. /**
  445. * 当前插槽显示的纹理
  446. */
  447. currTexture:laya.resource.Texture|null;
  448. /**
  449. * 显示对象对应的数据
  450. */
  451. currDisplayData:laya.ani.bone.SkinSlotDisplayData|null;
  452. /**
  453. * 显示皮肤的索引
  454. */
  455. displayIndex:number;
  456. /**
  457. * @private
  458. */
  459. originalIndex:number;
  460. /**
  461. * @private 变形动画数据
  462. */
  463. deformData:any[];
  464. /**
  465. * 设置要显示的插槽数据
  466. * @param slotData
  467. * @param disIndex
  468. * @param freshIndex 是否重置纹理
  469. */
  470. showSlotData(slotData:laya.ani.bone.SlotData,freshIndex?:boolean):void;
  471. /**
  472. * 通过名字显示指定对象
  473. * @param name
  474. */
  475. showDisplayByName(name:string):void;
  476. /**
  477. * 替换贴图名
  478. * @param tarName 要替换的贴图名
  479. * @param newName 替换后的贴图名
  480. */
  481. replaceDisplayByName(tarName:string,newName:string):void;
  482. /**
  483. * 替换贴图索引
  484. * @param tarIndex 要替换的索引
  485. * @param newIndex 替换后的索引
  486. */
  487. replaceDisplayByIndex(tarIndex:number,newIndex:number):void;
  488. /**
  489. * 指定显示对象
  490. * @param index
  491. */
  492. showDisplayByIndex(index:number):void;
  493. /**
  494. * 替换皮肤
  495. * @param _texture
  496. */
  497. replaceSkin(_texture:laya.resource.Texture):void;
  498. /**
  499. * 保存父矩阵的索引
  500. * @param parentMatrix
  501. */
  502. setParentMatrix(parentMatrix:laya.maths.Matrix):void;
  503. private _mVerticleArr:any;
  504. private static _tempMatrix:any;
  505. static createSkinMesh():any;
  506. private static isSameArr:any;
  507. private getSaveVerticle:any;
  508. static isSameMatrix(mtA:laya.maths.Matrix,mtB:laya.maths.Matrix):boolean;
  509. private _preGraphicMatrix:any;
  510. private static useSameMatrixAndVerticle:any;
  511. private getSaveMatrix:any;
  512. /**
  513. * 把纹理画到Graphics上
  514. * @param graphics
  515. * @param noUseSave 不使用共享的矩阵对象 _tempResultMatrix,只有实时计算的时候才设置为true
  516. */
  517. draw(graphics:laya.ani.GraphicsAni,boneMatrixArray:any[],noUseSave?:boolean,alpha?:number):void;
  518. /**
  519. * 显示蒙皮动画
  520. * @param boneMatrixArray 当前帧的骨骼矩阵
  521. */
  522. private skinMesh:any;
  523. /**
  524. * 画骨骼的起始点,方便调试
  525. * @param graphics
  526. */
  527. drawBonePoint(graphics:laya.display.Graphics):void;
  528. /**
  529. * 得到显示对象的矩阵
  530. * @return
  531. */
  532. private getDisplayMatrix:any;
  533. /**
  534. * 得到插糟的矩阵
  535. * @return
  536. */
  537. getMatrix():laya.maths.Matrix;
  538. /**
  539. * 用原始数据拷贝出一个
  540. * @return
  541. */
  542. copy():BoneSlot;
  543. }
  544. }
  545. declare module laya.ani.bone.canvasmesh {
  546. /**
  547. */
  548. class MeshData {
  549. /**
  550. * 纹理
  551. */
  552. texture:laya.resource.Texture;
  553. /**
  554. * uv数据
  555. */
  556. uvs:Float32Array;
  557. /**
  558. * 顶点数据
  559. */
  560. vertices:Float32Array;
  561. /**
  562. * 顶点索引
  563. */
  564. indexes:Uint16Array;
  565. /**
  566. * uv变换矩阵
  567. */
  568. uvTransform:laya.maths.Matrix;
  569. /**
  570. * 是否有uv变化矩阵
  571. */
  572. useUvTransform:boolean;
  573. /**
  574. * 扩展像素,用来去除黑边
  575. */
  576. canvasPadding:number;
  577. /**
  578. * 计算mesh的Bounds
  579. * @return
  580. */
  581. getBounds():laya.maths.Rectangle;
  582. }
  583. }
  584. declare module laya.ani.bone.canvasmesh {
  585. class SkinMeshForGraphic extends laya.ani.bone.canvasmesh.MeshData {
  586. constructor();
  587. /**
  588. * 矩阵
  589. */
  590. transform:laya.maths.Matrix|null;
  591. init2(texture:laya.resource.Texture,ps:any[],verticles:any[],uvs:any[]):void;
  592. }
  593. }
  594. declare module laya.ani.bone {
  595. class EventData {
  596. name:string;
  597. intValue:number;
  598. floatValue:number;
  599. stringValue:string;
  600. audioValue:string;
  601. time:number;
  602. constructor();
  603. }
  604. }
  605. declare module laya.ani.bone {
  606. /**
  607. * 动画开始播放调度
  608. * @eventType Event.PLAYED
  609. */
  610. /**
  611. * 动画停止播放调度
  612. * @eventType Event.STOPPED
  613. */
  614. /**
  615. * 动画暂停播放调度
  616. * @eventType Event.PAUSED
  617. */
  618. /**
  619. * 自定义事件。
  620. * @eventType Event.LABEL
  621. */
  622. /**
  623. * 骨骼动画由<code>Templet</code>,<code>AnimationPlayer</code>,<code>Skeleton</code>三部分组成。
  624. */
  625. class Skeleton extends laya.display.Sprite {
  626. /**
  627. * 在canvas模式是否使用简化版的mesh绘制,简化版的mesh将不进行三角形绘制,而改为矩形绘制,能极大提高性能,但是可能某些mesh动画效果会不太正常
  628. */
  629. static useSimpleMeshInCanvas:boolean;
  630. /**
  631. * 创建一个Skeleton对象
  632. * @param templet 骨骼动画模板
  633. * @param aniMode 动画模式,0不支持换装,1、2支持换装
  634. */
  635. constructor(templet?:laya.ani.bone.Templet,aniMode?:number);
  636. /**
  637. * 初始化动画
  638. * @param templet 模板
  639. * @param aniMode 动画模式 <table> <tr><th>模式</th><th>描述</th></tr> <tr> <td>0</td> <td>使用模板缓冲的数据,模板缓冲的数据,不允许修改(内存开销小,计算开销小,不支持换装)</td> </tr> <tr> <td>1</td> <td>使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装)</td> </tr> <tr> <td>2</td> <td>使用动态方式,去实时去画(内存开销小,计算开销大,支持换装,不建议使用)</td> </tr> </table>
  640. */
  641. init(templet:laya.ani.bone.Templet,aniMode?:number):void;
  642. /**
  643. * 得到资源的URL
  644. */
  645. /**
  646. * 设置动画路径
  647. */
  648. url:string;
  649. /**
  650. * 通过加载直接创建动画
  651. * @param path 要加载的动画文件路径
  652. * @param complete 加载完成的回调函数
  653. * @param aniMode 与<code>Skeleton.init</code>的<code>aniMode</code>作用一致
  654. */
  655. load(path:string,complete?:laya.utils.Handler,aniMode?:number):void;
  656. private _checkIsAllParsed:any;
  657. /**
  658. * *****************************************定义接口************************************************
  659. */
  660. /**
  661. * 得到当前动画的数量
  662. * @return 当前动画的数量
  663. */
  664. getAnimNum():number;
  665. /**
  666. * 得到指定动画的名字
  667. * @param index 动画的索引
  668. */
  669. getAniNameByIndex(index:number):string;
  670. /**
  671. * 通过名字得到插槽的引用
  672. * @param name 动画的名字
  673. * @return 插槽的引用
  674. */
  675. getSlotByName(name:string):laya.ani.bone.BoneSlot;
  676. /**
  677. * 通过名字显示一套皮肤
  678. * @param name 皮肤的名字
  679. * @param freshSlotIndex 是否将插槽纹理重置到初始化状态
  680. */
  681. showSkinByName(name:string,freshSlotIndex?:boolean):void;
  682. /**
  683. * 通过索引显示一套皮肤
  684. * @param skinIndex 皮肤索引
  685. * @param freshSlotIndex 是否将插槽纹理重置到初始化状态
  686. */
  687. showSkinByIndex(skinIndex:number,freshSlotIndex?:boolean):void;
  688. /**
  689. * 设置某插槽的皮肤
  690. * @param slotName 插槽名称
  691. * @param index 插糟皮肤的索引
  692. */
  693. showSlotSkinByIndex(slotName:string,index:number):void;
  694. /**
  695. * 设置某插槽的皮肤
  696. * @param slotName 插槽名称
  697. * @param name 皮肤名称
  698. */
  699. showSlotSkinByName(slotName:string,name:string):void;
  700. /**
  701. * 替换插槽贴图名
  702. * @param slotName 插槽名称
  703. * @param oldName 要替换的贴图名
  704. * @param newName 替换后的贴图名
  705. */
  706. replaceSlotSkinName(slotName:string,oldName:string,newName:string):void;
  707. /**
  708. * 替换插槽的贴图索引
  709. * @param slotName 插槽名称
  710. * @param oldIndex 要替换的索引
  711. * @param newIndex 替换后的索引
  712. */
  713. replaceSlotSkinByIndex(slotName:string,oldIndex:number,newIndex:number):void;
  714. /**
  715. * 设置自定义皮肤
  716. * @param name 插糟的名字
  717. * @param texture 自定义的纹理
  718. */
  719. setSlotSkin(slotName:string,texture:laya.resource.Texture):void;
  720. /**
  721. * 播放动画
  722. * @param nameOrIndex 动画名字或者索引
  723. * @param loop 是否循环播放
  724. * @param force false,如果要播的动画跟上一个相同就不生效,true,强制生效
  725. * @param start 起始时间
  726. * @param end 结束时间
  727. * @param freshSkin 是否刷新皮肤数据
  728. * @param playAudio 是否播放音频
  729. */
  730. play(nameOrIndex:any,loop:boolean,force?:boolean,start?:number,end?:number,freshSkin?:boolean,playAudio?:boolean):void;
  731. /**
  732. * 停止动画
  733. */
  734. stop():void;
  735. /**
  736. * 设置动画播放速率
  737. * @param value 1为标准速率
  738. */
  739. playbackRate(value:number):void;
  740. /**
  741. * 暂停动画的播放
  742. */
  743. paused():void;
  744. /**
  745. * 恢复动画的播放
  746. */
  747. resume():void;
  748. /**
  749. * 销毁当前动画
  750. * @override
  751. */
  752. destroy(destroyChild?:boolean):void;
  753. /**
  754. * @private 得到帧索引
  755. */
  756. /**
  757. * @private 设置帧索引
  758. */
  759. index:number;
  760. /**
  761. * 得到总帧数据
  762. */
  763. readonly total:number;
  764. /**
  765. * 得到播放器的引用
  766. */
  767. readonly player:laya.ani.AnimationPlayer;
  768. /**
  769. * 得到动画模板的引用
  770. * @return templet.
  771. */
  772. readonly templet:laya.ani.bone.Templet;
  773. }
  774. }
  775. declare module laya.ani.bone {
  776. class SkinSlotDisplayData {
  777. name:string;
  778. attachmentName:string;
  779. type:number;
  780. transform:laya.ani.bone.Transform;
  781. width:number;
  782. height:number;
  783. texture:laya.resource.Texture;
  784. bones:any[];
  785. uvs:any[];
  786. weights:any[];
  787. triangles:any[];
  788. vertices:any[];
  789. lengths:any[];
  790. verLen:number;
  791. createTexture(currTexture:laya.resource.Texture):laya.resource.Texture;
  792. destory():void;
  793. }
  794. }
  795. declare module laya.ani.bone {
  796. class SlotData {
  797. name:string;
  798. displayArr:any[];
  799. getDisplayByName(name:string):number;
  800. }
  801. }
  802. declare module laya.ani.bone {
  803. /**
  804. * 数据解析完成后的调度。
  805. * @eventType Event.COMPLETE
  806. */
  807. /**
  808. * 数据解析错误后的调度。
  809. * @eventType Event.ERROR
  810. */
  811. /**
  812. * 动画模板类
  813. */
  814. class Templet extends laya.ani.AnimationTemplet {
  815. /**
  816. * 存放原始骨骼信息
  817. */
  818. srcBoneMatrixArr:any[];
  819. /**
  820. * IK数据
  821. */
  822. ikArr:any[];
  823. /**
  824. * transform数据
  825. */
  826. tfArr:any[];
  827. /**
  828. * path数据
  829. */
  830. pathArr:any[];
  831. /**
  832. * 存放插槽数据的字典
  833. */
  834. boneSlotDic:any;
  835. /**
  836. * 绑定插槽数据的字典
  837. */
  838. bindBoneBoneSlotDic:any;
  839. /**
  840. * 存放插糟数据的数组
  841. */
  842. boneSlotArray:any[];
  843. /**
  844. * 皮肤数据
  845. */
  846. skinDataArray:any[];
  847. /**
  848. * 皮肤的字典数据
  849. */
  850. skinDic:any;
  851. /**
  852. * 存放纹理数据
  853. */
  854. subTextureDic:any;
  855. /**
  856. * 是否解析失败
  857. */
  858. isParseFail:boolean;
  859. /**
  860. * 反转矩阵,有些骨骼动画要反转才能显示
  861. */
  862. yReverseMatrix:laya.maths.Matrix;
  863. /**
  864. * 渲染顺序动画数据
  865. */
  866. drawOrderAniArr:any[];
  867. /**
  868. * 事件动画数据
  869. */
  870. eventAniArr:any[];
  871. /**
  872. * @private 索引对应的名称
  873. */
  874. attachmentNames:any[];
  875. /**
  876. * 顶点动画数据
  877. */
  878. deformAniArr:any[];
  879. /**
  880. * 实际显示对象列表,用于销毁用
  881. */
  882. skinSlotDisplayDataArr:laya.ani.bone.SkinSlotDisplayData[];
  883. isParserComplete:boolean;
  884. aniSectionDic:any;
  885. /**
  886. * @private
  887. */
  888. tMatrixDataLen:number;
  889. mRootBone:laya.ani.bone.Bone;
  890. mBoneArr:laya.ani.bone.Bone[];
  891. loadAni(url:string):void;
  892. private onComplete:any;
  893. /**
  894. * 解析骨骼动画数据
  895. * @param texture 骨骼动画用到的纹理
  896. * @param skeletonData 骨骼动画信息及纹理分块信息
  897. * @param playbackRate 缓冲的帧率数据(会根据帧率去分帧)
  898. */
  899. parseData(texture:laya.resource.Texture,skeletonData:ArrayBuffer,playbackRate?:number):void;
  900. /**
  901. * 创建动画
  902. * 0,使用模板缓冲的数据,模板缓冲的数据,不允许修改 (内存开销小,计算开销小,不支持换装)
  903. * 1,使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装)
  904. * 2,使用动态方式,去实时去画 (内存开销小,计算开销大,支持换装,不建议使用)
  905. * @param aniMode 0 动画模式,0:不支持换装,1,2支持换装
  906. * @return
  907. */
  908. buildArmature(aniMode?:number):laya.ani.bone.Skeleton;
  909. /**
  910. * @private 解析动画
  911. * @param data 解析的二进制数据
  912. * @param playbackRate 帧率
  913. * @override
  914. */
  915. parse(data:ArrayBuffer):void;
  916. /**
  917. * 得到指定的纹理
  918. * @param name 纹理的名字
  919. * @return
  920. */
  921. getTexture(name:string):laya.resource.Texture;
  922. /**
  923. * @private 显示指定的皮肤
  924. * @param boneSlotDic 插糟字典的引用
  925. * @param skinIndex 皮肤的索引
  926. * @param freshDisplayIndex 是否重置插槽纹理
  927. */
  928. showSkinByIndex(boneSlotDic:any,skinIndex:number,freshDisplayIndex?:boolean):boolean;
  929. /**
  930. * 通过皮肤名字得到皮肤索引
  931. * @param skinName 皮肤名称
  932. * @return
  933. */
  934. getSkinIndexByName(skinName:string):number;
  935. /**
  936. * @private 得到缓冲数据
  937. * @param aniIndex 动画索引
  938. * @param frameIndex 帧索引
  939. * @return
  940. */
  941. getGrahicsDataWithCache(aniIndex:number,frameIndex:number):laya.display.Graphics;
  942. /**
  943. * @private 保存缓冲grahpics
  944. * @param aniIndex 动画索引
  945. * @param frameIndex 帧索引
  946. * @param graphics 要保存的数据
  947. */
  948. setGrahicsDataWithCache(aniIndex:number,frameIndex:number,graphics:laya.display.Graphics):void;
  949. deleteAniData(aniIndex:number):void;
  950. /**
  951. * 释放纹理
  952. * @override
  953. */
  954. destroy():void;
  955. /**
  956. * *********************************下面为一些儿访问接口****************************************
  957. */
  958. /**
  959. * 通过索引得动画名称
  960. * @param index
  961. * @return
  962. */
  963. getAniNameByIndex(index:number):string;
  964. rate:number;
  965. }
  966. }
  967. declare module laya.ani.bone {
  968. class Transform {
  969. skX:number;
  970. skY:number;
  971. scX:number;
  972. scY:number;
  973. x:number;
  974. y:number;
  975. skewX:number;
  976. skewY:number;
  977. private mMatrix:any;
  978. initData(data:any):void;
  979. getMatrix():laya.maths.Matrix;
  980. skew(m:laya.maths.Matrix,x:number,y:number):laya.maths.Matrix;
  981. }
  982. }
  983. declare module laya.ani {
  984. class GraphicsAni extends laya.display.Graphics {
  985. /**
  986. * @private 画自定义蒙皮动画
  987. * @param skin
  988. */
  989. drawSkin(skinA:laya.ani.bone.canvasmesh.SkinMeshForGraphic,alpha:number):void;
  990. private static _caches:any;
  991. static create():GraphicsAni;
  992. static recycle(graphics:GraphicsAni):void;
  993. }
  994. }
  995. declare module laya.ani {
  996. class KeyFramesContent {
  997. startTime:number;
  998. duration:number;
  999. interpolationData:any[];
  1000. data:Float32Array;
  1001. dData:Float32Array;
  1002. nextData:Float32Array;
  1003. }
  1004. }
  1005. declare module laya.ani.swf {
  1006. /**
  1007. * 动画播放完毕后调度。
  1008. * @eventType Event.COMPLETE
  1009. */
  1010. /**
  1011. * 播放到某标签后调度。
  1012. * @eventType Event.LABEL
  1013. */
  1014. /**
  1015. * 加载完成后调度。
  1016. * @eventType Event.LOADED
  1017. */
  1018. /**
  1019. * 进入帧后调度。
  1020. * @eventType Event.FRAME
  1021. */
  1022. /**
  1023. * <p> <code>MovieClip</code> 用于播放经过工具处理后的 swf 动画。</p>
  1024. */
  1025. class MovieClip extends laya.display.Sprite {
  1026. /**
  1027. * 资源根目录。
  1028. */
  1029. basePath:string;
  1030. /**
  1031. * 播放间隔(单位:毫秒)。
  1032. */
  1033. interval:number;
  1034. /**
  1035. * 是否循环播放
  1036. */
  1037. loop:boolean;
  1038. /**
  1039. * 创建一个 <code>MovieClip</code> 实例。
  1040. * @param parentMovieClip 父MovieClip,自己创建时不需要传该参数
  1041. */
  1042. constructor(parentMovieClip?:MovieClip);
  1043. /**
  1044. * <p>销毁此对象。以及销毁引用的Texture</p>
  1045. * @param destroyChild 是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
  1046. * @override
  1047. */
  1048. destroy(destroyChild?:boolean):void;
  1049. /**
  1050. * @private 更新时间轴
  1051. */
  1052. updates():void;
  1053. /**
  1054. * 当前播放索引。
  1055. */
  1056. index:number;
  1057. /**
  1058. * 增加一个标签到index帧上,播放到此index后会派发label事件
  1059. * @param label 标签名称
  1060. * @param index 索引位置
  1061. */
  1062. addLabel(label:string,index:number):void;
  1063. /**
  1064. * 删除某个标签
  1065. * @param label 标签名字,如果label为空,则删除所有Label
  1066. */
  1067. removeLabel(label:string):void;
  1068. /**
  1069. * 帧总数。
  1070. */
  1071. readonly count:number;
  1072. /**
  1073. * 是否在播放中
  1074. */
  1075. readonly playing:boolean;
  1076. /**
  1077. * 停止播放动画。
  1078. */
  1079. stop():void;
  1080. /**
  1081. * 跳到某帧并停止播放动画。
  1082. * @param frame 要跳到的帧
  1083. */
  1084. gotoAndStop(index:number):void;
  1085. /**
  1086. * 播放动画。
  1087. * @param index 帧索引。
  1088. */
  1089. play(index?:number,loop?:boolean):void;
  1090. /**
  1091. * 资源地址。
  1092. */
  1093. url:string;
  1094. /**
  1095. * 加载资源。
  1096. * @param url swf 资源地址。
  1097. * @param atlas 是否使用图集资源
  1098. * @param atlasPath 图集路径,默认使用与swf同名的图集
  1099. */
  1100. load(url:string,atlas?:boolean,atlasPath?:string):void;
  1101. /**
  1102. * 从开始索引播放到结束索引,结束之后出发complete回调
  1103. * @param start 开始索引
  1104. * @param end 结束索引
  1105. * @param complete 结束回调
  1106. */
  1107. playTo(start:number,end:number,complete?:laya.utils.Handler):void;
  1108. }
  1109. }
  1110. declare module laya.components {
  1111. /**
  1112. * <code>CommonScript</code> 类用于创建公共脚本类。
  1113. */
  1114. class CommonScript extends laya.components.Component {
  1115. /**
  1116. * @inheritDoc
  1117. * @override
  1118. */
  1119. readonly isSingleton:boolean;
  1120. constructor();
  1121. /**
  1122. * 创建后只执行一次
  1123. * 此方法为虚方法,使用时重写覆盖即可
  1124. */
  1125. onAwake():void;
  1126. /**
  1127. * 每次启动后执行
  1128. * 此方法为虚方法,使用时重写覆盖即可
  1129. */
  1130. onEnable():void;
  1131. /**
  1132. * 第一次执行update之前执行,只会执行一次
  1133. * 此方法为虚方法,使用时重写覆盖即可
  1134. */
  1135. onStart():void;
  1136. /**
  1137. * 每帧更新时执行
  1138. * 此方法为虚方法,使用时重写覆盖即可
  1139. */
  1140. onUpdate():void;
  1141. /**
  1142. * 每帧更新时执行,在update之后执行
  1143. * 此方法为虚方法,使用时重写覆盖即可
  1144. */
  1145. onLateUpdate():void;
  1146. /**
  1147. * 禁用时执行
  1148. * 此方法为虚方法,使用时重写覆盖即可
  1149. */
  1150. onDisable():void;
  1151. /**
  1152. * 销毁时执行
  1153. * 此方法为虚方法,使用时重写覆盖即可
  1154. */
  1155. onDestroy():void;
  1156. }
  1157. }
  1158. declare module laya.components {
  1159. /**
  1160. * <code>Component</code> 类用于创建组件的基类。
  1161. */
  1162. class Component implements laya.resource.ISingletonElement,laya.resource.IDestroy {
  1163. /**
  1164. * @private [实现IListPool接口]
  1165. */
  1166. private _indexInList:any;
  1167. /**
  1168. * @private
  1169. */
  1170. private _awaked:any;
  1171. /**
  1172. * [只读]获取所属Node节点。
  1173. * @readonly
  1174. */
  1175. owner:laya.display.Node;
  1176. /**
  1177. * 创建一个新的 <code>Component</code> 实例。
  1178. */
  1179. constructor();
  1180. /**
  1181. * 获取唯一标识ID。
  1182. */
  1183. readonly id:number;
  1184. /**
  1185. * 获取是否启用组件。
  1186. */
  1187. enabled:boolean;
  1188. /**
  1189. * 获取是否为单实例组件。
  1190. */
  1191. readonly isSingleton:boolean;
  1192. /**
  1193. * 获取是否已经销毁 。
  1194. */
  1195. readonly destroyed:boolean;
  1196. /**
  1197. * [实现IListPool接口]
  1198. */
  1199. _getIndexInList():number;
  1200. /**
  1201. * [实现IListPool接口]
  1202. */
  1203. _setIndexInList(index:number):void;
  1204. /**
  1205. * 重置组件参数到默认值,如果实现了这个函数,则组件会被重置并且自动回收到对象池,方便下次复用
  1206. * 如果没有重置,则不进行回收复用
  1207. * 此方法为虚方法,使用时重写覆盖即可
  1208. */
  1209. onReset():void;
  1210. /**
  1211. * 销毁组件
  1212. */
  1213. destroy():void;
  1214. }
  1215. }
  1216. declare module laya.components {
  1217. /**
  1218. * 模板,预制件
  1219. */
  1220. class Prefab {
  1221. /**
  1222. * @private
  1223. */
  1224. json:any;
  1225. /**
  1226. * 通过预制创建实例
  1227. */
  1228. create():any;
  1229. }
  1230. }
  1231. declare module laya.components {
  1232. /**
  1233. * <code>Script</code> 类用于创建脚本的父类,该类为抽象类,不允许实例。
  1234. * 组件的生命周期
  1235. */
  1236. class Script extends laya.components.Component {
  1237. /**
  1238. * @inheritDoc
  1239. * @override
  1240. */
  1241. readonly isSingleton:boolean;
  1242. /**
  1243. * 组件被激活后执行,此时所有节点和组件均已创建完毕,次方法只执行一次
  1244. * 此方法为虚方法,使用时重写覆盖即可
  1245. */
  1246. onAwake():void;
  1247. /**
  1248. * 组件被启用后执行,比如节点被添加到舞台后
  1249. * 此方法为虚方法,使用时重写覆盖即可
  1250. */
  1251. onEnable():void;
  1252. /**
  1253. * 第一次执行update之前执行,只会执行一次
  1254. * 此方法为虚方法,使用时重写覆盖即可
  1255. */
  1256. onStart():void;
  1257. /**
  1258. * 开始碰撞时执行
  1259. * 此方法为虚方法,使用时重写覆盖即可
  1260. */
  1261. onTriggerEnter(other:any,self:any,contact:any):void;
  1262. /**
  1263. * 持续碰撞时执行
  1264. * 此方法为虚方法,使用时重写覆盖即可
  1265. */
  1266. onTriggerStay(other:any,self:any,contact:any):void;
  1267. /**
  1268. * 结束碰撞时执行
  1269. * 此方法为虚方法,使用时重写覆盖即可
  1270. */
  1271. onTriggerExit(other:any,self:any,contact:any):void;
  1272. /**
  1273. * 鼠标按下时执行
  1274. * 此方法为虚方法,使用时重写覆盖即可
  1275. */
  1276. onMouseDown(e:laya.events.Event):void;
  1277. /**
  1278. * 鼠标抬起时执行
  1279. * 此方法为虚方法,使用时重写覆盖即可
  1280. */
  1281. onMouseUp(e:laya.events.Event):void;
  1282. /**
  1283. * 鼠标点击时执行
  1284. * 此方法为虚方法,使用时重写覆盖即可
  1285. */
  1286. onClick(e:laya.events.Event):void;
  1287. /**
  1288. * 鼠标在舞台按下时执行
  1289. * 此方法为虚方法,使用时重写覆盖即可
  1290. */
  1291. onStageMouseDown(e:laya.events.Event):void;
  1292. /**
  1293. * 鼠标在舞台抬起时执行
  1294. * 此方法为虚方法,使用时重写覆盖即可
  1295. */
  1296. onStageMouseUp(e:laya.events.Event):void;
  1297. /**
  1298. * 鼠标在舞台点击时执行
  1299. * 此方法为虚方法,使用时重写覆盖即可
  1300. */
  1301. onStageClick(e:laya.events.Event):void;
  1302. /**
  1303. * 鼠标在舞台移动时执行
  1304. * 此方法为虚方法,使用时重写覆盖即可
  1305. */
  1306. onStageMouseMove(e:laya.events.Event):void;
  1307. /**
  1308. * 鼠标双击时执行
  1309. * 此方法为虚方法,使用时重写覆盖即可
  1310. */
  1311. onDoubleClick(e:laya.events.Event):void;
  1312. /**
  1313. * 鼠标右键点击时执行
  1314. * 此方法为虚方法,使用时重写覆盖即可
  1315. */
  1316. onRightClick(e:laya.events.Event):void;
  1317. /**
  1318. * 鼠标移动时执行
  1319. * 此方法为虚方法,使用时重写覆盖即可
  1320. */
  1321. onMouseMove(e:laya.events.Event):void;
  1322. /**
  1323. * 鼠标经过节点时触发
  1324. * 此方法为虚方法,使用时重写覆盖即可
  1325. */
  1326. onMouseOver(e:laya.events.Event):void;
  1327. /**
  1328. * 鼠标离开节点时触发
  1329. * 此方法为虚方法,使用时重写覆盖即可
  1330. */
  1331. onMouseOut(e:laya.events.Event):void;
  1332. /**
  1333. * 键盘按下时执行
  1334. * 此方法为虚方法,使用时重写覆盖即可
  1335. */
  1336. onKeyDown(e:laya.events.Event):void;
  1337. /**
  1338. * 键盘产生一个字符时执行
  1339. * 此方法为虚方法,使用时重写覆盖即可
  1340. */
  1341. onKeyPress(e:laya.events.Event):void;
  1342. /**
  1343. * 键盘抬起时执行
  1344. * 此方法为虚方法,使用时重写覆盖即可
  1345. */
  1346. onKeyUp(e:laya.events.Event):void;
  1347. /**
  1348. * 每帧更新时执行,尽量不要在这里写大循环逻辑或者使用getComponent方法
  1349. * 此方法为虚方法,使用时重写覆盖即可
  1350. */
  1351. onUpdate():void;
  1352. /**
  1353. * 每帧更新时执行,在update之后执行,尽量不要在这里写大循环逻辑或者使用getComponent方法
  1354. * 此方法为虚方法,使用时重写覆盖即可
  1355. */
  1356. onLateUpdate():void;
  1357. /**
  1358. * 渲染之前执行
  1359. * 此方法为虚方法,使用时重写覆盖即可
  1360. */
  1361. onPreRender():void;
  1362. /**
  1363. * 渲染之后执行
  1364. * 此方法为虚方法,使用时重写覆盖即可
  1365. */
  1366. onPostRender():void;
  1367. /**
  1368. * 组件被禁用时执行,比如从节点从舞台移除后
  1369. * 此方法为虚方法,使用时重写覆盖即可
  1370. */
  1371. onDisable():void;
  1372. /**
  1373. * 手动调用节点销毁时执行
  1374. * 此方法为虚方法,使用时重写覆盖即可
  1375. */
  1376. onDestroy():void;
  1377. }
  1378. }
  1379. declare module laya {
  1380. /**
  1381. * @private 静态常量集合
  1382. */
  1383. class Const {
  1384. static NOT_ACTIVE:number;
  1385. static ACTIVE_INHIERARCHY:number;
  1386. static AWAKED:number;
  1387. static NOT_READY:number;
  1388. static DISPLAY:number;
  1389. static HAS_ZORDER:number;
  1390. static HAS_MOUSE:number;
  1391. static DISPLAYED_INSTAGE:number;
  1392. static DRAWCALL_OPTIMIZE:number;
  1393. }
  1394. }
  1395. declare module laya.d3.animation {
  1396. /**
  1397. * <code>AnimationClip</code> 类用于动画片段资源。
  1398. */
  1399. class AnimationClip extends laya.resource.Resource {
  1400. /**
  1401. * AnimationClip资源。
  1402. */
  1403. static ANIMATIONCLIP:string;
  1404. /**
  1405. * @inheritDoc
  1406. */
  1407. static _parse(data:any,propertyParams?:any,constructParams?:any[]):AnimationClip;
  1408. /**
  1409. * 加载动画片段。
  1410. * @param url 动画片段地址。
  1411. * @param complete 完成回掉。
  1412. */
  1413. static load(url:string,complete:laya.utils.Handler):void;
  1414. /**
  1415. * 是否循环。
  1416. */
  1417. islooping:boolean;
  1418. /**
  1419. * 获取动画片段时长。
  1420. */
  1421. duration():number;
  1422. /**
  1423. * 创建一个 <code>AnimationClip</code> 实例。
  1424. */
  1425. constructor();
  1426. private _hermiteInterpolate:any;
  1427. private _hermiteInterpolateVector3:any;
  1428. private _hermiteInterpolateQuaternion:any;
  1429. _evaluateClipDatasRealTimeForNative(nodes:any,playCurTime:number,realTimeCurrentFrameIndexes:Uint16Array,addtive:boolean):void;
  1430. private _evaluateFrameNodeVector3DatasRealTime:any;
  1431. private _evaluateFrameNodeQuaternionDatasRealTime:any;
  1432. private _binarySearchEventIndex:any;
  1433. /**
  1434. * 添加动画事件。
  1435. */
  1436. addEvent(event:laya.d3.animation.AnimationEvent):void;
  1437. /**
  1438. * @inheritDoc
  1439. * @override
  1440. */
  1441. protected _disposeResource():void;
  1442. }
  1443. }
  1444. declare module laya.d3.animation {
  1445. /**
  1446. * <code>AnimationEvent</code> 类用于实现动画事件。
  1447. */
  1448. class AnimationEvent {
  1449. /**
  1450. * 事件触发时间。
  1451. */
  1452. time:number;
  1453. /**
  1454. * 事件触发名称。
  1455. */
  1456. eventName:string;
  1457. /**
  1458. * 事件触发参数。
  1459. */
  1460. params:any[];
  1461. /**
  1462. * 创建一个 <code>AnimationEvent</code> 实例。
  1463. */
  1464. constructor();
  1465. }
  1466. }
  1467. declare module laya.d3.animation {
  1468. /**
  1469. * <code>BoneNode</code> 类用于实现骨骼节点。
  1470. */
  1471. class AnimationNode implements laya.d3.core.IClone {
  1472. private _children:any;
  1473. /**
  1474. * 节点名称。
  1475. */
  1476. name:string;
  1477. /**
  1478. * 创建一个新的 <code>AnimationNode</code> 实例。
  1479. */
  1480. constructor(localPosition?:Float32Array,localRotation?:Float32Array,localScale?:Float32Array,worldMatrix?:Float32Array);
  1481. /**
  1482. * 添加子节点。
  1483. * @param child 子节点。
  1484. */
  1485. addChild(child:AnimationNode):void;
  1486. /**
  1487. * 移除子节点。
  1488. * @param child 子节点。
  1489. */
  1490. removeChild(child:AnimationNode):void;
  1491. /**
  1492. * 根据名字获取子节点。
  1493. * @param name 名字。
  1494. */
  1495. getChildByName(name:string):AnimationNode;
  1496. /**
  1497. * 根据索引获取子节点。
  1498. * @param index 索引。
  1499. */
  1500. getChildByIndex(index:number):AnimationNode;
  1501. /**
  1502. * 获取子节点的个数。
  1503. */
  1504. getChildCount():number;
  1505. /**
  1506. * 克隆。
  1507. * @param destObject 克隆源。
  1508. */
  1509. cloneTo(destObject:any):void;
  1510. /**
  1511. * 克隆。
  1512. * @return 克隆副本。
  1513. */
  1514. clone():any;
  1515. }
  1516. }
  1517. declare module laya.d3.animation {
  1518. /**
  1519. * <code>AnimationTransform3D</code> 类用于实现3D变换。
  1520. */
  1521. class AnimationTransform3D extends laya.events.EventDispatcher {
  1522. private static _tempVector3:any;
  1523. private static _angleToRandin:any;
  1524. private _localMatrix:any;
  1525. private _worldMatrix:any;
  1526. private _localPosition:any;
  1527. private _localRotation:any;
  1528. private _localScale:any;
  1529. private _localQuaternionUpdate:any;
  1530. private _locaEulerlUpdate:any;
  1531. private _localUpdate:any;
  1532. private _parent:any;
  1533. private _children:any;
  1534. /**
  1535. * 创建一个 <code>Transform3D</code> 实例。
  1536. * @param owner 所属精灵。
  1537. */
  1538. constructor(owner:laya.d3.animation.AnimationNode,localPosition?:Float32Array,localRotation?:Float32Array,localScale?:Float32Array,worldMatrix?:Float32Array);
  1539. private _getlocalMatrix:any;
  1540. private _onWorldTransform:any;
  1541. /**
  1542. * 获取世界矩阵。
  1543. * @return 世界矩阵。
  1544. */
  1545. getWorldMatrix():Float32Array;
  1546. /**
  1547. * 设置父3D变换。
  1548. * @param value 父3D变换。
  1549. */
  1550. setParent(value:AnimationTransform3D):void;
  1551. }
  1552. }
  1553. declare module laya.d3.animation {
  1554. /**
  1555. * <code>AnimatorStateScript</code> 类用于动画状态脚本的父类,该类为抽象类,不允许实例。
  1556. */
  1557. class AnimatorStateScript {
  1558. /**
  1559. * 创建一个新的 <code>AnimatorStateScript</code> 实例。
  1560. */
  1561. constructor();
  1562. /**
  1563. * 动画状态开始时执行。
  1564. */
  1565. onStateEnter():void;
  1566. /**
  1567. * 动画状态更新时执行。
  1568. */
  1569. onStateUpdate():void;
  1570. /**
  1571. * 动画状态退出时执行。
  1572. */
  1573. onStateExit():void;
  1574. }
  1575. }
  1576. declare module laya.d3 {
  1577. /**
  1578. * /**
  1579. * <code>CastShadowList</code> 类用于实现产生阴影者队列。
  1580. */
  1581. class CastShadowList extends laya.d3.component.SingletonList<laya.resource.ISingletonElement> {
  1582. /**
  1583. * 创建一个新的 <code>CastShadowList</code> 实例。
  1584. */
  1585. constructor();
  1586. }
  1587. }
  1588. declare module laya.d3.component {
  1589. /**
  1590. * <code>Animator</code> 类用于创建动画组件。
  1591. */
  1592. class Animator extends laya.components.Component {
  1593. private static _tempVector30:any;
  1594. private static _tempVector31:any;
  1595. private static _tempQuaternion0:any;
  1596. private static _tempQuaternion1:any;
  1597. /**
  1598. * 裁剪模式_始终播放动画。
  1599. */
  1600. static CULLINGMODE_ALWAYSANIMATE:number;
  1601. /**
  1602. * 裁剪模式_不可见时完全不播放动画。
  1603. */
  1604. static CULLINGMODE_CULLCOMPLETELY:number;
  1605. private _speed:any;
  1606. private _keyframeNodeOwnerMap:any;
  1607. private _keyframeNodeOwners:any;
  1608. private _updateMark:any;
  1609. private _controllerLayers:any;
  1610. /**
  1611. * 裁剪模式
  1612. */
  1613. cullingMode:number;
  1614. /**
  1615. * 获取动画的播放速度,1.0为正常播放速度。
  1616. * @return 动画的播放速度。
  1617. */
  1618. /**
  1619. * 设置动画的播放速度,1.0为正常播放速度。
  1620. * @param 动画的播放速度 。
  1621. */
  1622. speed:number;
  1623. /**
  1624. * 创建一个 <code>Animation</code> 实例。
  1625. */
  1626. constructor();
  1627. private _linkToSprites:any;
  1628. private _addKeyframeNodeOwner:any;
  1629. private _updatePlayer:any;
  1630. private _eventScript:any;
  1631. private _updateEventScript:any;
  1632. private _updateClipDatas:any;
  1633. private _applyFloat:any;
  1634. private _applyPositionAndRotationEuler:any;
  1635. private _applyRotation:any;
  1636. private _applyScale:any;
  1637. private _applyCrossData:any;
  1638. private _setClipDatasToNode:any;
  1639. private _setCrossClipDatasToNode:any;
  1640. private _setFixedCrossClipDatasToNode:any;
  1641. private _revertDefaultKeyframeNodes:any;
  1642. /**
  1643. * 获取默认动画状态。
  1644. * @param layerIndex 层索引。
  1645. * @return 默认动画状态。
  1646. */
  1647. getDefaultState(layerIndex?:number):laya.d3.component.AnimatorState;
  1648. /**
  1649. * 添加动画状态。
  1650. * @param state 动画状态。
  1651. * @param layerIndex 层索引。
  1652. */
  1653. addState(state:laya.d3.component.AnimatorState,layerIndex?:number):void;
  1654. /**
  1655. * 移除动画状态。
  1656. * @param state 动画状态。
  1657. * @param layerIndex 层索引。
  1658. */
  1659. removeState(state:laya.d3.component.AnimatorState,layerIndex?:number):void;
  1660. /**
  1661. * 添加控制器层。
  1662. */
  1663. addControllerLayer(controllderLayer:laya.d3.component.AnimatorControllerLayer):void;
  1664. /**
  1665. * 获取控制器层。
  1666. */
  1667. getControllerLayer(layerInex?:number):laya.d3.component.AnimatorControllerLayer;
  1668. /**
  1669. * 获取当前的播放状态。
  1670. * @param layerIndex 层索引。
  1671. * @return 动画播放状态。
  1672. */
  1673. getCurrentAnimatorPlayState(layerInex?:number):laya.d3.component.AnimatorPlayState;
  1674. /**
  1675. * 播放动画。
  1676. * @param name 如果为null则播放默认动画,否则按名字播放动画片段。
  1677. * @param layerIndex 层索引。
  1678. * @param normalizedTime 归一化的播放起始时间。
  1679. */
  1680. play(name?:string,layerIndex?:number,normalizedTime?:number):void;
  1681. /**
  1682. * 在当前动画状态和目标动画状态之间进行融合过渡播放。
  1683. * @param name 目标动画状态。
  1684. * @param transitionDuration 过渡时间,该值为当前动画状态的归一化时间,值在0.0~1.0之间。
  1685. * @param layerIndex 层索引。
  1686. * @param normalizedTime 归一化的播放起始时间。
  1687. */
  1688. crossFade(name:string,transitionDuration:number,layerIndex?:number,normalizedTime?:number):void;
  1689. private _avatar:any;
  1690. /**
  1691. * 获取avatar。
  1692. * @return avator。
  1693. */
  1694. /**
  1695. * 设置avatar。
  1696. * @param value avatar。
  1697. */
  1698. avatar:laya.d3.core.Avatar;
  1699. private _getAvatarOwnersAndInitDatasAsync:any;
  1700. private _isLinkSpriteToAnimationNode:any;
  1701. private _isLinkSpriteToAnimationNodeData:any;
  1702. /**
  1703. * 关联精灵节点到Avatar节点,此Animator必须有Avatar文件。
  1704. * @param nodeName 关联节点的名字。
  1705. * @param sprite3D 精灵节点。
  1706. * @return 是否关联成功。
  1707. */
  1708. linkSprite3DToAvatarNode(nodeName:string,sprite3D:laya.d3.core.Sprite3D):boolean;
  1709. /**
  1710. * 解除精灵节点到Avatar节点的关联,此Animator必须有Avatar文件。
  1711. * @param sprite3D 精灵节点。
  1712. * @return 是否解除关联成功。
  1713. */
  1714. unLinkSprite3DToAvatarNode(sprite3D:laya.d3.core.Sprite3D):boolean;
  1715. }
  1716. }
  1717. declare module laya.d3.component {
  1718. /**
  1719. * <code>AnimatorControllerLayer</code> 类用于创建动画控制器层。
  1720. */
  1721. class AnimatorControllerLayer implements laya.d3.resource.IReferenceCounter,laya.d3.core.IClone {
  1722. private _defaultState:any;
  1723. private _referenceCount:any;
  1724. /**
  1725. * 层的名称。
  1726. */
  1727. name:string;
  1728. /**
  1729. * 名称。
  1730. */
  1731. blendingMode:number;
  1732. /**
  1733. * 权重。
  1734. */
  1735. defaultWeight:number;
  1736. /**
  1737. * 激活时是否自动播放
  1738. */
  1739. playOnWake:boolean;
  1740. /**
  1741. * 获取默认动画状态。
  1742. * @return 默认动画状态。
  1743. */
  1744. /**
  1745. * 设置默认动画状态。
  1746. * @param value 默认动画状态。
  1747. */
  1748. defaultState:laya.d3.component.AnimatorState;
  1749. /**
  1750. * 创建一个 <code>AnimatorControllerLayer</code> 实例。
  1751. */
  1752. constructor(name:string);
  1753. private _removeClip:any;
  1754. /**
  1755. * @implements IReferenceCounter
  1756. */
  1757. _getReferenceCount():number;
  1758. /**
  1759. * @implements IReferenceCounter
  1760. */
  1761. _addReference(count?:number):void;
  1762. /**
  1763. * @implements IReferenceCounter
  1764. */
  1765. _removeReference(count?:number):void;
  1766. /**
  1767. * @implements IReferenceCounter
  1768. */
  1769. _clearReference():void;
  1770. /**
  1771. * 获取动画状态。
  1772. */
  1773. getAnimatorState(name:string):laya.d3.component.AnimatorState;
  1774. /**
  1775. * 添加动画状态。
  1776. * @param state 动画状态。
  1777. * @param layerIndex 层索引。
  1778. */
  1779. addState(state:laya.d3.component.AnimatorState):void;
  1780. /**
  1781. * 移除动画状态。
  1782. * @param state 动画状态。
  1783. * @param layerIndex 层索引。
  1784. */
  1785. removeState(state:laya.d3.component.AnimatorState):void;
  1786. /**
  1787. * 销毁。
  1788. */
  1789. destroy():void;
  1790. /**
  1791. * 克隆。
  1792. * @param destObject 克隆源。
  1793. */
  1794. cloneTo(destObject:any):void;
  1795. /**
  1796. * 克隆。
  1797. * @return 克隆副本。
  1798. */
  1799. clone():any;
  1800. }
  1801. }
  1802. declare module laya.d3.component {
  1803. /**
  1804. * <code>AnimatorPlayState</code> 类用于创建动画播放状态信息。
  1805. */
  1806. class AnimatorPlayState {
  1807. /**
  1808. * 获取播放状态的归一化时间,整数为循环次数,小数为单次播放时间。
  1809. */
  1810. readonly normalizedTime:number;
  1811. /**
  1812. * 获取当前动画的持续时间,以秒为单位。
  1813. */
  1814. readonly duration:number;
  1815. /**
  1816. * 创建一个 <code>AnimatorPlayState</code> 实例。
  1817. */
  1818. constructor();
  1819. }
  1820. }
  1821. declare module laya.d3.component {
  1822. /**
  1823. * <code>AnimatorState</code> 类用于创建动作状态。
  1824. */
  1825. class AnimatorState implements laya.d3.resource.IReferenceCounter,laya.d3.core.IClone {
  1826. private _referenceCount:any;
  1827. /**
  1828. * 名称。
  1829. */
  1830. name:string;
  1831. /**
  1832. * 动画播放速度,1.0为正常播放速度。
  1833. */
  1834. speed:number;
  1835. /**
  1836. * 动作播放起始时间。
  1837. */
  1838. clipStart:number;
  1839. /**
  1840. * 动作播放结束时间。
  1841. */
  1842. clipEnd:number;
  1843. /**
  1844. * 获取动作。
  1845. * @return 动作
  1846. */
  1847. /**
  1848. * 设置动作。
  1849. * @param value 动作。
  1850. */
  1851. clip:laya.d3.animation.AnimationClip;
  1852. /**
  1853. * 创建一个 <code>AnimatorState</code> 实例。
  1854. */
  1855. constructor();
  1856. /**
  1857. * @implements IReferenceCounter
  1858. */
  1859. _getReferenceCount():number;
  1860. /**
  1861. * @implements IReferenceCounter
  1862. */
  1863. _addReference(count?:number):void;
  1864. /**
  1865. * @implements IReferenceCounter
  1866. */
  1867. _removeReference(count?:number):void;
  1868. /**
  1869. * @implements IReferenceCounter
  1870. */
  1871. _clearReference():void;
  1872. /**
  1873. * 添加脚本。
  1874. * @param type 组件类型。
  1875. * @return 脚本。
  1876. */
  1877. addScript(type:new () => any):laya.d3.animation.AnimatorStateScript;
  1878. /**
  1879. * 获取脚本。
  1880. * @param type 组件类型。
  1881. * @return 脚本。
  1882. */
  1883. getScript(type:new () => any):laya.d3.animation.AnimatorStateScript;
  1884. /**
  1885. * 获取脚本集合。
  1886. * @param type 组件类型。
  1887. * @return 脚本集合。
  1888. */
  1889. getScripts(type:new () => any):laya.d3.animation.AnimatorStateScript[];
  1890. /**
  1891. * 克隆。
  1892. * @param destObject 克隆源。
  1893. */
  1894. cloneTo(destObject:any):void;
  1895. /**
  1896. * 克隆。
  1897. * @return 克隆副本。
  1898. */
  1899. clone():any;
  1900. }
  1901. }
  1902. declare module laya.d3.component {
  1903. /**
  1904. * <code>PostProcess</code> 类用于创建后期处理组件。
  1905. */
  1906. class PostProcess {
  1907. private _compositeShader:any;
  1908. private _compositeShaderData:any;
  1909. private _effects:any;
  1910. /**
  1911. * 创建一个 <code>PostProcess</code> 实例。
  1912. */
  1913. constructor();
  1914. /**
  1915. * 添加后期处理效果。
  1916. */
  1917. addEffect(effect:laya.d3.core.render.PostProcessEffect):void;
  1918. /**
  1919. * 移除后期处理效果。
  1920. */
  1921. removeEffect(effect:laya.d3.core.render.PostProcessEffect):void;
  1922. }
  1923. }
  1924. declare module laya.d3.component {
  1925. /**
  1926. * <code>Script3D</code> 类用于创建脚本的父类,该类为抽象类,不允许实例。
  1927. */
  1928. class Script3D extends laya.components.Component {
  1929. /**
  1930. * @inheritDoc
  1931. * @override
  1932. */
  1933. readonly isSingleton:boolean;
  1934. private _checkProcessTriggers:any;
  1935. private _checkProcessCollisions:any;
  1936. /**
  1937. * 创建后只执行一次
  1938. * 此方法为虚方法,使用时重写覆盖即可
  1939. */
  1940. onAwake():void;
  1941. /**
  1942. * 每次启动后执行
  1943. * 此方法为虚方法,使用时重写覆盖即可
  1944. */
  1945. onEnable():void;
  1946. /**
  1947. * 第一次执行update之前执行,只会执行一次
  1948. * 此方法为虚方法,使用时重写覆盖即可
  1949. */
  1950. onStart():void;
  1951. /**
  1952. * 开始触发时执行
  1953. * 此方法为虚方法,使用时重写覆盖即可
  1954. */
  1955. onTriggerEnter(other:laya.d3.physics.PhysicsComponent):void;
  1956. /**
  1957. * 持续触发时执行
  1958. * 此方法为虚方法,使用时重写覆盖即可
  1959. */
  1960. onTriggerStay(other:laya.d3.physics.PhysicsComponent):void;
  1961. /**
  1962. * 结束触发时执行
  1963. * 此方法为虚方法,使用时重写覆盖即可
  1964. */
  1965. onTriggerExit(other:laya.d3.physics.PhysicsComponent):void;
  1966. /**
  1967. * 开始碰撞时执行
  1968. * 此方法为虚方法,使用时重写覆盖即可
  1969. */
  1970. onCollisionEnter(collision:laya.d3.physics.Collision):void;
  1971. /**
  1972. * 持续碰撞时执行
  1973. * 此方法为虚方法,使用时重写覆盖即可
  1974. */
  1975. onCollisionStay(collision:laya.d3.physics.Collision):void;
  1976. /**
  1977. * 结束碰撞时执行
  1978. * 此方法为虚方法,使用时重写覆盖即可
  1979. */
  1980. onCollisionExit(collision:laya.d3.physics.Collision):void;
  1981. /**
  1982. * 鼠标按下时执行
  1983. * 此方法为虚方法,使用时重写覆盖即可
  1984. */
  1985. onMouseDown():void;
  1986. /**
  1987. * 鼠标拖拽时执行
  1988. * 此方法为虚方法,使用时重写覆盖即可
  1989. */
  1990. onMouseDrag():void;
  1991. /**
  1992. * 鼠标点击时执行
  1993. * 此方法为虚方法,使用时重写覆盖即可
  1994. */
  1995. onMouseClick():void;
  1996. /**
  1997. * 鼠标弹起时执行
  1998. * 此方法为虚方法,使用时重写覆盖即可
  1999. */
  2000. onMouseUp():void;
  2001. /**
  2002. * 鼠标进入时执行
  2003. * 此方法为虚方法,使用时重写覆盖即可
  2004. */
  2005. onMouseEnter():void;
  2006. /**
  2007. * 鼠标经过时执行
  2008. * 此方法为虚方法,使用时重写覆盖即可
  2009. */
  2010. onMouseOver():void;
  2011. /**
  2012. * 鼠标离开时执行
  2013. * 此方法为虚方法,使用时重写覆盖即可
  2014. */
  2015. onMouseOut():void;
  2016. /**
  2017. * 键盘按下时执行
  2018. * 此方法为虚方法,使用时重写覆盖即可
  2019. */
  2020. onKeyDown(e:laya.events.Event):void;
  2021. /**
  2022. * 键盘产生一个字符时执行
  2023. * 此方法为虚方法,使用时重写覆盖即可
  2024. */
  2025. onKeyPress(e:laya.events.Event):void;
  2026. /**
  2027. * 键盘抬起时执行
  2028. * 此方法为虚方法,使用时重写覆盖即可
  2029. */
  2030. onKeyUp(e:laya.events.Event):void;
  2031. /**
  2032. * 每帧更新时执行
  2033. * 此方法为虚方法,使用时重写覆盖即可
  2034. */
  2035. onUpdate():void;
  2036. /**
  2037. * 每帧更新时执行,在update之后执行
  2038. * 此方法为虚方法,使用时重写覆盖即可
  2039. */
  2040. onLateUpdate():void;
  2041. /**
  2042. * 渲染之前执行
  2043. * 此方法为虚方法,使用时重写覆盖即可
  2044. */
  2045. onPreRender():void;
  2046. /**
  2047. * 渲染之后执行
  2048. * 此方法为虚方法,使用时重写覆盖即可
  2049. */
  2050. onPostRender():void;
  2051. /**
  2052. * 禁用时执行
  2053. * 此方法为虚方法,使用时重写覆盖即可
  2054. */
  2055. onDisable():void;
  2056. /**
  2057. * 销毁时执行
  2058. * 此方法为虚方法,使用时重写覆盖即可
  2059. */
  2060. onDestroy():void;
  2061. }
  2062. }
  2063. declare module laya.d3.component {
  2064. /**
  2065. * <code>SimpleSingletonList</code> 类用于实现单例队列。
  2066. */
  2067. class SimpleSingletonList extends laya.d3.component.SingletonList<laya.resource.ISingletonElement> {
  2068. /**
  2069. * 创建一个新的 <code>SimpleSingletonList</code> 实例。
  2070. */
  2071. constructor();
  2072. }
  2073. }
  2074. declare module laya.d3.component {
  2075. /**
  2076. * <code>SingletonList</code> 类用于实现单例队列。
  2077. */
  2078. class SingletonList<T> {
  2079. /**
  2080. * 创建一个新的 <code>SingletonList</code> 实例。
  2081. */
  2082. constructor();
  2083. }
  2084. }
  2085. declare module laya.d3.core {
  2086. /**
  2087. * <code>Avatar</code> 类用于创建Avatar。
  2088. */
  2089. class Avatar extends laya.resource.Resource implements laya.d3.core.IClone {
  2090. /**
  2091. * Avatar资源。
  2092. */
  2093. static AVATAR:string;
  2094. /**
  2095. * @inheritDoc
  2096. */
  2097. static _parse(data:any,propertyParams?:any,constructParams?:any[]):Avatar;
  2098. /**
  2099. * 加载Avatar文件。
  2100. * @param url Avatar文件。
  2101. * @param complete 完成回掉。
  2102. */
  2103. static load(url:string,complete:laya.utils.Handler):void;
  2104. /**
  2105. * [NATIVE]
  2106. */
  2107. private _nativeNodeCount:any;
  2108. /**
  2109. * 创建一个 <code>Avatar</code> 实例。
  2110. */
  2111. constructor();
  2112. private _initCloneToAnimator:any;
  2113. private _parseNode:any;
  2114. /**
  2115. * 克隆数据到Avatr。
  2116. * @param destObject 克隆源。
  2117. */
  2118. _cloneDatasToAnimator(destAnimator:laya.d3.component.Animator):void;
  2119. /**
  2120. * 克隆。
  2121. * @param destObject 克隆源。
  2122. */
  2123. cloneTo(destObject:any):void;
  2124. /**
  2125. * 克隆。
  2126. * @return 克隆副本。
  2127. */
  2128. clone():any;
  2129. }
  2130. }
  2131. declare module laya.d3.core {
  2132. /**
  2133. * <code>BaseCamera</code> 类用于创建摄像机的父类。
  2134. */
  2135. class BaseCamera extends laya.d3.core.Sprite3D {
  2136. static _tempMatrix4x40:laya.d3.math.Matrix4x4;
  2137. static CAMERAPOS:number;
  2138. static VIEWMATRIX:number;
  2139. static PROJECTMATRIX:number;
  2140. static VIEWPROJECTMATRIX:number;
  2141. static CAMERADIRECTION:number;
  2142. static CAMERAUP:number;
  2143. static VIEWPORT:number;
  2144. static PROJECTION_PARAMS:number;
  2145. /**
  2146. * 渲染模式,延迟光照渲染,暂未开放。
  2147. */
  2148. static RENDERINGTYPE_DEFERREDLIGHTING:string;
  2149. /**
  2150. * 渲染模式,前向渲染。
  2151. */
  2152. static RENDERINGTYPE_FORWARDRENDERING:string;
  2153. /**
  2154. * 清除标记,固定颜色。
  2155. */
  2156. static CLEARFLAG_SOLIDCOLOR:number;
  2157. /**
  2158. * 清除标记,天空。
  2159. */
  2160. static CLEARFLAG_SKY:number;
  2161. /**
  2162. * 清除标记,仅深度。
  2163. */
  2164. static CLEARFLAG_DEPTHONLY:number;
  2165. /**
  2166. * 清除标记,不清除。
  2167. */
  2168. static CLEARFLAG_NONE:number;
  2169. protected static _invertYScaleMatrix:laya.d3.math.Matrix4x4;
  2170. protected static _invertYProjectionMatrix:laya.d3.math.Matrix4x4;
  2171. protected static _invertYProjectionViewMatrix:laya.d3.math.Matrix4x4;
  2172. /**
  2173. * 近裁剪面。
  2174. */
  2175. protected _nearPlane:number;
  2176. /**
  2177. * 远裁剪面。
  2178. */
  2179. protected _farPlane:number;
  2180. /**
  2181. * 视野。
  2182. */
  2183. private _fieldOfView:any;
  2184. /**
  2185. * 正交投影的垂直尺寸。
  2186. */
  2187. private _orthographicVerticalSize:any;
  2188. private _skyRenderer:any;
  2189. private _forward:any;
  2190. private _up:any;
  2191. /**
  2192. * 清楚标记。
  2193. */
  2194. clearFlag:number;
  2195. /**
  2196. * 摄像机的清除颜色,默认颜色为CornflowerBlue。
  2197. */
  2198. clearColor:laya.d3.math.Vector4;
  2199. /**
  2200. * 可视层位标记遮罩值,支持混合 例:cullingMask=Math.pow(2,0)|Math.pow(2,1)为第0层和第1层可见。
  2201. */
  2202. cullingMask:number;
  2203. /**
  2204. * 渲染时是否用遮挡剔除。
  2205. */
  2206. useOcclusionCulling:boolean;
  2207. /**
  2208. * 获取天空渲染器。
  2209. * @return 天空渲染器。
  2210. */
  2211. readonly skyRenderer:laya.d3.resource.models.SkyRenderer;
  2212. /**
  2213. * 获取视野。
  2214. * @return 视野。
  2215. */
  2216. /**
  2217. * 设置视野。
  2218. * @param value 视野。
  2219. */
  2220. fieldOfView:number;
  2221. /**
  2222. * 获取近裁面。
  2223. * @return 近裁面。
  2224. */
  2225. /**
  2226. * 设置近裁面。
  2227. * @param value 近裁面。
  2228. */
  2229. nearPlane:number;
  2230. /**
  2231. * 获取远裁面。
  2232. * @return 远裁面。
  2233. */
  2234. /**
  2235. * 设置远裁面。
  2236. * @param value 远裁面。
  2237. */
  2238. farPlane:number;
  2239. /**
  2240. * 获取是否正交投影矩阵。
  2241. * @return 是否正交投影矩阵。
  2242. */
  2243. /**
  2244. * 设置是否正交投影矩阵。
  2245. * @param 是否正交投影矩阵 。
  2246. */
  2247. orthographic:boolean;
  2248. /**
  2249. * 获取正交投影垂直矩阵尺寸。
  2250. * @return 正交投影垂直矩阵尺寸。
  2251. */
  2252. /**
  2253. * 设置正交投影垂直矩阵尺寸。
  2254. * @param 正交投影垂直矩阵尺寸 。
  2255. */
  2256. orthographicVerticalSize:number;
  2257. renderingOrder:number;
  2258. /**
  2259. * 创建一个 <code>BaseCamera</code> 实例。
  2260. * @param fieldOfView 视野。
  2261. * @param nearPlane 近裁面。
  2262. * @param farPlane 远裁面。
  2263. */
  2264. constructor(nearPlane?:number,farPlane?:number);
  2265. /**
  2266. * 通过RenderingOrder属性对摄像机机型排序。
  2267. */
  2268. _sortCamerasByRenderingOrder():void;
  2269. /**
  2270. * 相机渲染。
  2271. * @param shader 着色器。
  2272. * @param replacementTag 着色器替换标记。
  2273. */
  2274. render(shader?:laya.d3.shader.Shader3D,replacementTag?:string):void;
  2275. /**
  2276. * 增加可视图层,layer值为0到31层。
  2277. * @param layer 图层。
  2278. */
  2279. addLayer(layer:number):void;
  2280. /**
  2281. * 移除可视图层,layer值为0到31层。
  2282. * @param layer 图层。
  2283. */
  2284. removeLayer(layer:number):void;
  2285. /**
  2286. * 增加所有图层。
  2287. */
  2288. addAllLayers():void;
  2289. /**
  2290. * 移除所有图层。
  2291. */
  2292. removeAllLayers():void;
  2293. resetProjectionMatrix():void;
  2294. /**
  2295. * @inheritDoc
  2296. * @override
  2297. */
  2298. protected _onActive():void;
  2299. /**
  2300. * @inheritDoc
  2301. * @override
  2302. */
  2303. protected _onInActive():void;
  2304. /**
  2305. * @inheritDoc
  2306. * @override
  2307. */
  2308. destroy(destroyChild?:boolean):void;
  2309. }
  2310. }
  2311. declare module laya.d3.core {
  2312. /**
  2313. * <code>Bounds</code> 类用于创建包围体。
  2314. */
  2315. class Bounds implements laya.d3.core.IClone {
  2316. private _updateFlag:any;
  2317. /**
  2318. */
  2319. _boundBox:laya.d3.math.BoundBox;
  2320. /**
  2321. * 设置包围盒的最小点。
  2322. * @param value 包围盒的最小点。
  2323. */
  2324. setMin(value:laya.d3.math.Vector3):void;
  2325. /**
  2326. * 获取包围盒的最小点。
  2327. * @return 包围盒的最小点。
  2328. */
  2329. getMin():laya.d3.math.Vector3;
  2330. /**
  2331. * 设置包围盒的最大点。
  2332. * @param value 包围盒的最大点。
  2333. */
  2334. setMax(value:laya.d3.math.Vector3):void;
  2335. /**
  2336. * 获取包围盒的最大点。
  2337. * @return 包围盒的最大点。
  2338. */
  2339. getMax():laya.d3.math.Vector3;
  2340. /**
  2341. * 设置包围盒的中心点。
  2342. * @param value 包围盒的中心点。
  2343. */
  2344. setCenter(value:laya.d3.math.Vector3):void;
  2345. /**
  2346. * 获取包围盒的中心点。
  2347. * @return 包围盒的中心点。
  2348. */
  2349. getCenter():laya.d3.math.Vector3;
  2350. /**
  2351. * 设置包围盒的范围。
  2352. * @param value 包围盒的范围。
  2353. */
  2354. setExtent(value:laya.d3.math.Vector3):void;
  2355. /**
  2356. * 获取包围盒的范围。
  2357. * @return 包围盒的范围。
  2358. */
  2359. getExtent():laya.d3.math.Vector3;
  2360. /**
  2361. * 创建一个 <code>Bounds</code> 实例。
  2362. * @param min min 最小坐标
  2363. * @param max max 最大坐标。
  2364. */
  2365. constructor(min:laya.d3.math.Vector3,max:laya.d3.math.Vector3);
  2366. private _getUpdateFlag:any;
  2367. private _setUpdateFlag:any;
  2368. private _getCenter:any;
  2369. private _getExtent:any;
  2370. private _getMin:any;
  2371. private _getMax:any;
  2372. private _rotateExtents:any;
  2373. /**
  2374. * 克隆。
  2375. * @param destObject 克隆源。
  2376. */
  2377. cloneTo(destObject:any):void;
  2378. /**
  2379. * 克隆。
  2380. * @return 克隆副本。
  2381. */
  2382. clone():any;
  2383. }
  2384. }
  2385. declare module laya.d3.core {
  2386. /**
  2387. * <code>Camera</code> 类用于创建摄像机。
  2388. */
  2389. class Camera extends laya.d3.core.BaseCamera {
  2390. /**
  2391. * 是否允许渲染。
  2392. */
  2393. enableRender:boolean;
  2394. /**
  2395. * 获取横纵比。
  2396. */
  2397. aspectRatio:number;
  2398. /**
  2399. * 获取屏幕像素坐标的视口。
  2400. */
  2401. viewport:laya.d3.math.Viewport;
  2402. /**
  2403. * 获取裁剪空间的视口。
  2404. */
  2405. normalizedViewport:laya.d3.math.Viewport;
  2406. /**
  2407. * 获取视图矩阵。
  2408. */
  2409. readonly viewMatrix:laya.d3.math.Matrix4x4;
  2410. /**
  2411. * 获取投影矩阵。
  2412. */
  2413. projectionMatrix:laya.d3.math.Matrix4x4;
  2414. /**
  2415. * 获取视图投影矩阵。
  2416. */
  2417. readonly projectionViewMatrix:laya.d3.math.Matrix4x4;
  2418. /**
  2419. * 获取摄像机视锥。
  2420. */
  2421. readonly boundFrustum:laya.d3.math.BoundFrustum;
  2422. /**
  2423. * 获取自定义渲染场景的渲染目标。
  2424. */
  2425. renderTarget:laya.d3.resource.RenderTexture;
  2426. /**
  2427. * 获取后期处理。
  2428. */
  2429. postProcess:laya.d3.component.PostProcess;
  2430. /**
  2431. * 获取是否开启HDR。
  2432. */
  2433. enableHDR:boolean;
  2434. /**
  2435. * 创建一个 <code>Camera</code> 实例。
  2436. * @param aspectRatio 横纵比。
  2437. * @param nearPlane 近裁面。
  2438. * @param farPlane 远裁面。
  2439. */
  2440. constructor(aspectRatio?:number,nearPlane?:number,farPlane?:number);
  2441. /**
  2442. * 通过蒙版值获取蒙版是否显示。
  2443. * @param layer 层。
  2444. * @return 是否显示。
  2445. */
  2446. _isLayerVisible(layer:number):boolean;
  2447. _getInternalRenderTexture():laya.d3.resource.RenderTexture;
  2448. /**
  2449. * @override
  2450. * @param shader 着色器
  2451. * @param replacementTag 替换标记。
  2452. */
  2453. render(shader?:laya.d3.shader.Shader3D,replacementTag?:string):void;
  2454. /**
  2455. * 计算从屏幕空间生成的射线。
  2456. * @param point 屏幕空间的位置位置。
  2457. * @return out 输出射线。
  2458. */
  2459. viewportPointToRay(point:laya.d3.math.Vector2,out:laya.d3.math.Ray):void;
  2460. /**
  2461. * 计算从裁切空间生成的射线。
  2462. * @param point 裁切空间的位置。。
  2463. * @return out 输出射线。
  2464. */
  2465. normalizedViewportPointToRay(point:laya.d3.math.Vector2,out:laya.d3.math.Ray):void;
  2466. /**
  2467. * 计算从世界空间准换三维坐标到屏幕空间。
  2468. * @param position 世界空间的位置。
  2469. * @param out 输出位置。
  2470. */
  2471. worldToViewportPoint(position:laya.d3.math.Vector3,out:laya.d3.math.Vector3):void;
  2472. /**
  2473. * 计算从世界空间准换三维坐标到裁切空间。
  2474. * @param position 世界空间的位置。
  2475. * @param out 输出位置。
  2476. */
  2477. worldToNormalizedViewportPoint(position:laya.d3.math.Vector3,out:laya.d3.math.Vector3):void;
  2478. /**
  2479. * 转换2D屏幕坐标系统到3D正交投影下的坐标系统,注:只有正交模型下有效。
  2480. * @param source 源坐标。
  2481. * @param out 输出坐标。
  2482. * @return 是否转换成功。
  2483. */
  2484. convertScreenCoordToOrthographicCoord(source:laya.d3.math.Vector3,out:laya.d3.math.Vector3):boolean;
  2485. /**
  2486. * @inheritDoc
  2487. * @override
  2488. */
  2489. destroy(destroyChild?:boolean):void;
  2490. /**
  2491. * 在特定渲染管线阶段添加指令缓存。
  2492. */
  2493. addCommandBuffer(event:number,commandBuffer:laya.d3.core.render.command.CommandBuffer):void;
  2494. /**
  2495. * 在特定渲染管线阶段移除指令缓存。
  2496. */
  2497. removeCommandBuffer(event:number,commandBuffer:laya.d3.core.render.command.CommandBuffer):void;
  2498. /**
  2499. * 在特定渲染管线阶段移除所有指令缓存。
  2500. */
  2501. removeCommandBuffers(event:number):void;
  2502. }
  2503. }
  2504. declare module laya.d3.core {
  2505. /**
  2506. * <code>FloatKeyFrame</code> 类用于创建浮点关键帧实例。
  2507. */
  2508. class FloatKeyframe extends laya.d3.core.Keyframe {
  2509. inTangent:number;
  2510. outTangent:number;
  2511. value:number;
  2512. /**
  2513. * 创建一个 <code>FloatKeyFrame</code> 实例。
  2514. */
  2515. constructor();
  2516. /**
  2517. * @inheritDoc
  2518. * @override
  2519. */
  2520. cloneTo(destObject:any):void;
  2521. }
  2522. }
  2523. declare module laya.d3.core {
  2524. /**
  2525. * <code>GeometryElement</code> 类用于实现几何体元素,该类为抽象类。
  2526. */
  2527. class GeometryElement implements laya.resource.IDestroy {
  2528. /**
  2529. * 获取是否销毁。
  2530. * @return 是否销毁。
  2531. */
  2532. readonly destroyed:boolean;
  2533. /**
  2534. * 创建一个 <code>GeometryElement</code> 实例。
  2535. */
  2536. constructor();
  2537. /**
  2538. * 获取几何体类型。
  2539. */
  2540. _getType():number;
  2541. /**
  2542. * 销毁。
  2543. */
  2544. destroy():void;
  2545. }
  2546. }
  2547. declare module laya.d3.core {
  2548. /**
  2549. * <code>Gradient</code> 类用于创建颜色渐变。
  2550. */
  2551. class Gradient implements laya.d3.core.IClone {
  2552. private _mode:any;
  2553. private _maxColorRGBKeysCount:any;
  2554. private _maxColorAlphaKeysCount:any;
  2555. private _colorRGBKeysCount:any;
  2556. private _colorAlphaKeysCount:any;
  2557. /**
  2558. * 获取梯度模式。
  2559. * @return 梯度模式。
  2560. */
  2561. /**
  2562. * 设置梯度模式。
  2563. * @param value 梯度模式。
  2564. */
  2565. mode:number;
  2566. /**
  2567. * 获取颜色RGB数量。
  2568. * @return 颜色RGB数量。
  2569. */
  2570. readonly colorRGBKeysCount:number;
  2571. /**
  2572. * 获取颜色Alpha数量。
  2573. * @return 颜色Alpha数量。
  2574. */
  2575. readonly colorAlphaKeysCount:number;
  2576. /**
  2577. * 获取最大颜色RGB帧数量。
  2578. * @return 最大RGB帧数量。
  2579. */
  2580. readonly maxColorRGBKeysCount:number;
  2581. /**
  2582. * 获取最大颜色Alpha帧数量。
  2583. * @return 最大Alpha帧数量。
  2584. */
  2585. readonly maxColorAlphaKeysCount:number;
  2586. /**
  2587. * 创建一个 <code>Gradient</code> 实例。
  2588. * @param maxColorRGBKeyCount 最大RGB帧个数。
  2589. * @param maxColorAlphaKeyCount 最大Alpha帧个数。
  2590. */
  2591. constructor(maxColorRGBKeyCount:number,maxColorAlphaKeyCount:number);
  2592. /**
  2593. * 增加颜色RGB帧。
  2594. * @param key 生命周期,范围为0到1。
  2595. * @param value RGB值。
  2596. */
  2597. addColorRGB(key:number,value:laya.d3.math.Color):void;
  2598. /**
  2599. * 增加颜色Alpha帧。
  2600. * @param key 生命周期,范围为0到1。
  2601. * @param value Alpha值。
  2602. */
  2603. addColorAlpha(key:number,value:number):void;
  2604. /**
  2605. * 更新颜色RGB帧。
  2606. * @param index 索引。
  2607. * @param key 生命周期,范围为0到1。
  2608. * @param value RGB值。
  2609. */
  2610. updateColorRGB(index:number,key:number,value:laya.d3.math.Color):void;
  2611. /**
  2612. * 更新颜色Alpha帧。
  2613. * @param index 索引。
  2614. * @param key 生命周期,范围为0到1。
  2615. * @param value Alpha值。
  2616. */
  2617. updateColorAlpha(index:number,key:number,value:number):void;
  2618. /**
  2619. * 通过插值获取RGB颜色。
  2620. * @param lerpFactor 插值因子。
  2621. * @param out 颜色结果。
  2622. * @param 开始查找索引 。
  2623. * @return 结果索引。
  2624. */
  2625. evaluateColorRGB(lerpFactor:number,out:laya.d3.math.Color,startSearchIndex?:number,reverseSearch?:boolean):number;
  2626. /**
  2627. * 通过插值获取透明值。
  2628. * @param lerpFactor 插值因子。
  2629. * @param out 颜色结果。
  2630. * @param 开始查找索引 。
  2631. * @return 结果索引 。
  2632. */
  2633. evaluateColorAlpha(lerpFactor:number,outColor:laya.d3.math.Color,startSearchIndex?:number,reverseSearch?:boolean):number;
  2634. /**
  2635. * 克隆。
  2636. * @param destObject 克隆源。
  2637. */
  2638. cloneTo(destObject:any):void;
  2639. /**
  2640. * 克隆。
  2641. * @return 克隆副本。
  2642. */
  2643. clone():any;
  2644. }
  2645. }
  2646. declare module laya.d3.core {
  2647. /**
  2648. * ...
  2649. * @author ...
  2650. */
  2651. class GradientMode {
  2652. /**
  2653. * 找到与请求的评估时间相邻的两个键,并线性插值在他们之间,以获得一种混合的颜色。
  2654. */
  2655. static Blend:number;
  2656. /**
  2657. * 返回一个固定的颜色,通过查找第一个键的时间值大于所请求的评估时间。
  2658. */
  2659. static Fixed:number;
  2660. }
  2661. }
  2662. declare module laya.d3.core {
  2663. /**
  2664. * <code>HeightMap</code> 类用于实现高度图数据。
  2665. */
  2666. class HeightMap {
  2667. private static _tempRay:any;
  2668. /**
  2669. * 从网格精灵生成高度图。
  2670. * @param meshSprite 网格精灵。
  2671. * @param width 高度图宽度。
  2672. * @param height 高度图高度。
  2673. * @param outCellSize 输出 单元尺寸。
  2674. */
  2675. static creatFromMesh(mesh:laya.d3.resource.models.Mesh,width:number,height:number,outCellSize:laya.d3.math.Vector2):HeightMap;
  2676. /**
  2677. * 从图片生成高度图。
  2678. * @param image 图片。
  2679. * @param maxHeight 最小高度。
  2680. * @param maxHeight 最大高度。
  2681. */
  2682. static createFromImage(texture:laya.resource.Texture2D,minHeight:number,maxHeight:number):HeightMap;
  2683. private static _getPosition:any;
  2684. private _datas:any;
  2685. private _w:any;
  2686. private _h:any;
  2687. private _minHeight:any;
  2688. private _maxHeight:any;
  2689. /**
  2690. * 获取宽度。
  2691. * @return value 宽度。
  2692. */
  2693. readonly width:number;
  2694. /**
  2695. * 获取高度。
  2696. * @return value 高度。
  2697. */
  2698. readonly height:number;
  2699. /**
  2700. * 最大高度。
  2701. * @return value 最大高度。
  2702. */
  2703. readonly maxHeight:number;
  2704. /**
  2705. * 最大高度。
  2706. * @return value 最大高度。
  2707. */
  2708. readonly minHeight:number;
  2709. /**
  2710. * 创建一个 <code>HeightMap</code> 实例。
  2711. * @param width 宽度。
  2712. * @param height 高度。
  2713. * @param minHeight 最大高度。
  2714. * @param maxHeight 最大高度。
  2715. */
  2716. constructor(width:number,height:number,minHeight:number,maxHeight:number);
  2717. /**
  2718. * 获取高度。
  2719. * @param row 列数。
  2720. * @param col 行数。
  2721. * @return 高度。
  2722. */
  2723. getHeight(row:number,col:number):number;
  2724. }
  2725. }
  2726. declare module laya.d3.core {
  2727. /**
  2728. * @private <code>IClone</code> 资源克隆接口。
  2729. */
  2730. interface IClone{
  2731. clone():any;
  2732. cloneTo(destObject:any):void;
  2733. }
  2734. }
  2735. declare module laya.d3.core {
  2736. /**
  2737. * <code>KeyFrame</code> 类用于创建关键帧实例。
  2738. */
  2739. class Keyframe implements laya.d3.core.IClone {
  2740. /**
  2741. * 时间。
  2742. */
  2743. time:number;
  2744. /**
  2745. * 创建一个 <code>KeyFrame</code> 实例。
  2746. */
  2747. constructor();
  2748. /**
  2749. * 克隆。
  2750. * @param destObject 克隆源。
  2751. */
  2752. cloneTo(destObject:any):void;
  2753. /**
  2754. * 克隆。
  2755. * @return 克隆副本。
  2756. */
  2757. clone():any;
  2758. }
  2759. }
  2760. declare module laya.d3.core.light {
  2761. /**
  2762. * <code>DirectionLight</code> 类用于创建平行光。
  2763. */
  2764. class DirectionLight extends laya.d3.core.light.LightSprite {
  2765. /**
  2766. * @iternal
  2767. */
  2768. _direction:laya.d3.math.Vector3;
  2769. /**
  2770. * @inheritDoc
  2771. * @override
  2772. */
  2773. shadow:boolean;
  2774. /**
  2775. * 创建一个 <code>DirectionLight</code> 实例。
  2776. */
  2777. constructor();
  2778. }
  2779. }
  2780. declare module laya.d3.core.light {
  2781. /**
  2782. * <code>LightSprite</code> 类用于创建灯光的父类。
  2783. */
  2784. class LightSprite extends laya.d3.core.Sprite3D {
  2785. /**
  2786. * 灯光烘培类型-实时。
  2787. */
  2788. static LIGHTMAPBAKEDTYPE_REALTIME:number;
  2789. /**
  2790. * 灯光烘培类型-混合。
  2791. */
  2792. static LIGHTMAPBAKEDTYPE_MIXED:number;
  2793. /**
  2794. * 灯光烘培类型-烘焙。
  2795. */
  2796. static LIGHTMAPBAKEDTYPE_BAKED:number;
  2797. /**
  2798. * 灯光颜色。
  2799. */
  2800. color:laya.d3.math.Vector3;
  2801. /**
  2802. * 灯光强度。
  2803. */
  2804. intensity:number;
  2805. /**
  2806. * 是否产生阴影。
  2807. */
  2808. shadow:boolean;
  2809. /**
  2810. * 阴影最远范围。
  2811. */
  2812. shadowDistance:number;
  2813. /**
  2814. * 阴影贴图尺寸。
  2815. */
  2816. shadowResolution:number;
  2817. /**
  2818. * 阴影分段数。
  2819. */
  2820. shadowPSSMCount:number;
  2821. /**
  2822. * 阴影PCF类型。
  2823. */
  2824. shadowPCFType:number;
  2825. /**
  2826. * 灯光烘培类型。
  2827. */
  2828. lightmapBakedType:number;
  2829. /**
  2830. * 创建一个 <code>LightSprite</code> 实例。
  2831. */
  2832. constructor();
  2833. /**
  2834. * @inheritDoc
  2835. * @override
  2836. */
  2837. protected _onActive():void;
  2838. /**
  2839. * @inheritDoc
  2840. * @override
  2841. */
  2842. protected _onInActive():void;
  2843. /**
  2844. * 灯光的漫反射颜色。
  2845. * @return 灯光的漫反射颜色。
  2846. */
  2847. diffuseColor:laya.d3.math.Vector3;
  2848. }
  2849. }
  2850. declare module laya.d3.core.light {
  2851. /**
  2852. * <code>PointLight</code> 类用于创建点光。
  2853. */
  2854. class PointLight extends laya.d3.core.light.LightSprite {
  2855. /**
  2856. * 点光的范围。
  2857. * @return 点光的范围。
  2858. */
  2859. range:number;
  2860. /**
  2861. * 创建一个 <code>PointLight</code> 实例。
  2862. */
  2863. constructor();
  2864. }
  2865. }
  2866. declare module laya.d3.core.light {
  2867. /**
  2868. * <code>SpotLight</code> 类用于创建聚光。
  2869. */
  2870. class SpotLight extends laya.d3.core.light.LightSprite {
  2871. /**
  2872. * 聚光灯的锥形角度。
  2873. */
  2874. spotAngle:number;
  2875. /**
  2876. * 聚光的范围。
  2877. */
  2878. range:number;
  2879. /**
  2880. * 创建一个 <code>SpotLight</code> 实例。
  2881. */
  2882. constructor();
  2883. }
  2884. }
  2885. declare module laya.d3.core.material {
  2886. /**
  2887. * <code>BaseMaterial</code> 类用于创建材质。
  2888. */
  2889. class BaseMaterial extends laya.resource.Resource implements laya.d3.core.IClone {
  2890. /**
  2891. * Material资源。
  2892. */
  2893. static MATERIAL:string;
  2894. /**
  2895. * 渲染队列_不透明。
  2896. */
  2897. static RENDERQUEUE_OPAQUE:number;
  2898. /**
  2899. * 渲染队列_阿尔法裁剪。
  2900. */
  2901. static RENDERQUEUE_ALPHATEST:number;
  2902. /**
  2903. * 渲染队列_透明。
  2904. */
  2905. static RENDERQUEUE_TRANSPARENT:number;
  2906. /**
  2907. * 着色器变量,透明测试值。
  2908. */
  2909. static ALPHATESTVALUE:number;
  2910. /**
  2911. * 材质级着色器宏定义,透明测试。
  2912. */
  2913. static SHADERDEFINE_ALPHATEST:laya.d3.shader.ShaderDefine;
  2914. /**
  2915. * 加载材质。
  2916. * @param url 材质地址。
  2917. * @param complete 完成回掉。
  2918. */
  2919. static load(url:string,complete:laya.utils.Handler):void;
  2920. /**
  2921. * @inheritDoc
  2922. */
  2923. static _parse(data:any,propertyParams?:any,constructParams?:any[]):BaseMaterial;
  2924. private _alphaTest:any;
  2925. _shaderValues:laya.d3.shader.ShaderData;
  2926. /**
  2927. * 所属渲染队列.
  2928. */
  2929. renderQueue:number;
  2930. /**
  2931. * 获取透明测试模式裁剪值。
  2932. * @return 透明测试模式裁剪值。
  2933. */
  2934. /**
  2935. * 设置透明测试模式裁剪值。
  2936. * @param value 透明测试模式裁剪值。
  2937. */
  2938. alphaTestValue:number;
  2939. /**
  2940. * 获取是否透明裁剪。
  2941. * @return 是否透明裁剪。
  2942. */
  2943. /**
  2944. * 设置是否透明裁剪。
  2945. * @param value 是否透明裁剪。
  2946. */
  2947. alphaTest:boolean;
  2948. /**
  2949. * 创建一个 <code>BaseMaterial</code> 实例。
  2950. */
  2951. constructor();
  2952. private _removeTetxureReference:any;
  2953. /**
  2954. * @inheritDoc
  2955. * @override
  2956. */
  2957. protected _disposeResource():void;
  2958. /**
  2959. * 设置使用Shader名字。
  2960. * @param name 名称。
  2961. */
  2962. setShaderName(name:string):void;
  2963. /**
  2964. * 克隆。
  2965. * @param destObject 克隆源。
  2966. */
  2967. cloneTo(destObject:any):void;
  2968. /**
  2969. * 克隆。
  2970. * @return 克隆副本。
  2971. */
  2972. clone():any;
  2973. readonly _defineDatas:laya.d3.shader.DefineDatas;
  2974. }
  2975. }
  2976. declare module laya.d3.core.material {
  2977. /**
  2978. * <code>BlinnPhongMaterial</code> 类用于实现Blinn-Phong材质。
  2979. */
  2980. class BlinnPhongMaterial extends laya.d3.core.material.BaseMaterial {
  2981. /**
  2982. * 高光强度数据源_漫反射贴图的Alpha通道。
  2983. */
  2984. static SPECULARSOURCE_DIFFUSEMAPALPHA:number;
  2985. /**
  2986. * 高光强度数据源_高光贴图的RGB通道。
  2987. */
  2988. static SPECULARSOURCE_SPECULARMAP:number;
  2989. /**
  2990. * 渲染状态_不透明。
  2991. */
  2992. static RENDERMODE_OPAQUE:number;
  2993. /**
  2994. * 渲染状态_阿尔法测试。
  2995. */
  2996. static RENDERMODE_CUTOUT:number;
  2997. /**
  2998. * 渲染状态_透明混合。
  2999. */
  3000. static RENDERMODE_TRANSPARENT:number;
  3001. static SHADERDEFINE_DIFFUSEMAP:laya.d3.shader.ShaderDefine;
  3002. static SHADERDEFINE_NORMALMAP:laya.d3.shader.ShaderDefine;
  3003. static SHADERDEFINE_SPECULARMAP:laya.d3.shader.ShaderDefine;
  3004. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  3005. static SHADERDEFINE_ENABLEVERTEXCOLOR:laya.d3.shader.ShaderDefine;
  3006. static ALBEDOTEXTURE:number;
  3007. static NORMALTEXTURE:number;
  3008. static SPECULARTEXTURE:number;
  3009. static ALBEDOCOLOR:number;
  3010. static MATERIALSPECULAR:number;
  3011. static SHININESS:number;
  3012. static TILINGOFFSET:number;
  3013. static CULL:number;
  3014. static BLEND:number;
  3015. static BLEND_SRC:number;
  3016. static BLEND_DST:number;
  3017. static DEPTH_TEST:number;
  3018. static DEPTH_WRITE:number;
  3019. /**
  3020. * 默认材质,禁止修改
  3021. */
  3022. static defaultMaterial:BlinnPhongMaterial;
  3023. private _albedoColor:any;
  3024. private _albedoIntensity:any;
  3025. private _enableLighting:any;
  3026. private _enableVertexColor:any;
  3027. /**
  3028. * 设置渲染模式。
  3029. * @return 渲染模式。
  3030. */
  3031. renderMode:number;
  3032. /**
  3033. * 是否支持顶点色。
  3034. */
  3035. enableVertexColor:boolean;
  3036. /**
  3037. * 纹理平铺和偏移X分量。
  3038. */
  3039. tilingOffsetX:number;
  3040. /**
  3041. * 纹理平铺和偏移Y分量。
  3042. */
  3043. tilingOffsetY:number;
  3044. /**
  3045. * 纹理平铺和偏移Z分量。
  3046. */
  3047. tilingOffsetZ:number;
  3048. /**
  3049. * 纹理平铺和偏移W分量。
  3050. */
  3051. tilingOffsetW:number;
  3052. /**
  3053. * 纹理平铺和偏移。
  3054. */
  3055. tilingOffset:laya.d3.math.Vector4;
  3056. /**
  3057. * 反照率颜色R分量。
  3058. */
  3059. albedoColorR:number;
  3060. /**
  3061. * 反照率颜色G分量。
  3062. */
  3063. albedoColorG:number;
  3064. /**
  3065. * 反照率颜色B分量。
  3066. */
  3067. albedoColorB:number;
  3068. /**
  3069. * 反照率颜色Z分量。
  3070. */
  3071. albedoColorA:number;
  3072. /**
  3073. * 反照率颜色。
  3074. */
  3075. albedoColor:laya.d3.math.Vector4;
  3076. /**
  3077. * 反照率强度。
  3078. */
  3079. albedoIntensity:number;
  3080. /**
  3081. * 高光颜色R轴分量。
  3082. */
  3083. specularColorR:number;
  3084. /**
  3085. * 高光颜色G分量。
  3086. */
  3087. specularColorG:number;
  3088. /**
  3089. * 高光颜色B分量。
  3090. */
  3091. specularColorB:number;
  3092. /**
  3093. * 高光颜色A分量。
  3094. */
  3095. specularColorA:number;
  3096. /**
  3097. * 高光颜色。
  3098. */
  3099. specularColor:laya.d3.math.Vector4;
  3100. /**
  3101. * 高光强度,范围为0到1。
  3102. */
  3103. shininess:number;
  3104. /**
  3105. * 反照率贴图。
  3106. */
  3107. albedoTexture:laya.resource.BaseTexture;
  3108. /**
  3109. * 法线贴图。
  3110. */
  3111. normalTexture:laya.resource.BaseTexture;
  3112. /**
  3113. * 高光贴图。
  3114. */
  3115. specularTexture:laya.resource.BaseTexture;
  3116. /**
  3117. * 是否启用光照。
  3118. */
  3119. enableLighting:boolean;
  3120. /**
  3121. * 是否写入深度。
  3122. */
  3123. depthWrite:boolean;
  3124. /**
  3125. * 剔除方式。
  3126. */
  3127. cull:number;
  3128. /**
  3129. * 混合方式。
  3130. */
  3131. blend:number;
  3132. /**
  3133. * 混合源。
  3134. */
  3135. blendSrc:number;
  3136. /**
  3137. * 混合目标。
  3138. */
  3139. blendDst:number;
  3140. /**
  3141. * 深度测试方式。
  3142. */
  3143. depthTest:number;
  3144. /**
  3145. * 创建一个 <code>BlinnPhongMaterial</code> 实例。
  3146. */
  3147. constructor();
  3148. /**
  3149. * 克隆。
  3150. * @return 克隆副本。
  3151. * @override
  3152. */
  3153. clone():any;
  3154. /**
  3155. * @inheritDoc
  3156. * @override
  3157. */
  3158. cloneTo(destObject:any):void;
  3159. }
  3160. }
  3161. declare module laya.d3.core.material {
  3162. /**
  3163. * <code>EffectMaterial</code> 类用于实现Mesh特效材质。
  3164. */
  3165. class EffectMaterial extends laya.d3.core.material.BaseMaterial {
  3166. /**
  3167. * 渲染状态_加色法混合。
  3168. */
  3169. static RENDERMODE_ADDTIVE:number;
  3170. /**
  3171. * 渲染状态_透明混合。
  3172. */
  3173. static RENDERMODE_ALPHABLENDED:number;
  3174. /**
  3175. * 默认材质,禁止修改
  3176. */
  3177. static defaultMaterial:EffectMaterial;
  3178. static SHADERDEFINE_MAINTEXTURE:laya.d3.shader.ShaderDefine;
  3179. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  3180. static SHADERDEFINE_ADDTIVEFOG:laya.d3.shader.ShaderDefine;
  3181. static MAINTEXTURE:number;
  3182. static TINTCOLOR:number;
  3183. static TILINGOFFSET:number;
  3184. static CULL:number;
  3185. static BLEND:number;
  3186. static BLEND_SRC:number;
  3187. static BLEND_DST:number;
  3188. static DEPTH_TEST:number;
  3189. static DEPTH_WRITE:number;
  3190. private _color:any;
  3191. /**
  3192. * 设置渲染模式。
  3193. * @return 渲染模式。
  3194. */
  3195. renderMode:number;
  3196. /**
  3197. * 获取颜色R分量。
  3198. * @return 颜色R分量。
  3199. */
  3200. /**
  3201. * 设置颜色R分量。
  3202. * @param value 颜色R分量。
  3203. */
  3204. colorR:number;
  3205. /**
  3206. * 获取颜色G分量。
  3207. * @return 颜色G分量。
  3208. */
  3209. /**
  3210. * 设置颜色G分量。
  3211. * @param value 颜色G分量。
  3212. */
  3213. colorG:number;
  3214. /**
  3215. * 获取颜色B分量。
  3216. * @return 颜色B分量。
  3217. */
  3218. /**
  3219. * 设置颜色B分量。
  3220. * @param value 颜色B分量。
  3221. */
  3222. colorB:number;
  3223. /**
  3224. * 获取颜色Z分量。
  3225. * @return 颜色Z分量。
  3226. */
  3227. /**
  3228. * 设置颜色alpha分量。
  3229. * @param value 颜色alpha分量。
  3230. */
  3231. colorA:number;
  3232. /**
  3233. * 获取颜色。
  3234. * @return 颜色。
  3235. */
  3236. /**
  3237. * 设置颜色。
  3238. * @param value 颜色。
  3239. */
  3240. color:laya.d3.math.Vector4;
  3241. /**
  3242. * 获取贴图。
  3243. * @return 贴图。
  3244. */
  3245. /**
  3246. * 设置贴图。
  3247. * @param value 贴图。
  3248. */
  3249. texture:laya.resource.BaseTexture;
  3250. /**
  3251. * 获取纹理平铺和偏移X分量。
  3252. * @return 纹理平铺和偏移X分量。
  3253. */
  3254. /**
  3255. * 获取纹理平铺和偏移X分量。
  3256. * @param x 纹理平铺和偏移X分量。
  3257. */
  3258. tilingOffsetX:number;
  3259. /**
  3260. * 获取纹理平铺和偏移Y分量。
  3261. * @return 纹理平铺和偏移Y分量。
  3262. */
  3263. /**
  3264. * 获取纹理平铺和偏移Y分量。
  3265. * @param y 纹理平铺和偏移Y分量。
  3266. */
  3267. tilingOffsetY:number;
  3268. /**
  3269. * 获取纹理平铺和偏移Z分量。
  3270. * @return 纹理平铺和偏移Z分量。
  3271. */
  3272. /**
  3273. * 获取纹理平铺和偏移Z分量。
  3274. * @param z 纹理平铺和偏移Z分量。
  3275. */
  3276. tilingOffsetZ:number;
  3277. /**
  3278. * 获取纹理平铺和偏移W分量。
  3279. * @return 纹理平铺和偏移W分量。
  3280. */
  3281. /**
  3282. * 获取纹理平铺和偏移W分量。
  3283. * @param w 纹理平铺和偏移W分量。
  3284. */
  3285. tilingOffsetW:number;
  3286. /**
  3287. * 获取纹理平铺和偏移。
  3288. * @return 纹理平铺和偏移。
  3289. */
  3290. /**
  3291. * 设置纹理平铺和偏移。
  3292. * @param value 纹理平铺和偏移。
  3293. */
  3294. tilingOffset:laya.d3.math.Vector4;
  3295. /**
  3296. * 设置是否写入深度。
  3297. * @param value 是否写入深度。
  3298. */
  3299. /**
  3300. * 获取是否写入深度。
  3301. * @return 是否写入深度。
  3302. */
  3303. depthWrite:boolean;
  3304. /**
  3305. * 设置剔除方式。
  3306. * @param value 剔除方式。
  3307. */
  3308. /**
  3309. * 获取剔除方式。
  3310. * @return 剔除方式。
  3311. */
  3312. cull:number;
  3313. /**
  3314. * 设置混合方式。
  3315. * @param value 混合方式。
  3316. */
  3317. /**
  3318. * 获取混合方式。
  3319. * @return 混合方式。
  3320. */
  3321. blend:number;
  3322. /**
  3323. * 设置混合源。
  3324. * @param value 混合源
  3325. */
  3326. /**
  3327. * 获取混合源。
  3328. * @return 混合源。
  3329. */
  3330. blendSrc:number;
  3331. /**
  3332. * 设置混合目标。
  3333. * @param value 混合目标
  3334. */
  3335. /**
  3336. * 获取混合目标。
  3337. * @return 混合目标。
  3338. */
  3339. blendDst:number;
  3340. /**
  3341. * 设置深度测试方式。
  3342. * @param value 深度测试方式
  3343. */
  3344. /**
  3345. * 获取深度测试方式。
  3346. * @return 深度测试方式。
  3347. */
  3348. depthTest:number;
  3349. constructor();
  3350. /**
  3351. * 克隆。
  3352. * @return 克隆副本。
  3353. * @override
  3354. */
  3355. clone():any;
  3356. }
  3357. }
  3358. declare module laya.d3.core.material {
  3359. /**
  3360. * ...
  3361. * @author ...
  3362. */
  3363. class ExtendTerrainMaterial extends laya.d3.core.material.BaseMaterial {
  3364. /**
  3365. * 渲染状态_不透明。
  3366. */
  3367. static RENDERMODE_OPAQUE:number;
  3368. /**
  3369. * 渲染状态_透明混合。
  3370. */
  3371. static RENDERMODE_TRANSPARENT:number;
  3372. /**
  3373. * 渲染状态_透明混合。
  3374. */
  3375. static SPLATALPHATEXTURE:number;
  3376. static DIFFUSETEXTURE1:number;
  3377. static DIFFUSETEXTURE2:number;
  3378. static DIFFUSETEXTURE3:number;
  3379. static DIFFUSETEXTURE4:number;
  3380. static DIFFUSETEXTURE5:number;
  3381. static DIFFUSESCALEOFFSET1:number;
  3382. static DIFFUSESCALEOFFSET2:number;
  3383. static DIFFUSESCALEOFFSET3:number;
  3384. static DIFFUSESCALEOFFSET4:number;
  3385. static DIFFUSESCALEOFFSET5:number;
  3386. static CULL:number;
  3387. static BLEND:number;
  3388. static BLEND_SRC:number;
  3389. static BLEND_DST:number;
  3390. static DEPTH_TEST:number;
  3391. static DEPTH_WRITE:number;
  3392. /**
  3393. * 地形细节宏定义。
  3394. */
  3395. static SHADERDEFINE_DETAIL_NUM1:laya.d3.shader.ShaderDefine;
  3396. static SHADERDEFINE_DETAIL_NUM2:laya.d3.shader.ShaderDefine;
  3397. static SHADERDEFINE_DETAIL_NUM3:laya.d3.shader.ShaderDefine;
  3398. static SHADERDEFINE_DETAIL_NUM4:laya.d3.shader.ShaderDefine;
  3399. static SHADERDEFINE_DETAIL_NUM5:laya.d3.shader.ShaderDefine;
  3400. private _enableLighting:any;
  3401. /**
  3402. * 获取splatAlpha贴图。
  3403. * @return splatAlpha贴图。
  3404. */
  3405. /**
  3406. * 设置splatAlpha贴图。
  3407. * @param value splatAlpha贴图。
  3408. */
  3409. splatAlphaTexture:laya.resource.BaseTexture;
  3410. /**
  3411. * 设置第一层贴图。
  3412. * @param value 第一层贴图。
  3413. */
  3414. diffuseTexture1:laya.resource.BaseTexture;
  3415. /**
  3416. * 获取第二层贴图。
  3417. * @return 第二层贴图。
  3418. */
  3419. /**
  3420. * 设置第二层贴图。
  3421. * @param value 第二层贴图。
  3422. */
  3423. diffuseTexture2:laya.resource.BaseTexture;
  3424. /**
  3425. * 获取第三层贴图。
  3426. * @return 第三层贴图。
  3427. */
  3428. /**
  3429. * 设置第三层贴图。
  3430. * @param value 第三层贴图。
  3431. */
  3432. diffuseTexture3:laya.resource.BaseTexture;
  3433. /**
  3434. * 获取第四层贴图。
  3435. * @return 第四层贴图。
  3436. */
  3437. /**
  3438. * 设置第四层贴图。
  3439. * @param value 第四层贴图。
  3440. */
  3441. diffuseTexture4:laya.resource.BaseTexture;
  3442. /**
  3443. * 获取第五层贴图。
  3444. * @return 第五层贴图。
  3445. */
  3446. /**
  3447. * 设置第五层贴图。
  3448. * @param value 第五层贴图。
  3449. */
  3450. diffuseTexture5:laya.resource.BaseTexture;
  3451. private _setDetailNum:any;
  3452. diffuseScaleOffset1:laya.d3.math.Vector4;
  3453. diffuseScaleOffset2:laya.d3.math.Vector4;
  3454. diffuseScaleOffset3:laya.d3.math.Vector4;
  3455. diffuseScaleOffset4:laya.d3.math.Vector4;
  3456. diffuseScaleOffset5:laya.d3.math.Vector4;
  3457. /**
  3458. * 获取是否启用光照。
  3459. * @return 是否启用光照。
  3460. */
  3461. /**
  3462. * 设置是否启用光照。
  3463. * @param value 是否启用光照。
  3464. */
  3465. enableLighting:boolean;
  3466. /**
  3467. * 设置渲染模式。
  3468. * @return 渲染模式。
  3469. */
  3470. renderMode:number;
  3471. /**
  3472. * 设置是否写入深度。
  3473. * @param value 是否写入深度。
  3474. */
  3475. /**
  3476. * 获取是否写入深度。
  3477. * @return 是否写入深度。
  3478. */
  3479. depthWrite:boolean;
  3480. /**
  3481. * 设置剔除方式。
  3482. * @param value 剔除方式。
  3483. */
  3484. /**
  3485. * 获取剔除方式。
  3486. * @return 剔除方式。
  3487. */
  3488. cull:number;
  3489. /**
  3490. * 设置混合方式。
  3491. * @param value 混合方式。
  3492. */
  3493. /**
  3494. * 获取混合方式。
  3495. * @return 混合方式。
  3496. */
  3497. blend:number;
  3498. /**
  3499. * 设置混合源。
  3500. * @param value 混合源
  3501. */
  3502. /**
  3503. * 获取混合源。
  3504. * @return 混合源。
  3505. */
  3506. blendSrc:number;
  3507. /**
  3508. * 设置混合目标。
  3509. * @param value 混合目标
  3510. */
  3511. /**
  3512. * 获取混合目标。
  3513. * @return 混合目标。
  3514. */
  3515. blendDst:number;
  3516. /**
  3517. * 设置深度测试方式。
  3518. * @param value 深度测试方式
  3519. */
  3520. /**
  3521. * 获取深度测试方式。
  3522. * @return 深度测试方式。
  3523. */
  3524. depthTest:number;
  3525. constructor();
  3526. /**
  3527. * 克隆。
  3528. * @return 克隆副本。
  3529. * @override
  3530. */
  3531. clone():any;
  3532. }
  3533. }
  3534. declare module laya.d3.core.material {
  3535. /**
  3536. * <code>PBRSpecularMaterial</code> 类用于实现PBR(Specular)材质。
  3537. */
  3538. class PBRSpecularMaterial extends laya.d3.core.material.BaseMaterial {
  3539. /**
  3540. * 光滑度数据源_高光贴图的Alpha通道。
  3541. */
  3542. static SmoothnessSource_SpecularTexture_Alpha:number;
  3543. /**
  3544. * 光滑度数据源_反射率贴图的Alpha通道。
  3545. */
  3546. static SmoothnessSource_AlbedoTexture_Alpha:number;
  3547. /**
  3548. * 渲染状态_不透明。
  3549. */
  3550. static RENDERMODE_OPAQUE:number;
  3551. /**
  3552. * 渲染状态_透明测试。
  3553. */
  3554. static RENDERMODE_CUTOUT:number;
  3555. /**
  3556. * 渲染状态_透明混合_游戏中经常使用的透明。
  3557. */
  3558. static RENDERMODE_FADE:number;
  3559. /**
  3560. * 渲染状态_透明混合_物理上看似合理的透明。
  3561. */
  3562. static RENDERMODE_TRANSPARENT:number;
  3563. static SHADERDEFINE_ALBEDOTEXTURE:laya.d3.shader.ShaderDefine;
  3564. static SHADERDEFINE_NORMALTEXTURE:laya.d3.shader.ShaderDefine;
  3565. static SHADERDEFINE_SMOOTHNESSSOURCE_ALBEDOTEXTURE_ALPHA:laya.d3.shader.ShaderDefine;
  3566. static SHADERDEFINE_SPECULARTEXTURE:laya.d3.shader.ShaderDefine;
  3567. static SHADERDEFINE_OCCLUSIONTEXTURE:laya.d3.shader.ShaderDefine;
  3568. static SHADERDEFINE_PARALLAXTEXTURE:laya.d3.shader.ShaderDefine;
  3569. static SHADERDEFINE_EMISSION:laya.d3.shader.ShaderDefine;
  3570. static SHADERDEFINE_EMISSIONTEXTURE:laya.d3.shader.ShaderDefine;
  3571. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  3572. static SHADERDEFINE_ALPHAPREMULTIPLY:laya.d3.shader.ShaderDefine;
  3573. static ALBEDOTEXTURE:number;
  3574. static SPECULARTEXTURE:number;
  3575. static NORMALTEXTURE:number;
  3576. static PARALLAXTEXTURE:number;
  3577. static OCCLUSIONTEXTURE:number;
  3578. static EMISSIONTEXTURE:number;
  3579. static ALBEDOCOLOR:number;
  3580. static SPECULARCOLOR:number;
  3581. static EMISSIONCOLOR:number;
  3582. static SMOOTHNESS:number;
  3583. static SMOOTHNESSSCALE:number;
  3584. static SMOOTHNESSSOURCE:number;
  3585. static OCCLUSIONSTRENGTH:number;
  3586. static NORMALSCALE:number;
  3587. static PARALLAXSCALE:number;
  3588. static ENABLEEMISSION:number;
  3589. static ENABLEREFLECT:number;
  3590. static TILINGOFFSET:number;
  3591. static CULL:number;
  3592. static BLEND:number;
  3593. static BLEND_SRC:number;
  3594. static BLEND_DST:number;
  3595. static DEPTH_TEST:number;
  3596. static DEPTH_WRITE:number;
  3597. /**
  3598. * 默认材质,禁止修改
  3599. */
  3600. static defaultMaterial:PBRSpecularMaterial;
  3601. /**
  3602. * 反射率颜色R分量。
  3603. */
  3604. albedoColorR:number;
  3605. /**
  3606. * 反射率颜色G分量。
  3607. */
  3608. albedoColorG:number;
  3609. /**
  3610. * 反射率颜色B分量。
  3611. */
  3612. albedoColorB:number;
  3613. /**
  3614. * 反射率颜色A分量。
  3615. */
  3616. albedoColorA:number;
  3617. /**
  3618. * 反射率颜色。
  3619. */
  3620. albedoColor:laya.d3.math.Vector4;
  3621. /**
  3622. * 漫反射贴图。
  3623. */
  3624. albedoTexture:laya.resource.BaseTexture;
  3625. /**
  3626. * 法线贴图。
  3627. */
  3628. normalTexture:laya.resource.BaseTexture;
  3629. /**
  3630. * 法线贴图缩放系数。
  3631. */
  3632. normalTextureScale:number;
  3633. /**
  3634. * 视差贴图。
  3635. */
  3636. parallaxTexture:laya.resource.BaseTexture;
  3637. /**
  3638. * 视差贴图缩放系数。
  3639. */
  3640. parallaxTextureScale:number;
  3641. /**
  3642. * 遮挡贴图。
  3643. */
  3644. occlusionTexture:laya.resource.BaseTexture;
  3645. /**
  3646. * 遮挡贴图强度,范围为0到1。
  3647. */
  3648. occlusionTextureStrength:number;
  3649. /**
  3650. * 高光贴图。
  3651. */
  3652. specularTexture:laya.resource.BaseTexture;
  3653. /**
  3654. * 高光颜色R分量。
  3655. */
  3656. specularColorR:number;
  3657. /**
  3658. * 高光颜色G分量。
  3659. */
  3660. specularColorG:number;
  3661. /**
  3662. * 高光颜色B分量。
  3663. */
  3664. /**
  3665. * 高光颜色B分量。
  3666. */
  3667. specularColorB:number;
  3668. /**
  3669. * 高光颜色A分量。
  3670. */
  3671. specularColorA:number;
  3672. /**
  3673. * 高光颜色。
  3674. */
  3675. specularColor:laya.d3.math.Vector4;
  3676. /**
  3677. * 光滑度,范围为0到1。
  3678. */
  3679. smoothness:number;
  3680. /**
  3681. * 光滑度缩放系数,范围为0到1。
  3682. */
  3683. smoothnessTextureScale:number;
  3684. /**
  3685. * 光滑度数据源,0或1
  3686. */
  3687. smoothnessSource:number;
  3688. /**
  3689. * 是否激活放射属性。
  3690. */
  3691. enableEmission:boolean;
  3692. /**
  3693. * 放射颜色。
  3694. */
  3695. emissionColor:laya.d3.math.Vector4;
  3696. /**
  3697. * 获取放射贴图。
  3698. */
  3699. emissionTexture:laya.resource.BaseTexture;
  3700. /**
  3701. * 是否开启反射。
  3702. */
  3703. enableReflection:boolean;
  3704. /**
  3705. * 纹理平铺和偏移X分量。
  3706. */
  3707. tilingOffsetX:number;
  3708. /**
  3709. * 纹理平铺和偏移Y分量。
  3710. */
  3711. tilingOffsetY:number;
  3712. /**
  3713. * 纹理平铺和偏移Z分量。
  3714. */
  3715. tilingOffsetZ:number;
  3716. /**
  3717. * 纹理平铺和偏移W分量。
  3718. */
  3719. tilingOffsetW:number;
  3720. /**
  3721. * 纹理平铺和偏移。
  3722. */
  3723. tilingOffset:laya.d3.math.Vector4;
  3724. /**
  3725. * 设置渲染模式。
  3726. */
  3727. renderMode:number;
  3728. /**
  3729. * 是否写入深度。
  3730. */
  3731. depthWrite:boolean;
  3732. /**
  3733. * 剔除方式。
  3734. */
  3735. cull:number;
  3736. /**
  3737. * 混合方式。
  3738. */
  3739. blend:number;
  3740. /**
  3741. * 混合源。
  3742. */
  3743. blendSrc:number;
  3744. /**
  3745. * 混合目标。
  3746. */
  3747. blendDst:number;
  3748. /**
  3749. * 深度测试方式。
  3750. */
  3751. depthTest:number;
  3752. /**
  3753. * 创建一个 <code>PBRSpecularMaterial</code> 实例。
  3754. */
  3755. constructor();
  3756. /**
  3757. * 克隆。
  3758. * @return 克隆副本。
  3759. * @override
  3760. */
  3761. clone():any;
  3762. /**
  3763. * @inheritDoc
  3764. * @override
  3765. */
  3766. cloneTo(destObject:any):void;
  3767. }
  3768. }
  3769. declare module laya.d3.core.material {
  3770. /**
  3771. * <code>PBRStandardMaterial</code> 类用于实现PBR(Standard)材质。
  3772. */
  3773. class PBRStandardMaterial extends laya.d3.core.material.BaseMaterial {
  3774. /**
  3775. * 光滑度数据源_金属度贴图的Alpha通道。
  3776. */
  3777. static SmoothnessSource_MetallicGlossTexture_Alpha:number;
  3778. /**
  3779. * 光滑度数据源_反射率贴图的Alpha通道。
  3780. */
  3781. static SmoothnessSource_AlbedoTexture_Alpha:number;
  3782. /**
  3783. * 渲染状态_不透明。
  3784. */
  3785. static RENDERMODE_OPAQUE:number;
  3786. /**
  3787. * 渲染状态_透明测试。
  3788. */
  3789. static RENDERMODE_CUTOUT:number;
  3790. /**
  3791. * 渲染状态_透明混合_游戏中经常使用的透明。
  3792. */
  3793. static RENDERMODE_FADE:number;
  3794. /**
  3795. * 渲染状态_透明混合_物理上看似合理的透明。
  3796. */
  3797. static RENDERMODE_TRANSPARENT:number;
  3798. static SHADERDEFINE_ALBEDOTEXTURE:laya.d3.shader.ShaderDefine;
  3799. static SHADERDEFINE_NORMALTEXTURE:laya.d3.shader.ShaderDefine;
  3800. static SHADERDEFINE_SMOOTHNESSSOURCE_ALBEDOTEXTURE_ALPHA:laya.d3.shader.ShaderDefine;
  3801. static SHADERDEFINE_METALLICGLOSSTEXTURE:laya.d3.shader.ShaderDefine;
  3802. static SHADERDEFINE_OCCLUSIONTEXTURE:laya.d3.shader.ShaderDefine;
  3803. static SHADERDEFINE_PARALLAXTEXTURE:laya.d3.shader.ShaderDefine;
  3804. static SHADERDEFINE_EMISSION:laya.d3.shader.ShaderDefine;
  3805. static SHADERDEFINE_EMISSIONTEXTURE:laya.d3.shader.ShaderDefine;
  3806. static SHADERDEFINE_REFLECTMAP:laya.d3.shader.ShaderDefine;
  3807. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  3808. static SHADERDEFINE_ALPHAPREMULTIPLY:laya.d3.shader.ShaderDefine;
  3809. static ALBEDOTEXTURE:number;
  3810. static METALLICGLOSSTEXTURE:number;
  3811. static NORMALTEXTURE:number;
  3812. static PARALLAXTEXTURE:number;
  3813. static OCCLUSIONTEXTURE:number;
  3814. static EMISSIONTEXTURE:number;
  3815. static ALBEDOCOLOR:number;
  3816. static EMISSIONCOLOR:number;
  3817. static METALLIC:number;
  3818. static SMOOTHNESS:number;
  3819. static SMOOTHNESSSCALE:number;
  3820. static SMOOTHNESSSOURCE:number;
  3821. static OCCLUSIONSTRENGTH:number;
  3822. static NORMALSCALE:number;
  3823. static PARALLAXSCALE:number;
  3824. static ENABLEEMISSION:number;
  3825. static ENABLEREFLECT:number;
  3826. static TILINGOFFSET:number;
  3827. static CULL:number;
  3828. static BLEND:number;
  3829. static BLEND_SRC:number;
  3830. static BLEND_DST:number;
  3831. static DEPTH_TEST:number;
  3832. static DEPTH_WRITE:number;
  3833. /**
  3834. * 默认材质,禁止修改
  3835. */
  3836. static defaultMaterial:PBRStandardMaterial;
  3837. /**
  3838. * 反射率颜色R分量。
  3839. */
  3840. albedoColorR:number;
  3841. /**
  3842. * 反射率颜色G分量。
  3843. */
  3844. albedoColorG:number;
  3845. /**
  3846. * 反射率颜色B分量。
  3847. */
  3848. albedoColorB:number;
  3849. /**
  3850. * 反射率颜色Z分量。
  3851. */
  3852. albedoColorA:number;
  3853. /**
  3854. * 漫反射颜色。
  3855. */
  3856. albedoColor:laya.d3.math.Vector4;
  3857. /**
  3858. * 漫反射贴图。
  3859. */
  3860. albedoTexture:laya.resource.BaseTexture;
  3861. /**
  3862. * 法线贴图。
  3863. */
  3864. normalTexture:laya.resource.BaseTexture;
  3865. /**
  3866. * 法线贴图缩放系数。
  3867. */
  3868. normalTextureScale:number;
  3869. /**
  3870. * 视差贴图。
  3871. */
  3872. parallaxTexture:laya.resource.BaseTexture;
  3873. /**
  3874. * 视差贴图缩放系数。
  3875. */
  3876. parallaxTextureScale:number;
  3877. /**
  3878. * 遮挡贴图。
  3879. */
  3880. occlusionTexture:laya.resource.BaseTexture;
  3881. /**
  3882. * 遮挡贴图强度,范围为0到1。
  3883. */
  3884. occlusionTextureStrength:number;
  3885. /**
  3886. * 金属光滑度贴图。
  3887. */
  3888. metallicGlossTexture:laya.resource.BaseTexture;
  3889. /**
  3890. * 获取金属度,范围为0到1。
  3891. */
  3892. metallic:number;
  3893. /**
  3894. * 光滑度,范围为0到1。
  3895. */
  3896. smoothness:number;
  3897. /**
  3898. * 光滑度缩放系数,范围为0到1。
  3899. */
  3900. smoothnessTextureScale:number;
  3901. /**
  3902. * 光滑度数据源,0或1。
  3903. */
  3904. smoothnessSource:number;
  3905. /**
  3906. * 是否激活放射属性。
  3907. */
  3908. enableEmission:boolean;
  3909. /**
  3910. * 放射颜色R分量。
  3911. */
  3912. emissionColorR:number;
  3913. /**
  3914. * 放射颜色G分量。
  3915. */
  3916. emissionColorG:number;
  3917. /**
  3918. * 放射颜色B分量。
  3919. */
  3920. emissionColorB:number;
  3921. /**
  3922. * 放射颜色A分量。
  3923. */
  3924. emissionColorA:number;
  3925. /**
  3926. * 放射颜色。
  3927. */
  3928. emissionColor:laya.d3.math.Vector4;
  3929. /**
  3930. * 放射贴图。
  3931. */
  3932. emissionTexture:laya.resource.BaseTexture;
  3933. /**
  3934. * 是否开启反射。
  3935. */
  3936. enableReflection:boolean;
  3937. /**
  3938. * 纹理平铺和偏移X分量。
  3939. */
  3940. tilingOffsetX:number;
  3941. /**
  3942. * 纹理平铺和偏移Y分量。
  3943. */
  3944. tilingOffsetY:number;
  3945. /**
  3946. * 纹理平铺和偏移Z分量。
  3947. */
  3948. tilingOffsetZ:number;
  3949. /**
  3950. * 纹理平铺和偏移W分量。
  3951. */
  3952. tilingOffsetW:number;
  3953. /**
  3954. * 纹理平铺和偏移。
  3955. */
  3956. tilingOffset:laya.d3.math.Vector4;
  3957. /**
  3958. * 渲染模式。
  3959. */
  3960. renderMode:number;
  3961. /**
  3962. * 是否写入深度。
  3963. */
  3964. depthWrite:boolean;
  3965. /**
  3966. * 剔除方式。
  3967. */
  3968. cull:number;
  3969. /**
  3970. * 混合方式。
  3971. */
  3972. blend:number;
  3973. /**
  3974. * 混合源。
  3975. */
  3976. blendSrc:number;
  3977. /**
  3978. * 混合目标。
  3979. */
  3980. blendDst:number;
  3981. /**
  3982. * 深度测试方式。
  3983. */
  3984. depthTest:number;
  3985. /**
  3986. * 创建一个 <code>PBRStandardMaterial</code> 实例。
  3987. */
  3988. constructor();
  3989. /**
  3990. * 克隆。
  3991. * @return 克隆副本。
  3992. * @override
  3993. */
  3994. clone():any;
  3995. /**
  3996. * @inheritDoc
  3997. * @override
  3998. */
  3999. cloneTo(destObject:any):void;
  4000. }
  4001. }
  4002. declare module laya.d3.core.material {
  4003. /**
  4004. * <code>RenderState</code> 类用于控制渲染状态。
  4005. */
  4006. class RenderState implements laya.d3.core.IClone {
  4007. /**
  4008. * 剔除枚举_不剔除。
  4009. */
  4010. static CULL_NONE:number;
  4011. /**
  4012. * 剔除枚举_剔除正面。
  4013. */
  4014. static CULL_FRONT:number;
  4015. /**
  4016. * 剔除枚举_剔除背面。
  4017. */
  4018. static CULL_BACK:number;
  4019. /**
  4020. * 混合枚举_禁用。
  4021. */
  4022. static BLEND_DISABLE:number;
  4023. /**
  4024. * 混合枚举_启用_RGB和Alpha统一混合。
  4025. */
  4026. static BLEND_ENABLE_ALL:number;
  4027. /**
  4028. * 混合枚举_启用_RGB和Alpha单独混合。
  4029. */
  4030. static BLEND_ENABLE_SEPERATE:number;
  4031. /**
  4032. * 混合参数枚举_零,例:RGB(0,0,0),Alpha:(1)。
  4033. */
  4034. static BLENDPARAM_ZERO:number;
  4035. /**
  4036. * 混合参数枚举_一,例:RGB(1,1,1),Alpha:(1)。
  4037. */
  4038. static BLENDPARAM_ONE:number;
  4039. /**
  4040. * 混合参数枚举_源颜色,例:RGB(Rs, Gs, Bs),Alpha(As)。
  4041. */
  4042. static BLENDPARAM_SRC_COLOR:number;
  4043. /**
  4044. * 混合参数枚举_一减源颜色,例:RGB(1-Rs, 1-Gs, 1-Bs),Alpha(1-As)。
  4045. */
  4046. static BLENDPARAM_ONE_MINUS_SRC_COLOR:number;
  4047. /**
  4048. * 混合参数枚举_目标颜色,例:RGB(Rd, Gd, Bd),Alpha(Ad)。
  4049. */
  4050. static BLENDPARAM_DST_COLOR:number;
  4051. /**
  4052. * 混合参数枚举_一减目标颜色,例:RGB(1-Rd, 1-Gd, 1-Bd),Alpha(1-Ad)。
  4053. */
  4054. static BLENDPARAM_ONE_MINUS_DST_COLOR:number;
  4055. /**
  4056. * 混合参数枚举_源透明,例:RGB(As, As, As),Alpha(1-As)。
  4057. */
  4058. static BLENDPARAM_SRC_ALPHA:number;
  4059. /**
  4060. * 混合参数枚举_一减源阿尔法,例:RGB(1-As, 1-As, 1-As),Alpha(1-As)。
  4061. */
  4062. static BLENDPARAM_ONE_MINUS_SRC_ALPHA:number;
  4063. /**
  4064. * 混合参数枚举_目标阿尔法,例:RGB(Ad, Ad, Ad),Alpha(Ad)。
  4065. */
  4066. static BLENDPARAM_DST_ALPHA:number;
  4067. /**
  4068. * 混合参数枚举_一减目标阿尔法,例:RGB(1-Ad, 1-Ad, 1-Ad),Alpha(Ad)。
  4069. */
  4070. static BLENDPARAM_ONE_MINUS_DST_ALPHA:number;
  4071. /**
  4072. * 混合参数枚举_阿尔法饱和,例:RGB(min(As, 1 - Ad), min(As, 1 - Ad), min(As, 1 - Ad)),Alpha(1)。
  4073. */
  4074. static BLENDPARAM_SRC_ALPHA_SATURATE:number;
  4075. /**
  4076. * 混合方程枚举_加法,例:source + destination
  4077. */
  4078. static BLENDEQUATION_ADD:number;
  4079. /**
  4080. * 混合方程枚举_减法,例:source - destination
  4081. */
  4082. static BLENDEQUATION_SUBTRACT:number;
  4083. /**
  4084. * 混合方程枚举_反序减法,例:destination - source
  4085. */
  4086. static BLENDEQUATION_REVERSE_SUBTRACT:number;
  4087. /**
  4088. * 深度测试函数枚举_关闭深度测试。
  4089. */
  4090. static DEPTHTEST_OFF:number;
  4091. /**
  4092. * 深度测试函数枚举_从不通过。
  4093. */
  4094. static DEPTHTEST_NEVER:number;
  4095. /**
  4096. * 深度测试函数枚举_小于时通过。
  4097. */
  4098. static DEPTHTEST_LESS:number;
  4099. /**
  4100. * 深度测试函数枚举_等于时通过。
  4101. */
  4102. static DEPTHTEST_EQUAL:number;
  4103. /**
  4104. * 深度测试函数枚举_小于等于时通过。
  4105. */
  4106. static DEPTHTEST_LEQUAL:number;
  4107. /**
  4108. * 深度测试函数枚举_大于时通过。
  4109. */
  4110. static DEPTHTEST_GREATER:number;
  4111. /**
  4112. * 深度测试函数枚举_不等于时通过。
  4113. */
  4114. static DEPTHTEST_NOTEQUAL:number;
  4115. /**
  4116. * 深度测试函数枚举_大于等于时通过。
  4117. */
  4118. static DEPTHTEST_GEQUAL:number;
  4119. /**
  4120. * 深度测试函数枚举_总是通过。
  4121. */
  4122. static DEPTHTEST_ALWAYS:number;
  4123. /**
  4124. * 渲染剔除状态。
  4125. */
  4126. cull:number;
  4127. /**
  4128. * 透明混合。
  4129. */
  4130. blend:number;
  4131. /**
  4132. * 源混合参数,在blend为BLEND_ENABLE_ALL时生效。
  4133. */
  4134. srcBlend:number;
  4135. /**
  4136. * 目标混合参数,在blend为BLEND_ENABLE_ALL时生效。
  4137. */
  4138. dstBlend:number;
  4139. /**
  4140. * RGB源混合参数,在blend为BLEND_ENABLE_SEPERATE时生效。
  4141. */
  4142. srcBlendRGB:number;
  4143. /**
  4144. * RGB目标混合参数,在blend为BLEND_ENABLE_SEPERATE时生效。
  4145. */
  4146. dstBlendRGB:number;
  4147. /**
  4148. * Alpha源混合参数,在blend为BLEND_ENABLE_SEPERATE时生效。
  4149. */
  4150. srcBlendAlpha:number;
  4151. /**
  4152. * Alpha目标混合参数,在blend为BLEND_ENABLE_SEPERATE时生效。
  4153. */
  4154. dstBlendAlpha:number;
  4155. /**
  4156. * 混合常量颜色。
  4157. */
  4158. blendConstColor:laya.d3.math.Vector4;
  4159. /**
  4160. * 混合方程。
  4161. */
  4162. blendEquation:number;
  4163. /**
  4164. * RGB混合方程。
  4165. */
  4166. blendEquationRGB:number;
  4167. /**
  4168. * Alpha混合方程。
  4169. */
  4170. blendEquationAlpha:number;
  4171. /**
  4172. * 深度测试函数。
  4173. */
  4174. depthTest:number;
  4175. /**
  4176. * 是否深度写入。
  4177. */
  4178. depthWrite:boolean;
  4179. /**
  4180. * 创建一个 <code>RenderState</code> 实例。
  4181. */
  4182. constructor();
  4183. /**
  4184. * 克隆。
  4185. * @param destObject 克隆源。
  4186. */
  4187. cloneTo(dest:any):void;
  4188. /**
  4189. * 克隆。
  4190. * @return 克隆副本。
  4191. */
  4192. clone():any;
  4193. }
  4194. }
  4195. declare module laya.d3.core.material {
  4196. /**
  4197. * <code>SkyBoxMaterial</code> 类用于实现SkyBoxMaterial材质。
  4198. */
  4199. class SkyBoxMaterial extends laya.d3.core.material.BaseMaterial {
  4200. static TINTCOLOR:number;
  4201. static EXPOSURE:number;
  4202. static ROTATION:number;
  4203. static TEXTURECUBE:number;
  4204. /**
  4205. * 默认材质,禁止修改
  4206. */
  4207. static defaultMaterial:SkyBoxMaterial;
  4208. /**
  4209. * 获取颜色。
  4210. * @return 颜色。
  4211. */
  4212. /**
  4213. * 设置颜色。
  4214. * @param value 颜色。
  4215. */
  4216. tintColor:laya.d3.math.Vector4;
  4217. /**
  4218. * 获取曝光强度。
  4219. * @return 曝光强度。
  4220. */
  4221. /**
  4222. * 设置曝光强度。
  4223. * @param value 曝光强度。
  4224. */
  4225. exposure:number;
  4226. /**
  4227. * 获取曝光强度。
  4228. * @return 曝光强度。
  4229. */
  4230. /**
  4231. * 设置曝光强度。
  4232. * @param value 曝光强度。
  4233. */
  4234. rotation:number;
  4235. /**
  4236. * 获取天空盒纹理。
  4237. */
  4238. /**
  4239. * 设置天空盒纹理。
  4240. */
  4241. textureCube:laya.d3.resource.TextureCube;
  4242. /**
  4243. * 克隆。
  4244. * @return 克隆副本。
  4245. * @override
  4246. */
  4247. clone():any;
  4248. /**
  4249. * 创建一个 <code>SkyBoxMaterial</code> 实例。
  4250. */
  4251. constructor();
  4252. }
  4253. }
  4254. declare module laya.d3.core.material {
  4255. /**
  4256. * <code>SkyProceduralMaterial</code> 类用于实现SkyProceduralMaterial材质。
  4257. */
  4258. class SkyProceduralMaterial extends laya.d3.core.material.BaseMaterial {
  4259. /**
  4260. * 太阳_无
  4261. */
  4262. static SUN_NODE:number;
  4263. /**
  4264. * 太阳_精简
  4265. */
  4266. static SUN_SIMPLE:number;
  4267. /**
  4268. * 太阳_高质量
  4269. */
  4270. static SUN_HIGH_QUALITY:number;
  4271. /**
  4272. * 默认材质,禁止修改
  4273. */
  4274. static defaultMaterial:SkyProceduralMaterial;
  4275. private _sunDisk:any;
  4276. /**
  4277. * 获取太阳状态。
  4278. * @return 太阳状态。
  4279. */
  4280. /**
  4281. * 设置太阳状态。
  4282. * @param value 太阳状态。
  4283. */
  4284. sunDisk:number;
  4285. /**
  4286. * 获取太阳尺寸,范围是0到1。
  4287. * @return 太阳尺寸。
  4288. */
  4289. /**
  4290. * 设置太阳尺寸,范围是0到1。
  4291. * @param value 太阳尺寸。
  4292. */
  4293. sunSize:number;
  4294. /**
  4295. * 获取太阳尺寸收缩,范围是0到20。
  4296. * @return 太阳尺寸收缩。
  4297. */
  4298. /**
  4299. * 设置太阳尺寸收缩,范围是0到20。
  4300. * @param value 太阳尺寸收缩。
  4301. */
  4302. sunSizeConvergence:number;
  4303. /**
  4304. * 获取大气厚度,范围是0到5。
  4305. * @return 大气厚度。
  4306. */
  4307. /**
  4308. * 设置大气厚度,范围是0到5。
  4309. * @param value 大气厚度。
  4310. */
  4311. atmosphereThickness:number;
  4312. /**
  4313. * 获取天空颜色。
  4314. * @return 天空颜色。
  4315. */
  4316. /**
  4317. * 设置天空颜色。
  4318. * @param value 天空颜色。
  4319. */
  4320. skyTint:laya.d3.math.Vector4;
  4321. /**
  4322. * 获取地面颜色。
  4323. * @return 地面颜色。
  4324. */
  4325. /**
  4326. * 设置地面颜色。
  4327. * @param value 地面颜色。
  4328. */
  4329. groundTint:laya.d3.math.Vector4;
  4330. /**
  4331. * 获取曝光强度,范围是0到8。
  4332. * @return 曝光强度。
  4333. */
  4334. /**
  4335. * 设置曝光强度,范围是0到8。
  4336. * @param value 曝光强度。
  4337. */
  4338. exposure:number;
  4339. /**
  4340. * 创建一个 <code>SkyProceduralMaterial</code> 实例。
  4341. */
  4342. constructor();
  4343. /**
  4344. * 克隆。
  4345. * @return 克隆副本。
  4346. * @override
  4347. */
  4348. clone():any;
  4349. }
  4350. }
  4351. declare module laya.d3.core.material {
  4352. /**
  4353. * <code>UnlitMaterial</code> 类用于实现不受光照影响的材质。
  4354. */
  4355. class UnlitMaterial extends laya.d3.core.material.BaseMaterial {
  4356. /**
  4357. * 渲染状态_不透明。
  4358. */
  4359. static RENDERMODE_OPAQUE:number;
  4360. /**
  4361. * 渲染状态_阿尔法测试。
  4362. */
  4363. static RENDERMODE_CUTOUT:number;
  4364. /**
  4365. * 渲染状态__透明混合。
  4366. */
  4367. static RENDERMODE_TRANSPARENT:number;
  4368. /**
  4369. * 渲染状态__加色法混合。
  4370. */
  4371. static RENDERMODE_ADDTIVE:number;
  4372. static SHADERDEFINE_ALBEDOTEXTURE:laya.d3.shader.ShaderDefine;
  4373. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  4374. static SHADERDEFINE_ENABLEVERTEXCOLOR:laya.d3.shader.ShaderDefine;
  4375. static ALBEDOTEXTURE:number;
  4376. static ALBEDOCOLOR:number;
  4377. static TILINGOFFSET:number;
  4378. static CULL:number;
  4379. static BLEND:number;
  4380. static BLEND_SRC:number;
  4381. static BLEND_DST:number;
  4382. static DEPTH_TEST:number;
  4383. static DEPTH_WRITE:number;
  4384. /**
  4385. * 默认材质,禁止修改
  4386. */
  4387. static defaultMaterial:UnlitMaterial;
  4388. private _albedoColor:any;
  4389. private _albedoIntensity:any;
  4390. private _enableVertexColor:any;
  4391. /**
  4392. * 反照率颜色R分量。
  4393. */
  4394. albedoColorR:number;
  4395. /**
  4396. * 反照率颜色G分量。
  4397. */
  4398. albedoColorG:number;
  4399. /**
  4400. * 反照率颜色B分量。
  4401. */
  4402. albedoColorB:number;
  4403. /**
  4404. * 反照率颜色Z分量。
  4405. */
  4406. albedoColorA:number;
  4407. /**
  4408. * 反照率颜色。
  4409. */
  4410. albedoColor:laya.d3.math.Vector4;
  4411. /**
  4412. * 反照率强度。
  4413. */
  4414. albedoIntensity:number;
  4415. /**
  4416. * 反照率贴图。
  4417. */
  4418. albedoTexture:laya.resource.BaseTexture;
  4419. /**
  4420. * 纹理平铺和偏移X分量。
  4421. */
  4422. tilingOffsetX:number;
  4423. /**
  4424. * 纹理平铺和偏移Y分量。
  4425. */
  4426. tilingOffsetY:number;
  4427. /**
  4428. * 纹理平铺和偏移Z分量。
  4429. */
  4430. tilingOffsetZ:number;
  4431. /**
  4432. * 纹理平铺和偏移W分量。
  4433. */
  4434. tilingOffsetW:number;
  4435. /**
  4436. * 纹理平铺和偏移。
  4437. */
  4438. tilingOffset:laya.d3.math.Vector4;
  4439. /**
  4440. * 是否支持顶点色。
  4441. */
  4442. enableVertexColor:boolean;
  4443. /**
  4444. * 渲染模式。
  4445. */
  4446. renderMode:number;
  4447. /**
  4448. * 是否写入深度。
  4449. */
  4450. depthWrite:boolean;
  4451. /**
  4452. * 剔除方式。
  4453. */
  4454. cull:number;
  4455. /**
  4456. * 混合方式。
  4457. */
  4458. blend:number;
  4459. /**
  4460. * 混合源。
  4461. */
  4462. blendSrc:number;
  4463. /**
  4464. * 混合目标。
  4465. */
  4466. blendDst:number;
  4467. /**
  4468. * 深度测试方式。
  4469. */
  4470. depthTest:number;
  4471. constructor();
  4472. /**
  4473. * 克隆。
  4474. * @return 克隆副本。
  4475. * @override
  4476. */
  4477. clone():any;
  4478. }
  4479. }
  4480. declare module laya.d3.core.material {
  4481. /**
  4482. * <code>WaterPrimaryMaterial</code> 类用于实现水材质。
  4483. */
  4484. class WaterPrimaryMaterial extends laya.d3.core.material.BaseMaterial {
  4485. static HORIZONCOLOR:number;
  4486. static MAINTEXTURE:number;
  4487. static NORMALTEXTURE:number;
  4488. static WAVESCALE:number;
  4489. static WAVESPEED:number;
  4490. static SHADERDEFINE_MAINTEXTURE:laya.d3.shader.ShaderDefine;
  4491. static SHADERDEFINE_NORMALTEXTURE:laya.d3.shader.ShaderDefine;
  4492. /**
  4493. * 默认材质,禁止修改
  4494. */
  4495. static defaultMaterial:WaterPrimaryMaterial;
  4496. /**
  4497. * 获取地平线颜色。
  4498. * @return 地平线颜色。
  4499. */
  4500. /**
  4501. * 设置地平线颜色。
  4502. * @param value 地平线颜色。
  4503. */
  4504. horizonColor:laya.d3.math.Vector4;
  4505. /**
  4506. * 获取主贴图。
  4507. * @return 主贴图。
  4508. */
  4509. /**
  4510. * 设置主贴图。
  4511. * @param value 主贴图。
  4512. */
  4513. mainTexture:laya.resource.BaseTexture;
  4514. /**
  4515. * 获取法线贴图。
  4516. * @return 法线贴图。
  4517. */
  4518. /**
  4519. * 设置法线贴图。
  4520. * @param value 法线贴图。
  4521. */
  4522. normalTexture:laya.resource.BaseTexture;
  4523. /**
  4524. * 获取波动缩放系数。
  4525. * @return 波动缩放系数。
  4526. */
  4527. /**
  4528. * 设置波动缩放系数。
  4529. * @param value 波动缩放系数。
  4530. */
  4531. waveScale:number;
  4532. /**
  4533. * 获取波动速率。
  4534. * @return 波动速率。
  4535. */
  4536. /**
  4537. * 设置波动速率。
  4538. * @param value 波动速率。
  4539. */
  4540. waveSpeed:laya.d3.math.Vector4;
  4541. constructor();
  4542. /**
  4543. * 克隆。
  4544. * @return 克隆副本。
  4545. * @override
  4546. */
  4547. clone():any;
  4548. }
  4549. }
  4550. declare module laya.d3.core {
  4551. /**
  4552. * <code>MeshFilter</code> 类用于创建网格过滤器。
  4553. */
  4554. class MeshFilter {
  4555. /**
  4556. * 获取共享网格。
  4557. * @return 共享网格。
  4558. */
  4559. /**
  4560. * 设置共享网格。
  4561. * @return value 共享网格。
  4562. */
  4563. sharedMesh:laya.d3.resource.models.Mesh;
  4564. /**
  4565. * 创建一个新的 <code>MeshFilter</code> 实例。
  4566. * @param owner 所属网格精灵。
  4567. */
  4568. constructor(owner:laya.d3.core.RenderableSprite3D);
  4569. /**
  4570. * @inheritDoc
  4571. */
  4572. destroy():void;
  4573. }
  4574. }
  4575. declare module laya.d3.core {
  4576. /**
  4577. * <code>MeshRenderer</code> 类用于网格渲染器。
  4578. */
  4579. class MeshRenderer extends laya.d3.core.render.BaseRender {
  4580. /**
  4581. * 创建一个新的 <code>MeshRender</code> 实例。
  4582. */
  4583. constructor(owner:laya.d3.core.RenderableSprite3D);
  4584. }
  4585. }
  4586. declare module laya.d3.core {
  4587. /**
  4588. * <code>MeshSprite3D</code> 类用于创建网格。
  4589. */
  4590. class MeshSprite3D extends laya.d3.core.RenderableSprite3D {
  4591. private _meshFilter:any;
  4592. /**
  4593. * 获取网格过滤器。
  4594. * @return 网格过滤器。
  4595. */
  4596. readonly meshFilter:laya.d3.core.MeshFilter;
  4597. /**
  4598. * 获取网格渲染器。
  4599. * @return 网格渲染器。
  4600. */
  4601. readonly meshRenderer:laya.d3.core.MeshRenderer;
  4602. /**
  4603. * 创建一个 <code>MeshSprite3D</code> 实例。
  4604. * @param mesh 网格,同时会加载网格所用默认材质。
  4605. * @param name 名字。
  4606. */
  4607. constructor(mesh?:laya.d3.resource.models.Mesh,name?:string);
  4608. /**
  4609. * @inheritDoc
  4610. * @override
  4611. */
  4612. destroy(destroyChild?:boolean):void;
  4613. }
  4614. }
  4615. declare module laya.d3.core {
  4616. class MeshSprite3DShaderDeclaration {
  4617. static SHADERDEFINE_UV0:laya.d3.shader.ShaderDefine;
  4618. static SHADERDEFINE_COLOR:laya.d3.shader.ShaderDefine;
  4619. static SHADERDEFINE_UV1:laya.d3.shader.ShaderDefine;
  4620. static SHADERDEFINE_GPU_INSTANCE:laya.d3.shader.ShaderDefine;
  4621. }
  4622. }
  4623. declare module laya.d3.core {
  4624. /**
  4625. * <code>TerrainMeshSprite3D</code> 类用于创建网格。
  4626. */
  4627. class MeshTerrainSprite3D extends laya.d3.core.MeshSprite3D {
  4628. private static _tempVector3:any;
  4629. private static _tempMatrix4x4:any;
  4630. /**
  4631. * 从网格创建一个TerrainMeshSprite3D实例和其高度图属性。
  4632. * @param mesh 网格。
  4633. * @param heightMapWidth 高度图宽度。
  4634. * @param heightMapHeight 高度图高度。
  4635. * @param name 名字。
  4636. */
  4637. static createFromMesh(mesh:laya.d3.resource.models.Mesh,heightMapWidth:number,heightMapHeight:number,name?:string):MeshTerrainSprite3D;
  4638. /**
  4639. * 从网格创建一个TerrainMeshSprite3D实例、图片读取高度图属性。
  4640. * @param mesh 网格。
  4641. * @param image 高度图。
  4642. * @param name 名字。
  4643. */
  4644. static createFromMeshAndHeightMap(mesh:laya.d3.resource.models.Mesh,texture:laya.resource.Texture2D,minHeight:number,maxHeight:number,name?:string):MeshTerrainSprite3D;
  4645. private _minX:any;
  4646. private _minZ:any;
  4647. private _cellSize:any;
  4648. private _heightMap:any;
  4649. /**
  4650. * 获取地形X轴最小位置。
  4651. * @return 地形X轴最小位置。
  4652. */
  4653. readonly minX:number;
  4654. /**
  4655. * 获取地形Z轴最小位置。
  4656. * @return 地形X轴最小位置。
  4657. */
  4658. readonly minZ:number;
  4659. /**
  4660. * 获取地形X轴长度。
  4661. * @return 地形X轴长度。
  4662. */
  4663. readonly width:number;
  4664. /**
  4665. * 获取地形Z轴长度。
  4666. * @return 地形Z轴长度。
  4667. */
  4668. readonly depth:number;
  4669. /**
  4670. * 创建一个 <code>TerrainMeshSprite3D</code> 实例。
  4671. * @param mesh 网格。
  4672. * @param heightMap 高度图。
  4673. * @param name 名字。
  4674. */
  4675. constructor(mesh:laya.d3.resource.models.Mesh,heightMap:laya.d3.core.HeightMap,name?:string);
  4676. private _disableRotation:any;
  4677. private _getScaleX:any;
  4678. private _getScaleZ:any;
  4679. private _initCreateFromMesh:any;
  4680. private _initCreateFromMeshHeightMap:any;
  4681. private _computeCellSize:any;
  4682. /**
  4683. * 获取地形高度。
  4684. * @param x X轴坐标。
  4685. * @param z Z轴坐标。
  4686. */
  4687. getHeight(x:number,z:number):number;
  4688. }
  4689. }
  4690. declare module laya.d3.core.particleShuriKen.module {
  4691. /**
  4692. * <code>Burst</code> 类用于粒子的爆裂描述。
  4693. */
  4694. class Burst implements laya.d3.core.IClone {
  4695. /**
  4696. * 爆裂时间,单位为秒。
  4697. */
  4698. private _time:any;
  4699. /**
  4700. * 爆裂的最小数量。
  4701. */
  4702. private _minCount:any;
  4703. /**
  4704. * 爆裂的最大数量。
  4705. */
  4706. private _maxCount:any;
  4707. /**
  4708. * 获取爆裂时间,单位为秒。
  4709. * @return 爆裂时间,单位为秒。
  4710. */
  4711. readonly time:number;
  4712. /**
  4713. * 获取爆裂的最小数量。
  4714. * @return 爆裂的最小数量。
  4715. */
  4716. readonly minCount:number;
  4717. /**
  4718. * 获取爆裂的最大数量。
  4719. * @return 爆裂的最大数量。
  4720. */
  4721. readonly maxCount:number;
  4722. /**
  4723. * 创建一个 <code>Burst</code> 实例。
  4724. * @param time 爆裂时间,单位为秒。
  4725. * @param minCount 爆裂的最小数量。
  4726. * @param time 爆裂的最大数量。
  4727. */
  4728. constructor(time:number,minCount:number,maxCount:number);
  4729. /**
  4730. * 克隆。
  4731. * @param destObject 克隆源。
  4732. */
  4733. cloneTo(destObject:any):void;
  4734. /**
  4735. * 克隆。
  4736. * @return 克隆副本。
  4737. */
  4738. clone():any;
  4739. }
  4740. }
  4741. declare module laya.d3.core.particleShuriKen.module {
  4742. /**
  4743. * <code>ColorOverLifetime</code> 类用于粒子的生命周期颜色。
  4744. */
  4745. class ColorOverLifetime {
  4746. private _color:any;
  4747. /**
  4748. * 是否启用。
  4749. */
  4750. enbale:boolean;
  4751. /**
  4752. * 获取颜色。
  4753. */
  4754. readonly color:laya.d3.core.particleShuriKen.module.GradientColor;
  4755. /**
  4756. * 创建一个 <code>ColorOverLifetime</code> 实例。
  4757. */
  4758. constructor(color:laya.d3.core.particleShuriKen.module.GradientColor);
  4759. /**
  4760. * 克隆。
  4761. * @param destObject 克隆源。
  4762. */
  4763. cloneTo(destObject:any):void;
  4764. /**
  4765. * 克隆。
  4766. * @return 克隆副本。
  4767. */
  4768. clone():any;
  4769. }
  4770. }
  4771. declare module laya.d3.core.particleShuriKen.module {
  4772. /**
  4773. * <code>Emission</code> 类用于粒子发射器。
  4774. */
  4775. class Emission implements laya.d3.core.IClone,laya.resource.IDestroy {
  4776. private _destroyed:any;
  4777. /**
  4778. * 粒子发射速率,每秒发射的个数。
  4779. */
  4780. private _emissionRate:any;
  4781. /**
  4782. * 是否启用。
  4783. */
  4784. enbale:boolean;
  4785. /**
  4786. * 设置粒子发射速率。
  4787. * @param emissionRate 粒子发射速率 (个/秒)。
  4788. */
  4789. /**
  4790. * 获取粒子发射速率。
  4791. * @return 粒子发射速率 (个/秒)。
  4792. */
  4793. emissionRate:number;
  4794. /**
  4795. * 获取是否已销毁。
  4796. * @return 是否已销毁。
  4797. */
  4798. readonly destroyed:boolean;
  4799. /**
  4800. * 创建一个 <code>Emission</code> 实例。
  4801. */
  4802. constructor();
  4803. /**
  4804. * @private
  4805. */
  4806. destroy():void;
  4807. /**
  4808. * 获取粒子爆裂个数。
  4809. * @return 粒子爆裂个数。
  4810. */
  4811. getBurstsCount():number;
  4812. /**
  4813. * 通过索引获取粒子爆裂。
  4814. * @param index 爆裂索引。
  4815. * @return 粒子爆裂。
  4816. */
  4817. getBurstByIndex(index:number):laya.d3.core.particleShuriKen.module.Burst;
  4818. /**
  4819. * 增加粒子爆裂。
  4820. * @param burst 爆裂。
  4821. */
  4822. addBurst(burst:laya.d3.core.particleShuriKen.module.Burst):void;
  4823. /**
  4824. * 移除粒子爆裂。
  4825. * @param burst 爆裂。
  4826. */
  4827. removeBurst(burst:laya.d3.core.particleShuriKen.module.Burst):void;
  4828. /**
  4829. * 通过索引移除粒子爆裂。
  4830. * @param index 爆裂索引。
  4831. */
  4832. removeBurstByIndex(index:number):void;
  4833. /**
  4834. * 清空粒子爆裂。
  4835. */
  4836. clearBurst():void;
  4837. /**
  4838. * 克隆。
  4839. * @param destObject 克隆源。
  4840. */
  4841. cloneTo(destObject:any):void;
  4842. /**
  4843. * 克隆。
  4844. * @return 克隆副本。
  4845. */
  4846. clone():any;
  4847. }
  4848. }
  4849. declare module laya.d3.core.particleShuriKen.module {
  4850. /**
  4851. * <code>FrameOverTime</code> 类用于创建时间帧。
  4852. */
  4853. class FrameOverTime implements laya.d3.core.IClone {
  4854. /**
  4855. * 通过固定帧创建一个 <code>FrameOverTime</code> 实例。
  4856. * @param constant 固定帧。
  4857. * @return 时间帧。
  4858. */
  4859. static createByConstant(constant:number):FrameOverTime;
  4860. /**
  4861. * 通过时间帧创建一个 <code>FrameOverTime</code> 实例。
  4862. * @param overTime 时间帧。
  4863. * @return 时间帧。
  4864. */
  4865. static createByOverTime(overTime:laya.d3.core.particleShuriKen.module.GradientDataInt):FrameOverTime;
  4866. /**
  4867. * 通过随机双固定帧创建一个 <code>FrameOverTime</code> 实例。
  4868. * @param constantMin 最小固定帧。
  4869. * @param constantMax 最大固定帧。
  4870. * @return 时间帧。
  4871. */
  4872. static createByRandomTwoConstant(constantMin:number,constantMax:number):FrameOverTime;
  4873. /**
  4874. * 通过随机双时间帧创建一个 <code>FrameOverTime</code> 实例。
  4875. * @param gradientFrameMin 最小时间帧。
  4876. * @param gradientFrameMax 最大时间帧。
  4877. * @return 时间帧。
  4878. */
  4879. static createByRandomTwoOverTime(gradientFrameMin:laya.d3.core.particleShuriKen.module.GradientDataInt,gradientFrameMax:laya.d3.core.particleShuriKen.module.GradientDataInt):FrameOverTime;
  4880. private _type:any;
  4881. private _constant:any;
  4882. private _overTime:any;
  4883. private _constantMin:any;
  4884. private _constantMax:any;
  4885. private _overTimeMin:any;
  4886. private _overTimeMax:any;
  4887. /**
  4888. * 生命周期旋转类型,0常量模式,1曲线模式,2随机双常量模式,3随机双曲线模式。
  4889. */
  4890. readonly type:number;
  4891. /**
  4892. * 固定帧。
  4893. */
  4894. readonly constant:number;
  4895. /**
  4896. * 时间帧。
  4897. */
  4898. readonly frameOverTimeData:laya.d3.core.particleShuriKen.module.GradientDataInt;
  4899. /**
  4900. * 最小固定帧。
  4901. */
  4902. readonly constantMin:number;
  4903. /**
  4904. * 最大固定帧。
  4905. */
  4906. readonly constantMax:number;
  4907. /**
  4908. * 最小时间帧。
  4909. */
  4910. readonly frameOverTimeDataMin:laya.d3.core.particleShuriKen.module.GradientDataInt;
  4911. /**
  4912. * 最大时间帧。
  4913. */
  4914. readonly frameOverTimeDataMax:laya.d3.core.particleShuriKen.module.GradientDataInt;
  4915. /**
  4916. * 创建一个 <code>FrameOverTime,不允许new,请使用静态创建函数。</code> 实例。
  4917. */
  4918. constructor();
  4919. /**
  4920. * 克隆。
  4921. * @param destObject 克隆源。
  4922. */
  4923. cloneTo(destObject:any):void;
  4924. /**
  4925. * 克隆。
  4926. * @return 克隆副本。
  4927. */
  4928. clone():any;
  4929. }
  4930. }
  4931. declare module laya.d3.core.particleShuriKen.module {
  4932. /**
  4933. * <code>GradientRotation</code> 类用于创建渐变角速度。
  4934. */
  4935. class GradientAngularVelocity implements laya.d3.core.IClone {
  4936. /**
  4937. * 通过固定角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4938. * @param constant 固定角速度。
  4939. * @return 渐变角速度。
  4940. */
  4941. static createByConstant(constant:number):GradientAngularVelocity;
  4942. /**
  4943. * 通过分轴固定角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4944. * @param separateConstant 分轴固定角速度。
  4945. * @return 渐变角速度。
  4946. */
  4947. static createByConstantSeparate(separateConstant:laya.d3.math.Vector3):GradientAngularVelocity;
  4948. /**
  4949. * 通过渐变角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4950. * @param gradient 渐变角速度。
  4951. * @return 渐变角速度。
  4952. */
  4953. static createByGradient(gradient:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientAngularVelocity;
  4954. /**
  4955. * 通过分轴渐变角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4956. * @param gradientX X轴渐变角速度。
  4957. * @param gradientY Y轴渐变角速度。
  4958. * @param gradientZ Z轴渐变角速度。
  4959. * @return 渐变角速度。
  4960. */
  4961. static createByGradientSeparate(gradientX:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientY:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZ:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientAngularVelocity;
  4962. /**
  4963. * 通过随机双固定角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4964. * @param constantMin 最小固定角速度。
  4965. * @param constantMax 最大固定角速度。
  4966. * @return 渐变角速度。
  4967. */
  4968. static createByRandomTwoConstant(constantMin:number,constantMax:number):GradientAngularVelocity;
  4969. /**
  4970. * 通过随机分轴双固定角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4971. * @param separateConstantMin 最小分轴固定角速度。
  4972. * @param separateConstantMax 最大分轴固定角速度。
  4973. * @return 渐变角速度。
  4974. */
  4975. static createByRandomTwoConstantSeparate(separateConstantMin:laya.d3.math.Vector3,separateConstantMax:laya.d3.math.Vector3):GradientAngularVelocity;
  4976. /**
  4977. * 通过随机双渐变角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4978. * @param gradientMin 最小渐变角速度。
  4979. * @param gradientMax 最大渐变角速度。
  4980. * @return 渐变角速度。
  4981. */
  4982. static createByRandomTwoGradient(gradientMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientMax:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientAngularVelocity;
  4983. /**
  4984. * 通过分轴随机双渐变角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4985. * @param gradientXMin 最小X轴渐变角速度。
  4986. * @param gradientXMax 最大X轴渐变角速度。
  4987. * @param gradientYMin 最小Y轴渐变角速度。
  4988. * @param gradientYMax 最大Y轴渐变角速度。
  4989. * @param gradientZMin 最小Z轴渐变角速度。
  4990. * @param gradientZMax 最大Z轴渐变角速度。
  4991. * @return 渐变角速度。
  4992. */
  4993. static createByRandomTwoGradientSeparate(gradientXMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientXMax:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientYMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientYMax:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZMax:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientWMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientWMax:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientAngularVelocity;
  4994. private _type:any;
  4995. private _separateAxes:any;
  4996. private _constant:any;
  4997. private _constantSeparate:any;
  4998. private _gradient:any;
  4999. private _gradientX:any;
  5000. private _gradientY:any;
  5001. private _gradientZ:any;
  5002. private _gradientW:any;
  5003. private _constantMin:any;
  5004. private _constantMax:any;
  5005. private _constantMinSeparate:any;
  5006. private _constantMaxSeparate:any;
  5007. private _gradientMin:any;
  5008. private _gradientMax:any;
  5009. private _gradientXMin:any;
  5010. private _gradientXMax:any;
  5011. private _gradientYMin:any;
  5012. private _gradientYMax:any;
  5013. private _gradientZMin:any;
  5014. private _gradientZMax:any;
  5015. private _gradientWMin:any;
  5016. private _gradientWMax:any;
  5017. /**
  5018. * 生命周期角速度类型,0常量模式,1曲线模式,2随机双常量模式,3随机双曲线模式。
  5019. */
  5020. readonly type:number;
  5021. /**
  5022. * 是否分轴。
  5023. */
  5024. readonly separateAxes:boolean;
  5025. /**
  5026. * 固定角速度。
  5027. */
  5028. readonly constant:number;
  5029. /**
  5030. * 分轴固定角速度。
  5031. */
  5032. readonly constantSeparate:laya.d3.math.Vector3;
  5033. /**
  5034. * 渐变角速度。
  5035. */
  5036. readonly gradient:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5037. /**
  5038. * 渐变角角速度X。
  5039. */
  5040. readonly gradientX:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5041. /**
  5042. * 渐变角速度Y。
  5043. */
  5044. readonly gradientY:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5045. /**
  5046. * 渐变角速度Z。
  5047. */
  5048. readonly gradientZ:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5049. /**
  5050. * 渐变角速度Z。
  5051. */
  5052. readonly gradientW:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5053. /**
  5054. * 最小随机双固定角速度。
  5055. */
  5056. readonly constantMin:number;
  5057. /**
  5058. * 最大随机双固定角速度。
  5059. */
  5060. readonly constantMax:number;
  5061. /**
  5062. * 最小分轴随机双固定角速度。
  5063. */
  5064. readonly constantMinSeparate:laya.d3.math.Vector3;
  5065. /**
  5066. * 最大分轴随机双固定角速度。
  5067. */
  5068. readonly constantMaxSeparate:laya.d3.math.Vector3;
  5069. /**
  5070. * 最小渐变角速度。
  5071. */
  5072. readonly gradientMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5073. /**
  5074. * 最大渐变角速度。
  5075. */
  5076. readonly gradientMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5077. /**
  5078. * 最小渐变角速度X。
  5079. */
  5080. readonly gradientXMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5081. /**
  5082. * 最大渐变角速度X。
  5083. */
  5084. readonly gradientXMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5085. /**
  5086. * 最小渐变角速度Y。
  5087. */
  5088. readonly gradientYMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5089. /**
  5090. * 最大渐变角速度Y。
  5091. */
  5092. readonly gradientYMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5093. /**
  5094. * 最小渐变角速度Z。
  5095. */
  5096. readonly gradientZMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5097. /**
  5098. * 最大渐变角速度Z。
  5099. */
  5100. readonly gradientZMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5101. /**
  5102. * 最小渐变角速度Z。
  5103. */
  5104. readonly gradientWMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5105. /**
  5106. * 最大渐变角速度Z。
  5107. */
  5108. readonly gradientWMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5109. /**
  5110. * 创建一个 <code>GradientAngularVelocity,不允许new,请使用静态创建函数。</code> 实例。
  5111. */
  5112. constructor();
  5113. /**
  5114. * 克隆。
  5115. * @param destObject 克隆源。
  5116. */
  5117. cloneTo(destObject:any):void;
  5118. /**
  5119. * 克隆。
  5120. * @return 克隆副本。
  5121. */
  5122. clone():any;
  5123. }
  5124. }
  5125. declare module laya.d3.core.particleShuriKen.module {
  5126. /**
  5127. * <code>GradientColor</code> 类用于创建渐变颜色。
  5128. */
  5129. class GradientColor implements laya.d3.core.IClone {
  5130. /**
  5131. * 通过固定颜色创建一个 <code>GradientColor</code> 实例。
  5132. * @param constant 固定颜色。
  5133. */
  5134. static createByConstant(constant:laya.d3.math.Vector4):GradientColor;
  5135. /**
  5136. * 通过渐变颜色创建一个 <code>GradientColor</code> 实例。
  5137. * @param gradient 渐变色。
  5138. */
  5139. static createByGradient(gradient:laya.d3.core.Gradient):GradientColor;
  5140. /**
  5141. * 通过随机双固定颜色创建一个 <code>GradientColor</code> 实例。
  5142. * @param minConstant 最小固定颜色。
  5143. * @param maxConstant 最大固定颜色。
  5144. */
  5145. static createByRandomTwoConstant(minConstant:laya.d3.math.Vector4,maxConstant:laya.d3.math.Vector4):GradientColor;
  5146. /**
  5147. * 通过随机双渐变颜色创建一个 <code>GradientColor</code> 实例。
  5148. * @param minGradient 最小渐变颜色。
  5149. * @param maxGradient 最大渐变颜色。
  5150. */
  5151. static createByRandomTwoGradient(minGradient:laya.d3.core.Gradient,maxGradient:laya.d3.core.Gradient):GradientColor;
  5152. private _type:any;
  5153. private _constant:any;
  5154. private _constantMin:any;
  5155. private _constantMax:any;
  5156. private _gradient:any;
  5157. private _gradientMin:any;
  5158. private _gradientMax:any;
  5159. /**
  5160. * 生命周期颜色类型,0为固定颜色模式,1渐变模式,2为随机双固定颜色模式,3随机双渐变模式。
  5161. */
  5162. readonly type:number;
  5163. /**
  5164. * 固定颜色。
  5165. */
  5166. readonly constant:laya.d3.math.Vector4;
  5167. /**
  5168. * 最小固定颜色。
  5169. */
  5170. readonly constantMin:laya.d3.math.Vector4;
  5171. /**
  5172. * 最大固定颜色。
  5173. */
  5174. readonly constantMax:laya.d3.math.Vector4;
  5175. /**
  5176. * 渐变颜色。
  5177. */
  5178. readonly gradient:laya.d3.core.Gradient;
  5179. /**
  5180. * 最小渐变颜色。
  5181. */
  5182. readonly gradientMin:laya.d3.core.Gradient;
  5183. /**
  5184. * 最大渐变颜色。
  5185. */
  5186. readonly gradientMax:laya.d3.core.Gradient;
  5187. /**
  5188. * 创建一个 <code>GradientColor,不允许new,请使用静态创建函数。</code> 实例。
  5189. */
  5190. constructor();
  5191. /**
  5192. * 克隆。
  5193. * @param destObject 克隆源。
  5194. */
  5195. cloneTo(destObject:any):void;
  5196. /**
  5197. * 克隆。
  5198. * @return 克隆副本。
  5199. */
  5200. clone():any;
  5201. }
  5202. }
  5203. declare module laya.d3.core.particleShuriKen.module {
  5204. /**
  5205. * <code>GradientDataInt</code> 类用于创建整形渐变。
  5206. */
  5207. class GradientDataInt implements laya.d3.core.IClone {
  5208. private _currentLength:any;
  5209. /**
  5210. * 整形渐变数量。
  5211. */
  5212. readonly gradientCount:number;
  5213. /**
  5214. * 创建一个 <code>GradientDataInt</code> 实例。
  5215. */
  5216. constructor();
  5217. /**
  5218. * 增加整形渐变。
  5219. * @param key 生命周期,范围为0到1。
  5220. * @param value 整形值。
  5221. */
  5222. add(key:number,value:number):void;
  5223. /**
  5224. * 克隆。
  5225. * @param destObject 克隆源。
  5226. */
  5227. cloneTo(destObject:any):void;
  5228. /**
  5229. * 克隆。
  5230. * @return 克隆副本。
  5231. */
  5232. clone():any;
  5233. }
  5234. }
  5235. declare module laya.d3.core.particleShuriKen.module {
  5236. /**
  5237. * <code>GradientDataNumber</code> 类用于创建浮点渐变。
  5238. */
  5239. class GradientDataNumber implements laya.d3.core.IClone {
  5240. private _currentLength:any;
  5241. /**
  5242. * 渐变浮点数量。
  5243. */
  5244. readonly gradientCount:number;
  5245. /**
  5246. * 创建一个 <code>GradientDataNumber</code> 实例。
  5247. */
  5248. constructor();
  5249. /**
  5250. * 增加浮点渐变。
  5251. * @param key 生命周期,范围为0到1。
  5252. * @param value 浮点值。
  5253. */
  5254. add(key:number,value:number):void;
  5255. /**
  5256. * 通过索引获取键。
  5257. * @param index 索引。
  5258. * @return value 键。
  5259. */
  5260. getKeyByIndex(index:number):number;
  5261. /**
  5262. * 通过索引获取值。
  5263. * @param index 索引。
  5264. * @return value 值。
  5265. */
  5266. getValueByIndex(index:number):number;
  5267. /**
  5268. * 获取平均值。
  5269. */
  5270. getAverageValue():number;
  5271. /**
  5272. * 克隆。
  5273. * @param destObject 克隆源。
  5274. */
  5275. cloneTo(destObject:any):void;
  5276. /**
  5277. * 克隆。
  5278. * @return 克隆副本。
  5279. */
  5280. clone():any;
  5281. }
  5282. }
  5283. declare module laya.d3.core.particleShuriKen.module {
  5284. /**
  5285. * <code>GradientDataVector2</code> 类用于创建二维向量渐变。
  5286. */
  5287. class GradientDataVector2 implements laya.d3.core.IClone {
  5288. private _currentLength:any;
  5289. /**
  5290. * 二维向量渐变数量。
  5291. */
  5292. readonly gradientCount:number;
  5293. /**
  5294. * 创建一个 <code>GradientDataVector2</code> 实例。
  5295. */
  5296. constructor();
  5297. /**
  5298. * 增加二维向量渐变。
  5299. * @param key 生命周期,范围为0到1。
  5300. * @param value 二维向量值。
  5301. */
  5302. add(key:number,value:laya.d3.math.Vector2):void;
  5303. /**
  5304. * 克隆。
  5305. * @param destObject 克隆源。
  5306. */
  5307. cloneTo(destObject:any):void;
  5308. /**
  5309. * 克隆。
  5310. * @return 克隆副本。
  5311. */
  5312. clone():any;
  5313. }
  5314. }
  5315. declare module laya.d3.core.particleShuriKen.module {
  5316. /**
  5317. * <code>GradientSize</code> 类用于创建渐变尺寸。
  5318. */
  5319. class GradientSize implements laya.d3.core.IClone {
  5320. /**
  5321. * 通过渐变尺寸创建一个 <code>GradientSize</code> 实例。
  5322. * @param gradient 渐变尺寸。
  5323. * @return 渐变尺寸。
  5324. */
  5325. static createByGradient(gradient:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientSize;
  5326. /**
  5327. * 通过分轴渐变尺寸创建一个 <code>GradientSize</code> 实例。
  5328. * @param gradientX 渐变尺寸X。
  5329. * @param gradientY 渐变尺寸Y。
  5330. * @param gradientZ 渐变尺寸Z。
  5331. * @return 渐变尺寸。
  5332. */
  5333. static createByGradientSeparate(gradientX:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientY:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZ:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientSize;
  5334. /**
  5335. * 通过随机双固定尺寸创建一个 <code>GradientSize</code> 实例。
  5336. * @param constantMin 最小固定尺寸。
  5337. * @param constantMax 最大固定尺寸。
  5338. * @return 渐变尺寸。
  5339. */
  5340. static createByRandomTwoConstant(constantMin:number,constantMax:number):GradientSize;
  5341. /**
  5342. * 通过分轴随机双固定尺寸创建一个 <code>GradientSize</code> 实例。
  5343. * @param constantMinSeparate 分轴最小固定尺寸.
  5344. * @param constantMaxSeparate 分轴最大固定尺寸。
  5345. * @return 渐变尺寸。
  5346. */
  5347. static createByRandomTwoConstantSeparate(constantMinSeparate:laya.d3.math.Vector3,constantMaxSeparate:laya.d3.math.Vector3):GradientSize;
  5348. /**
  5349. * 通过随机双渐变尺寸创建一个 <code>GradientSize</code> 实例。
  5350. * @param gradientMin 最小渐变尺寸。
  5351. * @param gradientMax 最大渐变尺寸。
  5352. * @return 渐变尺寸。
  5353. */
  5354. static createByRandomTwoGradient(gradientMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientMax:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientSize;
  5355. /**
  5356. * 通过分轴随机双渐变尺寸创建一个 <code>GradientSize</code> 实例。
  5357. * @param gradientXMin X轴最小渐变尺寸。
  5358. * @param gradientXMax X轴最大渐变尺寸。
  5359. * @param gradientYMin Y轴最小渐变尺寸。
  5360. * @param gradientYMax Y轴最大渐变尺寸。
  5361. * @param gradientZMin Z轴最小渐变尺寸。
  5362. * @param gradientZMax Z轴最大渐变尺寸。
  5363. * @return 渐变尺寸。
  5364. */
  5365. static createByRandomTwoGradientSeparate(gradientXMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientXMax:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientYMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientYMax:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZMax:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientSize;
  5366. private _type:any;
  5367. private _separateAxes:any;
  5368. private _gradient:any;
  5369. private _gradientX:any;
  5370. private _gradientY:any;
  5371. private _gradientZ:any;
  5372. private _constantMin:any;
  5373. private _constantMax:any;
  5374. private _constantMinSeparate:any;
  5375. private _constantMaxSeparate:any;
  5376. private _gradientMin:any;
  5377. private _gradientMax:any;
  5378. private _gradientXMin:any;
  5379. private _gradientXMax:any;
  5380. private _gradientYMin:any;
  5381. private _gradientYMax:any;
  5382. private _gradientZMin:any;
  5383. private _gradientZMax:any;
  5384. /**
  5385. * 生命周期尺寸类型,0曲线模式,1随机双常量模式,2随机双曲线模式。
  5386. */
  5387. readonly type:number;
  5388. /**
  5389. * 是否分轴。
  5390. */
  5391. readonly separateAxes:boolean;
  5392. /**
  5393. * 渐变尺寸。
  5394. */
  5395. readonly gradient:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5396. /**
  5397. * 渐变尺寸X。
  5398. */
  5399. readonly gradientX:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5400. /**
  5401. * 渐变尺寸Y。
  5402. */
  5403. readonly gradientY:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5404. /**
  5405. * 渐变尺寸Z。
  5406. */
  5407. readonly gradientZ:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5408. /**
  5409. * 最小随机双固定尺寸。
  5410. */
  5411. readonly constantMin:number;
  5412. /**
  5413. * 最大随机双固定尺寸。
  5414. */
  5415. readonly constantMax:number;
  5416. /**
  5417. * 最小分轴随机双固定尺寸。
  5418. */
  5419. readonly constantMinSeparate:laya.d3.math.Vector3;
  5420. /**
  5421. * 最小分轴随机双固定尺寸。
  5422. */
  5423. readonly constantMaxSeparate:laya.d3.math.Vector3;
  5424. /**
  5425. * 渐变最小尺寸。
  5426. */
  5427. readonly gradientMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5428. /**
  5429. * 渐变最大尺寸。
  5430. */
  5431. readonly gradientMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5432. /**
  5433. * 渐变最小尺寸X。
  5434. */
  5435. readonly gradientXMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5436. /**
  5437. * 渐变最大尺寸X。
  5438. */
  5439. readonly gradientXMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5440. /**
  5441. * 渐变最小尺寸Y。
  5442. */
  5443. readonly gradientYMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5444. /**
  5445. * 渐变最大尺寸Y。
  5446. */
  5447. readonly gradientYMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5448. /**
  5449. * 渐变最小尺寸Z。
  5450. */
  5451. readonly gradientZMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5452. /**
  5453. * 渐变最大尺寸Z。
  5454. */
  5455. readonly gradientZMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5456. /**
  5457. * 创建一个 <code>GradientSize,不允许new,请使用静态创建函数。</code> 实例。
  5458. */
  5459. constructor();
  5460. /**
  5461. * 获取最大尺寸。
  5462. */
  5463. getMaxSizeInGradient():number;
  5464. /**
  5465. * 克隆。
  5466. * @param destObject 克隆源。
  5467. */
  5468. cloneTo(destObject:any):void;
  5469. /**
  5470. * 克隆。
  5471. * @return 克隆副本。
  5472. */
  5473. clone():any;
  5474. }
  5475. }
  5476. declare module laya.d3.core.particleShuriKen.module {
  5477. /**
  5478. * <code>GradientVelocity</code> 类用于创建渐变速度。
  5479. */
  5480. class GradientVelocity implements laya.d3.core.IClone {
  5481. /**
  5482. * 通过固定速度创建一个 <code>GradientVelocity</code> 实例。
  5483. * @param constant 固定速度。
  5484. * @return 渐变速度。
  5485. */
  5486. static createByConstant(constant:laya.d3.math.Vector3):GradientVelocity;
  5487. /**
  5488. * 通过渐变速度创建一个 <code>GradientVelocity</code> 实例。
  5489. * @param gradientX 渐变速度X。
  5490. * @param gradientY 渐变速度Y。
  5491. * @param gradientZ 渐变速度Z。
  5492. * @return 渐变速度。
  5493. */
  5494. static createByGradient(gradientX:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientY:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZ:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientVelocity;
  5495. /**
  5496. * 通过随机双固定速度创建一个 <code>GradientVelocity</code> 实例。
  5497. * @param constantMin 最小固定角速度。
  5498. * @param constantMax 最大固定角速度。
  5499. * @return 渐变速度。
  5500. */
  5501. static createByRandomTwoConstant(constantMin:laya.d3.math.Vector3,constantMax:laya.d3.math.Vector3):GradientVelocity;
  5502. /**
  5503. * 通过随机双渐变速度创建一个 <code>GradientVelocity</code> 实例。
  5504. * @param gradientXMin X轴最小渐变速度。
  5505. * @param gradientXMax X轴最大渐变速度。
  5506. * @param gradientYMin Y轴最小渐变速度。
  5507. * @param gradientYMax Y轴最大渐变速度。
  5508. * @param gradientZMin Z轴最小渐变速度。
  5509. * @param gradientZMax Z轴最大渐变速度。
  5510. * @return 渐变速度。
  5511. */
  5512. static createByRandomTwoGradient(gradientXMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientXMax:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientYMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientYMax:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZMax:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientVelocity;
  5513. private _type:any;
  5514. private _constant:any;
  5515. private _gradientX:any;
  5516. private _gradientY:any;
  5517. private _gradientZ:any;
  5518. private _constantMin:any;
  5519. private _constantMax:any;
  5520. private _gradientXMin:any;
  5521. private _gradientXMax:any;
  5522. private _gradientYMin:any;
  5523. private _gradientYMax:any;
  5524. private _gradientZMin:any;
  5525. private _gradientZMax:any;
  5526. /**
  5527. * 生命周期速度类型,0常量模式,1曲线模式,2随机双常量模式,3随机双曲线模式。
  5528. */
  5529. readonly type:number;
  5530. /**
  5531. * 固定速度。
  5532. */
  5533. readonly constant:laya.d3.math.Vector3;
  5534. /**
  5535. * 渐变速度X。
  5536. */
  5537. readonly gradientX:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5538. /**
  5539. * 渐变速度Y。
  5540. */
  5541. readonly gradientY:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5542. /**
  5543. * 渐变速度Z。
  5544. */
  5545. readonly gradientZ:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5546. /**
  5547. * 最小固定速度。
  5548. */
  5549. readonly constantMin:laya.d3.math.Vector3;
  5550. /**
  5551. * 最大固定速度。
  5552. */
  5553. readonly constantMax:laya.d3.math.Vector3;
  5554. /**
  5555. * 渐变最小速度X。
  5556. */
  5557. readonly gradientXMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5558. /**
  5559. * 渐变最大速度X。
  5560. */
  5561. readonly gradientXMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5562. /**
  5563. * 渐变最小速度Y。
  5564. */
  5565. readonly gradientYMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5566. /**
  5567. * 渐变最大速度Y。
  5568. */
  5569. readonly gradientYMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5570. /**
  5571. * 渐变最小速度Z。
  5572. */
  5573. readonly gradientZMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5574. /**
  5575. * 渐变最大速度Z。
  5576. */
  5577. readonly gradientZMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5578. /**
  5579. * 创建一个 <code>GradientVelocity,不允许new,请使用静态创建函数。</code> 实例。
  5580. */
  5581. constructor();
  5582. /**
  5583. * 克隆。
  5584. * @param destObject 克隆源。
  5585. */
  5586. cloneTo(destObject:any):void;
  5587. /**
  5588. * 克隆。
  5589. * @return 克隆副本。
  5590. */
  5591. clone():any;
  5592. }
  5593. }
  5594. declare module laya.d3.core.particleShuriKen.module {
  5595. /**
  5596. * <code>RotationOverLifetime</code> 类用于粒子的生命周期旋转。
  5597. */
  5598. class RotationOverLifetime implements laya.d3.core.IClone {
  5599. private _angularVelocity:any;
  5600. /**
  5601. * 是否启用
  5602. */
  5603. enbale:boolean;
  5604. /**
  5605. * 获取角速度。
  5606. */
  5607. readonly angularVelocity:laya.d3.core.particleShuriKen.module.GradientAngularVelocity;
  5608. /**
  5609. * 创建一个 <code>RotationOverLifetime,不允许new,请使用静态创建函数。</code> 实例。
  5610. */
  5611. constructor(angularVelocity:laya.d3.core.particleShuriKen.module.GradientAngularVelocity);
  5612. /**
  5613. * 克隆。
  5614. * @param destObject 克隆源。
  5615. */
  5616. cloneTo(destObject:any):void;
  5617. /**
  5618. * 克隆。
  5619. * @return 克隆副本。
  5620. */
  5621. clone():any;
  5622. }
  5623. }
  5624. declare module laya.d3.core.particleShuriKen.module.shape {
  5625. /**
  5626. * <code>BaseShape</code> 类用于粒子形状。
  5627. */
  5628. class BaseShape implements laya.d3.core.IClone {
  5629. /**
  5630. * 是否启用。
  5631. */
  5632. enable:boolean;
  5633. /**
  5634. * 随机方向。
  5635. */
  5636. randomDirection:boolean;
  5637. /**
  5638. * 创建一个 <code>BaseShape</code> 实例。
  5639. */
  5640. constructor();
  5641. /**
  5642. * 用于生成粒子初始位置和方向。
  5643. * @param position 粒子位置。
  5644. * @param direction 粒子方向。
  5645. */
  5646. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5647. /**
  5648. * 克隆。
  5649. * @param destObject 克隆源。
  5650. */
  5651. cloneTo(destObject:any):void;
  5652. /**
  5653. * 克隆。
  5654. * @return 克隆副本。
  5655. */
  5656. clone():any;
  5657. }
  5658. }
  5659. declare module laya.d3.core.particleShuriKen.module.shape {
  5660. /**
  5661. * <code>BoxShape</code> 类用于创建球形粒子形状。
  5662. */
  5663. class BoxShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {
  5664. /**
  5665. * 发射器X轴长度。
  5666. */
  5667. x:number;
  5668. /**
  5669. * 发射器Y轴长度。
  5670. */
  5671. y:number;
  5672. /**
  5673. * 发射器Z轴长度。
  5674. */
  5675. z:number;
  5676. /**
  5677. * 创建一个 <code>BoxShape</code> 实例。
  5678. */
  5679. constructor();
  5680. /**
  5681. * 用于生成粒子初始位置和方向。
  5682. * @param position 粒子位置。
  5683. * @param direction 粒子方向。
  5684. * @override
  5685. */
  5686. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5687. /**
  5688. * @param destObject
  5689. * @override
  5690. */
  5691. cloneTo(destObject:any):void;
  5692. /**
  5693. * @override 克隆。
  5694. * @return 克隆副本。
  5695. */
  5696. clone():any;
  5697. }
  5698. }
  5699. declare module laya.d3.core.particleShuriKen.module.shape {
  5700. /**
  5701. * <code>CircleShape</code> 类用于创建环形粒子形状。
  5702. */
  5703. class CircleShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {
  5704. /**
  5705. * 发射器半径。
  5706. */
  5707. radius:number;
  5708. /**
  5709. * 环形弧度。
  5710. */
  5711. arc:number;
  5712. /**
  5713. * 从边缘发射。
  5714. */
  5715. emitFromEdge:boolean;
  5716. /**
  5717. * 创建一个 <code>CircleShape</code> 实例。
  5718. */
  5719. constructor();
  5720. /**
  5721. * 用于生成粒子初始位置和方向。
  5722. * @param position 粒子位置。
  5723. * @param direction 粒子方向。
  5724. * @override
  5725. */
  5726. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5727. /**
  5728. * @param destObject
  5729. * @override
  5730. */
  5731. cloneTo(destObject:any):void;
  5732. /**
  5733. * @override 克隆。
  5734. * @return 克隆副本。
  5735. */
  5736. clone():any;
  5737. }
  5738. }
  5739. declare module laya.d3.core.particleShuriKen.module.shape {
  5740. /**
  5741. * <code>ConeShape</code> 类用于创建锥形粒子形状。
  5742. */
  5743. class ConeShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {
  5744. /**
  5745. * 发射角度。
  5746. */
  5747. angle:number;
  5748. /**
  5749. * 发射器半径。
  5750. */
  5751. radius:number;
  5752. /**
  5753. * 椎体长度。
  5754. */
  5755. length:number;
  5756. /**
  5757. * 发射类型,0为Base,1为BaseShell,2为Volume,3为VolumeShell。
  5758. */
  5759. emitType:number;
  5760. /**
  5761. * 创建一个 <code>ConeShape</code> 实例。
  5762. */
  5763. constructor();
  5764. /**
  5765. * 用于生成粒子初始位置和方向。
  5766. * @param position 粒子位置。
  5767. * @param direction 粒子方向。
  5768. * @override
  5769. */
  5770. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5771. /**
  5772. * @override
  5773. */
  5774. cloneTo(destObject:any):void;
  5775. /**
  5776. * @override 克隆。
  5777. * @return 克隆副本。
  5778. */
  5779. clone():any;
  5780. }
  5781. }
  5782. declare module laya.d3.core.particleShuriKen.module.shape {
  5783. /**
  5784. * <code>HemisphereShape</code> 类用于创建半球形粒子形状。
  5785. */
  5786. class HemisphereShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {
  5787. /**
  5788. * 发射器半径。
  5789. */
  5790. radius:number;
  5791. /**
  5792. * 从外壳发射。
  5793. */
  5794. emitFromShell:boolean;
  5795. /**
  5796. * 创建一个 <code>HemisphereShape</code> 实例。
  5797. */
  5798. constructor();
  5799. /**
  5800. * 用于生成粒子初始位置和方向。
  5801. * @param position 粒子位置。
  5802. * @param direction 粒子方向。
  5803. * @override
  5804. */
  5805. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5806. /**
  5807. * @override
  5808. */
  5809. cloneTo(destObject:any):void;
  5810. /**
  5811. * @override 克隆。
  5812. * @return 克隆副本。
  5813. */
  5814. clone():any;
  5815. }
  5816. }
  5817. declare module laya.d3.core.particleShuriKen.module.shape {
  5818. /**
  5819. * ...
  5820. * @author ...
  5821. */
  5822. class ShapeUtils {
  5823. static _randomPointUnitArcCircle(arc:number,out:laya.d3.math.Vector2,rand?:laya.d3.math.Rand):void;
  5824. static _randomPointInsideUnitArcCircle(arc:number,out:laya.d3.math.Vector2,rand?:laya.d3.math.Rand):void;
  5825. static _randomPointUnitCircle(out:laya.d3.math.Vector2,rand?:laya.d3.math.Rand):void;
  5826. static _randomPointInsideUnitCircle(out:laya.d3.math.Vector2,rand?:laya.d3.math.Rand):void;
  5827. static _randomPointUnitSphere(out:laya.d3.math.Vector3,rand?:laya.d3.math.Rand):void;
  5828. static _randomPointInsideUnitSphere(out:laya.d3.math.Vector3,rand?:laya.d3.math.Rand):void;
  5829. static _randomPointInsideHalfUnitBox(out:laya.d3.math.Vector3,rand?:laya.d3.math.Rand):void;
  5830. constructor();
  5831. }
  5832. }
  5833. declare module laya.d3.core.particleShuriKen.module.shape {
  5834. /**
  5835. * <code>SphereShape</code> 类用于创建球形粒子形状。
  5836. */
  5837. class SphereShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {
  5838. /**
  5839. * 发射器半径。
  5840. */
  5841. radius:number;
  5842. /**
  5843. * 从外壳发射。
  5844. */
  5845. emitFromShell:boolean;
  5846. /**
  5847. * 创建一个 <code>SphereShape</code> 实例。
  5848. */
  5849. constructor();
  5850. /**
  5851. * 用于生成粒子初始位置和方向。
  5852. * @param position 粒子位置。
  5853. * @param direction 粒子方向。
  5854. * @override
  5855. */
  5856. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5857. /**
  5858. * @override
  5859. */
  5860. cloneTo(destObject:any):void;
  5861. /**
  5862. * @override 克隆。
  5863. * @return 克隆副本。
  5864. */
  5865. clone():any;
  5866. }
  5867. }
  5868. declare module laya.d3.core.particleShuriKen.module {
  5869. /**
  5870. * <code>SizeOverLifetime</code> 类用于粒子的生命周期尺寸。
  5871. */
  5872. class SizeOverLifetime implements laya.d3.core.IClone {
  5873. private _size:any;
  5874. /**
  5875. * 是否启用
  5876. */
  5877. enbale:boolean;
  5878. /**
  5879. * 获取尺寸。
  5880. */
  5881. readonly size:laya.d3.core.particleShuriKen.module.GradientSize;
  5882. /**
  5883. * 创建一个 <code>SizeOverLifetime</code> 实例。
  5884. */
  5885. constructor(size:laya.d3.core.particleShuriKen.module.GradientSize);
  5886. /**
  5887. * 克隆。
  5888. * @param destObject 克隆源。
  5889. */
  5890. cloneTo(destObject:any):void;
  5891. /**
  5892. * 克隆。
  5893. * @return 克隆副本。
  5894. */
  5895. clone():any;
  5896. }
  5897. }
  5898. declare module laya.d3.core.particleShuriKen.module {
  5899. /**
  5900. * <code>StartFrame</code> 类用于创建开始帧。
  5901. */
  5902. class StartFrame implements laya.d3.core.IClone {
  5903. /**
  5904. * 通过随机常量旋转创建一个 <code>StartFrame</code> 实例。
  5905. * @param constant 固定帧。
  5906. * @return 开始帧。
  5907. */
  5908. static createByConstant(constant:number):StartFrame;
  5909. /**
  5910. * 通过随机双常量旋转创建一个 <code>StartFrame</code> 实例。
  5911. * @param constantMin 最小固定帧。
  5912. * @param constantMax 最大固定帧。
  5913. * @return 开始帧。
  5914. */
  5915. static createByRandomTwoConstant(constantMin:number,constantMax:number):StartFrame;
  5916. private _type:any;
  5917. private _constant:any;
  5918. private _constantMin:any;
  5919. private _constantMax:any;
  5920. /**
  5921. * 开始帧类型,0常量模式,1随机双常量模式。
  5922. */
  5923. readonly type:number;
  5924. /**
  5925. * 固定帧。
  5926. */
  5927. readonly constant:number;
  5928. /**
  5929. * 最小固定帧。
  5930. */
  5931. readonly constantMin:number;
  5932. /**
  5933. * 最大固定帧。
  5934. */
  5935. readonly constantMax:number;
  5936. /**
  5937. * 创建一个 <code>StartFrame,不允许new,请使用静态创建函数。</code> 实例。
  5938. */
  5939. constructor();
  5940. /**
  5941. * 克隆。
  5942. * @param destObject 克隆源。
  5943. */
  5944. cloneTo(destObject:any):void;
  5945. /**
  5946. * 克隆。
  5947. * @return 克隆副本。
  5948. */
  5949. clone():any;
  5950. }
  5951. }
  5952. declare module laya.d3.core.particleShuriKen.module {
  5953. /**
  5954. * <code>TextureSheetAnimation</code> 类用于创建粒子帧动画。
  5955. */
  5956. class TextureSheetAnimation implements laya.d3.core.IClone {
  5957. /**
  5958. * 纹理平铺。
  5959. */
  5960. tiles:laya.d3.math.Vector2;
  5961. /**
  5962. * 类型,0为whole sheet、1为singal row。
  5963. */
  5964. type:number;
  5965. /**
  5966. * 是否随机行,type为1时有效。
  5967. */
  5968. randomRow:boolean;
  5969. /**
  5970. * 行索引,type为1时有效。
  5971. */
  5972. rowIndex:number;
  5973. /**
  5974. * 循环次数。
  5975. */
  5976. cycles:number;
  5977. /**
  5978. * UV通道类型,0为Noting,1为Everything,待补充,暂不支持。
  5979. */
  5980. enableUVChannels:number;
  5981. /**
  5982. * 是否启用
  5983. */
  5984. enable:boolean;
  5985. /**
  5986. * 获取时间帧率。
  5987. */
  5988. readonly frame:laya.d3.core.particleShuriKen.module.FrameOverTime;
  5989. /**
  5990. * 获取开始帧率。
  5991. */
  5992. readonly startFrame:laya.d3.core.particleShuriKen.module.StartFrame;
  5993. /**
  5994. * 创建一个 <code>TextureSheetAnimation</code> 实例。
  5995. * @param frame 动画帧。
  5996. * @param startFrame 开始帧。
  5997. */
  5998. constructor(frame:laya.d3.core.particleShuriKen.module.FrameOverTime,startFrame:laya.d3.core.particleShuriKen.module.StartFrame);
  5999. /**
  6000. * 克隆。
  6001. * @param destObject 克隆源。
  6002. */
  6003. cloneTo(destObject:any):void;
  6004. /**
  6005. * 克隆。
  6006. * @return 克隆副本。
  6007. */
  6008. clone():any;
  6009. }
  6010. }
  6011. declare module laya.d3.core.particleShuriKen.module {
  6012. /**
  6013. * <code>VelocityOverLifetime</code> 类用于粒子的生命周期速度。
  6014. */
  6015. class VelocityOverLifetime implements laya.d3.core.IClone {
  6016. /**
  6017. * 是否启用
  6018. */
  6019. enbale:boolean;
  6020. /**
  6021. * 速度空间,0为local,1为world。
  6022. */
  6023. space:number;
  6024. /**
  6025. * 获取尺寸。
  6026. */
  6027. readonly velocity:laya.d3.core.particleShuriKen.module.GradientVelocity;
  6028. /**
  6029. * 创建一个 <code>VelocityOverLifetime</code> 实例。
  6030. */
  6031. constructor(velocity:laya.d3.core.particleShuriKen.module.GradientVelocity);
  6032. /**
  6033. * 克隆。
  6034. * @param destObject 克隆源。
  6035. */
  6036. cloneTo(destObject:any):void;
  6037. /**
  6038. * 克隆。
  6039. * @return 克隆副本。
  6040. */
  6041. clone():any;
  6042. }
  6043. }
  6044. declare module laya.d3.core.particleShuriKen {
  6045. /**
  6046. * <code>ShuriKenParticle3D</code> 3D粒子。
  6047. */
  6048. class ShuriKenParticle3D extends laya.d3.core.RenderableSprite3D {
  6049. /**
  6050. * 获取粒子系统。
  6051. * @return 粒子系统。
  6052. */
  6053. readonly particleSystem:laya.d3.core.particleShuriKen.ShurikenParticleSystem;
  6054. /**
  6055. * 获取粒子渲染器。
  6056. * @return 粒子渲染器。
  6057. */
  6058. readonly particleRenderer:laya.d3.core.particleShuriKen.ShurikenParticleRenderer;
  6059. /**
  6060. * 创建一个 <code>Particle3D</code> 实例。
  6061. * @param settings value 粒子配置。
  6062. */
  6063. constructor();
  6064. /**
  6065. * <p>销毁此对象。</p>
  6066. * @param destroyChild 是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
  6067. * @override
  6068. */
  6069. destroy(destroyChild?:boolean):void;
  6070. }
  6071. }
  6072. declare module laya.d3.core.particleShuriKen {
  6073. class ShuriKenParticle3DShaderDeclaration {
  6074. static SHADERDEFINE_RENDERMODE_BILLBOARD:laya.d3.shader.ShaderDefine;
  6075. static SHADERDEFINE_RENDERMODE_STRETCHEDBILLBOARD:laya.d3.shader.ShaderDefine;
  6076. static SHADERDEFINE_RENDERMODE_HORIZONTALBILLBOARD:laya.d3.shader.ShaderDefine;
  6077. static SHADERDEFINE_RENDERMODE_VERTICALBILLBOARD:laya.d3.shader.ShaderDefine;
  6078. static SHADERDEFINE_COLOROVERLIFETIME:laya.d3.shader.ShaderDefine;
  6079. static SHADERDEFINE_RANDOMCOLOROVERLIFETIME:laya.d3.shader.ShaderDefine;
  6080. static SHADERDEFINE_VELOCITYOVERLIFETIMECONSTANT:laya.d3.shader.ShaderDefine;
  6081. static SHADERDEFINE_VELOCITYOVERLIFETIMECURVE:laya.d3.shader.ShaderDefine;
  6082. static SHADERDEFINE_VELOCITYOVERLIFETIMERANDOMCONSTANT:laya.d3.shader.ShaderDefine;
  6083. static SHADERDEFINE_VELOCITYOVERLIFETIMERANDOMCURVE:laya.d3.shader.ShaderDefine;
  6084. static SHADERDEFINE_TEXTURESHEETANIMATIONCURVE:laya.d3.shader.ShaderDefine;
  6085. static SHADERDEFINE_TEXTURESHEETANIMATIONRANDOMCURVE:laya.d3.shader.ShaderDefine;
  6086. static SHADERDEFINE_ROTATIONOVERLIFETIME:laya.d3.shader.ShaderDefine;
  6087. static SHADERDEFINE_ROTATIONOVERLIFETIMESEPERATE:laya.d3.shader.ShaderDefine;
  6088. static SHADERDEFINE_ROTATIONOVERLIFETIMECONSTANT:laya.d3.shader.ShaderDefine;
  6089. static SHADERDEFINE_ROTATIONOVERLIFETIMECURVE:laya.d3.shader.ShaderDefine;
  6090. static SHADERDEFINE_ROTATIONOVERLIFETIMERANDOMCONSTANTS:laya.d3.shader.ShaderDefine;
  6091. static SHADERDEFINE_ROTATIONOVERLIFETIMERANDOMCURVES:laya.d3.shader.ShaderDefine;
  6092. static SHADERDEFINE_SIZEOVERLIFETIMECURVE:laya.d3.shader.ShaderDefine;
  6093. static SHADERDEFINE_SIZEOVERLIFETIMECURVESEPERATE:laya.d3.shader.ShaderDefine;
  6094. static SHADERDEFINE_SIZEOVERLIFETIMERANDOMCURVES:laya.d3.shader.ShaderDefine;
  6095. static SHADERDEFINE_SIZEOVERLIFETIMERANDOMCURVESSEPERATE:laya.d3.shader.ShaderDefine;
  6096. static SHADERDEFINE_RENDERMODE_MESH:laya.d3.shader.ShaderDefine;
  6097. static SHADERDEFINE_SHAPE:laya.d3.shader.ShaderDefine;
  6098. static WORLDPOSITION:number;
  6099. static WORLDROTATION:number;
  6100. static POSITIONSCALE:number;
  6101. static SIZESCALE:number;
  6102. static SCALINGMODE:number;
  6103. static GRAVITY:number;
  6104. static THREEDSTARTROTATION:number;
  6105. static STRETCHEDBILLBOARDLENGTHSCALE:number;
  6106. static STRETCHEDBILLBOARDSPEEDSCALE:number;
  6107. static SIMULATIONSPACE:number;
  6108. static CURRENTTIME:number;
  6109. static VOLVELOCITYCONST:number;
  6110. static VOLVELOCITYGRADIENTX:number;
  6111. static VOLVELOCITYGRADIENTY:number;
  6112. static VOLVELOCITYGRADIENTZ:number;
  6113. static VOLVELOCITYCONSTMAX:number;
  6114. static VOLVELOCITYGRADIENTXMAX:number;
  6115. static VOLVELOCITYGRADIENTYMAX:number;
  6116. static VOLVELOCITYGRADIENTZMAX:number;
  6117. static VOLSPACETYPE:number;
  6118. static COLOROVERLIFEGRADIENTALPHAS:number;
  6119. static COLOROVERLIFEGRADIENTCOLORS:number;
  6120. static MAXCOLOROVERLIFEGRADIENTALPHAS:number;
  6121. static MAXCOLOROVERLIFEGRADIENTCOLORS:number;
  6122. static SOLSIZEGRADIENT:number;
  6123. static SOLSIZEGRADIENTX:number;
  6124. static SOLSIZEGRADIENTY:number;
  6125. static SOLSizeGradientZ:number;
  6126. static SOLSizeGradientMax:number;
  6127. static SOLSIZEGRADIENTXMAX:number;
  6128. static SOLSIZEGRADIENTYMAX:number;
  6129. static SOLSizeGradientZMAX:number;
  6130. static ROLANGULARVELOCITYCONST:number;
  6131. static ROLANGULARVELOCITYCONSTSEPRARATE:number;
  6132. static ROLANGULARVELOCITYGRADIENT:number;
  6133. static ROLANGULARVELOCITYGRADIENTX:number;
  6134. static ROLANGULARVELOCITYGRADIENTY:number;
  6135. static ROLANGULARVELOCITYGRADIENTZ:number;
  6136. static ROLANGULARVELOCITYCONSTMAX:number;
  6137. static ROLANGULARVELOCITYCONSTMAXSEPRARATE:number;
  6138. static ROLANGULARVELOCITYGRADIENTMAX:number;
  6139. static ROLANGULARVELOCITYGRADIENTXMAX:number;
  6140. static ROLANGULARVELOCITYGRADIENTYMAX:number;
  6141. static ROLANGULARVELOCITYGRADIENTZMAX:number;
  6142. static ROLANGULARVELOCITYGRADIENTWMAX:number;
  6143. static TEXTURESHEETANIMATIONCYCLES:number;
  6144. static TEXTURESHEETANIMATIONSUBUVLENGTH:number;
  6145. static TEXTURESHEETANIMATIONGRADIENTUVS:number;
  6146. static TEXTURESHEETANIMATIONGRADIENTMAXUVS:number;
  6147. }
  6148. }
  6149. declare module laya.d3.core.particleShuriKen {
  6150. /**
  6151. * <code>ShurikenParticleMaterial</code> 类用于实现粒子材质。
  6152. */
  6153. class ShurikenParticleMaterial extends laya.d3.core.material.BaseMaterial {
  6154. /**
  6155. * 渲染状态_透明混合。
  6156. */
  6157. static RENDERMODE_ALPHABLENDED:number;
  6158. /**
  6159. * 渲染状态_加色法混合。
  6160. */
  6161. static RENDERMODE_ADDTIVE:number;
  6162. static SHADERDEFINE_DIFFUSEMAP:laya.d3.shader.ShaderDefine;
  6163. static SHADERDEFINE_TINTCOLOR:laya.d3.shader.ShaderDefine;
  6164. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  6165. static SHADERDEFINE_ADDTIVEFOG:laya.d3.shader.ShaderDefine;
  6166. static DIFFUSETEXTURE:number;
  6167. static TINTCOLOR:number;
  6168. static TILINGOFFSET:number;
  6169. static CULL:number;
  6170. static BLEND:number;
  6171. static BLEND_SRC:number;
  6172. static BLEND_DST:number;
  6173. static DEPTH_TEST:number;
  6174. static DEPTH_WRITE:number;
  6175. /**
  6176. * 默认材质,禁止修改
  6177. */
  6178. static defaultMaterial:ShurikenParticleMaterial;
  6179. /**
  6180. * 渲染模式。
  6181. */
  6182. renderMode:number;
  6183. /**
  6184. * 颜色R分量。
  6185. */
  6186. colorR:number;
  6187. /**
  6188. * 颜色G分量。
  6189. */
  6190. colorG:number;
  6191. /**
  6192. * 颜色B分量。
  6193. */
  6194. colorB:number;
  6195. /**
  6196. * 颜色Z分量。
  6197. */
  6198. colorA:number;
  6199. /**
  6200. * 颜色。
  6201. */
  6202. color:laya.d3.math.Vector4;
  6203. /**
  6204. * 纹理平铺和偏移X分量。
  6205. */
  6206. tilingOffsetX:number;
  6207. /**
  6208. * 纹理平铺和偏移Y分量。
  6209. */
  6210. tilingOffsetY:number;
  6211. /**
  6212. * 纹理平铺和偏移Z分量。
  6213. */
  6214. tilingOffsetZ:number;
  6215. /**
  6216. * 纹理平铺和偏移W分量。
  6217. */
  6218. tilingOffsetW:number;
  6219. /**
  6220. * 纹理平铺和偏移。
  6221. */
  6222. tilingOffset:laya.d3.math.Vector4;
  6223. /**
  6224. * 漫反射贴图。
  6225. */
  6226. texture:laya.resource.BaseTexture;
  6227. /**
  6228. * 是否写入深度。
  6229. */
  6230. depthWrite:boolean;
  6231. /**
  6232. * 剔除方式。
  6233. */
  6234. cull:number;
  6235. /**
  6236. * 混合方式。
  6237. */
  6238. blend:number;
  6239. /**
  6240. * 混合源。
  6241. */
  6242. blendSrc:number;
  6243. /**
  6244. * 混合目标。
  6245. */
  6246. blendDst:number;
  6247. /**
  6248. * 深度测试方式。
  6249. */
  6250. depthTest:number;
  6251. constructor();
  6252. /**
  6253. * 克隆。
  6254. * @return 克隆副本。
  6255. * @override
  6256. */
  6257. clone():any;
  6258. }
  6259. }
  6260. declare module laya.d3.core.particleShuriKen {
  6261. /**
  6262. * <code>ShurikenParticleRender</code> 类用于创建3D粒子渲染器。
  6263. */
  6264. class ShurikenParticleRenderer extends laya.d3.core.render.BaseRender {
  6265. /**
  6266. * 拉伸广告牌模式摄像机速度缩放,暂不支持。
  6267. */
  6268. stretchedBillboardCameraSpeedScale:number;
  6269. /**
  6270. * 拉伸广告牌模式速度缩放。
  6271. */
  6272. stretchedBillboardSpeedScale:number;
  6273. /**
  6274. * 拉伸广告牌模式长度缩放。
  6275. */
  6276. stretchedBillboardLengthScale:number;
  6277. /**
  6278. * 获取渲染模式。
  6279. * @return 渲染模式。
  6280. */
  6281. /**
  6282. * 设置渲染模式,0为BILLBOARD、1为STRETCHEDBILLBOARD、2为HORIZONTALBILLBOARD、3为VERTICALBILLBOARD、4为MESH。
  6283. * @param value 渲染模式。
  6284. */
  6285. renderMode:number;
  6286. /**
  6287. * 获取网格渲染模式所使用的Mesh,rendderMode为4时生效。
  6288. * @return 网格模式所使用Mesh。
  6289. */
  6290. /**
  6291. * 设置网格渲染模式所使用的Mesh,rendderMode为4时生效。
  6292. * @param value 网格模式所使用Mesh。
  6293. */
  6294. mesh:laya.d3.resource.models.Mesh;
  6295. /**
  6296. * 创建一个 <code>ShurikenParticleRender</code> 实例。
  6297. */
  6298. constructor(owner:laya.d3.core.particleShuriKen.ShuriKenParticle3D);
  6299. /**
  6300. * @inheritDoc
  6301. * @override
  6302. */
  6303. readonly bounds:laya.d3.core.Bounds;
  6304. }
  6305. }
  6306. declare module laya.d3.core.particleShuriKen {
  6307. /**
  6308. * <code>ShurikenParticleSystem</code> 类用于创建3D粒子数据模板。
  6309. */
  6310. class ShurikenParticleSystem extends laya.d3.core.GeometryElement implements laya.d3.core.IClone {
  6311. /**
  6312. * 粒子运行的总时长,单位为秒。
  6313. */
  6314. duration:number;
  6315. /**
  6316. * 是否循环。
  6317. */
  6318. looping:boolean;
  6319. /**
  6320. * 是否预热。暂不支持
  6321. */
  6322. prewarm:boolean;
  6323. /**
  6324. * 开始延迟类型,0为常量模式,1为随机随机双常量模式,不能和prewarm一起使用。
  6325. */
  6326. startDelayType:number;
  6327. /**
  6328. * 开始播放延迟,不能和prewarm一起使用。
  6329. */
  6330. startDelay:number;
  6331. /**
  6332. * 开始播放最小延迟,不能和prewarm一起使用。
  6333. */
  6334. startDelayMin:number;
  6335. /**
  6336. * 开始播放最大延迟,不能和prewarm一起使用。
  6337. */
  6338. startDelayMax:number;
  6339. /**
  6340. * 开始速度模式,0为恒定速度,2为两个恒定速度的随机插值。缺少1、3模式
  6341. */
  6342. startSpeedType:number;
  6343. /**
  6344. * 开始速度,0模式。
  6345. */
  6346. startSpeedConstant:number;
  6347. /**
  6348. * 最小开始速度,1模式。
  6349. */
  6350. startSpeedConstantMin:number;
  6351. /**
  6352. * 最大开始速度,1模式。
  6353. */
  6354. startSpeedConstantMax:number;
  6355. /**
  6356. * 开始尺寸是否为3D模式。
  6357. */
  6358. threeDStartSize:boolean;
  6359. /**
  6360. * 开始尺寸模式,0为恒定尺寸,2为两个恒定尺寸的随机插值。缺少1、3模式和对应的二种3D模式
  6361. */
  6362. startSizeType:number;
  6363. /**
  6364. * 开始尺寸,0模式。
  6365. */
  6366. startSizeConstant:number;
  6367. /**
  6368. * 开始三维尺寸,0模式。
  6369. */
  6370. startSizeConstantSeparate:laya.d3.math.Vector3;
  6371. /**
  6372. * 最小开始尺寸,2模式。
  6373. */
  6374. startSizeConstantMin:number;
  6375. /**
  6376. * 最大开始尺寸,2模式。
  6377. */
  6378. startSizeConstantMax:number;
  6379. /**
  6380. * 最小三维开始尺寸,2模式。
  6381. */
  6382. startSizeConstantMinSeparate:laya.d3.math.Vector3;
  6383. /**
  6384. * 最大三维开始尺寸,2模式。
  6385. */
  6386. startSizeConstantMaxSeparate:laya.d3.math.Vector3;
  6387. /**
  6388. * 3D开始旋转。
  6389. */
  6390. threeDStartRotation:boolean;
  6391. /**
  6392. * 开始旋转模式,0为恒定尺寸,2为两个恒定旋转的随机插值,缺少2种模式,和对应的四种3D模式。
  6393. */
  6394. startRotationType:number;
  6395. /**
  6396. * 开始旋转,0模式。
  6397. */
  6398. startRotationConstant:number;
  6399. /**
  6400. * 开始三维旋转,0模式。
  6401. */
  6402. startRotationConstantSeparate:laya.d3.math.Vector3;
  6403. /**
  6404. * 最小开始旋转,1模式。
  6405. */
  6406. startRotationConstantMin:number;
  6407. /**
  6408. * 最大开始旋转,1模式。
  6409. */
  6410. startRotationConstantMax:number;
  6411. /**
  6412. * 最小开始三维旋转,1模式。
  6413. */
  6414. startRotationConstantMinSeparate:laya.d3.math.Vector3;
  6415. /**
  6416. * 最大开始三维旋转,1模式。
  6417. */
  6418. startRotationConstantMaxSeparate:laya.d3.math.Vector3;
  6419. /**
  6420. * 随机旋转方向,范围为0.0到1.0
  6421. */
  6422. randomizeRotationDirection:number;
  6423. /**
  6424. * 开始颜色模式,0为恒定颜色,2为两个恒定颜色的随机插值,缺少2种模式。
  6425. */
  6426. startColorType:number;
  6427. /**
  6428. * 开始颜色,0模式。
  6429. */
  6430. startColorConstant:laya.d3.math.Vector4;
  6431. /**
  6432. * 最小开始颜色,1模式。
  6433. */
  6434. startColorConstantMin:laya.d3.math.Vector4;
  6435. /**
  6436. * 最大开始颜色,1模式。
  6437. */
  6438. startColorConstantMax:laya.d3.math.Vector4;
  6439. /**
  6440. * 重力敏感度。
  6441. */
  6442. gravityModifier:number;
  6443. /**
  6444. * 模拟器空间,0为World,1为Local。暂不支持Custom。
  6445. */
  6446. simulationSpace:number;
  6447. /**
  6448. * 粒子的播放速度。
  6449. */
  6450. simulationSpeed:number;
  6451. /**
  6452. * 缩放模式,0为Hiercachy,1为Local,2为World。
  6453. */
  6454. scaleMode:number;
  6455. /**
  6456. * 激活时是否自动播放。
  6457. */
  6458. playOnAwake:boolean;
  6459. /**
  6460. * 随机种子,注:play()前设置有效。
  6461. */
  6462. randomSeed:Uint32Array;
  6463. /**
  6464. * 是否使用随机种子。
  6465. */
  6466. autoRandomSeed:boolean;
  6467. /**
  6468. * 是否为性能模式,性能模式下会延迟粒子释放。
  6469. */
  6470. isPerformanceMode:boolean;
  6471. /**
  6472. * 获取最大粒子数。
  6473. */
  6474. /**
  6475. * 设置最大粒子数,注意:谨慎修改此属性,有性能损耗。
  6476. */
  6477. maxParticles:number;
  6478. /**
  6479. * 获取发射器。
  6480. */
  6481. readonly emission:laya.d3.core.particleShuriKen.module.Emission;
  6482. /**
  6483. * 粒子存活个数。
  6484. */
  6485. readonly aliveParticleCount:number;
  6486. /**
  6487. * 获取一次循环内的累计时间。
  6488. * @return 一次循环内的累计时间。
  6489. */
  6490. readonly emissionTime:number;
  6491. /**
  6492. * 获取形状。
  6493. */
  6494. /**
  6495. * 设置形状。
  6496. */
  6497. shape:laya.d3.core.particleShuriKen.module.shape.BaseShape;
  6498. /**
  6499. * 是否存活。
  6500. */
  6501. readonly isAlive:boolean;
  6502. /**
  6503. * 是否正在发射。
  6504. */
  6505. readonly isEmitting:boolean;
  6506. /**
  6507. * 是否正在播放。
  6508. */
  6509. readonly isPlaying:boolean;
  6510. /**
  6511. * 是否已暂停。
  6512. */
  6513. readonly isPaused:boolean;
  6514. /**
  6515. * 获取开始生命周期模式,0为固定时间,1为渐变时间,2为两个固定之间的随机插值,3为两个渐变时间的随机插值。
  6516. */
  6517. /**
  6518. * 设置开始生命周期模式,0为固定时间,1为渐变时间,2为两个固定之间的随机插值,3为两个渐变时间的随机插值。
  6519. */
  6520. startLifetimeType:number;
  6521. /**
  6522. * 获取开始生命周期,0模式,单位为秒。
  6523. */
  6524. /**
  6525. * 设置开始生命周期,0模式,单位为秒。
  6526. */
  6527. startLifetimeConstant:number;
  6528. /**
  6529. * 获取开始渐变生命周期,1模式,单位为秒。
  6530. */
  6531. /**
  6532. * 设置开始渐变生命周期,1模式,单位为秒。
  6533. */
  6534. startLifeTimeGradient:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  6535. /**
  6536. * 获取最小开始生命周期,2模式,单位为秒。
  6537. */
  6538. /**
  6539. * 设置最小开始生命周期,2模式,单位为秒。
  6540. */
  6541. startLifetimeConstantMin:number;
  6542. /**
  6543. * 获取最大开始生命周期,2模式,单位为秒。
  6544. */
  6545. /**
  6546. * 设置最大开始生命周期,2模式,单位为秒。
  6547. */
  6548. startLifetimeConstantMax:number;
  6549. /**
  6550. * 获取开始渐变最小生命周期,3模式,单位为秒。
  6551. */
  6552. /**
  6553. * 设置开始渐变最小生命周期,3模式,单位为秒。
  6554. */
  6555. startLifeTimeGradientMin:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  6556. /**
  6557. * 获取开始渐变最大生命周期,3模式,单位为秒。
  6558. */
  6559. /**
  6560. * 设置开始渐变最大生命周期,3模式,单位为秒。
  6561. */
  6562. startLifeTimeGradientMax:laya.d3.core.particleShuriKen.module.GradientDataNumber;
  6563. /**
  6564. * 获取生命周期速度,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6565. * @return 生命周期速度.
  6566. */
  6567. /**
  6568. * 设置生命周期速度,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6569. * @param value 生命周期速度.
  6570. */
  6571. velocityOverLifetime:laya.d3.core.particleShuriKen.module.VelocityOverLifetime;
  6572. /**
  6573. * 获取生命周期颜色,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6574. * @return 生命周期颜色
  6575. */
  6576. /**
  6577. * 设置生命周期颜色,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6578. * @param value 生命周期颜色
  6579. */
  6580. colorOverLifetime:laya.d3.core.particleShuriKen.module.ColorOverLifetime;
  6581. /**
  6582. * 获取生命周期尺寸,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6583. * @return 生命周期尺寸
  6584. */
  6585. /**
  6586. * 设置生命周期尺寸,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6587. * @param value 生命周期尺寸
  6588. */
  6589. sizeOverLifetime:laya.d3.core.particleShuriKen.module.SizeOverLifetime;
  6590. /**
  6591. * 获取生命周期旋转,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6592. * @return 生命周期旋转。
  6593. */
  6594. /**
  6595. * 设置生命周期旋转,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6596. * @param value 生命周期旋转。
  6597. */
  6598. rotationOverLifetime:laya.d3.core.particleShuriKen.module.RotationOverLifetime;
  6599. /**
  6600. * 获取生命周期纹理动画,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6601. * @return 生命周期纹理动画。
  6602. */
  6603. /**
  6604. * 设置生命周期纹理动画,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6605. * @param value 生命周期纹理动画。
  6606. */
  6607. textureSheetAnimation:laya.d3.core.particleShuriKen.module.TextureSheetAnimation;
  6608. _getVertexBuffer(index?:number):laya.d3.graphics.VertexBuffer3D;
  6609. _getIndexBuffer():laya.d3.graphics.IndexBuffer3D;
  6610. constructor(owner:laya.d3.core.particleShuriKen.ShuriKenParticle3D);
  6611. /**
  6612. * 发射一个粒子。
  6613. */
  6614. emit(time:number):boolean;
  6615. addParticle(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,time:number):boolean;
  6616. addNewParticlesToVertexBuffer():void;
  6617. /**
  6618. * @inheritDoc
  6619. * @override
  6620. */
  6621. _getType():number;
  6622. /**
  6623. * 开始发射粒子。
  6624. */
  6625. play():void;
  6626. /**
  6627. * 暂停发射粒子。
  6628. */
  6629. pause():void;
  6630. /**
  6631. * 通过指定时间增加粒子播放进度,并暂停播放。
  6632. * @param time 进度时间.如果restart为true,粒子播放时间会归零后再更新进度。
  6633. * @param restart 是否重置播放状态。
  6634. */
  6635. simulate(time:number,restart?:boolean):void;
  6636. /**
  6637. * 停止发射粒子。
  6638. */
  6639. stop():void;
  6640. /**
  6641. * 克隆。
  6642. * @param destObject 克隆源。
  6643. */
  6644. cloneTo(destObject:any):void;
  6645. /**
  6646. * 克隆。
  6647. * @return 克隆副本。
  6648. */
  6649. clone():any;
  6650. }
  6651. }
  6652. declare module laya.d3.core.pixelLine {
  6653. /**
  6654. * <code>PixelLineData</code> 类用于表示线数据。
  6655. */
  6656. class PixelLineData {
  6657. startPosition:laya.d3.math.Vector3;
  6658. endPosition:laya.d3.math.Vector3;
  6659. startColor:laya.d3.math.Color;
  6660. endColor:laya.d3.math.Color;
  6661. /**
  6662. * 克隆。
  6663. * @param destObject 克隆源。
  6664. */
  6665. cloneTo(destObject:PixelLineData):void;
  6666. }
  6667. }
  6668. declare module laya.d3.core.pixelLine {
  6669. /**
  6670. * <code>PixelLineFilter</code> 类用于线过滤器。
  6671. */
  6672. class PixelLineFilter extends laya.d3.core.GeometryElement {
  6673. /**
  6674. * @private
  6675. */
  6676. private static _tempVector0:any;
  6677. /**
  6678. * @private
  6679. */
  6680. private static _tempVector1:any;
  6681. constructor(owner:laya.d3.core.pixelLine.PixelLineSprite3D,maxLineCount:number);
  6682. /**
  6683. * {@inheritDoc PixelLineFilter._getType}
  6684. * @override
  6685. */
  6686. _getType():number;
  6687. /**
  6688. * 获取线段数据
  6689. * @return 线段数据。
  6690. */
  6691. _getLineData(index:number,out:laya.d3.core.pixelLine.PixelLineData):void;
  6692. /**
  6693. * @inheritDoc
  6694. * @override
  6695. */
  6696. destroy():void;
  6697. }
  6698. }
  6699. declare module laya.d3.core.pixelLine {
  6700. /**
  6701. * <code>PixelLineMaterial</code> 类用于实现像素线材质。
  6702. */
  6703. class PixelLineMaterial extends laya.d3.core.material.BaseMaterial {
  6704. static COLOR:number;
  6705. /**
  6706. * 默认材质,禁止修改
  6707. */
  6708. static defaultMaterial:PixelLineMaterial;
  6709. static CULL:number;
  6710. static BLEND:number;
  6711. static BLEND_SRC:number;
  6712. static BLEND_DST:number;
  6713. static DEPTH_TEST:number;
  6714. static DEPTH_WRITE:number;
  6715. /**
  6716. * 获取颜色。
  6717. * @return 颜色。
  6718. */
  6719. /**
  6720. * 设置颜色。
  6721. * @param value 颜色。
  6722. */
  6723. color:laya.d3.math.Vector4;
  6724. /**
  6725. * 设置是否写入深度。
  6726. * @param value 是否写入深度。
  6727. */
  6728. /**
  6729. * 获取是否写入深度。
  6730. * @return 是否写入深度。
  6731. */
  6732. depthWrite:boolean;
  6733. /**
  6734. * 设置剔除方式。
  6735. * @param value 剔除方式。
  6736. */
  6737. /**
  6738. * 获取剔除方式。
  6739. * @return 剔除方式。
  6740. */
  6741. cull:number;
  6742. /**
  6743. * 设置混合方式。
  6744. * @param value 混合方式。
  6745. */
  6746. /**
  6747. * 获取混合方式。
  6748. * @return 混合方式。
  6749. */
  6750. blend:number;
  6751. /**
  6752. * 设置混合源。
  6753. * @param value 混合源
  6754. */
  6755. /**
  6756. * 获取混合源。
  6757. * @return 混合源。
  6758. */
  6759. blendSrc:number;
  6760. /**
  6761. * 设置混合目标。
  6762. * @param value 混合目标
  6763. */
  6764. /**
  6765. * 获取混合目标。
  6766. * @return 混合目标。
  6767. */
  6768. blendDst:number;
  6769. /**
  6770. * 设置深度测试方式。
  6771. * @param value 深度测试方式
  6772. */
  6773. /**
  6774. * 获取深度测试方式。
  6775. * @return 深度测试方式。
  6776. */
  6777. depthTest:number;
  6778. constructor();
  6779. }
  6780. }
  6781. declare module laya.d3.core.pixelLine {
  6782. /**
  6783. * <code>PixelLineRenderer</code> 类用于线渲染器。
  6784. */
  6785. class PixelLineRenderer extends laya.d3.core.render.BaseRender {
  6786. constructor(owner:laya.d3.core.pixelLine.PixelLineSprite3D);
  6787. }
  6788. }
  6789. declare module laya.d3.core.pixelLine {
  6790. /**
  6791. * <code>PixelLineSprite3D</code> 类用于像素线渲染精灵。
  6792. */
  6793. class PixelLineSprite3D extends laya.d3.core.RenderableSprite3D {
  6794. /**
  6795. * 获取最大线数量
  6796. * @return 最大线数量。
  6797. */
  6798. /**
  6799. * 设置最大线数量
  6800. * @param value 最大线数量。
  6801. */
  6802. maxLineCount:number;
  6803. /**
  6804. * 获取线数量。
  6805. * @return 线段数量。
  6806. */
  6807. /**
  6808. * 设置获取线数量。
  6809. * @param value 线段数量。
  6810. */
  6811. lineCount:number;
  6812. /**
  6813. * 获取line渲染器。
  6814. * @return line渲染器。
  6815. */
  6816. readonly pixelLineRenderer:laya.d3.core.pixelLine.PixelLineRenderer;
  6817. /**
  6818. * 创建一个 <code>PixelLineSprite3D</code> 实例。
  6819. * @param maxCount 最大线段数量。
  6820. * @param name 名字。
  6821. */
  6822. constructor(maxCount?:number,name?:string);
  6823. /**
  6824. * @inheritDoc
  6825. */
  6826. _changeRenderObjects(sender:laya.d3.core.pixelLine.PixelLineRenderer,index:number,material:laya.d3.core.material.BaseMaterial):void;
  6827. /**
  6828. * 增加一条线。
  6829. * @param startPosition 初始点位置
  6830. * @param endPosition 结束点位置
  6831. * @param startColor 初始点颜色
  6832. * @param endColor 结束点颜色
  6833. */
  6834. addLine(startPosition:laya.d3.math.Vector3,endPosition:laya.d3.math.Vector3,startColor:laya.d3.math.Color,endColor:laya.d3.math.Color):void;
  6835. /**
  6836. * 添加多条线段。
  6837. * @param lines 线段数据
  6838. */
  6839. addLines(lines:laya.d3.core.pixelLine.PixelLineData[]):void;
  6840. /**
  6841. * 移除一条线段。
  6842. * @param index 索引。
  6843. */
  6844. removeLine(index:number):void;
  6845. /**
  6846. * 更新线
  6847. * @param index 索引
  6848. * @param startPosition 初始点位置
  6849. * @param endPosition 结束点位置
  6850. * @param startColor 初始点颜色
  6851. * @param endColor 结束点颜色
  6852. */
  6853. setLine(index:number,startPosition:laya.d3.math.Vector3,endPosition:laya.d3.math.Vector3,startColor:laya.d3.math.Color,endColor:laya.d3.math.Color):void;
  6854. /**
  6855. * 获取线段数据
  6856. * @param out 线段数据。
  6857. */
  6858. getLine(index:number,out:laya.d3.core.pixelLine.PixelLineData):void;
  6859. /**
  6860. * 清除所有线段。
  6861. */
  6862. clear():void;
  6863. }
  6864. }
  6865. declare module laya.d3.core.pixelLine {
  6866. /**
  6867. * ...
  6868. * @author
  6869. */
  6870. class PixelLineVertex {
  6871. private static _vertexDeclaration:any;
  6872. static readonly vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  6873. readonly vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  6874. constructor();
  6875. }
  6876. }
  6877. declare module laya.d3.core {
  6878. /**
  6879. * <code>QuaternionKeyframe</code> 类用于创建四元数关键帧实例。
  6880. */
  6881. class QuaternionKeyframe extends laya.d3.core.Keyframe {
  6882. inTangent:laya.d3.math.Vector4;
  6883. outTangent:laya.d3.math.Vector4;
  6884. value:laya.d3.math.Quaternion;
  6885. /**
  6886. * 创建一个 <code>QuaternionKeyframe</code> 实例。
  6887. */
  6888. constructor();
  6889. /**
  6890. * 克隆。
  6891. * @param destObject 克隆源。
  6892. * @override
  6893. */
  6894. cloneTo(dest:any):void;
  6895. }
  6896. }
  6897. declare module laya.d3.core.render {
  6898. /**
  6899. * <code>Render</code> 类用于渲染器的父类,抽象类不允许实例。
  6900. */
  6901. class BaseRender extends laya.events.EventDispatcher implements laya.resource.ISingletonElement,laya.d3.core.scene.IOctreeObject {
  6902. _supportOctree:boolean;
  6903. /**
  6904. * 排序矫正值。
  6905. */
  6906. sortingFudge:number;
  6907. /**
  6908. * 获取唯一标识ID,通常用于识别。
  6909. */
  6910. readonly id:number;
  6911. /**
  6912. * 获取光照贴图的索引。
  6913. * @return 光照贴图的索引。
  6914. */
  6915. /**
  6916. * 设置光照贴图的索引。
  6917. * @param value 光照贴图的索引。
  6918. */
  6919. lightmapIndex:number;
  6920. /**
  6921. * 获取光照贴图的缩放和偏移。
  6922. * @return 光照贴图的缩放和偏移。
  6923. */
  6924. /**
  6925. * 设置光照贴图的缩放和偏移。
  6926. * @param 光照贴图的缩放和偏移 。
  6927. */
  6928. lightmapScaleOffset:laya.d3.math.Vector4;
  6929. /**
  6930. * 获取是否可用。
  6931. * @return 是否可用。
  6932. */
  6933. /**
  6934. * 设置是否可用。
  6935. * @param value 是否可用。
  6936. */
  6937. enable:boolean;
  6938. /**
  6939. * 返回第一个实例材质,第一次使用会拷贝实例对象。
  6940. * @return 第一个实例材质。
  6941. */
  6942. /**
  6943. * 设置第一个实例材质。
  6944. * @param value 第一个实例材质。
  6945. */
  6946. material:laya.d3.core.material.BaseMaterial;
  6947. /**
  6948. * 获取潜拷贝实例材质列表,第一次使用会拷贝实例对象。
  6949. * @return 浅拷贝实例材质列表。
  6950. */
  6951. /**
  6952. * 设置实例材质列表。
  6953. * @param value 实例材质列表。
  6954. */
  6955. materials:laya.d3.core.material.BaseMaterial[];
  6956. /**
  6957. * 返回第一个材质。
  6958. * @return 第一个材质。
  6959. */
  6960. /**
  6961. * 设置第一个材质。
  6962. * @param value 第一个材质。
  6963. */
  6964. sharedMaterial:laya.d3.core.material.BaseMaterial;
  6965. /**
  6966. * 获取浅拷贝材质列表。
  6967. * @return 浅拷贝材质列表。
  6968. */
  6969. /**
  6970. * 设置材质列表。
  6971. * @param value 材质列表。
  6972. */
  6973. sharedMaterials:laya.d3.core.material.BaseMaterial[];
  6974. /**
  6975. * 获取包围盒,只读,不允许修改其值。
  6976. * @return 包围盒。
  6977. */
  6978. readonly bounds:laya.d3.core.Bounds;
  6979. /**
  6980. * 设置是否接收阴影属性
  6981. */
  6982. /**
  6983. * 获得是否接收阴影属性
  6984. */
  6985. receiveShadow:boolean;
  6986. /**
  6987. * 获取是否产生阴影。
  6988. * @return 是否产生阴影。
  6989. */
  6990. /**
  6991. * 设置是否产生阴影。
  6992. * @param value 是否产生阴影。
  6993. */
  6994. castShadow:boolean;
  6995. /**
  6996. * 是否是静态的一部分。
  6997. */
  6998. readonly isPartOfStaticBatch:boolean;
  6999. /**
  7000. */
  7001. _getOctreeNode():laya.d3.core.scene.BoundsOctreeNode;
  7002. /**
  7003. */
  7004. _setOctreeNode(value:laya.d3.core.scene.BoundsOctreeNode):void;
  7005. /**
  7006. */
  7007. _getIndexInMotionList():number;
  7008. /**
  7009. */
  7010. _setIndexInMotionList(value:number):void;
  7011. /**
  7012. * [实现ISingletonElement接口]
  7013. */
  7014. _getIndexInList():number;
  7015. /**
  7016. * [实现ISingletonElement接口]
  7017. */
  7018. _setIndexInList(index:number):void;
  7019. /**
  7020. * 标记为非静态,静态合并后可用于取消静态限制。
  7021. */
  7022. markAsUnStatic():void;
  7023. }
  7024. }
  7025. declare module laya.d3.core.render {
  7026. /**
  7027. * <code>BloomEffect</code> 类用于创建泛光效果。
  7028. */
  7029. class BloomEffect extends laya.d3.core.render.PostProcessEffect {
  7030. /**
  7031. * 限制泛光像素的数量,该值在伽马空间。
  7032. */
  7033. clamp:number;
  7034. /**
  7035. * 泛光颜色。
  7036. */
  7037. color:laya.d3.math.Color;
  7038. /**
  7039. * 是否开启快速模式。该模式通过降低质量来提升性能。
  7040. */
  7041. fastMode:boolean;
  7042. /**
  7043. * 镜头污渍纹路,用于为泛光特效增加污渍灰尘效果
  7044. */
  7045. dirtTexture:laya.resource.Texture2D;
  7046. /**
  7047. * 获取泛光过滤器强度,最小值为0。
  7048. * @return 强度。
  7049. */
  7050. /**
  7051. * 设置泛光过滤器强度,最小值为0。
  7052. * @param value 强度。
  7053. */
  7054. intensity:number;
  7055. /**
  7056. * 设置泛光阈值,在该阈值亮度以下的像素会被过滤掉,该值在伽马空间。
  7057. * @return 阈值。
  7058. */
  7059. /**
  7060. * 获取泛光阈值,在该阈值亮度以下的像素会被过滤掉,该值在伽马空间。
  7061. * @param value 阈值。
  7062. */
  7063. threshold:number;
  7064. /**
  7065. * 获取软膝盖过渡强度,在阈值以下进行渐变过渡(0为完全硬过度,1为完全软过度)。
  7066. * @return 软膝盖值。
  7067. */
  7068. /**
  7069. * 设置软膝盖过渡强度,在阈值以下进行渐变过渡(0为完全硬过度,1为完全软过度)。
  7070. * @param value 软膝盖值。
  7071. */
  7072. softKnee:number;
  7073. /**
  7074. * 获取扩散值,改变泛光的扩散范围,最好使用整数值保证效果,该值会改变内部的迭代次数,范围是1到10。
  7075. * @return 光晕的扩散范围。
  7076. */
  7077. /**
  7078. * 设置扩散值,改变泛光的扩散范围,最好使用整数值保证效果,该值会改变内部的迭代次数,范围是1到10。
  7079. * @param value 光晕的扩散范围。
  7080. */
  7081. diffusion:number;
  7082. /**
  7083. * 获取形变比,通过扭曲泛光产生视觉上形变,负值为垂直扭曲,正值为水平扭曲。
  7084. * @return 形变比。
  7085. */
  7086. /**
  7087. * 设置形变比,通过扭曲泛光产生视觉上形变,负值为垂直扭曲,正值为水平扭曲。
  7088. * @param value 形变比。
  7089. */
  7090. anamorphicRatio:number;
  7091. /**
  7092. * 获取污渍强度。
  7093. * @return 污渍强度。
  7094. */
  7095. /**
  7096. * 设置污渍强度。
  7097. * @param value 污渍强度。
  7098. */
  7099. dirtIntensity:number;
  7100. /**
  7101. * 创建一个 <code>BloomEffect</code> 实例。
  7102. */
  7103. constructor();
  7104. }
  7105. }
  7106. declare module laya.d3.core.render.command {
  7107. /**
  7108. * <code>BlitCMD</code> 类用于创建从一张渲染目标输出到另外一张渲染目标指令。
  7109. */
  7110. class BlitScreenQuadCMD extends laya.d3.core.render.command.Command {
  7111. /**
  7112. */
  7113. static create(source:laya.resource.BaseTexture,dest:laya.d3.resource.RenderTexture,shader?:laya.d3.shader.Shader3D,shaderData?:laya.d3.shader.ShaderData,subShader?:number,screenType?:number):BlitScreenQuadCMD;
  7114. /**
  7115. * @inheritDoc
  7116. * @override
  7117. */
  7118. run():void;
  7119. /**
  7120. * @inheritDoc
  7121. * @override
  7122. */
  7123. recover():void;
  7124. }
  7125. }
  7126. declare module laya.d3.core.render.command {
  7127. /**
  7128. * <code>Command</code> 类用于创建指令。
  7129. */
  7130. class Command {
  7131. /**
  7132. * 创建一个 <code>Command</code> 实例。
  7133. */
  7134. constructor();
  7135. /**
  7136. */
  7137. run():void;
  7138. /**
  7139. */
  7140. recover():void;
  7141. }
  7142. }
  7143. declare module laya.d3.core.render.command {
  7144. /**
  7145. * <code>CommandBuffer</code> 类用于创建命令流。
  7146. */
  7147. class CommandBuffer {
  7148. /**
  7149. * 创建一个 <code>CommandBuffer</code> 实例。
  7150. */
  7151. constructor();
  7152. /**
  7153. * 添加一条通过全屏四边形将源纹理渲染到目标渲染纹理指令。
  7154. * @param source 源纹理。
  7155. * @param dest 目标纹理。
  7156. * @param shader 着色器,如果为null使用内部拷贝着色器,不做任何处理。
  7157. * @param shaderData 着色器数据,如果为null只接收sourceTexture。
  7158. * @param subShader subShader索引,默认值为0。
  7159. */
  7160. blitScreenQuad(source:laya.resource.BaseTexture,dest:laya.d3.resource.RenderTexture,shader?:laya.d3.shader.Shader3D,shaderData?:laya.d3.shader.ShaderData,subShader?:number):void;
  7161. /**
  7162. * 添加一条通过全屏三角形将源纹理渲染到目标渲染纹理指令。
  7163. * @param source 源纹理。
  7164. * @param dest 目标纹理。
  7165. * @param shader 着色器,如果为null使用内部拷贝着色器,不做任何处理。
  7166. * @param shaderData 着色器数据,如果为null只接收sourceTexture。
  7167. * @param subShader subShader索引,默认值为0。
  7168. */
  7169. blitScreenTriangle(source:laya.resource.BaseTexture,dest:laya.d3.resource.RenderTexture,shader?:laya.d3.shader.Shader3D,shaderData?:laya.d3.shader.ShaderData,subShader?:number):void;
  7170. }
  7171. }
  7172. declare module laya.d3.core.render {
  7173. /**
  7174. * <code>PostProcessEffect</code> 类用于创建后期处理渲染效果。
  7175. */
  7176. class PostProcessEffect {
  7177. /**
  7178. * 创建一个 <code>PostProcessEffect</code> 实例。
  7179. */
  7180. constructor();
  7181. }
  7182. }
  7183. declare module laya.d3.core.render {
  7184. /**
  7185. * * <code>PostProcessRenderContext</code> 类用于创建后期处理渲染上下文。
  7186. */
  7187. class PostProcessRenderContext {
  7188. /**
  7189. * 源纹理。
  7190. */
  7191. source:laya.d3.resource.RenderTexture;
  7192. /**
  7193. * 输出纹理。
  7194. */
  7195. destination:laya.d3.resource.RenderTexture;
  7196. /**
  7197. * 渲染相机。
  7198. */
  7199. camera:laya.d3.core.Camera;
  7200. /**
  7201. * 合成着色器数据。
  7202. */
  7203. compositeShaderData:laya.d3.shader.ShaderData;
  7204. /**
  7205. * 后期处理指令流。
  7206. */
  7207. command:laya.d3.core.render.command.CommandBuffer;
  7208. /**
  7209. * 临时纹理数组。
  7210. */
  7211. deferredReleaseTextures:laya.d3.resource.RenderTexture[];
  7212. }
  7213. }
  7214. declare module laya.d3.core.render {
  7215. /**
  7216. * <code>RenderContext3D</code> 类用于实现渲染状态。
  7217. */
  7218. class RenderContext3D {
  7219. /**
  7220. * 渲染区宽度。
  7221. */
  7222. static clientWidth:number;
  7223. /**
  7224. * 渲染区高度。
  7225. */
  7226. static clientHeight:number;
  7227. /**
  7228. * 创建一个 <code>RenderContext3D</code> 实例。
  7229. */
  7230. constructor();
  7231. }
  7232. }
  7233. declare module laya.d3.core.render {
  7234. /**
  7235. * <code>RenderElement</code> 类用于实现渲染元素。
  7236. */
  7237. class RenderElement {
  7238. /**
  7239. * 创建一个 <code>RenderElement</code> 实例。
  7240. */
  7241. constructor();
  7242. }
  7243. }
  7244. declare module laya.d3.core.render {
  7245. /**
  7246. * <code>ScreenQuad</code> 类用于创建全屏四边形。
  7247. */
  7248. class ScreenQuad extends laya.resource.Resource {
  7249. /**
  7250. * 创建一个 <code>ScreenQuad</code> 实例,禁止使用。
  7251. */
  7252. constructor();
  7253. /**
  7254. * @inheritDoc
  7255. * @override
  7256. */
  7257. destroy():void;
  7258. }
  7259. }
  7260. declare module laya.d3.core.render {
  7261. /**
  7262. * <code>ScreenTriangle</code> 类用于创建全屏三角形。
  7263. */
  7264. class ScreenTriangle extends laya.resource.Resource {
  7265. /**
  7266. * 创建一个 <code>ScreenTriangle</code> 实例,禁止使用。
  7267. */
  7268. constructor();
  7269. /**
  7270. * @inheritDoc
  7271. * @override
  7272. */
  7273. destroy():void;
  7274. }
  7275. }
  7276. declare module laya.d3.core {
  7277. /**
  7278. * <code>RenderableSprite3D</code> 类用于可渲染3D精灵的父类,抽象类不允许实例。
  7279. */
  7280. class RenderableSprite3D extends laya.d3.core.Sprite3D {
  7281. /**
  7282. * 精灵级着色器宏定义,接收阴影。
  7283. */
  7284. static SHADERDEFINE_RECEIVE_SHADOW:laya.d3.shader.ShaderDefine;
  7285. /**
  7286. * 精灵级着色器宏定义,光照贴图便宜和缩放。
  7287. */
  7288. static SHADERDEFINE_SCALEOFFSETLIGHTINGMAPUV:laya.d3.shader.ShaderDefine;
  7289. /**
  7290. * 精灵级着色器宏定义,光照贴图。
  7291. */
  7292. static SAHDERDEFINE_LIGHTMAP:laya.d3.shader.ShaderDefine;
  7293. /**
  7294. * 着色器变量名,光照贴图缩放和偏移。
  7295. */
  7296. static LIGHTMAPSCALEOFFSET:number;
  7297. /**
  7298. * 着色器变量名,光照贴图。
  7299. */
  7300. static LIGHTMAP:number;
  7301. /**
  7302. * 拾取颜色。
  7303. */
  7304. static PICKCOLOR:number;
  7305. pickColor:laya.d3.math.Vector4;
  7306. /**
  7307. * 创建一个 <code>RenderableSprite3D</code> 实例。
  7308. */
  7309. constructor(name:string);
  7310. /**
  7311. * @inheritDoc
  7312. * @override
  7313. */
  7314. protected _onInActive():void;
  7315. /**
  7316. * @inheritDoc
  7317. * @override
  7318. */
  7319. protected _onActive():void;
  7320. /**
  7321. * @inheritDoc
  7322. * @override
  7323. */
  7324. protected _onActiveInScene():void;
  7325. /**
  7326. * @inheritDoc
  7327. * @override
  7328. */
  7329. destroy(destroyChild?:boolean):void;
  7330. }
  7331. }
  7332. declare module laya.d3.core.scene {
  7333. /**
  7334. * <code>BoundsOctree</code> 类用于创建八叉树。
  7335. */
  7336. class BoundsOctree {
  7337. /**
  7338. * 创建一个 <code>BoundsOctree</code> 实例。
  7339. * @param initialWorldSize 八叉树尺寸
  7340. * @param initialWorldPos 八叉树中心
  7341. * @param minNodeSize 节点最小尺寸
  7342. * @param loosenessVal 松散值
  7343. */
  7344. constructor(initialWorldSize:number,initialWorldPos:laya.d3.math.Vector3,minNodeSize:number,looseness:number);
  7345. /**
  7346. * 添加物体
  7347. * @param object
  7348. */
  7349. add(object:laya.d3.core.scene.IOctreeObject):void;
  7350. /**
  7351. * 移除物体
  7352. * @return 是否成功
  7353. */
  7354. remove(object:laya.d3.core.scene.IOctreeObject):boolean;
  7355. /**
  7356. * 更新物体
  7357. */
  7358. update(object:laya.d3.core.scene.IOctreeObject):boolean;
  7359. /**
  7360. * 如果可能则收缩根节点。
  7361. */
  7362. shrinkRootIfPossible():void;
  7363. /**
  7364. * 添加运动物体。
  7365. * @param 运动物体 。
  7366. */
  7367. addMotionObject(object:laya.d3.core.scene.IOctreeObject):void;
  7368. /**
  7369. * 移除运动物体。
  7370. * @param 运动物体 。
  7371. */
  7372. removeMotionObject(object:laya.d3.core.scene.IOctreeObject):void;
  7373. /**
  7374. * 更新所有运动物体。
  7375. */
  7376. updateMotionObjects():void;
  7377. /**
  7378. * 获取是否与指定包围盒相交。
  7379. * @param checkBound AABB包围盒。
  7380. * @return 是否相交。
  7381. */
  7382. isCollidingWithBoundBox(checkBounds:laya.d3.math.BoundBox):boolean;
  7383. /**
  7384. * 获取是否与指定射线相交。
  7385. * @param ray 射线。
  7386. * @param maxDistance 射线的最大距离。
  7387. * @return 是否相交。
  7388. */
  7389. isCollidingWithRay(ray:laya.d3.math.Ray,maxDistance?:number):boolean;
  7390. /**
  7391. * 获取与指定包围盒相交的物体列表。
  7392. * @param checkBound AABB包围盒。
  7393. * @param result 相交物体列表
  7394. */
  7395. getCollidingWithBoundBox(checkBound:laya.d3.math.BoundBox,result:any[]):void;
  7396. /**
  7397. * 获取与指定射线相交的的物理列表。
  7398. * @param ray 射线。
  7399. * @param result 相交物体列表。
  7400. * @param maxDistance 射线的最大距离。
  7401. */
  7402. getCollidingWithRay(ray:laya.d3.math.Ray,result:any[],maxDistance?:number):void;
  7403. /**
  7404. * 获取与指定视锥相交的的物理列表。
  7405. * @param 渲染上下文 。
  7406. */
  7407. getCollidingWithFrustum(context:laya.d3.core.render.RenderContext3D,shader:laya.d3.shader.Shader3D,replacementTag:string):void;
  7408. /**
  7409. * 获取最大包围盒
  7410. * @return 最大包围盒
  7411. */
  7412. getMaxBounds():laya.d3.math.BoundBox;
  7413. }
  7414. }
  7415. declare module laya.d3.core.scene {
  7416. /**
  7417. * <code>BoundsOctreeNode</code> 类用于创建八叉树节点。
  7418. */
  7419. class BoundsOctreeNode {
  7420. /**
  7421. * 创建一个 <code>BoundsOctreeNode</code> 实例。
  7422. * @param octree 所属八叉树。
  7423. * @param parent 父节点。
  7424. * @param baseLength 节点基本长度。
  7425. * @param center 节点的中心位置。
  7426. */
  7427. constructor(octree:laya.d3.core.scene.BoundsOctree,parent:BoundsOctreeNode,baseLength:number,center:laya.d3.math.Vector3);
  7428. /**
  7429. * 添加指定物体。
  7430. * @param object 指定物体。
  7431. */
  7432. add(object:laya.d3.core.scene.IOctreeObject):boolean;
  7433. /**
  7434. * 移除指定物体。
  7435. * @param obejct 指定物体。
  7436. * @return 是否成功。
  7437. */
  7438. remove(object:laya.d3.core.scene.IOctreeObject):boolean;
  7439. /**
  7440. * 更新制定物体,
  7441. * @param obejct 指定物体。
  7442. * @return 是否成功。
  7443. */
  7444. update(object:laya.d3.core.scene.IOctreeObject):boolean;
  7445. /**
  7446. * 收缩八叉树节点。
  7447. * -所有物体都在根节点的八分之一区域
  7448. * -该节点无子节点或有子节点但1/8的子节点不包含物体
  7449. * @param minLength 最小尺寸。
  7450. * @return 新的根节点。
  7451. */
  7452. shrinkIfPossible(minLength:number):BoundsOctreeNode;
  7453. /**
  7454. * 检查该节点和其子节点是否包含任意物体。
  7455. * @return 是否包含任意物体。
  7456. */
  7457. hasAnyObjects():boolean;
  7458. /**
  7459. * 获取与指定包围盒相交的物体列表。
  7460. * @param checkBound AABB包围盒。
  7461. * @param result 相交物体列表
  7462. */
  7463. getCollidingWithBoundBox(checkBound:laya.d3.math.BoundBox,result:any[]):void;
  7464. /**
  7465. * 获取与指定射线相交的的物理列表。
  7466. * @param ray 射线。
  7467. * @param result 相交物体列表。
  7468. * @param maxDistance 射线的最大距离。
  7469. */
  7470. getCollidingWithRay(ray:laya.d3.math.Ray,result:any[],maxDistance?:number):void;
  7471. /**
  7472. * 获取与指定视锥相交的的物理列表。
  7473. * @param ray 射线。.
  7474. * @param result 相交物体列表。
  7475. */
  7476. getCollidingWithFrustum(context:laya.d3.core.render.RenderContext3D,customShader:laya.d3.shader.Shader3D,replacementTag:string):void;
  7477. /**
  7478. * 获取是否与指定包围盒相交。
  7479. * @param checkBound AABB包围盒。
  7480. * @return 是否相交。
  7481. */
  7482. isCollidingWithBoundBox(checkBound:laya.d3.math.BoundBox):boolean;
  7483. /**
  7484. * 获取是否与指定射线相交。
  7485. * @param ray 射线。
  7486. * @param maxDistance 射线的最大距离。
  7487. * @return 是否相交。
  7488. */
  7489. isCollidingWithRay(ray:laya.d3.math.Ray,maxDistance?:number):boolean;
  7490. /**
  7491. * 获取包围盒。
  7492. */
  7493. getBound():laya.d3.math.BoundBox;
  7494. }
  7495. }
  7496. declare module laya.d3.core.scene {
  7497. /**
  7498. * <code>IOctreeObject</code> 类用于实现八叉树物体规范。
  7499. */
  7500. interface IOctreeObject{
  7501. _getOctreeNode():laya.d3.core.scene.BoundsOctreeNode;
  7502. _setOctreeNode(value:laya.d3.core.scene.BoundsOctreeNode):void;
  7503. _getIndexInMotionList():number;
  7504. _setIndexInMotionList(value:number):void;
  7505. bounds:laya.d3.core.Bounds;
  7506. }
  7507. }
  7508. declare module laya.d3.core.scene {
  7509. /**
  7510. * <code>OctreeMotionList</code> 类用于实现物理更新队列。
  7511. */
  7512. class OctreeMotionList extends laya.d3.component.SingletonList<laya.d3.core.scene.IOctreeObject> {
  7513. /**
  7514. * 创建一个新的 <code>OctreeMotionList</code> 实例。
  7515. */
  7516. constructor();
  7517. }
  7518. }
  7519. declare module laya.d3.core.scene {
  7520. /**
  7521. * <code>Scene3D</code> 类用于实现场景。
  7522. */
  7523. class Scene3D extends laya.display.Sprite implements laya.webgl.submit.ISubmit,laya.resource.ICreateResource {
  7524. /**
  7525. * Hierarchy资源。
  7526. */
  7527. static HIERARCHY:string;
  7528. /**
  7529. * 是否开启八叉树裁剪。
  7530. */
  7531. static octreeCulling:boolean;
  7532. /**
  7533. * 八叉树初始化尺寸。
  7534. */
  7535. static octreeInitialSize:number;
  7536. /**
  7537. * 八叉树初始化中心。
  7538. */
  7539. static octreeInitialCenter:laya.d3.math.Vector3;
  7540. /**
  7541. * 八叉树最小尺寸。
  7542. */
  7543. static octreeMinNodeSize:number;
  7544. /**
  7545. * 八叉树松散值。
  7546. */
  7547. static octreeLooseness:number;
  7548. static REFLECTIONMODE_SKYBOX:number;
  7549. static REFLECTIONMODE_CUSTOM:number;
  7550. static FOGCOLOR:number;
  7551. static FOGSTART:number;
  7552. static FOGRANGE:number;
  7553. static DIRECTIONLIGHTCOUNT:number;
  7554. static LIGHTBUFFER:number;
  7555. static CLUSTERBUFFER:number;
  7556. static SUNLIGHTDIRECTION:number;
  7557. static SUNLIGHTDIRCOLOR:number;
  7558. static LIGHTDIRECTION:number;
  7559. static LIGHTDIRCOLOR:number;
  7560. static POINTLIGHTPOS:number;
  7561. static POINTLIGHTRANGE:number;
  7562. static POINTLIGHTATTENUATION:number;
  7563. static POINTLIGHTCOLOR:number;
  7564. static SPOTLIGHTPOS:number;
  7565. static SPOTLIGHTDIRECTION:number;
  7566. static SPOTLIGHTSPOTANGLE:number;
  7567. static SPOTLIGHTRANGE:number;
  7568. static SPOTLIGHTCOLOR:number;
  7569. static SHADOWDISTANCE:number;
  7570. static SHADOWLIGHTVIEWPROJECT:number;
  7571. static SHADOWMAPPCFOFFSET:number;
  7572. static SHADOWMAPTEXTURE1:number;
  7573. static SHADOWMAPTEXTURE2:number;
  7574. static SHADOWMAPTEXTURE3:number;
  7575. static AMBIENTCOLOR:number;
  7576. static REFLECTIONTEXTURE:number;
  7577. static REFLETIONINTENSITY:number;
  7578. static TIME:number;
  7579. /**
  7580. * 加载场景,注意:不缓存。
  7581. * @param url 模板地址。
  7582. * @param complete 完成回调。
  7583. */
  7584. static load(url:string,complete:laya.utils.Handler):void;
  7585. /**
  7586. * 当前创建精灵所属遮罩层。
  7587. */
  7588. currentCreationLayer:number;
  7589. /**
  7590. * 是否启用灯光。
  7591. */
  7592. enableLight:boolean;
  7593. parallelSplitShadowMaps:laya.d3.shadowMap.ParallelSplitShadowMap[];
  7594. private _time:any;
  7595. /**
  7596. * 获取资源的URL地址。
  7597. * @return URL地址。
  7598. */
  7599. readonly url:string;
  7600. /**
  7601. * 获取是否允许雾化。
  7602. * @return 是否允许雾化。
  7603. */
  7604. /**
  7605. * 设置是否允许雾化。
  7606. * @param value 是否允许雾化。
  7607. */
  7608. enableFog:boolean;
  7609. /**
  7610. * 获取雾化颜色。
  7611. * @return 雾化颜色。
  7612. */
  7613. /**
  7614. * 设置雾化颜色。
  7615. * @param value 雾化颜色。
  7616. */
  7617. fogColor:laya.d3.math.Vector3;
  7618. /**
  7619. * 获取雾化起始位置。
  7620. * @return 雾化起始位置。
  7621. */
  7622. /**
  7623. * 设置雾化起始位置。
  7624. * @param value 雾化起始位置。
  7625. */
  7626. fogStart:number;
  7627. /**
  7628. * 获取雾化范围。
  7629. * @return 雾化范围。
  7630. */
  7631. /**
  7632. * 设置雾化范围。
  7633. * @param value 雾化范围。
  7634. */
  7635. fogRange:number;
  7636. /**
  7637. * 获取环境光颜色。
  7638. * @return 环境光颜色。
  7639. */
  7640. /**
  7641. * 设置环境光颜色。
  7642. * @param value 环境光颜色。
  7643. */
  7644. ambientColor:laya.d3.math.Vector3;
  7645. /**
  7646. * 获取天空渲染器。
  7647. * @return 天空渲染器。
  7648. */
  7649. readonly skyRenderer:laya.d3.resource.models.SkyRenderer;
  7650. /**
  7651. * 获取反射贴图。
  7652. * @return 反射贴图。
  7653. */
  7654. /**
  7655. * 设置反射贴图。
  7656. * @param 反射贴图 。
  7657. */
  7658. customReflection:laya.d3.resource.TextureCube;
  7659. /**
  7660. * 获取反射强度。
  7661. * @return 反射强度。
  7662. */
  7663. /**
  7664. * 设置反射强度。
  7665. * @param 反射强度 。
  7666. */
  7667. reflectionIntensity:number;
  7668. /**
  7669. * 获取物理模拟器。
  7670. * @return 物理模拟器。
  7671. */
  7672. readonly physicsSimulation:laya.d3.physics.PhysicsSimulation;
  7673. /**
  7674. * 获取反射模式。
  7675. * @return 反射模式。
  7676. */
  7677. /**
  7678. * 设置反射模式。
  7679. * @param value 反射模式。
  7680. */
  7681. reflectionMode:number;
  7682. /**
  7683. * 获取场景时钟。
  7684. * @override
  7685. */
  7686. /**
  7687. * 设置场景时钟。
  7688. */
  7689. timer:laya.utils.Timer;
  7690. /**
  7691. * 获取输入。
  7692. * @return 输入。
  7693. */
  7694. readonly input:laya.d3.Input3D;
  7695. /**
  7696. * 创建一个 <code>Scene3D</code> 实例。
  7697. */
  7698. constructor();
  7699. /**
  7700. */
  7701. _setCreateURL(url:string):void;
  7702. /**
  7703. * @inheritDoc
  7704. * @override
  7705. */
  7706. protected _onActive():void;
  7707. /**
  7708. * @inheritDoc
  7709. * @override
  7710. */
  7711. protected _onInActive():void;
  7712. /**
  7713. * 设置光照贴图。
  7714. * @param value 光照贴图。
  7715. */
  7716. setlightmaps(value:laya.resource.Texture2D[]):void;
  7717. /**
  7718. * 获取光照贴图浅拷贝列表。
  7719. * @return 获取光照贴图浅拷贝列表。
  7720. */
  7721. getlightmaps():laya.resource.Texture2D[];
  7722. /**
  7723. * @inheritDoc
  7724. * @override
  7725. */
  7726. destroy(destroyChild?:boolean):void;
  7727. /**
  7728. */
  7729. renderSubmit():number;
  7730. /**
  7731. */
  7732. getRenderType():number;
  7733. /**
  7734. */
  7735. releaseRender():void;
  7736. /**
  7737. */
  7738. reUse(context:laya.resource.Context,pos:number):number;
  7739. }
  7740. }
  7741. declare module laya.d3.core.scene {
  7742. class Scene3DShaderDeclaration {
  7743. }
  7744. }
  7745. declare module laya.d3.core.scene {
  7746. /**
  7747. * ...
  7748. * @author ...
  7749. */
  7750. class SceneManager {
  7751. constructor();
  7752. }
  7753. }
  7754. declare module laya.d3.core {
  7755. /**
  7756. * <code>SkinMeshRenderer</code> 类用于蒙皮渲染器。
  7757. */
  7758. class SkinnedMeshRenderer extends laya.d3.core.MeshRenderer {
  7759. /**
  7760. * 获取局部边界。
  7761. * @return 边界。
  7762. */
  7763. /**
  7764. * 设置局部边界。
  7765. * @param value 边界
  7766. */
  7767. localBounds:laya.d3.core.Bounds;
  7768. /**
  7769. * 获取根节点。
  7770. * @return 根节点。
  7771. */
  7772. /**
  7773. * 设置根节点。
  7774. * @param value 根节点。
  7775. */
  7776. rootBone:laya.d3.core.Sprite3D;
  7777. /**
  7778. * 用于蒙皮的骨骼。
  7779. */
  7780. readonly bones:laya.d3.core.Sprite3D[];
  7781. /**
  7782. * 创建一个 <code>SkinnedMeshRender</code> 实例。
  7783. */
  7784. constructor(owner:laya.d3.core.RenderableSprite3D);
  7785. private _computeSkinnedData:any;
  7786. /**
  7787. * @override 获取包围盒。
  7788. * @return 包围盒。
  7789. */
  7790. readonly bounds:laya.d3.core.Bounds;
  7791. }
  7792. }
  7793. declare module laya.d3.core {
  7794. /**
  7795. * <code>SkinnedMeshSprite3D</code> 类用于创建网格。
  7796. */
  7797. class SkinnedMeshSprite3D extends laya.d3.core.RenderableSprite3D {
  7798. /**
  7799. * 着色器变量名,蒙皮动画。
  7800. */
  7801. static BONES:number;
  7802. /**
  7803. * 获取网格过滤器。
  7804. * @return 网格过滤器。
  7805. */
  7806. readonly meshFilter:laya.d3.core.MeshFilter;
  7807. /**
  7808. * 获取网格渲染器。
  7809. * @return 网格渲染器。
  7810. */
  7811. readonly skinnedMeshRenderer:laya.d3.core.SkinnedMeshRenderer;
  7812. /**
  7813. * 创建一个 <code>MeshSprite3D</code> 实例。
  7814. * @param mesh 网格,同时会加载网格所用默认材质。
  7815. * @param name 名字。
  7816. */
  7817. constructor(mesh?:laya.d3.resource.models.Mesh,name?:string);
  7818. /**
  7819. * @inheritDoc
  7820. * @override
  7821. */
  7822. destroy(destroyChild?:boolean):void;
  7823. }
  7824. }
  7825. declare module laya.d3.core {
  7826. class SkinnedMeshSprite3DShaderDeclaration {
  7827. /**
  7828. * 精灵级着色器宏定义,蒙皮动画。
  7829. */
  7830. static SHADERDEFINE_BONE:laya.d3.shader.ShaderDefine;
  7831. }
  7832. }
  7833. declare module laya.d3.core {
  7834. /**
  7835. * <code>Sprite3D</code> 类用于实现3D精灵。
  7836. */
  7837. class Sprite3D extends laya.display.Node implements laya.resource.ICreateResource {
  7838. /**
  7839. * Hierarchy资源。
  7840. */
  7841. static HIERARCHY:string;
  7842. /**
  7843. * 创建精灵的克隆实例。
  7844. * @param original 原始精灵。
  7845. * @param parent 父节点。
  7846. * @param worldPositionStays 是否保持自身世界变换。
  7847. * @param position 世界位置,worldPositionStays为false时生效。
  7848. * @param rotation 世界旋转,worldPositionStays为false时生效。
  7849. * @return 克隆实例。
  7850. */
  7851. static instantiate(original:Sprite3D,parent?:laya.display.Node,worldPositionStays?:boolean,position?:laya.d3.math.Vector3,rotation?:laya.d3.math.Quaternion):Sprite3D;
  7852. /**
  7853. * 加载网格模板。
  7854. * @param url 模板地址。
  7855. * @param complete 完成回掉。
  7856. */
  7857. static load(url:string,complete:laya.utils.Handler):void;
  7858. /**
  7859. * 获取唯一标识ID。
  7860. * @return 唯一标识ID。
  7861. */
  7862. readonly id:number;
  7863. /**
  7864. * 获取蒙版。
  7865. * @return 蒙版。
  7866. */
  7867. /**
  7868. * 设置蒙版。
  7869. * @param value 蒙版。
  7870. */
  7871. layer:number;
  7872. /**
  7873. * 获取资源的URL地址。
  7874. * @return URL地址。
  7875. */
  7876. readonly url:string;
  7877. /**
  7878. * 获取是否为静态。
  7879. * @return 是否为静态。
  7880. */
  7881. readonly isStatic:boolean;
  7882. /**
  7883. * 获取精灵变换。
  7884. * @return 精灵变换。
  7885. */
  7886. readonly transform:laya.d3.core.Transform3D;
  7887. /**
  7888. * 创建一个 <code>Sprite3D</code> 实例。
  7889. * @param name 精灵名称。
  7890. * @param isStatic 是否为静态。
  7891. */
  7892. constructor(name?:string,isStatic?:boolean);
  7893. /**
  7894. */
  7895. _setCreateURL(url:string):void;
  7896. /**
  7897. * @inheritDoc
  7898. * @override
  7899. */
  7900. protected _onAdded():void;
  7901. /**
  7902. * @inheritDoc
  7903. * @override
  7904. */
  7905. protected _onRemoved():void;
  7906. /**
  7907. * 克隆。
  7908. * @return 克隆副本。
  7909. */
  7910. clone():laya.display.Node;
  7911. /**
  7912. * @inheritDoc
  7913. * @override
  7914. */
  7915. destroy(destroyChild?:boolean):void;
  7916. }
  7917. }
  7918. declare module laya.d3.core {
  7919. class TextureMode {
  7920. /**
  7921. * 拉伸模式。
  7922. */
  7923. static Stretch:number;
  7924. /**
  7925. * 平铺模式。
  7926. */
  7927. static Tile:number;
  7928. }
  7929. }
  7930. declare module laya.d3.core.trail {
  7931. enum TrailAlignment {
  7932. View = 0,
  7933. TransformZ = 1
  7934. }
  7935. }
  7936. declare module laya.d3.core.trail {
  7937. /**
  7938. * <code>TrailFilter</code> 类用于创建拖尾过滤器。
  7939. */
  7940. class TrailFilter {
  7941. static CURTIME:number;
  7942. static LIFETIME:number;
  7943. static WIDTHCURVE:number;
  7944. static WIDTHCURVEKEYLENGTH:number;
  7945. _owner:laya.d3.core.trail.TrailSprite3D;
  7946. _lastPosition:laya.d3.math.Vector3;
  7947. _curtime:number;
  7948. /**
  7949. * 轨迹准线。
  7950. */
  7951. alignment:number;
  7952. /**
  7953. * 获取淡出时间。
  7954. * @return 淡出时间。
  7955. */
  7956. /**
  7957. * 设置淡出时间。
  7958. * @param value 淡出时间。
  7959. */
  7960. time:number;
  7961. /**
  7962. * 获取新旧顶点之间最小距离。
  7963. * @return 新旧顶点之间最小距离。
  7964. */
  7965. /**
  7966. * 设置新旧顶点之间最小距离。
  7967. * @param value 新旧顶点之间最小距离。
  7968. */
  7969. minVertexDistance:number;
  7970. /**
  7971. * 获取宽度倍数。
  7972. * @return 宽度倍数。
  7973. */
  7974. /**
  7975. * 设置宽度倍数。
  7976. * @param value 宽度倍数。
  7977. */
  7978. widthMultiplier:number;
  7979. /**
  7980. * 获取宽度曲线。
  7981. * @return 宽度曲线。
  7982. */
  7983. /**
  7984. * 设置宽度曲线。
  7985. * @param value 宽度曲线。
  7986. */
  7987. widthCurve:laya.d3.core.FloatKeyframe[];
  7988. /**
  7989. * 获取颜色梯度。
  7990. * @return 颜色梯度。
  7991. */
  7992. /**
  7993. * 设置颜色梯度。
  7994. * @param value 颜色梯度。
  7995. */
  7996. colorGradient:laya.d3.core.Gradient;
  7997. /**
  7998. * 获取纹理模式。
  7999. * @return 纹理模式。
  8000. */
  8001. /**
  8002. * 设置纹理模式。
  8003. * @param value 纹理模式。
  8004. */
  8005. textureMode:number;
  8006. constructor(owner:laya.d3.core.trail.TrailSprite3D);
  8007. /**
  8008. * 轨迹准线_面向摄像机。
  8009. */
  8010. static ALIGNMENT_VIEW:number;
  8011. /**
  8012. * 轨迹准线_面向运动方向。
  8013. */
  8014. static ALIGNMENT_TRANSFORM_Z:number;
  8015. }
  8016. }
  8017. declare module laya.d3.core.trail {
  8018. /**
  8019. * <code>TrailGeometry</code> 类用于创建拖尾渲染单元。
  8020. */
  8021. class TrailGeometry extends laya.d3.core.GeometryElement {
  8022. /**
  8023. * 轨迹准线_面向摄像机。
  8024. */
  8025. static ALIGNMENT_VIEW:number;
  8026. /**
  8027. * 轨迹准线_面向运动方向。
  8028. */
  8029. static ALIGNMENT_TRANSFORM_Z:number;
  8030. private tmpColor:any;
  8031. /**
  8032. * @private
  8033. */
  8034. private _disappearBoundsMode:any;
  8035. constructor(owner:laya.d3.core.trail.TrailFilter);
  8036. /**
  8037. * @inheritDoc
  8038. * @override
  8039. */
  8040. _getType():number;
  8041. /**
  8042. * @inheritDoc
  8043. * @override
  8044. */
  8045. destroy():void;
  8046. }
  8047. }
  8048. declare module laya.d3.core.trail {
  8049. /**
  8050. * <code>TrailMaterial</code> 类用于实现拖尾材质。
  8051. */
  8052. class TrailMaterial extends laya.d3.core.material.BaseMaterial {
  8053. /**
  8054. * 渲染状态_透明混合。
  8055. */
  8056. static RENDERMODE_ALPHABLENDED:number;
  8057. /**
  8058. * 渲染状态_加色法混合。
  8059. */
  8060. static RENDERMODE_ADDTIVE:number;
  8061. /**
  8062. * 默认材质,禁止修改
  8063. */
  8064. static defaultMaterial:TrailMaterial;
  8065. static SHADERDEFINE_MAINTEXTURE:laya.d3.shader.ShaderDefine;
  8066. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  8067. static SHADERDEFINE_ADDTIVEFOG:laya.d3.shader.ShaderDefine;
  8068. static MAINTEXTURE:number;
  8069. static TINTCOLOR:number;
  8070. static TILINGOFFSET:number;
  8071. static CULL:number;
  8072. static BLEND:number;
  8073. static BLEND_SRC:number;
  8074. static BLEND_DST:number;
  8075. static DEPTH_TEST:number;
  8076. static DEPTH_WRITE:number;
  8077. /**
  8078. * 设置渲染模式。
  8079. * @return 渲染模式。
  8080. */
  8081. renderMode:number;
  8082. /**
  8083. * 获取颜色R分量。
  8084. * @return 颜色R分量。
  8085. */
  8086. /**
  8087. * 设置颜色R分量。
  8088. * @param value 颜色R分量。
  8089. */
  8090. colorR:number;
  8091. /**
  8092. * 获取颜色G分量。
  8093. * @return 颜色G分量。
  8094. */
  8095. /**
  8096. * 设置颜色G分量。
  8097. * @param value 颜色G分量。
  8098. */
  8099. colorG:number;
  8100. /**
  8101. * 获取颜色B分量。
  8102. * @return 颜色B分量。
  8103. */
  8104. /**
  8105. * 设置颜色B分量。
  8106. * @param value 颜色B分量。
  8107. */
  8108. colorB:number;
  8109. /**
  8110. * 获取颜色Z分量。
  8111. * @return 颜色Z分量。
  8112. */
  8113. /**
  8114. * 设置颜色alpha分量。
  8115. * @param value 颜色alpha分量。
  8116. */
  8117. colorA:number;
  8118. /**
  8119. * 获取颜色。
  8120. * @return 颜色。
  8121. */
  8122. /**
  8123. * 设置颜色。
  8124. * @param value 颜色。
  8125. */
  8126. color:laya.d3.math.Vector4;
  8127. /**
  8128. * 获取贴图。
  8129. * @return 贴图。
  8130. */
  8131. /**
  8132. * 设置贴图。
  8133. * @param value 贴图。
  8134. */
  8135. texture:laya.resource.BaseTexture;
  8136. /**
  8137. * 获取纹理平铺和偏移X分量。
  8138. * @return 纹理平铺和偏移X分量。
  8139. */
  8140. /**
  8141. * 获取纹理平铺和偏移X分量。
  8142. * @param x 纹理平铺和偏移X分量。
  8143. */
  8144. tilingOffsetX:number;
  8145. /**
  8146. * 获取纹理平铺和偏移Y分量。
  8147. * @return 纹理平铺和偏移Y分量。
  8148. */
  8149. /**
  8150. * 获取纹理平铺和偏移Y分量。
  8151. * @param y 纹理平铺和偏移Y分量。
  8152. */
  8153. tilingOffsetY:number;
  8154. /**
  8155. * 获取纹理平铺和偏移Z分量。
  8156. * @return 纹理平铺和偏移Z分量。
  8157. */
  8158. /**
  8159. * 获取纹理平铺和偏移Z分量。
  8160. * @param z 纹理平铺和偏移Z分量。
  8161. */
  8162. tilingOffsetZ:number;
  8163. /**
  8164. * 获取纹理平铺和偏移W分量。
  8165. * @return 纹理平铺和偏移W分量。
  8166. */
  8167. /**
  8168. * 获取纹理平铺和偏移W分量。
  8169. * @param w 纹理平铺和偏移W分量。
  8170. */
  8171. tilingOffsetW:number;
  8172. /**
  8173. * 获取纹理平铺和偏移。
  8174. * @return 纹理平铺和偏移。
  8175. */
  8176. /**
  8177. * 设置纹理平铺和偏移。
  8178. * @param value 纹理平铺和偏移。
  8179. */
  8180. tilingOffset:laya.d3.math.Vector4;
  8181. /**
  8182. * 设置是否写入深度。
  8183. * @param value 是否写入深度。
  8184. */
  8185. /**
  8186. * 获取是否写入深度。
  8187. * @return 是否写入深度。
  8188. */
  8189. depthWrite:boolean;
  8190. /**
  8191. * 设置剔除方式。
  8192. * @param value 剔除方式。
  8193. */
  8194. /**
  8195. * 获取剔除方式。
  8196. * @return 剔除方式。
  8197. */
  8198. cull:number;
  8199. /**
  8200. * 设置混合方式。
  8201. * @param value 混合方式。
  8202. */
  8203. /**
  8204. * 获取混合方式。
  8205. * @return 混合方式。
  8206. */
  8207. blend:number;
  8208. /**
  8209. * 设置混合源。
  8210. * @param value 混合源
  8211. */
  8212. /**
  8213. * 获取混合源。
  8214. * @return 混合源。
  8215. */
  8216. blendSrc:number;
  8217. /**
  8218. * 设置混合目标。
  8219. * @param value 混合目标
  8220. */
  8221. /**
  8222. * 获取混合目标。
  8223. * @return 混合目标。
  8224. */
  8225. blendDst:number;
  8226. /**
  8227. * 设置深度测试方式。
  8228. * @param value 深度测试方式
  8229. */
  8230. /**
  8231. * 获取深度测试方式。
  8232. * @return 深度测试方式。
  8233. */
  8234. depthTest:number;
  8235. constructor();
  8236. /**
  8237. * @inheritdoc
  8238. * @override
  8239. */
  8240. clone():any;
  8241. }
  8242. }
  8243. declare module laya.d3.core.trail {
  8244. /**
  8245. * <code>TrailRenderer</code> 类用于创建拖尾渲染器。
  8246. */
  8247. class TrailRenderer extends laya.d3.core.render.BaseRender {
  8248. constructor(owner:laya.d3.core.trail.TrailSprite3D);
  8249. protected _projectionViewWorldMatrix:laya.d3.math.Matrix4x4;
  8250. }
  8251. }
  8252. declare module laya.d3.core.trail {
  8253. /**
  8254. * <code>TrailSprite3D</code> 类用于创建拖尾渲染精灵。
  8255. */
  8256. class TrailSprite3D extends laya.d3.core.RenderableSprite3D {
  8257. /**
  8258. * 获取Trail过滤器。
  8259. * @return Trail过滤器。
  8260. */
  8261. readonly trailFilter:laya.d3.core.trail.TrailFilter;
  8262. /**
  8263. * 获取Trail渲染器。
  8264. * @return Trail渲染器。
  8265. */
  8266. readonly trailRenderer:laya.d3.core.trail.TrailRenderer;
  8267. constructor(name?:string);
  8268. /**
  8269. * @inheritDoc
  8270. * @override
  8271. */
  8272. protected _onActive():void;
  8273. /**
  8274. * <p>销毁此对象。</p>
  8275. * @param destroyChild 是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
  8276. * @override
  8277. */
  8278. destroy(destroyChild?:boolean):void;
  8279. }
  8280. }
  8281. declare module laya.d3.core.trail {
  8282. /**
  8283. * <code>VertexTrail</code> 类用于创建拖尾顶点结构。
  8284. */
  8285. class VertexTrail implements laya.d3.graphics.IVertex {
  8286. static TRAIL_POSITION0:number;
  8287. static TRAIL_OFFSETVECTOR:number;
  8288. static TRAIL_TIME0:number;
  8289. static TRAIL_TEXTURECOORDINATE0Y:number;
  8290. static TRAIL_TEXTURECOORDINATE0X:number;
  8291. static TRAIL_COLOR:number;
  8292. private static _vertexDeclaration1:any;
  8293. private static _vertexDeclaration2:any;
  8294. static readonly vertexDeclaration1:laya.d3.graphics.VertexDeclaration;
  8295. static readonly vertexDeclaration2:laya.d3.graphics.VertexDeclaration;
  8296. readonly vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  8297. constructor();
  8298. }
  8299. }
  8300. declare module laya.d3.core {
  8301. /**
  8302. * <code>Transform3D</code> 类用于实现3D变换。
  8303. */
  8304. class Transform3D extends laya.events.EventDispatcher {
  8305. /**
  8306. * 获取所属精灵。
  8307. */
  8308. readonly owner:laya.d3.core.Sprite3D;
  8309. /**
  8310. * 获取世界矩阵是否需要更新。
  8311. * @return 世界矩阵是否需要更新。
  8312. */
  8313. readonly worldNeedUpdate:boolean;
  8314. /**
  8315. * 获取局部位置X轴分量。
  8316. * @return 局部位置X轴分量。
  8317. */
  8318. /**
  8319. * 设置局部位置X轴分量。
  8320. * @param x 局部位置X轴分量。
  8321. */
  8322. localPositionX:number;
  8323. /**
  8324. * 获取局部位置Y轴分量。
  8325. * @return 局部位置Y轴分量。
  8326. */
  8327. /**
  8328. * 设置局部位置Y轴分量。
  8329. * @param y 局部位置Y轴分量。
  8330. */
  8331. localPositionY:number;
  8332. /**
  8333. * 获取局部位置Z轴分量。
  8334. * @return 局部位置Z轴分量。
  8335. */
  8336. /**
  8337. * 设置局部位置Z轴分量。
  8338. * @param z 局部位置Z轴分量。
  8339. */
  8340. localPositionZ:number;
  8341. /**
  8342. * 获取局部位置。
  8343. * @return 局部位置。
  8344. */
  8345. /**
  8346. * 设置局部位置。
  8347. * @param value 局部位置。
  8348. */
  8349. localPosition:laya.d3.math.Vector3;
  8350. /**
  8351. * 获取局部旋转四元数X分量。
  8352. * @return 局部旋转四元数X分量。
  8353. */
  8354. /**
  8355. * 设置局部旋转四元数X分量。
  8356. * @param x 局部旋转四元数X分量。
  8357. */
  8358. localRotationX:number;
  8359. /**
  8360. * 获取局部旋转四元数Y分量。
  8361. * @return 局部旋转四元数Y分量。
  8362. */
  8363. /**
  8364. * 设置局部旋转四元数Y分量。
  8365. * @param y 局部旋转四元数Y分量。
  8366. */
  8367. localRotationY:number;
  8368. /**
  8369. * 获取局部旋转四元数Z分量。
  8370. * @return 局部旋转四元数Z分量。
  8371. */
  8372. /**
  8373. * 设置局部旋转四元数Z分量。
  8374. * @param z 局部旋转四元数Z分量。
  8375. */
  8376. localRotationZ:number;
  8377. /**
  8378. * 获取局部旋转四元数W分量。
  8379. * @return 局部旋转四元数W分量。
  8380. */
  8381. /**
  8382. * 设置局部旋转四元数W分量。
  8383. * @param w 局部旋转四元数W分量。
  8384. */
  8385. localRotationW:number;
  8386. /**
  8387. * 获取局部旋转。
  8388. * @return 局部旋转。
  8389. */
  8390. /**
  8391. * 设置局部旋转。
  8392. * @param value 局部旋转。
  8393. */
  8394. localRotation:laya.d3.math.Quaternion;
  8395. /**
  8396. * 获取局部缩放X。
  8397. * @return 局部缩放X。
  8398. */
  8399. /**
  8400. * 设置局部缩放X。
  8401. * @param value 局部缩放X。
  8402. */
  8403. localScaleX:number;
  8404. /**
  8405. * 获取局部缩放Y。
  8406. * @return 局部缩放Y。
  8407. */
  8408. /**
  8409. * 设置局部缩放Y。
  8410. * @param value 局部缩放Y。
  8411. */
  8412. localScaleY:number;
  8413. /**
  8414. * 获取局部缩放Z。
  8415. * @return 局部缩放Z。
  8416. */
  8417. /**
  8418. * 设置局部缩放Z。
  8419. * @param value 局部缩放Z。
  8420. */
  8421. localScaleZ:number;
  8422. /**
  8423. * 获取局部缩放。
  8424. * @return 局部缩放。
  8425. */
  8426. /**
  8427. * 设置局部缩放。
  8428. * @param value 局部缩放。
  8429. */
  8430. localScale:laya.d3.math.Vector3;
  8431. /**
  8432. * 获取局部空间的X轴欧拉角。
  8433. * @return 局部空间的X轴欧拉角。
  8434. */
  8435. /**
  8436. * 设置局部空间的X轴欧拉角。
  8437. * @param value 局部空间的X轴欧拉角。
  8438. */
  8439. localRotationEulerX:number;
  8440. /**
  8441. * 获取局部空间的Y轴欧拉角。
  8442. * @return 局部空间的Y轴欧拉角。
  8443. */
  8444. /**
  8445. * 设置局部空间的Y轴欧拉角。
  8446. * @param value 局部空间的Y轴欧拉角。
  8447. */
  8448. localRotationEulerY:number;
  8449. /**
  8450. * 获取局部空间的Z轴欧拉角。
  8451. * @return 局部空间的Z轴欧拉角。
  8452. */
  8453. /**
  8454. * 设置局部空间的Z轴欧拉角。
  8455. * @param value 局部空间的Z轴欧拉角。
  8456. */
  8457. localRotationEulerZ:number;
  8458. /**
  8459. * 获取局部空间欧拉角。
  8460. * @return 欧拉角的旋转值。
  8461. */
  8462. /**
  8463. * 设置局部空间的欧拉角。
  8464. * @param value 欧拉角的旋转值。
  8465. */
  8466. localRotationEuler:laya.d3.math.Vector3;
  8467. /**
  8468. * 获取局部矩阵。
  8469. * @return 局部矩阵。
  8470. */
  8471. /**
  8472. * 设置局部矩阵。
  8473. * @param value 局部矩阵。
  8474. */
  8475. localMatrix:laya.d3.math.Matrix4x4;
  8476. /**
  8477. * 获取世界位置。
  8478. * @return 世界位置。
  8479. */
  8480. /**
  8481. * 设置世界位置。
  8482. * @param value 世界位置。
  8483. */
  8484. position:laya.d3.math.Vector3;
  8485. /**
  8486. * 获取世界旋转。
  8487. * @return 世界旋转。
  8488. */
  8489. /**
  8490. * 设置世界旋转。
  8491. * @param value 世界旋转。
  8492. */
  8493. rotation:laya.d3.math.Quaternion;
  8494. /**
  8495. * 获取世界空间的旋转角度。
  8496. * @return 欧拉角的旋转值,顺序为x、y、z。
  8497. */
  8498. /**
  8499. * 设置世界空间的旋转角度。
  8500. * @param 欧拉角的旋转值 ,顺序为x、y、z。
  8501. */
  8502. rotationEuler:laya.d3.math.Vector3;
  8503. /**
  8504. * 获取世界矩阵。
  8505. * @return 世界矩阵。
  8506. */
  8507. /**
  8508. * 设置世界矩阵。
  8509. * @param value 世界矩阵。
  8510. */
  8511. worldMatrix:laya.d3.math.Matrix4x4;
  8512. /**
  8513. * 创建一个 <code>Transform3D</code> 实例。
  8514. * @param owner 所属精灵。
  8515. */
  8516. constructor(owner:laya.d3.core.Sprite3D);
  8517. /**
  8518. * 平移变换。
  8519. * @param translation 移动距离。
  8520. * @param isLocal 是否局部空间。
  8521. */
  8522. translate(translation:laya.d3.math.Vector3,isLocal?:boolean):void;
  8523. /**
  8524. * 旋转变换。
  8525. * @param rotations 旋转幅度。
  8526. * @param isLocal 是否局部空间。
  8527. * @param isRadian 是否弧度制。
  8528. */
  8529. rotate(rotation:laya.d3.math.Vector3,isLocal?:boolean,isRadian?:boolean):void;
  8530. /**
  8531. * 获取向前方向。
  8532. * @param 前方向 。
  8533. */
  8534. getForward(forward:laya.d3.math.Vector3):void;
  8535. /**
  8536. * 获取向上方向。
  8537. * @param 上方向 。
  8538. */
  8539. getUp(up:laya.d3.math.Vector3):void;
  8540. /**
  8541. * 获取向右方向。
  8542. * @param 右方向 。
  8543. */
  8544. getRight(right:laya.d3.math.Vector3):void;
  8545. /**
  8546. * 观察目标位置。
  8547. * @param target 观察目标。
  8548. * @param up 向上向量。
  8549. * @param isLocal 是否局部空间。
  8550. */
  8551. lookAt(target:laya.d3.math.Vector3,up:laya.d3.math.Vector3,isLocal?:boolean):void;
  8552. /**
  8553. * 世界缩放。
  8554. * 某种条件下获取该值可能不正确(例如:父节点有缩放,子节点有旋转),缩放会倾斜,无法使用Vector3正确表示,必须使用Matrix3x3矩阵才能正确表示。
  8555. * @return 世界缩放。
  8556. */
  8557. getWorldLossyScale():laya.d3.math.Vector3;
  8558. /**
  8559. * 设置世界缩放。
  8560. * 某种条件下设置该值可能不正确(例如:父节点有缩放,子节点有旋转),缩放会倾斜,无法使用Vector3正确表示,必须使用Matrix3x3矩阵才能正确表示。
  8561. * @return 世界缩放。
  8562. */
  8563. setWorldLossyScale(value:laya.d3.math.Vector3):void;
  8564. scale:laya.d3.math.Vector3;
  8565. }
  8566. }
  8567. declare module laya.d3.core {
  8568. /**
  8569. * <code>Vector3Keyframe</code> 类用于创建三维向量关键帧实例。
  8570. */
  8571. class Vector3Keyframe extends laya.d3.core.Keyframe {
  8572. inTangent:laya.d3.math.Vector3;
  8573. outTangent:laya.d3.math.Vector3;
  8574. value:laya.d3.math.Vector3;
  8575. /**
  8576. * 创建一个 <code>Vector3Keyframe</code> 实例。
  8577. */
  8578. constructor();
  8579. /**
  8580. * 克隆。
  8581. * @param destObject 克隆源。
  8582. * @override
  8583. */
  8584. cloneTo(dest:any):void;
  8585. }
  8586. }
  8587. declare module laya.d3.graphics {
  8588. /**
  8589. * <code>IndexBuffer3D</code> 类用于创建索引缓冲。
  8590. */
  8591. class IndexBuffer3D extends laya.webgl.utils.Buffer {
  8592. /**
  8593. * 8位ubyte无符号索引类型。
  8594. */
  8595. static INDEXTYPE_UBYTE:string;
  8596. /**
  8597. * 16位ushort无符号索引类型。
  8598. */
  8599. static INDEXTYPE_USHORT:string;
  8600. /**
  8601. * 获取索引类型。
  8602. * @return 索引类型。
  8603. */
  8604. readonly indexType:string;
  8605. /**
  8606. * 获取索引类型字节数量。
  8607. * @return 索引类型字节数量。
  8608. */
  8609. readonly indexTypeByteCount:number;
  8610. /**
  8611. * 获取索引个数。
  8612. * @return 索引个数。
  8613. */
  8614. readonly indexCount:number;
  8615. /**
  8616. * 获取是否可读。
  8617. * @return 是否可读。
  8618. */
  8619. readonly canRead:boolean;
  8620. /**
  8621. * 创建一个 <code>IndexBuffer3D,不建议开发者使用并用IndexBuffer3D.create()代替</code> 实例。
  8622. * @param indexType 索引类型。
  8623. * @param indexCount 索引个数。
  8624. * @param bufferUsage IndexBuffer3D用途类型。
  8625. * @param canRead 是否可读。
  8626. */
  8627. constructor(indexType:string,indexCount:number,bufferUsage?:number,canRead?:boolean);
  8628. /**
  8629. * @inheritDoc
  8630. * @override
  8631. */
  8632. _bindForVAO():void;
  8633. /**
  8634. * @inheritDoc
  8635. * @override
  8636. */
  8637. bind():boolean;
  8638. /**
  8639. * 设置数据。
  8640. * @param data 索引数据。
  8641. * @param bufferOffset 索引缓冲中的偏移。
  8642. * @param dataStartIndex 索引数据的偏移。
  8643. * @param dataCount 索引数据的数量。
  8644. */
  8645. setData(data:any,bufferOffset?:number,dataStartIndex?:number,dataCount?:number):void;
  8646. /**
  8647. * 获取索引数据。
  8648. * @return 索引数据。
  8649. */
  8650. getData():Uint16Array;
  8651. /**
  8652. * @inheritDoc
  8653. * @override
  8654. */
  8655. destroy():void;
  8656. }
  8657. }
  8658. declare module laya.d3.graphics {
  8659. /**
  8660. * <code>IVertex</code> 接口用于实现创建顶点声明。
  8661. */
  8662. interface IVertex{
  8663. vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  8664. }
  8665. }
  8666. declare module laya.d3.graphics {
  8667. /**
  8668. * <code>StaticBatchManager</code> 类用于静态批处理管理的父类。
  8669. */
  8670. class StaticBatchManager {
  8671. /**
  8672. * 静态批处理合并,合并后子节点修改Transform属性无效,根节点staticBatchRoot可为null,如果根节点不为null,根节点可移动。
  8673. * 如果renderableSprite3Ds为null,合并staticBatchRoot以及其所有子节点为静态批处理,staticBatchRoot作为静态根节点。
  8674. * 如果renderableSprite3Ds不为null,合并renderableSprite3Ds为静态批处理,staticBatchRoot作为静态根节点。
  8675. * @param staticBatchRoot 静态批处理根节点。
  8676. * @param renderableSprite3Ds 静态批处理子节点队列。
  8677. */
  8678. static combine(staticBatchRoot:laya.d3.core.Sprite3D,renderableSprite3Ds?:laya.d3.core.RenderableSprite3D[]):void;
  8679. /**
  8680. * 创建一个 <code>StaticBatchManager</code> 实例。
  8681. */
  8682. constructor();
  8683. }
  8684. }
  8685. declare module laya.d3.graphics.Vertex {
  8686. /**
  8687. * ...
  8688. * @author ...
  8689. */
  8690. class VertexMesh {
  8691. static MESH_POSITION0:number;
  8692. static MESH_COLOR0:number;
  8693. static MESH_TEXTURECOORDINATE0:number;
  8694. static MESH_NORMAL0:number;
  8695. static MESH_TANGENT0:number;
  8696. static MESH_BLENDINDICES0:number;
  8697. static MESH_BLENDWEIGHT0:number;
  8698. static MESH_TEXTURECOORDINATE1:number;
  8699. static MESH_WORLDMATRIX_ROW0:number;
  8700. static MESH_WORLDMATRIX_ROW1:number;
  8701. static MESH_WORLDMATRIX_ROW2:number;
  8702. static MESH_WORLDMATRIX_ROW3:number;
  8703. static MESH_MVPMATRIX_ROW0:number;
  8704. static MESH_MVPMATRIX_ROW1:number;
  8705. static MESH_MVPMATRIX_ROW2:number;
  8706. static MESH_MVPMATRIX_ROW3:number;
  8707. static instanceWorldMatrixDeclaration:laya.d3.graphics.VertexDeclaration;
  8708. static instanceMVPMatrixDeclaration:laya.d3.graphics.VertexDeclaration;
  8709. /**
  8710. * 获取顶点声明。
  8711. * @param vertexFlag 顶点声明标记字符,格式为:"POSITION,NORMAL,COLOR,UV,UV1,BLENDWEIGHT,BLENDINDICES,TANGENT"。
  8712. * @return 顶点声明。
  8713. */
  8714. static getVertexDeclaration(vertexFlag:string,compatible?:boolean):laya.d3.graphics.VertexDeclaration;
  8715. }
  8716. }
  8717. declare module laya.d3.graphics.Vertex {
  8718. /**
  8719. * <code>VertexPositionTerrain</code> 类用于创建位置、法线、纹理1、纹理2顶点结构。
  8720. */
  8721. class VertexPositionTerrain implements laya.d3.graphics.IVertex {
  8722. static TERRAIN_POSITION0:number;
  8723. static TERRAIN_NORMAL0:number;
  8724. static TERRAIN_TEXTURECOORDINATE0:number;
  8725. static TERRAIN_TEXTURECOORDINATE1:number;
  8726. private static _vertexDeclaration:any;
  8727. static readonly vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  8728. private _position:any;
  8729. private _normal:any;
  8730. private _textureCoord0:any;
  8731. private _textureCoord1:any;
  8732. readonly position:laya.d3.math.Vector3;
  8733. readonly normal:laya.d3.math.Vector3;
  8734. readonly textureCoord0:laya.d3.math.Vector2;
  8735. readonly textureCoord1:laya.d3.math.Vector2;
  8736. readonly vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  8737. constructor(position:laya.d3.math.Vector3,normal:laya.d3.math.Vector3,textureCoord0:laya.d3.math.Vector2,textureCoord1:laya.d3.math.Vector2);
  8738. }
  8739. }
  8740. declare module laya.d3.graphics.Vertex {
  8741. /**
  8742. * <code>VertexPositionNormalTexture</code> 类用于创建位置、纹理顶点结构。
  8743. */
  8744. class VertexPositionTexture0 implements laya.d3.graphics.IVertex {
  8745. private static _vertexDeclaration:any;
  8746. static readonly vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  8747. private _position:any;
  8748. private _textureCoordinate0:any;
  8749. readonly position:laya.d3.math.Vector3;
  8750. readonly textureCoordinate0:laya.d3.math.Vector2;
  8751. readonly vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  8752. constructor(position:laya.d3.math.Vector3,textureCoordinate0:laya.d3.math.Vector2);
  8753. }
  8754. }
  8755. declare module laya.d3.graphics.Vertex {
  8756. /**
  8757. * ...
  8758. * @author ...
  8759. */
  8760. class VertexShuriKenParticle {
  8761. static PARTICLE_CORNERTEXTURECOORDINATE0:number;
  8762. static PARTICLE_POSITION0:number;
  8763. static PARTICLE_COLOR0:number;
  8764. static PARTICLE_TEXTURECOORDINATE0:number;
  8765. static PARTICLE_SHAPEPOSITIONSTARTLIFETIME:number;
  8766. static PARTICLE_DIRECTIONTIME:number;
  8767. static PARTICLE_STARTCOLOR0:number;
  8768. static PARTICLE_ENDCOLOR0:number;
  8769. static PARTICLE_STARTSIZE:number;
  8770. static PARTICLE_STARTROTATION:number;
  8771. static PARTICLE_STARTSPEED:number;
  8772. static PARTICLE_RANDOM0:number;
  8773. static PARTICLE_RANDOM1:number;
  8774. static PARTICLE_SIMULATIONWORLDPOSTION:number;
  8775. static PARTICLE_SIMULATIONWORLDROTATION:number;
  8776. constructor();
  8777. }
  8778. }
  8779. declare module laya.d3.graphics.Vertex {
  8780. /**
  8781. * <code>VertexShurikenParticle</code> 类用于创建粒子顶点结构。
  8782. */
  8783. class VertexShurikenParticleBillboard extends laya.d3.graphics.Vertex.VertexShuriKenParticle {
  8784. static readonly vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  8785. readonly cornerTextureCoordinate:laya.d3.math.Vector4;
  8786. readonly positionStartLifeTime:laya.d3.math.Vector4;
  8787. readonly velocity:laya.d3.math.Vector3;
  8788. readonly startColor:laya.d3.math.Vector4;
  8789. readonly startSize:laya.d3.math.Vector3;
  8790. readonly startRotation0:laya.d3.math.Vector3;
  8791. readonly startRotation1:laya.d3.math.Vector3;
  8792. readonly startRotation2:laya.d3.math.Vector3;
  8793. readonly startLifeTime:number;
  8794. readonly time:number;
  8795. readonly startSpeed:number;
  8796. readonly random0:laya.d3.math.Vector4;
  8797. readonly random1:laya.d3.math.Vector4;
  8798. readonly simulationWorldPostion:laya.d3.math.Vector3;
  8799. constructor(cornerTextureCoordinate:laya.d3.math.Vector4,positionStartLifeTime:laya.d3.math.Vector4,velocity:laya.d3.math.Vector3,startColor:laya.d3.math.Vector4,startSize:laya.d3.math.Vector3,startRotation0:laya.d3.math.Vector3,startRotation1:laya.d3.math.Vector3,startRotation2:laya.d3.math.Vector3,ageAddScale:number,time:number,startSpeed:number,randoms0:laya.d3.math.Vector4,randoms1:laya.d3.math.Vector4,simulationWorldPostion:laya.d3.math.Vector3);
  8800. }
  8801. }
  8802. declare module laya.d3.graphics.Vertex {
  8803. /**
  8804. * /**
  8805. * <code>VertexShurikenParticle</code> 类用于创建粒子顶点结构。
  8806. */
  8807. class VertexShurikenParticleMesh extends laya.d3.graphics.Vertex.VertexShuriKenParticle {
  8808. static readonly vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  8809. readonly cornerTextureCoordinate:laya.d3.math.Vector4;
  8810. readonly position:laya.d3.math.Vector4;
  8811. readonly velocity:laya.d3.math.Vector3;
  8812. readonly startColor:laya.d3.math.Vector4;
  8813. readonly startSize:laya.d3.math.Vector3;
  8814. readonly startRotation0:laya.d3.math.Vector3;
  8815. readonly startRotation1:laya.d3.math.Vector3;
  8816. readonly startRotation2:laya.d3.math.Vector3;
  8817. readonly startLifeTime:number;
  8818. readonly time:number;
  8819. readonly startSpeed:number;
  8820. readonly random0:laya.d3.math.Vector4;
  8821. readonly random1:laya.d3.math.Vector4;
  8822. readonly simulationWorldPostion:laya.d3.math.Vector3;
  8823. constructor(cornerTextureCoordinate:laya.d3.math.Vector4,positionStartLifeTime:laya.d3.math.Vector4,velocity:laya.d3.math.Vector3,startColor:laya.d3.math.Vector4,startSize:laya.d3.math.Vector3,startRotation0:laya.d3.math.Vector3,startRotation1:laya.d3.math.Vector3,startRotation2:laya.d3.math.Vector3,ageAddScale:number,time:number,startSpeed:number,randoms0:laya.d3.math.Vector4,randoms1:laya.d3.math.Vector4,simulationWorldPostion:laya.d3.math.Vector3);
  8824. }
  8825. }
  8826. declare module laya.d3.graphics {
  8827. /**
  8828. * <code>VertexBuffer3D</code> 类用于创建顶点缓冲。
  8829. */
  8830. class VertexBuffer3D extends laya.webgl.utils.Buffer {
  8831. /**
  8832. * 数据类型_Float32Array类型。
  8833. */
  8834. static DATATYPE_FLOAT32ARRAY:number;
  8835. /**
  8836. * 数据类型_Uint8Array类型。
  8837. */
  8838. static DATATYPE_UINT8ARRAY:number;
  8839. /**
  8840. * 获取顶点声明。
  8841. */
  8842. vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  8843. /**
  8844. * 是否可读。
  8845. */
  8846. readonly canRead:boolean;
  8847. /**
  8848. * 创建一个 <code>VertexBuffer3D</code> 实例。
  8849. * @param byteLength 字节长度。
  8850. * @param bufferUsage VertexBuffer3D用途类型。
  8851. * @param canRead 是否可读。
  8852. */
  8853. constructor(byteLength:number,bufferUsage:number,canRead?:boolean);
  8854. /**
  8855. * @inheritDoc
  8856. * @override
  8857. */
  8858. bind():boolean;
  8859. /**
  8860. * 设置数据。
  8861. * @param data 顶点数据。
  8862. * @param bufferOffset 顶点缓冲中的偏移,以字节为单位。
  8863. * @param dataStartIndex 顶点数据的偏移,以字节为单位。
  8864. * @param dataCount 顶点数据的长度,以字节为单位。
  8865. */
  8866. setData(buffer:ArrayBuffer,bufferOffset?:number,dataStartIndex?:number,dataCount?:number):void;
  8867. /**
  8868. * 获取顶点数据。
  8869. * @return 顶点数据。
  8870. */
  8871. getUint8Data():Uint8Array;
  8872. /**
  8873. * @ignore
  8874. */
  8875. getFloat32Data():Float32Array;
  8876. /**
  8877. * @ignore
  8878. */
  8879. markAsUnreadbale():void;
  8880. /**
  8881. * @inheritDoc
  8882. * @override
  8883. */
  8884. destroy():void;
  8885. }
  8886. }
  8887. declare module laya.d3.graphics {
  8888. /**
  8889. * <code>VertexDeclaration</code> 类用于生成顶点声明。
  8890. */
  8891. class VertexDeclaration {
  8892. /**
  8893. * 获取唯一标识ID(通常用于优化或识别)。
  8894. * @return 唯一标识ID
  8895. */
  8896. readonly id:number;
  8897. /**
  8898. * 顶点跨度,以字节为单位。
  8899. */
  8900. readonly vertexStride:number;
  8901. /**
  8902. * 顶点元素的数量。
  8903. */
  8904. readonly vertexElementCount:number;
  8905. /**
  8906. * 创建一个 <code>VertexDeclaration</code> 实例。
  8907. * @param vertexStride 顶点跨度。
  8908. * @param vertexElements 顶点元素集合。
  8909. */
  8910. constructor(vertexStride:number,vertexElements:Array<laya.d3.graphics.VertexElement>);
  8911. /**
  8912. * 通过索引获取顶点元素。
  8913. * @param index 索引。
  8914. */
  8915. getVertexElementByIndex(index:number):laya.d3.graphics.VertexElement;
  8916. }
  8917. }
  8918. declare module laya.d3.graphics {
  8919. /**
  8920. * <code>VertexElement</code> 类用于创建顶点结构分配。
  8921. */
  8922. class VertexElement {
  8923. readonly offset:number;
  8924. readonly elementFormat:string;
  8925. readonly elementUsage:number;
  8926. constructor(offset:number,elementFormat:string,elementUsage:number);
  8927. }
  8928. }
  8929. declare module laya.d3.graphics {
  8930. /**
  8931. * ...
  8932. * @author ...
  8933. */
  8934. class VertexElementFormat {
  8935. static Single:string;
  8936. static Vector2:string;
  8937. static Vector3:string;
  8938. static Vector4:string;
  8939. static Color:string;
  8940. static Byte4:string;
  8941. static Short2:string;
  8942. static Short4:string;
  8943. static NormalizedShort2:string;
  8944. static NormalizedShort4:string;
  8945. static HalfVector2:string;
  8946. static HalfVector4:string;
  8947. static __init__():void;
  8948. /**
  8949. * 获取顶点元素格式信息。
  8950. */
  8951. static getElementInfos(element:string):any[];
  8952. }
  8953. }
  8954. declare module laya.d3 {
  8955. /**
  8956. * <code>Input3D</code> 类用于实现3D输入。
  8957. */
  8958. class Input3D {
  8959. /**
  8960. * 获取触摸点个数。
  8961. * @return 触摸点个数。
  8962. */
  8963. touchCount():number;
  8964. /**
  8965. * 获取是否可以使用多点触摸。
  8966. * @return 是否可以使用多点触摸。
  8967. */
  8968. /**
  8969. * 设置是否可以使用多点触摸。
  8970. * @param 是否可以使用多点触摸 。
  8971. */
  8972. multiTouchEnabled:boolean;
  8973. /**
  8974. * 获取触摸点。
  8975. * @param index 索引。
  8976. * @return 触摸点。
  8977. */
  8978. getTouch(index:number):laya.d3.Touch;
  8979. }
  8980. }
  8981. declare module laya.d3.loaders {
  8982. /**
  8983. * ...
  8984. * @author ...
  8985. */
  8986. class MeshReader {
  8987. constructor();
  8988. static read(data:ArrayBuffer,mesh:laya.d3.resource.models.Mesh,subMeshes:laya.d3.resource.models.SubMesh[]):void;
  8989. }
  8990. }
  8991. declare module laya.d3.math {
  8992. /**
  8993. * <code>BoundBox</code> 类用于创建包围盒。
  8994. */
  8995. class BoundBox implements laya.d3.core.IClone {
  8996. /**
  8997. * 最小顶点。
  8998. */
  8999. min:laya.d3.math.Vector3;
  9000. /**
  9001. * 最大顶点。
  9002. */
  9003. max:laya.d3.math.Vector3;
  9004. /**
  9005. * 创建一个 <code>BoundBox</code> 实例。
  9006. * @param min 包围盒的最小顶点。
  9007. * @param max 包围盒的最大顶点。
  9008. */
  9009. constructor(min:laya.d3.math.Vector3,max:laya.d3.math.Vector3);
  9010. /**
  9011. * 获取包围盒的8个角顶点。
  9012. * @param corners 返回顶点的输出队列。
  9013. */
  9014. getCorners(corners:laya.d3.math.Vector3[]):void;
  9015. /**
  9016. * 获取中心点。
  9017. * @param out
  9018. */
  9019. getCenter(out:laya.d3.math.Vector3):void;
  9020. /**
  9021. * 获取范围。
  9022. * @param out
  9023. */
  9024. getExtent(out:laya.d3.math.Vector3):void;
  9025. /**
  9026. * 设置中心点和范围。
  9027. * @param center
  9028. */
  9029. setCenterAndExtent(center:laya.d3.math.Vector3,extent:laya.d3.math.Vector3):void;
  9030. toDefault():void;
  9031. /**
  9032. * 从顶点生成包围盒。
  9033. * @param points 所需顶点队列。
  9034. * @param out 生成的包围盒。
  9035. */
  9036. static createfromPoints(points:laya.d3.math.Vector3[],out:BoundBox):void;
  9037. /**
  9038. * 合并两个包围盒。
  9039. * @param box1 包围盒1。
  9040. * @param box2 包围盒2。
  9041. * @param out 生成的包围盒。
  9042. */
  9043. static merge(box1:BoundBox,box2:BoundBox,out:BoundBox):void;
  9044. /**
  9045. * 克隆。
  9046. * @param destObject 克隆源。
  9047. */
  9048. cloneTo(destObject:any):void;
  9049. /**
  9050. * 克隆。
  9051. * @return 克隆副本。
  9052. */
  9053. clone():any;
  9054. }
  9055. }
  9056. declare module laya.d3.math {
  9057. /**
  9058. * <code>BoundFrustum</code> 类用于创建锥截体。
  9059. */
  9060. class BoundFrustum {
  9061. /**
  9062. * 4x4矩阵
  9063. */
  9064. private _matrix:any;
  9065. /**
  9066. * 近平面
  9067. */
  9068. private _near:any;
  9069. /**
  9070. * 远平面
  9071. */
  9072. private _far:any;
  9073. /**
  9074. * 左平面
  9075. */
  9076. private _left:any;
  9077. /**
  9078. * 右平面
  9079. */
  9080. private _right:any;
  9081. /**
  9082. * 顶平面
  9083. */
  9084. private _top:any;
  9085. /**
  9086. * 底平面
  9087. */
  9088. private _bottom:any;
  9089. /**
  9090. * 创建一个 <code>BoundFrustum</code> 实例。
  9091. * @param matrix 锥截体的描述4x4矩阵。
  9092. */
  9093. constructor(matrix:laya.d3.math.Matrix4x4);
  9094. /**
  9095. * 获取描述矩阵。
  9096. * @return 描述矩阵。
  9097. */
  9098. /**
  9099. * 设置描述矩阵。
  9100. * @param matrix 描述矩阵。
  9101. */
  9102. matrix:laya.d3.math.Matrix4x4;
  9103. /**
  9104. * 获取近平面。
  9105. * @return 近平面。
  9106. */
  9107. readonly near:laya.d3.math.Plane;
  9108. /**
  9109. * 获取远平面。
  9110. * @return 远平面。
  9111. */
  9112. readonly far:laya.d3.math.Plane;
  9113. /**
  9114. * 获取左平面。
  9115. * @return 左平面。
  9116. */
  9117. readonly left:laya.d3.math.Plane;
  9118. /**
  9119. * 获取右平面。
  9120. * @return 右平面。
  9121. */
  9122. readonly right:laya.d3.math.Plane;
  9123. /**
  9124. * 获取顶平面。
  9125. * @return 顶平面。
  9126. */
  9127. readonly top:laya.d3.math.Plane;
  9128. /**
  9129. * 获取底平面。
  9130. * @return 底平面。
  9131. */
  9132. readonly bottom:laya.d3.math.Plane;
  9133. /**
  9134. * 判断是否与其他锥截体相等。
  9135. * @param other 锥截体。
  9136. */
  9137. equalsBoundFrustum(other:BoundFrustum):boolean;
  9138. /**
  9139. * 判断是否与其他对象相等。
  9140. * @param obj 对象。
  9141. */
  9142. equalsObj(obj:any):boolean;
  9143. /**
  9144. * 获取锥截体的任意一平面。
  9145. * 0:近平面
  9146. * 1:远平面
  9147. * 2:左平面
  9148. * 3:右平面
  9149. * 4:顶平面
  9150. * 5:底平面
  9151. * @param index 索引。
  9152. */
  9153. getPlane(index:number):laya.d3.math.Plane;
  9154. /**
  9155. * 根据描述矩阵获取锥截体的6个面。
  9156. * @param m 描述矩阵。
  9157. * @param np 近平面。
  9158. * @param fp 远平面。
  9159. * @param lp 左平面。
  9160. * @param rp 右平面。
  9161. * @param tp 顶平面。
  9162. * @param bp 底平面。
  9163. */
  9164. private static _getPlanesFromMatrix:any;
  9165. /**
  9166. * 锥截体三个相交平面的交点。
  9167. * @param p1 平面1。
  9168. * @param p2 平面2。
  9169. * @param p3 平面3。
  9170. */
  9171. private static _get3PlaneInterPoint:any;
  9172. /**
  9173. * 锥截体的8个顶点。
  9174. * @param corners 返回顶点的输出队列。
  9175. */
  9176. getCorners(corners:laya.d3.math.Vector3[]):void;
  9177. /**
  9178. * 与点的位置关系。返回-1,包涵;0,相交;1,不相交
  9179. * @param point 点。
  9180. */
  9181. containsPoint(point:laya.d3.math.Vector3):number;
  9182. /**
  9183. * 是否与包围盒交叉。
  9184. * @param box 包围盒。
  9185. */
  9186. intersects(box:laya.d3.math.BoundBox):boolean;
  9187. /**
  9188. * 与包围盒的位置关系。返回-1,包涵;0,相交;1,不相交
  9189. * @param box 包围盒。
  9190. */
  9191. containsBoundBox(box:laya.d3.math.BoundBox):number;
  9192. /**
  9193. * 与包围球的位置关系。返回-1,包涵;0,相交;1,不相交
  9194. * @param sphere 包围球。
  9195. */
  9196. containsBoundSphere(sphere:laya.d3.math.BoundSphere):number;
  9197. }
  9198. }
  9199. declare module laya.d3.math {
  9200. /**
  9201. * <code>BoundSphere</code> 类用于创建包围球。
  9202. */
  9203. class BoundSphere implements laya.d3.core.IClone {
  9204. private static _tempVector3:any;
  9205. /**
  9206. * 包围球的中心。
  9207. */
  9208. center:laya.d3.math.Vector3;
  9209. /**
  9210. * 包围球的半径。
  9211. */
  9212. radius:number;
  9213. /**
  9214. * 创建一个 <code>BoundSphere</code> 实例。
  9215. * @param center 包围球的中心。
  9216. * @param radius 包围球的半径。
  9217. */
  9218. constructor(center:laya.d3.math.Vector3,radius:number);
  9219. toDefault():void;
  9220. /**
  9221. * 从顶点的子队列生成包围球。
  9222. * @param points 顶点的队列。
  9223. * @param start 顶点子队列的起始偏移。
  9224. * @param count 顶点子队列的顶点数。
  9225. * @param result 生成的包围球。
  9226. */
  9227. static createFromSubPoints(points:laya.d3.math.Vector3[],start:number,count:number,out:BoundSphere):void;
  9228. /**
  9229. * 从顶点队列生成包围球。
  9230. * @param points 顶点的队列。
  9231. * @param result 生成的包围球。
  9232. */
  9233. static createfromPoints(points:laya.d3.math.Vector3[],out:BoundSphere):void;
  9234. /**
  9235. * 判断射线是否与碰撞球交叉,并返回交叉距离。
  9236. * @param ray 射线。
  9237. * @return 距离交叉点的距离,-1表示不交叉。
  9238. */
  9239. intersectsRayDistance(ray:laya.d3.math.Ray):number;
  9240. /**
  9241. * 判断射线是否与碰撞球交叉,并返回交叉点。
  9242. * @param ray 射线。
  9243. * @param outPoint 交叉点。
  9244. * @return 距离交叉点的距离,-1表示不交叉。
  9245. */
  9246. intersectsRayPoint(ray:laya.d3.math.Ray,outPoint:laya.d3.math.Vector3):number;
  9247. /**
  9248. * 克隆。
  9249. * @param destObject 克隆源。
  9250. */
  9251. cloneTo(destObject:any):void;
  9252. /**
  9253. * 克隆。
  9254. * @return 克隆副本。
  9255. */
  9256. clone():any;
  9257. }
  9258. }
  9259. declare module laya.d3.math {
  9260. /**
  9261. * <code>Collision</code> 类用于检测碰撞。
  9262. */
  9263. class CollisionUtils {
  9264. /**
  9265. * 创建一个 <code>Collision</code> 实例。
  9266. */
  9267. constructor();
  9268. /**
  9269. * 空间中点到平面的距离
  9270. * @param plane 平面
  9271. * @param point 点
  9272. */
  9273. static distancePlaneToPoint(plane:laya.d3.math.Plane,point:laya.d3.math.Vector3):number;
  9274. /**
  9275. * 空间中点到包围盒的距离
  9276. * @param box 包围盒
  9277. * @param point 点
  9278. */
  9279. static distanceBoxToPoint(box:laya.d3.math.BoundBox,point:laya.d3.math.Vector3):number;
  9280. /**
  9281. * 空间中包围盒到包围盒的距离
  9282. * @param box1 包围盒1
  9283. * @param box2 包围盒2
  9284. */
  9285. static distanceBoxToBox(box1:laya.d3.math.BoundBox,box2:laya.d3.math.BoundBox):number;
  9286. /**
  9287. * 空间中点到包围球的距离
  9288. * @param sphere 包围球
  9289. * @param point 点
  9290. */
  9291. static distanceSphereToPoint(sphere:laya.d3.math.BoundSphere,point:laya.d3.math.Vector3):number;
  9292. /**
  9293. * 空间中包围球到包围球的距离
  9294. * @param sphere1 包围球1
  9295. * @param sphere2 包围球2
  9296. */
  9297. static distanceSphereToSphere(sphere1:laya.d3.math.BoundSphere,sphere2:laya.d3.math.BoundSphere):number;
  9298. /**
  9299. * 空间中射线和三角面是否相交,输出距离
  9300. * @param ray 射线
  9301. * @param vertex1 三角面顶点1
  9302. * @param vertex2 三角面顶点2
  9303. * @param vertex3 三角面顶点3
  9304. * @param out 点和三角面的距离
  9305. * @return 是否相交
  9306. */
  9307. static intersectsRayAndTriangleRD(ray:laya.d3.math.Ray,vertex1:laya.d3.math.Vector3,vertex2:laya.d3.math.Vector3,vertex3:laya.d3.math.Vector3,out:number):boolean;
  9308. /**
  9309. * 空间中射线和三角面是否相交,输出相交点
  9310. * @param ray 射线
  9311. * @param vertex1 三角面顶点1
  9312. * @param vertex2 三角面顶点2
  9313. * @param vertex3 三角面顶点3
  9314. * @param out 相交点
  9315. * @return 是否相交
  9316. */
  9317. static intersectsRayAndTriangleRP(ray:laya.d3.math.Ray,vertex1:laya.d3.math.Vector3,vertex2:laya.d3.math.Vector3,vertex3:laya.d3.math.Vector3,out:laya.d3.math.Vector3):boolean;
  9318. /**
  9319. * 空间中射线和点是否相交
  9320. * @param sphere1 包围球1
  9321. * @param sphere2 包围球2
  9322. */
  9323. static intersectsRayAndPoint(ray:laya.d3.math.Ray,point:laya.d3.math.Vector3):boolean;
  9324. /**
  9325. * 空间中射线和射线是否相交
  9326. * @param ray1 射线1
  9327. * @param ray2 射线2
  9328. * @param out 相交点
  9329. */
  9330. static intersectsRayAndRay(ray1:laya.d3.math.Ray,ray2:laya.d3.math.Ray,out:laya.d3.math.Vector3):boolean;
  9331. /**
  9332. * 空间中平面和三角面是否相交
  9333. * @param plane 平面
  9334. * @param vertex1 三角面顶点1
  9335. * @param vertex2 三角面顶点2
  9336. * @param vertex3 三角面顶点3
  9337. * @return 返回空间位置关系
  9338. */
  9339. static intersectsPlaneAndTriangle(plane:laya.d3.math.Plane,vertex1:laya.d3.math.Vector3,vertex2:laya.d3.math.Vector3,vertex3:laya.d3.math.Vector3):number;
  9340. /**
  9341. * 空间中射线和平面是否相交
  9342. * @param ray 射线
  9343. * @param plane 平面
  9344. * @param out 相交距离,如果为0,不相交
  9345. */
  9346. static intersectsRayAndPlaneRD(ray:laya.d3.math.Ray,plane:laya.d3.math.Plane,out:number):boolean;
  9347. /**
  9348. * 空间中射线和平面是否相交
  9349. * @param ray 射线
  9350. * @param plane 平面
  9351. * @param out 相交点
  9352. */
  9353. static intersectsRayAndPlaneRP(ray:laya.d3.math.Ray,plane:laya.d3.math.Plane,out:laya.d3.math.Vector3):boolean;
  9354. /**
  9355. * 空间中射线和包围盒是否相交
  9356. * @param ray 射线
  9357. * @param box 包围盒
  9358. * @param out 相交距离,如果为0,不相交
  9359. */
  9360. static intersectsRayAndBoxRD(ray:laya.d3.math.Ray,box:laya.d3.math.BoundBox):number;
  9361. /**
  9362. * 空间中射线和包围盒是否相交
  9363. * @param ray 射线
  9364. * @param box 包围盒
  9365. * @param out 相交点
  9366. */
  9367. static intersectsRayAndBoxRP(ray:laya.d3.math.Ray,box:laya.d3.math.BoundBox,out:laya.d3.math.Vector3):number;
  9368. /**
  9369. * 空间中射线和包围球是否相交
  9370. * @param ray 射线
  9371. * @param sphere 包围球
  9372. * @return 相交距离,-1表示不相交
  9373. */
  9374. static intersectsRayAndSphereRD(ray:laya.d3.math.Ray,sphere:laya.d3.math.BoundSphere):number;
  9375. /**
  9376. * 空间中射线和包围球是否相交
  9377. * @param ray 射线
  9378. * @param sphere 包围球
  9379. * @param out 相交点
  9380. * @return 相交距离,-1表示不相交
  9381. */
  9382. static intersectsRayAndSphereRP(ray:laya.d3.math.Ray,sphere:laya.d3.math.BoundSphere,out:laya.d3.math.Vector3):number;
  9383. /**
  9384. * 空间中包围球和三角面是否相交
  9385. * @param sphere 包围球
  9386. * @param vertex1 三角面顶点1
  9387. * @param vertex2 三角面顶点2
  9388. * @param vertex3 三角面顶点3
  9389. * @return 返回是否相交
  9390. */
  9391. static intersectsSphereAndTriangle(sphere:laya.d3.math.BoundSphere,vertex1:laya.d3.math.Vector3,vertex2:laya.d3.math.Vector3,vertex3:laya.d3.math.Vector3):boolean;
  9392. /**
  9393. * 空间中点和平面是否相交
  9394. * @param plane 平面
  9395. * @param point 点
  9396. * @return 碰撞状态
  9397. */
  9398. static intersectsPlaneAndPoint(plane:laya.d3.math.Plane,point:laya.d3.math.Vector3):number;
  9399. /**
  9400. * 空间中平面和平面是否相交
  9401. * @param plane1 平面1
  9402. * @param plane2 平面2
  9403. * @return 是否相交
  9404. */
  9405. static intersectsPlaneAndPlane(plane1:laya.d3.math.Plane,plane2:laya.d3.math.Plane):boolean;
  9406. /**
  9407. * 空间中平面和平面是否相交
  9408. * @param plane1 平面1
  9409. * @param plane2 平面2
  9410. * @param line 相交线
  9411. * @return 是否相交
  9412. */
  9413. static intersectsPlaneAndPlaneRL(plane1:laya.d3.math.Plane,plane2:laya.d3.math.Plane,line:laya.d3.math.Ray):boolean;
  9414. /**
  9415. * 空间中平面和包围盒是否相交
  9416. * @param plane 平面
  9417. * @param box 包围盒
  9418. * @return 碰撞状态
  9419. */
  9420. static intersectsPlaneAndBox(plane:laya.d3.math.Plane,box:laya.d3.math.BoundBox):number;
  9421. /**
  9422. * 空间中平面和包围球是否相交
  9423. * @param plane 平面
  9424. * @param sphere 包围球
  9425. * @return 碰撞状态
  9426. */
  9427. static intersectsPlaneAndSphere(plane:laya.d3.math.Plane,sphere:laya.d3.math.BoundSphere):number;
  9428. /**
  9429. * 空间中包围盒和包围盒是否相交
  9430. * @param box1 包围盒1
  9431. * @param box2 包围盒2
  9432. * @return 是否相交
  9433. */
  9434. static intersectsBoxAndBox(box1:laya.d3.math.BoundBox,box2:laya.d3.math.BoundBox):boolean;
  9435. /**
  9436. * 空间中包围盒和包围球是否相交
  9437. * @param box 包围盒
  9438. * @param sphere 包围球
  9439. * @return 是否相交
  9440. */
  9441. static intersectsBoxAndSphere(box:laya.d3.math.BoundBox,sphere:laya.d3.math.BoundSphere):boolean;
  9442. /**
  9443. * 空间中包围球和包围球是否相交
  9444. * @param sphere1 包围球1
  9445. * @param sphere2 包围球2
  9446. * @return 是否相交
  9447. */
  9448. static intersectsSphereAndSphere(sphere1:laya.d3.math.BoundSphere,sphere2:laya.d3.math.BoundSphere):boolean;
  9449. /**
  9450. * 空间中包围盒是否包含另一个点
  9451. * @param box 包围盒
  9452. * @param point 点
  9453. * @return 位置关系:0 不想交,1 包含, 2 相交
  9454. */
  9455. static boxContainsPoint(box:laya.d3.math.BoundBox,point:laya.d3.math.Vector3):number;
  9456. /**
  9457. * 空间中包围盒是否包含另一个包围盒
  9458. * @param box1 包围盒1
  9459. * @param box2 包围盒2
  9460. * @return 位置关系:0 不想交,1 包含, 2 相交
  9461. */
  9462. static boxContainsBox(box1:laya.d3.math.BoundBox,box2:laya.d3.math.BoundBox):number;
  9463. /**
  9464. * 空间中包围盒是否包含另一个包围球
  9465. * @param box 包围盒
  9466. * @param sphere 包围球
  9467. * @return 位置关系:0 不想交,1 包含, 2 相交
  9468. */
  9469. static boxContainsSphere(box:laya.d3.math.BoundBox,sphere:laya.d3.math.BoundSphere):number;
  9470. /**
  9471. * 空间中包围球是否包含另一个点
  9472. * @param sphere 包围球
  9473. * @param point 点
  9474. * @return 位置关系:0 不想交,1 包含, 2 相交
  9475. */
  9476. static sphereContainsPoint(sphere:laya.d3.math.BoundSphere,point:laya.d3.math.Vector3):number;
  9477. /**
  9478. * 空间中包围球是否包含另一个三角面
  9479. * @param sphere
  9480. * @param vertex1 三角面顶点1
  9481. * @param vertex2 三角面顶点2
  9482. * @param vertex3 三角面顶点3
  9483. * @return 返回空间位置关系
  9484. */
  9485. static sphereContainsTriangle(sphere:laya.d3.math.BoundSphere,vertex1:laya.d3.math.Vector3,vertex2:laya.d3.math.Vector3,vertex3:laya.d3.math.Vector3):number;
  9486. /**
  9487. * 空间中包围球是否包含另一包围盒
  9488. * @param sphere 包围球
  9489. * @param box 包围盒
  9490. * @return 位置关系:0 不想交,1 包含, 2 相交
  9491. */
  9492. static sphereContainsBox(sphere:laya.d3.math.BoundSphere,box:laya.d3.math.BoundBox):number;
  9493. /**
  9494. * 空间中包围球是否包含另一包围球
  9495. * @param sphere1 包围球
  9496. * @param sphere2 包围球
  9497. * @return 位置关系:0 不想交,1 包含, 2 相交
  9498. */
  9499. static sphereContainsSphere(sphere1:laya.d3.math.BoundSphere,sphere2:laya.d3.math.BoundSphere):number;
  9500. /**
  9501. * 空间中点与三角面的最近点
  9502. * @param point 点
  9503. * @param vertex1 三角面顶点1
  9504. * @param vertex2 三角面顶点2
  9505. * @param vertex3 三角面顶点3
  9506. * @param out 最近点
  9507. */
  9508. static closestPointPointTriangle(point:laya.d3.math.Vector3,vertex1:laya.d3.math.Vector3,vertex2:laya.d3.math.Vector3,vertex3:laya.d3.math.Vector3,out:laya.d3.math.Vector3):void;
  9509. /**
  9510. * 空间中平面与一点的最近点
  9511. * @param plane 平面
  9512. * @param point 点
  9513. * @param out 最近点
  9514. */
  9515. static closestPointPlanePoint(plane:laya.d3.math.Plane,point:laya.d3.math.Vector3,out:laya.d3.math.Vector3):void;
  9516. /**
  9517. * 空间中包围盒与一点的最近点
  9518. * @param box 包围盒
  9519. * @param point 点
  9520. * @param out 最近点
  9521. */
  9522. static closestPointBoxPoint(box:laya.d3.math.BoundBox,point:laya.d3.math.Vector3,out:laya.d3.math.Vector3):void;
  9523. /**
  9524. * 空间中包围球与一点的最近点
  9525. * @param sphere 包围球
  9526. * @param point 点
  9527. * @param out 最近点
  9528. */
  9529. static closestPointSpherePoint(sphere:laya.d3.math.BoundSphere,point:laya.d3.math.Vector3,out:laya.d3.math.Vector3):void;
  9530. /**
  9531. * 空间中包围球与包围球的最近点
  9532. * @param sphere1 包围球1
  9533. * @param sphere2 包围球2
  9534. * @param out 最近点
  9535. */
  9536. static closestPointSphereSphere(sphere1:laya.d3.math.BoundSphere,sphere2:laya.d3.math.BoundSphere,out:laya.d3.math.Vector3):void;
  9537. }
  9538. }
  9539. declare module laya.d3.math {
  9540. /**
  9541. * <code>Color</code> 类用于创建颜色实例。
  9542. */
  9543. class Color implements laya.d3.core.IClone {
  9544. /**
  9545. * 红色
  9546. */
  9547. static RED:Color;
  9548. /**
  9549. * 绿色
  9550. */
  9551. static GREEN:Color;
  9552. /**
  9553. * 蓝色
  9554. */
  9555. static BLUE:Color;
  9556. /**
  9557. * 蓝绿色
  9558. */
  9559. static CYAN:Color;
  9560. /**
  9561. * 黄色
  9562. */
  9563. static YELLOW:Color;
  9564. /**
  9565. * 品红色
  9566. */
  9567. static MAGENTA:Color;
  9568. /**
  9569. * 灰色
  9570. */
  9571. static GRAY:Color;
  9572. /**
  9573. * 白色
  9574. */
  9575. static WHITE:Color;
  9576. /**
  9577. * 黑色
  9578. */
  9579. static BLACK:Color;
  9580. static gammaToLinearSpace(value:number):number;
  9581. static linearToGammaSpace(value:number):number;
  9582. /**
  9583. * red分量
  9584. */
  9585. r:number;
  9586. /**
  9587. * green分量
  9588. */
  9589. g:number;
  9590. /**
  9591. * blue分量
  9592. */
  9593. b:number;
  9594. /**
  9595. * alpha分量
  9596. */
  9597. a:number;
  9598. /**
  9599. * 创建一个 <code>Color</code> 实例。
  9600. * @param r 颜色的red分量。
  9601. * @param g 颜色的green分量。
  9602. * @param b 颜色的blue分量。
  9603. * @param a 颜色的alpha分量。
  9604. */
  9605. constructor(r?:number,g?:number,b?:number,a?:number);
  9606. /**
  9607. * Gamma空间转换到线性空间。
  9608. * @param linear 线性空间颜色。
  9609. */
  9610. toLinear(out:Color):void;
  9611. /**
  9612. * 线性空间转换到Gamma空间。
  9613. * @param gamma Gamma空间颜色。
  9614. */
  9615. toGamma(out:Color):void;
  9616. /**
  9617. * 克隆。
  9618. * @param destObject 克隆源。
  9619. */
  9620. cloneTo(destObject:any):void;
  9621. /**
  9622. * 克隆。
  9623. * @return 克隆副本。
  9624. */
  9625. clone():any;
  9626. forNativeElement():void;
  9627. }
  9628. }
  9629. declare module laya.d3.math {
  9630. /**
  9631. * <code>ContainmentType</code> 类用于定义空间物体位置关系。
  9632. */
  9633. class ContainmentType {
  9634. static Disjoint:number;
  9635. static Contains:number;
  9636. static Intersects:number;
  9637. }
  9638. }
  9639. declare module laya.d3.math {
  9640. /**
  9641. * <code>HalfFloatUtils</code> 类用于创建HalfFloat工具。
  9642. */
  9643. class HalfFloatUtils {
  9644. /**
  9645. * round a number to a half float number bits.
  9646. * @param num
  9647. */
  9648. static roundToFloat16Bits(num:number):number;
  9649. /**
  9650. * convert a half float number bits to a number.
  9651. * @param float16bits - half float number bits
  9652. */
  9653. static convertToNumber(float16bits:number):number;
  9654. }
  9655. }
  9656. declare module laya.d3.math {
  9657. /**
  9658. * <code>MathUtils</code> 类用于创建数学工具。
  9659. */
  9660. class MathUtils3D {
  9661. /**
  9662. * 单精度浮点(float)零的容差
  9663. */
  9664. static zeroTolerance:number;
  9665. /**
  9666. * 浮点数默认最大值
  9667. */
  9668. static MaxValue:number;
  9669. /**
  9670. * 浮点数默认最小值
  9671. */
  9672. static MinValue:number;
  9673. /**
  9674. * 创建一个 <code>MathUtils</code> 实例。
  9675. */
  9676. constructor();
  9677. /**
  9678. * 是否在容差的范围内近似于0
  9679. * @param 判断值
  9680. * @return 是否近似于0
  9681. */
  9682. static isZero(v:number):boolean;
  9683. /**
  9684. * 两个值是否在容差的范围内近似相等Sqr Magnitude
  9685. * @param 判断值
  9686. * @return 是否近似于0
  9687. */
  9688. static nearEqual(n1:number,n2:number):boolean;
  9689. static fastInvSqrt(value:number):number;
  9690. }
  9691. }
  9692. declare module laya.d3.math {
  9693. /**
  9694. * <code>Matrix3x3</code> 类用于创建3x3矩阵。
  9695. */
  9696. class Matrix3x3 implements laya.d3.core.IClone {
  9697. /**
  9698. * 默认矩阵,禁止修改
  9699. */
  9700. static DEFAULT:Matrix3x3;
  9701. /**
  9702. * 通过四元数创建旋转矩阵。
  9703. * @param rotation 旋转四元数。
  9704. * @param out 旋转矩阵。
  9705. */
  9706. static createRotationQuaternion(rotation:laya.d3.math.Quaternion,out:Matrix3x3):void;
  9707. /**
  9708. * 根据指定平移生成3x3矩阵
  9709. * @param tra 平移
  9710. * @param out 输出矩阵
  9711. */
  9712. static createFromTranslation(trans:laya.d3.math.Vector2,out:Matrix3x3):void;
  9713. /**
  9714. * 根据指定旋转生成3x3矩阵
  9715. * @param rad 旋转值
  9716. * @param out 输出矩阵
  9717. */
  9718. static createFromRotation(rad:number,out:Matrix3x3):void;
  9719. /**
  9720. * 根据制定缩放生成3x3矩阵
  9721. * @param scale 缩放值
  9722. * @param out 输出矩阵
  9723. */
  9724. static createFromScaling(scale:laya.d3.math.Vector3,out:Matrix3x3):void;
  9725. /**
  9726. * 从4x4矩阵转换为一个3x3的矩阵(原则为upper-left,忽略第四行四列)
  9727. * @param sou 4x4源矩阵
  9728. * @param out 3x3输出矩阵
  9729. */
  9730. static createFromMatrix4x4(sou:laya.d3.math.Matrix4x4,out:Matrix3x3):void;
  9731. /**
  9732. * 两个3x3矩阵的相乘
  9733. * @param left 左矩阵
  9734. * @param right 右矩阵
  9735. * @param out 输出矩阵
  9736. */
  9737. static multiply(left:Matrix3x3,right:Matrix3x3,out:Matrix3x3):void;
  9738. /**
  9739. * 矩阵元素数组
  9740. */
  9741. elements:Float32Array;
  9742. /**
  9743. * 创建一个 <code>Matrix3x3</code> 实例。
  9744. */
  9745. constructor();
  9746. /**
  9747. * 计算3x3矩阵的行列式
  9748. * @return 矩阵的行列式
  9749. */
  9750. determinant():number;
  9751. /**
  9752. * 通过一个二维向量转换3x3矩阵
  9753. * @param tra 转换向量
  9754. * @param out 输出矩阵
  9755. */
  9756. translate(trans:laya.d3.math.Vector2,out:Matrix3x3):void;
  9757. /**
  9758. * 根据指定角度旋转3x3矩阵
  9759. * @param rad 旋转角度
  9760. * @param out 输出矩阵
  9761. */
  9762. rotate(rad:number,out:Matrix3x3):void;
  9763. /**
  9764. * 根据制定缩放3x3矩阵
  9765. * @param scale 缩放值
  9766. * @param out 输出矩阵
  9767. */
  9768. scale(scale:laya.d3.math.Vector2,out:Matrix3x3):void;
  9769. /**
  9770. * 计算3x3矩阵的逆矩阵
  9771. * @param out 输出的逆矩阵
  9772. */
  9773. invert(out:Matrix3x3):void;
  9774. /**
  9775. * 计算3x3矩阵的转置矩阵
  9776. * @param out 输出矩阵
  9777. */
  9778. transpose(out:Matrix3x3):void;
  9779. /**
  9780. * 设置已有的矩阵为单位矩阵
  9781. */
  9782. identity():void;
  9783. /**
  9784. * 克隆。
  9785. * @param destObject 克隆源。
  9786. */
  9787. cloneTo(destObject:any):void;
  9788. /**
  9789. * 克隆。
  9790. * @return 克隆副本。
  9791. */
  9792. clone():any;
  9793. /**
  9794. * 计算观察3x3矩阵
  9795. * @param eye 观察者位置
  9796. * @param target 目标位置
  9797. * @param up 上向量
  9798. * @param out 输出3x3矩阵
  9799. */
  9800. static lookAt(eye:laya.d3.math.Vector3,target:laya.d3.math.Vector3,up:laya.d3.math.Vector3,out:Matrix3x3):void;
  9801. }
  9802. }
  9803. declare module laya.d3.math {
  9804. /**
  9805. * <code>Matrix4x4</code> 类用于创建4x4矩阵。
  9806. */
  9807. class Matrix4x4 implements laya.d3.core.IClone {
  9808. /**
  9809. * 默认矩阵,禁止修改
  9810. */
  9811. static DEFAULT:Matrix4x4;
  9812. /**
  9813. * 默认矩阵,禁止修改
  9814. */
  9815. static ZERO:Matrix4x4;
  9816. /**
  9817. * 绕X轴旋转
  9818. * @param rad 旋转角度
  9819. * @param out 输出矩阵
  9820. */
  9821. static createRotationX(rad:number,out:Matrix4x4):void;
  9822. /**
  9823. * 绕Y轴旋转
  9824. * @param rad 旋转角度
  9825. * @param out 输出矩阵
  9826. */
  9827. static createRotationY(rad:number,out:Matrix4x4):void;
  9828. /**
  9829. * 绕Z轴旋转
  9830. * @param rad 旋转角度
  9831. * @param out 输出矩阵
  9832. */
  9833. static createRotationZ(rad:number,out:Matrix4x4):void;
  9834. /**
  9835. * 通过yaw pitch roll旋转创建旋转矩阵。
  9836. * @param yaw
  9837. * @param pitch
  9838. * @param roll
  9839. * @param result
  9840. */
  9841. static createRotationYawPitchRoll(yaw:number,pitch:number,roll:number,result:Matrix4x4):void;
  9842. /**
  9843. * 通过旋转轴axis和旋转角度angle计算旋转矩阵。
  9844. * @param axis 旋转轴,假定已经归一化。
  9845. * @param angle 旋转角度。
  9846. * @param result 结果矩阵。
  9847. */
  9848. static createRotationAxis(axis:laya.d3.math.Vector3,angle:number,result:Matrix4x4):void;
  9849. setRotation(rotation:laya.d3.math.Quaternion):void;
  9850. setPosition(position:laya.d3.math.Vector3):void;
  9851. /**
  9852. * 通过四元数创建旋转矩阵。
  9853. * @param rotation 旋转四元数。
  9854. * @param result 输出旋转矩阵
  9855. */
  9856. static createRotationQuaternion(rotation:laya.d3.math.Quaternion,result:Matrix4x4):void;
  9857. /**
  9858. * 根据平移计算输出矩阵
  9859. * @param trans 平移向量
  9860. * @param out 输出矩阵
  9861. */
  9862. static createTranslate(trans:laya.d3.math.Vector3,out:Matrix4x4):void;
  9863. /**
  9864. * 根据缩放计算输出矩阵
  9865. * @param scale 缩放值
  9866. * @param out 输出矩阵
  9867. */
  9868. static createScaling(scale:laya.d3.math.Vector3,out:Matrix4x4):void;
  9869. /**
  9870. * 计算两个矩阵的乘法
  9871. * @param left left矩阵
  9872. * @param right right矩阵
  9873. * @param out 输出矩阵
  9874. */
  9875. static multiply(left:Matrix4x4,right:Matrix4x4,out:Matrix4x4):void;
  9876. static multiplyForNative(left:Matrix4x4,right:Matrix4x4,out:Matrix4x4):void;
  9877. /**
  9878. * 从四元数计算旋转矩阵
  9879. * @param rotation 四元数
  9880. * @param out 输出矩阵
  9881. */
  9882. static createFromQuaternion(rotation:laya.d3.math.Quaternion,out:Matrix4x4):void;
  9883. /**
  9884. * 计算仿射矩阵
  9885. * @param trans 平移
  9886. * @param rot 旋转
  9887. * @param scale 缩放
  9888. * @param out 输出矩阵
  9889. */
  9890. static createAffineTransformation(trans:laya.d3.math.Vector3,rot:laya.d3.math.Quaternion,scale:laya.d3.math.Vector3,out:Matrix4x4):void;
  9891. /**
  9892. * 计算观察矩阵
  9893. * @param eye 视点位置
  9894. * @param center 视点目标
  9895. * @param up 向上向量
  9896. * @param out 输出矩阵
  9897. */
  9898. static createLookAt(eye:laya.d3.math.Vector3,target:laya.d3.math.Vector3,up:laya.d3.math.Vector3,out:Matrix4x4):void;
  9899. /**
  9900. * 通过FOV创建透视投影矩阵。
  9901. * @param fov 视角。
  9902. * @param aspect 横纵比。
  9903. * @param near 近裁面。
  9904. * @param far 远裁面。
  9905. * @param out 输出矩阵。
  9906. */
  9907. static createPerspective(fov:number,aspect:number,znear:number,zfar:number,out:Matrix4x4):void;
  9908. /**
  9909. * 创建透视投影矩阵。
  9910. * @param left 视椎左边界。
  9911. * @param right 视椎右边界。
  9912. * @param bottom 视椎底边界。
  9913. * @param top 视椎顶边界。
  9914. * @param znear 视椎近边界。
  9915. * @param zfar 视椎远边界。
  9916. * @param out 输出矩阵。
  9917. */
  9918. static createPerspectiveOffCenter(left:number,right:number,bottom:number,top:number,znear:number,zfar:number,out:Matrix4x4):void;
  9919. /**
  9920. * 计算正交投影矩阵。
  9921. * @param left 视椎左边界。
  9922. * @param right 视椎右边界。
  9923. * @param bottom 视椎底边界。
  9924. * @param top 视椎顶边界。
  9925. * @param near 视椎近边界。
  9926. * @param far 视椎远边界。
  9927. * @param out 输出矩阵。
  9928. */
  9929. static createOrthoOffCenter(left:number,right:number,bottom:number,top:number,znear:number,zfar:number,out:Matrix4x4):void;
  9930. /**
  9931. * 矩阵元素数组
  9932. */
  9933. elements:Float32Array;
  9934. /**
  9935. * 创建一个 <code>Matrix4x4</code> 实例。
  9936. * @param 4x4矩阵的各元素
  9937. */
  9938. constructor(m11?:number,m12?:number,m13?:number,m14?:number,m21?:number,m22?:number,m23?:number,m24?:number,m31?:number,m32?:number,m33?:number,m34?:number,m41?:number,m42?:number,m43?:number,m44?:number,elements?:Float32Array);
  9939. getElementByRowColumn(row:number,column:number):number;
  9940. setElementByRowColumn(row:number,column:number,value:number):void;
  9941. /**
  9942. * 判断两个4x4矩阵的值是否相等。
  9943. * @param other 4x4矩阵
  9944. */
  9945. equalsOtherMatrix(other:Matrix4x4):boolean;
  9946. /**
  9947. * 分解矩阵为平移向量、旋转四元数、缩放向量。
  9948. * @param translation 平移向量。
  9949. * @param rotation 旋转四元数。
  9950. * @param scale 缩放向量。
  9951. * @return 是否分解成功。
  9952. */
  9953. decomposeTransRotScale(translation:laya.d3.math.Vector3,rotation:laya.d3.math.Quaternion,scale:laya.d3.math.Vector3):boolean;
  9954. /**
  9955. * 分解矩阵为平移向量、旋转矩阵、缩放向量。
  9956. * @param translation 平移向量。
  9957. * @param rotationMatrix 旋转矩阵。
  9958. * @param scale 缩放向量。
  9959. * @return 是否分解成功。
  9960. */
  9961. decomposeTransRotMatScale(translation:laya.d3.math.Vector3,rotationMatrix:Matrix4x4,scale:laya.d3.math.Vector3):boolean;
  9962. /**
  9963. * 分解旋转矩阵的旋转为YawPitchRoll欧拉角。
  9964. * @param out float yaw
  9965. * @param out float pitch
  9966. * @param out float roll
  9967. * @return
  9968. */
  9969. decomposeYawPitchRoll(yawPitchRoll:laya.d3.math.Vector3):void;
  9970. /**
  9971. * 归一化矩阵
  9972. */
  9973. normalize():void;
  9974. /**
  9975. * 计算矩阵的转置矩阵
  9976. */
  9977. transpose():Matrix4x4;
  9978. /**
  9979. * 计算一个矩阵的逆矩阵
  9980. * @param out 输出矩阵
  9981. */
  9982. invert(out:Matrix4x4):void;
  9983. /**
  9984. * 计算BlillBoard矩阵
  9985. * @param objectPosition 物体位置
  9986. * @param cameraPosition 相机位置
  9987. * @param cameraUp 相机上向量
  9988. * @param cameraForward 相机前向量
  9989. * @param mat 变换矩阵
  9990. */
  9991. static billboard(objectPosition:laya.d3.math.Vector3,cameraPosition:laya.d3.math.Vector3,cameraRight:laya.d3.math.Vector3,cameraUp:laya.d3.math.Vector3,cameraForward:laya.d3.math.Vector3,mat:Matrix4x4):void;
  9992. /**
  9993. * 设置矩阵为单位矩阵
  9994. */
  9995. identity():void;
  9996. /**
  9997. * 克隆。
  9998. * @param destObject 克隆源。
  9999. */
  10000. cloneTo(destObject:any):void;
  10001. /**
  10002. * 克隆。
  10003. * @return 克隆副本。
  10004. */
  10005. clone():any;
  10006. static translation(v3:laya.d3.math.Vector3,out:Matrix4x4):void;
  10007. /**
  10008. * 获取平移向量。
  10009. * @param out 平移向量。
  10010. */
  10011. getTranslationVector(out:laya.d3.math.Vector3):void;
  10012. /**
  10013. * 设置平移向量。
  10014. * @param translate 平移向量。
  10015. */
  10016. setTranslationVector(translate:laya.d3.math.Vector3):void;
  10017. /**
  10018. * 获取前向量。
  10019. * @param out 前向量。
  10020. */
  10021. getForward(out:laya.d3.math.Vector3):void;
  10022. /**
  10023. * 设置前向量。
  10024. * @param forward 前向量。
  10025. */
  10026. setForward(forward:laya.d3.math.Vector3):void;
  10027. }
  10028. }
  10029. declare module laya.d3.math.Native {
  10030. /**
  10031. * <code>Quaternion</code> 类用于创建四元数。
  10032. */
  10033. class ConchQuaternion implements laya.d3.core.IClone {
  10034. /**
  10035. * 默认矩阵,禁止修改
  10036. */
  10037. static DEFAULT:ConchQuaternion;
  10038. /**
  10039. * 无效矩阵,禁止修改
  10040. */
  10041. static NAN:ConchQuaternion;
  10042. /**
  10043. * 从欧拉角生成四元数(顺序为Yaw、Pitch、Roll)
  10044. * @param yaw yaw值
  10045. * @param pitch pitch值
  10046. * @param roll roll值
  10047. * @param out 输出四元数
  10048. */
  10049. static createFromYawPitchRoll(yaw:number,pitch:number,roll:number,out:ConchQuaternion):void;
  10050. /**
  10051. * 计算两个四元数相乘
  10052. * @param left left四元数
  10053. * @param right right四元数
  10054. * @param out 输出四元数
  10055. */
  10056. static multiply(left:ConchQuaternion,right:ConchQuaternion,out:ConchQuaternion):void;
  10057. private static arcTanAngle:any;
  10058. private static angleTo:any;
  10059. /**
  10060. * 从指定的轴和角度计算四元数
  10061. * @param axis 轴
  10062. * @param rad 角度
  10063. * @param out 输出四元数
  10064. */
  10065. static createFromAxisAngle(axis:laya.d3.math.Native.ConchVector3,rad:number,out:ConchQuaternion):void;
  10066. /**
  10067. * 根据3x3矩阵计算四元数
  10068. * @param sou 源矩阵
  10069. * @param out 输出四元数
  10070. */
  10071. static createFromMatrix3x3(sou:laya.d3.math.Matrix3x3,out:ConchQuaternion):void;
  10072. /**
  10073. * 从旋转矩阵计算四元数
  10074. * @param mat 旋转矩阵
  10075. * @param out 输出四元数
  10076. */
  10077. static createFromMatrix4x4(mat:laya.d3.math.Matrix4x4,out:ConchQuaternion):void;
  10078. /**
  10079. * 球面插值
  10080. * @param left left四元数
  10081. * @param right right四元数
  10082. * @param a 插值比例
  10083. * @param out 输出四元数
  10084. * @return 输出Float32Array
  10085. */
  10086. static slerp(left:ConchQuaternion,right:ConchQuaternion,t:number,out:ConchQuaternion):Float32Array;
  10087. /**
  10088. * 计算两个四元数的线性插值
  10089. * @param left left四元数
  10090. * @param right right四元数b
  10091. * @param t 插值比例
  10092. * @param out 输出四元数
  10093. */
  10094. static lerp(left:ConchQuaternion,right:ConchQuaternion,amount:number,out:ConchQuaternion):void;
  10095. /**
  10096. * 计算两个四元数的和
  10097. * @param left left四元数
  10098. * @param right right 四元数
  10099. * @param out 输出四元数
  10100. */
  10101. static add(left:any,right:ConchQuaternion,out:ConchQuaternion):void;
  10102. /**
  10103. * 计算两个四元数的点积
  10104. * @param left left四元数
  10105. * @param right right四元数
  10106. * @return 点积
  10107. */
  10108. static dot(left:any,right:ConchQuaternion):number;
  10109. /**
  10110. * 四元数元素数组
  10111. */
  10112. elements:Float32Array;
  10113. /**
  10114. * 获取四元数的x值
  10115. */
  10116. /**
  10117. * 设置四元数的x值
  10118. */
  10119. x:number;
  10120. /**
  10121. * 获取四元数的y值
  10122. */
  10123. /**
  10124. * 设置四元数的y值
  10125. */
  10126. y:number;
  10127. /**
  10128. * 获取四元数的z值
  10129. */
  10130. /**
  10131. * 设置四元数的z值
  10132. */
  10133. z:number;
  10134. /**
  10135. * 获取四元数的w值
  10136. */
  10137. /**
  10138. * 设置四元数的w值
  10139. */
  10140. w:number;
  10141. /**
  10142. * 创建一个 <code>Quaternion</code> 实例。
  10143. * @param x 四元数的x值
  10144. * @param y 四元数的y值
  10145. * @param z 四元数的z值
  10146. * @param w 四元数的w值
  10147. */
  10148. constructor(x?:number,y?:number,z?:number,w?:number,nativeElements?:Float32Array);
  10149. /**
  10150. * 根据缩放值缩放四元数
  10151. * @param scale 缩放值
  10152. * @param out 输出四元数
  10153. */
  10154. scaling(scaling:number,out:ConchQuaternion):void;
  10155. /**
  10156. * 归一化四元数
  10157. * @param out 输出四元数
  10158. */
  10159. normalize(out:ConchQuaternion):void;
  10160. /**
  10161. * 计算四元数的长度
  10162. * @return 长度
  10163. */
  10164. length():number;
  10165. /**
  10166. * 根据绕X轴的角度旋转四元数
  10167. * @param rad 角度
  10168. * @param out 输出四元数
  10169. */
  10170. rotateX(rad:number,out:ConchQuaternion):void;
  10171. /**
  10172. * 根据绕Y轴的制定角度旋转四元数
  10173. * @param rad 角度
  10174. * @param out 输出四元数
  10175. */
  10176. rotateY(rad:number,out:ConchQuaternion):void;
  10177. /**
  10178. * 根据绕Z轴的制定角度旋转四元数
  10179. * @param rad 角度
  10180. * @param out 输出四元数
  10181. */
  10182. rotateZ(rad:number,out:ConchQuaternion):void;
  10183. /**
  10184. * 分解四元数到欧拉角(顺序为Yaw、Pitch、Roll),参考自http://xboxforums.create.msdn.com/forums/p/4574/23988.aspx#23988,问题绕X轴翻转超过±90度时有,会产生瞬间反转
  10185. * @param quaternion 源四元数
  10186. * @param out 欧拉角值
  10187. */
  10188. getYawPitchRoll(out:laya.d3.math.Native.ConchVector3):void;
  10189. /**
  10190. * 求四元数的逆
  10191. * @param out 输出四元数
  10192. */
  10193. invert(out:ConchQuaternion):void;
  10194. /**
  10195. * 设置四元数为单位算数
  10196. * @param out 输出四元数
  10197. */
  10198. identity():void;
  10199. /**
  10200. * 从Array数组拷贝值。
  10201. * @param array 数组。
  10202. * @param offset 数组偏移。
  10203. */
  10204. fromArray(array:any[],offset?:number):void;
  10205. /**
  10206. * 克隆。
  10207. * @param destObject 克隆源。
  10208. */
  10209. cloneTo(destObject:any):void;
  10210. /**
  10211. * 克隆。
  10212. * @return 克隆副本。
  10213. */
  10214. clone():any;
  10215. equals(b:ConchQuaternion):boolean;
  10216. /**
  10217. * 计算旋转观察四元数
  10218. * @param forward 方向
  10219. * @param up 上向量
  10220. * @param out 输出四元数
  10221. */
  10222. static rotationLookAt(forward:laya.d3.math.Native.ConchVector3,up:laya.d3.math.Native.ConchVector3,out:ConchQuaternion):void;
  10223. /**
  10224. * 计算观察四元数
  10225. * @param eye 观察者位置
  10226. * @param target 目标位置
  10227. * @param up 上向量
  10228. * @param out 输出四元数
  10229. */
  10230. static lookAt(eye:any,target:any,up:any,out:ConchQuaternion):void;
  10231. /**
  10232. * 计算长度的平方。
  10233. * @return 长度的平方。
  10234. */
  10235. lengthSquared():number;
  10236. /**
  10237. * 计算四元数的逆四元数。
  10238. * @param value 四元数。
  10239. * @param out 逆四元数。
  10240. */
  10241. static invert(value:ConchQuaternion,out:ConchQuaternion):void;
  10242. /**
  10243. * 通过一个3x3矩阵创建一个四元数
  10244. * @param matrix3x3 3x3矩阵
  10245. * @param out 四元数
  10246. */
  10247. static rotationMatrix(matrix3x3:laya.d3.math.Matrix3x3,out:ConchQuaternion):void;
  10248. }
  10249. }
  10250. declare module laya.d3.math.Native {
  10251. /**
  10252. * <code>Vector3</code> 类用于创建三维向量。
  10253. */
  10254. class ConchVector3 implements laya.d3.core.IClone {
  10255. /**
  10256. * 零向量,禁止修改
  10257. */
  10258. static ZERO:ConchVector3;
  10259. /**
  10260. * 一向量,禁止修改
  10261. */
  10262. static ONE:ConchVector3;
  10263. /**
  10264. * X轴单位向量,禁止修改
  10265. */
  10266. static NegativeUnitX:ConchVector3;
  10267. /**
  10268. * X轴单位向量,禁止修改
  10269. */
  10270. static UnitX:ConchVector3;
  10271. /**
  10272. * Y轴单位向量,禁止修改
  10273. */
  10274. static UnitY:ConchVector3;
  10275. /**
  10276. * Z轴单位向量,禁止修改
  10277. */
  10278. static UnitZ:ConchVector3;
  10279. /**
  10280. * 右手坐标系统前向量,禁止修改
  10281. */
  10282. static ForwardRH:ConchVector3;
  10283. /**
  10284. * 左手坐标系统前向量,禁止修改
  10285. */
  10286. static ForwardLH:ConchVector3;
  10287. /**
  10288. * 上向量,禁止修改
  10289. */
  10290. static Up:ConchVector3;
  10291. /**
  10292. * 无效矩阵,禁止修改
  10293. */
  10294. static NAN:ConchVector3;
  10295. /**
  10296. * [只读]向量元素集合。
  10297. */
  10298. elements:Float32Array;
  10299. /**
  10300. * 两个三维向量距离的平方。
  10301. * @param value1 向量1。
  10302. * @param value2 向量2。
  10303. * @return 距离的平方。
  10304. */
  10305. static distanceSquared(value1:ConchVector3,value2:ConchVector3):number;
  10306. /**
  10307. * 两个三维向量距离。
  10308. * @param value1 向量1。
  10309. * @param value2 向量2。
  10310. * @return 距离。
  10311. */
  10312. static distance(value1:ConchVector3,value2:ConchVector3):number;
  10313. /**
  10314. * 分别取两个三维向量x、y、z的最小值计算新的三维向量。
  10315. * @param a 。
  10316. * @param b 。
  10317. * @param out 。
  10318. */
  10319. static min(a:ConchVector3,b:ConchVector3,out:ConchVector3):void;
  10320. /**
  10321. * 分别取两个三维向量x、y、z的最大值计算新的三维向量。
  10322. * @param a a三维向量。
  10323. * @param b b三维向量。
  10324. * @param out 结果三维向量。
  10325. */
  10326. static max(a:ConchVector3,b:ConchVector3,out:ConchVector3):void;
  10327. /**
  10328. * 根据四元数旋转三维向量。
  10329. * @param source 源三维向量。
  10330. * @param rotation 旋转四元数。
  10331. * @param out 输出三维向量。
  10332. */
  10333. static transformQuat(source:ConchVector3,rotation:laya.d3.math.Native.ConchQuaternion,out:ConchVector3):void;
  10334. /**
  10335. * 计算标量长度。
  10336. * @param a 源三维向量。
  10337. * @return 标量长度。
  10338. */
  10339. static scalarLength(a:ConchVector3):number;
  10340. /**
  10341. * 计算标量长度的平方。
  10342. * @param a 源三维向量。
  10343. * @return 标量长度的平方。
  10344. */
  10345. static scalarLengthSquared(a:ConchVector3):number;
  10346. /**
  10347. * 归一化三维向量。
  10348. * @param s 源三维向量。
  10349. * @param out 输出三维向量。
  10350. */
  10351. static normalize(s:ConchVector3,out:ConchVector3):void;
  10352. /**
  10353. * 计算两个三维向量的乘积。
  10354. * @param a left三维向量。
  10355. * @param b right三维向量。
  10356. * @param out 输出三维向量。
  10357. */
  10358. static multiply(a:ConchVector3,b:ConchVector3,out:ConchVector3):void;
  10359. /**
  10360. * 缩放三维向量。
  10361. * @param a 源三维向量。
  10362. * @param b 缩放值。
  10363. * @param out 输出三维向量。
  10364. */
  10365. static scale(a:ConchVector3,b:number,out:ConchVector3):void;
  10366. /**
  10367. * 插值三维向量。
  10368. * @param a left向量。
  10369. * @param b right向量。
  10370. * @param t 插值比例。
  10371. * @param out 输出向量。
  10372. */
  10373. static lerp(a:ConchVector3,b:ConchVector3,t:number,out:ConchVector3):void;
  10374. /**
  10375. * 通过矩阵转换一个三维向量到另外一个三维向量。
  10376. * @param vector 源三维向量。
  10377. * @param transform 变换矩阵。
  10378. * @param result 输出三维向量。
  10379. */
  10380. static transformV3ToV3(vector:ConchVector3,transform:any,result:ConchVector3):void;
  10381. /**
  10382. * 通过矩阵转换一个三维向量到另外一个四维向量。
  10383. * @param vector 源三维向量。
  10384. * @param transform 变换矩阵。
  10385. * @param result 输出四维向量。
  10386. */
  10387. static transformV3ToV4(vector:ConchVector3,transform:any,result:laya.d3.math.Native.ConchVector4):void;
  10388. /**
  10389. * 通过法线矩阵转换一个法线三维向量到另外一个三维向量。
  10390. * @param normal 源法线三维向量。
  10391. * @param transform 法线变换矩阵。
  10392. * @param result 输出法线三维向量。
  10393. */
  10394. static TransformNormal(normal:ConchVector3,transform:any,result:ConchVector3):void;
  10395. /**
  10396. * 通过矩阵转换一个三维向量到另外一个归一化的三维向量。
  10397. * @param vector 源三维向量。
  10398. * @param transform 变换矩阵。
  10399. * @param result 输出三维向量。
  10400. */
  10401. static transformCoordinate(coordinate:ConchVector3,transform:any,result:ConchVector3):void;
  10402. /**
  10403. * 求一个指定范围的向量
  10404. * @param value clamp向量
  10405. * @param min 最小
  10406. * @param max 最大
  10407. * @param out 输出向量
  10408. */
  10409. static Clamp(value:ConchVector3,min:ConchVector3,max:ConchVector3,out:ConchVector3):void;
  10410. /**
  10411. * 求两个三维向量的和。
  10412. * @param a left三维向量。
  10413. * @param b right三维向量。
  10414. * @param out 输出向量。
  10415. */
  10416. static add(a:ConchVector3,b:ConchVector3,out:ConchVector3):void;
  10417. /**
  10418. * 求两个三维向量的差。
  10419. * @param a left三维向量。
  10420. * @param b right三维向量。
  10421. * @param o out 输出向量。
  10422. */
  10423. static subtract(a:ConchVector3,b:ConchVector3,o:ConchVector3):void;
  10424. /**
  10425. * 求两个三维向量的叉乘。
  10426. * @param a left向量。
  10427. * @param b right向量。
  10428. * @param o 输出向量。
  10429. */
  10430. static cross(a:ConchVector3,b:ConchVector3,o:ConchVector3):void;
  10431. /**
  10432. * 求两个三维向量的点积。
  10433. * @param a left向量。
  10434. * @param b right向量。
  10435. * @return 点积。
  10436. */
  10437. static dot(a:ConchVector3,b:ConchVector3):number;
  10438. /**
  10439. * 判断两个三维向量是否相等。
  10440. * @param a 三维向量。
  10441. * @param b 三维向量。
  10442. * @return 是否相等。
  10443. */
  10444. static equals(a:ConchVector3,b:ConchVector3):boolean;
  10445. /**
  10446. * 获取X轴坐标。
  10447. * @return X轴坐标。
  10448. */
  10449. /**
  10450. * 设置X轴坐标。
  10451. * @param value X轴坐标。
  10452. */
  10453. x:number;
  10454. /**
  10455. * 获取Y轴坐标。
  10456. * @return Y轴坐标。
  10457. */
  10458. /**
  10459. * 设置Y轴坐标。
  10460. * @param value Y轴坐标。
  10461. */
  10462. y:number;
  10463. /**
  10464. * 获取Z轴坐标。
  10465. * @return Z轴坐标。
  10466. */
  10467. /**
  10468. * 设置Z轴坐标。
  10469. * @param value Z轴坐标。
  10470. */
  10471. z:number;
  10472. /**
  10473. * 创建一个 <code>Vector3</code> 实例。
  10474. * @param x X轴坐标。
  10475. * @param y Y轴坐标。
  10476. * @param z Z轴坐标。
  10477. */
  10478. constructor(x?:number,y?:number,z?:number,nativeElements?:Float32Array);
  10479. /**
  10480. * 设置xyz值。
  10481. * @param x X值。
  10482. * @param y Y值。
  10483. * @param z Z值。
  10484. */
  10485. setValue(x:number,y:number,z:number):void;
  10486. /**
  10487. * 从Array数组拷贝值。
  10488. * @param array 数组。
  10489. * @param offset 数组偏移。
  10490. */
  10491. fromArray(array:any[],offset?:number):void;
  10492. /**
  10493. * 克隆。
  10494. * @param destObject 克隆源。
  10495. */
  10496. cloneTo(destObject:any):void;
  10497. /**
  10498. * 克隆。
  10499. * @return 克隆副本。
  10500. */
  10501. clone():any;
  10502. toDefault():void;
  10503. }
  10504. }
  10505. declare module laya.d3.math.Native {
  10506. /**
  10507. * <code>Vector4</code> 类用于创建四维向量。
  10508. */
  10509. class ConchVector4 implements laya.d3.core.IClone {
  10510. /**
  10511. * 零向量,禁止修改
  10512. */
  10513. static ZERO:ConchVector4;
  10514. static ONE:ConchVector4;
  10515. static UnitX:ConchVector4;
  10516. static UnitY:ConchVector4;
  10517. static UnitZ:ConchVector4;
  10518. static UnitW:ConchVector4;
  10519. /**
  10520. * [只读]向量元素集合。
  10521. */
  10522. elements:Float32Array;
  10523. /**
  10524. * 获取X轴坐标。
  10525. * @return X轴坐标。
  10526. */
  10527. /**
  10528. * 设置X轴坐标。
  10529. * @param value X轴坐标。
  10530. */
  10531. x:number;
  10532. /**
  10533. * 获取Y轴坐标。
  10534. * @return Y轴坐标。
  10535. */
  10536. /**
  10537. * 设置Y轴坐标。
  10538. * @param value Y轴坐标。
  10539. */
  10540. y:number;
  10541. /**
  10542. * 获取Z轴坐标。
  10543. * @return Z轴坐标。
  10544. */
  10545. /**
  10546. * 设置Z轴坐标。
  10547. * @param value Z轴坐标。
  10548. */
  10549. z:number;
  10550. /**
  10551. * 获取W轴坐标。
  10552. * @return W轴坐标。
  10553. */
  10554. /**
  10555. * 设置W轴坐标。
  10556. * @param value W轴坐标。
  10557. */
  10558. w:number;
  10559. /**
  10560. * 创建一个 <code>Vector4</code> 实例。
  10561. * @param x X轴坐标。
  10562. * @param y Y轴坐标。
  10563. * @param z Z轴坐标。
  10564. * @param w W轴坐标。
  10565. */
  10566. constructor(x?:number,y?:number,z?:number,w?:number);
  10567. /**
  10568. * 从Array数组拷贝值。
  10569. * @param array 数组。
  10570. * @param offset 数组偏移。
  10571. */
  10572. fromArray(array:any[],offset?:number):void;
  10573. /**
  10574. * 克隆。
  10575. * @param destObject 克隆源。
  10576. */
  10577. cloneTo(destObject:any):void;
  10578. /**
  10579. * 克隆。
  10580. * @return 克隆副本。
  10581. */
  10582. clone():any;
  10583. /**
  10584. * 插值四维向量。
  10585. * @param a left向量。
  10586. * @param b right向量。
  10587. * @param t 插值比例。
  10588. * @param out 输出向量。
  10589. */
  10590. static lerp(a:ConchVector4,b:ConchVector4,t:number,out:ConchVector4):void;
  10591. /**
  10592. * 通过4x4矩阵把一个四维向量转换为另一个四维向量
  10593. * @param vector4 带转换四维向量。
  10594. * @param M4x4 4x4矩阵。
  10595. * @param out 转换后四维向量。
  10596. */
  10597. static transformByM4x4(vector4:ConchVector4,m4x4:any,out:ConchVector4):void;
  10598. /**
  10599. * 判断两个四维向量是否相等。
  10600. * @param a 四维向量。
  10601. * @param b 四维向量。
  10602. * @return 是否相等。
  10603. */
  10604. static equals(a:ConchVector4,b:ConchVector4):boolean;
  10605. /**
  10606. * 求四维向量的长度。
  10607. * @return 长度。
  10608. */
  10609. length():number;
  10610. /**
  10611. * 求四维向量长度的平方。
  10612. * @return 长度的平方。
  10613. */
  10614. lengthSquared():number;
  10615. /**
  10616. * 归一化四维向量。
  10617. * @param s 源四维向量。
  10618. * @param out 输出四维向量。
  10619. */
  10620. static normalize(s:ConchVector4,out:ConchVector4):void;
  10621. /**
  10622. * 求两个四维向量的和。
  10623. * @param a 四维向量。
  10624. * @param b 四维向量。
  10625. * @param out 输出向量。
  10626. */
  10627. static add(a:ConchVector4,b:ConchVector4,out:ConchVector4):void;
  10628. /**
  10629. * 求两个四维向量的差。
  10630. * @param a 四维向量。
  10631. * @param b 四维向量。
  10632. * @param out 输出向量。
  10633. */
  10634. static subtract(a:ConchVector4,b:ConchVector4,out:ConchVector4):void;
  10635. /**
  10636. * 计算两个四维向量的乘积。
  10637. * @param a 四维向量。
  10638. * @param b 四维向量。
  10639. * @param out 输出向量。
  10640. */
  10641. static multiply(a:ConchVector4,b:ConchVector4,out:ConchVector4):void;
  10642. /**
  10643. * 缩放四维向量。
  10644. * @param a 源四维向量。
  10645. * @param b 缩放值。
  10646. * @param out 输出四维向量。
  10647. */
  10648. static scale(a:ConchVector4,b:number,out:ConchVector4):void;
  10649. /**
  10650. * 求一个指定范围的四维向量
  10651. * @param value clamp向量
  10652. * @param min 最小
  10653. * @param max 最大
  10654. * @param out 输出向量
  10655. */
  10656. static Clamp(value:ConchVector4,min:ConchVector4,max:ConchVector4,out:ConchVector4):void;
  10657. /**
  10658. * 两个四维向量距离的平方。
  10659. * @param value1 向量1。
  10660. * @param value2 向量2。
  10661. * @return 距离的平方。
  10662. */
  10663. static distanceSquared(value1:ConchVector4,value2:ConchVector4):number;
  10664. /**
  10665. * 两个四维向量距离。
  10666. * @param value1 向量1。
  10667. * @param value2 向量2。
  10668. * @return 距离。
  10669. */
  10670. static distance(value1:ConchVector4,value2:ConchVector4):number;
  10671. /**
  10672. * 求两个四维向量的点积。
  10673. * @param a 向量。
  10674. * @param b 向量。
  10675. * @return 点积。
  10676. */
  10677. static dot(a:ConchVector4,b:ConchVector4):number;
  10678. /**
  10679. * 分别取两个四维向量x、y、z的最小值计算新的四维向量。
  10680. * @param a 四维向量。
  10681. * @param b 四维向量。
  10682. * @param out 结果三维向量。
  10683. */
  10684. static min(a:ConchVector4,b:ConchVector4,out:ConchVector4):void;
  10685. /**
  10686. * 分别取两个四维向量x、y、z的最大值计算新的四维向量。
  10687. * @param a 四维向量。
  10688. * @param b 四维向量。
  10689. * @param out 结果三维向量。
  10690. */
  10691. static max(a:ConchVector4,b:ConchVector4,out:ConchVector4):void;
  10692. }
  10693. }
  10694. declare module laya.d3.math {
  10695. /**
  10696. * <code>Plane</code> 类用于创建平面。
  10697. */
  10698. class Plane {
  10699. /**
  10700. * 平面的向量
  10701. */
  10702. normal:laya.d3.math.Vector3;
  10703. /**
  10704. * 平面到坐标系原点的距离
  10705. */
  10706. distance:number;
  10707. /**
  10708. * 平面与其他几何体相交类型
  10709. */
  10710. static PlaneIntersectionType_Back:number;
  10711. static PlaneIntersectionType_Front:number;
  10712. static PlaneIntersectionType_Intersecting:number;
  10713. /**
  10714. * 创建一个 <code>Plane</code> 实例。
  10715. * @param normal 平面的向量
  10716. * @param d 平面到原点的距离
  10717. */
  10718. constructor(normal:laya.d3.math.Vector3,d?:number);
  10719. /**
  10720. * 创建一个 <code>Plane</code> 实例。
  10721. * @param point1 第一点
  10722. * @param point2 第二点
  10723. * @param point3 第三点
  10724. */
  10725. static createPlaneBy3P(point1:laya.d3.math.Vector3,point2:laya.d3.math.Vector3,point3:laya.d3.math.Vector3):Plane;
  10726. /**
  10727. * 更改平面法线向量的系数,使之成单位长度。
  10728. */
  10729. normalize():void;
  10730. }
  10731. }
  10732. declare module laya.d3.math {
  10733. /**
  10734. * <code>Quaternion</code> 类用于创建四元数。
  10735. */
  10736. class Quaternion implements laya.d3.core.IClone {
  10737. /**
  10738. * 默认矩阵,禁止修改
  10739. */
  10740. static DEFAULT:Quaternion;
  10741. /**
  10742. * 无效矩阵,禁止修改
  10743. */
  10744. static NAN:Quaternion;
  10745. /**
  10746. * 从欧拉角生成四元数(顺序为Yaw、Pitch、Roll)
  10747. * @param yaw yaw值
  10748. * @param pitch pitch值
  10749. * @param roll roll值
  10750. * @param out 输出四元数
  10751. */
  10752. static createFromYawPitchRoll(yaw:number,pitch:number,roll:number,out:Quaternion):void;
  10753. /**
  10754. * 计算两个四元数相乘
  10755. * @param left left四元数
  10756. * @param right right四元数
  10757. * @param out 输出四元数
  10758. */
  10759. static multiply(left:Quaternion,right:Quaternion,out:Quaternion):void;
  10760. private static arcTanAngle:any;
  10761. private static angleTo:any;
  10762. /**
  10763. * 从指定的轴和角度计算四元数
  10764. * @param axis 轴
  10765. * @param rad 角度
  10766. * @param out 输出四元数
  10767. */
  10768. static createFromAxisAngle(axis:laya.d3.math.Vector3,rad:number,out:Quaternion):void;
  10769. /**
  10770. * 从旋转矩阵计算四元数
  10771. * @param mat 旋转矩阵
  10772. * @param out 输出四元数
  10773. */
  10774. static createFromMatrix4x4(mat:laya.d3.math.Matrix4x4,out:Quaternion):void;
  10775. /**
  10776. * 球面插值
  10777. * @param left left四元数
  10778. * @param right right四元数
  10779. * @param a 插值比例
  10780. * @param out 输出四元数
  10781. * @return 输出Float32Array
  10782. */
  10783. static slerp(left:Quaternion,right:Quaternion,t:number,out:Quaternion):Quaternion;
  10784. /**
  10785. * 计算两个四元数的线性插值
  10786. * @param left left四元数
  10787. * @param right right四元数b
  10788. * @param t 插值比例
  10789. * @param out 输出四元数
  10790. */
  10791. static lerp(left:Quaternion,right:Quaternion,amount:number,out:Quaternion):void;
  10792. /**
  10793. * 计算两个四元数的和
  10794. * @param left left四元数
  10795. * @param right right 四元数
  10796. * @param out 输出四元数
  10797. */
  10798. static add(left:Quaternion,right:Quaternion,out:Quaternion):void;
  10799. /**
  10800. * 计算两个四元数的点积
  10801. * @param left left四元数
  10802. * @param right right四元数
  10803. * @return 点积
  10804. */
  10805. static dot(left:Quaternion,right:Quaternion):number;
  10806. /**
  10807. * X轴坐标
  10808. */
  10809. x:number;
  10810. /**
  10811. * Y轴坐标
  10812. */
  10813. y:number;
  10814. /**
  10815. * Z轴坐标
  10816. */
  10817. z:number;
  10818. /**
  10819. * W轴坐标
  10820. */
  10821. w:number;
  10822. /**
  10823. * 创建一个 <code>Quaternion</code> 实例。
  10824. * @param x 四元数的x值
  10825. * @param y 四元数的y值
  10826. * @param z 四元数的z值
  10827. * @param w 四元数的w值
  10828. */
  10829. constructor(x?:number,y?:number,z?:number,w?:number,nativeElements?:Float32Array);
  10830. /**
  10831. * 根据缩放值缩放四元数
  10832. * @param scale 缩放值
  10833. * @param out 输出四元数
  10834. */
  10835. scaling(scaling:number,out:Quaternion):void;
  10836. /**
  10837. * 归一化四元数
  10838. * @param out 输出四元数
  10839. */
  10840. normalize(out:Quaternion):void;
  10841. /**
  10842. * 计算四元数的长度
  10843. * @return 长度
  10844. */
  10845. length():number;
  10846. /**
  10847. * 根据绕X轴的角度旋转四元数
  10848. * @param rad 角度
  10849. * @param out 输出四元数
  10850. */
  10851. rotateX(rad:number,out:Quaternion):void;
  10852. /**
  10853. * 根据绕Y轴的制定角度旋转四元数
  10854. * @param rad 角度
  10855. * @param out 输出四元数
  10856. */
  10857. rotateY(rad:number,out:Quaternion):void;
  10858. /**
  10859. * 根据绕Z轴的制定角度旋转四元数
  10860. * @param rad 角度
  10861. * @param out 输出四元数
  10862. */
  10863. rotateZ(rad:number,out:Quaternion):void;
  10864. /**
  10865. * 分解四元数到欧拉角(顺序为Yaw、Pitch、Roll),参考自http://xboxforums.create.msdn.com/forums/p/4574/23988.aspx#23988,问题绕X轴翻转超过±90度时有,会产生瞬间反转
  10866. * @param quaternion 源四元数
  10867. * @param out 欧拉角值
  10868. */
  10869. getYawPitchRoll(out:laya.d3.math.Vector3):void;
  10870. /**
  10871. * 求四元数的逆
  10872. * @param out 输出四元数
  10873. */
  10874. invert(out:Quaternion):void;
  10875. /**
  10876. * 设置四元数为单位算数
  10877. * @param out 输出四元数
  10878. */
  10879. identity():void;
  10880. /**
  10881. * 从Array数组拷贝值。
  10882. * @param array 数组。
  10883. * @param offset 数组偏移。
  10884. */
  10885. fromArray(array:any[],offset?:number):void;
  10886. /**
  10887. * 克隆。
  10888. * @param destObject 克隆源。
  10889. */
  10890. cloneTo(destObject:any):void;
  10891. /**
  10892. * 克隆。
  10893. * @return 克隆副本。
  10894. */
  10895. clone():any;
  10896. equals(b:Quaternion):boolean;
  10897. /**
  10898. * 计算旋转观察四元数
  10899. * @param forward 方向
  10900. * @param up 上向量
  10901. * @param out 输出四元数
  10902. */
  10903. static rotationLookAt(forward:laya.d3.math.Vector3,up:laya.d3.math.Vector3,out:Quaternion):void;
  10904. /**
  10905. * 计算观察四元数
  10906. * @param eye 观察者位置
  10907. * @param target 目标位置
  10908. * @param up 上向量
  10909. * @param out 输出四元数
  10910. */
  10911. static lookAt(eye:laya.d3.math.Vector3,target:laya.d3.math.Vector3,up:laya.d3.math.Vector3,out:Quaternion):void;
  10912. /**
  10913. * 计算长度的平方。
  10914. * @return 长度的平方。
  10915. */
  10916. lengthSquared():number;
  10917. /**
  10918. * 计算四元数的逆四元数。
  10919. * @param value 四元数。
  10920. * @param out 逆四元数。
  10921. */
  10922. static invert(value:Quaternion,out:Quaternion):void;
  10923. /**
  10924. * 通过一个3x3矩阵创建一个四元数
  10925. * @param matrix3x3 3x3矩阵
  10926. * @param out 四元数
  10927. */
  10928. static rotationMatrix(matrix3x3:laya.d3.math.Matrix3x3,out:Quaternion):void;
  10929. forNativeElement(nativeElements?:Float32Array):void;
  10930. }
  10931. }
  10932. declare module laya.d3.math {
  10933. /**
  10934. * <code>Rand</code> 类用于通过32位无符号整型随机种子创建随机数。
  10935. */
  10936. class Rand {
  10937. /**
  10938. * 通过无符号32位整形,获取32位浮点随机数。
  10939. * @param 无符号32位整形随机数 。
  10940. * @return 32位浮点随机数。
  10941. */
  10942. static getFloatFromInt(v:number):number;
  10943. /**
  10944. * 通过无符号32位整形,获取无符号8位字节随机数。
  10945. * @param 无符号32位整形随机数 。
  10946. * @return 无符号8位字节随机数。
  10947. */
  10948. static getByteFromInt(v:number):number;
  10949. /**
  10950. * 获取随机种子。
  10951. */
  10952. seeds:Uint32Array;
  10953. /**
  10954. * 获取随机种子。
  10955. * @return 随机种子。
  10956. */
  10957. /**
  10958. * 设置随机种子。
  10959. * @param seed 随机种子。
  10960. */
  10961. seed:number;
  10962. /**
  10963. * 创建一个 <code>Rand</code> 实例。
  10964. * @param seed 32位无符号整型随机种子。
  10965. */
  10966. constructor(seed:number);
  10967. /**
  10968. * 获取无符号32位整形随机数。
  10969. * @return 无符号32位整形随机数。
  10970. */
  10971. getUint():number;
  10972. /**
  10973. * 获取0到1之间的浮点随机数。
  10974. * @return 0到1之间的浮点随机数。
  10975. */
  10976. getFloat():number;
  10977. /**
  10978. * 获取-1到1之间的浮点随机数。
  10979. * @return -1到1之间的浮点随机数。
  10980. */
  10981. getSignedFloat():number;
  10982. }
  10983. }
  10984. declare module laya.d3.math {
  10985. /**
  10986. * <code>Rand</code> 类用于通过128位整型种子创建随机数,算法来自:https://github.com/AndreasMadsen/xorshift。
  10987. */
  10988. class RandX {
  10989. /**
  10990. * 基于时间种子的随机数。
  10991. */
  10992. static defaultRand:RandX;
  10993. /**
  10994. * 创建一个 <code>Rand</code> 实例。
  10995. * @param seed 随机种子。
  10996. */
  10997. constructor(seed:any[]);
  10998. /**
  10999. * 通过2x32位的数组,返回64位的随机数。
  11000. * @return 64位的随机数。
  11001. */
  11002. randomint():any[];
  11003. /**
  11004. * 返回[0,1)之间的随机数。
  11005. * @return
  11006. */
  11007. random():number;
  11008. }
  11009. }
  11010. declare module laya.d3.math {
  11011. /**
  11012. * <code>Ray</code> 类用于创建射线。
  11013. */
  11014. class Ray {
  11015. /**
  11016. * 原点
  11017. */
  11018. origin:laya.d3.math.Vector3;
  11019. /**
  11020. * 方向
  11021. */
  11022. direction:laya.d3.math.Vector3;
  11023. /**
  11024. * 创建一个 <code>Ray</code> 实例。
  11025. * @param origin 射线的起点
  11026. * @param direction 射线的方向
  11027. */
  11028. constructor(origin:laya.d3.math.Vector3,direction:laya.d3.math.Vector3);
  11029. }
  11030. }
  11031. declare module laya.d3.math {
  11032. /**
  11033. * <code>Vector2</code> 类用于创建二维向量。
  11034. */
  11035. class Vector2 implements laya.d3.core.IClone {
  11036. /**
  11037. * 零向量,禁止修改
  11038. */
  11039. static ZERO:Vector2;
  11040. /**
  11041. * 一向量,禁止修改
  11042. */
  11043. static ONE:Vector2;
  11044. /**
  11045. * X轴坐标
  11046. */
  11047. x:number;
  11048. /**
  11049. * Y轴坐标
  11050. */
  11051. y:number;
  11052. /**
  11053. * 创建一个 <code>Vector2</code> 实例。
  11054. * @param x X轴坐标。
  11055. * @param y Y轴坐标。
  11056. */
  11057. constructor(x?:number,y?:number);
  11058. /**
  11059. * 设置xy值。
  11060. * @param x X值。
  11061. * @param y Y值。
  11062. */
  11063. setValue(x:number,y:number):void;
  11064. /**
  11065. * 缩放二维向量。
  11066. * @param a 源二维向量。
  11067. * @param b 缩放值。
  11068. * @param out 输出二维向量。
  11069. */
  11070. static scale(a:Vector2,b:number,out:Vector2):void;
  11071. /**
  11072. * 从Array数组拷贝值。
  11073. * @param array 数组。
  11074. * @param offset 数组偏移。
  11075. */
  11076. fromArray(array:any[],offset?:number):void;
  11077. /**
  11078. * 克隆。
  11079. * @param destObject 克隆源。
  11080. */
  11081. cloneTo(destObject:any):void;
  11082. /**
  11083. * 求两个二维向量的点积。
  11084. * @param a left向量。
  11085. * @param b right向量。
  11086. * @return 点积。
  11087. */
  11088. static dot(a:Vector2,b:Vector2):number;
  11089. /**
  11090. * 归一化二维向量。
  11091. * @param s 源三维向量。
  11092. * @param out 输出三维向量。
  11093. */
  11094. static normalize(s:Vector2,out:Vector2):void;
  11095. /**
  11096. * 计算标量长度。
  11097. * @param a 源三维向量。
  11098. * @return 标量长度。
  11099. */
  11100. static scalarLength(a:Vector2):number;
  11101. /**
  11102. * 克隆。
  11103. * @return 克隆副本。
  11104. */
  11105. clone():any;
  11106. forNativeElement(nativeElements?:Float32Array):void;
  11107. static rewriteNumProperty(proto:any,name:string,index:number):void;
  11108. }
  11109. }
  11110. declare module laya.d3.math {
  11111. /**
  11112. * <code>Vector3</code> 类用于创建三维向量。
  11113. */
  11114. class Vector3 implements laya.d3.core.IClone {
  11115. /**
  11116. * 两个三维向量距离的平方。
  11117. * @param value1 向量1。
  11118. * @param value2 向量2。
  11119. * @return 距离的平方。
  11120. */
  11121. static distanceSquared(value1:Vector3,value2:Vector3):number;
  11122. /**
  11123. * 两个三维向量距离。
  11124. * @param value1 向量1。
  11125. * @param value2 向量2。
  11126. * @return 距离。
  11127. */
  11128. static distance(value1:Vector3,value2:Vector3):number;
  11129. /**
  11130. * 分别取两个三维向量x、y、z的最小值计算新的三维向量。
  11131. * @param a 。
  11132. * @param b 。
  11133. * @param out 。
  11134. */
  11135. static min(a:Vector3,b:Vector3,out:Vector3):void;
  11136. /**
  11137. * 分别取两个三维向量x、y、z的最大值计算新的三维向量。
  11138. * @param a a三维向量。
  11139. * @param b b三维向量。
  11140. * @param out 结果三维向量。
  11141. */
  11142. static max(a:Vector3,b:Vector3,out:Vector3):void;
  11143. /**
  11144. * 根据四元数旋转三维向量。
  11145. * @param source 源三维向量。
  11146. * @param rotation 旋转四元数。
  11147. * @param out 输出三维向量。
  11148. */
  11149. static transformQuat(source:Vector3,rotation:laya.d3.math.Quaternion,out:Vector3):void;
  11150. /**
  11151. * 计算标量长度。
  11152. * @param a 源三维向量。
  11153. * @return 标量长度。
  11154. */
  11155. static scalarLength(a:Vector3):number;
  11156. /**
  11157. * 计算标量长度的平方。
  11158. * @param a 源三维向量。
  11159. * @return 标量长度的平方。
  11160. */
  11161. static scalarLengthSquared(a:Vector3):number;
  11162. /**
  11163. * 归一化三维向量。
  11164. * @param s 源三维向量。
  11165. * @param out 输出三维向量。
  11166. */
  11167. static normalize(s:Vector3,out:Vector3):void;
  11168. /**
  11169. * 计算两个三维向量的乘积。
  11170. * @param a left三维向量。
  11171. * @param b right三维向量。
  11172. * @param out 输出三维向量。
  11173. */
  11174. static multiply(a:Vector3,b:Vector3,out:Vector3):void;
  11175. /**
  11176. * 缩放三维向量。
  11177. * @param a 源三维向量。
  11178. * @param b 缩放值。
  11179. * @param out 输出三维向量。
  11180. */
  11181. static scale(a:Vector3,b:number,out:Vector3):void;
  11182. /**
  11183. * 插值三维向量。
  11184. * @param a left向量。
  11185. * @param b right向量。
  11186. * @param t 插值比例。
  11187. * @param out 输出向量。
  11188. */
  11189. static lerp(a:Vector3,b:Vector3,t:number,out:Vector3):void;
  11190. /**
  11191. * 通过矩阵转换一个三维向量到另外一个三维向量。
  11192. * @param vector 源三维向量。
  11193. * @param transform 变换矩阵。
  11194. * @param result 输出三维向量。
  11195. */
  11196. static transformV3ToV3(vector:Vector3,transform:laya.d3.math.Matrix4x4,result:Vector3):void;
  11197. /**
  11198. * 通过矩阵转换一个三维向量到另外一个四维向量。
  11199. * @param vector 源三维向量。
  11200. * @param transform 变换矩阵。
  11201. * @param result 输出四维向量。
  11202. */
  11203. static transformV3ToV4(vector:Vector3,transform:laya.d3.math.Matrix4x4,result:laya.d3.math.Vector4):void;
  11204. /**
  11205. * 通过法线矩阵转换一个法线三维向量到另外一个三维向量。
  11206. * @param normal 源法线三维向量。
  11207. * @param transform 法线变换矩阵。
  11208. * @param result 输出法线三维向量。
  11209. */
  11210. static TransformNormal(normal:Vector3,transform:laya.d3.math.Matrix4x4,result:Vector3):void;
  11211. /**
  11212. * 通过矩阵转换一个三维向量到另外一个归一化的三维向量。
  11213. * @param vector 源三维向量。
  11214. * @param transform 变换矩阵。
  11215. * @param result 输出三维向量。
  11216. */
  11217. static transformCoordinate(coordinate:Vector3,transform:laya.d3.math.Matrix4x4,result:Vector3):void;
  11218. /**
  11219. * 求一个指定范围的向量
  11220. * @param value clamp向量
  11221. * @param min 最小
  11222. * @param max 最大
  11223. * @param out 输出向量
  11224. */
  11225. static Clamp(value:Vector3,min:Vector3,max:Vector3,out:Vector3):void;
  11226. /**
  11227. * 求两个三维向量的和。
  11228. * @param a left三维向量。
  11229. * @param b right三维向量。
  11230. * @param out 输出向量。
  11231. */
  11232. static add(a:Vector3,b:Vector3,out:Vector3):void;
  11233. /**
  11234. * 求两个三维向量的差。
  11235. * @param a left三维向量。
  11236. * @param b right三维向量。
  11237. * @param o out 输出向量。
  11238. */
  11239. static subtract(a:Vector3,b:Vector3,o:Vector3):void;
  11240. /**
  11241. * 求两个三维向量的叉乘。
  11242. * @param a left向量。
  11243. * @param b right向量。
  11244. * @param o 输出向量。
  11245. */
  11246. static cross(a:Vector3,b:Vector3,o:Vector3):void;
  11247. /**
  11248. * 求两个三维向量的点积。
  11249. * @param a left向量。
  11250. * @param b right向量。
  11251. * @return 点积。
  11252. */
  11253. static dot(a:Vector3,b:Vector3):number;
  11254. /**
  11255. * 判断两个三维向量是否相等。
  11256. * @param a 三维向量。
  11257. * @param b 三维向量。
  11258. * @return 是否相等。
  11259. */
  11260. static equals(a:Vector3,b:Vector3):boolean;
  11261. /**
  11262. * X轴坐标
  11263. */
  11264. x:number;
  11265. /**
  11266. * Y轴坐标
  11267. */
  11268. y:number;
  11269. /**
  11270. * Z轴坐标
  11271. */
  11272. z:number;
  11273. /**
  11274. * 创建一个 <code>Vector3</code> 实例。
  11275. * @param x X轴坐标。
  11276. * @param y Y轴坐标。
  11277. * @param z Z轴坐标。
  11278. */
  11279. constructor(x?:number,y?:number,z?:number,nativeElements?:Float32Array);
  11280. /**
  11281. * 设置xyz值。
  11282. * @param x X值。
  11283. * @param y Y值。
  11284. * @param z Z值。
  11285. */
  11286. setValue(x:number,y:number,z:number):void;
  11287. /**
  11288. * 从Array数组拷贝值。
  11289. * @param array 数组。
  11290. * @param offset 数组偏移。
  11291. */
  11292. fromArray(array:any[],offset?:number):void;
  11293. /**
  11294. * 克隆。
  11295. * @param destObject 克隆源。
  11296. */
  11297. cloneTo(destObject:any):void;
  11298. /**
  11299. * 克隆。
  11300. * @return 克隆副本。
  11301. */
  11302. clone():any;
  11303. toDefault():void;
  11304. forNativeElement(nativeElements?:Float32Array):void;
  11305. }
  11306. }
  11307. declare module laya.d3.math {
  11308. /**
  11309. * <code>Vector4</code> 类用于创建四维向量。
  11310. */
  11311. class Vector4 implements laya.d3.core.IClone {
  11312. /**
  11313. * 零向量,禁止修改
  11314. */
  11315. static ZERO:Vector4;
  11316. static ONE:Vector4;
  11317. static UnitX:Vector4;
  11318. static UnitY:Vector4;
  11319. static UnitZ:Vector4;
  11320. static UnitW:Vector4;
  11321. /**
  11322. * X轴坐标
  11323. */
  11324. x:number;
  11325. /**
  11326. * Y轴坐标
  11327. */
  11328. y:number;
  11329. /**
  11330. * Z轴坐标
  11331. */
  11332. z:number;
  11333. /**
  11334. * W轴坐标
  11335. */
  11336. w:number;
  11337. /**
  11338. * 创建一个 <code>Vector4</code> 实例。
  11339. * @param x X轴坐标。
  11340. * @param y Y轴坐标。
  11341. * @param z Z轴坐标。
  11342. * @param w W轴坐标。
  11343. */
  11344. constructor(x?:number,y?:number,z?:number,w?:number);
  11345. /**
  11346. * 设置xyzw值。
  11347. * @param x X值。
  11348. * @param y Y值。
  11349. * @param z Z值。
  11350. * @param w W值。
  11351. */
  11352. setValue(x:number,y:number,z:number,w:number):void;
  11353. /**
  11354. * 从Array数组拷贝值。
  11355. * @param array 数组。
  11356. * @param offset 数组偏移。
  11357. */
  11358. fromArray(array:any[],offset?:number):void;
  11359. /**
  11360. * 克隆。
  11361. * @param destObject 克隆源。
  11362. */
  11363. cloneTo(destObject:any):void;
  11364. /**
  11365. * 克隆。
  11366. * @return 克隆副本。
  11367. */
  11368. clone():any;
  11369. /**
  11370. * 插值四维向量。
  11371. * @param a left向量。
  11372. * @param b right向量。
  11373. * @param t 插值比例。
  11374. * @param out 输出向量。
  11375. */
  11376. static lerp(a:Vector4,b:Vector4,t:number,out:Vector4):void;
  11377. /**
  11378. * 通过4x4矩阵把一个四维向量转换为另一个四维向量
  11379. * @param vector4 带转换四维向量。
  11380. * @param M4x4 4x4矩阵。
  11381. * @param out 转换后四维向量。
  11382. */
  11383. static transformByM4x4(vector4:Vector4,m4x4:laya.d3.math.Matrix4x4,out:Vector4):void;
  11384. /**
  11385. * 判断两个四维向量是否相等。
  11386. * @param a 四维向量。
  11387. * @param b 四维向量。
  11388. * @return 是否相等。
  11389. */
  11390. static equals(a:Vector4,b:Vector4):boolean;
  11391. /**
  11392. * 求四维向量的长度。
  11393. * @return 长度。
  11394. */
  11395. length():number;
  11396. /**
  11397. * 求四维向量长度的平方。
  11398. * @return 长度的平方。
  11399. */
  11400. lengthSquared():number;
  11401. /**
  11402. * 归一化四维向量。
  11403. * @param s 源四维向量。
  11404. * @param out 输出四维向量。
  11405. */
  11406. static normalize(s:Vector4,out:Vector4):void;
  11407. /**
  11408. * 求两个四维向量的和。
  11409. * @param a 四维向量。
  11410. * @param b 四维向量。
  11411. * @param out 输出向量。
  11412. */
  11413. static add(a:Vector4,b:Vector4,out:Vector4):void;
  11414. /**
  11415. * 求两个四维向量的差。
  11416. * @param a 四维向量。
  11417. * @param b 四维向量。
  11418. * @param out 输出向量。
  11419. */
  11420. static subtract(a:Vector4,b:Vector4,out:Vector4):void;
  11421. /**
  11422. * 计算两个四维向量的乘积。
  11423. * @param a 四维向量。
  11424. * @param b 四维向量。
  11425. * @param out 输出向量。
  11426. */
  11427. static multiply(a:Vector4,b:Vector4,out:Vector4):void;
  11428. /**
  11429. * 缩放四维向量。
  11430. * @param a 源四维向量。
  11431. * @param b 缩放值。
  11432. * @param out 输出四维向量。
  11433. */
  11434. static scale(a:Vector4,b:number,out:Vector4):void;
  11435. /**
  11436. * 求一个指定范围的四维向量
  11437. * @param value clamp向量
  11438. * @param min 最小
  11439. * @param max 最大
  11440. * @param out 输出向量
  11441. */
  11442. static Clamp(value:Vector4,min:Vector4,max:Vector4,out:Vector4):void;
  11443. /**
  11444. * 两个四维向量距离的平方。
  11445. * @param value1 向量1。
  11446. * @param value2 向量2。
  11447. * @return 距离的平方。
  11448. */
  11449. static distanceSquared(value1:Vector4,value2:Vector4):number;
  11450. /**
  11451. * 两个四维向量距离。
  11452. * @param value1 向量1。
  11453. * @param value2 向量2。
  11454. * @return 距离。
  11455. */
  11456. static distance(value1:Vector4,value2:Vector4):number;
  11457. /**
  11458. * 求两个四维向量的点积。
  11459. * @param a 向量。
  11460. * @param b 向量。
  11461. * @return 点积。
  11462. */
  11463. static dot(a:Vector4,b:Vector4):number;
  11464. /**
  11465. * 分别取两个四维向量x、y、z的最小值计算新的四维向量。
  11466. * @param a 四维向量。
  11467. * @param b 四维向量。
  11468. * @param out 结果三维向量。
  11469. */
  11470. static min(a:Vector4,b:Vector4,out:Vector4):void;
  11471. /**
  11472. * 分别取两个四维向量x、y、z的最大值计算新的四维向量。
  11473. * @param a 四维向量。
  11474. * @param b 四维向量。
  11475. * @param out 结果三维向量。
  11476. */
  11477. static max(a:Vector4,b:Vector4,out:Vector4):void;
  11478. forNativeElement(nativeElements?:Float32Array):void;
  11479. }
  11480. }
  11481. declare module laya.d3.math {
  11482. /**
  11483. * <code>Viewport</code> 类用于创建视口。
  11484. */
  11485. class Viewport {
  11486. private static _tempMatrix4x4:any;
  11487. /**
  11488. * X轴坐标
  11489. */
  11490. x:number;
  11491. /**
  11492. * Y轴坐标
  11493. */
  11494. y:number;
  11495. /**
  11496. * 宽度
  11497. */
  11498. width:number;
  11499. /**
  11500. * 高度
  11501. */
  11502. height:number;
  11503. /**
  11504. * 最小深度
  11505. */
  11506. minDepth:number;
  11507. /**
  11508. * 最大深度
  11509. */
  11510. maxDepth:number;
  11511. /**
  11512. * 创建一个 <code>Viewport</code> 实例。
  11513. * @param x x坐标。
  11514. * @param y y坐标。
  11515. * @param width 宽度。
  11516. * @param height 高度。
  11517. */
  11518. constructor(x:number,y:number,width:number,height:number);
  11519. /**
  11520. * 变换一个三维向量。
  11521. * @param source 源三维向量。
  11522. * @param matrix 变换矩阵。
  11523. * @param vector 输出三维向量。
  11524. */
  11525. project(source:laya.d3.math.Vector3,matrix:laya.d3.math.Matrix4x4,out:laya.d3.math.Vector3):void;
  11526. /**
  11527. * 反变换一个三维向量。
  11528. * @param source 源三维向量。
  11529. * @param matrix 变换矩阵。
  11530. * @param vector 输出三维向量。
  11531. */
  11532. unprojectFromMat(source:laya.d3.math.Vector3,matrix:laya.d3.math.Matrix4x4,out:laya.d3.math.Vector3):void;
  11533. /**
  11534. * 反变换一个三维向量。
  11535. * @param source 源三维向量。
  11536. * @param projection 透视投影矩阵。
  11537. * @param view 视图矩阵。
  11538. * @param world 世界矩阵,可设置为null。
  11539. * @param out 输出向量。
  11540. */
  11541. unprojectFromWVP(source:laya.d3.math.Vector3,projection:laya.d3.math.Matrix4x4,view:laya.d3.math.Matrix4x4,world:laya.d3.math.Matrix4x4,out:laya.d3.math.Vector3):void;
  11542. /**
  11543. * 克隆
  11544. * @param out
  11545. */
  11546. cloneTo(out:Viewport):void;
  11547. }
  11548. }
  11549. declare module laya.d3.physics {
  11550. /**
  11551. * <code>CharacterController</code> 类用于创建角色控制器。
  11552. */
  11553. class CharacterController extends laya.d3.physics.PhysicsComponent {
  11554. static UPAXIS_X:number;
  11555. static UPAXIS_Y:number;
  11556. static UPAXIS_Z:number;
  11557. /**
  11558. * 获取角色降落速度。
  11559. * @return 角色降落速度。
  11560. */
  11561. /**
  11562. * 设置角色降落速度。
  11563. * @param value 角色降落速度。
  11564. */
  11565. fallSpeed:number;
  11566. /**
  11567. * 获取角色跳跃速度。
  11568. * @return 角色跳跃速度。
  11569. */
  11570. /**
  11571. * 设置角色跳跃速度。
  11572. * @param value 角色跳跃速度。
  11573. */
  11574. jumpSpeed:number;
  11575. /**
  11576. * 获取重力。
  11577. * @return 重力。
  11578. */
  11579. /**
  11580. * 设置重力。
  11581. * @param value 重力。
  11582. */
  11583. gravity:laya.d3.math.Vector3;
  11584. /**
  11585. * 获取最大坡度。
  11586. * @return 最大坡度。
  11587. */
  11588. /**
  11589. * 设置最大坡度。
  11590. * @param value 最大坡度。
  11591. */
  11592. maxSlope:number;
  11593. /**
  11594. * 获取角色是否在地表。
  11595. */
  11596. readonly isGrounded:boolean;
  11597. /**
  11598. * 获取角色行走的脚步高度,表示可跨越的最大高度。
  11599. * @return 脚步高度。
  11600. */
  11601. /**
  11602. * 设置角色行走的脚步高度,表示可跨越的最大高度。
  11603. * @param value 脚步高度。
  11604. */
  11605. stepHeight:number;
  11606. /**
  11607. * 获取角色的Up轴。
  11608. * @return 角色的Up轴。
  11609. */
  11610. /**
  11611. * 设置角色的Up轴。
  11612. * @return 角色的Up轴。
  11613. */
  11614. upAxis:laya.d3.math.Vector3;
  11615. /**
  11616. * 创建一个 <code>CharacterController</code> 实例。
  11617. * @param stepheight 角色脚步高度。
  11618. * @param upAxis 角色Up轴
  11619. * @param collisionGroup 所属碰撞组。
  11620. * @param canCollideWith 可产生碰撞的碰撞组。
  11621. */
  11622. constructor(stepheight?:number,upAxis?:laya.d3.math.Vector3,collisionGroup?:number,canCollideWith?:number);
  11623. /**
  11624. * 通过指定移动向量移动角色。
  11625. * @param movement 移动向量。
  11626. */
  11627. move(movement:laya.d3.math.Vector3):void;
  11628. /**
  11629. * 跳跃。
  11630. * @param velocity 跳跃速度。
  11631. */
  11632. jump(velocity?:laya.d3.math.Vector3):void;
  11633. }
  11634. }
  11635. declare module laya.d3.physics {
  11636. /**
  11637. * <code>Collision</code> 类用于创建物理碰撞信息。
  11638. */
  11639. class Collision {
  11640. /**
  11641. * @readonly
  11642. */
  11643. contacts:laya.d3.physics.ContactPoint[];
  11644. /**
  11645. * @readonly
  11646. */
  11647. other:laya.d3.physics.PhysicsComponent;
  11648. /**
  11649. * 创建一个 <code>Collision</code> 实例。
  11650. */
  11651. constructor();
  11652. }
  11653. }
  11654. declare module laya.d3.physics {
  11655. /**
  11656. * <code>CollisionMap</code> 类用于实现碰撞组合实例图。
  11657. */
  11658. class CollisionTool {
  11659. /**
  11660. * 创建一个 <code>CollisionMap</code> 实例。
  11661. */
  11662. constructor();
  11663. }
  11664. }
  11665. declare module laya.d3.physics {
  11666. /**
  11667. * ...
  11668. * @author ...
  11669. */
  11670. class Constraint3D {
  11671. /**
  11672. * 获取刚体A。[只读]
  11673. */
  11674. rigidbodyA:laya.d3.physics.Rigidbody3D;
  11675. /**
  11676. * 获取刚体A。[只读]
  11677. */
  11678. rigidbodyB:laya.d3.physics.Rigidbody3D;
  11679. constructor();
  11680. }
  11681. }
  11682. declare module laya.d3.physics.constraints {
  11683. /**
  11684. * <code>ConstraintComponent</code> 类用于创建约束的父类。
  11685. */
  11686. class ConstraintComponent extends laya.components.Component {
  11687. /**
  11688. * @inheritDoc
  11689. * @override
  11690. */
  11691. /**
  11692. * @inheritDoc
  11693. * @override
  11694. */
  11695. enabled:boolean;
  11696. /**
  11697. * 获取打破冲力阈值。
  11698. * @return 打破冲力阈值。
  11699. */
  11700. /**
  11701. * 设置打破冲力阈值。
  11702. * @param value 打破冲力阈值。
  11703. */
  11704. breakingImpulseThreshold:number;
  11705. /**
  11706. * 获取应用的冲力。
  11707. */
  11708. readonly appliedImpulse:number;
  11709. /**
  11710. * 获取已连接的刚体。
  11711. * @return 已连接刚体。
  11712. */
  11713. /**
  11714. * 设置已连接刚体。
  11715. * @param value 已连接刚体。
  11716. */
  11717. connectedBody:laya.d3.physics.Rigidbody3D;
  11718. /**
  11719. * 创建一个 <code>ConstraintComponent</code> 实例。
  11720. */
  11721. constructor();
  11722. }
  11723. }
  11724. declare module laya.d3.physics.constraints {
  11725. /**
  11726. * <code>Point2PointConstraint</code> 类用于创建物理组件的父类。
  11727. */
  11728. class Point2PointConstraint {
  11729. pivotInA:laya.d3.math.Vector3;
  11730. pivotInB:laya.d3.math.Vector3;
  11731. damping:number;
  11732. impulseClamp:number;
  11733. tau:number;
  11734. /**
  11735. * 创建一个 <code>Point2PointConstraint</code> 实例。
  11736. */
  11737. constructor();
  11738. }
  11739. }
  11740. declare module laya.d3.physics {
  11741. /**
  11742. * <code>ContactPoint</code> 类用于创建物理碰撞信息。
  11743. */
  11744. class ContactPoint {
  11745. /**
  11746. * 碰撞器A。
  11747. */
  11748. colliderA:laya.d3.physics.PhysicsComponent;
  11749. /**
  11750. * 碰撞器B。
  11751. */
  11752. colliderB:laya.d3.physics.PhysicsComponent;
  11753. /**
  11754. * 距离。
  11755. */
  11756. distance:number;
  11757. /**
  11758. * 法线。
  11759. */
  11760. normal:laya.d3.math.Vector3;
  11761. /**
  11762. * 碰撞器A的碰撞点。
  11763. */
  11764. positionOnA:laya.d3.math.Vector3;
  11765. /**
  11766. * 碰撞器B的碰撞点。
  11767. */
  11768. positionOnB:laya.d3.math.Vector3;
  11769. /**
  11770. * 创建一个 <code>ContactPoint</code> 实例。
  11771. */
  11772. constructor();
  11773. }
  11774. }
  11775. declare module laya.d3.physics {
  11776. /**
  11777. * <code>HitResult</code> 类用于实现射线检测或形状扫描的结果。
  11778. */
  11779. class HitResult {
  11780. /**
  11781. * 是否成功。
  11782. */
  11783. succeeded:boolean;
  11784. /**
  11785. * 发生碰撞的碰撞组件。
  11786. */
  11787. collider:laya.d3.physics.PhysicsComponent;
  11788. /**
  11789. * 碰撞点。
  11790. */
  11791. point:laya.d3.math.Vector3;
  11792. /**
  11793. * 碰撞法线。
  11794. */
  11795. normal:laya.d3.math.Vector3;
  11796. /**
  11797. * 碰撞分数。
  11798. */
  11799. hitFraction:number;
  11800. /**
  11801. * 创建一个 <code>HitResult</code> 实例。
  11802. */
  11803. constructor();
  11804. }
  11805. }
  11806. declare module laya.d3.physics {
  11807. class Physics3D {
  11808. }
  11809. }
  11810. declare module laya.d3.physics {
  11811. /**
  11812. * <code>PhysicsCollider</code> 类用于创建物理碰撞器。
  11813. */
  11814. class PhysicsCollider extends laya.d3.physics.PhysicsTriggerComponent {
  11815. /**
  11816. * 创建一个 <code>PhysicsCollider</code> 实例。
  11817. * @param collisionGroup 所属碰撞组。
  11818. * @param canCollideWith 可产生碰撞的碰撞组。
  11819. */
  11820. constructor(collisionGroup?:number,canCollideWith?:number);
  11821. }
  11822. }
  11823. declare module laya.d3.physics {
  11824. /**
  11825. * <code>PhysicsComponent</code> 类用于创建物理组件的父类。
  11826. */
  11827. class PhysicsComponent extends laya.components.Component {
  11828. /**
  11829. * 是否可以缩放Shape。
  11830. */
  11831. canScaleShape:boolean;
  11832. /**
  11833. * 获取弹力。
  11834. * @return 弹力。
  11835. */
  11836. /**
  11837. * 设置弹力。
  11838. * @param 弹力 。
  11839. */
  11840. restitution:number;
  11841. /**
  11842. * 获取摩擦力。
  11843. * @return 摩擦力。
  11844. */
  11845. /**
  11846. * 设置摩擦力。
  11847. * @param value 摩擦力。
  11848. */
  11849. friction:number;
  11850. /**
  11851. * 获取滚动摩擦力。
  11852. * @return 滚动摩擦力。
  11853. */
  11854. /**
  11855. * 设置滚动摩擦力。
  11856. * @param 滚动摩擦力 。
  11857. */
  11858. rollingFriction:number;
  11859. /**
  11860. * 获取用于连续碰撞检测(CCD)的速度阈值,当物体移动速度小于该值时不进行CCD检测,防止快速移动物体(例如:子弹)错误的穿过其它物体,0表示禁止。
  11861. * @return 连续碰撞检测(CCD)的速度阈值。
  11862. */
  11863. /**
  11864. * 设置用于连续碰撞检测(CCD)的速度阈值,当物体移动速度小于该值时不进行CCD检测,防止快速移动物体(例如:子弹)错误的穿过其它物体,0表示禁止。
  11865. * @param value 连续碰撞检测(CCD)的速度阈值。
  11866. */
  11867. ccdMotionThreshold:number;
  11868. /**
  11869. * 获取用于进入连续碰撞检测(CCD)范围的球半径。
  11870. * @return 球半径。
  11871. */
  11872. /**
  11873. * 设置用于进入连续碰撞检测(CCD)范围的球半径。
  11874. * @param 球半径 。
  11875. */
  11876. ccdSweptSphereRadius:number;
  11877. /**
  11878. * 获取是否激活。
  11879. */
  11880. readonly isActive:boolean;
  11881. /**
  11882. * @inheritDoc
  11883. * @override
  11884. */
  11885. /**
  11886. * @inheritDoc
  11887. * @override
  11888. */
  11889. enabled:boolean;
  11890. /**
  11891. * 获取碰撞形状。
  11892. */
  11893. /**
  11894. * 设置碰撞形状。
  11895. */
  11896. colliderShape:laya.d3.physics.shape.ColliderShape;
  11897. /**
  11898. * 获取模拟器。
  11899. * @return 模拟器。
  11900. */
  11901. readonly simulation:laya.d3.physics.PhysicsSimulation;
  11902. /**
  11903. * 获取所属碰撞组。
  11904. * @return 所属碰撞组。
  11905. */
  11906. /**
  11907. * 设置所属碰撞组。
  11908. * @param 所属碰撞组 。
  11909. */
  11910. collisionGroup:number;
  11911. /**
  11912. * 获取可碰撞的碰撞组。
  11913. * @return 可碰撞组。
  11914. */
  11915. /**
  11916. * 设置可碰撞的碰撞组。
  11917. * @param 可碰撞组 。
  11918. */
  11919. canCollideWith:number;
  11920. /**
  11921. * 创建一个 <code>PhysicsComponent</code> 实例。
  11922. * @param collisionGroup 所属碰撞组。
  11923. * @param canCollideWith 可产生碰撞的碰撞组。
  11924. */
  11925. constructor(collisionGroup:number,canCollideWith:number);
  11926. }
  11927. }
  11928. declare module laya.d3.physics {
  11929. /**
  11930. * <code>PhysicsSettings</code> 类用于创建物理配置信息。
  11931. */
  11932. class PhysicsSettings {
  11933. /**
  11934. * 标志集合。
  11935. */
  11936. flags:number;
  11937. /**
  11938. * 物理引擎在一帧中用于补偿减速的最大次数。
  11939. */
  11940. maxSubSteps:number;
  11941. /**
  11942. * 物理模拟器帧的间隔时间。
  11943. */
  11944. fixedTimeStep:number;
  11945. /**
  11946. * 创建一个 <code>PhysicsSettings</code> 实例。
  11947. */
  11948. constructor();
  11949. }
  11950. }
  11951. declare module laya.d3.physics {
  11952. /**
  11953. * <code>Simulation</code> 类用于创建物理模拟器。
  11954. */
  11955. class PhysicsSimulation {
  11956. static disableSimulation:boolean;
  11957. /**
  11958. * 创建限制刚体运动的约束条件。
  11959. */
  11960. static createConstraint():void;
  11961. /**
  11962. * 物理引擎在一帧中用于补偿减速的最大次数:模拟器每帧允许的最大模拟次数,如果引擎运行缓慢,可能需要增加该次数,否则模拟器会丢失“时间",引擎间隔时间小于maxSubSteps*fixedTimeStep非常重要。
  11963. */
  11964. maxSubSteps:number;
  11965. /**
  11966. * 物理模拟器帧的间隔时间:通过减少fixedTimeStep可增加模拟精度,默认是1.0 / 60.0。
  11967. */
  11968. fixedTimeStep:number;
  11969. /**
  11970. * 获取是否进行连续碰撞检测。
  11971. * @return 是否进行连续碰撞检测。
  11972. */
  11973. /**
  11974. * 设置是否进行连续碰撞检测。
  11975. * @param value 是否进行连续碰撞检测。
  11976. */
  11977. continuousCollisionDetection:boolean;
  11978. /**
  11979. * 获取重力。
  11980. */
  11981. /**
  11982. * 设置重力。
  11983. */
  11984. gravity:laya.d3.math.Vector3;
  11985. /**
  11986. * 射线检测第一个碰撞物体。
  11987. * @param from 起始位置。
  11988. * @param to 结束位置。
  11989. * @param out 碰撞结果。
  11990. * @param collisonGroup 射线所属碰撞组。
  11991. * @param collisionMask 与射线可产生碰撞的组。
  11992. * @return 是否成功。
  11993. */
  11994. raycastFromTo(from:laya.d3.math.Vector3,to:laya.d3.math.Vector3,out?:laya.d3.physics.HitResult,collisonGroup?:number,collisionMask?:number):boolean;
  11995. /**
  11996. * 射线检测所有碰撞的物体。
  11997. * @param from 起始位置。
  11998. * @param to 结束位置。
  11999. * @param out 碰撞结果[数组元素会被回收]。
  12000. * @param collisonGroup 射线所属碰撞组。
  12001. * @param collisionMask 与射线可产生碰撞的组。
  12002. * @return 是否成功。
  12003. */
  12004. raycastAllFromTo(from:laya.d3.math.Vector3,to:laya.d3.math.Vector3,out:laya.d3.physics.HitResult[],collisonGroup?:number,collisionMask?:number):boolean;
  12005. /**
  12006. * 射线检测第一个碰撞物体。
  12007. * @param ray 射线
  12008. * @param outHitInfo 与该射线发生碰撞的第一个碰撞器的碰撞信息
  12009. * @param distance 射线长度,默认为最大值
  12010. * @param collisonGroup 射线所属碰撞组。
  12011. * @param collisionMask 与射线可产生碰撞的组。
  12012. * @return 是否检测成功。
  12013. */
  12014. rayCast(ray:laya.d3.math.Ray,outHitResult?:laya.d3.physics.HitResult,distance?:number,collisonGroup?:number,collisionMask?:number):boolean;
  12015. /**
  12016. * 射线检测所有碰撞的物体。
  12017. * @param ray 射线
  12018. * @param out 碰撞结果[数组元素会被回收]。
  12019. * @param distance 射线长度,默认为最大值
  12020. * @param collisonGroup 射线所属碰撞组。
  12021. * @param collisionMask 与射线可产生碰撞的组。
  12022. * @return 是否检测成功。
  12023. */
  12024. rayCastAll(ray:laya.d3.math.Ray,out:laya.d3.physics.HitResult[],distance?:number,collisonGroup?:number,collisionMask?:number):boolean;
  12025. /**
  12026. * 形状检测第一个碰撞的物体。
  12027. * @param shape 形状。
  12028. * @param fromPosition 世界空间起始位置。
  12029. * @param toPosition 世界空间结束位置。
  12030. * @param out 碰撞结果。
  12031. * @param fromRotation 起始旋转。
  12032. * @param toRotation 结束旋转。
  12033. * @param collisonGroup 射线所属碰撞组。
  12034. * @param collisionMask 与射线可产生碰撞的组。
  12035. * @return 是否成功。
  12036. */
  12037. shapeCast(shape:laya.d3.physics.shape.ColliderShape,fromPosition:laya.d3.math.Vector3,toPosition:laya.d3.math.Vector3,out?:laya.d3.physics.HitResult,fromRotation?:laya.d3.math.Quaternion,toRotation?:laya.d3.math.Quaternion,collisonGroup?:number,collisionMask?:number,allowedCcdPenetration?:number):boolean;
  12038. /**
  12039. * 形状检测所有碰撞的物体。
  12040. * @param shape 形状。
  12041. * @param fromPosition 世界空间起始位置。
  12042. * @param toPosition 世界空间结束位置。
  12043. * @param out 碰撞结果[数组元素会被回收]。
  12044. * @param fromRotation 起始旋转。
  12045. * @param toRotation 结束旋转。
  12046. * @param collisonGroup 射线所属碰撞组。
  12047. * @param collisionMask 与射线可产生碰撞的组。
  12048. * @return 是否成功。
  12049. */
  12050. shapeCastAll(shape:laya.d3.physics.shape.ColliderShape,fromPosition:laya.d3.math.Vector3,toPosition:laya.d3.math.Vector3,out:laya.d3.physics.HitResult[],fromRotation?:laya.d3.math.Quaternion,toRotation?:laya.d3.math.Quaternion,collisonGroup?:number,collisionMask?:number,allowedCcdPenetration?:number):boolean;
  12051. /**
  12052. * 添加刚体运动的约束条件。
  12053. * @param constraint 约束。
  12054. * @param disableCollisionsBetweenLinkedBodies 是否禁用
  12055. */
  12056. addConstraint(constraint:laya.d3.physics.Constraint3D,disableCollisionsBetweenLinkedBodies?:boolean):void;
  12057. /**
  12058. * 移除刚体运动的约束条件。
  12059. */
  12060. removeConstraint(constraint:laya.d3.physics.Constraint3D):void;
  12061. /**
  12062. * 清除力。
  12063. */
  12064. clearForces():void;
  12065. }
  12066. }
  12067. declare module laya.d3.physics {
  12068. /**
  12069. * <code>PhysicsTriggerComponent</code> 类用于创建物理触发器组件。
  12070. */
  12071. class PhysicsTriggerComponent extends laya.d3.physics.PhysicsComponent {
  12072. /**
  12073. * 获取是否为触发器。
  12074. * @return 是否为触发器。
  12075. */
  12076. /**
  12077. * 设置是否为触发器。
  12078. * @param value 是否为触发器。
  12079. */
  12080. isTrigger:boolean;
  12081. /**
  12082. * 创建一个 <code>PhysicsTriggerComponent</code> 实例。
  12083. * @param collisionGroup 所属碰撞组。
  12084. * @param canCollideWith 可产生碰撞的碰撞组。
  12085. */
  12086. constructor(collisionGroup:number,canCollideWith:number);
  12087. }
  12088. }
  12089. declare module laya.d3.physics {
  12090. /**
  12091. * <code>PhysicsUpdateList</code> 类用于实现物理更新队列。
  12092. */
  12093. class PhysicsUpdateList extends laya.d3.component.SingletonList<laya.resource.ISingletonElement> {
  12094. /**
  12095. * 创建一个新的 <code>PhysicsUpdateList</code> 实例。
  12096. */
  12097. constructor();
  12098. }
  12099. }
  12100. declare module laya.d3.physics {
  12101. /**
  12102. * <code>Rigidbody3D</code> 类用于创建刚体碰撞器。
  12103. */
  12104. class Rigidbody3D extends laya.d3.physics.PhysicsTriggerComponent {
  12105. static TYPE_STATIC:number;
  12106. static TYPE_DYNAMIC:number;
  12107. static TYPE_KINEMATIC:number;
  12108. /**
  12109. * 获取质量。
  12110. * @return 质量。
  12111. */
  12112. /**
  12113. * 设置质量。
  12114. * @param value 质量。
  12115. */
  12116. mass:number;
  12117. /**
  12118. * 获取是否为运动物体,如果为true仅可通过transform属性移动物体,而非其他力相关属性。
  12119. * @return 是否为运动物体。
  12120. */
  12121. /**
  12122. * 设置是否为运动物体,如果为true仅可通过transform属性移动物体,而非其他力相关属性。
  12123. * @param value 是否为运动物体。
  12124. */
  12125. isKinematic:boolean;
  12126. /**
  12127. * 获取刚体的线阻力。
  12128. * @return 线阻力。
  12129. */
  12130. /**
  12131. * 设置刚体的线阻力。
  12132. * @param value 线阻力。
  12133. */
  12134. linearDamping:number;
  12135. /**
  12136. * 获取刚体的角阻力。
  12137. * @return 角阻力。
  12138. */
  12139. /**
  12140. * 设置刚体的角阻力。
  12141. * @param value 角阻力。
  12142. */
  12143. angularDamping:number;
  12144. /**
  12145. * 获取是否重载重力。
  12146. * @return 是否重载重力。
  12147. */
  12148. /**
  12149. * 设置是否重载重力。
  12150. * @param value 是否重载重力。
  12151. */
  12152. overrideGravity:boolean;
  12153. /**
  12154. * 获取重力。
  12155. * @return 重力。
  12156. */
  12157. /**
  12158. * 设置重力。
  12159. * @param value 重力。
  12160. */
  12161. gravity:laya.d3.math.Vector3;
  12162. /**
  12163. * 获取总力。
  12164. */
  12165. readonly totalForce:laya.d3.math.Vector3;
  12166. /**
  12167. * 获取性因子。
  12168. */
  12169. /**
  12170. * 设置性因子。
  12171. */
  12172. linearFactor:laya.d3.math.Vector3;
  12173. /**
  12174. * 获取线速度
  12175. * @return 线速度
  12176. */
  12177. /**
  12178. * 设置线速度。
  12179. * @param 线速度 。
  12180. */
  12181. linearVelocity:laya.d3.math.Vector3;
  12182. /**
  12183. * 获取角因子。
  12184. */
  12185. /**
  12186. * 设置角因子。
  12187. */
  12188. angularFactor:laya.d3.math.Vector3;
  12189. /**
  12190. * 获取角速度。
  12191. * @return 角速度。
  12192. */
  12193. /**
  12194. * 设置角速度。
  12195. * @param 角速度
  12196. */
  12197. angularVelocity:laya.d3.math.Vector3;
  12198. /**
  12199. * 获取刚体所有扭力。
  12200. */
  12201. readonly totalTorque:laya.d3.math.Vector3;
  12202. /**
  12203. * 获取是否进行碰撞检测。
  12204. * @return 是否进行碰撞检测。
  12205. */
  12206. /**
  12207. * 设置是否进行碰撞检测。
  12208. * @param value 是否进行碰撞检测。
  12209. */
  12210. detectCollisions:boolean;
  12211. /**
  12212. * 获取是否处于睡眠状态。
  12213. * @return 是否处于睡眠状态。
  12214. */
  12215. readonly isSleeping:boolean;
  12216. /**
  12217. * 获取刚体睡眠的线速度阈值。
  12218. * @return 刚体睡眠的线速度阈值。
  12219. */
  12220. /**
  12221. * 设置刚体睡眠的线速度阈值。
  12222. * @param value 刚体睡眠的线速度阈值。
  12223. */
  12224. sleepLinearVelocity:number;
  12225. /**
  12226. * 获取刚体睡眠的角速度阈值。
  12227. * @return 刚体睡眠的角速度阈值。
  12228. */
  12229. /**
  12230. * 设置刚体睡眠的角速度阈值。
  12231. * @param value 刚体睡眠的角速度阈值。
  12232. */
  12233. sleepAngularVelocity:number;
  12234. /**
  12235. * 创建一个 <code>RigidBody</code> 实例。
  12236. * @param collisionGroup 所属碰撞组。
  12237. * @param canCollideWith 可产生碰撞的碰撞组。
  12238. */
  12239. constructor(collisionGroup?:number,canCollideWith?:number);
  12240. /**
  12241. * 应用作用力。
  12242. * @param force 作用力。
  12243. * @param localOffset 偏移,如果为null则为中心点
  12244. */
  12245. applyForce(force:laya.d3.math.Vector3,localOffset?:laya.d3.math.Vector3):void;
  12246. /**
  12247. * 应用扭转力。
  12248. * @param torque 扭转力。
  12249. */
  12250. applyTorque(torque:laya.d3.math.Vector3):void;
  12251. /**
  12252. * 应用冲量。
  12253. * @param impulse 冲量。
  12254. * @param localOffset 偏移,如果为null则为中心点。
  12255. */
  12256. applyImpulse(impulse:laya.d3.math.Vector3,localOffset?:laya.d3.math.Vector3):void;
  12257. /**
  12258. * 应用扭转冲量。
  12259. * @param torqueImpulse
  12260. */
  12261. applyTorqueImpulse(torqueImpulse:laya.d3.math.Vector3):void;
  12262. /**
  12263. * 唤醒刚体。
  12264. */
  12265. wakeUp():void;
  12266. /**
  12267. * 清除应用到刚体上的所有力。
  12268. */
  12269. clearForces():void;
  12270. }
  12271. }
  12272. declare module laya.d3.physics.shape {
  12273. /**
  12274. * <code>BoxColliderShape</code> 类用于创建盒子形状碰撞器。
  12275. */
  12276. class BoxColliderShape extends laya.d3.physics.shape.ColliderShape {
  12277. /**
  12278. * 获取X轴尺寸。
  12279. */
  12280. readonly sizeX:number;
  12281. /**
  12282. * 获取Y轴尺寸。
  12283. */
  12284. readonly sizeY:number;
  12285. /**
  12286. * 获取Z轴尺寸。
  12287. */
  12288. readonly sizeZ:number;
  12289. /**
  12290. * 创建一个新的 <code>BoxColliderShape</code> 实例。
  12291. * @param sizeX 盒子X轴尺寸。
  12292. * @param sizeY 盒子Y轴尺寸。
  12293. * @param sizeZ 盒子Z轴尺寸。
  12294. */
  12295. constructor(sizeX?:number,sizeY?:number,sizeZ?:number);
  12296. /**
  12297. * @inheritDoc
  12298. * @override
  12299. */
  12300. clone():any;
  12301. }
  12302. }
  12303. declare module laya.d3.physics.shape {
  12304. /**
  12305. * <code>CapsuleColliderShape</code> 类用于创建胶囊形状碰撞器。
  12306. */
  12307. class CapsuleColliderShape extends laya.d3.physics.shape.ColliderShape {
  12308. /**
  12309. * 获取半径。
  12310. */
  12311. readonly radius:number;
  12312. /**
  12313. * 获取长度。
  12314. */
  12315. readonly length:number;
  12316. /**
  12317. * 获取方向。
  12318. */
  12319. readonly orientation:number;
  12320. /**
  12321. * 创建一个新的 <code>CapsuleColliderShape</code> 实例。
  12322. * @param 半径 。
  12323. * @param 高 (包含半径)。
  12324. * @param orientation 胶囊体方向。
  12325. */
  12326. constructor(radius?:number,length?:number,orientation?:number);
  12327. /**
  12328. * @inheritDoc
  12329. * @override
  12330. */
  12331. clone():any;
  12332. }
  12333. }
  12334. declare module laya.d3.physics.shape {
  12335. /**
  12336. * <code>ColliderShape</code> 类用于创建形状碰撞器的父类,该类为抽象类。
  12337. */
  12338. class ColliderShape implements laya.d3.core.IClone {
  12339. needsCustomCollisionCallback:boolean;
  12340. /**
  12341. * 获取碰撞类型。
  12342. * @return 碰撞类型。
  12343. */
  12344. readonly type:number;
  12345. /**
  12346. * 获取Shape的本地偏移。
  12347. * @return Shape的本地偏移。
  12348. */
  12349. /**
  12350. * 设置Shape的本地偏移。
  12351. * @param Shape的本地偏移 。
  12352. */
  12353. localOffset:laya.d3.math.Vector3;
  12354. /**
  12355. * 获取Shape的本地旋转。
  12356. * @return Shape的本地旋转。
  12357. */
  12358. /**
  12359. * 设置Shape的本地旋转。
  12360. * @param Shape的本地旋转 。
  12361. */
  12362. localRotation:laya.d3.math.Quaternion;
  12363. /**
  12364. * 创建一个新的 <code>ColliderShape</code> 实例。
  12365. */
  12366. constructor();
  12367. /**
  12368. * 更新本地偏移,如果修改LocalOffset或LocalRotation需要调用。
  12369. */
  12370. updateLocalTransformations():void;
  12371. /**
  12372. * 克隆。
  12373. * @param destObject 克隆源。
  12374. */
  12375. cloneTo(destObject:any):void;
  12376. /**
  12377. * 克隆。
  12378. * @return 克隆副本。
  12379. */
  12380. clone():any;
  12381. /**
  12382. * 销毁。
  12383. */
  12384. destroy():void;
  12385. }
  12386. }
  12387. declare module laya.d3.physics.shape {
  12388. /**
  12389. * <code>CompoundColliderShape</code> 类用于创建盒子形状碰撞器。
  12390. */
  12391. class CompoundColliderShape extends laya.d3.physics.shape.ColliderShape {
  12392. /**
  12393. * 创建一个新的 <code>CompoundColliderShape</code> 实例。
  12394. */
  12395. constructor();
  12396. /**
  12397. * 添加子碰撞器形状。
  12398. * @param shape 子碰撞器形状。
  12399. */
  12400. addChildShape(shape:laya.d3.physics.shape.ColliderShape):void;
  12401. /**
  12402. * 移除子碰撞器形状。
  12403. * @param shape 子碰撞器形状。
  12404. */
  12405. removeChildShape(shape:laya.d3.physics.shape.ColliderShape):void;
  12406. /**
  12407. * 清空子碰撞器形状。
  12408. */
  12409. clearChildShape():void;
  12410. /**
  12411. * 获取子形状数量。
  12412. * @return
  12413. */
  12414. getChildShapeCount():number;
  12415. /**
  12416. * @inheritDoc
  12417. * @override
  12418. */
  12419. cloneTo(destObject:any):void;
  12420. /**
  12421. * @inheritDoc
  12422. * @override
  12423. */
  12424. clone():any;
  12425. /**
  12426. * @inheritDoc
  12427. * @override
  12428. */
  12429. destroy():void;
  12430. }
  12431. }
  12432. declare module laya.d3.physics.shape {
  12433. /**
  12434. * <code>ConeColliderShape</code> 类用于创建圆柱碰撞器。
  12435. */
  12436. class ConeColliderShape extends laya.d3.physics.shape.ColliderShape {
  12437. private _orientation:any;
  12438. private _radius:any;
  12439. private _height:any;
  12440. /**
  12441. * 获取半径。
  12442. */
  12443. readonly radius:number;
  12444. /**
  12445. * 获取高度。
  12446. */
  12447. readonly height:number;
  12448. /**
  12449. * 获取方向。
  12450. */
  12451. readonly orientation:number;
  12452. /**
  12453. * 创建一个新的 <code>ConeColliderShape</code> 实例。
  12454. * @param height 高。
  12455. * @param radius 半径。
  12456. */
  12457. constructor(radius?:number,height?:number,orientation?:number);
  12458. /**
  12459. * @inheritDoc
  12460. * @override
  12461. */
  12462. clone():any;
  12463. }
  12464. }
  12465. declare module laya.d3.physics.shape {
  12466. /**
  12467. * <code>CylinderColliderShape</code> 类用于创建圆柱碰撞器。
  12468. */
  12469. class CylinderColliderShape extends laya.d3.physics.shape.ColliderShape {
  12470. private static _nativeSize:any;
  12471. private _orientation:any;
  12472. private _radius:any;
  12473. private _height:any;
  12474. /**
  12475. * 获取半径。
  12476. */
  12477. readonly radius:number;
  12478. /**
  12479. * 获取高度。
  12480. */
  12481. readonly height:number;
  12482. /**
  12483. * 获取方向。
  12484. */
  12485. readonly orientation:number;
  12486. /**
  12487. * 创建一个新的 <code>CylinderColliderShape</code> 实例。
  12488. * @param height 高。
  12489. * @param radius 半径。
  12490. */
  12491. constructor(radius?:number,height?:number,orientation?:number);
  12492. /**
  12493. * @inheritDoc
  12494. * @override
  12495. */
  12496. clone():any;
  12497. }
  12498. }
  12499. declare module laya.d3.physics.shape {
  12500. /**
  12501. * ...
  12502. * @author ...
  12503. */
  12504. class HeightfieldColliderShape {
  12505. constructor();
  12506. }
  12507. }
  12508. declare module laya.d3.physics.shape {
  12509. /**
  12510. * <code>MeshColliderShape</code> 类用于创建网格碰撞器。
  12511. */
  12512. class MeshColliderShape extends laya.d3.physics.shape.ColliderShape {
  12513. private _mesh:any;
  12514. private _convex:any;
  12515. /**
  12516. * 获取网格。
  12517. * @return 网格。
  12518. */
  12519. /**
  12520. * 设置网格。
  12521. * @param 网格 。
  12522. */
  12523. mesh:laya.d3.resource.models.Mesh;
  12524. /**
  12525. * 获取是否使用凸多边形。
  12526. * @return 是否使用凸多边形。
  12527. */
  12528. /**
  12529. * 设置是否使用凸多边形。
  12530. * @param value 是否使用凸多边形。
  12531. */
  12532. convex:boolean;
  12533. /**
  12534. * 创建一个新的 <code>MeshColliderShape</code> 实例。
  12535. */
  12536. constructor();
  12537. /**
  12538. * @inheritDoc
  12539. * @override
  12540. */
  12541. cloneTo(destObject:any):void;
  12542. /**
  12543. * @inheritDoc
  12544. * @override
  12545. */
  12546. clone():any;
  12547. }
  12548. }
  12549. declare module laya.d3.physics.shape {
  12550. /**
  12551. * <code>SphereColliderShape</code> 类用于创建球形碰撞器。
  12552. */
  12553. class SphereColliderShape extends laya.d3.physics.shape.ColliderShape {
  12554. private _radius:any;
  12555. /**
  12556. * 获取半径。
  12557. */
  12558. readonly radius:number;
  12559. /**
  12560. * 创建一个新的 <code>SphereColliderShape</code> 实例。
  12561. * @param radius 半径。
  12562. */
  12563. constructor(radius?:number);
  12564. /**
  12565. * @inheritDoc
  12566. * @override
  12567. */
  12568. clone():any;
  12569. }
  12570. }
  12571. declare module laya.d3.physics.shape {
  12572. /**
  12573. * <code>StaticPlaneColliderShape</code> 类用于创建静态平面碰撞器。
  12574. */
  12575. class StaticPlaneColliderShape extends laya.d3.physics.shape.ColliderShape {
  12576. private static _nativeNormal:any;
  12577. /**
  12578. * 创建一个新的 <code>StaticPlaneColliderShape</code> 实例。
  12579. */
  12580. constructor(normal:laya.d3.math.Vector3,offset:number);
  12581. /**
  12582. * @inheritDoc
  12583. * @override
  12584. */
  12585. clone():any;
  12586. }
  12587. }
  12588. declare module laya.d3.resource {
  12589. /**
  12590. * <code>IReferenceCounter</code> 引用计数器接口。
  12591. */
  12592. interface IReferenceCounter{
  12593. _getReferenceCount():number;
  12594. _addReference(count:number):void;
  12595. _removeReference(count:number):void;
  12596. _clearReference():void;
  12597. }
  12598. }
  12599. declare module laya.d3.resource.models {
  12600. /**
  12601. * <code>Mesh</code> 类用于创建文件网格数据模板。
  12602. */
  12603. class Mesh extends laya.resource.Resource implements laya.d3.core.IClone {
  12604. /**
  12605. * Mesh资源。
  12606. */
  12607. static MESH:string;
  12608. /**
  12609. * 加载网格模板。
  12610. * @param url 模板地址。
  12611. * @param complete 完成回掉。
  12612. */
  12613. static load(url:string,complete:laya.utils.Handler):void;
  12614. /**
  12615. * 获取网格的全局默认绑定动作逆矩阵。
  12616. * @return 网格的全局默认绑定动作逆矩阵。
  12617. */
  12618. readonly inverseAbsoluteBindPoses:laya.d3.math.Matrix4x4[];
  12619. /**
  12620. * 获取顶点个数。
  12621. */
  12622. readonly vertexCount:number;
  12623. /**
  12624. * 获取索引个数。
  12625. */
  12626. readonly indexCount:number;
  12627. /**
  12628. * 获取SubMesh的个数。
  12629. * @return SubMesh的个数。
  12630. */
  12631. readonly subMeshCount:number;
  12632. /**
  12633. * 边界。
  12634. */
  12635. bounds:laya.d3.core.Bounds;
  12636. /**
  12637. * 创建一个 <code>Mesh</code> 实例,禁止使用。
  12638. * @param isReadable 是否可读。
  12639. */
  12640. constructor(isReadable?:boolean);
  12641. /**
  12642. * @inheritDoc
  12643. * @override
  12644. */
  12645. protected _disposeResource():void;
  12646. /**
  12647. * 根据获取子网格。
  12648. * @param index 索引。
  12649. */
  12650. getSubMesh(index:number):laya.d3.resource.models.SubMesh;
  12651. /**
  12652. * 拷贝并填充位置数据至数组。
  12653. * @param positions 位置数组。
  12654. * @remark 该方法为拷贝操作,比较耗费性能。
  12655. */
  12656. getPositions(positions:laya.d3.math.Vector3[]):void;
  12657. /**
  12658. * 设置位置数据。
  12659. * @param positions 位置。
  12660. */
  12661. setPositions(positions:laya.d3.math.Vector3[]):void;
  12662. /**
  12663. * 拷贝并填充颜色数据至数组。
  12664. * @param colors 颜色数组。
  12665. * @remark 该方法为拷贝操作,比较耗费性能。
  12666. */
  12667. getColors(colors:laya.d3.math.Color[]):void;
  12668. /**
  12669. * 设置颜色数据。
  12670. * @param colors 颜色。
  12671. */
  12672. setColors(colors:laya.d3.math.Color[]):void;
  12673. /**
  12674. * 拷贝并填充纹理坐标数据至数组。
  12675. * @param uvs 纹理坐标数组。
  12676. * @param channel 纹理坐标通道。
  12677. * @remark 该方法为拷贝操作,比较耗费性能。
  12678. */
  12679. getUVs(uvs:laya.d3.math.Vector2[],channel?:number):void;
  12680. /**
  12681. * 设置纹理坐标数据。
  12682. * @param uvs 纹理坐标。
  12683. * @param channel 纹理坐标通道。
  12684. */
  12685. setUVs(uvs:laya.d3.math.Vector2[],channel?:number):void;
  12686. /**
  12687. * 拷贝并填充法线数据至数组。
  12688. * @param normals 法线数组。
  12689. * @remark 该方法为拷贝操作,比较耗费性能。
  12690. */
  12691. getNormals(normals:laya.d3.math.Vector3[]):void;
  12692. /**
  12693. * 设置法线数据。
  12694. * @param normals 法线。
  12695. */
  12696. setNormals(normals:laya.d3.math.Vector3[]):void;
  12697. /**
  12698. * 拷贝并填充切线数据至数组。
  12699. * @param tangents 切线。
  12700. */
  12701. getTangents(tangents:laya.d3.math.Vector4[]):void;
  12702. /**
  12703. * 设置切线数据。
  12704. * @param tangents 切线。
  12705. */
  12706. setTangents(tangents:laya.d3.math.Vector4[]):void;
  12707. /**
  12708. * 获取骨骼权重。
  12709. * @param boneWeights 骨骼权重。
  12710. */
  12711. getBoneWeights(boneWeights:laya.d3.math.Vector4[]):void;
  12712. /**
  12713. * 拷贝并填充骨骼权重数据至数组。
  12714. * @param boneWeights 骨骼权重。
  12715. */
  12716. setBoneWeights(boneWeights:laya.d3.math.Vector4[]):void;
  12717. /**
  12718. * 获取骨骼索引。
  12719. * @param boneIndices 骨骼索引。
  12720. */
  12721. getBoneIndices(boneIndices:laya.d3.math.Vector4[]):void;
  12722. /**
  12723. * 拷贝并填充骨骼索引数据至数组。
  12724. * @param boneWeights 骨骼索引。
  12725. */
  12726. setBoneIndices(boneIndices:laya.d3.math.Vector4[]):void;
  12727. /**
  12728. * 将Mesh标记为不可读,可减少内存,标记后不可再调用相关读取方法。
  12729. */
  12730. markAsUnreadbale():void;
  12731. /**
  12732. * 获取顶点声明。
  12733. */
  12734. getVertexDeclaration():laya.d3.graphics.VertexDeclaration;
  12735. /**
  12736. * 拷贝并获取顶点数据的副本。
  12737. * @return 顶点数据。
  12738. */
  12739. getVertices():ArrayBuffer;
  12740. /**
  12741. * 设置顶点数据。
  12742. * @param vertices 顶点数据。
  12743. */
  12744. setVertices(vertices:ArrayBuffer):void;
  12745. /**
  12746. * 拷贝并获取网格索引数据的副本。
  12747. */
  12748. getIndices():Uint16Array;
  12749. /**
  12750. * 设置网格索引。
  12751. * @param indices
  12752. */
  12753. setIndices(indices:Uint16Array):void;
  12754. /**
  12755. * 从模型位置数据生成包围盒。
  12756. */
  12757. calculateBounds():void;
  12758. /**
  12759. * 克隆。
  12760. * @param destObject 克隆源。
  12761. */
  12762. cloneTo(destObject:any):void;
  12763. /**
  12764. * 克隆。
  12765. * @return 克隆副本。
  12766. */
  12767. clone():any;
  12768. }
  12769. }
  12770. declare module laya.d3.resource.models {
  12771. /**
  12772. * <code>PrimitiveMesh</code> 类用于创建简单网格。
  12773. */
  12774. class PrimitiveMesh {
  12775. static __init__():void;
  12776. /**
  12777. * 创建Box网格。
  12778. * @param long 半径
  12779. * @param height 垂直层数
  12780. * @param width 水平层数
  12781. * @return
  12782. */
  12783. static createBox(long?:number,height?:number,width?:number):laya.d3.resource.models.Mesh;
  12784. /**
  12785. * 创建一个胶囊体模型
  12786. * @param radius 半径
  12787. * @param height 高度
  12788. * @param stacks 水平层数,一般设为垂直层数的一半
  12789. * @param slices 垂直层数
  12790. */
  12791. static createCapsule(radius?:number,height?:number,stacks?:number,slices?:number):laya.d3.resource.models.Mesh;
  12792. /**
  12793. * 创建一个圆锥体模型
  12794. * @param radius 半径
  12795. * @param height 高度
  12796. * @param slices 分段数
  12797. */
  12798. static createCone(radius?:number,height?:number,slices?:number):laya.d3.resource.models.Mesh;
  12799. /**
  12800. * 创建一个圆柱体模型
  12801. * @param radius 半径
  12802. * @param height 高度
  12803. * @param slices 垂直层数
  12804. */
  12805. static createCylinder(radius?:number,height?:number,slices?:number):laya.d3.resource.models.Mesh;
  12806. /**
  12807. * 创建一个平面模型
  12808. * @param long 长
  12809. * @param width 宽
  12810. */
  12811. static createPlane(long?:number,width?:number,stacks?:number,slices?:number):laya.d3.resource.models.Mesh;
  12812. /**
  12813. * 创建一个四边形模型
  12814. * @param long 长
  12815. * @param width 宽
  12816. */
  12817. static createQuad(long?:number,width?:number):laya.d3.resource.models.Mesh;
  12818. /**
  12819. * 创建一个球体模型
  12820. * @param radius 半径
  12821. * @param stacks 水平层数
  12822. * @param slices 垂直层数
  12823. */
  12824. static createSphere(radius?:number,stacks?:number,slices?:number):laya.d3.resource.models.Mesh;
  12825. }
  12826. }
  12827. declare module laya.d3.resource.models {
  12828. /**
  12829. * <code>SkyBox</code> 类用于创建天空盒。
  12830. */
  12831. class SkyBox extends laya.d3.resource.models.SkyMesh {
  12832. static instance:SkyBox;
  12833. /**
  12834. * 创建一个 <code>SkyBox</code> 实例。
  12835. */
  12836. constructor();
  12837. }
  12838. }
  12839. declare module laya.d3.resource.models {
  12840. /**
  12841. * <code>SkyDome</code> 类用于创建天空盒。
  12842. */
  12843. class SkyDome extends laya.d3.resource.models.SkyMesh {
  12844. static instance:SkyDome;
  12845. /**
  12846. * 获取堆数。
  12847. */
  12848. readonly stacks:number;
  12849. /**
  12850. * 获取层数。
  12851. */
  12852. readonly slices:number;
  12853. /**
  12854. * 创建一个 <code>SkyDome</code> 实例。
  12855. * @param stacks 堆数。
  12856. * @param slices 层数。
  12857. */
  12858. constructor(stacks?:number,slices?:number);
  12859. }
  12860. }
  12861. declare module laya.d3.resource.models {
  12862. /**
  12863. * <code>SkyMesh</code> 类用于实现天空网格。
  12864. */
  12865. class SkyMesh {
  12866. /**
  12867. * 创建一个新的 <code>SkyMesh</code> 实例。
  12868. */
  12869. constructor();
  12870. }
  12871. }
  12872. declare module laya.d3.resource.models {
  12873. /**
  12874. * <code>SkyRenderer</code> 类用于实现天空渲染器。
  12875. */
  12876. class SkyRenderer {
  12877. /**
  12878. * 获取材质。
  12879. * @return 材质。
  12880. */
  12881. /**
  12882. * 设置材质。
  12883. * @param 材质 。
  12884. */
  12885. material:laya.d3.core.material.BaseMaterial;
  12886. /**
  12887. * 获取网格。
  12888. * @return 网格。
  12889. */
  12890. /**
  12891. * 设置网格。
  12892. * @param 网格 。
  12893. */
  12894. mesh:laya.d3.resource.models.SkyMesh;
  12895. /**
  12896. * 创建一个新的 <code>SkyRenderer</code> 实例。
  12897. */
  12898. constructor();
  12899. }
  12900. }
  12901. declare module laya.d3.resource.models {
  12902. /**
  12903. * <code>SubMesh</code> 类用于创建子网格数据模板。
  12904. */
  12905. class SubMesh extends laya.d3.core.GeometryElement {
  12906. /**
  12907. * 获取索引数量。
  12908. */
  12909. readonly indexCount:number;
  12910. /**
  12911. * 创建一个 <code>SubMesh</code> 实例。
  12912. * @param mesh 网格数据模板。
  12913. */
  12914. constructor(mesh:laya.d3.resource.models.Mesh);
  12915. /**
  12916. * 拷贝并获取子网格索引数据的副本。
  12917. */
  12918. getIndices():Uint16Array;
  12919. /**
  12920. * 设置子网格索引。
  12921. * @param indices
  12922. */
  12923. setIndices(indices:Uint16Array):void;
  12924. /**
  12925. * {@inheritDoc GeometryElement.destroy}
  12926. * @override
  12927. */
  12928. destroy():void;
  12929. }
  12930. }
  12931. declare module laya.d3.resource {
  12932. /**
  12933. * <code>RenderTexture</code> 类用于创建渲染目标。
  12934. */
  12935. class RenderTexture extends laya.resource.BaseTexture {
  12936. /**
  12937. * 获取当前激活的Rendertexture。
  12938. */
  12939. static readonly currentActive:RenderTexture;
  12940. /**
  12941. * 从对象池获取临时渲染目标。
  12942. */
  12943. static createFromPool(width:number,height:number,format?:number,depthStencilFormat?:number,filterMode?:number):RenderTexture;
  12944. /**
  12945. * 回收渲染目标到对象池,释放后可通过createFromPool复用。
  12946. */
  12947. static recoverToPool(renderTexture:RenderTexture):void;
  12948. /**
  12949. * 深度格式。
  12950. */
  12951. readonly depthStencilFormat:number;
  12952. /**
  12953. * @override
  12954. */
  12955. readonly defaulteTexture:laya.resource.BaseTexture;
  12956. /**
  12957. * @param width 宽度。
  12958. * @param height 高度。
  12959. * @param format 纹理格式。
  12960. * @param depthStencilFormat 深度格式。 创建一个 <code>RenderTexture</code> 实例。
  12961. */
  12962. constructor(width:number,height:number,format?:laya.resource.RenderTextureFormat,depthStencilFormat?:laya.resource.RenderTextureDepthFormat);
  12963. /**
  12964. * 获得像素数据。
  12965. * @param x X像素坐标。
  12966. * @param y Y像素坐标。
  12967. * @param width 宽度。
  12968. * @param height 高度。
  12969. * @return 像素数据。
  12970. */
  12971. getData(x:number,y:number,width:number,height:number,out:Uint8Array):Uint8Array;
  12972. /**
  12973. * @inheritDoc
  12974. * @override
  12975. */
  12976. protected _disposeResource():void;
  12977. }
  12978. }
  12979. declare module laya.d3.resource {
  12980. /**
  12981. * <code>TextureCube</code> 类用于生成立方体纹理。
  12982. */
  12983. class TextureCube extends laya.resource.BaseTexture {
  12984. /**
  12985. * TextureCube资源。
  12986. */
  12987. static TEXTURECUBE:string;
  12988. /**
  12989. * 灰色纯色纹理。
  12990. */
  12991. static grayTexture:TextureCube;
  12992. /**
  12993. * @inheritDoc
  12994. */
  12995. static _parse(data:any,propertyParams?:any,constructParams?:any[]):TextureCube;
  12996. /**
  12997. * 加载TextureCube。
  12998. * @param url TextureCube地址。
  12999. * @param complete 完成回调。
  13000. */
  13001. static load(url:string,complete:laya.utils.Handler):void;
  13002. /**
  13003. * @inheritDoc
  13004. * @override
  13005. */
  13006. readonly defaulteTexture:laya.resource.BaseTexture;
  13007. /**
  13008. * 创建一个 <code>TextureCube</code> 实例。
  13009. * @param format 贴图格式。
  13010. * @param mipmap 是否生成mipmap。
  13011. */
  13012. constructor(size:number,format?:number,mipmap?:boolean);
  13013. /**
  13014. * @private
  13015. */
  13016. private _setPixels:any;
  13017. /**
  13018. * 通过六张图片源填充纹理。
  13019. * @param 图片源数组 。
  13020. */
  13021. setSixSideImageSources(source:any[],premultiplyAlpha?:boolean):void;
  13022. /**
  13023. * 通过六张图片源填充纹理。
  13024. * @param 图片源数组 。
  13025. */
  13026. setSixSidePixels(pixels:Array<Uint8Array>,miplevel?:number):void;
  13027. /**
  13028. * @inheritDoc
  13029. * @override
  13030. */
  13031. protected _recoverResource():void;
  13032. }
  13033. }
  13034. declare module laya.d3.resource {
  13035. /**
  13036. * ...
  13037. * @author
  13038. */
  13039. class TextureGenerator {
  13040. constructor();
  13041. static lightAttenTexture(x:number,y:number,maxX:number,maxY:number,index:number,data:Uint8Array):void;
  13042. static haloTexture(x:number,y:number,maxX:number,maxY:number,index:number,data:Uint8Array):void;
  13043. static _generateTexture2D(texture:laya.resource.Texture2D,textureWidth:number,textureHeight:number,func:Function):void;
  13044. }
  13045. }
  13046. declare module laya.d3.shader {
  13047. /**
  13048. * <code>DefineDatas</code> 类用于创建宏定义数据集合。
  13049. */
  13050. class DefineDatas implements laya.d3.core.IClone {
  13051. /**
  13052. * 创建一个 <code>DefineDatas</code> 实例。
  13053. */
  13054. constructor();
  13055. /**
  13056. * 添加宏定义值。
  13057. * @param define 宏定义值。
  13058. */
  13059. add(define:laya.d3.shader.ShaderDefine):void;
  13060. /**
  13061. * 移除宏定义。
  13062. * @param define 宏定义。
  13063. */
  13064. remove(define:laya.d3.shader.ShaderDefine):void;
  13065. /**
  13066. * 添加宏定义集合。
  13067. * @param define 宏定义集合。
  13068. */
  13069. addDefineDatas(define:DefineDatas):void;
  13070. /**
  13071. * 移除宏定义集合。
  13072. * @param define 宏定义集合。
  13073. */
  13074. removeDefineDatas(define:DefineDatas):void;
  13075. /**
  13076. * 是否有宏定义。
  13077. * @param define 宏定义。
  13078. */
  13079. has(define:laya.d3.shader.ShaderDefine):boolean;
  13080. /**
  13081. * 清空宏定义。
  13082. */
  13083. clear():void;
  13084. /**
  13085. * 克隆。
  13086. * @param destObject 克隆源。
  13087. */
  13088. cloneTo(destObject:any):void;
  13089. /**
  13090. * 克隆。
  13091. * @return 克隆副本。
  13092. */
  13093. clone():any;
  13094. }
  13095. }
  13096. declare module laya.d3.shader {
  13097. /**
  13098. * <code>Shader3D</code> 类用于创建Shader3D。
  13099. */
  13100. class Shader3D {
  13101. /**
  13102. * 渲染状态_剔除。
  13103. */
  13104. static RENDER_STATE_CULL:number;
  13105. /**
  13106. * 渲染状态_混合。
  13107. */
  13108. static RENDER_STATE_BLEND:number;
  13109. /**
  13110. * 渲染状态_混合源。
  13111. */
  13112. static RENDER_STATE_BLEND_SRC:number;
  13113. /**
  13114. * 渲染状态_混合目标。
  13115. */
  13116. static RENDER_STATE_BLEND_DST:number;
  13117. /**
  13118. * 渲染状态_混合源RGB。
  13119. */
  13120. static RENDER_STATE_BLEND_SRC_RGB:number;
  13121. /**
  13122. * 渲染状态_混合目标RGB。
  13123. */
  13124. static RENDER_STATE_BLEND_DST_RGB:number;
  13125. /**
  13126. * 渲染状态_混合源ALPHA。
  13127. */
  13128. static RENDER_STATE_BLEND_SRC_ALPHA:number;
  13129. /**
  13130. * 渲染状态_混合目标ALPHA。
  13131. */
  13132. static RENDER_STATE_BLEND_DST_ALPHA:number;
  13133. /**
  13134. * 渲染状态_混合常量颜色。
  13135. */
  13136. static RENDER_STATE_BLEND_CONST_COLOR:number;
  13137. /**
  13138. * 渲染状态_混合方程。
  13139. */
  13140. static RENDER_STATE_BLEND_EQUATION:number;
  13141. /**
  13142. * 渲染状态_RGB混合方程。
  13143. */
  13144. static RENDER_STATE_BLEND_EQUATION_RGB:number;
  13145. /**
  13146. * 渲染状态_ALPHA混合方程。
  13147. */
  13148. static RENDER_STATE_BLEND_EQUATION_ALPHA:number;
  13149. /**
  13150. * 渲染状态_深度测试。
  13151. */
  13152. static RENDER_STATE_DEPTH_TEST:number;
  13153. /**
  13154. * 渲染状态_深度写入。
  13155. */
  13156. static RENDER_STATE_DEPTH_WRITE:number;
  13157. /**
  13158. * shader变量提交周期,自定义。
  13159. */
  13160. static PERIOD_CUSTOM:number;
  13161. /**
  13162. * shader变量提交周期,逐材质。
  13163. */
  13164. static PERIOD_MATERIAL:number;
  13165. /**
  13166. * shader变量提交周期,逐精灵和相机,注:因为精灵包含MVP矩阵,为复合属性,所以摄像机发生变化时也应提交。
  13167. */
  13168. static PERIOD_SPRITE:number;
  13169. /**
  13170. * shader变量提交周期,逐相机。
  13171. */
  13172. static PERIOD_CAMERA:number;
  13173. /**
  13174. * shader变量提交周期,逐场景。
  13175. */
  13176. static PERIOD_SCENE:number;
  13177. /**
  13178. * 是否开启调试模式。
  13179. */
  13180. static debugMode:boolean;
  13181. /**
  13182. * 注册宏定义。
  13183. * @param name
  13184. */
  13185. static getDefineByName(name:string):laya.d3.shader.ShaderDefine;
  13186. /**
  13187. * 通过Shader属性名称获得唯一ID。
  13188. * @param name Shader属性名称。
  13189. * @return 唯一ID。
  13190. */
  13191. static propertyNameToID(name:string):number;
  13192. /**
  13193. * 添加函数库引用。
  13194. * @param fileName 文件名字。
  13195. * @param txt 文件内容
  13196. */
  13197. static addInclude(fileName:string,txt:string):void;
  13198. /**
  13199. * 通过宏定义名字编译shader。
  13200. * @param shaderName Shader名称。
  13201. * @param subShaderIndex 子着色器索引。
  13202. * @param passIndex 通道索引。
  13203. * @param defineNames 宏定义名字集合。
  13204. */
  13205. static compileShaderByDefineNames(shaderName:string,subShaderIndex:number,passIndex:number,defineNames:Array<string>):void;
  13206. /**
  13207. * 通过宏定义遮罩编译shader,建议使用compileShaderByDefineNames。
  13208. * @param shaderName Shader名称。
  13209. * @param subShaderIndex 子着色器索引。
  13210. * @param passIndex 通道索引。
  13211. * @param defineMask 宏定义遮罩集合。
  13212. */
  13213. static compileShader(shaderName:string,subShaderIndex:number,passIndex:number,...defineMask:any[]):void;
  13214. /**
  13215. * 添加预编译shader文件,主要是处理宏定义
  13216. */
  13217. static add(name:string,attributeMap?:any,uniformMap?:any,enableInstancing?:boolean):Shader3D;
  13218. /**
  13219. * 获取ShaderCompile3D。
  13220. * @param name
  13221. * @return ShaderCompile3D。
  13222. */
  13223. static find(name:string):Shader3D;
  13224. /**
  13225. * 创建一个 <code>Shader3D</code> 实例。
  13226. */
  13227. constructor(name:string,attributeMap:any,uniformMap:any,enableInstancing:boolean);
  13228. /**
  13229. * 添加子着色器。
  13230. * @param 子着色器 。
  13231. */
  13232. addSubShader(subShader:laya.d3.shader.SubShader):void;
  13233. /**
  13234. * 在特定索引获取子着色器。
  13235. * @param index 索引。
  13236. * @return 子着色器。
  13237. */
  13238. getSubShaderAt(index:number):laya.d3.shader.SubShader;
  13239. }
  13240. }
  13241. declare module laya.d3.shader {
  13242. /**
  13243. * 着色器数据类。
  13244. */
  13245. class ShaderData implements laya.d3.core.IClone {
  13246. /**
  13247. * 增加Shader宏定义。
  13248. * @param value 宏定义。
  13249. */
  13250. addDefine(define:laya.d3.shader.ShaderDefine):void;
  13251. /**
  13252. * 移除Shader宏定义。
  13253. * @param value 宏定义。
  13254. */
  13255. removeDefine(define:laya.d3.shader.ShaderDefine):void;
  13256. /**
  13257. * 是否包含Shader宏定义。
  13258. * @param value 宏定义。
  13259. */
  13260. hasDefine(define:laya.d3.shader.ShaderDefine):boolean;
  13261. /**
  13262. * 清空宏定义。
  13263. */
  13264. clearDefine():void;
  13265. /**
  13266. * 获取布尔。
  13267. * @param index shader索引。
  13268. * @return 布尔。
  13269. */
  13270. getBool(index:number):boolean;
  13271. /**
  13272. * 设置布尔。
  13273. * @param index shader索引。
  13274. * @param value 布尔。
  13275. */
  13276. setBool(index:number,value:boolean):void;
  13277. /**
  13278. * 获取整形。
  13279. * @param index shader索引。
  13280. * @return 整形。
  13281. */
  13282. getInt(index:number):number;
  13283. /**
  13284. * 设置整型。
  13285. * @param index shader索引。
  13286. * @param value 整形。
  13287. */
  13288. setInt(index:number,value:number):void;
  13289. /**
  13290. * 获取浮点。
  13291. * @param index shader索引。
  13292. * @return 浮点。
  13293. */
  13294. getNumber(index:number):number;
  13295. /**
  13296. * 设置浮点。
  13297. * @param index shader索引。
  13298. * @param value 浮点。
  13299. */
  13300. setNumber(index:number,value:number):void;
  13301. /**
  13302. * 获取Vector2向量。
  13303. * @param index shader索引。
  13304. * @return Vector2向量。
  13305. */
  13306. getVector2(index:number):laya.d3.math.Vector2;
  13307. /**
  13308. * 设置Vector2向量。
  13309. * @param index shader索引。
  13310. * @param value Vector2向量。
  13311. */
  13312. setVector2(index:number,value:laya.d3.math.Vector2):void;
  13313. /**
  13314. * 获取Vector3向量。
  13315. * @param index shader索引。
  13316. * @return Vector3向量。
  13317. */
  13318. getVector3(index:number):laya.d3.math.Vector3;
  13319. /**
  13320. * 设置Vector3向量。
  13321. * @param index shader索引。
  13322. * @param value Vector3向量。
  13323. */
  13324. setVector3(index:number,value:laya.d3.math.Vector3):void;
  13325. /**
  13326. * 获取颜色。
  13327. * @param index shader索引。
  13328. * @return 颜色向量。
  13329. */
  13330. getVector(index:number):laya.d3.math.Vector4;
  13331. /**
  13332. * 设置向量。
  13333. * @param index shader索引。
  13334. * @param value 向量。
  13335. */
  13336. setVector(index:number,value:laya.d3.math.Vector4):void;
  13337. /**
  13338. * 获取四元数。
  13339. * @param index shader索引。
  13340. * @return 四元。
  13341. */
  13342. getQuaternion(index:number):laya.d3.math.Quaternion;
  13343. /**
  13344. * 设置四元数。
  13345. * @param index shader索引。
  13346. * @param value 四元数。
  13347. */
  13348. setQuaternion(index:number,value:laya.d3.math.Quaternion):void;
  13349. /**
  13350. * 获取矩阵。
  13351. * @param index shader索引。
  13352. * @return 矩阵。
  13353. */
  13354. getMatrix4x4(index:number):laya.d3.math.Matrix4x4;
  13355. /**
  13356. * 设置矩阵。
  13357. * @param index shader索引。
  13358. * @param value 矩阵。
  13359. */
  13360. setMatrix4x4(index:number,value:laya.d3.math.Matrix4x4):void;
  13361. /**
  13362. * 获取Buffer。
  13363. * @param index shader索引。
  13364. * @return
  13365. */
  13366. getBuffer(shaderIndex:number):Float32Array;
  13367. /**
  13368. * 设置Buffer。
  13369. * @param index shader索引。
  13370. * @param value buffer数据。
  13371. */
  13372. setBuffer(index:number,value:Float32Array):void;
  13373. /**
  13374. * 设置纹理。
  13375. * @param index shader索引。
  13376. * @param value 纹理。
  13377. */
  13378. setTexture(index:number,value:laya.resource.BaseTexture):void;
  13379. /**
  13380. * 获取纹理。
  13381. * @param index shader索引。
  13382. * @return 纹理。
  13383. */
  13384. getTexture(index:number):laya.resource.BaseTexture;
  13385. /**
  13386. * 设置Attribute。
  13387. * @param index shader索引。
  13388. * @param value 纹理。
  13389. */
  13390. setAttribute(index:number,value:Int32Array):void;
  13391. /**
  13392. * 获取Attribute。
  13393. * @param index shader索引。
  13394. * @return 纹理。
  13395. */
  13396. getAttribute(index:number):any[];
  13397. /**
  13398. * 获取长度。
  13399. * @return 长度。
  13400. */
  13401. getLength():number;
  13402. /**
  13403. * 设置长度。
  13404. * @param 长度 。
  13405. */
  13406. setLength(value:number):void;
  13407. /**
  13408. * 克隆。
  13409. * @param destObject 克隆源。
  13410. */
  13411. cloneTo(destObject:any):void;
  13412. /**
  13413. * 克隆。
  13414. * @return 克隆副本。
  13415. */
  13416. clone():any;
  13417. /**
  13418. * 克隆。
  13419. * @param destObject 克隆源。
  13420. */
  13421. cloneToForNative(destObject:any):void;
  13422. needRenewArrayBufferForNative(index:number):void;
  13423. getDataForNative():any[];
  13424. setReferenceForNative(value:any):number;
  13425. static setRuntimeValueMode(bReference:boolean):void;
  13426. clearRuntimeCopyArray():void;
  13427. }
  13428. }
  13429. declare module laya.d3.shader {
  13430. class ShaderDefine {
  13431. constructor(index:number,value:number);
  13432. }
  13433. }
  13434. declare module laya.d3.shader {
  13435. /**
  13436. * <code>ShaderPass</code> 类用于实现ShaderPass。
  13437. */
  13438. class ShaderPass extends laya.webgl.utils.ShaderCompile {
  13439. /**
  13440. * 获取渲染状态。
  13441. * @return 渲染状态。
  13442. */
  13443. readonly renderState:laya.d3.core.material.RenderState;
  13444. constructor(owner:laya.d3.shader.SubShader,vs:string,ps:string,stateMap:object);
  13445. /**
  13446. * @inheritDoc
  13447. * @override
  13448. */
  13449. protected _compileToTree(parent:laya.webgl.utils.ShaderNode,lines:any[],start:number,includefiles:any[],defs:any):void;
  13450. }
  13451. }
  13452. declare module laya.d3.shader {
  13453. /**
  13454. * <code>SubShader</code> 类用于创建SubShader。
  13455. */
  13456. class SubShader {
  13457. /**
  13458. * 创建一个 <code>SubShader</code> 实例。
  13459. * @param attributeMap 顶点属性表。
  13460. * @param uniformMap uniform属性表。
  13461. */
  13462. constructor(attributeMap:any,uniformMap:any);
  13463. /**
  13464. * 添加标记。
  13465. * @param key 标记键。
  13466. * @param value 标记值。
  13467. */
  13468. setFlag(key:string,value:string):void;
  13469. /**
  13470. * 获取标记值。
  13471. * @return key 标记键。
  13472. */
  13473. getFlag(key:string):string;
  13474. /**
  13475. * 添加着色器Pass
  13476. * @param vs
  13477. * @param ps
  13478. * @param stateMap
  13479. */
  13480. addShaderPass(vs:string,ps:string,stateMap?:object):laya.d3.shader.ShaderPass;
  13481. }
  13482. }
  13483. declare module laya.d3.shadowMap {
  13484. /**
  13485. * ...
  13486. * @author ...
  13487. */
  13488. class ParallelSplitShadowMap {
  13489. constructor();
  13490. setInfo(scene:laya.d3.core.scene.Scene3D,maxDistance:number,globalParallelDir:laya.d3.math.Vector3,shadowMapTextureSize:number,numberOfPSSM:number,PCFType:number):void;
  13491. setPCFType(PCFtype:number):void;
  13492. getPCFType():number;
  13493. setFarDistance(value:number):void;
  13494. getFarDistance():number;
  13495. shadowMapCount:number;
  13496. private _beginSampler:any;
  13497. calcSplitFrustum(sceneCamera:laya.d3.core.BaseCamera):void;
  13498. /**
  13499. * 计算两个矩阵的乘法
  13500. * @param left left矩阵
  13501. * @param right right矩阵
  13502. * @param out 输出矩阵
  13503. */
  13504. static multiplyMatrixOutFloat32Array(left:laya.d3.math.Matrix4x4,right:laya.d3.math.Matrix4x4,out:Float32Array):void;
  13505. setShadowMapTextureSize(size:number):void;
  13506. disposeAllRenderTarget():void;
  13507. }
  13508. }
  13509. declare module laya.d3.text {
  13510. /**
  13511. * <code>TextMesh</code> 类用于创建文本网格。
  13512. */
  13513. class TextMesh {
  13514. private static _indexBuffer:any;
  13515. private _vertices:any;
  13516. private _vertexBuffer:any;
  13517. private _text:any;
  13518. private _fontSize:any;
  13519. private _color:any;
  13520. /**
  13521. * 获取文本。
  13522. * @return 文本。
  13523. */
  13524. /**
  13525. * 设置文本。
  13526. * @param value 文本。
  13527. */
  13528. text:string;
  13529. /**
  13530. * 获取字体尺寸。
  13531. * @param value 字体尺寸。
  13532. */
  13533. /**
  13534. * 设置字体储存。
  13535. * @return 字体尺寸。
  13536. */
  13537. fontSize:number;
  13538. /**
  13539. * 获取颜色。
  13540. * @return 颜色。
  13541. */
  13542. /**
  13543. * 设置颜色。
  13544. * @param 颜色 。
  13545. */
  13546. color:laya.d3.math.Color;
  13547. /**
  13548. * 创建一个新的 <code>TextMesh</code> 实例。
  13549. */
  13550. constructor();
  13551. private _createVertexBuffer:any;
  13552. private _resizeVertexBuffer:any;
  13553. private _addChar:any;
  13554. }
  13555. }
  13556. declare module laya.d3 {
  13557. /**
  13558. * <code>Touch</code> 类用于实现触摸描述。
  13559. */
  13560. class Touch implements laya.resource.ISingletonElement {
  13561. /**
  13562. * [实现IListPool接口]
  13563. */
  13564. private _indexInList:any;
  13565. /**
  13566. * 获取唯一识别ID。
  13567. * @return 唯一识别ID。
  13568. */
  13569. readonly identifier:number;
  13570. /**
  13571. * 获取触摸点的像素坐标。
  13572. * @return 触摸点的像素坐标 [只读]。
  13573. */
  13574. readonly position:laya.d3.math.Vector2;
  13575. /**
  13576. * [实现ISingletonElement接口]
  13577. */
  13578. _getIndexInList():number;
  13579. /**
  13580. * [实现ISingletonElement接口]
  13581. */
  13582. _setIndexInList(index:number):void;
  13583. }
  13584. }
  13585. declare module laya.d3.utils {
  13586. /**
  13587. * <code>Physics</code> 类用于简单物理检测。
  13588. */
  13589. class Physics3DUtils {
  13590. static COLLISIONFILTERGROUP_DEFAULTFILTER:number;
  13591. static COLLISIONFILTERGROUP_STATICFILTER:number;
  13592. static COLLISIONFILTERGROUP_KINEMATICFILTER:number;
  13593. static COLLISIONFILTERGROUP_DEBRISFILTER:number;
  13594. static COLLISIONFILTERGROUP_SENSORTRIGGER:number;
  13595. static COLLISIONFILTERGROUP_CHARACTERFILTER:number;
  13596. static COLLISIONFILTERGROUP_CUSTOMFILTER1:number;
  13597. static COLLISIONFILTERGROUP_CUSTOMFILTER2:number;
  13598. static COLLISIONFILTERGROUP_CUSTOMFILTER3:number;
  13599. static COLLISIONFILTERGROUP_CUSTOMFILTER4:number;
  13600. static COLLISIONFILTERGROUP_CUSTOMFILTER5:number;
  13601. static COLLISIONFILTERGROUP_CUSTOMFILTER6:number;
  13602. static COLLISIONFILTERGROUP_CUSTOMFILTER7:number;
  13603. static COLLISIONFILTERGROUP_CUSTOMFILTER8:number;
  13604. static COLLISIONFILTERGROUP_CUSTOMFILTER9:number;
  13605. static COLLISIONFILTERGROUP_CUSTOMFILTER10:number;
  13606. static COLLISIONFILTERGROUP_ALLFILTER:number;
  13607. /**
  13608. * 重力值。
  13609. */
  13610. static gravity:laya.d3.math.Vector3;
  13611. /**
  13612. * 创建一个 <code>Physics</code> 实例。
  13613. */
  13614. constructor();
  13615. /**
  13616. * 是否忽略两个碰撞器的碰撞检测。
  13617. * @param collider1 碰撞器一。
  13618. * @param collider2 碰撞器二。
  13619. * @param ignore 是否忽略。
  13620. */
  13621. static setColliderCollision(collider1:laya.d3.physics.PhysicsComponent,collider2:laya.d3.physics.PhysicsComponent,collsion:boolean):void;
  13622. /**
  13623. * 获取是否忽略两个碰撞器的碰撞检测。
  13624. * @param collider1 碰撞器一。
  13625. * @param collider2 碰撞器二。
  13626. * @return 是否忽略。
  13627. */
  13628. static getIColliderCollision(collider1:laya.d3.physics.PhysicsComponent,collider2:laya.d3.physics.PhysicsComponent):boolean;
  13629. }
  13630. }
  13631. declare module laya.d3.utils {
  13632. /**
  13633. * <code>Picker</code> 类用于创建拾取。
  13634. */
  13635. class Picker {
  13636. private static _tempVector30:any;
  13637. private static _tempVector31:any;
  13638. private static _tempVector32:any;
  13639. private static _tempVector33:any;
  13640. private static _tempVector34:any;
  13641. /**
  13642. * 创建一个 <code>Picker</code> 实例。
  13643. */
  13644. constructor();
  13645. /**
  13646. * 计算鼠标生成的射线。
  13647. * @param point 鼠标位置。
  13648. * @param viewPort 视口。
  13649. * @param projectionMatrix 透视投影矩阵。
  13650. * @param viewMatrix 视图矩阵。
  13651. * @param world 世界偏移矩阵。
  13652. * @return out 输出射线。
  13653. */
  13654. static calculateCursorRay(point:laya.d3.math.Vector2,viewPort:laya.d3.math.Viewport,projectionMatrix:laya.d3.math.Matrix4x4,viewMatrix:laya.d3.math.Matrix4x4,world:laya.d3.math.Matrix4x4,out:laya.d3.math.Ray):void;
  13655. /**
  13656. * 计算射线和三角形碰撞并返回碰撞距离。
  13657. * @param ray 射线。
  13658. * @param vertex1 顶点1。
  13659. * @param vertex2 顶点2。
  13660. * @param vertex3 顶点3。
  13661. * @return 射线距离三角形的距离,返回Number.NaN则不相交。
  13662. */
  13663. static rayIntersectsTriangle(ray:laya.d3.math.Ray,vertex1:laya.d3.math.Vector3,vertex2:laya.d3.math.Vector3,vertex3:laya.d3.math.Vector3):number;
  13664. }
  13665. }
  13666. declare module laya.d3.utils {
  13667. /**
  13668. * <code>Utils3D</code> 类用于创建3D工具。
  13669. */
  13670. class Scene3DUtils {
  13671. private static _createSprite3DInstance:any;
  13672. private static _createComponentInstance:any;
  13673. }
  13674. }
  13675. declare module laya.d3.utils {
  13676. class Size {
  13677. static readonly fullScreen:Size;
  13678. private _width:any;
  13679. private _height:any;
  13680. readonly width:number;
  13681. readonly height:number;
  13682. constructor(width:number,height:number);
  13683. }
  13684. }
  13685. declare module laya.d3.utils {
  13686. class SystemUtils {
  13687. /**
  13688. * 是否支持纹理格式。
  13689. * @param format 纹理格式。
  13690. */
  13691. static supportTextureFormat(format:number):boolean;
  13692. /**
  13693. * 是否支持渲染纹理格式。
  13694. * @param format 渲染纹理格式。
  13695. */
  13696. static supportRenderTextureFormat(format:number):boolean;
  13697. }
  13698. }
  13699. declare module laya.d3.utils {
  13700. /**
  13701. * <code>Utils3D</code> 类用于创建3D工具。
  13702. */
  13703. class Utils3D {
  13704. private static _tempVector3_0:any;
  13705. private static _tempVector3_1:any;
  13706. private static _tempArray16_0:any;
  13707. private static _tempArray16_1:any;
  13708. private static _tempArray16_2:any;
  13709. private static _tempArray16_3:any;
  13710. /**
  13711. * 通过数平移、旋转、缩放值计算到结果矩阵数组,骨骼动画专用。
  13712. * @param tx left矩阵数组。
  13713. * @param ty left矩阵数组的偏移。
  13714. * @param tz right矩阵数组。
  13715. * @param qx right矩阵数组的偏移。
  13716. * @param qy 输出矩阵数组。
  13717. * @param qz 输出矩阵数组的偏移。
  13718. * @param qw 输出矩阵数组的偏移。
  13719. * @param sx 输出矩阵数组的偏移。
  13720. * @param sy 输出矩阵数组的偏移。
  13721. * @param sz 输出矩阵数组的偏移。
  13722. * @param outArray 结果矩阵数组。
  13723. * @param outOffset 结果矩阵数组的偏移。
  13724. */
  13725. private static _rotationTransformScaleSkinAnimation:any;
  13726. /**
  13727. * 根据四元数旋转三维向量。
  13728. * @param source 源三维向量。
  13729. * @param rotation 旋转四元数。
  13730. * @param out 输出三维向量。
  13731. */
  13732. static transformVector3ArrayByQuat(sourceArray:Float32Array,sourceOffset:number,rotation:laya.d3.math.Quaternion,outArray:Float32Array,outOffset:number):void;
  13733. /**
  13734. * 通过数组数据计算矩阵乘法。
  13735. * @param leftArray left矩阵数组。
  13736. * @param leftOffset left矩阵数组的偏移。
  13737. * @param rightArray right矩阵数组。
  13738. * @param rightOffset right矩阵数组的偏移。
  13739. * @param outArray 输出矩阵数组。
  13740. * @param outOffset 输出矩阵数组的偏移。
  13741. */
  13742. static mulMatrixByArray(leftArray:Float32Array,leftOffset:number,rightArray:Float32Array,rightOffset:number,outArray:Float32Array,outOffset:number):void;
  13743. /**
  13744. * 通过数组数据计算矩阵乘法,rightArray和outArray不能为同一数组引用。
  13745. * @param leftArray left矩阵数组。
  13746. * @param leftOffset left矩阵数组的偏移。
  13747. * @param rightArray right矩阵数组。
  13748. * @param rightOffset right矩阵数组的偏移。
  13749. * @param outArray 结果矩阵数组。
  13750. * @param outOffset 结果矩阵数组的偏移。
  13751. */
  13752. static mulMatrixByArrayFast(leftArray:Float32Array,leftOffset:number,rightArray:Float32Array,rightOffset:number,outArray:Float32Array,outOffset:number):void;
  13753. /**
  13754. * 通过数组数据计算矩阵乘法,rightArray和outArray不能为同一数组引用。
  13755. * @param leftArray left矩阵数组。
  13756. * @param leftOffset left矩阵数组的偏移。
  13757. * @param rightMatrix right矩阵。
  13758. * @param outArray 结果矩阵数组。
  13759. * @param outOffset 结果矩阵数组的偏移。
  13760. */
  13761. static mulMatrixByArrayAndMatrixFast(leftArray:Float32Array,leftOffset:number,rightMatrix:laya.d3.math.Matrix4x4,outArray:Float32Array,outOffset:number):void;
  13762. /**
  13763. * 通过数平移、旋转、缩放值计算到结果矩阵数组。
  13764. * @param tX left矩阵数组。
  13765. * @param tY left矩阵数组的偏移。
  13766. * @param tZ right矩阵数组。
  13767. * @param qX right矩阵数组的偏移。
  13768. * @param qY 输出矩阵数组。
  13769. * @param qZ 输出矩阵数组的偏移。
  13770. * @param qW 输出矩阵数组的偏移。
  13771. * @param sX 输出矩阵数组的偏移。
  13772. * @param sY 输出矩阵数组的偏移。
  13773. * @param sZ 输出矩阵数组的偏移。
  13774. * @param outArray 结果矩阵数组。
  13775. * @param outOffset 结果矩阵数组的偏移。
  13776. */
  13777. static createAffineTransformationArray(tX:number,tY:number,tZ:number,rX:number,rY:number,rZ:number,rW:number,sX:number,sY:number,sZ:number,outArray:Float32Array,outOffset:number):void;
  13778. /**
  13779. * 通过矩阵转换一个三维向量数组到另外一个归一化的三维向量数组。
  13780. * @param source 源三维向量所在数组。
  13781. * @param sourceOffset 源三维向量数组偏移。
  13782. * @param transform 变换矩阵。
  13783. * @param result 输出三维向量所在数组。
  13784. * @param resultOffset 输出三维向量数组偏移。
  13785. */
  13786. static transformVector3ArrayToVector3ArrayCoordinate(source:Float32Array,sourceOffset:number,transform:laya.d3.math.Matrix4x4,result:Float32Array,resultOffset:number):void;
  13787. /**
  13788. * 获取URL版本字符。
  13789. * @param url
  13790. * @return
  13791. */
  13792. static getURLVerion(url:string):string;
  13793. private static arcTanAngle:any;
  13794. private static angleTo:any;
  13795. static transformQuat(source:laya.d3.math.Vector3,rotation:Float32Array,out:laya.d3.math.Vector3):void;
  13796. static quaternionWeight(f:laya.d3.math.Quaternion,weight:number,e:laya.d3.math.Quaternion):void;
  13797. static matrix4x4MultiplyFFF(a:Float32Array,b:Float32Array,e:Float32Array):void;
  13798. static matrix4x4MultiplyFFFForNative(a:Float32Array,b:Float32Array,e:Float32Array):void;
  13799. static matrix4x4MultiplyMFM(left:laya.d3.math.Matrix4x4,right:Float32Array,out:laya.d3.math.Matrix4x4):void;
  13800. }
  13801. }
  13802. declare module laya.device.geolocation {
  13803. /**
  13804. * 使用前可用<code>supported</code>查看浏览器支持。
  13805. */
  13806. class Geolocation {
  13807. private static navigator:any;
  13808. private static position:any;
  13809. /**
  13810. * 由于权限被拒绝造成的地理信息获取失败。
  13811. */
  13812. static PERMISSION_DENIED:number;
  13813. /**
  13814. * 由于内部位置源返回了内部错误导致地理信息获取失败。
  13815. */
  13816. static POSITION_UNAVAILABLE:number;
  13817. /**
  13818. * 信息获取所用时长超出<code>timeout</code>所设置时长。
  13819. */
  13820. static TIMEOUT:number;
  13821. /**
  13822. * 是否支持。
  13823. */
  13824. static supported:boolean;
  13825. /**
  13826. * 如果<code>enableHighAccuracy</code>为true,并且设备能够提供一个更精确的位置,则会获取最佳可能的结果。
  13827. * 请注意,这可能会导致较慢的响应时间或增加电量消耗(如使用GPS)。
  13828. * 另一方面,如果设置为false,将会得到更快速的响应和更少的电量消耗。
  13829. * 默认值为false。
  13830. */
  13831. static enableHighAccuracy:boolean;
  13832. /**
  13833. * 表示允许设备获取位置的最长时间。默认为Infinity,意味着getCurentPosition()直到位置可用时才会返回信息。
  13834. */
  13835. static timeout:number;
  13836. /**
  13837. * 表示可被返回的缓存位置信息的最大时限。
  13838. * 如果设置为0,意味着设备不使用缓存位置,并且尝试获取实时位置。
  13839. * 如果设置为Infinity,设备必须返回缓存位置而无论其时限。
  13840. */
  13841. static maximumAge:number;
  13842. constructor();
  13843. /**
  13844. * 获取设备当前位置。
  13845. * @param onSuccess 带有唯一<code>Position</code>参数的回调处理器。
  13846. * @param onError 可选的。带有错误信息的回调处理器。错误代码为Geolocation.PERMISSION_DENIED、Geolocation.POSITION_UNAVAILABLE和Geolocation.TIMEOUT之一。
  13847. */
  13848. static getCurrentPosition(onSuccess:laya.utils.Handler,onError?:laya.utils.Handler):void;
  13849. /**
  13850. * 监视设备当前位置。回调处理器在设备位置改变时被执行。
  13851. * @param onSuccess 带有唯一<code>Position</code>参数的回调处理器。
  13852. * @param onError 可选的。带有错误信息的回调处理器。错误代码为Geolocation.PERMISSION_DENIED、Geolocation.POSITION_UNAVAILABLE和Geolocation.TIMEOUT之一。
  13853. */
  13854. static watchPosition(onSuccess:laya.utils.Handler,onError:laya.utils.Handler):number;
  13855. /**
  13856. * 移除<code>watchPosition</code>安装的指定处理器。
  13857. * @param id
  13858. */
  13859. static clearWatch(id:number):void;
  13860. }
  13861. }
  13862. declare module laya.device.geolocation {
  13863. class GeolocationInfo {
  13864. private pos:any;
  13865. private coords:any;
  13866. setPosition(pos:any):void;
  13867. readonly latitude:number;
  13868. readonly longitude:number;
  13869. readonly altitude:number;
  13870. readonly accuracy:number;
  13871. readonly altitudeAccuracy:number;
  13872. readonly heading:number;
  13873. readonly speed:number;
  13874. readonly timestamp:number;
  13875. }
  13876. }
  13877. declare module laya.device.media {
  13878. /**
  13879. * Media用于捕捉摄像头和麦克风。可以捕捉任意之一,或者同时捕捉两者。<code>getCamera</code>前可以使用<code>supported()</code>检查当前浏览器是否支持。
  13880. * <b>NOTE:</b>
  13881. * <p>目前Media在移动平台只支持Android,不支持IOS。只可在FireFox完整地使用,Chrome测试时无法捕捉视频。</p>
  13882. */
  13883. class Media {
  13884. constructor();
  13885. /**
  13886. * 检查浏览器兼容性。
  13887. */
  13888. static supported():boolean;
  13889. /**
  13890. * 获取用户媒体。
  13891. * @param options 简单的可选项可以使<code>{ audio:true, video:true }</code>表示同时捕捉两者。详情见<i>https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia</i>。
  13892. * @param onSuccess 获取成功的处理器,唯一参数返回媒体的Blob地址,可以将其传给Video。
  13893. * @param onError 获取失败的处理器,唯一参数是Error。
  13894. */
  13895. static getMedia(options:any,onSuccess:laya.utils.Handler,onError:laya.utils.Handler):void;
  13896. }
  13897. }
  13898. declare module laya.device.media {
  13899. const enum VIDEOTYPE {
  13900. MP4 = 1,
  13901. OGG = 2,
  13902. CAMERA = 4,
  13903. WEBM = 8
  13904. }
  13905. /**
  13906. * <code>Video</code>将视频显示到Canvas上。<code>Video</code>可能不会在所有浏览器有效。
  13907. * <p>关于Video支持的所有事件参见:<i>http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp</i>。</p>
  13908. * <p>
  13909. * <b>注意:</b><br/>
  13910. * 在PC端可以在任何时机调用<code>play()</code>因此,可以在程序开始运行时就使Video开始播放。但是在移动端,只有在用户第一次触碰屏幕后才可以调用play(),所以移动端不可能在程序开始运行时就自动开始播放Video。
  13911. * </p>
  13912. *
  13913. * <p>MDN Video链接: <i>https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video</i></p>
  13914. */
  13915. class Video extends laya.display.Sprite {
  13916. static MP4:number;
  13917. static OGG:number;
  13918. static CAMERA:number;
  13919. static WEBM:number;
  13920. /**
  13921. * 表示最有可能支持。
  13922. */
  13923. static SUPPORT_PROBABLY:string;
  13924. /**
  13925. * 表示可能支持。
  13926. */
  13927. static SUPPORT_MAYBY:string;
  13928. /**
  13929. * 表示不支持。
  13930. */
  13931. static SUPPORT_NO:string;
  13932. private htmlVideo:any;
  13933. private videoElement:any;
  13934. private internalTexture:any;
  13935. constructor(width?:number,height?:number);
  13936. private static onAbort:any;
  13937. private static onCanplay:any;
  13938. private static onCanplaythrough:any;
  13939. private static onDurationchange:any;
  13940. private static onEmptied:any;
  13941. private static onError:any;
  13942. private static onLoadeddata:any;
  13943. private static onLoadedmetadata:any;
  13944. private static onLoadstart:any;
  13945. private static onPause:any;
  13946. private static onPlay:any;
  13947. private static onPlaying:any;
  13948. private static onProgress:any;
  13949. private static onRatechange:any;
  13950. private static onSeeked:any;
  13951. private static onSeeking:any;
  13952. private static onStalled:any;
  13953. private static onSuspend:any;
  13954. private static onTimeupdate:any;
  13955. private static onVolumechange:any;
  13956. private static onWaiting:any;
  13957. private onPlayComplete:any;
  13958. /**
  13959. * 设置播放源。
  13960. * @param url 播放源路径。
  13961. */
  13962. load(url:string):void;
  13963. /**
  13964. * 开始播放视频。
  13965. */
  13966. play():void;
  13967. /**
  13968. * 暂停视频播放。
  13969. */
  13970. pause():void;
  13971. /**
  13972. * 重新加载视频。
  13973. */
  13974. reload():void;
  13975. /**
  13976. * 检测是否支持播放指定格式视频。
  13977. * @param type 参数为Video.MP4 / Video.OGG / Video.WEBM之一。
  13978. * @return 表示支持的级别。可能的值: <ul> <li>"probably",Video.SUPPORT_PROBABLY - 浏览器最可能支持该音频/视频类型</li> <li>"maybe",Video.SUPPORT_MAYBY - 浏览器也许支持该音频/视频类型</li> <li>"",Video.SUPPORT_NO- (空字符串)浏览器不支持该音频/视频类型</li> </ul>
  13979. */
  13980. canPlayType(type:number):string;
  13981. private renderCanvas:any;
  13982. private onDocumentClick:any;
  13983. /**
  13984. * buffered 属性返回 TimeRanges(JS)对象。TimeRanges 对象表示用户的音视频缓冲范围。缓冲范围指的是已缓冲音视频的时间范围。如果用户在音视频中跳跃播放,会得到多个缓冲范围。
  13985. * <p>buffered.length返回缓冲范围个数。如获取第一个缓冲范围则是buffered.start(0)和buffered.end(0)。以秒计。</p>
  13986. * @return TimeRanges(JS)对象
  13987. */
  13988. readonly buffered:any;
  13989. /**
  13990. * 获取当前播放源路径。
  13991. */
  13992. readonly currentSrc:string;
  13993. /**
  13994. * 设置和获取当前播放头位置。
  13995. */
  13996. currentTime:number;
  13997. /**
  13998. * 设置和获取当前音量。
  13999. */
  14000. volume:number;
  14001. /**
  14002. * 表示视频元素的就绪状态:
  14003. * <ul>
  14004. * <li>0 = HAVE_NOTHING - 没有关于音频/视频是否就绪的信息</li>
  14005. * <li>1 = HAVE_METADATA - 关于音频/视频就绪的元数据</li>
  14006. * <li>2 = HAVE_CURRENT_DATA - 关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒</li>
  14007. * <li>3 = HAVE_FUTURE_DATA - 当前及至少下一帧的数据是可用的</li>
  14008. * <li>4 = HAVE_ENOUGH_DATA - 可用数据足以开始播放</li>
  14009. * </ul>
  14010. */
  14011. readonly readyState:any;
  14012. /**
  14013. * 获取视频源尺寸。ready事件触发后可用。
  14014. */
  14015. readonly videoWidth:number;
  14016. readonly videoHeight:number;
  14017. /**
  14018. * 获取视频长度(秒)。ready事件触发后可用。
  14019. */
  14020. readonly duration:number;
  14021. /**
  14022. * 返回音频/视频的播放是否已结束
  14023. */
  14024. readonly ended:boolean;
  14025. /**
  14026. * 返回表示音频/视频错误状态的 MediaError(JS)对象。
  14027. */
  14028. readonly error:boolean;
  14029. /**
  14030. * 设置或返回音频/视频是否应在结束时重新播放。
  14031. */
  14032. loop:boolean;
  14033. /**
  14034. * 设置视频的x坐标
  14035. * @override
  14036. */
  14037. x:number;
  14038. /**
  14039. * 设置视频的y坐标
  14040. * @override
  14041. */
  14042. y:number;
  14043. /**
  14044. * playbackRate 属性设置或返回音频/视频的当前播放速度。如:
  14045. * <ul>
  14046. * <li>1.0 正常速度</li>
  14047. * <li>0.5 半速(更慢)</li>
  14048. * <li>2.0 倍速(更快)</li>
  14049. * <li>-1.0 向后,正常速度</li>
  14050. * <li>-0.5 向后,半速</li>
  14051. * </ul>
  14052. * <p>只有 Google Chrome 和 Safari 支持 playbackRate 属性。</p>
  14053. */
  14054. playbackRate:number;
  14055. /**
  14056. * 获取和设置静音状态。
  14057. */
  14058. muted:boolean;
  14059. /**
  14060. * 返回视频是否暂停
  14061. */
  14062. readonly paused:boolean;
  14063. /**
  14064. * preload 属性设置或返回是否在页面加载后立即加载视频。可赋值如下:
  14065. * <ul>
  14066. * <li>auto 指示一旦页面加载,则开始加载视频。</li>
  14067. * <li>metadata 指示当页面加载后仅加载音频/视频的元数据。</li>
  14068. * <li>none 指示页面加载后不应加载音频/视频。</li>
  14069. * </ul>
  14070. */
  14071. preload:string;
  14072. /**
  14073. * 参见 <i>http://www.w3school.com.cn/tags/av_prop_seekable.asp</i>。
  14074. */
  14075. readonly seekable:any;
  14076. /**
  14077. * seeking 属性返回用户目前是否在音频/视频中寻址。
  14078. * 寻址中(Seeking)指的是用户在音频/视频中移动/跳跃到新的位置。
  14079. */
  14080. readonly seeking:boolean;
  14081. /**
  14082. * @param width
  14083. * @param height
  14084. * @override
  14085. */
  14086. size(width:number,height:number):laya.display.Sprite;
  14087. /**
  14088. * @override
  14089. */
  14090. width:number;
  14091. /**
  14092. * @override
  14093. */
  14094. height:number;
  14095. /**
  14096. * 销毁内部事件绑定。
  14097. * @override
  14098. */
  14099. destroy(detroyChildren?:boolean):void;
  14100. private syncVideoPosition:any;
  14101. }
  14102. }
  14103. declare module laya.device.motion {
  14104. /**
  14105. * 加速度x/y/z的单位均为m/s²。
  14106. * 在硬件(陀螺仪)不支持的情况下,alpha、beta和gamma值为null。
  14107. * @author Survivor
  14108. */
  14109. class AccelerationInfo {
  14110. /**
  14111. * x轴上的加速度值。
  14112. */
  14113. x:number;
  14114. /**
  14115. * y轴上的加速度值。
  14116. */
  14117. y:number;
  14118. /**
  14119. * z轴上的加速度值。
  14120. */
  14121. z:number;
  14122. constructor();
  14123. }
  14124. }
  14125. declare module laya.device.motion {
  14126. /**
  14127. * Accelerator.instance获取唯一的Accelerator引用,请勿调用构造函数。
  14128. *
  14129. * <p>
  14130. * listen()的回调处理器接受四个参数:
  14131. * <ol>
  14132. * <li><b>acceleration</b>: 表示用户给予设备的加速度。</li>
  14133. * <li><b>accelerationIncludingGravity</b>: 设备受到的总加速度(包含重力)。</li>
  14134. * <li><b>rotationRate</b>: 设备的自转速率。</li>
  14135. * <li><b>interval</b>: 加速度获取的时间间隔(毫秒)。</li>
  14136. * </ol>
  14137. * </p>
  14138. * <p>
  14139. * <b>NOTE</b><br/>
  14140. * 如,rotationRate的alpha在apple和moz文档中都是z轴旋转角度,但是实测是x轴旋转角度。为了使各属性表示的值与文档所述相同,实际值与其他属性进行了对调。
  14141. * 其中:
  14142. * <ul>
  14143. * <li>alpha使用gamma值。</li>
  14144. * <li>beta使用alpha值。</li>
  14145. * <li>gamma使用beta。</li>
  14146. * </ul>
  14147. * 目前孰是孰非尚未可知,以此为注。
  14148. * </p>
  14149. */
  14150. class Accelerator extends laya.events.EventDispatcher {
  14151. /**
  14152. * Accelerator的唯一引用。
  14153. */
  14154. private static _instance:any;
  14155. static readonly instance:Accelerator;
  14156. private static acceleration:any;
  14157. private static accelerationIncludingGravity:any;
  14158. private static rotationRate:any;
  14159. constructor(singleton:number);
  14160. /**
  14161. * 侦听加速器运动。
  14162. * @param observer 回调函数接受4个参数,见类说明。
  14163. * @override
  14164. */
  14165. on(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  14166. /**
  14167. * 取消侦听加速器。
  14168. * @param handle 侦听加速器所用处理器。
  14169. * @override
  14170. */
  14171. off(type:string,caller:any,listener:Function,onceOnly?:boolean):laya.events.EventDispatcher;
  14172. private onDeviceOrientationChange:any;
  14173. private static transformedAcceleration:any;
  14174. /**
  14175. * 把加速度值转换为视觉上正确的加速度值。依赖于Browser.window.orientation,可能在部分低端机无效。
  14176. * @param acceleration
  14177. * @return
  14178. */
  14179. static getTransformedAcceleration(acceleration:laya.device.motion.AccelerationInfo):laya.device.motion.AccelerationInfo;
  14180. }
  14181. }
  14182. declare module laya.device.motion {
  14183. /**
  14184. * 使用Gyroscope.instance获取唯一的Gyroscope引用,请勿调用构造函数。
  14185. *
  14186. * <p>
  14187. * listen()的回调处理器接受两个参数:
  14188. * <code>function onOrientationChange(absolute:Boolean, info:RotationInfo):void</code>
  14189. * <ol>
  14190. * <li><b>absolute</b>: 指示设备是否可以提供绝对方位数据(指向地球坐标系),或者设备决定的任意坐标系。关于坐标系参见<i>https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Orientation_and_motion_data_explained</i>。</li>
  14191. * <li><b>info</b>: <code>RotationInfo</code>类型参数,保存设备的旋转值。</li>
  14192. * </ol>
  14193. * </p>
  14194. *
  14195. * <p>
  14196. * 浏览器兼容性参见:<i>http://caniuse.com/#search=deviceorientation</i>
  14197. * </p>
  14198. */
  14199. class Gyroscope extends laya.events.EventDispatcher {
  14200. private static info:any;
  14201. /**
  14202. * Gyroscope的唯一引用。
  14203. */
  14204. private static _instance:any;
  14205. static readonly instance:Gyroscope;
  14206. constructor(singleton:number);
  14207. /**
  14208. * 监视陀螺仪运动。
  14209. * @param observer 回调函数接受一个Boolean类型的<code>absolute</code>和<code>GyroscopeInfo</code>类型参数。
  14210. * @override
  14211. */
  14212. on(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  14213. /**
  14214. * 取消指定处理器对陀螺仪的监视。
  14215. * @param observer
  14216. * @override
  14217. */
  14218. off(type:string,caller:any,listener:Function,onceOnly?:boolean):laya.events.EventDispatcher;
  14219. private onDeviceOrientationChange:any;
  14220. }
  14221. }
  14222. declare module laya.device.motion {
  14223. /**
  14224. * 保存旋转信息的类。请勿修改本类的属性。
  14225. * @author Survivor
  14226. */
  14227. class RotationInfo {
  14228. /**
  14229. * <p>
  14230. * 指示设备是否可以提供绝对方位数据(指向地球坐标系),或者设备决定的任意坐标系。
  14231. * 关于坐标系参见<i>https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Orientation_and_motion_data_explained</i>。
  14232. * </p>
  14233. * 需要注意的是,IOS环境下,该值始终为false。即使如此,你依旧可以从<code>alpha</code>中取得正确的值。
  14234. */
  14235. absolute:boolean;
  14236. /**
  14237. * Z轴旋转角度,其值范围从0至360。
  14238. * 若<code>absolute</code>为true或者在IOS中,alpha值是从北方到当前设备方向的角度值。
  14239. */
  14240. alpha:number;
  14241. /**
  14242. * X轴旋转角度, 其值范围从-180至180。代表设备从前至后的运动。
  14243. */
  14244. beta:number;
  14245. /**
  14246. * Y轴旋转角度,其值范围从-90至90。代表设备从左至右的运动。
  14247. */
  14248. gamma:number;
  14249. /**
  14250. * 罗盘数据的精确度(角度)。仅IOS可用。
  14251. */
  14252. compassAccuracy:number;
  14253. constructor();
  14254. }
  14255. }
  14256. declare module laya.device {
  14257. /**
  14258. * Shake只能在支持此操作的设备上有效。
  14259. */
  14260. class Shake extends laya.events.EventDispatcher {
  14261. private throushold:any;
  14262. private shakeInterval:any;
  14263. private callback:any;
  14264. private lastX:any;
  14265. private lastY:any;
  14266. private lastZ:any;
  14267. private lastMillSecond:any;
  14268. constructor();
  14269. private static _instance:any;
  14270. static readonly instance:Shake;
  14271. /**
  14272. * 开始响应设备摇晃。
  14273. * @param throushold 响应的瞬时速度阈值,轻度摇晃的值约在5~10间。
  14274. * @param timeout 设备摇晃的响应间隔时间。
  14275. * @param callback 在设备摇晃触发时调用的处理器。
  14276. */
  14277. start(throushold:number,interval:number):void;
  14278. /**
  14279. * 停止响应设备摇晃。
  14280. */
  14281. stop():void;
  14282. private onShake:any;
  14283. private isShaked:any;
  14284. }
  14285. }
  14286. declare module laya.display {
  14287. /**
  14288. * 动画播放完毕后调度。
  14289. * @eventType Event.COMPLETE
  14290. */
  14291. /**
  14292. * 播放到某标签后调度。
  14293. * @eventType Event.LABEL
  14294. */
  14295. /**
  14296. * <p> <code>Animation</code> 是Graphics动画类。实现了基于Graphics的动画创建、播放、控制接口。</p>
  14297. * <p>本类使用了动画模版缓存池,它以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。</p>
  14298. * <p>动画模版缓存池,以key-value键值对存储,key可以自定义,也可以从指定的配置文件中读取,value为对应的动画模版,是一个Graphics对象数组,每个Graphics对象对应一个帧图像,动画的播放实质就是定时切换Graphics对象。</p>
  14299. * <p>使用set source、loadImages(...)、loadAtlas(...)、loadAnimation(...)方法可以创建动画模版。使用play(...)可以播放指定动画。</p>
  14300. * @example <caption>以下示例代码,创建了一个 <code>Text</code> 实例。</caption> package { import laya.display.Animation; import laya.net.Loader; import laya.utils.Handler; public class Animation_Example { public function Animation_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 init();//初始化 } private function init():void { var animation:Animation = new Animation();//创建一个 Animation 类的实例对象 animation 。 animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放 animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。 animation.play();//播放动画。 Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。 } } }
  14301. * @example Animation_Example(); function Animation_Example(){ Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 init();//初始化 } function init() { var animation = new Laya.Animation();//创建一个 Animation 类的实例对象 animation 。 animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放 animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。 animation.play();//播放动画。 Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。 }
  14302. * @example import Animation = laya.display.Animation; class Animation_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.init(); } private init(): void { var animation:Animation = new Laya.Animation();//创建一个 Animation 类的实例对象 animation 。 animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放 animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。 animation.play();//播放动画。 Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。 } } new Animation_Example();
  14303. */
  14304. class Animation extends laya.display.AnimationBase {
  14305. /**
  14306. * <p>动画模版缓存池,以key-value键值对存储,key可以自定义,也可以从指定的配置文件中读取,value为对应的动画模版,是一个Graphics对象数组,每个Graphics对象对应一个帧图像,动画的播放实质就是定时切换Graphics对象。</p>
  14307. * <p>使用loadImages(...)、loadAtlas(...)、loadAnimation(...)、set source方法可以创建动画模版。使用play(...)可以播放指定动画。</p>
  14308. */
  14309. static framesMap:any;
  14310. /**
  14311. * @private
  14312. */
  14313. protected _frames:any[];
  14314. /**
  14315. * @private
  14316. */
  14317. protected _url:string;
  14318. /**
  14319. * 创建一个新的 <code>Animation</code> 实例。
  14320. */
  14321. constructor();
  14322. /**
  14323. * @inheritDoc
  14324. * @override
  14325. */
  14326. destroy(destroyChild?:boolean):void;
  14327. /**
  14328. * <p>开始播放动画。会在动画模版缓存池中查找key值为name的动画模版,存在则用此动画模版初始化当前序列帧, 如果不存在,则使用当前序列帧。</p>
  14329. * <p>play(...)方法被设计为在创建实例后的任何时候都可以被调用,调用后就处于播放状态,当相应的资源加载完毕、调用动画帧填充方法(set frames)或者将实例显示在舞台上时,会判断是否处于播放状态,如果是,则开始播放。</p>
  14330. * <p>配合wrapMode属性,可设置动画播放顺序类型。</p>
  14331. * @param start (可选)指定动画播放开始的索引(int)或帧标签(String)。帧标签可以通过addLabel(...)和removeLabel(...)进行添加和删除。
  14332. * @param loop (可选)是否循环播放。
  14333. * @param name (可选)动画模板在动画模版缓存池中的key,也可认为是动画名称。如果name为空,则播放当前动画序列帧;如果不为空,则在动画模版缓存池中寻找key值为name的动画模版,如果存在则用此动画模版初始化当前序列帧并播放,如果不存在,则仍然播放当前动画序列帧;如果没有当前动画的帧数据,则不播放,但该实例仍然处于播放状态。
  14334. * @override
  14335. */
  14336. play(start?:any,loop?:boolean,name?:string):void;
  14337. /**
  14338. * @private
  14339. */
  14340. protected _setFramesFromCache(name:string,showWarn?:boolean):boolean;
  14341. /**
  14342. * @private
  14343. */
  14344. private _copyLabels:any;
  14345. /**
  14346. * @private
  14347. * @override
  14348. */
  14349. protected _frameLoop():void;
  14350. /**
  14351. * @private
  14352. * @override
  14353. */
  14354. protected _displayToIndex(value:number):void;
  14355. /**
  14356. * 当前动画的帧图像数组。本类中,每个帧图像是一个Graphics对象,而动画播放就是定时切换Graphics对象的过程。
  14357. */
  14358. frames:any[];
  14359. /**
  14360. * <p>动画数据源。</p>
  14361. * <p>类型如下:<br/>
  14362. * 1. LayaAir IDE动画文件路径:使用此类型需要预加载所需的图集资源,否则会创建失败,如果不想预加载或者需要创建完毕的回调,请使用loadAnimation(...)方法;<br/>
  14363. * 2. 图集路径:使用此类型创建的动画模版不会被缓存到动画模版缓存池中,如果需要缓存或者创建完毕的回调,请使用loadAtlas(...)方法;<br/>
  14364. * 3. 图片路径集合:使用此类型创建的动画模版不会被缓存到动画模版缓存池中,如果需要缓存,请使用loadImages(...)方法。</p>
  14365. * @param value 数据源。比如:图集:"xx/a1.atlas";图片集合:"a1.png,a2.png,a3.png";LayaAir IDE动画"xx/a1.ani"。
  14366. */
  14367. source:string;
  14368. /**
  14369. * 设置自动播放的动画名称,在LayaAir IDE中可以创建的多个动画组成的动画集合,选择其中一个动画名称进行播放。
  14370. */
  14371. autoAnimation:string;
  14372. /**
  14373. * 是否自动播放,默认为false。如果设置为true,则动画被创建并添加到舞台后自动播放。
  14374. */
  14375. autoPlay:boolean;
  14376. /**
  14377. * 停止动画播放,并清理对象属性。之后可存入对象池,方便对象复用。
  14378. * @override
  14379. */
  14380. clear():laya.display.AnimationBase;
  14381. /**
  14382. * <p>根据指定的动画模版初始化当前动画序列帧。选择动画模版的过程如下:1. 动画模版缓存池中key为cacheName的动画模版;2. 如果不存在,则加载指定的图片集合并创建动画模版。注意:只有指定不为空的cacheName,才能将创建好的动画模版以此为key缓存到动画模版缓存池,否则不进行缓存。</p>
  14383. * <p>动画模版缓存池是以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。</p>
  14384. * <p>因为返回值为Animation对象本身,所以可以使用如下语法:loadImages(...).loadImages(...).play(...);。</p>
  14385. * @param urls 图片路径集合。需要创建动画模版时,会以此为数据源。参数形如:[url1,url2,url3,...]。
  14386. * @param cacheName (可选)动画模板在动画模版缓存池中的key。如果此参数不为空,表示使用动画模版缓存池。如果动画模版缓存池中存在key为cacheName的动画模版,则使用此模版。否则,创建新的动画模版,如果cacheName不为空,则以cacheName为key缓存到动画模版缓存池中,如果cacheName为空,不进行缓存。
  14387. * @return 返回Animation对象本身。
  14388. */
  14389. loadImages(urls:any[],cacheName?:string):Animation;
  14390. /**
  14391. * <p>根据指定的动画模版初始化当前动画序列帧。选择动画模版的过程如下:1. 动画模版缓存池中key为cacheName的动画模版;2. 如果不存在,则加载指定的图集并创建动画模版。</p>
  14392. * <p>注意:只有指定不为空的cacheName,才能将创建好的动画模版以此为key缓存到动画模版缓存池,否则不进行缓存。</p>
  14393. * <p>动画模版缓存池是以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。</p>
  14394. * <p>因为返回值为Animation对象本身,所以可以使用如下语法:loadAtlas(...).loadAtlas(...).play(...);。</p>
  14395. * @param url 图集路径。需要创建动画模版时,会以此为数据源。
  14396. * @param loaded (可选)使用指定图集初始化动画完毕的回调。
  14397. * @param cacheName (可选)动画模板在动画模版缓存池中的key。如果此参数不为空,表示使用动画模版缓存池。如果动画模版缓存池中存在key为cacheName的动画模版,则使用此模版。否则,创建新的动画模版,如果cacheName不为空,则以cacheName为key缓存到动画模版缓存池中,如果cacheName为空,不进行缓存。
  14398. * @return 返回动画本身。
  14399. */
  14400. loadAtlas(url:string,loaded?:laya.utils.Handler,cacheName?:string):Animation;
  14401. /**
  14402. * <p>加载并解析由LayaAir IDE制作的动画文件,此文件中可能包含多个动画。默认帧率为在IDE中设计的帧率,如果调用过set interval,则使用此帧间隔对应的帧率。加载后创建动画模版,并缓存到动画模版缓存池,key "url#动画名称" 对应相应动画名称的动画模板,key "url#" 对应动画模版集合的默认动画模版。</p>
  14403. * <p>注意:如果调用本方法前,还没有预加载动画使用的图集,请将atlas参数指定为对应的图集路径,否则会导致动画创建失败。</p>
  14404. * <p>动画模版缓存池是以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。</p>
  14405. * <p>因为返回值为Animation对象本身,所以可以使用如下语法:loadAnimation(...).loadAnimation(...).play(...);。</p>
  14406. * @param url 动画文件路径。可由LayaAir IDE创建并发布。
  14407. * @param loaded (可选)使用指定动画资源初始化动画完毕的回调。
  14408. * @param atlas (可选)动画用到的图集地址(可选)。
  14409. * @return 返回动画本身。
  14410. */
  14411. loadAnimation(url:string,loaded?:laya.utils.Handler,atlas?:string):Animation;
  14412. /**
  14413. * @private
  14414. */
  14415. private _loadAnimationData:any;
  14416. /**
  14417. * <p>创建动画模板,多个动画可共享同一份动画模板,而不必每次都创建一份新的,从而节省创建Graphics集合的开销。</p>
  14418. * @param url 图集路径或者图片路径数组。如果是图集路径,需要相应图集已经被预加载,如果没有预加载,会导致创建失败。
  14419. * @param name 动画模板在动画模版缓存池中的key。如果不为空,则以此为key缓存动画模板,否则不缓存。
  14420. * @return 动画模板。
  14421. */
  14422. static createFrames(url:string|string[],name:string):any[];
  14423. /**
  14424. * <p>从动画模版缓存池中清除指定key值的动画数据。</p>
  14425. * <p>开发者在调用创建动画模版函数时,可以手动指定此值。而如果是由LayaAir IDE创建的动画集,解析后的key格式为:"url#":表示动画集的默认动画模版,如果以此值为参数,会清除整个动画集数据;"url#aniName":表示相应名称的动画模版。</p>
  14426. * @param key 动画模板在动画模版缓存池中的key。
  14427. */
  14428. static clearCache(key:string):void;
  14429. }
  14430. }
  14431. declare module laya.display {
  14432. /**
  14433. * 动画播放完毕后调度。
  14434. * @eventType Event.COMPLETE
  14435. */
  14436. /**
  14437. * 播放到某标签后调度。
  14438. * @eventType Event.LABEL
  14439. */
  14440. /**
  14441. * <p>动画基类,提供了基础的动画播放控制方法和帧标签事件相关功能。</p>
  14442. * <p>可以继承此类,但不要直接实例化此类,因为有些方法需要由子类实现。</p>
  14443. */
  14444. class AnimationBase extends laya.display.Sprite {
  14445. /**
  14446. * 动画播放顺序类型:正序播放。
  14447. */
  14448. static WRAP_POSITIVE:number;
  14449. /**
  14450. * 动画播放顺序类型:逆序播放。
  14451. */
  14452. static WRAP_REVERSE:number;
  14453. /**
  14454. * 动画播放顺序类型:pingpong播放(当按指定顺序播放完结尾后,如果继续播放,则会改变播放顺序)。
  14455. */
  14456. static WRAP_PINGPONG:number;
  14457. /**
  14458. * 是否循环播放,调用play(...)方法时,会将此值设置为指定的参数值。
  14459. */
  14460. loop:boolean;
  14461. /**
  14462. * 播放顺序类型:AnimationBase.WRAP_POSITIVE为正序播放(默认值),AnimationBase.WRAP_REVERSE为倒序播放,AnimationBase.WRAP_PINGPONG为pingpong播放(当按指定顺序播放完结尾后,如果继续播发,则会改变播放顺序)。
  14463. */
  14464. wrapMode:number;
  14465. /**
  14466. * @private 播放间隔(单位:毫秒)。
  14467. */
  14468. protected _interval:number;
  14469. /**
  14470. * @private
  14471. */
  14472. protected _index:number;
  14473. /**
  14474. * @private
  14475. */
  14476. protected _count:number;
  14477. /**
  14478. * @private
  14479. */
  14480. protected _isPlaying:boolean;
  14481. /**
  14482. * @private
  14483. */
  14484. protected _labels:any;
  14485. /**
  14486. * 是否是逆序播放
  14487. */
  14488. protected _isReverse:boolean;
  14489. /**
  14490. * @private
  14491. */
  14492. protected _frameRateChanged:boolean;
  14493. /**
  14494. * @private
  14495. */
  14496. protected _actionName:string;
  14497. /**
  14498. * @private
  14499. */
  14500. private _controlNode:any;
  14501. /**
  14502. * 可以继承此类,但不要直接实例化此类,因为有些方法需要由子类实现。
  14503. */
  14504. constructor();
  14505. /**
  14506. * <p>开始播放动画。play(...)方法被设计为在创建实例后的任何时候都可以被调用,当相应的资源加载完毕、调用动画帧填充方法(set frames)或者将实例显示在舞台上时,会判断是否正在播放中,如果是,则进行播放。</p>
  14507. * <p>配合wrapMode属性,可设置动画播放顺序类型。</p>
  14508. * @param start (可选)指定动画播放开始的索引(int)或帧标签(String)。帧标签可以通过addLabel(...)和removeLabel(...)进行添加和删除。
  14509. * @param loop (可选)是否循环播放。
  14510. * @param name (可选)动画名称。
  14511. */
  14512. play(start?:any,loop?:boolean,name?:string):void;
  14513. /**
  14514. * <p>动画播放的帧间隔时间(单位:毫秒)。默认值依赖于Config.animationInterval=50,通过Config.animationInterval可以修改默认帧间隔时间。</p>
  14515. * <p>要想为某动画设置独立的帧间隔时间,可以使用set interval,注意:如果动画正在播放,设置后会重置帧循环定时器的起始时间为当前时间,也就是说,如果频繁设置interval,会导致动画帧更新的时间间隔会比预想的要慢,甚至不更新。</p>
  14516. */
  14517. interval:number;
  14518. /**
  14519. * @private
  14520. */
  14521. protected _getFrameByLabel(label:string):number;
  14522. /**
  14523. * @private
  14524. */
  14525. protected _frameLoop():void;
  14526. /**
  14527. * @private
  14528. */
  14529. protected _resumePlay():void;
  14530. /**
  14531. * 停止动画播放。
  14532. */
  14533. stop():void;
  14534. /**
  14535. * 是否正在播放中。
  14536. */
  14537. readonly isPlaying:boolean;
  14538. /**
  14539. * 增加一个帧标签到指定索引的帧上。当动画播放到此索引的帧时会派发Event.LABEL事件,派发事件是在完成当前帧画面更新之后。
  14540. * @param label 帧标签名称
  14541. * @param index 帧索引
  14542. */
  14543. addLabel(label:string,index:number):void;
  14544. /**
  14545. * 删除指定的帧标签。
  14546. * @param label 帧标签名称。注意:如果为空,则删除所有帧标签!
  14547. */
  14548. removeLabel(label:string):void;
  14549. /**
  14550. * @private
  14551. */
  14552. private _removeLabelFromList:any;
  14553. /**
  14554. * 将动画切换到指定帧并停在那里。
  14555. * @param position 帧索引或帧标签
  14556. */
  14557. gotoAndStop(position:any):void;
  14558. /**
  14559. * 动画当前帧的索引。
  14560. */
  14561. index:number;
  14562. /**
  14563. * @private 显示到某帧
  14564. * @param value 帧索引
  14565. */
  14566. protected _displayToIndex(value:number):void;
  14567. /**
  14568. * 当前动画中帧的总数。
  14569. */
  14570. readonly count:number;
  14571. /**
  14572. * 停止动画播放,并清理对象属性。之后可存入对象池,方便对象复用。
  14573. * @return 返回对象本身
  14574. */
  14575. clear():AnimationBase;
  14576. }
  14577. }
  14578. declare module laya.display {
  14579. /**
  14580. * <code>BitmapFont</code> 是位图字体类,用于定义位图字体信息。
  14581. * 字体制作及使用方法,请参考文章
  14582. * @see http://ldc2.layabox.com/doc/?nav=ch-js-1-2-5
  14583. */
  14584. class BitmapFont {
  14585. private _texture:any;
  14586. private _fontCharDic:any;
  14587. private _fontWidthMap:any;
  14588. private _complete:any;
  14589. private _path:any;
  14590. private _maxWidth:any;
  14591. private _spaceWidth:any;
  14592. private _padding:any;
  14593. /**
  14594. * 当前位图字体字号,使用时,如果字号和设置不同,并且autoScaleSize=true,则按照设置字号比率进行缩放显示。
  14595. */
  14596. fontSize:number;
  14597. /**
  14598. * 表示是否根据实际使用的字体大小缩放位图字体大小。
  14599. */
  14600. autoScaleSize:boolean;
  14601. /**
  14602. * 字符间距(以像素为单位)。
  14603. */
  14604. letterSpacing:number;
  14605. /**
  14606. * 通过指定位图字体文件路径,加载位图字体文件,加载完成后会自动解析。
  14607. * @param path 位图字体文件的路径。
  14608. * @param complete 加载并解析完成的回调。
  14609. */
  14610. loadFont(path:string,complete:laya.utils.Handler):void;
  14611. /**
  14612. * @private
  14613. */
  14614. private _onLoaded:any;
  14615. /**
  14616. * 解析字体文件。
  14617. * @param xml 字体文件XML。
  14618. * @param texture 字体的纹理。
  14619. */
  14620. parseFont(xml:XMLDocument,texture:laya.resource.Texture):void;
  14621. /**
  14622. * 解析字体文件。
  14623. * @param xml 字体文件XML。
  14624. * @param texture 字体的纹理。
  14625. */
  14626. parseFont2(xml:XMLDocument,texture:laya.resource.Texture):void;
  14627. /**
  14628. * 获取指定字符的字体纹理对象。
  14629. * @param char 字符。
  14630. * @return 指定的字体纹理对象。
  14631. */
  14632. getCharTexture(char:string):laya.resource.Texture;
  14633. /**
  14634. * 销毁位图字体,调用Text.unregisterBitmapFont 时,默认会销毁。
  14635. */
  14636. destroy():void;
  14637. /**
  14638. * 设置空格的宽(如果字体库有空格,这里就可以不用设置了)。
  14639. * @param spaceWidth 宽度,单位为像素。
  14640. */
  14641. setSpaceWidth(spaceWidth:number):void;
  14642. /**
  14643. * 获取指定字符的宽度。
  14644. * @param char 字符。
  14645. * @return 宽度。
  14646. */
  14647. getCharWidth(char:string):number;
  14648. /**
  14649. * 获取指定文本内容的宽度。
  14650. * @param text 文本内容。
  14651. * @return 宽度。
  14652. */
  14653. getTextWidth(text:string):number;
  14654. /**
  14655. * 获取最大字符宽度。
  14656. */
  14657. getMaxWidth():number;
  14658. /**
  14659. * 获取最大字符高度。
  14660. */
  14661. getMaxHeight():number;
  14662. }
  14663. }
  14664. declare module laya.display.cmd {
  14665. /**
  14666. * 透明命令
  14667. */
  14668. class AlphaCmd {
  14669. static ID:string;
  14670. /**
  14671. * 透明度
  14672. */
  14673. alpha:number;
  14674. /**
  14675. * @private
  14676. */
  14677. static create(alpha:number):AlphaCmd;
  14678. /**
  14679. * 回收到对象池
  14680. */
  14681. recover():void;
  14682. /**
  14683. * @private
  14684. */
  14685. run(context:laya.resource.Context,gx:number,gy:number):void;
  14686. /**
  14687. * @private
  14688. */
  14689. readonly cmdID:string;
  14690. }
  14691. }
  14692. declare module laya.display.cmd {
  14693. /**
  14694. * 裁剪命令
  14695. */
  14696. class ClipRectCmd {
  14697. static ID:string;
  14698. /**
  14699. * X 轴偏移量。
  14700. */
  14701. x:number;
  14702. /**
  14703. * Y 轴偏移量。
  14704. */
  14705. y:number;
  14706. /**
  14707. * 宽度。
  14708. */
  14709. width:number;
  14710. /**
  14711. * 高度。
  14712. */
  14713. height:number;
  14714. /**
  14715. * @private
  14716. */
  14717. static create(x:number,y:number,width:number,height:number):ClipRectCmd;
  14718. /**
  14719. * 回收到对象池
  14720. */
  14721. recover():void;
  14722. /**
  14723. * @private
  14724. */
  14725. run(context:laya.resource.Context,gx:number,gy:number):void;
  14726. /**
  14727. * @private
  14728. */
  14729. readonly cmdID:string;
  14730. }
  14731. }
  14732. declare module laya.display.cmd {
  14733. /**
  14734. * 绘制圆形
  14735. */
  14736. class DrawCircleCmd {
  14737. static ID:string;
  14738. /**
  14739. * 圆点X 轴位置。
  14740. */
  14741. x:number;
  14742. /**
  14743. * 圆点Y 轴位置。
  14744. */
  14745. y:number;
  14746. /**
  14747. * 半径。
  14748. */
  14749. radius:number;
  14750. /**
  14751. * 填充颜色,或者填充绘图的渐变对象。
  14752. */
  14753. fillColor:any;
  14754. /**
  14755. * (可选)边框颜色,或者填充绘图的渐变对象。
  14756. */
  14757. lineColor:any;
  14758. /**
  14759. * (可选)边框宽度。
  14760. */
  14761. lineWidth:number;
  14762. /**
  14763. * @private
  14764. */
  14765. vid:number;
  14766. /**
  14767. * @private
  14768. */
  14769. static create(x:number,y:number,radius:number,fillColor:any,lineColor:any,lineWidth:number,vid:number):DrawCircleCmd;
  14770. /**
  14771. * 回收到对象池
  14772. */
  14773. recover():void;
  14774. /**
  14775. * @private
  14776. */
  14777. run(context:laya.resource.Context,gx:number,gy:number):void;
  14778. /**
  14779. * @private
  14780. */
  14781. readonly cmdID:string;
  14782. }
  14783. }
  14784. declare module laya.display.cmd {
  14785. /**
  14786. * 绘制曲线
  14787. */
  14788. class DrawCurvesCmd {
  14789. static ID:string;
  14790. /**
  14791. * 开始绘制的 X 轴位置。
  14792. */
  14793. x:number;
  14794. /**
  14795. * 开始绘制的 Y 轴位置。
  14796. */
  14797. y:number;
  14798. /**
  14799. * 线段的点集合,格式[controlX, controlY, anchorX, anchorY...]。
  14800. */
  14801. points:number[]|null;
  14802. /**
  14803. * 线段颜色,或者填充绘图的渐变对象。
  14804. */
  14805. lineColor:any;
  14806. /**
  14807. * (可选)线段宽度。
  14808. */
  14809. lineWidth:number;
  14810. /**
  14811. * @private
  14812. */
  14813. static create(x:number,y:number,points:any[],lineColor:any,lineWidth:number):DrawCurvesCmd;
  14814. /**
  14815. * 回收到对象池
  14816. */
  14817. recover():void;
  14818. /**
  14819. * @private
  14820. */
  14821. run(context:laya.resource.Context,gx:number,gy:number):void;
  14822. /**
  14823. * @private
  14824. */
  14825. readonly cmdID:string;
  14826. }
  14827. }
  14828. declare module laya.display.cmd {
  14829. /**
  14830. * 绘制图片
  14831. */
  14832. class DrawImageCmd {
  14833. static ID:string;
  14834. /**
  14835. * 纹理。
  14836. */
  14837. texture:laya.resource.Texture|null;
  14838. /**
  14839. * (可选)X轴偏移量。
  14840. */
  14841. x:number;
  14842. /**
  14843. * (可选)Y轴偏移量。
  14844. */
  14845. y:number;
  14846. /**
  14847. * (可选)宽度。
  14848. */
  14849. width:number;
  14850. /**
  14851. * (可选)高度。
  14852. */
  14853. height:number;
  14854. /**
  14855. * @private
  14856. */
  14857. static create(texture:laya.resource.Texture,x:number,y:number,width:number,height:number):DrawImageCmd;
  14858. /**
  14859. * 回收到对象池
  14860. */
  14861. recover():void;
  14862. /**
  14863. * @private
  14864. */
  14865. run(context:laya.resource.Context,gx:number,gy:number):void;
  14866. /**
  14867. * @private
  14868. */
  14869. readonly cmdID:string;
  14870. }
  14871. }
  14872. declare module laya.display.cmd {
  14873. /**
  14874. * 绘制单条曲线
  14875. */
  14876. class DrawLineCmd {
  14877. static ID:string;
  14878. /**
  14879. * X轴开始位置。
  14880. */
  14881. fromX:number;
  14882. /**
  14883. * Y轴开始位置。
  14884. */
  14885. fromY:number;
  14886. /**
  14887. * X轴结束位置。
  14888. */
  14889. toX:number;
  14890. /**
  14891. * Y轴结束位置。
  14892. */
  14893. toY:number;
  14894. /**
  14895. * 颜色。
  14896. */
  14897. lineColor:string;
  14898. /**
  14899. * (可选)线条宽度。
  14900. */
  14901. lineWidth:number;
  14902. /**
  14903. * @private
  14904. */
  14905. vid:number;
  14906. /**
  14907. * @private
  14908. */
  14909. static create(fromX:number,fromY:number,toX:number,toY:number,lineColor:string,lineWidth:number,vid:number):DrawLineCmd;
  14910. /**
  14911. * 回收到对象池
  14912. */
  14913. recover():void;
  14914. /**
  14915. * @private
  14916. */
  14917. run(context:laya.resource.Context,gx:number,gy:number):void;
  14918. /**
  14919. * @private
  14920. */
  14921. readonly cmdID:string;
  14922. }
  14923. }
  14924. declare module laya.display.cmd {
  14925. /**
  14926. * 绘制连续曲线
  14927. */
  14928. class DrawLinesCmd {
  14929. static ID:string;
  14930. /**
  14931. * 开始绘制的X轴位置。
  14932. */
  14933. x:number;
  14934. /**
  14935. * 开始绘制的Y轴位置。
  14936. */
  14937. y:number;
  14938. /**
  14939. * 线段的点集合。格式:[x1,y1,x2,y2,x3,y3...]。
  14940. */
  14941. points:number[]|null;
  14942. /**
  14943. * 线段颜色,或者填充绘图的渐变对象。
  14944. */
  14945. lineColor:any;
  14946. /**
  14947. * (可选)线段宽度。
  14948. */
  14949. lineWidth:number;
  14950. /**
  14951. * @private
  14952. */
  14953. vid:number;
  14954. /**
  14955. * @private
  14956. */
  14957. static create(x:number,y:number,points:any[],lineColor:any,lineWidth:number,vid:number):DrawLinesCmd;
  14958. /**
  14959. * 回收到对象池
  14960. */
  14961. recover():void;
  14962. /**
  14963. * @private
  14964. */
  14965. run(context:laya.resource.Context,gx:number,gy:number):void;
  14966. /**
  14967. * @private
  14968. */
  14969. readonly cmdID:string;
  14970. }
  14971. }
  14972. declare module laya.display.cmd {
  14973. /**
  14974. * 绘制粒子
  14975. * @private
  14976. */
  14977. class DrawParticleCmd {
  14978. static ID:string;
  14979. private _templ:any;
  14980. /**
  14981. * @private
  14982. */
  14983. static create(_temp:any):DrawParticleCmd;
  14984. /**
  14985. * 回收到对象池
  14986. */
  14987. recover():void;
  14988. /**
  14989. * @private
  14990. */
  14991. run(context:laya.resource.Context,gx:number,gy:number):void;
  14992. /**
  14993. * @private
  14994. */
  14995. readonly cmdID:string;
  14996. }
  14997. }
  14998. declare module laya.display.cmd {
  14999. /**
  15000. * 根据路径绘制矢量图形
  15001. */
  15002. class DrawPathCmd {
  15003. static ID:string;
  15004. /**
  15005. * 开始绘制的 X 轴位置。
  15006. */
  15007. x:number;
  15008. /**
  15009. * 开始绘制的 Y 轴位置。
  15010. */
  15011. y:number;
  15012. /**
  15013. * 路径集合,路径支持以下格式:[["moveTo",x,y],["lineTo",x,y],["arcTo",x1,y1,x2,y2,r],["closePath"]]。
  15014. */
  15015. paths:any[]|null;
  15016. /**
  15017. * (可选)刷子定义,支持以下设置{fillStyle:"#FF0000"}。
  15018. */
  15019. brush:any;
  15020. /**
  15021. * (可选)画笔定义,支持以下设置{strokeStyle,lineWidth,lineJoin:"bevel|round|miter",lineCap:"butt|round|square",miterLimit}。
  15022. */
  15023. pen:any;
  15024. /**
  15025. * @private
  15026. */
  15027. static create(x:number,y:number,paths:any[],brush:any,pen:any):DrawPathCmd;
  15028. /**
  15029. * 回收到对象池
  15030. */
  15031. recover():void;
  15032. /**
  15033. * @private
  15034. */
  15035. run(context:laya.resource.Context,gx:number,gy:number):void;
  15036. /**
  15037. * @private
  15038. */
  15039. readonly cmdID:string;
  15040. }
  15041. }
  15042. declare module laya.display.cmd {
  15043. /**
  15044. * 绘制扇形
  15045. */
  15046. class DrawPieCmd {
  15047. static ID:string;
  15048. /**
  15049. * 开始绘制的 X 轴位置。
  15050. */
  15051. x:number;
  15052. /**
  15053. * 开始绘制的 Y 轴位置。
  15054. */
  15055. y:number;
  15056. /**
  15057. * 扇形半径。
  15058. */
  15059. radius:number;
  15060. private _startAngle:any;
  15061. private _endAngle:any;
  15062. /**
  15063. * 填充颜色,或者填充绘图的渐变对象。
  15064. */
  15065. fillColor:any;
  15066. /**
  15067. * (可选)边框颜色,或者填充绘图的渐变对象。
  15068. */
  15069. lineColor:any;
  15070. /**
  15071. * (可选)边框宽度。
  15072. */
  15073. lineWidth:number;
  15074. /**
  15075. * @private
  15076. */
  15077. vid:number;
  15078. /**
  15079. * @private
  15080. */
  15081. static create(x:number,y:number,radius:number,startAngle:number,endAngle:number,fillColor:any,lineColor:any,lineWidth:number,vid:number):DrawPieCmd;
  15082. /**
  15083. * 回收到对象池
  15084. */
  15085. recover():void;
  15086. /**
  15087. * @private
  15088. */
  15089. run(context:laya.resource.Context,gx:number,gy:number):void;
  15090. /**
  15091. * @private
  15092. */
  15093. readonly cmdID:string;
  15094. /**
  15095. * 开始角度。
  15096. */
  15097. startAngle:number;
  15098. /**
  15099. * 结束角度。
  15100. */
  15101. endAngle:number;
  15102. }
  15103. }
  15104. declare module laya.display.cmd {
  15105. /**
  15106. * 绘制多边形
  15107. */
  15108. class DrawPolyCmd {
  15109. static ID:string;
  15110. /**
  15111. * 开始绘制的 X 轴位置。
  15112. */
  15113. x:number;
  15114. /**
  15115. * 开始绘制的 Y 轴位置。
  15116. */
  15117. y:number;
  15118. /**
  15119. * 多边形的点集合。
  15120. */
  15121. points:number[]|null;
  15122. /**
  15123. * 填充颜色,或者填充绘图的渐变对象。
  15124. */
  15125. fillColor:any;
  15126. /**
  15127. * (可选)边框颜色,或者填充绘图的渐变对象。
  15128. */
  15129. lineColor:any;
  15130. /**
  15131. * 可选)边框宽度。
  15132. */
  15133. lineWidth:number;
  15134. /**
  15135. * @private
  15136. */
  15137. isConvexPolygon:boolean;
  15138. /**
  15139. * @private
  15140. */
  15141. vid:number;
  15142. /**
  15143. * @private
  15144. */
  15145. static create(x:number,y:number,points:any[],fillColor:any,lineColor:any,lineWidth:number,isConvexPolygon:boolean,vid:number):DrawPolyCmd;
  15146. /**
  15147. * 回收到对象池
  15148. */
  15149. recover():void;
  15150. /**
  15151. * @private
  15152. */
  15153. run(context:laya.resource.Context,gx:number,gy:number):void;
  15154. /**
  15155. * @private
  15156. */
  15157. readonly cmdID:string;
  15158. }
  15159. }
  15160. declare module laya.display.cmd {
  15161. /**
  15162. * 绘制矩形
  15163. */
  15164. class DrawRectCmd {
  15165. static ID:string;
  15166. /**
  15167. * 开始绘制的 X 轴位置。
  15168. */
  15169. x:number;
  15170. /**
  15171. * 开始绘制的 Y 轴位置。
  15172. */
  15173. y:number;
  15174. /**
  15175. * 矩形宽度。
  15176. */
  15177. width:number;
  15178. /**
  15179. * 矩形高度。
  15180. */
  15181. height:number;
  15182. /**
  15183. * 填充颜色,或者填充绘图的渐变对象。
  15184. */
  15185. fillColor:any;
  15186. /**
  15187. * (可选)边框颜色,或者填充绘图的渐变对象。
  15188. */
  15189. lineColor:any;
  15190. /**
  15191. * (可选)边框宽度。
  15192. */
  15193. lineWidth:number;
  15194. /**
  15195. * @private
  15196. */
  15197. static create(x:number,y:number,width:number,height:number,fillColor:any,lineColor:any,lineWidth:number):DrawRectCmd;
  15198. /**
  15199. * 回收到对象池
  15200. */
  15201. recover():void;
  15202. /**
  15203. * @private
  15204. */
  15205. run(context:laya.resource.Context,gx:number,gy:number):void;
  15206. /**
  15207. * @private
  15208. */
  15209. readonly cmdID:string;
  15210. }
  15211. }
  15212. declare module laya.display.cmd {
  15213. /**
  15214. * 绘制单个贴图
  15215. */
  15216. class DrawTextureCmd {
  15217. static ID:string;
  15218. /**
  15219. * 纹理。
  15220. */
  15221. texture:laya.resource.Texture|null;
  15222. /**
  15223. * (可选)X轴偏移量。
  15224. */
  15225. x:number;
  15226. /**
  15227. * (可选)Y轴偏移量。
  15228. */
  15229. y:number;
  15230. /**
  15231. * (可选)宽度。
  15232. */
  15233. width:number;
  15234. /**
  15235. * (可选)高度。
  15236. */
  15237. height:number;
  15238. /**
  15239. * (可选)矩阵信息。
  15240. */
  15241. matrix:laya.maths.Matrix|null;
  15242. /**
  15243. * (可选)透明度。
  15244. */
  15245. alpha:number;
  15246. /**
  15247. * (可选)颜色滤镜。
  15248. */
  15249. color:string;
  15250. colorFlt:laya.filters.ColorFilter|null;
  15251. /**
  15252. * (可选)混合模式。
  15253. */
  15254. blendMode:string;
  15255. uv:number[]|null;
  15256. /**
  15257. * @private
  15258. */
  15259. static create(texture:laya.resource.Texture,x:number,y:number,width:number,height:number,matrix:laya.maths.Matrix,alpha:number,color:string,blendMode:string,uv?:number[]):DrawTextureCmd;
  15260. /**
  15261. * 回收到对象池
  15262. */
  15263. recover():void;
  15264. /**
  15265. * @private
  15266. */
  15267. run(context:laya.resource.Context,gx:number,gy:number):void;
  15268. /**
  15269. * @private
  15270. */
  15271. readonly cmdID:string;
  15272. }
  15273. }
  15274. declare module laya.display.cmd {
  15275. /**
  15276. * 根据坐标集合绘制多个贴图
  15277. */
  15278. class DrawTexturesCmd {
  15279. static ID:string;
  15280. /**
  15281. * 纹理。
  15282. */
  15283. texture:laya.resource.Texture;
  15284. /**
  15285. * 绘制次数和坐标。
  15286. */
  15287. pos:any[];
  15288. /**
  15289. * @private
  15290. */
  15291. static create(texture:laya.resource.Texture,pos:any[]):DrawTexturesCmd;
  15292. /**
  15293. * 回收到对象池
  15294. */
  15295. recover():void;
  15296. /**
  15297. * @private
  15298. */
  15299. run(context:laya.resource.Context,gx:number,gy:number):void;
  15300. /**
  15301. * @private
  15302. */
  15303. readonly cmdID:string;
  15304. }
  15305. }
  15306. declare module laya.display.cmd {
  15307. /**
  15308. * 绘制三角形命令
  15309. */
  15310. class DrawTrianglesCmd {
  15311. static ID:string;
  15312. /**
  15313. * 纹理。
  15314. */
  15315. texture:laya.resource.Texture|null;
  15316. /**
  15317. * X轴偏移量。
  15318. */
  15319. x:number;
  15320. /**
  15321. * Y轴偏移量。
  15322. */
  15323. y:number;
  15324. /**
  15325. * 顶点数组。
  15326. */
  15327. vertices:Float32Array;
  15328. /**
  15329. * UV数据。
  15330. */
  15331. uvs:Float32Array;
  15332. /**
  15333. * 顶点索引。
  15334. */
  15335. indices:Uint16Array;
  15336. /**
  15337. * 缩放矩阵。
  15338. */
  15339. matrix:laya.maths.Matrix;
  15340. /**
  15341. * alpha
  15342. */
  15343. alpha:number;
  15344. /**
  15345. * blend模式
  15346. */
  15347. blendMode:string;
  15348. /**
  15349. * 颜色变换
  15350. */
  15351. color:laya.filters.ColorFilter;
  15352. colorNum:number;
  15353. /**
  15354. * @private
  15355. */
  15356. static create(texture:laya.resource.Texture,x:number,y:number,vertices:Float32Array,uvs:Float32Array,indices:Uint16Array,matrix:laya.maths.Matrix,alpha:number,color:string,blendMode:string,colorNum:number):DrawTrianglesCmd;
  15357. /**
  15358. * 回收到对象池
  15359. */
  15360. recover():void;
  15361. /**
  15362. * @private
  15363. */
  15364. run(context:laya.resource.Context,gx:number,gy:number):void;
  15365. /**
  15366. * @private
  15367. */
  15368. readonly cmdID:string;
  15369. }
  15370. }
  15371. declare module laya.display.cmd {
  15372. /**
  15373. * 绘制文字
  15374. */
  15375. class FillTextCmd {
  15376. static ID:string;
  15377. private _text:any;
  15378. _words:laya.utils.HTMLChar[];
  15379. /**
  15380. * 开始绘制文本的 x 坐标位置(相对于画布)。
  15381. */
  15382. x:number;
  15383. /**
  15384. * 开始绘制文本的 y 坐标位置(相对于画布)。
  15385. */
  15386. y:number;
  15387. private _font:any;
  15388. private _color:any;
  15389. private _borderColor:any;
  15390. private _lineWidth:any;
  15391. private _textAlign:any;
  15392. private _fontColor:any;
  15393. private _strokeColor:any;
  15394. private static _defFontObj:any;
  15395. private _fontObj:any;
  15396. private _nTexAlign:any;
  15397. /**
  15398. * @private
  15399. */
  15400. static create(text:string|laya.utils.WordText,words:laya.utils.HTMLChar[],x:number,y:number,font:string,color:string,textAlign:string,lineWidth:number,borderColor:string):FillTextCmd;
  15401. /**
  15402. * 回收到对象池
  15403. */
  15404. recover():void;
  15405. /**
  15406. * @private
  15407. */
  15408. run(context:laya.resource.Context,gx:number,gy:number):void;
  15409. /**
  15410. * @private
  15411. */
  15412. readonly cmdID:string;
  15413. /**
  15414. * 在画布上输出的文本。
  15415. */
  15416. text:string|laya.utils.WordText;
  15417. /**
  15418. * 定义字号和字体,比如"20px Arial"。
  15419. */
  15420. font:string;
  15421. /**
  15422. * 定义文本颜色,比如"#ff0000"。
  15423. */
  15424. color:string;
  15425. /**
  15426. * 文本对齐方式,可选值:"left","center","right"。
  15427. */
  15428. textAlign:string;
  15429. }
  15430. }
  15431. declare module laya.display.cmd {
  15432. /**
  15433. * 填充贴图
  15434. */
  15435. class FillTextureCmd {
  15436. static ID:string;
  15437. /**
  15438. * 纹理。
  15439. */
  15440. texture:laya.resource.Texture;
  15441. /**
  15442. * X轴偏移量。
  15443. */
  15444. x:number;
  15445. /**
  15446. * Y轴偏移量。
  15447. */
  15448. y:number;
  15449. /**
  15450. * (可选)宽度。
  15451. */
  15452. width:number;
  15453. /**
  15454. * (可选)高度。
  15455. */
  15456. height:number;
  15457. /**
  15458. * (可选)填充类型 repeat|repeat-x|repeat-y|no-repeat
  15459. */
  15460. type:string;
  15461. /**
  15462. * (可选)贴图纹理偏移
  15463. */
  15464. offset:laya.maths.Point;
  15465. /**
  15466. * @private
  15467. */
  15468. other:any;
  15469. /**
  15470. * @private
  15471. */
  15472. static create(texture:laya.resource.Texture,x:number,y:number,width:number,height:number,type:string,offset:laya.maths.Point,other:any):FillTextureCmd;
  15473. /**
  15474. * 回收到对象池
  15475. */
  15476. recover():void;
  15477. /**
  15478. * @private
  15479. */
  15480. run(context:laya.resource.Context,gx:number,gy:number):void;
  15481. /**
  15482. * @private
  15483. */
  15484. readonly cmdID:string;
  15485. }
  15486. }
  15487. declare module laya.display.cmd {
  15488. /**
  15489. * 恢复命令,和save配套使用
  15490. */
  15491. class RestoreCmd {
  15492. static ID:string;
  15493. /**
  15494. * @private
  15495. */
  15496. static create():RestoreCmd;
  15497. /**
  15498. * 回收到对象池
  15499. */
  15500. recover():void;
  15501. /**
  15502. * @private
  15503. */
  15504. run(context:laya.resource.Context,gx:number,gy:number):void;
  15505. /**
  15506. * @private
  15507. */
  15508. readonly cmdID:string;
  15509. }
  15510. }
  15511. declare module laya.display.cmd {
  15512. /**
  15513. * 旋转命令
  15514. */
  15515. class RotateCmd {
  15516. static ID:string;
  15517. /**
  15518. * 旋转角度,以弧度计。
  15519. */
  15520. angle:number;
  15521. /**
  15522. * (可选)水平方向轴心点坐标。
  15523. */
  15524. pivotX:number;
  15525. /**
  15526. * (可选)垂直方向轴心点坐标。
  15527. */
  15528. pivotY:number;
  15529. /**
  15530. * @private
  15531. */
  15532. static create(angle:number,pivotX:number,pivotY:number):RotateCmd;
  15533. /**
  15534. * 回收到对象池
  15535. */
  15536. recover():void;
  15537. /**
  15538. * @private
  15539. */
  15540. run(context:laya.resource.Context,gx:number,gy:number):void;
  15541. /**
  15542. * @private
  15543. */
  15544. readonly cmdID:string;
  15545. }
  15546. }
  15547. declare module laya.display.cmd {
  15548. /**
  15549. * 存储命令,和restore配套使用
  15550. */
  15551. class SaveCmd {
  15552. static ID:string;
  15553. /**
  15554. * @private
  15555. */
  15556. static create():SaveCmd;
  15557. /**
  15558. * 回收到对象池
  15559. */
  15560. recover():void;
  15561. /**
  15562. * @private
  15563. */
  15564. run(context:laya.resource.Context,gx:number,gy:number):void;
  15565. /**
  15566. * @private
  15567. */
  15568. readonly cmdID:string;
  15569. }
  15570. }
  15571. declare module laya.display.cmd {
  15572. /**
  15573. * 缩放命令
  15574. */
  15575. class ScaleCmd {
  15576. static ID:string;
  15577. /**
  15578. * 水平方向缩放值。
  15579. */
  15580. scaleX:number;
  15581. /**
  15582. * 垂直方向缩放值。
  15583. */
  15584. scaleY:number;
  15585. /**
  15586. * (可选)水平方向轴心点坐标。
  15587. */
  15588. pivotX:number;
  15589. /**
  15590. * (可选)垂直方向轴心点坐标。
  15591. */
  15592. pivotY:number;
  15593. /**
  15594. * @private
  15595. */
  15596. static create(scaleX:number,scaleY:number,pivotX:number,pivotY:number):ScaleCmd;
  15597. /**
  15598. * 回收到对象池
  15599. */
  15600. recover():void;
  15601. /**
  15602. * @private
  15603. */
  15604. run(context:laya.resource.Context,gx:number,gy:number):void;
  15605. /**
  15606. * @private
  15607. */
  15608. readonly cmdID:string;
  15609. }
  15610. }
  15611. declare module laya.display.cmd {
  15612. /**
  15613. * 矩阵命令
  15614. */
  15615. class TransformCmd {
  15616. static ID:string;
  15617. /**
  15618. * 矩阵。
  15619. */
  15620. matrix:laya.maths.Matrix;
  15621. /**
  15622. * (可选)水平方向轴心点坐标。
  15623. */
  15624. pivotX:number;
  15625. /**
  15626. * (可选)垂直方向轴心点坐标。
  15627. */
  15628. pivotY:number;
  15629. /**
  15630. * @private
  15631. */
  15632. static create(matrix:laya.maths.Matrix,pivotX:number,pivotY:number):TransformCmd;
  15633. /**
  15634. * 回收到对象池
  15635. */
  15636. recover():void;
  15637. /**
  15638. * @private
  15639. */
  15640. run(context:laya.resource.Context,gx:number,gy:number):void;
  15641. /**
  15642. * @private
  15643. */
  15644. readonly cmdID:string;
  15645. }
  15646. }
  15647. declare module laya.display.cmd {
  15648. /**
  15649. * 位移命令
  15650. */
  15651. class TranslateCmd {
  15652. static ID:string;
  15653. /**
  15654. * 添加到水平坐标(x)上的值。
  15655. */
  15656. tx:number;
  15657. /**
  15658. * 添加到垂直坐标(y)上的值。
  15659. */
  15660. ty:number;
  15661. /**
  15662. * @private
  15663. */
  15664. static create(tx:number,ty:number):TranslateCmd;
  15665. /**
  15666. * 回收到对象池
  15667. */
  15668. recover():void;
  15669. /**
  15670. * @private
  15671. */
  15672. run(context:laya.resource.Context,gx:number,gy:number):void;
  15673. /**
  15674. * @private
  15675. */
  15676. readonly cmdID:string;
  15677. }
  15678. }
  15679. declare module laya.display.css {
  15680. /**
  15681. * 元素样式
  15682. */
  15683. class SpriteStyle {
  15684. static EMPTY:SpriteStyle;
  15685. scaleX:number;
  15686. scaleY:number;
  15687. skewX:number;
  15688. skewY:number;
  15689. pivotX:number;
  15690. pivotY:number;
  15691. rotation:number;
  15692. alpha:number;
  15693. scrollRect:laya.maths.Rectangle;
  15694. viewport:laya.maths.Rectangle;
  15695. hitArea:any;
  15696. dragging:laya.utils.Dragging;
  15697. blendMode:string;
  15698. constructor();
  15699. /**
  15700. * 重置,方便下次复用
  15701. */
  15702. reset():SpriteStyle;
  15703. /**
  15704. * 回收
  15705. */
  15706. recover():void;
  15707. /**
  15708. * 从对象池中创建
  15709. */
  15710. static create():SpriteStyle;
  15711. }
  15712. }
  15713. declare module laya.display.css {
  15714. /**
  15715. * 文本的样式类
  15716. */
  15717. class TextStyle extends laya.display.css.SpriteStyle {
  15718. /**
  15719. * 一个已初始化的 <code>TextStyle</code> 实例。
  15720. */
  15721. static EMPTY:TextStyle;
  15722. /**
  15723. * 表示使用此文本格式的文本是否为斜体。
  15724. * @default false
  15725. */
  15726. italic:boolean;
  15727. /**
  15728. * <p>表示使用此文本格式的文本段落的水平对齐方式。</p>
  15729. * @default "left"
  15730. */
  15731. align:string;
  15732. /**
  15733. * <p>表示使用此文本格式的文本字段是否自动换行。</p>
  15734. * 如果 wordWrap 的值为 true,则该文本字段自动换行;如果值为 false,则该文本字段不自动换行。
  15735. * @default false。
  15736. */
  15737. wordWrap:boolean;
  15738. /**
  15739. * <p>垂直行间距(以像素为单位)</p>
  15740. */
  15741. leading:number;
  15742. /**
  15743. * <p>默认边距信息</p>
  15744. * <p>[左边距,上边距,右边距,下边距](边距以像素为单位)</p>
  15745. */
  15746. padding:any[];
  15747. /**
  15748. * 文本背景颜色,以字符串表示。
  15749. */
  15750. bgColor:string|null;
  15751. /**
  15752. * 文本边框背景颜色,以字符串表示。
  15753. */
  15754. borderColor:string|null;
  15755. /**
  15756. * <p>指定文本字段是否是密码文本字段。</p>
  15757. * 如果此属性的值为 true,则文本字段被视为密码文本字段,并使用星号而不是实际字符来隐藏输入的字符。如果为 false,则不会将文本字段视为密码文本字段。
  15758. */
  15759. asPassword:boolean;
  15760. /**
  15761. * <p>描边宽度(以像素为单位)。</p>
  15762. * 默认值0,表示不描边。
  15763. * @default 0
  15764. */
  15765. stroke:number;
  15766. /**
  15767. * <p>描边颜色,以字符串表示。</p>
  15768. * @default "#000000";
  15769. */
  15770. strokeColor:string;
  15771. /**
  15772. * 是否为粗体
  15773. */
  15774. bold:boolean;
  15775. /**
  15776. * 是否显示下划线
  15777. */
  15778. underline:boolean;
  15779. /**
  15780. * 下划线颜色
  15781. */
  15782. underlineColor:string|null;
  15783. /**
  15784. * 当前使用的位置字体。
  15785. */
  15786. currBitmapFont:laya.display.BitmapFont|null;
  15787. /**
  15788. * @override
  15789. */
  15790. reset():laya.display.css.SpriteStyle;
  15791. /**
  15792. * @override
  15793. */
  15794. recover():void;
  15795. /**
  15796. * 从对象池中创建
  15797. */
  15798. static create():TextStyle;
  15799. /**
  15800. * @inheritDoc
  15801. */
  15802. render(sprite:laya.display.Sprite,context:laya.resource.Context,x:number,y:number):void;
  15803. }
  15804. }
  15805. declare module laya.display {
  15806. /**
  15807. * <p> 动效模板。用于为指定目标对象添加动画效果。每个动效有唯一的目标对象,而同一个对象可以添加多个动效。 当一个动效开始播放时,其他动效会自动停止播放。</p>
  15808. * <p> 可以通过LayaAir IDE创建。 </p>
  15809. */
  15810. class EffectAnimation extends laya.display.FrameAnimation {
  15811. /**
  15812. * @private 动效开始事件。
  15813. */
  15814. private static EFFECT_BEGIN:any;
  15815. /**
  15816. * 本实例的目标对象。通过本实例控制目标对象的属性变化。
  15817. * @param v 指定的目标对象。
  15818. */
  15819. target:any;
  15820. /**
  15821. * @private
  15822. */
  15823. private _onOtherBegin:any;
  15824. /**
  15825. * 设置开始播放的事件。本实例会侦听目标对象的指定事件,触发后播放相应动画效果。
  15826. * @param event
  15827. */
  15828. playEvent:string;
  15829. /**
  15830. * @param start
  15831. * @param loop
  15832. * @param name
  15833. * @override
  15834. */
  15835. play(start?:any,loop?:boolean,name?:string):void;
  15836. /**
  15837. * @private
  15838. */
  15839. private _recordInitData:any;
  15840. /**
  15841. * 设置提供数据的类。
  15842. * @param classStr 类路径
  15843. */
  15844. effectClass:string;
  15845. /**
  15846. * 设置动画数据。
  15847. * @param uiData
  15848. */
  15849. effectData:any;
  15850. /**
  15851. * @override
  15852. */
  15853. protected _displayNodeToFrame(node:any,frame:number,targetDic?:any):void;
  15854. }
  15855. }
  15856. declare module laya.display {
  15857. /**
  15858. * 动画播放完毕后调度。
  15859. * @eventType Event.COMPLETE
  15860. */
  15861. /**
  15862. * 播放到某标签后调度。
  15863. * @eventType Event.LABEL
  15864. */
  15865. /**
  15866. * 节点关键帧动画播放类。解析播放IDE内制作的节点动画。
  15867. */
  15868. class FrameAnimation extends laya.display.AnimationBase {
  15869. /**
  15870. * @private
  15871. */
  15872. private static _sortIndexFun:any;
  15873. /**
  15874. * @private
  15875. */
  15876. protected _usedFrames:any[];
  15877. constructor();
  15878. /**
  15879. * @inheritDoc
  15880. * @override
  15881. */
  15882. clear():laya.display.AnimationBase;
  15883. /**
  15884. * @inheritDoc
  15885. * @override
  15886. */
  15887. protected _displayToIndex(value:number):void;
  15888. /**
  15889. * @private 将节点设置到某一帧的状态
  15890. * @param node 节点ID
  15891. * @param frame
  15892. * @param targetDic 节点表
  15893. */
  15894. protected _displayNodeToFrame(node:any,frame:number,targetDic?:any):void;
  15895. /**
  15896. * @private 计算帧数据
  15897. */
  15898. private _calculateDatas:any;
  15899. /**
  15900. * @private 计算某个节点的帧数据
  15901. */
  15902. protected _calculateKeyFrames(node:any):void;
  15903. /**
  15904. * 重置节点,使节点恢复到动画之前的状态,方便其他动画控制
  15905. */
  15906. resetNodes():void;
  15907. /**
  15908. * @private 计算节点某个属性的帧数据
  15909. */
  15910. private _calculateNodePropFrames:any;
  15911. /**
  15912. * @private
  15913. */
  15914. private _dealKeyFrame:any;
  15915. /**
  15916. * @private 计算两个关键帧直接的帧数据
  15917. */
  15918. private _calculateFrameValues:any;
  15919. }
  15920. }
  15921. declare module laya.display {
  15922. /**
  15923. * <code>Graphics</code> 类用于创建绘图显示对象。Graphics可以同时绘制多个位图或者矢量图,还可以结合save,restore,transform,scale,rotate,translate,alpha等指令对绘图效果进行变化。
  15924. * Graphics以命令流方式存储,可以通过cmds属性访问所有命令流。Graphics是比Sprite更轻量级的对象,合理使用能提高应用性能(比如把大量的节点绘图改为一个节点的Graphics命令集合,能减少大量节点创建消耗)。
  15925. * @see laya.display.Sprite#graphics
  15926. */
  15927. class Graphics {
  15928. /**
  15929. * @private
  15930. */
  15931. private _cmds:any;
  15932. /**
  15933. * @private
  15934. */
  15935. protected _vectorgraphArray:any[];
  15936. /**
  15937. * @private
  15938. */
  15939. private _graphicBounds:any;
  15940. /**
  15941. * @private
  15942. */
  15943. autoDestroy:boolean;
  15944. constructor();
  15945. /**
  15946. * <p>销毁此对象。</p>
  15947. */
  15948. destroy():void;
  15949. /**
  15950. * <p>清空绘制命令。</p>
  15951. * @param recoverCmds 是否回收绘图指令数组,设置为true,则对指令数组进行回收以节省内存开销,建议设置为true进行回收,但如果手动引用了数组,不建议回收
  15952. */
  15953. clear(recoverCmds?:boolean):void;
  15954. /**
  15955. * @private
  15956. */
  15957. private _clearBoundsCache:any;
  15958. /**
  15959. * @private
  15960. */
  15961. private _initGraphicBounds:any;
  15962. /**
  15963. * @private 命令流。存储了所有绘制命令。
  15964. */
  15965. cmds:any[];
  15966. /**
  15967. * 获取位置及宽高信息矩阵(比较耗CPU,频繁使用会造成卡顿,尽量少用)。
  15968. * @param realSize (可选)使用图片的真实大小,默认为false
  15969. * @return 位置与宽高组成的 一个 Rectangle 对象。
  15970. */
  15971. getBounds(realSize?:boolean):laya.maths.Rectangle;
  15972. /**
  15973. * @private
  15974. * @param realSize (可选)使用图片的真实大小,默认为false 获取端点列表。
  15975. */
  15976. getBoundPoints(realSize?:boolean):any[];
  15977. /**
  15978. * 绘制单独图片
  15979. * @param texture 纹理。
  15980. * @param x (可选)X轴偏移量。
  15981. * @param y (可选)Y轴偏移量。
  15982. * @param width (可选)宽度。
  15983. * @param height (可选)高度。
  15984. */
  15985. drawImage(texture:laya.resource.Texture,x?:number,y?:number,width?:number,height?:number):laya.display.cmd.DrawImageCmd;
  15986. /**
  15987. * 绘制纹理,相比drawImage功能更强大,性能会差一些
  15988. * @param texture 纹理。
  15989. * @param x (可选)X轴偏移量。
  15990. * @param y (可选)Y轴偏移量。
  15991. * @param width (可选)宽度。
  15992. * @param height (可选)高度。
  15993. * @param matrix (可选)矩阵信息。
  15994. * @param alpha (可选)透明度。
  15995. * @param color (可选)颜色滤镜。
  15996. * @param blendMode (可选)混合模式。
  15997. */
  15998. drawTexture(texture:laya.resource.Texture|null,x?:number,y?:number,width?:number,height?:number,matrix?:laya.maths.Matrix|null,alpha?:number,color?:string|null,blendMode?:string|null,uv?:number[]):laya.display.cmd.DrawTextureCmd|null;
  15999. /**
  16000. * 批量绘制同样纹理。
  16001. * @param texture 纹理。
  16002. * @param pos 绘制次数和坐标。
  16003. */
  16004. drawTextures(texture:laya.resource.Texture,pos:any[]):laya.display.cmd.DrawTexturesCmd|null;
  16005. /**
  16006. * 绘制一组三角形
  16007. * @param texture 纹理。
  16008. * @param x X轴偏移量。
  16009. * @param y Y轴偏移量。
  16010. * @param vertices 顶点数组。
  16011. * @param indices 顶点索引。
  16012. * @param uvData UV数据。
  16013. * @param matrix 缩放矩阵。
  16014. * @param alpha alpha
  16015. * @param color 颜色变换
  16016. * @param blendMode blend模式
  16017. */
  16018. drawTriangles(texture:laya.resource.Texture,x:number,y:number,vertices:Float32Array,uvs:Float32Array,indices:Uint16Array,matrix?:laya.maths.Matrix,alpha?:number,color?:string,blendMode?:string,colorNum?:number):laya.display.cmd.DrawTrianglesCmd;
  16019. /**
  16020. * 用texture填充。
  16021. * @param texture 纹理。
  16022. * @param x X轴偏移量。
  16023. * @param y Y轴偏移量。
  16024. * @param width (可选)宽度。
  16025. * @param height (可选)高度。
  16026. * @param type (可选)填充类型 repeat|repeat-x|repeat-y|no-repeat
  16027. * @param offset (可选)贴图纹理偏移
  16028. */
  16029. fillTexture(texture:laya.resource.Texture,x:number,y:number,width?:number,height?:number,type?:string,offset?:laya.maths.Point|null):laya.display.cmd.FillTextureCmd|null;
  16030. /**
  16031. * 设置剪裁区域,超出剪裁区域的坐标不显示。
  16032. * @param x X 轴偏移量。
  16033. * @param y Y 轴偏移量。
  16034. * @param width 宽度。
  16035. * @param height 高度。
  16036. */
  16037. clipRect(x:number,y:number,width:number,height:number):laya.display.cmd.ClipRectCmd;
  16038. /**
  16039. * 在画布上绘制文本。
  16040. * @param text 在画布上输出的文本。
  16041. * @param x 开始绘制文本的 x 坐标位置(相对于画布)。
  16042. * @param y 开始绘制文本的 y 坐标位置(相对于画布)。
  16043. * @param font 定义字号和字体,比如"20px Arial"。
  16044. * @param color 定义文本颜色,比如"#ff0000"。
  16045. * @param textAlign 文本对齐方式,可选值:"left","center","right"。
  16046. */
  16047. fillText(text:string,x:number,y:number,font:string,color:string,textAlign:string):laya.display.cmd.FillTextCmd;
  16048. /**
  16049. * 在画布上绘制“被填充且镶边的”文本。
  16050. * @param text 在画布上输出的文本。
  16051. * @param x 开始绘制文本的 x 坐标位置(相对于画布)。
  16052. * @param y 开始绘制文本的 y 坐标位置(相对于画布)。
  16053. * @param font 定义字体和字号,比如"20px Arial"。
  16054. * @param fillColor 定义文本颜色,比如"#ff0000"。
  16055. * @param borderColor 定义镶边文本颜色。
  16056. * @param lineWidth 镶边线条宽度。
  16057. * @param textAlign 文本对齐方式,可选值:"left","center","right"。
  16058. */
  16059. fillBorderText(text:string,x:number,y:number,font:string,fillColor:string,textAlign:string,lineWidth:number,borderColor:string):laya.display.cmd.FillTextCmd;
  16060. /**
  16061. * * @private
  16062. */
  16063. fillWords(words:any[],x:number,y:number,font:string,color:string):laya.display.cmd.FillTextCmd;
  16064. /**
  16065. * * @private
  16066. */
  16067. fillBorderWords(words:any[],x:number,y:number,font:string,fillColor:string,borderColor:string,lineWidth:number):laya.display.cmd.FillTextCmd;
  16068. /**
  16069. * 在画布上绘制文本(没有填色)。文本的默认颜色是黑色。
  16070. * @param text 在画布上输出的文本。
  16071. * @param x 开始绘制文本的 x 坐标位置(相对于画布)。
  16072. * @param y 开始绘制文本的 y 坐标位置(相对于画布)。
  16073. * @param font 定义字体和字号,比如"20px Arial"。
  16074. * @param color 定义文本颜色,比如"#ff0000"。
  16075. * @param lineWidth 线条宽度。
  16076. * @param textAlign 文本对齐方式,可选值:"left","center","right"。
  16077. */
  16078. strokeText(text:string,x:number,y:number,font:string,color:string,lineWidth:number,textAlign:string):laya.display.cmd.FillTextCmd;
  16079. /**
  16080. * 设置透明度。
  16081. * @param value 透明度。
  16082. */
  16083. alpha(alpha:number):laya.display.cmd.AlphaCmd;
  16084. /**
  16085. * 替换绘图的当前转换矩阵。
  16086. * @param mat 矩阵。
  16087. * @param pivotX (可选)水平方向轴心点坐标。
  16088. * @param pivotY (可选)垂直方向轴心点坐标。
  16089. */
  16090. transform(matrix:laya.maths.Matrix,pivotX?:number,pivotY?:number):laya.display.cmd.TransformCmd;
  16091. /**
  16092. * 旋转当前绘图。(推荐使用transform,性能更高)
  16093. * @param angle 旋转角度,以弧度计。
  16094. * @param pivotX (可选)水平方向轴心点坐标。
  16095. * @param pivotY (可选)垂直方向轴心点坐标。
  16096. */
  16097. rotate(angle:number,pivotX?:number,pivotY?:number):laya.display.cmd.RotateCmd;
  16098. /**
  16099. * 缩放当前绘图至更大或更小。(推荐使用transform,性能更高)
  16100. * @param scaleX 水平方向缩放值。
  16101. * @param scaleY 垂直方向缩放值。
  16102. * @param pivotX (可选)水平方向轴心点坐标。
  16103. * @param pivotY (可选)垂直方向轴心点坐标。
  16104. */
  16105. scale(scaleX:number,scaleY:number,pivotX?:number,pivotY?:number):laya.display.cmd.ScaleCmd;
  16106. /**
  16107. * 重新映射画布上的 (0,0) 位置。
  16108. * @param x 添加到水平坐标(x)上的值。
  16109. * @param y 添加到垂直坐标(y)上的值。
  16110. */
  16111. translate(tx:number,ty:number):laya.display.cmd.TranslateCmd;
  16112. /**
  16113. * 保存当前环境的状态。
  16114. */
  16115. save():laya.display.cmd.SaveCmd;
  16116. /**
  16117. * 返回之前保存过的路径状态和属性。
  16118. */
  16119. restore():laya.display.cmd.RestoreCmd;
  16120. /**
  16121. * @private 替换文本内容。
  16122. * @param text 文本内容。
  16123. * @return 替换成功则值为true,否则值为flase。
  16124. */
  16125. replaceText(text:string):boolean;
  16126. /**
  16127. * @private
  16128. */
  16129. private _isTextCmd:any;
  16130. /**
  16131. * @private 替换文本颜色。
  16132. * @param color 颜色。
  16133. */
  16134. replaceTextColor(color:string):void;
  16135. /**
  16136. * @private
  16137. */
  16138. private _setTextCmdColor:any;
  16139. /**
  16140. * 加载并显示一个图片。
  16141. * @param url 图片地址。
  16142. * @param x (可选)显示图片的x位置。
  16143. * @param y (可选)显示图片的y位置。
  16144. * @param width (可选)显示图片的宽度,设置为0表示使用图片默认宽度。
  16145. * @param height (可选)显示图片的高度,设置为0表示使用图片默认高度。
  16146. * @param complete (可选)加载完成回调。
  16147. */
  16148. loadImage(url:string,x?:number,y?:number,width?:number,height?:number,complete?:Function):void;
  16149. /**
  16150. * 绘制一条线。
  16151. * @param fromX X轴开始位置。
  16152. * @param fromY Y轴开始位置。
  16153. * @param toX X轴结束位置。
  16154. * @param toY Y轴结束位置。
  16155. * @param lineColor 颜色。
  16156. * @param lineWidth (可选)线条宽度。
  16157. */
  16158. drawLine(fromX:number,fromY:number,toX:number,toY:number,lineColor:string,lineWidth?:number):laya.display.cmd.DrawLineCmd;
  16159. /**
  16160. * 绘制一系列线段。
  16161. * @param x 开始绘制的X轴位置。
  16162. * @param y 开始绘制的Y轴位置。
  16163. * @param points 线段的点集合。格式:[x1,y1,x2,y2,x3,y3...]。
  16164. * @param lineColor 线段颜色,或者填充绘图的渐变对象。
  16165. * @param lineWidth (可选)线段宽度。
  16166. */
  16167. drawLines(x:number,y:number,points:any[],lineColor:any,lineWidth?:number):laya.display.cmd.DrawLinesCmd;
  16168. /**
  16169. * 绘制一系列曲线。
  16170. * @param x 开始绘制的 X 轴位置。
  16171. * @param y 开始绘制的 Y 轴位置。
  16172. * @param points 线段的点集合,格式[controlX, controlY, anchorX, anchorY...]。
  16173. * @param lineColor 线段颜色,或者填充绘图的渐变对象。
  16174. * @param lineWidth (可选)线段宽度。
  16175. */
  16176. drawCurves(x:number,y:number,points:any[],lineColor:any,lineWidth?:number):laya.display.cmd.DrawCurvesCmd;
  16177. /**
  16178. * 绘制矩形。
  16179. * @param x 开始绘制的 X 轴位置。
  16180. * @param y 开始绘制的 Y 轴位置。
  16181. * @param width 矩形宽度。
  16182. * @param height 矩形高度。
  16183. * @param fillColor 填充颜色,或者填充绘图的渐变对象。
  16184. * @param lineColor (可选)边框颜色,或者填充绘图的渐变对象。
  16185. * @param lineWidth (可选)边框宽度。
  16186. */
  16187. drawRect(x:number,y:number,width:number,height:number,fillColor:any,lineColor?:any,lineWidth?:number):laya.display.cmd.DrawRectCmd;
  16188. /**
  16189. * 绘制圆形。
  16190. * @param x 圆点X 轴位置。
  16191. * @param y 圆点Y 轴位置。
  16192. * @param radius 半径。
  16193. * @param fillColor 填充颜色,或者填充绘图的渐变对象。
  16194. * @param lineColor (可选)边框颜色,或者填充绘图的渐变对象。
  16195. * @param lineWidth (可选)边框宽度。
  16196. */
  16197. drawCircle(x:number,y:number,radius:number,fillColor:any,lineColor?:any,lineWidth?:number):laya.display.cmd.DrawCircleCmd;
  16198. /**
  16199. * 绘制扇形。
  16200. * @param x 开始绘制的 X 轴位置。
  16201. * @param y 开始绘制的 Y 轴位置。
  16202. * @param radius 扇形半径。
  16203. * @param startAngle 开始角度。
  16204. * @param endAngle 结束角度。
  16205. * @param fillColor 填充颜色,或者填充绘图的渐变对象。
  16206. * @param lineColor (可选)边框颜色,或者填充绘图的渐变对象。
  16207. * @param lineWidth (可选)边框宽度。
  16208. */
  16209. drawPie(x:number,y:number,radius:number,startAngle:number,endAngle:number,fillColor:any,lineColor?:any,lineWidth?:number):laya.display.cmd.DrawPieCmd;
  16210. /**
  16211. * 绘制多边形。
  16212. * @param x 开始绘制的 X 轴位置。
  16213. * @param y 开始绘制的 Y 轴位置。
  16214. * @param points 多边形的点集合。
  16215. * @param fillColor 填充颜色,或者填充绘图的渐变对象。
  16216. * @param lineColor (可选)边框颜色,或者填充绘图的渐变对象。
  16217. * @param lineWidth (可选)边框宽度。
  16218. */
  16219. drawPoly(x:number,y:number,points:any[],fillColor:any,lineColor?:any,lineWidth?:number):laya.display.cmd.DrawPolyCmd;
  16220. /**
  16221. * 绘制路径。
  16222. * @param x 开始绘制的 X 轴位置。
  16223. * @param y 开始绘制的 Y 轴位置。
  16224. * @param paths 路径集合,路径支持以下格式:[["moveTo",x,y],["lineTo",x,y],["arcTo",x1,y1,x2,y2,r],["closePath"]]。
  16225. * @param brush (可选)刷子定义,支持以下设置{fillStyle:"#FF0000"}。
  16226. * @param pen (可选)画笔定义,支持以下设置{strokeStyle,lineWidth,lineJoin:"bevel|round|miter",lineCap:"butt|round|square",miterLimit}。
  16227. */
  16228. drawPath(x:number,y:number,paths:any[],brush?:any,pen?:any):laya.display.cmd.DrawPathCmd;
  16229. /**
  16230. * @private 绘制带九宫格的图片
  16231. * @param texture
  16232. * @param x
  16233. * @param y
  16234. * @param width
  16235. * @param height
  16236. * @param sizeGrid
  16237. */
  16238. draw9Grid(texture:laya.resource.Texture,x?:number,y?:number,width?:number,height?:number,sizeGrid?:any[]):void;
  16239. }
  16240. }
  16241. declare module laya.display {
  16242. /**
  16243. * @private Graphic bounds数据类
  16244. */
  16245. class GraphicsBounds {
  16246. /**
  16247. * @private
  16248. */
  16249. private static _tempMatrix:any;
  16250. /**
  16251. * @private
  16252. */
  16253. private static _initMatrix:any;
  16254. /**
  16255. * @private
  16256. */
  16257. private static _tempPoints:any;
  16258. /**
  16259. * @private
  16260. */
  16261. private static _tempMatrixArrays:any;
  16262. /**
  16263. * @private
  16264. */
  16265. private static _tempCmds:any;
  16266. /**
  16267. * @private
  16268. */
  16269. private _temp:any;
  16270. /**
  16271. * @private
  16272. */
  16273. private _bounds:any;
  16274. /**
  16275. * @private
  16276. */
  16277. private _rstBoundPoints:any;
  16278. /**
  16279. * @private
  16280. */
  16281. private _cacheBoundsType:any;
  16282. /**
  16283. * 销毁
  16284. */
  16285. destroy():void;
  16286. /**
  16287. * 创建
  16288. */
  16289. static create():GraphicsBounds;
  16290. /**
  16291. * 重置数据
  16292. */
  16293. reset():void;
  16294. /**
  16295. * 获取位置及宽高信息矩阵(比较耗CPU,频繁使用会造成卡顿,尽量少用)。
  16296. * @param realSize (可选)使用图片的真实大小,默认为false
  16297. * @return 位置与宽高组成的 一个 Rectangle 对象。
  16298. */
  16299. getBounds(realSize?:boolean):laya.maths.Rectangle;
  16300. /**
  16301. * @private
  16302. * @param realSize (可选)使用图片的真实大小,默认为false 获取端点列表。
  16303. */
  16304. getBoundPoints(realSize?:boolean):any[];
  16305. private _getCmdPoints:any;
  16306. private _switchMatrix:any;
  16307. private static _addPointArrToRst:any;
  16308. private static _addPointToRst:any;
  16309. /**
  16310. * 获得drawPie命令可能的产生的点。注意 这里只假设用在包围盒计算上。
  16311. * @param x
  16312. * @param y
  16313. * @param radius
  16314. * @param startAngle
  16315. * @param endAngle
  16316. * @return
  16317. */
  16318. private _getPiePoints:any;
  16319. private _getTriAngBBXPoints:any;
  16320. private _getDraw9GridBBXPoints:any;
  16321. private _getPathPoints:any;
  16322. }
  16323. }
  16324. declare module laya.display {
  16325. /**
  16326. * 用户输入一个或多个文本字符时后调度。
  16327. * @eventType Event.INPUT
  16328. */
  16329. /**
  16330. * 文本发生变化后调度。
  16331. * @eventType Event.CHANGE
  16332. */
  16333. /**
  16334. * 用户在输入框内敲回车键后,将会调度 <code>enter</code> 事件。
  16335. * @eventType Event.ENTER
  16336. */
  16337. /**
  16338. * 显示对象获得焦点后调度。
  16339. * @eventType Event.FOCUS
  16340. */
  16341. /**
  16342. * 显示对象失去焦点后调度。
  16343. * @eventType Event.BLUR
  16344. */
  16345. /**
  16346. * <p><code>Input</code> 类用于创建显示对象以显示和输入文本。</p>
  16347. * <p>Input 类封装了原生的文本输入框,由于不同浏览器的差异,会导致此对象的默认文本的位置与用户点击输入时的文本的位置有少许的偏差。</p>
  16348. */
  16349. class Input extends laya.display.Text {
  16350. /**
  16351. * 常规文本域。
  16352. */
  16353. static TYPE_TEXT:string;
  16354. /**
  16355. * password 类型用于密码域输入。
  16356. */
  16357. static TYPE_PASSWORD:string;
  16358. /**
  16359. * email 类型用于应该包含 e-mail 地址的输入域。
  16360. */
  16361. static TYPE_EMAIL:string;
  16362. /**
  16363. * url 类型用于应该包含 URL 地址的输入域。
  16364. */
  16365. static TYPE_URL:string;
  16366. /**
  16367. * number 类型用于应该包含数值的输入域。
  16368. */
  16369. static TYPE_NUMBER:string;
  16370. /**
  16371. * <p>range 类型用于应该包含一定范围内数字值的输入域。</p>
  16372. * <p>range 类型显示为滑动条。</p>
  16373. * <p>您还能够设定对所接受的数字的限定。</p>
  16374. */
  16375. static TYPE_RANGE:string;
  16376. /**
  16377. * 选取日、月、年。
  16378. */
  16379. static TYPE_DATE:string;
  16380. /**
  16381. * month - 选取月、年。
  16382. */
  16383. static TYPE_MONTH:string;
  16384. /**
  16385. * week - 选取周和年。
  16386. */
  16387. static TYPE_WEEK:string;
  16388. /**
  16389. * time - 选取时间(小时和分钟)。
  16390. */
  16391. static TYPE_TIME:string;
  16392. /**
  16393. * datetime - 选取时间、日、月、年(UTC 时间)。
  16394. */
  16395. static TYPE_DATE_TIME:string;
  16396. /**
  16397. * datetime-local - 选取时间、日、月、年(本地时间)。
  16398. */
  16399. static TYPE_DATE_TIME_LOCAL:string;
  16400. /**
  16401. * <p>search 类型用于搜索域,比如站点搜索或 Google 搜索。</p>
  16402. * <p>search 域显示为常规的文本域。</p>
  16403. */
  16404. static TYPE_SEARCH:string;
  16405. /**
  16406. * @private
  16407. */
  16408. protected static input:any;
  16409. /**
  16410. * @private
  16411. */
  16412. protected static area:any;
  16413. /**
  16414. * @private
  16415. */
  16416. protected static inputElement:any;
  16417. /**
  16418. * @private
  16419. */
  16420. protected static inputContainer:any;
  16421. /**
  16422. * @private
  16423. */
  16424. protected static confirmButton:any;
  16425. /**
  16426. * @private
  16427. */
  16428. protected static promptStyleDOM:any;
  16429. /**
  16430. * @private
  16431. */
  16432. protected _focus:boolean;
  16433. /**
  16434. * @private
  16435. */
  16436. protected _multiline:boolean;
  16437. /**
  16438. * @private
  16439. */
  16440. protected _editable:boolean;
  16441. /**
  16442. * @private
  16443. */
  16444. protected _restrictPattern:any;
  16445. /**
  16446. * @private
  16447. */
  16448. protected _maxChars:number;
  16449. private _type:any;
  16450. /**
  16451. * 输入提示符。
  16452. */
  16453. private _prompt:any;
  16454. /**
  16455. * 输入提示符颜色。
  16456. */
  16457. private _promptColor:any;
  16458. private _originColor:any;
  16459. private _content:any;
  16460. /**
  16461. * @private
  16462. */
  16463. static IOS_IFRAME:boolean;
  16464. private static inputHeight:any;
  16465. /**
  16466. * 表示是否处于输入状态。
  16467. */
  16468. static isInputting:boolean;
  16469. /**
  16470. * 创建一个新的 <code>Input</code> 类实例。
  16471. */
  16472. constructor();
  16473. private static _popupInputMethod:any;
  16474. private static _createInputElement:any;
  16475. private static _initInput:any;
  16476. private static _processInputting:any;
  16477. private static _stopEvent:any;
  16478. /**
  16479. * 设置光标位置和选取字符。
  16480. * @param startIndex 光标起始位置。
  16481. * @param endIndex 光标结束位置。
  16482. */
  16483. setSelection(startIndex:number,endIndex:number):void;
  16484. /**
  16485. * 表示是否是多行输入框。
  16486. */
  16487. multiline:boolean;
  16488. /**
  16489. * 获取对输入框的引用实例。
  16490. */
  16491. readonly nativeInput:any;
  16492. private _onUnDisplay:any;
  16493. private _onMouseDown:any;
  16494. private static stageMatrix:any;
  16495. /**
  16496. * 在输入期间,如果 Input 实例的位置改变,调用_syncInputTransform同步输入框的位置。
  16497. */
  16498. private _syncInputTransform:any;
  16499. /**
  16500. * 选中当前实例的所有文本。
  16501. */
  16502. select():void;
  16503. /**
  16504. * 表示焦点是否在此实例上。
  16505. */
  16506. focus:boolean;
  16507. private _setInputMethod:any;
  16508. private _focusIn:any;
  16509. private _setPromptColor:any;
  16510. /**
  16511. * @private
  16512. */
  16513. private _focusOut:any;
  16514. /**
  16515. * @private
  16516. */
  16517. private _onKeyDown:any;
  16518. /**
  16519. * @inheritDoc
  16520. * @override
  16521. */
  16522. /**
  16523. * @override
  16524. */
  16525. text:string;
  16526. /**
  16527. * @param text
  16528. * @override
  16529. */
  16530. changeText(text:string):void;
  16531. /**
  16532. * @inheritDoc
  16533. * @override
  16534. */
  16535. color:string;
  16536. /**
  16537. * @inheritDoc
  16538. * @override
  16539. */
  16540. bgColor:string;
  16541. /**
  16542. * 限制输入的字符。
  16543. */
  16544. restrict:string;
  16545. /**
  16546. * 是否可编辑。
  16547. */
  16548. editable:boolean;
  16549. /**
  16550. * <p>字符数量限制,默认为10000。</p>
  16551. * <p>设置字符数量限制时,小于等于0的值将会限制字符数量为10000。</p>
  16552. */
  16553. maxChars:number;
  16554. /**
  16555. * 设置输入提示符。
  16556. */
  16557. prompt:string;
  16558. /**
  16559. * 设置输入提示符颜色。
  16560. */
  16561. promptColor:string;
  16562. /**
  16563. * <p>输入框类型为Input静态常量之一。</p>
  16564. * <ul>
  16565. * <li>TYPE_TEXT</li>
  16566. * <li>TYPE_PASSWORD</li>
  16567. * <li>TYPE_EMAIL</li>
  16568. * <li>TYPE_URL</li>
  16569. * <li>TYPE_NUMBER</li>
  16570. * <li>TYPE_RANGE</li>
  16571. * <li>TYPE_DATE</li>
  16572. * <li>TYPE_MONTH</li>
  16573. * <li>TYPE_WEEK</li>
  16574. * <li>TYPE_TIME</li>
  16575. * <li>TYPE_DATE_TIME</li>
  16576. * <li>TYPE_DATE_TIME_LOCAL</li>
  16577. * </ul>
  16578. * <p>平台兼容性参见http://www.w3school.com.cn/html5/html_5_form_input_types.asp。</p>
  16579. */
  16580. type:string;
  16581. }
  16582. }
  16583. declare module laya.display {
  16584. /**
  16585. * 添加到父对象后调度。
  16586. * @eventType Event.ADDED
  16587. */
  16588. /**
  16589. * 被父对象移除后调度。
  16590. * @eventType Event.REMOVED
  16591. */
  16592. /**
  16593. * 加入节点树时调度。
  16594. * @eventType Event.DISPLAY
  16595. */
  16596. /**
  16597. * 从节点树移除时调度。
  16598. * @eventType Event.UNDISPLAY
  16599. */
  16600. /**
  16601. * <code>Node</code> 类是可放在显示列表中的所有对象的基类。该显示列表管理 Laya 运行时中显示的所有对象。使用 Node 类排列显示列表中的显示对象。Node 对象可以有子显示对象。
  16602. */
  16603. class Node extends laya.events.EventDispatcher {
  16604. /**
  16605. * @private
  16606. */
  16607. protected static ARRAY_EMPTY:any[];
  16608. /**
  16609. * @private
  16610. */
  16611. private _bits:any;
  16612. /**
  16613. * 节点名称。
  16614. */
  16615. name:string;
  16616. /**
  16617. * [只读]是否已经销毁。对象销毁后不能再使用。
  16618. */
  16619. destroyed:boolean;
  16620. constructor();
  16621. createGLBuffer():void;
  16622. /**
  16623. * <p>增加事件侦听器,以使侦听器能够接收事件通知。</p>
  16624. * <p>如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。</p>
  16625. * @param type 事件的类型。
  16626. * @param caller 事件侦听函数的执行域。
  16627. * @param listener 事件侦听函数。
  16628. * @param args (可选)事件侦听函数的回调参数。
  16629. * @return 此 EventDispatcher 对象。
  16630. * @override
  16631. */
  16632. on(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  16633. /**
  16634. * <p>增加事件侦听器,以使侦听器能够接收事件通知,此侦听事件响应一次后则自动移除侦听。</p>
  16635. * <p>如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。</p>
  16636. * @param type 事件的类型。
  16637. * @param caller 事件侦听函数的执行域。
  16638. * @param listener 事件侦听函数。
  16639. * @param args (可选)事件侦听函数的回调参数。
  16640. * @return 此 EventDispatcher 对象。
  16641. * @override
  16642. */
  16643. once(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  16644. /**
  16645. * <p>销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。</p>
  16646. * <p>destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。</p>
  16647. * @param destroyChild (可选)是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
  16648. */
  16649. destroy(destroyChild?:boolean):void;
  16650. /**
  16651. * 销毁时执行
  16652. * 此方法为虚方法,使用时重写覆盖即可
  16653. */
  16654. onDestroy():void;
  16655. /**
  16656. * 销毁所有子对象,不销毁自己本身。
  16657. */
  16658. destroyChildren():void;
  16659. /**
  16660. * 添加子节点。
  16661. * @param node 节点对象
  16662. * @return 返回添加的节点
  16663. */
  16664. addChild(node:Node):Node;
  16665. addInputChild(node:Node):Node;
  16666. removeInputChild(node:Node):void;
  16667. /**
  16668. * 批量增加子节点
  16669. * @param ...args 无数子节点。
  16670. */
  16671. addChildren(...args:any[]):void;
  16672. /**
  16673. * 添加子节点到指定的索引位置。
  16674. * @param node 节点对象。
  16675. * @param index 索引位置。
  16676. * @return 返回添加的节点。
  16677. */
  16678. addChildAt(node:Node,index:number):Node;
  16679. /**
  16680. * 根据子节点对象,获取子节点的索引位置。
  16681. * @param node 子节点。
  16682. * @return 子节点所在的索引位置。
  16683. */
  16684. getChildIndex(node:Node):number;
  16685. /**
  16686. * 根据子节点的名字,获取子节点对象。
  16687. * @param name 子节点的名字。
  16688. * @return 节点对象。
  16689. */
  16690. getChildByName(name:string):Node;
  16691. /**
  16692. * 根据子节点的索引位置,获取子节点对象。
  16693. * @param index 索引位置
  16694. * @return 子节点
  16695. */
  16696. getChildAt(index:number):Node;
  16697. /**
  16698. * 设置子节点的索引位置。
  16699. * @param node 子节点。
  16700. * @param index 新的索引。
  16701. * @return 返回子节点本身。
  16702. */
  16703. setChildIndex(node:Node,index:number):Node;
  16704. /**
  16705. * 子节点发生改变。
  16706. * @private
  16707. * @param child 子节点。
  16708. */
  16709. protected _childChanged(child?:Node):void;
  16710. /**
  16711. * 删除子节点。
  16712. * @param node 子节点
  16713. * @return 被删除的节点
  16714. */
  16715. removeChild(node:Node):Node;
  16716. /**
  16717. * 从父容器删除自己,如已经被删除不会抛出异常。
  16718. * @return 当前节点( Node )对象。
  16719. */
  16720. removeSelf():Node;
  16721. /**
  16722. * 根据子节点名字删除对应的子节点对象,如果找不到不会抛出异常。
  16723. * @param name 对象名字。
  16724. * @return 查找到的节点( Node )对象。
  16725. */
  16726. removeChildByName(name:string):Node;
  16727. /**
  16728. * 根据子节点索引位置,删除对应的子节点对象。
  16729. * @param index 节点索引位置。
  16730. * @return 被删除的节点。
  16731. */
  16732. removeChildAt(index:number):Node;
  16733. /**
  16734. * 删除指定索引区间的所有子对象。
  16735. * @param beginIndex 开始索引。
  16736. * @param endIndex 结束索引。
  16737. * @return 当前节点对象。
  16738. */
  16739. removeChildren(beginIndex?:number,endIndex?:number):Node;
  16740. /**
  16741. * 替换子节点。
  16742. * 将传入的新节点对象替换到已有子节点索引位置处。
  16743. * @param newNode 新节点。
  16744. * @param oldNode 老节点。
  16745. * @return 返回新节点。
  16746. */
  16747. replaceChild(newNode:Node,oldNode:Node):Node;
  16748. /**
  16749. * 子对象数量。
  16750. */
  16751. readonly numChildren:number;
  16752. /**
  16753. * 父节点。
  16754. */
  16755. readonly parent:Node;
  16756. /**
  16757. * @private
  16758. */
  16759. protected _setParent(value:Node):void;
  16760. /**
  16761. * 表示是否在显示列表中显示。
  16762. */
  16763. readonly displayedInStage:boolean;
  16764. /**
  16765. * @private
  16766. */
  16767. private _updateDisplayedInstage:any;
  16768. /**
  16769. * 设置指定节点对象是否可见(是否在渲染列表中)。
  16770. * @private
  16771. * @param node 节点。
  16772. * @param display 是否可见。
  16773. */
  16774. private _displayChild:any;
  16775. /**
  16776. * 当前容器是否包含指定的 <code>Node</code> 节点对象 。
  16777. * @param node 指定的 <code>Node</code> 节点对象 。
  16778. * @return 一个布尔值表示是否包含指定的 <code>Node</code> 节点对象 。
  16779. */
  16780. contains(node:Node):boolean;
  16781. /**
  16782. * 定时重复执行某函数。功能同Laya.timer.timerLoop()。
  16783. * @param delay 间隔时间(单位毫秒)。
  16784. * @param caller 执行域(this)。
  16785. * @param method 结束时的回调方法。
  16786. * @param args (可选)回调参数。
  16787. * @param coverBefore (可选)是否覆盖之前的延迟执行,默认为true。
  16788. * @param jumpFrame 时钟是否跳帧。基于时间的循环回调,单位时间间隔内,如能执行多次回调,出于性能考虑,引擎默认只执行一次,设置jumpFrame=true后,则回调会连续执行多次
  16789. */
  16790. timerLoop(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean,jumpFrame?:boolean):void;
  16791. /**
  16792. * 定时执行某函数一次。功能同Laya.timer.timerOnce()。
  16793. * @param delay 延迟时间(单位毫秒)。
  16794. * @param caller 执行域(this)。
  16795. * @param method 结束时的回调方法。
  16796. * @param args (可选)回调参数。
  16797. * @param coverBefore (可选)是否覆盖之前的延迟执行,默认为true。
  16798. */
  16799. timerOnce(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  16800. /**
  16801. * 定时重复执行某函数(基于帧率)。功能同Laya.timer.frameLoop()。
  16802. * @param delay 间隔几帧(单位为帧)。
  16803. * @param caller 执行域(this)。
  16804. * @param method 结束时的回调方法。
  16805. * @param args (可选)回调参数。
  16806. * @param coverBefore (可选)是否覆盖之前的延迟执行,默认为true。
  16807. */
  16808. frameLoop(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  16809. /**
  16810. * 定时执行一次某函数(基于帧率)。功能同Laya.timer.frameOnce()。
  16811. * @param delay 延迟几帧(单位为帧)。
  16812. * @param caller 执行域(this)
  16813. * @param method 结束时的回调方法
  16814. * @param args (可选)回调参数
  16815. * @param coverBefore (可选)是否覆盖之前的延迟执行,默认为true
  16816. */
  16817. frameOnce(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  16818. /**
  16819. * 清理定时器。功能同Laya.timer.clearTimer()。
  16820. * @param caller 执行域(this)。
  16821. * @param method 结束时的回调方法。
  16822. */
  16823. clearTimer(caller:any,method:Function):void;
  16824. /**
  16825. * <p>延迟运行指定的函数。</p>
  16826. * <p>在控件被显示在屏幕之前调用,一般用于延迟计算数据。</p>
  16827. * @param method 要执行的函数的名称。例如,functionName。
  16828. * @param args 传递给 <code>method</code> 函数的可选参数列表。
  16829. * @see #runCallLater()
  16830. */
  16831. callLater(method:Function,args?:any[]):void;
  16832. /**
  16833. * <p>如果有需要延迟调用的函数(通过 <code>callLater</code> 函数设置),则立即执行延迟调用函数。</p>
  16834. * @param method 要执行的函数名称。例如,functionName。
  16835. * @see #callLater()
  16836. */
  16837. runCallLater(method:Function):void;
  16838. /**
  16839. * @private
  16840. */
  16841. private _components:any;
  16842. /**
  16843. * @private
  16844. */
  16845. private _activeChangeScripts:any;
  16846. /**
  16847. * 获得所属场景。
  16848. * @return 场景。
  16849. */
  16850. readonly scene:any;
  16851. /**
  16852. * 获取自身是否激活。
  16853. * @return 自身是否激活。
  16854. */
  16855. /**
  16856. * 设置是否激活。
  16857. * @param value 是否激活。
  16858. */
  16859. active:boolean;
  16860. /**
  16861. * 获取在场景中是否激活。
  16862. * @return 在场景中是否激活。
  16863. */
  16864. readonly activeInHierarchy:boolean;
  16865. /**
  16866. * @private
  16867. */
  16868. protected _onActive():void;
  16869. /**
  16870. * @private
  16871. */
  16872. protected _onInActive():void;
  16873. /**
  16874. * @private
  16875. */
  16876. protected _onActiveInScene():void;
  16877. /**
  16878. * @private
  16879. */
  16880. protected _onInActiveInScene():void;
  16881. /**
  16882. * 组件被激活后执行,此时所有节点和组件均已创建完毕,次方法只执行一次
  16883. * 此方法为虚方法,使用时重写覆盖即可
  16884. */
  16885. onAwake():void;
  16886. /**
  16887. * 组件被启用后执行,比如节点被添加到舞台后
  16888. * 此方法为虚方法,使用时重写覆盖即可
  16889. */
  16890. onEnable():void;
  16891. /**
  16892. * @private
  16893. */
  16894. private _activeScripts:any;
  16895. /**
  16896. * @private
  16897. */
  16898. private _processInActive:any;
  16899. /**
  16900. * @private
  16901. */
  16902. private _inActiveScripts:any;
  16903. /**
  16904. * 组件被禁用时执行,比如从节点从舞台移除后
  16905. * 此方法为虚方法,使用时重写覆盖即可
  16906. */
  16907. onDisable():void;
  16908. /**
  16909. * @private
  16910. */
  16911. protected _onAdded():void;
  16912. /**
  16913. * @private
  16914. */
  16915. protected _onRemoved():void;
  16916. /**
  16917. * 添加组件实例。
  16918. * @param comp 组件实例。
  16919. * @return 组件。
  16920. */
  16921. addComponentIntance(comp:laya.components.Component):any;
  16922. /**
  16923. * 添加组件。
  16924. * @param type 组件类型。
  16925. * @return 组件。
  16926. */
  16927. addComponent(type:typeof laya.components.Component):any;
  16928. /**
  16929. * 获得组件实例,如果没有则返回为null
  16930. * @param clas 组建类型
  16931. * @return 返回组件
  16932. */
  16933. getComponent(clas:any):any;
  16934. /**
  16935. * 获得组件实例,如果没有则返回为null
  16936. * @param clas 组建类型
  16937. * @return 返回组件数组
  16938. */
  16939. getComponents(clas:any):any[];
  16940. /**
  16941. * @private 获取timer
  16942. */
  16943. readonly timer:laya.utils.Timer;
  16944. }
  16945. }
  16946. declare module laya.display {
  16947. /**
  16948. * 场景类,负责场景创建,加载,销毁等功能
  16949. * 场景被从节点移除后,并不会被自动垃圾机制回收,如果想回收,请调用destroy接口,可以通过unDestroyedScenes属性查看还未被销毁的场景列表
  16950. */
  16951. class Scene extends laya.display.Sprite {
  16952. /**
  16953. * 创建后,还未被销毁的场景列表,方便查看还未被销毁的场景列表,方便内存管理,本属性只读,请不要直接修改
  16954. */
  16955. static unDestroyedScenes:any[];
  16956. /**
  16957. * 获取根节点
  16958. */
  16959. private static _root:any;
  16960. /**
  16961. * @private
  16962. */
  16963. private static _loadPage:any;
  16964. /**
  16965. * 场景被关闭后,是否自动销毁(销毁节点和使用到的资源),默认为false
  16966. */
  16967. autoDestroyAtClosed:boolean;
  16968. /**
  16969. * 场景地址
  16970. */
  16971. url:string;
  16972. /**
  16973. * 场景时钟
  16974. */
  16975. private _timer:any;
  16976. /**
  16977. * @private
  16978. */
  16979. private _viewCreated:any;
  16980. constructor(createChildren?:boolean);
  16981. /**
  16982. * @private 兼容老项目
  16983. */
  16984. protected createChildren():void;
  16985. /**
  16986. * 加载模式设置uimap
  16987. * @param url uimapJosn的url
  16988. */
  16989. static setUIMap(url:any):void;
  16990. /**
  16991. * @private 兼容老项目 装载场景视图。用于加载模式。
  16992. * @param path 场景地址。
  16993. */
  16994. loadScene(path:string):void;
  16995. private _onSceneLoaded:any;
  16996. /**
  16997. * @private 兼容老项目 通过视图数据创建视图。
  16998. * @param uiView 视图数据信息。
  16999. */
  17000. createView(view:any):void;
  17001. /**
  17002. * 根据IDE内的节点id,获得节点实例
  17003. */
  17004. getNodeByID(id:number):any;
  17005. /**
  17006. * 打开场景。【注意】被关闭的场景,如果没有设置autoDestroyAtRemoved=true,则资源可能不能被回收,需要自己手动回收
  17007. * @param closeOther 是否关闭其他场景,默认为true(可选)
  17008. * @param param 打开页面的参数,会传递给onOpened方法(可选)
  17009. */
  17010. open(closeOther?:boolean,param?:any):void;
  17011. /**
  17012. * 场景打开完成后,调用此方法(如果有弹出动画,则在动画完成后执行)
  17013. */
  17014. onOpened(param:any):void;
  17015. /**
  17016. * 关闭场景
  17017. * 【注意】被关闭的场景,如果没有设置autoDestroyAtRemoved=true,则资源可能不能被回收,需要自己手动回收
  17018. * @param type 关闭的原因,会传递给onClosed函数
  17019. */
  17020. close(type?:string):void;
  17021. /**
  17022. * 关闭完成后,调用此方法(如果有关闭动画,则在动画完成后执行)
  17023. * @param type 如果是点击默认关闭按钮触发,则传入关闭按钮的名字(name),否则为null。
  17024. */
  17025. onClosed(type?:string):void;
  17026. /**
  17027. * @inheritDoc
  17028. * @override
  17029. */
  17030. destroy(destroyChild?:boolean):void;
  17031. /**
  17032. * @inheritDoc
  17033. * @override
  17034. */
  17035. scaleX:number;
  17036. /**
  17037. * @inheritDoc
  17038. * @override
  17039. */
  17040. scaleY:number;
  17041. /**
  17042. * @inheritDoc
  17043. * @override
  17044. */
  17045. /**
  17046. * @inheritDoc
  17047. * @override
  17048. */
  17049. width:number;
  17050. /**
  17051. * @inheritDoc
  17052. * @override
  17053. */
  17054. /**
  17055. * @inheritDoc
  17056. * @override
  17057. */
  17058. height:number;
  17059. /**
  17060. * @private
  17061. */
  17062. protected _sizeChanged():void;
  17063. /**
  17064. * 获取场景根容器
  17065. */
  17066. static readonly root:laya.display.Sprite;
  17067. /**
  17068. * 场景时钟
  17069. * @override
  17070. */
  17071. timer:laya.utils.Timer;
  17072. /**
  17073. * 加载场景及场景使用到的资源
  17074. * @param url 场景地址
  17075. * @param complete 加载完成回调,返回场景实例(可选)
  17076. * @param progress 加载进度回调(可选)
  17077. */
  17078. static load(url:string,complete?:laya.utils.Handler,progress?:laya.utils.Handler):void;
  17079. /**
  17080. * 加载并打开场景
  17081. * @param url 场景地址
  17082. * @param closeOther 是否关闭其他场景,默认为true(可选),【注意】被关闭的场景,如果没有设置autoDestroyAtRemoved=true,则资源可能不能被回收,需要自己手动回收
  17083. * @param param 打开页面的参数,会传递给onOpened方法(可选)
  17084. * @param complete 打开完成回调,返回场景实例(可选)
  17085. * @param progress 加载进度回调(可选)
  17086. */
  17087. static open(url:string,closeOther?:boolean,param?:any,complete?:laya.utils.Handler,progress?:laya.utils.Handler):void;
  17088. /**
  17089. * @private
  17090. */
  17091. private static _onSceneLoaded:any;
  17092. /**
  17093. * 根据地址,关闭场景(包括对话框)
  17094. * @param url 场景地址
  17095. * @param name 如果name不为空,name必须相同才能关闭
  17096. * @return 返回是否关闭成功,如果url找不到,则不成功
  17097. */
  17098. static close(url:string,name?:string):boolean;
  17099. /**
  17100. * 关闭所有场景,不包括对话框,如果关闭对话框,请使用Dialog.closeAll()
  17101. * 【注意】被关闭的场景,如果没有设置autoDestroyAtRemoved=true,则资源可能不能被回收,需要自己手动回收
  17102. */
  17103. static closeAll():void;
  17104. /**
  17105. * 根据地址,销毁场景(包括对话框)
  17106. * @param url 场景地址
  17107. * @param name 如果name不为空,name必须相同才能关闭
  17108. * @return 返回是否销毁成功,如果url找不到,则不成功
  17109. */
  17110. static destroy(url:string,name?:string):boolean;
  17111. /**
  17112. * 销毁当前没有被使用的资源,该函数会忽略lock=true的资源。
  17113. */
  17114. static gc():void;
  17115. /**
  17116. * 设置loading界面,引擎会在调用open方法后,延迟打开loading界面,在页面添加到舞台之后,关闭loading界面
  17117. * @param loadPage load界面实例
  17118. */
  17119. static setLoadingPage(loadPage:Scene):void;
  17120. /**
  17121. * 显示loading界面
  17122. * @param param 打开参数,如果是scene,则会传递给onOpened方法
  17123. * @param delay 延迟打开时间,默认500毫秒
  17124. */
  17125. static showLoadingPage(param?:any,delay?:number):void;
  17126. private static _showLoading:any;
  17127. private static _hideLoading:any;
  17128. /**
  17129. * 隐藏loading界面
  17130. * @param delay 延迟关闭时间,默认500毫秒
  17131. */
  17132. static hideLoadingPage(delay?:number):void;
  17133. }
  17134. }
  17135. declare module laya.display {
  17136. /**
  17137. * 在显示对象上按下后调度。
  17138. * @eventType Event.MOUSE_DOWN
  17139. */
  17140. /**
  17141. * 在显示对象抬起后调度。
  17142. * @eventType Event.MOUSE_UP
  17143. */
  17144. /**
  17145. * 鼠标在对象身上进行移动后调度
  17146. * @eventType Event.MOUSE_MOVE
  17147. */
  17148. /**
  17149. * 鼠标经过对象后调度。
  17150. * @eventType Event.MOUSE_OVER
  17151. */
  17152. /**
  17153. * 鼠标离开对象后调度。
  17154. * @eventType Event.MOUSE_OUT
  17155. */
  17156. /**
  17157. * 鼠标点击对象后调度。
  17158. * @eventType Event.CLICK
  17159. */
  17160. /**
  17161. * 开始拖动后调度。
  17162. * @eventType Event.DRAG_START
  17163. */
  17164. /**
  17165. * 拖动中调度。
  17166. * @eventType Event.DRAG_MOVE
  17167. */
  17168. /**
  17169. * 拖动结束后调度。
  17170. * @eventType Event.DRAG_END
  17171. */
  17172. /**
  17173. * <p> <code>Sprite</code> 是基本的显示图形的显示列表节点。 <code>Sprite</code> 默认没有宽高,默认不接受鼠标事件。通过 <code>graphics</code> 可以绘制图片或者矢量图,支持旋转,缩放,位移等操作。<code>Sprite</code>同时也是容器类,可用来添加多个子节点。</p>
  17174. * <p>注意: <code>Sprite</code> 默认没有宽高,可以通过<code>getBounds</code>函数获取;也可手动设置宽高;还可以设置<code>autoSize=true</code>,然后再获取宽高。<code>Sprite</code>的宽高一般用于进行碰撞检测和排版,并不影响显示图像大小,如果需要更改显示图像大小,请使用 <code>scaleX</code> , <code>scaleY</code> , <code>scale</code>。</p>
  17175. * <p> <code>Sprite</code> 默认不接受鼠标事件,即<code>mouseEnabled=false</code>,但是只要对其监听任意鼠标事件,会自动打开自己以及所有父对象的<code>mouseEnabled=true</code>。所以一般也无需手动设置<code>mouseEnabled</code>。</p>
  17176. * <p>LayaAir引擎API设计精简巧妙。核心显示类只有一个<code>Sprite</code>。<code>Sprite</code>针对不同的情况做了渲染优化,所以保证一个类实现丰富功能的同时,又达到高性能。</p>
  17177. * @example <caption>创建了一个 <code>Sprite</code> 实例。</caption> package { import laya.display.Sprite; import laya.events.Event; public class Sprite_Example { private var sprite:Sprite; private var shape:Sprite public function Sprite_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } private function onInit():void { sprite = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。 sprite.loadImage("resource/ui/bg.png");//加载并显示图片。 sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。 sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。 sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。 sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。 Laya.stage.addChild(sprite);//将此 sprite 对象添加到显示列表。 sprite.on(Event.CLICK, this, onClickSprite);//给 sprite 对象添加点击事件侦听。 shape = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。 shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。 shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。 shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。 shape.width = 100;//设置 shape 对象的宽度。 shape.height = 100;//设置 shape 对象的高度。 shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。 shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。 Laya.stage.addChild(shape);//将此 shape 对象添加到显示列表。 shape.on(Event.CLICK, this, onClickShape);//给 shape 对象添加点击事件侦听。 } private function onClickSprite():void { trace("点击 sprite 对象。"); sprite.rotation += 5;//旋转 sprite 对象。 } private function onClickShape():void { trace("点击 shape 对象。"); shape.rotation += 5;//旋转 shape 对象。 } } }
  17178. * @example var sprite; var shape; Sprite_Example(); function Sprite_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } function onInit() { sprite = new laya.display.Sprite();//创建一个 Sprite 类的实例对象 sprite 。 sprite.loadImage("resource/ui/bg.png");//加载并显示图片。 sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。 sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。 sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。 sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。 Laya.stage.addChild(sprite);//将此 sprite 对象添加到显示列表。 sprite.on(Event.CLICK, this, onClickSprite);//给 sprite 对象添加点击事件侦听。 shape = new laya.display.Sprite();//创建一个 Sprite 类的实例对象 sprite 。 shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。 shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。 shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。 shape.width = 100;//设置 shape 对象的宽度。 shape.height = 100;//设置 shape 对象的高度。 shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。 shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。 Laya.stage.addChild(shape);//将此 shape 对象添加到显示列表。 shape.on(laya.events.Event.CLICK, this, onClickShape);//给 shape 对象添加点击事件侦听。 } function onClickSprite() { console.log("点击 sprite 对象。"); sprite.rotation += 5;//旋转 sprite 对象。 } function onClickShape() { console.log("点击 shape 对象。"); shape.rotation += 5;//旋转 shape 对象。 }
  17179. * @example import Sprite = laya.display.Sprite; class Sprite_Example { private sprite: Sprite; private shape: Sprite public Sprite_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.onInit(); } private onInit(): void { this.sprite = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。 this.sprite.loadImage("resource/ui/bg.png");//加载并显示图片。 this.sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。 this.sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。 this.sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。 this.sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。 Laya.stage.addChild(this.sprite);//将此 sprite 对象添加到显示列表。 this.sprite.on(laya.events.Event.CLICK, this, this.onClickSprite);//给 sprite 对象添加点击事件侦听。 this.shape = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。 this.shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。 this.shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。 this.shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。 this.shape.width = 100;//设置 shape 对象的宽度。 this.shape.height = 100;//设置 shape 对象的高度。 this.shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。 this.shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。 Laya.stage.addChild(this.shape);//将此 shape 对象添加到显示列表。 this.shape.on(laya.events.Event.CLICK, this, this.onClickShape);//给 shape 对象添加点击事件侦听。 } private onClickSprite(): void { console.log("点击 sprite 对象。"); this.sprite.rotation += 5;//旋转 sprite 对象。 } private onClickShape(): void { console.log("点击 shape 对象。"); this.shape.rotation += 5;//旋转 shape 对象。 } }
  17180. */
  17181. class Sprite extends laya.display.Node {
  17182. /**
  17183. * <p>鼠标事件与此对象的碰撞检测是否可穿透。碰撞检测发生在鼠标事件的捕获阶段,此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象。</p>
  17184. * <p>穿透表示鼠标事件发生的位置处于本对象绘图区域内时,才算命中,而与对象宽高和值为Rectangle对象的hitArea属性无关。如果sprite.hitArea值是HitArea对象,表示显式声明了此对象的鼠标事件响应区域,而忽略对象的宽高、mouseThrough属性。</p>
  17185. * <p>影响对象鼠标事件响应区域的属性为:width、height、hitArea,优先级顺序为:hitArea(type:HitArea)>hitArea(type:Rectangle)>width/height。</p>
  17186. * @default false 不可穿透,此对象的鼠标响应区域由width、height、hitArea属性决定。</p>
  17187. */
  17188. mouseThrough:boolean;
  17189. /**
  17190. * <p>指定是否自动计算宽高数据。默认值为 false 。</p>
  17191. * <p>Sprite宽高默认为0,并且不会随着绘制内容的变化而变化,如果想根据绘制内容获取宽高,可以设置本属性为true,或者通过getBounds方法获取。设置为true,对性能有一定影响。</p>
  17192. */
  17193. autoSize:boolean;
  17194. /**
  17195. * <p>指定鼠标事件检测是优先检测自身,还是优先检测其子对象。鼠标事件检测发生在鼠标事件的捕获阶段,此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象。</p>
  17196. * <p>如果为false,优先检测子对象,当有子对象被命中时,中断检测,获得命中目标。如果未命中任何子对象,最后再检测此对象;如果为true,则优先检测本对象,如果本对象没有被命中,直接中断检测,表示没有命中目标;如果本对象被命中,则进一步递归检测其子对象,以确认最终的命中目标。</p>
  17197. * <p>合理使用本属性,能减少鼠标事件检测的节点,提高性能。可以设置为true的情况:开发者并不关心此节点的子节点的鼠标事件检测结果,也就是以此节点作为其子节点的鼠标事件检测依据。</p>
  17198. * <p>Stage对象和UI的View组件默认为true。</p>
  17199. * @default false 优先检测此对象的子对象,当递归检测完所有子对象后,仍然没有找到目标对象,最后再检测此对象。
  17200. */
  17201. hitTestPrior:boolean;
  17202. /**
  17203. * @inheritDoc
  17204. * @override
  17205. */
  17206. destroy(destroyChild?:boolean):void;
  17207. constructor();
  17208. /**
  17209. * 根据zOrder进行重新排序。
  17210. */
  17211. updateZOrder():void;
  17212. /**
  17213. * 设置是否开启自定义渲染,只有开启自定义渲染,才能使用customRender函数渲染。
  17214. */
  17215. customRenderEnable:boolean;
  17216. /**
  17217. * <p>指定显示对象是否缓存为静态图像,cacheAs时,子对象发生变化,会自动重新缓存,同时也可以手动调用reCache方法更新缓存。</p>
  17218. * <p>建议把不经常变化的“复杂内容”缓存为静态图像,能极大提高渲染性能。cacheAs有"none","normal"和"bitmap"三个值可选。
  17219. * <li>默认为"none",不做任何缓存。</li>
  17220. * <li>当值为"normal"时,canvas模式下进行画布缓存,webgl模式下进行命令缓存。</li>
  17221. * <li>当值为"bitmap"时,canvas模式下进行依然是画布缓存,webgl模式下使用renderTarget缓存。</li></p>
  17222. * <p>webgl下renderTarget缓存模式缺点:会额外创建renderTarget对象,增加内存开销,缓存面积有最大2048限制,不断重绘时会增加CPU开销。优点:大幅减少drawcall,渲染性能最高。
  17223. * webgl下命令缓存模式缺点:只会减少节点遍历及命令组织,不会减少drawcall数,性能中等。优点:没有额外内存开销,无需renderTarget支持。</p>
  17224. */
  17225. cacheAs:string;
  17226. /**
  17227. * 更新_cnavas相关的状态
  17228. */
  17229. private _checkCanvasEnable:any;
  17230. /**
  17231. * 设置cacheAs为非空时此值才有效,staticCache=true时,子对象变化时不会自动更新缓存,只能通过调用reCache方法手动刷新。
  17232. */
  17233. staticCache:boolean;
  17234. /**
  17235. * 在设置cacheAs的情况下,调用此方法会重新刷新缓存。
  17236. */
  17237. reCache():void;
  17238. getRepaint():number;
  17239. /**
  17240. * 表示显示对象相对于父容器的水平方向坐标值。
  17241. */
  17242. x:number;
  17243. /**
  17244. * 表示显示对象相对于父容器的垂直方向坐标值。
  17245. */
  17246. y:number;
  17247. /**
  17248. * <p>显示对象的宽度,单位为像素,默认为0。</p>
  17249. * <p>此宽度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。</p>
  17250. * <p>可以通过getbounds获取显示对象图像的实际宽度。</p>
  17251. */
  17252. width:number;
  17253. set_width(value:number):void;
  17254. get_width():number;
  17255. /**
  17256. * <p>显示对象的高度,单位为像素,默认为0。</p>
  17257. * <p>此高度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。</p>
  17258. * <p>可以通过getbounds获取显示对象图像的实际高度。</p>
  17259. */
  17260. height:number;
  17261. set_height(value:number):void;
  17262. get_height():number;
  17263. /**
  17264. * <p>对象的显示宽度(以像素为单位)。</p>
  17265. */
  17266. readonly displayWidth:number;
  17267. /**
  17268. * <p>对象的显示高度(以像素为单位)。</p>
  17269. */
  17270. readonly displayHeight:number;
  17271. /**
  17272. * 设置对象bounds大小,如果有设置,则不再通过getBounds计算,合理使用能提高性能。
  17273. * @param bound bounds矩形区域
  17274. */
  17275. setSelfBounds(bound:laya.maths.Rectangle):void;
  17276. /**
  17277. * <p>获取本对象在父容器坐标系的矩形显示区域。</p>
  17278. * <p><b>注意:</b>计算量较大,尽量少用。</p>
  17279. * @return 矩形区域。
  17280. */
  17281. getBounds():laya.maths.Rectangle;
  17282. /**
  17283. * 获取本对象在自己坐标系的矩形显示区域。
  17284. * <p><b>注意:</b>计算量较大,尽量少用。</p>
  17285. * @return 矩形区域。
  17286. */
  17287. getSelfBounds():laya.maths.Rectangle;
  17288. /**
  17289. * 返回此实例中的绘图对象( <code>Graphics</code> )的显示区域,不包括子对象。
  17290. * @param realSize (可选)使用图片的真实大小,默认为false
  17291. * @return 一个 Rectangle 对象,表示获取到的显示区域。
  17292. */
  17293. getGraphicBounds(realSize?:boolean):laya.maths.Rectangle;
  17294. /**
  17295. * @private 获取样式。
  17296. * @return 样式 Style 。
  17297. */
  17298. getStyle():laya.display.css.SpriteStyle;
  17299. /**
  17300. * @private 设置样式。
  17301. * @param value 样式。
  17302. */
  17303. setStyle(value:laya.display.css.SpriteStyle):void;
  17304. /**
  17305. * X轴缩放值,默认值为1。设置为负数,可以实现水平反转效果,比如scaleX=-1。
  17306. */
  17307. scaleX:number;
  17308. /**
  17309. * Y轴缩放值,默认值为1。设置为负数,可以实现垂直反转效果,比如scaleX=-1。
  17310. */
  17311. scaleY:number;
  17312. set_scaleX(value:number):void;
  17313. get_scaleX():number;
  17314. set_scaleY(value:number):void;
  17315. get_scaleY():number;
  17316. /**
  17317. * 旋转角度,默认值为0。以角度为单位。
  17318. */
  17319. rotation:number;
  17320. /**
  17321. * 水平倾斜角度,默认值为0。以角度为单位。
  17322. */
  17323. skewX:number;
  17324. /**
  17325. * 垂直倾斜角度,默认值为0。以角度为单位。
  17326. */
  17327. skewY:number;
  17328. /**
  17329. * @private
  17330. */
  17331. protected _adjustTransform():laya.maths.Matrix;
  17332. /**
  17333. * <p>对象的矩阵信息。通过设置矩阵可以实现节点旋转,缩放,位移效果。</p>
  17334. * <p>矩阵更多信息请参考 <code>Matrix</code></p>
  17335. */
  17336. transform:laya.maths.Matrix;
  17337. get_transform():laya.maths.Matrix;
  17338. set_transform(value:laya.maths.Matrix):void;
  17339. /**
  17340. * X轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。
  17341. */
  17342. pivotX:number;
  17343. /**
  17344. * Y轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。
  17345. */
  17346. pivotY:number;
  17347. /**
  17348. * 透明度,值为0-1,默认值为1,表示不透明。更改alpha值会影响drawcall。
  17349. */
  17350. alpha:number;
  17351. /**
  17352. * 表示是否可见,默认为true。如果设置不可见,节点将不被渲染。
  17353. */
  17354. visible:boolean;
  17355. get_visible():boolean;
  17356. set_visible(value:boolean):void;
  17357. /**
  17358. * 指定要使用的混合模式。目前只支持"lighter"。
  17359. */
  17360. blendMode:string;
  17361. /**
  17362. * 绘图对象。封装了绘制位图和矢量图的接口,Sprite所有的绘图操作都通过Graphics来实现的。
  17363. */
  17364. graphics:laya.display.Graphics;
  17365. /**
  17366. * <p>显示对象的滚动矩形范围,具有裁剪效果(如果只想限制子对象渲染区域,请使用viewport)</p>
  17367. * <p> srollRect和viewport的区别:<br/>
  17368. * 1.srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。<br/>
  17369. * 2.设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。</p>
  17370. */
  17371. scrollRect:laya.maths.Rectangle;
  17372. /**
  17373. * <p>设置坐标位置。相当于分别设置x和y属性。</p>
  17374. * <p>因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pos(...).scale(...);</p>
  17375. * @param x X轴坐标。
  17376. * @param y Y轴坐标。
  17377. * @param speedMode (可选)是否极速模式,正常是调用this.x=value进行赋值,极速模式直接调用内部函数处理,如果未重写x,y属性,建议设置为急速模式性能更高。
  17378. * @return 返回对象本身。
  17379. */
  17380. pos(x:number,y:number,speedMode?:boolean):Sprite;
  17381. /**
  17382. * <p>设置轴心点。相当于分别设置pivotX和pivotY属性。</p>
  17383. * <p>因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pivot(...).pos(50, 100);</p>
  17384. * @param x X轴心点。
  17385. * @param y Y轴心点。
  17386. * @return 返回对象本身。
  17387. */
  17388. pivot(x:number,y:number):Sprite;
  17389. /**
  17390. * <p>设置宽高。相当于分别设置width和height属性。</p>
  17391. * <p>因为返回值为Sprite对象本身,所以可以使用如下语法:spr.size(...).pos(50, 100);</p>
  17392. * @param width 宽度值。
  17393. * @param hegiht 高度值。
  17394. * @return 返回对象本身。
  17395. */
  17396. size(width:number,height:number):Sprite;
  17397. /**
  17398. * <p>设置缩放。相当于分别设置scaleX和scaleY属性。</p>
  17399. * <p>因为返回值为Sprite对象本身,所以可以使用如下语法:spr.scale(...).pos(50, 100);</p>
  17400. * @param scaleX X轴缩放比例。
  17401. * @param scaleY Y轴缩放比例。
  17402. * @param speedMode (可选)是否极速模式,正常是调用this.scaleX=value进行赋值,极速模式直接调用内部函数处理,如果未重写scaleX,scaleY属性,建议设置为急速模式性能更高。
  17403. * @return 返回对象本身。
  17404. */
  17405. scale(scaleX:number,scaleY:number,speedMode?:boolean):Sprite;
  17406. /**
  17407. * <p>设置倾斜角度。相当于分别设置skewX和skewY属性。</p>
  17408. * <p>因为返回值为Sprite对象本身,所以可以使用如下语法:spr.skew(...).pos(50, 100);</p>
  17409. * @param skewX 水平倾斜角度。
  17410. * @param skewY 垂直倾斜角度。
  17411. * @return 返回对象本身
  17412. */
  17413. skew(skewX:number,skewY:number):Sprite;
  17414. /**
  17415. * 更新、呈现显示对象。由系统调用。
  17416. * @param context 渲染的上下文引用。
  17417. * @param x X轴坐标。
  17418. * @param y Y轴坐标。
  17419. */
  17420. render(ctx:laya.resource.Context,x:number,y:number):void;
  17421. /**
  17422. * <p>绘制 当前<code>Sprite</code> 到 <code>Canvas</code> 上,并返回一个HtmlCanvas。</p>
  17423. * <p>绘制的结果可以当作图片源,再次绘制到其他Sprite里面,示例:</p>
  17424. *
  17425. * var htmlCanvas:HTMLCanvas = sprite.drawToCanvas(100, 100, 0, 0);//把精灵绘制到canvas上面
  17426. * var sp:Sprite = new Sprite();//创建精灵
  17427. * sp.graphics.drawTexture(htmlCanvas.getTexture());//把截图绘制到精灵上
  17428. * Laya.stage.addChild(sp);//把精灵显示到舞台
  17429. *
  17430. * <p>也可以获取原始图片数据,分享到网上,从而实现截图效果,示例:</p>
  17431. *
  17432. * var htmlCanvas:HTMLCanvas = sprite.drawToCanvas(100, 100, 0, 0);//把精灵绘制到canvas上面
  17433. * htmlCanvas.toBase64("image/png",0.9);//打印图片base64信息,可以发给服务器或者保存为图片
  17434. * @param canvasWidth 画布宽度。
  17435. * @param canvasHeight 画布高度。
  17436. * @param x 绘制的 X 轴偏移量。
  17437. * @param y 绘制的 Y 轴偏移量。
  17438. * @return HTMLCanvas 对象。
  17439. */
  17440. drawToCanvas(canvasWidth:number,canvasHeight:number,offsetX:number,offsetY:number):laya.resource.HTMLCanvas;
  17441. /**
  17442. * 绘制到一个Texture对象
  17443. * @param canvasWidth
  17444. * @param canvasHeight
  17445. * @param offsetX
  17446. * @param offsetY
  17447. */
  17448. drawToTexture(canvasWidth:number,canvasHeight:number,offsetX:number,offsetY:number):laya.resource.Texture;
  17449. /**
  17450. * 把当前对象渲染到指定的贴图上。贴图由外部指定,避免每次都创建。
  17451. * @param offx
  17452. * @param offy
  17453. * @param tex 输出渲染结果
  17454. */
  17455. drawToTexture3D(offx:number,offy:number,tex:laya.resource.Texture2D):void;
  17456. /**
  17457. * @private 绘制到画布。
  17458. */
  17459. static drawToCanvas(sprite:Sprite,_renderType:number,canvasWidth:number,canvasHeight:number,offsetX:number,offsetY:number):laya.resource.HTMLCanvas;
  17460. /**
  17461. * @private
  17462. */
  17463. static drawToTexture(sprite:Sprite,_renderType:number,canvasWidth:number,canvasHeight:number,offsetX:number,offsetY:number):laya.resource.Texture;
  17464. /**
  17465. * <p>自定义更新、呈现显示对象。一般用来扩展渲染模式,请合理使用,可能会导致在加速器上无法渲染。</p>
  17466. * <p><b>注意</b>不要在此函数内增加或删除树节点,否则会对树节点遍历造成影响。</p>
  17467. * @param context 渲染的上下文引用。
  17468. * @param x X轴坐标。
  17469. * @param y Y轴坐标。
  17470. */
  17471. customRender(context:laya.resource.Context,x:number,y:number):void;
  17472. /**
  17473. * 滤镜集合。可以设置多个滤镜组合。
  17474. */
  17475. filters:any[];
  17476. /**
  17477. * 把本地坐标转换为相对stage的全局坐标。
  17478. * @param point 本地坐标点。
  17479. * @param createNewPoint (可选)是否创建一个新的Point对象作为返回值,默认为false,使用输入的point对象返回,减少对象创建开销。
  17480. * @param globalNode global节点,默认为Laya.stage
  17481. * @return 转换后的坐标的点。
  17482. */
  17483. localToGlobal(point:laya.maths.Point,createNewPoint?:boolean,globalNode?:Sprite):laya.maths.Point;
  17484. /**
  17485. * 把stage的全局坐标转换为本地坐标。
  17486. * @param point 全局坐标点。
  17487. * @param createNewPoint (可选)是否创建一个新的Point对象作为返回值,默认为false,使用输入的point对象返回,减少对象创建开销。
  17488. * @param globalNode global节点,默认为Laya.stage
  17489. * @return 转换后的坐标的点。
  17490. */
  17491. globalToLocal(point:laya.maths.Point,createNewPoint?:boolean,globalNode?:Sprite):laya.maths.Point;
  17492. /**
  17493. * 将本地坐标系坐标转转换到父容器坐标系。
  17494. * @param point 本地坐标点。
  17495. * @return 转换后的点。
  17496. */
  17497. toParentPoint(point:laya.maths.Point):laya.maths.Point;
  17498. /**
  17499. * 将父容器坐标系坐标转换到本地坐标系。
  17500. * @param point 父容器坐标点。
  17501. * @return 转换后的点。
  17502. */
  17503. fromParentPoint(point:laya.maths.Point):laya.maths.Point;
  17504. /**
  17505. * 将Stage坐标系坐标转换到本地坐标系。
  17506. * @param point 父容器坐标点。
  17507. * @return 转换后的点。
  17508. */
  17509. fromStagePoint(point:laya.maths.Point):laya.maths.Point;
  17510. /**
  17511. * <p>增加事件侦听器,以使侦听器能够接收事件通知。</p>
  17512. * <p>如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。</p>
  17513. * @param type 事件的类型。
  17514. * @param caller 事件侦听函数的执行域。
  17515. * @param listener 事件侦听函数。
  17516. * @param args (可选)事件侦听函数的回调参数。
  17517. * @return 此 EventDispatcher 对象。
  17518. * @override
  17519. */
  17520. on(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  17521. /**
  17522. * <p>增加事件侦听器,以使侦听器能够接收事件通知,此侦听事件响应一次后则自动移除侦听。</p>
  17523. * <p>如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。</p>
  17524. * @param type 事件的类型。
  17525. * @param caller 事件侦听函数的执行域。
  17526. * @param listener 事件侦听函数。
  17527. * @param args (可选)事件侦听函数的回调参数。
  17528. * @return 此 EventDispatcher 对象。
  17529. * @override
  17530. */
  17531. once(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  17532. /**
  17533. * @private
  17534. */
  17535. protected _onDisplay(v?:boolean):void;
  17536. /**
  17537. * @private
  17538. * @override
  17539. */
  17540. protected _setParent(value:laya.display.Node):void;
  17541. /**
  17542. * <p>加载并显示一个图片。相当于加载图片后,设置texture属性</p>
  17543. * <p>注意:2.0改动:多次调用,只会显示一个图片(1.0会显示多个图片),x,y,width,height参数取消。</p>
  17544. * @param url 图片地址。
  17545. * @param complete (可选)加载完成回调。
  17546. * @return 返回精灵对象本身。
  17547. */
  17548. loadImage(url:string,complete?:laya.utils.Handler):Sprite;
  17549. /**
  17550. * 根据图片地址创建一个新的 <code>Sprite</code> 对象用于加载并显示此图片。
  17551. * @param url 图片地址。
  17552. * @return 返回新的 <code>Sprite</code> 对象。
  17553. */
  17554. static fromImage(url:string):Sprite;
  17555. /**
  17556. * cacheAs后,设置自己和父对象缓存失效。
  17557. */
  17558. repaint(type?:number):void;
  17559. /**
  17560. * @private
  17561. * @override
  17562. */
  17563. protected _childChanged(child?:laya.display.Node):void;
  17564. /**
  17565. * cacheAs时,设置所有父对象缓存失效。
  17566. */
  17567. parentRepaint(type?:number):void;
  17568. /**
  17569. * 对舞台 <code>stage</code> 的引用。
  17570. */
  17571. readonly stage:laya.display.Stage;
  17572. /**
  17573. * <p>可以设置一个Rectangle区域作为点击区域,或者设置一个<code>HitArea</code>实例作为点击区域,HitArea内可以设置可点击和不可点击区域。</p>
  17574. * <p>如果不设置hitArea,则根据宽高形成的区域进行碰撞。</p>
  17575. */
  17576. hitArea:any;
  17577. /**
  17578. * <p>遮罩,可以设置一个对象(支持位图和矢量图),根据对象形状进行遮罩显示。</p>
  17579. * <p>【注意】遮罩对象坐标系是相对遮罩对象本身的,和Flash机制不同</p>
  17580. */
  17581. mask:Sprite;
  17582. /**
  17583. * 是否接受鼠标事件。
  17584. * 默认为false,如果监听鼠标事件,则会自动设置本对象及父节点的属性 mouseEnable 的值都为 true(如果父节点手动设置为false,则不会更改)。
  17585. */
  17586. mouseEnabled:boolean;
  17587. /**
  17588. * 开始拖动此对象。
  17589. * @param area (可选)拖动区域,此区域为当前对象注册点活动区域(不包括对象宽高),可选。
  17590. * @param hasInertia (可选)鼠标松开后,是否还惯性滑动,默认为false,可选。
  17591. * @param elasticDistance (可选)橡皮筋效果的距离值,0为无橡皮筋效果,默认为0,可选。
  17592. * @param elasticBackTime (可选)橡皮筋回弹时间,单位为毫秒,默认为300毫秒,可选。
  17593. * @param data (可选)拖动事件携带的数据,可选。
  17594. * @param disableMouseEvent (可选)禁用其他对象的鼠标检测,默认为false,设置为true能提高性能。
  17595. * @param ratio (可选)惯性阻尼系数,影响惯性力度和时长。
  17596. */
  17597. startDrag(area?:laya.maths.Rectangle,hasInertia?:boolean,elasticDistance?:number,elasticBackTime?:number,data?:any,disableMouseEvent?:boolean,ratio?:number):void;
  17598. /**
  17599. * 停止拖动此对象。
  17600. */
  17601. stopDrag():void;
  17602. /**
  17603. * 检测某个点是否在此对象内。
  17604. * @param x 全局x坐标。
  17605. * @param y 全局y坐标。
  17606. * @return 表示是否在对象内。
  17607. */
  17608. hitTestPoint(x:number,y:number):boolean;
  17609. /**
  17610. * 获得相对于本对象上的鼠标坐标信息。
  17611. */
  17612. getMousePoint():laya.maths.Point;
  17613. /**
  17614. * 获得相对于stage的全局X轴缩放值(会叠加父亲节点的缩放值)。
  17615. */
  17616. readonly globalScaleX:number;
  17617. /**
  17618. * 获得相对于stage的全局旋转值(会叠加父亲节点的旋转值)。
  17619. */
  17620. readonly globalRotation:number;
  17621. /**
  17622. * 获得相对于stage的全局Y轴缩放值(会叠加父亲节点的缩放值)。
  17623. */
  17624. readonly globalScaleY:number;
  17625. /**
  17626. * 返回鼠标在此对象坐标系上的 X 轴坐标信息。
  17627. */
  17628. readonly mouseX:number;
  17629. /**
  17630. * 返回鼠标在此对象坐标系上的 Y 轴坐标信息。
  17631. */
  17632. readonly mouseY:number;
  17633. /**
  17634. * z排序,更改此值,则会按照值的大小对同一容器的所有对象重新排序。值越大,越靠上。默认为0,则根据添加顺序排序。
  17635. */
  17636. zOrder:number;
  17637. /**
  17638. * 设置一个Texture实例,并显示此图片(如果之前有其他绘制,则会被清除掉)。
  17639. * 等同于graphics.clear();graphics.drawImage(),但性能更高
  17640. * 还可以赋值一个图片地址,则会自动加载图片,然后显示
  17641. */
  17642. texture:laya.resource.Texture;
  17643. /**
  17644. * <p>视口大小,视口外的子对象,将不被渲染(如果想实现裁剪效果,请使用srollRect),合理使用能提高渲染性能。比如由一个个小图片拼成的地图块,viewport外面的小图片将不渲染</p>
  17645. * <p>srollRect和viewport的区别:<br/>
  17646. * 1. srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。<br/>
  17647. * 2. 设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。</p>
  17648. * @default null
  17649. */
  17650. viewport:laya.maths.Rectangle;
  17651. /**
  17652. * @private
  17653. */
  17654. captureMouseEvent(exclusive:boolean):void;
  17655. /**
  17656. * @private
  17657. */
  17658. releaseMouseEvent():void;
  17659. drawCallOptimize:boolean;
  17660. }
  17661. }
  17662. declare module laya.display {
  17663. /**
  17664. * @private
  17665. */
  17666. class SpriteConst {
  17667. /**
  17668. * @private
  17669. */
  17670. static ALPHA:number;
  17671. /**
  17672. * @private
  17673. */
  17674. static TRANSFORM:number;
  17675. /**
  17676. * @private
  17677. */
  17678. static BLEND:number;
  17679. /**
  17680. * @private
  17681. */
  17682. static CANVAS:number;
  17683. /**
  17684. * @private
  17685. */
  17686. static FILTERS:number;
  17687. /**
  17688. * @private
  17689. */
  17690. static MASK:number;
  17691. /**
  17692. * @private
  17693. */
  17694. static CLIP:number;
  17695. /**
  17696. * @private
  17697. */
  17698. static STYLE:number;
  17699. /**
  17700. * @private
  17701. */
  17702. static TEXTURE:number;
  17703. /**
  17704. * @private
  17705. */
  17706. static GRAPHICS:number;
  17707. /**
  17708. * @private
  17709. */
  17710. static LAYAGL3D:number;
  17711. /**
  17712. * @private
  17713. */
  17714. static CUSTOM:number;
  17715. /**
  17716. * @private
  17717. */
  17718. static ONECHILD:number;
  17719. /**
  17720. * @private
  17721. */
  17722. static CHILDS:number;
  17723. /**
  17724. * @private
  17725. */
  17726. static REPAINT_NONE:number;
  17727. /**
  17728. * @private
  17729. */
  17730. static REPAINT_NODE:number;
  17731. /**
  17732. * @private
  17733. */
  17734. static REPAINT_CACHE:number;
  17735. /**
  17736. * @private
  17737. */
  17738. static REPAINT_ALL:number;
  17739. }
  17740. }
  17741. declare module laya.display {
  17742. /**
  17743. * stage大小经过重新调整时进行调度。
  17744. * @eventType Event.RESIZE
  17745. */
  17746. /**
  17747. * 舞台获得焦点时调度。比如浏览器或者当前标签处于后台,重新切换回来时进行调度。
  17748. * @eventType Event.FOCUS
  17749. */
  17750. /**
  17751. * 舞台失去焦点时调度。比如浏览器或者当前标签被切换到后台后调度。
  17752. * @eventType Event.BLUR
  17753. */
  17754. /**
  17755. * 舞台焦点变化时调度,使用Laya.stage.isFocused可以获取当前舞台是否获得焦点。
  17756. * @eventType Event.FOCUS_CHANGE
  17757. */
  17758. /**
  17759. * 舞台可见性发生变化时调度(比如浏览器或者当前标签被切换到后台后调度),使用Laya.stage.isVisibility可以获取当前是否处于显示状态。
  17760. * @eventType Event.VISIBILITY_CHANGE
  17761. */
  17762. /**
  17763. * 浏览器全屏更改时调度,比如进入全屏或者退出全屏。
  17764. * @eventType Event.FULL_SCREEN_CHANGE
  17765. */
  17766. /**
  17767. * <p> <code>Stage</code> 是舞台类,显示列表的根节点,所有显示对象都在舞台上显示。通过 Laya.stage 单例访问。</p>
  17768. * <p>Stage提供几种适配模式,不同的适配模式会产生不同的画布大小,画布越大,渲染压力越大,所以要选择合适的适配方案。</p>
  17769. * <p>Stage提供不同的帧率模式,帧率越高,渲染压力越大,越费电,合理使用帧率甚至动态更改帧率有利于改进手机耗电。</p>
  17770. */
  17771. class Stage extends laya.display.Sprite {
  17772. /**
  17773. * 应用保持设计宽高不变,不缩放不变形,stage的宽高等于设计宽高。
  17774. */
  17775. static SCALE_NOSCALE:string;
  17776. /**
  17777. * 应用根据屏幕大小铺满全屏,非等比缩放会变形,stage的宽高等于设计宽高。
  17778. */
  17779. static SCALE_EXACTFIT:string;
  17780. /**
  17781. * 应用显示全部内容,按照最小比率缩放,等比缩放不变形,一边可能会留空白,stage的宽高等于设计宽高。
  17782. */
  17783. static SCALE_SHOWALL:string;
  17784. /**
  17785. * 应用按照最大比率缩放显示,宽或高方向会显示一部分,等比缩放不变形,stage的宽高等于设计宽高。
  17786. */
  17787. static SCALE_NOBORDER:string;
  17788. /**
  17789. * 应用保持设计宽高不变,不缩放不变形,stage的宽高等于屏幕宽高。
  17790. */
  17791. static SCALE_FULL:string;
  17792. /**
  17793. * 应用保持设计宽度不变,高度根据屏幕比缩放,stage的宽度等于设计高度,高度根据屏幕比率大小而变化
  17794. */
  17795. static SCALE_FIXED_WIDTH:string;
  17796. /**
  17797. * 应用保持设计高度不变,宽度根据屏幕比缩放,stage的高度等于设计宽度,宽度根据屏幕比率大小而变化
  17798. */
  17799. static SCALE_FIXED_HEIGHT:string;
  17800. /**
  17801. * 应用保持设计比例不变,全屏显示全部内容(类似showall,但showall非全屏,会有黑边),根据屏幕长宽比,自动选择使用SCALE_FIXED_WIDTH或SCALE_FIXED_HEIGHT
  17802. */
  17803. static SCALE_FIXED_AUTO:string;
  17804. /**
  17805. * 画布水平居左对齐。
  17806. */
  17807. static ALIGN_LEFT:string;
  17808. /**
  17809. * 画布水平居右对齐。
  17810. */
  17811. static ALIGN_RIGHT:string;
  17812. /**
  17813. * 画布水平居中对齐。
  17814. */
  17815. static ALIGN_CENTER:string;
  17816. /**
  17817. * 画布垂直居上对齐。
  17818. */
  17819. static ALIGN_TOP:string;
  17820. /**
  17821. * 画布垂直居中对齐。
  17822. */
  17823. static ALIGN_MIDDLE:string;
  17824. /**
  17825. * 画布垂直居下对齐。
  17826. */
  17827. static ALIGN_BOTTOM:string;
  17828. /**
  17829. * 不更改屏幕。
  17830. */
  17831. static SCREEN_NONE:string;
  17832. /**
  17833. * 自动横屏。
  17834. */
  17835. static SCREEN_HORIZONTAL:string;
  17836. /**
  17837. * 自动竖屏。
  17838. */
  17839. static SCREEN_VERTICAL:string;
  17840. /**
  17841. * 全速模式,以60的帧率运行。
  17842. */
  17843. static FRAME_FAST:string;
  17844. /**
  17845. * 慢速模式,以30的帧率运行。
  17846. */
  17847. static FRAME_SLOW:string;
  17848. /**
  17849. * 自动模式,以30的帧率运行,但鼠标活动后会自动加速到60,鼠标不动2秒后降低为30帧,以节省消耗。
  17850. */
  17851. static FRAME_MOUSE:string;
  17852. /**
  17853. * 休眠模式,以1的帧率运行
  17854. */
  17855. static FRAME_SLEEP:string;
  17856. /**
  17857. * 当前焦点对象,此对象会影响当前键盘事件的派发主体。
  17858. */
  17859. focus:laya.display.Node;
  17860. /**
  17861. * @private 相对浏览器左上角的偏移,弃用,请使用_canvasTransform。
  17862. */
  17863. offset:laya.maths.Point;
  17864. /**
  17865. * 帧率类型,支持三种模式:fast-60帧(默认),slow-30帧,mouse-30帧(鼠标活动后会自动加速到60,鼠标不动2秒后降低为30帧,以节省消耗),sleep-1帧。
  17866. */
  17867. private _frameRate:any;
  17868. /**
  17869. * 设计宽度(初始化时设置的宽度Laya.init(width,height))
  17870. */
  17871. designWidth:number;
  17872. /**
  17873. * 设计高度(初始化时设置的高度Laya.init(width,height))
  17874. */
  17875. designHeight:number;
  17876. /**
  17877. * 画布是否发生翻转。
  17878. */
  17879. canvasRotation:boolean;
  17880. /**
  17881. * 画布的旋转角度。
  17882. */
  17883. canvasDegree:number;
  17884. /**
  17885. * <p>设置是否渲染,设置为false,可以停止渲染,画面会停留到最后一次渲染上,减少cpu消耗,此设置不影响时钟。</p>
  17886. * <p>比如非激活状态,可以设置renderingEnabled=false以节省消耗。</p>
  17887. */
  17888. renderingEnabled:boolean;
  17889. /**
  17890. * 是否启用屏幕适配,可以适配后,在某个时候关闭屏幕适配,防止某些操作导致的屏幕意外改变
  17891. */
  17892. screenAdaptationEnabled:boolean;
  17893. /**
  17894. * @private
  17895. */
  17896. private _screenMode:any;
  17897. /**
  17898. * @private
  17899. */
  17900. private _scaleMode:any;
  17901. /**
  17902. * @private
  17903. */
  17904. private _alignV:any;
  17905. /**
  17906. * @private
  17907. */
  17908. private _alignH:any;
  17909. /**
  17910. * @private
  17911. */
  17912. private _bgColor:any;
  17913. /**
  17914. * @private
  17915. */
  17916. private _mouseMoveTime:any;
  17917. /**
  17918. * @private
  17919. */
  17920. private _renderCount:any;
  17921. /**
  17922. * @private
  17923. */
  17924. private _safariOffsetY:any;
  17925. /**
  17926. * @private
  17927. */
  17928. private _frameStartTime:any;
  17929. /**
  17930. * @private
  17931. */
  17932. private _previousOrientation:any;
  17933. /**
  17934. * @private
  17935. */
  17936. private _isFocused:any;
  17937. /**
  17938. * @private
  17939. */
  17940. private _isVisibility:any;
  17941. /**
  17942. * @private
  17943. */
  17944. private _globalRepaintSet:any;
  17945. /**
  17946. * @private
  17947. */
  17948. private _globalRepaintGet:any;
  17949. /**
  17950. * @private
  17951. */
  17952. static _dbgSprite:laya.display.Sprite;
  17953. /**
  17954. * 使用物理分辨率作为canvas大小,会改进渲染效果,但是会降低性能
  17955. */
  17956. useRetinalCanvas:boolean;
  17957. /**
  17958. * 场景类,引擎中只有一个stage实例,此实例可以通过Laya.stage访问。
  17959. */
  17960. constructor();
  17961. /**
  17962. * @private 在移动端输入时,输入法弹出期间不进行画布尺寸重置。
  17963. */
  17964. private _isInputting:any;
  17965. /**
  17966. * @inheritDoc
  17967. * @override
  17968. */
  17969. width:number;
  17970. /**
  17971. * @inheritDoc
  17972. * @override
  17973. */
  17974. /**
  17975. * @override
  17976. */
  17977. height:number;
  17978. /**
  17979. * @override
  17980. */
  17981. /**
  17982. * @inheritDoc
  17983. * @override
  17984. */
  17985. transform:laya.maths.Matrix;
  17986. /**
  17987. * 舞台是否获得焦点。
  17988. */
  17989. readonly isFocused:boolean;
  17990. /**
  17991. * 舞台是否处于可见状态(是否进入后台)。
  17992. */
  17993. readonly isVisibility:boolean;
  17994. /**
  17995. * @private
  17996. */
  17997. private _changeCanvasSize:any;
  17998. /**
  17999. * @private
  18000. */
  18001. protected _resetCanvas():void;
  18002. /**
  18003. * 设置屏幕大小,场景会根据屏幕大小进行适配。可以动态调用此方法,来更改游戏显示的大小。
  18004. * @param screenWidth 屏幕宽度。
  18005. * @param screenHeight 屏幕高度。
  18006. */
  18007. setScreenSize(screenWidth:number,screenHeight:number):void;
  18008. /**
  18009. * @private
  18010. */
  18011. private _formatData:any;
  18012. /**
  18013. * <p>缩放模式。默认值为 "noscale"。</p>
  18014. * <p><ul>取值范围:
  18015. * <li>"noscale" :不缩放;</li>
  18016. * <li>"exactfit" :全屏不等比缩放;</li>
  18017. * <li>"showall" :最小比例缩放;</li>
  18018. * <li>"noborder" :最大比例缩放;</li>
  18019. * <li>"full" :不缩放,stage的宽高等于屏幕宽高;</li>
  18020. * <li>"fixedwidth" :宽度不变,高度根据屏幕比缩放;</li>
  18021. * <li>"fixedheight" :高度不变,宽度根据屏幕比缩放;</li>
  18022. * <li>"fixedauto" :根据宽高比,自动选择使用fixedwidth或fixedheight;</li>
  18023. * </ul></p>
  18024. */
  18025. scaleMode:string;
  18026. /**
  18027. * <p>水平对齐方式。默认值为"left"。</p>
  18028. * <p><ul>取值范围:
  18029. * <li>"left" :居左对齐;</li>
  18030. * <li>"center" :居中对齐;</li>
  18031. * <li>"right" :居右对齐;</li>
  18032. * </ul></p>
  18033. */
  18034. alignH:string;
  18035. /**
  18036. * <p>垂直对齐方式。默认值为"top"。</p>
  18037. * <p><ul>取值范围:
  18038. * <li>"top" :居顶部对齐;</li>
  18039. * <li>"middle" :居中对齐;</li>
  18040. * <li>"bottom" :居底部对齐;</li>
  18041. * </ul></p>
  18042. */
  18043. alignV:string;
  18044. /**
  18045. * 舞台的背景颜色,默认为黑色,null为透明。
  18046. */
  18047. bgColor:string;
  18048. /**
  18049. * 鼠标在 Stage 上的 X 轴坐标。@override
  18050. */
  18051. readonly mouseX:number;
  18052. /**
  18053. * 鼠标在 Stage 上的 Y 轴坐标。@override
  18054. */
  18055. readonly mouseY:number;
  18056. /**
  18057. * @inheritDoc
  18058. * @override
  18059. */
  18060. getMousePoint():laya.maths.Point;
  18061. /**
  18062. * 当前视窗由缩放模式导致的 X 轴缩放系数。
  18063. */
  18064. readonly clientScaleX:number;
  18065. /**
  18066. * 当前视窗由缩放模式导致的 Y 轴缩放系数。
  18067. */
  18068. readonly clientScaleY:number;
  18069. /**
  18070. * <p>场景布局类型。</p>
  18071. * <p><ul>取值范围:
  18072. * <li>"none" :不更改屏幕</li>
  18073. * <li>"horizontal" :自动横屏</li>
  18074. * <li>"vertical" :自动竖屏</li>
  18075. * </ul></p>
  18076. */
  18077. screenMode:string;
  18078. /**
  18079. * @inheritDoc
  18080. * @override
  18081. */
  18082. repaint(type?:number):void;
  18083. /**
  18084. * @inheritDoc
  18085. * @override
  18086. */
  18087. parentRepaint(type?:number):void;
  18088. /**
  18089. * @private
  18090. */
  18091. getFrameTm():number;
  18092. /**
  18093. * @private
  18094. */
  18095. private _onmouseMove:any;
  18096. /**
  18097. * <p>获得距当前帧开始后,过了多少时间,单位为毫秒。</p>
  18098. * <p>可以用来判断函数内时间消耗,通过合理控制每帧函数处理消耗时长,避免一帧做事情太多,对复杂计算分帧处理,能有效降低帧率波动。</p>
  18099. */
  18100. getTimeFromFrameStart():number;
  18101. /**
  18102. * @inheritDoc
  18103. * @override
  18104. */
  18105. visible:boolean;
  18106. /**
  18107. * @private
  18108. */
  18109. static clear:Function;
  18110. /**
  18111. * @inheritDoc
  18112. * @override
  18113. */
  18114. render(context:laya.resource.Context,x:number,y:number):void;
  18115. renderToNative(context:laya.resource.Context,x:number,y:number):void;
  18116. private _updateTimers:any;
  18117. /**
  18118. * <p>是否开启全屏,用户点击后进入全屏。</p>
  18119. * <p>兼容性提示:部分浏览器不允许点击进入全屏,比如Iphone等。</p>
  18120. */
  18121. fullScreenEnabled:boolean;
  18122. frameRate:string;
  18123. /**
  18124. * @private
  18125. */
  18126. private _requestFullscreen:any;
  18127. /**
  18128. * @private
  18129. */
  18130. private _fullScreenChanged:any;
  18131. /**
  18132. * 退出全屏模式
  18133. */
  18134. exitFullscreen():void;
  18135. /**
  18136. * @private
  18137. */
  18138. isGlobalRepaint():boolean;
  18139. /**
  18140. * @private
  18141. */
  18142. setGlobalRepaint():void;
  18143. /**
  18144. * @private
  18145. */
  18146. add3DUI(uibase:laya.display.Sprite):void;
  18147. /**
  18148. * @private
  18149. */
  18150. remove3DUI(uibase:laya.display.Sprite):boolean;
  18151. }
  18152. }
  18153. declare module laya.display {
  18154. /**
  18155. * 文本内容发生改变后调度。
  18156. * @eventType Event.CHANGE
  18157. */
  18158. /**
  18159. * <p> <code>Text</code> 类用于创建显示对象以显示文本。</p>
  18160. * <p>
  18161. * 注意:如果运行时系统找不到设定的字体,则用系统默认的字体渲染文字,从而导致显示异常。(通常电脑上显示正常,在一些移动端因缺少设置的字体而显示异常)。
  18162. * </p>
  18163. * @example package { import laya.display.Text; public class Text_Example { public function Text_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } private function onInit():void { var text:Text = new Text();//创建一个 Text 类的实例对象 text 。 text.text = "这个是一个 Text 文本示例。"; text.color = "#008fff";//设置 text 的文本颜色。 text.font = "Arial";//设置 text 的文本字体。 text.bold = true;//设置 text 的文本显示为粗体。 text.fontSize = 30;//设置 text 的字体大小。 text.wordWrap = true;//设置 text 的文本自动换行。 text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。 text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。 text.width = 300;//设置 text 的宽度。 text.height = 200;//设置 text 的高度。 text.italic = true;//设置 text 的文本显示为斜体。 text.borderColor = "#fff000";//设置 text 的文本边框颜色。 Laya.stage.addChild(text);//将 text 添加到显示列表。 } } }
  18164. * @example Text_Example(); function Text_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } function onInit() { var text = new laya.display.Text();//创建一个 Text 类的实例对象 text 。 text.text = "这个是一个 Text 文本示例。"; text.color = "#008fff";//设置 text 的文本颜色。 text.font = "Arial";//设置 text 的文本字体。 text.bold = true;//设置 text 的文本显示为粗体。 text.fontSize = 30;//设置 text 的字体大小。 text.wordWrap = true;//设置 text 的文本自动换行。 text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。 text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。 text.width = 300;//设置 text 的宽度。 text.height = 200;//设置 text 的高度。 text.italic = true;//设置 text 的文本显示为斜体。 text.borderColor = "#fff000";//设置 text 的文本边框颜色。 Laya.stage.addChild(text);//将 text 添加到显示列表。 }
  18165. * @example class Text_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.onInit(); } private onInit(): void { var text: laya.display.Text = new laya.display.Text();//创建一个 Text 类的实例对象 text 。 text.text = "这个是一个 Text 文本示例。"; text.color = "#008fff";//设置 text 的文本颜色。 text.font = "Arial";//设置 text 的文本字体。 text.bold = true;//设置 text 的文本显示为粗体。 text.fontSize = 30;//设置 text 的字体大小。 text.wordWrap = true;//设置 text 的文本自动换行。 text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。 text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。 text.width = 300;//设置 text 的宽度。 text.height = 200;//设置 text 的高度。 text.italic = true;//设置 text 的文本显示为斜体。 text.borderColor = "#fff000";//设置 text 的文本边框颜色。 Laya.stage.addChild(text);//将 text 添加到显示列表。 } }
  18166. */
  18167. class Text extends laya.display.Sprite {
  18168. /**
  18169. * visible不进行任何裁切。
  18170. */
  18171. static VISIBLE:string;
  18172. /**
  18173. * scroll 不显示文本域外的字符像素,并且支持 scroll 接口。
  18174. */
  18175. static SCROLL:string;
  18176. /**
  18177. * hidden 不显示超出文本域的字符。
  18178. */
  18179. static HIDDEN:string;
  18180. /**
  18181. * 默认文本大小,默认为12
  18182. */
  18183. static defaultFontSize:number;
  18184. /**
  18185. * 默认文本字体,默认为Arial
  18186. */
  18187. static defaultFont:string;
  18188. /**
  18189. * @private
  18190. */
  18191. static defaultFontStr():string;
  18192. /**
  18193. * 语言包,是一个包含key:value的集合,用key索引,替换为目标value语言
  18194. */
  18195. static langPacks:any;
  18196. /**
  18197. * WebGL下,文字会被拆分为单个字符进行渲染,一些语系不能拆开显示,比如阿拉伯文,这时可以设置isComplexText=true,禁用文字拆分。
  18198. */
  18199. static isComplexText:boolean;
  18200. /**
  18201. * 在IOS下,一些字体会找不到,引擎提供了字体映射功能,比如默认会把 "黑体" 映射为 "黑体-简",更多映射,可以自己添加
  18202. */
  18203. static fontFamilyMap:any;
  18204. /**
  18205. * @private 位图字体字典。
  18206. */
  18207. private static _bitmapFonts:any;
  18208. static CharacterCache:boolean;
  18209. /**
  18210. * 是否是从右向左的显示顺序
  18211. */
  18212. static RightToLeft:boolean;
  18213. /**
  18214. * @private
  18215. */
  18216. private _clipPoint:any;
  18217. /**
  18218. * @private 表示文本内容字符串。
  18219. */
  18220. protected _text:string;
  18221. /**
  18222. * @private 表示文本内容是否发生改变。
  18223. */
  18224. protected _isChanged:boolean;
  18225. /**
  18226. * @private 表示文本的宽度,以像素为单位。
  18227. */
  18228. protected _textWidth:number;
  18229. /**
  18230. * @private 表示文本的高度,以像素为单位。
  18231. */
  18232. protected _textHeight:number;
  18233. /**
  18234. * @private 存储文字行数信息。
  18235. */
  18236. protected _lines:any[]|null;
  18237. /**
  18238. * @private 保存每行宽度
  18239. */
  18240. protected _lineWidths:number[]|null;
  18241. /**
  18242. * @private 文本的内容位置 X 轴信息。
  18243. */
  18244. protected _startX:number;
  18245. /**
  18246. * @private 文本的内容位置X轴信息。
  18247. */
  18248. protected _startY:number;
  18249. /**
  18250. * @private
  18251. */
  18252. protected _words:laya.utils.WordText[]|null;
  18253. /**
  18254. * @private
  18255. */
  18256. protected _charSize:any;
  18257. /**
  18258. * @private
  18259. */
  18260. protected _valign:string;
  18261. /**
  18262. * @private
  18263. */
  18264. private _singleCharRender:any;
  18265. /**
  18266. * <p>overflow 指定文本超出文本域后的行为。其值为"hidden"、"visible"和"scroll"之一。</p>
  18267. * <p>性能从高到低依次为:hidden > visible > scroll。</p>
  18268. */
  18269. overflow:string;
  18270. /**
  18271. * 创建一个新的 <code>Text</code> 实例。
  18272. */
  18273. constructor();
  18274. /**
  18275. * @private 获取样式。
  18276. * @return 样式 Style 。
  18277. * @override
  18278. */
  18279. getStyle():laya.display.css.SpriteStyle;
  18280. protected _getTextStyle():laya.display.css.TextStyle;
  18281. /**
  18282. * 注册位图字体。
  18283. * @param name 位图字体的名称。
  18284. * @param bitmapFont 位图字体文件。
  18285. */
  18286. static registerBitmapFont(name:string,bitmapFont:laya.display.BitmapFont):void;
  18287. /**
  18288. * 移除注册的位图字体文件。
  18289. * @param name 位图字体的名称。
  18290. * @param destroy 是否销毁指定的字体文件。
  18291. */
  18292. static unregisterBitmapFont(name:string,destroy?:boolean):void;
  18293. /**
  18294. * @inheritDoc
  18295. * @override
  18296. */
  18297. destroy(destroyChild?:boolean):void;
  18298. /**
  18299. * @inheritDoc
  18300. * @override
  18301. */
  18302. getGraphicBounds(realSize?:boolean):laya.maths.Rectangle;
  18303. /**
  18304. * @inheritDoc
  18305. * @override
  18306. */
  18307. /**
  18308. * @override
  18309. */
  18310. width:number;
  18311. /**
  18312. * @inheritDoc
  18313. * @override
  18314. */
  18315. /**
  18316. * @override
  18317. */
  18318. height:number;
  18319. /**
  18320. * 表示文本的宽度,以像素为单位。
  18321. */
  18322. readonly textWidth:number;
  18323. /**
  18324. * 表示文本的高度,以像素为单位。
  18325. */
  18326. readonly textHeight:number;
  18327. /**
  18328. * 当前文本的内容字符串。
  18329. */
  18330. text:string;
  18331. get_text():string;
  18332. set_text(value:string):void;
  18333. /**
  18334. * <p>根据指定的文本,从语言包中取当前语言的文本内容。并对此文本中的{i}文本进行替换。</p>
  18335. * <p>设置Text.langPacks语言包后,即可使用lang获取里面的语言</p>
  18336. * <p>例如:
  18337. * <li>(1)text 的值为“我的名字”,先取到这个文本对应的当前语言版本里的值“My name”,将“My name”设置为当前文本的内容。</li>
  18338. * <li>(2)text 的值为“恭喜你赢得{0}个钻石,{1}经验。”,arg1 的值为100,arg2 的值为200。
  18339. * 则先取到这个文本对应的当前语言版本里的值“Congratulations on your winning {0} diamonds, {1} experience.”,
  18340. * 然后将文本里的{0}、{1},依据括号里的数字从0开始替换为 arg1、arg2 的值。
  18341. * 将替换处理后的文本“Congratulations on your winning 100 diamonds, 200 experience.”设置为当前文本的内容。
  18342. * </li>
  18343. * </p>
  18344. * @param text 文本内容。
  18345. * @param ...args 文本替换参数。
  18346. */
  18347. lang(text:string,arg1?:any,arg2?:any,arg3?:any,arg4?:any,arg5?:any,arg6?:any,arg7?:any,arg8?:any,arg9?:any,arg10?:any):void;
  18348. /**
  18349. * <p>文本的字体名称,以字符串形式表示。</p>
  18350. * <p>默认值为:"Arial",可以通过Text.defaultFont设置默认字体。</p>
  18351. * <p>如果运行时系统找不到设定的字体,则用系统默认的字体渲染文字,从而导致显示异常。(通常电脑上显示正常,在一些移动端因缺少设置的字体而显示异常)。</p>
  18352. * @see laya.display.Text#defaultFont
  18353. */
  18354. font:string;
  18355. /**
  18356. * <p>指定文本的字体大小(以像素为单位)。</p>
  18357. * <p>默认为20像素,可以通过 <code>Text.defaultFontSize</code> 设置默认大小。</p>
  18358. */
  18359. fontSize:number;
  18360. /**
  18361. * <p>指定文本是否为粗体字。</p>
  18362. * <p>默认值为 false,这意味着不使用粗体字。如果值为 true,则文本为粗体字。</p>
  18363. */
  18364. bold:boolean;
  18365. /**
  18366. * <p>表示文本的颜色值。可以通过 <code>Text.defaultColor</code> 设置默认颜色。</p>
  18367. * <p>默认值为黑色。</p>
  18368. */
  18369. color:string;
  18370. get_color():string;
  18371. set_color(value:string):void;
  18372. /**
  18373. * <p>表示使用此文本格式的文本是否为斜体。</p>
  18374. * <p>默认值为 false,这意味着不使用斜体。如果值为 true,则文本为斜体。</p>
  18375. */
  18376. italic:boolean;
  18377. /**
  18378. * <p>表示文本的水平显示方式。</p>
  18379. * <p><b>取值:</b>
  18380. * <li>"left": 居左对齐显示。</li>
  18381. * <li>"center": 居中对齐显示。</li>
  18382. * <li>"right": 居右对齐显示。</li>
  18383. * </p>
  18384. */
  18385. align:string;
  18386. /**
  18387. * <p>表示文本的垂直显示方式。</p>
  18388. * <p><b>取值:</b>
  18389. * <li>"top": 居顶部对齐显示。</li>
  18390. * <li>"middle": 居中对齐显示。</li>
  18391. * <li>"bottom": 居底部对齐显示。</li>
  18392. * </p>
  18393. */
  18394. valign:string;
  18395. /**
  18396. * <p>表示文本是否自动换行,默认为false。</p>
  18397. * <p>若值为true,则自动换行;否则不自动换行。</p>
  18398. */
  18399. wordWrap:boolean;
  18400. /**
  18401. * 垂直行间距(以像素为单位)。
  18402. */
  18403. leading:number;
  18404. /**
  18405. * <p>边距信息。</p>
  18406. * <p>数据格式:[上边距,右边距,下边距,左边距](边距以像素为单位)。</p>
  18407. */
  18408. padding:any[];
  18409. /**
  18410. * 文本背景颜色,以字符串表示。
  18411. */
  18412. bgColor:string;
  18413. set_bgColor(value:string):void;
  18414. get_bgColor():string;
  18415. /**
  18416. * 文本边框背景颜色,以字符串表示。
  18417. */
  18418. borderColor:string;
  18419. /**
  18420. * <p>描边宽度(以像素为单位)。</p>
  18421. * <p>默认值0,表示不描边。</p>
  18422. */
  18423. stroke:number;
  18424. /**
  18425. * <p>描边颜色,以字符串表示。</p>
  18426. * <p>默认值为 "#000000"(黑色);</p>
  18427. */
  18428. strokeColor:string;
  18429. /**
  18430. * @private 一个布尔值,表示文本的属性是否有改变。若为true表示有改变。
  18431. */
  18432. protected isChanged:boolean;
  18433. /**
  18434. * @private
  18435. */
  18436. protected _getContextFont():string;
  18437. /**
  18438. * @private
  18439. */
  18440. protected _isPassWordMode():boolean;
  18441. /**
  18442. * @private
  18443. */
  18444. protected _getPassWordTxt(txt:string):string;
  18445. /**
  18446. * @private 渲染文字。
  18447. * @param begin 开始渲染的行索引。
  18448. * @param visibleLineCount 渲染的行数。
  18449. */
  18450. protected _renderText():void;
  18451. /**
  18452. * @private 绘制下划线
  18453. * @param x 本行坐标
  18454. * @param y 本行坐标
  18455. * @param lineIndex 本行索引
  18456. */
  18457. private _drawUnderline:any;
  18458. /**
  18459. * <p>排版文本。</p>
  18460. * <p>进行宽高计算,渲染、重绘文本。</p>
  18461. */
  18462. typeset():void;
  18463. /**
  18464. * @private
  18465. */
  18466. private _evalTextSize:any;
  18467. /**
  18468. * @private
  18469. */
  18470. private _checkEnabledViewportOrNot:any;
  18471. /**
  18472. * <p>快速更改显示文本。不进行排版计算,效率较高。</p>
  18473. * <p>如果只更改文字内容,不更改文字样式,建议使用此接口,能提高效率。</p>
  18474. * @param text 文本内容。
  18475. */
  18476. changeText(text:string):void;
  18477. /**
  18478. * @private 分析文本换行。
  18479. */
  18480. protected _parseLines(text:string):void;
  18481. /**
  18482. * @private 解析行文本。
  18483. * @param line 某行的文本。
  18484. * @param wordWrapWidth 文本的显示宽度。
  18485. */
  18486. protected _parseLine(line:string,wordWrapWidth:number):void;
  18487. /**
  18488. * @private
  18489. */
  18490. private _getTextWidth:any;
  18491. /**
  18492. * @private 获取换行所需的宽度。
  18493. */
  18494. private _getWordWrapWidth:any;
  18495. /**
  18496. * 返回字符在本类实例的父坐标系下的坐标。
  18497. * @param charIndex 索引位置。
  18498. * @param out (可选)输出的Point引用。
  18499. * @return Point 字符在本类实例的父坐标系下的坐标。如果out参数不为空,则将结果赋值给指定的Point对象,否则创建一个新的Point对象返回。建议使用Point.TEMP作为out参数,可以省去Point对象创建和垃圾回收的开销,尤其是在需要频繁执行的逻辑中,比如帧循环和MOUSE_MOVE事件回调函数里面。
  18500. */
  18501. getCharPoint(charIndex:number,out?:laya.maths.Point):laya.maths.Point;
  18502. /**
  18503. * <p>设置横向滚动量。</p>
  18504. * <p>即使设置超出滚动范围的值,也会被自动限制在可能的最大值处。</p>
  18505. */
  18506. /**
  18507. * 获取横向滚动量。
  18508. */
  18509. scrollX:number;
  18510. /**
  18511. * 设置纵向滚动量(px)。即使设置超出滚动范围的值,也会被自动限制在可能的最大值处。
  18512. */
  18513. /**
  18514. * 获取纵向滚动量。
  18515. */
  18516. scrollY:number;
  18517. /**
  18518. * 获取横向可滚动最大值。
  18519. */
  18520. readonly maxScrollX:number;
  18521. /**
  18522. * 获取纵向可滚动最大值。
  18523. */
  18524. readonly maxScrollY:number;
  18525. /**
  18526. * 返回文字行信息
  18527. */
  18528. readonly lines:any[];
  18529. /**
  18530. * 下划线的颜色,为null则使用字体颜色。
  18531. */
  18532. underlineColor:string;
  18533. /**
  18534. * 是否显示下划线。
  18535. */
  18536. underline:boolean;
  18537. /**
  18538. * 设置是否单个字符渲染,如果Textd的内容一直改变,例如是一个增加的数字,就设置这个,防止无效占用缓存
  18539. */
  18540. singleCharRender:boolean;
  18541. }
  18542. }
  18543. declare module laya.effect {
  18544. /**
  18545. * ...
  18546. * @author ww
  18547. */
  18548. class BlurFilterSetter extends laya.effect.FilterSetterBase {
  18549. private _strength:any;
  18550. constructor();
  18551. /**
  18552. * @override
  18553. */
  18554. protected buildFilter():void;
  18555. strength:number;
  18556. }
  18557. }
  18558. declare module laya.effect {
  18559. /**
  18560. * @Script {name:ButtonEffect}
  18561. * @author ww
  18562. */
  18563. class ButtonEffect {
  18564. private _tar:any;
  18565. private _curState:any;
  18566. private _curTween:any;
  18567. /**
  18568. * effectScale
  18569. * @prop {name:effectScale,type:number, tips:"缩放值",default:"1.5"}
  18570. */
  18571. effectScale:number;
  18572. /**
  18573. * tweenTime
  18574. * @prop {name:tweenTime,type:number, tips:"缓动时长",default:"300"}
  18575. */
  18576. tweenTime:number;
  18577. /**
  18578. * effectEase
  18579. * @prop {name:effectEase,type:ease, tips:"效果缓动类型"}
  18580. */
  18581. effectEase:string;
  18582. /**
  18583. * backEase
  18584. * @prop {name:backEase,type:ease, tips:"恢复缓动类型"}
  18585. */
  18586. backEase:string;
  18587. /**
  18588. * 设置控制对象
  18589. * @param tar
  18590. */
  18591. target:laya.display.Sprite;
  18592. private toChangedState:any;
  18593. private toInitState:any;
  18594. private tweenComplete:any;
  18595. }
  18596. }
  18597. declare module laya.effect {
  18598. /**
  18599. * ...
  18600. * @author ww
  18601. */
  18602. class ColorFilterSetter extends laya.effect.FilterSetterBase {
  18603. /**
  18604. * brightness 亮度,范围:-100~100
  18605. */
  18606. private _brightness:any;
  18607. /**
  18608. * contrast 对比度,范围:-100~100
  18609. */
  18610. private _contrast:any;
  18611. /**
  18612. * saturation 饱和度,范围:-100~100
  18613. */
  18614. private _saturation:any;
  18615. /**
  18616. * hue 色调,范围:-180~180
  18617. */
  18618. private _hue:any;
  18619. /**
  18620. * red red增量,范围:0~255
  18621. */
  18622. private _red:any;
  18623. /**
  18624. * green green增量,范围:0~255
  18625. */
  18626. private _green:any;
  18627. /**
  18628. * blue blue增量,范围:0~255
  18629. */
  18630. private _blue:any;
  18631. /**
  18632. * alpha alpha增量,范围:0~255
  18633. */
  18634. private _alpha:any;
  18635. constructor();
  18636. /**
  18637. * @override
  18638. */
  18639. protected buildFilter():void;
  18640. brightness:number;
  18641. contrast:number;
  18642. saturation:number;
  18643. hue:number;
  18644. red:number;
  18645. green:number;
  18646. blue:number;
  18647. private _color:any;
  18648. color:string;
  18649. alpha:number;
  18650. }
  18651. }
  18652. declare module laya.effect {
  18653. /**
  18654. * 效果插件基类,基于对象池管理
  18655. */
  18656. class EffectBase extends laya.components.Component {
  18657. /**
  18658. * 动画持续时间,单位为毫秒
  18659. */
  18660. duration:number;
  18661. /**
  18662. * 动画延迟时间,单位为毫秒
  18663. */
  18664. delay:number;
  18665. /**
  18666. * 重复次数,默认为播放一次
  18667. */
  18668. repeat:number;
  18669. /**
  18670. * 缓动类型,如果为空,则默认为匀速播放
  18671. */
  18672. ease:string;
  18673. /**
  18674. * 触发事件,如果为空,则创建时触发
  18675. */
  18676. eventName:string;
  18677. /**
  18678. * 效用作用的目标对象,如果为空,则是脚本所在的节点本身
  18679. */
  18680. target:laya.display.Sprite;
  18681. /**
  18682. * 效果结束后,是否自动移除节点
  18683. */
  18684. autoDestroyAtComplete:boolean;
  18685. protected _comlete:laya.utils.Handler;
  18686. protected _tween:laya.utils.Tween;
  18687. protected _exeTween():void;
  18688. protected _doTween():laya.utils.Tween;
  18689. /**
  18690. * @override
  18691. */
  18692. onReset():void;
  18693. }
  18694. }
  18695. declare module laya.effect {
  18696. /**
  18697. * 淡入效果
  18698. */
  18699. class FadeIn extends laya.effect.EffectBase {
  18700. /**
  18701. * @override
  18702. */
  18703. protected _doTween():laya.utils.Tween;
  18704. }
  18705. }
  18706. declare module laya.effect {
  18707. /**
  18708. * 淡出效果
  18709. */
  18710. class FadeOut extends laya.effect.EffectBase {
  18711. /**
  18712. * @override
  18713. */
  18714. protected _doTween():laya.utils.Tween;
  18715. }
  18716. }
  18717. declare module laya.effect {
  18718. /**
  18719. * ...
  18720. * @author ww
  18721. */
  18722. class FilterSetterBase {
  18723. _filter:any;
  18724. constructor();
  18725. paramChanged():void;
  18726. protected buildFilter():void;
  18727. protected addFilter(sprite:laya.display.Sprite):void;
  18728. protected removeFilter(sprite:laya.display.Sprite):void;
  18729. private _target:any;
  18730. target:any;
  18731. }
  18732. }
  18733. declare module laya.effect {
  18734. /**
  18735. * ...
  18736. * @author ww
  18737. */
  18738. class GlowFilterSetter extends laya.effect.FilterSetterBase {
  18739. /**
  18740. * 滤镜的颜色
  18741. */
  18742. private _color:any;
  18743. /**
  18744. * 边缘模糊的大小 0~20
  18745. */
  18746. private _blur:any;
  18747. /**
  18748. * X轴方向的偏移
  18749. */
  18750. private _offX:any;
  18751. /**
  18752. * Y轴方向的偏移
  18753. */
  18754. private _offY:any;
  18755. constructor();
  18756. /**
  18757. * @override
  18758. */
  18759. protected buildFilter():void;
  18760. color:string;
  18761. blur:number;
  18762. offX:number;
  18763. offY:number;
  18764. }
  18765. }
  18766. declare module laya.events {
  18767. /**
  18768. * <code>Event</code> 是事件类型的集合。一般当发生事件时,<code>Event</code> 对象将作为参数传递给事件侦听器。
  18769. */
  18770. class Event {
  18771. /**
  18772. * 一个空的 Event 对象。用于事件派发中转使用。
  18773. */
  18774. static EMPTY:Event;
  18775. /**
  18776. * 定义 mousedown 事件对象的 type 属性值。
  18777. */
  18778. static MOUSE_DOWN:string;
  18779. /**
  18780. * 定义 mouseup 事件对象的 type 属性值。
  18781. */
  18782. static MOUSE_UP:string;
  18783. /**
  18784. * 定义 click 事件对象的 type 属性值。
  18785. */
  18786. static CLICK:string;
  18787. /**
  18788. * 定义 rightmousedown 事件对象的 type 属性值。
  18789. */
  18790. static RIGHT_MOUSE_DOWN:string;
  18791. /**
  18792. * 定义 rightmouseup 事件对象的 type 属性值。
  18793. */
  18794. static RIGHT_MOUSE_UP:string;
  18795. /**
  18796. * 定义 rightclick 事件对象的 type 属性值。
  18797. */
  18798. static RIGHT_CLICK:string;
  18799. /**
  18800. * 定义 mousemove 事件对象的 type 属性值。
  18801. */
  18802. static MOUSE_MOVE:string;
  18803. /**
  18804. * 定义 mouseover 事件对象的 type 属性值。
  18805. */
  18806. static MOUSE_OVER:string;
  18807. /**
  18808. * 定义 mouseout 事件对象的 type 属性值。
  18809. */
  18810. static MOUSE_OUT:string;
  18811. /**
  18812. * 定义 mousewheel 事件对象的 type 属性值。
  18813. */
  18814. static MOUSE_WHEEL:string;
  18815. /**
  18816. * 定义 mouseover 事件对象的 type 属性值。
  18817. */
  18818. static ROLL_OVER:string;
  18819. /**
  18820. * 定义 mouseout 事件对象的 type 属性值。
  18821. */
  18822. static ROLL_OUT:string;
  18823. /**
  18824. * 定义 doubleclick 事件对象的 type 属性值。
  18825. */
  18826. static DOUBLE_CLICK:string;
  18827. /**
  18828. * 定义 change 事件对象的 type 属性值。
  18829. */
  18830. static CHANGE:string;
  18831. /**
  18832. * 定义 changed 事件对象的 type 属性值。
  18833. */
  18834. static CHANGED:string;
  18835. /**
  18836. * 定义 resize 事件对象的 type 属性值。
  18837. */
  18838. static RESIZE:string;
  18839. /**
  18840. * 定义 added 事件对象的 type 属性值。
  18841. */
  18842. static ADDED:string;
  18843. /**
  18844. * 定义 removed 事件对象的 type 属性值。
  18845. */
  18846. static REMOVED:string;
  18847. /**
  18848. * 定义 display 事件对象的 type 属性值。
  18849. */
  18850. static DISPLAY:string;
  18851. /**
  18852. * 定义 undisplay 事件对象的 type 属性值。
  18853. */
  18854. static UNDISPLAY:string;
  18855. /**
  18856. * 定义 error 事件对象的 type 属性值。
  18857. */
  18858. static ERROR:string;
  18859. /**
  18860. * 定义 complete 事件对象的 type 属性值。
  18861. */
  18862. static COMPLETE:string;
  18863. /**
  18864. * 定义 loaded 事件对象的 type 属性值。
  18865. */
  18866. static LOADED:string;
  18867. /**
  18868. * 定义 loaded 事件对象的 type 属性值。
  18869. */
  18870. static READY:string;
  18871. /**
  18872. * 定义 progress 事件对象的 type 属性值。
  18873. */
  18874. static PROGRESS:string;
  18875. /**
  18876. * 定义 input 事件对象的 type 属性值。
  18877. */
  18878. static INPUT:string;
  18879. /**
  18880. * 定义 render 事件对象的 type 属性值。
  18881. */
  18882. static RENDER:string;
  18883. /**
  18884. * 定义 open 事件对象的 type 属性值。
  18885. */
  18886. static OPEN:string;
  18887. /**
  18888. * 定义 message 事件对象的 type 属性值。
  18889. */
  18890. static MESSAGE:string;
  18891. /**
  18892. * 定义 close 事件对象的 type 属性值。
  18893. */
  18894. static CLOSE:string;
  18895. /**
  18896. * 定义 keydown 事件对象的 type 属性值。
  18897. */
  18898. static KEY_DOWN:string;
  18899. /**
  18900. * 定义 keypress 事件对象的 type 属性值。
  18901. */
  18902. static KEY_PRESS:string;
  18903. /**
  18904. * 定义 keyup 事件对象的 type 属性值。
  18905. */
  18906. static KEY_UP:string;
  18907. /**
  18908. * 定义 frame 事件对象的 type 属性值。
  18909. */
  18910. static FRAME:string;
  18911. /**
  18912. * 定义 dragstart 事件对象的 type 属性值。
  18913. */
  18914. static DRAG_START:string;
  18915. /**
  18916. * 定义 dragmove 事件对象的 type 属性值。
  18917. */
  18918. static DRAG_MOVE:string;
  18919. /**
  18920. * 定义 dragend 事件对象的 type 属性值。
  18921. */
  18922. static DRAG_END:string;
  18923. /**
  18924. * 定义 enter 事件对象的 type 属性值。
  18925. */
  18926. static ENTER:string;
  18927. /**
  18928. * 定义 select 事件对象的 type 属性值。
  18929. */
  18930. static SELECT:string;
  18931. /**
  18932. * 定义 blur 事件对象的 type 属性值。
  18933. */
  18934. static BLUR:string;
  18935. /**
  18936. * 定义 focus 事件对象的 type 属性值。
  18937. */
  18938. static FOCUS:string;
  18939. /**
  18940. * 定义 visibilitychange 事件对象的 type 属性值。
  18941. */
  18942. static VISIBILITY_CHANGE:string;
  18943. /**
  18944. * 定义 focuschange 事件对象的 type 属性值。
  18945. */
  18946. static FOCUS_CHANGE:string;
  18947. /**
  18948. * 定义 played 事件对象的 type 属性值。
  18949. */
  18950. static PLAYED:string;
  18951. /**
  18952. * 定义 paused 事件对象的 type 属性值。
  18953. */
  18954. static PAUSED:string;
  18955. /**
  18956. * 定义 stopped 事件对象的 type 属性值。
  18957. */
  18958. static STOPPED:string;
  18959. /**
  18960. * 定义 start 事件对象的 type 属性值。
  18961. */
  18962. static START:string;
  18963. /**
  18964. * 定义 end 事件对象的 type 属性值。
  18965. */
  18966. static END:string;
  18967. /**
  18968. * 定义 componentadded 事件对象的 type 属性值。
  18969. */
  18970. static COMPONENT_ADDED:string;
  18971. /**
  18972. * 定义 componentremoved 事件对象的 type 属性值。
  18973. */
  18974. static COMPONENT_REMOVED:string;
  18975. /**
  18976. * 定义 released 事件对象的 type 属性值。
  18977. */
  18978. static RELEASED:string;
  18979. /**
  18980. * 定义 link 事件对象的 type 属性值。
  18981. */
  18982. static LINK:string;
  18983. /**
  18984. * 定义 label 事件对象的 type 属性值。
  18985. */
  18986. static LABEL:string;
  18987. /**
  18988. * 浏览器全屏更改时触发
  18989. */
  18990. static FULL_SCREEN_CHANGE:string;
  18991. /**
  18992. * 显卡设备丢失时触发
  18993. */
  18994. static DEVICE_LOST:string;
  18995. /**
  18996. * 世界矩阵更新时触发。
  18997. */
  18998. static TRANSFORM_CHANGED:string;
  18999. /**
  19000. * 更换动作时触发。
  19001. */
  19002. static ANIMATION_CHANGED:string;
  19003. /**
  19004. * 拖尾渲染节点改变时触发。
  19005. */
  19006. static TRAIL_FILTER_CHANGE:string;
  19007. /**
  19008. * 物理碰撞开始
  19009. */
  19010. static TRIGGER_ENTER:string;
  19011. /**
  19012. * 物理碰撞持续
  19013. */
  19014. static TRIGGER_STAY:string;
  19015. /**
  19016. * 物理碰撞结束
  19017. */
  19018. static TRIGGER_EXIT:string;
  19019. /**
  19020. * 事件类型。
  19021. */
  19022. type:string;
  19023. /**
  19024. * 原生浏览器事件。
  19025. */
  19026. nativeEvent:any;
  19027. /**
  19028. * 事件目标触发对象。
  19029. */
  19030. target:laya.display.Sprite;
  19031. /**
  19032. * 事件当前冒泡对象。
  19033. */
  19034. currentTarget:laya.display.Sprite;
  19035. /**
  19036. * 分配给触摸点的唯一标识号(作为 int)。
  19037. */
  19038. touchId:number;
  19039. /**
  19040. * 键盘值
  19041. */
  19042. keyCode:number;
  19043. /**
  19044. * 滚轮滑动增量
  19045. */
  19046. delta:number;
  19047. /**
  19048. * 设置事件数据。
  19049. * @param type 事件类型。
  19050. * @param currentTarget 事件目标触发对象。
  19051. * @param target 事件当前冒泡对象。
  19052. * @return 返回当前 Event 对象。
  19053. */
  19054. setTo(type:string,currentTarget:laya.display.Sprite,target:laya.display.Sprite):Event;
  19055. /**
  19056. * 阻止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。此方法不会影响当前节点 (currentTarget) 中的任何事件侦听器。
  19057. */
  19058. stopPropagation():void;
  19059. /**
  19060. * 触摸点列表。
  19061. */
  19062. readonly touches:any[];
  19063. /**
  19064. * 表示 Alt 键是处于活动状态 (true) 还是非活动状态 (false)。
  19065. */
  19066. readonly altKey:boolean;
  19067. /**
  19068. * 表示 Ctrl 键是处于活动状态 (true) 还是非活动状态 (false)。
  19069. */
  19070. readonly ctrlKey:boolean;
  19071. /**
  19072. * 表示 Shift 键是处于活动状态 (true) 还是非活动状态 (false)。
  19073. */
  19074. readonly shiftKey:boolean;
  19075. /**
  19076. * 包含按下或释放的键的字符代码值。字符代码值为英文键盘值。
  19077. */
  19078. readonly charCode:boolean;
  19079. /**
  19080. * 表示键在键盘上的位置。这对于区分在键盘上多次出现的键非常有用。<br>
  19081. * 例如,您可以根据此属性的值来区分左 Shift 键和右 Shift 键:左 Shift 键的值为 KeyLocation.LEFT,右 Shift 键的值为 KeyLocation.RIGHT。另一个示例是区分标准键盘 (KeyLocation.STANDARD) 与数字键盘 (KeyLocation.NUM_PAD) 上按下的数字键。
  19082. */
  19083. readonly keyLocation:number;
  19084. /**
  19085. * 鼠标在 Stage 上的 X 轴坐标
  19086. */
  19087. readonly stageX:number;
  19088. /**
  19089. * 鼠标在 Stage 上的 Y 轴坐标
  19090. */
  19091. readonly stageY:number;
  19092. }
  19093. }
  19094. declare module laya.events {
  19095. /**
  19096. * <code>EventDispatcher</code> 类是可调度事件的所有类的基类。
  19097. */
  19098. class EventDispatcher {
  19099. /**
  19100. * @private
  19101. */
  19102. static MOUSE_EVENTS:any;
  19103. /**
  19104. * @private
  19105. */
  19106. private _events:any;
  19107. /**
  19108. * 检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
  19109. * @param type 事件的类型。
  19110. * @return 如果指定类型的侦听器已注册,则值为 true;否则,值为 false。
  19111. */
  19112. hasListener(type:string):boolean;
  19113. /**
  19114. * 派发事件。
  19115. * @param type 事件类型。
  19116. * @param data (可选)回调数据。<b>注意:</b>如果是需要传递多个参数 p1,p2,p3,...可以使用数组结构如:[p1,p2,p3,...] ;如果需要回调单个参数 p ,且 p 是一个数组,则需要使用结构如:[p],其他的单个参数 p ,可以直接传入参数 p。
  19117. * @return 此事件类型是否有侦听者,如果有侦听者则值为 true,否则值为 false。
  19118. */
  19119. event(type:string,data?:any):boolean;
  19120. /**
  19121. * 使用 EventDispatcher 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知。
  19122. * @param type 事件的类型。
  19123. * @param caller 事件侦听函数的执行域。
  19124. * @param listener 事件侦听函数。
  19125. * @param args (可选)事件侦听函数的回调参数。
  19126. * @return 此 EventDispatcher 对象。
  19127. */
  19128. on(type:string,caller:any,listener:Function,args?:any[]):EventDispatcher;
  19129. /**
  19130. * 使用 EventDispatcher 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知,此侦听事件响应一次后自动移除。
  19131. * @param type 事件的类型。
  19132. * @param caller 事件侦听函数的执行域。
  19133. * @param listener 事件侦听函数。
  19134. * @param args (可选)事件侦听函数的回调参数。
  19135. * @return 此 EventDispatcher 对象。
  19136. */
  19137. once(type:string,caller:any,listener:Function,args?:any[]):EventDispatcher;
  19138. /**
  19139. * 从 EventDispatcher 对象中删除侦听器。
  19140. * @param type 事件的类型。
  19141. * @param caller 事件侦听函数的执行域。
  19142. * @param listener 事件侦听函数。
  19143. * @param onceOnly (可选)如果值为 true ,则只移除通过 once 方法添加的侦听器。
  19144. * @return 此 EventDispatcher 对象。
  19145. */
  19146. off(type:string,caller:any,listener:Function,onceOnly?:boolean):EventDispatcher;
  19147. /**
  19148. * 从 EventDispatcher 对象中删除指定事件类型的所有侦听器。
  19149. * @param type (可选)事件类型,如果值为 null,则移除本对象所有类型的侦听器。
  19150. * @return 此 EventDispatcher 对象。
  19151. */
  19152. offAll(type?:string):EventDispatcher;
  19153. /**
  19154. * 移除caller为target的所有事件监听
  19155. * @param caller caller对象
  19156. */
  19157. offAllCaller(caller:any):EventDispatcher;
  19158. private _recoverHandlers:any;
  19159. /**
  19160. * 检测指定事件类型是否是鼠标事件。
  19161. * @param type 事件的类型。
  19162. * @return 如果是鼠标事件,则值为 true;否则,值为 false。
  19163. */
  19164. isMouseEvent(type:string):boolean;
  19165. }
  19166. }
  19167. declare module laya.events {
  19168. /**
  19169. * <code>Keyboard</code> 类的属性是一些常数,这些常数表示控制游戏时最常用的键。
  19170. */
  19171. class Keyboard {
  19172. /**
  19173. * 与 0 的键控代码值 (48) 关联的常数。
  19174. */
  19175. static NUMBER_0:number;
  19176. /**
  19177. * 与 1 的键控代码值 (49) 关联的常数。
  19178. */
  19179. static NUMBER_1:number;
  19180. /**
  19181. * 与 2 的键控代码值 (50) 关联的常数。
  19182. */
  19183. static NUMBER_2:number;
  19184. /**
  19185. * 与 3 的键控代码值 (51) 关联的常数。
  19186. */
  19187. static NUMBER_3:number;
  19188. /**
  19189. * 与 4 的键控代码值 (52) 关联的常数。
  19190. */
  19191. static NUMBER_4:number;
  19192. /**
  19193. * 与 5 的键控代码值 (53) 关联的常数。
  19194. */
  19195. static NUMBER_5:number;
  19196. /**
  19197. * 与 6 的键控代码值 (54) 关联的常数。
  19198. */
  19199. static NUMBER_6:number;
  19200. /**
  19201. * 与 7 的键控代码值 (55) 关联的常数。
  19202. */
  19203. static NUMBER_7:number;
  19204. /**
  19205. * 与 8 的键控代码值 (56) 关联的常数。
  19206. */
  19207. static NUMBER_8:number;
  19208. /**
  19209. * 与 9 的键控代码值 (57) 关联的常数。
  19210. */
  19211. static NUMBER_9:number;
  19212. /**
  19213. * 与 A 键的键控代码值 (65) 关联的常数。
  19214. */
  19215. static A:number;
  19216. /**
  19217. * 与 B 键的键控代码值 (66) 关联的常数。
  19218. */
  19219. static B:number;
  19220. /**
  19221. * 与 C 键的键控代码值 (67) 关联的常数。
  19222. */
  19223. static C:number;
  19224. /**
  19225. * 与 D 键的键控代码值 (68) 关联的常数。
  19226. */
  19227. static D:number;
  19228. /**
  19229. * 与 E 键的键控代码值 (69) 关联的常数。
  19230. */
  19231. static E:number;
  19232. /**
  19233. * 与 F 键的键控代码值 (70) 关联的常数。
  19234. */
  19235. static F:number;
  19236. /**
  19237. * 与 G 键的键控代码值 (71) 关联的常数。
  19238. */
  19239. static G:number;
  19240. /**
  19241. * 与 H 键的键控代码值 (72) 关联的常数。
  19242. */
  19243. static H:number;
  19244. /**
  19245. * 与 I 键的键控代码值 (73) 关联的常数。
  19246. */
  19247. static I:number;
  19248. /**
  19249. * 与 J 键的键控代码值 (74) 关联的常数。
  19250. */
  19251. static J:number;
  19252. /**
  19253. * 与 K 键的键控代码值 (75) 关联的常数。
  19254. */
  19255. static K:number;
  19256. /**
  19257. * 与 L 键的键控代码值 (76) 关联的常数。
  19258. */
  19259. static L:number;
  19260. /**
  19261. * 与 M 键的键控代码值 (77) 关联的常数。
  19262. */
  19263. static M:number;
  19264. /**
  19265. * 与 N 键的键控代码值 (78) 关联的常数。
  19266. */
  19267. static N:number;
  19268. /**
  19269. * 与 O 键的键控代码值 (79) 关联的常数。
  19270. */
  19271. static O:number;
  19272. /**
  19273. * 与 P 键的键控代码值 (80) 关联的常数。
  19274. */
  19275. static P:number;
  19276. /**
  19277. * 与 Q 键的键控代码值 (81) 关联的常数。
  19278. */
  19279. static Q:number;
  19280. /**
  19281. * 与 R 键的键控代码值 (82) 关联的常数。
  19282. */
  19283. static R:number;
  19284. /**
  19285. * 与 S 键的键控代码值 (83) 关联的常数。
  19286. */
  19287. static S:number;
  19288. /**
  19289. * 与 T 键的键控代码值 (84) 关联的常数。
  19290. */
  19291. static T:number;
  19292. /**
  19293. * 与 U 键的键控代码值 (85) 关联的常数。
  19294. */
  19295. static U:number;
  19296. /**
  19297. * 与 V 键的键控代码值 (86) 关联的常数。
  19298. */
  19299. static V:number;
  19300. /**
  19301. * 与 W 键的键控代码值 (87) 关联的常数。
  19302. */
  19303. static W:number;
  19304. /**
  19305. * 与 X 键的键控代码值 (88) 关联的常数。
  19306. */
  19307. static X:number;
  19308. /**
  19309. * 与 Y 键的键控代码值 (89) 关联的常数。
  19310. */
  19311. static Y:number;
  19312. /**
  19313. * 与 Z 键的键控代码值 (90) 关联的常数。
  19314. */
  19315. static Z:number;
  19316. /**
  19317. * 与 F1 的键控代码值 (112) 关联的常数。
  19318. */
  19319. static F1:number;
  19320. /**
  19321. * 与 F2 的键控代码值 (113) 关联的常数。
  19322. */
  19323. static F2:number;
  19324. /**
  19325. * 与 F3 的键控代码值 (114) 关联的常数。
  19326. */
  19327. static F3:number;
  19328. /**
  19329. * 与 F4 的键控代码值 (115) 关联的常数。
  19330. */
  19331. static F4:number;
  19332. /**
  19333. * 与 F5 的键控代码值 (116) 关联的常数。
  19334. */
  19335. static F5:number;
  19336. /**
  19337. * 与 F6 的键控代码值 (117) 关联的常数。
  19338. */
  19339. static F6:number;
  19340. /**
  19341. * 与 F7 的键控代码值 (118) 关联的常数。
  19342. */
  19343. static F7:number;
  19344. /**
  19345. * 与 F8 的键控代码值 (119) 关联的常数。
  19346. */
  19347. static F8:number;
  19348. /**
  19349. * 与 F9 的键控代码值 (120) 关联的常数。
  19350. */
  19351. static F9:number;
  19352. /**
  19353. * 与 F10 的键控代码值 (121) 关联的常数。
  19354. */
  19355. static F10:number;
  19356. /**
  19357. * 与 F11 的键控代码值 (122) 关联的常数。
  19358. */
  19359. static F11:number;
  19360. /**
  19361. * 与 F12 的键控代码值 (123) 关联的常数。
  19362. */
  19363. static F12:number;
  19364. /**
  19365. * 与 F13 的键控代码值 (124) 关联的常数。
  19366. */
  19367. static F13:number;
  19368. /**
  19369. * 与 F14 的键控代码值 (125) 关联的常数。
  19370. */
  19371. static F14:number;
  19372. /**
  19373. * 与 F15 的键控代码值 (126) 关联的常数。
  19374. */
  19375. static F15:number;
  19376. /**
  19377. * 与数字键盘的伪键控代码 (21) 关联的常数。
  19378. */
  19379. static NUMPAD:number;
  19380. /**
  19381. * 与数字键盘上的数字 0 的键控代码值 (96) 关联的常数。
  19382. */
  19383. static NUMPAD_0:number;
  19384. /**
  19385. * 与数字键盘上的数字 1 的键控代码值 (97) 关联的常数。
  19386. */
  19387. static NUMPAD_1:number;
  19388. /**
  19389. * 与数字键盘上的数字 2 的键控代码值 (98) 关联的常数。
  19390. */
  19391. static NUMPAD_2:number;
  19392. /**
  19393. * 与数字键盘上的数字 3 的键控代码值 (99) 关联的常数。
  19394. */
  19395. static NUMPAD_3:number;
  19396. /**
  19397. * 与数字键盘上的数字 4 的键控代码值 (100) 关联的常数。
  19398. */
  19399. static NUMPAD_4:number;
  19400. /**
  19401. * 与数字键盘上的数字 5 的键控代码值 (101) 关联的常数。
  19402. */
  19403. static NUMPAD_5:number;
  19404. /**
  19405. * 与数字键盘上的数字 6 的键控代码值 (102) 关联的常数。
  19406. */
  19407. static NUMPAD_6:number;
  19408. /**
  19409. * 与数字键盘上的数字 7 的键控代码值 (103) 关联的常数。
  19410. */
  19411. static NUMPAD_7:number;
  19412. /**
  19413. * 与数字键盘上的数字 8 的键控代码值 (104) 关联的常数。
  19414. */
  19415. static NUMPAD_8:number;
  19416. /**
  19417. * 与数字键盘上的数字 9 的键控代码值 (105) 关联的常数。
  19418. */
  19419. static NUMPAD_9:number;
  19420. /**
  19421. * 与数字键盘上的加号 (+) 的键控代码值 (107) 关联的常数。
  19422. */
  19423. static NUMPAD_ADD:number;
  19424. /**
  19425. * 与数字键盘上的小数点 (.) 的键控代码值 (110) 关联的常数。
  19426. */
  19427. static NUMPAD_DECIMAL:number;
  19428. /**
  19429. * 与数字键盘上的除号 (/) 的键控代码值 (111) 关联的常数。
  19430. */
  19431. static NUMPAD_DIVIDE:number;
  19432. /**
  19433. * 与数字键盘上的 Enter 的键控代码值 (108) 关联的常数。
  19434. */
  19435. static NUMPAD_ENTER:number;
  19436. /**
  19437. * 与数字键盘上的乘号 (*) 的键控代码值 (106) 关联的常数。
  19438. */
  19439. static NUMPAD_MULTIPLY:number;
  19440. /**
  19441. * 与数字键盘上的减号 (-) 的键控代码值 (109) 关联的常数。
  19442. */
  19443. static NUMPAD_SUBTRACT:number;
  19444. /**
  19445. * 与 ; 键的键控代码值 (186) 关联的常数。
  19446. */
  19447. static SEMICOLON:number;
  19448. /**
  19449. * 与 = 键的键控代码值 (187) 关联的常数。
  19450. */
  19451. static EQUAL:number;
  19452. /**
  19453. * 与 F15 的键控代码值 (188) 关联的常数。
  19454. */
  19455. static COMMA:number;
  19456. /**
  19457. * 与 - 键的键控代码值 (189) 关联的常数。
  19458. */
  19459. static MINUS:number;
  19460. /**
  19461. * 与 . 键的键控代码值 (190) 关联的常数。
  19462. */
  19463. static PERIOD:number;
  19464. /**
  19465. * 与 / 键的键控代码值 (191) 关联的常数。
  19466. */
  19467. static SLASH:number;
  19468. /**
  19469. * 与 ` 键的键控代码值 (192) 关联的常数。
  19470. */
  19471. static BACKQUOTE:number;
  19472. /**
  19473. * 与 [ 键的键控代码值 (219) 关联的常数。
  19474. */
  19475. static LEFTBRACKET:number;
  19476. /**
  19477. * 与 \ 键的键控代码值 (220) 关联的常数。
  19478. */
  19479. static BACKSLASH:number;
  19480. /**
  19481. * 与 ] 键的键控代码值 (221) 关联的常数。
  19482. */
  19483. static RIGHTBRACKET:number;
  19484. /**
  19485. * 与 ' 键的键控代码值 (222) 关联的常数。
  19486. */
  19487. static QUOTE:number;
  19488. /**
  19489. * 与 Alternate (Option) 键的键控代码值 (18) 关联的常数。
  19490. */
  19491. static ALTERNATE:number;
  19492. /**
  19493. * 与 Backspace 的键控代码值 (8) 关联的常数。
  19494. */
  19495. static BACKSPACE:number;
  19496. /**
  19497. * 与 Caps Lock 的键控代码值 (20) 关联的常数。
  19498. */
  19499. static CAPS_LOCK:number;
  19500. /**
  19501. * 与 Mac 命令键 (15) 关联的常数。
  19502. */
  19503. static COMMAND:number;
  19504. /**
  19505. * 与 Ctrl 的键控代码值 (17) 关联的常数。
  19506. */
  19507. static CONTROL:number;
  19508. /**
  19509. * 与 Delete 的键控代码值 (46) 关联的常数。
  19510. */
  19511. static DELETE:number;
  19512. /**
  19513. * 与 Enter 的键控代码值 (13) 关联的常数。
  19514. */
  19515. static ENTER:number;
  19516. /**
  19517. * 与 Esc 的键控代码值 (27) 关联的常数。
  19518. */
  19519. static ESCAPE:number;
  19520. /**
  19521. * 与 Page Up 的键控代码值 (33) 关联的常数。
  19522. */
  19523. static PAGE_UP:number;
  19524. /**
  19525. * 与 Page Down 的键控代码值 (34) 关联的常数。
  19526. */
  19527. static PAGE_DOWN:number;
  19528. /**
  19529. * 与 End 的键控代码值 (35) 关联的常数。
  19530. */
  19531. static END:number;
  19532. /**
  19533. * 与 Home 的键控代码值 (36) 关联的常数。
  19534. */
  19535. static HOME:number;
  19536. /**
  19537. * 与向左箭头键的键控代码值 (37) 关联的常数。
  19538. */
  19539. static LEFT:number;
  19540. /**
  19541. * 与向上箭头键的键控代码值 (38) 关联的常数。
  19542. */
  19543. static UP:number;
  19544. /**
  19545. * 与向右箭头键的键控代码值 (39) 关联的常数。
  19546. */
  19547. static RIGHT:number;
  19548. /**
  19549. * 与向下箭头键的键控代码值 (40) 关联的常数。
  19550. */
  19551. static DOWN:number;
  19552. /**
  19553. * 与 Shift 的键控代码值 (16) 关联的常数。
  19554. */
  19555. static SHIFT:number;
  19556. /**
  19557. * 与空格键的键控代码值 (32) 关联的常数。
  19558. */
  19559. static SPACE:number;
  19560. /**
  19561. * 与 Tab 的键控代码值 (9) 关联的常数。
  19562. */
  19563. static TAB:number;
  19564. /**
  19565. * 与 Insert 的键控代码值 (45) 关联的常数。
  19566. */
  19567. static INSERT:number;
  19568. }
  19569. }
  19570. declare module laya.events {
  19571. /**
  19572. * <p><code>KeyBoardManager</code> 是键盘事件管理类。该类从浏览器中接收键盘事件,并派发该事件。</p>
  19573. * <p>派发事件时若 Stage.focus 为空则只从 Stage 上派发该事件,否则将从 Stage.focus 对象开始一直冒泡派发该事件。所以在 Laya.stage 上监听键盘事件一定能够收到,如果在其他地方监听,则必须处在Stage.focus的冒泡链上才能收到该事件。</p>
  19574. * <p>用户可以通过代码 Laya.stage.focus=someNode 的方式来设置focus对象。</p>
  19575. * <p>用户可统一的根据事件对象中 e.keyCode 来判断按键类型,该属性兼容了不同浏览器的实现。</p>
  19576. */
  19577. class KeyBoardManager {
  19578. private static _pressKeys:any;
  19579. /**
  19580. * 是否开启键盘事件,默认为true
  19581. */
  19582. static enabled:boolean;
  19583. private static _addEvent:any;
  19584. private static _dispatch:any;
  19585. /**
  19586. * 返回指定键是否被按下。
  19587. * @param key 键值。
  19588. * @return 是否被按下。
  19589. */
  19590. static hasKeyDown(key:number):boolean;
  19591. }
  19592. }
  19593. declare module laya.events {
  19594. /**
  19595. * <p><code>KeyLocation</code> 类包含表示在键盘或类似键盘的输入设备上按键位置的常量。</p>
  19596. * <p><code>KeyLocation</code> 常数用在键盘事件对象的 <code>keyLocation </code>属性中。</p>
  19597. */
  19598. class KeyLocation {
  19599. /**
  19600. * 表示激活的键不区分位于左侧还是右侧,也不区分是否位于数字键盘(或者是使用对应于数字键盘的虚拟键激活的)。
  19601. */
  19602. static STANDARD:number;
  19603. /**
  19604. * 表示激活的键在左侧键位置(此键有多个可能的位置)。
  19605. */
  19606. static LEFT:number;
  19607. /**
  19608. * 表示激活的键在右侧键位置(此键有多个可能的位置)。
  19609. */
  19610. static RIGHT:number;
  19611. /**
  19612. * <p>表示激活的键位于数字键盘或者是使用对应于数字键盘的虚拟键激活的。</p>
  19613. * <p>注意:此属性只在flash模式下有效。</p>
  19614. */
  19615. static NUM_PAD:number;
  19616. }
  19617. }
  19618. declare module laya.events {
  19619. /**
  19620. * <p><code>MouseManager</code> 是鼠标、触摸交互管理器。</p>
  19621. * <p>鼠标事件流包括捕获阶段、目标阶段、冒泡阶段。<br/>
  19622. * 捕获阶段:此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象;<br/>
  19623. * 目标阶段:找到命中的目标对象;<br/>
  19624. * 冒泡阶段:事件离开目标对象,按节点层级向上逐层通知,直到到达舞台的过程。</p>
  19625. */
  19626. class MouseManager {
  19627. /**
  19628. * MouseManager 单例引用。
  19629. */
  19630. static instance:MouseManager;
  19631. /**
  19632. * 是否开启鼠标检测,默认为true
  19633. */
  19634. static enabled:boolean;
  19635. /**
  19636. * 是否开启多点触控
  19637. */
  19638. static multiTouchEnabled:boolean;
  19639. /**
  19640. * canvas 上的鼠标X坐标。
  19641. */
  19642. mouseX:number;
  19643. /**
  19644. * canvas 上的鼠标Y坐标。
  19645. */
  19646. mouseY:number;
  19647. /**
  19648. * 是否禁用除 stage 以外的鼠标事件检测。
  19649. */
  19650. disableMouseEvent:boolean;
  19651. /**
  19652. * 鼠标按下的时间。单位为毫秒。
  19653. */
  19654. mouseDownTime:number;
  19655. /**
  19656. * 鼠标移动精度。
  19657. */
  19658. mouseMoveAccuracy:number;
  19659. /**
  19660. * @private
  19661. */
  19662. private static _isTouchRespond:any;
  19663. private _stage:any;
  19664. /**
  19665. * @private 希望capture鼠标事件的对象。
  19666. */
  19667. private _captureSp:any;
  19668. /**
  19669. * @private 现在不支持直接把绝对坐标转到本地坐标,只能一级一级做下去,因此记录一下这个链
  19670. */
  19671. private _captureChain:any;
  19672. /**
  19673. * @private capture对象独占消息
  19674. */
  19675. private _captureExlusiveMode:any;
  19676. /**
  19677. * @private 在发送事件的过程中,是否发送给了_captureSp
  19678. */
  19679. private _hitCaputreSp:any;
  19680. private _point:any;
  19681. private _rect:any;
  19682. private _target:any;
  19683. private _lastMoveTimer:any;
  19684. private _isLeftMouse:any;
  19685. private _prePoint:any;
  19686. private _touchIDs:any;
  19687. private _curTouchID:any;
  19688. private _id:any;
  19689. private static _isFirstTouch:any;
  19690. /**
  19691. * @private 初始化。
  19692. */
  19693. __init__(stage:laya.display.Stage,canvas:any):void;
  19694. private _tTouchID:any;
  19695. private initEvent:any;
  19696. private checkMouseWheel:any;
  19697. private onMouseMove:any;
  19698. private onMouseDown:any;
  19699. private onMouseUp:any;
  19700. private check:any;
  19701. private hitTest:any;
  19702. private _checkAllBaseUI:any;
  19703. /**
  19704. * 处理3d界面。
  19705. * @param mousex
  19706. * @param mousey
  19707. * @param callback
  19708. * @return
  19709. */
  19710. check3DUI(mousex:number,mousey:number,callback:Function):boolean;
  19711. handleExclusiveCapture(mousex:number,mousey:number,callback:Function):boolean;
  19712. handleCapture(mousex:number,mousey:number,callback:Function):boolean;
  19713. /**
  19714. * 执行事件处理。
  19715. */
  19716. runEvent(evt:any):void;
  19717. /**
  19718. * @param sp
  19719. * @param exlusive 是否是独占模式
  19720. */
  19721. setCapture(sp:laya.display.Sprite,exclusive?:boolean):void;
  19722. releaseCapture():void;
  19723. }
  19724. }
  19725. declare module laya.events {
  19726. /**
  19727. * @private Touch事件管理类,处理多点触控下的鼠标事件
  19728. */
  19729. class TouchManager {
  19730. static I:TouchManager;
  19731. private static _oldArr:any;
  19732. private static _newArr:any;
  19733. private static _tEleArr:any;
  19734. /**
  19735. * 当前over的touch表
  19736. */
  19737. private preOvers:any;
  19738. /**
  19739. * 当前down的touch表
  19740. */
  19741. private preDowns:any;
  19742. private preRightDowns:any;
  19743. /**
  19744. * 是否启用
  19745. */
  19746. enable:boolean;
  19747. private _lastClickTime:any;
  19748. private _clearTempArrs:any;
  19749. /**
  19750. * 从touch表里查找对应touchID的数据
  19751. * @param touchID touch ID
  19752. * @param arr touch表
  19753. * @return
  19754. */
  19755. private getTouchFromArr:any;
  19756. /**
  19757. * 从touch表里移除一个元素
  19758. * @param touchID touch ID
  19759. * @param arr touch表
  19760. */
  19761. private removeTouchFromArr:any;
  19762. /**
  19763. * 创建一个touch数据
  19764. * @param ele 当前的根节点
  19765. * @param touchID touchID
  19766. * @return
  19767. */
  19768. private createTouchO:any;
  19769. /**
  19770. * 处理touchStart
  19771. * @param ele 根节点
  19772. * @param touchID touchID
  19773. * @param isLeft (可选)是否为左键
  19774. */
  19775. onMouseDown(ele:any,touchID:number,isLeft?:boolean):void;
  19776. /**
  19777. * 派发事件。
  19778. * @param eles 对象列表。
  19779. * @param type 事件类型。
  19780. */
  19781. private sendEvents:any;
  19782. /**
  19783. * 获取对象列表。
  19784. * @param start 起始节点。
  19785. * @param end 结束节点。
  19786. * @param rst 返回值。如果此值不为空,则将其赋值为计算结果,从而避免创建新数组;如果此值为空,则创建新数组返回。
  19787. * @return Array 返回节点列表。
  19788. */
  19789. private getEles:any;
  19790. /**
  19791. * touchMove时处理out事件和over时间。
  19792. * @param eleNew 新的根节点。
  19793. * @param elePre 旧的根节点。
  19794. * @param touchID (可选)touchID,默认为0。
  19795. */
  19796. private checkMouseOutAndOverOfMove:any;
  19797. /**
  19798. * 处理TouchMove事件
  19799. * @param ele 根节点
  19800. * @param touchID touchID
  19801. */
  19802. onMouseMove(ele:any,touchID:number):void;
  19803. getLastOvers():any[];
  19804. stageMouseOut():void;
  19805. /**
  19806. * 处理TouchEnd事件
  19807. * @param ele 根节点
  19808. * @param touchID touchID
  19809. * @param isLeft 是否为左键
  19810. */
  19811. onMouseUp(ele:any,touchID:number,isLeft?:boolean):void;
  19812. }
  19813. }
  19814. declare module laya.filters {
  19815. /**
  19816. * 模糊滤镜
  19817. */
  19818. class BlurFilter extends laya.filters.Filter {
  19819. /**
  19820. * 模糊滤镜的强度(值越大,越不清晰
  19821. */
  19822. strength:number;
  19823. strength_sig2_2sig2_gauss1:any[];
  19824. strength_sig2_native:Float32Array;
  19825. renderFunc:any;
  19826. /**
  19827. * 模糊滤镜
  19828. * @param strength 模糊滤镜的强度值
  19829. */
  19830. constructor(strength?:number);
  19831. /**
  19832. * @private 当前滤镜的类型
  19833. * @override
  19834. */
  19835. readonly type:number;
  19836. getStrenth_sig2_2sig2_native():Float32Array;
  19837. }
  19838. }
  19839. declare module laya.filters {
  19840. /**
  19841. * @private
  19842. */
  19843. class BlurFilterGLRender {
  19844. private static blurinfo:any;
  19845. render(rt:laya.resource.RenderTexture2D,ctx:laya.resource.Context,width:number,height:number,filter:laya.filters.BlurFilter):void;
  19846. setShaderInfo(shader:laya.webgl.shader.d2.value.Value2D,filter:laya.filters.BlurFilter,w:number,h:number):void;
  19847. }
  19848. }
  19849. declare module laya.filters {
  19850. /**
  19851. * <p><code>ColorFilter</code> 是颜色滤镜。使用 ColorFilter 类可以将 4 x 5 矩阵转换应用于输入图像上的每个像素的 RGBA 颜色和 Alpha 值,以生成具有一组新的 RGBA 颜色和 Alpha 值的结果。该类允许饱和度更改、色相旋转、亮度转 Alpha 以及各种其他效果。您可以将滤镜应用于任何显示对象(即,从 Sprite 类继承的对象)。</p>
  19852. * <p>注意:对于 RGBA 值,最高有效字节代表红色通道值,其后的有效字节分别代表绿色、蓝色和 Alpha 通道值。</p>
  19853. */
  19854. class ColorFilter extends laya.filters.Filter implements laya.filters.IFilter {
  19855. /**
  19856. * 对比度列表
  19857. */
  19858. private static DELTA_INDEX:any;
  19859. /**
  19860. * 灰色矩阵
  19861. */
  19862. private static GRAY_MATRIX:any;
  19863. /**
  19864. * 单位矩阵,表示什么效果都没有
  19865. */
  19866. private static IDENTITY_MATRIX:any;
  19867. /**
  19868. * 标准矩阵长度
  19869. */
  19870. private static LENGTH:any;
  19871. /**
  19872. * 当前使用的矩阵
  19873. */
  19874. private _matrix:any;
  19875. /**
  19876. * 创建一个 <code>ColorFilter</code> 实例。
  19877. * @param mat (可选)由 20 个项目(排列成 4 x 5 矩阵)组成的数组,用于颜色转换。
  19878. */
  19879. constructor(mat?:any[]);
  19880. /**
  19881. * 设置为灰色滤镜
  19882. */
  19883. gray():ColorFilter;
  19884. /**
  19885. * 设置为变色滤镜
  19886. * @param red 红色增量,范围:0~255
  19887. * @param green 绿色增量,范围:0~255
  19888. * @param blue 蓝色增量,范围:0~255
  19889. * @param alpha alpha,范围:0~1
  19890. */
  19891. color(red?:number,green?:number,blue?:number,alpha?:number):ColorFilter;
  19892. /**
  19893. * 设置滤镜色
  19894. * @param color 颜色值
  19895. */
  19896. setColor(color:string):ColorFilter;
  19897. /**
  19898. * 设置矩阵数据
  19899. * @param matrix 由 20 个项目(排列成 4 x 5 矩阵)组成的数组
  19900. * @return this
  19901. */
  19902. setByMatrix(matrix:any[]):ColorFilter;
  19903. /**
  19904. * @private
  19905. * @override
  19906. */
  19907. readonly type:number;
  19908. /**
  19909. * 调整颜色,包括亮度,对比度,饱和度和色调
  19910. * @param brightness 亮度,范围:-100~100
  19911. * @param contrast 对比度,范围:-100~100
  19912. * @param saturation 饱和度,范围:-100~100
  19913. * @param hue 色调,范围:-180~180
  19914. * @return this
  19915. */
  19916. adjustColor(brightness:number,contrast:number,saturation:number,hue:number):ColorFilter;
  19917. /**
  19918. * 调整亮度
  19919. * @param brightness 亮度,范围:-100~100
  19920. * @return this
  19921. */
  19922. adjustBrightness(brightness:number):ColorFilter;
  19923. /**
  19924. * 调整对比度
  19925. * @param contrast 对比度,范围:-100~100
  19926. * @return this
  19927. */
  19928. adjustContrast(contrast:number):ColorFilter;
  19929. /**
  19930. * 调整饱和度
  19931. * @param saturation 饱和度,范围:-100~100
  19932. * @return this
  19933. */
  19934. adjustSaturation(saturation:number):ColorFilter;
  19935. /**
  19936. * 调整色调
  19937. * @param hue 色调,范围:-180~180
  19938. * @return this
  19939. */
  19940. adjustHue(hue:number):ColorFilter;
  19941. /**
  19942. * 重置成单位矩阵,去除滤镜效果
  19943. */
  19944. reset():ColorFilter;
  19945. /**
  19946. * 矩阵乘法
  19947. * @param matrix
  19948. * @return this
  19949. */
  19950. private _multiplyMatrix:any;
  19951. /**
  19952. * 规范值的范围
  19953. * @param val 当前值
  19954. * @param limit 值的范围-limit~limit
  19955. */
  19956. private _clampValue:any;
  19957. /**
  19958. * 规范矩阵,将矩阵调整到正确的大小
  19959. * @param matrix 需要调整的矩阵
  19960. */
  19961. private _fixMatrix:any;
  19962. /**
  19963. * 复制矩阵
  19964. */
  19965. private _copyMatrix:any;
  19966. }
  19967. }
  19968. declare module laya.filters {
  19969. /**
  19970. * <code>Filter</code> 是滤镜基类。
  19971. */
  19972. class Filter implements laya.filters.IFilter {
  19973. /**
  19974. * @private 模糊滤镜。
  19975. */
  19976. static BLUR:number;
  19977. /**
  19978. * @private 颜色滤镜。
  19979. */
  19980. static COLOR:number;
  19981. /**
  19982. * @private 发光滤镜。
  19983. */
  19984. static GLOW:number;
  19985. /**
  19986. * 创建一个 <code>Filter</code> 实例。
  19987. */
  19988. constructor();
  19989. /**
  19990. * @private 滤镜类型。
  19991. */
  19992. readonly type:number;
  19993. static _filter:(sprite:laya.display.Sprite,context:laya.resource.Context,x:number,y:number) =>void;
  19994. }
  19995. }
  19996. declare module laya.filters {
  19997. /**
  19998. * 发光滤镜(也可以当成阴影滤使用)
  19999. */
  20000. class GlowFilter extends laya.filters.Filter {
  20001. /**
  20002. * 数据的存储,顺序R,G,B,A,blurWidth,offX,offY;
  20003. */
  20004. private _elements:any;
  20005. /**
  20006. * 滤镜的颜色
  20007. */
  20008. private _color:any;
  20009. /**
  20010. * 创建发光滤镜
  20011. * @param color 滤镜的颜色
  20012. * @param blur 边缘模糊的大小
  20013. * @param offX X轴方向的偏移
  20014. * @param offY Y轴方向的偏移
  20015. */
  20016. constructor(color:string,blur?:number,offX?:number,offY?:number);
  20017. /**
  20018. * @private 滤镜类型
  20019. * @override
  20020. */
  20021. readonly type:number;
  20022. /**
  20023. * @private
  20024. */
  20025. /**
  20026. * @private
  20027. */
  20028. offY:number;
  20029. /**
  20030. * @private
  20031. */
  20032. /**
  20033. * @private
  20034. */
  20035. offX:number;
  20036. /**
  20037. * @private
  20038. */
  20039. getColor():any[];
  20040. /**
  20041. * @private
  20042. */
  20043. /**
  20044. * @private
  20045. */
  20046. blur:number;
  20047. getColorNative():Float32Array;
  20048. getBlurInfo1Native():Float32Array;
  20049. getBlurInfo2Native():Float32Array;
  20050. }
  20051. }
  20052. declare module laya.filters {
  20053. /**
  20054. * @private
  20055. */
  20056. class GlowFilterGLRender {
  20057. private setShaderInfo:any;
  20058. render(rt:laya.resource.RenderTexture2D,ctx:laya.resource.Context,width:number,height:number,filter:laya.filters.GlowFilter):void;
  20059. }
  20060. }
  20061. declare module laya.filters {
  20062. /**
  20063. * 滤镜接口。
  20064. */
  20065. interface IFilter{
  20066. type:number;
  20067. }
  20068. }
  20069. declare module laya.html.dom {
  20070. /**
  20071. * HTML图文类,用于显示html内容
  20072. *
  20073. * 支持的标签如下:
  20074. * a:链接标签,点击后会派发"link"事件 比如:<a href='alink'>a</a>
  20075. * div:div容器标签,比如:<div>abc</div>
  20076. * span:行内元素标签,比如:<span style='color:#ff0000'>abc</span>
  20077. * p:行元素标签,p标签会自动换行,div不会,比如:<p>abc</p>
  20078. * img:图片标签,比如:<img src='res/boy.png'></img>
  20079. * br:换行标签,比如:<div>abc<br/>def</div>
  20080. * style:样式标签,比如:<div style='width:130px;height:50px;color:#ff0000'>abc</div>
  20081. * link:外链样式标签,可以加载一个css文件来当style使用,比如:<link type='text/css' href='html/test.css'/>
  20082. *
  20083. * style支持的属性如下:
  20084. * italic:true|false; 是否是斜体
  20085. * bold:true|false; 是否是粗体
  20086. * letter-spacing:10px; 字间距
  20087. * font-family:宋体; 字体
  20088. * font-size:20px; 字体大小
  20089. * font-weight:bold:none; 字体是否是粗体,功能同bold
  20090. * color:#ff0000; 字体颜色
  20091. * stroke:2px; 字体描边宽度
  20092. * strokeColor:#ff0000; 字体描边颜色
  20093. * padding:10px 10px 20px 20px; 边缘的距离
  20094. * vertical-align:top|bottom|middle; 垂直对齐方式
  20095. * align:left|right|center; 水平对齐方式
  20096. * line-height:20px; 行高
  20097. * background-color:#ff0000; 背景颜色
  20098. * border-color:#ff0000; 边框颜色
  20099. * width:100px; 对象宽度
  20100. * height:100px; 对象高度
  20101. *
  20102. * 示例用法:
  20103. * var div:HTMLDivElement=new HTMLDivElement();
  20104. * div.innerHTML = "<link type='text/css' href='html/test.css'/><a href='alink'>a</a><div style='width:130px;height:50px;color:#ff0000'>div</div><br/><span style='font-weight:bold;color:#ffffff;font-size:30px;stroke:2px;italic:true;'>span</span><span style='letter-spacing:5px'>span2</span><p>p</p><img src='res/boy.png'></img>";
  20105. */
  20106. class HTMLDivElement extends laya.display.Sprite {
  20107. /**
  20108. * @private
  20109. */
  20110. private _recList:any;
  20111. /**
  20112. * @private
  20113. */
  20114. private _innerHTML:any;
  20115. /**
  20116. * @private
  20117. */
  20118. private _repaintState:any;
  20119. constructor();
  20120. /**
  20121. * @private
  20122. * @override
  20123. */
  20124. destroy(destroyChild?:boolean):void;
  20125. /**
  20126. * @private
  20127. */
  20128. private _htmlDivRepaint:any;
  20129. private _updateGraphicWork:any;
  20130. private _setGraphicDirty:any;
  20131. /**
  20132. * @private
  20133. */
  20134. private _doClears:any;
  20135. /**
  20136. * @private
  20137. */
  20138. private _updateGraphic:any;
  20139. /**
  20140. * 获取HTML样式
  20141. */
  20142. readonly style:laya.html.utils.HTMLStyle;
  20143. /**
  20144. * 设置标签内容
  20145. */
  20146. innerHTML:string;
  20147. private _refresh:any;
  20148. /**
  20149. * 获取內容宽度
  20150. */
  20151. readonly contextWidth:number;
  20152. /**
  20153. * 获取內容高度
  20154. */
  20155. readonly contextHeight:number;
  20156. /**
  20157. * @private
  20158. */
  20159. private _onMouseClick:any;
  20160. /**
  20161. * @private
  20162. */
  20163. private _eventLink:any;
  20164. }
  20165. }
  20166. declare module laya.html.dom {
  20167. /**
  20168. * @private
  20169. */
  20170. class HTMLDivParser extends laya.html.dom.HTMLElement {
  20171. /**
  20172. * 实际内容的高
  20173. */
  20174. contextHeight:number;
  20175. /**
  20176. * 实际内容的宽
  20177. */
  20178. contextWidth:number;
  20179. /**
  20180. * @private
  20181. */
  20182. private _htmlBounds:any;
  20183. /**
  20184. * @private
  20185. */
  20186. private _boundsRec:any;
  20187. /**
  20188. * 重绘回调
  20189. */
  20190. repaintHandler:laya.utils.Handler;
  20191. /**
  20192. * @override
  20193. */
  20194. reset():laya.html.dom.HTMLElement;
  20195. /**
  20196. * 设置标签内容
  20197. */
  20198. innerHTML:string;
  20199. /**
  20200. * @override
  20201. */
  20202. /**
  20203. * 获取对象的宽
  20204. * @override
  20205. */
  20206. width:number;
  20207. /**
  20208. * 追加内容,解析并对显示对象排版
  20209. * @param text
  20210. */
  20211. appendHTML(text:string):void;
  20212. /**
  20213. * 获取bounds
  20214. * @return
  20215. */
  20216. getBounds():laya.maths.Rectangle;
  20217. /**
  20218. * @override
  20219. */
  20220. parentRepaint(recreate?:boolean):void;
  20221. /**
  20222. * @private 对显示内容进行排版
  20223. */
  20224. layout():void;
  20225. /**
  20226. * 获取对象的高
  20227. * @override
  20228. */
  20229. height:number;
  20230. }
  20231. }
  20232. declare module laya.html.dom {
  20233. /**
  20234. * @private
  20235. */
  20236. class HTMLDocument {
  20237. static document:HTMLDocument;
  20238. all:laya.html.dom.HTMLElement[];
  20239. styleSheets:any;
  20240. getElementById(id:string):laya.html.dom.HTMLElement;
  20241. setElementById(id:string,e:laya.html.dom.HTMLElement):void;
  20242. }
  20243. }
  20244. declare module laya.html.dom {
  20245. enum HTMLElementType {
  20246. BASE = 0,
  20247. IMAGE = 1
  20248. }
  20249. /**
  20250. * @private
  20251. */
  20252. class HTMLElement {
  20253. private static _EMPTYTEXT:any;
  20254. eletype:HTMLElementType;
  20255. URI:laya.net.URL;
  20256. parent:HTMLElement;
  20257. _style:laya.html.utils.HTMLStyle;
  20258. protected _text:any;
  20259. protected _children:any[];
  20260. protected _x:number;
  20261. protected _y:number;
  20262. protected _width:number;
  20263. protected _height:number;
  20264. /**
  20265. * 格式化指定的地址并返回。
  20266. * @param url 地址。
  20267. * @param base 基础路径,如果没有,则使用basePath。
  20268. * @return 格式化处理后的地址。
  20269. */
  20270. static formatURL1(url:string,basePath?:string):string;
  20271. constructor();
  20272. protected _creates():void;
  20273. /**
  20274. * 重置
  20275. */
  20276. reset():HTMLElement;
  20277. id:string;
  20278. repaint(recreate?:boolean):void;
  20279. parentRepaint(recreate?:boolean):void;
  20280. innerTEXT:string;
  20281. protected _setParent(value:HTMLElement):void;
  20282. appendChild(c:HTMLElement):HTMLElement;
  20283. addChild(c:HTMLElement):HTMLElement;
  20284. removeChild(c:HTMLElement):HTMLElement;
  20285. static getClassName(tar:any):string;
  20286. /**
  20287. * <p>销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。</p>
  20288. * <p>destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。</p>
  20289. * @param destroyChild (可选)是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
  20290. */
  20291. destroy():void;
  20292. /**
  20293. * 销毁所有子对象,不销毁自己本身。
  20294. */
  20295. destroyChildren():void;
  20296. readonly style:laya.html.utils.HTMLStyle;
  20297. x:number;
  20298. y:number;
  20299. width:number;
  20300. height:number;
  20301. href:string;
  20302. formatURL(url:string):string;
  20303. color:string;
  20304. className:string;
  20305. drawToGraphic(graphic:laya.display.Graphics,gX:number,gY:number,recList:any[]):void;
  20306. renderSelfToGraphic(graphic:laya.display.Graphics,gX:number,gY:number,recList:any[]):void;
  20307. private workLines:any;
  20308. private createOneLine:any;
  20309. }
  20310. }
  20311. declare module laya.html.dom {
  20312. /**
  20313. * @private
  20314. */
  20315. class HTMLHitRect {
  20316. rec:laya.maths.Rectangle;
  20317. href:string;
  20318. constructor();
  20319. reset():HTMLHitRect;
  20320. recover():void;
  20321. static create():HTMLHitRect;
  20322. }
  20323. }
  20324. declare module laya.html.dom {
  20325. /**
  20326. * iframe标签类,目前用于加载外并解析数据
  20327. */
  20328. class HTMLIframeElement extends laya.html.dom.HTMLDivElement {
  20329. constructor();
  20330. /**
  20331. * 加载html文件,并解析数据
  20332. * @param url
  20333. */
  20334. href:string;
  20335. }
  20336. }
  20337. declare module laya.html.dom {
  20338. /**
  20339. * @private
  20340. */
  20341. class HTMLImageElement extends laya.html.dom.HTMLElement {
  20342. private _tex:any;
  20343. private _url:any;
  20344. constructor();
  20345. /**
  20346. * @override
  20347. */
  20348. reset():laya.html.dom.HTMLElement;
  20349. src:string;
  20350. private onloaded:any;
  20351. /**
  20352. * @param graphic
  20353. * @param gX
  20354. * @param gY
  20355. * @param recList
  20356. * @override
  20357. */
  20358. renderSelfToGraphic(graphic:laya.display.Graphics,gX:number,gY:number,recList:any[]):void;
  20359. }
  20360. }
  20361. declare module laya.html.dom {
  20362. /**
  20363. * @private
  20364. */
  20365. class HTMLLinkElement extends laya.html.dom.HTMLElement {
  20366. static _cuttingStyle:RegExp;
  20367. type:string;
  20368. private _loader:any;
  20369. /**
  20370. * @override
  20371. */
  20372. protected _creates():void;
  20373. /**
  20374. * @param graphic
  20375. * @param gX
  20376. * @param gY
  20377. * @param recList
  20378. * @override
  20379. */
  20380. drawToGraphic(graphic:laya.display.Graphics,gX:number,gY:number,recList:any[]):void;
  20381. /**
  20382. * @override
  20383. */
  20384. reset():laya.html.dom.HTMLElement;
  20385. /**
  20386. * @override
  20387. */
  20388. href:string;
  20389. }
  20390. }
  20391. declare module laya.html.dom {
  20392. /**
  20393. * @private
  20394. */
  20395. class HTMLStyleElement extends laya.html.dom.HTMLElement {
  20396. /**
  20397. * @override
  20398. */
  20399. protected _creates():void;
  20400. /**
  20401. * @param graphic
  20402. * @param gX
  20403. * @param gY
  20404. * @param recList
  20405. * @override
  20406. */
  20407. drawToGraphic(graphic:laya.display.Graphics,gX:number,gY:number,recList:any[]):void;
  20408. /**
  20409. * @override
  20410. */
  20411. reset():laya.html.dom.HTMLElement;
  20412. /**
  20413. * 解析样式
  20414. * @override
  20415. */
  20416. innerTEXT:string;
  20417. }
  20418. }
  20419. declare module laya.html.utils {
  20420. /**
  20421. * @private
  20422. */
  20423. class HTMLExtendStyle {
  20424. static EMPTY:HTMLExtendStyle;
  20425. /**
  20426. * <p>描边宽度(以像素为单位)。</p>
  20427. * 默认值0,表示不描边。
  20428. * @default 0
  20429. */
  20430. stroke:number;
  20431. /**
  20432. * <p>描边颜色,以字符串表示。</p>
  20433. * @default "#000000";
  20434. */
  20435. strokeColor:string;
  20436. /**
  20437. * <p>垂直行间距(以像素为单位)</p>
  20438. */
  20439. leading:number;
  20440. /**
  20441. * 行高。
  20442. */
  20443. lineHeight:number;
  20444. letterSpacing:number;
  20445. href:string;
  20446. constructor();
  20447. reset():HTMLExtendStyle;
  20448. recover():void;
  20449. /**
  20450. * 从对象池中创建
  20451. */
  20452. static create():HTMLExtendStyle;
  20453. }
  20454. }
  20455. declare module laya.html.utils {
  20456. /**
  20457. * @private
  20458. */
  20459. class HTMLParse {
  20460. private static char255:any;
  20461. private static spacePattern:any;
  20462. private static char255AndOneSpacePattern:any;
  20463. private static _htmlClassMapShort:any;
  20464. /**
  20465. * 根据类型获取对应的节点
  20466. * @param type
  20467. */
  20468. static getInstance(type:string):any;
  20469. /**
  20470. * 解析HTML
  20471. * @param ower
  20472. * @param xmlString
  20473. * @param url
  20474. */
  20475. static parse(ower:laya.html.dom.HTMLDivParser,xmlString:string,url:laya.net.URL):void;
  20476. /**
  20477. * 解析xml节点 该函数会被递归调用
  20478. * @param xml
  20479. */
  20480. private static _parseXML:any;
  20481. }
  20482. }
  20483. declare module laya.html.utils {
  20484. /**
  20485. * @private
  20486. */
  20487. class HTMLStyle {
  20488. private static _CSSTOVALUE:any;
  20489. private static _parseCSSRegExp:any;
  20490. /**
  20491. * 需要继承的属性
  20492. */
  20493. private static _inheritProps:any;
  20494. /**
  20495. * 水平居左对齐方式。
  20496. */
  20497. static ALIGN_LEFT:string;
  20498. /**
  20499. * 水平居中对齐方式。
  20500. */
  20501. static ALIGN_CENTER:string;
  20502. /**
  20503. * 水平居右对齐方式。
  20504. */
  20505. static ALIGN_RIGHT:string;
  20506. /**
  20507. * 垂直居中对齐方式。
  20508. */
  20509. static VALIGN_TOP:string;
  20510. /**
  20511. * 垂直居中对齐方式。
  20512. */
  20513. static VALIGN_MIDDLE:string;
  20514. /**
  20515. * 垂直居底部对齐方式。
  20516. */
  20517. static VALIGN_BOTTOM:string;
  20518. /**
  20519. * 样式表信息。
  20520. */
  20521. static styleSheets:any;
  20522. /**
  20523. * 添加布局。
  20524. */
  20525. static ADDLAYOUTED:number;
  20526. private static _PADDING:any;
  20527. protected static _HEIGHT_SET:number;
  20528. protected static _LINE_ELEMENT:number;
  20529. protected static _NOWARP:number;
  20530. protected static _WIDTHAUTO:number;
  20531. protected static _BOLD:number;
  20532. protected static _ITALIC:number;
  20533. /**
  20534. * @private
  20535. */
  20536. protected static _CSS_BLOCK:number;
  20537. /**
  20538. * @private
  20539. */
  20540. protected static _DISPLAY_NONE:number;
  20541. /**
  20542. * @private
  20543. */
  20544. protected static _ABSOLUTE:number;
  20545. /**
  20546. * @private
  20547. */
  20548. protected static _WIDTH_SET:number;
  20549. protected static alignVDic:any;
  20550. protected static align_Value:any;
  20551. protected static vAlign_Value:any;
  20552. protected static _ALIGN:number;
  20553. protected static _VALIGN:number;
  20554. fontSize:number;
  20555. family:string;
  20556. color:string;
  20557. ower:laya.html.dom.HTMLElement;
  20558. private _extendStyle:any;
  20559. textDecoration:string;
  20560. /**
  20561. * 文本背景颜色,以字符串表示。
  20562. */
  20563. bgColor:string;
  20564. /**
  20565. * 文本边框背景颜色,以字符串表示。
  20566. */
  20567. borderColor:string;
  20568. /**
  20569. * 边距信息。
  20570. */
  20571. padding:any[];
  20572. constructor();
  20573. private _getExtendStyle:any;
  20574. href:string;
  20575. /**
  20576. * <p>描边宽度(以像素为单位)。</p>
  20577. * 默认值0,表示不描边。
  20578. * @default 0
  20579. */
  20580. stroke:number;
  20581. /**
  20582. * <p>描边颜色,以字符串表示。</p>
  20583. * @default "#000000";
  20584. */
  20585. strokeColor:string;
  20586. /**
  20587. * <p>垂直行间距(以像素为单位)</p>
  20588. */
  20589. leading:number;
  20590. /**
  20591. * 行高。
  20592. */
  20593. lineHeight:number;
  20594. /**
  20595. * <p>表示使用此文本格式的文本段落的水平对齐方式。</p>
  20596. * @default "left"
  20597. */
  20598. align:string;
  20599. /**
  20600. * <p>表示使用此文本格式的文本段落的水平对齐方式。</p>
  20601. * @default "left"
  20602. */
  20603. valign:string;
  20604. /**
  20605. * 字体样式字符串。
  20606. */
  20607. font:string;
  20608. /**
  20609. * 是否显示为块级元素。
  20610. */
  20611. /**
  20612. * 表示元素是否显示为块级元素。
  20613. */
  20614. block:boolean;
  20615. /**
  20616. * 重置,方便下次复用
  20617. */
  20618. reset():HTMLStyle;
  20619. /**
  20620. * 回收
  20621. */
  20622. recover():void;
  20623. /**
  20624. * 从对象池中创建
  20625. */
  20626. static create():HTMLStyle;
  20627. /**
  20628. * 复制传入的 CSSStyle 属性值。
  20629. * @param src 待复制的 CSSStyle 对象。
  20630. */
  20631. inherit(src:HTMLStyle):void;
  20632. /**
  20633. * 表示是否换行。
  20634. */
  20635. wordWrap:boolean;
  20636. /**
  20637. * 是否为粗体
  20638. */
  20639. bold:boolean;
  20640. /**
  20641. * 表示使用此文本格式的文本是否为斜体。
  20642. * @default false
  20643. */
  20644. italic:boolean;
  20645. /**
  20646. * @inheritDoc
  20647. */
  20648. widthed(sprite:any):boolean;
  20649. /**
  20650. * 设置如何处理元素内的空白。
  20651. */
  20652. whiteSpace:string;
  20653. /**
  20654. * 宽度。
  20655. */
  20656. width:any;
  20657. /**
  20658. * 高度。
  20659. */
  20660. height:any;
  20661. /**
  20662. * 是否已设置高度。
  20663. * @param sprite 显示对象 Sprite。
  20664. * @return 一个Boolean 表示是否已设置高度。
  20665. */
  20666. heighted(sprite:any):boolean;
  20667. /**
  20668. * 设置宽高。
  20669. * @param w 宽度。
  20670. * @param h 高度。
  20671. */
  20672. size(w:number,h:number):void;
  20673. /**
  20674. * 是否是行元素。
  20675. */
  20676. getLineElement():boolean;
  20677. setLineElement(value:boolean):void;
  20678. /**
  20679. * 间距。
  20680. */
  20681. letterSpacing:number;
  20682. /**
  20683. * 设置 CSS 样式字符串。
  20684. * @param text CSS样式字符串。
  20685. */
  20686. cssText(text:string):void;
  20687. /**
  20688. * 根据传入的属性名、属性值列表,设置此对象的属性值。
  20689. * @param attrs 属性名与属性值列表。
  20690. */
  20691. attrs(attrs:any[]):void;
  20692. /**
  20693. * 元素的定位类型。
  20694. */
  20695. position:string;
  20696. /**
  20697. * @inheritDoc
  20698. */
  20699. readonly absolute:boolean;
  20700. /**
  20701. * @inheritDoc
  20702. */
  20703. readonly paddingLeft:number;
  20704. /**
  20705. * @inheritDoc
  20706. */
  20707. readonly paddingTop:number;
  20708. /**
  20709. * 通过传入的分割符,分割解析CSS样式字符串,返回样式列表。
  20710. * @param text CSS样式字符串。
  20711. * @param clipWord 分割符;
  20712. * @return 样式列表。
  20713. */
  20714. static parseOneCSS(text:string,clipWord:string):any[];
  20715. /**
  20716. * 解析 CSS 样式文本。
  20717. * @param text CSS 样式文本。
  20718. * @param uri URL对象。
  20719. */
  20720. static parseCSS(text:string,uri:laya.net.URL):void;
  20721. }
  20722. }
  20723. declare module laya.html.utils {
  20724. /**
  20725. * @private <code>ILayout</code> 类是显示对象的布局接口。
  20726. */
  20727. interface ILayout{
  20728. x:number;
  20729. y:number;
  20730. width:number;
  20731. height:number;
  20732. }
  20733. }
  20734. declare module laya.html.utils {
  20735. /**
  20736. * @private HTML的布局类 对HTML的显示对象进行排版
  20737. */
  20738. class Layout {
  20739. private static DIV_ELEMENT_PADDING:any;
  20740. private static _will:any;
  20741. static later(element:laya.html.dom.HTMLElement):void;
  20742. static layout(element:laya.html.dom.HTMLElement):any[];
  20743. static _multiLineLayout(element:laya.html.dom.HTMLElement):any[];
  20744. }
  20745. }
  20746. declare module laya.html.utils {
  20747. /**
  20748. * @private
  20749. */
  20750. class LayoutLine {
  20751. elements:laya.html.utils.ILayout[];
  20752. x:number;
  20753. y:number;
  20754. w:number;
  20755. h:number;
  20756. wordStartIndex:number;
  20757. minTextHeight:number;
  20758. mWidth:number;
  20759. /**
  20760. * 底对齐(默认)
  20761. * @param left
  20762. * @param width
  20763. * @param dy
  20764. * @param align 水平
  20765. * @param valign 垂直
  20766. * @param lineHeight 行高
  20767. */
  20768. updatePos(left:number,width:number,lineNum:number,dy:number,align:string,valign:string,lineHeight:number):void;
  20769. }
  20770. }
  20771. declare module laya.layagl {
  20772. /**
  20773. * @private CommandEncoder
  20774. */
  20775. class CommandEncoder {
  20776. constructor(layagl:any,reserveSize:number,adjustSize:number,isSyncToRenderThread:boolean);
  20777. getArrayData():any[];
  20778. getPtrID():number;
  20779. beginEncoding():void;
  20780. endEncoding():void;
  20781. clearEncoding():void;
  20782. getCount():number;
  20783. add_ShaderValue(o:any):void;
  20784. addShaderUniform(one:any):void;
  20785. }
  20786. }
  20787. declare module laya.layagl {
  20788. /**
  20789. * @private 封装GL命令
  20790. */
  20791. class LayaGL {
  20792. static ARRAY_BUFFER_TYPE_DATA:number;
  20793. static ARRAY_BUFFER_TYPE_CMD:number;
  20794. static ARRAY_BUFFER_REF_REFERENCE:number;
  20795. static ARRAY_BUFFER_REF_COPY:number;
  20796. static UPLOAD_SHADER_UNIFORM_TYPE_ID:number;
  20797. static UPLOAD_SHADER_UNIFORM_TYPE_DATA:number;
  20798. static instance:WebGLRenderingContext;
  20799. static layaGPUInstance:laya.webgl.LayaGPU;
  20800. }
  20801. }
  20802. declare module laya.layagl {
  20803. /**
  20804. * @private 普通命令执行器
  20805. */
  20806. class LayaGLRunner {
  20807. /**
  20808. * @private 批量上传ShaderUniforms。
  20809. */
  20810. static uploadShaderUniforms(layaGL:laya.layagl.LayaGL,commandEncoder:laya.layagl.CommandEncoder,shaderData:any,uploadUnTexture:boolean):number;
  20811. /**
  20812. * @private 上传ShaderUniform。
  20813. */
  20814. static uploadCustomUniform(layaGL:laya.layagl.LayaGL,custom:any[],index:number,data:any):number;
  20815. /**
  20816. * @private 批量上传ShaderUniforms。
  20817. */
  20818. static uploadShaderUniformsForNative(layaGL:any,commandEncoder:laya.layagl.CommandEncoder,shaderData:any):number;
  20819. }
  20820. }
  20821. declare module laya.layagl {
  20822. /**
  20823. * ...
  20824. * @author ww
  20825. */
  20826. class QuickTestTool {
  20827. private static showedDic:any;
  20828. private static _rendertypeToStrDic:any;
  20829. private static _typeToNameDic:any;
  20830. static getMCDName(type:number):string;
  20831. static showRenderTypeInfo(type:any,force?:boolean):void;
  20832. static __init__():void;
  20833. _renderType:number;
  20834. _repaint:number;
  20835. _x:number;
  20836. _y:number;
  20837. constructor();
  20838. /**
  20839. * 更新、呈现显示对象。由系统调用。
  20840. * @param context 渲染的上下文引用。
  20841. * @param x X轴坐标。
  20842. * @param y Y轴坐标。
  20843. */
  20844. render(context:laya.resource.Context,x:number,y:number):void;
  20845. private static _PreStageRender:any;
  20846. private static _countDic:any;
  20847. private static _countStart:any;
  20848. private static _i:any;
  20849. private static _countEnd:any;
  20850. static showCountInfo():void;
  20851. static enableQuickTest():void;
  20852. }
  20853. }
  20854. declare module laya.map {
  20855. /**
  20856. * 地图的每层都会分块渲染处理
  20857. * 本类就是地图的块数据
  20858. * @author ...
  20859. */
  20860. class GridSprite extends laya.display.Sprite {
  20861. /**
  20862. * 相对于地图X轴的坐标
  20863. */
  20864. relativeX:number;
  20865. /**
  20866. * 相对于地图Y轴的坐标
  20867. */
  20868. relativeY:number;
  20869. /**
  20870. * 是否用于对象层的独立物件
  20871. */
  20872. isAloneObject:boolean;
  20873. /**
  20874. * 当前GRID中是否有动画
  20875. */
  20876. isHaveAnimation:boolean;
  20877. /**
  20878. * 当前GRID包含的动画
  20879. */
  20880. aniSpriteArray:any[];
  20881. /**
  20882. * 当前GRID包含多少个TILE(包含动画)
  20883. */
  20884. drawImageNum:number;
  20885. private _map:any;
  20886. /**
  20887. * 传入必要的参数,用于裁剪,跟确认此对象类型
  20888. * @param map 把地图的引用传进来,参与一些裁剪计算
  20889. * @param objectKey true:表示当前GridSprite是个活动对象,可以控制,false:地图层的组成块
  20890. */
  20891. initData(map:laya.map.TiledMap,objectKey?:boolean):void;
  20892. /**
  20893. * 把一个动画对象绑定到当前GridSprite
  20894. * @param sprite 动画的显示对象
  20895. */
  20896. addAniSprite(sprite:laya.map.TileAniSprite):void;
  20897. /**
  20898. * 显示当前GridSprite,并把上面的动画全部显示
  20899. */
  20900. show():void;
  20901. /**
  20902. * 隐藏当前GridSprite,并把上面绑定的动画全部移除
  20903. */
  20904. hide():void;
  20905. /**
  20906. * 刷新坐标,当我们自己控制一个GridSprite移动时,需要调用此函数,手动刷新
  20907. */
  20908. updatePos():void;
  20909. /**
  20910. * 重置当前对象的所有属性
  20911. */
  20912. clearAll():void;
  20913. }
  20914. }
  20915. declare module laya.map {
  20916. /**
  20917. * 地图支持多层渲染(例如,地表层,植被层,建筑层等)
  20918. * 本类就是层级类
  20919. * @author ...
  20920. */
  20921. class MapLayer extends laya.display.Sprite {
  20922. private _map:any;
  20923. private _tileWidthHalf:any;
  20924. private _tileHeightHalf:any;
  20925. private _mapWidthHalf:any;
  20926. private _mapHeightHalf:any;
  20927. private _objDic:any;
  20928. private _dataDic:any;
  20929. private _tempMapPos:any;
  20930. private _properties:any;
  20931. /**
  20932. * 被合到的层
  20933. */
  20934. tarLayer:MapLayer;
  20935. /**
  20936. * 当前Layer的名称
  20937. */
  20938. layerName:string;
  20939. /**
  20940. * 解析LAYER数据,以及初始化一些数据
  20941. * @param layerData 地图数据中,layer数据的引用
  20942. * @param map 地图的引用
  20943. */
  20944. init(layerData:any,map:laya.map.TiledMap):void;
  20945. /**
  20946. * ****************************************对外接口********************************************
  20947. */
  20948. /**
  20949. * 通过名字获取控制对象,如果找不到返回为null
  20950. * @param objName 所要获取对象的名字
  20951. * @return
  20952. */
  20953. getObjectByName(objName:string):laya.map.GridSprite;
  20954. /**
  20955. * 通过名字获取数据,如果找不到返回为null
  20956. * @param objName 所要获取对象的名字
  20957. * @return
  20958. */
  20959. getObjectDataByName(objName:string):any;
  20960. /**
  20961. * 得到地图层的自定义属性
  20962. * @param name
  20963. * @return
  20964. */
  20965. getLayerProperties(name:string):any;
  20966. /**
  20967. * 得到指定格子的数据
  20968. * @param tileX 格子坐标X
  20969. * @param tileY 格子坐标Y
  20970. * @return
  20971. */
  20972. getTileData(tileX:number,tileY:number):number;
  20973. /**
  20974. * 通过地图坐标得到屏幕坐标
  20975. * @param tileX 格子坐标X
  20976. * @param tileY 格子坐标Y
  20977. * @param screenPos 把计算好的屏幕坐标数据,放到此对象中
  20978. */
  20979. getScreenPositionByTilePos(tileX:number,tileY:number,screenPos?:laya.maths.Point):void;
  20980. /**
  20981. * 通过屏幕坐标来获取选中格子的数据
  20982. * @param screenX 屏幕坐标x
  20983. * @param screenY 屏幕坐标y
  20984. * @return
  20985. */
  20986. getTileDataByScreenPos(screenX:number,screenY:number):number;
  20987. /**
  20988. * 通过屏幕坐标来获取选中格子的索引
  20989. * @param screenX 屏幕坐标x
  20990. * @param screenY 屏幕坐标y
  20991. * @param result 把计算好的格子坐标,放到此对象中
  20992. * @return
  20993. */
  20994. getTilePositionByScreenPos(screenX:number,screenY:number,result?:laya.maths.Point):boolean;
  20995. /**
  20996. * ********************************************************************************************
  20997. */
  20998. /**
  20999. * 得到一个GridSprite
  21000. * @param gridX 当前Grid的X轴索引
  21001. * @param gridY 当前Grid的Y轴索引
  21002. * @return 一个GridSprite对象
  21003. */
  21004. getDrawSprite(gridX:number,gridY:number):laya.map.GridSprite;
  21005. /**
  21006. * 更新此层中块的坐标
  21007. * 手动刷新的目的是,保持层级的宽和高保持最小,加快渲染
  21008. */
  21009. updateGridPos():void;
  21010. /**
  21011. * @private 把tile画到指定的显示对象上
  21012. * @param gridSprite 被指定显示的目标
  21013. * @param tileX 格子的X轴坐标
  21014. * @param tileY 格子的Y轴坐标
  21015. * @return
  21016. */
  21017. drawTileTexture(gridSprite:laya.map.GridSprite,tileX:number,tileY:number):boolean;
  21018. /**
  21019. * @private 清理当前对象
  21020. */
  21021. clearAll():void;
  21022. }
  21023. }
  21024. declare module laya.map {
  21025. /**
  21026. * TildMap的动画显示对象(一个动画(TileTexSet),可以绑定多个动画显示对象(TileAniSprite))
  21027. * @author ...
  21028. */
  21029. class TileAniSprite extends laya.display.Sprite {
  21030. private _tileTextureSet:any;
  21031. private _aniName:any;
  21032. /**
  21033. * 确定当前显示对象的名称以及属于哪个动画
  21034. * @param aniName 当前动画显示对象的名字,名字唯一
  21035. * @param tileTextureSet 当前显示对象属于哪个动画(一个动画,可以绑定多个同类显示对象)
  21036. */
  21037. setTileTextureSet(aniName:string,tileTextureSet:laya.map.TileTexSet):void;
  21038. /**
  21039. * 把当前动画加入到对应的动画刷新列表中
  21040. */
  21041. show():void;
  21042. /**
  21043. * 把当前动画从对应的动画刷新列表中移除
  21044. */
  21045. hide():void;
  21046. /**
  21047. * 清理
  21048. */
  21049. clearAll():void;
  21050. }
  21051. }
  21052. declare module laya.map {
  21053. /**
  21054. * tiledMap是整个地图的核心
  21055. * 地图以层级来划分地图(例如:地表层,植被层,建筑层)
  21056. * 每层又以分块(GridSprite)来处理显示对象,只显示在视口区域的区
  21057. * 每块又包括N*N个格子(tile)
  21058. * 格子类型又分为动画格子跟图片格子两种
  21059. * @author ...
  21060. */
  21061. class TiledMap {
  21062. /**
  21063. * 四边形地图
  21064. */
  21065. static ORIENTATION_ORTHOGONAL:string;
  21066. /**
  21067. * 菱形地图
  21068. */
  21069. static ORIENTATION_ISOMETRIC:string;
  21070. /**
  21071. * 45度交错地图
  21072. */
  21073. static ORIENTATION_STAGGERED:string;
  21074. /**
  21075. * 六边形地图
  21076. */
  21077. static ORIENTATION_HEXAGONAL:string;
  21078. /**
  21079. * 地图格子从左上角开始渲染
  21080. */
  21081. static RENDERORDER_RIGHTDOWN:string;
  21082. /**
  21083. * 地图格子从左下角开始渲染
  21084. */
  21085. static RENDERORDER_RIGHTUP:string;
  21086. /**
  21087. * 地图格子从右上角开始渲染
  21088. */
  21089. static RENDERORDER_LEFTDOWN:string;
  21090. /**
  21091. * 地图格子右下角开始渲染
  21092. */
  21093. static RENDERORDER_LEFTUP:string;
  21094. private _jsonData:any;
  21095. private _tileTexSetArr:any;
  21096. private _texArray:any;
  21097. private _x:any;
  21098. private _y:any;
  21099. private _width:any;
  21100. private _height:any;
  21101. private _mapW:any;
  21102. private _mapH:any;
  21103. private _mapTileW:any;
  21104. private _mapTileH:any;
  21105. private _rect:any;
  21106. private _paddingRect:any;
  21107. private _mapSprite:any;
  21108. private _layerArray:any;
  21109. private _renderLayerArray:any;
  21110. private _gridArray:any;
  21111. private _showGridKey:any;
  21112. private _totalGridNum:any;
  21113. private _gridW:any;
  21114. private _gridH:any;
  21115. private _gridWidth:any;
  21116. private _gridHeight:any;
  21117. private _jsonLoader:any;
  21118. private _loader:any;
  21119. private _tileSetArray:any;
  21120. private _currTileSet:any;
  21121. private _completeHandler:any;
  21122. private _mapRect:any;
  21123. private _mapLastRect:any;
  21124. private _index:any;
  21125. private _animationDic:any;
  21126. private _properties:any;
  21127. private _tileProperties:any;
  21128. private _tileProperties2:any;
  21129. private _orientation:any;
  21130. private _renderOrder:any;
  21131. private _colorArray:any;
  21132. private _scale:any;
  21133. private _pivotScaleX:any;
  21134. private _pivotScaleY:any;
  21135. private _centerX:any;
  21136. private _centerY:any;
  21137. private _viewPortWidth:any;
  21138. private _viewPortHeight:any;
  21139. private _enableLinear:any;
  21140. private _resPath:any;
  21141. private _pathArray:any;
  21142. private _limitRange:any;
  21143. /**
  21144. * 是否自动缓存没有动画的地块
  21145. */
  21146. autoCache:boolean;
  21147. /**
  21148. * 自动缓存类型,地图较大时建议使用normal
  21149. */
  21150. autoCacheType:string;
  21151. /**
  21152. * 是否合并图层,开启合并图层时,图层属性内可添加layer属性,运行时将会将相邻的layer属性相同的图层进行合并以提高性能
  21153. */
  21154. enableMergeLayer:boolean;
  21155. /**
  21156. * 是否移除被覆盖的格子,地块可添加type属性,type不为0时表示不透明,被不透明地块遮挡的地块将会被剔除以提高性能
  21157. */
  21158. removeCoveredTile:boolean;
  21159. /**
  21160. * 是否显示大格子里显示的贴图数量
  21161. */
  21162. showGridTextureCount:boolean;
  21163. /**
  21164. * 是否调整地块边缘消除缩放导致的缝隙
  21165. */
  21166. antiCrack:boolean;
  21167. /**
  21168. * 是否在加载完成之后cache所有大格子
  21169. */
  21170. cacheAllAfterInit:boolean;
  21171. constructor();
  21172. /**
  21173. * 创建地图
  21174. * @param mapName JSON文件名字
  21175. * @param viewRect 视口区域
  21176. * @param completeHandler 地图创建完成的回调函数
  21177. * @param viewRectPadding 视口扩充区域,把视口区域上、下、左、右扩充一下,防止视口移动时的穿帮
  21178. * @param gridSize grid大小
  21179. * @param enableLinear 是否开启线性取样(为false时,可以解决地图黑线的问题,但画质会锐化)
  21180. * @param limitRange 把地图限制在显示区域
  21181. */
  21182. createMap(mapName:string,viewRect:laya.maths.Rectangle,completeHandler:laya.utils.Handler,viewRectPadding?:laya.maths.Rectangle,gridSize?:laya.maths.Point,enableLinear?:boolean,limitRange?:boolean):void;
  21183. /**
  21184. * json文件读取成功后,解析里面的纹理数据,进行加载
  21185. * @param e JSON数据
  21186. */
  21187. private onJsonComplete:any;
  21188. /**
  21189. * 合并路径
  21190. * @param resPath
  21191. * @param relativePath
  21192. * @return
  21193. */
  21194. private mergePath:any;
  21195. private _texutreStartDic:any;
  21196. /**
  21197. * 纹理加载完成,如果所有的纹理加载,开始初始化地图
  21198. * @param e 纹理数据
  21199. */
  21200. private onTextureComplete:any;
  21201. private adptTexture:any;
  21202. /**
  21203. * 初始化地图
  21204. */
  21205. private initMap:any;
  21206. private addTileProperties:any;
  21207. getTileUserData(id:number,sign:string,defaultV?:any):any;
  21208. private adptTiledMapData:any;
  21209. private removeCoverd:any;
  21210. private collectCovers:any;
  21211. /**
  21212. * 得到一块指定的地图纹理
  21213. * @param index 纹理的索引值,默认从1开始
  21214. * @return
  21215. */
  21216. getTexture(index:number):laya.map.TileTexSet;
  21217. /**
  21218. * 得到地图的自定义属性
  21219. * @param name 属性名称
  21220. * @return
  21221. */
  21222. getMapProperties(name:string):any;
  21223. /**
  21224. * 得到tile自定义属性
  21225. * @param index 地图块索引
  21226. * @param id 具体的TileSetID
  21227. * @param name 属性名称
  21228. * @return
  21229. */
  21230. getTileProperties(index:number,id:number,name:string):any;
  21231. /**
  21232. * 通过纹理索引,生成一个可控制物件
  21233. * @param index 纹理的索引值,默认从1开始
  21234. * @return
  21235. */
  21236. getSprite(index:number,width:number,height:number):laya.map.GridSprite;
  21237. /**
  21238. * 设置视口的缩放中心点(例如:scaleX= scaleY= 0.5,就是以视口中心缩放)
  21239. * @param scaleX
  21240. * @param scaleY
  21241. */
  21242. setViewPortPivotByScale(scaleX:number,scaleY:number):void;
  21243. /**
  21244. * 设置地图缩放
  21245. * @param scale
  21246. */
  21247. /**
  21248. * 得到当前地图的缩放
  21249. */
  21250. scale:number;
  21251. /**
  21252. * 移动视口
  21253. * @param moveX 视口的坐标x
  21254. * @param moveY 视口的坐标y
  21255. */
  21256. moveViewPort(moveX:number,moveY:number):void;
  21257. /**
  21258. * 改变视口大小
  21259. * @param moveX 视口的坐标x
  21260. * @param moveY 视口的坐标y
  21261. * @param width 视口的宽
  21262. * @param height 视口的高
  21263. */
  21264. changeViewPort(moveX:number,moveY:number,width:number,height:number):void;
  21265. /**
  21266. * 在锚点的基础上计算,通过宽和高,重新计算视口
  21267. * @param width 新视口宽
  21268. * @param height 新视口高
  21269. * @param rect 返回的结果
  21270. * @return
  21271. */
  21272. changeViewPortBySize(width:number,height:number,rect?:laya.maths.Rectangle):laya.maths.Rectangle;
  21273. /**
  21274. * 刷新视口
  21275. */
  21276. private updateViewPort:any;
  21277. /**
  21278. * GRID裁剪
  21279. */
  21280. private clipViewPort:any;
  21281. /**
  21282. * 显示指定的GRID
  21283. * @param gridX
  21284. * @param gridY
  21285. */
  21286. private showGrid:any;
  21287. private cacheAllGrid:any;
  21288. private static _tempCanvas:any;
  21289. private cacheGridsArray:any;
  21290. private getGridArray:any;
  21291. /**
  21292. * 隐藏指定的GRID
  21293. * @param gridX
  21294. * @param gridY
  21295. */
  21296. private hideGrid:any;
  21297. /**
  21298. * 得到对象层上的某一个物品
  21299. * @param layerName 层的名称
  21300. * @param objectName 所找物品的名称
  21301. * @return
  21302. */
  21303. getLayerObject(layerName:string,objectName:string):laya.map.GridSprite;
  21304. /**
  21305. * 销毁地图
  21306. */
  21307. destroy():void;
  21308. /**
  21309. * **************************地图的基本数据**************************
  21310. */
  21311. /**
  21312. * 格子的宽度
  21313. */
  21314. readonly tileWidth:number;
  21315. /**
  21316. * 格子的高度
  21317. */
  21318. readonly tileHeight:number;
  21319. /**
  21320. * 地图的宽度
  21321. */
  21322. readonly width:number;
  21323. /**
  21324. * 地图的高度
  21325. */
  21326. readonly height:number;
  21327. /**
  21328. * 地图横向的格子数
  21329. */
  21330. readonly numColumnsTile:number;
  21331. /**
  21332. * 地图竖向的格子数
  21333. */
  21334. readonly numRowsTile:number;
  21335. /**
  21336. * @private 视口x坐标
  21337. */
  21338. readonly viewPortX:number;
  21339. /**
  21340. * @private 视口的y坐标
  21341. */
  21342. readonly viewPortY:number;
  21343. /**
  21344. * @private 视口的宽度
  21345. */
  21346. readonly viewPortWidth:number;
  21347. /**
  21348. * @private 视口的高度
  21349. */
  21350. readonly viewPortHeight:number;
  21351. /**
  21352. * 地图的x坐标
  21353. */
  21354. readonly x:number;
  21355. /**
  21356. * 地图的y坐标
  21357. */
  21358. readonly y:number;
  21359. /**
  21360. * 块的宽度
  21361. */
  21362. readonly gridWidth:number;
  21363. /**
  21364. * 块的高度
  21365. */
  21366. readonly gridHeight:number;
  21367. /**
  21368. * 地图的横向块数
  21369. */
  21370. readonly numColumnsGrid:number;
  21371. /**
  21372. * 地图的坚向块数
  21373. */
  21374. readonly numRowsGrid:number;
  21375. /**
  21376. * 当前地图类型
  21377. */
  21378. readonly orientation:string;
  21379. /**
  21380. * tile渲染顺序
  21381. */
  21382. readonly renderOrder:string;
  21383. /**
  21384. * ***************************************对外接口*********************************************
  21385. */
  21386. /**
  21387. * 整个地图的显示容器
  21388. * @return 地图的显示容器
  21389. */
  21390. mapSprite():laya.display.Sprite;
  21391. /**
  21392. * 得到指定的MapLayer
  21393. * @param layerName 要找的层名称
  21394. * @return
  21395. */
  21396. getLayerByName(layerName:string):laya.map.MapLayer;
  21397. /**
  21398. * 通过索引得MapLayer
  21399. * @param index 要找的层索引
  21400. * @return
  21401. */
  21402. getLayerByIndex(index:number):laya.map.MapLayer;
  21403. }
  21404. }
  21405. declare module laya.map {
  21406. /**
  21407. * 此类是子纹理类,也包括同类动画的管理
  21408. * TiledMap会把纹理分割成无数子纹理,也可以把其中的某块子纹理替换成一个动画序列
  21409. * 本类的实现就是如果发现子纹理被替换成一个动画序列,animationKey会被设为true
  21410. * 即animationKey为true,就使用TileAniSprite来做显示,把动画序列根据时间画到TileAniSprite上
  21411. * @author ...
  21412. */
  21413. class TileTexSet {
  21414. /**
  21415. * 唯一标识
  21416. */
  21417. gid:number;
  21418. /**
  21419. * 子纹理的引用
  21420. */
  21421. texture:laya.resource.Texture;
  21422. /**
  21423. * 纹理显示时的坐标偏移X
  21424. */
  21425. offX:number;
  21426. /**
  21427. * 纹理显示时的坐标偏移Y
  21428. */
  21429. offY:number;
  21430. /**
  21431. * 当前要播放动画的纹理序列
  21432. */
  21433. textureArray:any[];
  21434. /**
  21435. * 当前动画每帧的时间间隔
  21436. */
  21437. durationTimeArray:any[];
  21438. /**
  21439. * 动画播放的总时间
  21440. */
  21441. animationTotalTime:number;
  21442. /**
  21443. * true表示当前纹理,是一组动画,false表示当前只有一个纹理
  21444. */
  21445. isAnimation:boolean;
  21446. private _spriteNum:any;
  21447. private _aniDic:any;
  21448. private _frameIndex:any;
  21449. private _time:any;
  21450. private _interval:any;
  21451. private _preFrameTime:any;
  21452. /**
  21453. * 加入一个动画显示对象到此动画中
  21454. * @param aniName //显示对象的名字
  21455. * @param sprite //显示对象
  21456. */
  21457. addAniSprite(aniName:string,sprite:laya.map.TileAniSprite):void;
  21458. /**
  21459. * 把动画画到所有注册的SPRITE上
  21460. */
  21461. private animate:any;
  21462. private drawTexture:any;
  21463. /**
  21464. * 移除不需要更新的SPRITE
  21465. * @param _name
  21466. */
  21467. removeAniSprite(_name:string):void;
  21468. /**
  21469. * 显示当前动画的使用情况
  21470. */
  21471. showDebugInfo():string;
  21472. /**
  21473. * 清理
  21474. */
  21475. clearAll():void;
  21476. }
  21477. }
  21478. declare module laya.maths {
  21479. /**
  21480. * @private 计算贝塞尔曲线的工具类。
  21481. */
  21482. class Bezier {
  21483. /**
  21484. * 工具类单例
  21485. */
  21486. static I:Bezier;
  21487. /**
  21488. * @private
  21489. */
  21490. private _controlPoints:any;
  21491. /**
  21492. * @private
  21493. */
  21494. private _calFun:any;
  21495. /**
  21496. * @private
  21497. */
  21498. private _switchPoint:any;
  21499. /**
  21500. * 计算二次贝塞尔点。
  21501. */
  21502. getPoint2(t:number,rst:any[]):void;
  21503. /**
  21504. * 计算三次贝塞尔点
  21505. */
  21506. getPoint3(t:number,rst:any[]):void;
  21507. /**
  21508. * 计算贝塞尔点序列
  21509. */
  21510. insertPoints(count:number,rst:any[]):void;
  21511. /**
  21512. * 获取贝塞尔曲线上的点。
  21513. * @param pList 控制点[x0,y0,x1,y1...]
  21514. * @param inSertCount 每次曲线的插值数量
  21515. */
  21516. getBezierPoints(pList:any[],inSertCount?:number,count?:number):any[];
  21517. }
  21518. }
  21519. declare module laya.maths {
  21520. /**
  21521. * @private 凸包算法。
  21522. */
  21523. class GrahamScan {
  21524. private static _mPointList:any;
  21525. private static _tempPointList:any;
  21526. private static _temPList:any;
  21527. private static _temArr:any;
  21528. static multiply(p1:laya.maths.Point,p2:laya.maths.Point,p0:laya.maths.Point):number;
  21529. /**
  21530. * 计算两个点的距离。
  21531. * @param p1
  21532. * @param p2
  21533. * @return
  21534. */
  21535. static dis(p1:laya.maths.Point,p2:laya.maths.Point):number;
  21536. private static _getPoints:any;
  21537. /**
  21538. * 将数组 src 从索引0位置 依次取 cout 个项添加至 tst 数组的尾部。
  21539. * @param rst 原始数组,用于添加新的子元素。
  21540. * @param src 用于取子元素的数组。
  21541. * @param count 需要取得子元素个数。
  21542. * @return 添加完子元素的 rst 对象。
  21543. */
  21544. static getFrom(rst:any[],src:any[],count:number):any[];
  21545. /**
  21546. * 将数组 src 从末尾索引位置往头部索引位置方向 依次取 cout 个项添加至 tst 数组的尾部。
  21547. * @param rst 原始数组,用于添加新的子元素。
  21548. * @param src 用于取子元素的数组。
  21549. * @param count 需要取得子元素个数。
  21550. * @return 添加完子元素的 rst 对象。
  21551. */
  21552. static getFromR(rst:any[],src:any[],count:number):any[];
  21553. /**
  21554. * [x,y...]列表 转 Point列表
  21555. * @param pList Point列表
  21556. * @return [x,y...]列表
  21557. */
  21558. static pListToPointList(pList:any[],tempUse?:boolean):any[];
  21559. /**
  21560. * Point列表转[x,y...]列表
  21561. * @param pointList Point列表
  21562. * @return [x,y...]列表
  21563. */
  21564. static pointListToPlist(pointList:any[]):any[];
  21565. /**
  21566. * 寻找包括所有点的最小多边形顶点集合
  21567. * @param pList 形如[x0,y0,x1,y1...]的点列表
  21568. * @return 最小多边形顶点集合
  21569. */
  21570. static scanPList(pList:any[]):any[];
  21571. /**
  21572. * 寻找包括所有点的最小多边形顶点集合
  21573. * @param PointSet Point列表
  21574. * @return 最小多边形顶点集合
  21575. */
  21576. static scan(PointSet:any[]):any[];
  21577. }
  21578. }
  21579. declare module laya.maths {
  21580. /**
  21581. * @private <code>MathUtil</code> 是一个数据处理工具类。
  21582. */
  21583. class MathUtil {
  21584. static subtractVector3(l:Float32Array,r:Float32Array,o:Float32Array):void;
  21585. static lerp(left:number,right:number,amount:number):number;
  21586. static scaleVector3(f:Float32Array,b:number,e:Float32Array):void;
  21587. static lerpVector3(l:Float32Array,r:Float32Array,t:number,o:Float32Array):void;
  21588. static lerpVector4(l:Float32Array,r:Float32Array,t:number,o:Float32Array):void;
  21589. static slerpQuaternionArray(a:Float32Array,Offset1:number,b:Float32Array,Offset2:number,t:number,out:Float32Array,Offset3:number):Float32Array;
  21590. /**
  21591. * 获取指定的两个点组成的线段的弧度值。
  21592. * @param x0 点一的 X 轴坐标值。
  21593. * @param y0 点一的 Y 轴坐标值。
  21594. * @param x1 点二的 X 轴坐标值。
  21595. * @param y1 点二的 Y 轴坐标值。
  21596. * @return 弧度值。
  21597. */
  21598. static getRotation(x0:number,y0:number,x1:number,y1:number):number;
  21599. /**
  21600. * 一个用来确定数组元素排序顺序的比较函数。
  21601. * @param a 待比较数字。
  21602. * @param b 待比较数字。
  21603. * @return 如果a等于b 则值为0;如果b>a则值为1;如果b<则值为-1。
  21604. */
  21605. static sortBigFirst(a:number,b:number):number;
  21606. /**
  21607. * 一个用来确定数组元素排序顺序的比较函数。
  21608. * @param a 待比较数字。
  21609. * @param b 待比较数字。
  21610. * @return 如果a等于b 则值为0;如果b>a则值为-1;如果b<则值为1。
  21611. */
  21612. static sortSmallFirst(a:number,b:number):number;
  21613. /**
  21614. * 将指定的元素转为数字进行比较。
  21615. * @param a 待比较元素。
  21616. * @param b 待比较元素。
  21617. * @return b、a转化成数字的差值 (b-a)。
  21618. */
  21619. static sortNumBigFirst(a:any,b:any):number;
  21620. /**
  21621. * 将指定的元素转为数字进行比较。
  21622. * @param a 待比较元素。
  21623. * @param b 待比较元素。
  21624. * @return a、b转化成数字的差值 (a-b)。
  21625. */
  21626. static sortNumSmallFirst(a:any,b:any):number;
  21627. /**
  21628. * 返回根据对象指定的属性进行排序的比较函数。
  21629. * @param key 排序要依据的元素属性名。
  21630. * @param bigFirst 如果值为true,则按照由大到小的顺序进行排序,否则按照由小到大的顺序进行排序。
  21631. * @param forceNum 如果值为true,则将排序的元素转为数字进行比较。
  21632. * @return 排序函数。
  21633. */
  21634. static sortByKey(key:string,bigFirst?:boolean,forceNum?:boolean):(a:any,b:any) =>number;
  21635. }
  21636. }
  21637. declare module laya.maths {
  21638. /**
  21639. * <p> <code>Matrix</code> 类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间。</p>
  21640. * <p>您可以对一个显示对象执行不同的图形转换,方法是设置 Matrix 对象的属性,将该 Matrix 对象应用于 Transform 对象的 matrix 属性,然后应用该 Transform 对象作为显示对象的 transform 属性。这些转换函数包括平移(x 和 y 重新定位)、旋转、缩放和倾斜。</p>
  21641. */
  21642. class Matrix {
  21643. /**
  21644. * @private 一个初始化的 <code>Matrix</code> 对象,不允许修改此对象内容。
  21645. */
  21646. static EMPTY:Matrix;
  21647. /**
  21648. * 用于中转使用的 <code>Matrix</code> 对象。
  21649. */
  21650. static TEMP:Matrix;
  21651. /**
  21652. * 缩放或旋转图像时影响像素沿 x 轴定位的值。
  21653. */
  21654. a:number;
  21655. /**
  21656. * 旋转或倾斜图像时影响像素沿 y 轴定位的值。
  21657. */
  21658. b:number;
  21659. /**
  21660. * 旋转或倾斜图像时影响像素沿 x 轴定位的值。
  21661. */
  21662. c:number;
  21663. /**
  21664. * 缩放或旋转图像时影响像素沿 y 轴定位的值。
  21665. */
  21666. d:number;
  21667. /**
  21668. * 沿 x 轴平移每个点的距离。
  21669. */
  21670. tx:number;
  21671. /**
  21672. * 沿 y 轴平移每个点的距离。
  21673. */
  21674. ty:number;
  21675. /**
  21676. * 使用指定参数创建新的 <code>Matrix</code> 对象。
  21677. * @param a (可选)缩放或旋转图像时影响像素沿 x 轴定位的值。
  21678. * @param b (可选)旋转或倾斜图像时影响像素沿 y 轴定位的值。
  21679. * @param c (可选)旋转或倾斜图像时影响像素沿 x 轴定位的值。
  21680. * @param d (可选)缩放或旋转图像时影响像素沿 y 轴定位的值。
  21681. * @param tx (可选)沿 x 轴平移每个点的距离。
  21682. * @param ty (可选)沿 y 轴平移每个点的距离。
  21683. */
  21684. constructor(a?:number,b?:number,c?:number,d?:number,tx?:number,ty?:number,nums?:number);
  21685. /**
  21686. * 将本矩阵设置为单位矩阵。
  21687. * @return 返回当前矩形。
  21688. */
  21689. identity():Matrix;
  21690. /**
  21691. * 设置沿 x 、y 轴平移每个点的距离。
  21692. * @param x 沿 x 轴平移每个点的距离。
  21693. * @param y 沿 y 轴平移每个点的距离。
  21694. * @return 返回对象本身
  21695. */
  21696. setTranslate(x:number,y:number):Matrix;
  21697. /**
  21698. * 沿 x 和 y 轴平移矩阵,平移的变化量由 x 和 y 参数指定。
  21699. * @param x 沿 x 轴向右移动的量(以像素为单位)。
  21700. * @param y 沿 y 轴向下移动的量(以像素为单位)。
  21701. * @return 返回此矩形对象。
  21702. */
  21703. translate(x:number,y:number):Matrix;
  21704. /**
  21705. * 对矩阵应用缩放转换。
  21706. * @param x 用于沿 x 轴缩放对象的乘数。
  21707. * @param y 用于沿 y 轴缩放对象的乘数。
  21708. * @return 返回矩阵对象本身
  21709. */
  21710. scale(x:number,y:number):Matrix;
  21711. /**
  21712. * 对 Matrix 对象应用旋转转换。
  21713. * @param angle 以弧度为单位的旋转角度。
  21714. * @return 返回矩阵对象本身
  21715. */
  21716. rotate(angle:number):Matrix;
  21717. /**
  21718. * 对 Matrix 对象应用倾斜转换。
  21719. * @param x 沿着 X 轴的 2D 倾斜弧度。
  21720. * @param y 沿着 Y 轴的 2D 倾斜弧度。
  21721. * @return 当前 Matrix 对象。
  21722. */
  21723. skew(x:number,y:number):Matrix;
  21724. /**
  21725. * 对指定的点应用当前矩阵的逆转化并返回此点。
  21726. * @param out 待转化的点 Point 对象。
  21727. * @return 返回out
  21728. */
  21729. invertTransformPoint(out:laya.maths.Point):laya.maths.Point;
  21730. /**
  21731. * 将 Matrix 对象表示的几何转换应用于指定点。
  21732. * @param out 用来设定输出结果的点。
  21733. * @return 返回out
  21734. */
  21735. transformPoint(out:laya.maths.Point):laya.maths.Point;
  21736. /**
  21737. * 将 Matrix 对象表示的几何转换应用于指定点,忽略tx、ty。
  21738. * @param out 用来设定输出结果的点。
  21739. * @return 返回out
  21740. */
  21741. transformPointN(out:laya.maths.Point):laya.maths.Point;
  21742. /**
  21743. * 获取 X 轴缩放值。
  21744. * @return X 轴缩放值。
  21745. */
  21746. getScaleX():number;
  21747. /**
  21748. * 获取 Y 轴缩放值。
  21749. * @return Y 轴缩放值。
  21750. */
  21751. getScaleY():number;
  21752. /**
  21753. * 执行原始矩阵的逆转换。
  21754. * @return 当前矩阵对象。
  21755. */
  21756. invert():Matrix;
  21757. /**
  21758. * 将 Matrix 的成员设置为指定值。
  21759. * @param a 缩放或旋转图像时影响像素沿 x 轴定位的值。
  21760. * @param b 旋转或倾斜图像时影响像素沿 y 轴定位的值。
  21761. * @param c 旋转或倾斜图像时影响像素沿 x 轴定位的值。
  21762. * @param d 缩放或旋转图像时影响像素沿 y 轴定位的值。
  21763. * @param tx 沿 x 轴平移每个点的距离。
  21764. * @param ty 沿 y 轴平移每个点的距离。
  21765. * @return 当前矩阵对象。
  21766. */
  21767. setTo(a:number,b:number,c:number,d:number,tx:number,ty:number):Matrix;
  21768. /**
  21769. * 将指定矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。
  21770. * @param matrix 要连接到源矩阵的矩阵。
  21771. * @return 当前矩阵。
  21772. */
  21773. concat(matrix:Matrix):Matrix;
  21774. /**
  21775. * 将指定的两个矩阵相乘后的结果赋值给指定的输出对象。
  21776. * @param m1 矩阵一。
  21777. * @param m2 矩阵二。
  21778. * @param out 输出对象。
  21779. * @return 结果输出对象 out。
  21780. */
  21781. static mul(m1:Matrix,m2:Matrix,out:Matrix):Matrix;
  21782. /**
  21783. * 将指定的两个矩阵相乘,结果赋值给指定的输出数组,长度为16。
  21784. * @param m1 矩阵一。
  21785. * @param m2 矩阵二。
  21786. * @param out 输出对象Array。
  21787. * @return 结果输出对象 out。
  21788. */
  21789. static mul16(m1:Matrix,m2:Matrix,out:any[]):any[];
  21790. /**
  21791. * @private 对矩阵应用缩放转换。反向相乘
  21792. * @param x 用于沿 x 轴缩放对象的乘数。
  21793. * @param y 用于沿 y 轴缩放对象的乘数。
  21794. */
  21795. scaleEx(x:number,y:number):void;
  21796. /**
  21797. * @private 对 Matrix 对象应用旋转转换。反向相乘
  21798. * @param angle 以弧度为单位的旋转角度。
  21799. */
  21800. rotateEx(angle:number):void;
  21801. /**
  21802. * 返回此 Matrix 对象的副本。
  21803. * @return 与原始实例具有完全相同的属性的新 Matrix 实例。
  21804. */
  21805. clone():Matrix;
  21806. /**
  21807. * 将当前 Matrix 对象中的所有矩阵数据复制到指定的 Matrix 对象中。
  21808. * @param dec 要复制当前矩阵数据的 Matrix 对象。
  21809. * @return 已复制当前矩阵数据的 Matrix 对象。
  21810. */
  21811. copyTo(dec:Matrix):Matrix;
  21812. /**
  21813. * 返回列出该 Matrix 对象属性的文本值。
  21814. * @return 一个字符串,它包含 Matrix 对象的属性值:a、b、c、d、tx 和 ty。
  21815. */
  21816. toString():string;
  21817. /**
  21818. * 销毁此对象。
  21819. */
  21820. destroy():void;
  21821. /**
  21822. * 回收到对象池,方便复用
  21823. */
  21824. recover():void;
  21825. /**
  21826. * 从对象池中创建一个 <code>Matrix</code> 对象。
  21827. * @return <code>Matrix</code> 对象。
  21828. */
  21829. static create():Matrix;
  21830. }
  21831. }
  21832. declare module laya.maths {
  21833. /**
  21834. * <code>Point</code> 对象表示二维坐标系统中的某个位置,其中 x 表示水平轴,y 表示垂直轴。
  21835. */
  21836. class Point {
  21837. /**
  21838. * 临时使用的公用对象。
  21839. */
  21840. static TEMP:Point;
  21841. /**
  21842. * @private 全局空的point对象(x=0,y=0),不允许修改此对象内容
  21843. */
  21844. static EMPTY:Point;
  21845. /**
  21846. * 该点的水平坐标。
  21847. */
  21848. x:number;
  21849. /**
  21850. * 该点的垂直坐标。
  21851. */
  21852. y:number;
  21853. /**
  21854. * 根据指定坐标,创建一个新的 <code>Point</code> 对象。
  21855. * @param x (可选)水平坐标。
  21856. * @param y (可选)垂直坐标。
  21857. */
  21858. constructor(x?:number,y?:number);
  21859. /**
  21860. * 从对象池创建
  21861. */
  21862. static create():Point;
  21863. /**
  21864. * 将 <code>Point</code> 的成员设置为指定值。
  21865. * @param x 水平坐标。
  21866. * @param y 垂直坐标。
  21867. * @return 当前 Point 对象。
  21868. */
  21869. setTo(x:number,y:number):Point;
  21870. /**
  21871. * 重置
  21872. */
  21873. reset():Point;
  21874. /**
  21875. * 回收到对象池,方便复用
  21876. */
  21877. recover():void;
  21878. /**
  21879. * 计算当前点和目标点(x,y)的距离。
  21880. * @param x 水平坐标。
  21881. * @param y 垂直坐标。
  21882. * @return 返回当前点和目标点之间的距离。
  21883. */
  21884. distance(x:number,y:number):number;
  21885. /**
  21886. * 返回包含 x 和 y 坐标的值的字符串。
  21887. */
  21888. toString():string;
  21889. /**
  21890. * 标准化向量。
  21891. */
  21892. normalize():void;
  21893. /**
  21894. * copy point坐标
  21895. * @param point 需要被copy的point
  21896. */
  21897. copy(point:Point):Point;
  21898. }
  21899. }
  21900. declare module laya.maths {
  21901. /**
  21902. * <p><code>Rectangle</code> 对象是按其位置(由它左上角的点 (x, y) 确定)以及宽度和高度定义的区域。</p>
  21903. * <p>Rectangle 类的 x、y、width 和 height 属性相互独立;更改一个属性的值不会影响其他属性。</p>
  21904. */
  21905. class Rectangle {
  21906. /**
  21907. * @private 全局空的矩形区域x=0,y=0,width=0,height=0,不允许修改此对象内容
  21908. */
  21909. static EMPTY:Rectangle;
  21910. /**
  21911. * 全局临时的矩形区域,此对象用于全局复用,以减少对象创建
  21912. */
  21913. static TEMP:Rectangle;
  21914. /**
  21915. * @private
  21916. */
  21917. private static _temB:any;
  21918. /**
  21919. * @private
  21920. */
  21921. private static _temA:any;
  21922. /**
  21923. * 矩形左上角的 X 轴坐标。
  21924. */
  21925. x:number;
  21926. /**
  21927. * 矩形左上角的 Y 轴坐标。
  21928. */
  21929. y:number;
  21930. /**
  21931. * 矩形的宽度。
  21932. */
  21933. width:number;
  21934. /**
  21935. * 矩形的高度。
  21936. */
  21937. height:number;
  21938. /**
  21939. * 创建一个 <code>Rectangle</code> 对象。
  21940. * @param x 矩形左上角的 X 轴坐标。
  21941. * @param y 矩形左上角的 Y 轴坐标。
  21942. * @param width 矩形的宽度。
  21943. * @param height 矩形的高度。
  21944. */
  21945. constructor(x?:number,y?:number,width?:number,height?:number);
  21946. /**
  21947. * 此矩形右侧的 X 轴坐标。 x 和 width 属性的和。
  21948. */
  21949. readonly right:number;
  21950. /**
  21951. * 此矩形底端的 Y 轴坐标。y 和 height 属性的和。
  21952. */
  21953. readonly bottom:number;
  21954. /**
  21955. * 将 Rectangle 的属性设置为指定值。
  21956. * @param x x 矩形左上角的 X 轴坐标。
  21957. * @param y x 矩形左上角的 Y 轴坐标。
  21958. * @param width 矩形的宽度。
  21959. * @param height 矩形的高。
  21960. * @return 返回属性值修改后的矩形对象本身。
  21961. */
  21962. setTo(x:number,y:number,width:number,height:number):Rectangle;
  21963. /**
  21964. * 重置
  21965. */
  21966. reset():Rectangle;
  21967. /**
  21968. * 回收
  21969. */
  21970. recover():void;
  21971. /**
  21972. * 创建
  21973. */
  21974. static create():Rectangle;
  21975. /**
  21976. * 复制 source 对象的属性值到此矩形对象中。
  21977. * @param sourceRect 源 Rectangle 对象。
  21978. * @return 返回属性值修改后的矩形对象本身。
  21979. */
  21980. copyFrom(source:Rectangle):Rectangle;
  21981. /**
  21982. * 确定由此 Rectangle 对象定义的矩形区域内是否包含指定的点。
  21983. * @param x 点的 X 轴坐标值(水平位置)。
  21984. * @param y 点的 Y 轴坐标值(垂直位置)。
  21985. * @return 如果 Rectangle 对象包含指定的点,则值为 true;否则为 false。
  21986. */
  21987. contains(x:number,y:number):boolean;
  21988. /**
  21989. * 确定在 rect 参数中指定的对象是否与此 Rectangle 对象相交。此方法检查指定的 Rectangle 对象的 x、y、width 和 height 属性,以查看它是否与此 Rectangle 对象相交。
  21990. * @param rect Rectangle 对象。
  21991. * @return 如果传入的矩形对象与此对象相交,则返回 true 值,否则返回 false。
  21992. */
  21993. intersects(rect:Rectangle):boolean;
  21994. /**
  21995. * 如果在 rect 参数中指定的 Rectangle 对象与此 Rectangle 对象相交,则返回交集区域作为 Rectangle 对象。如果矩形不相交,则此方法返回null。
  21996. * @param rect 待比较的矩形区域。
  21997. * @param out (可选)待输出的矩形区域。如果为空则创建一个新的。建议:尽量复用对象,减少对象创建消耗。
  21998. * @return 返回相交的矩形区域对象。
  21999. */
  22000. intersection(rect:Rectangle,out?:Rectangle|null):Rectangle|null;
  22001. /**
  22002. * <p>矩形联合,通过填充两个矩形之间的水平和垂直空间,将这两个矩形组合在一起以创建一个新的 Rectangle 对象。</p>
  22003. * <p>注意:union() 方法忽略高度或宽度值为 0 的矩形,如:var rect2:Rectangle = new Rectangle(300,300,50,0);</p>
  22004. * @param 要添加到此 Rectangle 对象的 Rectangle 对象。
  22005. * @param out 用于存储输出结果的矩形对象。如果为空,则创建一个新的。建议:尽量复用对象,减少对象创建消耗。Rectangle.TEMP对象用于对象复用。
  22006. * @return 充当两个矩形的联合的新 Rectangle 对象。
  22007. */
  22008. union(source:Rectangle,out?:Rectangle|null):Rectangle;
  22009. /**
  22010. * 返回一个 Rectangle 对象,其 x、y、width 和 height 属性的值与当前 Rectangle 对象的对应值相同。
  22011. * @param out (可选)用于存储结果的矩形对象。如果为空,则创建一个新的。建议:尽量复用对象,减少对象创建消耗。。Rectangle.TEMP对象用于对象复用。
  22012. * @return Rectangle 对象,其 x、y、width 和 height 属性的值与当前 Rectangle 对象的对应值相同。
  22013. */
  22014. clone(out?:Rectangle|null):Rectangle;
  22015. /**
  22016. * 当前 Rectangle 对象的水平位置 x 和垂直位置 y 以及高度 width 和宽度 height 以逗号连接成的字符串。
  22017. */
  22018. toString():string;
  22019. /**
  22020. * 检测传入的 Rectangle 对象的属性是否与当前 Rectangle 对象的属性 x、y、width、height 属性值都相等。
  22021. * @param rect 待比较的 Rectangle 对象。
  22022. * @return 如果判断的属性都相等,则返回 true ,否则返回 false。
  22023. */
  22024. equals(rect:Rectangle):boolean;
  22025. /**
  22026. * <p>为当前矩形对象加一个点,以使当前矩形扩展为包含当前矩形和此点的最小矩形。</p>
  22027. * <p>此方法会修改本对象。</p>
  22028. * @param x 点的 X 坐标。
  22029. * @param y 点的 Y 坐标。
  22030. * @return 返回此 Rectangle 对象。
  22031. */
  22032. addPoint(x:number,y:number):Rectangle;
  22033. /**
  22034. * 确定此 Rectangle 对象是否为空。
  22035. * @return 如果 Rectangle 对象的宽度或高度小于等于 0,则返回 true 值,否则返回 false。
  22036. */
  22037. isEmpty():boolean;
  22038. }
  22039. }
  22040. declare module laya.media.h5audio {
  22041. /**
  22042. * @private 使用Audio标签播放声音
  22043. */
  22044. class AudioSound extends laya.events.EventDispatcher {
  22045. /**
  22046. * @private
  22047. */
  22048. private static _audioCache:any;
  22049. /**
  22050. * 声音URL
  22051. */
  22052. url:string;
  22053. /**
  22054. * 播放用的audio标签
  22055. */
  22056. audio:HTMLAudioElement;
  22057. /**
  22058. * 是否已加载完成
  22059. */
  22060. loaded:boolean;
  22061. /**
  22062. * 释放声音
  22063. */
  22064. dispose():void;
  22065. /**
  22066. * @private
  22067. */
  22068. private static _makeMusicOK:any;
  22069. /**
  22070. * 加载声音
  22071. * @param url
  22072. */
  22073. load(url:string):void;
  22074. /**
  22075. * 播放声音
  22076. * @param startTime 起始时间
  22077. * @param loops 循环次数
  22078. * @return
  22079. */
  22080. play(startTime?:number,loops?:number):laya.media.SoundChannel;
  22081. /**
  22082. * 获取总时间。
  22083. */
  22084. readonly duration:number;
  22085. }
  22086. }
  22087. declare module laya.media.h5audio {
  22088. /**
  22089. * @private audio标签播放声音的音轨控制
  22090. */
  22091. class AudioSoundChannel extends laya.media.SoundChannel {
  22092. /**
  22093. * 播放用的audio标签
  22094. */
  22095. private _audio:any;
  22096. private _onEnd:any;
  22097. private _resumePlay:any;
  22098. constructor(audio:HTMLAudioElement);
  22099. private __onEnd:any;
  22100. private __resumePlay:any;
  22101. /**
  22102. * 播放
  22103. * @override
  22104. */
  22105. play():void;
  22106. /**
  22107. * 当前播放到的位置
  22108. * @return
  22109. * @override
  22110. */
  22111. readonly position:number;
  22112. /**
  22113. * 获取总时间。
  22114. * @override
  22115. */
  22116. readonly duration:number;
  22117. /**
  22118. * 停止播放
  22119. * @override
  22120. */
  22121. stop():void;
  22122. /**
  22123. * @override
  22124. */
  22125. pause():void;
  22126. /**
  22127. * @override
  22128. */
  22129. resume():void;
  22130. /**
  22131. * 设置音量
  22132. * @param v
  22133. * @override
  22134. */
  22135. /**
  22136. * 获取音量
  22137. * @return
  22138. * @override
  22139. */
  22140. volume:number;
  22141. }
  22142. }
  22143. declare module laya.media {
  22144. /**
  22145. * <code>Sound</code> 类是用来播放控制声音的类。
  22146. * 引擎默认有两套声音方案,优先使用WebAudio播放声音,如果WebAudio不可用,则用H5Audio播放,H5Audio在部分机器上有兼容问题(比如不能混音,播放有延迟等)。
  22147. */
  22148. class Sound extends laya.events.EventDispatcher {
  22149. /**
  22150. * 加载声音。
  22151. * @param url 地址。
  22152. */
  22153. load(url:string):void;
  22154. /**
  22155. * 播放声音。
  22156. * @param startTime 开始时间,单位秒
  22157. * @param loops 循环次数,0表示一直循环
  22158. * @return 声道 SoundChannel 对象。
  22159. */
  22160. play(startTime?:number,loops?:number):laya.media.SoundChannel;
  22161. /**
  22162. * 获取总时间。
  22163. */
  22164. readonly duration:number;
  22165. /**
  22166. * 释放声音资源。
  22167. */
  22168. dispose():void;
  22169. }
  22170. }
  22171. declare module laya.media {
  22172. /**
  22173. * <p> <code>SoundChannel</code> 用来控制程序中的声音。每个声音均分配给一个声道,而且应用程序可以具有混合在一起的多个声道。</p>
  22174. * <p> <code>SoundChannel</code> 类包含控制声音的播放、暂停、停止、音量的方法,以及获取声音的播放状态、总时间、当前播放时间、总循环次数、播放地址等信息的方法。</p>
  22175. */
  22176. class SoundChannel extends laya.events.EventDispatcher {
  22177. /**
  22178. * 声音地址。
  22179. */
  22180. url:string;
  22181. /**
  22182. * 循环次数。
  22183. */
  22184. loops:number;
  22185. /**
  22186. * 播放声音开始时间。
  22187. */
  22188. startTime:number;
  22189. /**
  22190. * 表示声音是否已暂停。
  22191. */
  22192. isStopped:boolean;
  22193. /**
  22194. * 播放完成处理器。
  22195. */
  22196. completeHandler:laya.utils.Handler;
  22197. /**
  22198. * 音量范围从 0(静音)至 1(最大音量)。
  22199. */
  22200. volume:number;
  22201. /**
  22202. * 获取当前播放时间,单位是秒。
  22203. */
  22204. readonly position:number;
  22205. /**
  22206. * 获取总时间,单位是秒。
  22207. */
  22208. readonly duration:number;
  22209. /**
  22210. * 播放声音。
  22211. */
  22212. play():void;
  22213. /**
  22214. * 停止播放。
  22215. */
  22216. stop():void;
  22217. /**
  22218. * 暂停播放。
  22219. */
  22220. pause():void;
  22221. /**
  22222. * 继续播放。
  22223. */
  22224. resume():void;
  22225. /**
  22226. * private
  22227. */
  22228. protected __runComplete(handler:laya.utils.Handler):void;
  22229. }
  22230. }
  22231. declare module laya.media {
  22232. /**
  22233. * <code>SoundManager</code> 是一个声音管理类。提供了对背景音乐、音效的播放控制方法。
  22234. * 引擎默认有两套声音方案:WebAudio和H5Audio
  22235. * 播放音效,优先使用WebAudio播放声音,如果WebAudio不可用,则用H5Audio播放,H5Audio在部分机器上有兼容问题(比如不能混音,播放有延迟等)。
  22236. * 播放背景音乐,则使用H5Audio播放(使用WebAudio会增加特别大的内存,并且要等加载完毕后才能播放,有延迟)
  22237. * 建议背景音乐用mp3类型,音效用wav或者mp3类型(如果打包为app,音效只能用wav格式)。
  22238. * 详细教程及声音格式请参考:http://ldc2.layabox.com/doc/?nav=ch-as-1-7-0
  22239. */
  22240. class SoundManager {
  22241. /**
  22242. * 背景音乐音量。
  22243. * @default 1
  22244. */
  22245. static musicVolume:number;
  22246. /**
  22247. * 音效音量。
  22248. * @default 1
  22249. */
  22250. static soundVolume:number;
  22251. /**
  22252. * 声音播放速率。
  22253. * @default 1
  22254. */
  22255. static playbackRate:number;
  22256. /**
  22257. * 背景音乐使用Audio标签播放。
  22258. * @default true
  22259. */
  22260. private static _useAudioMusic:any;
  22261. /**
  22262. * @private 是否静音,默认为false。
  22263. */
  22264. private static _muted:any;
  22265. /**
  22266. * @private 是否音效静音,默认为false。
  22267. */
  22268. private static _soundMuted:any;
  22269. /**
  22270. * @private 是否背景音乐静音,默认为false。
  22271. */
  22272. private static _musicMuted:any;
  22273. /**
  22274. * @private 当前背景音乐声道。
  22275. */
  22276. private static _musicChannel:any;
  22277. /**
  22278. * @private 当前播放的Channel列表。
  22279. */
  22280. private static _channels:any;
  22281. /**
  22282. * @private
  22283. */
  22284. private static _autoStopMusic:any;
  22285. /**
  22286. * @private
  22287. */
  22288. private static _blurPaused:any;
  22289. /**
  22290. * @private
  22291. */
  22292. private static _isActive:any;
  22293. /**
  22294. * @private
  22295. */
  22296. private static _lastSoundUsedTimeDic:any;
  22297. /**
  22298. * @private
  22299. */
  22300. private static _isCheckingDispose:any;
  22301. /**
  22302. * 音效播放后自动删除。
  22303. * @default true
  22304. */
  22305. static autoReleaseSound:boolean;
  22306. /**
  22307. * 添加播放的声音实例。
  22308. * @param channel <code>SoundChannel</code> 对象。
  22309. */
  22310. static addChannel(channel:laya.media.SoundChannel):void;
  22311. /**
  22312. * 移除播放的声音实例。
  22313. * @param channel <code>SoundChannel</code> 对象。
  22314. */
  22315. static removeChannel(channel:laya.media.SoundChannel):void;
  22316. /**
  22317. * @private
  22318. */
  22319. static disposeSoundLater(url:string):void;
  22320. /**
  22321. * @private
  22322. */
  22323. private static _checkDisposeSound:any;
  22324. /**
  22325. * @private
  22326. */
  22327. static disposeSoundIfNotUsed(url:string):void;
  22328. /**
  22329. * 失去焦点后是否自动停止背景音乐。
  22330. * @param v Boolean 失去焦点后是否自动停止背景音乐。
  22331. */
  22332. /**
  22333. * 失去焦点后是否自动停止背景音乐。
  22334. */
  22335. static autoStopMusic:boolean;
  22336. private static _visibilityChange:any;
  22337. private static _stageOnBlur:any;
  22338. private static _recoverWebAudio:any;
  22339. private static _stageOnFocus:any;
  22340. /**
  22341. * 背景音乐和所有音效是否静音。
  22342. */
  22343. static muted:boolean;
  22344. /**
  22345. * 所有音效(不包括背景音乐)是否静音。
  22346. */
  22347. static soundMuted:boolean;
  22348. /**
  22349. * 背景音乐(不包括音效)是否静音。
  22350. */
  22351. static musicMuted:boolean;
  22352. static useAudioMusic:boolean;
  22353. /**
  22354. * 播放音效。音效可以同时播放多个。
  22355. * @param url 声音文件地址。
  22356. * @param loops 循环次数,0表示无限循环。
  22357. * @param complete 声音播放完成回调 Handler对象。
  22358. * @param soundClass 使用哪个声音类进行播放,null表示自动选择。
  22359. * @param startTime 声音播放起始时间。
  22360. * @return SoundChannel对象,通过此对象可以对声音进行控制,以及获取声音信息。
  22361. */
  22362. static playSound(url:string,loops?:number,complete?:laya.utils.Handler,soundClass?:new () => any,startTime?:number):laya.media.SoundChannel;
  22363. /**
  22364. * 释放声音资源。
  22365. * @param url 声音播放地址。
  22366. */
  22367. static destroySound(url:string):void;
  22368. /**
  22369. * 播放背景音乐。背景音乐同时只能播放一个,如果在播放背景音乐时再次调用本方法,会先停止之前的背景音乐,再播发当前的背景音乐。
  22370. * @param url 声音文件地址。
  22371. * @param loops 循环次数,0表示无限循环。
  22372. * @param complete 声音播放完成回调。
  22373. * @param startTime 声音播放起始时间。
  22374. * @return SoundChannel对象,通过此对象可以对声音进行控制,以及获取声音信息。
  22375. */
  22376. static playMusic(url:string,loops?:number,complete?:laya.utils.Handler,startTime?:number):laya.media.SoundChannel;
  22377. /**
  22378. * 停止声音播放。此方法能够停止任意声音的播放(包括背景音乐和音效),只需传入对应的声音播放地址。
  22379. * @param url 声音文件地址。
  22380. */
  22381. static stopSound(url:string):void;
  22382. /**
  22383. * 停止播放所有声音(包括背景音乐和音效)。
  22384. */
  22385. static stopAll():void;
  22386. /**
  22387. * 停止播放所有音效(不包括背景音乐)。
  22388. */
  22389. static stopAllSound():void;
  22390. /**
  22391. * 停止播放背景音乐(不包括音效)。
  22392. * @param url 声音文件地址。
  22393. */
  22394. static stopMusic():void;
  22395. /**
  22396. * 设置声音音量。根据参数不同,可以分别设置指定声音(背景音乐或音效)音量或者所有音效(不包括背景音乐)音量。
  22397. * @param volume 音量。初始值为1。音量范围从 0(静音)至 1(最大音量)。
  22398. * @param url (default = null)声音播放地址。默认为null。为空表示设置所有音效(不包括背景音乐)的音量,不为空表示设置指定声音(背景音乐或音效)的音量。
  22399. */
  22400. static setSoundVolume(volume:number,url?:string):void;
  22401. /**
  22402. * 设置背景音乐音量。音量范围从 0(静音)至 1(最大音量)。
  22403. * @param volume 音量。初始值为1。音量范围从 0(静音)至 1(最大音量)。
  22404. */
  22405. static setMusicVolume(volume:number):void;
  22406. /**
  22407. * 设置指定声音的音量。
  22408. * @param url 声音文件url
  22409. * @param volume 音量。初始值为1。
  22410. */
  22411. private static _setVolume:any;
  22412. }
  22413. }
  22414. declare module laya.media {
  22415. /**
  22416. * @private
  22417. */
  22418. class SoundNode extends laya.display.Sprite {
  22419. url:string;
  22420. private _channel:any;
  22421. private _tar:any;
  22422. private _playEvents:any;
  22423. private _stopEvents:any;
  22424. constructor();
  22425. /**
  22426. * @private
  22427. */
  22428. private _onParentChange:any;
  22429. /**
  22430. * 播放
  22431. * @param loops 循环次数
  22432. * @param complete 完成回调
  22433. */
  22434. play(loops?:number,complete?:laya.utils.Handler):void;
  22435. /**
  22436. * 停止播放
  22437. */
  22438. stop():void;
  22439. /**
  22440. * @private
  22441. */
  22442. private _setPlayAction:any;
  22443. /**
  22444. * @private
  22445. */
  22446. private _setPlayActions:any;
  22447. /**
  22448. * 设置触发播放的事件
  22449. * @param events
  22450. */
  22451. playEvent:string;
  22452. /**
  22453. * 设置控制播放的对象
  22454. * @param tar
  22455. */
  22456. target:laya.display.Sprite;
  22457. /**
  22458. * 设置触发停止的事件
  22459. * @param events
  22460. */
  22461. stopEvent:string;
  22462. }
  22463. }
  22464. declare module laya.media.webaudio {
  22465. /**
  22466. * @private web audio api方式播放声音
  22467. */
  22468. class WebAudioSound extends laya.events.EventDispatcher {
  22469. private static _dataCache:any;
  22470. /**
  22471. * 是否支持web audio api
  22472. */
  22473. static webAudioEnabled:boolean;
  22474. /**
  22475. * 播放设备
  22476. */
  22477. static ctx:any;
  22478. /**
  22479. * 当前要解码的声音文件列表
  22480. */
  22481. static buffs:any[];
  22482. /**
  22483. * 是否在解码中
  22484. */
  22485. static isDecoding:boolean;
  22486. /**
  22487. * 用于播放解锁声音以及解决Ios9版本的内存释放
  22488. */
  22489. static _miniBuffer:any;
  22490. /**
  22491. * 事件派发器,用于处理加载解码完成事件的广播
  22492. */
  22493. static e:laya.events.EventDispatcher;
  22494. /**
  22495. * 是否已解锁声音播放
  22496. */
  22497. private static _unlocked:any;
  22498. /**
  22499. * 当前解码的声音信息
  22500. */
  22501. static tInfo:any;
  22502. private static __loadingSound:any;
  22503. /**
  22504. * 声音URL
  22505. */
  22506. url:string;
  22507. /**
  22508. * 是否已加载完成
  22509. */
  22510. loaded:boolean;
  22511. /**
  22512. * 声音文件数据
  22513. */
  22514. data:ArrayBuffer;
  22515. /**
  22516. * 声音原始文件数据
  22517. */
  22518. audioBuffer:any;
  22519. /**
  22520. * 待播放的声音列表
  22521. */
  22522. private __toPlays:any;
  22523. /**
  22524. * @private
  22525. */
  22526. private _disposed:any;
  22527. /**
  22528. * 解码声音文件
  22529. */
  22530. static decode():void;
  22531. /**
  22532. * 解码成功回调
  22533. * @param audioBuffer
  22534. */
  22535. private static _done:any;
  22536. /**
  22537. * 解码失败回调
  22538. * @return
  22539. */
  22540. private static _fail:any;
  22541. /**
  22542. * 播放声音以解锁IOS的声音
  22543. */
  22544. private static _playEmptySound:any;
  22545. /**
  22546. * 尝试解锁声音
  22547. */
  22548. private static _unlock:any;
  22549. static initWebAudio():void;
  22550. /**
  22551. * 加载声音
  22552. * @param url
  22553. */
  22554. load(url:string):void;
  22555. private _err:any;
  22556. private _loaded:any;
  22557. private _removeLoadEvents:any;
  22558. private __playAfterLoaded:any;
  22559. /**
  22560. * 播放声音
  22561. * @param startTime 起始时间
  22562. * @param loops 循环次数
  22563. * @return
  22564. */
  22565. play(startTime?:number,loops?:number,channel?:laya.media.SoundChannel):laya.media.SoundChannel;
  22566. readonly duration:number;
  22567. dispose():void;
  22568. }
  22569. }
  22570. declare module laya.media.webaudio {
  22571. /**
  22572. * @private web audio api方式播放声音的音轨控制
  22573. */
  22574. class WebAudioSoundChannel extends laya.media.SoundChannel {
  22575. /**
  22576. * 声音原始文件数据
  22577. */
  22578. audioBuffer:any;
  22579. /**
  22580. * gain节点
  22581. */
  22582. private gain:any;
  22583. /**
  22584. * 播放用的数据
  22585. */
  22586. private bufferSource:any;
  22587. /**
  22588. * 当前时间
  22589. */
  22590. private _currentTime:any;
  22591. /**
  22592. * 当前音量
  22593. */
  22594. private _volume:any;
  22595. /**
  22596. * 播放开始时的时间戳
  22597. */
  22598. private _startTime:any;
  22599. private _pauseTime:any;
  22600. /**
  22601. * 播放设备
  22602. */
  22603. private context:any;
  22604. private _onPlayEnd:any;
  22605. private static _tryCleanFailed:any;
  22606. static SetTargetDelay:number;
  22607. constructor();
  22608. /**
  22609. * 播放声音
  22610. * @override
  22611. */
  22612. play():void;
  22613. private __onPlayEnd:any;
  22614. /**
  22615. * 获取当前播放位置
  22616. * @override
  22617. */
  22618. readonly position:number;
  22619. /**
  22620. * @override
  22621. */
  22622. readonly duration:number;
  22623. private _clearBufferSource:any;
  22624. private _tryClearBuffer:any;
  22625. /**
  22626. * 停止播放
  22627. * @override
  22628. */
  22629. stop():void;
  22630. /**
  22631. * @override
  22632. */
  22633. pause():void;
  22634. /**
  22635. * @override
  22636. */
  22637. resume():void;
  22638. /**
  22639. * 设置音量
  22640. * @override
  22641. */
  22642. /**
  22643. * 获取音量
  22644. * @override
  22645. */
  22646. volume:number;
  22647. }
  22648. }
  22649. declare module laya.net {
  22650. /**
  22651. * @private
  22652. */
  22653. class AtlasInfoManager {
  22654. private static _fileLoadDic:any;
  22655. static enable(infoFile:string,callback?:laya.utils.Handler|null):void;
  22656. /**
  22657. * @private
  22658. */
  22659. private static _onInfoLoaded:any;
  22660. static getFileLoadPath(file:string):string;
  22661. }
  22662. }
  22663. declare module laya.net {
  22664. /**
  22665. * 请求进度改变时调度。
  22666. * @eventType Event.PROGRESS
  22667. */
  22668. /**
  22669. * 请求结束后调度。
  22670. * @eventType Event.COMPLETE
  22671. */
  22672. /**
  22673. * 请求出错时调度。
  22674. * @eventType Event.ERROR
  22675. */
  22676. /**
  22677. * <p> <code>HttpRequest</code> 通过封装 HTML <code>XMLHttpRequest</code> 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。 <code>HttpRequest</code> 只提供以异步的形式返回 Web 服务器的响应,并且能够以文本或者二进制的形式返回内容。</p>
  22678. * <p><b>注意:</b>建议每次请求都使用新的 <code>HttpRequest</code> 对象,因为每次调用该对象的send方法时,都会清空之前设置的数据,并重置 HTTP 请求的状态,这会导致之前还未返回响应的请求被重置,从而得不到之前请求的响应结果。</p>
  22679. */
  22680. class HttpRequest extends laya.events.EventDispatcher {
  22681. /**
  22682. * @private
  22683. */
  22684. protected _http:XMLHttpRequest;
  22685. /**
  22686. * @private
  22687. */
  22688. protected _responseType:string;
  22689. /**
  22690. * @private
  22691. */
  22692. protected _data:any;
  22693. /**
  22694. * @private
  22695. */
  22696. protected _url:string;
  22697. /**
  22698. * 发送 HTTP 请求。
  22699. * @param url 请求的地址。大多数浏览器实施了一个同源安全策略,并且要求这个 URL 与包含脚本的文本具有相同的主机名和端口。
  22700. * @param data (default = null)发送的数据。
  22701. * @param method (default = "get")用于请求的 HTTP 方法。值包括 "get"、"post"、"head"。
  22702. * @param responseType (default = "text")Web 服务器的响应类型,可设置为 "text"、"json"、"xml"、"arraybuffer"。
  22703. * @param headers (default = null) HTTP 请求的头部信息。参数形如key-value数组:key是头部的名称,不应该包括空白、冒号或换行;value是头部的值,不应该包括换行。比如["Content-Type", "application/json"]。
  22704. */
  22705. send(url:string,data?:any,method?:string,responseType?:string,headers?:any[]|null):void;
  22706. /**
  22707. * @private 请求进度的侦听处理函数。
  22708. * @param e 事件对象。
  22709. */
  22710. protected _onProgress(e:any):void;
  22711. /**
  22712. * @private 请求中断的侦听处理函数。
  22713. * @param e 事件对象。
  22714. */
  22715. protected _onAbort(e:any):void;
  22716. /**
  22717. * @private 请求出错侦的听处理函数。
  22718. * @param e 事件对象。
  22719. */
  22720. protected _onError(e:any):void;
  22721. /**
  22722. * @private 请求消息返回的侦听处理函数。
  22723. * @param e 事件对象。
  22724. */
  22725. protected _onLoad(e:any):void;
  22726. /**
  22727. * @private 请求错误的处理函数。
  22728. * @param message 错误信息。
  22729. */
  22730. protected error(message:string):void;
  22731. /**
  22732. * @private 请求成功完成的处理函数。
  22733. */
  22734. protected complete():void;
  22735. /**
  22736. * @private 清除当前请求。
  22737. */
  22738. protected clear():void;
  22739. /**
  22740. * 请求的地址。
  22741. */
  22742. readonly url:string;
  22743. /**
  22744. * 返回的数据。
  22745. */
  22746. readonly data:any;
  22747. /**
  22748. * 本对象所封装的原生 XMLHttpRequest 引用。
  22749. */
  22750. readonly http:any;
  22751. }
  22752. }
  22753. declare module laya.net {
  22754. /**
  22755. * 加载进度发生改变时调度。
  22756. * @eventType Event.PROGRESS
  22757. */
  22758. /**
  22759. * 加载完成后调度。
  22760. * @eventType Event.COMPLETE
  22761. */
  22762. /**
  22763. * 加载出错时调度。
  22764. * @eventType Event.ERROR
  22765. */
  22766. /**
  22767. * <code>Loader</code> 类可用来加载文本、JSON、XML、二进制、图像等资源。
  22768. */
  22769. class Loader extends laya.events.EventDispatcher {
  22770. /**
  22771. * 文本类型,加载完成后返回文本。
  22772. */
  22773. static TEXT:string;
  22774. /**
  22775. * JSON 类型,加载完成后返回json数据。
  22776. */
  22777. static JSON:string;
  22778. /**
  22779. * prefab 类型,加载完成后返回Prefab实例。
  22780. */
  22781. static PREFAB:string;
  22782. /**
  22783. * XML 类型,加载完成后返回domXML。
  22784. */
  22785. static XML:string;
  22786. /**
  22787. * 二进制类型,加载完成后返回arraybuffer二进制数据。
  22788. */
  22789. static BUFFER:string;
  22790. /**
  22791. * 纹理类型,加载完成后返回Texture。
  22792. */
  22793. static IMAGE:string;
  22794. /**
  22795. * 声音类型,加载完成后返回sound。
  22796. */
  22797. static SOUND:string;
  22798. /**
  22799. * 图集类型,加载完成后返回图集json信息(并创建图集内小图Texture)。
  22800. */
  22801. static ATLAS:string;
  22802. /**
  22803. * 位图字体类型,加载完成后返回BitmapFont,加载后,会根据文件名自动注册为位图字体。
  22804. */
  22805. static FONT:string;
  22806. /**
  22807. * TTF字体类型,加载完成后返回null。
  22808. */
  22809. static TTF:string;
  22810. /**
  22811. * 预加载文件类型,加载完成后自动解析到preLoadedMap。
  22812. */
  22813. static PLF:string;
  22814. /**
  22815. * 二进制预加载文件类型,加载完成后自动解析到preLoadedMap。
  22816. */
  22817. static PLFB:string;
  22818. /**
  22819. * Hierarchy资源。
  22820. */
  22821. static HIERARCHY:string;
  22822. /**
  22823. * Mesh资源。
  22824. */
  22825. static MESH:string;
  22826. /**
  22827. * Material资源。
  22828. */
  22829. static MATERIAL:string;
  22830. /**
  22831. * Texture2D资源。
  22832. */
  22833. static TEXTURE2D:string;
  22834. /**
  22835. * TextureCube资源。
  22836. */
  22837. static TEXTURECUBE:string;
  22838. /**
  22839. * AnimationClip资源。
  22840. */
  22841. static ANIMATIONCLIP:string;
  22842. /**
  22843. * Avatar资源。
  22844. */
  22845. static AVATAR:string;
  22846. /**
  22847. * Terrain资源。
  22848. */
  22849. static TERRAINHEIGHTDATA:string;
  22850. /**
  22851. * Terrain资源。
  22852. */
  22853. static TERRAINRES:string;
  22854. /**
  22855. * 文件后缀和类型对应表。
  22856. */
  22857. static typeMap:{[key:string]:string;};
  22858. /**
  22859. * 资源解析函数对应表,用来扩展更多类型的资源加载解析。
  22860. */
  22861. static parserMap:any;
  22862. /**
  22863. * 每帧加载完成回调使用的最大超时时间,如果超时,则下帧再处理,防止帧卡顿。
  22864. */
  22865. static maxTimeOut:number;
  22866. /**
  22867. * 资源分组对应表。
  22868. */
  22869. static groupMap:{[key:string]:string[];};
  22870. /**
  22871. * 已加载的资源池。
  22872. */
  22873. static loadedMap:{[key:string]:any;};
  22874. /**
  22875. * 已加载的图集资源池。
  22876. */
  22877. static atlasMap:{[key:string]:any[];};
  22878. /**
  22879. * 已加载的纹理资源池。
  22880. */
  22881. static textureMap:{[key:string]:laya.resource.Texture;};
  22882. /**
  22883. * @private 已加载的数据文件。
  22884. */
  22885. static preLoadedMap:{[key:string]:ArrayBuffer;};
  22886. /**
  22887. * @private 引用image对象,防止垃圾回收
  22888. */
  22889. protected static _imgCache:{[key:string]:HTMLImageElement;};
  22890. /**
  22891. * @private
  22892. */
  22893. protected static _loaders:Loader[];
  22894. /**
  22895. * @private
  22896. */
  22897. protected static _isWorking:boolean;
  22898. /**
  22899. * @private
  22900. */
  22901. protected static _startIndex:number;
  22902. /**
  22903. * 获取指定资源地址的数据类型。
  22904. * @param url 资源地址。
  22905. * @return 数据类型。
  22906. */
  22907. static getTypeFromUrl(url:string):string;
  22908. /**
  22909. * @private
  22910. */
  22911. protected _url:string;
  22912. /**
  22913. * @private
  22914. */
  22915. protected _type:string;
  22916. /**
  22917. * @private
  22918. */
  22919. protected _http:laya.net.HttpRequest;
  22920. /**
  22921. * @private
  22922. */
  22923. protected _useWorkerLoader:boolean;
  22924. /**
  22925. * 加载资源。加载错误会派发 Event.ERROR 事件,参数为错误信息。
  22926. * @param url 资源地址。
  22927. * @param type (default = null)资源类型。可选值为:Loader.TEXT、Loader.JSON、Loader.XML、Loader.BUFFER、Loader.IMAGE、Loader.SOUND、Loader.ATLAS、Loader.FONT。如果为null,则根据文件后缀分析类型。
  22928. * @param cache (default = true)是否缓存数据。
  22929. * @param group (default = null)分组名称。
  22930. * @param ignoreCache (default = false)是否忽略缓存,强制重新加载。
  22931. * @param useWorkerLoader (default = false)是否使用worker加载(只针对IMAGE类型和ATLAS类型,并且浏览器支持的情况下生效)
  22932. */
  22933. load(url:string,type?:string|null,cache?:boolean,group?:string|null,ignoreCache?:boolean,useWorkerLoader?:boolean):void;
  22934. /**
  22935. * @private onload、onprocess、onerror必须写在本类
  22936. */
  22937. private _loadHttpRequest:any;
  22938. /**
  22939. * @private
  22940. */
  22941. private _loadHtmlImage:any;
  22942. /**
  22943. * @private 加载TTF资源。
  22944. * @param url 资源地址。
  22945. */
  22946. protected _loadTTF(url:string):void;
  22947. /**
  22948. * @private
  22949. */
  22950. protected _loadImage(url:string,isformatURL?:boolean):void;
  22951. /**
  22952. * @private
  22953. */
  22954. protected onProgress(value:number):void;
  22955. /**
  22956. * @private
  22957. */
  22958. protected onError(message:string):void;
  22959. /**
  22960. * 资源加载完成的处理函数。
  22961. * @param data 数据。
  22962. */
  22963. protected onLoaded(data?:any):void;
  22964. private parsePLFData:any;
  22965. private parsePLFBData:any;
  22966. private parseOnePLFBFile:any;
  22967. /**
  22968. * 加载完成。
  22969. * @param data 加载的数据。
  22970. */
  22971. protected complete(data:any):void;
  22972. /**
  22973. * @private
  22974. */
  22975. private static checkNext:any;
  22976. /**
  22977. * 结束加载,处理是否缓存及派发完成事件 <code>Event.COMPLETE</code> 。
  22978. * @param content 加载后的数据
  22979. */
  22980. endLoad(content?:any):void;
  22981. /**
  22982. * 加载地址。
  22983. */
  22984. readonly url:string;
  22985. /**
  22986. * 加载类型。
  22987. */
  22988. readonly type:string;
  22989. /**
  22990. * 是否缓存。
  22991. */
  22992. readonly cache:boolean;
  22993. /**
  22994. * 返回的数据。
  22995. */
  22996. readonly data:any;
  22997. /**
  22998. * 清理指定资源地址的缓存。
  22999. * @param url 资源地址。
  23000. */
  23001. static clearRes(url:string):void;
  23002. /**
  23003. * 销毁Texture使用的图片资源,保留texture壳,如果下次渲染的时候,发现texture使用的图片资源不存在,则会自动恢复
  23004. * 相比clearRes,clearTextureRes只是清理texture里面使用的图片资源,并不销毁texture,再次使用到的时候会自动恢复图片资源
  23005. * 而clearRes会彻底销毁texture,导致不能再使用;clearTextureRes能确保立即销毁图片资源,并且不用担心销毁错误,clearRes则采用引用计数方式销毁
  23006. * 【注意】如果图片本身在自动合集里面(默认图片小于512*512),内存是不能被销毁的,此图片被大图合集管理器管理
  23007. * @param url 图集地址或者texture地址,比如 Loader.clearTextureRes("res/atlas/comp.atlas"); Loader.clearTextureRes("hall/bg.jpg");
  23008. */
  23009. static clearTextureRes(url:string):void;
  23010. /**
  23011. * 获取指定资源地址的资源或纹理。
  23012. * @param url 资源地址。
  23013. * @return 返回资源。
  23014. */
  23015. static getRes(url:string):any;
  23016. /**
  23017. * 获取指定资源地址的图集地址列表。
  23018. * @param url 图集地址。
  23019. * @return 返回地址集合。
  23020. */
  23021. static getAtlas(url:string):any[];
  23022. /**
  23023. * 缓存资源。
  23024. * @param url 资源地址。
  23025. * @param data 要缓存的内容。
  23026. */
  23027. static cacheRes(url:string,data:any):void;
  23028. /**
  23029. * 缓存Teture。
  23030. * @param url 资源地址。
  23031. * @param data 要缓存的Texture。
  23032. */
  23033. static cacheTexture(url:string,data:laya.resource.Texture):void;
  23034. /**
  23035. * 设置资源分组。
  23036. * @param url 资源地址。
  23037. * @param group 分组名。
  23038. */
  23039. static setGroup(url:string,group:string):void;
  23040. /**
  23041. * 根据分组清理资源。
  23042. * @param group 分组名。
  23043. */
  23044. static clearResByGroup(group:string):void;
  23045. }
  23046. }
  23047. declare module laya.net {
  23048. /**
  23049. * 所有资源加载完成时调度。
  23050. * @eventType Event.COMPLETE
  23051. */
  23052. /**
  23053. * 任何资源加载出错时调度。
  23054. * @eventType Event.ERROR
  23055. */
  23056. /**
  23057. * <p> <code>LoaderManager</code> 类用于用于批量加载资源。此类是单例,不要手动实例化此类,请通过Laya.loader访问。</p>
  23058. * <p>全部队列加载完成,会派发 Event.COMPLETE 事件;如果队列中任意一个加载失败,会派发 Event.ERROR 事件,事件回调参数值为加载出错的资源地址。</p>
  23059. * <p> <code>LoaderManager</code> 类提供了以下几种功能:<br/>
  23060. * 多线程:默认5个加载线程,可以通过maxLoader属性修改线程数量;<br/>
  23061. * 多优先级:有0-4共5个优先级,优先级高的优先加载。0最高,4最低;<br/>
  23062. * 重复过滤:自动过滤重复加载(不会有多个相同地址的资源同时加载)以及复用缓存资源,防止重复加载;<br/>
  23063. * 错误重试:资源加载失败后,会重试加载(以最低优先级插入加载队列),retryNum设定加载失败后重试次数,retryDelay设定加载重试的时间间隔。</p>
  23064. * @see laya.net.Loader
  23065. */
  23066. class LoaderManager extends laya.events.EventDispatcher {
  23067. /**
  23068. * @private
  23069. */
  23070. private static _resMap:any;
  23071. /**
  23072. * @private
  23073. */
  23074. static createMap:any;
  23075. /**
  23076. * 加载出错后的重试次数,默认重试一次
  23077. */
  23078. retryNum:number;
  23079. /**
  23080. * 延迟时间多久再进行错误重试,默认立即重试
  23081. */
  23082. retryDelay:number;
  23083. /**
  23084. * 最大下载线程,默认为5个
  23085. */
  23086. maxLoader:number;
  23087. /**
  23088. * @private
  23089. */
  23090. private _loaders:any;
  23091. /**
  23092. * @private
  23093. */
  23094. private _loaderCount:any;
  23095. /**
  23096. * @private
  23097. */
  23098. private _resInfos:any;
  23099. /**
  23100. * @private
  23101. */
  23102. private _infoPool:any;
  23103. /**
  23104. * @private
  23105. */
  23106. private _maxPriority:any;
  23107. /**
  23108. * @private
  23109. */
  23110. private _failRes:any;
  23111. /**
  23112. * @private
  23113. */
  23114. private _statInfo:any;
  23115. /**
  23116. * @private
  23117. */
  23118. getProgress():number;
  23119. /**
  23120. * @private
  23121. */
  23122. resetProgress():void;
  23123. /**
  23124. * <p>创建一个新的 <code>LoaderManager</code> 实例。</p>
  23125. * <p><b>注意:</b>请使用Laya.loader加载资源,这是一个单例,不要手动实例化此类,否则会导致不可预料的问题。</p>
  23126. */
  23127. constructor();
  23128. /**
  23129. * <p>根据clas类型创建一个未初始化资源的对象,随后进行异步加载,资源加载完成后,初始化对象的资源,并通过此对象派发 Event.LOADED 事件,事件回调参数值为此对象本身。套嵌资源的子资源会保留资源路径"?"后的部分。</p>
  23130. * <p>如果url为数组,返回true;否则返回指定的资源类对象,可以通过侦听此对象的 Event.LOADED 事件来判断资源是否已经加载完毕。</p>
  23131. * <p><b>注意:</b>cache参数只能对文件后缀为atlas的资源进行缓存控制,其他资源会忽略缓存,强制重新加载。</p>
  23132. * @param url 资源地址或者数组。如果url和clas同时指定了资源类型,优先使用url指定的资源类型。参数形如:[{url:xx,clas:xx,priority:xx,params:xx},{url:xx,clas:xx,priority:xx,params:xx}]。
  23133. * @param complete 加载结束回调。根据url类型不同分为2种情况:1. url为String类型,也就是单个资源地址,如果加载成功,则回调参数值为加载完成的资源,否则为null;2. url为数组类型,指定了一组要加载的资源,如果全部加载成功,则回调参数值为true,否则为false。
  23134. * @param progress 资源加载进度回调,回调参数值为当前资源加载的进度信息(0-1)。
  23135. * @param type 资源类型。
  23136. * @param constructParams 资源构造函数参数。
  23137. * @param propertyParams 资源属性参数。
  23138. * @param priority (default = 1)加载的优先级,优先级高的优先加载。有0-4共5个优先级,0最高,4最低。
  23139. * @param cache 是否缓存加载的资源。
  23140. * @return 如果url为数组,返回true;否则返回指定的资源类对象。
  23141. */
  23142. create(url:any,complete?:laya.utils.Handler|null,progress?:laya.utils.Handler|null,type?:string|null,constructParams?:any[]|null,propertyParams?:any,priority?:number,cache?:boolean):void;
  23143. /**
  23144. * @private
  23145. */
  23146. private _createOne:any;
  23147. /**
  23148. * <p>加载资源。资源加载错误时,本对象会派发 Event.ERROR 事件,事件回调参数值为加载出错的资源地址。</p>
  23149. * <p>因为返回值为 LoaderManager 对象本身,所以可以使用如下语法:loaderManager.load(...).load(...);</p>
  23150. * @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}]。
  23151. * @param complete 加载结束回调。根据url类型不同分为2种情况:1. url为String类型,也就是单个资源地址,如果加载成功,则回调参数值为加载完成的资源,否则为null;2. url为数组类型,指定了一组要加载的资源,如果全部加载成功,则回调参数值为true,否则为false。
  23152. * @param progress 加载进度回调。回调参数值为当前资源的加载进度信息(0-1)。
  23153. * @param type 资源类型。比如:Loader.IMAGE。
  23154. * @param priority (default = 1)加载的优先级,优先级高的优先加载。有0-4共5个优先级,0最高,4最低。
  23155. * @param cache 是否缓存加载结果。
  23156. * @param group 分组,方便对资源进行管理。
  23157. * @param ignoreCache 是否忽略缓存,强制重新加载。
  23158. * @param useWorkerLoader (default = false)是否使用worker加载(只针对IMAGE类型和ATLAS类型,并且浏览器支持的情况下生效)
  23159. * @return 此 LoaderManager 对象本身。
  23160. */
  23161. load(url:string|string[]|loadItem[],complete?:laya.utils.Handler|null,progress?:laya.utils.Handler|null,type?:string|null,priority?:number,cache?:boolean,group?:string|null,ignoreCache?:boolean,useWorkerLoader?:boolean):LoaderManager;
  23162. private _resInfoLoaded:any;
  23163. private _next:any;
  23164. private _doLoad:any;
  23165. private _endLoad:any;
  23166. private _addReTry:any;
  23167. /**
  23168. * 清理指定资源地址缓存。
  23169. * @param url 资源地址。
  23170. */
  23171. clearRes(url:string):void;
  23172. /**
  23173. * 销毁Texture使用的图片资源,保留texture壳,如果下次渲染的时候,发现texture使用的图片资源不存在,则会自动恢复
  23174. * 相比clearRes,clearTextureRes只是清理texture里面使用的图片资源,并不销毁texture,再次使用到的时候会自动恢复图片资源
  23175. * 而clearRes会彻底销毁texture,导致不能再使用;clearTextureRes能确保立即销毁图片资源,并且不用担心销毁错误,clearRes则采用引用计数方式销毁
  23176. * 【注意】如果图片本身在自动合集里面(默认图片小于512*512),内存是不能被销毁的,此图片被大图合集管理器管理
  23177. * @param url 图集地址或者texture地址,比如 Loader.clearTextureRes("res/atlas/comp.atlas"); Loader.clearTextureRes("hall/bg.jpg");
  23178. */
  23179. clearTextureRes(url:string):void;
  23180. /**
  23181. * 获取指定资源地址的资源。
  23182. * @param url 资源地址。
  23183. * @return 返回资源。
  23184. */
  23185. getRes(url:string):any;
  23186. /**
  23187. * 缓存资源。
  23188. * @param url 资源地址。
  23189. * @param data 要缓存的内容。
  23190. */
  23191. cacheRes(url:string,data:any):void;
  23192. /**
  23193. * 设置资源分组。
  23194. * @param url 资源地址。
  23195. * @param group 分组名
  23196. */
  23197. setGroup(url:string,group:string):void;
  23198. /**
  23199. * 根据分组清理资源。
  23200. * @param group 分组名
  23201. */
  23202. clearResByGroup(group:string):void;
  23203. /**
  23204. * @private 缓存资源。
  23205. * @param url 资源地址。
  23206. * @param data 要缓存的内容。
  23207. */
  23208. static cacheRes(url:string,data:any):void;
  23209. /**
  23210. * 清理当前未完成的加载,所有未加载的内容全部停止加载。
  23211. */
  23212. clearUnLoaded():void;
  23213. /**
  23214. * 根据地址集合清理掉未加载的内容
  23215. * @param urls 资源地址集合
  23216. */
  23217. cancelLoadByUrls(urls:any[]):void;
  23218. /**
  23219. * 根据地址清理掉未加载的内容
  23220. * @param url 资源地址
  23221. */
  23222. cancelLoadByUrl(url:string):void;
  23223. /**
  23224. * @private 加载数组里面的资源。
  23225. * @param arr 简单:["a.png","b.png"],复杂[{url:"a.png",type:Loader.IMAGE,size:100,priority:1,useWorkerLoader:true},{url:"b.json",type:Loader.JSON,size:50,priority:1}]
  23226. */
  23227. private _loadAssets:any;
  23228. /**
  23229. * 解码Texture或者图集
  23230. * @param urls texture地址或者图集地址集合
  23231. */
  23232. decodeBitmaps(urls:any[]):void;
  23233. private _decodeTexture:any;
  23234. }
  23235. interface loadItem{
  23236. url:string;
  23237. type:string;
  23238. size:number;
  23239. priority:number;
  23240. useWorkerLoader:boolean;
  23241. progress:number;
  23242. group:string;
  23243. }
  23244. }
  23245. declare module laya.net {
  23246. /**
  23247. * <p> <code>LocalStorage</code> 类用于没有时间限制的数据存储。</p>
  23248. */
  23249. class LocalStorage {
  23250. /**
  23251. * @ 基础类
  23252. */
  23253. static _baseClass:any;
  23254. /**
  23255. * 数据列表。
  23256. */
  23257. static items:any;
  23258. /**
  23259. * 表示是否支持 <code>LocalStorage</code>。
  23260. */
  23261. static support:boolean;
  23262. /**
  23263. * 存储指定键名和键值,字符串类型。
  23264. * @param key 键名。
  23265. * @param value 键值。
  23266. */
  23267. static setItem(key:string,value:string):void;
  23268. /**
  23269. * 获取指定键名的值。
  23270. * @param key 键名。
  23271. * @return 字符串型值。
  23272. */
  23273. static getItem(key:string):string;
  23274. /**
  23275. * 存储指定键名及其对应的 <code>Object</code> 类型值。
  23276. * @param key 键名。
  23277. * @param value 键值。是 <code>Object</code> 类型,此致会被转化为 JSON 字符串存储。
  23278. */
  23279. static setJSON(key:string,value:any):void;
  23280. /**
  23281. * 获取指定键名对应的 <code>Object</code> 类型值。
  23282. * @param key 键名。
  23283. * @return <code>Object</code> 类型值
  23284. */
  23285. static getJSON(key:string):any;
  23286. /**
  23287. * 删除指定键名的信息。
  23288. * @param key 键名。
  23289. */
  23290. static removeItem(key:string):void;
  23291. /**
  23292. * 清除本地存储信息。
  23293. */
  23294. static clear():void;
  23295. }
  23296. }
  23297. declare module laya.net {
  23298. /**
  23299. * <p>资源版本的生成由layacmd或IDE完成,使用 <code>ResourceVersion</code> 简化使用过程。</p>
  23300. * <p>调用 <code>enable</code> 启用资源版本管理。</p>
  23301. */
  23302. class ResourceVersion {
  23303. /**
  23304. * 基于文件夹的资源管理方式(老版本IDE默认类型)
  23305. */
  23306. static FOLDER_VERSION:number;
  23307. /**
  23308. * 基于文件名映射管理方式(新版本IDE默认类型)
  23309. */
  23310. static FILENAME_VERSION:number;
  23311. /**
  23312. * 版本清单
  23313. */
  23314. static manifest:any;
  23315. /**
  23316. * 当前使用的版本管理类型
  23317. */
  23318. static type:number;
  23319. /**
  23320. * <p>启用资源版本管理。</p>
  23321. * <p>由于只有发布版本需要资源管理。因此没有资源管理文件时,可以设置manifestFile为null或者不存在的路径。</p>
  23322. * @param manifestFile 清单(json)文件的路径。
  23323. * @param callback 清单(json)文件加载完成后执行。
  23324. * @param type FOLDER_VERSION为基于文件夹管理方式(老版本IDE默认类型),FILENAME_VERSION为基于文件名映射管理(新版本IDE默认类型
  23325. */
  23326. static enable(manifestFile:string,callback:laya.utils.Handler,type?:number):void;
  23327. private static onManifestLoaded:any;
  23328. /**
  23329. * 为加载路径添加版本前缀。
  23330. * @param originURL 源路径。
  23331. * @return 格式化后的新路径。
  23332. */
  23333. static addVersionPrefix(originURL:string):string;
  23334. }
  23335. }
  23336. declare module laya.net {
  23337. /**
  23338. * @private 场景资源加载器
  23339. */
  23340. class SceneLoader extends laya.events.EventDispatcher {
  23341. static LoadableExtensions:any;
  23342. static No3dLoadTypes:any;
  23343. totalCount:number;
  23344. private _completeHandler:any;
  23345. private _toLoadList:any;
  23346. private _isLoading:any;
  23347. private _curUrl:any;
  23348. constructor();
  23349. reset():void;
  23350. readonly leftCount:number;
  23351. readonly loadedCount:number;
  23352. load(url:any,is3D?:boolean,ifCheck?:boolean):void;
  23353. private _addToLoadList:any;
  23354. private _checkNext:any;
  23355. private loadOne:any;
  23356. private onOneLoadComplete:any;
  23357. getProgress():number;
  23358. }
  23359. }
  23360. declare module laya.net {
  23361. /**
  23362. * 连接建立成功后调度。
  23363. * @eventType Event.OPEN
  23364. */
  23365. /**
  23366. * 接收到数据后调度。
  23367. * @eventType Event.MESSAGE
  23368. */
  23369. /**
  23370. * 连接被关闭后调度。
  23371. * @eventType Event.CLOSE
  23372. */
  23373. /**
  23374. * 出现异常后调度。
  23375. * @eventType Event.ERROR
  23376. */
  23377. /**
  23378. * <p> <code>Socket</code> 封装了 HTML5 WebSocket ,允许服务器端与客户端进行全双工(full-duplex)的实时通信,并且允许跨域通信。在建立连接后,服务器和 Browser/Client Agent 都能主动的向对方发送或接收文本和二进制数据。</p>
  23379. * <p>要使用 <code>Socket</code> 类的方法,请先使用构造函数 <code>new Socket</code> 创建一个 <code>Socket</code> 对象。 <code>Socket</code> 以异步方式传输和接收数据。</p>
  23380. */
  23381. class Socket extends laya.events.EventDispatcher {
  23382. /**
  23383. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。</p>
  23384. * <p> LITTLE_ENDIAN :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  23385. * <p> BIG_ENDIAN :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。</p>
  23386. */
  23387. static LITTLE_ENDIAN:string;
  23388. /**
  23389. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。</p>
  23390. * <p> BIG_ENDIAN :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。</p>
  23391. * <p> LITTLE_ENDIAN :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  23392. */
  23393. static BIG_ENDIAN:string;
  23394. /**
  23395. * @private
  23396. */
  23397. protected _socket:any;
  23398. /**
  23399. * @private
  23400. */
  23401. private _connected:any;
  23402. /**
  23403. * @private
  23404. */
  23405. private _addInputPosition:any;
  23406. /**
  23407. * @private
  23408. */
  23409. private _input:any;
  23410. /**
  23411. * @private
  23412. */
  23413. private _output:any;
  23414. /**
  23415. * 不再缓存服务端发来的数据,如果传输的数据为字符串格式,建议设置为true,减少二进制转换消耗。
  23416. */
  23417. disableInput:boolean;
  23418. /**
  23419. * 用来发送和接收数据的 <code>Byte</code> 类。
  23420. */
  23421. private _byteClass:any;
  23422. /**
  23423. * <p>子协议名称。子协议名称字符串,或由多个子协议名称字符串构成的数组。必须在调用 connect 或者 connectByUrl 之前进行赋值,否则无效。</p>
  23424. * <p>指定后,只有当服务器选择了其中的某个子协议,连接才能建立成功,否则建立失败,派发 Event.ERROR 事件。</p>
  23425. * @see https://html.spec.whatwg.org/multipage/comms.html#dom-websocket
  23426. */
  23427. protocols:any;
  23428. /**
  23429. * 缓存的服务端发来的数据。
  23430. */
  23431. readonly input:any;
  23432. /**
  23433. * 表示需要发送至服务端的缓冲区中的数据。
  23434. */
  23435. readonly output:any;
  23436. /**
  23437. * 表示此 Socket 对象目前是否已连接。
  23438. */
  23439. readonly connected:boolean;
  23440. /**
  23441. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。</p>
  23442. * <p> LITTLE_ENDIAN :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  23443. * <p> BIG_ENDIAN :大端字节序,地址低位存储值的高位,地址高位存储值的低位。</p>
  23444. */
  23445. endian:string;
  23446. /**
  23447. * <p>创建新的 Socket 对象。默认字节序为 Socket.BIG_ENDIAN 。若未指定参数,将创建一个最初处于断开状态的套接字。若指定了有效参数,则尝试连接到指定的主机和端口。</p>
  23448. * @param host 服务器地址。
  23449. * @param port 服务器端口。
  23450. * @param byteClass 用于接收和发送数据的 Byte 类。如果为 null ,则使用 Byte 类,也可传入 Byte 类的子类。
  23451. * @param protocols 子协议名称。子协议名称字符串,或由多个子协议名称字符串构成的数组
  23452. * @see laya.utils.Byte
  23453. */
  23454. constructor(host?:string|null,port?:number,byteClass?:new () => any,protocols?:any[]|null);
  23455. /**
  23456. * <p>连接到指定的主机和端口。</p>
  23457. * <p>连接成功派发 Event.OPEN 事件;连接失败派发 Event.ERROR 事件;连接被关闭派发 Event.CLOSE 事件;接收到数据派发 Event.MESSAGE 事件; 除了 Event.MESSAGE 事件参数为数据内容,其他事件参数都是原生的 HTML DOM Event 对象。</p>
  23458. * @param host 服务器地址。
  23459. * @param port 服务器端口。
  23460. */
  23461. connect(host:string,port:number):void;
  23462. /**
  23463. * <p>连接到指定的服务端 WebSocket URL。 URL 类似 ws://yourdomain:port。</p>
  23464. * <p>连接成功派发 Event.OPEN 事件;连接失败派发 Event.ERROR 事件;连接被关闭派发 Event.CLOSE 事件;接收到数据派发 Event.MESSAGE 事件; 除了 Event.MESSAGE 事件参数为数据内容,其他事件参数都是原生的 HTML DOM Event 对象。</p>
  23465. * @param url 要连接的服务端 WebSocket URL。 URL 类似 ws://yourdomain:port。
  23466. */
  23467. connectByUrl(url:string):void;
  23468. /**
  23469. * 清理Socket:关闭Socket链接,关闭事件监听,重置Socket
  23470. */
  23471. cleanSocket():void;
  23472. /**
  23473. * 关闭连接。
  23474. */
  23475. close():void;
  23476. /**
  23477. * @private 连接建立成功 。
  23478. */
  23479. protected _onOpen(e:any):void;
  23480. /**
  23481. * @private 接收到数据处理方法。
  23482. * @param msg 数据。
  23483. */
  23484. protected _onMessage(msg:any):void;
  23485. /**
  23486. * @private 连接被关闭处理方法。
  23487. */
  23488. protected _onClose(e:any):void;
  23489. /**
  23490. * @private 出现异常处理方法。
  23491. */
  23492. protected _onError(e:any):void;
  23493. /**
  23494. * 发送数据到服务器。
  23495. * @param data 需要发送的数据,可以是String或者ArrayBuffer。
  23496. */
  23497. send(data:any):void;
  23498. /**
  23499. * 发送缓冲区中的数据到服务器。
  23500. */
  23501. flush():void;
  23502. }
  23503. }
  23504. declare module laya.net {
  23505. /**
  23506. * @private
  23507. */
  23508. class TTFLoader {
  23509. private static _testString:any;
  23510. fontName:string;
  23511. complete:laya.utils.Handler|null;
  23512. err:laya.utils.Handler|null;
  23513. private _fontTxt:any;
  23514. private _url:any;
  23515. private _div:any;
  23516. private _txtWidth:any;
  23517. private _http:any;
  23518. load(fontPath:string):void;
  23519. private _loadConch:any;
  23520. private _onHttpLoaded:any;
  23521. private _clearHttp:any;
  23522. private _onErr:any;
  23523. private _complete:any;
  23524. private _checkComplete:any;
  23525. private _loadWithFontFace:any;
  23526. private _createDiv:any;
  23527. private _loadWithCSS:any;
  23528. }
  23529. }
  23530. declare module laya.net {
  23531. /**
  23532. * <p><code>URL</code> 提供URL格式化,URL版本管理的类。</p>
  23533. * <p>引擎加载资源的时候,会自动调用formatURL函数格式化URL路径</p>
  23534. * <p>通过basePath属性可以设置网络基础路径</p>
  23535. * <p>通过设置customFormat函数,可以自定义URL格式化的方式</p>
  23536. * <p>除了默认的通过增加后缀的格式化外,通过VersionManager类,可以开启IDE提供的,基于目录的管理方式来替代 "?v=" 的管理方式</p>
  23537. * @see laya.net.VersionManager
  23538. */
  23539. class URL {
  23540. /**
  23541. * URL地址版本映射表,比如{"aaa/bb.png":99,"aaa/bb.png":12},默认情况下,通过formatURL格式化后,会自动生成为"aaa/bb.png?v=99"的一个地址
  23542. */
  23543. static version:any;
  23544. /**
  23545. * @private
  23546. */
  23547. private _url:any;
  23548. /**
  23549. * @private
  23550. */
  23551. private _path:any;
  23552. /**
  23553. * 兼容微信不支持加载scene后缀场景,设置为true,则会把scene加载替换为json
  23554. */
  23555. static exportSceneToJson:boolean;
  23556. /**
  23557. * 创建一个新的 <code>URL</code> 实例。
  23558. */
  23559. constructor(url:string);
  23560. /**
  23561. * 格式化后的地址。
  23562. */
  23563. readonly url:string;
  23564. /**
  23565. * 地址的文件夹路径(不包括文件名)。
  23566. */
  23567. readonly path:string;
  23568. /**
  23569. * root路径。只针对'~'类型的url路径有效
  23570. */
  23571. static rootPath:string;
  23572. /**
  23573. * 基础路径。如果不设置,默认为当前网页的路径。最终地址将被格式化为 basePath+相对URL地址,
  23574. */
  23575. static basePath:string;
  23576. /**
  23577. * 自定义URL格式化的方式。例如: customFormat = function(url:String):String{}
  23578. */
  23579. static customFormat:Function;
  23580. /**
  23581. * 格式化指定的地址并返回。
  23582. * @param url 地址。
  23583. * @param base 基础路径,如果没有,则使用basePath。
  23584. * @return 格式化处理后的地址。
  23585. */
  23586. static formatURL(url:string):string;
  23587. /**
  23588. * 获取指定 URL 的文件夹路径(不包括文件名)。
  23589. * <p><b>注意:</b>末尾有斜杠(/)。</p>
  23590. * @param url url地址。
  23591. * @return 返回文件夹路径。
  23592. */
  23593. static getPath(url:string):string;
  23594. /**
  23595. * 获取指定 URL 的文件名。
  23596. * @param url 地址。
  23597. * @return 返回文件名。
  23598. */
  23599. static getFileName(url:string):string;
  23600. /**
  23601. * @private
  23602. */
  23603. private static _adpteTypeList:any;
  23604. /**
  23605. * @private 兼容微信
  23606. */
  23607. static getAdptedFilePath(url:string):string;
  23608. }
  23609. }
  23610. declare module laya.net {
  23611. /**
  23612. * @private Worker Image加载器
  23613. */
  23614. class WorkerLoader extends laya.events.EventDispatcher {
  23615. /**
  23616. * 单例
  23617. */
  23618. static I:WorkerLoader;
  23619. /**
  23620. * worker.js的路径
  23621. */
  23622. static workerPath:string;
  23623. /**
  23624. * @private
  23625. */
  23626. private static _preLoadFun:any;
  23627. /**
  23628. * @private
  23629. */
  23630. private static _enable:any;
  23631. /**
  23632. * @private
  23633. */
  23634. private static _tryEnabled:any;
  23635. /**
  23636. * 使用的Worker对象。
  23637. */
  23638. worker:Worker;
  23639. /**
  23640. * @private
  23641. */
  23642. protected _useWorkerLoader:boolean;
  23643. constructor();
  23644. /**
  23645. * 是否支持worker
  23646. * @return 是否支持worker
  23647. */
  23648. static workerSupported():boolean;
  23649. /**
  23650. * 尝试启用WorkerLoader,只有第一次调用有效
  23651. */
  23652. static enableWorkerLoader():void;
  23653. /**
  23654. * 是否启用。
  23655. */
  23656. static enable:boolean;
  23657. /**
  23658. * @private
  23659. */
  23660. private workerMessage:any;
  23661. /**
  23662. * @private
  23663. */
  23664. private imageLoaded:any;
  23665. /**
  23666. * 加载图片
  23667. * @param url 图片地址
  23668. */
  23669. loadImage(url:string):void;
  23670. /**
  23671. * @private 加载图片资源。
  23672. * @param url 资源地址。
  23673. */
  23674. protected _loadImage(url:string):void;
  23675. }
  23676. }
  23677. declare module laya.particle.emitter {
  23678. /**
  23679. * @private
  23680. */
  23681. class Emitter2D extends laya.particle.emitter.EmitterBase {
  23682. setting:laya.particle.ParticleSetting;
  23683. private _posRange:any;
  23684. private _canvasTemplate:any;
  23685. private _emitFun:any;
  23686. constructor(_template:laya.particle.ParticleTemplateBase);
  23687. template:laya.particle.ParticleTemplateBase;
  23688. /**
  23689. * @override
  23690. */
  23691. emit():void;
  23692. getRandom(value:number):number;
  23693. webGLEmit():void;
  23694. canvasEmit():void;
  23695. }
  23696. }
  23697. declare module laya.particle.emitter {
  23698. /**
  23699. * <code>EmitterBase</code> 类是粒子发射器类
  23700. */
  23701. class EmitterBase {
  23702. /**
  23703. * 积累的帧时间
  23704. */
  23705. protected _frameTime:number;
  23706. /**
  23707. * 粒子发射速率
  23708. */
  23709. protected _emissionRate:number;
  23710. /**
  23711. * 当前剩余发射时间
  23712. */
  23713. protected _emissionTime:number;
  23714. /**
  23715. * 发射粒子最小时间间隔
  23716. */
  23717. minEmissionTime:number;
  23718. /**
  23719. * 设置粒子粒子模板
  23720. * @param particleTemplate 粒子模板
  23721. */
  23722. particleTemplate:laya.particle.ParticleTemplateBase;
  23723. /**
  23724. * 设置粒子发射速率
  23725. * @param emissionRate 粒子发射速率 (个/秒)
  23726. */
  23727. /**
  23728. * 获取粒子发射速率
  23729. * @return 发射速率 粒子发射速率 (个/秒)
  23730. */
  23731. emissionRate:number;
  23732. /**
  23733. * 开始发射粒子
  23734. * @param duration 发射持续的时间(秒)
  23735. */
  23736. start(duration?:number):void;
  23737. /**
  23738. * 停止发射粒子
  23739. * @param clearParticles 是否清理当前的粒子
  23740. */
  23741. stop():void;
  23742. /**
  23743. * 清理当前的活跃粒子
  23744. * @param clearTexture 是否清理贴图数据,若清除贴图数据将无法再播放
  23745. */
  23746. clear():void;
  23747. /**
  23748. * 发射一个粒子
  23749. */
  23750. emit():void;
  23751. /**
  23752. * 时钟前进
  23753. * @param passedTime 前进时间
  23754. */
  23755. advanceTime(passedTime?:number):void;
  23756. }
  23757. }
  23758. declare module laya.particle {
  23759. /**
  23760. * <code>Particle2D</code> 类是2D粒子播放类
  23761. */
  23762. class Particle2D extends laya.display.Sprite {
  23763. /**
  23764. * @private
  23765. */
  23766. private _matrix4:any;
  23767. /**
  23768. * @private
  23769. */
  23770. private _particleTemplate:any;
  23771. /**
  23772. * @private
  23773. */
  23774. private _canvasTemplate:any;
  23775. /**
  23776. * @private
  23777. */
  23778. private _emitter:any;
  23779. /**
  23780. * 是否自动播放
  23781. */
  23782. autoPlay:boolean;
  23783. tempCmd:any;
  23784. /**
  23785. * 创建一个新的 <code>Particle2D</code> 类实例。
  23786. * @param setting 粒子配置数据
  23787. */
  23788. constructor(setting:laya.particle.ParticleSetting);
  23789. /**
  23790. * 设置 粒子文件地址
  23791. * @param path 粒子文件地址
  23792. */
  23793. url:string;
  23794. /**
  23795. * 加载粒子文件
  23796. * @param url 粒子文件地址
  23797. */
  23798. load(url:string):void;
  23799. /**
  23800. * 设置粒子配置数据
  23801. * @param settings 粒子配置数据
  23802. */
  23803. setParticleSetting(setting:laya.particle.ParticleSetting):void;
  23804. /**
  23805. * 获取粒子发射器
  23806. */
  23807. readonly emitter:laya.particle.emitter.EmitterBase;
  23808. /**
  23809. * 播放
  23810. */
  23811. play():void;
  23812. /**
  23813. * 停止
  23814. */
  23815. stop():void;
  23816. /**
  23817. * @private
  23818. */
  23819. private _loop:any;
  23820. /**
  23821. * 时钟前进
  23822. * @param passedTime 时钟前进时间
  23823. */
  23824. advanceTime(passedTime?:number):void;
  23825. /**
  23826. * @param context
  23827. * @param x
  23828. * @param y
  23829. * @override
  23830. */
  23831. customRender(context:laya.resource.Context,x:number,y:number):void;
  23832. /**
  23833. * @param destroyChild
  23834. * @override
  23835. */
  23836. destroy(destroyChild?:boolean):void;
  23837. }
  23838. }
  23839. declare module laya.particle {
  23840. /**
  23841. * @private
  23842. */
  23843. class ParticleData {
  23844. private static _tempVelocity:any;
  23845. private static _tempStartColor:any;
  23846. private static _tempEndColor:any;
  23847. private static _tempSizeRotation:any;
  23848. private static _tempRadius:any;
  23849. private static _tempRadian:any;
  23850. position:Float32Array;
  23851. velocity:Float32Array;
  23852. startColor:Float32Array;
  23853. endColor:Float32Array;
  23854. sizeRotation:Float32Array;
  23855. radius:Float32Array;
  23856. radian:Float32Array;
  23857. durationAddScale:number;
  23858. time:number;
  23859. constructor();
  23860. static Create(settings:laya.particle.ParticleSetting,position:Float32Array,velocity:Float32Array,time:number):ParticleData;
  23861. }
  23862. }
  23863. declare module laya.particle {
  23864. /**
  23865. * @private
  23866. */
  23867. class ParticleEmitter {
  23868. private _templet:any;
  23869. private _timeBetweenParticles:any;
  23870. private _previousPosition:any;
  23871. private _timeLeftOver:any;
  23872. private _tempVelocity:any;
  23873. private _tempPosition:any;
  23874. constructor(templet:laya.particle.ParticleTemplateBase,particlesPerSecond:number,initialPosition:Float32Array);
  23875. update(elapsedTime:number,newPosition:Float32Array):void;
  23876. }
  23877. }
  23878. declare module laya.particle {
  23879. /**
  23880. * <code>ParticleSettings</code> 类是粒子配置数据类
  23881. */
  23882. class ParticleSetting {
  23883. /**
  23884. * 贴图
  23885. */
  23886. textureName:string;
  23887. /**
  23888. * 贴图个数,默认为1可不设置
  23889. */
  23890. textureCount:number;
  23891. /**
  23892. * 由于循环队列判断算法,最大饱和粒子数为maxPartices-1
  23893. */
  23894. maxPartices:number;
  23895. /**
  23896. * 粒子持续时间(单位:秒)
  23897. */
  23898. duration:number;
  23899. /**
  23900. * 如果大于0,某些粒子的持续时间会小于其他粒子,并具有随机性(单位:无)
  23901. */
  23902. ageAddScale:number;
  23903. /**
  23904. * 粒子受发射器速度的敏感度(需在自定义发射器中编码设置)
  23905. */
  23906. emitterVelocitySensitivity:number;
  23907. /**
  23908. * 最小开始尺寸(单位:2D像素、3D坐标)
  23909. */
  23910. minStartSize:number;
  23911. /**
  23912. * 最大开始尺寸(单位:2D像素、3D坐标)
  23913. */
  23914. maxStartSize:number;
  23915. /**
  23916. * 最小结束尺寸(单位:2D像素、3D坐标)
  23917. */
  23918. minEndSize:number;
  23919. /**
  23920. * 最大结束尺寸(单位:2D像素、3D坐标)
  23921. */
  23922. maxEndSize:number;
  23923. /**
  23924. * 最小水平速度(单位:2D像素、3D坐标)
  23925. */
  23926. minHorizontalVelocity:number;
  23927. /**
  23928. * 最大水平速度(单位:2D像素、3D坐标)
  23929. */
  23930. maxHorizontalVelocity:number;
  23931. /**
  23932. * 最小垂直速度(单位:2D像素、3D坐标)
  23933. */
  23934. minVerticalVelocity:number;
  23935. /**
  23936. * 最大垂直速度(单位:2D像素、3D坐标)
  23937. */
  23938. maxVerticalVelocity:number;
  23939. /**
  23940. * 等于1时粒子从出生到消亡保持一致的速度,等于0时粒子消亡时速度为0,大于1时粒子会保持加速(单位:无)
  23941. */
  23942. endVelocity:number;
  23943. /**
  23944. * (单位:2D像素、3D坐标)
  23945. */
  23946. gravity:Float32Array;
  23947. /**
  23948. * 最小旋转速度(单位:2D弧度/秒、3D弧度/秒)
  23949. */
  23950. minRotateSpeed:number;
  23951. /**
  23952. * 最大旋转速度(单位:2D弧度/秒、3D弧度/秒)
  23953. */
  23954. maxRotateSpeed:number;
  23955. /**
  23956. * 最小开始半径(单位:2D像素、3D坐标)
  23957. */
  23958. minStartRadius:number;
  23959. /**
  23960. * 最大开始半径(单位:2D像素、3D坐标)
  23961. */
  23962. maxStartRadius:number;
  23963. /**
  23964. * 最小结束半径(单位:2D像素、3D坐标)
  23965. */
  23966. minEndRadius:number;
  23967. /**
  23968. * 最大结束半径(单位:2D像素、3D坐标)
  23969. */
  23970. maxEndRadius:number;
  23971. /**
  23972. * 最小水平开始弧度(单位:2D弧度、3D弧度)
  23973. */
  23974. minHorizontalStartRadian:number;
  23975. /**
  23976. * 最大水平开始弧度(单位:2D弧度、3D弧度)
  23977. */
  23978. maxHorizontalStartRadian:number;
  23979. /**
  23980. * 最小垂直开始弧度(单位:2D弧度、3D弧度)
  23981. */
  23982. minVerticalStartRadian:number;
  23983. /**
  23984. * 最大垂直开始弧度(单位:2D弧度、3D弧度)
  23985. */
  23986. maxVerticalStartRadian:number;
  23987. /**
  23988. * 是否使用结束弧度,false为结束时与起始弧度保持一致,true为根据minHorizontalEndRadian、maxHorizontalEndRadian、minVerticalEndRadian、maxVerticalEndRadian计算结束弧度。
  23989. */
  23990. useEndRadian:boolean;
  23991. /**
  23992. * 最小水平结束弧度(单位:2D弧度、3D弧度)
  23993. */
  23994. minHorizontalEndRadian:number;
  23995. /**
  23996. * 最大水平结束弧度(单位:2D弧度、3D弧度)
  23997. */
  23998. maxHorizontalEndRadian:number;
  23999. /**
  24000. * 最小垂直结束弧度(单位:2D弧度、3D弧度)
  24001. */
  24002. minVerticalEndRadian:number;
  24003. /**
  24004. * 最大垂直结束弧度(单位:2D弧度、3D弧度)
  24005. */
  24006. maxVerticalEndRadian:number;
  24007. /**
  24008. * 最小开始颜色
  24009. */
  24010. minStartColor:Float32Array;
  24011. /**
  24012. * 最大开始颜色
  24013. */
  24014. maxStartColor:Float32Array;
  24015. /**
  24016. * 最小结束颜色
  24017. */
  24018. minEndColor:Float32Array;
  24019. /**
  24020. * 最大结束颜色
  24021. */
  24022. maxEndColor:Float32Array;
  24023. /**
  24024. * false代表RGBA整体插值,true代表RGBA逐分量插值
  24025. */
  24026. colorComponentInter:boolean;
  24027. /**
  24028. * false代表使用参数颜色数据,true代表使用原图颜色数据
  24029. */
  24030. disableColor:boolean;
  24031. /**
  24032. * 混合模式,待调整,引擎中暂无BlendState抽象
  24033. */
  24034. blendState:number;
  24035. /**
  24036. * 发射器类型,"point","box","sphere","ring"
  24037. */
  24038. emitterType:string;
  24039. /**
  24040. * 发射器发射速率
  24041. */
  24042. emissionRate:number;
  24043. /**
  24044. * 点发射器位置
  24045. */
  24046. pointEmitterPosition:Float32Array;
  24047. /**
  24048. * 点发射器位置随机值
  24049. */
  24050. pointEmitterPositionVariance:Float32Array;
  24051. /**
  24052. * 点发射器速度
  24053. */
  24054. pointEmitterVelocity:Float32Array;
  24055. /**
  24056. * 点发射器速度随机值
  24057. */
  24058. pointEmitterVelocityAddVariance:Float32Array;
  24059. /**
  24060. * 盒发射器中心位置
  24061. */
  24062. boxEmitterCenterPosition:Float32Array;
  24063. /**
  24064. * 盒发射器尺寸
  24065. */
  24066. boxEmitterSize:Float32Array;
  24067. /**
  24068. * 盒发射器速度
  24069. */
  24070. boxEmitterVelocity:Float32Array;
  24071. /**
  24072. * 盒发射器速度随机值
  24073. */
  24074. boxEmitterVelocityAddVariance:Float32Array;
  24075. /**
  24076. * 球发射器中心位置
  24077. */
  24078. sphereEmitterCenterPosition:Float32Array;
  24079. /**
  24080. * 球发射器半径
  24081. */
  24082. sphereEmitterRadius:number;
  24083. /**
  24084. * 球发射器速度
  24085. */
  24086. sphereEmitterVelocity:number;
  24087. /**
  24088. * 球发射器速度随机值
  24089. */
  24090. sphereEmitterVelocityAddVariance:number;
  24091. /**
  24092. * 环发射器中心位置
  24093. */
  24094. ringEmitterCenterPosition:Float32Array;
  24095. /**
  24096. * 环发射器半径
  24097. */
  24098. ringEmitterRadius:number;
  24099. /**
  24100. * 环发射器速度
  24101. */
  24102. ringEmitterVelocity:number;
  24103. /**
  24104. * 环发射器速度随机值
  24105. */
  24106. ringEmitterVelocityAddVariance:number;
  24107. /**
  24108. * 环发射器up向量,0代表X轴,1代表Y轴,2代表Z轴
  24109. */
  24110. ringEmitterUp:number;
  24111. /**
  24112. * 发射器位置随机值,2D使用
  24113. */
  24114. positionVariance:Float32Array;
  24115. /**
  24116. * 创建一个新的 <code>ParticleSettings</code> 类实例。
  24117. */
  24118. constructor();
  24119. private static _defaultSetting:any;
  24120. static checkSetting(setting:any):void;
  24121. }
  24122. }
  24123. declare module laya.particle {
  24124. /**
  24125. * <code>ParticleTemplateBase</code> 类是粒子模板基类
  24126. */
  24127. class ParticleTemplateBase {
  24128. /**
  24129. * 粒子配置数据
  24130. */
  24131. settings:laya.particle.ParticleSetting;
  24132. /**
  24133. * 粒子贴图
  24134. */
  24135. protected texture:laya.resource.Texture;
  24136. /**
  24137. * 创建一个新的 <code>ParticleTemplateBase</code> 类实例。
  24138. */
  24139. constructor();
  24140. /**
  24141. * 添加一个粒子
  24142. * @param position 粒子位置
  24143. * @param velocity 粒子速度
  24144. */
  24145. addParticleArray(position:Float32Array,velocity:Float32Array):void;
  24146. }
  24147. }
  24148. declare module laya.particle {
  24149. /**
  24150. * @private
  24151. */
  24152. class ParticleTemplateWebGL extends laya.particle.ParticleTemplateBase {
  24153. protected _vertices:Float32Array;
  24154. protected _mesh:laya.webgl.utils.MeshParticle2D;
  24155. protected _conchMesh:any;
  24156. protected _floatCountPerVertex:number;
  24157. protected _firstActiveElement:number;
  24158. protected _firstNewElement:number;
  24159. protected _firstFreeElement:number;
  24160. protected _firstRetiredElement:number;
  24161. protected _drawCounter:number;
  24162. constructor(parSetting:laya.particle.ParticleSetting);
  24163. reUse(context:laya.resource.Context,pos:number):number;
  24164. protected initialize():void;
  24165. update(elapsedTime:number):void;
  24166. private retireActiveParticles:any;
  24167. private freeRetiredParticles:any;
  24168. addNewParticlesToVertexBuffer():void;
  24169. /**
  24170. * @param position
  24171. * @param velocity
  24172. * @override
  24173. */
  24174. addParticleArray(position:Float32Array,velocity:Float32Array):void;
  24175. }
  24176. }
  24177. declare module laya.particle.shader {
  24178. /**
  24179. * @private
  24180. */
  24181. class ParticleShader extends laya.webgl.shader.Shader {
  24182. static vs:string;
  24183. static ps:string;
  24184. constructor();
  24185. }
  24186. }
  24187. declare module laya.physics {
  24188. /**
  24189. * 2D矩形碰撞体
  24190. */
  24191. class BoxCollider extends laya.physics.ColliderBase {
  24192. /**
  24193. * @private
  24194. */
  24195. private static _temp:any;
  24196. /**
  24197. * 相对节点的x轴偏移
  24198. */
  24199. private _x:any;
  24200. /**
  24201. * 相对节点的y轴偏移
  24202. */
  24203. private _y:any;
  24204. /**
  24205. * 矩形宽度
  24206. */
  24207. private _width:any;
  24208. /**
  24209. * 矩形高度
  24210. */
  24211. private _height:any;
  24212. /**
  24213. * @override
  24214. */
  24215. protected getDef():any;
  24216. private _setShape:any;
  24217. /**
  24218. * 相对节点的x轴偏移
  24219. */
  24220. x:number;
  24221. /**
  24222. * 相对节点的y轴偏移
  24223. */
  24224. y:number;
  24225. /**
  24226. * 矩形宽度
  24227. */
  24228. width:number;
  24229. /**
  24230. * 矩形高度
  24231. */
  24232. height:number;
  24233. /**
  24234. * @private 重置形状
  24235. * @override
  24236. */
  24237. resetShape(re?:boolean):void;
  24238. }
  24239. }
  24240. declare module laya.physics {
  24241. /**
  24242. * 2D线形碰撞体
  24243. */
  24244. class ChainCollider extends laya.physics.ColliderBase {
  24245. /**
  24246. * 相对节点的x轴偏移
  24247. */
  24248. private _x:any;
  24249. /**
  24250. * 相对节点的y轴偏移
  24251. */
  24252. private _y:any;
  24253. /**
  24254. * 用逗号隔开的点的集合,格式:x,y,x,y ...
  24255. */
  24256. private _points:any;
  24257. /**
  24258. * 是否是闭环,注意不要有自相交的链接形状,它可能不能正常工作
  24259. */
  24260. private _loop:any;
  24261. /**
  24262. * @override
  24263. */
  24264. protected getDef():any;
  24265. private _setShape:any;
  24266. /**
  24267. * 相对节点的x轴偏移
  24268. */
  24269. x:number;
  24270. /**
  24271. * 相对节点的y轴偏移
  24272. */
  24273. y:number;
  24274. /**
  24275. * 用逗号隔开的点的集合,格式:x,y,x,y ...
  24276. */
  24277. points:string;
  24278. /**
  24279. * 是否是闭环,注意不要有自相交的链接形状,它可能不能正常工作
  24280. */
  24281. loop:boolean;
  24282. }
  24283. }
  24284. declare module laya.physics {
  24285. /**
  24286. * 2D圆形碰撞体
  24287. */
  24288. class CircleCollider extends laya.physics.ColliderBase {
  24289. /**
  24290. * @private
  24291. */
  24292. private static _temp:any;
  24293. /**
  24294. * 相对节点的x轴偏移
  24295. */
  24296. private _x:any;
  24297. /**
  24298. * 相对节点的y轴偏移
  24299. */
  24300. private _y:any;
  24301. /**
  24302. * 圆形半径,必须为正数
  24303. */
  24304. private _radius:any;
  24305. /**
  24306. * @override
  24307. */
  24308. protected getDef():any;
  24309. private _setShape:any;
  24310. /**
  24311. * 相对节点的x轴偏移
  24312. */
  24313. x:number;
  24314. /**
  24315. * 相对节点的y轴偏移
  24316. */
  24317. y:number;
  24318. /**
  24319. * 圆形半径,必须为正数
  24320. */
  24321. radius:number;
  24322. /**
  24323. * @private 重置形状
  24324. * @override
  24325. */
  24326. resetShape(re?:boolean):void;
  24327. }
  24328. }
  24329. declare module laya.physics {
  24330. /**
  24331. * 碰撞体基类
  24332. */
  24333. class ColliderBase extends laya.components.Component {
  24334. /**
  24335. * 是否是传感器,传感器能够触发碰撞事件,但不会产生碰撞反应
  24336. */
  24337. private _isSensor:any;
  24338. /**
  24339. * 密度值,值可以为零或者是正数,建议使用相似的密度,这样做可以改善堆叠稳定性,默认值为10
  24340. */
  24341. private _density:any;
  24342. /**
  24343. * 摩擦力,取值范围0-1,值越大,摩擦越大,默认值为0.2
  24344. */
  24345. private _friction:any;
  24346. /**
  24347. * 弹性系数,取值范围0-1,值越大,弹性越大,默认值为0
  24348. */
  24349. private _restitution:any;
  24350. /**
  24351. * 标签
  24352. */
  24353. label:string;
  24354. /**
  24355. * @private b2Shape对象
  24356. */
  24357. protected _shape:any;
  24358. /**
  24359. * @private b2FixtureDef对象
  24360. */
  24361. protected _def:any;
  24362. /**
  24363. * [只读]b2Fixture对象
  24364. */
  24365. fixture:any;
  24366. /**
  24367. * [只读]刚体引用
  24368. */
  24369. rigidBody:laya.physics.RigidBody;
  24370. /**
  24371. * @private 获取碰撞体信息
  24372. */
  24373. protected getDef():any;
  24374. private _checkRigidBody:any;
  24375. /**
  24376. * 是否是传感器,传感器能够触发碰撞事件,但不会产生碰撞反应
  24377. */
  24378. isSensor:boolean;
  24379. /**
  24380. * 密度值,值可以为零或者是正数,建议使用相似的密度,这样做可以改善堆叠稳定性,默认值为10
  24381. */
  24382. density:number;
  24383. /**
  24384. * 摩擦力,取值范围0-1,值越大,摩擦越大,默认值为0.2
  24385. */
  24386. friction:number;
  24387. /**
  24388. * 弹性系数,取值范围0-1,值越大,弹性越大,默认值为0
  24389. */
  24390. restitution:number;
  24391. /**
  24392. * @private 碰撞体参数发生变化后,刷新物理世界碰撞信息
  24393. */
  24394. refresh():void;
  24395. /**
  24396. * @private 重置形状
  24397. */
  24398. resetShape(re?:boolean):void;
  24399. /**
  24400. * 获取是否为单实例组件。
  24401. * @override
  24402. */
  24403. readonly isSingleton:boolean;
  24404. }
  24405. }
  24406. declare module laya.physics.joint {
  24407. /**
  24408. * 距离关节:两个物体上面各自有一点,两点之间的距离固定不变
  24409. */
  24410. class DistanceJoint extends laya.physics.joint.JointBase {
  24411. /**
  24412. * @private
  24413. */
  24414. private static _temp:any;
  24415. /**
  24416. * [首次设置有效]关节的自身刚体
  24417. */
  24418. selfBody:laya.physics.RigidBody;
  24419. /**
  24420. * [首次设置有效]关节的连接刚体,可不设置,默认为左上角空刚体
  24421. */
  24422. otherBody:laya.physics.RigidBody;
  24423. /**
  24424. * [首次设置有效]自身刚体链接点,是相对于自身刚体的左上角位置偏移
  24425. */
  24426. selfAnchor:any[];
  24427. /**
  24428. * [首次设置有效]链接刚体链接点,是相对于otherBody的左上角位置偏移
  24429. */
  24430. otherAnchor:any[];
  24431. /**
  24432. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  24433. */
  24434. collideConnected:boolean;
  24435. /**
  24436. * 约束的目标静止长度
  24437. */
  24438. private _length:any;
  24439. /**
  24440. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  24441. */
  24442. private _frequency:any;
  24443. /**
  24444. * 刚体在回归到节点过程中受到的阻尼,建议取值0~1
  24445. */
  24446. private _damping:any;
  24447. /**
  24448. * @override
  24449. */
  24450. protected _createJoint():void;
  24451. /**
  24452. * 约束的目标静止长度
  24453. */
  24454. length:number;
  24455. /**
  24456. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  24457. */
  24458. frequency:number;
  24459. /**
  24460. * 刚体在回归到节点过程中受到的阻尼,建议取值0~1
  24461. */
  24462. damping:number;
  24463. }
  24464. }
  24465. declare module laya.physics.joint {
  24466. /**
  24467. * 齿轮关节:用来模拟两个齿轮间的约束关系,齿轮旋转时,产生的动量有两种输出方式,一种是齿轮本身的角速度,另一种是齿轮表面的线速度
  24468. */
  24469. class GearJoint extends laya.physics.joint.JointBase {
  24470. /**
  24471. * @private
  24472. */
  24473. private static _temp:any;
  24474. /**
  24475. * [首次设置有效]要绑定的第1个关节,类型可以是RevoluteJoint或者PrismaticJoint
  24476. */
  24477. joint1:any;
  24478. /**
  24479. * [首次设置有效]要绑定的第2个关节,类型可以是RevoluteJoint或者PrismaticJoint
  24480. */
  24481. joint2:any;
  24482. /**
  24483. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  24484. */
  24485. collideConnected:boolean;
  24486. /**
  24487. * 两个齿轮角速度比例,默认1
  24488. */
  24489. private _ratio:any;
  24490. /**
  24491. * @override
  24492. */
  24493. protected _createJoint():void;
  24494. /**
  24495. * 两个齿轮角速度比例,默认1
  24496. */
  24497. ratio:number;
  24498. }
  24499. }
  24500. declare module laya.physics.joint {
  24501. /**
  24502. * 关节基类
  24503. */
  24504. class JointBase extends laya.components.Component {
  24505. /**
  24506. * 原生关节对象
  24507. */
  24508. protected _joint:any;
  24509. /**
  24510. * [只读]原生关节对象
  24511. */
  24512. readonly joint:any;
  24513. protected _createJoint():void;
  24514. }
  24515. }
  24516. declare module laya.physics.joint {
  24517. /**
  24518. * 马达关节:用来限制两个刚体,使其相对位置和角度保持不变
  24519. */
  24520. class MotorJoint extends laya.physics.joint.JointBase {
  24521. /**
  24522. * @private
  24523. */
  24524. private static _temp:any;
  24525. /**
  24526. * [首次设置有效]关节的自身刚体
  24527. */
  24528. selfBody:laya.physics.RigidBody;
  24529. /**
  24530. * [首次设置有效]关节的连接刚体
  24531. */
  24532. otherBody:laya.physics.RigidBody;
  24533. /**
  24534. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  24535. */
  24536. collideConnected:boolean;
  24537. /**
  24538. * 基于otherBody坐标位置的偏移量,也是selfBody的目标位置
  24539. */
  24540. private _linearOffset:any;
  24541. /**
  24542. * 基于otherBody的角度偏移量,也是selfBody的目标角度
  24543. */
  24544. private _angularOffset:any;
  24545. /**
  24546. * 当selfBody偏离目标位置时,为使其恢复到目标位置,马达关节所施加的最大作用力
  24547. */
  24548. private _maxForce:any;
  24549. /**
  24550. * 当selfBody角度与目标角度不同时,为使其达到目标角度,马达关节施加的最大扭力
  24551. */
  24552. private _maxTorque:any;
  24553. /**
  24554. * selfBody向目标位置移动时的缓动因子,取值0~1,值越大速度越快
  24555. */
  24556. private _correctionFactor:any;
  24557. /**
  24558. * @override
  24559. */
  24560. protected _createJoint():void;
  24561. /**
  24562. * 基于otherBody坐标位置的偏移量,也是selfBody的目标位置
  24563. */
  24564. linearOffset:any[];
  24565. /**
  24566. * 基于otherBody的角度偏移量,也是selfBody的目标角度
  24567. */
  24568. angularOffset:number;
  24569. /**
  24570. * 当selfBody偏离目标位置时,为使其恢复到目标位置,马达关节所施加的最大作用力
  24571. */
  24572. maxForce:number;
  24573. /**
  24574. * 当selfBody角度与目标角度不同时,为使其达到目标角度,马达关节施加的最大扭力
  24575. */
  24576. maxTorque:number;
  24577. /**
  24578. * selfBody向目标位置移动时的缓动因子,取值0~1,值越大速度越快
  24579. */
  24580. correctionFactor:number;
  24581. }
  24582. }
  24583. declare module laya.physics.joint {
  24584. /**
  24585. * 鼠标关节:鼠标关节用于通过鼠标来操控物体。它试图将物体拖向当前鼠标光标的位置。而在旋转方面就没有限制。
  24586. */
  24587. class MouseJoint extends laya.physics.joint.JointBase {
  24588. /**
  24589. * @private
  24590. */
  24591. private static _temp:any;
  24592. /**
  24593. * [首次设置有效]关节的自身刚体
  24594. */
  24595. selfBody:laya.physics.RigidBody;
  24596. /**
  24597. * [首次设置有效]关节的链接点,是相对于自身刚体的左上角位置偏移,如果不设置,则根据鼠标点击点作为连接点
  24598. */
  24599. anchor:any[];
  24600. /**
  24601. * 鼠标关节在拖曳刚体bodyB时施加的最大作用力
  24602. */
  24603. private _maxForce:any;
  24604. /**
  24605. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  24606. */
  24607. private _frequency:any;
  24608. /**
  24609. * 刚体在回归到节点过程中受到的阻尼,取值0~1
  24610. */
  24611. private _damping:any;
  24612. private onMouseDown:any;
  24613. /**
  24614. * @override
  24615. */
  24616. protected _createJoint():void;
  24617. private onStageMouseUp:any;
  24618. private onMouseMove:any;
  24619. /**
  24620. * 鼠标关节在拖曳刚体bodyB时施加的最大作用力
  24621. */
  24622. maxForce:number;
  24623. /**
  24624. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  24625. */
  24626. frequency:number;
  24627. /**
  24628. * 刚体在回归到节点过程中受到的阻尼,取值0~1
  24629. */
  24630. damping:number;
  24631. }
  24632. }
  24633. declare module laya.physics.joint {
  24634. /**
  24635. * 平移关节:移动关节允许两个物体沿指定轴相对移动,它会阻止相对旋转
  24636. */
  24637. class PrismaticJoint extends laya.physics.joint.JointBase {
  24638. /**
  24639. * @private
  24640. */
  24641. private static _temp:any;
  24642. /**
  24643. * [首次设置有效]关节的自身刚体
  24644. */
  24645. selfBody:laya.physics.RigidBody;
  24646. /**
  24647. * [首次设置有效]关节的连接刚体,可不设置,默认为左上角空刚体
  24648. */
  24649. otherBody:laya.physics.RigidBody;
  24650. /**
  24651. * [首次设置有效]关节的控制点,是相对于自身刚体的左上角位置偏移
  24652. */
  24653. anchor:any[];
  24654. /**
  24655. * [首次设置有效]一个向量值,描述运动方向,比如1,0是沿X轴向右
  24656. */
  24657. axis:any[];
  24658. /**
  24659. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  24660. */
  24661. collideConnected:boolean;
  24662. /**
  24663. * 是否开启马达,开启马达可使目标刚体运动
  24664. */
  24665. private _enableMotor:any;
  24666. /**
  24667. * 启用马达后,在axis坐标轴上移动可以达到的最大速度
  24668. */
  24669. private _motorSpeed:any;
  24670. /**
  24671. * 启用马达后,可以施加的最大作用力
  24672. */
  24673. private _maxMotorForce:any;
  24674. /**
  24675. * 是否对刚体的移动范围加以约束
  24676. */
  24677. private _enableLimit:any;
  24678. /**
  24679. * 启用约束后,刚体移动范围的下限,是距离anchor的偏移量
  24680. */
  24681. private _lowerTranslation:any;
  24682. /**
  24683. * 启用约束后,刚体移动范围的上限,是距离anchor的偏移量
  24684. */
  24685. private _upperTranslation:any;
  24686. /**
  24687. * @override
  24688. */
  24689. protected _createJoint():void;
  24690. /**
  24691. * 是否开启马达,开启马达可使目标刚体运动
  24692. */
  24693. enableMotor:boolean;
  24694. /**
  24695. * 启用马达后,在axis坐标轴上移动可以达到的最大速度
  24696. */
  24697. motorSpeed:number;
  24698. /**
  24699. * 启用马达后,可以施加的最大作用力
  24700. */
  24701. maxMotorForce:number;
  24702. /**
  24703. * 是否对刚体的移动范围加以约束
  24704. */
  24705. enableLimit:boolean;
  24706. /**
  24707. * 启用约束后,刚体移动范围的下限,是距离anchor的偏移量
  24708. */
  24709. lowerTranslation:number;
  24710. /**
  24711. * 启用约束后,刚体移动范围的上限,是距离anchor的偏移量
  24712. */
  24713. upperTranslation:number;
  24714. }
  24715. }
  24716. declare module laya.physics.joint {
  24717. /**
  24718. * 滑轮关节:它将两个物体接地(ground)并彼此连接,当一个物体上升,另一个物体就会下降
  24719. */
  24720. class PulleyJoint extends laya.physics.joint.JointBase {
  24721. /**
  24722. * @private
  24723. */
  24724. private static _temp:any;
  24725. /**
  24726. * [首次设置有效]关节的自身刚体
  24727. */
  24728. selfBody:laya.physics.RigidBody;
  24729. /**
  24730. * [首次设置有效]关节的连接刚体
  24731. */
  24732. otherBody:laya.physics.RigidBody;
  24733. /**
  24734. * [首次设置有效]自身刚体链接点,是相对于自身刚体的左上角位置偏移
  24735. */
  24736. selfAnchor:any[];
  24737. /**
  24738. * [首次设置有效]链接刚体链接点,是相对于otherBody的左上角位置偏移
  24739. */
  24740. otherAnchor:any[];
  24741. /**
  24742. * [首次设置有效]滑轮上与节点selfAnchor相连接的节点,是相对于自身刚体的左上角位置偏移
  24743. */
  24744. selfGroundPoint:any[];
  24745. /**
  24746. * [首次设置有效]滑轮上与节点otherAnchor相连接的节点,是相对于otherBody的左上角位置偏移
  24747. */
  24748. otherGroundPoint:any[];
  24749. /**
  24750. * [首次设置有效]两刚体移动距离比率
  24751. */
  24752. ratio:number;
  24753. /**
  24754. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  24755. */
  24756. collideConnected:boolean;
  24757. /**
  24758. * @override
  24759. */
  24760. protected _createJoint():void;
  24761. }
  24762. }
  24763. declare module laya.physics.joint {
  24764. /**
  24765. * 旋转关节强制两个物体共享一个锚点,两个物体相对旋转
  24766. */
  24767. class RevoluteJoint extends laya.physics.joint.JointBase {
  24768. /**
  24769. * @private
  24770. */
  24771. private static _temp:any;
  24772. /**
  24773. * [首次设置有效]关节的自身刚体
  24774. */
  24775. selfBody:laya.physics.RigidBody;
  24776. /**
  24777. * [首次设置有效]关节的连接刚体,可不设置
  24778. */
  24779. otherBody:laya.physics.RigidBody;
  24780. /**
  24781. * [首次设置有效]关节的链接点,是相对于自身刚体的左上角位置偏移
  24782. */
  24783. anchor:any[];
  24784. /**
  24785. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  24786. */
  24787. collideConnected:boolean;
  24788. /**
  24789. * 是否开启马达,开启马达可使目标刚体运动
  24790. */
  24791. private _enableMotor:any;
  24792. /**
  24793. * 启用马达后,可以达到的最大旋转速度
  24794. */
  24795. private _motorSpeed:any;
  24796. /**
  24797. * 启用马达后,可以施加的最大扭距,如果最大扭矩太小,会导致不旋转
  24798. */
  24799. private _maxMotorTorque:any;
  24800. /**
  24801. * 是否对刚体的旋转范围加以约束
  24802. */
  24803. private _enableLimit:any;
  24804. /**
  24805. * 启用约束后,刚体旋转范围的下限弧度
  24806. */
  24807. private _lowerAngle:any;
  24808. /**
  24809. * 启用约束后,刚体旋转范围的上限弧度
  24810. */
  24811. private _upperAngle:any;
  24812. /**
  24813. * @override
  24814. */
  24815. protected _createJoint():void;
  24816. /**
  24817. * 是否开启马达,开启马达可使目标刚体运动
  24818. */
  24819. enableMotor:boolean;
  24820. /**
  24821. * 启用马达后,可以达到的最大旋转速度
  24822. */
  24823. motorSpeed:number;
  24824. /**
  24825. * 启用马达后,可以施加的最大扭距,如果最大扭矩太小,会导致不旋转
  24826. */
  24827. maxMotorTorque:number;
  24828. /**
  24829. * 是否对刚体的旋转范围加以约束
  24830. */
  24831. enableLimit:boolean;
  24832. /**
  24833. * 启用约束后,刚体旋转范围的下限弧度
  24834. */
  24835. lowerAngle:number;
  24836. /**
  24837. * 启用约束后,刚体旋转范围的上限弧度
  24838. */
  24839. upperAngle:number;
  24840. }
  24841. }
  24842. declare module laya.physics.joint {
  24843. /**
  24844. * 绳索关节:限制了两个点之间的最大距离。它能够阻止连接的物体之间的拉伸,即使在很大的负载下
  24845. */
  24846. class RopeJoint extends laya.physics.joint.JointBase {
  24847. /**
  24848. * @private
  24849. */
  24850. private static _temp:any;
  24851. /**
  24852. * [首次设置有效]关节的自身刚体
  24853. */
  24854. selfBody:laya.physics.RigidBody;
  24855. /**
  24856. * [首次设置有效]关节的连接刚体,可不设置,默认为左上角空刚体
  24857. */
  24858. otherBody:laya.physics.RigidBody;
  24859. /**
  24860. * [首次设置有效]自身刚体链接点,是相对于自身刚体的左上角位置偏移
  24861. */
  24862. selfAnchor:any[];
  24863. /**
  24864. * [首次设置有效]链接刚体链接点,是相对于otherBody的左上角位置偏移
  24865. */
  24866. otherAnchor:any[];
  24867. /**
  24868. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  24869. */
  24870. collideConnected:boolean;
  24871. /**
  24872. * selfAnchor和otherAnchor之间的最大距离
  24873. */
  24874. private _maxLength:any;
  24875. /**
  24876. * @override
  24877. */
  24878. protected _createJoint():void;
  24879. /**
  24880. * selfAnchor和otherAnchor之间的最大距离
  24881. */
  24882. maxLength:number;
  24883. }
  24884. }
  24885. declare module laya.physics.joint {
  24886. /**
  24887. * 焊接关节:焊接关节的用途是使两个物体不能相对运动,受到关节的限制,两个刚体的相对位置和角度都保持不变,看上去像一个整体
  24888. */
  24889. class WeldJoint extends laya.physics.joint.JointBase {
  24890. /**
  24891. * @private
  24892. */
  24893. private static _temp:any;
  24894. /**
  24895. * [首次设置有效]关节的自身刚体
  24896. */
  24897. selfBody:laya.physics.RigidBody;
  24898. /**
  24899. * [首次设置有效]关节的连接刚体
  24900. */
  24901. otherBody:laya.physics.RigidBody;
  24902. /**
  24903. * [首次设置有效]关节的链接点,是相对于自身刚体的左上角位置偏移
  24904. */
  24905. anchor:any[];
  24906. /**
  24907. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  24908. */
  24909. collideConnected:boolean;
  24910. /**
  24911. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  24912. */
  24913. private _frequency:any;
  24914. /**
  24915. * 刚体在回归到节点过程中受到的阻尼,取值0~1
  24916. */
  24917. private _damping:any;
  24918. /**
  24919. * @override
  24920. */
  24921. protected _createJoint():void;
  24922. /**
  24923. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  24924. */
  24925. frequency:number;
  24926. /**
  24927. * 刚体在回归到节点过程中受到的阻尼,建议取值0~1
  24928. */
  24929. damping:number;
  24930. }
  24931. }
  24932. declare module laya.physics.joint {
  24933. /**
  24934. * 轮子关节:围绕节点旋转,包含弹性属性,使得刚体在节点位置发生弹性偏移
  24935. */
  24936. class WheelJoint extends laya.physics.joint.JointBase {
  24937. /**
  24938. * @private
  24939. */
  24940. private static _temp:any;
  24941. /**
  24942. * [首次设置有效]关节的自身刚体
  24943. */
  24944. selfBody:laya.physics.RigidBody;
  24945. /**
  24946. * [首次设置有效]关节的连接刚体
  24947. */
  24948. otherBody:laya.physics.RigidBody;
  24949. /**
  24950. * [首次设置有效]关节的链接点,是相对于自身刚体的左上角位置偏移
  24951. */
  24952. anchor:any[];
  24953. /**
  24954. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  24955. */
  24956. collideConnected:boolean;
  24957. /**
  24958. * [首次设置有效]一个向量值,描述运动方向,比如1,0是沿X轴向右
  24959. */
  24960. axis:any[];
  24961. /**
  24962. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  24963. */
  24964. private _frequency:any;
  24965. /**
  24966. * 刚体在回归到节点过程中受到的阻尼,取值0~1
  24967. */
  24968. private _damping:any;
  24969. /**
  24970. * 是否开启马达,开启马达可使目标刚体运动
  24971. */
  24972. private _enableMotor:any;
  24973. /**
  24974. * 启用马达后,可以达到的最大旋转速度
  24975. */
  24976. private _motorSpeed:any;
  24977. /**
  24978. * 启用马达后,可以施加的最大扭距,如果最大扭矩太小,会导致不旋转
  24979. */
  24980. private _maxMotorTorque:any;
  24981. /**
  24982. * @override
  24983. */
  24984. protected _createJoint():void;
  24985. /**
  24986. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  24987. */
  24988. frequency:number;
  24989. /**
  24990. * 刚体在回归到节点过程中受到的阻尼,取值0~1
  24991. */
  24992. damping:number;
  24993. /**
  24994. * 是否开启马达,开启马达可使目标刚体运动
  24995. */
  24996. enableMotor:boolean;
  24997. /**
  24998. * 启用马达后,可以达到的最大旋转速度
  24999. */
  25000. motorSpeed:number;
  25001. /**
  25002. * 启用马达后,可以施加的最大扭距,如果最大扭矩太小,会导致不旋转
  25003. */
  25004. maxMotorTorque:number;
  25005. }
  25006. }
  25007. declare module laya.physics {
  25008. /**
  25009. * 2D物理引擎,使用Box2d驱动
  25010. */
  25011. class Physics extends laya.events.EventDispatcher {
  25012. /**
  25013. * 2D游戏默认单位为像素,物理默认单位为米,此值设置了像素和米的转换比率,默认50像素=1米
  25014. */
  25015. static PIXEL_RATIO:number;
  25016. /**
  25017. * @private
  25018. */
  25019. private static _I:any;
  25020. /**
  25021. * Box2d引擎的全局引用,更多属性和api请参考 http://box2d.org
  25022. */
  25023. box2d:any;
  25024. /**
  25025. * [只读]物理世界引用,更多属性请参考官网
  25026. */
  25027. world:any;
  25028. /**
  25029. * 旋转迭代次数,增大数字会提高精度,但是会降低性能
  25030. */
  25031. velocityIterations:number;
  25032. /**
  25033. * 位置迭代次数,增大数字会提高精度,但是会降低性能
  25034. */
  25035. positionIterations:number;
  25036. /**
  25037. * @private 是否已经激活
  25038. */
  25039. private _enabled:any;
  25040. /**
  25041. * @private 根容器
  25042. */
  25043. private _worldRoot:any;
  25044. /**
  25045. * @private 空的body节点,给一些不需要节点的关节使用
  25046. */
  25047. _emptyBody:any;
  25048. /**
  25049. * @private
  25050. */
  25051. _eventList:any[];
  25052. /**
  25053. * 全局物理单例
  25054. */
  25055. static readonly I:Physics;
  25056. constructor();
  25057. /**
  25058. * 开启物理世界
  25059. * options值参考如下:
  25060. * allowSleeping:true,
  25061. * gravity:10,
  25062. * customUpdate:false 自己控制物理更新时机,自己调用Physics.update
  25063. */
  25064. static enable(options?:any):void;
  25065. /**
  25066. * 开启物理世界
  25067. * options值参考如下:
  25068. * allowSleeping:true,
  25069. * gravity:10,
  25070. * customUpdate:false 自己控制物理更新时机,自己调用Physics.update
  25071. */
  25072. start(options?:any):void;
  25073. private _update:any;
  25074. private _sendEvent:any;
  25075. /**
  25076. * @private
  25077. */
  25078. _createBody(def:any):any;
  25079. /**
  25080. * @private
  25081. */
  25082. _removeBody(body:any):void;
  25083. /**
  25084. * @private
  25085. */
  25086. _createJoint(def:any):any;
  25087. /**
  25088. * @private
  25089. */
  25090. _removeJoint(joint:any):void;
  25091. /**
  25092. * 停止物理世界
  25093. */
  25094. stop():void;
  25095. /**
  25096. * 设置是否允许休眠,休眠可以提高稳定性和性能,但通常会牺牲准确性
  25097. */
  25098. allowSleeping:boolean;
  25099. /**
  25100. * 物理世界重力环境,默认值为{x:0,y:1}
  25101. * 如果修改y方向重力方向向上,可以直接设置gravity.y=-1;
  25102. */
  25103. gravity:any;
  25104. /**
  25105. * 获得刚体总数量
  25106. */
  25107. getBodyCount():number;
  25108. /**
  25109. * 获得碰撞总数量
  25110. */
  25111. getContactCount():number;
  25112. /**
  25113. * 获得关节总数量
  25114. */
  25115. getJointCount():number;
  25116. /**
  25117. * 物理世界根容器,将根据此容器作为物理世界坐标世界,进行坐标变换,默认值为stage
  25118. * 设置特定容器后,就可整体位移物理对象,保持物理世界不变
  25119. */
  25120. worldRoot:laya.display.Sprite;
  25121. }
  25122. }
  25123. declare module laya.physics {
  25124. /**
  25125. * 物理辅助线,调用PhysicsDebugDraw.enable()开启,或者通过IDE设置打开
  25126. */
  25127. class PhysicsDebugDraw extends laya.display.Sprite {
  25128. /**
  25129. * @private
  25130. */
  25131. m_drawFlags:number;
  25132. /**
  25133. * @private
  25134. */
  25135. static box2d:any;
  25136. /**
  25137. * @private
  25138. */
  25139. static DrawString_s_color:any;
  25140. /**
  25141. * @private
  25142. */
  25143. static DrawStringWorld_s_p:any;
  25144. /**
  25145. * @private
  25146. */
  25147. static DrawStringWorld_s_cc:any;
  25148. /**
  25149. * @private
  25150. */
  25151. static DrawStringWorld_s_color:any;
  25152. /**
  25153. * @private
  25154. */
  25155. world:any;
  25156. /**
  25157. * @private
  25158. */
  25159. private _camera:any;
  25160. /**
  25161. * @private
  25162. */
  25163. private static _canvas:any;
  25164. /**
  25165. * @private
  25166. */
  25167. private static _inited:any;
  25168. /**
  25169. * @private
  25170. */
  25171. private _mG:any;
  25172. /**
  25173. * @private
  25174. */
  25175. private _textSp:any;
  25176. /**
  25177. * @private
  25178. */
  25179. private _textG:any;
  25180. /**
  25181. * @private
  25182. */
  25183. static init():void;
  25184. constructor();
  25185. /**
  25186. * @private
  25187. * @override
  25188. */
  25189. render(ctx:laya.resource.Context,x:number,y:number):void;
  25190. /**
  25191. * @private
  25192. */
  25193. private lineWidth:any;
  25194. /**
  25195. * @private
  25196. */
  25197. private _renderToGraphic:any;
  25198. /**
  25199. * @private
  25200. */
  25201. SetFlags(flags:number):void;
  25202. /**
  25203. * @private
  25204. */
  25205. GetFlags():number;
  25206. /**
  25207. * @private
  25208. */
  25209. AppendFlags(flags:number):void;
  25210. /**
  25211. * @private
  25212. */
  25213. ClearFlags(flags:any):void;
  25214. /**
  25215. * @private
  25216. */
  25217. PushTransform(xf:any):void;
  25218. /**
  25219. * @private
  25220. */
  25221. PopTransform(xf:any):void;
  25222. /**
  25223. * @private
  25224. */
  25225. DrawPolygon(vertices:any,vertexCount:any,color:any):void;
  25226. /**
  25227. * @private
  25228. */
  25229. DrawSolidPolygon(vertices:any,vertexCount:any,color:any):void;
  25230. /**
  25231. * @private
  25232. */
  25233. DrawCircle(center:any,radius:any,color:any):void;
  25234. /**
  25235. * @private
  25236. */
  25237. DrawSolidCircle(center:any,radius:any,axis:any,color:any):void;
  25238. /**
  25239. * @private
  25240. */
  25241. DrawParticles(centers:any,radius:any,colors:any,count:any):void;
  25242. /**
  25243. * @private
  25244. */
  25245. DrawSegment(p1:any,p2:any,color:any):void;
  25246. /**
  25247. * @private
  25248. */
  25249. DrawTransform(xf:any):void;
  25250. /**
  25251. * @private
  25252. */
  25253. DrawPoint(p:any,size:any,color:any):void;
  25254. /**
  25255. * @private
  25256. */
  25257. DrawString(x:any,y:any,message:any):void;
  25258. /**
  25259. * @private
  25260. */
  25261. DrawStringWorld(x:any,y:any,message:any):void;
  25262. /**
  25263. * @private
  25264. */
  25265. DrawAABB(aabb:any,color:any):void;
  25266. /**
  25267. * @private
  25268. */
  25269. static I:PhysicsDebugDraw;
  25270. /**
  25271. * 激活物理辅助线
  25272. * @param flags 位标记值,其值是AND的结果,其值有-1:显示形状,2:显示关节,4:显示AABB包围盒,8:显示broad-phase pairs,16:显示质心
  25273. * @return 返回一个Sprite对象,本对象用来显示物理辅助线
  25274. */
  25275. static enable(flags?:number):PhysicsDebugDraw;
  25276. }
  25277. }
  25278. declare module laya.physics {
  25279. /**
  25280. * 2D多边形碰撞体,暂时不支持凹多边形,如果是凹多边形,先手动拆分为多个凸多边形
  25281. * 节点个数最多是b2_maxPolygonVertices,这数值默认是8,所以点的数量不建议超过8个,也不能小于3个
  25282. */
  25283. class PolygonCollider extends laya.physics.ColliderBase {
  25284. /**
  25285. * 相对节点的x轴偏移
  25286. */
  25287. private _x:any;
  25288. /**
  25289. * 相对节点的y轴偏移
  25290. */
  25291. private _y:any;
  25292. /**
  25293. * 用逗号隔开的点的集合,格式:x,y,x,y ...
  25294. */
  25295. private _points:any;
  25296. /**
  25297. * @override
  25298. */
  25299. protected getDef():any;
  25300. private _setShape:any;
  25301. /**
  25302. * 相对节点的x轴偏移
  25303. */
  25304. x:number;
  25305. /**
  25306. * 相对节点的y轴偏移
  25307. */
  25308. y:number;
  25309. /**
  25310. * 用逗号隔开的点的集合,格式:x,y,x,y ...
  25311. */
  25312. points:string;
  25313. }
  25314. }
  25315. declare module laya.physics {
  25316. /**
  25317. * 2D刚体,显示对象通过RigidBody和物理世界进行绑定,保持物理和显示对象之间的位置同步
  25318. * 物理世界的位置变化会自动同步到显示对象,显示对象本身的位移,旋转(父对象位移无效)也会自动同步到物理世界
  25319. * 由于引擎限制,暂时不支持以下情形:
  25320. * 1.不支持绑定节点缩放
  25321. * 2.不支持绑定节点的父节点缩放和旋转
  25322. * 3.不支持实时控制父对象位移,IDE内父对象位移是可以的
  25323. * 如果想整体位移物理世界,可以Physics.I.worldRoot=场景,然后移动场景即可
  25324. * 可以通过IDE-"项目设置" 开启物理辅助线显示,或者通过代码PhysicsDebugDraw.enable();
  25325. */
  25326. class RigidBody extends laya.components.Component {
  25327. /**
  25328. * 刚体类型,支持三种类型static,dynamic和kinematic类型,默认为dynamic类型
  25329. * static为静态类型,静止不动,不受重力影响,质量无限大,可以通过节点移动,旋转,缩放进行控制
  25330. * dynamic为动态类型,受重力影响
  25331. * kinematic为运动类型,不受重力影响,可以通过施加速度或者力的方式使其运动
  25332. */
  25333. protected _type:string;
  25334. /**
  25335. * 是否允许休眠,允许休眠能提高性能
  25336. */
  25337. protected _allowSleep:boolean;
  25338. /**
  25339. * 角速度,设置会导致旋转
  25340. */
  25341. protected _angularVelocity:number;
  25342. /**
  25343. * 旋转速度阻尼系数,范围可以在0到无穷大之间,0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间
  25344. */
  25345. protected _angularDamping:number;
  25346. /**
  25347. * 线性运动速度,比如{x:10,y:10}
  25348. */
  25349. protected _linearVelocity:any;
  25350. /**
  25351. * 线性速度阻尼系数,范围可以在0到无穷大之间,0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间
  25352. */
  25353. protected _linearDamping:number;
  25354. /**
  25355. * 是否高速移动的物体,设置为true,可以防止高速穿透
  25356. */
  25357. protected _bullet:boolean;
  25358. /**
  25359. * 是否允许旋转,如果不希望刚体旋转,这设置为false
  25360. */
  25361. protected _allowRotation:boolean;
  25362. /**
  25363. * 重力缩放系数,设置为0为没有重力
  25364. */
  25365. protected _gravityScale:number;
  25366. /**
  25367. * [只读] 指定了该主体所属的碰撞组,默认为0,碰撞规则如下:
  25368. * 1.如果两个对象group相等
  25369. * group值大于零,它们将始终发生碰撞
  25370. * group值小于零,它们将永远不会发生碰撞
  25371. * group值等于0,则使用规则3
  25372. * 2.如果group值不相等,则使用规则3
  25373. * 3.每个刚体都有一个category类别,此属性接收位字段,范围为[1,2^31]范围内的2的幂
  25374. * 每个刚体也都有一个mask类别,指定与其碰撞的类别值之和(值是所有category按位AND的值)
  25375. */
  25376. group:number;
  25377. /**
  25378. * [只读]碰撞类别,使用2的幂次方值指定,有32种不同的碰撞类别可用
  25379. */
  25380. category:number;
  25381. /**
  25382. * [只读]指定冲突位掩码碰撞的类别,category位操作的结果
  25383. */
  25384. mask:number;
  25385. /**
  25386. * [只读]自定义标签
  25387. */
  25388. label:string;
  25389. /**
  25390. * [只读]原始刚体
  25391. */
  25392. protected _body:any;
  25393. private _createBody:any;
  25394. /**
  25395. * 获取对象某属性的get set方法
  25396. * 通过其本身无法获取该方法,只能从原型上获取
  25397. * @param obj
  25398. * @param prop
  25399. * @param accessor
  25400. */
  25401. private accessGetSetFunc:any;
  25402. /**
  25403. * 重置Collider
  25404. * @param resetShape 是否先重置形状,比如缩放导致碰撞体变化
  25405. */
  25406. private resetCollider:any;
  25407. /**
  25408. * @private 同步物理坐标到游戏坐标
  25409. */
  25410. private _sysPhysicToNode:any;
  25411. /**
  25412. * @private 同步节点坐标及旋转到物理世界
  25413. */
  25414. private _sysNodeToPhysic:any;
  25415. /**
  25416. * @private 同步节点坐标到物理世界
  25417. */
  25418. private _sysPosToPhysic:any;
  25419. /**
  25420. * @private
  25421. */
  25422. private _overSet:any;
  25423. /**
  25424. * 获得原始body对象
  25425. */
  25426. getBody():any;
  25427. /**
  25428. * [只读]获得原始body对象
  25429. */
  25430. readonly body:any;
  25431. /**
  25432. * 对刚体施加力
  25433. * @param position 施加力的点,如{x:100,y:100},全局坐标
  25434. * @param force 施加的力,如{x:0.1,y:0.1}
  25435. */
  25436. applyForce(position:any,force:any):void;
  25437. /**
  25438. * 从中心点对刚体施加力,防止对象旋转
  25439. * @param force 施加的力,如{x:0.1,y:0.1}
  25440. */
  25441. applyForceToCenter(force:any):void;
  25442. /**
  25443. * 施加速度冲量,添加的速度冲量会与刚体原有的速度叠加,产生新的速度
  25444. * @param position 施加力的点,如{x:100,y:100},全局坐标
  25445. * @param impulse 施加的速度冲量,如{x:0.1,y:0.1}
  25446. */
  25447. applyLinearImpulse(position:any,impulse:any):void;
  25448. /**
  25449. * 施加速度冲量,添加的速度冲量会与刚体原有的速度叠加,产生新的速度
  25450. * @param impulse 施加的速度冲量,如{x:0.1,y:0.1}
  25451. */
  25452. applyLinearImpulseToCenter(impulse:any):void;
  25453. /**
  25454. * 对刚体施加扭矩,使其旋转
  25455. * @param torque 施加的扭矩
  25456. */
  25457. applyTorque(torque:number):void;
  25458. /**
  25459. * 设置速度,比如{x:10,y:10}
  25460. * @param velocity
  25461. */
  25462. setVelocity(velocity:any):void;
  25463. /**
  25464. * 设置角度
  25465. * @param value 单位为弧度
  25466. */
  25467. setAngle(value:any):void;
  25468. /**
  25469. * 获得刚体质量
  25470. */
  25471. getMass():number;
  25472. /**
  25473. * 获得质心的相对节点0,0点的位置偏移
  25474. */
  25475. getCenter():any;
  25476. /**
  25477. * 获得质心的世界坐标,相对于Physics.I.worldRoot节点
  25478. */
  25479. getWorldCenter():any;
  25480. /**
  25481. * 刚体类型,支持三种类型static,dynamic和kinematic类型
  25482. * static为静态类型,静止不动,不受重力影响,质量无限大,可以通过节点移动,旋转,缩放进行控制
  25483. * dynamic为动态类型,接受重力影响
  25484. * kinematic为运动类型,不受重力影响,可以通过施加速度或者力的方式使其运动
  25485. */
  25486. type:string;
  25487. /**
  25488. * 重力缩放系数,设置为0为没有重力
  25489. */
  25490. gravityScale:number;
  25491. /**
  25492. * 是否允许旋转,如果不希望刚体旋转,这设置为false
  25493. */
  25494. allowRotation:boolean;
  25495. /**
  25496. * 是否允许休眠,允许休眠能提高性能
  25497. */
  25498. allowSleep:boolean;
  25499. /**
  25500. * 旋转速度阻尼系数,范围可以在0到无穷大之间,0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间
  25501. */
  25502. angularDamping:number;
  25503. /**
  25504. * 角速度,设置会导致旋转
  25505. */
  25506. angularVelocity:number;
  25507. /**
  25508. * 线性速度阻尼系数,范围可以在0到无穷大之间,0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间
  25509. */
  25510. linearDamping:number;
  25511. /**
  25512. * 线性运动速度,比如{x:5,y:5}
  25513. */
  25514. linearVelocity:any;
  25515. /**
  25516. * 是否高速移动的物体,设置为true,可以防止高速穿透
  25517. */
  25518. bullet:boolean;
  25519. }
  25520. }
  25521. declare module laya.renders {
  25522. /**
  25523. * <code>Render</code> 是渲染管理类。它是一个单例,可以使用 Laya.render 访问。
  25524. */
  25525. class Render {
  25526. static supportWebGLPlusCulling:boolean;
  25527. static supportWebGLPlusAnimation:boolean;
  25528. static supportWebGLPlusRendering:boolean;
  25529. /**
  25530. * 是否是加速器 只读
  25531. */
  25532. static isConchApp:boolean;
  25533. /**
  25534. * 表示是否是 3D 模式。
  25535. */
  25536. static is3DMode:boolean;
  25537. /**
  25538. * 初始化引擎。
  25539. * @param width 游戏窗口宽度。
  25540. * @param height 游戏窗口高度。
  25541. */
  25542. constructor(width:number,height:number,mainCanv:laya.resource.HTMLCanvas);
  25543. /**
  25544. * @private
  25545. */
  25546. private _timeId:any;
  25547. /**
  25548. * @private
  25549. */
  25550. private _onVisibilitychange:any;
  25551. initRender(canvas:laya.resource.HTMLCanvas,w:number,h:number):boolean;
  25552. /**
  25553. * @private
  25554. */
  25555. private _enterFrame:any;
  25556. /**
  25557. * 目前使用的渲染器。
  25558. */
  25559. static readonly context:laya.resource.Context;
  25560. /**
  25561. * 渲染使用的原生画布引用。
  25562. */
  25563. static readonly canvas:any;
  25564. }
  25565. }
  25566. declare module laya.renders {
  25567. /**
  25568. * @author laya
  25569. */
  25570. class RenderInfo {
  25571. static loopStTm:number;
  25572. static loopCount:number;
  25573. }
  25574. }
  25575. declare module laya.renders {
  25576. /**
  25577. * @private 精灵渲染器
  25578. */
  25579. class RenderSprite {
  25580. /**
  25581. * @private
  25582. */
  25583. /**
  25584. * @private
  25585. */
  25586. /**
  25587. * @private
  25588. */
  25589. /**
  25590. * @private
  25591. */
  25592. /**
  25593. * @private
  25594. */
  25595. /**
  25596. * @private
  25597. */
  25598. /**
  25599. * @private
  25600. */
  25601. /**
  25602. * @private
  25603. */
  25604. /**
  25605. * @private
  25606. */
  25607. /**
  25608. * @private
  25609. */
  25610. /**
  25611. * @private
  25612. */
  25613. /**
  25614. * @private
  25615. */
  25616. /**
  25617. * @private
  25618. */
  25619. static INIT:number;
  25620. /**
  25621. * @private
  25622. */
  25623. static renders:any[];
  25624. /**
  25625. * @private
  25626. */
  25627. protected static NORENDER:RenderSprite;
  25628. private static _initRenderFun:any;
  25629. private static _getTypeRender:any;
  25630. constructor(type:number,next:RenderSprite);
  25631. protected onCreate(type:number):void;
  25632. static tempUV:any[];
  25633. static tmpTarget(ctx:laya.resource.Context,rt:laya.resource.RenderTexture2D,w:number,h:number):void;
  25634. static recycleTarget(rt:laya.resource.RenderTexture2D):void;
  25635. static setBlendMode(blendMode:string):void;
  25636. }
  25637. }
  25638. declare module laya.resource {
  25639. /**
  25640. * <code>BaseTexture</code> 纹理的父类,抽象类,不允许实例。
  25641. */
  25642. class BaseTexture extends laya.resource.Bitmap {
  25643. static WARPMODE_REPEAT:number;
  25644. static WARPMODE_CLAMP:number;
  25645. /**
  25646. * 寻址模式_重复。
  25647. */
  25648. static FILTERMODE_POINT:number;
  25649. /**
  25650. * 寻址模式_不循环。
  25651. */
  25652. static FILTERMODE_BILINEAR:number;
  25653. /**
  25654. * 寻址模式_不循环。
  25655. */
  25656. static FILTERMODE_TRILINEAR:number;
  25657. /**
  25658. * 是否使用mipLevel
  25659. */
  25660. readonly mipmap:boolean;
  25661. /**
  25662. * 纹理格式
  25663. */
  25664. readonly format:number;
  25665. /**
  25666. * 纹理横向循环模式。
  25667. */
  25668. wrapModeU:number;
  25669. /**
  25670. * 纹理纵向循环模式。
  25671. */
  25672. wrapModeV:number;
  25673. /**
  25674. * 缩小过滤器
  25675. */
  25676. filterMode:number;
  25677. /**
  25678. * 各向异性等级
  25679. */
  25680. anisoLevel:number;
  25681. /**
  25682. * 获取mipmap数量。
  25683. */
  25684. readonly mipmapCount:number;
  25685. readonly defaulteTexture:BaseTexture;
  25686. /**
  25687. * 创建一个 <code>BaseTexture</code> 实例。
  25688. */
  25689. constructor(format:number,mipMap:boolean);
  25690. /**
  25691. * @inheritDoc
  25692. * @override
  25693. */
  25694. protected _disposeResource():void;
  25695. /**
  25696. * 通过基础数据生成mipMap。
  25697. */
  25698. generateMipmap():void;
  25699. /**
  25700. * 纹理格式_R8G8B8。@deprecated
  25701. */
  25702. static FORMAT_R8G8B8:number;
  25703. /**
  25704. * 纹理格式_R8G8B8A8。@deprecated
  25705. */
  25706. static FORMAT_R8G8B8A8:number;
  25707. /**
  25708. * 纹理格式_ALPHA8。@deprecated
  25709. */
  25710. static FORMAT_ALPHA8:number;
  25711. /**
  25712. * 纹理格式_DXT1。@deprecated
  25713. */
  25714. static FORMAT_DXT1:number;
  25715. /**
  25716. * 纹理格式_DXT5。@deprecated
  25717. */
  25718. static FORMAT_DXT5:number;
  25719. /**
  25720. * 纹理格式_ETC2RGB。@deprecated
  25721. */
  25722. static FORMAT_ETC1RGB:number;
  25723. /**
  25724. * 纹理格式_PVRTCRGB_2BPPV。@deprecated
  25725. */
  25726. static FORMAT_PVRTCRGB_2BPPV:number;
  25727. /**
  25728. * 纹理格式_PVRTCRGBA_2BPPV。@deprecated
  25729. */
  25730. static FORMAT_PVRTCRGBA_2BPPV:number;
  25731. /**
  25732. * 纹理格式_PVRTCRGB_4BPPV。@deprecated
  25733. */
  25734. static FORMAT_PVRTCRGB_4BPPV:number;
  25735. /**
  25736. * 纹理格式_PVRTCRGBA_4BPPV。@deprecated
  25737. */
  25738. static FORMAT_PVRTCRGBA_4BPPV:number;
  25739. /**
  25740. * 渲染纹理格式_16位半精度RGBA浮点格式。@deprecated
  25741. */
  25742. static RENDERTEXTURE_FORMAT_RGBA_HALF_FLOAT:number;
  25743. /**
  25744. * RGBAd格式纹理,每个通道32位浮点数。@deprecated
  25745. */
  25746. static FORMAT_R32G32B32A32:number;
  25747. /**
  25748. * 深度格式_DEPTH_16。@deprecated
  25749. */
  25750. static FORMAT_DEPTH_16:number;
  25751. /**
  25752. * 深度格式_STENCIL_8。@deprecated
  25753. */
  25754. static FORMAT_STENCIL_8:number;
  25755. /**
  25756. * 深度格式_DEPTHSTENCIL_16_8。@deprecated
  25757. */
  25758. static FORMAT_DEPTHSTENCIL_16_8:number;
  25759. /**
  25760. * 深度格式_DEPTHSTENCIL_NONE。@deprecated
  25761. */
  25762. static FORMAT_DEPTHSTENCIL_NONE:number;
  25763. }
  25764. }
  25765. declare module laya.resource {
  25766. /**
  25767. * @private <code>Bitmap</code> 图片资源类。
  25768. */
  25769. class Bitmap extends laya.resource.Resource {
  25770. /**
  25771. * @private
  25772. */
  25773. protected _width:number;
  25774. /**
  25775. * @private
  25776. */
  25777. protected _height:number;
  25778. /**
  25779. * 获取宽度。
  25780. */
  25781. width:number;
  25782. /**
  25783. * *
  25784. * 获取高度。
  25785. */
  25786. height:number;
  25787. /**
  25788. * 创建一个 <code>Bitmap</code> 实例。
  25789. */
  25790. constructor();
  25791. }
  25792. }
  25793. declare module laya.resource {
  25794. /**
  25795. * @private Context扩展类
  25796. */
  25797. class Context {
  25798. static ENUM_TEXTALIGN_DEFAULT:number;
  25799. static ENUM_TEXTALIGN_CENTER:number;
  25800. static ENUM_TEXTALIGN_RIGHT:number;
  25801. static _SUBMITVBSIZE:number;
  25802. static _MAXSIZE:number;
  25803. private static _MAXVERTNUM:any;
  25804. static MAXCLIPRECT:laya.maths.Rectangle;
  25805. static _COUNT:number;
  25806. private static SEGNUM:any;
  25807. private static _contextcount:any;
  25808. private _drawTexToDrawTri_Vert:any;
  25809. private _drawTexToDrawTri_Index:any;
  25810. private _tempUV:any;
  25811. private _drawTriUseAbsMatrix:any;
  25812. static __init__():void;
  25813. /**
  25814. * @private
  25815. */
  25816. drawImage(...args:any[]):void;
  25817. /**
  25818. * @private
  25819. */
  25820. getImageData(...args:any[]):any;
  25821. /**
  25822. * @private
  25823. */
  25824. measureText(text:string):any;
  25825. /**
  25826. * @private
  25827. */
  25828. setTransform(...args:any[]):void;
  25829. /**
  25830. * @private
  25831. */
  25832. $transform(a:number,b:number,c:number,d:number,tx:number,ty:number):void;
  25833. /**
  25834. * @private
  25835. */
  25836. /**
  25837. * @private
  25838. */
  25839. lineJoin:string;
  25840. /**
  25841. * @private
  25842. */
  25843. /**
  25844. * @private
  25845. */
  25846. lineCap:string;
  25847. /**
  25848. * @private
  25849. */
  25850. /**
  25851. * @private
  25852. */
  25853. miterLimit:string;
  25854. /**
  25855. * @private
  25856. */
  25857. clearRect(x:number,y:number,width:number,height:number):void;
  25858. /**
  25859. * @private
  25860. */
  25861. /**
  25862. * @private
  25863. */
  25864. drawTexture2(x:number,y:number,pivotX:number,pivotY:number,m:laya.maths.Matrix,args2:any[]):void;
  25865. transformByMatrix(matrix:laya.maths.Matrix,tx:number,ty:number):void;
  25866. saveTransform(matrix:laya.maths.Matrix):void;
  25867. restoreTransform(matrix:laya.maths.Matrix):void;
  25868. drawRect(x:number,y:number,width:number,height:number,fillColor:any,lineColor:any,lineWidth:number):void;
  25869. alpha(value:number):void;
  25870. drawCurves(x:number,y:number,points:any[],lineColor:any,lineWidth:number):void;
  25871. private _fillAndStroke:any;
  25872. /**
  25873. * Math.PI*2的结果缓存
  25874. */
  25875. static PI2:number;
  25876. static set2DRenderConfig():void;
  25877. private _other:any;
  25878. private _renderNextSubmitIndex:any;
  25879. private _path:any;
  25880. private _width:any;
  25881. private _height:any;
  25882. private _renderCount:any;
  25883. meshlist:any[];
  25884. private _transedPoints:any;
  25885. private _temp4Points:any;
  25886. private _clipID_Gen:any;
  25887. private _lastMat_a:any;
  25888. private _lastMat_b:any;
  25889. private _lastMat_c:any;
  25890. private _lastMat_d:any;
  25891. /**
  25892. * 所cacheAs精灵
  25893. * 对于cacheas bitmap的情况,如果图片还没准备好,需要有机会重画,所以要保存sprite。例如在图片
  25894. * 加载完成后,调用repaint
  25895. */
  25896. sprite:laya.display.Sprite|null;
  25897. private _fillColor:any;
  25898. private _flushCnt:any;
  25899. private defTexture:any;
  25900. drawTexAlign:boolean;
  25901. isMain:boolean;
  25902. constructor();
  25903. clearBG(r:number,g:number,b:number,a:number):void;
  25904. /**
  25905. * 释放占用内存
  25906. * @param keepRT 是否保留rendertarget
  25907. */
  25908. private _releaseMem:any;
  25909. /**
  25910. * 释放所有资源
  25911. * @param keepRT 是否保留rendertarget
  25912. */
  25913. destroy(keepRT?:boolean):void;
  25914. clear():void;
  25915. /**
  25916. * 设置ctx的size,这个不允许直接设置,必须是canvas调过来的。所以这个函数里也不用考虑canvas相关的东西
  25917. * @param w
  25918. * @param h
  25919. */
  25920. size(w:number,h:number):void;
  25921. /**
  25922. * 当前canvas请求保存渲染结果。
  25923. * 实现:
  25924. * 如果value==true,就要给_target赋值
  25925. * @param value
  25926. */
  25927. asBitmap:boolean;
  25928. /**
  25929. * 获得当前矩阵的缩放值
  25930. * 避免每次都计算getScaleX
  25931. * @return
  25932. */
  25933. getMatScaleX():number;
  25934. getMatScaleY():number;
  25935. setFillColor(color:number):void;
  25936. getFillColor():number;
  25937. fillStyle:any;
  25938. globalAlpha:number;
  25939. textAlign:string;
  25940. textBaseline:string;
  25941. globalCompositeOperation:string;
  25942. strokeStyle:any;
  25943. translate(x:number,y:number):void;
  25944. lineWidth:number;
  25945. save():void;
  25946. restore():void;
  25947. font:string;
  25948. fillText(txt:string|laya.utils.WordText,x:number,y:number,fontStr:string,color:string,align:string,lineWidth?:number,borderColor?:string):void;
  25949. drawText(text:string|laya.utils.WordText,x:number,y:number,font:string,color:string,textAlign:string):void;
  25950. fillWords(words:laya.utils.HTMLChar[],x:number,y:number,fontStr:string,color:string):void;
  25951. strokeWord(text:string|laya.utils.WordText,x:number,y:number,font:string,color:string,lineWidth:number,textAlign:string):void;
  25952. fillBorderText(txt:string|laya.utils.WordText,x:number,y:number,font:string,color:string,borderColor:string,lineWidth:number,textAlign:string):void;
  25953. fillBorderWords(words:laya.utils.HTMLChar[],x:number,y:number,font:string,color:string,borderColor:string,lineWidth:number):void;
  25954. private _fillRect:any;
  25955. fillRect(x:number,y:number,width:number,height:number,fillStyle:any):void;
  25956. fillTexture(texture:laya.resource.Texture,x:number,y:number,width:number,height:number,type:string,offset:laya.maths.Point,other:any):void;
  25957. /**
  25958. * 反正只支持一种filter,就不要叫setFilter了,直接叫setColorFilter
  25959. * @param value
  25960. */
  25961. setColorFilter(filter:laya.filters.ColorFilter):void;
  25962. drawTexture(tex:laya.resource.Texture,x:number,y:number,width:number,height:number):void;
  25963. drawTextures(tex:laya.resource.Texture,pos:any[],tx:number,ty:number):void;
  25964. /**
  25965. * 为drawTexture添加一个新的submit。类型是 SubmitTexture
  25966. * @param vbSize
  25967. * @param alpha
  25968. * @param webGLImg
  25969. * @param tex
  25970. */
  25971. private _drawTextureAddSubmit:any;
  25972. submitDebugger():void;
  25973. private isSameClipInfo:any;
  25974. drawCallOptimize(enbale:boolean):boolean;
  25975. /**
  25976. * 转换4个顶点。为了效率这个不做任何检查。需要调用者的配合。
  25977. * @param a 输入。8个元素表示4个点
  25978. * @param out 输出
  25979. */
  25980. transform4Points(a:any[],m:laya.maths.Matrix,out:any[]):void;
  25981. /**
  25982. * pt所描述的多边形完全在clip外边,整个被裁掉了
  25983. * @param pt
  25984. * @return
  25985. */
  25986. clipedOff(pt:any[]):boolean;
  25987. /**
  25988. * 应用当前矩阵。把转换后的位置放到输出数组中。
  25989. * @param x
  25990. * @param y
  25991. * @param w
  25992. * @param h
  25993. * @param italicDeg 倾斜角度,单位是度。0度无,目前是下面不动。以后要做成可调的
  25994. */
  25995. transformQuad(x:number,y:number,w:number,h:number,italicDeg:number,m:laya.maths.Matrix,out:any[]):void;
  25996. pushRT():void;
  25997. popRT():void;
  25998. useRT(rt:laya.resource.RenderTexture2D):void;
  25999. /**
  26000. * 异步执行rt的restore函数
  26001. * @param rt
  26002. */
  26003. RTRestore(rt:laya.resource.RenderTexture2D):void;
  26004. /**
  26005. * 强制拒绝submit合并
  26006. * 例如切换rt的时候
  26007. */
  26008. breakNextMerge():void;
  26009. private _repaintSprite:any;
  26010. /**
  26011. * @param tex
  26012. * @param x
  26013. * @param y
  26014. * @param width
  26015. * @param height
  26016. * @param transform 图片本身希望的矩阵
  26017. * @param tx 节点的位置
  26018. * @param ty
  26019. * @param alpha
  26020. */
  26021. drawTextureWithTransform(tex:laya.resource.Texture,x:number,y:number,width:number,height:number,transform:laya.maths.Matrix,tx:number,ty:number,alpha:number,blendMode:string,colorfilter?:laya.filters.ColorFilter,uv?:number[]):void;
  26022. /**
  26023. * * 把ctx中的submits提交。结果渲染到target上
  26024. * @param ctx
  26025. * @param target
  26026. */
  26027. private _flushToTarget:any;
  26028. drawCanvas(canvas:laya.resource.HTMLCanvas,x:number,y:number,width:number,height:number):void;
  26029. drawTarget(rt:laya.resource.RenderTexture2D,x:number,y:number,width:number,height:number,m:laya.maths.Matrix,shaderValue:laya.webgl.shader.d2.value.Value2D,uv?:ArrayLike<number>,blend?:number):boolean;
  26030. drawTriangles(tex:laya.resource.Texture,x:number,y:number,vertices:Float32Array,uvs:Float32Array,indices:Uint16Array,matrix:laya.maths.Matrix,alpha:number,color:laya.filters.ColorFilter,blendMode:string,colorNum?:number):void;
  26031. transform(a:number,b:number,c:number,d:number,tx:number,ty:number):void;
  26032. setTransformByMatrix(value:laya.maths.Matrix):void;
  26033. rotate(angle:number):void;
  26034. scale(scaleX:number,scaleY:number):void;
  26035. clipRect(x:number,y:number,width:number,height:number):void;
  26036. /**
  26037. * 从setIBVB改为drawMesh
  26038. * type 参数不知道是干什么的,先删掉。offset好像跟attribute有关,删掉
  26039. * @param x
  26040. * @param y
  26041. * @param ib
  26042. * @param vb
  26043. * @param numElement
  26044. * @param mat
  26045. * @param shader
  26046. * @param shaderValues
  26047. * @param startIndex
  26048. * @param offset
  26049. */
  26050. drawMesh(x:number,y:number,ib:laya.webgl.utils.IndexBuffer2D,vb:laya.webgl.utils.VertexBuffer2D,numElement:number,mat:laya.maths.Matrix,shader:laya.webgl.shader.Shader,shaderValues:laya.webgl.shader.d2.value.Value2D,startIndex?:number):void;
  26051. addRenderObject(o:laya.webgl.submit.ISubmit):void;
  26052. /**
  26053. * @param start
  26054. * @param end
  26055. */
  26056. submitElement(start:number,end:number):number;
  26057. flush():number;
  26058. /**
  26059. * *****************************************start矢量绘制**************************************************
  26060. */
  26061. beginPath(convex?:boolean):void;
  26062. closePath():void;
  26063. /**
  26064. * 添加一个path。
  26065. * @param points [x,y,x,y....] 这个会被保存下来,所以调用者需要注意复制。
  26066. * @param close 是否闭合
  26067. * @param convex 是否是凸多边形。convex的优先级是这个最大。fill的时候的次之。其实fill的时候不应该指定convex,因为可以多个path
  26068. * @param dx 需要添加的平移。这个需要在应用矩阵之前应用。
  26069. * @param dy
  26070. */
  26071. addPath(points:any[],close:boolean,convex:boolean,dx:number,dy:number):void;
  26072. fill():void;
  26073. private addVGSubmit:any;
  26074. stroke():void;
  26075. moveTo(x:number,y:number):void;
  26076. /**
  26077. * @param x
  26078. * @param y
  26079. * @param b 是否应用矩阵
  26080. */
  26081. lineTo(x:number,y:number):void;
  26082. arcTo(x1:number,y1:number,x2:number,y2:number,r:number):void;
  26083. arc(cx:number,cy:number,r:number,startAngle:number,endAngle:number,counterclockwise?:boolean,b?:boolean):void;
  26084. quadraticCurveTo(cpx:number,cpy:number,x:number,y:number):void;
  26085. /**
  26086. * 把颜色跟当前设置的alpha混合
  26087. * @return
  26088. */
  26089. mixRGBandAlpha(color:number):number;
  26090. strokeRect(x:number,y:number,width:number,height:number,parameterLineWidth:number):void;
  26091. clip():void;
  26092. /**
  26093. * *****************************************end矢量绘制**************************************************
  26094. */
  26095. drawParticle(x:number,y:number,pt:any):void;
  26096. private _getPath:any;
  26097. /**
  26098. * 获取canvas
  26099. */
  26100. readonly canvas:laya.resource.HTMLCanvas;
  26101. private static tmpuv1:any;
  26102. /**
  26103. * 专用函数。通过循环创建来水平填充
  26104. * @param tex
  26105. * @param bmpid
  26106. * @param uv 希望循环的部分的uv
  26107. * @param oriw
  26108. * @param orih
  26109. * @param x
  26110. * @param y
  26111. * @param w
  26112. */
  26113. private _fillTexture_h:any;
  26114. /**
  26115. * 专用函数。通过循环创建来垂直填充
  26116. * @param tex
  26117. * @param imgid
  26118. * @param uv
  26119. * @param oriw
  26120. * @param orih
  26121. * @param x
  26122. * @param y
  26123. * @param h
  26124. */
  26125. private _fillTexture_v:any;
  26126. private static tmpUV:any;
  26127. private static tmpUVRect:any;
  26128. drawTextureWithSizeGrid(tex:laya.resource.Texture,tx:number,ty:number,width:number,height:number,sizeGrid:any[],gx:number,gy:number):void;
  26129. }
  26130. }
  26131. declare module laya.resource {
  26132. /**
  26133. * <code>HTMLCanvas</code> 是 Html Canvas 的代理类,封装了 Canvas 的属性和方法。
  26134. */
  26135. class HTMLCanvas extends laya.resource.Bitmap {
  26136. private _ctx:any;
  26137. /**
  26138. * @inheritDoc
  26139. */
  26140. readonly source:HTMLCanvasElement;
  26141. /**
  26142. * 根据指定的类型,创建一个 <code>HTMLCanvas</code> 实例。
  26143. */
  26144. constructor(createCanvas?:boolean);
  26145. /**
  26146. * 清空画布内容。
  26147. */
  26148. clear():void;
  26149. /**
  26150. * 销毁。
  26151. * @override
  26152. */
  26153. destroy():void;
  26154. /**
  26155. * 释放。
  26156. */
  26157. release():void;
  26158. /**
  26159. * Canvas 渲染上下文。
  26160. */
  26161. readonly context:laya.resource.Context;
  26162. /**
  26163. * 获取 Canvas 渲染上下文。
  26164. * @param contextID 上下文ID.
  26165. * @param other
  26166. * @return Canvas 渲染上下文 Context 对象。
  26167. */
  26168. getContext(contextID:string,other?:any):laya.resource.Context;
  26169. /**
  26170. * 获取内存大小。
  26171. * @return 内存大小。
  26172. */
  26173. getMemSize():number;
  26174. /**
  26175. * 设置宽高。
  26176. * @param w 宽度。
  26177. * @param h 高度。
  26178. */
  26179. size(w:number,h:number):void;
  26180. /**
  26181. * 获取texture实例
  26182. */
  26183. getTexture():laya.resource.Texture;
  26184. /**
  26185. * 把图片转换为base64信息
  26186. * @param type "image/png"
  26187. * @param encoderOptions 质量参数,取值范围为0-1
  26188. */
  26189. toBase64(type:string,encoderOptions:number):string;
  26190. toBase64Async(type:string,encoderOptions:number,callBack:Function):void;
  26191. }
  26192. }
  26193. declare module laya.resource {
  26194. /**
  26195. * @private <p> <code>HTMLImage</code> 用于创建 HTML Image 元素。</p> <p>请使用 <code>HTMLImage.create()<code>获取新实例,不要直接使用 <code>new HTMLImage<code> 。</p>
  26196. */
  26197. class HTMLImage extends laya.resource.Bitmap {
  26198. /**
  26199. * <p><b>不支持canvas了,所以备Texture2D替换了</p>
  26200. * <p>创建一个 <code>HTMLImage</code> 实例。</p>
  26201. * <p>请使用 <code>HTMLImage.create()<code>创建实例,不要直接使用 <code>new HTMLImage<code> 。</p>
  26202. */
  26203. static create:Function;
  26204. }
  26205. }
  26206. declare module laya.resource {
  26207. /**
  26208. * <code>ICreateResource</code> 对象创建接口。
  26209. */
  26210. interface ICreateResource{
  26211. _setCreateURL(url:string):void;
  26212. }
  26213. }
  26214. declare module laya.resource {
  26215. /**
  26216. * <code>IDestroy</code> 是对象销毁的接口。
  26217. */
  26218. interface IDestroy{
  26219. destroyed:boolean;
  26220. destroy():void;
  26221. }
  26222. }
  26223. declare module laya.resource {
  26224. /**
  26225. * <code>IList</code> 可加入队列接口。
  26226. */
  26227. interface ISingletonElement{
  26228. _getIndexInList():number;
  26229. _setIndexInList(index:number):void;
  26230. }
  26231. }
  26232. declare module laya.resource {
  26233. /**
  26234. * <code>RenderTexture</code> 类用于创建渲染目标。
  26235. */
  26236. class RenderTexture2D extends laya.resource.BaseTexture {
  26237. /**
  26238. * @private
  26239. */
  26240. private static _currentActive:any;
  26241. private _lastRT:any;
  26242. private _lastWidth:any;
  26243. private _lastHeight:any;
  26244. private static rtStack:any;
  26245. static defuv:any[];
  26246. static flipyuv:any[];
  26247. /**
  26248. * 获取当前激活的Rendertexture
  26249. */
  26250. static readonly currentActive:RenderTexture2D;
  26251. /**
  26252. * @private
  26253. */
  26254. private _frameBuffer:any;
  26255. /**
  26256. * @private
  26257. */
  26258. private _depthStencilBuffer:any;
  26259. /**
  26260. * @private
  26261. */
  26262. private _depthStencilFormat:any;
  26263. /**
  26264. * 获取深度格式。
  26265. * @return 深度格式。
  26266. */
  26267. readonly depthStencilFormat:number;
  26268. /**
  26269. * @inheritDoc
  26270. * @override
  26271. */
  26272. readonly defaulteTexture:laya.resource.BaseTexture;
  26273. getIsReady():boolean;
  26274. /**
  26275. * 获取宽度。
  26276. */
  26277. readonly sourceWidth:number;
  26278. /**
  26279. * *
  26280. * 获取高度。
  26281. */
  26282. readonly sourceHeight:number;
  26283. /**
  26284. * 获取offsetX。
  26285. */
  26286. readonly offsetX:number;
  26287. /**
  26288. * *
  26289. * 获取offsetY
  26290. */
  26291. readonly offsetY:number;
  26292. /**
  26293. * @param width 宽度。
  26294. * @param height 高度。
  26295. * @param format 纹理格式。
  26296. * @param depthStencilFormat 深度格式。 创建一个 <code>RenderTexture</code> 实例。
  26297. */
  26298. constructor(width:number,height:number,format?:number,depthStencilFormat?:number);
  26299. /**
  26300. * @private
  26301. */
  26302. private _create:any;
  26303. /**
  26304. * 生成mipMap。
  26305. * @override
  26306. */
  26307. generateMipmap():void;
  26308. /**
  26309. * 保存当前的RT信息。
  26310. */
  26311. static pushRT():void;
  26312. /**
  26313. * 恢复上次保存的RT信息
  26314. */
  26315. static popRT():void;
  26316. /**
  26317. * 开始绑定。
  26318. */
  26319. start():void;
  26320. /**
  26321. * 结束绑定。
  26322. */
  26323. end():void;
  26324. /**
  26325. * 恢复上一次的RenderTarge.由于使用自己保存的,所以如果被外面打断了的话,会出错。
  26326. */
  26327. restore():void;
  26328. clear(r?:number,g?:number,b?:number,a?:number):void;
  26329. /**
  26330. * 获得像素数据。
  26331. * @param x X像素坐标。
  26332. * @param y Y像素坐标。
  26333. * @param width 宽度。
  26334. * @param height 高度。
  26335. * @return 像素数据。
  26336. */
  26337. getData(x:number,y:number,width:number,height:number):Uint8Array;
  26338. /**
  26339. * native多线程
  26340. */
  26341. getDataAsync(x:number,y:number,width:number,height:number,callBack:Function):void;
  26342. recycle():void;
  26343. }
  26344. }
  26345. declare module laya.resource {
  26346. enum RenderTextureFormat {
  26347. /**RGB格式,每个通道8位。*/
  26348. R8G8B8 = 0,
  26349. /**RGBA格式,每个通道8位。*/
  26350. R8G8B8A8 = 1,
  26351. /**Alpha格式,8位。*/
  26352. Alpha8 = 2,
  26353. /**RGBA格式,每个通道16位。*/
  26354. R16G16B16A16 = 14
  26355. }enum RenderTextureDepthFormat {
  26356. /**深度格式_DEPTH_16。*/
  26357. DEPTH_16 = 0,
  26358. /**深度格式_STENCIL_8。*/
  26359. STENCIL_8 = 1,
  26360. /**深度格式_DEPTHSTENCIL_16_8。*/
  26361. DEPTHSTENCIL_16_8 = 2,
  26362. /**深度格式_DEPTHSTENCIL_NONE。*/
  26363. DEPTHSTENCIL_NONE = 3
  26364. }
  26365. }
  26366. declare module laya.resource {
  26367. /**
  26368. * <code>Resource</code> 资源存取类。
  26369. */
  26370. class Resource extends laya.events.EventDispatcher implements laya.resource.ICreateResource,laya.resource.IDestroy {
  26371. /**
  26372. * @private
  26373. */
  26374. private static _uniqueIDCounter:any;
  26375. /**
  26376. * @private
  26377. */
  26378. private static _idResourcesMap:any;
  26379. /**
  26380. * @private
  26381. */
  26382. private static _urlResourcesMap:any;
  26383. /**
  26384. * @private 以字节为单位。
  26385. */
  26386. private static _cpuMemory:any;
  26387. /**
  26388. * @private 以字节为单位。
  26389. */
  26390. private static _gpuMemory:any;
  26391. /**
  26392. * 当前内存,以字节为单位。
  26393. */
  26394. static readonly cpuMemory:number;
  26395. /**
  26396. * 当前显存,以字节为单位。
  26397. */
  26398. static readonly gpuMemory:number;
  26399. /**
  26400. * 通过资源ID返回已载入资源。
  26401. * @param id 资源ID
  26402. * @return 资源 <code>Resource</code> 对象。
  26403. */
  26404. static getResourceByID(id:number):Resource;
  26405. /**
  26406. * 通过url返回已载入资源。
  26407. * @param url 资源URL
  26408. * @param index 索引
  26409. * @return 资源 <code>Resource</code> 对象。
  26410. */
  26411. static getResourceByURL(url:string,index?:number):Resource;
  26412. /**
  26413. * 销毁当前没有被使用的资源,该函数会忽略lock=true的资源。
  26414. * @param group 指定分组。
  26415. */
  26416. static destroyUnusedResources():void;
  26417. /**
  26418. * @private
  26419. */
  26420. protected _id:number;
  26421. /**
  26422. * @private
  26423. */
  26424. private _url:any;
  26425. /**
  26426. * @private
  26427. */
  26428. private _cpuMemory:any;
  26429. /**
  26430. * @private
  26431. */
  26432. private _gpuMemory:any;
  26433. /**
  26434. * @private
  26435. */
  26436. private _destroyed:any;
  26437. /**
  26438. * @private
  26439. */
  26440. protected _referenceCount:number;
  26441. /**
  26442. * 是否加锁,如果true为不能使用自动释放机制。
  26443. */
  26444. lock:boolean;
  26445. /**
  26446. * 名称。
  26447. */
  26448. name:string;
  26449. /**
  26450. * 获取唯一标识ID,通常用于识别。
  26451. */
  26452. readonly id:number;
  26453. /**
  26454. * 获取资源的URL地址。
  26455. * @return URL地址。
  26456. */
  26457. readonly url:string;
  26458. /**
  26459. * 内存大小。
  26460. */
  26461. readonly cpuMemory:number;
  26462. /**
  26463. * 显存大小。
  26464. */
  26465. readonly gpuMemory:number;
  26466. /**
  26467. * 是否已处理。
  26468. */
  26469. readonly destroyed:boolean;
  26470. /**
  26471. * 获取资源的引用计数。
  26472. */
  26473. readonly referenceCount:number;
  26474. /**
  26475. * 创建一个 <code>Resource</code> 实例。
  26476. */
  26477. constructor();
  26478. /**
  26479. * @private
  26480. */
  26481. _setCreateURL(url:string):void;
  26482. /**
  26483. * @private
  26484. */
  26485. protected _recoverResource():void;
  26486. /**
  26487. * @private
  26488. */
  26489. protected _disposeResource():void;
  26490. /**
  26491. * @private
  26492. */
  26493. protected _activeResource():void;
  26494. /**
  26495. * 销毁资源,销毁后资源不能恢复。
  26496. */
  26497. destroy():void;
  26498. }
  26499. }
  26500. declare module laya.resource {
  26501. /**
  26502. * 资源加载完成后调度。
  26503. * @eventType Event.READY
  26504. */
  26505. /**
  26506. * <code>Texture</code> 是一个纹理处理类。
  26507. */
  26508. class Texture extends laya.events.EventDispatcher {
  26509. /**
  26510. * @private 默认 UV 信息。
  26511. */
  26512. static DEF_UV:Float32Array;
  26513. /**
  26514. * @private
  26515. */
  26516. static NO_UV:Float32Array;
  26517. /**
  26518. * @private 反转 UV 信息。
  26519. */
  26520. static INV_UV:Float32Array;
  26521. /**
  26522. * @private
  26523. */
  26524. private static _rect1:any;
  26525. /**
  26526. * @private
  26527. */
  26528. private static _rect2:any;
  26529. /**
  26530. * @private uv的范围
  26531. */
  26532. uvrect:any[];
  26533. /**
  26534. * @private
  26535. */
  26536. private _destroyed:any;
  26537. /**
  26538. * @private
  26539. */
  26540. private _bitmap:any;
  26541. /**
  26542. * @private
  26543. */
  26544. private _referenceCount:any;
  26545. /**
  26546. * 沿 X 轴偏移量。
  26547. */
  26548. offsetX:number;
  26549. /**
  26550. * 沿 Y 轴偏移量。
  26551. */
  26552. offsetY:number;
  26553. /**
  26554. * @private
  26555. */
  26556. private _w:any;
  26557. /**
  26558. * @private
  26559. */
  26560. private _h:any;
  26561. /**
  26562. * 原始宽度(包括被裁剪的透明区域)。
  26563. */
  26564. sourceWidth:number;
  26565. /**
  26566. * 原始高度(包括被裁剪的透明区域)。
  26567. */
  26568. sourceHeight:number;
  26569. /**
  26570. * 图片地址
  26571. */
  26572. url:string;
  26573. /**
  26574. * @private
  26575. */
  26576. scaleRate:number;
  26577. /**
  26578. * 平移 UV。
  26579. * @param offsetX 沿 X 轴偏移量。
  26580. * @param offsetY 沿 Y 轴偏移量。
  26581. * @param uv 需要平移操作的的 UV。
  26582. * @return 平移后的UV。
  26583. */
  26584. static moveUV(offsetX:number,offsetY:number,uv:any[]):any[];
  26585. /**
  26586. * 根据指定资源和坐标、宽高、偏移量等创建 <code>Texture</code> 对象。
  26587. * @param source 绘图资源 Texture2D 或者 Texture对象。
  26588. * @param x 起始绝对坐标 x 。
  26589. * @param y 起始绝对坐标 y 。
  26590. * @param width 宽绝对值。
  26591. * @param height 高绝对值。
  26592. * @param offsetX X 轴偏移量(可选)。 就是[x,y]相对于原始小图片的位置。一般都是正的,表示裁掉了空白边的大小,如果是负的一般表示加了保护边
  26593. * @param offsetY Y 轴偏移量(可选)。
  26594. * @param sourceWidth 原始宽度,包括被裁剪的透明区域(可选)。
  26595. * @param sourceHeight 原始高度,包括被裁剪的透明区域(可选)。
  26596. * @return <code>Texture</code> 对象。
  26597. */
  26598. static create(source:laya.resource.Texture2D|Texture,x:number,y:number,width:number,height:number,offsetX?:number,offsetY?:number,sourceWidth?:number,sourceHeight?:number):Texture;
  26599. /**
  26600. * 截取Texture的一部分区域,生成新的Texture,如果两个区域没有相交,则返回null。
  26601. * @param texture 目标Texture。
  26602. * @param x 相对于目标Texture的x位置。
  26603. * @param y 相对于目标Texture的y位置。
  26604. * @param width 截取的宽度。
  26605. * @param height 截取的高度。
  26606. * @return 返回一个新的Texture。
  26607. */
  26608. static createFromTexture(texture:Texture,x:number,y:number,width:number,height:number):Texture;
  26609. uv:ArrayLike<number>;
  26610. /**
  26611. * 实际宽度。
  26612. */
  26613. width:number;
  26614. /**
  26615. * 实际高度。
  26616. */
  26617. height:number;
  26618. /**
  26619. * 获取位图。
  26620. * @return 位图。
  26621. */
  26622. /**
  26623. * 设置位图。
  26624. * @param 位图 。
  26625. */
  26626. bitmap:laya.resource.Texture2D|Texture;
  26627. /**
  26628. * 获取是否已经销毁。
  26629. * @return 是否已经销毁。
  26630. */
  26631. readonly destroyed:boolean;
  26632. /**
  26633. * 创建一个 <code>Texture</code> 实例。
  26634. * @param bitmap 位图资源。
  26635. * @param uv UV 数据信息。
  26636. */
  26637. constructor(bitmap?:laya.resource.Texture2D|Texture,uv?:ArrayLike<number>,sourceWidth?:number,sourceHeight?:number);
  26638. /**
  26639. * @private
  26640. */
  26641. private _onLoaded:any;
  26642. /**
  26643. * 获取是否可以使用。
  26644. */
  26645. getIsReady():boolean;
  26646. /**
  26647. * 设置此对象的位图资源、UV数据信息。
  26648. * @param bitmap 位图资源
  26649. * @param uv UV数据信息
  26650. */
  26651. setTo(bitmap?:laya.resource.Texture2D|Texture,uv?:ArrayLike<number>,sourceWidth?:number,sourceHeight?:number):void;
  26652. /**
  26653. * 加载指定地址的图片。
  26654. * @param url 图片地址。
  26655. * @param complete 加载完成回调
  26656. */
  26657. load(url:string,complete?:laya.utils.Handler):void;
  26658. getTexturePixels(x:number,y:number,width:number,height:number):Uint8Array;
  26659. /**
  26660. * 获取Texture上的某个区域的像素点
  26661. * @param x
  26662. * @param y
  26663. * @param width
  26664. * @param height
  26665. * @return 返回像素点集合
  26666. */
  26667. getPixels(x:number,y:number,width:number,height:number):Uint8Array;
  26668. /**
  26669. * 通过url强制恢复bitmap。
  26670. */
  26671. recoverBitmap(onok?:Function):void;
  26672. /**
  26673. * 强制释放Bitmap,无论是否被引用。
  26674. */
  26675. disposeBitmap():void;
  26676. /**
  26677. * 销毁纹理。
  26678. */
  26679. destroy(force?:boolean):void;
  26680. }
  26681. }
  26682. declare module laya.resource {
  26683. /**
  26684. * <code>Texture2D</code> 类用于生成2D纹理。
  26685. */
  26686. class Texture2D extends laya.resource.BaseTexture {
  26687. /**
  26688. * Texture2D资源。
  26689. */
  26690. static TEXTURE2D:string;
  26691. /**
  26692. * 纯灰色纹理。
  26693. */
  26694. static grayTexture:Texture2D;
  26695. /**
  26696. * 纯白色纹理。
  26697. */
  26698. static whiteTexture:Texture2D;
  26699. /**
  26700. * 纯黑色纹理。
  26701. */
  26702. static blackTexture:Texture2D;
  26703. /**
  26704. * 加载Texture2D。
  26705. * @param url Texture2D地址。
  26706. * @param complete 完成回掉。
  26707. */
  26708. static load(url:string,complete:laya.utils.Handler):void;
  26709. /**
  26710. * @inheritDoc
  26711. * @override
  26712. */
  26713. readonly defaulteTexture:laya.resource.BaseTexture;
  26714. /**
  26715. * 创建一个 <code>Texture2D</code> 实例。
  26716. * @param width 宽。
  26717. * @param height 高。
  26718. * @param format 贴图格式。
  26719. * @param mipmap 是否生成mipmap。
  26720. * @param canRead 是否可读像素,如果为true,会在内存保留像素数据。
  26721. */
  26722. constructor(width?:number,height?:number,format?:laya.resource.TextureFormat,mipmap?:boolean,canRead?:boolean);
  26723. /**
  26724. * 通过图片源填充纹理,可为HTMLImageElement、HTMLCanvasElement、HTMLVideoElement、ImageBitmap、ImageData,
  26725. * 设置之后纹理宽高可能会发生变化。
  26726. */
  26727. loadImageSource(source:any,premultiplyAlpha?:boolean):void;
  26728. /**
  26729. * 通过像素填充纹理。
  26730. * @param pixels 像素。
  26731. * @param miplevel 层级。
  26732. */
  26733. setPixels(pixels:Uint8Array|Float32Array,miplevel?:number):void;
  26734. /**
  26735. * 通过像素填充部分纹理。
  26736. * @param x X轴像素起点。
  26737. * @param y Y轴像素起点。
  26738. * @param width 像素宽度。
  26739. * @param height 像素高度。
  26740. * @param pixels 像素数组。
  26741. * @param miplevel 层级。
  26742. */
  26743. setSubPixels(x:number,y:number,width:number,height:number,pixels:Uint8Array|Float32Array,miplevel?:number):void;
  26744. /**
  26745. * 通过压缩数据填充纹理。
  26746. * @param data 压缩数据。
  26747. * @param miplevel 层级。
  26748. */
  26749. setCompressData(data:ArrayBuffer):void;
  26750. /**
  26751. * @inheritDoc
  26752. * @override
  26753. */
  26754. protected _recoverResource():void;
  26755. /**
  26756. * 返回图片像素。
  26757. * @return 图片像素。
  26758. */
  26759. getPixels():Uint8Array|Float32Array;
  26760. }
  26761. }
  26762. declare module laya.resource {
  26763. enum TextureFormat {
  26764. /**纹理格式_R8G8B8。*/
  26765. R8G8B8 = 0,
  26766. /**纹理格式_R8G8B8A8。*/
  26767. R8G8B8A8 = 1,
  26768. /**纹理格式_ALPHA8。*/
  26769. Alpha8 = 2,
  26770. /**纹理格式_DXT1。*/
  26771. DXT1 = 3,
  26772. /**纹理格式_DXT5。*/
  26773. DXT5 = 4,
  26774. /**纹理格式_ETC2RGB。*/
  26775. ETC1RGB = 5,
  26776. /**纹理格式_ETC2RGB_PUNCHTHROUGHALPHA。*/
  26777. /**纹理格式_PVRTCRGB_2BPPV。*/
  26778. PVRTCRGB_2BPPV = 9,
  26779. /**纹理格式_PVRTCRGBA_2BPPV。*/
  26780. PVRTCRGBA_2BPPV = 10,
  26781. /**纹理格式_PVRTCRGB_4BPPV。*/
  26782. PVRTCRGB_4BPPV = 11,
  26783. /**纹理格式_PVRTCRGBA_4BPPV。*/
  26784. PVRTCRGBA_4BPPV = 12,
  26785. /**RGBA格式纹理,每个通道32位浮点数。*/
  26786. R32G32B32A32 = 15
  26787. }
  26788. }
  26789. declare module laya.resource {
  26790. /**
  26791. * WebGLRTMgr 管理WebGLRenderTarget的创建和回收
  26792. * TODO 需求不大,管理成本高。先去掉。
  26793. */
  26794. class WebGLRTMgr {
  26795. private static dict:any;
  26796. /**
  26797. * 获得一个renderTarget
  26798. * 暂时先按照严格大小判断。
  26799. * @param w
  26800. * @param h
  26801. * @return
  26802. */
  26803. static getRT(w:number,h:number):laya.resource.RenderTexture2D;
  26804. /**
  26805. * 回收一个renderTarget
  26806. * @param rt
  26807. */
  26808. static releaseRT(rt:laya.resource.RenderTexture2D):void;
  26809. }
  26810. }
  26811. declare module laya.system {
  26812. /**
  26813. * @private
  26814. */
  26815. class System {
  26816. /**
  26817. * 替换指定名称的定义。用来动态更改类的定义。
  26818. * @param name 属性名。
  26819. * @param classObj 属性值。
  26820. */
  26821. static changeDefinition(name:string,classObj:any):void;
  26822. }
  26823. }
  26824. declare module laya.ui {
  26825. /**
  26826. * 广告插件
  26827. * @author 小松
  26828. * @date -2018-09-19
  26829. */
  26830. class AdvImage extends laya.ui.Image {
  26831. /**
  26832. * 广告列表数据*
  26833. */
  26834. private advsListArr:any;
  26835. /**
  26836. * 资源列表请求地址*
  26837. */
  26838. private resUrl:any;
  26839. /**
  26840. * 加载请求实例*
  26841. */
  26842. private _http:any;
  26843. /**
  26844. * 广告列表信息*
  26845. */
  26846. private _data:any;
  26847. /**
  26848. * 每6分钟重新请求一次新广告列表*
  26849. */
  26850. private _resquestTime:any;
  26851. /**
  26852. * 微信跳转appid*
  26853. */
  26854. private _appid:any;
  26855. /**
  26856. * 播放索引*
  26857. */
  26858. private _playIndex:any;
  26859. /**
  26860. * 轮播间隔时间*
  26861. */
  26862. private _lunboTime:any;
  26863. constructor(skin?:string);
  26864. /**
  26865. * 设置导量加载地址*
  26866. */
  26867. private setLoadUrl:any;
  26868. private init:any;
  26869. private initEvent:any;
  26870. private onAdvsImgClick:any;
  26871. private revertAdvsData:any;
  26872. /**
  26873. * 当前小游戏环境是否支持游戏跳转功能*
  26874. */
  26875. isSupportJump():boolean;
  26876. /**
  26877. * 跳转游戏
  26878. * @param callBack Function 回调参数说明:type 0 跳转成功;1跳转失败;2跳转接口调用成功
  26879. */
  26880. private jumptoGame:any;
  26881. private updateAdvsInfo:any;
  26882. private onLunbo:any;
  26883. /**
  26884. * 获取轮播数据*
  26885. */
  26886. private getCurrentAppidObj:any;
  26887. /**
  26888. * 获取广告列表数据信息
  26889. */
  26890. private onGetAdvsListData:any;
  26891. /**
  26892. * 生成指定范围的随机数
  26893. * @param minNum 最小值
  26894. * @param maxNum 最大值
  26895. */
  26896. static randRange(minNum:any,maxNum:any):number;
  26897. /**
  26898. * @private 请求出错侦的听处理函数。
  26899. * @param e 事件对象。
  26900. */
  26901. private _onError:any;
  26902. /**
  26903. * @private 请求消息返回的侦听处理函数。
  26904. * @param e 事件对象。
  26905. */
  26906. private _onLoad:any;
  26907. /**
  26908. * @private 请求错误的处理函数。
  26909. * @param message 错误信息。
  26910. */
  26911. private error:any;
  26912. /**
  26913. * @private 请求成功完成的处理函数。
  26914. */
  26915. private complete:any;
  26916. /**
  26917. * 转换数据*
  26918. */
  26919. private getAdvsQArr:any;
  26920. /**
  26921. * @private 清除当前请求。
  26922. */
  26923. private clear:any;
  26924. /**
  26925. * @override
  26926. * @param destroyChild
  26927. */
  26928. destroy(destroyChild?:boolean):void;
  26929. }
  26930. }
  26931. declare module laya.ui {
  26932. /**
  26933. * <code>AutoBitmap</code> 类是用于表示位图图像或绘制图形的显示对象。
  26934. * <p>封装了位置,宽高及九宫格的处理,供UI组件使用。</p>
  26935. */
  26936. class AutoBitmap extends laya.display.Graphics {
  26937. /**
  26938. * @private 是否自动缓存命令
  26939. */
  26940. autoCacheCmd:boolean;
  26941. /**
  26942. * @private 宽度
  26943. */
  26944. private _width:any;
  26945. /**
  26946. * @private 高度
  26947. */
  26948. private _height:any;
  26949. /**
  26950. * @private 源数据
  26951. */
  26952. private _source:any;
  26953. /**
  26954. * @private 网格数据
  26955. */
  26956. private _sizeGrid:any;
  26957. /**
  26958. * @private
  26959. */
  26960. protected _isChanged:boolean;
  26961. uv:number[];
  26962. /**
  26963. * @inheritDoc
  26964. * @override
  26965. */
  26966. destroy():void;
  26967. /**
  26968. * 当前实例的有效缩放网格数据。
  26969. * <p>如果设置为null,则在应用任何缩放转换时,将正常缩放整个显示对象。</p>
  26970. * <p>数据格式:[上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)]。
  26971. * <ul><li>例如:[4,4,4,4,1]</li></ul></p>
  26972. * <p> <code>sizeGrid</code> 的值如下所示:
  26973. * <ol>
  26974. * <li>上边距</li>
  26975. * <li>右边距</li>
  26976. * <li>下边距</li>
  26977. * <li>左边距</li>
  26978. * <li>是否重复填充(值为0:不重复填充,1:重复填充)</li>
  26979. * </ol></p>
  26980. * <p>当定义 <code>sizeGrid</code> 属性时,该显示对象被分割到以 <code>sizeGrid</code> 数据中的"上边距,右边距,下边距,左边距" 组成的矩形为基础的具有九个区域的网格中,该矩形定义网格的中心区域。网格的其它八个区域如下所示:
  26981. * <ul>
  26982. * <li>矩形上方的区域</li>
  26983. * <li>矩形外的右上角</li>
  26984. * <li>矩形左侧的区域</li>
  26985. * <li>矩形右侧的区域</li>
  26986. * <li>矩形外的左下角</li>
  26987. * <li>矩形下方的区域</li>
  26988. * <li>矩形外的右下角</li>
  26989. * <li>矩形外的左上角</li>
  26990. * </ul>
  26991. * 同时也支持3宫格,比如0,4,0,4,1为水平3宫格,4,0,4,0,1为垂直3宫格,3宫格性能比9宫格高。
  26992. * </p>
  26993. */
  26994. sizeGrid:number[];
  26995. /**
  26996. * 表示显示对象的宽度,以像素为单位。
  26997. */
  26998. width:number;
  26999. /**
  27000. * 表示显示对象的高度,以像素为单位。
  27001. */
  27002. height:number;
  27003. /**
  27004. * 对象的纹理资源。
  27005. * @see laya.resource.Texture
  27006. */
  27007. source:laya.resource.Texture;
  27008. /**
  27009. * @private
  27010. */
  27011. protected _setChanged():void;
  27012. /**
  27013. * @private 修改纹理资源。
  27014. */
  27015. protected changeSource():void;
  27016. private drawBitmap:any;
  27017. private static getTexture:any;
  27018. }
  27019. }
  27020. declare module laya.ui {
  27021. /**
  27022. * <code>Box</code> 类是一个控件容器类。
  27023. */
  27024. class Box extends laya.ui.UIComponent implements laya.ui.IBox {
  27025. private _bgColor:any;
  27026. /**
  27027. * @inheritDoc
  27028. * @override
  27029. */
  27030. dataSource:any;
  27031. /**
  27032. * 背景颜色
  27033. */
  27034. bgColor:string;
  27035. private _onResize:any;
  27036. }
  27037. }
  27038. declare module laya.ui {
  27039. /**
  27040. * 当按钮的选中状态( <code>selected</code> 属性)发生改变时调度。
  27041. * @eventType laya.events.Event
  27042. */
  27043. /**
  27044. * <code>Button</code> 组件用来表示常用的多态按钮。 <code>Button</code> 组件可显示文本标签、图标或同时显示两者。 *
  27045. * <p>可以是单态,两态和三态,默认三态(up,over,down)。</p>
  27046. * @example <caption>以下示例代码,创建了一个 <code>Button</code> 实例。</caption> package { import laya.ui.Button; import laya.utils.Handler; public class Button_Example { public function Button_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete));//加载资源。 } private function onLoadComplete():void { trace("资源加载完成!"); var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。 button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 button.clickHandler = new Handler(this, onClickButton,[button]);//设置 button 的点击事件处理器。 Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 } private function onClickButton(button:Button):void { trace("按钮button被点击了!"); } } }
  27047. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源 function loadComplete() { console.log("资源加载完成!"); var button = new laya.ui.Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。 button.x =100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 button.y =100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 button.clickHandler = laya.utils.Handler.create(this,onClickButton,[button],false);//设置 button 的点击事件处理函数。 Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 } function onClickButton(button) { console.log("按钮被点击了。",button); }
  27048. * @example import Button=laya.ui.Button; import Handler=laya.utils.Handler; class Button_Example{ constructor() { Laya.init(640, 800); Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png", laya.utils.Handler.create(this,this.onLoadComplete));//加载资源。 } private onLoadComplete() { var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。 button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 button.clickHandler = new Handler(this, this.onClickButton,[button]);//设置 button 的点击事件处理器。 Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 } private onClickButton(button:Button):void { console.log("按钮button被点击了!") } }
  27049. */
  27050. class Button extends laya.ui.UIComponent implements laya.ui.ISelect {
  27051. /**
  27052. * 按钮状态集。
  27053. */
  27054. protected static stateMap:any;
  27055. /**
  27056. * 指定按钮按下时是否是切换按钮的显示状态。
  27057. * @example 以下示例代码,创建了一个 <code>Button</code> 实例,并设置为切换按钮。
  27058. * @example package { import laya.ui.Button; import laya.utils.Handler; public class Button_toggle { public function Button_toggle() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete)); } private function onLoadComplete():void { trace("资源加载完成!"); var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 实例对象 button ,传入它的皮肤skin和标签label。 button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 button.toggle = true;//设置 button 对象为切换按钮。 button.clickHandler = new Handler(this, onClickButton,[button]);//设置 button 的点击事件处理器。 Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 } private function onClickButton(button:Button):void { trace("button.selected = "+ button.selected); } } }
  27059. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源 function loadComplete() { console.log("资源加载完成!"); var button = new laya.ui.Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。 button.x =100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 button.y =100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 button.toggle = true;//设置 button 对象为切换按钮。 button.clickHandler = laya.utils.Handler.create(this,onClickButton,[button],false);//设置 button 的点击事件处理器。 Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 } function onClickButton(button) { console.log("button.selected = ",button.selected); }
  27060. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("button.png", null,null, null, null, null);//加载资源 function loadComplete() { console.log("资源加载完成!"); var button:laya.ui.Button = new laya.ui.Button("button.png", "label");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。 button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 button.toggle = true;//设置 button 对象为切换按钮。 button.clickHandler = laya.utils.Handler.create(this, onClickButton, [button], false);//设置 button 的点击事件处理器。 Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 } function onClickButton(button) { console.log("button.selected = ", button.selected); }
  27061. */
  27062. toggle:boolean;
  27063. /**
  27064. * @private
  27065. */
  27066. protected _bitmap:laya.ui.AutoBitmap;
  27067. /**
  27068. * @private 按钮上的文本。
  27069. */
  27070. protected _text:laya.display.Text;
  27071. /**
  27072. * @private 按钮文本标签的颜色值。
  27073. */
  27074. protected _labelColors:any[];
  27075. /**
  27076. * @private 按钮文本标签描边的颜色值。
  27077. */
  27078. protected _strokeColors:any[];
  27079. /**
  27080. * @private 按钮的状态值。
  27081. */
  27082. protected _state:number;
  27083. /**
  27084. * @private 表示按钮的选中状态。
  27085. */
  27086. protected _selected:boolean;
  27087. /**
  27088. * @private 按钮的皮肤资源。
  27089. */
  27090. protected _skin:string;
  27091. /**
  27092. * @private 指定此显示对象是否自动计算并改变大小等属性。
  27093. */
  27094. protected _autoSize:boolean;
  27095. /**
  27096. * @private 按钮的状态数。
  27097. */
  27098. protected _stateNum:number;
  27099. /**
  27100. * @private 源数据。
  27101. */
  27102. protected _sources:any[];
  27103. /**
  27104. * @private 按钮的点击事件函数。
  27105. */
  27106. protected _clickHandler:laya.utils.Handler;
  27107. /**
  27108. * @private
  27109. */
  27110. protected _stateChanged:boolean;
  27111. /**
  27112. * 创建一个新的 <code>Button</code> 类实例。
  27113. * @param skin 皮肤资源地址。
  27114. * @param label 按钮的文本内容。
  27115. */
  27116. constructor(skin?:string,label?:string);
  27117. /**
  27118. * @inheritDoc
  27119. * @override
  27120. */
  27121. destroy(destroyChild?:boolean):void;
  27122. /**
  27123. * @inheritDoc
  27124. * @override
  27125. */
  27126. protected createChildren():void;
  27127. /**
  27128. * @private
  27129. */
  27130. protected createText():void;
  27131. /**
  27132. * @inheritDoc
  27133. * @override
  27134. */
  27135. protected initialize():void;
  27136. /**
  27137. * 对象的 <code>Event.MOUSE_OVER、Event.MOUSE_OUT、Event.MOUSE_DOWN、Event.MOUSE_UP、Event.CLICK</code> 事件侦听处理函数。
  27138. * @param e Event 对象。
  27139. */
  27140. protected onMouse(e:laya.events.Event):void;
  27141. /**
  27142. * <p>对象的皮肤资源地址。</p>
  27143. * 支持单态,两态和三态,用 <code>stateNum</code> 属性设置
  27144. * <p>对象的皮肤地址,以字符串表示。</p>
  27145. * @see #stateNum
  27146. */
  27147. skin:string;
  27148. protected _skinLoaded():void;
  27149. /**
  27150. * <p>指定对象的状态值,以数字表示。</p>
  27151. * <p>默认值为3。此值决定皮肤资源图片的切割方式。</p>
  27152. * <p><b>取值:</b>
  27153. * <li>1:单态。图片不做切割,按钮的皮肤状态只有一种。</li>
  27154. * <li>2:两态。图片将以竖直方向被等比切割为2部分,从上向下,依次为
  27155. * 弹起状态皮肤、
  27156. * 按下和经过及选中状态皮肤。</li>
  27157. * <li>3:三态。图片将以竖直方向被等比切割为3部分,从上向下,依次为
  27158. * 弹起状态皮肤、
  27159. * 经过状态皮肤、
  27160. * 按下和选中状态皮肤</li>
  27161. * </p>
  27162. */
  27163. stateNum:number;
  27164. /**
  27165. * @private 对象的资源切片发生改变。
  27166. */
  27167. protected changeClips():void;
  27168. /**
  27169. * @inheritDoc
  27170. * @override
  27171. */
  27172. protected measureWidth():number;
  27173. /**
  27174. * @inheritDoc
  27175. * @override
  27176. */
  27177. protected measureHeight():number;
  27178. /**
  27179. * 按钮的文本内容。
  27180. */
  27181. label:string;
  27182. /**
  27183. * 表示按钮的选中状态。
  27184. * <p>如果值为true,表示该对象处于选中状态。否则该对象处于未选中状态。</p>
  27185. * @implements
  27186. */
  27187. selected:boolean;
  27188. /**
  27189. * 对象的状态值。
  27190. * @see #stateMap
  27191. */
  27192. protected state:number;
  27193. /**
  27194. * @private 改变对象的状态。
  27195. */
  27196. protected changeState():void;
  27197. /**
  27198. * 表示按钮各个状态下的文本颜色。
  27199. * <p><b>格式:</b> "upColor,overColor,downColor,disableColor"。</p>
  27200. */
  27201. labelColors:string;
  27202. /**
  27203. * 表示按钮各个状态下的描边颜色。
  27204. * <p><b>格式:</b> "upColor,overColor,downColor,disableColor"。</p>
  27205. */
  27206. strokeColors:string;
  27207. /**
  27208. * 表示按钮文本标签的边距。
  27209. * <p><b>格式:</b>"上边距,右边距,下边距,左边距"。</p>
  27210. */
  27211. labelPadding:string;
  27212. /**
  27213. * 表示按钮文本标签的字体大小。
  27214. * @see laya.display.Text.fontSize()
  27215. */
  27216. labelSize:number;
  27217. /**
  27218. * <p>描边宽度(以像素为单位)。</p>
  27219. * 默认值0,表示不描边。
  27220. * @see laya.display.Text.stroke()
  27221. */
  27222. labelStroke:number;
  27223. /**
  27224. * <p>描边颜色,以字符串表示。</p>
  27225. * 默认值为 "#000000"(黑色);
  27226. * @see laya.display.Text.strokeColor()
  27227. */
  27228. labelStrokeColor:string;
  27229. /**
  27230. * 表示按钮文本标签是否为粗体字。
  27231. * @see laya.display.Text.bold()
  27232. */
  27233. labelBold:boolean;
  27234. /**
  27235. * 表示按钮文本标签的字体名称,以字符串形式表示。
  27236. * @see laya.display.Text.font()
  27237. */
  27238. labelFont:string;
  27239. /**
  27240. * 标签对齐模式,默认为居中对齐。
  27241. */
  27242. labelAlign:string;
  27243. /**
  27244. * 对象的点击事件处理器函数(无默认参数)。
  27245. * @implements
  27246. */
  27247. clickHandler:laya.utils.Handler;
  27248. /**
  27249. * 按钮文本标签 <code>Text</code> 控件。
  27250. */
  27251. readonly text:laya.display.Text;
  27252. /**
  27253. * <p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>
  27254. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  27255. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  27256. * @see laya.ui.AutoBitmap.sizeGrid
  27257. */
  27258. sizeGrid:string;
  27259. /**
  27260. * @inheritDoc
  27261. * @override
  27262. */
  27263. width:number;
  27264. /**
  27265. * @inheritDoc
  27266. * @override
  27267. */
  27268. height:number;
  27269. /**
  27270. * @inheritDoc
  27271. * @override
  27272. */
  27273. dataSource:any;
  27274. /**
  27275. * 图标x,y偏移,格式:100,100
  27276. */
  27277. iconOffset:string;
  27278. /**
  27279. * @private
  27280. */
  27281. protected _setStateChanged():void;
  27282. }
  27283. }
  27284. declare module laya.ui {
  27285. /**
  27286. * 当按钮的选中状态( <code>selected</code> 属性)发生改变时调度。
  27287. * @eventType laya.events.Event
  27288. */
  27289. /**
  27290. * <code>CheckBox</code> 组件显示一个小方框,该方框内可以有选中标记。
  27291. * <code>CheckBox</code> 组件还可以显示可选的文本标签,默认该标签位于 CheckBox 右侧。
  27292. * <p><code>CheckBox</code> 使用 <code>dataSource</code>赋值时的的默认属性是:<code>selected</code>。</p>
  27293. * @example <caption>以下示例代码,创建了一个 <code>CheckBox</code> 实例。</caption> package { import laya.ui.CheckBox; import laya.utils.Handler; public class CheckBox_Example { public function CheckBox_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/check.png", Handler.create(this,onLoadComplete));//加载资源。 } private function onLoadComplete():void { trace("资源加载完成!"); var checkBox:CheckBox = new CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的实例对象 checkBox ,传入它的皮肤skin和标签label。 checkBox.x = 100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。 checkBox.y = 100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。 checkBox.clickHandler = new Handler(this, onClick, [checkBox]);//设置 checkBox 的点击事件处理器。 Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。 } private function onClick(checkBox:CheckBox):void { trace("输出选中状态: checkBox.selected = " + checkBox.selected); } } }
  27294. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load("resource/ui/check.png",laya.utils.Handler.create(this,loadComplete));//加载资源 function loadComplete() { console.log("资源加载完成!"); var checkBox:laya.ui.CheckBox= new laya.ui.CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的类的实例对象 checkBox ,传入它的皮肤skin和标签label。 checkBox.x =100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。 checkBox.y =100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。 checkBox.clickHandler = new laya.utils.Handler(this,this.onClick,[checkBox],false);//设置 checkBox 的点击事件处理器。 Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。 } function onClick(checkBox) { console.log("checkBox.selected = ",checkBox.selected); }
  27295. * @example import CheckBox= laya.ui.CheckBox; import Handler=laya.utils.Handler; class CheckBox_Example{ constructor() { Laya.init(640, 800); Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/check.png", Handler.create(this,this.onLoadComplete));//加载资源。 } private onLoadComplete() { var checkBox:CheckBox = new CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的实例对象 checkBox ,传入它的皮肤skin和标签label。 checkBox.x = 100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。 checkBox.y = 100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。 checkBox.clickHandler = new Handler(this, this.onClick,[checkBox]);//设置 checkBox 的点击事件处理器。 Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。 } private onClick(checkBox:CheckBox):void { console.log("输出选中状态: checkBox.selected = " + checkBox.selected); } }
  27296. */
  27297. class CheckBox extends laya.ui.Button {
  27298. /**
  27299. * 创建一个新的 <code>CheckBox</code> 组件实例。
  27300. * @param skin 皮肤资源地址。
  27301. * @param label 文本标签的内容。
  27302. */
  27303. constructor(skin?:string,label?:string);
  27304. /**
  27305. * @inheritDoc
  27306. * @override
  27307. */
  27308. protected preinitialize():void;
  27309. /**
  27310. * @inheritDoc
  27311. * @override
  27312. */
  27313. protected initialize():void;
  27314. /**
  27315. * @inheritDoc
  27316. * @override
  27317. */
  27318. dataSource:any;
  27319. }
  27320. }
  27321. declare module laya.ui {
  27322. /**
  27323. * 图片加载完成后调度。
  27324. * @eventType Event.LOADED
  27325. */
  27326. /**
  27327. * 当前帧发生变化后调度。
  27328. * @eventType laya.events.Event
  27329. */
  27330. /**
  27331. * <p> <code>Clip</code> 类是位图切片动画。</p>
  27332. * <p> <code>Clip</code> 可将一张图片,按横向分割数量 <code>clipX</code> 、竖向分割数量 <code>clipY</code> ,
  27333. * 或横向分割每个切片的宽度 <code>clipWidth</code> 、竖向分割每个切片的高度 <code>clipHeight</code> ,
  27334. * 从左向右,从上到下,分割组合为一个切片动画。</p>
  27335. * Image和Clip组件是唯一支持异步加载的两个组件,比如clip.skin = "abc/xxx.png",其他UI组件均不支持异步加载。
  27336. * @example <caption>以下示例代码,创建了一个 <code>Clip</code> 实例。</caption> package { import laya.ui.Clip; public class Clip_Example { private var clip:Clip; public function Clip_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } private function onInit():void { clip = new Clip("resource/ui/clip_num.png", 10, 1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。 clip.autoPlay = true;//设置 clip 动画自动播放。 clip.interval = 100;//设置 clip 动画的播放时间间隔。 clip.x = 100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。 clip.y = 100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。 clip.on(Event.CLICK, this, onClick);//给 clip 添加点击事件函数侦听。 Laya.stage.addChild(clip);//将此 clip 对象添加到显示列表。 } private function onClick():void { trace("clip 的点击事件侦听处理函数。clip.total="+ clip.total); if (clip.isPlaying == true) { clip.stop();//停止动画。 }else { clip.play();//播放动画。 } } } }
  27337. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var clip; Laya.loader.load("resource/ui/clip_num.png",laya.utils.Handler.create(this,loadComplete));//加载资源 function loadComplete() { console.log("资源加载完成!"); clip = new laya.ui.Clip("resource/ui/clip_num.png",10,1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。 clip.autoPlay = true;//设置 clip 动画自动播放。 clip.interval = 100;//设置 clip 动画的播放时间间隔。 clip.x =100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。 clip.y =100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。 clip.on(Event.CLICK,this,onClick);//给 clip 添加点击事件函数侦听。 Laya.stage.addChild(clip);//将此 clip 对象添加到显示列表。 } function onClick() { console.log("clip 的点击事件侦听处理函数。"); if(clip.isPlaying == true) { clip.stop(); }else { clip.play(); } }
  27338. * @example import Clip = laya.ui.Clip; import Handler = laya.utils.Handler; class Clip_Example { private clip: Clip; constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.onInit(); } private onInit(): void { this.clip = new Clip("resource/ui/clip_num.png", 10, 1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。 this.clip.autoPlay = true;//设置 clip 动画自动播放。 this.clip.interval = 100;//设置 clip 动画的播放时间间隔。 this.clip.x = 100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。 this.clip.y = 100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。 this.clip.on(laya.events.Event.CLICK, this, this.onClick);//给 clip 添加点击事件函数侦听。 Laya.stage.addChild(this.clip);//将此 clip 对象添加到显示列表。 } private onClick(): void { console.log("clip 的点击事件侦听处理函数。clip.total=" + this.clip.total); if (this.clip.isPlaying == true) { this.clip.stop();//停止动画。 } else { this.clip.play();//播放动画。 } } }
  27339. */
  27340. class Clip extends laya.ui.UIComponent {
  27341. /**
  27342. * @private
  27343. */
  27344. protected _sources:any[];
  27345. /**
  27346. * @private
  27347. */
  27348. protected _bitmap:laya.ui.AutoBitmap;
  27349. /**
  27350. * @private
  27351. */
  27352. protected _skin:string;
  27353. /**
  27354. * @private
  27355. */
  27356. protected _clipX:number;
  27357. /**
  27358. * @private
  27359. */
  27360. protected _clipY:number;
  27361. /**
  27362. * @private
  27363. */
  27364. protected _clipWidth:number;
  27365. /**
  27366. * @private
  27367. */
  27368. protected _clipHeight:number;
  27369. /**
  27370. * @private
  27371. */
  27372. protected _autoPlay:boolean;
  27373. /**
  27374. * @private
  27375. */
  27376. protected _interval:number;
  27377. /**
  27378. * @private
  27379. */
  27380. protected _complete:laya.utils.Handler;
  27381. /**
  27382. * @private
  27383. */
  27384. protected _isPlaying:boolean;
  27385. /**
  27386. * @private
  27387. */
  27388. protected _index:number;
  27389. /**
  27390. * @private
  27391. */
  27392. protected _clipChanged:boolean;
  27393. /**
  27394. * @private
  27395. */
  27396. protected _group:string;
  27397. /**
  27398. * @private
  27399. */
  27400. protected _toIndex:number;
  27401. /**
  27402. * 创建一个新的 <code>Clip</code> 示例。
  27403. * @param url 资源类库名或者地址
  27404. * @param clipX x方向分割个数
  27405. * @param clipY y方向分割个数
  27406. */
  27407. constructor(url?:string,clipX?:number,clipY?:number);
  27408. /**
  27409. * @inheritDoc
  27410. * @override
  27411. */
  27412. destroy(destroyChild?:boolean):void;
  27413. /**
  27414. * 销毁对象并释放加载的皮肤资源。
  27415. */
  27416. dispose():void;
  27417. /**
  27418. * @inheritDoc
  27419. * @override
  27420. */
  27421. protected createChildren():void;
  27422. /**
  27423. * @private
  27424. * @override
  27425. */
  27426. protected _onDisplay(e?:boolean):void;
  27427. /**
  27428. * @copy laya.ui.Image#skin
  27429. */
  27430. skin:string;
  27431. protected _skinLoaded():void;
  27432. /**
  27433. * X轴(横向)切片数量。
  27434. */
  27435. clipX:number;
  27436. /**
  27437. * Y轴(竖向)切片数量。
  27438. */
  27439. clipY:number;
  27440. /**
  27441. * 横向分割时每个切片的宽度,与 <code>clipX</code> 同时设置时优先级高于 <code>clipX</code> 。
  27442. */
  27443. clipWidth:number;
  27444. /**
  27445. * 竖向分割时每个切片的高度,与 <code>clipY</code> 同时设置时优先级高于 <code>clipY</code> 。
  27446. */
  27447. clipHeight:number;
  27448. /**
  27449. * @private 改变切片的资源、切片的大小。
  27450. */
  27451. protected changeClip():void;
  27452. /**
  27453. * @private 加载切片图片资源完成函数。
  27454. * @param url 资源地址。
  27455. * @param img 纹理。
  27456. */
  27457. protected loadComplete(url:string,img:laya.resource.Texture):void;
  27458. /**
  27459. * 源数据。
  27460. */
  27461. sources:any[];
  27462. /**
  27463. * 资源分组。
  27464. */
  27465. group:string;
  27466. /**
  27467. * @inheritDoc
  27468. * @override
  27469. */
  27470. width:number;
  27471. /**
  27472. * @inheritDoc
  27473. * @override
  27474. */
  27475. height:number;
  27476. /**
  27477. * @inheritDoc
  27478. * @override
  27479. */
  27480. protected measureWidth():number;
  27481. /**
  27482. * @inheritDoc
  27483. * @override
  27484. */
  27485. protected measureHeight():number;
  27486. /**
  27487. * <p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>
  27488. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  27489. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  27490. * @see laya.ui.AutoBitmap.sizeGrid
  27491. */
  27492. sizeGrid:string;
  27493. /**
  27494. * 当前帧索引。
  27495. */
  27496. index:number;
  27497. /**
  27498. * 切片动画的总帧数。
  27499. */
  27500. readonly total:number;
  27501. /**
  27502. * 表示是否自动播放动画,若自动播放值为true,否则值为false;
  27503. * <p>可控制切片动画的播放、停止。</p>
  27504. */
  27505. autoPlay:boolean;
  27506. /**
  27507. * 表示动画播放间隔时间(以毫秒为单位)。
  27508. */
  27509. interval:number;
  27510. /**
  27511. * 表示动画的当前播放状态。
  27512. * 如果动画正在播放中,则为true,否则为flash。
  27513. */
  27514. isPlaying:boolean;
  27515. /**
  27516. * 播放动画。
  27517. * @param from 开始索引
  27518. * @param to 结束索引,-1为不限制
  27519. */
  27520. play(from?:number,to?:number):void;
  27521. /**
  27522. * @private
  27523. */
  27524. protected _loop():void;
  27525. /**
  27526. * 停止动画。
  27527. */
  27528. stop():void;
  27529. /**
  27530. * @inheritDoc
  27531. * @override
  27532. */
  27533. dataSource:any;
  27534. /**
  27535. * <code>AutoBitmap</code> 位图实例。
  27536. */
  27537. readonly bitmap:laya.ui.AutoBitmap;
  27538. /**
  27539. * @private
  27540. */
  27541. protected _setClipChanged():void;
  27542. }
  27543. }
  27544. declare module laya.ui {
  27545. /**
  27546. * 选择项改变后调度。
  27547. * @eventType laya.events.Event
  27548. */
  27549. /**
  27550. * <code>ColorPicker</code> 组件将显示包含多个颜色样本的列表,用户可以从中选择颜色。
  27551. * @example <caption>以下示例代码,创建了一个 <code>ColorPicker</code> 实例。</caption> package { import laya.ui.ColorPicker; import laya.utils.Handler; public class ColorPicker_Example { public function ColorPicker_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/color.png", Handler.create(this,onLoadComplete));//加载资源。 } private function onLoadComplete():void { trace("资源加载完成!"); var colorPicket:ColorPicker = new ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。 colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。 colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.changeHandler = new Handler(this, onChangeColor,[colorPicket]);//设置 colorPicket 的颜色改变回调函数。 Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。 } private function onChangeColor(colorPicket:ColorPicker):void { trace("当前选择的颜色: " + colorPicket.selectedColor); } } }
  27552. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load("resource/ui/color.png",laya.utils.Handler.create(this,loadComplete));//加载资源 function loadComplete() { console.log("资源加载完成!"); var colorPicket = new laya.ui.ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。 colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。 colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.changeHandler = laya.utils.Handler.create(this, onChangeColor,[colorPicket],false);//设置 colorPicket 的颜色改变回调函数。 Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。 } function onChangeColor(colorPicket) { console.log("当前选择的颜色: " + colorPicket.selectedColor); }
  27553. * @example import ColorPicker = laya.ui.ColorPicker; import Handler = laya.utils.Handler; class ColorPicker_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/color.png", Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { console.log("资源加载完成!"); var colorPicket: ColorPicker = new ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。 colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。 colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.changeHandler = new Handler(this, this.onChangeColor, [colorPicket]);//设置 colorPicket 的颜色改变回调函数。 Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。 } private onChangeColor(colorPicket: ColorPicker): void { console.log("当前选择的颜色: " + colorPicket.selectedColor); } }
  27554. */
  27555. class ColorPicker extends laya.ui.UIComponent {
  27556. /**
  27557. * 当颜色发生改变时执行的函数处理器。
  27558. * 默认返回参数color:颜色值字符串。
  27559. */
  27560. changeHandler:laya.utils.Handler;
  27561. /**
  27562. * @private 指定每个正方形的颜色小格子的宽高(以像素为单位)。
  27563. */
  27564. protected _gridSize:number;
  27565. /**
  27566. * @private 表示颜色样本列表面板的背景颜色值。
  27567. */
  27568. protected _bgColor:string;
  27569. /**
  27570. * @private 表示颜色样本列表面板的边框颜色值。
  27571. */
  27572. protected _borderColor:string;
  27573. /**
  27574. * @private 表示颜色样本列表面板选择或输入的颜色值。
  27575. */
  27576. protected _inputColor:string;
  27577. /**
  27578. * @private 表示颜色输入框的背景颜色值。
  27579. */
  27580. protected _inputBgColor:string;
  27581. /**
  27582. * @private 表示颜色样本列表面板。
  27583. */
  27584. protected _colorPanel:laya.ui.Box;
  27585. /**
  27586. * @private 表示颜色网格。
  27587. */
  27588. protected _colorTiles:laya.display.Sprite;
  27589. /**
  27590. * @private 表示颜色块显示对象。
  27591. */
  27592. protected _colorBlock:laya.display.Sprite;
  27593. /**
  27594. * @private 表示颜色输入框控件 <code>Input</code> 。
  27595. */
  27596. protected _colorInput:laya.display.Input;
  27597. /**
  27598. * @private 表示点击后显示颜色样本列表面板的按钮控件 <code>Button</code> 。
  27599. */
  27600. protected _colorButton:laya.ui.Button;
  27601. /**
  27602. * @private 表示颜色值列表。
  27603. */
  27604. protected _colors:any[];
  27605. /**
  27606. * @private 表示选择的颜色值。
  27607. */
  27608. protected _selectedColor:string;
  27609. /**
  27610. * @private
  27611. */
  27612. protected _panelChanged:boolean;
  27613. /**
  27614. * @inheritDoc
  27615. * @override
  27616. */
  27617. destroy(destroyChild?:boolean):void;
  27618. /**
  27619. * @inheritDoc
  27620. * @override
  27621. */
  27622. protected createChildren():void;
  27623. /**
  27624. * @inheritDoc
  27625. * @override
  27626. */
  27627. protected initialize():void;
  27628. private onPanelMouseDown:any;
  27629. /**
  27630. * 改变颜色样本列表面板。
  27631. */
  27632. protected changePanel():void;
  27633. /**
  27634. * 颜色样本列表面板的显示按钮的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  27635. */
  27636. private onColorButtonClick:any;
  27637. /**
  27638. * 打开颜色样本列表面板。
  27639. */
  27640. open():void;
  27641. /**
  27642. * 关闭颜色样本列表面板。
  27643. */
  27644. close():void;
  27645. /**
  27646. * 舞台的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  27647. */
  27648. private removeColorBox:any;
  27649. /**
  27650. * 小格子色块的 <code>Event.KEY_DOWN</code> 事件侦听处理函数。
  27651. */
  27652. private onColorFieldKeyDown:any;
  27653. /**
  27654. * 颜色值输入框 <code>Event.CHANGE</code> 事件侦听处理函数。
  27655. */
  27656. private onColorInputChange:any;
  27657. /**
  27658. * 小格子色块的 <code>Event.CLICK</code> 事件侦听处理函数。
  27659. */
  27660. private onColorTilesClick:any;
  27661. /**
  27662. * @private 小格子色块的 <code>Event.MOUSE_MOVE</code> 事件侦听处理函数。
  27663. */
  27664. private onColorTilesMouseMove:any;
  27665. /**
  27666. * 通过鼠标位置取对应的颜色块的颜色值。
  27667. */
  27668. protected getColorByMouse():string;
  27669. /**
  27670. * 绘制颜色块。
  27671. * @param color 需要绘制的颜色块的颜色值。
  27672. */
  27673. private drawBlock:any;
  27674. /**
  27675. * 表示选择的颜色值。
  27676. */
  27677. selectedColor:string;
  27678. /**
  27679. * @copy laya.ui.Button#skin
  27680. */
  27681. skin:string;
  27682. /**
  27683. * 改变颜色。
  27684. */
  27685. private changeColor:any;
  27686. /**
  27687. * 表示颜色样本列表面板的背景颜色值。
  27688. */
  27689. bgColor:string;
  27690. /**
  27691. * 表示颜色样本列表面板的边框颜色值。
  27692. */
  27693. borderColor:string;
  27694. /**
  27695. * 表示颜色样本列表面板选择或输入的颜色值。
  27696. */
  27697. inputColor:string;
  27698. /**
  27699. * 表示颜色输入框的背景颜色值。
  27700. */
  27701. inputBgColor:string;
  27702. /**
  27703. * @private
  27704. */
  27705. protected _setPanelChanged():void;
  27706. }
  27707. }
  27708. declare module laya.ui {
  27709. /**
  27710. * 当用户更改 <code>ComboBox</code> 组件中的选定内容时调度。
  27711. * @eventType laya.events.Event selectedIndex属性变化时调度。
  27712. */
  27713. /**
  27714. * <code>ComboBox</code> 组件包含一个下拉列表,用户可以从该列表中选择单个值。
  27715. * @example <caption>以下示例代码,创建了一个 <code>ComboBox</code> 实例。</caption> package { import laya.ui.ComboBox; import laya.utils.Handler; public class ComboBox_Example { public function ComboBox_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete));//加载资源。 } private function onLoadComplete():void { trace("资源加载完成!"); var comboBox:ComboBox = new ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。 comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.selectHandler = new Handler(this, onSelect);//设置 comboBox 选择项改变时执行的处理器。 Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。 } private function onSelect(index:int):void { trace("当前选中的项对象索引: ",index); } } }
  27716. * @example Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源 function loadComplete() { console.log("资源加载完成!"); var comboBox = new laya.ui.ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。 comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.selectHandler = new laya.utils.Handler(this, onSelect);//设置 comboBox 选择项改变时执行的处理器。 Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。 } function onSelect(index) { console.log("当前选中的项对象索引: ",index); }
  27717. * @example import ComboBox = laya.ui.ComboBox; import Handler = laya.utils.Handler; class ComboBox_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png", Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { console.log("资源加载完成!"); var comboBox: ComboBox = new ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。 comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.selectHandler = new Handler(this, this.onSelect);//设置 comboBox 选择项改变时执行的处理器。 Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。 } private onSelect(index: number): void { console.log("当前选中的项对象索引: ", index); } }
  27718. */
  27719. class ComboBox extends laya.ui.UIComponent {
  27720. /**
  27721. * @private
  27722. */
  27723. protected _visibleNum:number;
  27724. /**
  27725. * @private
  27726. */
  27727. protected _button:laya.ui.Button;
  27728. /**
  27729. * @private
  27730. */
  27731. protected _list:laya.ui.List;
  27732. /**
  27733. * @private
  27734. */
  27735. protected _isOpen:boolean;
  27736. /**
  27737. * @private
  27738. */
  27739. protected _itemColors:any[];
  27740. /**
  27741. * @private
  27742. */
  27743. protected _itemSize:number;
  27744. /**
  27745. * @private
  27746. */
  27747. protected _labels:any[];
  27748. /**
  27749. * @private
  27750. */
  27751. protected _selectedIndex:number;
  27752. /**
  27753. * @private
  27754. */
  27755. protected _selectHandler:laya.utils.Handler;
  27756. /**
  27757. * @private
  27758. */
  27759. protected _itemHeight:number;
  27760. /**
  27761. * @private
  27762. */
  27763. protected _listHeight:number;
  27764. /**
  27765. * @private
  27766. */
  27767. protected _listChanged:boolean;
  27768. /**
  27769. * @private
  27770. */
  27771. protected _itemChanged:boolean;
  27772. /**
  27773. * @private
  27774. */
  27775. protected _scrollBarSkin:string;
  27776. /**
  27777. * @private
  27778. */
  27779. protected _isCustomList:boolean;
  27780. /**
  27781. * 渲染项,用来显示下拉列表展示对象
  27782. */
  27783. itemRender:any;
  27784. /**
  27785. * 创建一个新的 <code>ComboBox</code> 组件实例。
  27786. * @param skin 皮肤资源地址。
  27787. * @param labels 下拉列表的标签集字符串。以逗号做分割,如"item0,item1,item2,item3,item4,item5"。
  27788. */
  27789. constructor(skin?:string,labels?:string);
  27790. /**
  27791. * @inheritDoc
  27792. * @override
  27793. */
  27794. destroy(destroyChild?:boolean):void;
  27795. /**
  27796. * @inheritDoc
  27797. * @override
  27798. */
  27799. protected createChildren():void;
  27800. private _createList:any;
  27801. private _setListEvent:any;
  27802. /**
  27803. * @private
  27804. */
  27805. private onListDown:any;
  27806. private onScrollBarDown:any;
  27807. private onButtonMouseDown:any;
  27808. /**
  27809. * @copy laya.ui.Button#skin
  27810. */
  27811. skin:string;
  27812. /**
  27813. * @inheritDoc
  27814. * @override
  27815. */
  27816. protected measureWidth():number;
  27817. /**
  27818. * @inheritDoc
  27819. * @override
  27820. */
  27821. protected measureHeight():number;
  27822. /**
  27823. * @private
  27824. */
  27825. protected changeList():void;
  27826. /**
  27827. * @private 下拉列表的鼠标事件响应函数。
  27828. */
  27829. protected onlistItemMouse(e:laya.events.Event,index:number):void;
  27830. /**
  27831. * @private
  27832. */
  27833. private switchTo:any;
  27834. /**
  27835. * 更改下拉列表的打开状态。
  27836. */
  27837. protected changeOpen():void;
  27838. /**
  27839. * @inheritDoc
  27840. * @override
  27841. */
  27842. width:number;
  27843. /**
  27844. * @inheritDoc
  27845. * @override
  27846. */
  27847. height:number;
  27848. /**
  27849. * 标签集合字符串。
  27850. */
  27851. labels:string;
  27852. /**
  27853. * 更改下拉列表。
  27854. */
  27855. protected changeItem():void;
  27856. /**
  27857. * 表示选择的下拉列表项的索引。
  27858. */
  27859. selectedIndex:number;
  27860. private changeSelected:any;
  27861. /**
  27862. * 改变下拉列表的选择项时执行的处理器(默认返回参数index:int)。
  27863. */
  27864. selectHandler:laya.utils.Handler;
  27865. /**
  27866. * 表示选择的下拉列表项的的标签。
  27867. */
  27868. selectedLabel:string;
  27869. /**
  27870. * 获取或设置没有滚动条的下拉列表中可显示的最大行数。
  27871. */
  27872. visibleNum:number;
  27873. /**
  27874. * 下拉列表项颜色。
  27875. * <p><b>格式:</b>"悬停或被选中时背景颜色,悬停或被选中时标签颜色,标签颜色,边框颜色,背景颜色"</p>
  27876. */
  27877. itemColors:string;
  27878. /**
  27879. * 下拉列表项标签的字体大小。
  27880. */
  27881. itemSize:number;
  27882. /**
  27883. * 表示下拉列表的打开状态。
  27884. */
  27885. isOpen:boolean;
  27886. private _onStageMouseWheel:any;
  27887. /**
  27888. * 关闭下拉列表。
  27889. */
  27890. protected removeList(e:laya.events.Event):void;
  27891. /**
  27892. * 滚动条皮肤。
  27893. */
  27894. scrollBarSkin:string;
  27895. /**
  27896. * <p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>
  27897. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  27898. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  27899. * @see laya.ui.AutoBitmap.sizeGrid
  27900. */
  27901. sizeGrid:string;
  27902. /**
  27903. * 获取对 <code>ComboBox</code> 组件所包含的 <code>VScrollBar</code> 滚动条组件的引用。
  27904. */
  27905. readonly scrollBar:laya.ui.VScrollBar;
  27906. /**
  27907. * 获取对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的引用。
  27908. */
  27909. readonly button:laya.ui.Button;
  27910. /**
  27911. * 获取对 <code>ComboBox</code> 组件所包含的 <code>List</code> 列表组件的引用。
  27912. */
  27913. list:laya.ui.List;
  27914. /**
  27915. * @inheritDoc
  27916. * @override
  27917. */
  27918. dataSource:any;
  27919. /**
  27920. * 获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的文本标签颜色。
  27921. * <p><b>格式:</b>upColor,overColor,downColor,disableColor</p>
  27922. */
  27923. labelColors:string;
  27924. /**
  27925. * 获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的文本边距。
  27926. * <p><b>格式:</b>上边距,右边距,下边距,左边距</p>
  27927. */
  27928. labelPadding:string;
  27929. /**
  27930. * 获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的标签字体大小。
  27931. */
  27932. labelSize:number;
  27933. /**
  27934. * 表示按钮文本标签是否为粗体字。
  27935. * @see laya.display.Text#bold
  27936. */
  27937. labelBold:boolean;
  27938. /**
  27939. * 表示按钮文本标签的字体名称,以字符串形式表示。
  27940. * @see laya.display.Text#font
  27941. */
  27942. labelFont:string;
  27943. /**
  27944. * 表示按钮的状态值。
  27945. * @see laya.ui.Button#stateNum
  27946. */
  27947. stateNum:number;
  27948. }
  27949. }
  27950. declare module laya.ui {
  27951. /**
  27952. * <code>Dialog</code> 组件是一个弹出对话框,实现对话框弹出,拖动,模式窗口功能。
  27953. * 可以通过UIConfig设置弹出框背景透明度,模式窗口点击边缘是否关闭等
  27954. * 通过设置zOrder属性,可以更改弹出的层次
  27955. * 通过设置popupEffect和closeEffect可以设置弹出效果和关闭效果,如果不想有任何弹出关闭效果,可以设置前述属性为空
  27956. * @example <caption>以下示例代码,创建了一个 <code>Dialog</code> 实例。</caption> package { import laya.ui.Dialog; import laya.utils.Handler; public class Dialog_Example { private var dialog:Dialog_Instance; public function Dialog_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/btn_close.png", Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { dialog = new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。 dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。 dialog.show();//显示 dialog。 dialog.closeHandler = new Handler(this, onClose);//设置 dialog 的关闭函数处理器。 } private function onClose(name:String):void { if (name == Dialog.CLOSE) { trace("通过点击 name 为" + name +"的组件,关闭了dialog。"); } } } } import laya.ui.Button; import laya.ui.Dialog; import laya.ui.Image; class Dialog_Instance extends Dialog { function Dialog_Instance():void { var bg:Image = new Image("resource/ui/bg.png"); bg.sizeGrid = "40,10,5,10"; bg.width = 150; bg.height = 250; addChild(bg); var image:Image = new Image("resource/ui/image.png"); addChild(image); var button:Button = new Button("resource/ui/btn_close.png"); button.name = Dialog.CLOSE;//设置button的name属性值。 button.x = 0; button.y = 0; addChild(button); } }
  27957. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var dialog; Laya.loader.load("resource/ui/btn_close.png", laya.utils.Handler.create(this, loadComplete));//加载资源 (function (_super) {//新建一个类Dialog_Instance继承自laya.ui.Dialog。 function Dialog_Instance() { Dialog_Instance.__super.call(this);//初始化父类 var bg = new laya.ui.Image("resource/ui/bg.png");//新建一个 Image 类的实例 bg 。 bg.sizeGrid = "10,40,10,5";//设置 bg 的网格信息。 bg.width = 150;//设置 bg 的宽度。 bg.height = 250;//设置 bg 的高度。 this.addChild(bg);//将 bg 添加到显示列表。 var image = new laya.ui.Image("resource/ui/image.png");//新建一个 Image 类的实例 image 。 this.addChild(image);//将 image 添加到显示列表。 var button = new laya.ui.Button("resource/ui/btn_close.png");//新建一个 Button 类的实例 bg 。 button.name = laya.ui.Dialog.CLOSE;//设置 button 的 name 属性值。 button.x = 0;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 button.y = 0;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 this.addChild(button);//将 button 添加到显示列表。 }; Laya.class(Dialog_Instance,"mypackage.dialogExample.Dialog_Instance",_super);//注册类Dialog_Instance。 })(laya.ui.Dialog); function loadComplete() { console.log("资源加载完成!"); dialog = new mypackage.dialogExample.Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。 dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。 dialog.show();//显示 dialog。 dialog.closeHandler = new laya.utils.Handler(this, onClose);//设置 dialog 的关闭函数处理器。 } function onClose(name) { if (name == laya.ui.Dialog.CLOSE) { console.log("通过点击 name 为" + name + "的组件,关闭了dialog。"); } }
  27958. * @example import Dialog = laya.ui.Dialog; import Handler = laya.utils.Handler; class Dialog_Example { private dialog: Dialog_Instance; constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/btn_close.png", Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { this.dialog = new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。 this.dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。 this.dialog.show();//显示 dialog。 this.dialog.closeHandler = new Handler(this, this.onClose);//设置 dialog 的关闭函数处理器。 } private onClose(name: string): void { if (name == Dialog.CLOSE) { console.log("通过点击 name 为" + name + "的组件,关闭了dialog。"); } } } import Button = laya.ui.Button; class Dialog_Instance extends Dialog { Dialog_Instance(): void { var bg: laya.ui.Image = new laya.ui.Image("resource/ui/bg.png"); bg.sizeGrid = "40,10,5,10"; bg.width = 150; bg.height = 250; this.addChild(bg); var image: laya.ui.Image = new laya.ui.Image("resource/ui/image.png"); this.addChild(image); var button: Button = new Button("resource/ui/btn_close.png"); button.name = Dialog.CLOSE;//设置button的name属性值。 button.x = 0; button.y = 0; this.addChild(button); } }
  27959. */
  27960. class Dialog extends laya.ui.View {
  27961. /**
  27962. * 对话框内的某个按钮命名为close,点击此按钮则会关闭
  27963. */
  27964. static CLOSE:string;
  27965. /**
  27966. * 对话框内的某个按钮命名为cancel,点击此按钮则会关闭
  27967. */
  27968. static CANCEL:string;
  27969. /**
  27970. * 对话框内的某个按钮命名为sure,点击此按钮则会关闭
  27971. */
  27972. static SURE:string;
  27973. /**
  27974. * 对话框内的某个按钮命名为no,点击此按钮则会关闭
  27975. */
  27976. static NO:string;
  27977. /**
  27978. * 对话框内的某个按钮命名为yes,点击此按钮则会关闭
  27979. */
  27980. static YES:string;
  27981. /**
  27982. * 对话框内的某个按钮命名为ok,点击此按钮则会关闭
  27983. */
  27984. static OK:string;
  27985. /**
  27986. * @private 表示对话框管理器。
  27987. */
  27988. private static _manager:any;
  27989. /**
  27990. * 对话框管理容器,所有的对话框都在该容器内,并且受管理器管理,可以自定义自己的管理器,来更改窗口管理的流程。
  27991. * 任意对话框打开和关闭,都会触发管理类的open和close事件
  27992. */
  27993. static manager:laya.ui.DialogManager;
  27994. /**
  27995. * 对话框被关闭时会触发的回调函数处理器。
  27996. * <p>回调函数参数为用户点击的按钮名字name:String。</p>
  27997. */
  27998. closeHandler:laya.utils.Handler;
  27999. /**
  28000. * 弹出对话框效果,可以设置一个效果代替默认的弹出效果,如果不想有任何效果,可以赋值为null
  28001. * 全局默认弹出效果可以通过manager.popupEffect修改
  28002. */
  28003. popupEffect:laya.utils.Handler;
  28004. /**
  28005. * 关闭对话框效果,可以设置一个效果代替默认的关闭效果,如果不想有任何效果,可以赋值为null
  28006. * 全局默认关闭效果可以通过manager.closeEffect修改
  28007. */
  28008. closeEffect:laya.utils.Handler;
  28009. /**
  28010. * 组名称
  28011. */
  28012. group:string;
  28013. /**
  28014. * 是否是模式窗口
  28015. */
  28016. isModal:boolean;
  28017. /**
  28018. * 是否显示弹出效果
  28019. */
  28020. isShowEffect:boolean;
  28021. /**
  28022. * 指定对话框是否居中弹。<p>如果值为true,则居中弹出,否则,则根据对象坐标显示,默认为true。</p>
  28023. */
  28024. isPopupCenter:boolean;
  28025. /**
  28026. * 关闭类型,点击name为"close","cancel","sure","no","yes","no"的按钮时,会自动记录点击按钮的名称
  28027. */
  28028. closeType:string;
  28029. /**
  28030. * @private
  28031. */
  28032. private _dragArea:any;
  28033. constructor();
  28034. /**
  28035. * @private 提取拖拽区域
  28036. */
  28037. protected _dealDragArea():void;
  28038. /**
  28039. * 用来指定对话框的拖拽区域。默认值为"0,0,0,0"。
  28040. * <p><b>格式:</b>构成一个矩形所需的 x,y,width,heith 值,用逗号连接为字符串。
  28041. * 例如:"0,0,100,200"。</p>
  28042. * @see #includeExamplesSummary 请参考示例
  28043. */
  28044. dragArea:string;
  28045. /**
  28046. * @private
  28047. */
  28048. private _onMouseDown:any;
  28049. /**
  28050. * @private 处理默认点击事件
  28051. */
  28052. protected _onClick(e:laya.events.Event):void;
  28053. /**
  28054. * @inheritDoc
  28055. * @override
  28056. */
  28057. open(closeOther?:boolean,param?:any):void;
  28058. /**
  28059. * 关闭对话框。
  28060. * @param type 关闭的原因,会传递给onClosed函数
  28061. * @override
  28062. */
  28063. close(type?:string):void;
  28064. /**
  28065. * @inheritDoc
  28066. * @override
  28067. */
  28068. destroy(destroyChild?:boolean):void;
  28069. /**
  28070. * 显示对话框(以非模式窗口方式显示)。
  28071. * @param closeOther 是否关闭其它的对话框。若值为true则关闭其它对话框。
  28072. * @param showEffect 是否显示弹出效果
  28073. */
  28074. show(closeOther?:boolean,showEffect?:boolean):void;
  28075. /**
  28076. * 显示对话框(以模式窗口方式显示)。
  28077. * @param closeOther 是否关闭其它的对话框。若值为true则关闭其它对话框。
  28078. * @param showEffect 是否显示弹出效果
  28079. */
  28080. popup(closeOther?:boolean,showEffect?:boolean):void;
  28081. /**
  28082. * @private
  28083. */
  28084. protected _open(modal:boolean,closeOther:boolean,showEffect:boolean):void;
  28085. /**
  28086. * 弹出框的显示状态;如果弹框处于显示中,则为true,否则为false;
  28087. */
  28088. readonly isPopup:boolean;
  28089. /**
  28090. * @inheritDoc
  28091. * @override
  28092. */
  28093. zOrder:number;
  28094. /**
  28095. * 设置锁定界面,在界面未准备好前显示锁定界面,准备完毕后则移除锁定层,如果为空则什么都不显示
  28096. * @param view 锁定界面内容
  28097. */
  28098. static setLockView(view:laya.ui.UIComponent):void;
  28099. /**
  28100. * 锁定所有层,显示加载条信息,防止下面内容被点击
  28101. */
  28102. static lock(value:boolean):void;
  28103. /**
  28104. * 关闭所有对话框。
  28105. */
  28106. static closeAll():void;
  28107. /**
  28108. * 根据组获取对话框集合
  28109. * @param group 组名称
  28110. * @return 对话框数组
  28111. */
  28112. static getDialogsByGroup(group:string):any[];
  28113. /**
  28114. * 根据组关闭所有弹出框
  28115. * @param group 需要关闭的组名称
  28116. */
  28117. static closeByGroup(group:string):any[];
  28118. }
  28119. }
  28120. declare module laya.ui {
  28121. /**
  28122. * 打开任意窗口后调度。
  28123. * @eventType Event.OPEN
  28124. */
  28125. /**
  28126. * 关闭任意窗口后调度。
  28127. * @eventType Event.CLOSE
  28128. */
  28129. /**
  28130. * <code>DialogManager</code> 对话框管理容器,所有的对话框都在该容器内,并且受管理器管理。
  28131. * 任意对话框打开和关闭,都会出发管理类的open和close事件
  28132. * 可以通过UIConfig设置弹出框背景透明度,模式窗口点击边缘是否关闭,点击窗口是否切换层次等
  28133. * 通过设置对话框的zOrder属性,可以更改弹出的层次
  28134. */
  28135. class DialogManager extends laya.display.Sprite {
  28136. /**
  28137. * 遮罩层
  28138. */
  28139. maskLayer:laya.display.Sprite;
  28140. /**
  28141. * 锁屏层
  28142. */
  28143. lockLayer:laya.display.Sprite;
  28144. /**
  28145. * @private 全局默认弹出对话框效果,可以设置一个效果代替默认的弹出效果,如果不想有任何效果,可以赋值为null
  28146. */
  28147. popupEffect:(dialog:laya.ui.Dialog) =>void;
  28148. /**
  28149. * @private 全局默认关闭对话框效果,可以设置一个效果代替默认的关闭效果,如果不想有任何效果,可以赋值为null
  28150. */
  28151. closeEffect:(dialog:laya.ui.Dialog) =>void;
  28152. /**
  28153. * 全局默认关闭对话框效果,可以设置一个效果代替默认的关闭效果,如果不想有任何效果,可以赋值为null
  28154. */
  28155. popupEffectHandler:laya.utils.Handler;
  28156. /**
  28157. * 全局默认弹出对话框效果,可以设置一个效果代替默认的弹出效果,如果不想有任何效果,可以赋值为null
  28158. */
  28159. closeEffectHandler:laya.utils.Handler;
  28160. /**
  28161. * 创建一个新的 <code>DialogManager</code> 类实例。
  28162. */
  28163. constructor();
  28164. private _closeOnSide:any;
  28165. /**
  28166. * 设置锁定界面,如果为空则什么都不显示
  28167. */
  28168. setLockView(value:laya.ui.UIComponent):void;
  28169. /**
  28170. * @private
  28171. */
  28172. private _onResize:any;
  28173. private _centerDialog:any;
  28174. /**
  28175. * 显示对话框
  28176. * @param dialog 需要显示的对象框 <code>Dialog</code> 实例。
  28177. * @param closeOther 是否关闭其它对话框,若值为ture,则关闭其它的对话框。
  28178. * @param showEffect 是否显示弹出效果
  28179. */
  28180. open(dialog:laya.ui.Dialog,closeOther?:boolean,showEffect?:boolean):void;
  28181. /**
  28182. * @private
  28183. */
  28184. private _clearDialogEffect:any;
  28185. /**
  28186. * 执行打开对话框。
  28187. * @param dialog 需要关闭的对象框 <code>Dialog</code> 实例。
  28188. */
  28189. doOpen(dialog:laya.ui.Dialog):void;
  28190. /**
  28191. * 锁定所有层,显示加载条信息,防止双击
  28192. */
  28193. lock(value:boolean):void;
  28194. /**
  28195. * 关闭对话框。
  28196. * @param dialog 需要关闭的对象框 <code>Dialog</code> 实例。
  28197. */
  28198. close(dialog:laya.ui.Dialog):void;
  28199. /**
  28200. * 执行关闭对话框。
  28201. * @param dialog 需要关闭的对象框 <code>Dialog</code> 实例。
  28202. */
  28203. doClose(dialog:laya.ui.Dialog):void;
  28204. /**
  28205. * 关闭所有的对话框。
  28206. */
  28207. closeAll():void;
  28208. /**
  28209. * @private
  28210. */
  28211. private _closeAll:any;
  28212. /**
  28213. * 根据组获取所有对话框
  28214. * @param group 组名称
  28215. * @return 对话框数组
  28216. */
  28217. getDialogsByGroup(group:string):any[];
  28218. /**
  28219. * 根据组关闭所有弹出框
  28220. * @param group 需要关闭的组名称
  28221. * @return 需要关闭的对话框数组
  28222. */
  28223. closeByGroup(group:string):any[];
  28224. }
  28225. }
  28226. declare module laya.ui {
  28227. /**
  28228. * 字体切片,简化版的位图字体,只需设置一个切片图片和文字内容即可使用,效果同位图字体
  28229. * 使用方式:设置位图字体皮肤skin,设置皮肤对应的字体内容sheet(如果多行,可以使用空格换行),示例:
  28230. * fontClip.skin = "font1.png";//设置皮肤
  28231. * fontClip.sheet = "abc123 456";//设置皮肤对应的内容,空格换行。此皮肤为2行5列(显示时skin会被等分为2行5列),第一行对应的文字为"abc123",第二行为"456"
  28232. * fontClip.value = "a1326";//显示"a1326"文字
  28233. */
  28234. class FontClip extends laya.ui.Clip {
  28235. /**
  28236. * 数值
  28237. */
  28238. protected _valueArr:string;
  28239. /**
  28240. * 文字内容数组*
  28241. */
  28242. protected _indexMap:any;
  28243. /**
  28244. * 位图字体内容*
  28245. */
  28246. protected _sheet:string;
  28247. /**
  28248. * @private
  28249. */
  28250. protected _direction:string;
  28251. /**
  28252. * X方向间隙
  28253. */
  28254. protected _spaceX:number;
  28255. /**
  28256. * Y方向间隙
  28257. */
  28258. protected _spaceY:number;
  28259. /**
  28260. * @private 水平对齐方式
  28261. */
  28262. private _align:any;
  28263. /**
  28264. * @private 显示文字宽
  28265. */
  28266. private _wordsW:any;
  28267. /**
  28268. * @private 显示文字高
  28269. */
  28270. private _wordsH:any;
  28271. /**
  28272. * @param skin 位图字体皮肤
  28273. * @param sheet 位图字体内容,空格代表换行
  28274. */
  28275. constructor(skin?:string,sheet?:string);
  28276. /**
  28277. * @override
  28278. */
  28279. protected createChildren():void;
  28280. /**
  28281. * 资源加载完毕
  28282. */
  28283. private _onClipLoaded:any;
  28284. /**
  28285. * 设置位图字体内容,空格代表换行。比如"abc123 456",代表第一行对应的文字为"abc123",第二行为"456"
  28286. */
  28287. sheet:string;
  28288. /**
  28289. * 设置位图字体的显示内容
  28290. */
  28291. value:string;
  28292. /**
  28293. * 布局方向。
  28294. * <p>默认值为"horizontal"。</p>
  28295. * <p><b>取值:</b>
  28296. * <li>"horizontal":表示水平布局。</li>
  28297. * <li>"vertical":表示垂直布局。</li>
  28298. * </p>
  28299. */
  28300. direction:string;
  28301. /**
  28302. * X方向文字间隙
  28303. */
  28304. spaceX:number;
  28305. /**
  28306. * Y方向文字间隙
  28307. */
  28308. spaceY:number;
  28309. /**
  28310. * 水平对齐方式
  28311. */
  28312. align:string;
  28313. /**
  28314. * 渲染数值
  28315. */
  28316. protected changeValue():void;
  28317. /**
  28318. * @override
  28319. */
  28320. width:number;
  28321. /**
  28322. * @override
  28323. */
  28324. height:number;
  28325. /**
  28326. * @override
  28327. */
  28328. protected measureWidth():number;
  28329. /**
  28330. * @override
  28331. */
  28332. protected measureHeight():number;
  28333. /**
  28334. * @param destroyChild
  28335. * @override
  28336. */
  28337. destroy(destroyChild?:boolean):void;
  28338. }
  28339. }
  28340. declare module laya.ui {
  28341. /**
  28342. * <code>HBox</code> 是一个水平布局容器类。
  28343. */
  28344. class HBox extends laya.ui.LayoutBox {
  28345. /**
  28346. * 无对齐。
  28347. */
  28348. static NONE:string;
  28349. /**
  28350. * 居顶部对齐。
  28351. */
  28352. static TOP:string;
  28353. /**
  28354. * 居中对齐。
  28355. */
  28356. static MIDDLE:string;
  28357. /**
  28358. * 居底部对齐。
  28359. */
  28360. static BOTTOM:string;
  28361. /**
  28362. * @inheritDoc
  28363. * @override
  28364. */
  28365. protected sortItem(items:any[]):void;
  28366. /**
  28367. * @override
  28368. */
  28369. height:number;
  28370. /**
  28371. * @inheritDoc
  28372. * @override
  28373. */
  28374. protected changeItems():void;
  28375. }
  28376. }
  28377. declare module laya.ui {
  28378. /**
  28379. * 使用 <code>HScrollBar</code> (水平 <code>ScrollBar</code> )控件,可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。
  28380. * @example <caption>以下示例代码,创建了一个 <code>HScrollBar</code> 实例。</caption> package { import laya.ui.HScrollBar; import laya.utils.Handler; public class HScrollBar_Example { private var hScrollBar:HScrollBar; public function HScrollBar_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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));//加载资源。 } private function onLoadComplete():void { hScrollBar = new HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。 hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。 hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。 hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。 hScrollBar.changeHandler = new Handler(this, onChange);//设置 hScrollBar 的滚动变化处理器。 Laya.stage.addChild(hScrollBar);//将此 hScrollBar 对象添加到显示列表。 } private function onChange(value:Number):void { trace("滚动条的位置: value=" + value); } } }
  28381. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var hScrollBar; var res = ["resource/ui/hscroll.png", "resource/ui/hscroll$bar.png", "resource/ui/hscroll$down.png", "resource/ui/hscroll$up.png"]; Laya.loader.load(res,laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { console.log("资源加载完成!"); hScrollBar = new laya.ui.HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。 hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。 hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。 hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。 hScrollBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 hScrollBar 的滚动变化处理器。 Laya.stage.addChild(hScrollBar);//将此 hScrollBar 对象添加到显示列表。 } function onChange(value) { console.log("滚动条的位置: value=" + value); }
  28382. * @example import HScrollBar = laya.ui.HScrollBar; import Handler = laya.utils.Handler; class HScrollBar_Example { private hScrollBar: HScrollBar; constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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));//加载资源。 } private onLoadComplete(): void { this.hScrollBar = new HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。 this.hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。 this.hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。 this.hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。 this.hScrollBar.changeHandler = new Handler(this, this.onChange);//设置 hScrollBar 的滚动变化处理器。 Laya.stage.addChild(this.hScrollBar);//将此 hScrollBar 对象添加到显示列表。 } private onChange(value: number): void { console.log("滚动条的位置: value=" + value); } }
  28383. */
  28384. class HScrollBar extends laya.ui.ScrollBar {
  28385. /**
  28386. * @override
  28387. * @inheritDoc
  28388. */
  28389. protected initialize():void;
  28390. }
  28391. }
  28392. declare module laya.ui {
  28393. /**
  28394. * 使用 <code>HSlider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  28395. * <p> <code>HSlider</code> 控件采用水平方向。滑块轨道从左向右扩展,而标签位于轨道的顶部或底部。</p>
  28396. * @example <caption>以下示例代码,创建了一个 <code>HSlider</code> 实例。</caption> package { import laya.ui.HSlider; import laya.utils.Handler; public class HSlider_Example { private var hSlider:HSlider; public function HSlider_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/hslider.png", "resource/ui/hslider$bar.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { hSlider = new HSlider();//创建一个 HSlider 类的实例对象 hSlider 。 hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。 hSlider.min = 0;//设置 hSlider 最低位置值。 hSlider.max = 10;//设置 hSlider 最高位置值。 hSlider.value = 2;//设置 hSlider 当前位置值。 hSlider.tick = 1;//设置 hSlider 刻度值。 hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。 hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。 hSlider.changeHandler = new Handler(this, onChange);//设置 hSlider 位置变化处理器。 Laya.stage.addChild(hSlider);//把 hSlider 添加到显示列表。 } private function onChange(value:Number):void { trace("滑块的位置: value=" + value); } } }
  28397. * @example Laya.init(640, 800, "canvas");//设置游戏画布宽高、渲染模式 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var hSlider; var res = ["resource/ui/hslider.png", "resource/ui/hslider$bar.png"]; Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete)); function onLoadComplete() { console.log("资源加载完成!"); hSlider = new laya.ui.HSlider();//创建一个 HSlider 类的实例对象 hSlider 。 hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。 hSlider.min = 0;//设置 hSlider 最低位置值。 hSlider.max = 10;//设置 hSlider 最高位置值。 hSlider.value = 2;//设置 hSlider 当前位置值。 hSlider.tick = 1;//设置 hSlider 刻度值。 hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。 hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。 hSlider.changeHandler = new laya.utils.Handler(this, onChange);//设置 hSlider 位置变化处理器。 Laya.stage.addChild(hSlider);//把 hSlider 添加到显示列表。 } function onChange(value) { console.log("滑块的位置: value=" + value); }
  28398. * @example import Handler = laya.utils.Handler; import HSlider = laya.ui.HSlider; class HSlider_Example { private hSlider: HSlider; constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/hslider.png", "resource/ui/hslider$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { this.hSlider = new HSlider();//创建一个 HSlider 类的实例对象 hSlider 。 this.hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。 this.hSlider.min = 0;//设置 hSlider 最低位置值。 this.hSlider.max = 10;//设置 hSlider 最高位置值。 this.hSlider.value = 2;//设置 hSlider 当前位置值。 this.hSlider.tick = 1;//设置 hSlider 刻度值。 this.hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。 this.hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。 this.hSlider.changeHandler = new Handler(this, this.onChange);//设置 hSlider 位置变化处理器。 Laya.stage.addChild(this.hSlider);//把 hSlider 添加到显示列表。 } private onChange(value: number): void { console.log("滑块的位置: value=" + value); } }
  28399. * @see laya.ui.Slider
  28400. */
  28401. class HSlider extends laya.ui.Slider {
  28402. /**
  28403. * 创建一个 <code>HSlider</code> 类实例。
  28404. * @param skin 皮肤。
  28405. */
  28406. constructor(skin?:string);
  28407. }
  28408. }
  28409. declare module laya.ui {
  28410. /**
  28411. * 容器接口,实现了编辑器容器类型。
  28412. */
  28413. interface IBox{
  28414. }
  28415. }
  28416. declare module laya.ui {
  28417. /**
  28418. * Item接口。
  28419. */
  28420. interface IItem{
  28421. /**
  28422. * 初始化列表项。
  28423. */
  28424. initItems():void;
  28425. }
  28426. }
  28427. declare module laya.ui {
  28428. /**
  28429. * 资源加载完成后调度。
  28430. * @eventType Event.LOADED
  28431. */
  28432. /**
  28433. * <code>Image</code> 类是用于表示位图图像或绘制图形的显示对象。
  28434. * Image和Clip组件是唯一支持异步加载的两个组件,比如img.skin = "abc/xxx.png",其他UI组件均不支持异步加载。
  28435. * @example <caption>以下示例代码,创建了一个新的 <code>Image</code> 实例,设置了它的皮肤、位置信息,并添加到舞台上。</caption> package { import laya.ui.Image; public class Image_Example { public function Image_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } private function onInit():void { var bg:Image = new Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。 bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。 bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。 bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。 bg.width = 150;//设置 bg 对象的宽度。 bg.height = 250;//设置 bg 对象的高度。 Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。 var image:Image = new Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。 image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。 image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。 Laya.stage.addChild(image);//将此 image 对象添加到显示列表。 } } }
  28436. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 onInit(); function onInit() { var bg = new laya.ui.Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。 bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。 bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。 bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。 bg.width = 150;//设置 bg 对象的宽度。 bg.height = 250;//设置 bg 对象的高度。 Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。 var image = new laya.ui.Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。 image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。 image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。 Laya.stage.addChild(image);//将此 image 对象添加到显示列表。 }
  28437. * @example class Image_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.onInit(); } private onInit(): void { var bg: laya.ui.Image = new laya.ui.Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。 bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。 bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。 bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。 bg.width = 150;//设置 bg 对象的宽度。 bg.height = 250;//设置 bg 对象的高度。 Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。 var image: laya.ui.Image = new laya.ui.Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。 image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。 image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。 Laya.stage.addChild(image);//将此 image 对象添加到显示列表。 } }
  28438. * @see laya.ui.AutoBitmap
  28439. */
  28440. class Image extends laya.ui.UIComponent {
  28441. /**
  28442. * @private
  28443. */
  28444. protected _skin:string;
  28445. /**
  28446. * @private
  28447. */
  28448. protected _group:string;
  28449. /**
  28450. * 创建一个 <code>Image</code> 实例。
  28451. * @param skin 皮肤资源地址。
  28452. */
  28453. constructor(skin?:string);
  28454. /**
  28455. * @inheritDoc
  28456. * @override
  28457. */
  28458. destroy(destroyChild?:boolean):void;
  28459. /**
  28460. * 销毁对象并释放加载的皮肤资源。
  28461. */
  28462. dispose():void;
  28463. /**
  28464. * @inheritDoc
  28465. * @override
  28466. */
  28467. protected createChildren():void;
  28468. /**
  28469. * <p>对象的皮肤地址,以字符串表示。</p>
  28470. * <p>如果资源未加载,则先加载资源,加载完成后应用于此对象。</p>
  28471. * <b>注意:</b>资源加载完成后,会自动缓存至资源库中。
  28472. */
  28473. skin:string;
  28474. /**
  28475. * @copy laya.ui.AutoBitmap#source
  28476. */
  28477. source:laya.resource.Texture;
  28478. /**
  28479. * 资源分组。
  28480. */
  28481. group:string;
  28482. /**
  28483. * @private 设置皮肤资源。
  28484. */
  28485. protected setSource(url:string,img?:any):void;
  28486. /**
  28487. * @inheritDoc
  28488. * @override
  28489. */
  28490. protected measureWidth():number;
  28491. /**
  28492. * @inheritDoc
  28493. * @override
  28494. */
  28495. protected measureHeight():number;
  28496. /**
  28497. * @inheritDoc
  28498. * @override
  28499. */
  28500. width:number;
  28501. /**
  28502. * @inheritDoc
  28503. * @override
  28504. */
  28505. height:number;
  28506. /**
  28507. * <p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>
  28508. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  28509. * <ul><li>例如:"4,4,4,4,1"。</li></ul></p>
  28510. * @see laya.ui.AutoBitmap#sizeGrid
  28511. */
  28512. sizeGrid:string;
  28513. /**
  28514. * @inheritDoc
  28515. * @override
  28516. */
  28517. dataSource:any;
  28518. }
  28519. }
  28520. declare module laya.ui {
  28521. /**
  28522. * <code>IRender</code> 接口,实现设置项的渲染类型。
  28523. */
  28524. interface IRender{
  28525. /**
  28526. * 渲染项。
  28527. */
  28528. itemRender:any;
  28529. }
  28530. }
  28531. declare module laya.ui {
  28532. /**
  28533. * <code>ISelect</code> 接口,实现对象的 <code>selected</code> 属性和 <code>clickHandler</code> 选择回调函数处理器。
  28534. */
  28535. interface ISelect{
  28536. /**
  28537. * 一个布尔值,表示是否被选择。
  28538. */
  28539. selected:boolean;
  28540. /**
  28541. * 对象的点击事件回掉函数处理器。
  28542. */
  28543. clickHandler:laya.utils.Handler;
  28544. }
  28545. }
  28546. declare module laya.ui {
  28547. /**
  28548. * 文本内容发生改变后调度。
  28549. * @eventType laya.events.Event
  28550. */
  28551. /**
  28552. * <p> <code>Label</code> 类用于创建显示对象以显示文本。</p>
  28553. * @example <caption>以下示例代码,创建了一个 <code>Label</code> 实例。</caption> package { import laya.ui.Label; public class Label_Example { public function Label_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } private function onInit():void { var label:Label = new Label();//创建一个 Label 类的实例对象 label 。 label.font = "Arial";//设置 label 的字体。 label.bold = true;//设置 label 显示为粗体。 label.leading = 4;//设置 label 的行间距。 label.wordWrap = true;//设置 label 自动换行。 label.padding = "10,10,10,10";//设置 label 的边距。 label.color = "#ff00ff";//设置 label 的颜色。 label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。 label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。 label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。 label.width = 300;//设置 label 的宽度。 label.height = 200;//设置 label 的高度。 Laya.stage.addChild(label);//将 label 添加到显示列表。 var passwordLabel:Label = new Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。 passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。 passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.width = 300;//设置 passwordLabel 的宽度。 passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。 passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。 passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。 Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。 } } }
  28554. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 onInit(); function onInit(){ var label = new laya.ui.Label();//创建一个 Label 类的实例对象 label 。 label.font = "Arial";//设置 label 的字体。 label.bold = true;//设置 label 显示为粗体。 label.leading = 4;//设置 label 的行间距。 label.wordWrap = true;//设置 label 自动换行。 label.padding = "10,10,10,10";//设置 label 的边距。 label.color = "#ff00ff";//设置 label 的颜色。 label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。 label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。 label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。 label.width = 300;//设置 label 的宽度。 label.height = 200;//设置 label 的高度。 Laya.stage.addChild(label);//将 label 添加到显示列表。 var passwordLabel = new laya.ui.Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。 passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。 passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.width = 300;//设置 passwordLabel 的宽度。 passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。 passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。 passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。 Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。 }
  28555. * @example import Label = laya.ui.Label; class Label_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.onInit(); } private onInit(): void { var label: Label = new Label();//创建一个 Label 类的实例对象 label 。 label.font = "Arial";//设置 label 的字体。 label.bold = true;//设置 label 显示为粗体。 label.leading = 4;//设置 label 的行间距。 label.wordWrap = true;//设置 label 自动换行。 label.padding = "10,10,10,10";//设置 label 的边距。 label.color = "#ff00ff";//设置 label 的颜色。 label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。 label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。 label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。 label.width = 300;//设置 label 的宽度。 label.height = 200;//设置 label 的高度。 Laya.stage.addChild(label);//将 label 添加到显示列表。 var passwordLabel: Label = new Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。 passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。 passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.width = 300;//设置 passwordLabel 的宽度。 passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。 passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。 passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。 Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。 } }
  28556. * @see laya.display.Text
  28557. */
  28558. class Label extends laya.ui.UIComponent {
  28559. /**
  28560. * @private 文本 <code>Text</code> 实例。
  28561. */
  28562. protected _tf:laya.display.Text;
  28563. /**
  28564. * 创建一个新的 <code>Label</code> 实例。
  28565. * @param text 文本内容字符串。
  28566. */
  28567. constructor(text?:string);
  28568. /**
  28569. * @inheritDoc
  28570. * @override
  28571. */
  28572. destroy(destroyChild?:boolean):void;
  28573. /**
  28574. * @override
  28575. * @inheritDoc
  28576. */
  28577. protected createChildren():void;
  28578. /**
  28579. * 当前文本内容字符串。
  28580. * @see laya.display.Text.text
  28581. */
  28582. text:string;
  28583. /**
  28584. * @copy laya.display.Text#changeText()
  28585. */
  28586. changeText(text:string):void;
  28587. /**
  28588. * @copy laya.display.Text#wordWrap
  28589. */
  28590. /**
  28591. * @copy laya.display.Text#wordWrap
  28592. */
  28593. wordWrap:boolean;
  28594. /**
  28595. * @copy laya.display.Text#color
  28596. */
  28597. color:string;
  28598. /**
  28599. * @copy laya.display.Text#font
  28600. */
  28601. font:string;
  28602. /**
  28603. * @copy laya.display.Text#align
  28604. */
  28605. align:string;
  28606. /**
  28607. * @copy laya.display.Text#valign
  28608. */
  28609. valign:string;
  28610. /**
  28611. * @copy laya.display.Text#bold
  28612. */
  28613. bold:boolean;
  28614. /**
  28615. * @copy laya.display.Text#italic
  28616. */
  28617. italic:boolean;
  28618. /**
  28619. * @copy laya.display.Text#leading
  28620. */
  28621. leading:number;
  28622. /**
  28623. * @copy laya.display.Text#fontSize
  28624. */
  28625. fontSize:number;
  28626. /**
  28627. * <p>边距信息</p>
  28628. * <p>"上边距,右边距,下边距 , 左边距(边距以像素为单位)"</p>
  28629. * @see laya.display.Text.padding
  28630. */
  28631. padding:string;
  28632. /**
  28633. * @copy laya.display.Text#bgColor
  28634. */
  28635. bgColor:string;
  28636. /**
  28637. * @copy laya.display.Text#borderColor
  28638. */
  28639. borderColor:string;
  28640. /**
  28641. * @copy laya.display.Text#stroke
  28642. */
  28643. stroke:number;
  28644. /**
  28645. * @copy laya.display.Text#strokeColor
  28646. */
  28647. strokeColor:string;
  28648. /**
  28649. * 文本控件实体 <code>Text</code> 实例。
  28650. */
  28651. readonly textField:laya.display.Text;
  28652. /**
  28653. * @inheritDoc
  28654. * @override
  28655. */
  28656. protected measureWidth():number;
  28657. /**
  28658. * @inheritDoc
  28659. * @override
  28660. */
  28661. protected measureHeight():number;
  28662. /**
  28663. * @inheritDoc
  28664. * @override
  28665. */
  28666. /**
  28667. * @inheritDoc
  28668. * @override
  28669. */
  28670. width:number;
  28671. /**
  28672. * @inheritDoc
  28673. * @override
  28674. */
  28675. /**
  28676. * @inheritDoc
  28677. * @override
  28678. */
  28679. height:number;
  28680. /**
  28681. * @inheritDoc
  28682. * @override
  28683. */
  28684. dataSource:any;
  28685. /**
  28686. * @copy laya.display.Text#overflow
  28687. */
  28688. /**
  28689. * @copy laya.display.Text#overflow
  28690. */
  28691. overflow:string;
  28692. /**
  28693. * @copy laya.display.Text#underline
  28694. */
  28695. /**
  28696. * @copy laya.display.Text#underline
  28697. */
  28698. underline:boolean;
  28699. /**
  28700. * @copy laya.display.Text#underlineColor
  28701. */
  28702. /**
  28703. * @copy laya.display.Text#underlineColor
  28704. */
  28705. underlineColor:string;
  28706. }
  28707. }
  28708. declare module laya.ui {
  28709. /**
  28710. * <code>LayoutBox</code> 是一个布局容器类。
  28711. */
  28712. class LayoutBox extends laya.ui.Box {
  28713. /**
  28714. * @private
  28715. */
  28716. protected _space:number;
  28717. /**
  28718. * @private
  28719. */
  28720. protected _align:string;
  28721. /**
  28722. * @private
  28723. */
  28724. protected _itemChanged:boolean;
  28725. /**
  28726. * @inheritDoc
  28727. * @override
  28728. */
  28729. addChild(child:laya.display.Node):laya.display.Node;
  28730. private onResize:any;
  28731. /**
  28732. * @inheritDoc
  28733. * @override
  28734. */
  28735. addChildAt(child:laya.display.Node,index:number):laya.display.Node;
  28736. /**
  28737. * @inheritDoc
  28738. * @override
  28739. */
  28740. removeChildAt(index:number):laya.display.Node;
  28741. /**
  28742. * 刷新。
  28743. */
  28744. refresh():void;
  28745. /**
  28746. * 改变子对象的布局。
  28747. */
  28748. protected changeItems():void;
  28749. /**
  28750. * 子对象的间隔。
  28751. */
  28752. space:number;
  28753. /**
  28754. * 子对象对齐方式。
  28755. */
  28756. align:string;
  28757. /**
  28758. * 排序项目列表。可通过重写改变默认排序规则。
  28759. * @param items 项目列表。
  28760. */
  28761. protected sortItem(items:any[]):void;
  28762. protected _setItemChanged():void;
  28763. }
  28764. }
  28765. declare module laya.ui {
  28766. /**
  28767. * 当对象的 <code>selectedIndex</code> 属性发生变化时调度。
  28768. * @eventType laya.events.Event
  28769. */
  28770. /**
  28771. * 渲染列表的单元项对象时调度。
  28772. * @eventType Event.RENDER
  28773. */
  28774. /**
  28775. * <code>List</code> 控件可显示项目列表。默认为垂直方向列表。可通过UI编辑器自定义列表。
  28776. * @example <caption>以下示例代码,创建了一个 <code>List</code> 实例。</caption> package { import laya.ui.List; import laya.utils.Handler; public class List_Example { public function List_Example() { Laya.init(640, 800, "false");//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private function onLoadComplete():void { var arr:Array = [];//创建一个数组,用于存贮列表的数据信息。 for (var i:int = 0; i &lt; 20; i++) { arr.push({label: "item" + i}); } var list:List = new List();//创建一个 List 类的实例对象 list 。 list.itemRender = Item;//设置 list 的单元格渲染器。 list.repeatX = 1;//设置 list 的水平方向单元格数量。 list.repeatY = 10;//设置 list 的垂直方向单元格数量。 list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。 list.array = arr;//设置 list 的列表数据源。 list.pos(100, 100);//设置 list 的位置。 list.selectEnable = true;//设置 list 可选。 list.selectHandler = new Handler(this, onSelect);//设置 list 改变选择项执行的处理器。 Laya.stage.addChild(list);//将 list 添加到显示列表。 } private function onSelect(index:int):void { trace("当前选择的项目索引: index= ", index); } } } import laya.ui.Box; import laya.ui.Label; class Item extends Box { public function Item() { graphics.drawRect(0, 0, 100, 20,null, "#ff0000"); var label:Label = new Label(); label.text = "100000"; label.name = "label";//设置 label 的name属性值。 label.size(100, 20); addChild(label); } }
  28777. * @example (function (_super){ function Item(){ Item.__super.call(this);//初始化父类 this.graphics.drawRect(0, 0, 100, 20, "#ff0000"); var label = new laya.ui.Label();//创建一个 Label 类的实例对象 label 。 label.text = "100000";//设置 label 的文本内容。 label.name = "label";//设置 label 的name属性值。 label.size(100, 20);//设置 label 的宽度、高度。 this.addChild(label);//将 label 添加到显示列表。 }; Laya.class(Item,"mypackage.listExample.Item",_super);//注册类 Item 。 })(laya.ui.Box); Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 var res = ["resource/ui/vscroll.png", "resource/ui/vscroll$bar.png", "resource/ui/vscroll$down.png", "resource/ui/vscroll$up.png"]; Laya.loader.load(res, new laya.utils.Handler(this, onLoadComplete));//加载资源。 function onLoadComplete() { var arr = [];//创建一个数组,用于存贮列表的数据信息。 for (var i = 0; i &lt; 20; i++) { arr.push({label: "item" + i}); } var list = new laya.ui.List();//创建一个 List 类的实例对象 list 。 list.itemRender = mypackage.listExample.Item;//设置 list 的单元格渲染器。 list.repeatX = 1;//设置 list 的水平方向单元格数量。 list.repeatY = 10;//设置 list 的垂直方向单元格数量。 list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。 list.array = arr;//设置 list 的列表数据源。 list.pos(100, 100);//设置 list 的位置。 list.selectEnable = true;//设置 list 可选。 list.selectHandler = new laya.utils.Handler(this, onSelect);//设置 list 改变选择项执行的处理器。 Laya.stage.addChild(list);//将 list 添加到显示列表。 } function onSelect(index) { console.log("当前选择的项目索引: index= ", index); }
  28778. * @example import List = laya.ui.List; import Handler = laya.utils.Handler; public class List_Example { public List_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private onLoadComplete(): void { var arr= [];//创建一个数组,用于存贮列表的数据信息。 for (var i: number = 0; i &lt; 20; i++) { arr.push({ label: "item" + i }); } var list: List = new List();//创建一个 List 类的实例对象 list 。 list.itemRender = Item;//设置 list 的单元格渲染器。 list.repeatX = 1;//设置 list 的水平方向单元格数量。 list.repeatY = 10;//设置 list 的垂直方向单元格数量。 list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。 list.array = arr;//设置 list 的列表数据源。 list.pos(100, 100);//设置 list 的位置。 list.selectEnable = true;//设置 list 可选。 list.selectHandler = new Handler(this, this.onSelect);//设置 list 改变选择项执行的处理器。 Laya.stage.addChild(list);//将 list 添加到显示列表。 } private onSelect(index: number): void { console.log("当前选择的项目索引: index= ", index); } } import Box = laya.ui.Box; import Label = laya.ui.Label; class Item extends Box { constructor() { this.graphics.drawRect(0, 0, 100, 20, null, "#ff0000"); var label: Label = new Label(); label.text = "100000"; label.name = "label";//设置 label 的name属性值。 label.size(100, 20); this.addChild(label); } }
  28779. */
  28780. class List extends laya.ui.Box implements laya.ui.IRender,laya.ui.IItem {
  28781. /**
  28782. * 改变 <code>List</code> 的选择项时执行的处理器,(默认返回参数: 项索引(index:int))。
  28783. */
  28784. selectHandler:laya.utils.Handler;
  28785. /**
  28786. * 单元格渲染处理器(默认返回参数cell:Box,index:int)。
  28787. */
  28788. renderHandler:laya.utils.Handler;
  28789. /**
  28790. * 单元格鼠标事件处理器(默认返回参数e:Event,index:int)。
  28791. */
  28792. mouseHandler:laya.utils.Handler;
  28793. /**
  28794. * 指定是否可以选择,若值为true则可以选择,否则不可以选择。 @default false
  28795. */
  28796. selectEnable:boolean;
  28797. /**
  28798. * 最大分页数。
  28799. */
  28800. totalPage:number;
  28801. /**
  28802. * @private
  28803. */
  28804. protected _content:laya.ui.Box;
  28805. /**
  28806. * @private
  28807. */
  28808. protected _scrollBar:laya.ui.ScrollBar;
  28809. /**
  28810. * @private
  28811. */
  28812. protected _itemRender:any;
  28813. /**
  28814. * @private
  28815. */
  28816. protected _repeatX:number;
  28817. /**
  28818. * @private
  28819. */
  28820. protected _repeatY:number;
  28821. /**
  28822. * @private
  28823. */
  28824. protected _repeatX2:number;
  28825. /**
  28826. * @private
  28827. */
  28828. protected _repeatY2:number;
  28829. /**
  28830. * @private
  28831. */
  28832. protected _spaceX:number;
  28833. /**
  28834. * @private
  28835. */
  28836. protected _spaceY:number;
  28837. /**
  28838. * @private
  28839. */
  28840. protected _cells:laya.ui.Box[];
  28841. /**
  28842. * @private
  28843. */
  28844. protected _array:any[];
  28845. /**
  28846. * @private
  28847. */
  28848. protected _startIndex:number;
  28849. /**
  28850. * @private
  28851. */
  28852. protected _selectedIndex:number;
  28853. /**
  28854. * @private
  28855. */
  28856. protected _page:number;
  28857. /**
  28858. * @private
  28859. */
  28860. protected _isVertical:boolean;
  28861. /**
  28862. * @private
  28863. */
  28864. protected _cellSize:number;
  28865. /**
  28866. * @private
  28867. */
  28868. protected _cellOffset:number;
  28869. /**
  28870. * @private
  28871. */
  28872. protected _isMoved:boolean;
  28873. /**
  28874. * 是否缓存内容,如果数据源较少,并且list内无动画,设置此属性为true能大大提高性能
  28875. */
  28876. cacheContent:boolean;
  28877. /**
  28878. * @private
  28879. */
  28880. protected _createdLine:number;
  28881. /**
  28882. * @private
  28883. */
  28884. protected _cellChanged:boolean;
  28885. /**
  28886. * @private
  28887. */
  28888. protected _offset:laya.maths.Point;
  28889. /**
  28890. * @private
  28891. */
  28892. protected _usedCache:string;
  28893. /**
  28894. * @private
  28895. */
  28896. protected _elasticEnabled:boolean;
  28897. /**
  28898. * @inheritDoc
  28899. * @override
  28900. */
  28901. destroy(destroyChild?:boolean):void;
  28902. /**
  28903. * @inheritDoc
  28904. * @override
  28905. */
  28906. protected createChildren():void;
  28907. /**
  28908. * @inheritDoc
  28909. * @override
  28910. */
  28911. cacheAs:string;
  28912. private onScrollStart:any;
  28913. private onScrollEnd:any;
  28914. /**
  28915. * 获取对 <code>List</code> 组件所包含的内容容器 <code>Box</code> 组件的引用。
  28916. */
  28917. readonly content:laya.ui.Box;
  28918. /**
  28919. * 垂直方向滚动条皮肤。
  28920. */
  28921. vScrollBarSkin:string;
  28922. private _removePreScrollBar:any;
  28923. /**
  28924. * 水平方向滚动条皮肤。
  28925. */
  28926. hScrollBarSkin:string;
  28927. /**
  28928. * 获取对 <code>List</code> 组件所包含的滚动条 <code>ScrollBar</code> 组件的引用。
  28929. */
  28930. scrollBar:laya.ui.ScrollBar;
  28931. /**
  28932. * 单元格渲染器。
  28933. * <p><b>取值:</b>
  28934. * <ol>
  28935. * <li>单元格类对象。</li>
  28936. * <li> UI 的 JSON 描述。</li>
  28937. * </ol></p>
  28938. * @implements
  28939. */
  28940. itemRender:any;
  28941. /**
  28942. * @inheritDoc
  28943. * @override
  28944. */
  28945. width:number;
  28946. /**
  28947. * @inheritDoc
  28948. * @override
  28949. */
  28950. height:number;
  28951. /**
  28952. * 水平方向显示的单元格数量。
  28953. */
  28954. repeatX:number;
  28955. /**
  28956. * 垂直方向显示的单元格数量。
  28957. */
  28958. repeatY:number;
  28959. /**
  28960. * 水平方向显示的单元格之间的间距(以像素为单位)。
  28961. */
  28962. spaceX:number;
  28963. /**
  28964. * 垂直方向显示的单元格之间的间距(以像素为单位)。
  28965. */
  28966. spaceY:number;
  28967. /**
  28968. * @private 更改单元格的信息。 在此销毁、创建单元格,并设置单元格的位置等属性。相当于此列表内容发送改变时调用此函数。
  28969. */
  28970. protected changeCells():void;
  28971. private _getOneCell:any;
  28972. private _createItems:any;
  28973. protected createItem():laya.ui.Box;
  28974. /**
  28975. * @private 添加单元格。
  28976. * @param cell 需要添加的单元格对象。
  28977. */
  28978. protected addCell(cell:laya.ui.Box):void;
  28979. /**
  28980. * 初始化单元格信息。
  28981. */
  28982. initItems():void;
  28983. /**
  28984. * 设置可视区域大小。
  28985. * <p>以(0,0,width参数,height参数)组成的矩形区域为可视区域。</p>
  28986. * @param width 可视区域宽度。
  28987. * @param height 可视区域高度。
  28988. */
  28989. setContentSize(width:number,height:number):void;
  28990. /**
  28991. * @private 单元格的鼠标事件侦听处理函数。
  28992. */
  28993. protected onCellMouse(e:laya.events.Event):void;
  28994. /**
  28995. * @private 改变单元格的可视状态。
  28996. * @param cell 单元格对象。
  28997. * @param visable 是否显示。
  28998. * @param index 单元格的属性 <code>index</code> 值。
  28999. */
  29000. protected changeCellState(cell:laya.ui.Box,visible:boolean,index:number):void;
  29001. /**
  29002. * @inheritDoc
  29003. * @override
  29004. */
  29005. protected _sizeChanged():void;
  29006. /**
  29007. * @private 滚动条的 <code>Event.CHANGE</code> 事件侦听处理函数。
  29008. */
  29009. protected onScrollBarChange(e?:laya.events.Event):void;
  29010. private posCell:any;
  29011. /**
  29012. * 表示当前选择的项索引。selectedIndex值更改会引起list重新渲染
  29013. */
  29014. selectedIndex:number;
  29015. /**
  29016. * @private 改变单元格的选择状态。
  29017. */
  29018. protected changeSelectStatus():void;
  29019. /**
  29020. * 当前选中的单元格数据源。
  29021. */
  29022. selectedItem:any;
  29023. /**
  29024. * 获取或设置当前选择的单元格对象。
  29025. */
  29026. selection:laya.ui.Box;
  29027. /**
  29028. * 当前显示的单元格列表的开始索引。
  29029. */
  29030. startIndex:number;
  29031. /**
  29032. * @private 渲染单元格列表。
  29033. */
  29034. protected renderItems(from?:number,to?:number):void;
  29035. /**
  29036. * 渲染一个单元格。
  29037. * @param cell 需要渲染的单元格对象。
  29038. * @param index 单元格索引。
  29039. */
  29040. protected renderItem(cell:laya.ui.Box,index:number):void;
  29041. private _bindData:any;
  29042. /**
  29043. * 列表数据源。
  29044. */
  29045. array:any[];
  29046. private _preLen:any;
  29047. /**
  29048. * 更新数据源,不刷新list,只增加滚动长度
  29049. * @param array 数据源
  29050. */
  29051. updateArray(array:any[]):void;
  29052. /**
  29053. * 列表的当前页码。
  29054. */
  29055. page:number;
  29056. /**
  29057. * 列表的数据总个数。
  29058. */
  29059. readonly length:number;
  29060. /**
  29061. * @inheritDoc
  29062. * @override
  29063. */
  29064. dataSource:any;
  29065. /**
  29066. * 单元格集合。
  29067. */
  29068. readonly cells:laya.ui.Box[];
  29069. /**
  29070. * 是否开启橡皮筋效果
  29071. */
  29072. elasticEnabled:boolean;
  29073. /**
  29074. * 刷新列表数据源。
  29075. */
  29076. refresh():void;
  29077. /**
  29078. * 获取单元格数据源。
  29079. * @param index 单元格索引。
  29080. */
  29081. getItem(index:number):any;
  29082. /**
  29083. * 修改单元格数据源。
  29084. * @param index 单元格索引。
  29085. * @param source 单元格数据源。
  29086. */
  29087. changeItem(index:number,source:any):void;
  29088. /**
  29089. * 设置单元格数据源。
  29090. * @param index 单元格索引。
  29091. * @param source 单元格数据源。
  29092. */
  29093. setItem(index:number,source:any):void;
  29094. /**
  29095. * 添加单元格数据源。
  29096. * @param souce 数据源。
  29097. */
  29098. addItem(souce:any):void;
  29099. /**
  29100. * 添加单元格数据源到对应的数据索引处。
  29101. * @param souce 单元格数据源。
  29102. * @param index 索引。
  29103. */
  29104. addItemAt(souce:any,index:number):void;
  29105. /**
  29106. * 通过数据源索引删除单元格数据源。
  29107. * @param index 需要删除的数据源索引值。
  29108. */
  29109. deleteItem(index:number):void;
  29110. /**
  29111. * 通过可视单元格索引,获取单元格。
  29112. * @param index 可视单元格索引。
  29113. * @return 单元格对象。
  29114. */
  29115. getCell(index:number):laya.ui.Box;
  29116. /**
  29117. * <p>滚动列表,以设定的数据索引对应的单元格为当前可视列表的第一项。</p>
  29118. * @param index 单元格在数据列表中的索引。
  29119. */
  29120. scrollTo(index:number):void;
  29121. /**
  29122. * <p>缓动滚动列表,以设定的数据索引对应的单元格为当前可视列表的第一项。</p>
  29123. * @param index 单元格在数据列表中的索引。
  29124. * @param time 缓动时间。
  29125. * @param complete 缓动结束回掉
  29126. */
  29127. tweenTo(index:number,time?:number,complete?:laya.utils.Handler):void;
  29128. /**
  29129. * @private
  29130. */
  29131. protected _setCellChanged():void;
  29132. /**
  29133. * @override
  29134. */
  29135. protected commitMeasure():void;
  29136. }
  29137. }
  29138. declare module laya.ui {
  29139. /**
  29140. * <code>Panel</code> 是一个面板容器类。
  29141. */
  29142. class Panel extends laya.ui.Box {
  29143. /**
  29144. * @private
  29145. */
  29146. protected _content:laya.ui.Box;
  29147. /**
  29148. * @private
  29149. */
  29150. protected _vScrollBar:laya.ui.VScrollBar;
  29151. /**
  29152. * @private
  29153. */
  29154. protected _hScrollBar:laya.ui.HScrollBar;
  29155. /**
  29156. * @private
  29157. */
  29158. protected _scrollChanged:boolean;
  29159. /**
  29160. * @private
  29161. */
  29162. protected _usedCache:string;
  29163. /**
  29164. * @private
  29165. */
  29166. protected _elasticEnabled:boolean;
  29167. /**
  29168. * 创建一个新的 <code>Panel</code> 类实例。
  29169. * <p>在 <code>Panel</code> 构造函数中设置属性width、height的值都为100。</p>
  29170. */
  29171. constructor();
  29172. /**
  29173. * @inheritDoc
  29174. * @override
  29175. */
  29176. destroy(destroyChild?:boolean):void;
  29177. /**
  29178. * @inheritDoc
  29179. * @override
  29180. */
  29181. destroyChildren():void;
  29182. /**
  29183. * @inheritDoc
  29184. * @override
  29185. */
  29186. protected createChildren():void;
  29187. /**
  29188. * @inheritDoc
  29189. * @override
  29190. */
  29191. addChild(child:laya.display.Node):laya.display.Node;
  29192. /**
  29193. * @private 子对象的 <code>Event.RESIZE</code> 事件侦听处理函数。
  29194. */
  29195. private onResize:any;
  29196. /**
  29197. * @inheritDoc
  29198. * @override
  29199. */
  29200. addChildAt(child:laya.display.Node,index:number):laya.display.Node;
  29201. /**
  29202. * @inheritDoc
  29203. * @override
  29204. */
  29205. removeChild(child:laya.display.Node):laya.display.Node;
  29206. /**
  29207. * @inheritDoc
  29208. * @override
  29209. */
  29210. removeChildAt(index:number):laya.display.Node;
  29211. /**
  29212. * @inheritDoc
  29213. * @override
  29214. */
  29215. removeChildren(beginIndex?:number,endIndex?:number):laya.display.Node;
  29216. /**
  29217. * @inheritDoc
  29218. * @override
  29219. */
  29220. getChildAt(index:number):laya.display.Node;
  29221. /**
  29222. * @inheritDoc
  29223. * @override
  29224. */
  29225. getChildByName(name:string):laya.display.Node;
  29226. /**
  29227. * @inheritDoc
  29228. * @override
  29229. */
  29230. getChildIndex(child:laya.display.Node):number;
  29231. /**
  29232. * @inheritDoc
  29233. * @override
  29234. */
  29235. readonly numChildren:number;
  29236. /**
  29237. * @private
  29238. */
  29239. private changeScroll:any;
  29240. /**
  29241. * @inheritDoc
  29242. * @override
  29243. */
  29244. protected _sizeChanged():void;
  29245. /**
  29246. * @private 获取内容宽度(以像素为单位)。
  29247. */
  29248. readonly contentWidth:number;
  29249. /**
  29250. * @private 获取内容高度(以像素为单位)。
  29251. */
  29252. readonly contentHeight:number;
  29253. /**
  29254. * @private 设置内容的宽度、高度(以像素为单位)。
  29255. * @param width 宽度。
  29256. * @param height 高度。
  29257. */
  29258. private setContentSize:any;
  29259. /**
  29260. * @inheritDoc
  29261. * @override
  29262. */
  29263. width:number;
  29264. /**
  29265. * @inheritDoc
  29266. * @override
  29267. */
  29268. height:number;
  29269. /**
  29270. * 垂直方向滚动条皮肤。
  29271. */
  29272. vScrollBarSkin:string;
  29273. /**
  29274. * 水平方向滚动条皮肤。
  29275. */
  29276. hScrollBarSkin:string;
  29277. /**
  29278. * 垂直方向滚动条对象。
  29279. */
  29280. readonly vScrollBar:laya.ui.ScrollBar;
  29281. /**
  29282. * 水平方向滚动条对象。
  29283. */
  29284. readonly hScrollBar:laya.ui.ScrollBar;
  29285. /**
  29286. * 获取内容容器对象。
  29287. */
  29288. readonly content:laya.display.Sprite;
  29289. /**
  29290. * @private 滚动条的<code><code>Event.MOUSE_DOWN</code>事件侦听处理函数。</code>事件侦听处理函数。
  29291. * @param scrollBar 滚动条对象。
  29292. * @param e Event 对象。
  29293. */
  29294. protected onScrollBarChange(scrollBar:laya.ui.ScrollBar):void;
  29295. /**
  29296. * <p>滚动内容容器至设定的垂直、水平方向滚动条位置。</p>
  29297. * @param x 水平方向滚动条属性value值。滚动条位置数字。
  29298. * @param y 垂直方向滚动条属性value值。滚动条位置数字。
  29299. */
  29300. scrollTo(x?:number,y?:number):void;
  29301. /**
  29302. * 刷新滚动内容。
  29303. */
  29304. refresh():void;
  29305. /**
  29306. * @inheritDoc
  29307. * @override
  29308. */
  29309. cacheAs:string;
  29310. /**
  29311. * 是否开启橡皮筋效果
  29312. */
  29313. elasticEnabled:boolean;
  29314. private onScrollStart:any;
  29315. private onScrollEnd:any;
  29316. /**
  29317. * @private
  29318. */
  29319. protected _setScrollChanged():void;
  29320. }
  29321. }
  29322. declare module laya.ui {
  29323. /**
  29324. * 值发生改变后调度。
  29325. * @eventType laya.events.Event
  29326. */
  29327. /**
  29328. * <code>ProgressBar</code> 组件显示内容的加载进度。
  29329. * @example <caption>以下示例代码,创建了一个新的 <code>ProgressBar</code> 实例,设置了它的皮肤、位置、宽高、网格等信息,并添加到舞台上。</caption> package { import laya.ui.ProgressBar; import laya.utils.Handler; public class ProgressBar_Example { private var progressBar:ProgressBar; public function ProgressBar_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/progress.png", "resource/ui/progress$bar.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { progressBar = new ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。 progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。 progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。 progressBar.value = 0.3;//设置 progressBar 的进度值。 progressBar.width = 200;//设置 progressBar 的宽度。 progressBar.height = 50;//设置 progressBar 的高度。 progressBar.sizeGrid = "5,10,5,10";//设置 progressBar 的网格信息。 progressBar.changeHandler = new Handler(this, onChange);//设置 progressBar 的value值改变时执行的处理器。 Laya.stage.addChild(progressBar);//将 progressBar 添加到显示列表。 Laya.timer.once(3000, this, changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。 } private function changeValue():void { trace("改变进度条的进度值。"); progressBar.value = 0.6; } private function onChange(value:Number):void { trace("进度发生改变: value=" ,value); } } }
  29330. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var res = ["resource/ui/progress.png", "resource/ui/progress$bar.png"]; Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { progressBar = new laya.ui.ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。 progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。 progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。 progressBar.value = 0.3;//设置 progressBar 的进度值。 progressBar.width = 200;//设置 progressBar 的宽度。 progressBar.height = 50;//设置 progressBar 的高度。 progressBar.sizeGrid = "10,5,10,5";//设置 progressBar 的网格信息。 progressBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 progressBar 的value值改变时执行的处理器。 Laya.stage.addChild(progressBar);//将 progressBar 添加到显示列表。 Laya.timer.once(3000, this, changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。 } function changeValue() { console.log("改变进度条的进度值。"); progressBar.value = 0.6; } function onChange(value) { console.log("进度发生改变: value=" ,value); }
  29331. * @example import ProgressBar = laya.ui.ProgressBar; import Handler = laya.utils.Handler; class ProgressBar_Example { private progressBar: ProgressBar; public ProgressBar_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/progress.png", "resource/ui/progress$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { this.progressBar = new ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。 this.progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。 this.progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。 this.progressBar.value = 0.3;//设置 progressBar 的进度值。 this.progressBar.width = 200;//设置 progressBar 的宽度。 this.progressBar.height = 50;//设置 progressBar 的高度。 this.progressBar.sizeGrid = "5,10,5,10";//设置 progressBar 的网格信息。 this.progressBar.changeHandler = new Handler(this, this.onChange);//设置 progressBar 的value值改变时执行的处理器。 Laya.stage.addChild(this.progressBar);//将 progressBar 添加到显示列表。 Laya.timer.once(3000, this, this.changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。 } private changeValue(): void { console.log("改变进度条的进度值。"); this.progressBar.value = 0.6; } private onChange(value: number): void { console.log("进度发生改变: value=", value); } }
  29332. */
  29333. class ProgressBar extends laya.ui.UIComponent {
  29334. /**
  29335. * 当 <code>ProgressBar</code> 实例的 <code>value</code> 属性发生变化时的函数处理器。
  29336. * <p>默认返回参数<code>value</code> 属性(进度值)。</p>
  29337. */
  29338. changeHandler:laya.utils.Handler;
  29339. /**
  29340. * @private
  29341. */
  29342. protected _bg:laya.ui.Image;
  29343. /**
  29344. * @private
  29345. */
  29346. protected _bar:laya.ui.Image;
  29347. /**
  29348. * @private
  29349. */
  29350. protected _skin:string;
  29351. /**
  29352. * @private
  29353. */
  29354. protected _value:number;
  29355. /**
  29356. * 创建一个新的 <code>ProgressBar</code> 类实例。
  29357. * @param skin 皮肤地址。
  29358. */
  29359. constructor(skin?:string);
  29360. /**
  29361. * @inheritDoc
  29362. * @override
  29363. */
  29364. destroy(destroyChild?:boolean):void;
  29365. /**
  29366. * @inheritDoc
  29367. * @override
  29368. */
  29369. protected createChildren():void;
  29370. /**
  29371. * @copy laya.ui.Image#skin
  29372. */
  29373. skin:string;
  29374. protected _skinLoaded():void;
  29375. /**
  29376. * @inheritDoc
  29377. * @override
  29378. */
  29379. protected measureWidth():number;
  29380. /**
  29381. * @inheritDoc
  29382. * @override
  29383. */
  29384. protected measureHeight():number;
  29385. /**
  29386. * 当前的进度量。
  29387. * <p><b>取值:</b>介于0和1之间。</p>
  29388. */
  29389. value:number;
  29390. /**
  29391. * @private 更改进度值的显示。
  29392. */
  29393. protected changeValue():void;
  29394. /**
  29395. * 获取进度条对象。
  29396. */
  29397. readonly bar:laya.ui.Image;
  29398. /**
  29399. * 获取背景条对象。
  29400. */
  29401. readonly bg:laya.ui.Image;
  29402. /**
  29403. * <p>当前 <code>ProgressBar</code> 实例的进度条背景位图( <code>Image</code> 实例)的有效缩放网格数据。</p>
  29404. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  29405. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  29406. * @see laya.ui.AutoBitmap.sizeGrid
  29407. */
  29408. sizeGrid:string;
  29409. /**
  29410. * @inheritDoc
  29411. * @override
  29412. */
  29413. width:number;
  29414. /**
  29415. * @inheritDoc
  29416. * @override
  29417. */
  29418. height:number;
  29419. /**
  29420. * @inheritDoc
  29421. * @override
  29422. */
  29423. dataSource:any;
  29424. }
  29425. }
  29426. declare module laya.ui {
  29427. /**
  29428. * <code>Radio</code> 控件使用户可在一组互相排斥的选择中做出一种选择。
  29429. * 用户一次只能选择 <code>Radio</code> 组中的一个成员。选择未选中的组成员将取消选择该组中当前所选的 <code>Radio</code> 控件。
  29430. * @see laya.ui.RadioGroup
  29431. */
  29432. class Radio extends laya.ui.Button {
  29433. /**
  29434. * @private
  29435. */
  29436. protected _value:any;
  29437. /**
  29438. * 创建一个新的 <code>Radio</code> 类实例。
  29439. * @param skin 皮肤。
  29440. * @param label 标签。
  29441. */
  29442. constructor(skin?:string,label?:string);
  29443. /**
  29444. * @inheritDoc
  29445. * @override
  29446. */
  29447. destroy(destroyChild?:boolean):void;
  29448. /**
  29449. * @override
  29450. */
  29451. protected preinitialize():void;
  29452. /**
  29453. * @inheritDoc
  29454. * @override
  29455. */
  29456. protected initialize():void;
  29457. /**
  29458. * @private 对象的<code>Event.CLICK</code>事件侦听处理函数。
  29459. */
  29460. protected onClick(e:laya.events.Event):void;
  29461. /**
  29462. * 获取或设置 <code>Radio</code> 关联的可选用户定义值。
  29463. */
  29464. value:any;
  29465. }
  29466. }
  29467. declare module laya.ui {
  29468. /**
  29469. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  29470. * @eventType laya.events.Event
  29471. */
  29472. /**
  29473. * <code>RadioGroup</code> 控件定义一组 <code>Radio</code> 控件,这些控件相互排斥;
  29474. * 因此,用户每次只能选择一个 <code>Radio</code> 控件。
  29475. * @example <caption>以下示例代码,创建了一个 <code>RadioGroup</code> 实例。</caption> package { import laya.ui.Radio; import laya.ui.RadioGroup; import laya.utils.Handler; public class RadioGroup_Example { public function RadioGroup_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/radio.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { var radioGroup:RadioGroup = new RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。 radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。 radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。 radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。 radioGroup.space = 10;//设置 radioGroup 的项间隔距离。 radioGroup.selectHandler = new Handler(this, onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。 Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。 } private function onSelect(index:int):void { trace("当前选择的单选按钮索引: index= ", index); } } }
  29476. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load(["resource/ui/radio.png"], laya.utils.Handler.create(this, onLoadComplete)); function onLoadComplete() { var radioGroup= new laya.ui.RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。 radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。 radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。 radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。 radioGroup.space = 10;//设置 radioGroup 的项间隔距离。 radioGroup.selectHandler = new laya.utils.Handler(this, onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。 Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。 } function onSelect(index) { console.log("当前选择的单选按钮索引: index= ", index); }
  29477. * @example import Radio = laya.ui.Radio; import RadioGroup = laya.ui.RadioGroup; import Handler = laya.utils.Handler; class RadioGroup_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/radio.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { var radioGroup: RadioGroup = new RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。 radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。 radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。 radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。 radioGroup.space = 10;//设置 radioGroup 的项间隔距离。 radioGroup.selectHandler = new Handler(this, this.onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。 Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。 } private onSelect(index: number): void { console.log("当前选择的单选按钮索引: index= ", index); } }
  29478. */
  29479. class RadioGroup extends laya.ui.UIGroup {
  29480. /**
  29481. * @inheritDoc
  29482. * @override
  29483. */
  29484. protected createItem(skin:string,label:string):laya.display.Sprite;
  29485. }
  29486. }
  29487. declare module laya.ui {
  29488. /**
  29489. * 自适应缩放容器,容器设置大小后,容器大小始终保持stage大小,子内容按照原始最小宽高比缩放
  29490. */
  29491. class ScaleBox extends laya.ui.Box {
  29492. private _oldW:any;
  29493. private _oldH:any;
  29494. /**
  29495. * @override
  29496. */
  29497. onEnable():void;
  29498. /**
  29499. * @override
  29500. */
  29501. onDisable():void;
  29502. private onResize:any;
  29503. /**
  29504. * @override
  29505. */
  29506. width:number;
  29507. /**
  29508. * @override
  29509. */
  29510. height:number;
  29511. }
  29512. }
  29513. declare module laya.ui {
  29514. /**
  29515. * 滚动条滑块位置发生变化后调度。
  29516. * @eventType laya.events.Event
  29517. */
  29518. /**
  29519. * 开始滑动。
  29520. * @eventType laya.events.Event
  29521. */
  29522. /**
  29523. * 结束滑动。
  29524. * @eventType laya.events.Event
  29525. */
  29526. /**
  29527. * <code>ScrollBar</code> 组件是一个滚动条组件。
  29528. * <p>当数据太多以至于显示区域无法容纳时,最终用户可以使用 <code>ScrollBar</code> 组件控制所显示的数据部分。</p>
  29529. * <p> 滚动条由四部分组成:两个箭头按钮、一个轨道和一个滑块。 </p> *
  29530. * @see laya.ui.VScrollBar
  29531. * @see laya.ui.HScrollBar
  29532. */
  29533. class ScrollBar extends laya.ui.UIComponent {
  29534. /**
  29535. * 滚动衰减系数
  29536. */
  29537. rollRatio:number;
  29538. /**
  29539. * 滚动变化时回调,回传value参数。
  29540. */
  29541. changeHandler:laya.utils.Handler;
  29542. /**
  29543. * 是否缩放滑动条,默认值为true。
  29544. */
  29545. scaleBar:boolean;
  29546. /**
  29547. * 一个布尔值,指定是否自动隐藏滚动条(无需滚动时),默认值为false。
  29548. */
  29549. autoHide:boolean;
  29550. /**
  29551. * 橡皮筋效果极限距离,0为没有橡皮筋效果。
  29552. */
  29553. elasticDistance:number;
  29554. /**
  29555. * 橡皮筋回弹时间,单位为毫秒。
  29556. */
  29557. elasticBackTime:number;
  29558. /**
  29559. * 上按钮
  29560. */
  29561. upButton:laya.ui.Button;
  29562. /**
  29563. * 下按钮
  29564. */
  29565. downButton:laya.ui.Button;
  29566. /**
  29567. * 滑条
  29568. */
  29569. slider:laya.ui.Slider;
  29570. /**
  29571. * @private
  29572. */
  29573. protected _showButtons:boolean;
  29574. /**
  29575. * @private
  29576. */
  29577. protected _scrollSize:number;
  29578. /**
  29579. * @private
  29580. */
  29581. protected _skin:string;
  29582. /**
  29583. * @private
  29584. */
  29585. protected _thumbPercent:number;
  29586. /**
  29587. * @private
  29588. */
  29589. protected _target:laya.display.Sprite;
  29590. /**
  29591. * @private
  29592. */
  29593. protected _lastPoint:laya.maths.Point;
  29594. /**
  29595. * @private
  29596. */
  29597. protected _lastOffset:number;
  29598. /**
  29599. * @private
  29600. */
  29601. protected _checkElastic:boolean;
  29602. /**
  29603. * @private
  29604. */
  29605. protected _isElastic:boolean;
  29606. /**
  29607. * @private
  29608. */
  29609. protected _value:number;
  29610. /**
  29611. * @private
  29612. */
  29613. protected _hide:boolean;
  29614. /**
  29615. * @private
  29616. */
  29617. protected _clickOnly:boolean;
  29618. /**
  29619. * @private
  29620. */
  29621. protected _offsets:any[];
  29622. /**
  29623. * @private
  29624. */
  29625. protected _touchScrollEnable:boolean;
  29626. /**
  29627. * @private
  29628. */
  29629. protected _mouseWheelEnable:boolean;
  29630. /**
  29631. * 创建一个新的 <code>ScrollBar</code> 实例。
  29632. * @param skin 皮肤资源地址。
  29633. */
  29634. constructor(skin?:string);
  29635. /**
  29636. * @inheritDoc
  29637. * @override
  29638. */
  29639. destroy(destroyChild?:boolean):void;
  29640. /**
  29641. * @override
  29642. */
  29643. protected createChildren():void;
  29644. /**
  29645. * @override
  29646. */
  29647. protected initialize():void;
  29648. /**
  29649. * @private 滑块位置发生改变的处理函数。
  29650. */
  29651. protected onSliderChange():void;
  29652. /**
  29653. * @private 向上和向下按钮的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  29654. */
  29655. protected onButtonMouseDown(e:laya.events.Event):void;
  29656. /**
  29657. * @private
  29658. */
  29659. protected startLoop(isUp:boolean):void;
  29660. /**
  29661. * @private
  29662. */
  29663. protected slide(isUp:boolean):void;
  29664. /**
  29665. * @private 舞台的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  29666. */
  29667. protected onStageMouseUp(e:laya.events.Event):void;
  29668. /**
  29669. * @copy laya.ui.Image#skin
  29670. */
  29671. skin:string;
  29672. protected _skinLoaded():void;
  29673. /**
  29674. * @private 更改对象的皮肤及位置。
  29675. */
  29676. protected changeScrollBar():void;
  29677. /**
  29678. * @inheritDoc
  29679. * @override
  29680. */
  29681. protected _sizeChanged():void;
  29682. /**
  29683. * @private
  29684. */
  29685. private resetPositions:any;
  29686. /**
  29687. * @private
  29688. */
  29689. protected resetButtonPosition():void;
  29690. /**
  29691. * @inheritDoc
  29692. * @override
  29693. */
  29694. protected measureWidth():number;
  29695. /**
  29696. * @inheritDoc
  29697. * @override
  29698. */
  29699. protected measureHeight():number;
  29700. /**
  29701. * 设置滚动条信息。
  29702. * @param min 滚动条最小位置值。
  29703. * @param max 滚动条最大位置值。
  29704. * @param value 滚动条当前位置值。
  29705. */
  29706. setScroll(min:number,max:number,value:number):void;
  29707. /**
  29708. * 获取或设置表示最高滚动位置的数字。
  29709. */
  29710. max:number;
  29711. /**
  29712. * 获取或设置表示最低滚动位置的数字。
  29713. */
  29714. min:number;
  29715. /**
  29716. * 获取或设置表示当前滚动位置的数字。
  29717. */
  29718. value:number;
  29719. /**
  29720. * 一个布尔值,指示滚动条是否为垂直滚动。如果值为true,则为垂直滚动,否则为水平滚动。
  29721. * <p>默认值为:true。</p>
  29722. */
  29723. isVertical:boolean;
  29724. /**
  29725. * <p>当前实例的 <code>Slider</code> 实例的有效缩放网格数据。</p>
  29726. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  29727. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  29728. * @see laya.ui.AutoBitmap.sizeGrid
  29729. */
  29730. sizeGrid:string;
  29731. /**
  29732. * 获取或设置一个值,该值表示按下滚动条轨道时页面滚动的增量。
  29733. */
  29734. scrollSize:number;
  29735. /**
  29736. * @inheritDoc
  29737. * @override
  29738. */
  29739. dataSource:any;
  29740. /**
  29741. * 获取或设置一个值,该值表示滑条长度比例,值为:(0-1)。
  29742. */
  29743. thumbPercent:number;
  29744. /**
  29745. * 设置滚动对象。
  29746. * @see laya.ui.TouchScroll#target
  29747. */
  29748. target:laya.display.Sprite;
  29749. /**
  29750. * 是否隐藏滚动条,不显示滚动条,但是可以正常滚动,默认为false。
  29751. */
  29752. hide:boolean;
  29753. /**
  29754. * 一个布尔值,指定是否显示向上、向下按钮,默认值为true。
  29755. */
  29756. showButtons:boolean;
  29757. /**
  29758. * 一个布尔值,指定是否开启触摸,默认值为true。
  29759. */
  29760. touchScrollEnable:boolean;
  29761. /**
  29762. * 一个布尔值,指定是否滑轮滚动,默认值为true。
  29763. */
  29764. mouseWheelEnable:boolean;
  29765. /**
  29766. * @private
  29767. */
  29768. protected onTargetMouseWheel(e:laya.events.Event):void;
  29769. isLockedFun:Function;
  29770. /**
  29771. * @private
  29772. */
  29773. protected onTargetMouseDown(e:laya.events.Event):void;
  29774. startDragForce():void;
  29775. private cancelDragOp:any;
  29776. triggerDownDragLimit:Function;
  29777. triggerUpDragLimit:Function;
  29778. private checkTriggers:any;
  29779. readonly lastOffset:number;
  29780. startTweenMoveForce(lastOffset:number):void;
  29781. /**
  29782. * @private
  29783. */
  29784. protected loop():void;
  29785. /**
  29786. * @private
  29787. */
  29788. protected onStageMouseUp2(e:laya.events.Event):void;
  29789. /**
  29790. * @private
  29791. */
  29792. private elasticOver:any;
  29793. /**
  29794. * @private
  29795. */
  29796. protected tweenMove(maxDistance:number):void;
  29797. /**
  29798. * 停止滑动。
  29799. */
  29800. stopScroll():void;
  29801. /**
  29802. * 滚动的刻度值,滑动数值为tick的整数倍。默认值为1。
  29803. */
  29804. tick:number;
  29805. }
  29806. }
  29807. declare module laya.ui {
  29808. /**
  29809. * 移动滑块位置时调度。
  29810. * @eventType laya.events.Event
  29811. */
  29812. /**
  29813. * 移动滑块位置完成(用户鼠标抬起)后调度。
  29814. * @eventType
  29815. * @eventType laya.events.EventD
  29816. */
  29817. /**
  29818. * 使用 <code>Slider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  29819. * <p>滑块的当前值由滑块端点(对应于滑块的最小值和最大值)之间滑块的相对位置确定。</p>
  29820. * <p>滑块允许最小值和最大值之间特定间隔内的值。滑块还可以使用数据提示显示其当前值。</p>
  29821. * @see laya.ui.HSlider
  29822. * @see laya.ui.VSlider
  29823. */
  29824. class Slider extends laya.ui.UIComponent {
  29825. /**
  29826. * @private 获取对 <code>Slider</code> 组件所包含的 <code>Label</code> 组件的引用。
  29827. */
  29828. static label:laya.ui.Label;
  29829. /**
  29830. * 数据变化处理器。
  29831. * <p>默认回调参数为滑块位置属性 <code>value</code>属性值:Number 。</p>
  29832. */
  29833. changeHandler:laya.utils.Handler;
  29834. /**
  29835. * 一个布尔值,指示是否为垂直滚动。如果值为true,则为垂直方向,否则为水平方向。
  29836. * <p>默认值为:true。</p>
  29837. * @default true
  29838. */
  29839. isVertical:boolean;
  29840. /**
  29841. * 一个布尔值,指示是否显示标签。
  29842. * @default true
  29843. */
  29844. showLabel:boolean;
  29845. /**
  29846. * @private
  29847. */
  29848. protected _allowClickBack:boolean;
  29849. /**
  29850. * @private
  29851. */
  29852. protected _max:number;
  29853. /**
  29854. * @private
  29855. */
  29856. protected _min:number;
  29857. /**
  29858. * @private
  29859. */
  29860. protected _tick:number;
  29861. /**
  29862. * @private
  29863. */
  29864. protected _value:number;
  29865. /**
  29866. * @private
  29867. */
  29868. protected _skin:string;
  29869. /**
  29870. * @private
  29871. */
  29872. protected _bg:laya.ui.Image;
  29873. /**
  29874. * @private
  29875. */
  29876. protected _progress:laya.ui.Image;
  29877. /**
  29878. * @private
  29879. */
  29880. protected _bar:laya.ui.Button;
  29881. /**
  29882. * @private
  29883. */
  29884. protected _tx:number;
  29885. /**
  29886. * @private
  29887. */
  29888. protected _ty:number;
  29889. /**
  29890. * @private
  29891. */
  29892. protected _maxMove:number;
  29893. /**
  29894. * @private
  29895. */
  29896. protected _globalSacle:laya.maths.Point;
  29897. /**
  29898. * 创建一个新的 <code>Slider</code> 类示例。
  29899. * @param skin 皮肤。
  29900. */
  29901. constructor(skin?:string);
  29902. /**
  29903. * @inheritDoc
  29904. * @override
  29905. */
  29906. destroy(destroyChild?:boolean):void;
  29907. /**
  29908. * @inheritDoc
  29909. * @override
  29910. */
  29911. protected createChildren():void;
  29912. /**
  29913. * @inheritDoc
  29914. * @override
  29915. */
  29916. protected initialize():void;
  29917. /**
  29918. * @private 滑块的的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  29919. */
  29920. protected onBarMouseDown(e:laya.events.Event):void;
  29921. /**
  29922. * @private 显示标签。
  29923. */
  29924. protected showValueText():void;
  29925. /**
  29926. * @private 隐藏标签。
  29927. */
  29928. protected hideValueText():void;
  29929. /**
  29930. * @private
  29931. */
  29932. private mouseUp:any;
  29933. /**
  29934. * @private
  29935. */
  29936. private mouseMove:any;
  29937. /**
  29938. * @private
  29939. */
  29940. protected sendChangeEvent(type?:string):void;
  29941. /**
  29942. * @copy laya.ui.Image#skin
  29943. */
  29944. skin:string;
  29945. protected _skinLoaded():void;
  29946. /**
  29947. * @private 设置滑块的位置信息。
  29948. */
  29949. protected setBarPoint():void;
  29950. /**
  29951. * @inheritDoc
  29952. * @override
  29953. */
  29954. protected measureWidth():number;
  29955. /**
  29956. * @inheritDoc
  29957. * @override
  29958. */
  29959. protected measureHeight():number;
  29960. /**
  29961. * @inheritDoc
  29962. * @override
  29963. */
  29964. protected _sizeChanged():void;
  29965. /**
  29966. * <p>当前实例的背景图( <code>Image</code> )和滑块按钮( <code>Button</code> )实例的有效缩放网格数据。</p>
  29967. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  29968. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  29969. * @see laya.ui.AutoBitmap.sizeGrid
  29970. */
  29971. sizeGrid:string;
  29972. /**
  29973. * 设置滑动条的信息。
  29974. * @param min 滑块的最小值。
  29975. * @param max 滑块的最小值。
  29976. * @param value 滑块的当前值。
  29977. */
  29978. setSlider(min:number,max:number,value:number):void;
  29979. /**
  29980. * 滑动的刻度值,滑动数值为tick的整数倍。默认值为1。
  29981. */
  29982. tick:number;
  29983. /**
  29984. * @private 改变滑块的位置值。
  29985. */
  29986. changeValue():void;
  29987. /**
  29988. * 获取或设置表示最高位置的数字。 默认值为100。
  29989. */
  29990. max:number;
  29991. /**
  29992. * 获取或设置表示最低位置的数字。 默认值为0。
  29993. */
  29994. min:number;
  29995. /**
  29996. * 获取或设置表示当前滑块位置的数字。
  29997. */
  29998. value:number;
  29999. /**
  30000. * 一个布尔值,指定是否允许通过点击滑动条改变 <code>Slider</code> 的 <code>value</code> 属性值。
  30001. */
  30002. allowClickBack:boolean;
  30003. /**
  30004. * @private 滑动条的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  30005. */
  30006. protected onBgMouseDown(e:laya.events.Event):void;
  30007. /**
  30008. * @inheritDoc
  30009. * @override
  30010. */
  30011. dataSource:any;
  30012. /**
  30013. * 表示滑块按钮的引用。
  30014. */
  30015. readonly bar:laya.ui.Button;
  30016. }
  30017. }
  30018. declare module laya.ui {
  30019. /**
  30020. * <code>Styles</code> 定义了组件常用的样式属性。
  30021. */
  30022. class Styles {
  30023. /**
  30024. * 默认九宫格信息。
  30025. * @see laya.ui.AutoBitmap#sizeGrid
  30026. */
  30027. static defaultSizeGrid:any[];
  30028. /**
  30029. * 标签颜色。
  30030. */
  30031. static labelColor:string;
  30032. /**
  30033. * 标签的边距。
  30034. * <p><b>格式:</b>[上边距,右边距,下边距,左边距]。</p>
  30035. */
  30036. static labelPadding:any[];
  30037. /**
  30038. * 标签的边距。
  30039. * <p><b>格式:</b>[上边距,右边距,下边距,左边距]。</p>
  30040. */
  30041. static inputLabelPadding:any[];
  30042. /**
  30043. * 按钮皮肤的状态数,支持1,2,3三种状态值。
  30044. */
  30045. static buttonStateNum:number;
  30046. /**
  30047. * 按钮标签颜色。
  30048. * <p><b>格式:</b>[upColor,overColor,downColor,disableColor]。</p>
  30049. */
  30050. static buttonLabelColors:any[];
  30051. /**
  30052. * 下拉框项颜色。
  30053. * <p><b>格式:</b>[overBgColor,overLabelColor,outLabelColor,borderColor,bgColor]。</p>
  30054. */
  30055. static comboBoxItemColors:any[];
  30056. /**
  30057. * 滚动条的最小值。
  30058. */
  30059. static scrollBarMinNum:number;
  30060. /**
  30061. * 长按按钮,等待时间,使其可激活连续滚动。
  30062. */
  30063. static scrollBarDelayTime:number;
  30064. }
  30065. }
  30066. declare module laya.ui {
  30067. /**
  30068. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  30069. * @eventType laya.events.Event
  30070. */
  30071. /**
  30072. * <code>Tab</code> 组件用来定义选项卡按钮组。 *
  30073. * <p>属性:<code>selectedIndex</code> 的默认值为-1。</p>
  30074. * @example <caption>以下示例代码,创建了一个 <code>Tab</code> 实例。</caption> package { import laya.ui.Tab; import laya.utils.Handler; public class Tab_Example { public function Tab_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/tab.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { var tab:Tab = new Tab();//创建一个 Tab 类的实例对象 tab 。 tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。 tab.labels = "item0,item1,item2";//设置 tab 的标签集。 tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。 tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。 tab.selectHandler = new Handler(this, onSelect);//设置 tab 的选择项发生改变时执行的处理器。 Laya.stage.addChild(tab);//将 tab 添到显示列表。 } private function onSelect(index:int):void { trace("当前选择的表情页索引: index= ", index); } } }
  30075. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load(["resource/ui/tab.png"], laya.utils.Handler.create(this, onLoadComplete)); function onLoadComplete() { var tab = new laya.ui.Tab();//创建一个 Tab 类的实例对象 tab 。 tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。 tab.labels = "item0,item1,item2";//设置 tab 的标签集。 tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。 tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。 tab.selectHandler = new laya.utils.Handler(this, onSelect);//设置 tab 的选择项发生改变时执行的处理器。 Laya.stage.addChild(tab);//将 tab 添到显示列表。 } function onSelect(index) { console.log("当前选择的标签页索引: index= ", index); }
  30076. * @example import Tab = laya.ui.Tab; import Handler = laya.utils.Handler; class Tab_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/tab.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { var tab: Tab = new Tab();//创建一个 Tab 类的实例对象 tab 。 tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。 tab.labels = "item0,item1,item2";//设置 tab 的标签集。 tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。 tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。 tab.selectHandler = new Handler(this, this.onSelect);//设置 tab 的选择项发生改变时执行的处理器。 Laya.stage.addChild(tab);//将 tab 添到显示列表。 } private onSelect(index: number): void { console.log("当前选择的表情页索引: index= ", index); } }
  30077. */
  30078. class Tab extends laya.ui.UIGroup {
  30079. /**
  30080. * @private
  30081. * @inheritDoc
  30082. * @override
  30083. */
  30084. protected createItem(skin:string,label:string):laya.display.Sprite;
  30085. }
  30086. }
  30087. declare module laya.ui {
  30088. /**
  30089. * <code>TextArea</code> 类用于创建显示对象以显示和输入文本。
  30090. * @example <caption>以下示例代码,创建了一个 <code>TextArea</code> 实例。</caption> package { import laya.ui.TextArea; import laya.utils.Handler; public class TextArea_Example { public function TextArea_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/input.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { var textArea:TextArea = new TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。 textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。 textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。 textArea.color = "#008fff";//设置 textArea 的文本颜色。 textArea.font = "Arial";//设置 textArea 的字体。 textArea.bold = true;//设置 textArea 的文本显示为粗体。 textArea.fontSize = 20;//设置 textArea 的文本字体大小。 textArea.wordWrap = true;//设置 textArea 的文本自动换行。 textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。 textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。 textArea.width = 300;//设置 textArea 的宽度。 textArea.height = 200;//设置 textArea 的高度。 Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。 } } }
  30091. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load(["resource/ui/input.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { var textArea = new laya.ui.TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。 textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。 textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。 textArea.color = "#008fff";//设置 textArea 的文本颜色。 textArea.font = "Arial";//设置 textArea 的字体。 textArea.bold = true;//设置 textArea 的文本显示为粗体。 textArea.fontSize = 20;//设置 textArea 的文本字体大小。 textArea.wordWrap = true;//设置 textArea 的文本自动换行。 textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。 textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。 textArea.width = 300;//设置 textArea 的宽度。 textArea.height = 200;//设置 textArea 的高度。 Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。 }
  30092. * @example import TextArea = laya.ui.TextArea; import Handler = laya.utils.Handler; class TextArea_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/input.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { var textArea: TextArea = new TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。 textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。 textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。 textArea.color = "#008fff";//设置 textArea 的文本颜色。 textArea.font = "Arial";//设置 textArea 的字体。 textArea.bold = true;//设置 textArea 的文本显示为粗体。 textArea.fontSize = 20;//设置 textArea 的文本字体大小。 textArea.wordWrap = true;//设置 textArea 的文本自动换行。 textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。 textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。 textArea.width = 300;//设置 textArea 的宽度。 textArea.height = 200;//设置 textArea 的高度。 Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。 } }
  30093. */
  30094. class TextArea extends laya.ui.TextInput {
  30095. /**
  30096. * @private
  30097. */
  30098. protected _vScrollBar:laya.ui.VScrollBar;
  30099. /**
  30100. * @private
  30101. */
  30102. protected _hScrollBar:laya.ui.HScrollBar;
  30103. /**
  30104. * <p>创建一个新的 <code>TextArea</code> 示例。</p>
  30105. * @param text 文本内容字符串。
  30106. */
  30107. constructor(text?:string);
  30108. private _onTextChange:any;
  30109. /**
  30110. * @param destroyChild
  30111. * @override
  30112. */
  30113. destroy(destroyChild?:boolean):void;
  30114. /**
  30115. * @override
  30116. */
  30117. protected initialize():void;
  30118. /**
  30119. * @override
  30120. */
  30121. width:number;
  30122. /**
  30123. * @override
  30124. */
  30125. height:number;
  30126. /**
  30127. * 垂直滚动条皮肤
  30128. */
  30129. vScrollBarSkin:string;
  30130. /**
  30131. * 水平滚动条皮肤
  30132. */
  30133. hScrollBarSkin:string;
  30134. protected onVBarChanged(e:laya.events.Event):void;
  30135. protected onHBarChanged(e:laya.events.Event):void;
  30136. /**
  30137. * 垂直滚动条实体
  30138. */
  30139. readonly vScrollBar:laya.ui.VScrollBar;
  30140. /**
  30141. * 水平滚动条实体
  30142. */
  30143. readonly hScrollBar:laya.ui.HScrollBar;
  30144. /**
  30145. * 垂直滚动最大值
  30146. */
  30147. readonly maxScrollY:number;
  30148. /**
  30149. * 垂直滚动值
  30150. */
  30151. readonly scrollY:number;
  30152. /**
  30153. * 水平滚动最大值
  30154. */
  30155. readonly maxScrollX:number;
  30156. /**
  30157. * 水平滚动值
  30158. */
  30159. readonly scrollX:number;
  30160. private changeScroll:any;
  30161. /**
  30162. * 滚动到某个位置
  30163. */
  30164. scrollTo(y:number):void;
  30165. }
  30166. }
  30167. declare module laya.ui {
  30168. /**
  30169. * 输入文本后调度。
  30170. * @eventType Event.INPUT
  30171. */
  30172. /**
  30173. * 在输入框内敲回车键后调度。
  30174. * @eventType Event.ENTER
  30175. */
  30176. /**
  30177. * 当获得输入焦点后调度。
  30178. * @eventType Event.FOCUS
  30179. */
  30180. /**
  30181. * 当失去输入焦点后调度。
  30182. * @eventType Event.BLUR
  30183. */
  30184. /**
  30185. * <code>TextInput</code> 类用于创建显示对象以显示和输入文本。
  30186. * @example <caption>以下示例代码,创建了一个 <code>TextInput</code> 实例。</caption> package { import laya.display.Stage; import laya.ui.TextInput; import laya.utils.Handler; public class TextInput_Example { public function TextInput_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/input.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { var textInput:TextInput = new TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。 textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。 textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。 textInput.color = "#008fff";//设置 textInput 的文本颜色。 textInput.font = "Arial";//设置 textInput 的文本字体。 textInput.bold = true;//设置 textInput 的文本显示为粗体。 textInput.fontSize = 30;//设置 textInput 的字体大小。 textInput.wordWrap = true;//设置 textInput 的文本自动换行。 textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。 textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。 textInput.width = 300;//设置 textInput 的宽度。 textInput.height = 200;//设置 textInput 的高度。 Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。 } } }
  30187. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load(["resource/ui/input.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { var textInput = new laya.ui.TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。 textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。 textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。 textInput.color = "#008fff";//设置 textInput 的文本颜色。 textInput.font = "Arial";//设置 textInput 的文本字体。 textInput.bold = true;//设置 textInput 的文本显示为粗体。 textInput.fontSize = 30;//设置 textInput 的字体大小。 textInput.wordWrap = true;//设置 textInput 的文本自动换行。 textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。 textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。 textInput.width = 300;//设置 textInput 的宽度。 textInput.height = 200;//设置 textInput 的高度。 Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。 }
  30188. * @example import Stage = laya.display.Stage; import TextInput = laya.ui.TextInput; import Handler = laya.utils.Handler; class TextInput_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/input.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { var textInput: TextInput = new TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。 textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。 textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。 textInput.color = "#008fff";//设置 textInput 的文本颜色。 textInput.font = "Arial";//设置 textInput 的文本字体。 textInput.bold = true;//设置 textInput 的文本显示为粗体。 textInput.fontSize = 30;//设置 textInput 的字体大小。 textInput.wordWrap = true;//设置 textInput 的文本自动换行。 textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。 textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。 textInput.width = 300;//设置 textInput 的宽度。 textInput.height = 200;//设置 textInput 的高度。 Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。 } }
  30189. */
  30190. class TextInput extends laya.ui.Label {
  30191. /**
  30192. * @private
  30193. */
  30194. protected _bg:laya.ui.AutoBitmap;
  30195. /**
  30196. * @private
  30197. */
  30198. protected _skin:string;
  30199. /**
  30200. * 创建一个新的 <code>TextInput</code> 类实例。
  30201. * @param text 文本内容。
  30202. */
  30203. constructor(text?:string);
  30204. /**
  30205. * @inheritDoc
  30206. * @override
  30207. */
  30208. protected preinitialize():void;
  30209. /**
  30210. * @inheritDoc
  30211. * @override
  30212. */
  30213. destroy(destroyChild?:boolean):void;
  30214. /**
  30215. * @inheritDoc
  30216. * @override
  30217. */
  30218. protected createChildren():void;
  30219. /**
  30220. * @private
  30221. */
  30222. private _onFocus:any;
  30223. /**
  30224. * @private
  30225. */
  30226. private _onBlur:any;
  30227. /**
  30228. * @private
  30229. */
  30230. private _onInput:any;
  30231. /**
  30232. * @private
  30233. */
  30234. private _onEnter:any;
  30235. /**
  30236. * @inheritDoc
  30237. * @override
  30238. */
  30239. protected initialize():void;
  30240. /**
  30241. * 表示此对象包含的文本背景 <code>AutoBitmap</code> 组件实例。
  30242. */
  30243. bg:laya.ui.AutoBitmap;
  30244. /**
  30245. * @copy laya.ui.Image#skin
  30246. */
  30247. skin:string;
  30248. protected _skinLoaded():void;
  30249. /**
  30250. * <p>当前实例的背景图( <code>AutoBitmap</code> )实例的有效缩放网格数据。</p>
  30251. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  30252. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  30253. * @see laya.ui.AutoBitmap.sizeGrid
  30254. */
  30255. sizeGrid:string;
  30256. /**
  30257. * 当前文本内容字符串。
  30258. * @see laya.display.Text.text
  30259. * @override
  30260. */
  30261. text:string;
  30262. /**
  30263. * @inheritDoc
  30264. * @override
  30265. */
  30266. width:number;
  30267. /**
  30268. * @inheritDoc
  30269. * @override
  30270. */
  30271. height:number;
  30272. /**
  30273. * <p>指示当前是否是文本域。</p>
  30274. * 值为true表示当前是文本域,否则不是文本域。
  30275. */
  30276. multiline:boolean;
  30277. /**
  30278. * 设置可编辑状态。
  30279. */
  30280. editable:boolean;
  30281. /**
  30282. * 选中输入框内的文本。
  30283. */
  30284. select():void;
  30285. /**
  30286. * 限制输入的字符。
  30287. */
  30288. restrict:string;
  30289. /**
  30290. * @copy laya.display.Input#prompt
  30291. */
  30292. prompt:string;
  30293. /**
  30294. * @copy laya.display.Input#promptColor
  30295. */
  30296. promptColor:string;
  30297. /**
  30298. * @copy laya.display.Input#maxChars
  30299. */
  30300. maxChars:number;
  30301. /**
  30302. * @copy laya.display.Input#focus
  30303. */
  30304. focus:boolean;
  30305. /**
  30306. * @copy laya.display.Input#type
  30307. */
  30308. type:string;
  30309. setSelection(startIndex:number,endIndex:number):void;
  30310. }
  30311. }
  30312. declare module laya.ui {
  30313. /**
  30314. * 鼠标提示管理类
  30315. */
  30316. class TipManager extends laya.ui.UIComponent {
  30317. static offsetX:number;
  30318. static offsetY:number;
  30319. static tipTextColor:string;
  30320. static tipBackColor:string;
  30321. static tipDelay:number;
  30322. private _tipBox:any;
  30323. private _tipText:any;
  30324. private _defaultTipHandler:any;
  30325. constructor();
  30326. /**
  30327. * @private
  30328. */
  30329. private _onStageHideTip:any;
  30330. /**
  30331. * @private
  30332. */
  30333. private _onStageShowTip:any;
  30334. /**
  30335. * @private
  30336. */
  30337. private _showTip:any;
  30338. /**
  30339. * @private
  30340. */
  30341. private _onStageMouseDown:any;
  30342. /**
  30343. * @private
  30344. */
  30345. private _onStageMouseMove:any;
  30346. /**
  30347. * @private
  30348. */
  30349. private _showToStage:any;
  30350. /**
  30351. * 关闭所有鼠标提示
  30352. */
  30353. closeAll():void;
  30354. /**
  30355. * 显示显示对象类型的tip
  30356. */
  30357. showDislayTip(tip:laya.display.Sprite):void;
  30358. /**
  30359. * @private
  30360. */
  30361. private _showDefaultTip:any;
  30362. /**
  30363. * 默认鼠标提示函数
  30364. */
  30365. defaultTipHandler:Function;
  30366. }
  30367. }
  30368. declare module laya.ui {
  30369. /**
  30370. * 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  30371. * @eventType laya.events.Event
  30372. */
  30373. /**
  30374. * 节点打开关闭时触发。
  30375. * @eventType laya.events.Event
  30376. */
  30377. /**
  30378. * <code>Tree</code> 控件使用户可以查看排列为可扩展树的层次结构数据。
  30379. * @example package { import laya.ui.Tree; import laya.utils.Browser; import laya.utils.Handler; public class Tree_Example { public function Tree_Example() { Laya.init(640, 800); Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private function onLoadComplete():void { var xmlString:String;//创建一个xml字符串,用于存储树结构数据。 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;"; var domParser:* = new Browser.window.DOMParser();//创建一个DOMParser实例domParser。 var xml:* = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。 var tree:Tree = new Tree();//创建一个 Tree 类的实例对象 tree 。 tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。 tree.itemRender = Item;//设置 tree 的项渲染器。 tree.xml = xml;//设置 tree 的树结构数据。 tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。 tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。 tree.width = 200;//设置 tree 的宽度。 tree.height = 100;//设置 tree 的高度。 Laya.stage.addChild(tree);//将 tree 添加到显示列表。 } } } import laya.ui.Box; import laya.ui.Clip; import laya.ui.Label; class Item extends Box { public function Item() { this.name = "render"; this.right = 0; this.left = 0; var selectBox:Clip = new Clip("resource/ui/clip_selectBox.png", 1, 2); selectBox.name = "selectBox"; selectBox.height = 24; selectBox.x = 13; selectBox.y = 0; selectBox.left = 12; addChild(selectBox); var folder:Clip = new Clip("resource/ui/clip_tree_folder.png", 1, 3); folder.name = "folder"; folder.x = 14; folder.y = 4; addChild(folder); var label:Label = new Label("treeItem"); label.name = "label"; label.color = "#ffff00"; label.width = 150; label.height = 22; label.x = 33; label.y = 1; label.left = 33; label.right = 0; addChild(label); var arrow:Clip = new Clip("resource/ui/clip_tree_arrow.png", 1, 2); arrow.name = "arrow"; arrow.x = 0; arrow.y = 5; addChild(arrow); } }
  30380. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 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"]; Laya.loader.load(res, new laya.utils.Handler(this, onLoadComplete)); function onLoadComplete() { var xmlString;//创建一个xml字符串,用于存储树结构数据。 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;"; var domParser = new laya.utils.Browser.window.DOMParser();//创建一个DOMParser实例domParser。 var xml = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。 var tree = new laya.ui.Tree();//创建一个 Tree 类的实例对象 tree 。 tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。 tree.itemRender = mypackage.treeExample.Item;//设置 tree 的项渲染器。 tree.xml = xml;//设置 tree 的树结构数据。 tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。 tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。 tree.width = 200;//设置 tree 的宽度。 tree.height = 100;//设置 tree 的高度。 Laya.stage.addChild(tree);//将 tree 添加到显示列表。 } (function (_super) { function Item() { Item.__super.call(this);//初始化父类。 this.right = 0; this.left = 0; var selectBox = new laya.ui.Clip("resource/ui/clip_selectBox.png", 1, 2); selectBox.name = "selectBox";//设置 selectBox 的name 为“selectBox”时,将被识别为树结构的项的背景。2帧:悬停时背景、选中时背景。 selectBox.height = 24; selectBox.x = 13; selectBox.y = 0; selectBox.left = 12; this.addChild(selectBox);//需要使用this.访问父类的属性或方法。 var folder = new laya.ui.Clip("resource/ui/clip_tree_folder.png", 1, 3); folder.name = "folder";//设置 folder 的name 为“folder”时,将被识别为树结构的文件夹开启状态图表。2帧:折叠状态、打开状态。 folder.x = 14; folder.y = 4; this.addChild(folder); var label = new laya.ui.Label("treeItem"); label.name = "label";//设置 label 的name 为“label”时,此值将用于树结构数据赋值。 label.color = "#ffff00"; label.width = 150; label.height = 22; label.x = 33; label.y = 1; label.left = 33; label.right = 0; this.addChild(label); var arrow = new laya.ui.Clip("resource/ui/clip_tree_arrow.png", 1, 2); arrow.name = "arrow";//设置 arrow 的name 为“arrow”时,将被识别为树结构的文件夹开启状态图表。2帧:折叠状态、打开状态。 arrow.x = 0; arrow.y = 5; this.addChild(arrow); }; Laya.class(Item,"mypackage.treeExample.Item",_super);//注册类 Item 。 })(laya.ui.Box);
  30381. * @example import Tree = laya.ui.Tree; import Browser = laya.utils.Browser; import Handler = laya.utils.Handler; class Tree_Example { constructor() { Laya.init(640, 800); Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private onLoadComplete(): void { var xmlString: String;//创建一个xml字符串,用于存储树结构数据。 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;"; var domParser: any = new Browser.window.DOMParser();//创建一个DOMParser实例domParser。 var xml: any = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。 var tree: Tree = new Tree();//创建一个 Tree 类的实例对象 tree 。 tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。 tree.itemRender = Item;//设置 tree 的项渲染器。 tree.xml = xml;//设置 tree 的树结构数据。 tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。 tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。 tree.width = 200;//设置 tree 的宽度。 tree.height = 100;//设置 tree 的高度。 Laya.stage.addChild(tree);//将 tree 添加到显示列表。 } } import Box = laya.ui.Box; import Clip = laya.ui.Clip; import Label = laya.ui.Label; class Item extends Box { constructor() { super(); this.name = "render"; this.right = 0; this.left = 0; var selectBox: Clip = new Clip("resource/ui/clip_selectBox.png", 1, 2); selectBox.name = "selectBox"; selectBox.height = 24; selectBox.x = 13; selectBox.y = 0; selectBox.left = 12; this.addChild(selectBox); var folder: Clip = new Clip("resource/ui/clip_tree_folder.png", 1, 3); folder.name = "folder"; folder.x = 14; folder.y = 4; this.addChild(folder); var label: Label = new Label("treeItem"); label.name = "label"; label.color = "#ffff00"; label.width = 150; label.height = 22; label.x = 33; label.y = 1; label.left = 33; label.right = 0; this.addChild(label); var arrow: Clip = new Clip("resource/ui/clip_tree_arrow.png", 1, 2); arrow.name = "arrow"; arrow.x = 0; arrow.y = 5; this.addChild(arrow); } }
  30382. */
  30383. class Tree extends laya.ui.Box implements laya.ui.IRender {
  30384. /**
  30385. * @private
  30386. */
  30387. protected _list:laya.ui.List;
  30388. /**
  30389. * @private
  30390. */
  30391. protected _source:any[];
  30392. /**
  30393. * @private
  30394. */
  30395. protected _renderHandler:laya.utils.Handler;
  30396. /**
  30397. * @private
  30398. */
  30399. protected _spaceLeft:number;
  30400. /**
  30401. * @private
  30402. */
  30403. protected _spaceBottom:number;
  30404. /**
  30405. * @private
  30406. */
  30407. protected _keepStatus:boolean;
  30408. /**
  30409. * 创建一个新的 <code>Tree</code> 类实例。
  30410. * <p>在 <code>Tree</code> 构造函数中设置属性width、height的值都为200。</p>
  30411. */
  30412. constructor();
  30413. /**
  30414. * @inheritDoc
  30415. * @override
  30416. */
  30417. destroy(destroyChild?:boolean):void;
  30418. /**
  30419. * @override
  30420. */
  30421. protected createChildren():void;
  30422. /**
  30423. * @private 此对象包含的<code>List</code>实例的<code>Event.CHANGE</code>事件侦听处理函数。
  30424. */
  30425. protected onListChange(e?:laya.events.Event):void;
  30426. /**
  30427. * 数据源发生变化后,是否保持之前打开状态,默认为true。
  30428. * <p><b>取值:</b>
  30429. * <li>true:保持之前打开状态。</li>
  30430. * <li>false:不保持之前打开状态。</li>
  30431. * </p>
  30432. */
  30433. keepStatus:boolean;
  30434. /**
  30435. * 列表数据源,只包含当前可视节点数据。
  30436. */
  30437. array:any[];
  30438. /**
  30439. * 数据源,全部节点数据。
  30440. */
  30441. readonly source:any[];
  30442. /**
  30443. * 此对象包含的<code>List</code>实例对象。
  30444. */
  30445. readonly list:laya.ui.List;
  30446. /**
  30447. * 此对象包含的<code>List</code>实例的单元格渲染器。
  30448. * <p><b>取值:</b>
  30449. * <ol>
  30450. * <li>单元格类对象。</li>
  30451. * <li> UI 的 JSON 描述。</li>
  30452. * </ol></p>
  30453. * @implements
  30454. */
  30455. itemRender:any;
  30456. /**
  30457. * 滚动条皮肤。
  30458. */
  30459. scrollBarSkin:string;
  30460. /**
  30461. * 滚动条
  30462. */
  30463. readonly scrollBar:laya.ui.ScrollBar;
  30464. /**
  30465. * 单元格鼠标事件处理器。
  30466. * <p>默认返回参数(e:Event,index:int)。</p>
  30467. */
  30468. mouseHandler:laya.utils.Handler;
  30469. /**
  30470. * <code>Tree</code> 实例的渲染处理器。
  30471. */
  30472. renderHandler:laya.utils.Handler;
  30473. /**
  30474. * 左侧缩进距离(以像素为单位)。
  30475. */
  30476. spaceLeft:number;
  30477. /**
  30478. * 每一项之间的间隔距离(以像素为单位)。
  30479. */
  30480. spaceBottom:number;
  30481. /**
  30482. * 表示当前选择的项索引。
  30483. */
  30484. selectedIndex:number;
  30485. /**
  30486. * 当前选中的项对象的数据源。
  30487. */
  30488. selectedItem:any;
  30489. /**
  30490. * @inheritDoc
  30491. * @override
  30492. */
  30493. width:number;
  30494. /**
  30495. * @inheritDoc
  30496. * @override
  30497. */
  30498. height:number;
  30499. /**
  30500. * @private 获取数据源集合。
  30501. */
  30502. protected getArray():any[];
  30503. /**
  30504. * @private 获取项对象的深度。
  30505. */
  30506. protected getDepth(item:any,num?:number):number;
  30507. /**
  30508. * @private 获取项对象的上一级的打开状态。
  30509. */
  30510. protected getParentOpenStatus(item:any):boolean;
  30511. /**
  30512. * @private 渲染一个项对象。
  30513. * @param cell 一个项对象。
  30514. * @param index 项的索引。
  30515. */
  30516. protected renderItem(cell:laya.ui.Box,index:number):void;
  30517. /**
  30518. * @private
  30519. */
  30520. private onArrowClick:any;
  30521. /**
  30522. * 设置指定项索引的项对象的打开状态。
  30523. * @param index 项索引。
  30524. * @param isOpen 是否处于打开状态。
  30525. */
  30526. setItemState(index:number,isOpen:boolean):void;
  30527. /**
  30528. * 刷新项列表。
  30529. */
  30530. fresh():void;
  30531. /**
  30532. * @inheritDoc
  30533. * @override
  30534. */
  30535. dataSource:any;
  30536. /**
  30537. * xml结构的数据源。
  30538. */
  30539. xml:XMLDocument;
  30540. /**
  30541. * @private 解析并处理XML类型的数据源。
  30542. */
  30543. protected parseXml(xml:ChildNode,source:any[],nodeParent:any,isRoot:boolean):void;
  30544. /**
  30545. * @private 处理数据项的打开状态。
  30546. */
  30547. protected parseOpenStatus(oldSource:any[],newSource:any[]):void;
  30548. /**
  30549. * @private 判断两个项对象在树结构中的父节点是否相同。
  30550. * @param item1 项对象。
  30551. * @param item2 项对象。
  30552. * @return 如果父节点相同值为true,否则值为false。
  30553. */
  30554. protected isSameParent(item1:any,item2:any):boolean;
  30555. /**
  30556. * 表示选择的树节点项的<code>path</code>属性值。
  30557. */
  30558. readonly selectedPath:string;
  30559. /**
  30560. * 更新项列表,显示指定键名的数据项。
  30561. * @param key 键名。
  30562. */
  30563. filter(key:string):void;
  30564. /**
  30565. * @private 获取数据源中指定键名的值。
  30566. */
  30567. private getFilterSource:any;
  30568. }
  30569. }
  30570. declare module laya.ui {
  30571. /**
  30572. * <code>Component</code> 是ui控件类的基类。
  30573. * <p>生命周期:preinitialize > createChildren > initialize > 组件构造函数</p>
  30574. */
  30575. class UIComponent extends laya.display.Sprite {
  30576. /**
  30577. * X锚点,值为0-1,设置anchorX值最终通过pivotX值来改变节点轴心点。
  30578. */
  30579. protected _anchorX:number;
  30580. /**
  30581. * Y锚点,值为0-1,设置anchorY值最终通过pivotY值来改变节点轴心点。
  30582. */
  30583. protected _anchorY:number;
  30584. /**
  30585. * @private 控件的数据源。
  30586. */
  30587. protected _dataSource:any;
  30588. /**
  30589. * @private 鼠标悬停提示
  30590. */
  30591. protected _toolTip:any;
  30592. /**
  30593. * @private 标签
  30594. */
  30595. protected _tag:any;
  30596. /**
  30597. * @private 禁用
  30598. */
  30599. protected _disabled:boolean;
  30600. /**
  30601. * @private 变灰
  30602. */
  30603. protected _gray:boolean;
  30604. /**
  30605. * @private 相对布局组件
  30606. */
  30607. protected _widget:laya.ui.Widget;
  30608. /**
  30609. * <p>创建一个新的 <code>Component</code> 实例。</p>
  30610. */
  30611. constructor(createChildren?:boolean);
  30612. /**
  30613. * @inheritDoc
  30614. * @override
  30615. */
  30616. destroy(destroyChild?:boolean):void;
  30617. /**
  30618. * <p>预初始化。</p>
  30619. * 子类可在此函数内设置、修改属性默认值
  30620. */
  30621. protected preinitialize():void;
  30622. /**
  30623. * <p>创建并添加控件子节点。</p>
  30624. * 子类可在此函数内创建并添加子节点。
  30625. */
  30626. protected createChildren():void;
  30627. /**
  30628. * <p>控件初始化。</p>
  30629. * 在此子对象已被创建,可以对子对象进行修改。
  30630. */
  30631. protected initialize():void;
  30632. /**
  30633. * <p>表示显示对象的宽度,以像素为单位。</p>
  30634. * <p><b>注:</b>当值为0时,宽度为自适应大小。</p>
  30635. * @override
  30636. */
  30637. /**
  30638. * @inheritDoc
  30639. * @override
  30640. */
  30641. width:number;
  30642. /**
  30643. * @override
  30644. */
  30645. get_width():number;
  30646. /**
  30647. * <p>显示对象的实际显示区域宽度(以像素为单位)。</p>
  30648. */
  30649. protected measureWidth():number;
  30650. /**
  30651. * <p>立即执行影响宽高度量的延迟调用函数。</p>
  30652. * <p>使用 <code>runCallLater</code> 函数,立即执行影响宽高度量的延迟运行函数(使用 <code>callLater</code> 设置延迟执行函数)。</p>
  30653. * @see #callLater()
  30654. * @see #runCallLater()
  30655. */
  30656. protected commitMeasure():void;
  30657. /**
  30658. * <p>表示显示对象的高度,以像素为单位。</p>
  30659. * <p><b>注:</b>当值为0时,高度为自适应大小。</p>
  30660. * @override
  30661. */
  30662. /**
  30663. * @inheritDoc
  30664. * @override
  30665. */
  30666. height:number;
  30667. /**
  30668. * @override
  30669. */
  30670. get_height():number;
  30671. /**
  30672. * <p>显示对象的实际显示区域高度(以像素为单位)。</p>
  30673. */
  30674. protected measureHeight():number;
  30675. /**
  30676. * @implements <p>数据赋值,通过对UI赋值来控制UI显示逻辑。</p> <p>简单赋值会更改组件的默认属性,使用大括号可以指定组件的任意属性进行赋值。</p>
  30677. * @example //默认属性赋值 dataSource = {label1: "改变了label", checkbox1: true};//(更改了label1的text属性值,更改checkbox1的selected属性)。 //任意属性赋值 dataSource = {label2: {text:"改变了label",size:14}, checkbox2: {selected:true,x:10}};
  30678. */
  30679. dataSource:any;
  30680. get_dataSource():any;
  30681. set_dataSource(value:any):void;
  30682. /**
  30683. * <p>从组件顶边到其内容区域顶边之间的垂直距离(以像素为单位)。</p>
  30684. */
  30685. top:number;
  30686. get_top():number;
  30687. set_top(value:number):void;
  30688. /**
  30689. * <p>从组件底边到其内容区域底边之间的垂直距离(以像素为单位)。</p>
  30690. */
  30691. bottom:number;
  30692. get_bottom():number;
  30693. set_bottom(value:number):void;
  30694. /**
  30695. * <p>从组件左边到其内容区域左边之间的水平距离(以像素为单位)。</p>
  30696. */
  30697. left:number;
  30698. /**
  30699. * <p>从组件右边到其内容区域右边之间的水平距离(以像素为单位)。</p>
  30700. */
  30701. right:number;
  30702. /**
  30703. * <p>在父容器中,此对象的水平方向中轴线与父容器的水平方向中心线的距离(以像素为单位)。</p>
  30704. */
  30705. centerX:number;
  30706. /**
  30707. * <p>在父容器中,此对象的垂直方向中轴线与父容器的垂直方向中心线的距离(以像素为单位)。</p>
  30708. */
  30709. centerY:number;
  30710. protected _sizeChanged():void;
  30711. /**
  30712. * <p>对象的标签。</p>
  30713. * 冗余字段,可以用来储存数据。
  30714. */
  30715. tag:any;
  30716. /**
  30717. * <p>鼠标悬停提示。</p>
  30718. * <p>可以赋值为文本 <code>String</code> 或函数 <code>Handler</code> ,用来实现自定义样式的鼠标提示和参数携带等。</p>
  30719. * @example private var _testTips:TestTipsUI = new TestTipsUI(); private function testTips():void { //简单鼠标提示 btn2.toolTip = "这里是鼠标提示&lt;b&gt;粗体&lt;/b&gt;&lt;br&gt;换行"; //自定义的鼠标提示 btn1.toolTip = showTips1; //带参数的自定义鼠标提示 clip.toolTip = new Handler(this,showTips2, ["clip"]); } private function showTips1():void { _testTips.label.text = "这里是按钮[" + btn1.label + "]"; tip.addChild(_testTips); } private function showTips2(name:String):void { _testTips.label.text = "这里是" + name; tip.addChild(_testTips); }
  30720. */
  30721. toolTip:any;
  30722. /**
  30723. * 对象的 <code>Event.MOUSE_OVER</code> 事件侦听处理函数。
  30724. */
  30725. private onMouseOver:any;
  30726. /**
  30727. * 对象的 <code>Event.MOUSE_OUT</code> 事件侦听处理函数。
  30728. */
  30729. private onMouseOut:any;
  30730. /**
  30731. * 是否变灰。
  30732. */
  30733. gray:boolean;
  30734. /**
  30735. * 是否禁用页面,设置为true后,会变灰并且禁用鼠标。
  30736. */
  30737. disabled:boolean;
  30738. /**
  30739. * @private <p>获取对象的布局样式。请不要直接修改此对象</p>
  30740. */
  30741. private _getWidget:any;
  30742. /**
  30743. * @inheritDoc
  30744. * @override
  30745. */
  30746. scaleX:number;
  30747. /**
  30748. * @override
  30749. */
  30750. set_scaleX(value:number):void;
  30751. /**
  30752. * @inheritDoc
  30753. * @override
  30754. */
  30755. scaleY:number;
  30756. /**
  30757. * @override
  30758. */
  30759. set_scaleY(value:number):void;
  30760. /**
  30761. * @private
  30762. */
  30763. protected onCompResize():void;
  30764. /**
  30765. * @override
  30766. */
  30767. set_width(value:number):void;
  30768. /**
  30769. * @override
  30770. */
  30771. set_height(value:number):void;
  30772. /**
  30773. * X锚点,值为0-1,设置anchorX值最终通过pivotX值来改变节点轴心点。
  30774. */
  30775. anchorX:number;
  30776. get_anchorX():number;
  30777. set_anchorX(value:number):void;
  30778. /**
  30779. * Y锚点,值为0-1,设置anchorY值最终通过pivotY值来改变节点轴心点。
  30780. */
  30781. anchorY:number;
  30782. get_anchorY():number;
  30783. set_anchorY(value:number):void;
  30784. /**
  30785. * @param child
  30786. * @override
  30787. */
  30788. protected _childChanged(child?:laya.display.Node):void;
  30789. }
  30790. }
  30791. declare module laya.ui {
  30792. /**
  30793. * <code>UIEvent</code> 类用来定义UI组件类的事件类型。
  30794. */
  30795. class UIEvent extends laya.events.Event {
  30796. /**
  30797. * 显示提示信息。
  30798. */
  30799. static SHOW_TIP:string;
  30800. /**
  30801. * 隐藏提示信息。
  30802. */
  30803. static HIDE_TIP:string;
  30804. }
  30805. }
  30806. declare module laya.ui {
  30807. /**
  30808. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  30809. * @eventType laya.events.Event
  30810. */
  30811. /**
  30812. * <code>Group</code> 是一个可以自动布局的项集合控件。
  30813. * <p> <code>Group</code> 的默认项对象为 <code>Button</code> 类实例。
  30814. * <code>Group</code> 是 <code>Tab</code> 和 <code>RadioGroup</code> 的基类。</p>
  30815. */
  30816. class UIGroup extends laya.ui.Box implements laya.ui.IItem {
  30817. /**
  30818. * 改变 <code>Group</code> 的选择项时执行的处理器,(默认返回参数: 项索引(index:int))。
  30819. */
  30820. selectHandler:laya.utils.Handler;
  30821. /**
  30822. * @private
  30823. */
  30824. protected _items:laya.ui.ISelect[];
  30825. /**
  30826. * @private
  30827. */
  30828. protected _selectedIndex:number;
  30829. /**
  30830. * @private
  30831. */
  30832. protected _skin:string;
  30833. /**
  30834. * @private
  30835. */
  30836. protected _direction:string;
  30837. /**
  30838. * @private
  30839. */
  30840. protected _space:number;
  30841. /**
  30842. * @private
  30843. */
  30844. protected _labels:string;
  30845. /**
  30846. * @private
  30847. */
  30848. protected _labelColors:string;
  30849. /**
  30850. * @private
  30851. */
  30852. private _labelFont:any;
  30853. /**
  30854. * @private
  30855. */
  30856. protected _labelStrokeColor:string;
  30857. /**
  30858. * @private
  30859. */
  30860. protected _strokeColors:string;
  30861. /**
  30862. * @private
  30863. */
  30864. protected _labelStroke:number;
  30865. /**
  30866. * @private
  30867. */
  30868. protected _labelSize:number;
  30869. /**
  30870. * @private
  30871. */
  30872. protected _labelBold:boolean;
  30873. /**
  30874. * @private
  30875. */
  30876. protected _labelPadding:string;
  30877. /**
  30878. * @private
  30879. */
  30880. protected _labelAlign:string;
  30881. /**
  30882. * @private
  30883. */
  30884. protected _stateNum:number;
  30885. /**
  30886. * @private
  30887. */
  30888. protected _labelChanged:boolean;
  30889. /**
  30890. * 创建一个新的 <code>Group</code> 类实例。
  30891. * @param labels 标签集字符串。以逗号做分割,如"item0,item1,item2,item3,item4,item5"。
  30892. * @param skin 皮肤。
  30893. */
  30894. constructor(labels?:string,skin?:string);
  30895. /**
  30896. * @override
  30897. */
  30898. protected preinitialize():void;
  30899. /**
  30900. * @inheritDoc
  30901. * @override
  30902. */
  30903. destroy(destroyChild?:boolean):void;
  30904. /**
  30905. * 添加一个项对象,返回此项对象的索引id。
  30906. * @param item 需要添加的项对象。
  30907. * @param autoLayOut 是否自动布局,如果为true,会根据 <code>direction</code> 和 <code>space</code> 属性计算item的位置。
  30908. * @return
  30909. */
  30910. addItem(item:laya.ui.ISelect,autoLayOut?:boolean):number;
  30911. /**
  30912. * 删除一个项对象。
  30913. * @param item 需要删除的项对象。
  30914. * @param autoLayOut 是否自动布局,如果为true,会根据 <code>direction</code> 和 <code>space</code> 属性计算item的位置。
  30915. */
  30916. delItem(item:laya.ui.ISelect,autoLayOut?:boolean):void;
  30917. /**
  30918. * 初始化项对象们。
  30919. */
  30920. initItems():void;
  30921. /**
  30922. * @private 项对象的点击事件侦听处理函数。
  30923. * @param index 项索引。
  30924. */
  30925. protected itemClick(index:number):void;
  30926. /**
  30927. * 表示当前选择的项索引。默认值为-1。
  30928. */
  30929. selectedIndex:number;
  30930. /**
  30931. * @private 通过对象的索引设置项对象的 <code>selected</code> 属性值。
  30932. * @param index 需要设置的项对象的索引。
  30933. * @param selected 表示项对象的选中状态。
  30934. */
  30935. protected setSelect(index:number,selected:boolean):void;
  30936. /**
  30937. * @copy laya.ui.Image#skin
  30938. */
  30939. skin:string;
  30940. protected _skinLoaded():void;
  30941. /**
  30942. * 标签集合字符串。以逗号做分割,如"item0,item1,item2,item3,item4,item5"。
  30943. */
  30944. labels:string;
  30945. /**
  30946. * @private 创建一个项显示对象。
  30947. * @param skin 项对象的皮肤。
  30948. * @param label 项对象标签。
  30949. */
  30950. protected createItem(skin:string,label:string):laya.display.Sprite;
  30951. /**
  30952. * @copy laya.ui.Button#labelColors()
  30953. */
  30954. labelColors:string;
  30955. /**
  30956. * <p>描边宽度(以像素为单位)。</p>
  30957. * 默认值0,表示不描边。
  30958. * @see laya.display.Text.stroke()
  30959. */
  30960. labelStroke:number;
  30961. /**
  30962. * <p>描边颜色,以字符串表示。</p>
  30963. * 默认值为 "#000000"(黑色);
  30964. * @see laya.display.Text.strokeColor()
  30965. */
  30966. labelStrokeColor:string;
  30967. /**
  30968. * <p>表示各个状态下的描边颜色。</p>
  30969. * @see laya.display.Text.strokeColor()
  30970. */
  30971. strokeColors:string;
  30972. /**
  30973. * 表示按钮文本标签的字体大小。
  30974. */
  30975. labelSize:number;
  30976. /**
  30977. * 表示按钮的状态值,以数字表示,默认为3态。
  30978. * @see laya.ui.Button#stateNum
  30979. */
  30980. stateNum:number;
  30981. /**
  30982. * 表示按钮文本标签是否为粗体字。
  30983. */
  30984. labelBold:boolean;
  30985. /**
  30986. * 表示按钮文本标签的字体名称,以字符串形式表示。
  30987. * @see laya.display.Text.font()
  30988. */
  30989. labelFont:string;
  30990. /**
  30991. * 表示按钮文本标签的边距。
  30992. * <p><b>格式:</b>"上边距,右边距,下边距,左边距"。</p>
  30993. */
  30994. labelPadding:string;
  30995. /**
  30996. * 布局方向。
  30997. * <p>默认值为"horizontal"。</p>
  30998. * <p><b>取值:</b>
  30999. * <li>"horizontal":表示水平布局。</li>
  31000. * <li>"vertical":表示垂直布局。</li>
  31001. * </p>
  31002. */
  31003. direction:string;
  31004. /**
  31005. * 项对象们之间的间隔(以像素为单位)。
  31006. */
  31007. space:number;
  31008. /**
  31009. * @private 更改项对象的属性值。
  31010. */
  31011. protected changeLabels():void;
  31012. /**
  31013. * @inheritDoc
  31014. * @override
  31015. */
  31016. protected commitMeasure():void;
  31017. /**
  31018. * 项对象们的存放数组。
  31019. */
  31020. readonly items:laya.ui.ISelect[];
  31021. /**
  31022. * 获取或设置当前选择的项对象。
  31023. */
  31024. selection:laya.ui.ISelect;
  31025. /**
  31026. * @inheritDoc
  31027. * @override
  31028. */
  31029. dataSource:any;
  31030. /**
  31031. * @private
  31032. */
  31033. protected _setLabelChanged():void;
  31034. }
  31035. }
  31036. declare module laya.ui {
  31037. class UILib {
  31038. static __init__():void;
  31039. }
  31040. }
  31041. declare module laya.ui {
  31042. /**
  31043. * <code>UIUtils</code> 是文本工具集。
  31044. */
  31045. class UIUtils {
  31046. private static grayFilter:any;
  31047. /**
  31048. * 需要替换的转义字符表
  31049. */
  31050. static escapeSequence:any;
  31051. /**
  31052. * 用字符串填充数组,并返回数组副本。
  31053. * @param arr 源数组对象。
  31054. * @param str 用逗号连接的字符串。如"p1,p2,p3,p4"。
  31055. * @param type 如果值不为null,则填充的是新增值得类型。
  31056. * @return 填充后的数组。
  31057. */
  31058. static fillArray(arr:any[],str:string,type?:typeof Number|typeof String):any[];
  31059. /**
  31060. * 转换uint类型颜色值为字符型颜色值。
  31061. * @param color uint颜色值。
  31062. * @return 字符型颜色值。
  31063. */
  31064. static toColor(color:number):string;
  31065. /**
  31066. * 给指定的目标显示对象添加或移除灰度滤镜。
  31067. * @param traget 目标显示对象。
  31068. * @param isGray 如果值true,则添加灰度滤镜,否则移除灰度滤镜。
  31069. */
  31070. static gray(traget:laya.display.Sprite,isGray?:boolean):void;
  31071. /**
  31072. * 给指定的目标显示对象添加滤镜。
  31073. * @param target 目标显示对象。
  31074. * @param filter 滤镜对象。
  31075. */
  31076. static addFilter(target:laya.display.Sprite,filter:laya.filters.IFilter):void;
  31077. /**
  31078. * 移除目标显示对象的指定类型滤镜。
  31079. * @param target 目标显示对象。
  31080. * @param filterType 滤镜类型。
  31081. */
  31082. static clearFilter(target:laya.display.Sprite,filterType:new () => any):void;
  31083. /**
  31084. * 获取当前要替换的转移字符
  31085. * @param word
  31086. * @return
  31087. */
  31088. private static _getReplaceStr:any;
  31089. /**
  31090. * 替换字符串中的转义字符
  31091. * @param str
  31092. */
  31093. static adptString(str:string):string;
  31094. /**
  31095. * @private
  31096. */
  31097. private static _funMap:any;
  31098. /**
  31099. * @private 根据字符串,返回函数表达式
  31100. */
  31101. static getBindFun(value:string):Function;
  31102. }
  31103. }
  31104. declare module laya.ui {
  31105. /**
  31106. * <code>VBox</code> 是一个垂直布局容器类。
  31107. */
  31108. class VBox extends laya.ui.LayoutBox {
  31109. /**
  31110. * 无对齐。
  31111. */
  31112. static NONE:string;
  31113. /**
  31114. * 左对齐。
  31115. */
  31116. static LEFT:string;
  31117. /**
  31118. * 居中对齐。
  31119. */
  31120. static CENTER:string;
  31121. /**
  31122. * 右对齐。
  31123. */
  31124. static RIGHT:string;
  31125. /**
  31126. * @override
  31127. */
  31128. width:number;
  31129. /**
  31130. * @inheritDoc
  31131. * @override
  31132. */
  31133. protected changeItems():void;
  31134. }
  31135. }
  31136. declare module laya.ui {
  31137. /**
  31138. * <code>View</code> 是一个视图类,2.0开始,更改继承至Scene类,相对于Scene,增加相对布局功能。
  31139. */
  31140. class View extends laya.display.Scene {
  31141. /**
  31142. * @private 兼容老版本
  31143. */
  31144. static uiMap:any;
  31145. /**
  31146. * @private 相对布局组件
  31147. */
  31148. protected _widget:laya.ui.Widget;
  31149. /**
  31150. * @private 控件的数据源。
  31151. */
  31152. protected _dataSource:any;
  31153. /**
  31154. * X锚点,值为0-1,设置anchorX值最终通过pivotX值来改变节点轴心点。
  31155. */
  31156. protected _anchorX:number;
  31157. /**
  31158. * Y锚点,值为0-1,设置anchorY值最终通过pivotY值来改变节点轴心点。
  31159. */
  31160. protected _anchorY:number;
  31161. static __init__():void;
  31162. constructor();
  31163. /**
  31164. * @private 兼容老版本 注册组件类映射。 <p>用于扩展组件及修改组件对应关系。</p>
  31165. * @param key 组件类的关键字。
  31166. * @param compClass 组件类对象。
  31167. */
  31168. static regComponent(key:string,compClass:new () => any):void;
  31169. /**
  31170. * @private 兼容老版本 注册UI视图类的逻辑处理类。 注册runtime解析。
  31171. * @param key UI视图类的关键字。
  31172. * @param compClass UI视图类对应的逻辑处理类。
  31173. */
  31174. static regViewRuntime(key:string,compClass:new () => any):void;
  31175. /**
  31176. * @private 兼容老版本 注册UI配置信息,比如注册一个路径为"test/TestPage"的页面,UI内容是IDE生成的json
  31177. * @param url UI的路径
  31178. * @param json UI内容
  31179. */
  31180. static regUI(url:string,json:any):void;
  31181. /**
  31182. * @inheritDoc
  31183. * @override
  31184. */
  31185. destroy(destroyChild?:boolean):void;
  31186. /**
  31187. * @private
  31188. */
  31189. changeData(key:string):void;
  31190. /**
  31191. * <p>从组件顶边到其内容区域顶边之间的垂直距离(以像素为单位)。</p>
  31192. */
  31193. top:number;
  31194. /**
  31195. * <p>从组件底边到其内容区域底边之间的垂直距离(以像素为单位)。</p>
  31196. */
  31197. bottom:number;
  31198. /**
  31199. * <p>从组件左边到其内容区域左边之间的水平距离(以像素为单位)。</p>
  31200. */
  31201. left:number;
  31202. /**
  31203. * <p>从组件右边到其内容区域右边之间的水平距离(以像素为单位)。</p>
  31204. */
  31205. right:number;
  31206. /**
  31207. * <p>在父容器中,此对象的水平方向中轴线与父容器的水平方向中心线的距离(以像素为单位)。</p>
  31208. */
  31209. centerX:number;
  31210. /**
  31211. * <p>在父容器中,此对象的垂直方向中轴线与父容器的垂直方向中心线的距离(以像素为单位)。</p>
  31212. */
  31213. centerY:number;
  31214. /**
  31215. * X锚点,值为0-1,设置anchorX值最终通过pivotX值来改变节点轴心点。
  31216. */
  31217. anchorX:number;
  31218. /**
  31219. * Y锚点,值为0-1,设置anchorY值最终通过pivotY值来改变节点轴心点。
  31220. */
  31221. anchorY:number;
  31222. /**
  31223. * @private
  31224. * @override
  31225. */
  31226. protected _sizeChanged():void;
  31227. /**
  31228. * @private <p>获取对象的布局样式。请不要直接修改此对象</p>
  31229. */
  31230. private _getWidget:any;
  31231. /**
  31232. * @private 兼容老版本
  31233. */
  31234. protected loadUI(path:string):void;
  31235. /**
  31236. * @implements laya.ui.UIComponent#dataSource
  31237. */
  31238. dataSource:any;
  31239. }
  31240. }
  31241. declare module laya.ui {
  31242. /**
  31243. * <code>ViewStack</code> 类用于视图堆栈类,用于视图的显示等设置处理。
  31244. */
  31245. class ViewStack extends laya.ui.Box implements laya.ui.IItem {
  31246. /**
  31247. * @private
  31248. */
  31249. protected _items:any[];
  31250. /**
  31251. * @private
  31252. */
  31253. protected _setIndexHandler:laya.utils.Handler;
  31254. /**
  31255. * @private
  31256. */
  31257. protected _selectedIndex:number;
  31258. /**
  31259. * 批量设置视图对象。
  31260. * @param views 视图对象数组。
  31261. */
  31262. setItems(views:any[]):void;
  31263. /**
  31264. * 添加视图。
  31265. * 添加视图对象,并设置此视图对象的<code>name</code> 属性。
  31266. * @param view 需要添加的视图对象。
  31267. */
  31268. addItem(view:laya.display.Node):void;
  31269. /**
  31270. * 初始化视图对象集合。
  31271. */
  31272. initItems():void;
  31273. /**
  31274. * 表示当前视图索引。
  31275. */
  31276. selectedIndex:number;
  31277. /**
  31278. * @private 通过对象的索引设置项对象的 <code>selected</code> 属性值。
  31279. * @param index 需要设置的对象的索引。
  31280. * @param selected 表示对象的选中状态。
  31281. */
  31282. protected setSelect(index:number,selected:boolean):void;
  31283. /**
  31284. * 获取或设置当前选择的项对象。
  31285. */
  31286. selection:laya.display.Node;
  31287. /**
  31288. * 索引设置处理器。
  31289. * <p>默认回调参数:index:int</p>
  31290. */
  31291. setIndexHandler:laya.utils.Handler;
  31292. /**
  31293. * @private 设置属性<code>selectedIndex</code>的值。
  31294. * @param index 选中项索引值。
  31295. */
  31296. protected setIndex(index:number):void;
  31297. /**
  31298. * 视图集合数组。
  31299. */
  31300. readonly items:any[];
  31301. /**
  31302. * @inheritDoc
  31303. * @override
  31304. */
  31305. dataSource:any;
  31306. }
  31307. }
  31308. declare module laya.ui {
  31309. /**
  31310. * 使用 <code>VScrollBar</code> (垂直 <code>ScrollBar</code> )控件,可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。
  31311. * @example <caption>以下示例代码,创建了一个 <code>VScrollBar</code> 实例。</caption> package { import laya.ui.vScrollBar; import laya.ui.VScrollBar; import laya.utils.Handler; public class VScrollBar_Example { private var vScrollBar:VScrollBar; public function VScrollBar_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private function onLoadComplete():void { vScrollBar = new VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。 vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。 vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。 vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。 vScrollBar.changeHandler = new Handler(this, onChange);//设置 vScrollBar 的滚动变化处理器。 Laya.stage.addChild(vScrollBar);//将此 vScrollBar 对象添加到显示列表。 } private function onChange(value:Number):void { trace("滚动条的位置: value=" + value); } } }
  31312. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var vScrollBar; var res = ["resource/ui/vscroll.png", "resource/ui/vscroll$bar.png", "resource/ui/vscroll$down.png", "resource/ui/vscroll$up.png"]; Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { vScrollBar = new laya.ui.VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。 vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。 vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。 vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。 vScrollBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 vScrollBar 的滚动变化处理器。 Laya.stage.addChild(vScrollBar);//将此 vScrollBar 对象添加到显示列表。 } function onChange(value) { console.log("滚动条的位置: value=" + value); }
  31313. * @example import VScrollBar = laya.ui.VScrollBar; import Handler = laya.utils.Handler; class VScrollBar_Example { private vScrollBar: VScrollBar; constructor() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private onLoadComplete(): void { this.vScrollBar = new VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。 this.vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。 this.vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。 this.vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。 this.vScrollBar.changeHandler = new Handler(this, this.onChange);//设置 vScrollBar 的滚动变化处理器。 Laya.stage.addChild(this.vScrollBar);//将此 vScrollBar 对象添加到显示列表。 } private onChange(value: number): void { console.log("滚动条的位置: value=" + value); } }
  31314. */
  31315. class VScrollBar extends laya.ui.ScrollBar {
  31316. }
  31317. }
  31318. declare module laya.ui {
  31319. /**
  31320. * 使用 <code>VSlider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  31321. * <p> <code>VSlider</code> 控件采用垂直方向。滑块轨道从下往上扩展,而标签位于轨道的左右两侧。</p>
  31322. * @example <caption>以下示例代码,创建了一个 <code>VSlider</code> 实例。</caption> package { import laya.ui.HSlider; import laya.ui.VSlider; import laya.utils.Handler; public class VSlider_Example { private var vSlider:VSlider; public function VSlider_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { vSlider = new VSlider();//创建一个 VSlider 类的实例对象 vSlider 。 vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。 vSlider.min = 0;//设置 vSlider 最低位置值。 vSlider.max = 10;//设置 vSlider 最高位置值。 vSlider.value = 2;//设置 vSlider 当前位置值。 vSlider.tick = 1;//设置 vSlider 刻度值。 vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。 vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。 vSlider.changeHandler = new Handler(this, onChange);//设置 vSlider 位置变化处理器。 Laya.stage.addChild(vSlider);//把 vSlider 添加到显示列表。 } private function onChange(value:Number):void { trace("滑块的位置: value=" + value); } } }
  31323. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var vSlider; Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { vSlider = new laya.ui.VSlider();//创建一个 VSlider 类的实例对象 vSlider 。 vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。 vSlider.min = 0;//设置 vSlider 最低位置值。 vSlider.max = 10;//设置 vSlider 最高位置值。 vSlider.value = 2;//设置 vSlider 当前位置值。 vSlider.tick = 1;//设置 vSlider 刻度值。 vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。 vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。 vSlider.changeHandler = new laya.utils.Handler(this, onChange);//设置 vSlider 位置变化处理器。 Laya.stage.addChild(vSlider);//把 vSlider 添加到显示列表。 } function onChange(value) { console.log("滑块的位置: value=" + value); }
  31324. * @example import HSlider = laya.ui.HSlider; import VSlider = laya.ui.VSlider; import Handler = laya.utils.Handler; class VSlider_Example { private vSlider: VSlider; constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { this.vSlider = new VSlider();//创建一个 VSlider 类的实例对象 vSlider 。 this.vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。 this.vSlider.min = 0;//设置 vSlider 最低位置值。 this.vSlider.max = 10;//设置 vSlider 最高位置值。 this.vSlider.value = 2;//设置 vSlider 当前位置值。 this.vSlider.tick = 1;//设置 vSlider 刻度值。 this.vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。 this.vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。 this.vSlider.changeHandler = new Handler(this, this.onChange);//设置 vSlider 位置变化处理器。 Laya.stage.addChild(this.vSlider);//把 vSlider 添加到显示列表。 } private onChange(value: number): void { console.log("滑块的位置: value=" + value); } }
  31325. * @see laya.ui.Slider
  31326. */
  31327. class VSlider extends laya.ui.Slider {
  31328. }
  31329. }
  31330. declare module laya.ui {
  31331. /**
  31332. * 相对布局插件
  31333. */
  31334. class Widget extends laya.components.Component {
  31335. /**
  31336. * 一个已初始化的 <code>Widget</code> 实例。
  31337. */
  31338. static EMPTY:Widget;
  31339. private _top:any;
  31340. private _bottom:any;
  31341. private _left:any;
  31342. private _right:any;
  31343. private _centerX:any;
  31344. private _centerY:any;
  31345. /**
  31346. * @override
  31347. */
  31348. onReset():void;
  31349. /**
  31350. * 父容器的 <code>Event.RESIZE</code> 事件侦听处理函数。
  31351. */
  31352. protected _onParentResize():void;
  31353. /**
  31354. * <p>重置对象的 <code>X</code> 轴(水平方向)布局。</p>
  31355. * @private
  31356. */
  31357. resetLayoutX():boolean;
  31358. /**
  31359. * <p>重置对象的 <code>Y</code> 轴(垂直方向)布局。</p>
  31360. * @private
  31361. */
  31362. resetLayoutY():boolean;
  31363. /**
  31364. * 重新计算布局
  31365. */
  31366. resetLayout():void;
  31367. /**
  31368. * 表示距顶边的距离(以像素为单位)。
  31369. */
  31370. top:number;
  31371. /**
  31372. * 表示距底边的距离(以像素为单位)。
  31373. */
  31374. bottom:number;
  31375. /**
  31376. * 表示距左边的距离(以像素为单位)。
  31377. */
  31378. left:number;
  31379. /**
  31380. * 表示距右边的距离(以像素为单位)。
  31381. */
  31382. right:number;
  31383. /**
  31384. * 表示距水平方向中心轴的距离(以像素为单位)。
  31385. */
  31386. centerX:number;
  31387. /**
  31388. * 表示距垂直方向中心轴的距离(以像素为单位)。
  31389. */
  31390. centerY:number;
  31391. }
  31392. }
  31393. declare module laya.ui {
  31394. /**
  31395. * 微信开放数据展示组件,直接实例本组件,即可根据组件宽高,位置,以最优的方式显示开放域数据
  31396. */
  31397. class WXOpenDataViewer extends laya.ui.UIComponent {
  31398. constructor();
  31399. /**
  31400. * @override
  31401. */
  31402. onEnable():void;
  31403. /**
  31404. * @override
  31405. */
  31406. onDisable():void;
  31407. private _onLoop:any;
  31408. /**
  31409. * @override
  31410. */
  31411. /**
  31412. * @override
  31413. */
  31414. width:number;
  31415. /**
  31416. * @override
  31417. */
  31418. /**
  31419. * @override
  31420. */
  31421. height:number;
  31422. /**
  31423. * @override
  31424. */
  31425. /**
  31426. * @override
  31427. */
  31428. x:number;
  31429. /**
  31430. * @override
  31431. */
  31432. /**
  31433. * @override
  31434. */
  31435. y:number;
  31436. private _postMsg:any;
  31437. /**
  31438. * 向开放数据域发送消息
  31439. */
  31440. postMsg(msg:any):void;
  31441. }
  31442. }
  31443. declare module laya.utils {
  31444. /**
  31445. * <code>Browser</code> 是浏览器代理类。封装浏览器及原生 js 提供的一些功能。
  31446. */
  31447. class Browser {
  31448. /**
  31449. * 浏览器代理信息。
  31450. */
  31451. static userAgent:string;
  31452. /**
  31453. * 表示是否在移动设备,包括IOS和安卓等设备内。
  31454. */
  31455. static onMobile:boolean;
  31456. /**
  31457. * 表示是否在 IOS 设备内。
  31458. */
  31459. static onIOS:boolean;
  31460. /**
  31461. * 表示是否在 Mac 设备。
  31462. */
  31463. static onMac:boolean;
  31464. /**
  31465. * 表示是否在 IPhone 设备内。
  31466. */
  31467. static onIPhone:boolean;
  31468. /**
  31469. * 表示是否在 IPad 设备内。
  31470. */
  31471. static onIPad:boolean;
  31472. /**
  31473. * 表示是否在 Android 设备内。
  31474. */
  31475. static onAndroid:boolean;
  31476. /**
  31477. * 表示是否在 Windows Phone 设备内。
  31478. */
  31479. static onWP:boolean;
  31480. /**
  31481. * 表示是否在 QQ 浏览器内。
  31482. */
  31483. static onQQBrowser:boolean;
  31484. /**
  31485. * 表示是否在移动端 QQ 或 QQ 浏览器内。
  31486. */
  31487. static onMQQBrowser:boolean;
  31488. /**
  31489. * 表示是否在 Safari 内。
  31490. */
  31491. static onSafari:boolean;
  31492. /**
  31493. * 表示是否在 IE 浏览器内
  31494. */
  31495. static onIE:boolean;
  31496. /**
  31497. * 表示是否在 微信 内
  31498. */
  31499. static onWeiXin:boolean;
  31500. /**
  31501. * 表示是否在 PC 端。
  31502. */
  31503. static onPC:boolean;
  31504. /**
  31505. * 微信小游戏 *
  31506. */
  31507. static onMiniGame:boolean;
  31508. /**
  31509. * 百度小游戏 *
  31510. */
  31511. static onBDMiniGame:boolean;
  31512. /**
  31513. * 小米戏小游戏 *
  31514. */
  31515. static onKGMiniGame:boolean;
  31516. /**
  31517. * OPPO小游戏 *
  31518. */
  31519. static onQGMiniGame:boolean;
  31520. /**
  31521. * VIVO小游戏 *
  31522. */
  31523. static onVVMiniGame:boolean;
  31524. /**
  31525. * 阿里小游戏 *
  31526. */
  31527. static onAlipayMiniGame:boolean;
  31528. /**
  31529. * *手机QQ小游戏
  31530. */
  31531. static onQQMiniGame:boolean;
  31532. /**
  31533. * @private
  31534. */
  31535. static onFirefox:boolean;
  31536. /**
  31537. * @private
  31538. */
  31539. static onEdge:boolean;
  31540. /**
  31541. * @private
  31542. */
  31543. static onLayaRuntime:boolean;
  31544. /**
  31545. * 表示是否支持WebAudio
  31546. */
  31547. static supportWebAudio:boolean;
  31548. /**
  31549. * 表示是否支持LocalStorage
  31550. */
  31551. static supportLocalStorage:boolean;
  31552. /**
  31553. * 全局离线画布(非主画布)。主要用来测量字体、获取image数据。
  31554. */
  31555. static canvas:laya.resource.HTMLCanvas;
  31556. /**
  31557. * 全局离线画布上绘图的环境(非主画布)。
  31558. */
  31559. static context:CanvasRenderingContext2D;
  31560. /**
  31561. * @private
  31562. */
  31563. private static _window:any;
  31564. /**
  31565. * @private
  31566. */
  31567. private static _document:any;
  31568. /**
  31569. * @private
  31570. */
  31571. private static _container:any;
  31572. /**
  31573. * @private
  31574. */
  31575. private static _pixelRatio:any;
  31576. /**
  31577. * @private
  31578. */
  31579. static mainCanvas:any;
  31580. /**
  31581. * @private
  31582. */
  31583. private static hanzi:any;
  31584. /**
  31585. * @private
  31586. */
  31587. private static fontMap:any;
  31588. /**
  31589. * @private
  31590. */
  31591. static measureText:Function;
  31592. /**
  31593. * 创建浏览器原生节点。
  31594. * @param type 节点类型。
  31595. * @return 创建的节点对象的引用。
  31596. */
  31597. static createElement(type:string):any;
  31598. /**
  31599. * 返回 Document 对象中拥有指定 id 的第一个对象的引用。
  31600. * @param type 节点id。
  31601. * @return 节点对象。
  31602. */
  31603. static getElementById(type:string):any;
  31604. /**
  31605. * 移除指定的浏览器原生节点对象。
  31606. * @param type 节点对象。
  31607. */
  31608. static removeElement(ele:any):void;
  31609. /**
  31610. * 获取浏览器当前时间戳,单位为毫秒。
  31611. */
  31612. static now():number;
  31613. /**
  31614. * 浏览器窗口可视宽度。
  31615. * 通过分析浏览器信息获得。浏览器多个属性值优先级为:window.innerWidth(包含滚动条宽度) > document.body.clientWidth(不包含滚动条宽度),如果前者为0或为空,则选择后者。
  31616. */
  31617. static readonly clientWidth:number;
  31618. /**
  31619. * 浏览器窗口可视高度。
  31620. * 通过分析浏览器信息获得。浏览器多个属性值优先级为:window.innerHeight(包含滚动条高度) > document.body.clientHeight(不包含滚动条高度) > document.documentElement.clientHeight(不包含滚动条高度),如果前者为0或为空,则选择后者。
  31621. */
  31622. static readonly clientHeight:number;
  31623. /**
  31624. * 浏览器窗口物理宽度。考虑了设备像素比。
  31625. */
  31626. static readonly width:number;
  31627. /**
  31628. * 浏览器窗口物理高度。考虑了设备像素比。
  31629. */
  31630. static readonly height:number;
  31631. /**
  31632. * 获得设备像素比。
  31633. */
  31634. static readonly pixelRatio:number;
  31635. /**
  31636. * 画布容器,用来盛放画布的容器。方便对画布进行控制
  31637. */
  31638. static container:any;
  31639. /**
  31640. * 浏览器原生 window 对象的引用。
  31641. */
  31642. static readonly window:any;
  31643. /**
  31644. * 浏览器原生 document 对象的引用。
  31645. */
  31646. static readonly document:any;
  31647. }
  31648. }
  31649. declare module laya.utils {
  31650. /**
  31651. * <p> <code>Byte</code> 类提供用于优化读取、写入以及处理二进制数据的方法和属性。</p>
  31652. * <p> <code>Byte</code> 类适用于需要在字节层访问数据的高级开发人员。</p>
  31653. */
  31654. class Byte {
  31655. /**
  31656. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。通过 <code>getSystemEndian</code> 可以获取当前系统的字节序。</p>
  31657. * <p> <code>BIG_ENDIAN</code> :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。<br/>
  31658. * <code>LITTLE_ENDIAN</code> :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  31659. */
  31660. static BIG_ENDIAN:string;
  31661. /**
  31662. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。通过 <code>getSystemEndian</code> 可以获取当前系统的字节序。</p>
  31663. * <p> <code>LITTLE_ENDIAN</code> :小端字节序,地址低位存储值的低位,地址高位存储值的高位。<br/>
  31664. * <code>BIG_ENDIAN</code> :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。</p>
  31665. */
  31666. static LITTLE_ENDIAN:string;
  31667. /**
  31668. * @private
  31669. */
  31670. private static _sysEndian:any;
  31671. /**
  31672. * @private 是否为小端数据。
  31673. */
  31674. protected _xd_:boolean;
  31675. /**
  31676. * @private
  31677. */
  31678. private _allocated_:any;
  31679. /**
  31680. * @private 原始数据。
  31681. */
  31682. protected _d_:any;
  31683. /**
  31684. * @private DataView
  31685. */
  31686. protected _u8d_:any;
  31687. /**
  31688. * @private
  31689. */
  31690. protected _pos_:number;
  31691. /**
  31692. * @private
  31693. */
  31694. protected _length:number;
  31695. /**
  31696. * <p>获取当前主机的字节序。</p>
  31697. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。</p>
  31698. * <p> <code>BIG_ENDIAN</code> :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。<br/>
  31699. * <code>LITTLE_ENDIAN</code> :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  31700. * @return 当前系统的字节序。
  31701. */
  31702. static getSystemEndian():string;
  31703. /**
  31704. * 创建一个 <code>Byte</code> 类的实例。
  31705. * @param data 用于指定初始化的元素数目,或者用于初始化的TypedArray对象、ArrayBuffer对象。如果为 null ,则预分配一定的内存空间,当可用空间不足时,优先使用这部分内存,如果还不够,则重新分配所需内存。
  31706. */
  31707. constructor(data?:any);
  31708. /**
  31709. * 获取此对象的 ArrayBuffer 数据,数据只包含有效数据部分。
  31710. */
  31711. readonly buffer:ArrayBuffer;
  31712. /**
  31713. * <p> <code>Byte</code> 实例的字节序。取值为:<code>BIG_ENDIAN</code> 或 <code>BIG_ENDIAN</code> 。</p>
  31714. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。通过 <code>getSystemEndian</code> 可以获取当前系统的字节序。</p>
  31715. * <p> <code>BIG_ENDIAN</code> :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。<br/>
  31716. * <code>LITTLE_ENDIAN</code> :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  31717. */
  31718. endian:string;
  31719. /**
  31720. * <p> <code>Byte</code> 对象的长度(以字节为单位)。</p>
  31721. * <p>如果将长度设置为大于当前长度的值,则用零填充字节数组的右侧;如果将长度设置为小于当前长度的值,将会截断该字节数组。</p>
  31722. * <p>如果要设置的长度大于当前已分配的内存空间的字节长度,则重新分配内存空间,大小为以下两者较大者:要设置的长度、当前已分配的长度的2倍,并将原有数据拷贝到新的内存空间中;如果要设置的长度小于当前已分配的内存空间的字节长度,也会重新分配内存空间,大小为要设置的长度,并将原有数据从头截断为要设置的长度存入新的内存空间中。</p>
  31723. */
  31724. length:number;
  31725. /**
  31726. * @private
  31727. */
  31728. private _resizeBuffer:any;
  31729. /**
  31730. * @private <p>常用于解析固定格式的字节流。</p> <p>先从字节流的当前字节偏移位置处读取一个 <code>Uint16</code> 值,然后以此值为长度,读取此长度的字符串。</p>
  31731. * @return 读取的字符串。
  31732. */
  31733. getString():string;
  31734. /**
  31735. * <p>常用于解析固定格式的字节流。</p>
  31736. * <p>先从字节流的当前字节偏移位置处读取一个 <code>Uint16</code> 值,然后以此值为长度,读取此长度的字符串。</p>
  31737. * @return 读取的字符串。
  31738. */
  31739. readString():string;
  31740. /**
  31741. * @private <p>从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Float32Array</code> 对象并返回此对象。</p> <p><b>注意:</b>返回的 Float32Array 对象,在 JavaScript 环境下,是原生的 HTML5 Float32Array 对象,对此对象的读取操作都是基于运行此程序的当前主机字节序,此顺序可能与实际数据的字节序不同,如果使用此对象进行读取,需要用户知晓实际数据的字节序和当前主机字节序,如果相同,可正常读取,否则需要用户对实际数据(Float32Array.buffer)包装一层 DataView ,使用 DataView 对象可按照指定的字节序进行读取。</p>
  31742. * @param start 开始位置。
  31743. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  31744. * @return 读取的 Float32Array 对象。
  31745. */
  31746. getFloat32Array(start:number,len:number):any;
  31747. /**
  31748. * 从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Float32Array</code> 对象并返回此对象。
  31749. * @param start 开始位置。
  31750. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  31751. * @return 读取的 Float32Array 对象。
  31752. */
  31753. readFloat32Array(start:number,len:number):any;
  31754. /**
  31755. * @private 从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Uint8Array</code> 对象并返回此对象。
  31756. * @param start 开始位置。
  31757. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  31758. * @return 读取的 Uint8Array 对象。
  31759. */
  31760. getUint8Array(start:number,len:number):Uint8Array;
  31761. /**
  31762. * 从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Uint8Array</code> 对象并返回此对象。
  31763. * @param start 开始位置。
  31764. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  31765. * @return 读取的 Uint8Array 对象。
  31766. */
  31767. readUint8Array(start:number,len:number):Uint8Array;
  31768. /**
  31769. * @private <p>从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Int16Array</code> 对象并返回此对象。</p> <p><b>注意:</b>返回的 Int16Array 对象,在 JavaScript 环境下,是原生的 HTML5 Int16Array 对象,对此对象的读取操作都是基于运行此程序的当前主机字节序,此顺序可能与实际数据的字节序不同,如果使用此对象进行读取,需要用户知晓实际数据的字节序和当前主机字节序,如果相同,可正常读取,否则需要用户对实际数据(Int16Array.buffer)包装一层 DataView ,使用 DataView 对象可按照指定的字节序进行读取。</p>
  31770. * @param start 开始读取的字节偏移量位置。
  31771. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  31772. * @return 读取的 Int16Array 对象。
  31773. */
  31774. getInt16Array(start:number,len:number):any;
  31775. /**
  31776. * 从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Int16Array</code> 对象并返回此对象。
  31777. * @param start 开始读取的字节偏移量位置。
  31778. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  31779. * @return 读取的 Uint8Array 对象。
  31780. */
  31781. readInt16Array(start:number,len:number):any;
  31782. /**
  31783. * @private 从字节流的当前字节偏移位置处读取一个 IEEE 754 单精度(32 位)浮点数。
  31784. * @return 单精度(32 位)浮点数。
  31785. */
  31786. getFloat32():number;
  31787. /**
  31788. * 从字节流的当前字节偏移位置处读取一个 IEEE 754 单精度(32 位)浮点数。
  31789. * @return 单精度(32 位)浮点数。
  31790. */
  31791. readFloat32():number;
  31792. /**
  31793. * @private 从字节流的当前字节偏移量位置处读取一个 IEEE 754 双精度(64 位)浮点数。
  31794. * @return 双精度(64 位)浮点数。
  31795. */
  31796. getFloat64():number;
  31797. /**
  31798. * 从字节流的当前字节偏移量位置处读取一个 IEEE 754 双精度(64 位)浮点数。
  31799. * @return 双精度(64 位)浮点数。
  31800. */
  31801. readFloat64():number;
  31802. /**
  31803. * 在字节流的当前字节偏移量位置处写入一个 IEEE 754 单精度(32 位)浮点数。
  31804. * @param value 单精度(32 位)浮点数。
  31805. */
  31806. writeFloat32(value:number):void;
  31807. /**
  31808. * 在字节流的当前字节偏移量位置处写入一个 IEEE 754 双精度(64 位)浮点数。
  31809. * @param value 双精度(64 位)浮点数。
  31810. */
  31811. writeFloat64(value:number):void;
  31812. /**
  31813. * @private 从字节流的当前字节偏移量位置处读取一个 Int32 值。
  31814. * @return Int32 值。
  31815. */
  31816. getInt32():number;
  31817. /**
  31818. * 从字节流的当前字节偏移量位置处读取一个 Int32 值。
  31819. * @return Int32 值。
  31820. */
  31821. readInt32():number;
  31822. /**
  31823. * @private 从字节流的当前字节偏移量位置处读取一个 Uint32 值。
  31824. * @return Uint32 值。
  31825. */
  31826. getUint32():number;
  31827. /**
  31828. * 从字节流的当前字节偏移量位置处读取一个 Uint32 值。
  31829. * @return Uint32 值。
  31830. */
  31831. readUint32():number;
  31832. /**
  31833. * 在字节流的当前字节偏移量位置处写入指定的 Int32 值。
  31834. * @param value 需要写入的 Int32 值。
  31835. */
  31836. writeInt32(value:number):void;
  31837. /**
  31838. * 在字节流的当前字节偏移量位置处写入 Uint32 值。
  31839. * @param value 需要写入的 Uint32 值。
  31840. */
  31841. writeUint32(value:number):void;
  31842. /**
  31843. * @private 从字节流的当前字节偏移量位置处读取一个 Int16 值。
  31844. * @return Int16 值。
  31845. */
  31846. getInt16():number;
  31847. /**
  31848. * 从字节流的当前字节偏移量位置处读取一个 Int16 值。
  31849. * @return Int16 值。
  31850. */
  31851. readInt16():number;
  31852. /**
  31853. * @private 从字节流的当前字节偏移量位置处读取一个 Uint16 值。
  31854. * @return Uint16 值。
  31855. */
  31856. getUint16():number;
  31857. /**
  31858. * 从字节流的当前字节偏移量位置处读取一个 Uint16 值。
  31859. * @return Uint16 值。
  31860. */
  31861. readUint16():number;
  31862. /**
  31863. * 在字节流的当前字节偏移量位置处写入指定的 Uint16 值。
  31864. * @param value 需要写入的Uint16 值。
  31865. */
  31866. writeUint16(value:number):void;
  31867. /**
  31868. * 在字节流的当前字节偏移量位置处写入指定的 Int16 值。
  31869. * @param value 需要写入的 Int16 值。
  31870. */
  31871. writeInt16(value:number):void;
  31872. /**
  31873. * @private 从字节流的当前字节偏移量位置处读取一个 Uint8 值。
  31874. * @return Uint8 值。
  31875. */
  31876. getUint8():number;
  31877. /**
  31878. * 从字节流的当前字节偏移量位置处读取一个 Uint8 值。
  31879. * @return Uint8 值。
  31880. */
  31881. readUint8():number;
  31882. /**
  31883. * 在字节流的当前字节偏移量位置处写入指定的 Uint8 值。
  31884. * @param value 需要写入的 Uint8 值。
  31885. */
  31886. writeUint8(value:number):void;
  31887. /**
  31888. * @private 读取指定长度的 UTF 型字符串。
  31889. * @param len 需要读取的长度。
  31890. * @return 读取的字符串。
  31891. */
  31892. private _rUTF:any;
  31893. /**
  31894. * @private 读取 <code>len</code> 参数指定的长度的字符串。
  31895. * @param len 要读取的字符串的长度。
  31896. * @return 指定长度的字符串。
  31897. */
  31898. getCustomString(len:number):string;
  31899. /**
  31900. * @private 读取 <code>len</code> 参数指定的长度的字符串。
  31901. * @param len 要读取的字符串的长度。
  31902. * @return 指定长度的字符串。
  31903. */
  31904. readCustomString(len:number):string;
  31905. /**
  31906. * 移动或返回 Byte 对象的读写指针的当前位置(以字节为单位)。下一次调用读取方法时将在此位置开始读取,或者下一次调用写入方法时将在此位置开始写入。
  31907. */
  31908. pos:number;
  31909. /**
  31910. * 可从字节流的当前位置到末尾读取的数据的字节数。
  31911. */
  31912. readonly bytesAvailable:number;
  31913. /**
  31914. * 清除字节数组的内容,并将 length 和 pos 属性重置为 0。调用此方法将释放 Byte 实例占用的内存。
  31915. */
  31916. clear():void;
  31917. /**
  31918. * <p>将 UTF-8 字符串写入字节流。类似于 writeUTF() 方法,但 writeUTFBytes() 不使用 16 位长度的字为字符串添加前缀。</p>
  31919. * <p>对应的读取方法为: getUTFBytes 。</p>
  31920. * @param value 要写入的字符串。
  31921. */
  31922. writeUTFBytes(value:string):void;
  31923. /**
  31924. * <p>将 UTF-8 字符串写入字节流。先写入以字节表示的 UTF-8 字符串长度(作为 16 位整数),然后写入表示字符串字符的字节。</p>
  31925. * <p>对应的读取方法为: getUTFString 。</p>
  31926. * @param value 要写入的字符串值。
  31927. */
  31928. writeUTFString(value:string):void;
  31929. /**
  31930. * @private 读取 UTF-8 字符串。
  31931. * @return 读取的字符串。
  31932. */
  31933. readUTFString():string;
  31934. /**
  31935. * <p>从字节流中读取一个 UTF-8 字符串。假定字符串的前缀是一个无符号的短整型(以此字节表示要读取的长度)。</p>
  31936. * <p>对应的写入方法为: writeUTFString 。</p>
  31937. * @return 读取的字符串。
  31938. */
  31939. getUTFString():string;
  31940. /**
  31941. * @private 读字符串,必须是 writeUTFBytes 方法写入的字符串。
  31942. * @param len 要读的buffer长度,默认将读取缓冲区全部数据。
  31943. * @return 读取的字符串。
  31944. */
  31945. readUTFBytes(len?:number):string;
  31946. /**
  31947. * <p>从字节流中读取一个由 length 参数指定的长度的 UTF-8 字节序列,并返回一个字符串。</p>
  31948. * <p>一般读取的是由 writeUTFBytes 方法写入的字符串。</p>
  31949. * @param len 要读的buffer长度,默认将读取缓冲区全部数据。
  31950. * @return 读取的字符串。
  31951. */
  31952. getUTFBytes(len?:number):string;
  31953. /**
  31954. * <p>在字节流中写入一个字节。</p>
  31955. * <p>使用参数的低 8 位。忽略高 24 位。</p>
  31956. * @param value
  31957. */
  31958. writeByte(value:number):void;
  31959. /**
  31960. * <p>从字节流中读取带符号的字节。</p>
  31961. * <p>返回值的范围是从 -128 到 127。</p>
  31962. * @return 介于 -128 和 127 之间的整数。
  31963. */
  31964. readByte():number;
  31965. /**
  31966. * @private 从字节流中读取带符号的字节。
  31967. */
  31968. getByte():number;
  31969. /**
  31970. * <p>将指定 arraybuffer 对象中的以 offset 为起始偏移量, length 为长度的字节序列写入字节流。</p>
  31971. * <p>如果省略 length 参数,则使用默认长度 0,该方法将从 offset 开始写入整个缓冲区;如果还省略了 offset 参数,则写入整个缓冲区。</p>
  31972. * <p>如果 offset 或 length 小于0,本函数将抛出异常。</p>
  31973. * @param arraybuffer 需要写入的 Arraybuffer 对象。
  31974. * @param offset Arraybuffer 对象的索引的偏移量(以字节为单位)
  31975. * @param length 从 Arraybuffer 对象写入到 Byte 对象的长度(以字节为单位)
  31976. */
  31977. writeArrayBuffer(arraybuffer:any,offset?:number,length?:number):void;
  31978. /**
  31979. * 读取ArrayBuffer数据
  31980. * @param length
  31981. * @return
  31982. */
  31983. readArrayBuffer(length:number):ArrayBuffer;
  31984. }
  31985. }
  31986. declare module laya.utils {
  31987. /**
  31988. * @private 对象缓存统一管理类
  31989. */
  31990. class CacheManger {
  31991. /**
  31992. * 单次清理检测允许执行的时间,单位ms。
  31993. */
  31994. static loopTimeLimit:number;
  31995. /**
  31996. * @private
  31997. */
  31998. private static _cacheList:any;
  31999. /**
  32000. * @private 当前检测的索引
  32001. */
  32002. private static _index:any;
  32003. constructor();
  32004. /**
  32005. * 注册cache管理函数
  32006. * @param disposeFunction 释放函数 fun(force:Boolean)
  32007. * @param getCacheListFunction 获取cache列表函数fun():Array
  32008. */
  32009. static regCacheByFunction(disposeFunction:Function,getCacheListFunction:Function):void;
  32010. /**
  32011. * 移除cache管理函数
  32012. * @param disposeFunction 释放函数 fun(force:Boolean)
  32013. * @param getCacheListFunction 获取cache列表函数fun():Array
  32014. */
  32015. static unRegCacheByFunction(disposeFunction:Function,getCacheListFunction:Function):void;
  32016. /**
  32017. * 强制清理所有管理器
  32018. */
  32019. static forceDispose():void;
  32020. /**
  32021. * 开始检测循环
  32022. * @param waitTime 检测间隔时间
  32023. */
  32024. static beginCheck(waitTime?:number):void;
  32025. /**
  32026. * 停止检测循环
  32027. */
  32028. static stopCheck():void;
  32029. /**
  32030. * @private 检测函数
  32031. */
  32032. private static _checkLoop:any;
  32033. }
  32034. }
  32035. declare module laya.utils {
  32036. /**
  32037. * @private
  32038. */
  32039. class CallLater {
  32040. static I:CallLater;
  32041. /**
  32042. * @private
  32043. */
  32044. private _pool:any;
  32045. /**
  32046. * @private
  32047. */
  32048. private _map:any;
  32049. /**
  32050. * @private
  32051. */
  32052. private _laters:any;
  32053. /**
  32054. * @private
  32055. */
  32056. private _getHandler:any;
  32057. /**
  32058. * 延迟执行。
  32059. * @param caller 执行域(this)。
  32060. * @param method 定时器回调函数。
  32061. * @param args 回调参数。
  32062. */
  32063. callLater(caller:any,method:Function,args?:any[]):void;
  32064. /**
  32065. * 立即执行 callLater 。
  32066. * @param caller 执行域(this)。
  32067. * @param method 定时器回调函数。
  32068. */
  32069. runCallLater(caller:any,method:Function):void;
  32070. }
  32071. }
  32072. declare module laya.utils {
  32073. /**
  32074. * <code>ClassUtils</code> 是一个类工具类。
  32075. */
  32076. class ClassUtils {
  32077. /**
  32078. * @private
  32079. */
  32080. private static DrawTypeDic:any;
  32081. /**
  32082. * @private
  32083. */
  32084. private static _temParam:any;
  32085. /**
  32086. * @private
  32087. */
  32088. private static _classMap:any;
  32089. /**
  32090. * @private
  32091. */
  32092. private static _tM:any;
  32093. /**
  32094. * @private
  32095. */
  32096. private static _alpha:any;
  32097. /**
  32098. * 注册 Class 映射,方便在class反射时获取。
  32099. * @param className 映射的名字或者别名。
  32100. * @param classDef 类的全名或者类的引用,全名比如:"laya.display.Sprite"。
  32101. */
  32102. static regClass(className:string,classDef:any):void;
  32103. /**
  32104. * 根据类名短名字注册类,比如传入[Sprite],功能同regClass("Sprite",Sprite);
  32105. * @param classes 类数组
  32106. */
  32107. static regShortClassName(classes:any[]):void;
  32108. /**
  32109. * 返回注册的 Class 映射。
  32110. * @param className 映射的名字。
  32111. */
  32112. static getRegClass(className:string):any;
  32113. /**
  32114. * 根据名字返回类对象。
  32115. * @param className 类名(比如laya.display.Sprite)或者注册的别名(比如Sprite)。
  32116. * @return 类对象
  32117. */
  32118. static getClass(className:string):any;
  32119. /**
  32120. * 根据名称创建 Class 实例。
  32121. * @param className 类名(比如laya.display.Sprite)或者注册的别名(比如Sprite)。
  32122. * @return 返回类的实例。
  32123. */
  32124. static getInstance(className:string):any;
  32125. /**
  32126. * 根据指定的 json 数据创建节点对象。
  32127. * 比如:
  32128. * {
  32129. * "type":"Sprite",
  32130. * "props":{
  32131. * "x":100,
  32132. * "y":50,
  32133. * "name":"item1",
  32134. * "scale":[2,2]
  32135. * },
  32136. * "customProps":{
  32137. * "x":100,
  32138. * "y":50,
  32139. * "name":"item1",
  32140. * "scale":[2,2]
  32141. * },
  32142. * "child":[
  32143. * {
  32144. * "type":"Text",
  32145. * "props":{
  32146. * "text":"this is a test",
  32147. * "var":"label",
  32148. * "rumtime":""
  32149. * }
  32150. * }
  32151. * ]
  32152. * }
  32153. * @param json json字符串或者Object对象。
  32154. * @param node node节点,如果为空,则新创建一个。
  32155. * @param root 根节点,用来设置var定义。
  32156. * @return 生成的节点。
  32157. */
  32158. static createByJson(json:any,node?:any,root?:laya.display.Node,customHandler?:laya.utils.Handler,instanceHandler?:laya.utils.Handler):any;
  32159. /**
  32160. * @private
  32161. */
  32162. private static _getGraphicsFromSprite:any;
  32163. /**
  32164. * @private
  32165. */
  32166. private static _getTransformData:any;
  32167. /**
  32168. * @private
  32169. */
  32170. private static _addGraphicToGraphics:any;
  32171. /**
  32172. * @private
  32173. */
  32174. private static _adptLineData:any;
  32175. /**
  32176. * @private
  32177. */
  32178. private static _adptTextureData:any;
  32179. /**
  32180. * @private
  32181. */
  32182. private static _adptLinesData:any;
  32183. /**
  32184. * @private
  32185. */
  32186. private static _getParams:any;
  32187. /**
  32188. * @private
  32189. */
  32190. private static _getObjVar:any;
  32191. }
  32192. }
  32193. declare module laya.utils {
  32194. /**
  32195. * @private <code>ColorUtils</code> 是一个颜色值处理类。
  32196. */
  32197. class ColorUtils {
  32198. /**
  32199. * @private
  32200. */
  32201. static _SAVE:any;
  32202. /**
  32203. * @private
  32204. */
  32205. static _SAVE_SIZE:number;
  32206. /**
  32207. * @private
  32208. */
  32209. private static _COLOR_MAP:any;
  32210. /**
  32211. * @private
  32212. */
  32213. private static _DEFAULT:any;
  32214. /**
  32215. * @private
  32216. */
  32217. private static _COLODID:any;
  32218. /**
  32219. * rgba 取值范围0-1
  32220. */
  32221. arrColor:any[];
  32222. /**
  32223. * 字符串型颜色值。
  32224. */
  32225. strColor:string;
  32226. /**
  32227. * uint 型颜色值。
  32228. */
  32229. numColor:number;
  32230. /**
  32231. * 根据指定的属性值,创建一个 <code>Color</code> 类的实例。
  32232. * @param value 颜色值,可以是字符串:"#ff0000"或者16进制颜色 0xff0000。
  32233. */
  32234. constructor(value:any);
  32235. /**
  32236. * @private
  32237. */
  32238. static _initDefault():any;
  32239. /**
  32240. * @private 缓存太大,则清理缓存
  32241. */
  32242. static _initSaveMap():void;
  32243. /**
  32244. * 根据指定的属性值,创建并返回一个 <code>Color</code> 类的实例。
  32245. * @param value 颜色值,可以是字符串:"#ff0000"或者16进制颜色 0xff0000。
  32246. * @return 一个 <code>Color</code> 类的实例。
  32247. */
  32248. static create(value:any):ColorUtils;
  32249. }
  32250. }
  32251. declare module laya.utils {
  32252. /**
  32253. * @private <code>Dragging</code> 类是触摸滑动控件。
  32254. */
  32255. class Dragging {
  32256. /**
  32257. * 被拖动的对象。
  32258. */
  32259. target:laya.display.Sprite;
  32260. /**
  32261. * 缓动衰减系数。
  32262. */
  32263. ratio:number;
  32264. /**
  32265. * 单帧最大偏移量。
  32266. */
  32267. maxOffset:number;
  32268. /**
  32269. * 滑动范围。
  32270. */
  32271. area:laya.maths.Rectangle;
  32272. /**
  32273. * 表示拖动是否有惯性。
  32274. */
  32275. hasInertia:boolean;
  32276. /**
  32277. * 橡皮筋最大值。
  32278. */
  32279. elasticDistance:number;
  32280. /**
  32281. * 橡皮筋回弹时间,单位为毫秒。
  32282. */
  32283. elasticBackTime:number;
  32284. /**
  32285. * 事件携带数据。
  32286. */
  32287. data:any;
  32288. private _dragging:any;
  32289. private _clickOnly:any;
  32290. private _elasticRateX:any;
  32291. private _elasticRateY:any;
  32292. private _lastX:any;
  32293. private _lastY:any;
  32294. private _offsetX:any;
  32295. private _offsetY:any;
  32296. private _offsets:any;
  32297. private _disableMouseEvent:any;
  32298. private _tween:any;
  32299. private _parent:any;
  32300. /**
  32301. * 开始拖拽。
  32302. * @param target 待拖拽的 <code>Sprite</code> 对象。
  32303. * @param area 滑动范围。
  32304. * @param hasInertia 拖动是否有惯性。
  32305. * @param elasticDistance 橡皮筋最大值。
  32306. * @param elasticBackTime 橡皮筋回弹时间,单位为毫秒。
  32307. * @param data 事件携带数据。
  32308. * @param disableMouseEvent 鼠标事件是否有效。
  32309. * @param ratio 惯性阻尼系数
  32310. */
  32311. start(target:laya.display.Sprite,area:laya.maths.Rectangle,hasInertia:boolean,elasticDistance:number,elasticBackTime:number,data:any,disableMouseEvent:boolean,ratio?:number):void;
  32312. /**
  32313. * 清除计时器。
  32314. */
  32315. private clearTimer:any;
  32316. /**
  32317. * 停止拖拽。
  32318. */
  32319. stop():void;
  32320. /**
  32321. * 拖拽的循环处理函数。
  32322. */
  32323. private loop:any;
  32324. /**
  32325. * 拖拽区域检测。
  32326. */
  32327. private checkArea:any;
  32328. /**
  32329. * 移动至设定的拖拽区域。
  32330. */
  32331. private backToArea:any;
  32332. /**
  32333. * 舞台的抬起事件侦听函数。
  32334. * @param e Event 对象。
  32335. */
  32336. private onStageMouseUp:any;
  32337. /**
  32338. * 橡皮筋效果检测。
  32339. */
  32340. private checkElastic:any;
  32341. /**
  32342. * 移动。
  32343. */
  32344. private tweenMove:any;
  32345. /**
  32346. * 结束拖拽。
  32347. */
  32348. private clear:any;
  32349. }
  32350. }
  32351. declare module laya.utils {
  32352. /**
  32353. * <code>Ease</code> 类定义了缓动函数,以便实现 <code>Tween</code> 动画的缓动效果。
  32354. */
  32355. class Ease {
  32356. /**
  32357. * @private
  32358. */
  32359. private static HALF_PI:any;
  32360. /**
  32361. * @private
  32362. */
  32363. private static PI2:any;
  32364. /**
  32365. * 定义无加速持续运动。
  32366. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32367. * @param b 指定动画属性的初始值。
  32368. * @param c 指定动画属性的更改总计。
  32369. * @param d 指定运动的持续时间。
  32370. * @return 指定时间的插补属性的值。
  32371. */
  32372. static linearNone(t:number,b:number,c:number,d:number):number;
  32373. /**
  32374. * 定义无加速持续运动。
  32375. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32376. * @param b 指定动画属性的初始值。
  32377. * @param c 指定动画属性的更改总计。
  32378. * @param d 指定运动的持续时间。
  32379. * @return 指定时间的插补属性的值。
  32380. */
  32381. static linearIn(t:number,b:number,c:number,d:number):number;
  32382. /**
  32383. * 定义无加速持续运动。
  32384. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32385. * @param b 指定动画属性的初始值。
  32386. * @param c 指定动画属性的更改总计。
  32387. * @param d 指定运动的持续时间。
  32388. * @return 指定时间的插补属性的值。
  32389. */
  32390. static linearInOut(t:number,b:number,c:number,d:number):number;
  32391. /**
  32392. * 定义无加速持续运动。
  32393. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32394. * @param b 指定动画属性的初始值。
  32395. * @param c 指定动画属性的更改总计。
  32396. * @param d 指定运动的持续时间。
  32397. * @return 指定时间的插补属性的值。
  32398. */
  32399. static linearOut(t:number,b:number,c:number,d:number):number;
  32400. /**
  32401. * 方法以零速率开始运动,然后在执行时加快运动速度。
  32402. * 它的运动是类似一个球落向地板又弹起后,几次逐渐减小的回弹运动。
  32403. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32404. * @param b 指定动画属性的初始值。
  32405. * @param c 指定动画属性的更改总计。
  32406. * @param d 指定运动的持续时间。
  32407. * @return 指定时间的插补属性的值。
  32408. */
  32409. static bounceIn(t:number,b:number,c:number,d:number):number;
  32410. /**
  32411. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  32412. * 它的运动是类似一个球落向地板又弹起后,几次逐渐减小的回弹运动。
  32413. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32414. * @param b 指定动画属性的初始值。
  32415. * @param c 指定动画属性的更改总计。
  32416. * @param d 指定运动的持续时间。
  32417. * @return 指定时间的插补属性的值。
  32418. */
  32419. static bounceInOut(t:number,b:number,c:number,d:number):number;
  32420. /**
  32421. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  32422. * 它的运动是类似一个球落向地板又弹起后,几次逐渐减小的回弹运动。
  32423. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32424. * @param b 指定动画属性的初始值。
  32425. * @param c 指定动画属性的更改总计。
  32426. * @param d 指定运动的持续时间。
  32427. * @return 指定时间的插补属性的值。
  32428. */
  32429. static bounceOut(t:number,b:number,c:number,d:number):number;
  32430. /**
  32431. * 开始时往后运动,然后反向朝目标移动。
  32432. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32433. * @param b 指定动画属性的初始值。
  32434. * @param c 指定动画属性的更改总计。
  32435. * @param d 指定运动的持续时间。
  32436. * @param s 指定过冲量,此处数值越大,过冲越大。
  32437. * @return 指定时间的插补属性的值。
  32438. */
  32439. static backIn(t:number,b:number,c:number,d:number,s?:number):number;
  32440. /**
  32441. * 开始运动时是向后跟踪,再倒转方向并朝目标移动,稍微过冲目标,然后再次倒转方向,回来朝目标移动。
  32442. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32443. * @param b 指定动画属性的初始值。
  32444. * @param c 指定动画属性的更改总计。
  32445. * @param d 指定运动的持续时间。
  32446. * @param s 指定过冲量,此处数值越大,过冲越大。
  32447. * @return 指定时间的插补属性的值。
  32448. */
  32449. static backInOut(t:number,b:number,c:number,d:number,s?:number):number;
  32450. /**
  32451. * 开始运动时是朝目标移动,稍微过冲,再倒转方向回来朝着目标。
  32452. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32453. * @param b 指定动画属性的初始值。
  32454. * @param c 指定动画属性的更改总计。
  32455. * @param d 指定运动的持续时间。
  32456. * @param s 指定过冲量,此处数值越大,过冲越大。
  32457. * @return 指定时间的插补属性的值。
  32458. */
  32459. static backOut(t:number,b:number,c:number,d:number,s?:number):number;
  32460. /**
  32461. * 方法以零速率开始运动,然后在执行时加快运动速度。
  32462. * 其中的运动由按照指数方式衰减的正弦波来定义。
  32463. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32464. * @param b 指定动画属性的初始值。
  32465. * @param c 指定动画属性的更改总计。
  32466. * @param d 指定运动的持续时间。
  32467. * @param a 指定正弦波的幅度。
  32468. * @param p 指定正弦波的周期。
  32469. * @return 指定时间的插补属性的值。
  32470. */
  32471. static elasticIn(t:number,b:number,c:number,d:number,a?:number,p?:number):number;
  32472. /**
  32473. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  32474. * 其中的运动由按照指数方式衰减的正弦波来定义。
  32475. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32476. * @param b 指定动画属性的初始值。
  32477. * @param c 指定动画属性的更改总计。
  32478. * @param d 指定运动的持续时间。
  32479. * @param a 指定正弦波的幅度。
  32480. * @param p 指定正弦波的周期。
  32481. * @return 指定时间的插补属性的值。
  32482. */
  32483. static elasticInOut(t:number,b:number,c:number,d:number,a?:number,p?:number):number;
  32484. /**
  32485. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  32486. * 其中的运动由按照指数方式衰减的正弦波来定义。
  32487. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32488. * @param b 指定动画属性的初始值。
  32489. * @param c 指定动画属性的更改总计。
  32490. * @param d 指定运动的持续时间。
  32491. * @param a 指定正弦波的幅度。
  32492. * @param p 指定正弦波的周期。
  32493. * @return 指定时间的插补属性的值。
  32494. */
  32495. static elasticOut(t:number,b:number,c:number,d:number,a?:number,p?:number):number;
  32496. /**
  32497. * 以零速率开始运动,然后在执行时加快运动速度。
  32498. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32499. * @param b 指定动画属性的初始值。
  32500. * @param c 指定动画属性的更改总计。
  32501. * @param d 指定运动的持续时间。
  32502. * @return 指定时间的插补属性的值。
  32503. */
  32504. static strongIn(t:number,b:number,c:number,d:number):number;
  32505. /**
  32506. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  32507. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32508. * @param b 指定动画属性的初始值。
  32509. * @param c 指定动画属性的更改总计。
  32510. * @param d 指定运动的持续时间。
  32511. * @return 指定时间的插补属性的值。
  32512. */
  32513. static strongInOut(t:number,b:number,c:number,d:number):number;
  32514. /**
  32515. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  32516. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32517. * @param b 指定动画属性的初始值。
  32518. * @param c 指定动画属性的更改总计。
  32519. * @param d 指定运动的持续时间。
  32520. * @return 指定时间的插补属性的值。
  32521. */
  32522. static strongOut(t:number,b:number,c:number,d:number):number;
  32523. /**
  32524. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  32525. * Sine 缓动方程中的运动加速度小于 Quad 方程中的运动加速度。
  32526. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32527. * @param b 指定动画属性的初始值。
  32528. * @param c 指定动画属性的更改总计。
  32529. * @param d 指定运动的持续时间。
  32530. * @return 指定时间的插补属性的值。
  32531. */
  32532. static sineInOut(t:number,b:number,c:number,d:number):number;
  32533. /**
  32534. * 以零速率开始运动,然后在执行时加快运动速度。
  32535. * Sine 缓动方程中的运动加速度小于 Quad 方程中的运动加速度。
  32536. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32537. * @param b 指定动画属性的初始值。
  32538. * @param c 指定动画属性的更改总计。
  32539. * @param d 指定运动的持续时间。
  32540. * @return 指定时间的插补属性的值。
  32541. */
  32542. static sineIn(t:number,b:number,c:number,d:number):number;
  32543. /**
  32544. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  32545. * Sine 缓动方程中的运动加速度小于 Quad 方程中的运动加速度。
  32546. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32547. * @param b 指定动画属性的初始值。
  32548. * @param c 指定动画属性的更改总计。
  32549. * @param d 指定运动的持续时间。
  32550. * @return 指定时间的插补属性的值。
  32551. */
  32552. static sineOut(t:number,b:number,c:number,d:number):number;
  32553. /**
  32554. * 以零速率开始运动,然后在执行时加快运动速度。
  32555. * Quint 缓动方程的运动加速大于 Quart 缓动方程。
  32556. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32557. * @param b 指定动画属性的初始值。
  32558. * @param c 指定动画属性的更改总计。
  32559. * @param d 指定运动的持续时间。
  32560. * @return 指定时间的插补属性的值。
  32561. */
  32562. static quintIn(t:number,b:number,c:number,d:number):number;
  32563. /**
  32564. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  32565. * Quint 缓动方程的运动加速大于 Quart 缓动方程。
  32566. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32567. * @param b 指定动画属性的初始值。
  32568. * @param c 指定动画属性的更改总计。
  32569. * @param d 指定运动的持续时间。
  32570. * @return 指定时间的插补属性的值。
  32571. */
  32572. static quintInOut(t:number,b:number,c:number,d:number):number;
  32573. /**
  32574. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  32575. * Quint 缓动方程的运动加速大于 Quart 缓动方程。
  32576. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32577. * @param b 指定动画属性的初始值。
  32578. * @param c 指定动画属性的更改总计。
  32579. * @param d 指定运动的持续时间。
  32580. * @return 指定时间的插补属性的值。
  32581. */
  32582. static quintOut(t:number,b:number,c:number,d:number):number;
  32583. /**
  32584. * 方法以零速率开始运动,然后在执行时加快运动速度。
  32585. * Quart 缓动方程的运动加速大于 Cubic 缓动方程。
  32586. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32587. * @param b 指定动画属性的初始值。
  32588. * @param c 指定动画属性的更改总计。
  32589. * @param d 指定运动的持续时间。
  32590. * @return 指定时间的插补属性的值。
  32591. */
  32592. static quartIn(t:number,b:number,c:number,d:number):number;
  32593. /**
  32594. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  32595. * Quart 缓动方程的运动加速大于 Cubic 缓动方程。
  32596. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32597. * @param b 指定动画属性的初始值。
  32598. * @param c 指定动画属性的更改总计。
  32599. * @param d 指定运动的持续时间。
  32600. * @return 指定时间的插补属性的值。
  32601. */
  32602. static quartInOut(t:number,b:number,c:number,d:number):number;
  32603. /**
  32604. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  32605. * Quart 缓动方程的运动加速大于 Cubic 缓动方程。
  32606. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32607. * @param b 指定动画属性的初始值。
  32608. * @param c 指定动画属性的更改总计。
  32609. * @param d 指定运动的持续时间。
  32610. * @return 指定时间的插补属性的值。
  32611. */
  32612. static quartOut(t:number,b:number,c:number,d:number):number;
  32613. /**
  32614. * 方法以零速率开始运动,然后在执行时加快运动速度。
  32615. * Cubic 缓动方程的运动加速大于 Quad 缓动方程。
  32616. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32617. * @param b 指定动画属性的初始值。
  32618. * @param c 指定动画属性的更改总计。
  32619. * @param d 指定运动的持续时间。
  32620. * @return 指定时间的插补属性的值。
  32621. */
  32622. static cubicIn(t:number,b:number,c:number,d:number):number;
  32623. /**
  32624. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  32625. * Cubic 缓动方程的运动加速大于 Quad 缓动方程。
  32626. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32627. * @param b 指定动画属性的初始值。
  32628. * @param c 指定动画属性的更改总计。
  32629. * @param d 指定运动的持续时间。
  32630. * @return 指定时间的插补属性的值。
  32631. */
  32632. static cubicInOut(t:number,b:number,c:number,d:number):number;
  32633. /**
  32634. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  32635. * Cubic 缓动方程的运动加速大于 Quad 缓动方程。
  32636. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32637. * @param b 指定动画属性的初始值。
  32638. * @param c 指定动画属性的更改总计。
  32639. * @param d 指定运动的持续时间。
  32640. * @return 指定时间的插补属性的值。
  32641. */
  32642. static cubicOut(t:number,b:number,c:number,d:number):number;
  32643. /**
  32644. * 方法以零速率开始运动,然后在执行时加快运动速度。
  32645. * Quad 缓动方程中的运动加速度等于 100% 缓动的时间轴补间的运动加速度,并且显著小于 Cubic 缓动方程中的运动加速度。
  32646. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32647. * @param b 指定动画属性的初始值。
  32648. * @param c 指定动画属性的更改总计。
  32649. * @param d 指定运动的持续时间。
  32650. * @return 指定时间的插补属性的值。
  32651. */
  32652. static quadIn(t:number,b:number,c:number,d:number):number;
  32653. /**
  32654. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  32655. * Quad 缓动方程中的运动加速度等于 100% 缓动的时间轴补间的运动加速度,并且显著小于 Cubic 缓动方程中的运动加速度。
  32656. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32657. * @param b 指定动画属性的初始值。
  32658. * @param c 指定动画属性的更改总计。
  32659. * @param d 指定运动的持续时间。
  32660. * @return 指定时间的插补属性的值。
  32661. */
  32662. static quadInOut(t:number,b:number,c:number,d:number):number;
  32663. /**
  32664. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  32665. * Quad 缓动方程中的运动加速度等于 100% 缓动的时间轴补间的运动加速度,并且显著小于 Cubic 缓动方程中的运动加速度。
  32666. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32667. * @param b 指定动画属性的初始值。
  32668. * @param c 指定动画属性的更改总计。
  32669. * @param d 指定运动的持续时间。
  32670. * @return 指定时间的插补属性的值。
  32671. */
  32672. static quadOut(t:number,b:number,c:number,d:number):number;
  32673. /**
  32674. * 方法以零速率开始运动,然后在执行时加快运动速度。
  32675. * 其中每个时间间隔是剩余距离减去一个固定比例部分。
  32676. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32677. * @param b 指定动画属性的初始值。
  32678. * @param c 指定动画属性的更改总计。
  32679. * @param d 指定运动的持续时间。
  32680. * @return 指定时间的插补属性的值。
  32681. */
  32682. static expoIn(t:number,b:number,c:number,d:number):number;
  32683. /**
  32684. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  32685. * 其中每个时间间隔是剩余距离减去一个固定比例部分。
  32686. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32687. * @param b 指定动画属性的初始值。
  32688. * @param c 指定动画属性的更改总计。
  32689. * @param d 指定运动的持续时间。
  32690. * @return 指定时间的插补属性的值。
  32691. */
  32692. static expoInOut(t:number,b:number,c:number,d:number):number;
  32693. /**
  32694. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  32695. * 其中每个时间间隔是剩余距离减去一个固定比例部分。
  32696. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32697. * @param b 指定动画属性的初始值。
  32698. * @param c 指定动画属性的更改总计。
  32699. * @param d 指定运动的持续时间。
  32700. * @return 指定时间的插补属性的值。
  32701. */
  32702. static expoOut(t:number,b:number,c:number,d:number):number;
  32703. /**
  32704. * 方法以零速率开始运动,然后在执行时加快运动速度。
  32705. * 缓动方程的运动加速会产生突然的速率变化。
  32706. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32707. * @param b 指定动画属性的初始值。
  32708. * @param c 指定动画属性的更改总计。
  32709. * @param d 指定运动的持续时间。
  32710. * @return 指定时间的插补属性的值。
  32711. */
  32712. static circIn(t:number,b:number,c:number,d:number):number;
  32713. /**
  32714. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  32715. * 缓动方程的运动加速会产生突然的速率变化。
  32716. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32717. * @param b 指定动画属性的初始值。
  32718. * @param c 指定动画属性的更改总计。
  32719. * @param d 指定运动的持续时间。
  32720. * @return 指定时间的插补属性的值。
  32721. */
  32722. static circInOut(t:number,b:number,c:number,d:number):number;
  32723. /**
  32724. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  32725. * 缓动方程的运动加速会产生突然的速率变化。
  32726. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  32727. * @param b 指定动画属性的初始值。
  32728. * @param c 指定动画属性的更改总计。
  32729. * @param d 指定运动的持续时间。
  32730. * @return 指定时间的插补属性的值。
  32731. */
  32732. static circOut(t:number,b:number,c:number,d:number):number;
  32733. }
  32734. }
  32735. declare module laya.utils {
  32736. class FontInfo {
  32737. static EMPTY:FontInfo;
  32738. private static _cache:any;
  32739. private static _gfontID:any;
  32740. private static _lastFont:any;
  32741. private static _lastFontInfo:any;
  32742. static Parse(font:string):FontInfo;
  32743. constructor(font:string);
  32744. setFont(value:string):void;
  32745. }
  32746. }
  32747. declare module laya.utils {
  32748. /**
  32749. * Graphics动画解析器
  32750. * @private
  32751. */
  32752. class GraphicAnimation extends laya.display.FrameAnimation {
  32753. /**
  32754. * @private
  32755. */
  32756. animationList:any[];
  32757. /**
  32758. * @private
  32759. */
  32760. animationDic:any;
  32761. /**
  32762. * @private
  32763. */
  32764. protected _nodeList:any[];
  32765. /**
  32766. * @private
  32767. */
  32768. protected _nodeDefaultProps:any;
  32769. /**
  32770. * @private
  32771. */
  32772. protected _gList:any[];
  32773. /**
  32774. * @private
  32775. */
  32776. protected _nodeIDAniDic:any;
  32777. /**
  32778. * @private
  32779. */
  32780. protected static _drawTextureCmd:any[];
  32781. /**
  32782. * @private
  32783. */
  32784. protected static _temParam:any[];
  32785. /**
  32786. * @private
  32787. */
  32788. private static _I:any;
  32789. /**
  32790. * @private
  32791. */
  32792. private static _rootMatrix:any;
  32793. /**
  32794. * @private
  32795. */
  32796. private _rootNode:any;
  32797. /**
  32798. * @private
  32799. */
  32800. protected _nodeGDic:any;
  32801. /**
  32802. * @private
  32803. */
  32804. private _parseNodeList:any;
  32805. /**
  32806. * @private
  32807. */
  32808. private _calGraphicData:any;
  32809. /**
  32810. * @private
  32811. */
  32812. private _createGraphicData:any;
  32813. /**
  32814. * @private
  32815. */
  32816. protected _createFrameGraphic(frame:number):any;
  32817. protected _updateNodeGraphic(node:any,frame:number,parentTransfrom:laya.maths.Matrix,g:laya.display.Graphics,alpha?:number):void;
  32818. protected _updateNoChilds(tNodeG:GraphicNode,g:laya.display.Graphics):void;
  32819. protected _updateNodeGraphic2(node:any,frame:number,g:laya.display.Graphics):void;
  32820. /**
  32821. * @private
  32822. * @override
  32823. */
  32824. protected _calculateKeyFrames(node:any):void;
  32825. /**
  32826. * @private
  32827. */
  32828. protected getNodeDataByID(nodeID:number):any;
  32829. /**
  32830. * @private
  32831. */
  32832. protected _getParams(obj:any,params:any[],frame:number,obj2:any):any[];
  32833. /**
  32834. * @private
  32835. */
  32836. private _getObjVar:any;
  32837. protected _getNodeGraphicData(nodeID:number,frame:number,rst:GraphicNode):GraphicNode;
  32838. private static _tempMt:any;
  32839. /**
  32840. * @private
  32841. */
  32842. protected _getTextureByUrl(url:string):any;
  32843. /**
  32844. * @private
  32845. */
  32846. setAniData(uiView:any,aniName?:string):void;
  32847. parseByData(aniData:any):any;
  32848. /**
  32849. * @private
  32850. */
  32851. setUpAniData(uiView:any):void;
  32852. /**
  32853. * @private
  32854. */
  32855. protected _clear():void;
  32856. static parseAnimationByData(animationObject:any):any;
  32857. static parseAnimationData(aniData:any):any;
  32858. }
  32859. class GraphicNode {
  32860. skin:string;
  32861. transform:laya.maths.Matrix;
  32862. resultTransform:laya.maths.Matrix;
  32863. width:number;
  32864. height:number;
  32865. alpha:number;
  32866. }
  32867. }
  32868. declare module laya.utils {
  32869. /**
  32870. * <p><code>Handler</code> 是事件处理器类。</p>
  32871. * <p>推荐使用 Handler.create() 方法从对象池创建,减少对象创建消耗。创建的 Handler 对象不再使用后,可以使用 Handler.recover() 将其回收到对象池,回收后不要再使用此对象,否则会导致不可预料的错误。</p>
  32872. * <p><b>注意:</b>由于鼠标事件也用本对象池,不正确的回收及调用,可能会影响鼠标事件的执行。</p>
  32873. */
  32874. class Handler {
  32875. /**
  32876. * @private handler对象池
  32877. */
  32878. protected static _pool:Handler[];
  32879. /**
  32880. * @private
  32881. */
  32882. private static _gid:any;
  32883. /**
  32884. * 执行域(this)。
  32885. */
  32886. caller:Object|null;
  32887. /**
  32888. * 处理方法。
  32889. */
  32890. method:Function|null;
  32891. /**
  32892. * 参数。
  32893. */
  32894. args:any[]|null;
  32895. /**
  32896. * 表示是否只执行一次。如果为true,回调后执行recover()进行回收,回收后会被再利用,默认为false 。
  32897. */
  32898. once:boolean;
  32899. /**
  32900. * @private
  32901. */
  32902. protected _id:number;
  32903. /**
  32904. * 根据指定的属性值,创建一个 <code>Handler</code> 类的实例。
  32905. * @param caller 执行域。
  32906. * @param method 处理函数。
  32907. * @param args 函数参数。
  32908. * @param once 是否只执行一次。
  32909. */
  32910. constructor(caller?:Object|null,method?:Function|null,args?:any[]|null,once?:boolean);
  32911. /**
  32912. * 设置此对象的指定属性值。
  32913. * @param caller 执行域(this)。
  32914. * @param method 回调方法。
  32915. * @param args 携带的参数。
  32916. * @param once 是否只执行一次,如果为true,执行后执行recover()进行回收。
  32917. * @return 返回 handler 本身。
  32918. */
  32919. setTo(caller:any,method:Function|null,args:any[]|null,once?:boolean):Handler;
  32920. /**
  32921. * 执行处理器。
  32922. */
  32923. run():any;
  32924. /**
  32925. * 执行处理器,并携带额外数据。
  32926. * @param data 附加的回调数据,可以是单数据或者Array(作为多参)。
  32927. */
  32928. runWith(data:any):any;
  32929. /**
  32930. * 清理对象引用。
  32931. */
  32932. clear():Handler;
  32933. /**
  32934. * 清理并回收到 Handler 对象池内。
  32935. */
  32936. recover():void;
  32937. /**
  32938. * 从对象池内创建一个Handler,默认会执行一次并立即回收,如果不需要自动回收,设置once参数为false。
  32939. * @param caller 执行域(this)。
  32940. * @param method 回调方法。
  32941. * @param args 携带的参数。
  32942. * @param once 是否只执行一次,如果为true,回调后执行recover()进行回收,默认为true。
  32943. * @return 返回创建的handler实例。
  32944. */
  32945. static create(caller:any,method:Function|null,args?:any[]|null,once?:boolean):Handler;
  32946. }
  32947. }
  32948. declare module laya.utils {
  32949. /**
  32950. * 鼠标点击区域,可以设置绘制一系列矢量图作为点击区域和非点击区域(目前只支持圆形,矩形,多边形)
  32951. */
  32952. class HitArea {
  32953. /**
  32954. * @private
  32955. */
  32956. private static _cmds:any;
  32957. /**
  32958. * @private
  32959. */
  32960. private static _rect:any;
  32961. /**
  32962. * @private
  32963. */
  32964. private static _ptPoint:any;
  32965. /**
  32966. * @private
  32967. */
  32968. private _hit:any;
  32969. /**
  32970. * @private
  32971. */
  32972. private _unHit:any;
  32973. /**
  32974. * 检测对象是否包含指定的点。
  32975. * @param x 点的 X 轴坐标值(水平位置)。
  32976. * @param y 点的 Y 轴坐标值(垂直位置)。
  32977. * @return 如果包含指定的点,则值为 true;否则为 false。
  32978. */
  32979. contains(x:number,y:number):boolean;
  32980. /**
  32981. * 可点击区域,可以设置绘制一系列矢量图作为点击区域(目前只支持圆形,矩形,多边形)
  32982. */
  32983. hit:laya.display.Graphics;
  32984. /**
  32985. * 不可点击区域,可以设置绘制一系列矢量图作为非点击区域(目前只支持圆形,矩形,多边形)
  32986. */
  32987. unHit:laya.display.Graphics;
  32988. }
  32989. }
  32990. declare module laya.utils {
  32991. /**
  32992. * @private <code>HTMLChar</code> 是一个 HTML 字符类。
  32993. */
  32994. class HTMLChar {
  32995. private static _isWordRegExp:any;
  32996. /**
  32997. * x坐标
  32998. */
  32999. x:number;
  33000. /**
  33001. * y坐标
  33002. */
  33003. y:number;
  33004. /**
  33005. * 宽
  33006. */
  33007. width:number;
  33008. /**
  33009. * 高
  33010. */
  33011. height:number;
  33012. /**
  33013. * 表示是否是正常单词(英文|.|数字)。
  33014. */
  33015. isWord:boolean;
  33016. /**
  33017. * 字符。
  33018. */
  33019. char:string|null;
  33020. /**
  33021. * 字符数量。
  33022. */
  33023. charNum:number;
  33024. /**
  33025. * CSS 样式。
  33026. */
  33027. style:any;
  33028. /**
  33029. * 创建实例
  33030. */
  33031. constructor();
  33032. /**
  33033. * 根据指定的字符、宽高、样式,创建一个 <code>HTMLChar</code> 类的实例。
  33034. * @param char 字符。
  33035. * @param w 宽度。
  33036. * @param h 高度。
  33037. * @param style CSS 样式。
  33038. */
  33039. setData(char:string,w:number,h:number,style:any):HTMLChar;
  33040. /**
  33041. * 重置
  33042. */
  33043. reset():HTMLChar;
  33044. /**
  33045. * 回收
  33046. */
  33047. recover():void;
  33048. /**
  33049. * 创建
  33050. */
  33051. static create():HTMLChar;
  33052. }
  33053. }
  33054. declare module laya.utils {
  33055. /**
  33056. * @author laya
  33057. */
  33058. class IStatRender {
  33059. /**
  33060. * 显示性能统计信息。
  33061. * @param x X轴显示位置。
  33062. * @param y Y轴显示位置。
  33063. */
  33064. show(x?:number,y?:number):void;
  33065. /**
  33066. * 激活性能统计
  33067. */
  33068. enable():void;
  33069. /**
  33070. * 隐藏性能统计信息。
  33071. */
  33072. hide():void;
  33073. /**
  33074. * 点击性能统计显示区域的处理函数。
  33075. */
  33076. set_onclick(fn:Function):void;
  33077. isCanvasRender():boolean;
  33078. renderNotCanvas(ctx:any,x:number,y:number):void;
  33079. }
  33080. }
  33081. declare module laya.utils {
  33082. /**
  33083. * <code>Log</code> 类用于在界面内显示日志记录信息。
  33084. * 注意:在加速器内不可使用
  33085. */
  33086. class Log {
  33087. /**
  33088. * @private
  33089. */
  33090. private static _logdiv:any;
  33091. /**
  33092. * @private
  33093. */
  33094. private static _btn:any;
  33095. /**
  33096. * @private
  33097. */
  33098. private static _count:any;
  33099. /**
  33100. * 最大打印数量,超过这个数量,则自动清理一次,默认为50次
  33101. */
  33102. static maxCount:number;
  33103. /**
  33104. * 是否自动滚动到底部,默认为true
  33105. */
  33106. static autoScrollToBottom:boolean;
  33107. /**
  33108. * 激活Log系统,使用方法Laya.init(800,600,Laya.Log);
  33109. */
  33110. static enable():void;
  33111. /**
  33112. * 隐藏/显示日志面板
  33113. */
  33114. static toggle():void;
  33115. /**
  33116. * 增加日志内容。
  33117. * @param value 需要增加的日志内容。
  33118. */
  33119. static print(value:string):void;
  33120. /**
  33121. * 清理日志
  33122. */
  33123. static clear():void;
  33124. }
  33125. }
  33126. declare module laya.utils {
  33127. /**
  33128. * <code>Mouse</code> 类用于控制鼠标光标样式。
  33129. */
  33130. class Mouse {
  33131. /**
  33132. * @private
  33133. */
  33134. private static _style:any;
  33135. /**
  33136. * @private
  33137. */
  33138. private static _preCursor:any;
  33139. /**
  33140. * 设置鼠标样式
  33141. * @param cursorStr 例如auto move no-drop col-resize all-scroll pointer not-allowed row-resize crosshair progress e-resize ne-resize default text n-resize nw-resize help vertical-text s-resize se-resize inherit wait w-resize sw-resize
  33142. */
  33143. static cursor:string;
  33144. /**
  33145. * 隐藏鼠标
  33146. */
  33147. static hide():void;
  33148. /**
  33149. * 显示鼠标
  33150. */
  33151. static show():void;
  33152. }
  33153. }
  33154. declare module laya.utils {
  33155. class PerfData {
  33156. id:number;
  33157. name:string;
  33158. color:number;
  33159. scale:number;
  33160. datas:any[];
  33161. datapos:number;
  33162. constructor(id:number,color:number,name:string,scale:number);
  33163. addData(v:number):void;
  33164. }
  33165. }
  33166. declare module laya.utils {
  33167. class PerfHUD extends laya.display.Sprite {
  33168. private static _lastTm:any;
  33169. private static _now:any;
  33170. private datas:any;
  33171. static DATANUM:number;
  33172. xdata:any[];
  33173. ydata:any[];
  33174. hud_width:number;
  33175. hud_height:number;
  33176. gMinV:number;
  33177. gMaxV:number;
  33178. private textSpace:any;
  33179. static inst:PerfHUD;
  33180. private _now:any;
  33181. private sttm:any;
  33182. static drawTexTm:number;
  33183. constructor();
  33184. now():number;
  33185. start():void;
  33186. end(i:number):void;
  33187. config(w:number,h:number):void;
  33188. addDataDef(id:number,color:number,name:string,scale:number):void;
  33189. updateValue(id:number,v:number):void;
  33190. v2y(v:number):number;
  33191. drawHLine(ctx:laya.resource.Context,v:number,color:string,text:string):void;
  33192. /**
  33193. * @param ctx
  33194. * @param x
  33195. * @param y
  33196. * @override
  33197. */
  33198. customRender(ctx:laya.resource.Context,x:number,y:number):void;
  33199. }
  33200. }
  33201. declare module laya.utils {
  33202. /**
  33203. * <p> <code>Pool</code> 是对象池类,用于对象的存储、重复使用。</p>
  33204. * <p>合理使用对象池,可以有效减少对象创建的开销,避免频繁的垃圾回收,从而优化游戏流畅度。</p>
  33205. */
  33206. class Pool {
  33207. /**
  33208. * @private
  33209. */
  33210. private static _CLSID:any;
  33211. /**
  33212. * @private
  33213. */
  33214. private static POOLSIGN:any;
  33215. /**
  33216. * @private 对象存放池。
  33217. */
  33218. private static _poolDic:any;
  33219. /**
  33220. * 根据对象类型标识字符,获取对象池。
  33221. * @param sign 对象类型标识字符。
  33222. * @return 对象池。
  33223. */
  33224. static getPoolBySign(sign:string):any[];
  33225. /**
  33226. * 清除对象池的对象。
  33227. * @param sign 对象类型标识字符。
  33228. */
  33229. static clearBySign(sign:string):void;
  33230. /**
  33231. * 将对象放到对应类型标识的对象池中。
  33232. * @param sign 对象类型标识字符。
  33233. * @param item 对象。
  33234. */
  33235. static recover(sign:string,item:any):void;
  33236. /**
  33237. * 根据类名进行回收,如果类有类名才进行回收,没有则不回收
  33238. * @param instance 类的具体实例
  33239. */
  33240. static recoverByClass(instance:any):void;
  33241. /**
  33242. * 返回类的唯一标识
  33243. */
  33244. private static _getClassSign:any;
  33245. /**
  33246. * 根据类名回收类的实例
  33247. * @param instance 类的具体实例
  33248. */
  33249. static createByClass(cls:new () => any):any;
  33250. /**
  33251. * <p>根据传入的对象类型标识字符,获取对象池中此类型标识的一个对象实例。</p>
  33252. * <p>当对象池中无此类型标识的对象时,则根据传入的类型,创建一个新的对象返回。</p>
  33253. * @param sign 对象类型标识字符。
  33254. * @param cls 用于创建该类型对象的类。
  33255. * @return 此类型标识的一个对象。
  33256. */
  33257. static getItemByClass(sign:string,cls:new () => any):any;
  33258. /**
  33259. * <p>根据传入的对象类型标识字符,获取对象池中此类型标识的一个对象实例。</p>
  33260. * <p>当对象池中无此类型标识的对象时,则使用传入的创建此类型对象的函数,新建一个对象返回。</p>
  33261. * @param sign 对象类型标识字符。
  33262. * @param createFun 用于创建该类型对象的方法。
  33263. * @param caller this对象
  33264. * @return 此类型标识的一个对象。
  33265. */
  33266. static getItemByCreateFun(sign:string,createFun:Function,caller?:any):any;
  33267. /**
  33268. * 根据传入的对象类型标识字符,获取对象池中已存储的此类型的一个对象,如果对象池中无此类型的对象,则返回 null 。
  33269. * @param sign 对象类型标识字符。
  33270. * @return 对象池中此类型的一个对象,如果对象池中无此类型的对象,则返回 null 。
  33271. */
  33272. static getItem(sign:string):any;
  33273. }
  33274. }
  33275. declare module laya.utils {
  33276. /**
  33277. * @private 基于个数的对象缓存管理器
  33278. */
  33279. class PoolCache {
  33280. /**
  33281. * 对象在Pool中的标识
  33282. */
  33283. sign:string;
  33284. /**
  33285. * 允许缓存的最大数量
  33286. */
  33287. maxCount:number;
  33288. /**
  33289. * 获取缓存的对象列表
  33290. * @return
  33291. */
  33292. getCacheList():any[];
  33293. /**
  33294. * 尝试清理缓存
  33295. * @param force 是否强制清理
  33296. */
  33297. tryDispose(force:boolean):void;
  33298. /**
  33299. * 添加对象缓存管理
  33300. * @param sign 对象在Pool中的标识
  33301. * @param maxCount 允许缓存的最大数量
  33302. */
  33303. static addPoolCacheManager(sign:string,maxCount?:number):void;
  33304. }
  33305. }
  33306. declare module laya.utils {
  33307. /**
  33308. * @private
  33309. */
  33310. class RunDriver {
  33311. static createShaderCondition:Function;
  33312. /**
  33313. * 用于改变 WebGL宽高信息。
  33314. */
  33315. static changeWebGLSize:Function;
  33316. }
  33317. }
  33318. declare module laya.utils {
  33319. /**
  33320. * @private 场景辅助类
  33321. */
  33322. class SceneUtils {
  33323. /**
  33324. * @private
  33325. */
  33326. private static _funMap:any;
  33327. /**
  33328. * @private
  33329. */
  33330. private static _parseWatchData:any;
  33331. /**
  33332. * @private
  33333. */
  33334. private static _parseKeyWord:any;
  33335. static __init():void;
  33336. /**
  33337. * @private 根据字符串,返回函数表达式
  33338. */
  33339. static getBindFun(value:string):Function;
  33340. /**
  33341. * @private 通过视图数据创建视图。
  33342. * @param uiView 视图数据信息。
  33343. */
  33344. static createByData(root:any,uiView:any):any;
  33345. static createInitTool():InitTool;
  33346. /**
  33347. * 根据UI数据实例化组件。
  33348. * @param uiView UI数据。
  33349. * @param comp 组件本体,如果为空,会新创建一个。
  33350. * @param view 组件所在的视图实例,用来注册var全局变量,如果值为空则不注册。
  33351. * @return 一个 Component 对象。
  33352. */
  33353. static createComp(uiView:any,comp?:any,view?:any,dataMap?:any[],initTool?:InitTool):any;
  33354. /**
  33355. * @private 设置组件的属性值。
  33356. * @param comp 组件实例。
  33357. * @param prop 属性名称。
  33358. * @param value 属性值。
  33359. * @param view 组件所在的视图实例,用来注册var全局变量,如果值为空则不注册。
  33360. */
  33361. private static setCompValue:any;
  33362. /**
  33363. * @private 通过组建UI数据,获取组件实例。
  33364. * @param json UI数据。
  33365. * @return Component 对象。
  33366. */
  33367. static getCompInstance(json:any):any;
  33368. }
  33369. /**
  33370. * @private 场景辅助类
  33371. */
  33372. class InitTool {
  33373. /**
  33374. * @private
  33375. */
  33376. private _nodeRefList:any;
  33377. /**
  33378. * @private
  33379. */
  33380. private _initList:any;
  33381. private _loadList:any;
  33382. reset():void;
  33383. recover():void;
  33384. static create():InitTool;
  33385. addLoadRes(url:string,type?:string):void;
  33386. /**
  33387. * @private
  33388. */
  33389. addNodeRef(node:any,prop:string,referStr:string):void;
  33390. /**
  33391. * @private
  33392. */
  33393. setNodeRef():void;
  33394. /**
  33395. * @private
  33396. */
  33397. getReferData(referStr:string):any;
  33398. /**
  33399. * @private
  33400. */
  33401. addInitItem(item:any):void;
  33402. /**
  33403. * @private
  33404. */
  33405. doInits():void;
  33406. /**
  33407. * @private
  33408. */
  33409. finish():void;
  33410. /**
  33411. * @private
  33412. */
  33413. beginLoad(scene:laya.display.Scene):void;
  33414. }
  33415. }
  33416. declare module laya.utils {
  33417. /**
  33418. * <p> <code>Stat</code> 是一个性能统计面板,可以实时更新相关的性能参数。</p>
  33419. * <p>参与统计的性能参数如下(所有参数都是每大约1秒进行更新):<br/>
  33420. * FPS(Canvas)/FPS(WebGL):Canvas 模式或者 WebGL 模式下的帧频,也就是每秒显示的帧数,值越高、越稳定,感觉越流畅;<br/>
  33421. * Sprite:统计所有渲染节点(包括容器)数量,它的大小会影响引擎进行节点遍历、数据组织和渲染的效率。其值越小,游戏运行效率越高;<br/>
  33422. * DrawCall:此值是决定性能的重要指标,其值越小,游戏运行效率越高。Canvas模式下表示每大约1秒的图像绘制次数;WebGL模式下表示每大约1秒的渲染提交批次,每次准备数据并通知GPU渲染绘制的过程称为1次DrawCall,在每次DrawCall中除了在通知GPU的渲染上比较耗时之外,切换材质与shader也是非常耗时的操作;<br/>
  33423. * CurMem:Canvas模式下,表示内存占用大小,值越小越好,过高会导致游戏闪退;WebGL模式下,表示内存与显存的占用,值越小越好;<br/>
  33424. * Shader:是 WebGL 模式独有的性能指标,表示每大约1秒 Shader 提交次数,值越小越好;<br/>
  33425. * Canvas:由三个数值组成,只有设置 CacheAs 后才会有值,默认为0/0/0。从左到右数值的意义分别为:每帧重绘的画布数量 / 缓存类型为"normal"类型的画布数量 / 缓存类型为"bitmap"类型的画布数量。</p>
  33426. */
  33427. class Stat {
  33428. /**
  33429. * 每秒帧数。
  33430. */
  33431. static FPS:number;
  33432. /**
  33433. * 主舞台 <code>Stage</code> 渲染次数计数。
  33434. */
  33435. static loopCount:number;
  33436. /**
  33437. * 着色器请求次数。
  33438. */
  33439. static shaderCall:number;
  33440. /**
  33441. * 渲染批次。
  33442. */
  33443. static renderBatches:number;
  33444. /**
  33445. * 节省的渲染批次。
  33446. */
  33447. static savedRenderBatches:number;
  33448. /**
  33449. * 三角形面数。
  33450. */
  33451. static trianglesFaces:number;
  33452. /**
  33453. * 精灵<code>Sprite</code> 的数量。
  33454. */
  33455. static spriteCount:number;
  33456. /**
  33457. * 精灵渲染使用缓存<code>Sprite</code> 的数量。
  33458. */
  33459. static spriteRenderUseCacheCount:number;
  33460. /**
  33461. * 视锥剔除次数。
  33462. */
  33463. static frustumCulling:number;
  33464. /**
  33465. * 八叉树节点剔除次数。
  33466. */
  33467. static octreeNodeCulling:number;
  33468. /**
  33469. * 画布 canvas 使用标准渲染的次数。
  33470. */
  33471. static canvasNormal:number;
  33472. /**
  33473. * 画布 canvas 使用位图渲染的次数。
  33474. */
  33475. static canvasBitmap:number;
  33476. /**
  33477. * 画布 canvas 缓冲区重绘次数。
  33478. */
  33479. static canvasReCache:number;
  33480. /**
  33481. * 表示当前使用的是否为慢渲染模式。
  33482. */
  33483. static renderSlow:boolean;
  33484. /**
  33485. * 资源管理器所管理资源的累计内存,以字节为单位。
  33486. */
  33487. static gpuMemory:number;
  33488. static cpuMemory:number;
  33489. /**
  33490. * 显示性能统计信息。
  33491. * @param x X轴显示位置。
  33492. * @param y Y轴显示位置。
  33493. */
  33494. static show(x?:number,y?:number):void;
  33495. /**
  33496. * 激活性能统计
  33497. */
  33498. static enable():void;
  33499. /**
  33500. * 隐藏性能统计信息。
  33501. */
  33502. static hide():void;
  33503. /**
  33504. * @private 清零性能统计计算相关的数据。
  33505. */
  33506. static clear():void;
  33507. /**
  33508. * 点击性能统计显示区域的处理函数。
  33509. */
  33510. static onclick:Function;
  33511. }
  33512. }
  33513. declare module laya.utils {
  33514. /**
  33515. * 显示Stat的结果。由于stat会引入很多的循环引用,所以把显示部分拆开
  33516. * @author laya
  33517. */
  33518. class StatUI extends laya.utils.IStatRender {
  33519. private static _fontSize:any;
  33520. private _txt:any;
  33521. private _leftText:any;
  33522. private _canvas:any;
  33523. private _ctx:any;
  33524. private _first:any;
  33525. private _vx:any;
  33526. private _width:any;
  33527. private _height:any;
  33528. private _view:any;
  33529. /**
  33530. * @override 显示性能统计信息。
  33531. * @param x X轴显示位置。
  33532. * @param y Y轴显示位置。
  33533. */
  33534. show(x?:number,y?:number):void;
  33535. private createUIPre:any;
  33536. private createUI:any;
  33537. /**
  33538. * @override 激活性能统计
  33539. */
  33540. enable():void;
  33541. /**
  33542. * @override 隐藏性能统计信息。
  33543. */
  33544. hide():void;
  33545. /**
  33546. * @override 点击性能统计显示区域的处理函数。
  33547. */
  33548. set_onclick(fn:(this:GlobalEventHandlers,ev:MouseEvent) =>any):void;
  33549. /**
  33550. * @private 性能统计参数计算循环处理函数。
  33551. */
  33552. loop():void;
  33553. private renderInfoPre:any;
  33554. private renderInfo:any;
  33555. /**
  33556. * @override
  33557. */
  33558. isCanvasRender():boolean;
  33559. /**
  33560. * @override 非canvas模式的渲染
  33561. */
  33562. renderNotCanvas(ctx:any,x:number,y:number):void;
  33563. }
  33564. }
  33565. declare module laya.utils {
  33566. /**
  33567. * @private <code>StringKey</code> 类用于存取字符串对应的数字。
  33568. */
  33569. class StringKey {
  33570. private _strsToID:any;
  33571. private _idToStrs:any;
  33572. private _length:any;
  33573. /**
  33574. * 添加一个字符。
  33575. * @param str 字符,将作为key 存储相应生成的数字。
  33576. * @return 此字符对应的数字。
  33577. */
  33578. add(str:string):number;
  33579. /**
  33580. * 获取指定字符对应的ID。
  33581. * @param str 字符。
  33582. * @return 此字符对应的ID。
  33583. */
  33584. getID(str:string):number;
  33585. /**
  33586. * 根据指定ID获取对应字符。
  33587. * @param id ID。
  33588. * @return 此id对应的字符。
  33589. */
  33590. getName(id:number):string;
  33591. }
  33592. }
  33593. declare module laya.utils {
  33594. /**
  33595. * 整个缓动结束的时候会调度
  33596. * @eventType Event.COMPLETE
  33597. */
  33598. /**
  33599. * 当缓动到达标签时会调度。
  33600. * @eventType Event.LABEL
  33601. */
  33602. /**
  33603. * <code>TimeLine</code> 是一个用来创建时间轴动画的类。
  33604. */
  33605. class TimeLine extends laya.events.EventDispatcher {
  33606. private _labelDic:any;
  33607. private _tweenDic:any;
  33608. private _tweenDataList:any;
  33609. private _endTweenDataList:any;
  33610. private _currTime:any;
  33611. private _lastTime:any;
  33612. private _startTime:any;
  33613. /**
  33614. * 当前动画数据播放到第几个了
  33615. */
  33616. private _index:any;
  33617. /**
  33618. * 为TWEEN创建属于自己的唯一标识,方便管理
  33619. */
  33620. private _gidIndex:any;
  33621. /**
  33622. * 保留所有对象第一次注册动画时的状态(根据时间跳转时,需要把对象的恢复,再计算接下来的状态)
  33623. */
  33624. private _firstTweenDic:any;
  33625. /**
  33626. * 是否需要排序
  33627. */
  33628. private _startTimeSort:any;
  33629. private _endTimeSort:any;
  33630. /**
  33631. * 是否循环
  33632. */
  33633. private _loopKey:any;
  33634. /**
  33635. * 缩放动画播放的速度。
  33636. */
  33637. scale:number;
  33638. private _frameRate:any;
  33639. private _frameIndex:any;
  33640. private _total:any;
  33641. /**
  33642. * 控制一个对象,从当前点移动到目标点。
  33643. * @param target 要控制的对象。
  33644. * @param props 要控制对象的属性。
  33645. * @param duration 对象TWEEN的时间。
  33646. * @param ease 缓动类型
  33647. * @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)。
  33648. */
  33649. static to(target:any,props:any,duration:number,ease?:Function,offset?:number):TimeLine;
  33650. /**
  33651. * 从 props 属性,缓动到当前状态。
  33652. * @param target target 目标对象(即将更改属性值的对象)
  33653. * @param props 要控制对象的属性
  33654. * @param duration 对象TWEEN的时间
  33655. * @param ease 缓动类型
  33656. * @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)
  33657. */
  33658. static from(target:any,props:any,duration:number,ease?:Function,offset?:number):TimeLine;
  33659. /**
  33660. * 控制一个对象,从当前点移动到目标点。
  33661. * @param target 要控制的对象。
  33662. * @param props 要控制对象的属性。
  33663. * @param duration 对象TWEEN的时间。
  33664. * @param ease 缓动类型
  33665. * @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)。
  33666. */
  33667. to(target:any,props:any,duration:number,ease?:Function,offset?:number):TimeLine;
  33668. /**
  33669. * 从 props 属性,缓动到当前状态。
  33670. * @param target target 目标对象(即将更改属性值的对象)
  33671. * @param props 要控制对象的属性
  33672. * @param duration 对象TWEEN的时间
  33673. * @param ease 缓动类型
  33674. * @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)
  33675. */
  33676. from(target:any,props:any,duration:number,ease?:Function,offset?:number):TimeLine;
  33677. /**
  33678. * @private
  33679. */
  33680. private _create:any;
  33681. /**
  33682. * 在时间队列中加入一个标签。
  33683. * @param label 标签名称。
  33684. * @param offset 标签相对于上个动画的偏移时间(单位:毫秒)。
  33685. */
  33686. addLabel(label:string,offset:number):TimeLine;
  33687. /**
  33688. * 移除指定的标签
  33689. * @param label
  33690. */
  33691. removeLabel(label:string):void;
  33692. /**
  33693. * 动画从整个动画的某一时间开始。
  33694. * @param time (单位:毫秒)。
  33695. */
  33696. gotoTime(time:number):void;
  33697. /**
  33698. * 从指定的标签开始播。
  33699. * @param Label 标签名。
  33700. */
  33701. gotoLabel(Label:string):void;
  33702. /**
  33703. * 暂停整个动画。
  33704. */
  33705. pause():void;
  33706. /**
  33707. * 恢复暂停动画的播放。
  33708. */
  33709. resume():void;
  33710. /**
  33711. * 播放动画。
  33712. * @param timeOrLabel 开启播放的时间点或标签名。
  33713. * @param loop 是否循环播放。
  33714. */
  33715. play(timeOrLabel?:any,loop?:boolean):void;
  33716. /**
  33717. * 更新当前动画。
  33718. */
  33719. private _update:any;
  33720. /**
  33721. * 指定的动画索引处的动画播放完成后,把此动画从列表中删除。
  33722. * @param index
  33723. */
  33724. private _animComplete:any;
  33725. /**
  33726. * @private
  33727. */
  33728. private _complete:any;
  33729. /**
  33730. * @private 得到帧索引
  33731. */
  33732. /**
  33733. * @private 设置帧索引
  33734. */
  33735. index:number;
  33736. /**
  33737. * 得到总帧数。
  33738. */
  33739. readonly total:number;
  33740. /**
  33741. * 重置所有对象,复用对象的时候使用。
  33742. */
  33743. reset():void;
  33744. /**
  33745. * 彻底销毁此对象。
  33746. */
  33747. destroy():void;
  33748. }
  33749. }
  33750. declare module laya.utils {
  33751. /**
  33752. * <code>Timer</code> 是时钟管理类。它是一个单例,不要手动实例化此类,应该通过 Laya.timer 访问。
  33753. */
  33754. class Timer {
  33755. /**
  33756. * @private
  33757. */
  33758. static gSysTimer:Timer;
  33759. /**
  33760. * @private
  33761. */
  33762. private static _pool:any;
  33763. /**
  33764. * @private
  33765. */
  33766. static _mid:number;
  33767. /**
  33768. * 时针缩放。
  33769. */
  33770. scale:number;
  33771. /**
  33772. * 当前帧开始的时间。
  33773. */
  33774. currTimer:number;
  33775. /**
  33776. * 当前的帧数。
  33777. */
  33778. currFrame:number;
  33779. /**
  33780. * @private
  33781. */
  33782. private _map:any;
  33783. /**
  33784. * @private
  33785. */
  33786. private _handlers:any;
  33787. /**
  33788. * @private
  33789. */
  33790. private _temp:any;
  33791. /**
  33792. * @private
  33793. */
  33794. private _count:any;
  33795. /**
  33796. * 创建 <code>Timer</code> 类的一个实例。
  33797. */
  33798. constructor(autoActive?:boolean);
  33799. /**
  33800. * 两帧之间的时间间隔,单位毫秒。
  33801. */
  33802. readonly delta:number;
  33803. /**
  33804. * @private
  33805. */
  33806. private _clearHandlers:any;
  33807. /**
  33808. * @private
  33809. */
  33810. private _recoverHandler:any;
  33811. /**
  33812. * @private
  33813. */
  33814. private _indexHandler:any;
  33815. /**
  33816. * 定时执行一次。
  33817. * @param delay 延迟时间(单位为毫秒)。
  33818. * @param caller 执行域(this)。
  33819. * @param method 定时器回调函数。
  33820. * @param args 回调参数。
  33821. * @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
  33822. */
  33823. once(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  33824. /**
  33825. * 定时重复执行。
  33826. * @param delay 间隔时间(单位毫秒)。
  33827. * @param caller 执行域(this)。
  33828. * @param method 定时器回调函数。
  33829. * @param args 回调参数。
  33830. * @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
  33831. * @param jumpFrame 时钟是否跳帧。基于时间的循环回调,单位时间间隔内,如能执行多次回调,出于性能考虑,引擎默认只执行一次,设置jumpFrame=true后,则回调会连续执行多次
  33832. */
  33833. loop(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean,jumpFrame?:boolean):void;
  33834. /**
  33835. * 定时执行一次(基于帧率)。
  33836. * @param delay 延迟几帧(单位为帧)。
  33837. * @param caller 执行域(this)。
  33838. * @param method 定时器回调函数。
  33839. * @param args 回调参数。
  33840. * @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
  33841. */
  33842. frameOnce(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  33843. /**
  33844. * 定时重复执行(基于帧率)。
  33845. * @param delay 间隔几帧(单位为帧)。
  33846. * @param caller 执行域(this)。
  33847. * @param method 定时器回调函数。
  33848. * @param args 回调参数。
  33849. * @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
  33850. */
  33851. frameLoop(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  33852. /**
  33853. * 返回统计信息。
  33854. */
  33855. toString():string;
  33856. /**
  33857. * 清理定时器。
  33858. * @param caller 执行域(this)。
  33859. * @param method 定时器回调函数。
  33860. */
  33861. clear(caller:any,method:Function):void;
  33862. /**
  33863. * 清理对象身上的所有定时器。
  33864. * @param caller 执行域(this)。
  33865. */
  33866. clearAll(caller:any):void;
  33867. /**
  33868. * @private
  33869. */
  33870. private _getHandler:any;
  33871. /**
  33872. * 延迟执行。
  33873. * @param caller 执行域(this)。
  33874. * @param method 定时器回调函数。
  33875. * @param args 回调参数。
  33876. */
  33877. callLater(caller:any,method:Function,args?:any[]):void;
  33878. /**
  33879. * 立即执行 callLater 。
  33880. * @param caller 执行域(this)。
  33881. * @param method 定时器回调函数。
  33882. */
  33883. runCallLater(caller:any,method:Function):void;
  33884. /**
  33885. * 立即提前执行定时器,执行之后从队列中删除
  33886. * @param caller 执行域(this)。
  33887. * @param method 定时器回调函数。
  33888. */
  33889. runTimer(caller:any,method:Function):void;
  33890. /**
  33891. * 暂停时钟
  33892. */
  33893. pause():void;
  33894. /**
  33895. * 恢复时钟
  33896. */
  33897. resume():void;
  33898. }
  33899. }
  33900. declare module laya.utils {
  33901. /**
  33902. * <code>Tween</code> 是一个缓动类。使用此类能够实现对目标对象属性的渐变。
  33903. */
  33904. class Tween {
  33905. /**
  33906. * @private
  33907. */
  33908. private static tweenMap:any;
  33909. /**
  33910. * @private
  33911. */
  33912. private _complete:any;
  33913. /**
  33914. * @private
  33915. */
  33916. private _target:any;
  33917. /**
  33918. * @private
  33919. */
  33920. private _ease:any;
  33921. /**
  33922. * @private
  33923. */
  33924. private _props:any;
  33925. /**
  33926. * @private
  33927. */
  33928. private _duration:any;
  33929. /**
  33930. * @private
  33931. */
  33932. private _delay:any;
  33933. /**
  33934. * @private
  33935. */
  33936. private _startTimer:any;
  33937. /**
  33938. * @private
  33939. */
  33940. private _usedTimer:any;
  33941. /**
  33942. * @private
  33943. */
  33944. private _usedPool:any;
  33945. /**
  33946. * @private
  33947. */
  33948. private _delayParam:any;
  33949. /**
  33950. * @private 唯一标识,TimeLintLite用到
  33951. */
  33952. gid:number;
  33953. /**
  33954. * 更新回调,缓动数值发生变化时,回调变化的值
  33955. */
  33956. update:laya.utils.Handler;
  33957. /**
  33958. * 重播次数,如果repeat=0,则表示无限循环播放
  33959. */
  33960. repeat:number;
  33961. /**
  33962. * 当前播放次数
  33963. */
  33964. private _count:any;
  33965. /**
  33966. * 缓动对象的props属性到目标值。
  33967. * @param target 目标对象(即将更改属性值的对象)。
  33968. * @param props 变化的属性列表,比如{x:100,y:20,ease:Ease.backOut,complete:Handler.create(this,onComplete),update:new Handler(this,onComplete)}。
  33969. * @param duration 花费的时间,单位毫秒。
  33970. * @param ease 缓动类型,默认为匀速运动。
  33971. * @param complete 结束回调函数。
  33972. * @param delay 延迟执行时间。
  33973. * @param coverBefore 是否覆盖之前的缓动。
  33974. * @param autoRecover 是否自动回收,默认为true,缓动结束之后自动回收到对象池。
  33975. * @return 返回Tween对象。
  33976. */
  33977. static to(target:any,props:any,duration:number,ease?:Function,complete?:laya.utils.Handler,delay?:number,coverBefore?:boolean,autoRecover?:boolean):Tween;
  33978. /**
  33979. * 从props属性,缓动到当前状态。
  33980. * @param target 目标对象(即将更改属性值的对象)。
  33981. * @param props 变化的属性列表,比如{x:100,y:20,ease:Ease.backOut,complete:Handler.create(this,onComplete),update:new Handler(this,onComplete)}。
  33982. * @param duration 花费的时间,单位毫秒。
  33983. * @param ease 缓动类型,默认为匀速运动。
  33984. * @param complete 结束回调函数。
  33985. * @param delay 延迟执行时间。
  33986. * @param coverBefore 是否覆盖之前的缓动。
  33987. * @param autoRecover 是否自动回收,默认为true,缓动结束之后自动回收到对象池。
  33988. * @return 返回Tween对象。
  33989. */
  33990. static from(target:any,props:any,duration:number,ease?:Function,complete?:laya.utils.Handler,delay?:number,coverBefore?:boolean,autoRecover?:boolean):Tween;
  33991. /**
  33992. * 缓动对象的props属性到目标值。
  33993. * @param target 目标对象(即将更改属性值的对象)。
  33994. * @param props 变化的属性列表,比如{x:100,y:20,ease:Ease.backOut,complete:Handler.create(this,onComplete),update:new Handler(this,onComplete)}。
  33995. * @param duration 花费的时间,单位毫秒。
  33996. * @param ease 缓动类型,默认为匀速运动。
  33997. * @param complete 结束回调函数。
  33998. * @param delay 延迟执行时间。
  33999. * @param coverBefore 是否覆盖之前的缓动。
  34000. * @return 返回Tween对象。
  34001. */
  34002. to(target:any,props:any,duration:number,ease?:Function,complete?:laya.utils.Handler,delay?:number,coverBefore?:boolean):Tween;
  34003. /**
  34004. * 从props属性,缓动到当前状态。
  34005. * @param target 目标对象(即将更改属性值的对象)。
  34006. * @param props 变化的属性列表,比如{x:100,y:20,ease:Ease.backOut,complete:Handler.create(this,onComplete),update:new Handler(this,onComplete)}。
  34007. * @param duration 花费的时间,单位毫秒。
  34008. * @param ease 缓动类型,默认为匀速运动。
  34009. * @param complete 结束回调函数。
  34010. * @param delay 延迟执行时间。
  34011. * @param coverBefore 是否覆盖之前的缓动。
  34012. * @return 返回Tween对象。
  34013. */
  34014. from(target:any,props:any,duration:number,ease?:Function,complete?:laya.utils.Handler,delay?:number,coverBefore?:boolean):Tween;
  34015. private firstStart:any;
  34016. private _initProps:any;
  34017. private _beginLoop:any;
  34018. /**
  34019. * 执行缓动*
  34020. */
  34021. private _doEase:any;
  34022. /**
  34023. * 设置当前执行比例*
  34024. */
  34025. progress:number;
  34026. /**
  34027. * 立即结束缓动并到终点。
  34028. */
  34029. complete():void;
  34030. /**
  34031. * 暂停缓动,可以通过resume或restart重新开始。
  34032. */
  34033. pause():void;
  34034. /**
  34035. * 设置开始时间。
  34036. * @param startTime 开始时间。
  34037. */
  34038. setStartTime(startTime:number):void;
  34039. /**
  34040. * 清理指定目标对象上的所有缓动。
  34041. * @param target 目标对象。
  34042. */
  34043. static clearAll(target:any):void;
  34044. /**
  34045. * 清理某个缓动。
  34046. * @param tween 缓动对象。
  34047. */
  34048. static clear(tween:Tween):void;
  34049. /**
  34050. * @private 同clearAll,废弃掉,尽量别用。
  34051. */
  34052. static clearTween(target:any):void;
  34053. /**
  34054. * 停止并清理当前缓动。
  34055. */
  34056. clear():void;
  34057. /**
  34058. * 回收到对象池。
  34059. */
  34060. recover():void;
  34061. private _remove:any;
  34062. /**
  34063. * 重新开始暂停的缓动。
  34064. */
  34065. restart():void;
  34066. /**
  34067. * 恢复暂停的缓动。
  34068. */
  34069. resume():void;
  34070. private static easeNone:any;
  34071. }
  34072. }
  34073. declare module laya.utils {
  34074. /**
  34075. * <code>Utils</code> 是工具类。
  34076. */
  34077. class Utils {
  34078. /**
  34079. * @private
  34080. */
  34081. static gStage:laya.display.Stage;
  34082. /**
  34083. * @private
  34084. */
  34085. private static _gid:any;
  34086. /**
  34087. * @private
  34088. */
  34089. private static _pi:any;
  34090. /**
  34091. * @private
  34092. */
  34093. private static _pi2:any;
  34094. /**
  34095. * @private
  34096. */
  34097. protected static _extReg:RegExp;
  34098. /**
  34099. * 角度转弧度。
  34100. * @param angle 角度值。
  34101. * @return 返回弧度值。
  34102. */
  34103. static toRadian(angle:number):number;
  34104. /**
  34105. * 弧度转换为角度。
  34106. * @param radian 弧度值。
  34107. * @return 返回角度值。
  34108. */
  34109. static toAngle(radian:number):number;
  34110. /**
  34111. * 将传入的 uint 类型颜色值转换为字符串型颜色值。
  34112. * @param color 颜色值。
  34113. * @return 字符串型颜色值。
  34114. */
  34115. static toHexColor(color:number):string;
  34116. /**
  34117. * 获取一个全局唯一ID。
  34118. */
  34119. static getGID():number;
  34120. /**
  34121. * 将字符串解析成 XML 对象。
  34122. * @param value 需要解析的字符串。
  34123. * @return js原生的XML对象。
  34124. */
  34125. static parseXMLFromString:Function;
  34126. /**
  34127. * @private <p>连接数组。和array的concat相比,此方法不创建新对象</p> <b>注意:</b>若 参数 a 不为空,则会改变参数 source 的值为连接后的数组。
  34128. * @param source 待连接的数组目标对象。
  34129. * @param array 待连接的数组对象。
  34130. * @return 连接后的数组。
  34131. */
  34132. static concatArray(source:any[],array:any[]):any[];
  34133. /**
  34134. * @private 清空数组对象。
  34135. * @param array 数组。
  34136. * @return 清空后的 array 对象。
  34137. */
  34138. static clearArray(array:any[]):any[];
  34139. /**
  34140. * @private 清空source数组,复制array数组的值。
  34141. * @param source 需要赋值的数组。
  34142. * @param array 新的数组值。
  34143. * @return 复制后的数据 source 。
  34144. */
  34145. static copyArray(source:any[],array:any[]):any[];
  34146. /**
  34147. * @private 根据传入的显示对象 <code>Sprite</code> 和此显示对象上的 两个点,返回此对象上的两个点在舞台坐标系上组成的最小的矩形区域对象。
  34148. * @param sprite 显示对象 <code>Sprite</code>。
  34149. * @param x0 点一的 X 轴坐标点。
  34150. * @param y0 点一的 Y 轴坐标点。
  34151. * @param x1 点二的 X 轴坐标点。
  34152. * @param y1 点二的 Y 轴坐标点。
  34153. * @return 两个点在舞台坐标系组成的矩形对象 <code>Rectangle</code>。
  34154. */
  34155. static getGlobalRecByPoints(sprite:laya.display.Sprite,x0:number,y0:number,x1:number,y1:number):laya.maths.Rectangle;
  34156. /**
  34157. * 计算传入的显示对象 <code>Sprite</code> 的全局坐标系的坐标和缩放值,返回 <code>Rectangle</code> 对象存放计算出的坐标X值、Y值、ScaleX值、ScaleY值。
  34158. * @param sprite <code>Sprite</code> 对象。
  34159. * @return 矩形对象 <code>Rectangle</code>
  34160. */
  34161. static getGlobalPosAndScale(sprite:laya.display.Sprite):laya.maths.Rectangle;
  34162. /**
  34163. * 给传入的函数绑定作用域,返回绑定后的函数。
  34164. * @param fun 函数对象。
  34165. * @param scope 函数作用域。
  34166. * @return 绑定后的函数。
  34167. */
  34168. static bind(fun:Function,scope:any):Function;
  34169. /**
  34170. * @private 对传入的数组列表,根据子项的属性 Z 值进行重新排序。返回是否已重新排序的 Boolean 值。
  34171. * @param array 子对象数组。
  34172. * @return Boolean 值,表示是否已重新排序。
  34173. */
  34174. static updateOrder(array:any[]):boolean;
  34175. /**
  34176. * @private 批量移动点坐标。
  34177. * @param points 坐标列表。
  34178. * @param x x轴偏移量。
  34179. * @param y y轴偏移量。
  34180. */
  34181. static transPointList(points:any[],x:number,y:number):void;
  34182. /**
  34183. * 解析一个字符串,并返回一个整数。和JS原生的parseInt不同:如果str为空或者非数字,原生返回NaN,这里返回0。
  34184. * @param str 要被解析的字符串。
  34185. * @param radix 表示要解析的数字的基数。默认值为0,表示10进制,其他值介于 2 ~ 36 之间。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数不在上述范围内,则此方法返回 0。
  34186. * @return 返回解析后的数字。
  34187. */
  34188. static parseInt(str:string,radix?:number):number;
  34189. /**
  34190. * @private
  34191. */
  34192. static getFileExtension(path:string):string;
  34193. /**
  34194. * 获取指定区域内相对于窗口左上角的transform。
  34195. * @param coordinateSpace 坐标空间,不能是Stage引用
  34196. * @param x 相对于coordinateSpace的x坐标
  34197. * @param y 相对于coordinateSpace的y坐标
  34198. * @return
  34199. */
  34200. static getTransformRelativeToWindow(coordinateSpace:laya.display.Sprite,x:number,y:number):any;
  34201. /**
  34202. * 使DOM元素使用舞台内的某块区域内。
  34203. * @param dom DOM元素引用
  34204. * @param coordinateSpace 坐标空间,不能是Stage引用
  34205. * @param x 相对于coordinateSpace的x坐标
  34206. * @param y 相对于coordinateSpace的y坐标
  34207. * @param width 宽度
  34208. * @param height 高度
  34209. */
  34210. static fitDOMElementInArea(dom:any,coordinateSpace:laya.display.Sprite,x:number,y:number,width:number,height:number):void;
  34211. /**
  34212. * @private 是否是可用的Texture数组
  34213. * @param textureList
  34214. * @return
  34215. */
  34216. static isOkTextureList(textureList:any[]):boolean;
  34217. /**
  34218. * @private 是否是可用的绘图指令数组
  34219. * @param cmds
  34220. * @return
  34221. */
  34222. static isOKCmdList(cmds:any[]):boolean;
  34223. /**
  34224. * 获得URL参数值
  34225. * @param name 参数名称
  34226. * @return 参数值
  34227. */
  34228. static getQueryString(name:string):string;
  34229. }
  34230. }
  34231. declare module laya.utils {
  34232. /**
  34233. * @private TODO:
  34234. */
  34235. class VectorGraphManager {
  34236. static instance:VectorGraphManager;
  34237. useDic:any;
  34238. shapeDic:any;
  34239. shapeLineDic:any;
  34240. private _id:any;
  34241. private _checkKey:any;
  34242. private _freeIdArray:any;
  34243. constructor();
  34244. static getInstance():VectorGraphManager;
  34245. /**
  34246. * 得到个空闲的ID
  34247. * @return
  34248. */
  34249. getId():number;
  34250. /**
  34251. * 添加一个图形到列表中
  34252. * @param id
  34253. * @param shape
  34254. */
  34255. addShape(id:number,shape:any):void;
  34256. /**
  34257. * 添加一个线图形到列表中
  34258. * @param id
  34259. * @param Line
  34260. */
  34261. addLine(id:number,Line:any):void;
  34262. /**
  34263. * 检测一个对象是否在使用中
  34264. * @param id
  34265. */
  34266. getShape(id:number):void;
  34267. /**
  34268. * 删除一个图形对象
  34269. * @param id
  34270. */
  34271. deleteShape(id:number):void;
  34272. /**
  34273. * 得到缓存列表
  34274. * @return
  34275. */
  34276. getCacheList():any[];
  34277. /**
  34278. * 开始清理状态,准备销毁
  34279. */
  34280. startDispose(key:boolean):void;
  34281. /**
  34282. * 确认销毁
  34283. */
  34284. endDispose():void;
  34285. }
  34286. }
  34287. declare module laya.utils {
  34288. /**
  34289. * 封装弱引用WeakMap
  34290. * 如果支持WeakMap,则使用WeakMap,如果不支持,则用Object代替
  34291. * 注意:如果采用Object,为了防止内存泄漏,则采用定时清理缓存策略
  34292. */
  34293. class WeakObject {
  34294. /**
  34295. * 是否支持WeakMap
  34296. */
  34297. static supportWeakMap:boolean;
  34298. /**
  34299. * 如果不支持WeakMap,则多少时间清理一次缓存,默认10分钟清理一次
  34300. */
  34301. static delInterval:number;
  34302. /**
  34303. * 全局WeakObject单例
  34304. */
  34305. static I:WeakObject;
  34306. /**
  34307. * @private
  34308. */
  34309. private static _keys:any;
  34310. /**
  34311. * @private
  34312. */
  34313. private static _maps:any;
  34314. /**
  34315. * 清理缓存,回收内存
  34316. */
  34317. static clearCache():void;
  34318. constructor();
  34319. /**
  34320. * 设置缓存
  34321. * @param key kye对象,可被回收
  34322. * @param value object对象,可被回收
  34323. */
  34324. set(key:any,value:any):void;
  34325. /**
  34326. * 获取缓存
  34327. * @param key kye对象,可被回收
  34328. */
  34329. get(key:any):any;
  34330. /**
  34331. * 删除缓存
  34332. */
  34333. del(key:any):void;
  34334. /**
  34335. * 是否有缓存
  34336. */
  34337. has(key:any):boolean;
  34338. }
  34339. }
  34340. declare module laya.utils {
  34341. /**
  34342. * @private
  34343. */
  34344. class WordText {
  34345. id:number;
  34346. save:any[];
  34347. toUpperCase:string;
  34348. changed:boolean;
  34349. width:number;
  34350. pageChars:any[];
  34351. startID:number;
  34352. startIDStroke:number;
  34353. lastGCCnt:number;
  34354. splitRender:boolean;
  34355. setText(txt:string):void;
  34356. toString():string;
  34357. readonly length:number;
  34358. charCodeAt(i:number):number;
  34359. charAt(i:number):string;
  34360. /**
  34361. * 自己主动清理缓存,需要把关联的贴图删掉
  34362. * 不做也可以,textrender会自动清理不用的
  34363. * TODO 重用
  34364. */
  34365. cleanCache():void;
  34366. }
  34367. }
  34368. declare module laya.webgl {
  34369. /**
  34370. * ...
  34371. * @author ...
  34372. */
  34373. class BufferState2D extends laya.webgl.BufferStateBase {
  34374. constructor();
  34375. }
  34376. }
  34377. declare module laya.webgl {
  34378. /**
  34379. * ...
  34380. * @author ...
  34381. */
  34382. class BufferStateBase {
  34383. /**
  34384. * @private [只读]
  34385. */
  34386. private _nativeVertexArrayObject:any;
  34387. constructor();
  34388. /**
  34389. * @private
  34390. */
  34391. bind():void;
  34392. /**
  34393. * @private
  34394. */
  34395. unBind():void;
  34396. /**
  34397. * @private
  34398. */
  34399. destroy():void;
  34400. /**
  34401. * @private
  34402. */
  34403. bindForNative():void;
  34404. /**
  34405. * @private
  34406. */
  34407. unBindForNative():void;
  34408. }
  34409. }
  34410. declare module laya.webgl.canvas {
  34411. class BlendMode {
  34412. static activeBlendFunction:Function;
  34413. static NAMES:any[];
  34414. static TOINT:any;
  34415. static NORMAL:string;
  34416. static ADD:string;
  34417. static MULTIPLY:string;
  34418. static SCREEN:string;
  34419. static OVERLAY:string;
  34420. static LIGHT:string;
  34421. static MASK:string;
  34422. static DESTINATIONOUT:string;
  34423. static LIGHTER:string;
  34424. static fns:any[];
  34425. static targetFns:any[];
  34426. static BlendNormal(gl:WebGLRenderingContext):void;
  34427. static BlendAdd(gl:WebGLRenderingContext):void;
  34428. static BlendMultiply(gl:WebGLRenderingContext):void;
  34429. static BlendScreen(gl:WebGLRenderingContext):void;
  34430. static BlendOverlay(gl:WebGLRenderingContext):void;
  34431. static BlendLight(gl:WebGLRenderingContext):void;
  34432. static BlendNormalTarget(gl:WebGLRenderingContext):void;
  34433. static BlendAddTarget(gl:WebGLRenderingContext):void;
  34434. static BlendMultiplyTarget(gl:WebGLRenderingContext):void;
  34435. static BlendScreenTarget(gl:WebGLRenderingContext):void;
  34436. static BlendOverlayTarget(gl:WebGLRenderingContext):void;
  34437. static BlendLightTarget(gl:WebGLRenderingContext):void;
  34438. static BlendMask(gl:WebGLRenderingContext):void;
  34439. static BlendDestinationOut(gl:WebGLRenderingContext):void;
  34440. }
  34441. }
  34442. declare module laya.webgl.canvas {
  34443. class DrawStyle {
  34444. static DEFAULT:DrawStyle;
  34445. _color:laya.utils.ColorUtils;
  34446. static create(value:any):DrawStyle;
  34447. constructor(value:any);
  34448. setValue(value:any):void;
  34449. reset():void;
  34450. toInt():number;
  34451. equal(value:any):boolean;
  34452. toColorStr():string;
  34453. }
  34454. }
  34455. declare module laya.webgl.canvas {
  34456. class Path {
  34457. paths:any[];
  34458. private _curPath:any;
  34459. constructor();
  34460. beginPath(convex:boolean):void;
  34461. closePath():void;
  34462. newPath():void;
  34463. addPoint(pointX:number,pointY:number):void;
  34464. push(points:any[],convex:boolean):void;
  34465. reset():void;
  34466. }
  34467. }
  34468. declare module laya.webgl.canvas.save {
  34469. interface ISaveData{
  34470. isSaveMark():boolean;
  34471. restore(context:laya.resource.Context):void;
  34472. }
  34473. }
  34474. declare module laya.webgl.canvas.save {
  34475. class SaveBase implements laya.webgl.canvas.save.ISaveData {
  34476. static TYPE_ALPHA:number;
  34477. static TYPE_FILESTYLE:number;
  34478. static TYPE_FONT:number;
  34479. static TYPE_LINEWIDTH:number;
  34480. static TYPE_STROKESTYLE:number;
  34481. static TYPE_MARK:number;
  34482. static TYPE_TRANSFORM:number;
  34483. static TYPE_TRANSLATE:number;
  34484. static TYPE_ENABLEMERGE:number;
  34485. static TYPE_TEXTBASELINE:number;
  34486. static TYPE_TEXTALIGN:number;
  34487. static TYPE_GLOBALCOMPOSITEOPERATION:number;
  34488. static TYPE_CLIPRECT:number;
  34489. static TYPE_CLIPRECT_STENCIL:number;
  34490. static TYPE_IBVB:number;
  34491. static TYPE_SHADER:number;
  34492. static TYPE_FILTERS:number;
  34493. static TYPE_FILTERS_TYPE:number;
  34494. static TYPE_COLORFILTER:number;
  34495. private static POOL:any;
  34496. private static _namemap:any;
  34497. private _valueName:any;
  34498. private _value:any;
  34499. private _dataObj:any;
  34500. private _newSubmit:any;
  34501. constructor();
  34502. isSaveMark():boolean;
  34503. restore(context:laya.resource.Context):void;
  34504. static save(context:laya.resource.Context,type:number,dataObj:any,newSubmit:boolean):void;
  34505. }
  34506. }
  34507. declare module laya.webgl.canvas.save {
  34508. class SaveClipRect implements laya.webgl.canvas.save.ISaveData {
  34509. private static POOL:any;
  34510. private _globalClipMatrix:any;
  34511. private _clipInfoID:any;
  34512. incache:boolean;
  34513. isSaveMark():boolean;
  34514. restore(context:laya.resource.Context):void;
  34515. static save(context:laya.resource.Context):void;
  34516. }
  34517. }
  34518. declare module laya.webgl.canvas.save {
  34519. class SaveMark implements laya.webgl.canvas.save.ISaveData {
  34520. private static POOL:any;
  34521. constructor();
  34522. isSaveMark():boolean;
  34523. restore(context:laya.resource.Context):void;
  34524. static Create(context:laya.resource.Context):SaveMark;
  34525. }
  34526. }
  34527. declare module laya.webgl.canvas.save {
  34528. class SaveTransform implements laya.webgl.canvas.save.ISaveData {
  34529. private static POOL:any;
  34530. constructor();
  34531. isSaveMark():boolean;
  34532. restore(context:laya.resource.Context):void;
  34533. static save(context:laya.resource.Context):void;
  34534. }
  34535. }
  34536. declare module laya.webgl.canvas.save {
  34537. class SaveTranslate implements laya.webgl.canvas.save.ISaveData {
  34538. private static POOL:any;
  34539. isSaveMark():boolean;
  34540. restore(context:laya.resource.Context):void;
  34541. static save(context:laya.resource.Context):void;
  34542. }
  34543. }
  34544. declare module laya.webgl.canvas {
  34545. /**
  34546. * 对象 cacheas normal的时候,本质上只是想把submit缓存起来,以后直接执行
  34547. * 为了避免各种各样的麻烦,这里采用复制相应部分的submit的方法。执行环境还是在原来的context中
  34548. * 否则包括clip等都非常难以处理
  34549. */
  34550. class WebGLCacheAsNormalCanvas {
  34551. submitStartPos:number;
  34552. submitEndPos:number;
  34553. context:laya.resource.Context;
  34554. touches:any[];
  34555. submits:any[];
  34556. sprite:laya.display.Sprite;
  34557. private _pathMesh:any;
  34558. private _triangleMesh:any;
  34559. meshlist:any[];
  34560. private _oldMesh:any;
  34561. private _oldPathMesh:any;
  34562. private _oldTriMesh:any;
  34563. private _oldMeshList:any;
  34564. private cachedClipInfo:any;
  34565. private oldTx:any;
  34566. private oldTy:any;
  34567. private static matI:any;
  34568. invMat:laya.maths.Matrix;
  34569. constructor(ctx:laya.resource.Context,sp:laya.display.Sprite);
  34570. startRec():void;
  34571. endRec():void;
  34572. /**
  34573. * 当前缓存是否还有效。例如clip变了就失效了,因为clip太难自动处理
  34574. * @return
  34575. */
  34576. isCacheValid():boolean;
  34577. flushsubmit():void;
  34578. releaseMem():void;
  34579. }
  34580. }
  34581. declare module laya.webgl {
  34582. /**
  34583. * @private
  34584. */
  34585. class LayaGPU {
  34586. /**
  34587. * @private
  34588. */
  34589. private static _extentionVendorPrefixes:any;
  34590. /**
  34591. * @private
  34592. */
  34593. private _gl:any;
  34594. /**
  34595. * @private
  34596. */
  34597. private _vaoExt:any;
  34598. /**
  34599. * @private
  34600. */
  34601. private _angleInstancedArrays:any;
  34602. /**
  34603. * @private
  34604. */
  34605. constructor(gl:any,isWebGL2:boolean);
  34606. /**
  34607. * @private
  34608. */
  34609. private _getExtension:any;
  34610. /**
  34611. * @private
  34612. */
  34613. createVertexArray():any;
  34614. /**
  34615. * @private
  34616. */
  34617. bindVertexArray(vertexArray:any):void;
  34618. /**
  34619. * @private
  34620. */
  34621. deleteVertexArray(vertexArray:any):void;
  34622. /**
  34623. * @private
  34624. */
  34625. isVertexArray(vertexArray:any):void;
  34626. /**
  34627. * @private
  34628. */
  34629. drawElementsInstanced(mode:number,count:number,type:number,offset:number,instanceCount:number):void;
  34630. /**
  34631. * @private
  34632. */
  34633. drawArraysInstanced(mode:number,first:number,count:number,instanceCount:number):void;
  34634. /**
  34635. * @private
  34636. */
  34637. vertexAttribDivisor(index:number,divisor:number):void;
  34638. /**
  34639. * @private
  34640. */
  34641. supportInstance():boolean;
  34642. }
  34643. }
  34644. declare module laya.webgl.shader {
  34645. /**
  34646. * ...
  34647. * @author ...
  34648. */
  34649. class BaseShader extends laya.resource.Resource {
  34650. static activeShader:BaseShader|null;
  34651. static bindShader:BaseShader;
  34652. constructor();
  34653. }
  34654. }
  34655. declare module laya.webgl.shader.d2 {
  34656. class Shader2D {
  34657. ALPHA:number;
  34658. shader:laya.webgl.shader.Shader;
  34659. filters:any[];
  34660. defines:laya.webgl.shader.d2.ShaderDefines2D;
  34661. shaderType:number;
  34662. colorAdd:any[];
  34663. fillStyle:laya.webgl.canvas.DrawStyle;
  34664. strokeStyle:laya.webgl.canvas.DrawStyle;
  34665. destroy():void;
  34666. static __init__():void;
  34667. }
  34668. }
  34669. declare module laya.webgl.shader.d2 {
  34670. class Shader2X extends laya.webgl.shader.Shader {
  34671. _params2dQuick2:any[]|null;
  34672. _shaderValueWidth:number;
  34673. _shaderValueHeight:number;
  34674. constructor(vs:string,ps:string,saveName?:any,nameMap?:any,bindAttrib?:any[]|null);
  34675. /**
  34676. * @override
  34677. */
  34678. protected _disposeResource():void;
  34679. upload2dQuick2(shaderValue:laya.webgl.shader.ShaderValue):void;
  34680. _make2dQuick2():any[];
  34681. static create(vs:string,ps:string,saveName?:any,nameMap?:any,bindAttrib?:any[]|null):laya.webgl.shader.Shader;
  34682. }
  34683. }
  34684. declare module laya.webgl.shader.d2 {
  34685. class ShaderDefines2D extends laya.webgl.shader.ShaderDefinesBase {
  34686. static TEXTURE2D:number;
  34687. static PRIMITIVE:number;
  34688. static FILTERGLOW:number;
  34689. static FILTERBLUR:number;
  34690. static FILTERCOLOR:number;
  34691. static COLORADD:number;
  34692. static WORLDMAT:number;
  34693. static FILLTEXTURE:number;
  34694. static SKINMESH:number;
  34695. static SHADERDEFINE_FSHIGHPRECISION:number;
  34696. static MVP3D:number;
  34697. static NOOPTMASK:number;
  34698. private static __name2int:any;
  34699. private static __int2name:any;
  34700. private static __int2nameMap:any;
  34701. static __init__():void;
  34702. constructor();
  34703. static reg(name:string,value:number):void;
  34704. static toText(value:number,int2name:any[],int2nameMap:any):any;
  34705. static toInt(names:string):number;
  34706. }
  34707. }
  34708. declare module laya.webgl.shader.d2.skinAnishader {
  34709. class SkinMeshBuffer {
  34710. ib:laya.webgl.utils.IndexBuffer2D;
  34711. vb:laya.webgl.utils.VertexBuffer2D;
  34712. static instance:SkinMeshBuffer;
  34713. constructor();
  34714. static getInstance():SkinMeshBuffer;
  34715. addSkinMesh(skinMesh:any):void;
  34716. reset():void;
  34717. }
  34718. }
  34719. declare module laya.webgl.shader.d2.skinAnishader {
  34720. class SkinSV extends laya.webgl.shader.d2.value.Value2D {
  34721. texcoord:any;
  34722. position:any;
  34723. offsetX:number;
  34724. offsetY:number;
  34725. constructor(type:any);
  34726. }
  34727. }
  34728. declare module laya.webgl.shader.d2.value {
  34729. class PrimitiveSV extends laya.webgl.shader.d2.value.Value2D {
  34730. constructor(args:any);
  34731. }
  34732. }
  34733. declare module laya.webgl.shader.d2.value {
  34734. class TextureSV extends laya.webgl.shader.d2.value.Value2D {
  34735. u_colorMatrix:any[];
  34736. strength:number;
  34737. blurInfo:any[];
  34738. colorMat:Float32Array;
  34739. colorAlpha:Float32Array;
  34740. constructor(subID?:number);
  34741. /**
  34742. * @override
  34743. */
  34744. clear():void;
  34745. }
  34746. }
  34747. declare module laya.webgl.shader.d2.value {
  34748. class Value2D {
  34749. protected static _cache:any[];
  34750. protected static _typeClass:any;
  34751. static TEMPMAT4_ARRAY:any[];
  34752. static _initone(type:number,classT:any):void;
  34753. static __init__():void;
  34754. defines:laya.webgl.shader.d2.ShaderDefines2D;
  34755. size:any[];
  34756. alpha:number;
  34757. mmat:any[];
  34758. u_MvpMatrix:any[];
  34759. texture:any;
  34760. ALPHA:number;
  34761. shader:laya.webgl.shader.Shader;
  34762. mainID:number;
  34763. subID:number;
  34764. filters:any[];
  34765. textureHost:laya.resource.Texture;
  34766. color:any[];
  34767. colorAdd:any[];
  34768. u_mmat2:any[];
  34769. ref:number;
  34770. protected _attribLocation:any[];
  34771. private _inClassCache:any;
  34772. private _cacheID:any;
  34773. clipMatDir:any[];
  34774. clipMatPos:any[];
  34775. clipOff:any[];
  34776. constructor(mainID:number,subID:number);
  34777. setValue(value:laya.webgl.shader.d2.Shader2D):void;
  34778. private _ShaderWithCompile:any;
  34779. upload():void;
  34780. setFilters(value:any[]):void;
  34781. clear():void;
  34782. release():void;
  34783. static create(mainType:number,subType:number):Value2D;
  34784. }
  34785. }
  34786. declare module laya.webgl.shader {
  34787. class Shader extends laya.webgl.shader.BaseShader {
  34788. private static _count:any;
  34789. private _attribInfo:any;
  34790. static SHADERNAME2ID:number;
  34791. static nameKey:laya.utils.StringKey;
  34792. static sharders:any[];
  34793. static getShader(name:any):Shader;
  34794. static create(vs:string,ps:string,saveName?:any,nameMap?:any,bindAttrib?:any[]):Shader;
  34795. /**
  34796. * 根据宏动态生成shader文件,支持#include?COLOR_FILTER "parts/ColorFilter_ps_logic.glsl";条件嵌入文件
  34797. * @param name
  34798. * @param vs
  34799. * @param ps
  34800. * @param define 宏定义,格式:{name:value...}
  34801. * @return
  34802. */
  34803. static withCompile(nameID:number,define:any,shaderName:any,createShader:Function):Shader;
  34804. /**
  34805. * 根据宏动态生成shader文件,支持#include?COLOR_FILTER "parts/ColorFilter_ps_logic.glsl";条件嵌入文件
  34806. * @param name
  34807. * @param vs
  34808. * @param ps
  34809. * @param define 宏定义,格式:{name:value...}
  34810. * @return
  34811. */
  34812. static withCompile2D(nameID:number,mainID:number,define:any,shaderName:any,createShader:Function,bindAttrib?:any[]):Shader;
  34813. static addInclude(fileName:string,txt:string):void;
  34814. /**
  34815. * 预编译shader文件,主要是处理宏定义
  34816. * @param nameID ,一般是特殊宏+shaderNameID*0.0002组成的一个浮点数当做唯一标识
  34817. * @param vs
  34818. * @param ps
  34819. */
  34820. static preCompile(nameID:number,vs:string,ps:string,nameMap:any):void;
  34821. /**
  34822. * 预编译shader文件,主要是处理宏定义
  34823. * @param nameID ,一般是特殊宏+shaderNameID*0.0002组成的一个浮点数当做唯一标识
  34824. * @param vs
  34825. * @param ps
  34826. */
  34827. static preCompile2D(nameID:number,mainID:number,vs:string,ps:string,nameMap:any):void;
  34828. private customCompile:any;
  34829. private _nameMap:any;
  34830. private _vs:any;
  34831. private _ps:any;
  34832. private _curActTexIndex:any;
  34833. private _reCompile:any;
  34834. tag:any;
  34835. /**
  34836. * 根据vs和ps信息生成shader对象
  34837. * 把自己存储在 sharders 数组中
  34838. * @param vs
  34839. * @param ps
  34840. * @param name :
  34841. * @param nameMap 帮助里要详细解释为什么需要nameMap
  34842. */
  34843. constructor(vs:string,ps:string,saveName?:any,nameMap?:any,bindAttrib?:any[]|null);
  34844. protected recreateResource():void;
  34845. /**
  34846. * @override
  34847. */
  34848. protected _disposeResource():void;
  34849. private _compile:any;
  34850. private static _createShader:any;
  34851. /**
  34852. * 根据变量名字获得
  34853. * @param name
  34854. * @return
  34855. */
  34856. getUniform(name:string):any;
  34857. private _uniform1f:any;
  34858. private _uniform1fv:any;
  34859. private _uniform_vec2:any;
  34860. private _uniform_vec2v:any;
  34861. private _uniform_vec3:any;
  34862. private _uniform_vec3v:any;
  34863. private _uniform_vec4:any;
  34864. private _uniform_vec4v:any;
  34865. private _uniformMatrix2fv:any;
  34866. private _uniformMatrix3fv:any;
  34867. private _uniformMatrix4fv:any;
  34868. private _uniform1i:any;
  34869. private _uniform1iv:any;
  34870. private _uniform_ivec2:any;
  34871. private _uniform_ivec2v:any;
  34872. private _uniform_vec3i:any;
  34873. private _uniform_vec3vi:any;
  34874. private _uniform_vec4i:any;
  34875. private _uniform_vec4vi:any;
  34876. private _uniform_sampler2D:any;
  34877. private _uniform_samplerCube:any;
  34878. private _noSetValue:any;
  34879. uploadOne(name:string,value:any):void;
  34880. uploadTexture2D(value:any):void;
  34881. /**
  34882. * 提交shader到GPU
  34883. * @param shaderValue
  34884. */
  34885. upload(shaderValue:laya.webgl.shader.ShaderValue,params?:any[]):void;
  34886. /**
  34887. * 按数组的定义提交
  34888. * @param shaderValue 数组格式[name,value,...]
  34889. */
  34890. uploadArray(shaderValue:any[],length:number,_bufferUsage:any):void;
  34891. /**
  34892. * 得到编译后的变量及相关预定义
  34893. * @return
  34894. */
  34895. getParams():any[];
  34896. /**
  34897. * 设置shader里面的attribute绑定到哪个location,必须与mesh2d的对应起来,
  34898. * 这个必须在编译之前设置。
  34899. * @param attribDesc 属性描述,格式是 [attributeName, location, attributeName, location ... ]
  34900. */
  34901. setAttributesLocation(attribDesc:any[]):void;
  34902. }
  34903. }
  34904. declare module laya.webgl.shader {
  34905. class ShaderDefinesBase {
  34906. private _name2int:any;
  34907. private _int2name:any;
  34908. private _int2nameMap:any;
  34909. constructor(name2int:any,int2name:any[],int2nameMap:any[]);
  34910. add(value:any):number;
  34911. addInt(value:number):number;
  34912. remove(value:any):number;
  34913. isDefine(def:number):boolean;
  34914. getValue():number;
  34915. setValue(value:number):void;
  34916. toNameDic():any;
  34917. static _reg(name:string,value:number,_name2int:any,_int2name:any[]):void;
  34918. static _toText(value:number,_int2name:any[],_int2nameMap:any):any;
  34919. static _toInt(names:string,_name2int:any):number;
  34920. }
  34921. }
  34922. declare module laya.webgl.shader {
  34923. class ShaderValue {
  34924. constructor();
  34925. }
  34926. }
  34927. declare module laya.webgl.shapes {
  34928. class BasePoly {
  34929. private static tempData:any;
  34930. /**
  34931. * 构造线的三角形数据。根据一个位置数组生成vb和ib
  34932. * @param p
  34933. * @param indices
  34934. * @param lineWidth
  34935. * @param indexBase 顶点开始的值,ib中的索引会加上这个
  34936. * @param outVertex
  34937. * @return
  34938. */
  34939. static createLine2(p:any[],indices:any[],lineWidth:number,indexBase:number,outVertex:any[],loop:boolean):any[];
  34940. /**
  34941. * 相邻的两段线,边界会相交,这些交点可以作为三角形的顶点。有两种可选,一种是采用左左,右右交点,一种是采用 左右,左右交点。当两段线夹角很小的时候,如果采用
  34942. * 左左,右右会产生很长很长的交点,这时候就要采用左右左右交点,相当于把尖角截断。
  34943. * 当采用左左右右交点的时候,直接用切线的垂线。采用左右左右的时候,用切线
  34944. * 切线直接采用两个方向的平均值。不能用3-1的方式,那样垂线和下一段可能都在同一方向(例如都在右方)
  34945. * 注意把重合的点去掉
  34946. * @param path
  34947. * @param color
  34948. * @param width
  34949. * @param loop
  34950. * @param outvb
  34951. * @param vbstride 顶点占用几个float,(bytelength/4)
  34952. * @param outib test: 横线 [100,100, 400,100] 竖线 [100,100, 100,400] 直角 [100,100, 400,100, 400,400] 重合点 [100,100,100,100,400,100] 同一直线上的点 [100,100,100,200,100,3000] 像老式电视的左边不封闭的图形 [98,176, 163,178, 95,66, 175,177, 198,178, 252,56, 209,178, 248,175, 248,266, 209,266, 227,277, 203,280, 188,271, 150,271, 140,283, 122,283, 131,268, 99,268]
  34953. */
  34954. static createLineTriangle(path:any[],color:number,width:number,loop:boolean,outvb:Float32Array,vbstride:number,outib:Uint16Array):void;
  34955. }
  34956. }
  34957. declare module laya.webgl.shapes {
  34958. class Earcut {
  34959. static earcut(data:any,holeIndices:any,dim:any):any;
  34960. static linkedList(data:any,start:any,end:any,dim:any,clockwise:any):any;
  34961. static filterPoints(start:any,end:any):any;
  34962. static earcutLinked(ear:any,triangles:any,dim:any,minX:any,minY:any,invSize:any,pass?:any):any;
  34963. static isEar(ear:any):any;
  34964. static isEarHashed(ear:any,minX:any,minY:any,invSize:any):boolean;
  34965. static cureLocalIntersections(start:any,triangles:any,dim:any):any;
  34966. static splitEarcut(start:any,triangles:any,dim:any,minX:any,minY:any,invSize:any):void;
  34967. static eliminateHoles(data:any,holeIndices:any,outerNode:any,dim:any):any;
  34968. static compareX(a:any,b:any):any;
  34969. static eliminateHole(hole:any,outerNode:any):void;
  34970. static findHoleBridge(hole:any,outerNode:any):any;
  34971. static indexCurve(start:any,minX:any,minY:any,invSize:any):void;
  34972. static sortLinked(list:any):any;
  34973. static zOrder(x:any,y:any,minX:any,minY:any,invSize:any):any;
  34974. static getLeftmost(start:any):any;
  34975. static pointInTriangle(ax:any,ay:any,bx:any,by:any,cx:any,cy:any,px:any,py:any):boolean;
  34976. static isValidDiagonal(a:any,b:any):boolean;
  34977. static area(p:any,q:any,r:any):any;
  34978. static equals(p1:any,p2:any):boolean;
  34979. static intersects(p1:any,q1:any,p2:any,q2:any):boolean;
  34980. static intersectsPolygon(a:any,b:any):boolean;
  34981. static locallyInside(a:any,b:any):boolean;
  34982. static middleInside(a:any,b:any):boolean;
  34983. static splitPolygon(a:any,b:any):any;
  34984. static insertNode(i:any,x:any,y:any,last:any):any;
  34985. static removeNode(p:any):void;
  34986. static signedArea(data:any,start:any,end:any,dim:any):any;
  34987. }
  34988. }
  34989. declare module laya.webgl.shapes {
  34990. class EarcutNode {
  34991. i:any;
  34992. x:any;
  34993. y:any;
  34994. prev:any;
  34995. next:any;
  34996. z:any;
  34997. prevZ:any;
  34998. nextZ:any;
  34999. steiner:any;
  35000. constructor(i:any,x:any,y:any);
  35001. }
  35002. }
  35003. declare module laya.webgl.submit {
  35004. interface ISubmit{
  35005. renderSubmit():number;
  35006. getRenderType():number;
  35007. releaseRender():void;
  35008. }
  35009. }
  35010. declare module laya.webgl.submit {
  35011. class Submit extends laya.webgl.submit.SubmitBase {
  35012. protected static _poolSize:number;
  35013. protected static POOL:any[];
  35014. constructor(renderType?:number);
  35015. /**
  35016. * @override
  35017. */
  35018. renderSubmit():number;
  35019. /**
  35020. * @override
  35021. */
  35022. releaseRender():void;
  35023. static create(context:laya.resource.Context,mesh:laya.webgl.utils.Mesh2D,sv:laya.webgl.shader.d2.value.Value2D):Submit;
  35024. /**
  35025. * 创建一个矢量submit
  35026. * @param ctx
  35027. * @param mesh
  35028. * @param numEle 对应drawElement的第二个参数:count
  35029. * @param offset drawElement的时候的ib的偏移。
  35030. * @param sv Value2D
  35031. * @return
  35032. */
  35033. static createShape(ctx:laya.resource.Context,mesh:laya.webgl.utils.Mesh2D,numEle:number,sv:laya.webgl.shader.d2.value.Value2D):Submit;
  35034. }
  35035. }
  35036. declare module laya.webgl.submit {
  35037. class SubmitBase implements laya.webgl.submit.ISubmit {
  35038. static TYPE_2D:number;
  35039. static TYPE_CANVAS:number;
  35040. static TYPE_CMDSETRT:number;
  35041. static TYPE_CUSTOM:number;
  35042. static TYPE_BLURRT:number;
  35043. static TYPE_CMDDESTORYPRERT:number;
  35044. static TYPE_DISABLESTENCIL:number;
  35045. static TYPE_OTHERIBVB:number;
  35046. static TYPE_PRIMITIVE:number;
  35047. static TYPE_RT:number;
  35048. static TYPE_BLUR_RT:number;
  35049. static TYPE_TARGET:number;
  35050. static TYPE_CHANGE_VALUE:number;
  35051. static TYPE_SHAPE:number;
  35052. static TYPE_TEXTURE:number;
  35053. static TYPE_FILLTEXTURE:number;
  35054. static KEY_ONCE:number;
  35055. static KEY_FILLRECT:number;
  35056. static KEY_DRAWTEXTURE:number;
  35057. static KEY_VG:number;
  35058. static KEY_TRIANGLES:number;
  35059. static RENDERBASE:SubmitBase;
  35060. static ID:number;
  35061. static preRender:laya.webgl.submit.ISubmit;
  35062. clipInfoID:number;
  35063. protected _id:number;
  35064. shaderValue:laya.webgl.shader.d2.value.Value2D;
  35065. static __init__():void;
  35066. constructor(renderType?:number);
  35067. getID():number;
  35068. getRenderType():number;
  35069. toString():string;
  35070. renderSubmit():number;
  35071. releaseRender():void;
  35072. }
  35073. }
  35074. declare module laya.webgl.submit {
  35075. /**
  35076. * cache as normal 模式下的生成的canvas的渲染。
  35077. */
  35078. class SubmitCanvas extends laya.webgl.submit.SubmitBase {
  35079. canv:laya.resource.Context;
  35080. static create(canvas:any,alpha:number,filters:any[]):SubmitCanvas;
  35081. constructor();
  35082. /**
  35083. * @override
  35084. */
  35085. renderSubmit():number;
  35086. /**
  35087. * @override
  35088. */
  35089. releaseRender():void;
  35090. /**
  35091. * @override
  35092. */
  35093. getRenderType():number;
  35094. static POOL:any;
  35095. }
  35096. }
  35097. declare module laya.webgl.submit {
  35098. class SubmitCMD implements laya.webgl.submit.ISubmit {
  35099. static POOL:any;
  35100. fun:Function;
  35101. args:any[];
  35102. constructor();
  35103. renderSubmit():number;
  35104. getRenderType():number;
  35105. releaseRender():void;
  35106. static create(args:any[],fun:Function,thisobj:any):SubmitCMD;
  35107. }
  35108. }
  35109. declare module laya.webgl.submit {
  35110. /**
  35111. * ...
  35112. * @author xie
  35113. */
  35114. class SubmitKey {
  35115. blendShader:number;
  35116. submitType:number;
  35117. other:number;
  35118. constructor();
  35119. clear():void;
  35120. copyFrom(src:SubmitKey):void;
  35121. copyFrom2(src:SubmitKey,submitType:number,other:number):void;
  35122. equal3_2(next:SubmitKey,submitType:number,other:number):boolean;
  35123. equal4_2(next:SubmitKey,submitType:number,other:number):boolean;
  35124. equal_3(next:SubmitKey):boolean;
  35125. equal(next:SubmitKey):boolean;
  35126. }
  35127. }
  35128. declare module laya.webgl.submit {
  35129. class SubmitTarget implements laya.webgl.submit.ISubmit {
  35130. shaderValue:laya.webgl.shader.d2.value.Value2D;
  35131. blendType:number;
  35132. srcRT:laya.resource.RenderTexture2D;
  35133. constructor();
  35134. static POOL:any;
  35135. renderSubmit():number;
  35136. blend():void;
  35137. getRenderType():number;
  35138. releaseRender():void;
  35139. static create(context:laya.resource.Context,mesh:laya.webgl.utils.Mesh2D,sv:laya.webgl.shader.d2.value.Value2D,rt:laya.resource.RenderTexture2D):SubmitTarget;
  35140. }
  35141. }
  35142. declare module laya.webgl.submit {
  35143. class SubmitTexture extends laya.webgl.submit.SubmitBase {
  35144. private static _poolSize:any;
  35145. private static POOL:any;
  35146. constructor(renderType?:number);
  35147. /**
  35148. * @override
  35149. */
  35150. releaseRender():void;
  35151. /**
  35152. * @override
  35153. */
  35154. renderSubmit():number;
  35155. static create(context:laya.resource.Context,mesh:laya.webgl.utils.Mesh2D,sv:laya.webgl.shader.d2.value.Value2D):SubmitTexture;
  35156. }
  35157. }
  35158. declare module laya.webgl.text {
  35159. /**
  35160. * 阿拉伯文的转码。把unicode的阿拉伯文字母编码转成他们的老的能描述不同写法的编码。
  35161. * 这个是从GitHub上 Javascript-Arabic-Reshaper 项目转来的
  35162. * https://github.com/louy/Javascript-Arabic-Reshaper/blob/master/src/index.js
  35163. */
  35164. /**
  35165. * Javascript Arabic Reshaper by Louy Alakkad
  35166. * https://github.com/louy/Javascript-Arabic-Reshaper
  35167. * Based on (http://git.io/vsnAd)
  35168. */
  35169. class ArabicReshaper {
  35170. private static charsMap:any;
  35171. private static combCharsMap:any;
  35172. private static transChars:any;
  35173. characterMapContains(c:number):boolean;
  35174. getCharRep(c:number):boolean;
  35175. getCombCharRep(c1:any,c2:any):boolean;
  35176. isTransparent(c:any):boolean;
  35177. getOriginalCharsFromCode(code:any):string;
  35178. /**
  35179. * 转换函数。从normal转到presentB
  35180. * 这个返回的字符串可以直接按照从左到右的顺序渲染。
  35181. * 例如
  35182. * graphics.fillText(convertArabic('سلام'),....)
  35183. */
  35184. convertArabic(normal:any):string;
  35185. convertArabicBack(apfb:any):string;
  35186. }
  35187. }
  35188. declare module laya.webgl.text {
  35189. class AtlasGrid {
  35190. atlasID:number;
  35191. private _width:any;
  35192. private _height:any;
  35193. private _texCount:any;
  35194. private _rowInfo:any;
  35195. private _cells:any;
  35196. _used:number;
  35197. constructor(width?:number,height?:number,id?:number);
  35198. addRect(type:number,width:number,height:number,pt:laya.maths.Point):boolean;
  35199. private _release:any;
  35200. private _init:any;
  35201. private _get:any;
  35202. private _fill:any;
  35203. private _check:any;
  35204. private _clear:any;
  35205. }
  35206. }
  35207. declare module laya.webgl.text {
  35208. /**
  35209. * TODO如果占用内存较大,这个结构有很多成员可以临时计算
  35210. */
  35211. class CharRenderInfo {
  35212. char:string;
  35213. tex:any;
  35214. deleted:boolean;
  35215. uv:any[];
  35216. pos:number;
  35217. width:number;
  35218. height:number;
  35219. bmpWidth:number;
  35220. bmpHeight:number;
  35221. orix:number;
  35222. oriy:number;
  35223. touchTick:number;
  35224. isSpace:boolean;
  35225. touch():void;
  35226. }
  35227. }
  35228. declare module laya.webgl.text {
  35229. class CharRender_Canvas extends laya.webgl.text.ICharRender {
  35230. private static canvas:any;
  35231. private ctx:any;
  35232. private lastScaleX:any;
  35233. private lastScaleY:any;
  35234. private maxTexW:any;
  35235. private maxTexH:any;
  35236. private scaleFontSize:any;
  35237. private showDbgInfo:any;
  35238. private supportImageData:any;
  35239. constructor(maxw:number,maxh:number,scalefont?:boolean,useImageData?:boolean,showdbg?:boolean);
  35240. /**
  35241. * @override
  35242. */
  35243. /**
  35244. * @override
  35245. */
  35246. canvasWidth:number;
  35247. /**
  35248. * @param font
  35249. * @param str
  35250. * @override
  35251. */
  35252. getWidth(font:string,str:string):number;
  35253. /**
  35254. * @param sx
  35255. * @param sy
  35256. * @override
  35257. */
  35258. scale(sx:number,sy:number):void;
  35259. /**
  35260. * TODO stroke
  35261. * @param char
  35262. * @param font
  35263. * @param cri 修改里面的width。
  35264. * @return
  35265. * @override
  35266. */
  35267. getCharBmp(char:string,font:string,lineWidth:number,colStr:string,strokeColStr:string,cri:laya.webgl.text.CharRenderInfo,margin_left:number,margin_top:number,margin_right:number,margin_bottom:number,rect?:any[]|null):ImageData;
  35268. getCharCanvas(char:string,font:string,lineWidth:number,colStr:string,strokeColStr:string,cri:laya.webgl.text.CharRenderInfo,margin_left:number,margin_top:number,margin_right:number,margin_bottom:number):ImageData;
  35269. }
  35270. }
  35271. declare module laya.webgl.text {
  35272. class CharRender_Native extends laya.webgl.text.ICharRender {
  35273. private lastFont:any;
  35274. constructor();
  35275. /**
  35276. * @param font
  35277. * @param str
  35278. * @override
  35279. */
  35280. getWidth(font:string,str:string):number;
  35281. /**
  35282. * @param sx
  35283. * @param sy
  35284. * @override
  35285. */
  35286. scale(sx:number,sy:number):void;
  35287. /**
  35288. * TODO stroke
  35289. * @param char
  35290. * @param font
  35291. * @param size 返回宽高
  35292. * @return
  35293. * @override
  35294. */
  35295. getCharBmp(char:string,font:string,lineWidth:number,colStr:string,strokeColStr:string,size:laya.webgl.text.CharRenderInfo,margin_left:number,margin_top:number,margin_right:number,margin_bottom:number,rect?:any[]|null):ImageData|null;
  35296. }
  35297. }
  35298. declare module laya.webgl.text {
  35299. /**
  35300. * ...
  35301. * @author laoxie
  35302. */
  35303. class CharSubmitCache {
  35304. private static __posPool:any;
  35305. private static __nPosPool:any;
  35306. private _data:any;
  35307. private _ndata:any;
  35308. private _tex:any;
  35309. private _imgId:any;
  35310. private _clipid:any;
  35311. private _clipMatrix:any;
  35312. constructor();
  35313. clear():void;
  35314. destroy():void;
  35315. add(ctx:laya.resource.Context,tex:laya.resource.Texture,imgid:number,pos:any[],uv:ArrayLike<number>,color:number):void;
  35316. getPos():any[];
  35317. enable(value:boolean,ctx:laya.resource.Context):void;
  35318. submit(ctx:laya.resource.Context):void;
  35319. }
  35320. }
  35321. declare module laya.webgl.text {
  35322. class ICharRender {
  35323. fontsz:number;
  35324. getWidth(font:string,str:string):number;
  35325. scale(sx:number,sy:number):void;
  35326. canvasWidth:number;
  35327. /**
  35328. * TODO stroke
  35329. * @param char
  35330. * @param font
  35331. * @param size 返回宽高
  35332. * @return
  35333. */
  35334. getCharBmp(char:string,font:string,lineWidth:number,colStr:string,strokeColStr:string,size:laya.webgl.text.CharRenderInfo,margin_left:number,margin_top:number,margin_right:number,margin_bottom:number,rect?:any[]|null):ImageData|null;
  35335. }
  35336. }
  35337. declare module laya.webgl.text {
  35338. /**
  35339. * 文字贴图的大图集。
  35340. */
  35341. class TextAtlas {
  35342. texWidth:number;
  35343. texHeight:number;
  35344. private atlasgrid:any;
  35345. texture:laya.webgl.text.TextTexture|null;
  35346. charMaps:any;
  35347. static atlasGridW:number;
  35348. constructor();
  35349. setProtecteDist(d:number):void;
  35350. /**
  35351. * 如果返回null,则表示无法加入了
  35352. * 分配的时候优先选择最接近自己高度的节点
  35353. * @param w
  35354. * @param h
  35355. * @return
  35356. */
  35357. getAEmpty(w:number,h:number,pt:laya.maths.Point):boolean;
  35358. /**
  35359. * 大图集格子单元的占用率,老的也算上了。只是表示这个大图集还能插入多少东西。
  35360. */
  35361. readonly usedRate:number;
  35362. destroy():void;
  35363. printDebugInfo():void;
  35364. }
  35365. }
  35366. declare module laya.webgl.text {
  35367. class TextRender {
  35368. static useOldCharBook:boolean;
  35369. static atlasWidth:number;
  35370. static noAtlas:boolean;
  35371. static forceSplitRender:boolean;
  35372. static forceWholeRender:boolean;
  35373. static scaleFontWithCtx:boolean;
  35374. static standardFontSize:number;
  35375. static destroyAtlasDt:number;
  35376. static checkCleanTextureDt:number;
  35377. static destroyUnusedTextureDt:number;
  35378. static cleanMem:number;
  35379. static isWan1Wan:boolean;
  35380. static showLog:boolean;
  35381. static debugUV:boolean;
  35382. /**
  35383. * fontSizeInfo
  35384. * 记录每种字体的像素的大小。标准是32px的字体。由4个byte组成,分别表示[xdist,ydist,w,h]。
  35385. * xdist,ydist 是像素起点到排版原点的距离,都是正的,表示实际数据往左和上偏多少,如果实际往右和下偏,则算作0,毕竟这个只是一个大概
  35386. * 例如 [Arial]=0x00002020, 表示宽高都是32
  35387. */
  35388. private fontSizeInfo:any;
  35389. static atlasWidth2:number;
  35390. private charRender:any;
  35391. private static tmpRI:any;
  35392. private static pixelBBX:any;
  35393. private mapFont:any;
  35394. private fontID:any;
  35395. private mapColor:any;
  35396. private colorID:any;
  35397. private fontScaleX:any;
  35398. private fontScaleY:any;
  35399. private _curStrPos:any;
  35400. static textRenderInst:TextRender;
  35401. textAtlases:laya.webgl.text.TextAtlas[];
  35402. private isoTextures:any;
  35403. private bmpData32:any;
  35404. private static imgdtRect:any;
  35405. private lastFont:any;
  35406. private fontSizeW:any;
  35407. private fontSizeH:any;
  35408. private fontSizeOffX:any;
  35409. private fontSizeOffY:any;
  35410. private renderPerChar:any;
  35411. private tmpAtlasPos:any;
  35412. private textureMem:any;
  35413. private fontStr:any;
  35414. static simClean:boolean;
  35415. constructor();
  35416. /**
  35417. * 设置当前字体,获得字体的大小信息。
  35418. * @param font
  35419. */
  35420. setFont(font:laya.utils.FontInfo):void;
  35421. /**
  35422. * 从string中取出一个完整的char,例如emoji的话要多个
  35423. * 会修改 _curStrPos
  35424. * TODO 由于各种文字中的组合写法,这个需要能扩展,以便支持泰文等
  35425. * @param str
  35426. * @param start 开始位置
  35427. */
  35428. getNextChar(str:string):string|null;
  35429. filltext(ctx:laya.resource.Context,data:string|laya.utils.WordText,x:number,y:number,fontStr:string,color:string,strokeColor:string,lineWidth:number,textAlign:string,underLine?:number):void;
  35430. fillWords(ctx:laya.resource.Context,data:laya.utils.HTMLChar[],x:number,y:number,fontStr:string|laya.utils.FontInfo,color:string,strokeColor:string,lineWidth:number):void;
  35431. _fast_filltext(ctx:laya.resource.Context,data:string|laya.utils.WordText|null,htmlchars:laya.utils.HTMLChar[]|null,x:number,y:number,font:laya.utils.FontInfo,color:string,strokeColor:string,lineWidth:number,textAlign:number,underLine?:number):void;
  35432. /**
  35433. * 画出重新按照贴图顺序分组的文字。
  35434. * @param samePagesData
  35435. * @param startx 保存的数据是相对位置,所以需要加上这个偏移。用相对位置更灵活一些。
  35436. * @param y 因为这个只能画在一行上所以没有必要保存y。所以这里再把y传进来
  35437. */
  35438. protected _drawResortedWords(ctx:laya.resource.Context,startx:number,starty:number,samePagesData:any[]):void;
  35439. /**
  35440. * 检查 txts数组中有没有被释放的资源
  35441. * @param txts
  35442. * @param startid
  35443. * @return
  35444. */
  35445. hasFreedText(txts:any[]):boolean;
  35446. getCharRenderInfo(str:string,font:laya.utils.FontInfo,color:string,strokeColor:string,lineWidth:number,isoTexture?:boolean):laya.webgl.text.CharRenderInfo;
  35447. /**
  35448. * 添加数据到大图集
  35449. * @param w
  35450. * @param h
  35451. * @return
  35452. */
  35453. addBmpData(data:ImageData,ri:laya.webgl.text.CharRenderInfo):laya.webgl.text.TextAtlas;
  35454. /**
  35455. * 清理利用率低的大图集
  35456. */
  35457. GC():void;
  35458. /**
  35459. * 尝试清理大图集
  35460. */
  35461. cleanAtlases():void;
  35462. getCharBmp(c:string):any;
  35463. /**
  35464. * 检查当前线是否存在数据
  35465. * @param data
  35466. * @param l
  35467. * @param sx
  35468. * @param ex
  35469. * @return
  35470. */
  35471. private checkBmpLine:any;
  35472. /**
  35473. * 根据bmp数据和当前的包围盒,更新包围盒
  35474. * 由于选择的文字是连续的,所以可以用二分法
  35475. * @param data
  35476. * @param curbbx [l,t,r,b]
  35477. * @param onlyH 不检查左右
  35478. */
  35479. private updateBbx:any;
  35480. getFontSizeInfo(font:string):number;
  35481. printDbgInfo():void;
  35482. showAtlas(n:number,bgcolor:string,x:number,y:number,w:number,h:number):laya.display.Sprite;
  35483. filltext_native(ctx:laya.resource.Context,data:string|laya.utils.WordText,htmlchars:laya.utils.HTMLChar[],x:number,y:number,fontStr:string,color:string,strokeColor:string,lineWidth:number,textAlign:string,underLine?:number):void;
  35484. }
  35485. }
  35486. declare module laya.webgl.text {
  35487. class TextTexture extends laya.resource.Resource {
  35488. static gTextRender:ITextRender;
  35489. private static pool:any;
  35490. private static poolLen:any;
  35491. private static cleanTm:any;
  35492. genID:number;
  35493. bitmap:any;
  35494. curUsedCovRate:number;
  35495. curUsedCovRateAtlas:number;
  35496. lastTouchTm:number;
  35497. ri:laya.webgl.text.CharRenderInfo;
  35498. constructor(textureW:number,textureH:number);
  35499. recreateResource():void;
  35500. /**
  35501. * @param data
  35502. * @param x 拷贝位置。
  35503. * @param y
  35504. * @param uv
  35505. * @return uv数组 如果uv不为空就返回传入的uv,否则new一个数组
  35506. */
  35507. addChar(data:ImageData,x:number,y:number,uv?:any[]):any[];
  35508. /**
  35509. * 玩一玩不支持 getImageData
  35510. * @param canv
  35511. * @param x
  35512. * @param y
  35513. */
  35514. addCharCanvas(canv:any,x:number,y:number,uv?:any[]):any[];
  35515. /**
  35516. * 填充白色。调试用。
  35517. */
  35518. fillWhite():void;
  35519. discard():void;
  35520. static getTextTexture(w:number,h:number):TextTexture;
  35521. /**
  35522. * @override
  35523. */
  35524. destroy():void;
  35525. /**
  35526. * 定期清理
  35527. * 为了简单,只有发生 getAPage 或者 discardPage的时候才检测是否需要清理
  35528. */
  35529. static clean():void;
  35530. touchRect(ri:laya.webgl.text.CharRenderInfo,curloop:number):void;
  35531. readonly texture:any;
  35532. drawOnScreen(x:number,y:number):void;
  35533. }
  35534. interface ITextRender{
  35535. atlasWidth:number;
  35536. checkCleanTextureDt:number;
  35537. debugUV:boolean;
  35538. isWan1Wan:boolean;
  35539. destroyUnusedTextureDt:number;
  35540. }
  35541. }
  35542. declare module laya.webgl.utils {
  35543. class Buffer {
  35544. static _bindedVertexBuffer:any;
  35545. static _bindedIndexBuffer:any;
  35546. protected _glBuffer:any;
  35547. protected _buffer:any;
  35548. protected _bufferType:number;
  35549. protected _bufferUsage:number;
  35550. _byteLength:number;
  35551. readonly bufferUsage:number;
  35552. constructor();
  35553. /**
  35554. * @private 绕过全局状态判断,例如VAO局部状态设置
  35555. */
  35556. _bindForVAO():void;
  35557. /**
  35558. * @private
  35559. */
  35560. bind():boolean;
  35561. /**
  35562. * @private
  35563. */
  35564. destroy():void;
  35565. }
  35566. }
  35567. declare module laya.webgl.utils {
  35568. class Buffer2D extends laya.webgl.utils.Buffer {
  35569. static FLOAT32:number;
  35570. static SHORT:number;
  35571. static __int__(gl:laya.webgl.WebGLContext):void;
  35572. protected _maxsize:number;
  35573. _upload:boolean;
  35574. protected _uploadSize:number;
  35575. protected _bufferSize:number;
  35576. protected _u8Array:Uint8Array;
  35577. readonly bufferLength:number;
  35578. byteLength:number;
  35579. setByteLength(value:number):void;
  35580. /**
  35581. * 在当前的基础上需要多大空间,单位是byte
  35582. * @param sz
  35583. * @return 增加大小之前的写位置。单位是byte
  35584. */
  35585. needSize(sz:number):number;
  35586. constructor();
  35587. protected _bufferData():void;
  35588. protected _bufferSubData(offset?:number,dataStart?:number,dataLength?:number):void;
  35589. /**
  35590. * buffer重新分配了,继承类根据需要做相应的处理。
  35591. */
  35592. protected _checkArrayUse():void;
  35593. /**
  35594. * 给vao使用的 _bind_upload函数。不要与已经绑定的判断是否相同
  35595. * @return
  35596. */
  35597. _bind_uploadForVAO():boolean;
  35598. _bind_upload():boolean;
  35599. _bind_subUpload(offset?:number,dataStart?:number,dataLength?:number):boolean;
  35600. /**
  35601. * 重新分配buffer大小,如果nsz比原来的小则什么都不做。
  35602. * @param nsz buffer大小,单位是byte。
  35603. * @param copy 是否拷贝原来的buffer的数据。
  35604. * @return
  35605. */
  35606. _resizeBuffer(nsz:number,copy:boolean):Buffer2D;
  35607. append(data:any):void;
  35608. /**
  35609. * 附加Uint16Array的数据。数据长度是len。byte的话要*2
  35610. * @param data
  35611. * @param len
  35612. */
  35613. appendU16Array(data:Uint16Array,len:number):void;
  35614. appendEx(data:any,type:new (buf: any, len: any) => any):void;
  35615. appendEx2(data:any,type:new (buff: any, len: any) => any,dataLen:number,perDataLen?:number):void;
  35616. getBuffer():ArrayBuffer;
  35617. setNeedUpload():void;
  35618. getNeedUpload():boolean;
  35619. upload():boolean;
  35620. subUpload(offset?:number,dataStart?:number,dataLength?:number):boolean;
  35621. protected _disposeResource():void;
  35622. /**
  35623. * 清理数据。保留ArrayBuffer
  35624. */
  35625. clear():void;
  35626. }
  35627. }
  35628. declare module laya.webgl.utils {
  35629. class CONST3D2D {
  35630. static BYTES_PE:number;
  35631. static BYTES_PIDX:number;
  35632. static defaultMatrix4:any[];
  35633. static defaultMinusYMatrix4:any[];
  35634. static uniformMatrix3:any[];
  35635. static _TMPARRAY:any[];
  35636. static _OFFSETX:number;
  35637. static _OFFSETY:number;
  35638. }
  35639. }
  35640. declare module laya.webgl.utils {
  35641. class IndexBuffer2D extends laya.webgl.utils.Buffer2D {
  35642. static create:Function;
  35643. protected _uint16Array:Uint16Array;
  35644. constructor(bufferUsage?:number);
  35645. /**
  35646. * @override
  35647. */
  35648. protected _checkArrayUse():void;
  35649. getUint16Array():Uint16Array;
  35650. /**
  35651. * @inheritDoc
  35652. * @override
  35653. */
  35654. _bindForVAO():void;
  35655. /**
  35656. * @inheritDoc
  35657. * @override
  35658. */
  35659. bind():boolean;
  35660. destory():void;
  35661. disposeResource():void;
  35662. }
  35663. }
  35664. declare module laya.webgl.utils {
  35665. class InlcudeFile {
  35666. script:string;
  35667. codes:any;
  35668. funs:any;
  35669. curUseID:number;
  35670. funnames:string;
  35671. constructor(txt:string);
  35672. getWith(name?:string):string;
  35673. getFunsScript(funsdef:string):string;
  35674. }
  35675. }
  35676. declare module laya.webgl.utils {
  35677. class MatirxArray {
  35678. /**
  35679. * 4*4矩阵数组相乘。
  35680. * o=a*b;
  35681. * @param a 4*4矩阵数组。
  35682. * @param b 4*4矩阵数组。
  35683. * @param o 4*4矩阵数组。
  35684. */
  35685. static ArrayMul(a:any[],b:any[],o:any[]):void;
  35686. static copyArray(f:any[],t:any[]):void;
  35687. }
  35688. }
  35689. declare module laya.webgl.utils {
  35690. /**
  35691. * Mesh2d只是保存数据。描述attribute用的。本身不具有渲染功能。
  35692. */
  35693. class Mesh2D {
  35694. _stride:number;
  35695. vertNum:number;
  35696. indexNum:number;
  35697. protected _applied:boolean;
  35698. _vb:laya.webgl.utils.VertexBuffer2D;
  35699. _ib:laya.webgl.utils.IndexBuffer2D;
  35700. private _vao:any;
  35701. private static _gvaoid:any;
  35702. private _attribInfo:any;
  35703. protected _quadNum:number;
  35704. canReuse:boolean;
  35705. /**
  35706. * @param stride
  35707. * @param vballoc vb预分配的大小。主要是用来提高效率。防止不断的resizebfufer
  35708. * @param iballoc
  35709. */
  35710. constructor(stride:number,vballoc:number,iballoc:number);
  35711. /**
  35712. * 重新创建一个mesh。复用这个对象的vertex结构,ib对象和attribinfo对象
  35713. */
  35714. cloneWithNewVB():Mesh2D;
  35715. /**
  35716. * 创建一个mesh,使用当前对象的vertex结构。vb和ib自己提供。
  35717. * @return
  35718. */
  35719. cloneWithNewVBIB():Mesh2D;
  35720. /**
  35721. * 获得一个可以写的vb对象
  35722. */
  35723. getVBW():laya.webgl.utils.VertexBuffer2D;
  35724. /**
  35725. * 获得一个只读vb
  35726. */
  35727. getVBR():laya.webgl.utils.VertexBuffer2D;
  35728. getIBR():laya.webgl.utils.IndexBuffer2D;
  35729. /**
  35730. * 获得一个可写的ib
  35731. */
  35732. getIBW():laya.webgl.utils.IndexBuffer2D;
  35733. /**
  35734. * 直接创建一个固定的ib。按照固定四边形的索引。
  35735. * @param var QuadNum
  35736. */
  35737. createQuadIB(QuadNum:number):void;
  35738. /**
  35739. * 设置mesh的属性。每3个一组,对应的location分别是0,1,2...
  35740. * 含义是:type,size,offset
  35741. * 不允许多流。因此stride是固定的,offset只是在一个vertex之内。
  35742. * @param attribs
  35743. */
  35744. setAttributes(attribs:any[]):void;
  35745. /**
  35746. * 初始化VAO的配置,只需要执行一次。以后使用的时候直接bind就行
  35747. * @param gl
  35748. */
  35749. private configVAO:any;
  35750. /**
  35751. * 应用这个mesh
  35752. * @param gl
  35753. */
  35754. useMesh(gl:WebGLRenderingContext):void;
  35755. getEleNum():number;
  35756. /**
  35757. * 子类实现。用来把自己放到对应的回收池中,以便复用。
  35758. */
  35759. releaseMesh():void;
  35760. /**
  35761. * 释放资源。
  35762. */
  35763. destroy():void;
  35764. /**
  35765. * 清理vb数据
  35766. */
  35767. clearVB():void;
  35768. }
  35769. }
  35770. declare module laya.webgl.utils {
  35771. /**
  35772. * drawImage,fillRect等会用到的简单的mesh。每次添加必然是一个四边形。
  35773. */
  35774. class MeshParticle2D extends laya.webgl.utils.Mesh2D {
  35775. static const_stride:number;
  35776. private static _fixattriInfo:any;
  35777. private static _POOL:any;
  35778. static __init__():void;
  35779. constructor(maxNum:number);
  35780. setMaxParticleNum(maxNum:number):void;
  35781. /**
  35782. */
  35783. static getAMesh(maxNum:number):MeshParticle2D;
  35784. /**
  35785. * 把本对象放到回收池中,以便getMesh能用。
  35786. * @override
  35787. */
  35788. releaseMesh():void;
  35789. /**
  35790. * @override
  35791. */
  35792. destroy():void;
  35793. }
  35794. }
  35795. declare module laya.webgl.utils {
  35796. /**
  35797. * drawImage,fillRect等会用到的简单的mesh。每次添加必然是一个四边形。
  35798. */
  35799. class MeshQuadTexture extends laya.webgl.utils.Mesh2D {
  35800. static const_stride:number;
  35801. private static _fixib:any;
  35802. private static _maxIB:any;
  35803. private static _fixattriInfo:any;
  35804. private static _POOL:any;
  35805. static __int__():void;
  35806. constructor();
  35807. /**
  35808. */
  35809. static getAMesh(mainctx:boolean):MeshQuadTexture;
  35810. /**
  35811. * 把本对象放到回收池中,以便getMesh能用。
  35812. * @override
  35813. */
  35814. releaseMesh():void;
  35815. /**
  35816. * @override
  35817. */
  35818. destroy():void;
  35819. /**
  35820. * @param pos
  35821. * @param uv
  35822. * @param color
  35823. * @param clip ox,oy,xx,xy,yx,yy
  35824. * @param useTex 是否使用贴图。false的话是给fillRect用的
  35825. */
  35826. addQuad(pos:any[],uv:ArrayLike<number>,color:number,useTex:boolean):void;
  35827. }
  35828. }
  35829. declare module laya.webgl.utils {
  35830. /**
  35831. * 与MeshQuadTexture基本相同。不过index不是固定的
  35832. */
  35833. class MeshTexture extends laya.webgl.utils.Mesh2D {
  35834. static const_stride:number;
  35835. private static _fixattriInfo:any;
  35836. private static _POOL:any;
  35837. static __init__():void;
  35838. constructor();
  35839. /**
  35840. */
  35841. static getAMesh(mainctx:boolean):MeshTexture;
  35842. addData(vertices:Float32Array,uvs:Float32Array,idx:Uint16Array,matrix:laya.maths.Matrix,rgba:number):void;
  35843. /**
  35844. * 把本对象放到回收池中,以便getMesh能用。
  35845. * @override
  35846. */
  35847. releaseMesh():void;
  35848. /**
  35849. * @override
  35850. */
  35851. destroy():void;
  35852. }
  35853. }
  35854. declare module laya.webgl.utils {
  35855. /**
  35856. * 用来画矢量的mesh。顶点格式固定为 x,y,rgba
  35857. */
  35858. class MeshVG extends laya.webgl.utils.Mesh2D {
  35859. static const_stride:number;
  35860. private static _fixattriInfo:any;
  35861. private static _POOL:any;
  35862. static __init__():void;
  35863. constructor();
  35864. static getAMesh(mainctx:boolean):MeshVG;
  35865. /**
  35866. * 往矢量mesh中添加顶点和index。会把rgba和points在mesh中合并。
  35867. * @param points 顶点数组,只包含x,y。[x,y,x,y...]
  35868. * @param rgba rgba颜色
  35869. * @param ib index数组。
  35870. */
  35871. addVertAndIBToMesh(ctx:laya.resource.Context,points:any[],rgba:number,ib:any[]):void;
  35872. /**
  35873. * 把本对象放到回收池中,以便getMesh能用。
  35874. * @override
  35875. */
  35876. releaseMesh():void;
  35877. /**
  35878. * @override
  35879. */
  35880. destroy():void;
  35881. }
  35882. }
  35883. declare module laya.webgl.utils {
  35884. class RenderState2D {
  35885. static _MAXSIZE:number;
  35886. /**
  35887. * @private 一个初始化的 <code>Matrix</code> 对象,不允许修改此对象内容。
  35888. */
  35889. static EMPTYMAT4_ARRAY:any[];
  35890. static TEMPMAT4_ARRAY:any[];
  35891. static worldMatrix4:any[];
  35892. static worldMatrix:laya.maths.Matrix;
  35893. static matWVP:any;
  35894. static worldAlpha:number;
  35895. static worldScissorTest:boolean;
  35896. static worldShaderDefines:laya.webgl.shader.d2.ShaderDefines2D;
  35897. static worldFilters:any[];
  35898. static width:number;
  35899. static height:number;
  35900. static mat2MatArray(mat:laya.maths.Matrix,matArray:any[]):any[];
  35901. static restoreTempArray():void;
  35902. static clear():void;
  35903. }
  35904. }
  35905. declare module laya.webgl.utils {
  35906. /**
  35907. * @private <code>ShaderCompile</code> 类用于实现Shader编译。
  35908. */
  35909. class ShaderCompile {
  35910. static IFDEF_NO:number;
  35911. static IFDEF_YES:number;
  35912. static IFDEF_ELSE:number;
  35913. static IFDEF_PARENT:number;
  35914. static _removeAnnotation:RegExp;
  35915. static _reg:RegExp;
  35916. static _splitToWordExps:RegExp;
  35917. static includes:any;
  35918. static shaderParamsMap:any;
  35919. private _nameMap:any;
  35920. protected _VS:laya.webgl.utils.ShaderNode;
  35921. protected _PS:laya.webgl.utils.ShaderNode;
  35922. private static _parseOne:any;
  35923. static addInclude(fileName:string,txt:string):void;
  35924. static preGetParams(vs:string,ps:string):any;
  35925. static splitToWords(str:string,block:laya.webgl.utils.ShaderNode):any[];
  35926. static _clearCR:RegExp;
  35927. defs:Object;
  35928. constructor(vs:string,ps:string,nameMap:any);
  35929. static _splitToWordExps3:RegExp;
  35930. /**
  35931. * @private
  35932. */
  35933. protected _compileToTree(parent:laya.webgl.utils.ShaderNode,lines:any[],start:number,includefiles:any[],defs:any):void;
  35934. createShader(define:any,shaderName:any,createShader:Function,bindAttrib:any[]):laya.webgl.shader.Shader;
  35935. }
  35936. }
  35937. declare module laya.webgl.utils {
  35938. class ShaderNode {
  35939. private static __id:any;
  35940. childs:any[];
  35941. text:string;
  35942. parent:ShaderNode;
  35943. name:string;
  35944. noCompile:boolean;
  35945. includefiles:any[];
  35946. condition:any;
  35947. conditionType:number;
  35948. useFuns:string;
  35949. z:number;
  35950. src:string;
  35951. constructor(includefiles:any[]);
  35952. setParent(parent:ShaderNode):void;
  35953. setCondition(condition:string,type:number):void;
  35954. toscript(def:any,out:any[]):any[];
  35955. private _toscript:any;
  35956. }
  35957. }
  35958. declare module laya.webgl.utils {
  35959. class VertexBuffer2D extends laya.webgl.utils.Buffer2D {
  35960. static create:Function;
  35961. _floatArray32:Float32Array;
  35962. _uint32Array:Uint32Array;
  35963. private _vertexStride:any;
  35964. readonly vertexStride:number;
  35965. constructor(vertexStride:number,bufferUsage:number);
  35966. getFloat32Array():Float32Array;
  35967. /**
  35968. * 在当前位置插入float数组。
  35969. * @param data
  35970. * @param pos
  35971. */
  35972. appendArray(data:any[]):void;
  35973. /**
  35974. * @override
  35975. */
  35976. protected _checkArrayUse():void;
  35977. deleteBuffer():void;
  35978. /**
  35979. * @inheritDoc
  35980. * @override
  35981. */
  35982. _bindForVAO():void;
  35983. /**
  35984. * @inheritDoc
  35985. * @override
  35986. */
  35987. bind():boolean;
  35988. /**
  35989. * @override
  35990. */
  35991. destroy():void;
  35992. }
  35993. }
  35994. declare module laya.webgl {
  35995. class VertexArrayObject {
  35996. constructor();
  35997. }
  35998. }
  35999. declare module laya.webgl {
  36000. /**
  36001. * @private
  36002. */
  36003. class WebGL {
  36004. static shaderHighPrecision:boolean;
  36005. static _isWebGL2:boolean;
  36006. static isNativeRender_enable:boolean;
  36007. private static _uint8ArraySlice:any;
  36008. private static _float32ArraySlice:any;
  36009. private static _uint16ArraySlice:any;
  36010. static _nativeRender_enable():void;
  36011. static enable():boolean;
  36012. static inner_enable():boolean;
  36013. static onStageResize(width:number,height:number):void;
  36014. }
  36015. }
  36016. declare module laya.webgl {
  36017. /**
  36018. * @private
  36019. */
  36020. class WebGLContext {
  36021. }
  36022. }
  36023. /**
  36024. * <code>Laya</code> 是全局对象的引用入口集。
  36025. * Laya类引用了一些常用的全局对象,比如Laya.stage:舞台,Laya.timer:时间管理器,Laya.loader:加载管理器,使用时注意大小写。
  36026. */
  36027. declare class Laya {
  36028. /**
  36029. * 舞台对象的引用。
  36030. */
  36031. static stage:laya.display.Stage;
  36032. /**
  36033. * @private 系统时钟管理器,引擎内部使用
  36034. */
  36035. static systemTimer:laya.utils.Timer;
  36036. /**
  36037. * @private 组件的start时钟管理器
  36038. */
  36039. static startTimer:laya.utils.Timer;
  36040. /**
  36041. * @private 组件的物理时钟管理器
  36042. */
  36043. static physicsTimer:laya.utils.Timer;
  36044. /**
  36045. * @private 组件的update时钟管理器
  36046. */
  36047. static updateTimer:laya.utils.Timer;
  36048. /**
  36049. * @private 组件的lateUpdate时钟管理器
  36050. */
  36051. static lateTimer:laya.utils.Timer;
  36052. /**
  36053. * 游戏主时针,同时也是管理场景,动画,缓动等效果时钟,通过控制本时针缩放,达到快进慢播效果
  36054. */
  36055. static timer:laya.utils.Timer;
  36056. /**
  36057. * 加载管理器的引用。
  36058. */
  36059. static loader:laya.net.LoaderManager;
  36060. /**
  36061. * 当前引擎版本。
  36062. */
  36063. static version:string;
  36064. /**
  36065. * @private Render 类的引用。
  36066. */
  36067. static render:laya.renders.Render;
  36068. /**
  36069. * 是否是微信小游戏子域,默认为false*
  36070. */
  36071. static isWXOpenDataContext:boolean;
  36072. /**
  36073. * 微信小游戏是否需要在主域中自动将加载的文本数据自动传递到子域,默认 false*
  36074. */
  36075. static isWXPosMsg:boolean;
  36076. /**
  36077. * 兼容as3编译工具
  36078. */
  36079. static __init(_classs:any[]):void;
  36080. /**
  36081. * 初始化引擎。使用引擎需要先初始化引擎,否则可能会报错。
  36082. * @param width 初始化的游戏窗口宽度,又称设计宽度。
  36083. * @param height 初始化的游戏窗口高度,又称设计高度。
  36084. * @param plugins 插件列表,比如 WebGL(使用WebGL方式渲染)。
  36085. * @return 返回原生canvas引用,方便对canvas属性进行修改
  36086. */
  36087. static init(width:number,height:number,...plugins:any[]):any;
  36088. /**
  36089. * 表示是否捕获全局错误并弹出提示。默认为false。
  36090. * 适用于移动设备等不方便调试的时候,设置为true后,如有未知错误,可以弹窗抛出详细错误堆栈。
  36091. */
  36092. static alertGlobalError:boolean;
  36093. /**
  36094. * 开启DebugPanel
  36095. * @param debugJsPath laya.debugtool.js文件路径
  36096. */
  36097. static enableDebugPanel(debugJsPath?:string):void;
  36098. private static isNativeRender_enable:any;
  36099. /**
  36100. * @private
  36101. */
  36102. private static enableWebGLPlus:any;
  36103. /**
  36104. * @private
  36105. */
  36106. private static enableNative:any;
  36107. }
  36108. /**
  36109. * <code>Laya3D</code> 类用于初始化3D设置。
  36110. */
  36111. declare class Laya3D {
  36112. /**
  36113. * Hierarchy资源。
  36114. */
  36115. static HIERARCHY:string;
  36116. /**
  36117. * Mesh资源。
  36118. */
  36119. static MESH:string;
  36120. /**
  36121. * Material资源。
  36122. */
  36123. static MATERIAL:string;
  36124. /**
  36125. * Texture2D资源。
  36126. */
  36127. static TEXTURE2D:string;
  36128. /**
  36129. * TextureCube资源。
  36130. */
  36131. static TEXTURECUBE:string;
  36132. /**
  36133. * AnimationClip资源。
  36134. */
  36135. static ANIMATIONCLIP:string;
  36136. /**
  36137. * Avatar资源。
  36138. */
  36139. static AVATAR:string;
  36140. /**
  36141. * Terrain资源。
  36142. */
  36143. static TERRAINHEIGHTDATA:string;
  36144. /**
  36145. * Terrain资源。
  36146. */
  36147. static TERRAINRES:string;
  36148. /**
  36149. * @private
  36150. */
  36151. static physicsSettings:laya.d3.physics.PhysicsSettings;
  36152. /**
  36153. * 获取是否可以启用物理。
  36154. * @param 是否启用物理 。
  36155. */
  36156. static readonly enbalePhysics:any;
  36157. private static enableNative3D:any;
  36158. /**
  36159. * @private
  36160. */
  36161. private static formatRelativePath:any;
  36162. /**
  36163. * 初始化Laya3D相关设置。
  36164. * @param width 3D画布宽度。
  36165. * @param height 3D画布高度。
  36166. */
  36167. static init(width:number,height:number,config?:Config3D,compolete?:laya.utils.Handler):void;
  36168. /**
  36169. * 创建一个 <code>Laya3D</code> 实例。
  36170. */
  36171. constructor();
  36172. }
  36173. /**
  36174. * 全局配置
  36175. */
  36176. declare class UIConfig {
  36177. /**
  36178. * 是否开启触摸滚动(针对滚动条)
  36179. */
  36180. static touchScrollEnable:boolean;
  36181. /**
  36182. * 是否开启滑轮滚动(针对滚动条)
  36183. */
  36184. static mouseWheelEnable:boolean;
  36185. /**
  36186. * 是否显示滚动条按钮
  36187. */
  36188. static showButtons:boolean;
  36189. /**
  36190. * 弹出框背景颜色
  36191. */
  36192. static popupBgColor:string;
  36193. /**
  36194. * 弹出框背景透明度
  36195. */
  36196. static popupBgAlpha:number;
  36197. /**
  36198. * 模式窗口点击边缘,是否关闭窗口,默认是关闭的
  36199. */
  36200. static closeDialogOnSide:boolean;
  36201. }
  36202. declare module Laya {
  36203. /**
  36204. * 开始播放时调度。
  36205. * @eventType Event.PLAYED
  36206. */
  36207. /**
  36208. * 暂停时调度。
  36209. * @eventType Event.PAUSED
  36210. */
  36211. /**
  36212. * 完成一次循环时调度。
  36213. * @eventType Event.COMPLETE
  36214. */
  36215. /**
  36216. * 停止时调度。
  36217. * @eventType Event.STOPPED
  36218. */
  36219. /**
  36220. * <code>AnimationPlayer</code> 类用于动画播放器。
  36221. */
  36222. class AnimationPlayer extends laya.ani.AnimationPlayer {}
  36223. /**
  36224. * <code>AnimationTemplet</code> 类用于动画模板资源。
  36225. */
  36226. class AnimationTemplet extends laya.ani.AnimationTemplet {}
  36227. /**
  36228. * @private
  36229. */
  36230. class Bone extends laya.ani.bone.Bone {}
  36231. class BoneSlot extends laya.ani.bone.BoneSlot {}
  36232. /**
  36233. */
  36234. class MeshData extends laya.ani.bone.canvasmesh.MeshData {}
  36235. class SkinMeshForGraphic extends laya.ani.bone.canvasmesh.SkinMeshForGraphic {}
  36236. class EventData extends laya.ani.bone.EventData {}
  36237. /**
  36238. * 动画开始播放调度
  36239. * @eventType Event.PLAYED
  36240. */
  36241. /**
  36242. * 动画停止播放调度
  36243. * @eventType Event.STOPPED
  36244. */
  36245. /**
  36246. * 动画暂停播放调度
  36247. * @eventType Event.PAUSED
  36248. */
  36249. /**
  36250. * 自定义事件。
  36251. * @eventType Event.LABEL
  36252. */
  36253. /**
  36254. * 骨骼动画由<code>Templet</code>,<code>AnimationPlayer</code>,<code>Skeleton</code>三部分组成。
  36255. */
  36256. class Skeleton extends laya.ani.bone.Skeleton {}
  36257. class SkinSlotDisplayData extends laya.ani.bone.SkinSlotDisplayData {}
  36258. class SlotData extends laya.ani.bone.SlotData {}
  36259. /**
  36260. * 数据解析完成后的调度。
  36261. * @eventType Event.COMPLETE
  36262. */
  36263. /**
  36264. * 数据解析错误后的调度。
  36265. * @eventType Event.ERROR
  36266. */
  36267. /**
  36268. * 动画模板类
  36269. */
  36270. class Templet extends laya.ani.bone.Templet {}
  36271. class Transform extends laya.ani.bone.Transform {}
  36272. class GraphicsAni extends laya.ani.GraphicsAni {}
  36273. class KeyFramesContent extends laya.ani.KeyFramesContent {}
  36274. /**
  36275. * 动画播放完毕后调度。
  36276. * @eventType Event.COMPLETE
  36277. */
  36278. /**
  36279. * 播放到某标签后调度。
  36280. * @eventType Event.LABEL
  36281. */
  36282. /**
  36283. * 加载完成后调度。
  36284. * @eventType Event.LOADED
  36285. */
  36286. /**
  36287. * 进入帧后调度。
  36288. * @eventType Event.FRAME
  36289. */
  36290. /**
  36291. * <p> <code>MovieClip</code> 用于播放经过工具处理后的 swf 动画。</p>
  36292. */
  36293. class MovieClip extends laya.ani.swf.MovieClip {}
  36294. /**
  36295. * <code>CommonScript</code> 类用于创建公共脚本类。
  36296. */
  36297. class CommonScript extends laya.components.CommonScript {}
  36298. /**
  36299. * <code>Component</code> 类用于创建组件的基类。
  36300. */
  36301. class Component extends laya.components.Component {}
  36302. /**
  36303. * 模板,预制件
  36304. */
  36305. class Prefab extends laya.components.Prefab {}
  36306. /**
  36307. * <code>Script</code> 类用于创建脚本的父类,该类为抽象类,不允许实例。
  36308. * 组件的生命周期
  36309. */
  36310. class Script extends laya.components.Script {}
  36311. /**
  36312. * @private 静态常量集合
  36313. */
  36314. class Const extends laya.Const {}
  36315. /**
  36316. * <code>AnimationClip</code> 类用于动画片段资源。
  36317. */
  36318. class AnimationClip extends laya.d3.animation.AnimationClip {}
  36319. /**
  36320. * <code>AnimationEvent</code> 类用于实现动画事件。
  36321. */
  36322. class AnimationEvent extends laya.d3.animation.AnimationEvent {}
  36323. /**
  36324. * <code>BoneNode</code> 类用于实现骨骼节点。
  36325. */
  36326. class AnimationNode extends laya.d3.animation.AnimationNode {}
  36327. /**
  36328. * <code>AnimationTransform3D</code> 类用于实现3D变换。
  36329. */
  36330. class AnimationTransform3D extends laya.d3.animation.AnimationTransform3D {}
  36331. /**
  36332. * <code>AnimatorStateScript</code> 类用于动画状态脚本的父类,该类为抽象类,不允许实例。
  36333. */
  36334. class AnimatorStateScript extends laya.d3.animation.AnimatorStateScript {}
  36335. /**
  36336. * /**
  36337. * <code>CastShadowList</code> 类用于实现产生阴影者队列。
  36338. */
  36339. class CastShadowList extends laya.d3.CastShadowList {}
  36340. /**
  36341. * <code>Animator</code> 类用于创建动画组件。
  36342. */
  36343. class Animator extends laya.d3.component.Animator {}
  36344. /**
  36345. * <code>AnimatorControllerLayer</code> 类用于创建动画控制器层。
  36346. */
  36347. class AnimatorControllerLayer extends laya.d3.component.AnimatorControllerLayer {}
  36348. /**
  36349. * <code>AnimatorPlayState</code> 类用于创建动画播放状态信息。
  36350. */
  36351. class AnimatorPlayState extends laya.d3.component.AnimatorPlayState {}
  36352. /**
  36353. * <code>AnimatorState</code> 类用于创建动作状态。
  36354. */
  36355. class AnimatorState extends laya.d3.component.AnimatorState {}
  36356. /**
  36357. * <code>PostProcess</code> 类用于创建后期处理组件。
  36358. */
  36359. class PostProcess extends laya.d3.component.PostProcess {}
  36360. /**
  36361. * <code>Script3D</code> 类用于创建脚本的父类,该类为抽象类,不允许实例。
  36362. */
  36363. class Script3D extends laya.d3.component.Script3D {}
  36364. /**
  36365. * <code>SimpleSingletonList</code> 类用于实现单例队列。
  36366. */
  36367. class SimpleSingletonList extends laya.d3.component.SimpleSingletonList {}
  36368. /**
  36369. * <code>SingletonList</code> 类用于实现单例队列。
  36370. */
  36371. class SingletonList<T> extends laya.d3.component.SingletonList<T> {}
  36372. /**
  36373. * <code>Avatar</code> 类用于创建Avatar。
  36374. */
  36375. class Avatar extends laya.d3.core.Avatar {}
  36376. /**
  36377. * <code>BaseCamera</code> 类用于创建摄像机的父类。
  36378. */
  36379. class BaseCamera extends laya.d3.core.BaseCamera {}
  36380. /**
  36381. * <code>Bounds</code> 类用于创建包围体。
  36382. */
  36383. class Bounds extends laya.d3.core.Bounds {}
  36384. /**
  36385. * <code>Camera</code> 类用于创建摄像机。
  36386. */
  36387. class Camera extends laya.d3.core.Camera {}
  36388. /**
  36389. * <code>FloatKeyFrame</code> 类用于创建浮点关键帧实例。
  36390. */
  36391. class FloatKeyframe extends laya.d3.core.FloatKeyframe {}
  36392. /**
  36393. * <code>GeometryElement</code> 类用于实现几何体元素,该类为抽象类。
  36394. */
  36395. class GeometryElement extends laya.d3.core.GeometryElement {}
  36396. /**
  36397. * <code>Gradient</code> 类用于创建颜色渐变。
  36398. */
  36399. class Gradient extends laya.d3.core.Gradient {}
  36400. /**
  36401. * ...
  36402. * @author ...
  36403. */
  36404. class GradientMode extends laya.d3.core.GradientMode {}
  36405. /**
  36406. * <code>HeightMap</code> 类用于实现高度图数据。
  36407. */
  36408. class HeightMap extends laya.d3.core.HeightMap {}
  36409. /**
  36410. * <code>KeyFrame</code> 类用于创建关键帧实例。
  36411. */
  36412. class Keyframe extends laya.d3.core.Keyframe {}
  36413. /**
  36414. * <code>DirectionLight</code> 类用于创建平行光。
  36415. */
  36416. class DirectionLight extends laya.d3.core.light.DirectionLight {}
  36417. /**
  36418. * <code>LightSprite</code> 类用于创建灯光的父类。
  36419. */
  36420. class LightSprite extends laya.d3.core.light.LightSprite {}
  36421. /**
  36422. * <code>PointLight</code> 类用于创建点光。
  36423. */
  36424. class PointLight extends laya.d3.core.light.PointLight {}
  36425. /**
  36426. * <code>SpotLight</code> 类用于创建聚光。
  36427. */
  36428. class SpotLight extends laya.d3.core.light.SpotLight {}
  36429. /**
  36430. * <code>BaseMaterial</code> 类用于创建材质。
  36431. */
  36432. class BaseMaterial extends laya.d3.core.material.BaseMaterial {}
  36433. /**
  36434. * <code>BlinnPhongMaterial</code> 类用于实现Blinn-Phong材质。
  36435. */
  36436. class BlinnPhongMaterial extends laya.d3.core.material.BlinnPhongMaterial {}
  36437. /**
  36438. * <code>EffectMaterial</code> 类用于实现Mesh特效材质。
  36439. */
  36440. class EffectMaterial extends laya.d3.core.material.EffectMaterial {}
  36441. /**
  36442. * ...
  36443. * @author ...
  36444. */
  36445. class ExtendTerrainMaterial extends laya.d3.core.material.ExtendTerrainMaterial {}
  36446. /**
  36447. * <code>PBRSpecularMaterial</code> 类用于实现PBR(Specular)材质。
  36448. */
  36449. class PBRSpecularMaterial extends laya.d3.core.material.PBRSpecularMaterial {}
  36450. /**
  36451. * <code>PBRStandardMaterial</code> 类用于实现PBR(Standard)材质。
  36452. */
  36453. class PBRStandardMaterial extends laya.d3.core.material.PBRStandardMaterial {}
  36454. /**
  36455. * <code>RenderState</code> 类用于控制渲染状态。
  36456. */
  36457. class RenderState extends laya.d3.core.material.RenderState {}
  36458. /**
  36459. * <code>SkyBoxMaterial</code> 类用于实现SkyBoxMaterial材质。
  36460. */
  36461. class SkyBoxMaterial extends laya.d3.core.material.SkyBoxMaterial {}
  36462. /**
  36463. * <code>SkyProceduralMaterial</code> 类用于实现SkyProceduralMaterial材质。
  36464. */
  36465. class SkyProceduralMaterial extends laya.d3.core.material.SkyProceduralMaterial {}
  36466. /**
  36467. * <code>UnlitMaterial</code> 类用于实现不受光照影响的材质。
  36468. */
  36469. class UnlitMaterial extends laya.d3.core.material.UnlitMaterial {}
  36470. /**
  36471. * <code>WaterPrimaryMaterial</code> 类用于实现水材质。
  36472. */
  36473. class WaterPrimaryMaterial extends laya.d3.core.material.WaterPrimaryMaterial {}
  36474. /**
  36475. * <code>MeshFilter</code> 类用于创建网格过滤器。
  36476. */
  36477. class MeshFilter extends laya.d3.core.MeshFilter {}
  36478. /**
  36479. * <code>MeshRenderer</code> 类用于网格渲染器。
  36480. */
  36481. class MeshRenderer extends laya.d3.core.MeshRenderer {}
  36482. /**
  36483. * <code>MeshSprite3D</code> 类用于创建网格。
  36484. */
  36485. class MeshSprite3D extends laya.d3.core.MeshSprite3D {}
  36486. class MeshSprite3DShaderDeclaration extends laya.d3.core.MeshSprite3DShaderDeclaration {}
  36487. /**
  36488. * <code>TerrainMeshSprite3D</code> 类用于创建网格。
  36489. */
  36490. class MeshTerrainSprite3D extends laya.d3.core.MeshTerrainSprite3D {}
  36491. /**
  36492. * <code>Burst</code> 类用于粒子的爆裂描述。
  36493. */
  36494. class Burst extends laya.d3.core.particleShuriKen.module.Burst {}
  36495. /**
  36496. * <code>ColorOverLifetime</code> 类用于粒子的生命周期颜色。
  36497. */
  36498. class ColorOverLifetime extends laya.d3.core.particleShuriKen.module.ColorOverLifetime {}
  36499. /**
  36500. * <code>Emission</code> 类用于粒子发射器。
  36501. */
  36502. class Emission extends laya.d3.core.particleShuriKen.module.Emission {}
  36503. /**
  36504. * <code>FrameOverTime</code> 类用于创建时间帧。
  36505. */
  36506. class FrameOverTime extends laya.d3.core.particleShuriKen.module.FrameOverTime {}
  36507. /**
  36508. * <code>GradientRotation</code> 类用于创建渐变角速度。
  36509. */
  36510. class GradientAngularVelocity extends laya.d3.core.particleShuriKen.module.GradientAngularVelocity {}
  36511. /**
  36512. * <code>GradientColor</code> 类用于创建渐变颜色。
  36513. */
  36514. class GradientColor extends laya.d3.core.particleShuriKen.module.GradientColor {}
  36515. /**
  36516. * <code>GradientDataInt</code> 类用于创建整形渐变。
  36517. */
  36518. class GradientDataInt extends laya.d3.core.particleShuriKen.module.GradientDataInt {}
  36519. /**
  36520. * <code>GradientDataNumber</code> 类用于创建浮点渐变。
  36521. */
  36522. class GradientDataNumber extends laya.d3.core.particleShuriKen.module.GradientDataNumber {}
  36523. /**
  36524. * <code>GradientDataVector2</code> 类用于创建二维向量渐变。
  36525. */
  36526. class GradientDataVector2 extends laya.d3.core.particleShuriKen.module.GradientDataVector2 {}
  36527. /**
  36528. * <code>GradientSize</code> 类用于创建渐变尺寸。
  36529. */
  36530. class GradientSize extends laya.d3.core.particleShuriKen.module.GradientSize {}
  36531. /**
  36532. * <code>GradientVelocity</code> 类用于创建渐变速度。
  36533. */
  36534. class GradientVelocity extends laya.d3.core.particleShuriKen.module.GradientVelocity {}
  36535. /**
  36536. * <code>RotationOverLifetime</code> 类用于粒子的生命周期旋转。
  36537. */
  36538. class RotationOverLifetime extends laya.d3.core.particleShuriKen.module.RotationOverLifetime {}
  36539. /**
  36540. * <code>BaseShape</code> 类用于粒子形状。
  36541. */
  36542. class BaseShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {}
  36543. /**
  36544. * <code>BoxShape</code> 类用于创建球形粒子形状。
  36545. */
  36546. class BoxShape extends laya.d3.core.particleShuriKen.module.shape.BoxShape {}
  36547. /**
  36548. * <code>CircleShape</code> 类用于创建环形粒子形状。
  36549. */
  36550. class CircleShape extends laya.d3.core.particleShuriKen.module.shape.CircleShape {}
  36551. /**
  36552. * <code>ConeShape</code> 类用于创建锥形粒子形状。
  36553. */
  36554. class ConeShape extends laya.d3.core.particleShuriKen.module.shape.ConeShape {}
  36555. /**
  36556. * <code>HemisphereShape</code> 类用于创建半球形粒子形状。
  36557. */
  36558. class HemisphereShape extends laya.d3.core.particleShuriKen.module.shape.HemisphereShape {}
  36559. /**
  36560. * ...
  36561. * @author ...
  36562. */
  36563. class ShapeUtils extends laya.d3.core.particleShuriKen.module.shape.ShapeUtils {}
  36564. /**
  36565. * <code>SphereShape</code> 类用于创建球形粒子形状。
  36566. */
  36567. class SphereShape extends laya.d3.core.particleShuriKen.module.shape.SphereShape {}
  36568. /**
  36569. * <code>SizeOverLifetime</code> 类用于粒子的生命周期尺寸。
  36570. */
  36571. class SizeOverLifetime extends laya.d3.core.particleShuriKen.module.SizeOverLifetime {}
  36572. /**
  36573. * <code>StartFrame</code> 类用于创建开始帧。
  36574. */
  36575. class StartFrame extends laya.d3.core.particleShuriKen.module.StartFrame {}
  36576. /**
  36577. * <code>TextureSheetAnimation</code> 类用于创建粒子帧动画。
  36578. */
  36579. class TextureSheetAnimation extends laya.d3.core.particleShuriKen.module.TextureSheetAnimation {}
  36580. /**
  36581. * <code>VelocityOverLifetime</code> 类用于粒子的生命周期速度。
  36582. */
  36583. class VelocityOverLifetime extends laya.d3.core.particleShuriKen.module.VelocityOverLifetime {}
  36584. /**
  36585. * <code>ShuriKenParticle3D</code> 3D粒子。
  36586. */
  36587. class ShuriKenParticle3D extends laya.d3.core.particleShuriKen.ShuriKenParticle3D {}
  36588. class ShuriKenParticle3DShaderDeclaration extends laya.d3.core.particleShuriKen.ShuriKenParticle3DShaderDeclaration {}
  36589. /**
  36590. * <code>ShurikenParticleMaterial</code> 类用于实现粒子材质。
  36591. */
  36592. class ShurikenParticleMaterial extends laya.d3.core.particleShuriKen.ShurikenParticleMaterial {}
  36593. /**
  36594. * <code>ShurikenParticleRender</code> 类用于创建3D粒子渲染器。
  36595. */
  36596. class ShurikenParticleRenderer extends laya.d3.core.particleShuriKen.ShurikenParticleRenderer {}
  36597. /**
  36598. * <code>ShurikenParticleSystem</code> 类用于创建3D粒子数据模板。
  36599. */
  36600. class ShurikenParticleSystem extends laya.d3.core.particleShuriKen.ShurikenParticleSystem {}
  36601. /**
  36602. * <code>PixelLineData</code> 类用于表示线数据。
  36603. */
  36604. class PixelLineData extends laya.d3.core.pixelLine.PixelLineData {}
  36605. /**
  36606. * <code>PixelLineFilter</code> 类用于线过滤器。
  36607. */
  36608. class PixelLineFilter extends laya.d3.core.pixelLine.PixelLineFilter {}
  36609. /**
  36610. * <code>PixelLineMaterial</code> 类用于实现像素线材质。
  36611. */
  36612. class PixelLineMaterial extends laya.d3.core.pixelLine.PixelLineMaterial {}
  36613. /**
  36614. * <code>PixelLineRenderer</code> 类用于线渲染器。
  36615. */
  36616. class PixelLineRenderer extends laya.d3.core.pixelLine.PixelLineRenderer {}
  36617. /**
  36618. * <code>PixelLineSprite3D</code> 类用于像素线渲染精灵。
  36619. */
  36620. class PixelLineSprite3D extends laya.d3.core.pixelLine.PixelLineSprite3D {}
  36621. /**
  36622. * ...
  36623. * @author
  36624. */
  36625. class PixelLineVertex extends laya.d3.core.pixelLine.PixelLineVertex {}
  36626. /**
  36627. * <code>QuaternionKeyframe</code> 类用于创建四元数关键帧实例。
  36628. */
  36629. class QuaternionKeyframe extends laya.d3.core.QuaternionKeyframe {}
  36630. /**
  36631. * <code>Render</code> 类用于渲染器的父类,抽象类不允许实例。
  36632. */
  36633. class BaseRender extends laya.d3.core.render.BaseRender {}
  36634. /**
  36635. * <code>BloomEffect</code> 类用于创建泛光效果。
  36636. */
  36637. class BloomEffect extends laya.d3.core.render.BloomEffect {}
  36638. /**
  36639. * <code>BlitCMD</code> 类用于创建从一张渲染目标输出到另外一张渲染目标指令。
  36640. */
  36641. class BlitScreenQuadCMD extends laya.d3.core.render.command.BlitScreenQuadCMD {}
  36642. /**
  36643. * <code>Command</code> 类用于创建指令。
  36644. */
  36645. class Command extends laya.d3.core.render.command.Command {}
  36646. /**
  36647. * <code>CommandBuffer</code> 类用于创建命令流。
  36648. */
  36649. class CommandBuffer extends laya.d3.core.render.command.CommandBuffer {}
  36650. /**
  36651. * <code>PostProcessEffect</code> 类用于创建后期处理渲染效果。
  36652. */
  36653. class PostProcessEffect extends laya.d3.core.render.PostProcessEffect {}
  36654. /**
  36655. * * <code>PostProcessRenderContext</code> 类用于创建后期处理渲染上下文。
  36656. */
  36657. class PostProcessRenderContext extends laya.d3.core.render.PostProcessRenderContext {}
  36658. /**
  36659. * <code>RenderContext3D</code> 类用于实现渲染状态。
  36660. */
  36661. class RenderContext3D extends laya.d3.core.render.RenderContext3D {}
  36662. /**
  36663. * <code>RenderElement</code> 类用于实现渲染元素。
  36664. */
  36665. class RenderElement extends laya.d3.core.render.RenderElement {}
  36666. /**
  36667. * <code>ScreenQuad</code> 类用于创建全屏四边形。
  36668. */
  36669. class ScreenQuad extends laya.d3.core.render.ScreenQuad {}
  36670. /**
  36671. * <code>ScreenTriangle</code> 类用于创建全屏三角形。
  36672. */
  36673. class ScreenTriangle extends laya.d3.core.render.ScreenTriangle {}
  36674. /**
  36675. * <code>RenderableSprite3D</code> 类用于可渲染3D精灵的父类,抽象类不允许实例。
  36676. */
  36677. class RenderableSprite3D extends laya.d3.core.RenderableSprite3D {}
  36678. /**
  36679. * <code>BoundsOctree</code> 类用于创建八叉树。
  36680. */
  36681. class BoundsOctree extends laya.d3.core.scene.BoundsOctree {}
  36682. /**
  36683. * <code>BoundsOctreeNode</code> 类用于创建八叉树节点。
  36684. */
  36685. class BoundsOctreeNode extends laya.d3.core.scene.BoundsOctreeNode {}
  36686. /**
  36687. * <code>OctreeMotionList</code> 类用于实现物理更新队列。
  36688. */
  36689. class OctreeMotionList extends laya.d3.core.scene.OctreeMotionList {}
  36690. /**
  36691. * <code>Scene3D</code> 类用于实现场景。
  36692. */
  36693. class Scene3D extends laya.d3.core.scene.Scene3D {}
  36694. class Scene3DShaderDeclaration extends laya.d3.core.scene.Scene3DShaderDeclaration {}
  36695. /**
  36696. * ...
  36697. * @author ...
  36698. */
  36699. class SceneManager extends laya.d3.core.scene.SceneManager {}
  36700. /**
  36701. * <code>SkinMeshRenderer</code> 类用于蒙皮渲染器。
  36702. */
  36703. class SkinnedMeshRenderer extends laya.d3.core.SkinnedMeshRenderer {}
  36704. /**
  36705. * <code>SkinnedMeshSprite3D</code> 类用于创建网格。
  36706. */
  36707. class SkinnedMeshSprite3D extends laya.d3.core.SkinnedMeshSprite3D {}
  36708. class SkinnedMeshSprite3DShaderDeclaration extends laya.d3.core.SkinnedMeshSprite3DShaderDeclaration {}
  36709. /**
  36710. * <code>Sprite3D</code> 类用于实现3D精灵。
  36711. */
  36712. class Sprite3D extends laya.d3.core.Sprite3D {}
  36713. class TextureMode extends laya.d3.core.TextureMode {}
  36714. /**
  36715. * <code>TrailFilter</code> 类用于创建拖尾过滤器。
  36716. */
  36717. class TrailFilter extends laya.d3.core.trail.TrailFilter {}
  36718. /**
  36719. * <code>TrailGeometry</code> 类用于创建拖尾渲染单元。
  36720. */
  36721. class TrailGeometry extends laya.d3.core.trail.TrailGeometry {}
  36722. /**
  36723. * <code>TrailMaterial</code> 类用于实现拖尾材质。
  36724. */
  36725. class TrailMaterial extends laya.d3.core.trail.TrailMaterial {}
  36726. /**
  36727. * <code>TrailRenderer</code> 类用于创建拖尾渲染器。
  36728. */
  36729. class TrailRenderer extends laya.d3.core.trail.TrailRenderer {}
  36730. /**
  36731. * <code>TrailSprite3D</code> 类用于创建拖尾渲染精灵。
  36732. */
  36733. class TrailSprite3D extends laya.d3.core.trail.TrailSprite3D {}
  36734. /**
  36735. * <code>VertexTrail</code> 类用于创建拖尾顶点结构。
  36736. */
  36737. class VertexTrail extends laya.d3.core.trail.VertexTrail {}
  36738. /**
  36739. * <code>Transform3D</code> 类用于实现3D变换。
  36740. */
  36741. class Transform3D extends laya.d3.core.Transform3D {}
  36742. /**
  36743. * <code>Vector3Keyframe</code> 类用于创建三维向量关键帧实例。
  36744. */
  36745. class Vector3Keyframe extends laya.d3.core.Vector3Keyframe {}
  36746. /**
  36747. * <code>IndexBuffer3D</code> 类用于创建索引缓冲。
  36748. */
  36749. class IndexBuffer3D extends laya.d3.graphics.IndexBuffer3D {}
  36750. /**
  36751. * <code>StaticBatchManager</code> 类用于静态批处理管理的父类。
  36752. */
  36753. class StaticBatchManager extends laya.d3.graphics.StaticBatchManager {}
  36754. /**
  36755. * ...
  36756. * @author ...
  36757. */
  36758. class VertexMesh extends laya.d3.graphics.Vertex.VertexMesh {}
  36759. /**
  36760. * <code>VertexPositionTerrain</code> 类用于创建位置、法线、纹理1、纹理2顶点结构。
  36761. */
  36762. class VertexPositionTerrain extends laya.d3.graphics.Vertex.VertexPositionTerrain {}
  36763. /**
  36764. * <code>VertexPositionNormalTexture</code> 类用于创建位置、纹理顶点结构。
  36765. */
  36766. class VertexPositionTexture0 extends laya.d3.graphics.Vertex.VertexPositionTexture0 {}
  36767. /**
  36768. * ...
  36769. * @author ...
  36770. */
  36771. class VertexShuriKenParticle extends laya.d3.graphics.Vertex.VertexShuriKenParticle {}
  36772. /**
  36773. * <code>VertexShurikenParticle</code> 类用于创建粒子顶点结构。
  36774. */
  36775. class VertexShurikenParticleBillboard extends laya.d3.graphics.Vertex.VertexShurikenParticleBillboard {}
  36776. /**
  36777. * /**
  36778. * <code>VertexShurikenParticle</code> 类用于创建粒子顶点结构。
  36779. */
  36780. class VertexShurikenParticleMesh extends laya.d3.graphics.Vertex.VertexShurikenParticleMesh {}
  36781. /**
  36782. * <code>VertexBuffer3D</code> 类用于创建顶点缓冲。
  36783. */
  36784. class VertexBuffer3D extends laya.d3.graphics.VertexBuffer3D {}
  36785. /**
  36786. * <code>VertexDeclaration</code> 类用于生成顶点声明。
  36787. */
  36788. class VertexDeclaration extends laya.d3.graphics.VertexDeclaration {}
  36789. /**
  36790. * <code>VertexElement</code> 类用于创建顶点结构分配。
  36791. */
  36792. class VertexElement extends laya.d3.graphics.VertexElement {}
  36793. /**
  36794. * ...
  36795. * @author ...
  36796. */
  36797. class VertexElementFormat extends laya.d3.graphics.VertexElementFormat {}
  36798. /**
  36799. * <code>Input3D</code> 类用于实现3D输入。
  36800. */
  36801. class Input3D extends laya.d3.Input3D {}
  36802. /**
  36803. * ...
  36804. * @author ...
  36805. */
  36806. class MeshReader extends laya.d3.loaders.MeshReader {}
  36807. /**
  36808. * <code>BoundBox</code> 类用于创建包围盒。
  36809. */
  36810. class BoundBox extends laya.d3.math.BoundBox {}
  36811. /**
  36812. * <code>BoundFrustum</code> 类用于创建锥截体。
  36813. */
  36814. class BoundFrustum extends laya.d3.math.BoundFrustum {}
  36815. /**
  36816. * <code>BoundSphere</code> 类用于创建包围球。
  36817. */
  36818. class BoundSphere extends laya.d3.math.BoundSphere {}
  36819. /**
  36820. * <code>Collision</code> 类用于检测碰撞。
  36821. */
  36822. class CollisionUtils extends laya.d3.math.CollisionUtils {}
  36823. /**
  36824. * <code>Color</code> 类用于创建颜色实例。
  36825. */
  36826. class Color extends laya.d3.math.Color {}
  36827. /**
  36828. * <code>ContainmentType</code> 类用于定义空间物体位置关系。
  36829. */
  36830. class ContainmentType extends laya.d3.math.ContainmentType {}
  36831. /**
  36832. * <code>HalfFloatUtils</code> 类用于创建HalfFloat工具。
  36833. */
  36834. class HalfFloatUtils extends laya.d3.math.HalfFloatUtils {}
  36835. /**
  36836. * <code>MathUtils</code> 类用于创建数学工具。
  36837. */
  36838. class MathUtils3D extends laya.d3.math.MathUtils3D {}
  36839. /**
  36840. * <code>Matrix3x3</code> 类用于创建3x3矩阵。
  36841. */
  36842. class Matrix3x3 extends laya.d3.math.Matrix3x3 {}
  36843. /**
  36844. * <code>Matrix4x4</code> 类用于创建4x4矩阵。
  36845. */
  36846. class Matrix4x4 extends laya.d3.math.Matrix4x4 {}
  36847. /**
  36848. * <code>Quaternion</code> 类用于创建四元数。
  36849. */
  36850. class ConchQuaternion extends laya.d3.math.Native.ConchQuaternion {}
  36851. /**
  36852. * <code>Vector3</code> 类用于创建三维向量。
  36853. */
  36854. class ConchVector3 extends laya.d3.math.Native.ConchVector3 {}
  36855. /**
  36856. * <code>Vector4</code> 类用于创建四维向量。
  36857. */
  36858. class ConchVector4 extends laya.d3.math.Native.ConchVector4 {}
  36859. /**
  36860. * <code>Plane</code> 类用于创建平面。
  36861. */
  36862. class Plane extends laya.d3.math.Plane {}
  36863. /**
  36864. * <code>Quaternion</code> 类用于创建四元数。
  36865. */
  36866. class Quaternion extends laya.d3.math.Quaternion {}
  36867. /**
  36868. * <code>Rand</code> 类用于通过32位无符号整型随机种子创建随机数。
  36869. */
  36870. class Rand extends laya.d3.math.Rand {}
  36871. /**
  36872. * <code>Rand</code> 类用于通过128位整型种子创建随机数,算法来自:https://github.com/AndreasMadsen/xorshift。
  36873. */
  36874. class RandX extends laya.d3.math.RandX {}
  36875. /**
  36876. * <code>Ray</code> 类用于创建射线。
  36877. */
  36878. class Ray extends laya.d3.math.Ray {}
  36879. /**
  36880. * <code>Vector2</code> 类用于创建二维向量。
  36881. */
  36882. class Vector2 extends laya.d3.math.Vector2 {}
  36883. /**
  36884. * <code>Vector3</code> 类用于创建三维向量。
  36885. */
  36886. class Vector3 extends laya.d3.math.Vector3 {}
  36887. /**
  36888. * <code>Vector4</code> 类用于创建四维向量。
  36889. */
  36890. class Vector4 extends laya.d3.math.Vector4 {}
  36891. /**
  36892. * <code>Viewport</code> 类用于创建视口。
  36893. */
  36894. class Viewport extends laya.d3.math.Viewport {}
  36895. /**
  36896. * <code>CharacterController</code> 类用于创建角色控制器。
  36897. */
  36898. class CharacterController extends laya.d3.physics.CharacterController {}
  36899. /**
  36900. * <code>Collision</code> 类用于创建物理碰撞信息。
  36901. */
  36902. class Collision extends laya.d3.physics.Collision {}
  36903. /**
  36904. * <code>CollisionMap</code> 类用于实现碰撞组合实例图。
  36905. */
  36906. class CollisionTool extends laya.d3.physics.CollisionTool {}
  36907. /**
  36908. * ...
  36909. * @author ...
  36910. */
  36911. class Constraint3D extends laya.d3.physics.Constraint3D {}
  36912. /**
  36913. * <code>ConstraintComponent</code> 类用于创建约束的父类。
  36914. */
  36915. class ConstraintComponent extends laya.d3.physics.constraints.ConstraintComponent {}
  36916. /**
  36917. * <code>Point2PointConstraint</code> 类用于创建物理组件的父类。
  36918. */
  36919. class Point2PointConstraint extends laya.d3.physics.constraints.Point2PointConstraint {}
  36920. /**
  36921. * <code>ContactPoint</code> 类用于创建物理碰撞信息。
  36922. */
  36923. class ContactPoint extends laya.d3.physics.ContactPoint {}
  36924. /**
  36925. * <code>HitResult</code> 类用于实现射线检测或形状扫描的结果。
  36926. */
  36927. class HitResult extends laya.d3.physics.HitResult {}
  36928. class Physics3D extends laya.d3.physics.Physics3D {}
  36929. /**
  36930. * <code>PhysicsCollider</code> 类用于创建物理碰撞器。
  36931. */
  36932. class PhysicsCollider extends laya.d3.physics.PhysicsCollider {}
  36933. /**
  36934. * <code>PhysicsComponent</code> 类用于创建物理组件的父类。
  36935. */
  36936. class PhysicsComponent extends laya.d3.physics.PhysicsComponent {}
  36937. /**
  36938. * <code>PhysicsSettings</code> 类用于创建物理配置信息。
  36939. */
  36940. class PhysicsSettings extends laya.d3.physics.PhysicsSettings {}
  36941. /**
  36942. * <code>Simulation</code> 类用于创建物理模拟器。
  36943. */
  36944. class PhysicsSimulation extends laya.d3.physics.PhysicsSimulation {}
  36945. /**
  36946. * <code>PhysicsTriggerComponent</code> 类用于创建物理触发器组件。
  36947. */
  36948. class PhysicsTriggerComponent extends laya.d3.physics.PhysicsTriggerComponent {}
  36949. /**
  36950. * <code>PhysicsUpdateList</code> 类用于实现物理更新队列。
  36951. */
  36952. class PhysicsUpdateList extends laya.d3.physics.PhysicsUpdateList {}
  36953. /**
  36954. * <code>Rigidbody3D</code> 类用于创建刚体碰撞器。
  36955. */
  36956. class Rigidbody3D extends laya.d3.physics.Rigidbody3D {}
  36957. /**
  36958. * <code>BoxColliderShape</code> 类用于创建盒子形状碰撞器。
  36959. */
  36960. class BoxColliderShape extends laya.d3.physics.shape.BoxColliderShape {}
  36961. /**
  36962. * <code>CapsuleColliderShape</code> 类用于创建胶囊形状碰撞器。
  36963. */
  36964. class CapsuleColliderShape extends laya.d3.physics.shape.CapsuleColliderShape {}
  36965. /**
  36966. * <code>ColliderShape</code> 类用于创建形状碰撞器的父类,该类为抽象类。
  36967. */
  36968. class ColliderShape extends laya.d3.physics.shape.ColliderShape {}
  36969. /**
  36970. * <code>CompoundColliderShape</code> 类用于创建盒子形状碰撞器。
  36971. */
  36972. class CompoundColliderShape extends laya.d3.physics.shape.CompoundColliderShape {}
  36973. /**
  36974. * <code>ConeColliderShape</code> 类用于创建圆柱碰撞器。
  36975. */
  36976. class ConeColliderShape extends laya.d3.physics.shape.ConeColliderShape {}
  36977. /**
  36978. * <code>CylinderColliderShape</code> 类用于创建圆柱碰撞器。
  36979. */
  36980. class CylinderColliderShape extends laya.d3.physics.shape.CylinderColliderShape {}
  36981. /**
  36982. * ...
  36983. * @author ...
  36984. */
  36985. class HeightfieldColliderShape extends laya.d3.physics.shape.HeightfieldColliderShape {}
  36986. /**
  36987. * <code>MeshColliderShape</code> 类用于创建网格碰撞器。
  36988. */
  36989. class MeshColliderShape extends laya.d3.physics.shape.MeshColliderShape {}
  36990. /**
  36991. * <code>SphereColliderShape</code> 类用于创建球形碰撞器。
  36992. */
  36993. class SphereColliderShape extends laya.d3.physics.shape.SphereColliderShape {}
  36994. /**
  36995. * <code>StaticPlaneColliderShape</code> 类用于创建静态平面碰撞器。
  36996. */
  36997. class StaticPlaneColliderShape extends laya.d3.physics.shape.StaticPlaneColliderShape {}
  36998. /**
  36999. * <code>Mesh</code> 类用于创建文件网格数据模板。
  37000. */
  37001. class Mesh extends laya.d3.resource.models.Mesh {}
  37002. /**
  37003. * <code>PrimitiveMesh</code> 类用于创建简单网格。
  37004. */
  37005. class PrimitiveMesh extends laya.d3.resource.models.PrimitiveMesh {}
  37006. /**
  37007. * <code>SkyBox</code> 类用于创建天空盒。
  37008. */
  37009. class SkyBox extends laya.d3.resource.models.SkyBox {}
  37010. /**
  37011. * <code>SkyDome</code> 类用于创建天空盒。
  37012. */
  37013. class SkyDome extends laya.d3.resource.models.SkyDome {}
  37014. /**
  37015. * <code>SkyMesh</code> 类用于实现天空网格。
  37016. */
  37017. class SkyMesh extends laya.d3.resource.models.SkyMesh {}
  37018. /**
  37019. * <code>SkyRenderer</code> 类用于实现天空渲染器。
  37020. */
  37021. class SkyRenderer extends laya.d3.resource.models.SkyRenderer {}
  37022. /**
  37023. * <code>SubMesh</code> 类用于创建子网格数据模板。
  37024. */
  37025. class SubMesh extends laya.d3.resource.models.SubMesh {}
  37026. /**
  37027. * <code>RenderTexture</code> 类用于创建渲染目标。
  37028. */
  37029. class RenderTexture extends laya.d3.resource.RenderTexture {}
  37030. /**
  37031. * <code>TextureCube</code> 类用于生成立方体纹理。
  37032. */
  37033. class TextureCube extends laya.d3.resource.TextureCube {}
  37034. /**
  37035. * ...
  37036. * @author
  37037. */
  37038. class TextureGenerator extends laya.d3.resource.TextureGenerator {}
  37039. /**
  37040. * <code>DefineDatas</code> 类用于创建宏定义数据集合。
  37041. */
  37042. class DefineDatas extends laya.d3.shader.DefineDatas {}
  37043. /**
  37044. * <code>Shader3D</code> 类用于创建Shader3D。
  37045. */
  37046. class Shader3D extends laya.d3.shader.Shader3D {}
  37047. /**
  37048. * 着色器数据类。
  37049. */
  37050. class ShaderData extends laya.d3.shader.ShaderData {}
  37051. class ShaderDefine extends laya.d3.shader.ShaderDefine {}
  37052. /**
  37053. * <code>ShaderPass</code> 类用于实现ShaderPass。
  37054. */
  37055. class ShaderPass extends laya.d3.shader.ShaderPass {}
  37056. /**
  37057. * <code>SubShader</code> 类用于创建SubShader。
  37058. */
  37059. class SubShader extends laya.d3.shader.SubShader {}
  37060. /**
  37061. * ...
  37062. * @author ...
  37063. */
  37064. class ParallelSplitShadowMap extends laya.d3.shadowMap.ParallelSplitShadowMap {}
  37065. /**
  37066. * <code>TextMesh</code> 类用于创建文本网格。
  37067. */
  37068. class TextMesh extends laya.d3.text.TextMesh {}
  37069. /**
  37070. * <code>Touch</code> 类用于实现触摸描述。
  37071. */
  37072. class Touch extends laya.d3.Touch {}
  37073. /**
  37074. * <code>Physics</code> 类用于简单物理检测。
  37075. */
  37076. class Physics3DUtils extends laya.d3.utils.Physics3DUtils {}
  37077. /**
  37078. * <code>Picker</code> 类用于创建拾取。
  37079. */
  37080. class Picker extends laya.d3.utils.Picker {}
  37081. /**
  37082. * <code>Utils3D</code> 类用于创建3D工具。
  37083. */
  37084. class Scene3DUtils extends laya.d3.utils.Scene3DUtils {}
  37085. class Size extends laya.d3.utils.Size {}
  37086. class SystemUtils extends laya.d3.utils.SystemUtils {}
  37087. /**
  37088. * <code>Utils3D</code> 类用于创建3D工具。
  37089. */
  37090. class Utils3D extends laya.d3.utils.Utils3D {}
  37091. /**
  37092. * 使用前可用<code>supported</code>查看浏览器支持。
  37093. */
  37094. class Geolocation extends laya.device.geolocation.Geolocation {}
  37095. class GeolocationInfo extends laya.device.geolocation.GeolocationInfo {}
  37096. /**
  37097. * Media用于捕捉摄像头和麦克风。可以捕捉任意之一,或者同时捕捉两者。<code>getCamera</code>前可以使用<code>supported()</code>检查当前浏览器是否支持。
  37098. * <b>NOTE:</b>
  37099. * <p>目前Media在移动平台只支持Android,不支持IOS。只可在FireFox完整地使用,Chrome测试时无法捕捉视频。</p>
  37100. */
  37101. class Media extends laya.device.media.Media {}
  37102. /**
  37103. * <code>Video</code>将视频显示到Canvas上。<code>Video</code>可能不会在所有浏览器有效。
  37104. * <p>关于Video支持的所有事件参见:<i>http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp</i>。</p>
  37105. * <p>
  37106. * <b>注意:</b><br/>
  37107. * 在PC端可以在任何时机调用<code>play()</code>因此,可以在程序开始运行时就使Video开始播放。但是在移动端,只有在用户第一次触碰屏幕后才可以调用play(),所以移动端不可能在程序开始运行时就自动开始播放Video。
  37108. * </p>
  37109. *
  37110. * <p>MDN Video链接: <i>https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video</i></p>
  37111. */
  37112. class Video extends laya.device.media.Video {}
  37113. /**
  37114. * 加速度x/y/z的单位均为m/s²。
  37115. * 在硬件(陀螺仪)不支持的情况下,alpha、beta和gamma值为null。
  37116. * @author Survivor
  37117. */
  37118. class AccelerationInfo extends laya.device.motion.AccelerationInfo {}
  37119. /**
  37120. * Accelerator.instance获取唯一的Accelerator引用,请勿调用构造函数。
  37121. *
  37122. * <p>
  37123. * listen()的回调处理器接受四个参数:
  37124. * <ol>
  37125. * <li><b>acceleration</b>: 表示用户给予设备的加速度。</li>
  37126. * <li><b>accelerationIncludingGravity</b>: 设备受到的总加速度(包含重力)。</li>
  37127. * <li><b>rotationRate</b>: 设备的自转速率。</li>
  37128. * <li><b>interval</b>: 加速度获取的时间间隔(毫秒)。</li>
  37129. * </ol>
  37130. * </p>
  37131. * <p>
  37132. * <b>NOTE</b><br/>
  37133. * 如,rotationRate的alpha在apple和moz文档中都是z轴旋转角度,但是实测是x轴旋转角度。为了使各属性表示的值与文档所述相同,实际值与其他属性进行了对调。
  37134. * 其中:
  37135. * <ul>
  37136. * <li>alpha使用gamma值。</li>
  37137. * <li>beta使用alpha值。</li>
  37138. * <li>gamma使用beta。</li>
  37139. * </ul>
  37140. * 目前孰是孰非尚未可知,以此为注。
  37141. * </p>
  37142. */
  37143. class Accelerator extends laya.device.motion.Accelerator {}
  37144. /**
  37145. * 使用Gyroscope.instance获取唯一的Gyroscope引用,请勿调用构造函数。
  37146. *
  37147. * <p>
  37148. * listen()的回调处理器接受两个参数:
  37149. * <code>function onOrientationChange(absolute:Boolean, info:RotationInfo):void</code>
  37150. * <ol>
  37151. * <li><b>absolute</b>: 指示设备是否可以提供绝对方位数据(指向地球坐标系),或者设备决定的任意坐标系。关于坐标系参见<i>https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Orientation_and_motion_data_explained</i>。</li>
  37152. * <li><b>info</b>: <code>RotationInfo</code>类型参数,保存设备的旋转值。</li>
  37153. * </ol>
  37154. * </p>
  37155. *
  37156. * <p>
  37157. * 浏览器兼容性参见:<i>http://caniuse.com/#search=deviceorientation</i>
  37158. * </p>
  37159. */
  37160. class Gyroscope extends laya.device.motion.Gyroscope {}
  37161. /**
  37162. * 保存旋转信息的类。请勿修改本类的属性。
  37163. * @author Survivor
  37164. */
  37165. class RotationInfo extends laya.device.motion.RotationInfo {}
  37166. /**
  37167. * Shake只能在支持此操作的设备上有效。
  37168. */
  37169. class Shake extends laya.device.Shake {}
  37170. /**
  37171. * 动画播放完毕后调度。
  37172. * @eventType Event.COMPLETE
  37173. */
  37174. /**
  37175. * 播放到某标签后调度。
  37176. * @eventType Event.LABEL
  37177. */
  37178. /**
  37179. * <p> <code>Animation</code> 是Graphics动画类。实现了基于Graphics的动画创建、播放、控制接口。</p>
  37180. * <p>本类使用了动画模版缓存池,它以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。</p>
  37181. * <p>动画模版缓存池,以key-value键值对存储,key可以自定义,也可以从指定的配置文件中读取,value为对应的动画模版,是一个Graphics对象数组,每个Graphics对象对应一个帧图像,动画的播放实质就是定时切换Graphics对象。</p>
  37182. * <p>使用set source、loadImages(...)、loadAtlas(...)、loadAnimation(...)方法可以创建动画模版。使用play(...)可以播放指定动画。</p>
  37183. * @example <caption>以下示例代码,创建了一个 <code>Text</code> 实例。</caption> package { import laya.display.Animation; import laya.net.Loader; import laya.utils.Handler; public class Animation_Example { public function Animation_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 init();//初始化 } private function init():void { var animation:Animation = new Animation();//创建一个 Animation 类的实例对象 animation 。 animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放 animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。 animation.play();//播放动画。 Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。 } } }
  37184. * @example Animation_Example(); function Animation_Example(){ Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 init();//初始化 } function init() { var animation = new Laya.Animation();//创建一个 Animation 类的实例对象 animation 。 animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放 animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。 animation.play();//播放动画。 Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。 }
  37185. * @example import Animation = laya.display.Animation; class Animation_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.init(); } private init(): void { var animation:Animation = new Laya.Animation();//创建一个 Animation 类的实例对象 animation 。 animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放 animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。 animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。 animation.play();//播放动画。 Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。 } } new Animation_Example();
  37186. */
  37187. class Animation extends laya.display.Animation {}
  37188. /**
  37189. * 动画播放完毕后调度。
  37190. * @eventType Event.COMPLETE
  37191. */
  37192. /**
  37193. * 播放到某标签后调度。
  37194. * @eventType Event.LABEL
  37195. */
  37196. /**
  37197. * <p>动画基类,提供了基础的动画播放控制方法和帧标签事件相关功能。</p>
  37198. * <p>可以继承此类,但不要直接实例化此类,因为有些方法需要由子类实现。</p>
  37199. */
  37200. class AnimationBase extends laya.display.AnimationBase {}
  37201. /**
  37202. * <code>BitmapFont</code> 是位图字体类,用于定义位图字体信息。
  37203. * 字体制作及使用方法,请参考文章
  37204. * @see http://ldc2.layabox.com/doc/?nav=ch-js-1-2-5
  37205. */
  37206. class BitmapFont extends laya.display.BitmapFont {}
  37207. /**
  37208. * 透明命令
  37209. */
  37210. class AlphaCmd extends laya.display.cmd.AlphaCmd {}
  37211. /**
  37212. * 裁剪命令
  37213. */
  37214. class ClipRectCmd extends laya.display.cmd.ClipRectCmd {}
  37215. /**
  37216. * 绘制圆形
  37217. */
  37218. class DrawCircleCmd extends laya.display.cmd.DrawCircleCmd {}
  37219. /**
  37220. * 绘制曲线
  37221. */
  37222. class DrawCurvesCmd extends laya.display.cmd.DrawCurvesCmd {}
  37223. /**
  37224. * 绘制图片
  37225. */
  37226. class DrawImageCmd extends laya.display.cmd.DrawImageCmd {}
  37227. /**
  37228. * 绘制单条曲线
  37229. */
  37230. class DrawLineCmd extends laya.display.cmd.DrawLineCmd {}
  37231. /**
  37232. * 绘制连续曲线
  37233. */
  37234. class DrawLinesCmd extends laya.display.cmd.DrawLinesCmd {}
  37235. /**
  37236. * 绘制粒子
  37237. * @private
  37238. */
  37239. class DrawParticleCmd extends laya.display.cmd.DrawParticleCmd {}
  37240. /**
  37241. * 根据路径绘制矢量图形
  37242. */
  37243. class DrawPathCmd extends laya.display.cmd.DrawPathCmd {}
  37244. /**
  37245. * 绘制扇形
  37246. */
  37247. class DrawPieCmd extends laya.display.cmd.DrawPieCmd {}
  37248. /**
  37249. * 绘制多边形
  37250. */
  37251. class DrawPolyCmd extends laya.display.cmd.DrawPolyCmd {}
  37252. /**
  37253. * 绘制矩形
  37254. */
  37255. class DrawRectCmd extends laya.display.cmd.DrawRectCmd {}
  37256. /**
  37257. * 绘制单个贴图
  37258. */
  37259. class DrawTextureCmd extends laya.display.cmd.DrawTextureCmd {}
  37260. /**
  37261. * 根据坐标集合绘制多个贴图
  37262. */
  37263. class DrawTexturesCmd extends laya.display.cmd.DrawTexturesCmd {}
  37264. /**
  37265. * 绘制三角形命令
  37266. */
  37267. class DrawTrianglesCmd extends laya.display.cmd.DrawTrianglesCmd {}
  37268. /**
  37269. * 绘制文字
  37270. */
  37271. class FillTextCmd extends laya.display.cmd.FillTextCmd {}
  37272. /**
  37273. * 填充贴图
  37274. */
  37275. class FillTextureCmd extends laya.display.cmd.FillTextureCmd {}
  37276. /**
  37277. * 恢复命令,和save配套使用
  37278. */
  37279. class RestoreCmd extends laya.display.cmd.RestoreCmd {}
  37280. /**
  37281. * 旋转命令
  37282. */
  37283. class RotateCmd extends laya.display.cmd.RotateCmd {}
  37284. /**
  37285. * 存储命令,和restore配套使用
  37286. */
  37287. class SaveCmd extends laya.display.cmd.SaveCmd {}
  37288. /**
  37289. * 缩放命令
  37290. */
  37291. class ScaleCmd extends laya.display.cmd.ScaleCmd {}
  37292. /**
  37293. * 矩阵命令
  37294. */
  37295. class TransformCmd extends laya.display.cmd.TransformCmd {}
  37296. /**
  37297. * 位移命令
  37298. */
  37299. class TranslateCmd extends laya.display.cmd.TranslateCmd {}
  37300. /**
  37301. * 元素样式
  37302. */
  37303. class SpriteStyle extends laya.display.css.SpriteStyle {}
  37304. /**
  37305. * 文本的样式类
  37306. */
  37307. class TextStyle extends laya.display.css.TextStyle {}
  37308. /**
  37309. * <p> 动效模板。用于为指定目标对象添加动画效果。每个动效有唯一的目标对象,而同一个对象可以添加多个动效。 当一个动效开始播放时,其他动效会自动停止播放。</p>
  37310. * <p> 可以通过LayaAir IDE创建。 </p>
  37311. */
  37312. class EffectAnimation extends laya.display.EffectAnimation {}
  37313. /**
  37314. * 动画播放完毕后调度。
  37315. * @eventType Event.COMPLETE
  37316. */
  37317. /**
  37318. * 播放到某标签后调度。
  37319. * @eventType Event.LABEL
  37320. */
  37321. /**
  37322. * 节点关键帧动画播放类。解析播放IDE内制作的节点动画。
  37323. */
  37324. class FrameAnimation extends laya.display.FrameAnimation {}
  37325. /**
  37326. * <code>Graphics</code> 类用于创建绘图显示对象。Graphics可以同时绘制多个位图或者矢量图,还可以结合save,restore,transform,scale,rotate,translate,alpha等指令对绘图效果进行变化。
  37327. * Graphics以命令流方式存储,可以通过cmds属性访问所有命令流。Graphics是比Sprite更轻量级的对象,合理使用能提高应用性能(比如把大量的节点绘图改为一个节点的Graphics命令集合,能减少大量节点创建消耗)。
  37328. * @see laya.display.Sprite#graphics
  37329. */
  37330. class Graphics extends laya.display.Graphics {}
  37331. /**
  37332. * @private Graphic bounds数据类
  37333. */
  37334. class GraphicsBounds extends laya.display.GraphicsBounds {}
  37335. /**
  37336. * 用户输入一个或多个文本字符时后调度。
  37337. * @eventType Event.INPUT
  37338. */
  37339. /**
  37340. * 文本发生变化后调度。
  37341. * @eventType Event.CHANGE
  37342. */
  37343. /**
  37344. * 用户在输入框内敲回车键后,将会调度 <code>enter</code> 事件。
  37345. * @eventType Event.ENTER
  37346. */
  37347. /**
  37348. * 显示对象获得焦点后调度。
  37349. * @eventType Event.FOCUS
  37350. */
  37351. /**
  37352. * 显示对象失去焦点后调度。
  37353. * @eventType Event.BLUR
  37354. */
  37355. /**
  37356. * <p><code>Input</code> 类用于创建显示对象以显示和输入文本。</p>
  37357. * <p>Input 类封装了原生的文本输入框,由于不同浏览器的差异,会导致此对象的默认文本的位置与用户点击输入时的文本的位置有少许的偏差。</p>
  37358. */
  37359. class Input extends laya.display.Input {}
  37360. /**
  37361. * 添加到父对象后调度。
  37362. * @eventType Event.ADDED
  37363. */
  37364. /**
  37365. * 被父对象移除后调度。
  37366. * @eventType Event.REMOVED
  37367. */
  37368. /**
  37369. * 加入节点树时调度。
  37370. * @eventType Event.DISPLAY
  37371. */
  37372. /**
  37373. * 从节点树移除时调度。
  37374. * @eventType Event.UNDISPLAY
  37375. */
  37376. /**
  37377. * <code>Node</code> 类是可放在显示列表中的所有对象的基类。该显示列表管理 Laya 运行时中显示的所有对象。使用 Node 类排列显示列表中的显示对象。Node 对象可以有子显示对象。
  37378. */
  37379. class Node extends laya.display.Node {}
  37380. /**
  37381. * 场景类,负责场景创建,加载,销毁等功能
  37382. * 场景被从节点移除后,并不会被自动垃圾机制回收,如果想回收,请调用destroy接口,可以通过unDestroyedScenes属性查看还未被销毁的场景列表
  37383. */
  37384. class Scene extends laya.display.Scene {}
  37385. /**
  37386. * 在显示对象上按下后调度。
  37387. * @eventType Event.MOUSE_DOWN
  37388. */
  37389. /**
  37390. * 在显示对象抬起后调度。
  37391. * @eventType Event.MOUSE_UP
  37392. */
  37393. /**
  37394. * 鼠标在对象身上进行移动后调度
  37395. * @eventType Event.MOUSE_MOVE
  37396. */
  37397. /**
  37398. * 鼠标经过对象后调度。
  37399. * @eventType Event.MOUSE_OVER
  37400. */
  37401. /**
  37402. * 鼠标离开对象后调度。
  37403. * @eventType Event.MOUSE_OUT
  37404. */
  37405. /**
  37406. * 鼠标点击对象后调度。
  37407. * @eventType Event.CLICK
  37408. */
  37409. /**
  37410. * 开始拖动后调度。
  37411. * @eventType Event.DRAG_START
  37412. */
  37413. /**
  37414. * 拖动中调度。
  37415. * @eventType Event.DRAG_MOVE
  37416. */
  37417. /**
  37418. * 拖动结束后调度。
  37419. * @eventType Event.DRAG_END
  37420. */
  37421. /**
  37422. * <p> <code>Sprite</code> 是基本的显示图形的显示列表节点。 <code>Sprite</code> 默认没有宽高,默认不接受鼠标事件。通过 <code>graphics</code> 可以绘制图片或者矢量图,支持旋转,缩放,位移等操作。<code>Sprite</code>同时也是容器类,可用来添加多个子节点。</p>
  37423. * <p>注意: <code>Sprite</code> 默认没有宽高,可以通过<code>getBounds</code>函数获取;也可手动设置宽高;还可以设置<code>autoSize=true</code>,然后再获取宽高。<code>Sprite</code>的宽高一般用于进行碰撞检测和排版,并不影响显示图像大小,如果需要更改显示图像大小,请使用 <code>scaleX</code> , <code>scaleY</code> , <code>scale</code>。</p>
  37424. * <p> <code>Sprite</code> 默认不接受鼠标事件,即<code>mouseEnabled=false</code>,但是只要对其监听任意鼠标事件,会自动打开自己以及所有父对象的<code>mouseEnabled=true</code>。所以一般也无需手动设置<code>mouseEnabled</code>。</p>
  37425. * <p>LayaAir引擎API设计精简巧妙。核心显示类只有一个<code>Sprite</code>。<code>Sprite</code>针对不同的情况做了渲染优化,所以保证一个类实现丰富功能的同时,又达到高性能。</p>
  37426. * @example <caption>创建了一个 <code>Sprite</code> 实例。</caption> package { import laya.display.Sprite; import laya.events.Event; public class Sprite_Example { private var sprite:Sprite; private var shape:Sprite public function Sprite_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } private function onInit():void { sprite = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。 sprite.loadImage("resource/ui/bg.png");//加载并显示图片。 sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。 sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。 sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。 sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。 Laya.stage.addChild(sprite);//将此 sprite 对象添加到显示列表。 sprite.on(Event.CLICK, this, onClickSprite);//给 sprite 对象添加点击事件侦听。 shape = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。 shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。 shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。 shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。 shape.width = 100;//设置 shape 对象的宽度。 shape.height = 100;//设置 shape 对象的高度。 shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。 shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。 Laya.stage.addChild(shape);//将此 shape 对象添加到显示列表。 shape.on(Event.CLICK, this, onClickShape);//给 shape 对象添加点击事件侦听。 } private function onClickSprite():void { trace("点击 sprite 对象。"); sprite.rotation += 5;//旋转 sprite 对象。 } private function onClickShape():void { trace("点击 shape 对象。"); shape.rotation += 5;//旋转 shape 对象。 } } }
  37427. * @example var sprite; var shape; Sprite_Example(); function Sprite_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } function onInit() { sprite = new laya.display.Sprite();//创建一个 Sprite 类的实例对象 sprite 。 sprite.loadImage("resource/ui/bg.png");//加载并显示图片。 sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。 sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。 sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。 sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。 Laya.stage.addChild(sprite);//将此 sprite 对象添加到显示列表。 sprite.on(Event.CLICK, this, onClickSprite);//给 sprite 对象添加点击事件侦听。 shape = new laya.display.Sprite();//创建一个 Sprite 类的实例对象 sprite 。 shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。 shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。 shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。 shape.width = 100;//设置 shape 对象的宽度。 shape.height = 100;//设置 shape 对象的高度。 shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。 shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。 Laya.stage.addChild(shape);//将此 shape 对象添加到显示列表。 shape.on(laya.events.Event.CLICK, this, onClickShape);//给 shape 对象添加点击事件侦听。 } function onClickSprite() { console.log("点击 sprite 对象。"); sprite.rotation += 5;//旋转 sprite 对象。 } function onClickShape() { console.log("点击 shape 对象。"); shape.rotation += 5;//旋转 shape 对象。 }
  37428. * @example import Sprite = laya.display.Sprite; class Sprite_Example { private sprite: Sprite; private shape: Sprite public Sprite_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.onInit(); } private onInit(): void { this.sprite = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。 this.sprite.loadImage("resource/ui/bg.png");//加载并显示图片。 this.sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。 this.sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。 this.sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。 this.sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。 Laya.stage.addChild(this.sprite);//将此 sprite 对象添加到显示列表。 this.sprite.on(laya.events.Event.CLICK, this, this.onClickSprite);//给 sprite 对象添加点击事件侦听。 this.shape = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。 this.shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。 this.shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。 this.shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。 this.shape.width = 100;//设置 shape 对象的宽度。 this.shape.height = 100;//设置 shape 对象的高度。 this.shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。 this.shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。 Laya.stage.addChild(this.shape);//将此 shape 对象添加到显示列表。 this.shape.on(laya.events.Event.CLICK, this, this.onClickShape);//给 shape 对象添加点击事件侦听。 } private onClickSprite(): void { console.log("点击 sprite 对象。"); this.sprite.rotation += 5;//旋转 sprite 对象。 } private onClickShape(): void { console.log("点击 shape 对象。"); this.shape.rotation += 5;//旋转 shape 对象。 } }
  37429. */
  37430. class Sprite extends laya.display.Sprite {}
  37431. /**
  37432. * @private
  37433. */
  37434. class SpriteConst extends laya.display.SpriteConst {}
  37435. /**
  37436. * stage大小经过重新调整时进行调度。
  37437. * @eventType Event.RESIZE
  37438. */
  37439. /**
  37440. * 舞台获得焦点时调度。比如浏览器或者当前标签处于后台,重新切换回来时进行调度。
  37441. * @eventType Event.FOCUS
  37442. */
  37443. /**
  37444. * 舞台失去焦点时调度。比如浏览器或者当前标签被切换到后台后调度。
  37445. * @eventType Event.BLUR
  37446. */
  37447. /**
  37448. * 舞台焦点变化时调度,使用Laya.stage.isFocused可以获取当前舞台是否获得焦点。
  37449. * @eventType Event.FOCUS_CHANGE
  37450. */
  37451. /**
  37452. * 舞台可见性发生变化时调度(比如浏览器或者当前标签被切换到后台后调度),使用Laya.stage.isVisibility可以获取当前是否处于显示状态。
  37453. * @eventType Event.VISIBILITY_CHANGE
  37454. */
  37455. /**
  37456. * 浏览器全屏更改时调度,比如进入全屏或者退出全屏。
  37457. * @eventType Event.FULL_SCREEN_CHANGE
  37458. */
  37459. /**
  37460. * <p> <code>Stage</code> 是舞台类,显示列表的根节点,所有显示对象都在舞台上显示。通过 Laya.stage 单例访问。</p>
  37461. * <p>Stage提供几种适配模式,不同的适配模式会产生不同的画布大小,画布越大,渲染压力越大,所以要选择合适的适配方案。</p>
  37462. * <p>Stage提供不同的帧率模式,帧率越高,渲染压力越大,越费电,合理使用帧率甚至动态更改帧率有利于改进手机耗电。</p>
  37463. */
  37464. class Stage extends laya.display.Stage {}
  37465. /**
  37466. * 文本内容发生改变后调度。
  37467. * @eventType Event.CHANGE
  37468. */
  37469. /**
  37470. * <p> <code>Text</code> 类用于创建显示对象以显示文本。</p>
  37471. * <p>
  37472. * 注意:如果运行时系统找不到设定的字体,则用系统默认的字体渲染文字,从而导致显示异常。(通常电脑上显示正常,在一些移动端因缺少设置的字体而显示异常)。
  37473. * </p>
  37474. * @example package { import laya.display.Text; public class Text_Example { public function Text_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } private function onInit():void { var text:Text = new Text();//创建一个 Text 类的实例对象 text 。 text.text = "这个是一个 Text 文本示例。"; text.color = "#008fff";//设置 text 的文本颜色。 text.font = "Arial";//设置 text 的文本字体。 text.bold = true;//设置 text 的文本显示为粗体。 text.fontSize = 30;//设置 text 的字体大小。 text.wordWrap = true;//设置 text 的文本自动换行。 text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。 text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。 text.width = 300;//设置 text 的宽度。 text.height = 200;//设置 text 的高度。 text.italic = true;//设置 text 的文本显示为斜体。 text.borderColor = "#fff000";//设置 text 的文本边框颜色。 Laya.stage.addChild(text);//将 text 添加到显示列表。 } } }
  37475. * @example Text_Example(); function Text_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } function onInit() { var text = new laya.display.Text();//创建一个 Text 类的实例对象 text 。 text.text = "这个是一个 Text 文本示例。"; text.color = "#008fff";//设置 text 的文本颜色。 text.font = "Arial";//设置 text 的文本字体。 text.bold = true;//设置 text 的文本显示为粗体。 text.fontSize = 30;//设置 text 的字体大小。 text.wordWrap = true;//设置 text 的文本自动换行。 text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。 text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。 text.width = 300;//设置 text 的宽度。 text.height = 200;//设置 text 的高度。 text.italic = true;//设置 text 的文本显示为斜体。 text.borderColor = "#fff000";//设置 text 的文本边框颜色。 Laya.stage.addChild(text);//将 text 添加到显示列表。 }
  37476. * @example class Text_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.onInit(); } private onInit(): void { var text: laya.display.Text = new laya.display.Text();//创建一个 Text 类的实例对象 text 。 text.text = "这个是一个 Text 文本示例。"; text.color = "#008fff";//设置 text 的文本颜色。 text.font = "Arial";//设置 text 的文本字体。 text.bold = true;//设置 text 的文本显示为粗体。 text.fontSize = 30;//设置 text 的字体大小。 text.wordWrap = true;//设置 text 的文本自动换行。 text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。 text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。 text.width = 300;//设置 text 的宽度。 text.height = 200;//设置 text 的高度。 text.italic = true;//设置 text 的文本显示为斜体。 text.borderColor = "#fff000";//设置 text 的文本边框颜色。 Laya.stage.addChild(text);//将 text 添加到显示列表。 } }
  37477. */
  37478. class Text extends laya.display.Text {}
  37479. /**
  37480. * ...
  37481. * @author ww
  37482. */
  37483. class BlurFilterSetter extends laya.effect.BlurFilterSetter {}
  37484. /**
  37485. * @Script {name:ButtonEffect}
  37486. * @author ww
  37487. */
  37488. class ButtonEffect extends laya.effect.ButtonEffect {}
  37489. /**
  37490. * ...
  37491. * @author ww
  37492. */
  37493. class ColorFilterSetter extends laya.effect.ColorFilterSetter {}
  37494. /**
  37495. * 效果插件基类,基于对象池管理
  37496. */
  37497. class EffectBase extends laya.effect.EffectBase {}
  37498. /**
  37499. * 淡入效果
  37500. */
  37501. class FadeIn extends laya.effect.FadeIn {}
  37502. /**
  37503. * 淡出效果
  37504. */
  37505. class FadeOut extends laya.effect.FadeOut {}
  37506. /**
  37507. * ...
  37508. * @author ww
  37509. */
  37510. class FilterSetterBase extends laya.effect.FilterSetterBase {}
  37511. /**
  37512. * ...
  37513. * @author ww
  37514. */
  37515. class GlowFilterSetter extends laya.effect.GlowFilterSetter {}
  37516. /**
  37517. * <code>Event</code> 是事件类型的集合。一般当发生事件时,<code>Event</code> 对象将作为参数传递给事件侦听器。
  37518. */
  37519. class Event extends laya.events.Event {}
  37520. /**
  37521. * <code>EventDispatcher</code> 类是可调度事件的所有类的基类。
  37522. */
  37523. class EventDispatcher extends laya.events.EventDispatcher {}
  37524. /**
  37525. * <code>Keyboard</code> 类的属性是一些常数,这些常数表示控制游戏时最常用的键。
  37526. */
  37527. class Keyboard extends laya.events.Keyboard {}
  37528. /**
  37529. * <p><code>KeyBoardManager</code> 是键盘事件管理类。该类从浏览器中接收键盘事件,并派发该事件。</p>
  37530. * <p>派发事件时若 Stage.focus 为空则只从 Stage 上派发该事件,否则将从 Stage.focus 对象开始一直冒泡派发该事件。所以在 Laya.stage 上监听键盘事件一定能够收到,如果在其他地方监听,则必须处在Stage.focus的冒泡链上才能收到该事件。</p>
  37531. * <p>用户可以通过代码 Laya.stage.focus=someNode 的方式来设置focus对象。</p>
  37532. * <p>用户可统一的根据事件对象中 e.keyCode 来判断按键类型,该属性兼容了不同浏览器的实现。</p>
  37533. */
  37534. class KeyBoardManager extends laya.events.KeyBoardManager {}
  37535. /**
  37536. * <p><code>KeyLocation</code> 类包含表示在键盘或类似键盘的输入设备上按键位置的常量。</p>
  37537. * <p><code>KeyLocation</code> 常数用在键盘事件对象的 <code>keyLocation </code>属性中。</p>
  37538. */
  37539. class KeyLocation extends laya.events.KeyLocation {}
  37540. /**
  37541. * <p><code>MouseManager</code> 是鼠标、触摸交互管理器。</p>
  37542. * <p>鼠标事件流包括捕获阶段、目标阶段、冒泡阶段。<br/>
  37543. * 捕获阶段:此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象;<br/>
  37544. * 目标阶段:找到命中的目标对象;<br/>
  37545. * 冒泡阶段:事件离开目标对象,按节点层级向上逐层通知,直到到达舞台的过程。</p>
  37546. */
  37547. class MouseManager extends laya.events.MouseManager {}
  37548. /**
  37549. * @private Touch事件管理类,处理多点触控下的鼠标事件
  37550. */
  37551. class TouchManager extends laya.events.TouchManager {}
  37552. /**
  37553. * 模糊滤镜
  37554. */
  37555. class BlurFilter extends laya.filters.BlurFilter {}
  37556. /**
  37557. * @private
  37558. */
  37559. class BlurFilterGLRender extends laya.filters.BlurFilterGLRender {}
  37560. /**
  37561. * <p><code>ColorFilter</code> 是颜色滤镜。使用 ColorFilter 类可以将 4 x 5 矩阵转换应用于输入图像上的每个像素的 RGBA 颜色和 Alpha 值,以生成具有一组新的 RGBA 颜色和 Alpha 值的结果。该类允许饱和度更改、色相旋转、亮度转 Alpha 以及各种其他效果。您可以将滤镜应用于任何显示对象(即,从 Sprite 类继承的对象)。</p>
  37562. * <p>注意:对于 RGBA 值,最高有效字节代表红色通道值,其后的有效字节分别代表绿色、蓝色和 Alpha 通道值。</p>
  37563. */
  37564. class ColorFilter extends laya.filters.ColorFilter {}
  37565. /**
  37566. * <code>Filter</code> 是滤镜基类。
  37567. */
  37568. class Filter extends laya.filters.Filter {}
  37569. /**
  37570. * 发光滤镜(也可以当成阴影滤使用)
  37571. */
  37572. class GlowFilter extends laya.filters.GlowFilter {}
  37573. /**
  37574. * @private
  37575. */
  37576. class GlowFilterGLRender extends laya.filters.GlowFilterGLRender {}
  37577. /**
  37578. * HTML图文类,用于显示html内容
  37579. *
  37580. * 支持的标签如下:
  37581. * a:链接标签,点击后会派发"link"事件 比如:<a href='alink'>a</a>
  37582. * div:div容器标签,比如:<div>abc</div>
  37583. * span:行内元素标签,比如:<span style='color:#ff0000'>abc</span>
  37584. * p:行元素标签,p标签会自动换行,div不会,比如:<p>abc</p>
  37585. * img:图片标签,比如:<img src='res/boy.png'></img>
  37586. * br:换行标签,比如:<div>abc<br/>def</div>
  37587. * style:样式标签,比如:<div style='width:130px;height:50px;color:#ff0000'>abc</div>
  37588. * link:外链样式标签,可以加载一个css文件来当style使用,比如:<link type='text/css' href='html/test.css'/>
  37589. *
  37590. * style支持的属性如下:
  37591. * italic:true|false; 是否是斜体
  37592. * bold:true|false; 是否是粗体
  37593. * letter-spacing:10px; 字间距
  37594. * font-family:宋体; 字体
  37595. * font-size:20px; 字体大小
  37596. * font-weight:bold:none; 字体是否是粗体,功能同bold
  37597. * color:#ff0000; 字体颜色
  37598. * stroke:2px; 字体描边宽度
  37599. * strokeColor:#ff0000; 字体描边颜色
  37600. * padding:10px 10px 20px 20px; 边缘的距离
  37601. * vertical-align:top|bottom|middle; 垂直对齐方式
  37602. * align:left|right|center; 水平对齐方式
  37603. * line-height:20px; 行高
  37604. * background-color:#ff0000; 背景颜色
  37605. * border-color:#ff0000; 边框颜色
  37606. * width:100px; 对象宽度
  37607. * height:100px; 对象高度
  37608. *
  37609. * 示例用法:
  37610. * var div:HTMLDivElement=new HTMLDivElement();
  37611. * div.innerHTML = "<link type='text/css' href='html/test.css'/><a href='alink'>a</a><div style='width:130px;height:50px;color:#ff0000'>div</div><br/><span style='font-weight:bold;color:#ffffff;font-size:30px;stroke:2px;italic:true;'>span</span><span style='letter-spacing:5px'>span2</span><p>p</p><img src='res/boy.png'></img>";
  37612. */
  37613. class HTMLDivElement extends laya.html.dom.HTMLDivElement {}
  37614. /**
  37615. * @private
  37616. */
  37617. class HTMLDivParser extends laya.html.dom.HTMLDivParser {}
  37618. /**
  37619. * @private
  37620. */
  37621. class HTMLDocument extends laya.html.dom.HTMLDocument {}
  37622. /**
  37623. * @private
  37624. */
  37625. class HTMLElement extends laya.html.dom.HTMLElement {}
  37626. /**
  37627. * @private
  37628. */
  37629. class HTMLHitRect extends laya.html.dom.HTMLHitRect {}
  37630. /**
  37631. * iframe标签类,目前用于加载外并解析数据
  37632. */
  37633. class HTMLIframeElement extends laya.html.dom.HTMLIframeElement {}
  37634. /**
  37635. * @private
  37636. */
  37637. class HTMLImageElement extends laya.html.dom.HTMLImageElement {}
  37638. /**
  37639. * @private
  37640. */
  37641. class HTMLLinkElement extends laya.html.dom.HTMLLinkElement {}
  37642. /**
  37643. * @private
  37644. */
  37645. class HTMLStyleElement extends laya.html.dom.HTMLStyleElement {}
  37646. /**
  37647. * @private
  37648. */
  37649. class HTMLExtendStyle extends laya.html.utils.HTMLExtendStyle {}
  37650. /**
  37651. * @private
  37652. */
  37653. class HTMLParse extends laya.html.utils.HTMLParse {}
  37654. /**
  37655. * @private
  37656. */
  37657. class HTMLStyle extends laya.html.utils.HTMLStyle {}
  37658. /**
  37659. * @private HTML的布局类 对HTML的显示对象进行排版
  37660. */
  37661. class Layout extends laya.html.utils.Layout {}
  37662. /**
  37663. * @private
  37664. */
  37665. class LayoutLine extends laya.html.utils.LayoutLine {}
  37666. /**
  37667. * @private CommandEncoder
  37668. */
  37669. class CommandEncoder extends laya.layagl.CommandEncoder {}
  37670. /**
  37671. * @private 封装GL命令
  37672. */
  37673. class LayaGL extends laya.layagl.LayaGL {}
  37674. /**
  37675. * @private 普通命令执行器
  37676. */
  37677. class LayaGLRunner extends laya.layagl.LayaGLRunner {}
  37678. /**
  37679. * ...
  37680. * @author ww
  37681. */
  37682. class QuickTestTool extends laya.layagl.QuickTestTool {}
  37683. /**
  37684. * 地图的每层都会分块渲染处理
  37685. * 本类就是地图的块数据
  37686. * @author ...
  37687. */
  37688. class GridSprite extends laya.map.GridSprite {}
  37689. /**
  37690. * 地图支持多层渲染(例如,地表层,植被层,建筑层等)
  37691. * 本类就是层级类
  37692. * @author ...
  37693. */
  37694. class MapLayer extends laya.map.MapLayer {}
  37695. /**
  37696. * TildMap的动画显示对象(一个动画(TileTexSet),可以绑定多个动画显示对象(TileAniSprite))
  37697. * @author ...
  37698. */
  37699. class TileAniSprite extends laya.map.TileAniSprite {}
  37700. /**
  37701. * tiledMap是整个地图的核心
  37702. * 地图以层级来划分地图(例如:地表层,植被层,建筑层)
  37703. * 每层又以分块(GridSprite)来处理显示对象,只显示在视口区域的区
  37704. * 每块又包括N*N个格子(tile)
  37705. * 格子类型又分为动画格子跟图片格子两种
  37706. * @author ...
  37707. */
  37708. class TiledMap extends laya.map.TiledMap {}
  37709. /**
  37710. * 此类是子纹理类,也包括同类动画的管理
  37711. * TiledMap会把纹理分割成无数子纹理,也可以把其中的某块子纹理替换成一个动画序列
  37712. * 本类的实现就是如果发现子纹理被替换成一个动画序列,animationKey会被设为true
  37713. * 即animationKey为true,就使用TileAniSprite来做显示,把动画序列根据时间画到TileAniSprite上
  37714. * @author ...
  37715. */
  37716. class TileTexSet extends laya.map.TileTexSet {}
  37717. /**
  37718. * @private 计算贝塞尔曲线的工具类。
  37719. */
  37720. class Bezier extends laya.maths.Bezier {}
  37721. /**
  37722. * @private 凸包算法。
  37723. */
  37724. class GrahamScan extends laya.maths.GrahamScan {}
  37725. /**
  37726. * @private <code>MathUtil</code> 是一个数据处理工具类。
  37727. */
  37728. class MathUtil extends laya.maths.MathUtil {}
  37729. /**
  37730. * <p> <code>Matrix</code> 类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间。</p>
  37731. * <p>您可以对一个显示对象执行不同的图形转换,方法是设置 Matrix 对象的属性,将该 Matrix 对象应用于 Transform 对象的 matrix 属性,然后应用该 Transform 对象作为显示对象的 transform 属性。这些转换函数包括平移(x 和 y 重新定位)、旋转、缩放和倾斜。</p>
  37732. */
  37733. class Matrix extends laya.maths.Matrix {}
  37734. /**
  37735. * <code>Point</code> 对象表示二维坐标系统中的某个位置,其中 x 表示水平轴,y 表示垂直轴。
  37736. */
  37737. class Point extends laya.maths.Point {}
  37738. /**
  37739. * <p><code>Rectangle</code> 对象是按其位置(由它左上角的点 (x, y) 确定)以及宽度和高度定义的区域。</p>
  37740. * <p>Rectangle 类的 x、y、width 和 height 属性相互独立;更改一个属性的值不会影响其他属性。</p>
  37741. */
  37742. class Rectangle extends laya.maths.Rectangle {}
  37743. /**
  37744. * @private 使用Audio标签播放声音
  37745. */
  37746. class AudioSound extends laya.media.h5audio.AudioSound {}
  37747. /**
  37748. * @private audio标签播放声音的音轨控制
  37749. */
  37750. class AudioSoundChannel extends laya.media.h5audio.AudioSoundChannel {}
  37751. /**
  37752. * <code>Sound</code> 类是用来播放控制声音的类。
  37753. * 引擎默认有两套声音方案,优先使用WebAudio播放声音,如果WebAudio不可用,则用H5Audio播放,H5Audio在部分机器上有兼容问题(比如不能混音,播放有延迟等)。
  37754. */
  37755. class Sound extends laya.media.Sound {}
  37756. /**
  37757. * <p> <code>SoundChannel</code> 用来控制程序中的声音。每个声音均分配给一个声道,而且应用程序可以具有混合在一起的多个声道。</p>
  37758. * <p> <code>SoundChannel</code> 类包含控制声音的播放、暂停、停止、音量的方法,以及获取声音的播放状态、总时间、当前播放时间、总循环次数、播放地址等信息的方法。</p>
  37759. */
  37760. class SoundChannel extends laya.media.SoundChannel {}
  37761. /**
  37762. * <code>SoundManager</code> 是一个声音管理类。提供了对背景音乐、音效的播放控制方法。
  37763. * 引擎默认有两套声音方案:WebAudio和H5Audio
  37764. * 播放音效,优先使用WebAudio播放声音,如果WebAudio不可用,则用H5Audio播放,H5Audio在部分机器上有兼容问题(比如不能混音,播放有延迟等)。
  37765. * 播放背景音乐,则使用H5Audio播放(使用WebAudio会增加特别大的内存,并且要等加载完毕后才能播放,有延迟)
  37766. * 建议背景音乐用mp3类型,音效用wav或者mp3类型(如果打包为app,音效只能用wav格式)。
  37767. * 详细教程及声音格式请参考:http://ldc2.layabox.com/doc/?nav=ch-as-1-7-0
  37768. */
  37769. class SoundManager extends laya.media.SoundManager {}
  37770. /**
  37771. * @private
  37772. */
  37773. class SoundNode extends laya.media.SoundNode {}
  37774. /**
  37775. * @private web audio api方式播放声音
  37776. */
  37777. class WebAudioSound extends laya.media.webaudio.WebAudioSound {}
  37778. /**
  37779. * @private web audio api方式播放声音的音轨控制
  37780. */
  37781. class WebAudioSoundChannel extends laya.media.webaudio.WebAudioSoundChannel {}
  37782. /**
  37783. * @private
  37784. */
  37785. class AtlasInfoManager extends laya.net.AtlasInfoManager {}
  37786. /**
  37787. * 请求进度改变时调度。
  37788. * @eventType Event.PROGRESS
  37789. */
  37790. /**
  37791. * 请求结束后调度。
  37792. * @eventType Event.COMPLETE
  37793. */
  37794. /**
  37795. * 请求出错时调度。
  37796. * @eventType Event.ERROR
  37797. */
  37798. /**
  37799. * <p> <code>HttpRequest</code> 通过封装 HTML <code>XMLHttpRequest</code> 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。 <code>HttpRequest</code> 只提供以异步的形式返回 Web 服务器的响应,并且能够以文本或者二进制的形式返回内容。</p>
  37800. * <p><b>注意:</b>建议每次请求都使用新的 <code>HttpRequest</code> 对象,因为每次调用该对象的send方法时,都会清空之前设置的数据,并重置 HTTP 请求的状态,这会导致之前还未返回响应的请求被重置,从而得不到之前请求的响应结果。</p>
  37801. */
  37802. class HttpRequest extends laya.net.HttpRequest {}
  37803. /**
  37804. * 加载进度发生改变时调度。
  37805. * @eventType Event.PROGRESS
  37806. */
  37807. /**
  37808. * 加载完成后调度。
  37809. * @eventType Event.COMPLETE
  37810. */
  37811. /**
  37812. * 加载出错时调度。
  37813. * @eventType Event.ERROR
  37814. */
  37815. /**
  37816. * <code>Loader</code> 类可用来加载文本、JSON、XML、二进制、图像等资源。
  37817. */
  37818. class Loader extends laya.net.Loader {}
  37819. /**
  37820. * 所有资源加载完成时调度。
  37821. * @eventType Event.COMPLETE
  37822. */
  37823. /**
  37824. * 任何资源加载出错时调度。
  37825. * @eventType Event.ERROR
  37826. */
  37827. /**
  37828. * <p> <code>LoaderManager</code> 类用于用于批量加载资源。此类是单例,不要手动实例化此类,请通过Laya.loader访问。</p>
  37829. * <p>全部队列加载完成,会派发 Event.COMPLETE 事件;如果队列中任意一个加载失败,会派发 Event.ERROR 事件,事件回调参数值为加载出错的资源地址。</p>
  37830. * <p> <code>LoaderManager</code> 类提供了以下几种功能:<br/>
  37831. * 多线程:默认5个加载线程,可以通过maxLoader属性修改线程数量;<br/>
  37832. * 多优先级:有0-4共5个优先级,优先级高的优先加载。0最高,4最低;<br/>
  37833. * 重复过滤:自动过滤重复加载(不会有多个相同地址的资源同时加载)以及复用缓存资源,防止重复加载;<br/>
  37834. * 错误重试:资源加载失败后,会重试加载(以最低优先级插入加载队列),retryNum设定加载失败后重试次数,retryDelay设定加载重试的时间间隔。</p>
  37835. * @see laya.net.Loader
  37836. */
  37837. class LoaderManager extends laya.net.LoaderManager {}
  37838. /**
  37839. * <p> <code>LocalStorage</code> 类用于没有时间限制的数据存储。</p>
  37840. */
  37841. class LocalStorage extends laya.net.LocalStorage {}
  37842. /**
  37843. * <p>资源版本的生成由layacmd或IDE完成,使用 <code>ResourceVersion</code> 简化使用过程。</p>
  37844. * <p>调用 <code>enable</code> 启用资源版本管理。</p>
  37845. */
  37846. class ResourceVersion extends laya.net.ResourceVersion {}
  37847. /**
  37848. * @private 场景资源加载器
  37849. */
  37850. class SceneLoader extends laya.net.SceneLoader {}
  37851. /**
  37852. * 连接建立成功后调度。
  37853. * @eventType Event.OPEN
  37854. */
  37855. /**
  37856. * 接收到数据后调度。
  37857. * @eventType Event.MESSAGE
  37858. */
  37859. /**
  37860. * 连接被关闭后调度。
  37861. * @eventType Event.CLOSE
  37862. */
  37863. /**
  37864. * 出现异常后调度。
  37865. * @eventType Event.ERROR
  37866. */
  37867. /**
  37868. * <p> <code>Socket</code> 封装了 HTML5 WebSocket ,允许服务器端与客户端进行全双工(full-duplex)的实时通信,并且允许跨域通信。在建立连接后,服务器和 Browser/Client Agent 都能主动的向对方发送或接收文本和二进制数据。</p>
  37869. * <p>要使用 <code>Socket</code> 类的方法,请先使用构造函数 <code>new Socket</code> 创建一个 <code>Socket</code> 对象。 <code>Socket</code> 以异步方式传输和接收数据。</p>
  37870. */
  37871. class Socket extends laya.net.Socket {}
  37872. /**
  37873. * @private
  37874. */
  37875. class TTFLoader extends laya.net.TTFLoader {}
  37876. /**
  37877. * <p><code>URL</code> 提供URL格式化,URL版本管理的类。</p>
  37878. * <p>引擎加载资源的时候,会自动调用formatURL函数格式化URL路径</p>
  37879. * <p>通过basePath属性可以设置网络基础路径</p>
  37880. * <p>通过设置customFormat函数,可以自定义URL格式化的方式</p>
  37881. * <p>除了默认的通过增加后缀的格式化外,通过VersionManager类,可以开启IDE提供的,基于目录的管理方式来替代 "?v=" 的管理方式</p>
  37882. * @see laya.net.VersionManager
  37883. */
  37884. class URL extends laya.net.URL {}
  37885. /**
  37886. * @private Worker Image加载器
  37887. */
  37888. class WorkerLoader extends laya.net.WorkerLoader {}
  37889. /**
  37890. * @private
  37891. */
  37892. class Emitter2D extends laya.particle.emitter.Emitter2D {}
  37893. /**
  37894. * <code>EmitterBase</code> 类是粒子发射器类
  37895. */
  37896. class EmitterBase extends laya.particle.emitter.EmitterBase {}
  37897. /**
  37898. * <code>Particle2D</code> 类是2D粒子播放类
  37899. */
  37900. class Particle2D extends laya.particle.Particle2D {}
  37901. /**
  37902. * @private
  37903. */
  37904. class ParticleData extends laya.particle.ParticleData {}
  37905. /**
  37906. * @private
  37907. */
  37908. class ParticleEmitter extends laya.particle.ParticleEmitter {}
  37909. /**
  37910. * <code>ParticleSettings</code> 类是粒子配置数据类
  37911. */
  37912. class ParticleSetting extends laya.particle.ParticleSetting {}
  37913. /**
  37914. * <code>ParticleTemplateBase</code> 类是粒子模板基类
  37915. */
  37916. class ParticleTemplateBase extends laya.particle.ParticleTemplateBase {}
  37917. /**
  37918. * @private
  37919. */
  37920. class ParticleTemplateWebGL extends laya.particle.ParticleTemplateWebGL {}
  37921. /**
  37922. * @private
  37923. */
  37924. class ParticleShader extends laya.particle.shader.ParticleShader {}
  37925. /**
  37926. * 2D矩形碰撞体
  37927. */
  37928. class BoxCollider extends laya.physics.BoxCollider {}
  37929. /**
  37930. * 2D线形碰撞体
  37931. */
  37932. class ChainCollider extends laya.physics.ChainCollider {}
  37933. /**
  37934. * 2D圆形碰撞体
  37935. */
  37936. class CircleCollider extends laya.physics.CircleCollider {}
  37937. /**
  37938. * 碰撞体基类
  37939. */
  37940. class ColliderBase extends laya.physics.ColliderBase {}
  37941. /**
  37942. * 距离关节:两个物体上面各自有一点,两点之间的距离固定不变
  37943. */
  37944. class DistanceJoint extends laya.physics.joint.DistanceJoint {}
  37945. /**
  37946. * 齿轮关节:用来模拟两个齿轮间的约束关系,齿轮旋转时,产生的动量有两种输出方式,一种是齿轮本身的角速度,另一种是齿轮表面的线速度
  37947. */
  37948. class GearJoint extends laya.physics.joint.GearJoint {}
  37949. /**
  37950. * 关节基类
  37951. */
  37952. class JointBase extends laya.physics.joint.JointBase {}
  37953. /**
  37954. * 马达关节:用来限制两个刚体,使其相对位置和角度保持不变
  37955. */
  37956. class MotorJoint extends laya.physics.joint.MotorJoint {}
  37957. /**
  37958. * 鼠标关节:鼠标关节用于通过鼠标来操控物体。它试图将物体拖向当前鼠标光标的位置。而在旋转方面就没有限制。
  37959. */
  37960. class MouseJoint extends laya.physics.joint.MouseJoint {}
  37961. /**
  37962. * 平移关节:移动关节允许两个物体沿指定轴相对移动,它会阻止相对旋转
  37963. */
  37964. class PrismaticJoint extends laya.physics.joint.PrismaticJoint {}
  37965. /**
  37966. * 滑轮关节:它将两个物体接地(ground)并彼此连接,当一个物体上升,另一个物体就会下降
  37967. */
  37968. class PulleyJoint extends laya.physics.joint.PulleyJoint {}
  37969. /**
  37970. * 旋转关节强制两个物体共享一个锚点,两个物体相对旋转
  37971. */
  37972. class RevoluteJoint extends laya.physics.joint.RevoluteJoint {}
  37973. /**
  37974. * 绳索关节:限制了两个点之间的最大距离。它能够阻止连接的物体之间的拉伸,即使在很大的负载下
  37975. */
  37976. class RopeJoint extends laya.physics.joint.RopeJoint {}
  37977. /**
  37978. * 焊接关节:焊接关节的用途是使两个物体不能相对运动,受到关节的限制,两个刚体的相对位置和角度都保持不变,看上去像一个整体
  37979. */
  37980. class WeldJoint extends laya.physics.joint.WeldJoint {}
  37981. /**
  37982. * 轮子关节:围绕节点旋转,包含弹性属性,使得刚体在节点位置发生弹性偏移
  37983. */
  37984. class WheelJoint extends laya.physics.joint.WheelJoint {}
  37985. /**
  37986. * 2D物理引擎,使用Box2d驱动
  37987. */
  37988. class Physics extends laya.physics.Physics {}
  37989. /**
  37990. * 物理辅助线,调用PhysicsDebugDraw.enable()开启,或者通过IDE设置打开
  37991. */
  37992. class PhysicsDebugDraw extends laya.physics.PhysicsDebugDraw {}
  37993. /**
  37994. * 2D多边形碰撞体,暂时不支持凹多边形,如果是凹多边形,先手动拆分为多个凸多边形
  37995. * 节点个数最多是b2_maxPolygonVertices,这数值默认是8,所以点的数量不建议超过8个,也不能小于3个
  37996. */
  37997. class PolygonCollider extends laya.physics.PolygonCollider {}
  37998. /**
  37999. * 2D刚体,显示对象通过RigidBody和物理世界进行绑定,保持物理和显示对象之间的位置同步
  38000. * 物理世界的位置变化会自动同步到显示对象,显示对象本身的位移,旋转(父对象位移无效)也会自动同步到物理世界
  38001. * 由于引擎限制,暂时不支持以下情形:
  38002. * 1.不支持绑定节点缩放
  38003. * 2.不支持绑定节点的父节点缩放和旋转
  38004. * 3.不支持实时控制父对象位移,IDE内父对象位移是可以的
  38005. * 如果想整体位移物理世界,可以Physics.I.worldRoot=场景,然后移动场景即可
  38006. * 可以通过IDE-"项目设置" 开启物理辅助线显示,或者通过代码PhysicsDebugDraw.enable();
  38007. */
  38008. class RigidBody extends laya.physics.RigidBody {}
  38009. /**
  38010. * <code>Render</code> 是渲染管理类。它是一个单例,可以使用 Laya.render 访问。
  38011. */
  38012. class Render extends laya.renders.Render {}
  38013. /**
  38014. * @author laya
  38015. */
  38016. class RenderInfo extends laya.renders.RenderInfo {}
  38017. /**
  38018. * @private 精灵渲染器
  38019. */
  38020. class RenderSprite extends laya.renders.RenderSprite {}
  38021. /**
  38022. * <code>BaseTexture</code> 纹理的父类,抽象类,不允许实例。
  38023. */
  38024. class BaseTexture extends laya.resource.BaseTexture {}
  38025. /**
  38026. * @private <code>Bitmap</code> 图片资源类。
  38027. */
  38028. class Bitmap extends laya.resource.Bitmap {}
  38029. /**
  38030. * @private Context扩展类
  38031. */
  38032. class Context extends laya.resource.Context {}
  38033. /**
  38034. * <code>HTMLCanvas</code> 是 Html Canvas 的代理类,封装了 Canvas 的属性和方法。
  38035. */
  38036. class HTMLCanvas extends laya.resource.HTMLCanvas {}
  38037. /**
  38038. * @private <p> <code>HTMLImage</code> 用于创建 HTML Image 元素。</p> <p>请使用 <code>HTMLImage.create()<code>获取新实例,不要直接使用 <code>new HTMLImage<code> 。</p>
  38039. */
  38040. class HTMLImage extends laya.resource.HTMLImage {}
  38041. /**
  38042. * <code>RenderTexture</code> 类用于创建渲染目标。
  38043. */
  38044. class RenderTexture2D extends laya.resource.RenderTexture2D {}
  38045. /**
  38046. * <code>Resource</code> 资源存取类。
  38047. */
  38048. class Resource extends laya.resource.Resource {}
  38049. /**
  38050. * 资源加载完成后调度。
  38051. * @eventType Event.READY
  38052. */
  38053. /**
  38054. * <code>Texture</code> 是一个纹理处理类。
  38055. */
  38056. class Texture extends laya.resource.Texture {}
  38057. /**
  38058. * <code>Texture2D</code> 类用于生成2D纹理。
  38059. */
  38060. class Texture2D extends laya.resource.Texture2D {}
  38061. /**
  38062. * WebGLRTMgr 管理WebGLRenderTarget的创建和回收
  38063. * TODO 需求不大,管理成本高。先去掉。
  38064. */
  38065. class WebGLRTMgr extends laya.resource.WebGLRTMgr {}
  38066. /**
  38067. * @private
  38068. */
  38069. class System extends laya.system.System {}
  38070. /**
  38071. * 广告插件
  38072. * @author 小松
  38073. * @date -2018-09-19
  38074. */
  38075. class AdvImage extends laya.ui.AdvImage {}
  38076. /**
  38077. * <code>AutoBitmap</code> 类是用于表示位图图像或绘制图形的显示对象。
  38078. * <p>封装了位置,宽高及九宫格的处理,供UI组件使用。</p>
  38079. */
  38080. class AutoBitmap extends laya.ui.AutoBitmap {}
  38081. /**
  38082. * <code>Box</code> 类是一个控件容器类。
  38083. */
  38084. class Box extends laya.ui.Box {}
  38085. /**
  38086. * 当按钮的选中状态( <code>selected</code> 属性)发生改变时调度。
  38087. * @eventType laya.events.Event
  38088. */
  38089. /**
  38090. * <code>Button</code> 组件用来表示常用的多态按钮。 <code>Button</code> 组件可显示文本标签、图标或同时显示两者。 *
  38091. * <p>可以是单态,两态和三态,默认三态(up,over,down)。</p>
  38092. * @example <caption>以下示例代码,创建了一个 <code>Button</code> 实例。</caption> package { import laya.ui.Button; import laya.utils.Handler; public class Button_Example { public function Button_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete));//加载资源。 } private function onLoadComplete():void { trace("资源加载完成!"); var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。 button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 button.clickHandler = new Handler(this, onClickButton,[button]);//设置 button 的点击事件处理器。 Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 } private function onClickButton(button:Button):void { trace("按钮button被点击了!"); } } }
  38093. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源 function loadComplete() { console.log("资源加载完成!"); var button = new laya.ui.Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。 button.x =100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 button.y =100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 button.clickHandler = laya.utils.Handler.create(this,onClickButton,[button],false);//设置 button 的点击事件处理函数。 Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 } function onClickButton(button) { console.log("按钮被点击了。",button); }
  38094. * @example import Button=laya.ui.Button; import Handler=laya.utils.Handler; class Button_Example{ constructor() { Laya.init(640, 800); Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png", laya.utils.Handler.create(this,this.onLoadComplete));//加载资源。 } private onLoadComplete() { var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。 button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 button.clickHandler = new Handler(this, this.onClickButton,[button]);//设置 button 的点击事件处理器。 Laya.stage.addChild(button);//将此 button 对象添加到显示列表。 } private onClickButton(button:Button):void { console.log("按钮button被点击了!") } }
  38095. */
  38096. class Button extends laya.ui.Button {}
  38097. /**
  38098. * 当按钮的选中状态( <code>selected</code> 属性)发生改变时调度。
  38099. * @eventType laya.events.Event
  38100. */
  38101. /**
  38102. * <code>CheckBox</code> 组件显示一个小方框,该方框内可以有选中标记。
  38103. * <code>CheckBox</code> 组件还可以显示可选的文本标签,默认该标签位于 CheckBox 右侧。
  38104. * <p><code>CheckBox</code> 使用 <code>dataSource</code>赋值时的的默认属性是:<code>selected</code>。</p>
  38105. * @example <caption>以下示例代码,创建了一个 <code>CheckBox</code> 实例。</caption> package { import laya.ui.CheckBox; import laya.utils.Handler; public class CheckBox_Example { public function CheckBox_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/check.png", Handler.create(this,onLoadComplete));//加载资源。 } private function onLoadComplete():void { trace("资源加载完成!"); var checkBox:CheckBox = new CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的实例对象 checkBox ,传入它的皮肤skin和标签label。 checkBox.x = 100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。 checkBox.y = 100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。 checkBox.clickHandler = new Handler(this, onClick, [checkBox]);//设置 checkBox 的点击事件处理器。 Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。 } private function onClick(checkBox:CheckBox):void { trace("输出选中状态: checkBox.selected = " + checkBox.selected); } } }
  38106. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load("resource/ui/check.png",laya.utils.Handler.create(this,loadComplete));//加载资源 function loadComplete() { console.log("资源加载完成!"); var checkBox:laya.ui.CheckBox= new laya.ui.CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的类的实例对象 checkBox ,传入它的皮肤skin和标签label。 checkBox.x =100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。 checkBox.y =100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。 checkBox.clickHandler = new laya.utils.Handler(this,this.onClick,[checkBox],false);//设置 checkBox 的点击事件处理器。 Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。 } function onClick(checkBox) { console.log("checkBox.selected = ",checkBox.selected); }
  38107. * @example import CheckBox= laya.ui.CheckBox; import Handler=laya.utils.Handler; class CheckBox_Example{ constructor() { Laya.init(640, 800); Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/check.png", Handler.create(this,this.onLoadComplete));//加载资源。 } private onLoadComplete() { var checkBox:CheckBox = new CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的实例对象 checkBox ,传入它的皮肤skin和标签label。 checkBox.x = 100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。 checkBox.y = 100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。 checkBox.clickHandler = new Handler(this, this.onClick,[checkBox]);//设置 checkBox 的点击事件处理器。 Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。 } private onClick(checkBox:CheckBox):void { console.log("输出选中状态: checkBox.selected = " + checkBox.selected); } }
  38108. */
  38109. class CheckBox extends laya.ui.CheckBox {}
  38110. /**
  38111. * 图片加载完成后调度。
  38112. * @eventType Event.LOADED
  38113. */
  38114. /**
  38115. * 当前帧发生变化后调度。
  38116. * @eventType laya.events.Event
  38117. */
  38118. /**
  38119. * <p> <code>Clip</code> 类是位图切片动画。</p>
  38120. * <p> <code>Clip</code> 可将一张图片,按横向分割数量 <code>clipX</code> 、竖向分割数量 <code>clipY</code> ,
  38121. * 或横向分割每个切片的宽度 <code>clipWidth</code> 、竖向分割每个切片的高度 <code>clipHeight</code> ,
  38122. * 从左向右,从上到下,分割组合为一个切片动画。</p>
  38123. * Image和Clip组件是唯一支持异步加载的两个组件,比如clip.skin = "abc/xxx.png",其他UI组件均不支持异步加载。
  38124. * @example <caption>以下示例代码,创建了一个 <code>Clip</code> 实例。</caption> package { import laya.ui.Clip; public class Clip_Example { private var clip:Clip; public function Clip_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } private function onInit():void { clip = new Clip("resource/ui/clip_num.png", 10, 1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。 clip.autoPlay = true;//设置 clip 动画自动播放。 clip.interval = 100;//设置 clip 动画的播放时间间隔。 clip.x = 100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。 clip.y = 100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。 clip.on(Event.CLICK, this, onClick);//给 clip 添加点击事件函数侦听。 Laya.stage.addChild(clip);//将此 clip 对象添加到显示列表。 } private function onClick():void { trace("clip 的点击事件侦听处理函数。clip.total="+ clip.total); if (clip.isPlaying == true) { clip.stop();//停止动画。 }else { clip.play();//播放动画。 } } } }
  38125. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var clip; Laya.loader.load("resource/ui/clip_num.png",laya.utils.Handler.create(this,loadComplete));//加载资源 function loadComplete() { console.log("资源加载完成!"); clip = new laya.ui.Clip("resource/ui/clip_num.png",10,1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。 clip.autoPlay = true;//设置 clip 动画自动播放。 clip.interval = 100;//设置 clip 动画的播放时间间隔。 clip.x =100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。 clip.y =100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。 clip.on(Event.CLICK,this,onClick);//给 clip 添加点击事件函数侦听。 Laya.stage.addChild(clip);//将此 clip 对象添加到显示列表。 } function onClick() { console.log("clip 的点击事件侦听处理函数。"); if(clip.isPlaying == true) { clip.stop(); }else { clip.play(); } }
  38126. * @example import Clip = laya.ui.Clip; import Handler = laya.utils.Handler; class Clip_Example { private clip: Clip; constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.onInit(); } private onInit(): void { this.clip = new Clip("resource/ui/clip_num.png", 10, 1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。 this.clip.autoPlay = true;//设置 clip 动画自动播放。 this.clip.interval = 100;//设置 clip 动画的播放时间间隔。 this.clip.x = 100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。 this.clip.y = 100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。 this.clip.on(laya.events.Event.CLICK, this, this.onClick);//给 clip 添加点击事件函数侦听。 Laya.stage.addChild(this.clip);//将此 clip 对象添加到显示列表。 } private onClick(): void { console.log("clip 的点击事件侦听处理函数。clip.total=" + this.clip.total); if (this.clip.isPlaying == true) { this.clip.stop();//停止动画。 } else { this.clip.play();//播放动画。 } } }
  38127. */
  38128. class Clip extends laya.ui.Clip {}
  38129. /**
  38130. * 选择项改变后调度。
  38131. * @eventType laya.events.Event
  38132. */
  38133. /**
  38134. * <code>ColorPicker</code> 组件将显示包含多个颜色样本的列表,用户可以从中选择颜色。
  38135. * @example <caption>以下示例代码,创建了一个 <code>ColorPicker</code> 实例。</caption> package { import laya.ui.ColorPicker; import laya.utils.Handler; public class ColorPicker_Example { public function ColorPicker_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/color.png", Handler.create(this,onLoadComplete));//加载资源。 } private function onLoadComplete():void { trace("资源加载完成!"); var colorPicket:ColorPicker = new ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。 colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。 colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.changeHandler = new Handler(this, onChangeColor,[colorPicket]);//设置 colorPicket 的颜色改变回调函数。 Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。 } private function onChangeColor(colorPicket:ColorPicker):void { trace("当前选择的颜色: " + colorPicket.selectedColor); } } }
  38136. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load("resource/ui/color.png",laya.utils.Handler.create(this,loadComplete));//加载资源 function loadComplete() { console.log("资源加载完成!"); var colorPicket = new laya.ui.ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。 colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。 colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.changeHandler = laya.utils.Handler.create(this, onChangeColor,[colorPicket],false);//设置 colorPicket 的颜色改变回调函数。 Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。 } function onChangeColor(colorPicket) { console.log("当前选择的颜色: " + colorPicket.selectedColor); }
  38137. * @example import ColorPicker = laya.ui.ColorPicker; import Handler = laya.utils.Handler; class ColorPicker_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/color.png", Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { console.log("资源加载完成!"); var colorPicket: ColorPicker = new ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。 colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。 colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。 colorPicket.changeHandler = new Handler(this, this.onChangeColor, [colorPicket]);//设置 colorPicket 的颜色改变回调函数。 Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。 } private onChangeColor(colorPicket: ColorPicker): void { console.log("当前选择的颜色: " + colorPicket.selectedColor); } }
  38138. */
  38139. class ColorPicker extends laya.ui.ColorPicker {}
  38140. /**
  38141. * 当用户更改 <code>ComboBox</code> 组件中的选定内容时调度。
  38142. * @eventType laya.events.Event selectedIndex属性变化时调度。
  38143. */
  38144. /**
  38145. * <code>ComboBox</code> 组件包含一个下拉列表,用户可以从该列表中选择单个值。
  38146. * @example <caption>以下示例代码,创建了一个 <code>ComboBox</code> 实例。</caption> package { import laya.ui.ComboBox; import laya.utils.Handler; public class ComboBox_Example { public function ComboBox_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete));//加载资源。 } private function onLoadComplete():void { trace("资源加载完成!"); var comboBox:ComboBox = new ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。 comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.selectHandler = new Handler(this, onSelect);//设置 comboBox 选择项改变时执行的处理器。 Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。 } private function onSelect(index:int):void { trace("当前选中的项对象索引: ",index); } } }
  38147. * @example Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源 function loadComplete() { console.log("资源加载完成!"); var comboBox = new laya.ui.ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。 comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.selectHandler = new laya.utils.Handler(this, onSelect);//设置 comboBox 选择项改变时执行的处理器。 Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。 } function onSelect(index) { console.log("当前选中的项对象索引: ",index); }
  38148. * @example import ComboBox = laya.ui.ComboBox; import Handler = laya.utils.Handler; class ComboBox_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/button.png", Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { console.log("资源加载完成!"); var comboBox: ComboBox = new ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。 comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。 comboBox.selectHandler = new Handler(this, this.onSelect);//设置 comboBox 选择项改变时执行的处理器。 Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。 } private onSelect(index: number): void { console.log("当前选中的项对象索引: ", index); } }
  38149. */
  38150. class ComboBox extends laya.ui.ComboBox {}
  38151. /**
  38152. * <code>Dialog</code> 组件是一个弹出对话框,实现对话框弹出,拖动,模式窗口功能。
  38153. * 可以通过UIConfig设置弹出框背景透明度,模式窗口点击边缘是否关闭等
  38154. * 通过设置zOrder属性,可以更改弹出的层次
  38155. * 通过设置popupEffect和closeEffect可以设置弹出效果和关闭效果,如果不想有任何弹出关闭效果,可以设置前述属性为空
  38156. * @example <caption>以下示例代码,创建了一个 <code>Dialog</code> 实例。</caption> package { import laya.ui.Dialog; import laya.utils.Handler; public class Dialog_Example { private var dialog:Dialog_Instance; public function Dialog_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/btn_close.png", Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { dialog = new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。 dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。 dialog.show();//显示 dialog。 dialog.closeHandler = new Handler(this, onClose);//设置 dialog 的关闭函数处理器。 } private function onClose(name:String):void { if (name == Dialog.CLOSE) { trace("通过点击 name 为" + name +"的组件,关闭了dialog。"); } } } } import laya.ui.Button; import laya.ui.Dialog; import laya.ui.Image; class Dialog_Instance extends Dialog { function Dialog_Instance():void { var bg:Image = new Image("resource/ui/bg.png"); bg.sizeGrid = "40,10,5,10"; bg.width = 150; bg.height = 250; addChild(bg); var image:Image = new Image("resource/ui/image.png"); addChild(image); var button:Button = new Button("resource/ui/btn_close.png"); button.name = Dialog.CLOSE;//设置button的name属性值。 button.x = 0; button.y = 0; addChild(button); } }
  38157. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var dialog; Laya.loader.load("resource/ui/btn_close.png", laya.utils.Handler.create(this, loadComplete));//加载资源 (function (_super) {//新建一个类Dialog_Instance继承自laya.ui.Dialog。 function Dialog_Instance() { Dialog_Instance.__super.call(this);//初始化父类 var bg = new laya.ui.Image("resource/ui/bg.png");//新建一个 Image 类的实例 bg 。 bg.sizeGrid = "10,40,10,5";//设置 bg 的网格信息。 bg.width = 150;//设置 bg 的宽度。 bg.height = 250;//设置 bg 的高度。 this.addChild(bg);//将 bg 添加到显示列表。 var image = new laya.ui.Image("resource/ui/image.png");//新建一个 Image 类的实例 image 。 this.addChild(image);//将 image 添加到显示列表。 var button = new laya.ui.Button("resource/ui/btn_close.png");//新建一个 Button 类的实例 bg 。 button.name = laya.ui.Dialog.CLOSE;//设置 button 的 name 属性值。 button.x = 0;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。 button.y = 0;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。 this.addChild(button);//将 button 添加到显示列表。 }; Laya.class(Dialog_Instance,"mypackage.dialogExample.Dialog_Instance",_super);//注册类Dialog_Instance。 })(laya.ui.Dialog); function loadComplete() { console.log("资源加载完成!"); dialog = new mypackage.dialogExample.Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。 dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。 dialog.show();//显示 dialog。 dialog.closeHandler = new laya.utils.Handler(this, onClose);//设置 dialog 的关闭函数处理器。 } function onClose(name) { if (name == laya.ui.Dialog.CLOSE) { console.log("通过点击 name 为" + name + "的组件,关闭了dialog。"); } }
  38158. * @example import Dialog = laya.ui.Dialog; import Handler = laya.utils.Handler; class Dialog_Example { private dialog: Dialog_Instance; constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load("resource/ui/btn_close.png", Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { this.dialog = new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。 this.dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。 this.dialog.show();//显示 dialog。 this.dialog.closeHandler = new Handler(this, this.onClose);//设置 dialog 的关闭函数处理器。 } private onClose(name: string): void { if (name == Dialog.CLOSE) { console.log("通过点击 name 为" + name + "的组件,关闭了dialog。"); } } } import Button = laya.ui.Button; class Dialog_Instance extends Dialog { Dialog_Instance(): void { var bg: laya.ui.Image = new laya.ui.Image("resource/ui/bg.png"); bg.sizeGrid = "40,10,5,10"; bg.width = 150; bg.height = 250; this.addChild(bg); var image: laya.ui.Image = new laya.ui.Image("resource/ui/image.png"); this.addChild(image); var button: Button = new Button("resource/ui/btn_close.png"); button.name = Dialog.CLOSE;//设置button的name属性值。 button.x = 0; button.y = 0; this.addChild(button); } }
  38159. */
  38160. class Dialog extends laya.ui.Dialog {}
  38161. /**
  38162. * 打开任意窗口后调度。
  38163. * @eventType Event.OPEN
  38164. */
  38165. /**
  38166. * 关闭任意窗口后调度。
  38167. * @eventType Event.CLOSE
  38168. */
  38169. /**
  38170. * <code>DialogManager</code> 对话框管理容器,所有的对话框都在该容器内,并且受管理器管理。
  38171. * 任意对话框打开和关闭,都会出发管理类的open和close事件
  38172. * 可以通过UIConfig设置弹出框背景透明度,模式窗口点击边缘是否关闭,点击窗口是否切换层次等
  38173. * 通过设置对话框的zOrder属性,可以更改弹出的层次
  38174. */
  38175. class DialogManager extends laya.ui.DialogManager {}
  38176. /**
  38177. * 字体切片,简化版的位图字体,只需设置一个切片图片和文字内容即可使用,效果同位图字体
  38178. * 使用方式:设置位图字体皮肤skin,设置皮肤对应的字体内容sheet(如果多行,可以使用空格换行),示例:
  38179. * fontClip.skin = "font1.png";//设置皮肤
  38180. * fontClip.sheet = "abc123 456";//设置皮肤对应的内容,空格换行。此皮肤为2行5列(显示时skin会被等分为2行5列),第一行对应的文字为"abc123",第二行为"456"
  38181. * fontClip.value = "a1326";//显示"a1326"文字
  38182. */
  38183. class FontClip extends laya.ui.FontClip {}
  38184. /**
  38185. * <code>HBox</code> 是一个水平布局容器类。
  38186. */
  38187. class HBox extends laya.ui.HBox {}
  38188. /**
  38189. * 使用 <code>HScrollBar</code> (水平 <code>ScrollBar</code> )控件,可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。
  38190. * @example <caption>以下示例代码,创建了一个 <code>HScrollBar</code> 实例。</caption> package { import laya.ui.HScrollBar; import laya.utils.Handler; public class HScrollBar_Example { private var hScrollBar:HScrollBar; public function HScrollBar_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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));//加载资源。 } private function onLoadComplete():void { hScrollBar = new HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。 hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。 hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。 hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。 hScrollBar.changeHandler = new Handler(this, onChange);//设置 hScrollBar 的滚动变化处理器。 Laya.stage.addChild(hScrollBar);//将此 hScrollBar 对象添加到显示列表。 } private function onChange(value:Number):void { trace("滚动条的位置: value=" + value); } } }
  38191. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var hScrollBar; var res = ["resource/ui/hscroll.png", "resource/ui/hscroll$bar.png", "resource/ui/hscroll$down.png", "resource/ui/hscroll$up.png"]; Laya.loader.load(res,laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { console.log("资源加载完成!"); hScrollBar = new laya.ui.HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。 hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。 hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。 hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。 hScrollBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 hScrollBar 的滚动变化处理器。 Laya.stage.addChild(hScrollBar);//将此 hScrollBar 对象添加到显示列表。 } function onChange(value) { console.log("滚动条的位置: value=" + value); }
  38192. * @example import HScrollBar = laya.ui.HScrollBar; import Handler = laya.utils.Handler; class HScrollBar_Example { private hScrollBar: HScrollBar; constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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));//加载资源。 } private onLoadComplete(): void { this.hScrollBar = new HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。 this.hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。 this.hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。 this.hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。 this.hScrollBar.changeHandler = new Handler(this, this.onChange);//设置 hScrollBar 的滚动变化处理器。 Laya.stage.addChild(this.hScrollBar);//将此 hScrollBar 对象添加到显示列表。 } private onChange(value: number): void { console.log("滚动条的位置: value=" + value); } }
  38193. */
  38194. class HScrollBar extends laya.ui.HScrollBar {}
  38195. /**
  38196. * 使用 <code>HSlider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  38197. * <p> <code>HSlider</code> 控件采用水平方向。滑块轨道从左向右扩展,而标签位于轨道的顶部或底部。</p>
  38198. * @example <caption>以下示例代码,创建了一个 <code>HSlider</code> 实例。</caption> package { import laya.ui.HSlider; import laya.utils.Handler; public class HSlider_Example { private var hSlider:HSlider; public function HSlider_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/hslider.png", "resource/ui/hslider$bar.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { hSlider = new HSlider();//创建一个 HSlider 类的实例对象 hSlider 。 hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。 hSlider.min = 0;//设置 hSlider 最低位置值。 hSlider.max = 10;//设置 hSlider 最高位置值。 hSlider.value = 2;//设置 hSlider 当前位置值。 hSlider.tick = 1;//设置 hSlider 刻度值。 hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。 hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。 hSlider.changeHandler = new Handler(this, onChange);//设置 hSlider 位置变化处理器。 Laya.stage.addChild(hSlider);//把 hSlider 添加到显示列表。 } private function onChange(value:Number):void { trace("滑块的位置: value=" + value); } } }
  38199. * @example Laya.init(640, 800, "canvas");//设置游戏画布宽高、渲染模式 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var hSlider; var res = ["resource/ui/hslider.png", "resource/ui/hslider$bar.png"]; Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete)); function onLoadComplete() { console.log("资源加载完成!"); hSlider = new laya.ui.HSlider();//创建一个 HSlider 类的实例对象 hSlider 。 hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。 hSlider.min = 0;//设置 hSlider 最低位置值。 hSlider.max = 10;//设置 hSlider 最高位置值。 hSlider.value = 2;//设置 hSlider 当前位置值。 hSlider.tick = 1;//设置 hSlider 刻度值。 hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。 hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。 hSlider.changeHandler = new laya.utils.Handler(this, onChange);//设置 hSlider 位置变化处理器。 Laya.stage.addChild(hSlider);//把 hSlider 添加到显示列表。 } function onChange(value) { console.log("滑块的位置: value=" + value); }
  38200. * @example import Handler = laya.utils.Handler; import HSlider = laya.ui.HSlider; class HSlider_Example { private hSlider: HSlider; constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/hslider.png", "resource/ui/hslider$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { this.hSlider = new HSlider();//创建一个 HSlider 类的实例对象 hSlider 。 this.hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。 this.hSlider.min = 0;//设置 hSlider 最低位置值。 this.hSlider.max = 10;//设置 hSlider 最高位置值。 this.hSlider.value = 2;//设置 hSlider 当前位置值。 this.hSlider.tick = 1;//设置 hSlider 刻度值。 this.hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。 this.hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。 this.hSlider.changeHandler = new Handler(this, this.onChange);//设置 hSlider 位置变化处理器。 Laya.stage.addChild(this.hSlider);//把 hSlider 添加到显示列表。 } private onChange(value: number): void { console.log("滑块的位置: value=" + value); } }
  38201. * @see laya.ui.Slider
  38202. */
  38203. class HSlider extends laya.ui.HSlider {}
  38204. /**
  38205. * 资源加载完成后调度。
  38206. * @eventType Event.LOADED
  38207. */
  38208. /**
  38209. * <code>Image</code> 类是用于表示位图图像或绘制图形的显示对象。
  38210. * Image和Clip组件是唯一支持异步加载的两个组件,比如img.skin = "abc/xxx.png",其他UI组件均不支持异步加载。
  38211. * @example <caption>以下示例代码,创建了一个新的 <code>Image</code> 实例,设置了它的皮肤、位置信息,并添加到舞台上。</caption> package { import laya.ui.Image; public class Image_Example { public function Image_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } private function onInit():void { var bg:Image = new Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。 bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。 bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。 bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。 bg.width = 150;//设置 bg 对象的宽度。 bg.height = 250;//设置 bg 对象的高度。 Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。 var image:Image = new Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。 image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。 image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。 Laya.stage.addChild(image);//将此 image 对象添加到显示列表。 } } }
  38212. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 onInit(); function onInit() { var bg = new laya.ui.Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。 bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。 bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。 bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。 bg.width = 150;//设置 bg 对象的宽度。 bg.height = 250;//设置 bg 对象的高度。 Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。 var image = new laya.ui.Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。 image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。 image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。 Laya.stage.addChild(image);//将此 image 对象添加到显示列表。 }
  38213. * @example class Image_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.onInit(); } private onInit(): void { var bg: laya.ui.Image = new laya.ui.Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。 bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。 bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。 bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。 bg.width = 150;//设置 bg 对象的宽度。 bg.height = 250;//设置 bg 对象的高度。 Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。 var image: laya.ui.Image = new laya.ui.Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。 image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。 image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。 Laya.stage.addChild(image);//将此 image 对象添加到显示列表。 } }
  38214. * @see laya.ui.AutoBitmap
  38215. */
  38216. class Image extends laya.ui.Image {}
  38217. /**
  38218. * 文本内容发生改变后调度。
  38219. * @eventType laya.events.Event
  38220. */
  38221. /**
  38222. * <p> <code>Label</code> 类用于创建显示对象以显示文本。</p>
  38223. * @example <caption>以下示例代码,创建了一个 <code>Label</code> 实例。</caption> package { import laya.ui.Label; public class Label_Example { public function Label_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 onInit(); } private function onInit():void { var label:Label = new Label();//创建一个 Label 类的实例对象 label 。 label.font = "Arial";//设置 label 的字体。 label.bold = true;//设置 label 显示为粗体。 label.leading = 4;//设置 label 的行间距。 label.wordWrap = true;//设置 label 自动换行。 label.padding = "10,10,10,10";//设置 label 的边距。 label.color = "#ff00ff";//设置 label 的颜色。 label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。 label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。 label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。 label.width = 300;//设置 label 的宽度。 label.height = 200;//设置 label 的高度。 Laya.stage.addChild(label);//将 label 添加到显示列表。 var passwordLabel:Label = new Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。 passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。 passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.width = 300;//设置 passwordLabel 的宽度。 passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。 passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。 passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。 Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。 } } }
  38224. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 onInit(); function onInit(){ var label = new laya.ui.Label();//创建一个 Label 类的实例对象 label 。 label.font = "Arial";//设置 label 的字体。 label.bold = true;//设置 label 显示为粗体。 label.leading = 4;//设置 label 的行间距。 label.wordWrap = true;//设置 label 自动换行。 label.padding = "10,10,10,10";//设置 label 的边距。 label.color = "#ff00ff";//设置 label 的颜色。 label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。 label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。 label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。 label.width = 300;//设置 label 的宽度。 label.height = 200;//设置 label 的高度。 Laya.stage.addChild(label);//将 label 添加到显示列表。 var passwordLabel = new laya.ui.Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。 passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。 passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.width = 300;//设置 passwordLabel 的宽度。 passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。 passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。 passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。 Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。 }
  38225. * @example import Label = laya.ui.Label; class Label_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 this.onInit(); } private onInit(): void { var label: Label = new Label();//创建一个 Label 类的实例对象 label 。 label.font = "Arial";//设置 label 的字体。 label.bold = true;//设置 label 显示为粗体。 label.leading = 4;//设置 label 的行间距。 label.wordWrap = true;//设置 label 自动换行。 label.padding = "10,10,10,10";//设置 label 的边距。 label.color = "#ff00ff";//设置 label 的颜色。 label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。 label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。 label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。 label.width = 300;//设置 label 的宽度。 label.height = 200;//设置 label 的高度。 Laya.stage.addChild(label);//将 label 添加到显示列表。 var passwordLabel: Label = new Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。 passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。 passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。 passwordLabel.width = 300;//设置 passwordLabel 的宽度。 passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。 passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。 passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。 Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。 } }
  38226. * @see laya.display.Text
  38227. */
  38228. class Label extends laya.ui.Label {}
  38229. /**
  38230. * <code>LayoutBox</code> 是一个布局容器类。
  38231. */
  38232. class LayoutBox extends laya.ui.LayoutBox {}
  38233. /**
  38234. * 当对象的 <code>selectedIndex</code> 属性发生变化时调度。
  38235. * @eventType laya.events.Event
  38236. */
  38237. /**
  38238. * 渲染列表的单元项对象时调度。
  38239. * @eventType Event.RENDER
  38240. */
  38241. /**
  38242. * <code>List</code> 控件可显示项目列表。默认为垂直方向列表。可通过UI编辑器自定义列表。
  38243. * @example <caption>以下示例代码,创建了一个 <code>List</code> 实例。</caption> package { import laya.ui.List; import laya.utils.Handler; public class List_Example { public function List_Example() { Laya.init(640, 800, "false");//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private function onLoadComplete():void { var arr:Array = [];//创建一个数组,用于存贮列表的数据信息。 for (var i:int = 0; i &lt; 20; i++) { arr.push({label: "item" + i}); } var list:List = new List();//创建一个 List 类的实例对象 list 。 list.itemRender = Item;//设置 list 的单元格渲染器。 list.repeatX = 1;//设置 list 的水平方向单元格数量。 list.repeatY = 10;//设置 list 的垂直方向单元格数量。 list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。 list.array = arr;//设置 list 的列表数据源。 list.pos(100, 100);//设置 list 的位置。 list.selectEnable = true;//设置 list 可选。 list.selectHandler = new Handler(this, onSelect);//设置 list 改变选择项执行的处理器。 Laya.stage.addChild(list);//将 list 添加到显示列表。 } private function onSelect(index:int):void { trace("当前选择的项目索引: index= ", index); } } } import laya.ui.Box; import laya.ui.Label; class Item extends Box { public function Item() { graphics.drawRect(0, 0, 100, 20,null, "#ff0000"); var label:Label = new Label(); label.text = "100000"; label.name = "label";//设置 label 的name属性值。 label.size(100, 20); addChild(label); } }
  38244. * @example (function (_super){ function Item(){ Item.__super.call(this);//初始化父类 this.graphics.drawRect(0, 0, 100, 20, "#ff0000"); var label = new laya.ui.Label();//创建一个 Label 类的实例对象 label 。 label.text = "100000";//设置 label 的文本内容。 label.name = "label";//设置 label 的name属性值。 label.size(100, 20);//设置 label 的宽度、高度。 this.addChild(label);//将 label 添加到显示列表。 }; Laya.class(Item,"mypackage.listExample.Item",_super);//注册类 Item 。 })(laya.ui.Box); Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 var res = ["resource/ui/vscroll.png", "resource/ui/vscroll$bar.png", "resource/ui/vscroll$down.png", "resource/ui/vscroll$up.png"]; Laya.loader.load(res, new laya.utils.Handler(this, onLoadComplete));//加载资源。 function onLoadComplete() { var arr = [];//创建一个数组,用于存贮列表的数据信息。 for (var i = 0; i &lt; 20; i++) { arr.push({label: "item" + i}); } var list = new laya.ui.List();//创建一个 List 类的实例对象 list 。 list.itemRender = mypackage.listExample.Item;//设置 list 的单元格渲染器。 list.repeatX = 1;//设置 list 的水平方向单元格数量。 list.repeatY = 10;//设置 list 的垂直方向单元格数量。 list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。 list.array = arr;//设置 list 的列表数据源。 list.pos(100, 100);//设置 list 的位置。 list.selectEnable = true;//设置 list 可选。 list.selectHandler = new laya.utils.Handler(this, onSelect);//设置 list 改变选择项执行的处理器。 Laya.stage.addChild(list);//将 list 添加到显示列表。 } function onSelect(index) { console.log("当前选择的项目索引: index= ", index); }
  38245. * @example import List = laya.ui.List; import Handler = laya.utils.Handler; public class List_Example { public List_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private onLoadComplete(): void { var arr= [];//创建一个数组,用于存贮列表的数据信息。 for (var i: number = 0; i &lt; 20; i++) { arr.push({ label: "item" + i }); } var list: List = new List();//创建一个 List 类的实例对象 list 。 list.itemRender = Item;//设置 list 的单元格渲染器。 list.repeatX = 1;//设置 list 的水平方向单元格数量。 list.repeatY = 10;//设置 list 的垂直方向单元格数量。 list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。 list.array = arr;//设置 list 的列表数据源。 list.pos(100, 100);//设置 list 的位置。 list.selectEnable = true;//设置 list 可选。 list.selectHandler = new Handler(this, this.onSelect);//设置 list 改变选择项执行的处理器。 Laya.stage.addChild(list);//将 list 添加到显示列表。 } private onSelect(index: number): void { console.log("当前选择的项目索引: index= ", index); } } import Box = laya.ui.Box; import Label = laya.ui.Label; class Item extends Box { constructor() { this.graphics.drawRect(0, 0, 100, 20, null, "#ff0000"); var label: Label = new Label(); label.text = "100000"; label.name = "label";//设置 label 的name属性值。 label.size(100, 20); this.addChild(label); } }
  38246. */
  38247. class List extends laya.ui.List {}
  38248. /**
  38249. * <code>Panel</code> 是一个面板容器类。
  38250. */
  38251. class Panel extends laya.ui.Panel {}
  38252. /**
  38253. * 值发生改变后调度。
  38254. * @eventType laya.events.Event
  38255. */
  38256. /**
  38257. * <code>ProgressBar</code> 组件显示内容的加载进度。
  38258. * @example <caption>以下示例代码,创建了一个新的 <code>ProgressBar</code> 实例,设置了它的皮肤、位置、宽高、网格等信息,并添加到舞台上。</caption> package { import laya.ui.ProgressBar; import laya.utils.Handler; public class ProgressBar_Example { private var progressBar:ProgressBar; public function ProgressBar_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/progress.png", "resource/ui/progress$bar.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { progressBar = new ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。 progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。 progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。 progressBar.value = 0.3;//设置 progressBar 的进度值。 progressBar.width = 200;//设置 progressBar 的宽度。 progressBar.height = 50;//设置 progressBar 的高度。 progressBar.sizeGrid = "5,10,5,10";//设置 progressBar 的网格信息。 progressBar.changeHandler = new Handler(this, onChange);//设置 progressBar 的value值改变时执行的处理器。 Laya.stage.addChild(progressBar);//将 progressBar 添加到显示列表。 Laya.timer.once(3000, this, changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。 } private function changeValue():void { trace("改变进度条的进度值。"); progressBar.value = 0.6; } private function onChange(value:Number):void { trace("进度发生改变: value=" ,value); } } }
  38259. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var res = ["resource/ui/progress.png", "resource/ui/progress$bar.png"]; Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { progressBar = new laya.ui.ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。 progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。 progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。 progressBar.value = 0.3;//设置 progressBar 的进度值。 progressBar.width = 200;//设置 progressBar 的宽度。 progressBar.height = 50;//设置 progressBar 的高度。 progressBar.sizeGrid = "10,5,10,5";//设置 progressBar 的网格信息。 progressBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 progressBar 的value值改变时执行的处理器。 Laya.stage.addChild(progressBar);//将 progressBar 添加到显示列表。 Laya.timer.once(3000, this, changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。 } function changeValue() { console.log("改变进度条的进度值。"); progressBar.value = 0.6; } function onChange(value) { console.log("进度发生改变: value=" ,value); }
  38260. * @example import ProgressBar = laya.ui.ProgressBar; import Handler = laya.utils.Handler; class ProgressBar_Example { private progressBar: ProgressBar; public ProgressBar_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/progress.png", "resource/ui/progress$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { this.progressBar = new ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。 this.progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。 this.progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。 this.progressBar.value = 0.3;//设置 progressBar 的进度值。 this.progressBar.width = 200;//设置 progressBar 的宽度。 this.progressBar.height = 50;//设置 progressBar 的高度。 this.progressBar.sizeGrid = "5,10,5,10";//设置 progressBar 的网格信息。 this.progressBar.changeHandler = new Handler(this, this.onChange);//设置 progressBar 的value值改变时执行的处理器。 Laya.stage.addChild(this.progressBar);//将 progressBar 添加到显示列表。 Laya.timer.once(3000, this, this.changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。 } private changeValue(): void { console.log("改变进度条的进度值。"); this.progressBar.value = 0.6; } private onChange(value: number): void { console.log("进度发生改变: value=", value); } }
  38261. */
  38262. class ProgressBar extends laya.ui.ProgressBar {}
  38263. /**
  38264. * <code>Radio</code> 控件使用户可在一组互相排斥的选择中做出一种选择。
  38265. * 用户一次只能选择 <code>Radio</code> 组中的一个成员。选择未选中的组成员将取消选择该组中当前所选的 <code>Radio</code> 控件。
  38266. * @see laya.ui.RadioGroup
  38267. */
  38268. class Radio extends laya.ui.Radio {}
  38269. /**
  38270. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  38271. * @eventType laya.events.Event
  38272. */
  38273. /**
  38274. * <code>RadioGroup</code> 控件定义一组 <code>Radio</code> 控件,这些控件相互排斥;
  38275. * 因此,用户每次只能选择一个 <code>Radio</code> 控件。
  38276. * @example <caption>以下示例代码,创建了一个 <code>RadioGroup</code> 实例。</caption> package { import laya.ui.Radio; import laya.ui.RadioGroup; import laya.utils.Handler; public class RadioGroup_Example { public function RadioGroup_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/radio.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { var radioGroup:RadioGroup = new RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。 radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。 radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。 radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。 radioGroup.space = 10;//设置 radioGroup 的项间隔距离。 radioGroup.selectHandler = new Handler(this, onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。 Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。 } private function onSelect(index:int):void { trace("当前选择的单选按钮索引: index= ", index); } } }
  38277. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load(["resource/ui/radio.png"], laya.utils.Handler.create(this, onLoadComplete)); function onLoadComplete() { var radioGroup= new laya.ui.RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。 radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。 radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。 radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。 radioGroup.space = 10;//设置 radioGroup 的项间隔距离。 radioGroup.selectHandler = new laya.utils.Handler(this, onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。 Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。 } function onSelect(index) { console.log("当前选择的单选按钮索引: index= ", index); }
  38278. * @example import Radio = laya.ui.Radio; import RadioGroup = laya.ui.RadioGroup; import Handler = laya.utils.Handler; class RadioGroup_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/radio.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { var radioGroup: RadioGroup = new RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。 radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。 radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。 radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。 radioGroup.space = 10;//设置 radioGroup 的项间隔距离。 radioGroup.selectHandler = new Handler(this, this.onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。 Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。 } private onSelect(index: number): void { console.log("当前选择的单选按钮索引: index= ", index); } }
  38279. */
  38280. class RadioGroup extends laya.ui.RadioGroup {}
  38281. /**
  38282. * 自适应缩放容器,容器设置大小后,容器大小始终保持stage大小,子内容按照原始最小宽高比缩放
  38283. */
  38284. class ScaleBox extends laya.ui.ScaleBox {}
  38285. /**
  38286. * 滚动条滑块位置发生变化后调度。
  38287. * @eventType laya.events.Event
  38288. */
  38289. /**
  38290. * 开始滑动。
  38291. * @eventType laya.events.Event
  38292. */
  38293. /**
  38294. * 结束滑动。
  38295. * @eventType laya.events.Event
  38296. */
  38297. /**
  38298. * <code>ScrollBar</code> 组件是一个滚动条组件。
  38299. * <p>当数据太多以至于显示区域无法容纳时,最终用户可以使用 <code>ScrollBar</code> 组件控制所显示的数据部分。</p>
  38300. * <p> 滚动条由四部分组成:两个箭头按钮、一个轨道和一个滑块。 </p> *
  38301. * @see laya.ui.VScrollBar
  38302. * @see laya.ui.HScrollBar
  38303. */
  38304. class ScrollBar extends laya.ui.ScrollBar {}
  38305. /**
  38306. * 移动滑块位置时调度。
  38307. * @eventType laya.events.Event
  38308. */
  38309. /**
  38310. * 移动滑块位置完成(用户鼠标抬起)后调度。
  38311. * @eventType
  38312. * @eventType laya.events.EventD
  38313. */
  38314. /**
  38315. * 使用 <code>Slider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  38316. * <p>滑块的当前值由滑块端点(对应于滑块的最小值和最大值)之间滑块的相对位置确定。</p>
  38317. * <p>滑块允许最小值和最大值之间特定间隔内的值。滑块还可以使用数据提示显示其当前值。</p>
  38318. * @see laya.ui.HSlider
  38319. * @see laya.ui.VSlider
  38320. */
  38321. class Slider extends laya.ui.Slider {}
  38322. /**
  38323. * <code>Styles</code> 定义了组件常用的样式属性。
  38324. */
  38325. class Styles extends laya.ui.Styles {}
  38326. /**
  38327. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  38328. * @eventType laya.events.Event
  38329. */
  38330. /**
  38331. * <code>Tab</code> 组件用来定义选项卡按钮组。 *
  38332. * <p>属性:<code>selectedIndex</code> 的默认值为-1。</p>
  38333. * @example <caption>以下示例代码,创建了一个 <code>Tab</code> 实例。</caption> package { import laya.ui.Tab; import laya.utils.Handler; public class Tab_Example { public function Tab_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/tab.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { var tab:Tab = new Tab();//创建一个 Tab 类的实例对象 tab 。 tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。 tab.labels = "item0,item1,item2";//设置 tab 的标签集。 tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。 tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。 tab.selectHandler = new Handler(this, onSelect);//设置 tab 的选择项发生改变时执行的处理器。 Laya.stage.addChild(tab);//将 tab 添到显示列表。 } private function onSelect(index:int):void { trace("当前选择的表情页索引: index= ", index); } } }
  38334. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load(["resource/ui/tab.png"], laya.utils.Handler.create(this, onLoadComplete)); function onLoadComplete() { var tab = new laya.ui.Tab();//创建一个 Tab 类的实例对象 tab 。 tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。 tab.labels = "item0,item1,item2";//设置 tab 的标签集。 tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。 tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。 tab.selectHandler = new laya.utils.Handler(this, onSelect);//设置 tab 的选择项发生改变时执行的处理器。 Laya.stage.addChild(tab);//将 tab 添到显示列表。 } function onSelect(index) { console.log("当前选择的标签页索引: index= ", index); }
  38335. * @example import Tab = laya.ui.Tab; import Handler = laya.utils.Handler; class Tab_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/tab.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { var tab: Tab = new Tab();//创建一个 Tab 类的实例对象 tab 。 tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。 tab.labels = "item0,item1,item2";//设置 tab 的标签集。 tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。 tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。 tab.selectHandler = new Handler(this, this.onSelect);//设置 tab 的选择项发生改变时执行的处理器。 Laya.stage.addChild(tab);//将 tab 添到显示列表。 } private onSelect(index: number): void { console.log("当前选择的表情页索引: index= ", index); } }
  38336. */
  38337. class Tab extends laya.ui.Tab {}
  38338. /**
  38339. * <code>TextArea</code> 类用于创建显示对象以显示和输入文本。
  38340. * @example <caption>以下示例代码,创建了一个 <code>TextArea</code> 实例。</caption> package { import laya.ui.TextArea; import laya.utils.Handler; public class TextArea_Example { public function TextArea_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/input.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { var textArea:TextArea = new TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。 textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。 textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。 textArea.color = "#008fff";//设置 textArea 的文本颜色。 textArea.font = "Arial";//设置 textArea 的字体。 textArea.bold = true;//设置 textArea 的文本显示为粗体。 textArea.fontSize = 20;//设置 textArea 的文本字体大小。 textArea.wordWrap = true;//设置 textArea 的文本自动换行。 textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。 textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。 textArea.width = 300;//设置 textArea 的宽度。 textArea.height = 200;//设置 textArea 的高度。 Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。 } } }
  38341. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load(["resource/ui/input.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { var textArea = new laya.ui.TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。 textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。 textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。 textArea.color = "#008fff";//设置 textArea 的文本颜色。 textArea.font = "Arial";//设置 textArea 的字体。 textArea.bold = true;//设置 textArea 的文本显示为粗体。 textArea.fontSize = 20;//设置 textArea 的文本字体大小。 textArea.wordWrap = true;//设置 textArea 的文本自动换行。 textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。 textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。 textArea.width = 300;//设置 textArea 的宽度。 textArea.height = 200;//设置 textArea 的高度。 Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。 }
  38342. * @example import TextArea = laya.ui.TextArea; import Handler = laya.utils.Handler; class TextArea_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/input.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { var textArea: TextArea = new TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。 textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。 textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。 textArea.color = "#008fff";//设置 textArea 的文本颜色。 textArea.font = "Arial";//设置 textArea 的字体。 textArea.bold = true;//设置 textArea 的文本显示为粗体。 textArea.fontSize = 20;//设置 textArea 的文本字体大小。 textArea.wordWrap = true;//设置 textArea 的文本自动换行。 textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。 textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。 textArea.width = 300;//设置 textArea 的宽度。 textArea.height = 200;//设置 textArea 的高度。 Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。 } }
  38343. */
  38344. class TextArea extends laya.ui.TextArea {}
  38345. /**
  38346. * 输入文本后调度。
  38347. * @eventType Event.INPUT
  38348. */
  38349. /**
  38350. * 在输入框内敲回车键后调度。
  38351. * @eventType Event.ENTER
  38352. */
  38353. /**
  38354. * 当获得输入焦点后调度。
  38355. * @eventType Event.FOCUS
  38356. */
  38357. /**
  38358. * 当失去输入焦点后调度。
  38359. * @eventType Event.BLUR
  38360. */
  38361. /**
  38362. * <code>TextInput</code> 类用于创建显示对象以显示和输入文本。
  38363. * @example <caption>以下示例代码,创建了一个 <code>TextInput</code> 实例。</caption> package { import laya.display.Stage; import laya.ui.TextInput; import laya.utils.Handler; public class TextInput_Example { public function TextInput_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/input.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { var textInput:TextInput = new TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。 textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。 textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。 textInput.color = "#008fff";//设置 textInput 的文本颜色。 textInput.font = "Arial";//设置 textInput 的文本字体。 textInput.bold = true;//设置 textInput 的文本显示为粗体。 textInput.fontSize = 30;//设置 textInput 的字体大小。 textInput.wordWrap = true;//设置 textInput 的文本自动换行。 textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。 textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。 textInput.width = 300;//设置 textInput 的宽度。 textInput.height = 200;//设置 textInput 的高度。 Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。 } } }
  38364. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 Laya.loader.load(["resource/ui/input.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { var textInput = new laya.ui.TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。 textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。 textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。 textInput.color = "#008fff";//设置 textInput 的文本颜色。 textInput.font = "Arial";//设置 textInput 的文本字体。 textInput.bold = true;//设置 textInput 的文本显示为粗体。 textInput.fontSize = 30;//设置 textInput 的字体大小。 textInput.wordWrap = true;//设置 textInput 的文本自动换行。 textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。 textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。 textInput.width = 300;//设置 textInput 的宽度。 textInput.height = 200;//设置 textInput 的高度。 Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。 }
  38365. * @example import Stage = laya.display.Stage; import TextInput = laya.ui.TextInput; import Handler = laya.utils.Handler; class TextInput_Example { constructor() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/input.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { var textInput: TextInput = new TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。 textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。 textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。 textInput.color = "#008fff";//设置 textInput 的文本颜色。 textInput.font = "Arial";//设置 textInput 的文本字体。 textInput.bold = true;//设置 textInput 的文本显示为粗体。 textInput.fontSize = 30;//设置 textInput 的字体大小。 textInput.wordWrap = true;//设置 textInput 的文本自动换行。 textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。 textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。 textInput.width = 300;//设置 textInput 的宽度。 textInput.height = 200;//设置 textInput 的高度。 Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。 } }
  38366. */
  38367. class TextInput extends laya.ui.TextInput {}
  38368. /**
  38369. * 鼠标提示管理类
  38370. */
  38371. class TipManager extends laya.ui.TipManager {}
  38372. /**
  38373. * 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  38374. * @eventType laya.events.Event
  38375. */
  38376. /**
  38377. * 节点打开关闭时触发。
  38378. * @eventType laya.events.Event
  38379. */
  38380. /**
  38381. * <code>Tree</code> 控件使用户可以查看排列为可扩展树的层次结构数据。
  38382. * @example package { import laya.ui.Tree; import laya.utils.Browser; import laya.utils.Handler; public class Tree_Example { public function Tree_Example() { Laya.init(640, 800); Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private function onLoadComplete():void { var xmlString:String;//创建一个xml字符串,用于存储树结构数据。 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;"; var domParser:* = new Browser.window.DOMParser();//创建一个DOMParser实例domParser。 var xml:* = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。 var tree:Tree = new Tree();//创建一个 Tree 类的实例对象 tree 。 tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。 tree.itemRender = Item;//设置 tree 的项渲染器。 tree.xml = xml;//设置 tree 的树结构数据。 tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。 tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。 tree.width = 200;//设置 tree 的宽度。 tree.height = 100;//设置 tree 的高度。 Laya.stage.addChild(tree);//将 tree 添加到显示列表。 } } } import laya.ui.Box; import laya.ui.Clip; import laya.ui.Label; class Item extends Box { public function Item() { this.name = "render"; this.right = 0; this.left = 0; var selectBox:Clip = new Clip("resource/ui/clip_selectBox.png", 1, 2); selectBox.name = "selectBox"; selectBox.height = 24; selectBox.x = 13; selectBox.y = 0; selectBox.left = 12; addChild(selectBox); var folder:Clip = new Clip("resource/ui/clip_tree_folder.png", 1, 3); folder.name = "folder"; folder.x = 14; folder.y = 4; addChild(folder); var label:Label = new Label("treeItem"); label.name = "label"; label.color = "#ffff00"; label.width = 150; label.height = 22; label.x = 33; label.y = 1; label.left = 33; label.right = 0; addChild(label); var arrow:Clip = new Clip("resource/ui/clip_tree_arrow.png", 1, 2); arrow.name = "arrow"; arrow.x = 0; arrow.y = 5; addChild(arrow); } }
  38383. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 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"]; Laya.loader.load(res, new laya.utils.Handler(this, onLoadComplete)); function onLoadComplete() { var xmlString;//创建一个xml字符串,用于存储树结构数据。 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;"; var domParser = new laya.utils.Browser.window.DOMParser();//创建一个DOMParser实例domParser。 var xml = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。 var tree = new laya.ui.Tree();//创建一个 Tree 类的实例对象 tree 。 tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。 tree.itemRender = mypackage.treeExample.Item;//设置 tree 的项渲染器。 tree.xml = xml;//设置 tree 的树结构数据。 tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。 tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。 tree.width = 200;//设置 tree 的宽度。 tree.height = 100;//设置 tree 的高度。 Laya.stage.addChild(tree);//将 tree 添加到显示列表。 } (function (_super) { function Item() { Item.__super.call(this);//初始化父类。 this.right = 0; this.left = 0; var selectBox = new laya.ui.Clip("resource/ui/clip_selectBox.png", 1, 2); selectBox.name = "selectBox";//设置 selectBox 的name 为“selectBox”时,将被识别为树结构的项的背景。2帧:悬停时背景、选中时背景。 selectBox.height = 24; selectBox.x = 13; selectBox.y = 0; selectBox.left = 12; this.addChild(selectBox);//需要使用this.访问父类的属性或方法。 var folder = new laya.ui.Clip("resource/ui/clip_tree_folder.png", 1, 3); folder.name = "folder";//设置 folder 的name 为“folder”时,将被识别为树结构的文件夹开启状态图表。2帧:折叠状态、打开状态。 folder.x = 14; folder.y = 4; this.addChild(folder); var label = new laya.ui.Label("treeItem"); label.name = "label";//设置 label 的name 为“label”时,此值将用于树结构数据赋值。 label.color = "#ffff00"; label.width = 150; label.height = 22; label.x = 33; label.y = 1; label.left = 33; label.right = 0; this.addChild(label); var arrow = new laya.ui.Clip("resource/ui/clip_tree_arrow.png", 1, 2); arrow.name = "arrow";//设置 arrow 的name 为“arrow”时,将被识别为树结构的文件夹开启状态图表。2帧:折叠状态、打开状态。 arrow.x = 0; arrow.y = 5; this.addChild(arrow); }; Laya.class(Item,"mypackage.treeExample.Item",_super);//注册类 Item 。 })(laya.ui.Box);
  38384. * @example import Tree = laya.ui.Tree; import Browser = laya.utils.Browser; import Handler = laya.utils.Handler; class Tree_Example { constructor() { Laya.init(640, 800); Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private onLoadComplete(): void { var xmlString: String;//创建一个xml字符串,用于存储树结构数据。 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;"; var domParser: any = new Browser.window.DOMParser();//创建一个DOMParser实例domParser。 var xml: any = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。 var tree: Tree = new Tree();//创建一个 Tree 类的实例对象 tree 。 tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。 tree.itemRender = Item;//设置 tree 的项渲染器。 tree.xml = xml;//设置 tree 的树结构数据。 tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。 tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。 tree.width = 200;//设置 tree 的宽度。 tree.height = 100;//设置 tree 的高度。 Laya.stage.addChild(tree);//将 tree 添加到显示列表。 } } import Box = laya.ui.Box; import Clip = laya.ui.Clip; import Label = laya.ui.Label; class Item extends Box { constructor() { super(); this.name = "render"; this.right = 0; this.left = 0; var selectBox: Clip = new Clip("resource/ui/clip_selectBox.png", 1, 2); selectBox.name = "selectBox"; selectBox.height = 24; selectBox.x = 13; selectBox.y = 0; selectBox.left = 12; this.addChild(selectBox); var folder: Clip = new Clip("resource/ui/clip_tree_folder.png", 1, 3); folder.name = "folder"; folder.x = 14; folder.y = 4; this.addChild(folder); var label: Label = new Label("treeItem"); label.name = "label"; label.color = "#ffff00"; label.width = 150; label.height = 22; label.x = 33; label.y = 1; label.left = 33; label.right = 0; this.addChild(label); var arrow: Clip = new Clip("resource/ui/clip_tree_arrow.png", 1, 2); arrow.name = "arrow"; arrow.x = 0; arrow.y = 5; this.addChild(arrow); } }
  38385. */
  38386. class Tree extends laya.ui.Tree {}
  38387. /**
  38388. * <code>Component</code> 是ui控件类的基类。
  38389. * <p>生命周期:preinitialize > createChildren > initialize > 组件构造函数</p>
  38390. */
  38391. class UIComponent extends laya.ui.UIComponent {}
  38392. /**
  38393. * <code>UIEvent</code> 类用来定义UI组件类的事件类型。
  38394. */
  38395. class UIEvent extends laya.ui.UIEvent {}
  38396. /**
  38397. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  38398. * @eventType laya.events.Event
  38399. */
  38400. /**
  38401. * <code>Group</code> 是一个可以自动布局的项集合控件。
  38402. * <p> <code>Group</code> 的默认项对象为 <code>Button</code> 类实例。
  38403. * <code>Group</code> 是 <code>Tab</code> 和 <code>RadioGroup</code> 的基类。</p>
  38404. */
  38405. class UIGroup extends laya.ui.UIGroup {}
  38406. class UILib extends laya.ui.UILib {}
  38407. /**
  38408. * <code>UIUtils</code> 是文本工具集。
  38409. */
  38410. class UIUtils extends laya.ui.UIUtils {}
  38411. /**
  38412. * <code>VBox</code> 是一个垂直布局容器类。
  38413. */
  38414. class VBox extends laya.ui.VBox {}
  38415. /**
  38416. * <code>View</code> 是一个视图类,2.0开始,更改继承至Scene类,相对于Scene,增加相对布局功能。
  38417. */
  38418. class View extends laya.ui.View {}
  38419. /**
  38420. * <code>ViewStack</code> 类用于视图堆栈类,用于视图的显示等设置处理。
  38421. */
  38422. class ViewStack extends laya.ui.ViewStack {}
  38423. /**
  38424. * 使用 <code>VScrollBar</code> (垂直 <code>ScrollBar</code> )控件,可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。
  38425. * @example <caption>以下示例代码,创建了一个 <code>VScrollBar</code> 实例。</caption> package { import laya.ui.vScrollBar; import laya.ui.VScrollBar; import laya.utils.Handler; public class VScrollBar_Example { private var vScrollBar:VScrollBar; public function VScrollBar_Example() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private function onLoadComplete():void { vScrollBar = new VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。 vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。 vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。 vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。 vScrollBar.changeHandler = new Handler(this, onChange);//设置 vScrollBar 的滚动变化处理器。 Laya.stage.addChild(vScrollBar);//将此 vScrollBar 对象添加到显示列表。 } private function onChange(value:Number):void { trace("滚动条的位置: value=" + value); } } }
  38426. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var vScrollBar; var res = ["resource/ui/vscroll.png", "resource/ui/vscroll$bar.png", "resource/ui/vscroll$down.png", "resource/ui/vscroll$up.png"]; Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { vScrollBar = new laya.ui.VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。 vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。 vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。 vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。 vScrollBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 vScrollBar 的滚动变化处理器。 Laya.stage.addChild(vScrollBar);//将此 vScrollBar 对象添加到显示列表。 } function onChange(value) { console.log("滚动条的位置: value=" + value); }
  38427. * @example import VScrollBar = laya.ui.VScrollBar; import Handler = laya.utils.Handler; class VScrollBar_Example { private vScrollBar: VScrollBar; constructor() { Laya.init(640, 800);//设置游戏画布宽高、渲染模式。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 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)); } private onLoadComplete(): void { this.vScrollBar = new VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。 this.vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。 this.vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。 this.vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。 this.vScrollBar.changeHandler = new Handler(this, this.onChange);//设置 vScrollBar 的滚动变化处理器。 Laya.stage.addChild(this.vScrollBar);//将此 vScrollBar 对象添加到显示列表。 } private onChange(value: number): void { console.log("滚动条的位置: value=" + value); } }
  38428. */
  38429. class VScrollBar extends laya.ui.VScrollBar {}
  38430. /**
  38431. * 使用 <code>VSlider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  38432. * <p> <code>VSlider</code> 控件采用垂直方向。滑块轨道从下往上扩展,而标签位于轨道的左右两侧。</p>
  38433. * @example <caption>以下示例代码,创建了一个 <code>VSlider</code> 实例。</caption> package { import laya.ui.HSlider; import laya.ui.VSlider; import laya.utils.Handler; public class VSlider_Example { private var vSlider:VSlider; public function VSlider_Example() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], Handler.create(this, onLoadComplete));//加载资源。 } private function onLoadComplete():void { vSlider = new VSlider();//创建一个 VSlider 类的实例对象 vSlider 。 vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。 vSlider.min = 0;//设置 vSlider 最低位置值。 vSlider.max = 10;//设置 vSlider 最高位置值。 vSlider.value = 2;//设置 vSlider 当前位置值。 vSlider.tick = 1;//设置 vSlider 刻度值。 vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。 vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。 vSlider.changeHandler = new Handler(this, onChange);//设置 vSlider 位置变化处理器。 Laya.stage.addChild(vSlider);//把 vSlider 添加到显示列表。 } private function onChange(value:Number):void { trace("滑块的位置: value=" + value); } } }
  38434. * @example Laya.init(640, 800);//设置游戏画布宽高 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色 var vSlider; Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。 function onLoadComplete() { vSlider = new laya.ui.VSlider();//创建一个 VSlider 类的实例对象 vSlider 。 vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。 vSlider.min = 0;//设置 vSlider 最低位置值。 vSlider.max = 10;//设置 vSlider 最高位置值。 vSlider.value = 2;//设置 vSlider 当前位置值。 vSlider.tick = 1;//设置 vSlider 刻度值。 vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。 vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。 vSlider.changeHandler = new laya.utils.Handler(this, onChange);//设置 vSlider 位置变化处理器。 Laya.stage.addChild(vSlider);//把 vSlider 添加到显示列表。 } function onChange(value) { console.log("滑块的位置: value=" + value); }
  38435. * @example import HSlider = laya.ui.HSlider; import VSlider = laya.ui.VSlider; import Handler = laya.utils.Handler; class VSlider_Example { private vSlider: VSlider; constructor() { Laya.init(640, 800);//设置游戏画布宽高。 Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。 Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。 } private onLoadComplete(): void { this.vSlider = new VSlider();//创建一个 VSlider 类的实例对象 vSlider 。 this.vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。 this.vSlider.min = 0;//设置 vSlider 最低位置值。 this.vSlider.max = 10;//设置 vSlider 最高位置值。 this.vSlider.value = 2;//设置 vSlider 当前位置值。 this.vSlider.tick = 1;//设置 vSlider 刻度值。 this.vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。 this.vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。 this.vSlider.changeHandler = new Handler(this, this.onChange);//设置 vSlider 位置变化处理器。 Laya.stage.addChild(this.vSlider);//把 vSlider 添加到显示列表。 } private onChange(value: number): void { console.log("滑块的位置: value=" + value); } }
  38436. * @see laya.ui.Slider
  38437. */
  38438. class VSlider extends laya.ui.VSlider {}
  38439. /**
  38440. * 相对布局插件
  38441. */
  38442. class Widget extends laya.ui.Widget {}
  38443. /**
  38444. * 微信开放数据展示组件,直接实例本组件,即可根据组件宽高,位置,以最优的方式显示开放域数据
  38445. */
  38446. class WXOpenDataViewer extends laya.ui.WXOpenDataViewer {}
  38447. /**
  38448. * <code>Browser</code> 是浏览器代理类。封装浏览器及原生 js 提供的一些功能。
  38449. */
  38450. class Browser extends laya.utils.Browser {}
  38451. /**
  38452. * <p> <code>Byte</code> 类提供用于优化读取、写入以及处理二进制数据的方法和属性。</p>
  38453. * <p> <code>Byte</code> 类适用于需要在字节层访问数据的高级开发人员。</p>
  38454. */
  38455. class Byte extends laya.utils.Byte {}
  38456. /**
  38457. * @private 对象缓存统一管理类
  38458. */
  38459. class CacheManger extends laya.utils.CacheManger {}
  38460. /**
  38461. * @private
  38462. */
  38463. class CallLater extends laya.utils.CallLater {}
  38464. /**
  38465. * <code>ClassUtils</code> 是一个类工具类。
  38466. */
  38467. class ClassUtils extends laya.utils.ClassUtils {}
  38468. /**
  38469. * @private <code>ColorUtils</code> 是一个颜色值处理类。
  38470. */
  38471. class ColorUtils extends laya.utils.ColorUtils {}
  38472. /**
  38473. * @private <code>Dragging</code> 类是触摸滑动控件。
  38474. */
  38475. class Dragging extends laya.utils.Dragging {}
  38476. /**
  38477. * <code>Ease</code> 类定义了缓动函数,以便实现 <code>Tween</code> 动画的缓动效果。
  38478. */
  38479. class Ease extends laya.utils.Ease {}
  38480. class FontInfo extends laya.utils.FontInfo {}
  38481. /**
  38482. * Graphics动画解析器
  38483. * @private
  38484. */
  38485. class GraphicAnimation extends laya.utils.GraphicAnimation {}
  38486. class GraphicNode extends laya.utils.GraphicNode {}
  38487. /**
  38488. * <p><code>Handler</code> 是事件处理器类。</p>
  38489. * <p>推荐使用 Handler.create() 方法从对象池创建,减少对象创建消耗。创建的 Handler 对象不再使用后,可以使用 Handler.recover() 将其回收到对象池,回收后不要再使用此对象,否则会导致不可预料的错误。</p>
  38490. * <p><b>注意:</b>由于鼠标事件也用本对象池,不正确的回收及调用,可能会影响鼠标事件的执行。</p>
  38491. */
  38492. class Handler extends laya.utils.Handler {}
  38493. /**
  38494. * 鼠标点击区域,可以设置绘制一系列矢量图作为点击区域和非点击区域(目前只支持圆形,矩形,多边形)
  38495. */
  38496. class HitArea extends laya.utils.HitArea {}
  38497. /**
  38498. * @private <code>HTMLChar</code> 是一个 HTML 字符类。
  38499. */
  38500. class HTMLChar extends laya.utils.HTMLChar {}
  38501. /**
  38502. * @author laya
  38503. */
  38504. class IStatRender extends laya.utils.IStatRender {}
  38505. /**
  38506. * <code>Log</code> 类用于在界面内显示日志记录信息。
  38507. * 注意:在加速器内不可使用
  38508. */
  38509. class Log extends laya.utils.Log {}
  38510. /**
  38511. * <code>Mouse</code> 类用于控制鼠标光标样式。
  38512. */
  38513. class Mouse extends laya.utils.Mouse {}
  38514. class PerfData extends laya.utils.PerfData {}
  38515. class PerfHUD extends laya.utils.PerfHUD {}
  38516. /**
  38517. * <p> <code>Pool</code> 是对象池类,用于对象的存储、重复使用。</p>
  38518. * <p>合理使用对象池,可以有效减少对象创建的开销,避免频繁的垃圾回收,从而优化游戏流畅度。</p>
  38519. */
  38520. class Pool extends laya.utils.Pool {}
  38521. /**
  38522. * @private 基于个数的对象缓存管理器
  38523. */
  38524. class PoolCache extends laya.utils.PoolCache {}
  38525. /**
  38526. * @private
  38527. */
  38528. class RunDriver extends laya.utils.RunDriver {}
  38529. /**
  38530. * @private 场景辅助类
  38531. */
  38532. class SceneUtils extends laya.utils.SceneUtils {}
  38533. /**
  38534. * @private 场景辅助类
  38535. */
  38536. class InitTool extends laya.utils.InitTool {}
  38537. /**
  38538. * <p> <code>Stat</code> 是一个性能统计面板,可以实时更新相关的性能参数。</p>
  38539. * <p>参与统计的性能参数如下(所有参数都是每大约1秒进行更新):<br/>
  38540. * FPS(Canvas)/FPS(WebGL):Canvas 模式或者 WebGL 模式下的帧频,也就是每秒显示的帧数,值越高、越稳定,感觉越流畅;<br/>
  38541. * Sprite:统计所有渲染节点(包括容器)数量,它的大小会影响引擎进行节点遍历、数据组织和渲染的效率。其值越小,游戏运行效率越高;<br/>
  38542. * DrawCall:此值是决定性能的重要指标,其值越小,游戏运行效率越高。Canvas模式下表示每大约1秒的图像绘制次数;WebGL模式下表示每大约1秒的渲染提交批次,每次准备数据并通知GPU渲染绘制的过程称为1次DrawCall,在每次DrawCall中除了在通知GPU的渲染上比较耗时之外,切换材质与shader也是非常耗时的操作;<br/>
  38543. * CurMem:Canvas模式下,表示内存占用大小,值越小越好,过高会导致游戏闪退;WebGL模式下,表示内存与显存的占用,值越小越好;<br/>
  38544. * Shader:是 WebGL 模式独有的性能指标,表示每大约1秒 Shader 提交次数,值越小越好;<br/>
  38545. * Canvas:由三个数值组成,只有设置 CacheAs 后才会有值,默认为0/0/0。从左到右数值的意义分别为:每帧重绘的画布数量 / 缓存类型为"normal"类型的画布数量 / 缓存类型为"bitmap"类型的画布数量。</p>
  38546. */
  38547. class Stat extends laya.utils.Stat {}
  38548. /**
  38549. * 显示Stat的结果。由于stat会引入很多的循环引用,所以把显示部分拆开
  38550. * @author laya
  38551. */
  38552. class StatUI extends laya.utils.StatUI {}
  38553. /**
  38554. * @private <code>StringKey</code> 类用于存取字符串对应的数字。
  38555. */
  38556. class StringKey extends laya.utils.StringKey {}
  38557. /**
  38558. * 整个缓动结束的时候会调度
  38559. * @eventType Event.COMPLETE
  38560. */
  38561. /**
  38562. * 当缓动到达标签时会调度。
  38563. * @eventType Event.LABEL
  38564. */
  38565. /**
  38566. * <code>TimeLine</code> 是一个用来创建时间轴动画的类。
  38567. */
  38568. class TimeLine extends laya.utils.TimeLine {}
  38569. /**
  38570. * <code>Timer</code> 是时钟管理类。它是一个单例,不要手动实例化此类,应该通过 Laya.timer 访问。
  38571. */
  38572. class Timer extends laya.utils.Timer {}
  38573. /**
  38574. * <code>Tween</code> 是一个缓动类。使用此类能够实现对目标对象属性的渐变。
  38575. */
  38576. class Tween extends laya.utils.Tween {}
  38577. /**
  38578. * <code>Utils</code> 是工具类。
  38579. */
  38580. class Utils extends laya.utils.Utils {}
  38581. /**
  38582. * @private TODO:
  38583. */
  38584. class VectorGraphManager extends laya.utils.VectorGraphManager {}
  38585. /**
  38586. * 封装弱引用WeakMap
  38587. * 如果支持WeakMap,则使用WeakMap,如果不支持,则用Object代替
  38588. * 注意:如果采用Object,为了防止内存泄漏,则采用定时清理缓存策略
  38589. */
  38590. class WeakObject extends laya.utils.WeakObject {}
  38591. /**
  38592. * @private
  38593. */
  38594. class WordText extends laya.utils.WordText {}
  38595. /**
  38596. * ...
  38597. * @author ...
  38598. */
  38599. class BufferState2D extends laya.webgl.BufferState2D {}
  38600. /**
  38601. * ...
  38602. * @author ...
  38603. */
  38604. class BufferStateBase extends laya.webgl.BufferStateBase {}
  38605. class BlendMode extends laya.webgl.canvas.BlendMode {}
  38606. class DrawStyle extends laya.webgl.canvas.DrawStyle {}
  38607. class Path extends laya.webgl.canvas.Path {}
  38608. class SaveBase extends laya.webgl.canvas.save.SaveBase {}
  38609. class SaveClipRect extends laya.webgl.canvas.save.SaveClipRect {}
  38610. class SaveMark extends laya.webgl.canvas.save.SaveMark {}
  38611. class SaveTransform extends laya.webgl.canvas.save.SaveTransform {}
  38612. class SaveTranslate extends laya.webgl.canvas.save.SaveTranslate {}
  38613. /**
  38614. * 对象 cacheas normal的时候,本质上只是想把submit缓存起来,以后直接执行
  38615. * 为了避免各种各样的麻烦,这里采用复制相应部分的submit的方法。执行环境还是在原来的context中
  38616. * 否则包括clip等都非常难以处理
  38617. */
  38618. class WebGLCacheAsNormalCanvas extends laya.webgl.canvas.WebGLCacheAsNormalCanvas {}
  38619. /**
  38620. * @private
  38621. */
  38622. class LayaGPU extends laya.webgl.LayaGPU {}
  38623. /**
  38624. * ...
  38625. * @author ...
  38626. */
  38627. class BaseShader extends laya.webgl.shader.BaseShader {}
  38628. class Shader2D extends laya.webgl.shader.d2.Shader2D {}
  38629. class Shader2X extends laya.webgl.shader.d2.Shader2X {}
  38630. class ShaderDefines2D extends laya.webgl.shader.d2.ShaderDefines2D {}
  38631. class SkinMeshBuffer extends laya.webgl.shader.d2.skinAnishader.SkinMeshBuffer {}
  38632. class SkinSV extends laya.webgl.shader.d2.skinAnishader.SkinSV {}
  38633. class PrimitiveSV extends laya.webgl.shader.d2.value.PrimitiveSV {}
  38634. class TextureSV extends laya.webgl.shader.d2.value.TextureSV {}
  38635. class Value2D extends laya.webgl.shader.d2.value.Value2D {}
  38636. class Shader extends laya.webgl.shader.Shader {}
  38637. class ShaderDefinesBase extends laya.webgl.shader.ShaderDefinesBase {}
  38638. class ShaderValue extends laya.webgl.shader.ShaderValue {}
  38639. class BasePoly extends laya.webgl.shapes.BasePoly {}
  38640. class Earcut extends laya.webgl.shapes.Earcut {}
  38641. class EarcutNode extends laya.webgl.shapes.EarcutNode {}
  38642. class Submit extends laya.webgl.submit.Submit {}
  38643. class SubmitBase extends laya.webgl.submit.SubmitBase {}
  38644. /**
  38645. * cache as normal 模式下的生成的canvas的渲染。
  38646. */
  38647. class SubmitCanvas extends laya.webgl.submit.SubmitCanvas {}
  38648. class SubmitCMD extends laya.webgl.submit.SubmitCMD {}
  38649. /**
  38650. * ...
  38651. * @author xie
  38652. */
  38653. class SubmitKey extends laya.webgl.submit.SubmitKey {}
  38654. class SubmitTarget extends laya.webgl.submit.SubmitTarget {}
  38655. class SubmitTexture extends laya.webgl.submit.SubmitTexture {}
  38656. /**
  38657. * 阿拉伯文的转码。把unicode的阿拉伯文字母编码转成他们的老的能描述不同写法的编码。
  38658. * 这个是从GitHub上 Javascript-Arabic-Reshaper 项目转来的
  38659. * https://github.com/louy/Javascript-Arabic-Reshaper/blob/master/src/index.js
  38660. */
  38661. /**
  38662. * Javascript Arabic Reshaper by Louy Alakkad
  38663. * https://github.com/louy/Javascript-Arabic-Reshaper
  38664. * Based on (http://git.io/vsnAd)
  38665. */
  38666. class ArabicReshaper extends laya.webgl.text.ArabicReshaper {}
  38667. class AtlasGrid extends laya.webgl.text.AtlasGrid {}
  38668. /**
  38669. * TODO如果占用内存较大,这个结构有很多成员可以临时计算
  38670. */
  38671. class CharRenderInfo extends laya.webgl.text.CharRenderInfo {}
  38672. class CharRender_Canvas extends laya.webgl.text.CharRender_Canvas {}
  38673. class CharRender_Native extends laya.webgl.text.CharRender_Native {}
  38674. /**
  38675. * ...
  38676. * @author laoxie
  38677. */
  38678. class CharSubmitCache extends laya.webgl.text.CharSubmitCache {}
  38679. class ICharRender extends laya.webgl.text.ICharRender {}
  38680. /**
  38681. * 文字贴图的大图集。
  38682. */
  38683. class TextAtlas extends laya.webgl.text.TextAtlas {}
  38684. class TextRender extends laya.webgl.text.TextRender {}
  38685. class TextTexture extends laya.webgl.text.TextTexture {}
  38686. class Buffer extends laya.webgl.utils.Buffer {}
  38687. class Buffer2D extends laya.webgl.utils.Buffer2D {}
  38688. class CONST3D2D extends laya.webgl.utils.CONST3D2D {}
  38689. class IndexBuffer2D extends laya.webgl.utils.IndexBuffer2D {}
  38690. class InlcudeFile extends laya.webgl.utils.InlcudeFile {}
  38691. class MatirxArray extends laya.webgl.utils.MatirxArray {}
  38692. /**
  38693. * Mesh2d只是保存数据。描述attribute用的。本身不具有渲染功能。
  38694. */
  38695. class Mesh2D extends laya.webgl.utils.Mesh2D {}
  38696. /**
  38697. * drawImage,fillRect等会用到的简单的mesh。每次添加必然是一个四边形。
  38698. */
  38699. class MeshParticle2D extends laya.webgl.utils.MeshParticle2D {}
  38700. /**
  38701. * drawImage,fillRect等会用到的简单的mesh。每次添加必然是一个四边形。
  38702. */
  38703. class MeshQuadTexture extends laya.webgl.utils.MeshQuadTexture {}
  38704. /**
  38705. * 与MeshQuadTexture基本相同。不过index不是固定的
  38706. */
  38707. class MeshTexture extends laya.webgl.utils.MeshTexture {}
  38708. /**
  38709. * 用来画矢量的mesh。顶点格式固定为 x,y,rgba
  38710. */
  38711. class MeshVG extends laya.webgl.utils.MeshVG {}
  38712. class RenderState2D extends laya.webgl.utils.RenderState2D {}
  38713. /**
  38714. * @private <code>ShaderCompile</code> 类用于实现Shader编译。
  38715. */
  38716. class ShaderCompile extends laya.webgl.utils.ShaderCompile {}
  38717. class ShaderNode extends laya.webgl.utils.ShaderNode {}
  38718. class VertexBuffer2D extends laya.webgl.utils.VertexBuffer2D {}
  38719. class VertexArrayObject extends laya.webgl.VertexArrayObject {}
  38720. /**
  38721. * @private
  38722. */
  38723. class WebGL extends laya.webgl.WebGL {}
  38724. /**
  38725. * @private
  38726. */
  38727. class WebGLContext extends laya.webgl.WebGLContext {}
  38728. }