LayaAir.d.ts 1.3 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187
  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. * 是否保留渲染缓冲区。
  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. /**
  42. * 是否允许GPUInstance动态合并,仅对3D有效。
  43. */
  44. static allowGPUInstanceDynamicBatch:boolean;
  45. static useRetinalCanvas:boolean;
  46. }
  47. /**
  48. * <code>Config3D</code> 类用于创建3D初始化配置。
  49. */
  50. declare class Config3D implements laya.d3.core.IClone {
  51. static get useCannonPhysics():boolean;
  52. static set useCannonPhysics(value:boolean);
  53. /**
  54. * 是否开启抗锯齿。
  55. */
  56. isAntialias:boolean;
  57. /**
  58. * 画布是否包含透明通道。
  59. */
  60. isAlpha:boolean;
  61. /**
  62. * 画布是否预乘。
  63. */
  64. premultipliedAlpha:boolean;
  65. /**
  66. * 画布是否开启模板缓冲。
  67. */
  68. isStencil:boolean;
  69. /**
  70. * 是否开启多光源,如果场景不需要多光源,关闭后可提升性能。
  71. */
  72. enableMultiLight:boolean;
  73. /**
  74. * 是否开启八叉树裁剪。
  75. */
  76. octreeCulling:boolean;
  77. /**
  78. * 八叉树初始化尺寸。
  79. */
  80. octreeInitialSize:number;
  81. /**
  82. * 八叉树初始化中心。
  83. */
  84. octreeInitialCenter:laya.d3.math.Vector3;
  85. /**
  86. * 八叉树最小尺寸。
  87. */
  88. octreeMinNodeSize:number;
  89. /**
  90. * 八叉树松散值。
  91. */
  92. octreeLooseness:number;
  93. /**
  94. * 是否开启视锥裁剪调试。
  95. * 如果开启八叉树裁剪,使用红色绘制高层次八叉树节点包围盒,使用蓝色绘制低层次八叉节点包围盒,精灵包围盒和八叉树节点包围盒颜色一致,但Alpha为非透明。如果视锥完全包含八叉树节点,八叉树节点包围盒和精灵包围盒变为蓝色,同样精灵包围盒的Alpha为非透明。
  96. * 如果不开启八叉树裁剪,使用绿色像素线绘制精灵包围盒。
  97. */
  98. debugFrustumCulling:boolean;
  99. /**
  100. * PBR材质渲染质量。
  101. */
  102. pbrRenderQuality:laya.d3.core.material.PBRRenderQuality;
  103. /**
  104. * 是否使用CANNONJS物理引擎
  105. */
  106. isUseCannonPhysicsEngine:boolean;
  107. /**
  108. * 默认物理功能初始化内存,单位为M。
  109. */
  110. get defaultPhysicsMemory():number;
  111. set defaultPhysicsMemory(value:number);
  112. /**
  113. * 最大光源数量。
  114. */
  115. get maxLightCount():number;
  116. set maxLightCount(value:number);
  117. /**
  118. * X、Y、Z轴的光照集群数量,Z值会影响Cluster接受区域光(点光、聚光)影响的数量,Math.floor(2048 / lightClusterCount.z - 1) * 4 为每个Cluster的最大平均接受区域光数量,如果每个Cluster所接受光源影响的平均数量大于该值,则较远的Cluster会忽略其中多余的光照影响。
  119. */
  120. get lightClusterCount():laya.d3.math.Vector3;
  121. set lightClusterCount(value:laya.d3.math.Vector3);
  122. /**
  123. * 创建一个 <code>Config3D</code> 实例。
  124. */
  125. constructor();
  126. /**
  127. * 克隆。
  128. * @param destObject 克隆源。
  129. */
  130. cloneTo(dest:any):void;
  131. /**
  132. * 克隆。
  133. * @return 克隆副本。
  134. */
  135. clone():any;
  136. }
  137. declare module laya.ani {
  138. /**
  139. * 开始播放时调度。
  140. * @eventType Event.PLAYED
  141. */
  142. /**
  143. * 暂停时调度。
  144. * @eventType Event.PAUSED
  145. */
  146. /**
  147. * 完成一次循环时调度。
  148. * @eventType Event.COMPLETE
  149. */
  150. /**
  151. * 停止时调度。
  152. * @eventType Event.STOPPED
  153. */
  154. /**
  155. * <code>AnimationPlayer</code> 类用于动画播放器。
  156. */
  157. class AnimationPlayer extends laya.events.EventDispatcher implements laya.resource.IDestroy {
  158. /**
  159. * 是否缓存
  160. */
  161. isCache:boolean;
  162. /**
  163. * 播放速率
  164. */
  165. playbackRate:number;
  166. /**
  167. * 停止时是否归零
  168. */
  169. returnToZeroStopped:boolean;
  170. /**
  171. * 获取动画数据模板
  172. * @param value 动画数据模板
  173. */
  174. get templet():laya.ani.AnimationTemplet;
  175. /**
  176. * 设置动画数据模板,注意:修改此值会有计算开销。
  177. * @param value 动画数据模板
  178. */
  179. set templet(value:laya.ani.AnimationTemplet);
  180. /**
  181. * 动画播放的起始时间位置。
  182. * @return 起始时间位置。
  183. */
  184. get playStart():number;
  185. /**
  186. * 动画播放的结束时间位置。
  187. * @return 结束时间位置。
  188. */
  189. get playEnd():number;
  190. /**
  191. * 获取动画播放一次的总时间
  192. * @return 动画播放一次的总时间
  193. */
  194. get playDuration():number;
  195. /**
  196. * 获取动画播放的总总时间
  197. * @return 动画播放的总时间
  198. */
  199. get overallDuration():number;
  200. /**
  201. * 获取当前动画索引
  202. * @return value 当前动画索引
  203. */
  204. get currentAnimationClipIndex():number;
  205. /**
  206. * 获取当前帧数
  207. * @return 当前帧数
  208. */
  209. get currentKeyframeIndex():number;
  210. /**
  211. * 获取当前精确时间,不包括重播时间
  212. * @return value 当前时间
  213. */
  214. get currentPlayTime():number;
  215. /**
  216. * 获取当前帧时间,不包括重播时间
  217. * @return value 当前时间
  218. */
  219. get currentFrameTime():number;
  220. /**
  221. * 获取缓存播放速率。*
  222. * @return 缓存播放速率。
  223. */
  224. get cachePlayRate():number;
  225. /**
  226. * 设置缓存播放速率,默认值为1.0,注意:修改此值会有计算开销。*
  227. * @return value 缓存播放速率。
  228. */
  229. set cachePlayRate(value:number);
  230. /**
  231. * 获取默认帧率*
  232. * @return value 默认帧率
  233. */
  234. get cacheFrameRate():number;
  235. /**
  236. * 设置默认帧率,每秒60帧,注意:修改此值会有计算开销。*
  237. * @return value 缓存帧率
  238. */
  239. set cacheFrameRate(value:number);
  240. /**
  241. * 设置当前播放位置
  242. * @param value 当前时间
  243. */
  244. set currentTime(value:number);
  245. /**
  246. * 获取当前是否暂停
  247. * @return 是否暂停
  248. */
  249. get paused():boolean;
  250. /**
  251. * 设置是否暂停
  252. * @param value 是否暂停
  253. */
  254. set paused(value:boolean);
  255. /**
  256. * 获取缓存帧率间隔时间
  257. * @return 缓存帧率间隔时间
  258. */
  259. get cacheFrameRateInterval():number;
  260. /**
  261. * 获取当前播放状态
  262. * @return 当前播放状态
  263. */
  264. get state():number;
  265. /**
  266. * 获取是否已销毁。
  267. * @return 是否已销毁。
  268. */
  269. get destroyed():boolean;
  270. /**
  271. * 创建一个 <code>AnimationPlayer</code> 实例。
  272. */
  273. constructor();
  274. /**
  275. * @private
  276. */
  277. private _setPlayParams:any;
  278. /**
  279. * 动画停止了对应的参数。目前都是设置时间为最后
  280. * @private
  281. */
  282. private _setPlayParamsWhenStop:any;
  283. /**
  284. * 播放动画。
  285. * @param index 动画索引。
  286. * @param playbackRate 播放速率。
  287. * @param duration 播放时长(0为1次,Number.MAX_VALUE为循环播放)。
  288. * @param playStart 播放的起始时间位置。
  289. * @param playEnd 播放的结束时间位置。(0为动画一次循环的最长结束时间位置)。
  290. */
  291. play(index?:number,playbackRate?:number,overallDuration?:number,playStart?:number,playEnd?:number):void;
  292. /**
  293. * 播放动画。
  294. * @param index 动画索引。
  295. * @param playbackRate 播放速率。
  296. * @param duration 播放时长(0为1次,Number.MAX_VALUE为循环播放)。
  297. * @param playStartFrame 播放的原始起始帧率位置。
  298. * @param playEndFrame 播放的原始结束帧率位置。(0为动画一次循环的最长结束时间位置)。
  299. */
  300. playByFrame(index?:number,playbackRate?:number,overallDuration?:number,playStartFrame?:number,playEndFrame?:number,fpsIn3DBuilder?:number):void;
  301. /**
  302. * 停止播放当前动画
  303. * 如果不是立即停止就等待动画播放完成后再停止
  304. * @param immediate 是否立即停止
  305. */
  306. stop(immediate?:boolean):void;
  307. /**
  308. * @private
  309. */
  310. destroy():void;
  311. }
  312. }
  313. declare module laya.ani {
  314. /**
  315. * <code>AnimationTemplet</code> 类用于动画模板资源。
  316. */
  317. class AnimationTemplet extends laya.resource.Resource {
  318. static interpolation:any[];
  319. /**
  320. * @private
  321. */
  322. private static _LinearInterpolation_0:any;
  323. /**
  324. * @private
  325. */
  326. private static _QuaternionInterpolation_1:any;
  327. /**
  328. * @private
  329. */
  330. private static _AngleInterpolation_2:any;
  331. /**
  332. * @private
  333. */
  334. private static _RadiansInterpolation_3:any;
  335. /**
  336. * @private
  337. */
  338. private static _Matrix4x4Interpolation_4:any;
  339. /**
  340. * @private
  341. */
  342. private static _NoInterpolation_5:any;
  343. /**
  344. * @private
  345. */
  346. private static _BezierInterpolation_6:any;
  347. /**
  348. * @private
  349. */
  350. private static _BezierInterpolation_7:any;
  351. /**
  352. * @private
  353. */
  354. protected unfixedCurrentFrameIndexes:Uint32Array;
  355. /**
  356. * @private
  357. */
  358. protected unfixedCurrentTimes:Float32Array;
  359. /**
  360. * @private
  361. */
  362. protected unfixedKeyframes:laya.ani.KeyFramesContent[];
  363. /**
  364. * @private
  365. */
  366. protected unfixedLastAniIndex:number;
  367. /**
  368. * @private
  369. */
  370. private _boneCurKeyFrm:any;
  371. constructor();
  372. /**
  373. * @private
  374. */
  375. parse(data:ArrayBuffer):void;
  376. getAnimationCount():number;
  377. getAnimation(aniIndex:number):any;
  378. getAniDuration(aniIndex:number):number;
  379. getNodes(aniIndex:number):any;
  380. getNodeIndexWithName(aniIndex:number,name:string):number;
  381. getNodeCount(aniIndex:number):number;
  382. getTotalkeyframesLength(aniIndex:number):number;
  383. getPublicExtData():ArrayBuffer;
  384. getAnimationDataWithCache(key:any,cacheDatas:any,aniIndex:number,frameIndex:number):Float32Array;
  385. setAnimationDataWithCache(key:any,cacheDatas:any[],aniIndex:number,frameIndex:number,data:any):void;
  386. /**
  387. * 计算当前时间应该对应关键帧的哪一帧
  388. * @param nodeframes 当前骨骼的关键帧数据
  389. * @param nodeid 骨骼id,因为要使用和更新 _boneCurKeyFrm
  390. * @param tm
  391. * @return 问题
  392. 最后一帧有问题,例如倒数第二帧时间是0.033ms,则后两帧非常靠近,当实际给最后一帧的时候,根据帧数计算出的时间实际上落在倒数第二帧
  393. 使用与AnimationPlayer一致的累积时间就行
  394. */
  395. getNodeKeyFrame(nodeframes:laya.ani.KeyFramesContent[],nodeid:number,tm:number):number;
  396. /**
  397. * @param aniIndex
  398. * @param originalData
  399. * @param nodesFrameIndices
  400. * @param frameIndex
  401. * @param playCurTime
  402. */
  403. getOriginalData(aniIndex:number,originalData:Float32Array,nodesFrameIndices:any[],frameIndex:number,playCurTime:number):void;
  404. getNodesCurrentFrameIndex(aniIndex:number,playCurTime:number):Uint32Array;
  405. getOriginalDataUnfixedRate(aniIndex:number,originalData:Float32Array,playCurTime:number):void;
  406. }
  407. }
  408. declare module laya.ani.bone {
  409. /**
  410. * @private
  411. */
  412. class Bone {
  413. static ShowBones:any;
  414. name:string;
  415. root:Bone;
  416. parentBone:Bone;
  417. length:number;
  418. transform:laya.ani.bone.Transform;
  419. resultTransform:laya.ani.bone.Transform;
  420. resultMatrix:laya.maths.Matrix;
  421. inheritScale:boolean;
  422. inheritRotation:boolean;
  423. rotation:number;
  424. resultRotation:number;
  425. d:number;
  426. constructor();
  427. setTempMatrix(matrix:laya.maths.Matrix):void;
  428. update(pMatrix?:laya.maths.Matrix|null):void;
  429. updateChild():void;
  430. setRotation(rd:number):void;
  431. updateDraw(x:number,y:number):void;
  432. addChild(bone:Bone):void;
  433. findBone(boneName:string):Bone|null;
  434. localToWorld(local:number[]):void;
  435. }
  436. }
  437. declare module laya.ani.bone {
  438. class BoneSlot {
  439. /**
  440. * 插槽名称
  441. */
  442. name:string;
  443. /**
  444. * 插槽绑定的骨骼名称
  445. */
  446. parent:string;
  447. /**
  448. * 插糟显示数据数据的名称
  449. */
  450. attachmentName:string;
  451. /**
  452. * 原始数据的索引
  453. */
  454. srcDisplayIndex:number;
  455. /**
  456. * 判断对象是否是原对象
  457. */
  458. type:string;
  459. /**
  460. * 模板的指针
  461. */
  462. templet:laya.ani.bone.Templet;
  463. /**
  464. * 当前插槽对应的数据
  465. */
  466. currSlotData:laya.ani.bone.SlotData;
  467. /**
  468. * 当前插槽显示的纹理
  469. */
  470. currTexture:laya.resource.Texture|null;
  471. /**
  472. * 显示对象对应的数据
  473. */
  474. currDisplayData:laya.ani.bone.SkinSlotDisplayData|null;
  475. /**
  476. * 显示皮肤的索引
  477. */
  478. displayIndex:number;
  479. /**
  480. * @private
  481. */
  482. originalIndex:number;
  483. /**
  484. * @private 变形动画数据
  485. */
  486. deformData:any[];
  487. /**
  488. * 设置要显示的插槽数据
  489. * @param slotData
  490. * @param disIndex
  491. * @param freshIndex 是否重置纹理
  492. */
  493. showSlotData(slotData:laya.ani.bone.SlotData,freshIndex?:boolean):void;
  494. /**
  495. * 通过名字显示指定对象
  496. * @param name
  497. */
  498. showDisplayByName(name:string):void;
  499. /**
  500. * 替换贴图名
  501. * @param tarName 要替换的贴图名
  502. * @param newName 替换后的贴图名
  503. */
  504. replaceDisplayByName(tarName:string,newName:string):void;
  505. /**
  506. * 替换贴图索引
  507. * @param tarIndex 要替换的索引
  508. * @param newIndex 替换后的索引
  509. */
  510. replaceDisplayByIndex(tarIndex:number,newIndex:number):void;
  511. /**
  512. * 指定显示对象
  513. * @param index
  514. */
  515. showDisplayByIndex(index:number):void;
  516. /**
  517. * 替换皮肤
  518. * @param _texture
  519. */
  520. replaceSkin(_texture:laya.resource.Texture):void;
  521. /**
  522. * 保存父矩阵的索引
  523. * @param parentMatrix
  524. */
  525. setParentMatrix(parentMatrix:laya.maths.Matrix):void;
  526. private _mVerticleArr:any;
  527. private static _tempMatrix:any;
  528. static createSkinMesh():any;
  529. private static isSameArr:any;
  530. private getSaveVerticle:any;
  531. static isSameMatrix(mtA:laya.maths.Matrix,mtB:laya.maths.Matrix):boolean;
  532. private _preGraphicMatrix:any;
  533. private static useSameMatrixAndVerticle:any;
  534. private getSaveMatrix:any;
  535. /**
  536. * 把纹理画到Graphics上
  537. * @param graphics
  538. * @param noUseSave 不使用共享的矩阵对象 _tempResultMatrix,只有实时计算的时候才设置为true
  539. */
  540. draw(graphics:laya.ani.GraphicsAni,boneMatrixArray:any[],noUseSave?:boolean,alpha?:number):void;
  541. /**
  542. * 显示蒙皮动画
  543. * @param boneMatrixArray 当前帧的骨骼矩阵
  544. */
  545. private skinMesh:any;
  546. /**
  547. * 画骨骼的起始点,方便调试
  548. * @param graphics
  549. */
  550. drawBonePoint(graphics:laya.display.Graphics):void;
  551. /**
  552. * 得到显示对象的矩阵
  553. * @return
  554. */
  555. private getDisplayMatrix:any;
  556. /**
  557. * 得到插糟的矩阵
  558. * @return
  559. */
  560. getMatrix():laya.maths.Matrix;
  561. /**
  562. * 用原始数据拷贝出一个
  563. * @return
  564. */
  565. copy():BoneSlot;
  566. }
  567. }
  568. declare module laya.ani.bone.canvasmesh {
  569. /**
  570. */
  571. class MeshData {
  572. /**
  573. * 纹理
  574. */
  575. texture:laya.resource.Texture;
  576. /**
  577. * uv数据
  578. */
  579. uvs:Float32Array;
  580. /**
  581. * 顶点数据
  582. */
  583. vertices:Float32Array;
  584. /**
  585. * 顶点索引
  586. */
  587. indexes:Uint16Array;
  588. /**
  589. * uv变换矩阵
  590. */
  591. uvTransform:laya.maths.Matrix;
  592. /**
  593. * 是否有uv变化矩阵
  594. */
  595. useUvTransform:boolean;
  596. /**
  597. * 扩展像素,用来去除黑边
  598. */
  599. canvasPadding:number;
  600. /**
  601. * 计算mesh的Bounds
  602. * @return
  603. */
  604. getBounds():laya.maths.Rectangle;
  605. }
  606. }
  607. declare module laya.ani.bone.canvasmesh {
  608. class SkinMeshForGraphic extends laya.ani.bone.canvasmesh.MeshData {
  609. constructor();
  610. /**
  611. * 矩阵
  612. */
  613. transform:laya.maths.Matrix|null;
  614. init2(texture:laya.resource.Texture,ps:any[],verticles:any[],uvs:any[]):void;
  615. }
  616. }
  617. declare module laya.ani.bone {
  618. class EventData {
  619. name:string;
  620. intValue:number;
  621. floatValue:number;
  622. stringValue:string;
  623. audioValue:string;
  624. time:number;
  625. constructor();
  626. }
  627. }
  628. declare module laya.ani.bone {
  629. /**
  630. * 动画开始播放调度
  631. * @eventType Event.PLAYED
  632. */
  633. /**
  634. * 动画停止播放调度
  635. * @eventType Event.STOPPED
  636. */
  637. /**
  638. * 动画暂停播放调度
  639. * @eventType Event.PAUSED
  640. */
  641. /**
  642. * 自定义事件。
  643. * @eventType Event.LABEL
  644. */
  645. /**
  646. * 骨骼动画由<code>Templet</code>,<code>AnimationPlayer</code>,<code>Skeleton</code>三部分组成。
  647. */
  648. class Skeleton extends laya.display.Sprite {
  649. /**
  650. * 在canvas模式是否使用简化版的mesh绘制,简化版的mesh将不进行三角形绘制,而改为矩形绘制,能极大提高性能,但是可能某些mesh动画效果会不太正常
  651. */
  652. static useSimpleMeshInCanvas:boolean;
  653. /**
  654. * 创建一个Skeleton对象
  655. * @param templet 骨骼动画模板
  656. * @param aniMode 动画模式,0不支持换装,1、2支持换装
  657. */
  658. constructor(templet?:laya.ani.bone.Templet,aniMode?:number);
  659. /**
  660. * 初始化动画
  661. * @param templet 模板
  662. * @param aniMode 动画模式
  663. <table>
  664. <tr><th>模式</th><th>描述</th></tr>
  665. <tr>
  666. <td>0</td> <td>使用模板缓冲的数据,模板缓冲的数据,不允许修改(内存开销小,计算开销小,不支持换装)</td>
  667. </tr>
  668. <tr>
  669. <td>1</td> <td>使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装)</td>
  670. </tr>
  671. <tr>
  672. <td>2</td> <td>使用动态方式,去实时去画(内存开销小,计算开销大,支持换装,不建议使用)</td>
  673. </tr>
  674. </table>
  675. */
  676. init(templet:laya.ani.bone.Templet,aniMode?:number):void;
  677. /**
  678. * 得到资源的URL
  679. */
  680. get url():string;
  681. /**
  682. * 设置动画路径
  683. */
  684. set url(path:string);
  685. /**
  686. * 通过加载直接创建动画
  687. * @param path 要加载的动画文件路径
  688. * @param complete 加载完成的回调函数
  689. * @param aniMode 与<code>Skeleton.init</code>的<code>aniMode</code>作用一致
  690. */
  691. load(path:string,complete?:laya.utils.Handler,aniMode?:number):void;
  692. private _checkIsAllParsed:any;
  693. /**
  694. * *****************************************定义接口************************************************
  695. */
  696. /**
  697. * 得到当前动画的数量
  698. * @return 当前动画的数量
  699. */
  700. getAnimNum():number;
  701. /**
  702. * 得到指定动画的名字
  703. * @param index 动画的索引
  704. */
  705. getAniNameByIndex(index:number):string;
  706. /**
  707. * 通过名字得到插槽的引用
  708. * @param name 动画的名字
  709. * @return 插槽的引用
  710. */
  711. getSlotByName(name:string):laya.ani.bone.BoneSlot;
  712. /**
  713. * 通过名字显示一套皮肤
  714. * @param name 皮肤的名字
  715. * @param freshSlotIndex 是否将插槽纹理重置到初始化状态
  716. */
  717. showSkinByName(name:string,freshSlotIndex?:boolean):void;
  718. /**
  719. * 通过索引显示一套皮肤
  720. * @param skinIndex 皮肤索引
  721. * @param freshSlotIndex 是否将插槽纹理重置到初始化状态
  722. */
  723. showSkinByIndex(skinIndex:number,freshSlotIndex?:boolean):void;
  724. /**
  725. * 设置某插槽的皮肤
  726. * @param slotName 插槽名称
  727. * @param index 插糟皮肤的索引
  728. */
  729. showSlotSkinByIndex(slotName:string,index:number):void;
  730. /**
  731. * 设置某插槽的皮肤
  732. * @param slotName 插槽名称
  733. * @param name 皮肤名称
  734. */
  735. showSlotSkinByName(slotName:string,name:string):void;
  736. /**
  737. * 替换插槽贴图名
  738. * @param slotName 插槽名称
  739. * @param oldName 要替换的贴图名
  740. * @param newName 替换后的贴图名
  741. */
  742. replaceSlotSkinName(slotName:string,oldName:string,newName:string):void;
  743. /**
  744. * 替换插槽的贴图索引
  745. * @param slotName 插槽名称
  746. * @param oldIndex 要替换的索引
  747. * @param newIndex 替换后的索引
  748. */
  749. replaceSlotSkinByIndex(slotName:string,oldIndex:number,newIndex:number):void;
  750. /**
  751. * 设置自定义皮肤
  752. * @param name 插糟的名字
  753. * @param texture 自定义的纹理
  754. */
  755. setSlotSkin(slotName:string,texture:laya.resource.Texture):void;
  756. /**
  757. * 播放动画
  758. * @param nameOrIndex 动画名字或者索引
  759. * @param loop 是否循环播放
  760. * @param force false,如果要播的动画跟上一个相同就不生效,true,强制生效
  761. * @param start 起始时间
  762. * @param end 结束时间
  763. * @param freshSkin 是否刷新皮肤数据
  764. * @param playAudio 是否播放音频
  765. */
  766. play(nameOrIndex:any,loop:boolean,force?:boolean,start?:number,end?:number,freshSkin?:boolean,playAudio?:boolean):void;
  767. /**
  768. * 停止动画
  769. */
  770. stop():void;
  771. /**
  772. * 设置动画播放速率
  773. * @param value 1为标准速率
  774. */
  775. playbackRate(value:number):void;
  776. /**
  777. * 暂停动画的播放
  778. */
  779. paused():void;
  780. /**
  781. * 恢复动画的播放
  782. */
  783. resume():void;
  784. /**
  785. * 销毁当前动画
  786. * @override
  787. */
  788. destroy(destroyChild?:boolean):void;
  789. /**
  790. * @private 得到帧索引
  791. */
  792. get index():number;
  793. /**
  794. * @private 设置帧索引
  795. */
  796. set index(value:number);
  797. /**
  798. * 得到总帧数据
  799. */
  800. get total():number;
  801. /**
  802. * 得到播放器的引用
  803. */
  804. get player():laya.ani.AnimationPlayer;
  805. /**
  806. * 得到动画模板的引用
  807. * @return templet.
  808. */
  809. get templet():laya.ani.bone.Templet;
  810. }
  811. }
  812. declare module laya.ani.bone {
  813. class SkinSlotDisplayData {
  814. name:string;
  815. attachmentName:string;
  816. type:number;
  817. transform:laya.ani.bone.Transform;
  818. width:number;
  819. height:number;
  820. texture:laya.resource.Texture;
  821. bones:any[];
  822. uvs:any[];
  823. weights:any[];
  824. triangles:any[];
  825. vertices:any[];
  826. lengths:any[];
  827. verLen:number;
  828. createTexture(currTexture:laya.resource.Texture):laya.resource.Texture;
  829. destory():void;
  830. }
  831. }
  832. declare module laya.ani.bone {
  833. class SlotData {
  834. name:string;
  835. displayArr:any[];
  836. getDisplayByName(name:string):number;
  837. }
  838. }
  839. declare module laya.ani.bone {
  840. /**
  841. * 数据解析完成后的调度。
  842. * @eventType Event.COMPLETE
  843. */
  844. /**
  845. * 数据解析错误后的调度。
  846. * @eventType Event.ERROR
  847. */
  848. /**
  849. * 动画模板类
  850. */
  851. class Templet extends laya.ani.AnimationTemplet {
  852. /**
  853. * 存放原始骨骼信息
  854. */
  855. srcBoneMatrixArr:any[];
  856. /**
  857. * IK数据
  858. */
  859. ikArr:any[];
  860. /**
  861. * transform数据
  862. */
  863. tfArr:any[];
  864. /**
  865. * path数据
  866. */
  867. pathArr:any[];
  868. /**
  869. * 存放插槽数据的字典
  870. */
  871. boneSlotDic:any;
  872. /**
  873. * 绑定插槽数据的字典
  874. */
  875. bindBoneBoneSlotDic:any;
  876. /**
  877. * 存放插糟数据的数组
  878. */
  879. boneSlotArray:any[];
  880. /**
  881. * 皮肤数据
  882. */
  883. skinDataArray:any[];
  884. /**
  885. * 皮肤的字典数据
  886. */
  887. skinDic:any;
  888. /**
  889. * 存放纹理数据
  890. */
  891. subTextureDic:any;
  892. /**
  893. * 是否解析失败
  894. */
  895. isParseFail:boolean;
  896. /**
  897. * 反转矩阵,有些骨骼动画要反转才能显示
  898. */
  899. yReverseMatrix:laya.maths.Matrix;
  900. /**
  901. * 渲染顺序动画数据
  902. */
  903. drawOrderAniArr:any[];
  904. /**
  905. * 事件动画数据
  906. */
  907. eventAniArr:any[];
  908. /**
  909. * @private 索引对应的名称
  910. */
  911. attachmentNames:any[];
  912. /**
  913. * 顶点动画数据
  914. */
  915. deformAniArr:any[];
  916. /**
  917. * 实际显示对象列表,用于销毁用
  918. */
  919. skinSlotDisplayDataArr:laya.ani.bone.SkinSlotDisplayData[];
  920. isParserComplete:boolean;
  921. aniSectionDic:any;
  922. /**
  923. * @private
  924. */
  925. tMatrixDataLen:number;
  926. mRootBone:laya.ani.bone.Bone;
  927. mBoneArr:laya.ani.bone.Bone[];
  928. loadAni(url:string):void;
  929. private onComplete:any;
  930. /**
  931. * 解析骨骼动画数据
  932. * @param texture 骨骼动画用到的纹理
  933. * @param skeletonData 骨骼动画信息及纹理分块信息
  934. * @param playbackRate 缓冲的帧率数据(会根据帧率去分帧)
  935. */
  936. parseData(texture:laya.resource.Texture,skeletonData:ArrayBuffer,playbackRate?:number):void;
  937. /**
  938. * 创建动画
  939. * 0,使用模板缓冲的数据,模板缓冲的数据,不允许修改 (内存开销小,计算开销小,不支持换装)
  940. * 1,使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装)
  941. * 2,使用动态方式,去实时去画 (内存开销小,计算开销大,支持换装,不建议使用)
  942. * @param aniMode 0 动画模式,0:不支持换装,1,2支持换装
  943. * @return
  944. */
  945. buildArmature(aniMode?:number):laya.ani.bone.Skeleton;
  946. /**
  947. * @private 解析动画
  948. * @param data 解析的二进制数据
  949. * @param playbackRate 帧率
  950. * @override
  951. */
  952. parse(data:ArrayBuffer):void;
  953. /**
  954. * 得到指定的纹理
  955. * @param name 纹理的名字
  956. * @return
  957. */
  958. getTexture(name:string):laya.resource.Texture;
  959. /**
  960. * @private 显示指定的皮肤
  961. * @param boneSlotDic 插糟字典的引用
  962. * @param skinIndex 皮肤的索引
  963. * @param freshDisplayIndex 是否重置插槽纹理
  964. */
  965. showSkinByIndex(boneSlotDic:any,skinIndex:number,freshDisplayIndex?:boolean):boolean;
  966. /**
  967. * 通过皮肤名字得到皮肤索引
  968. * @param skinName 皮肤名称
  969. * @return
  970. */
  971. getSkinIndexByName(skinName:string):number;
  972. /**
  973. * @private 得到缓冲数据
  974. * @param aniIndex 动画索引
  975. * @param frameIndex 帧索引
  976. * @return
  977. */
  978. getGrahicsDataWithCache(aniIndex:number,frameIndex:number):laya.display.Graphics;
  979. /**
  980. * @private 保存缓冲grahpics
  981. * @param aniIndex 动画索引
  982. * @param frameIndex 帧索引
  983. * @param graphics 要保存的数据
  984. */
  985. setGrahicsDataWithCache(aniIndex:number,frameIndex:number,graphics:laya.display.Graphics):void;
  986. deleteAniData(aniIndex:number):void;
  987. /**
  988. * 释放纹理
  989. * @override
  990. */
  991. destroy():void;
  992. /**
  993. * *********************************下面为一些儿访问接口****************************************
  994. */
  995. /**
  996. * 通过索引得动画名称
  997. * @param index
  998. * @return
  999. */
  1000. getAniNameByIndex(index:number):string;
  1001. get rate():number;
  1002. set rate(v:number);
  1003. }
  1004. }
  1005. declare module laya.ani.bone {
  1006. class Transform {
  1007. skX:number;
  1008. skY:number;
  1009. scX:number;
  1010. scY:number;
  1011. x:number;
  1012. y:number;
  1013. skewX:number;
  1014. skewY:number;
  1015. private mMatrix:any;
  1016. initData(data:any):void;
  1017. getMatrix():laya.maths.Matrix;
  1018. skew(m:laya.maths.Matrix,x:number,y:number):laya.maths.Matrix;
  1019. }
  1020. }
  1021. declare module laya.ani {
  1022. class GraphicsAni extends laya.display.Graphics {
  1023. /**
  1024. * @private 画自定义蒙皮动画
  1025. * @param skin
  1026. */
  1027. drawSkin(skinA:laya.ani.bone.canvasmesh.SkinMeshForGraphic,alpha:number):void;
  1028. private static _caches:any;
  1029. static create():GraphicsAni;
  1030. static recycle(graphics:GraphicsAni):void;
  1031. }
  1032. }
  1033. declare module laya.ani {
  1034. class KeyFramesContent {
  1035. startTime:number;
  1036. duration:number;
  1037. interpolationData:any[];
  1038. data:Float32Array;
  1039. dData:Float32Array;
  1040. nextData:Float32Array;
  1041. }
  1042. }
  1043. declare module laya.ani.swf {
  1044. /**
  1045. * 动画播放完毕后调度。
  1046. * @eventType Event.COMPLETE
  1047. */
  1048. /**
  1049. * 播放到某标签后调度。
  1050. * @eventType Event.LABEL
  1051. */
  1052. /**
  1053. * 加载完成后调度。
  1054. * @eventType Event.LOADED
  1055. */
  1056. /**
  1057. * 进入帧后调度。
  1058. * @eventType Event.FRAME
  1059. */
  1060. /**
  1061. * <p> <code>MovieClip</code> 用于播放经过工具处理后的 swf 动画。</p>
  1062. */
  1063. class MovieClip extends laya.display.Sprite {
  1064. /**
  1065. * 资源根目录。
  1066. */
  1067. basePath:string;
  1068. /**
  1069. * 播放间隔(单位:毫秒)。
  1070. */
  1071. interval:number;
  1072. /**
  1073. * 是否循环播放
  1074. */
  1075. loop:boolean;
  1076. /**
  1077. * 创建一个 <code>MovieClip</code> 实例。
  1078. * @param parentMovieClip 父MovieClip,自己创建时不需要传该参数
  1079. */
  1080. constructor(parentMovieClip?:MovieClip);
  1081. /**
  1082. * <p>销毁此对象。以及销毁引用的Texture</p>
  1083. * @param destroyChild 是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
  1084. * @override
  1085. */
  1086. destroy(destroyChild?:boolean):void;
  1087. /**
  1088. * @private 更新时间轴
  1089. */
  1090. updates():void;
  1091. /**
  1092. * 当前播放索引。
  1093. */
  1094. get index():number;
  1095. set index(value:number);
  1096. /**
  1097. * 增加一个标签到index帧上,播放到此index后会派发label事件
  1098. * @param label 标签名称
  1099. * @param index 索引位置
  1100. */
  1101. addLabel(label:string,index:number):void;
  1102. /**
  1103. * 删除某个标签
  1104. * @param label 标签名字,如果label为空,则删除所有Label
  1105. */
  1106. removeLabel(label:string):void;
  1107. /**
  1108. * 帧总数。
  1109. */
  1110. get count():number;
  1111. /**
  1112. * 是否在播放中
  1113. */
  1114. get playing():boolean;
  1115. /**
  1116. * 停止播放动画。
  1117. */
  1118. stop():void;
  1119. /**
  1120. * 跳到某帧并停止播放动画。
  1121. * @param frame 要跳到的帧
  1122. */
  1123. gotoAndStop(index:number):void;
  1124. /**
  1125. * 播放动画。
  1126. * @param index 帧索引。
  1127. */
  1128. play(index?:number,loop?:boolean):void;
  1129. /**
  1130. * 资源地址。
  1131. */
  1132. set url(path:string);
  1133. /**
  1134. * 加载资源。
  1135. * @param url swf 资源地址。
  1136. * @param atlas 是否使用图集资源
  1137. * @param atlasPath 图集路径,默认使用与swf同名的图集
  1138. */
  1139. load(url:string,atlas?:boolean,atlasPath?:string):void;
  1140. /**
  1141. * 从开始索引播放到结束索引,结束之后出发complete回调
  1142. * @param start 开始索引
  1143. * @param end 结束索引
  1144. * @param complete 结束回调
  1145. */
  1146. playTo(start:number,end:number,complete?:laya.utils.Handler):void;
  1147. }
  1148. }
  1149. declare module laya.components {
  1150. /**
  1151. * <code>CommonScript</code> 类用于创建公共脚本类。
  1152. */
  1153. class CommonScript extends laya.components.Component {
  1154. /**
  1155. * @inheritDoc
  1156. * @override
  1157. */
  1158. get isSingleton():boolean;
  1159. constructor();
  1160. /**
  1161. * 创建后只执行一次
  1162. * 此方法为虚方法,使用时重写覆盖即可
  1163. */
  1164. onAwake():void;
  1165. /**
  1166. * 每次启动后执行
  1167. * 此方法为虚方法,使用时重写覆盖即可
  1168. */
  1169. onEnable():void;
  1170. /**
  1171. * 第一次执行update之前执行,只会执行一次
  1172. * 此方法为虚方法,使用时重写覆盖即可
  1173. */
  1174. onStart():void;
  1175. /**
  1176. * 每帧更新时执行
  1177. * 此方法为虚方法,使用时重写覆盖即可
  1178. */
  1179. onUpdate():void;
  1180. /**
  1181. * 每帧更新时执行,在update之后执行
  1182. * 此方法为虚方法,使用时重写覆盖即可
  1183. */
  1184. onLateUpdate():void;
  1185. /**
  1186. * 禁用时执行
  1187. * 此方法为虚方法,使用时重写覆盖即可
  1188. */
  1189. onDisable():void;
  1190. /**
  1191. * 销毁时执行
  1192. * 此方法为虚方法,使用时重写覆盖即可
  1193. */
  1194. onDestroy():void;
  1195. }
  1196. }
  1197. declare module laya.components {
  1198. /**
  1199. * <code>Component</code> 类用于创建组件的基类。
  1200. */
  1201. class Component implements laya.resource.ISingletonElement,laya.resource.IDestroy {
  1202. /**
  1203. * [只读]获取所属Node节点。
  1204. * @readonly
  1205. */
  1206. owner:laya.display.Node;
  1207. /**
  1208. * 创建一个新的 <code>Component</code> 实例。
  1209. */
  1210. constructor();
  1211. /**
  1212. * 唯一标识ID。
  1213. */
  1214. get id():number;
  1215. /**
  1216. * 是否启用组件。
  1217. */
  1218. get enabled():boolean;
  1219. set enabled(value:boolean);
  1220. /**
  1221. * 是否为单实例组件。
  1222. */
  1223. get isSingleton():boolean;
  1224. /**
  1225. * 是否已经销毁 。
  1226. */
  1227. get destroyed():boolean;
  1228. /**
  1229. * [实现IListPool接口]
  1230. */
  1231. _getIndexInList():number;
  1232. /**
  1233. * [实现IListPool接口]
  1234. */
  1235. _setIndexInList(index:number):void;
  1236. /**
  1237. * 重置组件参数到默认值,如果实现了这个函数,则组件会被重置并且自动回收到对象池,方便下次复用
  1238. * 如果没有重置,则不进行回收复用
  1239. * 此方法为虚方法,使用时重写覆盖即可
  1240. */
  1241. onReset():void;
  1242. /**
  1243. * 销毁组件
  1244. */
  1245. destroy():void;
  1246. }
  1247. }
  1248. declare module laya.components {
  1249. /**
  1250. * 模板,预制件
  1251. */
  1252. class Prefab {
  1253. /**
  1254. * @private
  1255. */
  1256. json:any;
  1257. /**
  1258. * 通过预制创建实例
  1259. */
  1260. create():any;
  1261. }
  1262. }
  1263. declare module laya.components {
  1264. /**
  1265. * <code>Script</code> 类用于创建脚本的父类,该类为抽象类,不允许实例。
  1266. * 组件的生命周期
  1267. */
  1268. class Script extends laya.components.Component {
  1269. /**
  1270. * @inheritDoc
  1271. * @override
  1272. */
  1273. get isSingleton():boolean;
  1274. /**
  1275. * 组件被激活后执行,此时所有节点和组件均已创建完毕,次方法只执行一次
  1276. * 此方法为虚方法,使用时重写覆盖即可
  1277. */
  1278. onAwake():void;
  1279. /**
  1280. * 组件被启用后执行,比如节点被添加到舞台后
  1281. * 此方法为虚方法,使用时重写覆盖即可
  1282. */
  1283. onEnable():void;
  1284. /**
  1285. * 第一次执行update之前执行,只会执行一次
  1286. * 此方法为虚方法,使用时重写覆盖即可
  1287. */
  1288. onStart():void;
  1289. /**
  1290. * 开始碰撞时执行
  1291. * 此方法为虚方法,使用时重写覆盖即可
  1292. */
  1293. onTriggerEnter(other:any,self:any,contact:any):void;
  1294. /**
  1295. * 持续碰撞时执行
  1296. * 此方法为虚方法,使用时重写覆盖即可
  1297. */
  1298. onTriggerStay(other:any,self:any,contact:any):void;
  1299. /**
  1300. * 结束碰撞时执行
  1301. * 此方法为虚方法,使用时重写覆盖即可
  1302. */
  1303. onTriggerExit(other:any,self:any,contact:any):void;
  1304. /**
  1305. * 鼠标按下时执行
  1306. * 此方法为虚方法,使用时重写覆盖即可
  1307. */
  1308. onMouseDown(e:laya.events.Event):void;
  1309. /**
  1310. * 鼠标抬起时执行
  1311. * 此方法为虚方法,使用时重写覆盖即可
  1312. */
  1313. onMouseUp(e:laya.events.Event):void;
  1314. /**
  1315. * 鼠标点击时执行
  1316. * 此方法为虚方法,使用时重写覆盖即可
  1317. */
  1318. onClick(e:laya.events.Event):void;
  1319. /**
  1320. * 鼠标在舞台按下时执行
  1321. * 此方法为虚方法,使用时重写覆盖即可
  1322. */
  1323. onStageMouseDown(e:laya.events.Event):void;
  1324. /**
  1325. * 鼠标在舞台抬起时执行
  1326. * 此方法为虚方法,使用时重写覆盖即可
  1327. */
  1328. onStageMouseUp(e:laya.events.Event):void;
  1329. /**
  1330. * 鼠标在舞台点击时执行
  1331. * 此方法为虚方法,使用时重写覆盖即可
  1332. */
  1333. onStageClick(e:laya.events.Event):void;
  1334. /**
  1335. * 鼠标在舞台移动时执行
  1336. * 此方法为虚方法,使用时重写覆盖即可
  1337. */
  1338. onStageMouseMove(e:laya.events.Event):void;
  1339. /**
  1340. * 鼠标双击时执行
  1341. * 此方法为虚方法,使用时重写覆盖即可
  1342. */
  1343. onDoubleClick(e:laya.events.Event):void;
  1344. /**
  1345. * 鼠标右键点击时执行
  1346. * 此方法为虚方法,使用时重写覆盖即可
  1347. */
  1348. onRightClick(e:laya.events.Event):void;
  1349. /**
  1350. * 鼠标移动时执行
  1351. * 此方法为虚方法,使用时重写覆盖即可
  1352. */
  1353. onMouseMove(e:laya.events.Event):void;
  1354. /**
  1355. * 鼠标经过节点时触发
  1356. * 此方法为虚方法,使用时重写覆盖即可
  1357. */
  1358. onMouseOver(e:laya.events.Event):void;
  1359. /**
  1360. * 鼠标离开节点时触发
  1361. * 此方法为虚方法,使用时重写覆盖即可
  1362. */
  1363. onMouseOut(e:laya.events.Event):void;
  1364. /**
  1365. * 键盘按下时执行
  1366. * 此方法为虚方法,使用时重写覆盖即可
  1367. */
  1368. onKeyDown(e:laya.events.Event):void;
  1369. /**
  1370. * 键盘产生一个字符时执行
  1371. * 此方法为虚方法,使用时重写覆盖即可
  1372. */
  1373. onKeyPress(e:laya.events.Event):void;
  1374. /**
  1375. * 键盘抬起时执行
  1376. * 此方法为虚方法,使用时重写覆盖即可
  1377. */
  1378. onKeyUp(e:laya.events.Event):void;
  1379. /**
  1380. * 每帧更新时执行,尽量不要在这里写大循环逻辑或者使用getComponent方法
  1381. * 此方法为虚方法,使用时重写覆盖即可
  1382. */
  1383. onUpdate():void;
  1384. /**
  1385. * 每帧更新时执行,在update之后执行,尽量不要在这里写大循环逻辑或者使用getComponent方法
  1386. * 此方法为虚方法,使用时重写覆盖即可
  1387. */
  1388. onLateUpdate():void;
  1389. /**
  1390. * 渲染之前执行
  1391. * 此方法为虚方法,使用时重写覆盖即可
  1392. */
  1393. onPreRender():void;
  1394. /**
  1395. * 渲染之后执行
  1396. * 此方法为虚方法,使用时重写覆盖即可
  1397. */
  1398. onPostRender():void;
  1399. /**
  1400. * 组件被禁用时执行,比如从节点从舞台移除后
  1401. * 此方法为虚方法,使用时重写覆盖即可
  1402. */
  1403. onDisable():void;
  1404. /**
  1405. * 手动调用节点销毁时执行
  1406. * 此方法为虚方法,使用时重写覆盖即可
  1407. */
  1408. onDestroy():void;
  1409. }
  1410. }
  1411. declare module laya {
  1412. /**
  1413. * @private 静态常量集合
  1414. */
  1415. class Const {
  1416. static NOT_ACTIVE:number;
  1417. static ACTIVE_INHIERARCHY:number;
  1418. static AWAKED:number;
  1419. static NOT_READY:number;
  1420. static DISPLAY:number;
  1421. static HAS_ZORDER:number;
  1422. static HAS_MOUSE:number;
  1423. static DISPLAYED_INSTAGE:number;
  1424. static DRAWCALL_OPTIMIZE:number;
  1425. }
  1426. }
  1427. declare module laya.d3.animation {
  1428. /**
  1429. * <code>AnimationClip</code> 类用于动画片段资源。
  1430. */
  1431. class AnimationClip extends laya.resource.Resource {
  1432. /**
  1433. * AnimationClip资源。
  1434. */
  1435. static ANIMATIONCLIP:string;
  1436. /**
  1437. * @inheritDoc
  1438. */
  1439. static _parse(data:any,propertyParams?:any,constructParams?:any[]):AnimationClip;
  1440. /**
  1441. * 加载动画片段。
  1442. * @param url 动画片段地址。
  1443. * @param complete 完成回掉。
  1444. */
  1445. static load(url:string,complete:laya.utils.Handler):void;
  1446. /**
  1447. * 是否循环。
  1448. */
  1449. islooping:boolean;
  1450. /**
  1451. * 获取动画片段时长。
  1452. */
  1453. duration():number;
  1454. /**
  1455. * 创建一个 <code>AnimationClip</code> 实例。
  1456. */
  1457. constructor();
  1458. _evaluateClipDatasRealTimeForNative(nodes:any,playCurTime:number,realTimeCurrentFrameIndexes:Uint16Array,addtive:boolean):void;
  1459. private _evaluateFrameNodeVector3DatasRealTime:any;
  1460. private _evaluateFrameNodeQuaternionDatasRealTime:any;
  1461. private _binarySearchEventIndex:any;
  1462. /**
  1463. * 添加动画事件。
  1464. */
  1465. addEvent(event:laya.d3.animation.AnimationEvent):void;
  1466. /**
  1467. * @inheritDoc
  1468. * @override
  1469. */
  1470. protected _disposeResource():void;
  1471. }
  1472. }
  1473. declare module laya.d3.animation {
  1474. /**
  1475. * <code>AnimationEvent</code> 类用于实现动画事件。
  1476. */
  1477. class AnimationEvent {
  1478. /**
  1479. * 事件触发时间。
  1480. */
  1481. time:number;
  1482. /**
  1483. * 事件触发名称。
  1484. */
  1485. eventName:string;
  1486. /**
  1487. * 事件触发参数。
  1488. */
  1489. params:any[];
  1490. /**
  1491. * 创建一个 <code>AnimationEvent</code> 实例。
  1492. */
  1493. constructor();
  1494. }
  1495. }
  1496. declare module laya.d3.animation {
  1497. /**
  1498. * <code>BoneNode</code> 类用于实现骨骼节点。
  1499. */
  1500. class AnimationNode implements laya.d3.core.IClone {
  1501. private _children:any;
  1502. /**
  1503. * 节点名称。
  1504. */
  1505. name:string;
  1506. /**
  1507. * 创建一个新的 <code>AnimationNode</code> 实例。
  1508. */
  1509. constructor(localPosition?:Float32Array,localRotation?:Float32Array,localScale?:Float32Array,worldMatrix?:Float32Array);
  1510. /**
  1511. * 添加子节点。
  1512. * @param child 子节点。
  1513. */
  1514. addChild(child:AnimationNode):void;
  1515. /**
  1516. * 移除子节点。
  1517. * @param child 子节点。
  1518. */
  1519. removeChild(child:AnimationNode):void;
  1520. /**
  1521. * 根据名字获取子节点。
  1522. * @param name 名字。
  1523. */
  1524. getChildByName(name:string):AnimationNode;
  1525. /**
  1526. * 根据索引获取子节点。
  1527. * @param index 索引。
  1528. */
  1529. getChildByIndex(index:number):AnimationNode;
  1530. /**
  1531. * 获取子节点的个数。
  1532. */
  1533. getChildCount():number;
  1534. /**
  1535. * 克隆。
  1536. * @param destObject 克隆源。
  1537. */
  1538. cloneTo(destObject:any):void;
  1539. /**
  1540. * 克隆。
  1541. * @return 克隆副本。
  1542. */
  1543. clone():any;
  1544. }
  1545. }
  1546. declare module laya.d3.animation {
  1547. /**
  1548. * <code>AnimationTransform3D</code> 类用于实现3D变换。
  1549. */
  1550. class AnimationTransform3D extends laya.events.EventDispatcher {
  1551. private static _tempVector3:any;
  1552. private static _angleToRandin:any;
  1553. private _localMatrix:any;
  1554. private _worldMatrix:any;
  1555. private _localPosition:any;
  1556. private _localRotation:any;
  1557. private _localScale:any;
  1558. private _localQuaternionUpdate:any;
  1559. private _locaEulerlUpdate:any;
  1560. private _localUpdate:any;
  1561. private _parent:any;
  1562. private _children:any;
  1563. /**
  1564. * 创建一个 <code>Transform3D</code> 实例。
  1565. * @param owner 所属精灵。
  1566. */
  1567. constructor(owner:laya.d3.animation.AnimationNode,localPosition?:Float32Array,localRotation?:Float32Array,localScale?:Float32Array,worldMatrix?:Float32Array);
  1568. private _getlocalMatrix:any;
  1569. private _onWorldTransform:any;
  1570. /**
  1571. * 获取世界矩阵。
  1572. * @return 世界矩阵。
  1573. */
  1574. getWorldMatrix():Float32Array;
  1575. /**
  1576. * 设置父3D变换。
  1577. * @param value 父3D变换。
  1578. */
  1579. setParent(value:AnimationTransform3D):void;
  1580. }
  1581. }
  1582. declare module laya.d3.animation {
  1583. /**
  1584. * <code>AnimatorStateScript</code> 类用于动画状态脚本的父类,该类为抽象类,不允许实例。
  1585. */
  1586. class AnimatorStateScript {
  1587. /**
  1588. * 创建一个新的 <code>AnimatorStateScript</code> 实例。
  1589. */
  1590. constructor();
  1591. /**
  1592. * 动画状态开始时执行。
  1593. */
  1594. onStateEnter():void;
  1595. /**
  1596. * 动画状态更新时执行。
  1597. */
  1598. onStateUpdate():void;
  1599. /**
  1600. * 动画状态退出时执行。
  1601. */
  1602. onStateExit():void;
  1603. }
  1604. }
  1605. declare module laya.d3 {
  1606. /**
  1607. * /**
  1608. * <code>CastShadowList</code> 类用于实现产生阴影者队列。
  1609. */
  1610. class CastShadowList extends laya.d3.component.SingletonList<laya.resource.ISingletonElement> {
  1611. /**
  1612. * 创建一个新的 <code>CastShadowList</code> 实例。
  1613. */
  1614. constructor();
  1615. }
  1616. }
  1617. declare module laya.d3.component {
  1618. /**
  1619. * <code>Animator</code> 类用于创建动画组件。
  1620. */
  1621. class Animator extends laya.components.Component {
  1622. /**
  1623. * 裁剪模式_始终播放动画。
  1624. */
  1625. static CULLINGMODE_ALWAYSANIMATE:number;
  1626. /**
  1627. * 裁剪模式_不可见时完全不播放动画。
  1628. */
  1629. static CULLINGMODE_CULLCOMPLETELY:number;
  1630. /**
  1631. * 裁剪模式
  1632. */
  1633. cullingMode:number;
  1634. /**
  1635. * 动画的播放速度,1.0为正常播放速度。
  1636. */
  1637. get speed():number;
  1638. set speed(value:number);
  1639. /**
  1640. * 创建一个 <code>Animation</code> 实例。
  1641. */
  1642. constructor();
  1643. /**
  1644. * 获取默认动画状态。
  1645. * @param layerIndex 层索引。
  1646. * @return 默认动画状态。
  1647. */
  1648. getDefaultState(layerIndex?:number):laya.d3.component.AnimatorState;
  1649. /**
  1650. * 添加动画状态。
  1651. * @param state 动画状态。
  1652. * @param layerIndex 层索引。
  1653. */
  1654. addState(state:laya.d3.component.AnimatorState,layerIndex?:number):void;
  1655. /**
  1656. * 移除动画状态。
  1657. * @param state 动画状态。
  1658. * @param layerIndex 层索引。
  1659. */
  1660. removeState(state:laya.d3.component.AnimatorState,layerIndex?:number):void;
  1661. /**
  1662. * 添加控制器层。
  1663. */
  1664. addControllerLayer(controllderLayer:laya.d3.component.AnimatorControllerLayer):void;
  1665. /**
  1666. * 获取控制器层。
  1667. */
  1668. getControllerLayer(layerInex?:number):laya.d3.component.AnimatorControllerLayer;
  1669. /**
  1670. * 播放动画。
  1671. * @param name 如果为null则播放默认动画,否则按名字播放动画片段。
  1672. * @param layerIndex 层索引。
  1673. * @param normalizedTime 归一化的播放起始时间。
  1674. */
  1675. play(name?:string,layerIndex?:number,normalizedTime?:number):void;
  1676. /**
  1677. * 在当前动画状态和目标动画状态之间进行融合过渡播放。
  1678. * @param name 目标动画状态。
  1679. * @param transitionDuration 过渡时间,该值为当前动画状态的归一化时间,值在0.0~1.0之间。
  1680. * @param layerIndex 层索引。
  1681. * @param normalizedTime 归一化的播放起始时间。
  1682. */
  1683. crossFade(name:string,transitionDuration:number,layerIndex?:number,normalizedTime?:number):void;
  1684. /**
  1685. * @deprecated 获取当前的播放状态。
  1686. * @param layerIndex 层索引。
  1687. * @return 动画播放状态。
  1688. */
  1689. getCurrentAnimatorPlayState(layerInex?:number):laya.d3.component.AnimatorPlayState;
  1690. /**
  1691. * avatar。
  1692. */
  1693. get avatar():laya.d3.core.Avatar;
  1694. set avatar(value:laya.d3.core.Avatar);
  1695. /**
  1696. * 关联精灵节点到Avatar节点,此Animator必须有Avatar文件。
  1697. * @param nodeName 关联节点的名字。
  1698. * @param sprite3D 精灵节点。
  1699. * @return 是否关联成功。
  1700. */
  1701. linkSprite3DToAvatarNode(nodeName:string,sprite3D:laya.d3.core.Sprite3D):boolean;
  1702. /**
  1703. * 解除精灵节点到Avatar节点的关联,此Animator必须有Avatar文件。
  1704. * @param sprite3D 精灵节点。
  1705. * @return 是否解除关联成功。
  1706. */
  1707. unLinkSprite3DToAvatarNode(sprite3D:laya.d3.core.Sprite3D):boolean;
  1708. }
  1709. }
  1710. declare module laya.d3.component {
  1711. /**
  1712. * <code>AnimatorControllerLayer</code> 类用于创建动画控制器层。
  1713. */
  1714. class AnimatorControllerLayer implements laya.d3.resource.IReferenceCounter,laya.d3.core.IClone {
  1715. /**
  1716. * 混合模式_覆盖。
  1717. */
  1718. static BLENDINGMODE_OVERRIDE:number;
  1719. /**
  1720. * 混合模式_叠加。
  1721. */
  1722. static BLENDINGMODE_ADDTIVE:number;
  1723. /**
  1724. * 层的名称。
  1725. */
  1726. name:string;
  1727. /**
  1728. * 名称。
  1729. */
  1730. blendingMode:number;
  1731. /**
  1732. * 权重。
  1733. */
  1734. defaultWeight:number;
  1735. /**
  1736. * 激活时是否自动播放。
  1737. */
  1738. playOnWake:boolean;
  1739. /**
  1740. * 默认动画状态机。
  1741. */
  1742. get defaultState():laya.d3.component.AnimatorState;
  1743. set defaultState(value:laya.d3.component.AnimatorState);
  1744. /**
  1745. * 创建一个 <code>AnimatorControllerLayer</code> 实例。
  1746. */
  1747. constructor(name:string);
  1748. /**
  1749. * @implements IReferenceCounter
  1750. */
  1751. _getReferenceCount():number;
  1752. /**
  1753. * @implements IReferenceCounter
  1754. */
  1755. _addReference(count?:number):void;
  1756. /**
  1757. * @implements IReferenceCounter
  1758. */
  1759. _removeReference(count?:number):void;
  1760. /**
  1761. * @implements IReferenceCounter
  1762. */
  1763. _clearReference():void;
  1764. /**
  1765. * 获取当前的播放状态。
  1766. * @return 动画播放状态。
  1767. */
  1768. getCurrentPlayState():laya.d3.component.AnimatorPlayState;
  1769. /**
  1770. * 获取动画状态。
  1771. * @return 动画状态。
  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. get normalizedTime():number;
  1811. /**
  1812. * 当前动画的持续时间,以秒为单位。
  1813. */
  1814. get duration():number;
  1815. /**
  1816. * 动画状态机。
  1817. */
  1818. get animatorState():laya.d3.component.AnimatorState;
  1819. /**
  1820. * 创建一个 <code>AnimatorPlayState</code> 实例。
  1821. */
  1822. constructor();
  1823. }
  1824. }
  1825. declare module laya.d3.component {
  1826. /**
  1827. * <code>AnimatorState</code> 类用于创建动作状态。
  1828. */
  1829. class AnimatorState implements laya.d3.resource.IReferenceCounter,laya.d3.core.IClone {
  1830. /**
  1831. * 名称。
  1832. */
  1833. name:string;
  1834. /**
  1835. * 动画播放速度,1.0为正常播放速度。
  1836. */
  1837. speed:number;
  1838. /**
  1839. * 动作播放起始时间。
  1840. */
  1841. clipStart:number;
  1842. /**
  1843. * 动作播放结束时间。
  1844. */
  1845. clipEnd:number;
  1846. /**
  1847. * 动作。
  1848. */
  1849. get clip():laya.d3.animation.AnimationClip;
  1850. set clip(value:laya.d3.animation.AnimationClip);
  1851. /**
  1852. * 创建一个 <code>AnimatorState</code> 实例。
  1853. */
  1854. constructor();
  1855. /**
  1856. * @implements IReferenceCounter
  1857. */
  1858. _getReferenceCount():number;
  1859. /**
  1860. * @implements IReferenceCounter
  1861. */
  1862. _addReference(count?:number):void;
  1863. /**
  1864. * @implements IReferenceCounter
  1865. */
  1866. _removeReference(count?:number):void;
  1867. /**
  1868. * @implements IReferenceCounter
  1869. */
  1870. _clearReference():void;
  1871. /**
  1872. * 添加脚本。
  1873. * @param type 组件类型。
  1874. * @return 脚本。
  1875. */
  1876. addScript(type:typeof laya.d3.animation.AnimatorStateScript):laya.d3.animation.AnimatorStateScript;
  1877. /**
  1878. * 获取脚本。
  1879. * @param type 组件类型。
  1880. * @return 脚本。
  1881. */
  1882. getScript(type:typeof laya.d3.animation.AnimatorStateScript):laya.d3.animation.AnimatorStateScript;
  1883. /**
  1884. * 获取脚本集合。
  1885. * @param type 组件类型。
  1886. * @return 脚本集合。
  1887. */
  1888. getScripts(type:typeof laya.d3.animation.AnimatorStateScript):laya.d3.animation.AnimatorStateScript[];
  1889. /**
  1890. * 克隆。
  1891. * @param destObject 克隆源。
  1892. */
  1893. cloneTo(destObject:any):void;
  1894. /**
  1895. * 克隆。
  1896. * @return 克隆副本。
  1897. */
  1898. clone():any;
  1899. }
  1900. }
  1901. declare module laya.d3.component {
  1902. /**
  1903. * <code>PostProcess</code> 类用于创建后期处理组件。
  1904. */
  1905. class PostProcess {
  1906. /**
  1907. * 创建一个 <code>PostProcess</code> 实例。
  1908. */
  1909. constructor();
  1910. /**
  1911. * 添加后期处理效果。
  1912. */
  1913. addEffect(effect:laya.d3.core.render.PostProcessEffect):void;
  1914. /**
  1915. * 移除后期处理效果。
  1916. */
  1917. removeEffect(effect:laya.d3.core.render.PostProcessEffect):void;
  1918. }
  1919. }
  1920. declare module laya.d3.component {
  1921. /**
  1922. * <code>Script3D</code> 类用于创建脚本的父类,该类为抽象类,不允许实例。
  1923. */
  1924. class Script3D extends laya.components.Component {
  1925. /**
  1926. * @inheritDoc
  1927. * @override
  1928. */
  1929. get isSingleton():boolean;
  1930. /**
  1931. * 创建后只执行一次
  1932. * 此方法为虚方法,使用时重写覆盖即可
  1933. */
  1934. onAwake():void;
  1935. /**
  1936. * 每次启动后执行
  1937. * 此方法为虚方法,使用时重写覆盖即可
  1938. */
  1939. onEnable():void;
  1940. /**
  1941. * 第一次执行update之前执行,只会执行一次
  1942. * 此方法为虚方法,使用时重写覆盖即可
  1943. */
  1944. onStart():void;
  1945. /**
  1946. * 开始触发时执行
  1947. * 此方法为虚方法,使用时重写覆盖即可
  1948. */
  1949. onTriggerEnter(other:laya.d3.physics.PhysicsComponent):void;
  1950. /**
  1951. * 持续触发时执行
  1952. * 此方法为虚方法,使用时重写覆盖即可
  1953. */
  1954. onTriggerStay(other:laya.d3.physics.PhysicsComponent):void;
  1955. /**
  1956. * 结束触发时执行
  1957. * 此方法为虚方法,使用时重写覆盖即可
  1958. */
  1959. onTriggerExit(other:laya.d3.physics.PhysicsComponent):void;
  1960. /**
  1961. * 开始碰撞时执行
  1962. * 此方法为虚方法,使用时重写覆盖即可
  1963. */
  1964. onCollisionEnter(collision:laya.d3.physics.Collision):void;
  1965. /**
  1966. * 持续碰撞时执行
  1967. * 此方法为虚方法,使用时重写覆盖即可
  1968. */
  1969. onCollisionStay(collision:laya.d3.physics.Collision):void;
  1970. /**
  1971. * 结束碰撞时执行
  1972. * 此方法为虚方法,使用时重写覆盖即可
  1973. */
  1974. onCollisionExit(collision:laya.d3.physics.Collision):void;
  1975. /**
  1976. * 关节破坏时执行此方法
  1977. * 此方法为虚方法,使用时重写覆盖即可
  1978. */
  1979. onJointBreak():void;
  1980. /**
  1981. * 鼠标按下时执行
  1982. * 此方法为虚方法,使用时重写覆盖即可
  1983. */
  1984. onMouseDown():void;
  1985. /**
  1986. * 鼠标拖拽时执行
  1987. * 此方法为虚方法,使用时重写覆盖即可
  1988. */
  1989. onMouseDrag():void;
  1990. /**
  1991. * 鼠标点击时执行
  1992. * 此方法为虚方法,使用时重写覆盖即可
  1993. */
  1994. onMouseClick():void;
  1995. /**
  1996. * 鼠标弹起时执行
  1997. * 此方法为虚方法,使用时重写覆盖即可
  1998. */
  1999. onMouseUp():void;
  2000. /**
  2001. * 鼠标进入时执行
  2002. * 此方法为虚方法,使用时重写覆盖即可
  2003. */
  2004. onMouseEnter():void;
  2005. /**
  2006. * 鼠标经过时执行
  2007. * 此方法为虚方法,使用时重写覆盖即可
  2008. */
  2009. onMouseOver():void;
  2010. /**
  2011. * 鼠标离开时执行
  2012. * 此方法为虚方法,使用时重写覆盖即可
  2013. */
  2014. onMouseOut():void;
  2015. /**
  2016. * 每帧更新时执行
  2017. * 此方法为虚方法,使用时重写覆盖即可
  2018. */
  2019. onUpdate():void;
  2020. /**
  2021. * 每帧更新时执行,在update之后执行
  2022. * 此方法为虚方法,使用时重写覆盖即可
  2023. */
  2024. onLateUpdate():void;
  2025. /**
  2026. * 渲染之前执行
  2027. * 此方法为虚方法,使用时重写覆盖即可
  2028. */
  2029. onPreRender():void;
  2030. /**
  2031. * 渲染之后执行
  2032. * 此方法为虚方法,使用时重写覆盖即可
  2033. */
  2034. onPostRender():void;
  2035. /**
  2036. * 禁用时执行
  2037. * 此方法为虚方法,使用时重写覆盖即可
  2038. */
  2039. onDisable():void;
  2040. /**
  2041. * 销毁时执行
  2042. * 此方法为虚方法,使用时重写覆盖即可
  2043. */
  2044. onDestroy():void;
  2045. }
  2046. }
  2047. declare module laya.d3.component {
  2048. /**
  2049. * <code>SimpleSingletonList</code> 类用于实现单例队列。
  2050. */
  2051. class SimpleSingletonList extends laya.d3.component.SingletonList<laya.resource.ISingletonElement> {
  2052. /**
  2053. * 创建一个新的 <code>SimpleSingletonList</code> 实例。
  2054. */
  2055. constructor();
  2056. }
  2057. }
  2058. declare module laya.d3.component {
  2059. /**
  2060. * <code>SingletonList</code> 类用于实现单例队列。
  2061. */
  2062. class SingletonList<T> {
  2063. /**
  2064. * 创建一个新的 <code>SingletonList</code> 实例。
  2065. */
  2066. constructor();
  2067. }
  2068. }
  2069. declare module laya.d3.core {
  2070. /**
  2071. * <code>Avatar</code> 类用于创建Avatar。
  2072. */
  2073. class Avatar extends laya.resource.Resource implements laya.d3.core.IClone {
  2074. /**
  2075. * Avatar资源。
  2076. */
  2077. static AVATAR:string;
  2078. /**
  2079. * @inheritDoc
  2080. */
  2081. static _parse(data:any,propertyParams?:any,constructParams?:any[]):Avatar;
  2082. /**
  2083. * 加载Avatar文件。
  2084. * @param url Avatar文件。
  2085. * @param complete 完成回掉。
  2086. */
  2087. static load(url:string,complete:laya.utils.Handler):void;
  2088. /**
  2089. * [NATIVE]
  2090. */
  2091. private _nativeNodeCount:any;
  2092. /**
  2093. * 创建一个 <code>Avatar</code> 实例。
  2094. */
  2095. constructor();
  2096. private _initCloneToAnimator:any;
  2097. private _parseNode:any;
  2098. /**
  2099. * 克隆数据到Avatr。
  2100. * @param destObject 克隆源。
  2101. */
  2102. _cloneDatasToAnimator(destAnimator:laya.d3.component.Animator):void;
  2103. /**
  2104. * 克隆。
  2105. * @param destObject 克隆源。
  2106. */
  2107. cloneTo(destObject:any):void;
  2108. /**
  2109. * 克隆。
  2110. * @return 克隆副本。
  2111. */
  2112. clone():any;
  2113. }
  2114. }
  2115. declare module laya.d3.core {
  2116. /**
  2117. * <code>BaseCamera</code> 类用于创建摄像机的父类。
  2118. */
  2119. class BaseCamera extends laya.d3.core.Sprite3D {
  2120. static _tempMatrix4x40:laya.d3.math.Matrix4x4;
  2121. static CAMERAPOS:number;
  2122. static VIEWMATRIX:number;
  2123. static PROJECTMATRIX:number;
  2124. static VIEWPROJECTMATRIX:number;
  2125. static CAMERADIRECTION:number;
  2126. static CAMERAUP:number;
  2127. static VIEWPORT:number;
  2128. static PROJECTION_PARAMS:number;
  2129. /**
  2130. * 渲染模式,延迟光照渲染,暂未开放。
  2131. */
  2132. static RENDERINGTYPE_DEFERREDLIGHTING:string;
  2133. /**
  2134. * 渲染模式,前向渲染。
  2135. */
  2136. static RENDERINGTYPE_FORWARDRENDERING:string;
  2137. protected static _invertYScaleMatrix:laya.d3.math.Matrix4x4;
  2138. protected static _invertYProjectionMatrix:laya.d3.math.Matrix4x4;
  2139. protected static _invertYProjectionViewMatrix:laya.d3.math.Matrix4x4;
  2140. /**
  2141. * 近裁剪面。
  2142. */
  2143. protected _nearPlane:number;
  2144. /**
  2145. * 远裁剪面。
  2146. */
  2147. protected _farPlane:number;
  2148. /**
  2149. * 视野。
  2150. */
  2151. private _fieldOfView:any;
  2152. /**
  2153. * 正交投影的垂直尺寸。
  2154. */
  2155. private _orthographicVerticalSize:any;
  2156. private _skyRenderer:any;
  2157. private _forward:any;
  2158. private _up:any;
  2159. /**
  2160. * 摄像机的清除颜色,默认颜色为CornflowerBlue。
  2161. */
  2162. clearColor:laya.d3.math.Vector4;
  2163. /**
  2164. * 可视层位标记遮罩值,支持混合 例:cullingMask=Math.pow(2,0)|Math.pow(2,1)为第0层和第1层可见。
  2165. */
  2166. cullingMask:number;
  2167. /**
  2168. * 渲染时是否用遮挡剔除。
  2169. */
  2170. useOcclusionCulling:boolean;
  2171. /**
  2172. * 天空渲染器。
  2173. */
  2174. get skyRenderer():laya.d3.resource.models.SkyRenderer;
  2175. /**
  2176. * 视野。
  2177. */
  2178. get fieldOfView():number;
  2179. set fieldOfView(value:number);
  2180. /**
  2181. * 近裁面。
  2182. */
  2183. get nearPlane():number;
  2184. set nearPlane(value:number);
  2185. /**
  2186. * 远裁面。
  2187. */
  2188. get farPlane():number;
  2189. set farPlane(vaule:number);
  2190. /**
  2191. * 是否正交投影矩阵。
  2192. */
  2193. get orthographic():boolean;
  2194. set orthographic(vaule:boolean);
  2195. /**
  2196. * 正交投影垂直矩阵尺寸。
  2197. */
  2198. get orthographicVerticalSize():number;
  2199. set orthographicVerticalSize(vaule:number);
  2200. get renderingOrder():number;
  2201. set renderingOrder(value:number);
  2202. /**
  2203. * 创建一个 <code>BaseCamera</code> 实例。
  2204. * @param fieldOfView 视野。
  2205. * @param nearPlane 近裁面。
  2206. * @param farPlane 远裁面。
  2207. */
  2208. constructor(nearPlane?:number,farPlane?:number);
  2209. /**
  2210. * 通过RenderingOrder属性对摄像机机型排序。
  2211. */
  2212. _sortCamerasByRenderingOrder():void;
  2213. /**
  2214. * 相机渲染。
  2215. * @param shader 着色器。
  2216. * @param replacementTag 着色器替换标记。
  2217. */
  2218. render(shader?:laya.d3.shader.Shader3D,replacementTag?:string):void;
  2219. /**
  2220. * 增加可视图层,layer值为0到31层。
  2221. * @param layer 图层。
  2222. */
  2223. addLayer(layer:number):void;
  2224. /**
  2225. * 移除可视图层,layer值为0到31层。
  2226. * @param layer 图层。
  2227. */
  2228. removeLayer(layer:number):void;
  2229. /**
  2230. * 增加所有图层。
  2231. */
  2232. addAllLayers():void;
  2233. /**
  2234. * 移除所有图层。
  2235. */
  2236. removeAllLayers():void;
  2237. resetProjectionMatrix():void;
  2238. /**
  2239. * @inheritDoc
  2240. * @override
  2241. */
  2242. protected _onActive():void;
  2243. /**
  2244. * @inheritDoc
  2245. * @override
  2246. */
  2247. protected _onInActive():void;
  2248. /**
  2249. * @inheritDoc
  2250. * @override
  2251. */
  2252. destroy(destroyChild?:boolean):void;
  2253. /**
  2254. * @deprecated plaease use CameraClearFlags.SolidColor instead.
  2255. */
  2256. static CLEARFLAG_SOLIDCOLOR:number;
  2257. /**
  2258. * @deprecated plaease use CameraClearFlags.Sky instead.
  2259. */
  2260. static CLEARFLAG_SKY:number;
  2261. /**
  2262. * @deprecated plaease use CameraClearFlags.DepthOnly instead.
  2263. */
  2264. static CLEARFLAG_DEPTHONLY:number;
  2265. /**
  2266. * @deprecated plaease use CameraClearFlags.Nothing instead.
  2267. */
  2268. static CLEARFLAG_NONE:number;
  2269. }
  2270. }
  2271. declare module laya.d3.core {
  2272. /**
  2273. * <code>Bounds</code> 类用于创建包围体。
  2274. */
  2275. class Bounds implements laya.d3.core.IClone {
  2276. private _updateFlag:any;
  2277. /**
  2278. */
  2279. _boundBox:laya.d3.math.BoundBox;
  2280. /**
  2281. * 设置包围盒的最小点。
  2282. * @param value 包围盒的最小点。
  2283. */
  2284. setMin(value:laya.d3.math.Vector3):void;
  2285. /**
  2286. * 获取包围盒的最小点。
  2287. * @return 包围盒的最小点。
  2288. */
  2289. getMin():laya.d3.math.Vector3;
  2290. /**
  2291. * 设置包围盒的最大点。
  2292. * @param value 包围盒的最大点。
  2293. */
  2294. setMax(value:laya.d3.math.Vector3):void;
  2295. /**
  2296. * 获取包围盒的最大点。
  2297. * @return 包围盒的最大点。
  2298. */
  2299. getMax():laya.d3.math.Vector3;
  2300. /**
  2301. * 设置包围盒的中心点。
  2302. * @param value 包围盒的中心点。
  2303. */
  2304. setCenter(value:laya.d3.math.Vector3):void;
  2305. /**
  2306. * 获取包围盒的中心点。
  2307. * @return 包围盒的中心点。
  2308. */
  2309. getCenter():laya.d3.math.Vector3;
  2310. /**
  2311. * 设置包围盒的范围。
  2312. * @param value 包围盒的范围。
  2313. */
  2314. setExtent(value:laya.d3.math.Vector3):void;
  2315. /**
  2316. * 获取包围盒的范围。
  2317. * @return 包围盒的范围。
  2318. */
  2319. getExtent():laya.d3.math.Vector3;
  2320. /**
  2321. * 创建一个 <code>Bounds</code> 实例。
  2322. * @param min min 最小坐标
  2323. * @param max max 最大坐标。
  2324. */
  2325. constructor(min:laya.d3.math.Vector3,max:laya.d3.math.Vector3);
  2326. private _getUpdateFlag:any;
  2327. private _setUpdateFlag:any;
  2328. private _getCenter:any;
  2329. private _getExtent:any;
  2330. private _getMin:any;
  2331. private _getMax:any;
  2332. private _rotateExtents:any;
  2333. /**
  2334. * 克隆。
  2335. * @param destObject 克隆源。
  2336. */
  2337. cloneTo(destObject:any):void;
  2338. /**
  2339. * 克隆。
  2340. * @return 克隆副本。
  2341. */
  2342. clone():any;
  2343. }
  2344. }
  2345. declare module laya.d3.core {
  2346. enum CameraClearFlags {
  2347. /**固定颜色。*/
  2348. SolidColor = 0,
  2349. /**天空。*/
  2350. Sky = 1,
  2351. /**仅深度。*/
  2352. DepthOnly = 2,
  2353. /**不清除。*/
  2354. Nothing = 3
  2355. }
  2356. /**
  2357. * <code>Camera</code> 类用于创建摄像机。
  2358. */
  2359. class Camera extends laya.d3.core.BaseCamera {
  2360. /**
  2361. * 是否允许渲染。
  2362. */
  2363. enableRender:boolean;
  2364. /**
  2365. * 清除标记。
  2366. */
  2367. clearFlag:CameraClearFlags;
  2368. /**
  2369. * 横纵比。
  2370. */
  2371. get aspectRatio():number;
  2372. set aspectRatio(value:number);
  2373. /**
  2374. * 获取屏幕像素坐标的视口。
  2375. */
  2376. get viewport():laya.d3.math.Viewport;
  2377. set viewport(value:laya.d3.math.Viewport);
  2378. /**
  2379. * 裁剪空间的视口。
  2380. */
  2381. get normalizedViewport():laya.d3.math.Viewport;
  2382. set normalizedViewport(value:laya.d3.math.Viewport);
  2383. /**
  2384. * 获取视图矩阵。
  2385. */
  2386. get viewMatrix():laya.d3.math.Matrix4x4;
  2387. /**
  2388. * 投影矩阵。
  2389. */
  2390. get projectionMatrix():laya.d3.math.Matrix4x4;
  2391. set projectionMatrix(value:laya.d3.math.Matrix4x4);
  2392. /**
  2393. * 获取视图投影矩阵。
  2394. */
  2395. get projectionViewMatrix():laya.d3.math.Matrix4x4;
  2396. /**
  2397. * 获取摄像机视锥。
  2398. */
  2399. get boundFrustum():laya.d3.math.BoundFrustum;
  2400. /**
  2401. * 自定义渲染场景的渲染目标。
  2402. */
  2403. get renderTarget():laya.d3.resource.RenderTexture;
  2404. set renderTarget(value:laya.d3.resource.RenderTexture);
  2405. /**
  2406. * 后期处理。
  2407. */
  2408. get postProcess():laya.d3.component.PostProcess;
  2409. set postProcess(value:laya.d3.component.PostProcess);
  2410. /**
  2411. * 是否开启HDR。
  2412. * 开启后对性能有一定影响。
  2413. */
  2414. get enableHDR():boolean;
  2415. set enableHDR(value:boolean);
  2416. /**
  2417. * 创建一个 <code>Camera</code> 实例。
  2418. * @param aspectRatio 横纵比。
  2419. * @param nearPlane 近裁面。
  2420. * @param farPlane 远裁面。
  2421. */
  2422. constructor(aspectRatio?:number,nearPlane?:number,farPlane?:number);
  2423. /**
  2424. * 通过蒙版值获取蒙版是否显示。
  2425. * @param layer 层。
  2426. * @return 是否显示。
  2427. */
  2428. _isLayerVisible(layer:number):boolean;
  2429. /**
  2430. * @override
  2431. * @param shader 着色器
  2432. * @param replacementTag 替换标记。
  2433. */
  2434. render(shader?:laya.d3.shader.Shader3D,replacementTag?:string):void;
  2435. /**
  2436. * 计算从屏幕空间生成的射线。
  2437. * @param point 屏幕空间的位置位置。
  2438. * @param out 输出射线。
  2439. */
  2440. viewportPointToRay(point:laya.d3.math.Vector2,out:laya.d3.math.Ray):void;
  2441. /**
  2442. * 计算从裁切空间生成的射线。
  2443. * @param point 裁切空间的位置。
  2444. * @param out 输出射线。
  2445. */
  2446. normalizedViewportPointToRay(point:laya.d3.math.Vector2,out:laya.d3.math.Ray):void;
  2447. /**
  2448. * 将一个点从世界空间转换到视口空间。
  2449. * @param position 世界空间的坐标。
  2450. * @param out x、y、z为视口空间坐标,w为相对于摄像机的z轴坐标。
  2451. */
  2452. worldToViewportPoint(position:laya.d3.math.Vector3,out:laya.d3.math.Vector4):void;
  2453. /**
  2454. * 将一个点从世界空间转换到归一化视口空间。
  2455. * @param position 世界空间的坐标。
  2456. * @param out x、y、z为归一化视口空间坐标,w为相对于摄像机的z轴坐标。
  2457. */
  2458. worldToNormalizedViewportPoint(position:laya.d3.math.Vector3,out:laya.d3.math.Vector4):void;
  2459. /**
  2460. * 转换2D屏幕坐标系统到3D正交投影下的坐标系统,注:只有正交模型下有效。
  2461. * @param source 源坐标。
  2462. * @param out 输出坐标。
  2463. * @return 是否转换成功。
  2464. */
  2465. convertScreenCoordToOrthographicCoord(source:laya.d3.math.Vector3,out:laya.d3.math.Vector3):boolean;
  2466. /**
  2467. * @inheritDoc
  2468. * @override
  2469. */
  2470. destroy(destroyChild?:boolean):void;
  2471. /**
  2472. * 在特定渲染管线阶段添加指令缓存。
  2473. */
  2474. addCommandBuffer(event:number,commandBuffer:laya.d3.core.render.command.CommandBuffer):void;
  2475. /**
  2476. * 在特定渲染管线阶段移除指令缓存。
  2477. */
  2478. removeCommandBuffer(event:number,commandBuffer:laya.d3.core.render.command.CommandBuffer):void;
  2479. /**
  2480. * 在特定渲染管线阶段移除所有指令缓存。
  2481. */
  2482. removeCommandBuffers(event:number):void;
  2483. }
  2484. }
  2485. declare module laya.d3.core {
  2486. /**
  2487. * <code>FloatKeyFrame</code> 类用于创建浮点关键帧实例。
  2488. */
  2489. class FloatKeyframe extends laya.d3.core.Keyframe {
  2490. inTangent:number;
  2491. outTangent:number;
  2492. value:number;
  2493. /**
  2494. * 创建一个 <code>FloatKeyFrame</code> 实例。
  2495. */
  2496. constructor();
  2497. /**
  2498. * @inheritDoc
  2499. * @override
  2500. */
  2501. cloneTo(destObject:any):void;
  2502. }
  2503. }
  2504. declare module laya.d3.core {
  2505. /**
  2506. * <code>GeometryElement</code> 类用于实现几何体元素,该类为抽象类。
  2507. */
  2508. class GeometryElement implements laya.resource.IDestroy {
  2509. /**
  2510. * 获取是否销毁。
  2511. * @return 是否销毁。
  2512. */
  2513. get destroyed():boolean;
  2514. /**
  2515. * 创建一个 <code>GeometryElement</code> 实例。
  2516. */
  2517. constructor();
  2518. /**
  2519. * 获取几何体类型。
  2520. */
  2521. _getType():number;
  2522. /**
  2523. * 销毁。
  2524. */
  2525. destroy():void;
  2526. }
  2527. }
  2528. declare module laya.d3.core {
  2529. /**
  2530. * <code>Gradient</code> 类用于创建颜色渐变。
  2531. */
  2532. class Gradient implements laya.d3.core.IClone {
  2533. private _mode:any;
  2534. private _maxColorRGBKeysCount:any;
  2535. private _maxColorAlphaKeysCount:any;
  2536. private _colorRGBKeysCount:any;
  2537. private _colorAlphaKeysCount:any;
  2538. /**
  2539. * 获取梯度模式。
  2540. * @return 梯度模式。
  2541. */
  2542. get mode():number;
  2543. /**
  2544. * 设置梯度模式。
  2545. * @param value 梯度模式。
  2546. */
  2547. set mode(value:number);
  2548. /**
  2549. * 获取颜色RGB数量。
  2550. * @return 颜色RGB数量。
  2551. */
  2552. get colorRGBKeysCount():number;
  2553. /**
  2554. * 获取颜色Alpha数量。
  2555. * @return 颜色Alpha数量。
  2556. */
  2557. get colorAlphaKeysCount():number;
  2558. /**
  2559. * 获取最大颜色RGB帧数量。
  2560. * @return 最大RGB帧数量。
  2561. */
  2562. get maxColorRGBKeysCount():number;
  2563. /**
  2564. * 获取最大颜色Alpha帧数量。
  2565. * @return 最大Alpha帧数量。
  2566. */
  2567. get maxColorAlphaKeysCount():number;
  2568. /**
  2569. * 创建一个 <code>Gradient</code> 实例。
  2570. * @param maxColorRGBKeyCount 最大RGB帧个数。
  2571. * @param maxColorAlphaKeyCount 最大Alpha帧个数。
  2572. */
  2573. constructor(maxColorRGBKeyCount:number,maxColorAlphaKeyCount:number);
  2574. /**
  2575. * 增加颜色RGB帧。
  2576. * @param key 生命周期,范围为0到1。
  2577. * @param value RGB值。
  2578. */
  2579. addColorRGB(key:number,value:laya.d3.math.Color):void;
  2580. /**
  2581. * 增加颜色Alpha帧。
  2582. * @param key 生命周期,范围为0到1。
  2583. * @param value Alpha值。
  2584. */
  2585. addColorAlpha(key:number,value:number):void;
  2586. /**
  2587. * 更新颜色RGB帧。
  2588. * @param index 索引。
  2589. * @param key 生命周期,范围为0到1。
  2590. * @param value RGB值。
  2591. */
  2592. updateColorRGB(index:number,key:number,value:laya.d3.math.Color):void;
  2593. /**
  2594. * 更新颜色Alpha帧。
  2595. * @param index 索引。
  2596. * @param key 生命周期,范围为0到1。
  2597. * @param value Alpha值。
  2598. */
  2599. updateColorAlpha(index:number,key:number,value:number):void;
  2600. /**
  2601. * 通过插值获取RGB颜色。
  2602. * @param lerpFactor 插值因子。
  2603. * @param out 颜色结果。
  2604. * @param 开始查找索引 。
  2605. * @return 结果索引。
  2606. */
  2607. evaluateColorRGB(lerpFactor:number,out:laya.d3.math.Color,startSearchIndex?:number,reverseSearch?:boolean):number;
  2608. /**
  2609. * 通过插值获取透明值。
  2610. * @param lerpFactor 插值因子。
  2611. * @param out 颜色结果。
  2612. * @param 开始查找索引 。
  2613. * @return 结果索引 。
  2614. */
  2615. evaluateColorAlpha(lerpFactor:number,outColor:laya.d3.math.Color,startSearchIndex?:number,reverseSearch?:boolean):number;
  2616. /**
  2617. * 克隆。
  2618. * @param destObject 克隆源。
  2619. */
  2620. cloneTo(destObject:any):void;
  2621. /**
  2622. * 克隆。
  2623. * @return 克隆副本。
  2624. */
  2625. clone():any;
  2626. }
  2627. }
  2628. declare module laya.d3.core {
  2629. /**
  2630. * ...
  2631. * @author ...
  2632. */
  2633. class GradientMode {
  2634. /**
  2635. * 找到与请求的评估时间相邻的两个键,并线性插值在他们之间,以获得一种混合的颜色。
  2636. */
  2637. static Blend:number;
  2638. /**
  2639. * 返回一个固定的颜色,通过查找第一个键的时间值大于所请求的评估时间。
  2640. */
  2641. static Fixed:number;
  2642. }
  2643. }
  2644. declare module laya.d3.core {
  2645. /**
  2646. * <code>HeightMap</code> 类用于实现高度图数据。
  2647. */
  2648. class HeightMap {
  2649. private static _tempRay:any;
  2650. /**
  2651. * 从网格精灵生成高度图。
  2652. * @param meshSprite 网格精灵。
  2653. * @param width 高度图宽度。
  2654. * @param height 高度图高度。
  2655. * @param outCellSize 输出 单元尺寸。
  2656. */
  2657. static creatFromMesh(mesh:laya.d3.resource.models.Mesh,width:number,height:number,outCellSize:laya.d3.math.Vector2):HeightMap;
  2658. /**
  2659. * 从图片生成高度图。
  2660. * @param image 图片。
  2661. * @param maxHeight 最小高度。
  2662. * @param maxHeight 最大高度。
  2663. */
  2664. static createFromImage(texture:laya.resource.Texture2D,minHeight:number,maxHeight:number):HeightMap;
  2665. private static _getPosition:any;
  2666. private _datas:any;
  2667. private _w:any;
  2668. private _h:any;
  2669. private _minHeight:any;
  2670. private _maxHeight:any;
  2671. /**
  2672. * 获取宽度。
  2673. * @return value 宽度。
  2674. */
  2675. get width():number;
  2676. /**
  2677. * 获取高度。
  2678. * @return value 高度。
  2679. */
  2680. get height():number;
  2681. /**
  2682. * 最大高度。
  2683. * @return value 最大高度。
  2684. */
  2685. get maxHeight():number;
  2686. /**
  2687. * 最大高度。
  2688. * @return value 最大高度。
  2689. */
  2690. get minHeight():number;
  2691. /**
  2692. * 创建一个 <code>HeightMap</code> 实例。
  2693. * @param width 宽度。
  2694. * @param height 高度。
  2695. * @param minHeight 最大高度。
  2696. * @param maxHeight 最大高度。
  2697. */
  2698. constructor(width:number,height:number,minHeight:number,maxHeight:number);
  2699. /**
  2700. * 获取高度。
  2701. * @param row 列数。
  2702. * @param col 行数。
  2703. * @return 高度。
  2704. */
  2705. getHeight(row:number,col:number):number;
  2706. }
  2707. }
  2708. declare module laya.d3.core {
  2709. /**
  2710. * @private <code>IClone</code> 资源克隆接口。
  2711. */
  2712. interface IClone{
  2713. clone():any;
  2714. cloneTo(destObject:any):void;
  2715. }
  2716. }
  2717. declare module laya.d3.core {
  2718. /**
  2719. * <code>KeyFrame</code> 类用于创建关键帧实例。
  2720. */
  2721. class Keyframe implements laya.d3.core.IClone {
  2722. /**
  2723. * 时间。
  2724. */
  2725. time:number;
  2726. /**
  2727. * 创建一个 <code>KeyFrame</code> 实例。
  2728. */
  2729. constructor();
  2730. /**
  2731. * 克隆。
  2732. * @param destObject 克隆源。
  2733. */
  2734. cloneTo(destObject:any):void;
  2735. /**
  2736. * 克隆。
  2737. * @return 克隆副本。
  2738. */
  2739. clone():any;
  2740. }
  2741. }
  2742. declare module laya.d3.core.light {
  2743. /**
  2744. * <code>DirectionLight</code> 类用于创建平行光。
  2745. */
  2746. class DirectionLight extends laya.d3.core.light.LightSprite {
  2747. /**
  2748. * 阴影级联数量。
  2749. */
  2750. get shadowCascadesMode():laya.d3.core.light.ShadowCascadesMode;
  2751. set shadowCascadesMode(value:laya.d3.core.light.ShadowCascadesMode);
  2752. /**
  2753. * 二级级联阴影分割比例。
  2754. */
  2755. get shadowTwoCascadeSplits():number;
  2756. set shadowTwoCascadeSplits(value:number);
  2757. /**
  2758. * 四级级联阴影分割比例,X、Y、Z依次为其分割比例,Z必须大于Y,Y必须大于X。
  2759. */
  2760. get shadowFourCascadeSplits():laya.d3.math.Vector3;
  2761. set shadowFourCascadeSplits(value:laya.d3.math.Vector3);
  2762. /**
  2763. * 创建一个 <code>DirectionLight</code> 实例。
  2764. */
  2765. constructor();
  2766. }
  2767. }
  2768. declare module laya.d3.core.light {
  2769. /**
  2770. * <code>LightSprite</code> 类用于创建灯光的父类。
  2771. */
  2772. class LightSprite extends laya.d3.core.Sprite3D {
  2773. /**
  2774. * 灯光烘培类型-实时。
  2775. */
  2776. static LIGHTMAPBAKEDTYPE_REALTIME:number;
  2777. /**
  2778. * 灯光烘培类型-混合。
  2779. */
  2780. static LIGHTMAPBAKEDTYPE_MIXED:number;
  2781. /**
  2782. * 灯光烘培类型-烘焙。
  2783. */
  2784. static LIGHTMAPBAKEDTYPE_BAKED:number;
  2785. /**
  2786. * 灯光颜色。
  2787. */
  2788. color:laya.d3.math.Vector3;
  2789. /**
  2790. * 灯光强度。
  2791. */
  2792. get intensity():number;
  2793. set intensity(value:number);
  2794. /**
  2795. * 阴影模式。
  2796. */
  2797. get shadowMode():laya.d3.core.light.ShadowMode;
  2798. set shadowMode(value:laya.d3.core.light.ShadowMode);
  2799. /**
  2800. * 最大阴影距离。
  2801. */
  2802. get shadowDistance():number;
  2803. set shadowDistance(value:number);
  2804. /**
  2805. * 阴影贴图分辨率。
  2806. */
  2807. get shadowResolution():number;
  2808. set shadowResolution(value:number);
  2809. /**
  2810. * 阴影深度偏差。
  2811. */
  2812. get shadowDepthBias():number;
  2813. set shadowDepthBias(value:number);
  2814. /**
  2815. * 阴影法线偏差。
  2816. */
  2817. get shadowNormalBias():number;
  2818. set shadowNormalBias(value:number);
  2819. /**
  2820. * 阴影强度。
  2821. */
  2822. get shadowStrength():number;
  2823. set shadowStrength(value:number);
  2824. /**
  2825. * 阴影视锥的近裁面。
  2826. */
  2827. get shadowNearPlane():number;
  2828. set shadowNearPlane(value:number);
  2829. /**
  2830. * 灯光烘培类型。
  2831. */
  2832. get lightmapBakedType():number;
  2833. set lightmapBakedType(value:number);
  2834. /**
  2835. * 创建一个 <code>LightSprite</code> 实例。
  2836. */
  2837. constructor();
  2838. /**
  2839. * @inheritDoc
  2840. * @override
  2841. */
  2842. protected _onActive():void;
  2843. /**
  2844. * @inheritDoc
  2845. * @override
  2846. */
  2847. protected _onInActive():void;
  2848. /**
  2849. * @deprecated please use color property instead.
  2850. */
  2851. get diffuseColor():laya.d3.math.Vector3;
  2852. set diffuseColor(value:laya.d3.math.Vector3);
  2853. }
  2854. }
  2855. declare module laya.d3.core.light {
  2856. /**
  2857. * <code>PointLight</code> 类用于创建点光。
  2858. */
  2859. class PointLight extends laya.d3.core.light.LightSprite {
  2860. /**
  2861. * 点光的范围。
  2862. * @return 点光的范围。
  2863. */
  2864. get range():number;
  2865. set range(value:number);
  2866. /**
  2867. * 创建一个 <code>PointLight</code> 实例。
  2868. */
  2869. constructor();
  2870. }
  2871. }
  2872. declare module laya.d3.core.light {
  2873. enum ShadowCascadesMode {
  2874. /** 无级联。 */
  2875. NoCascades = 0,
  2876. /** 二级级联。 */
  2877. TwoCascades = 1,
  2878. /** 四级级联。 */
  2879. FourCascades = 2
  2880. }
  2881. }
  2882. declare module laya.d3.core.light {
  2883. enum ShadowMode {
  2884. None = 0,
  2885. Hard = 1,
  2886. SoftLow = 2,
  2887. SoftHigh = 3
  2888. }
  2889. }
  2890. declare module laya.d3.core.light {
  2891. /**
  2892. * <code>SpotLight</code> 类用于创建聚光。
  2893. */
  2894. class SpotLight extends laya.d3.core.light.LightSprite {
  2895. /**
  2896. * 聚光灯的锥形角度。
  2897. */
  2898. get spotAngle():number;
  2899. set spotAngle(value:number);
  2900. /**
  2901. * 聚光的范围。
  2902. */
  2903. get range():number;
  2904. set range(value:number);
  2905. /**
  2906. * 创建一个 <code>SpotLight</code> 实例。
  2907. */
  2908. constructor();
  2909. }
  2910. }
  2911. declare module laya.d3.core.material {
  2912. /**
  2913. * BaseMaterial has deprecated,please use Material instead.
  2914. * @deprecated
  2915. */
  2916. class BaseMaterial {
  2917. /**
  2918. * @deprecated use Material.MATERIAL instead
  2919. */
  2920. static MATERIAL:string;
  2921. /**
  2922. * @deprecated use Material.RENDERQUEUE_OPAQUE instead
  2923. */
  2924. static RENDERQUEUE_OPAQUE:number;
  2925. /**
  2926. * @deprecated use Material.RENDERQUEUE_ALPHATEST instead
  2927. */
  2928. static RENDERQUEUE_ALPHATEST:number;
  2929. /**
  2930. * @deprecated use Material.RENDERQUEUE_TRANSPARENT instead
  2931. */
  2932. static RENDERQUEUE_TRANSPARENT:number;
  2933. /**
  2934. * @deprecated use Material.ALPHATESTVALUE instead
  2935. */
  2936. static ALPHATESTVALUE:number;
  2937. /**
  2938. * @deprecated use Material.SHADERDEFINE_ALPHATEST instead
  2939. */
  2940. static SHADERDEFINE_ALPHATEST:laya.d3.shader.ShaderDefine;
  2941. /**
  2942. * @deprecated BaseMaterial has deprecated,please use Material instead.
  2943. */
  2944. static load(url:string,complete:laya.utils.Handler):void;
  2945. }
  2946. }
  2947. declare module laya.d3.core.material {
  2948. /**
  2949. * <code>BlinnPhongMaterial</code> 类用于实现Blinn-Phong材质。
  2950. */
  2951. class BlinnPhongMaterial extends laya.d3.core.material.Material {
  2952. /**
  2953. * 高光强度数据源_漫反射贴图的Alpha通道。
  2954. */
  2955. static SPECULARSOURCE_DIFFUSEMAPALPHA:number;
  2956. /**
  2957. * 高光强度数据源_高光贴图的RGB通道。
  2958. */
  2959. static SPECULARSOURCE_SPECULARMAP:number;
  2960. /**
  2961. * 渲染状态_不透明。
  2962. */
  2963. static RENDERMODE_OPAQUE:number;
  2964. /**
  2965. * 渲染状态_阿尔法测试。
  2966. */
  2967. static RENDERMODE_CUTOUT:number;
  2968. /**
  2969. * 渲染状态_透明混合。
  2970. */
  2971. static RENDERMODE_TRANSPARENT:number;
  2972. static SHADERDEFINE_DIFFUSEMAP:laya.d3.shader.ShaderDefine;
  2973. static SHADERDEFINE_NORMALMAP:laya.d3.shader.ShaderDefine;
  2974. static SHADERDEFINE_SPECULARMAP:laya.d3.shader.ShaderDefine;
  2975. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  2976. static SHADERDEFINE_ENABLEVERTEXCOLOR:laya.d3.shader.ShaderDefine;
  2977. static ALBEDOTEXTURE:number;
  2978. static NORMALTEXTURE:number;
  2979. static SPECULARTEXTURE:number;
  2980. static ALBEDOCOLOR:number;
  2981. static MATERIALSPECULAR:number;
  2982. static SHININESS:number;
  2983. static TILINGOFFSET:number;
  2984. static CULL:number;
  2985. static BLEND:number;
  2986. static BLEND_SRC:number;
  2987. static BLEND_DST:number;
  2988. static DEPTH_TEST:number;
  2989. static DEPTH_WRITE:number;
  2990. /**
  2991. * 默认材质,禁止修改
  2992. */
  2993. static defaultMaterial:BlinnPhongMaterial;
  2994. private _albedoColor:any;
  2995. private _albedoIntensity:any;
  2996. private _enableLighting:any;
  2997. private _enableVertexColor:any;
  2998. set _ColorR(value:number);
  2999. set _ColorG(value:number);
  3000. set _ColorB(value:number);
  3001. set _ColorA(value:number);
  3002. set _Color(value:laya.d3.math.Vector4);
  3003. set _SpecColorR(value:number);
  3004. set _SpecColorG(value:number);
  3005. set _SpecColorB(value:number);
  3006. set _SpecColorA(value:number);
  3007. set _SpecColor(value:laya.d3.math.Vector4);
  3008. set _AlbedoIntensity(value:number);
  3009. set _Shininess(value:number);
  3010. set _MainTex_STX(x:number);
  3011. set _MainTex_STY(y:number);
  3012. set _MainTex_STZ(z:number);
  3013. set _MainTex_STW(w:number);
  3014. set _MainTex_ST(value:laya.d3.math.Vector4);
  3015. set _Cutoff(value:number);
  3016. /**
  3017. * 设置渲染模式。
  3018. */
  3019. set renderMode(value:number);
  3020. /**
  3021. * 是否支持顶点色。
  3022. */
  3023. get enableVertexColor():boolean;
  3024. set enableVertexColor(value:boolean);
  3025. /**
  3026. * 纹理平铺和偏移X分量。
  3027. */
  3028. get tilingOffsetX():number;
  3029. set tilingOffsetX(x:number);
  3030. /**
  3031. * 纹理平铺和偏移Y分量。
  3032. */
  3033. get tilingOffsetY():number;
  3034. set tilingOffsetY(y:number);
  3035. /**
  3036. * 纹理平铺和偏移Z分量。
  3037. */
  3038. get tilingOffsetZ():number;
  3039. set tilingOffsetZ(z:number);
  3040. /**
  3041. * 纹理平铺和偏移W分量。
  3042. */
  3043. get tilingOffsetW():number;
  3044. set tilingOffsetW(w:number);
  3045. /**
  3046. * 纹理平铺和偏移。
  3047. */
  3048. get tilingOffset():laya.d3.math.Vector4;
  3049. set tilingOffset(value:laya.d3.math.Vector4);
  3050. /**
  3051. * 反照率颜色R分量。
  3052. */
  3053. get albedoColorR():number;
  3054. set albedoColorR(value:number);
  3055. /**
  3056. * 反照率颜色G分量。
  3057. */
  3058. get albedoColorG():number;
  3059. set albedoColorG(value:number);
  3060. /**
  3061. * 反照率颜色B分量。
  3062. */
  3063. get albedoColorB():number;
  3064. set albedoColorB(value:number);
  3065. /**
  3066. * 反照率颜色Z分量。
  3067. */
  3068. get albedoColorA():number;
  3069. set albedoColorA(value:number);
  3070. /**
  3071. * 反照率颜色。
  3072. */
  3073. get albedoColor():laya.d3.math.Vector4;
  3074. set albedoColor(value:laya.d3.math.Vector4);
  3075. /**
  3076. * 反照率强度。
  3077. */
  3078. get albedoIntensity():number;
  3079. set albedoIntensity(value:number);
  3080. /**
  3081. * 高光颜色R轴分量。
  3082. */
  3083. get specularColorR():number;
  3084. set specularColorR(value:number);
  3085. /**
  3086. * 高光颜色G分量。
  3087. */
  3088. get specularColorG():number;
  3089. set specularColorG(value:number);
  3090. /**
  3091. * 高光颜色B分量。
  3092. */
  3093. get specularColorB():number;
  3094. set specularColorB(value:number);
  3095. /**
  3096. * 高光颜色A分量。
  3097. */
  3098. get specularColorA():number;
  3099. set specularColorA(value:number);
  3100. /**
  3101. * 高光颜色。
  3102. */
  3103. get specularColor():laya.d3.math.Vector4;
  3104. set specularColor(value:laya.d3.math.Vector4);
  3105. /**
  3106. * 高光强度,范围为0到1。
  3107. */
  3108. get shininess():number;
  3109. set shininess(value:number);
  3110. /**
  3111. * 反照率贴图。
  3112. */
  3113. get albedoTexture():laya.resource.BaseTexture;
  3114. set albedoTexture(value:laya.resource.BaseTexture);
  3115. /**
  3116. * 法线贴图。
  3117. */
  3118. get normalTexture():laya.resource.BaseTexture;
  3119. set normalTexture(value:laya.resource.BaseTexture);
  3120. /**
  3121. * 高光贴图。
  3122. */
  3123. get specularTexture():laya.resource.BaseTexture;
  3124. set specularTexture(value:laya.resource.BaseTexture);
  3125. /**
  3126. * 是否写入深度。
  3127. */
  3128. get depthWrite():boolean;
  3129. set depthWrite(value:boolean);
  3130. /**
  3131. * 剔除方式。
  3132. */
  3133. get cull():number;
  3134. set cull(value:number);
  3135. /**
  3136. * 混合方式。
  3137. */
  3138. get blend():number;
  3139. set blend(value:number);
  3140. /**
  3141. * 混合源。
  3142. */
  3143. get blendSrc():number;
  3144. set blendSrc(value:number);
  3145. /**
  3146. * 混合目标。
  3147. */
  3148. get blendDst():number;
  3149. set blendDst(value:number);
  3150. /**
  3151. * 深度测试方式。
  3152. */
  3153. get depthTest():number;
  3154. set depthTest(value:number);
  3155. /**
  3156. * 创建一个 <code>BlinnPhongMaterial</code> 实例。
  3157. */
  3158. constructor();
  3159. /**
  3160. * 克隆。
  3161. * @return 克隆副本。
  3162. * @override
  3163. */
  3164. clone():any;
  3165. /**
  3166. * @inheritDoc
  3167. * @override
  3168. */
  3169. cloneTo(destObject:any):void;
  3170. }
  3171. }
  3172. declare module laya.d3.core.material {
  3173. /**
  3174. * <code>EffectMaterial</code> 类用于实现Mesh特效材质。
  3175. */
  3176. class EffectMaterial extends laya.d3.core.material.Material {
  3177. /**
  3178. * 渲染状态_加色法混合。
  3179. */
  3180. static RENDERMODE_ADDTIVE:number;
  3181. /**
  3182. * 渲染状态_透明混合。
  3183. */
  3184. static RENDERMODE_ALPHABLENDED:number;
  3185. /**
  3186. * 默认材质,禁止修改
  3187. */
  3188. static defaultMaterial:EffectMaterial;
  3189. static SHADERDEFINE_MAINTEXTURE:laya.d3.shader.ShaderDefine;
  3190. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  3191. static SHADERDEFINE_ADDTIVEFOG:laya.d3.shader.ShaderDefine;
  3192. static MAINTEXTURE:number;
  3193. static TINTCOLOR:number;
  3194. static TILINGOFFSET:number;
  3195. static CULL:number;
  3196. static BLEND:number;
  3197. static BLEND_SRC:number;
  3198. static BLEND_DST:number;
  3199. static DEPTH_TEST:number;
  3200. static DEPTH_WRITE:number;
  3201. private _color:any;
  3202. set _TintColorR(value:number);
  3203. set _TintColorG(value:number);
  3204. set _TintColorB(value:number);
  3205. set _TintColorA(value:number);
  3206. set _MainTex_STX(x:number);
  3207. set _MainTex_STY(y:number);
  3208. set _MainTex_STZ(z:number);
  3209. set _MainTex_STW(w:number);
  3210. /**
  3211. * 设置渲染模式。
  3212. */
  3213. set renderMode(value:number);
  3214. /**
  3215. * 颜色R分量。
  3216. */
  3217. get colorR():number;
  3218. set colorR(value:number);
  3219. /**
  3220. * 颜色G分量。
  3221. */
  3222. get colorG():number;
  3223. set colorG(value:number);
  3224. /**
  3225. * 颜色B分量。
  3226. */
  3227. get colorB():number;
  3228. set colorB(value:number);
  3229. /**
  3230. * 颜色A分量。
  3231. */
  3232. get colorA():number;
  3233. set colorA(value:number);
  3234. /**
  3235. * 获取颜色。
  3236. */
  3237. get color():laya.d3.math.Vector4;
  3238. set color(value:laya.d3.math.Vector4);
  3239. /**
  3240. * 贴图。
  3241. */
  3242. get texture():laya.resource.BaseTexture;
  3243. set texture(value:laya.resource.BaseTexture);
  3244. /**
  3245. * 纹理平铺和偏移X分量。
  3246. */
  3247. get tilingOffsetX():number;
  3248. set tilingOffsetX(x:number);
  3249. /**
  3250. * 纹理平铺和偏移Y分量。
  3251. */
  3252. get tilingOffsetY():number;
  3253. set tilingOffsetY(y:number);
  3254. /**
  3255. * 纹理平铺和偏移Z分量。
  3256. */
  3257. get tilingOffsetZ():number;
  3258. set tilingOffsetZ(z:number);
  3259. /**
  3260. * 纹理平铺和偏移W分量。
  3261. */
  3262. get tilingOffsetW():number;
  3263. set tilingOffsetW(w:number);
  3264. /**
  3265. * 纹理平铺和偏移。
  3266. */
  3267. get tilingOffset():laya.d3.math.Vector4;
  3268. set tilingOffset(value:laya.d3.math.Vector4);
  3269. /**
  3270. * 是否写入深度。
  3271. */
  3272. get depthWrite():boolean;
  3273. set depthWrite(value:boolean);
  3274. /**
  3275. * 剔除方式。
  3276. */
  3277. get cull():number;
  3278. set cull(value:number);
  3279. /**
  3280. * 混合方式。
  3281. */
  3282. get blend():number;
  3283. set blend(value:number);
  3284. /**
  3285. * 混合源。
  3286. */
  3287. get blendSrc():number;
  3288. set blendSrc(value:number);
  3289. /**
  3290. * 混合目标。
  3291. */
  3292. get blendDst():number;
  3293. set blendDst(value:number);
  3294. /**
  3295. * 深度测试方式。
  3296. */
  3297. get depthTest():number;
  3298. set depthTest(value:number);
  3299. constructor();
  3300. /**
  3301. * 克隆。
  3302. * @return 克隆副本。
  3303. * @override
  3304. */
  3305. clone():any;
  3306. }
  3307. }
  3308. declare module laya.d3.core.material {
  3309. /**
  3310. * ...
  3311. * @author ...
  3312. */
  3313. class ExtendTerrainMaterial extends laya.d3.core.material.Material {
  3314. /**
  3315. * 渲染状态_不透明。
  3316. */
  3317. static RENDERMODE_OPAQUE:number;
  3318. /**
  3319. * 渲染状态_透明混合。
  3320. */
  3321. static RENDERMODE_TRANSPARENT:number;
  3322. /**
  3323. * 渲染状态_透明混合。
  3324. */
  3325. static SPLATALPHATEXTURE:number;
  3326. static DIFFUSETEXTURE1:number;
  3327. static DIFFUSETEXTURE2:number;
  3328. static DIFFUSETEXTURE3:number;
  3329. static DIFFUSETEXTURE4:number;
  3330. static DIFFUSETEXTURE5:number;
  3331. static DIFFUSESCALEOFFSET1:number;
  3332. static DIFFUSESCALEOFFSET2:number;
  3333. static DIFFUSESCALEOFFSET3:number;
  3334. static DIFFUSESCALEOFFSET4:number;
  3335. static DIFFUSESCALEOFFSET5:number;
  3336. static CULL:number;
  3337. static BLEND:number;
  3338. static BLEND_SRC:number;
  3339. static BLEND_DST:number;
  3340. static DEPTH_TEST:number;
  3341. static DEPTH_WRITE:number;
  3342. /**
  3343. * 地形细节宏定义。
  3344. */
  3345. static SHADERDEFINE_DETAIL_NUM1:laya.d3.shader.ShaderDefine;
  3346. static SHADERDEFINE_DETAIL_NUM2:laya.d3.shader.ShaderDefine;
  3347. static SHADERDEFINE_DETAIL_NUM3:laya.d3.shader.ShaderDefine;
  3348. static SHADERDEFINE_DETAIL_NUM4:laya.d3.shader.ShaderDefine;
  3349. static SHADERDEFINE_DETAIL_NUM5:laya.d3.shader.ShaderDefine;
  3350. /**
  3351. * splatAlpha贴图。
  3352. */
  3353. get splatAlphaTexture():laya.resource.BaseTexture;
  3354. set splatAlphaTexture(value:laya.resource.BaseTexture);
  3355. /**
  3356. * 第一层贴图。
  3357. */
  3358. get diffuseTexture1():laya.resource.BaseTexture;
  3359. set diffuseTexture1(value:laya.resource.BaseTexture);
  3360. /**
  3361. * 第二层贴图。
  3362. */
  3363. get diffuseTexture2():laya.resource.BaseTexture;
  3364. set diffuseTexture2(value:laya.resource.BaseTexture);
  3365. /**
  3366. * 第三层贴图。
  3367. */
  3368. get diffuseTexture3():laya.resource.BaseTexture;
  3369. set diffuseTexture3(value:laya.resource.BaseTexture);
  3370. /**
  3371. * 第四层贴图。
  3372. */
  3373. get diffuseTexture4():laya.resource.BaseTexture;
  3374. set diffuseTexture4(value:laya.resource.BaseTexture);
  3375. /**
  3376. * 第五层贴图。
  3377. */
  3378. get diffuseTexture5():laya.resource.BaseTexture;
  3379. set diffuseTexture5(value:laya.resource.BaseTexture);
  3380. /**
  3381. * 第一层贴图缩放偏移。
  3382. */
  3383. set diffuseScaleOffset1(scaleOffset1:laya.d3.math.Vector4);
  3384. /**
  3385. * 第二层贴图缩放偏移。
  3386. */
  3387. set diffuseScaleOffset2(scaleOffset2:laya.d3.math.Vector4);
  3388. /**
  3389. * 第三层贴图缩放偏移。
  3390. */
  3391. set diffuseScaleOffset3(scaleOffset3:laya.d3.math.Vector4);
  3392. /**
  3393. * 第四层贴图缩放偏移。
  3394. */
  3395. set diffuseScaleOffset4(scaleOffset4:laya.d3.math.Vector4);
  3396. /**
  3397. * 第五层贴图缩放偏移。
  3398. */
  3399. set diffuseScaleOffset5(scaleOffset5:laya.d3.math.Vector4);
  3400. /**
  3401. * 设置渲染模式。
  3402. */
  3403. set renderMode(value:number);
  3404. /**
  3405. * 是否写入深度。
  3406. */
  3407. get depthWrite():boolean;
  3408. set depthWrite(value:boolean);
  3409. /**
  3410. * 剔除方式。
  3411. */
  3412. get cull():number;
  3413. set cull(value:number);
  3414. /**
  3415. * 混合方式。
  3416. */
  3417. get blend():number;
  3418. set blend(value:number);
  3419. /**
  3420. * 混合源。
  3421. */
  3422. get blendSrc():number;
  3423. set blendSrc(value:number);
  3424. /**
  3425. * 混合目标。
  3426. */
  3427. get blendDst():number;
  3428. set blendDst(value:number);
  3429. /**
  3430. * 深度测试方式。
  3431. */
  3432. get depthTest():number;
  3433. set depthTest(value:number);
  3434. constructor();
  3435. /**
  3436. * 克隆。
  3437. * @return 克隆副本。
  3438. * @override
  3439. */
  3440. clone():any;
  3441. }
  3442. }
  3443. declare module laya.d3.core.material {
  3444. /**
  3445. * <code>Material</code> 类用于创建材质。
  3446. */
  3447. class Material extends laya.resource.Resource implements laya.d3.core.IClone {
  3448. /**
  3449. * Material资源。
  3450. */
  3451. static MATERIAL:string;
  3452. /**
  3453. * 渲染队列_不透明。
  3454. */
  3455. static RENDERQUEUE_OPAQUE:number;
  3456. /**
  3457. * 渲染队列_阿尔法裁剪。
  3458. */
  3459. static RENDERQUEUE_ALPHATEST:number;
  3460. /**
  3461. * 渲染队列_透明。
  3462. */
  3463. static RENDERQUEUE_TRANSPARENT:number;
  3464. /**
  3465. * 着色器变量,透明测试值。
  3466. */
  3467. static ALPHATESTVALUE:number;
  3468. /**
  3469. * 材质级着色器宏定义,透明测试。
  3470. */
  3471. static SHADERDEFINE_ALPHATEST:laya.d3.shader.ShaderDefine;
  3472. /**
  3473. * 加载材质。
  3474. * @param url 材质地址。
  3475. * @param complete 完成回掉。
  3476. */
  3477. static load(url:string,complete:laya.utils.Handler):void;
  3478. /**
  3479. * @inheritDoc
  3480. */
  3481. static _parse(data:any,propertyParams?:any,constructParams?:any[]):Material;
  3482. /**
  3483. * @private
  3484. */
  3485. _shaderValues:laya.d3.shader.ShaderData;
  3486. /**
  3487. * 所属渲染队列.
  3488. */
  3489. renderQueue:number;
  3490. /**
  3491. * 着色器数据。
  3492. */
  3493. get shaderData():laya.d3.shader.ShaderData;
  3494. /**
  3495. * 透明测试模式裁剪值。
  3496. */
  3497. get alphaTestValue():number;
  3498. set alphaTestValue(value:number);
  3499. /**
  3500. * 是否透明裁剪。
  3501. */
  3502. get alphaTest():boolean;
  3503. set alphaTest(value:boolean);
  3504. /**
  3505. * 创建一个 <code>BaseMaterial</code> 实例。
  3506. */
  3507. constructor();
  3508. /**
  3509. * @inheritDoc
  3510. * @override
  3511. */
  3512. protected _disposeResource():void;
  3513. /**
  3514. * 设置使用Shader名字。
  3515. * @param name 名称。
  3516. */
  3517. setShaderName(name:string):void;
  3518. /**
  3519. * 克隆。
  3520. * @param destObject 克隆源。
  3521. */
  3522. cloneTo(destObject:any):void;
  3523. /**
  3524. * 克隆。
  3525. * @return 克隆副本。
  3526. */
  3527. clone():any;
  3528. get _defineDatas():laya.d3.shader.DefineDatas;
  3529. }
  3530. }
  3531. declare module laya.d3.core.material {
  3532. enum PBRRenderMode {
  3533. /**不透明。*/
  3534. Opaque = 0,
  3535. /**透明裁剪。*/
  3536. Cutout = 1,
  3537. /**透明混合_游戏中经常使用的透明。*/
  3538. Fade = 2,
  3539. /**透明混合_物理上看似合理的透明。*/
  3540. Transparent = 3
  3541. }
  3542. /**
  3543. * PBR材质的父类,该类为抽象类。
  3544. */
  3545. class PBRMaterial extends laya.d3.core.material.Material {
  3546. /**
  3547. * 渲染质量。
  3548. */
  3549. static renderQuality:laya.d3.core.material.PBRRenderQuality;
  3550. /**
  3551. * @private
  3552. */
  3553. static __init__():void;
  3554. /**
  3555. * 漫反射颜色。
  3556. */
  3557. get albedoColor():laya.d3.math.Vector4;
  3558. set albedoColor(value:laya.d3.math.Vector4);
  3559. /**
  3560. * 漫反射贴图。
  3561. */
  3562. get albedoTexture():laya.resource.BaseTexture;
  3563. set albedoTexture(value:laya.resource.BaseTexture);
  3564. /**
  3565. * 法线贴图。
  3566. */
  3567. get normalTexture():laya.resource.BaseTexture;
  3568. set normalTexture(value:laya.resource.BaseTexture);
  3569. /**
  3570. * 法线贴图缩放系数。
  3571. */
  3572. get normalTextureScale():number;
  3573. set normalTextureScale(value:number);
  3574. /**
  3575. * 视差贴图。
  3576. */
  3577. get parallaxTexture():laya.resource.BaseTexture;
  3578. set parallaxTexture(value:laya.resource.BaseTexture);
  3579. /**
  3580. * 视差贴图缩放系数。
  3581. */
  3582. get parallaxTextureScale():number;
  3583. set parallaxTextureScale(value:number);
  3584. /**
  3585. * 遮挡贴图。
  3586. */
  3587. get occlusionTexture():laya.resource.BaseTexture;
  3588. set occlusionTexture(value:laya.resource.BaseTexture);
  3589. /**
  3590. * 遮挡贴图强度,范围为0到1。
  3591. */
  3592. get occlusionTextureStrength():number;
  3593. set occlusionTextureStrength(value:number);
  3594. /**
  3595. * 光滑度,范围为0到1。
  3596. */
  3597. get smoothness():number;
  3598. set smoothness(value:number);
  3599. /**
  3600. * 光滑度缩放系数,范围为0到1。
  3601. */
  3602. get smoothnessTextureScale():number;
  3603. set smoothnessTextureScale(value:number);
  3604. /**
  3605. * 是否开启自发光。
  3606. */
  3607. get enableEmission():boolean;
  3608. set enableEmission(value:boolean);
  3609. /**
  3610. * 自发光颜色。
  3611. */
  3612. get emissionColor():laya.d3.math.Vector4;
  3613. set emissionColor(value:laya.d3.math.Vector4);
  3614. /**
  3615. * 自发光贴图。
  3616. */
  3617. get emissionTexture():laya.resource.BaseTexture;
  3618. set emissionTexture(value:laya.resource.BaseTexture);
  3619. /**
  3620. * 纹理平铺和偏移。
  3621. */
  3622. get tilingOffset():laya.d3.math.Vector4;
  3623. set tilingOffset(value:laya.d3.math.Vector4);
  3624. /**
  3625. * 是否写入深度。
  3626. */
  3627. get depthWrite():boolean;
  3628. set depthWrite(value:boolean);
  3629. /**
  3630. * 剔除方式。
  3631. */
  3632. get cull():number;
  3633. set cull(value:number);
  3634. /**
  3635. * 混合方式。
  3636. */
  3637. get blend():number;
  3638. set blend(value:number);
  3639. /**
  3640. * 混合源。
  3641. */
  3642. get blendSrc():number;
  3643. set blendSrc(value:number);
  3644. /**
  3645. * 混合目标。
  3646. */
  3647. get blendDst():number;
  3648. set blendDst(value:number);
  3649. /**
  3650. * 深度测试方式。
  3651. */
  3652. get depthTest():number;
  3653. set depthTest(value:number);
  3654. /**
  3655. * 渲染模式。
  3656. */
  3657. set renderMode(value:number);
  3658. constructor();
  3659. /**
  3660. * @deprecated
  3661. */
  3662. get enableReflection():boolean;
  3663. set enableReflection(value:boolean);
  3664. }
  3665. }
  3666. declare module laya.d3.core.material {
  3667. enum PBRRenderQuality {
  3668. /**高质量。*/
  3669. High = 0,
  3670. /**低质量。*/
  3671. Low = 1
  3672. }
  3673. }
  3674. declare module laya.d3.core.material {
  3675. enum PBRSpecularSmoothnessSource {
  3676. /**金属度贴图的Alpha通道。*/
  3677. SpecularTextureAlpha = 0,
  3678. /**反射率贴图的Alpha通道。*/
  3679. AlbedoTextureAlpha = 1
  3680. }
  3681. /**
  3682. * <code>PBRSpecularMaterial</code> 类用于实现PBR(Specular)材质。
  3683. */
  3684. class PBRSpecularMaterial extends laya.d3.core.material.PBRMaterial {
  3685. /**
  3686. * 默认材质,禁止修改
  3687. */
  3688. static defaultMaterial:PBRSpecularMaterial;
  3689. /**
  3690. * 高光贴图。
  3691. */
  3692. get specularTexture():laya.resource.BaseTexture;
  3693. set specularTexture(value:laya.resource.BaseTexture);
  3694. /**
  3695. * 高光颜色。
  3696. */
  3697. get specularColor():laya.d3.math.Vector4;
  3698. set specularColor(value:laya.d3.math.Vector4);
  3699. /**
  3700. * 创建一个 <code>PBRSpecularMaterial</code> 实例。
  3701. */
  3702. constructor();
  3703. /**
  3704. * 克隆。
  3705. * @return 克隆副本。
  3706. * @override
  3707. */
  3708. clone():any;
  3709. }
  3710. }
  3711. declare module laya.d3.core.material {
  3712. enum PBRMetallicSmoothnessSource {
  3713. /**金属度贴图的Alpha通道。*/
  3714. MetallicGlossTextureAlpha = 0,
  3715. /**反射率贴图的Alpha通道。*/
  3716. AlbedoTextureAlpha = 1
  3717. }
  3718. /**
  3719. * <code>PBRStandardMaterial</code> 类用于实现PBR材质。
  3720. */
  3721. class PBRStandardMaterial extends laya.d3.core.material.PBRMaterial {
  3722. /**
  3723. * 默认材质,禁止修改
  3724. */
  3725. static defaultMaterial:PBRStandardMaterial;
  3726. /**
  3727. * 金属光滑度贴图。
  3728. */
  3729. get metallicGlossTexture():laya.resource.BaseTexture;
  3730. set metallicGlossTexture(value:laya.resource.BaseTexture);
  3731. /**
  3732. * 获取金属度,范围为0到1。
  3733. */
  3734. get metallic():number;
  3735. set metallic(value:number);
  3736. /**
  3737. * 光滑度数据源,0或1。
  3738. */
  3739. get smoothnessSource():PBRMetallicSmoothnessSource;
  3740. set smoothnessSource(value:PBRMetallicSmoothnessSource);
  3741. /**
  3742. * 创建一个 <code>PBRStandardMaterial</code> 实例。
  3743. */
  3744. constructor();
  3745. /**
  3746. * 克隆。
  3747. * @return 克隆副本。
  3748. * @override
  3749. */
  3750. clone():any;
  3751. }
  3752. }
  3753. declare module laya.d3.core.material {
  3754. /**
  3755. * <code>RenderState</code> 类用于控制渲染状态。
  3756. */
  3757. class RenderState implements laya.d3.core.IClone {
  3758. /**
  3759. * 剔除枚举_不剔除。
  3760. */
  3761. static CULL_NONE:number;
  3762. /**
  3763. * 剔除枚举_剔除正面。
  3764. */
  3765. static CULL_FRONT:number;
  3766. /**
  3767. * 剔除枚举_剔除背面。
  3768. */
  3769. static CULL_BACK:number;
  3770. /**
  3771. * 混合枚举_禁用。
  3772. */
  3773. static BLEND_DISABLE:number;
  3774. /**
  3775. * 混合枚举_启用_RGB和Alpha统一混合。
  3776. */
  3777. static BLEND_ENABLE_ALL:number;
  3778. /**
  3779. * 混合枚举_启用_RGB和Alpha单独混合。
  3780. */
  3781. static BLEND_ENABLE_SEPERATE:number;
  3782. /**
  3783. * 混合参数枚举_零,例:RGB(0,0,0),Alpha:(1)。
  3784. */
  3785. static BLENDPARAM_ZERO:number;
  3786. /**
  3787. * 混合参数枚举_一,例:RGB(1,1,1),Alpha:(1)。
  3788. */
  3789. static BLENDPARAM_ONE:number;
  3790. /**
  3791. * 混合参数枚举_源颜色,例:RGB(Rs, Gs, Bs),Alpha(As)。
  3792. */
  3793. static BLENDPARAM_SRC_COLOR:number;
  3794. /**
  3795. * 混合参数枚举_一减源颜色,例:RGB(1-Rs, 1-Gs, 1-Bs),Alpha(1-As)。
  3796. */
  3797. static BLENDPARAM_ONE_MINUS_SRC_COLOR:number;
  3798. /**
  3799. * 混合参数枚举_目标颜色,例:RGB(Rd, Gd, Bd),Alpha(Ad)。
  3800. */
  3801. static BLENDPARAM_DST_COLOR:number;
  3802. /**
  3803. * 混合参数枚举_一减目标颜色,例:RGB(1-Rd, 1-Gd, 1-Bd),Alpha(1-Ad)。
  3804. */
  3805. static BLENDPARAM_ONE_MINUS_DST_COLOR:number;
  3806. /**
  3807. * 混合参数枚举_源透明,例:RGB(As, As, As),Alpha(1-As)。
  3808. */
  3809. static BLENDPARAM_SRC_ALPHA:number;
  3810. /**
  3811. * 混合参数枚举_一减源阿尔法,例:RGB(1-As, 1-As, 1-As),Alpha(1-As)。
  3812. */
  3813. static BLENDPARAM_ONE_MINUS_SRC_ALPHA:number;
  3814. /**
  3815. * 混合参数枚举_目标阿尔法,例:RGB(Ad, Ad, Ad),Alpha(Ad)。
  3816. */
  3817. static BLENDPARAM_DST_ALPHA:number;
  3818. /**
  3819. * 混合参数枚举_一减目标阿尔法,例:RGB(1-Ad, 1-Ad, 1-Ad),Alpha(Ad)。
  3820. */
  3821. static BLENDPARAM_ONE_MINUS_DST_ALPHA:number;
  3822. /**
  3823. * 混合参数枚举_阿尔法饱和,例:RGB(min(As, 1 - Ad), min(As, 1 - Ad), min(As, 1 - Ad)),Alpha(1)。
  3824. */
  3825. static BLENDPARAM_SRC_ALPHA_SATURATE:number;
  3826. /**
  3827. * 混合方程枚举_加法,例:source + destination
  3828. */
  3829. static BLENDEQUATION_ADD:number;
  3830. /**
  3831. * 混合方程枚举_减法,例:source - destination
  3832. */
  3833. static BLENDEQUATION_SUBTRACT:number;
  3834. /**
  3835. * 混合方程枚举_反序减法,例:destination - source
  3836. */
  3837. static BLENDEQUATION_REVERSE_SUBTRACT:number;
  3838. /**
  3839. * 深度测试函数枚举_关闭深度测试。
  3840. */
  3841. static DEPTHTEST_OFF:number;
  3842. /**
  3843. * 深度测试函数枚举_从不通过。
  3844. */
  3845. static DEPTHTEST_NEVER:number;
  3846. /**
  3847. * 深度测试函数枚举_小于时通过。
  3848. */
  3849. static DEPTHTEST_LESS:number;
  3850. /**
  3851. * 深度测试函数枚举_等于时通过。
  3852. */
  3853. static DEPTHTEST_EQUAL:number;
  3854. /**
  3855. * 深度测试函数枚举_小于等于时通过。
  3856. */
  3857. static DEPTHTEST_LEQUAL:number;
  3858. /**
  3859. * 深度测试函数枚举_大于时通过。
  3860. */
  3861. static DEPTHTEST_GREATER:number;
  3862. /**
  3863. * 深度测试函数枚举_不等于时通过。
  3864. */
  3865. static DEPTHTEST_NOTEQUAL:number;
  3866. /**
  3867. * 深度测试函数枚举_大于等于时通过。
  3868. */
  3869. static DEPTHTEST_GEQUAL:number;
  3870. /**
  3871. * 深度测试函数枚举_总是通过。
  3872. */
  3873. static DEPTHTEST_ALWAYS:number;
  3874. /**
  3875. * 渲染剔除状态。
  3876. */
  3877. cull:number;
  3878. /**
  3879. * 透明混合。
  3880. */
  3881. blend:number;
  3882. /**
  3883. * 源混合参数,在blend为BLEND_ENABLE_ALL时生效。
  3884. */
  3885. srcBlend:number;
  3886. /**
  3887. * 目标混合参数,在blend为BLEND_ENABLE_ALL时生效。
  3888. */
  3889. dstBlend:number;
  3890. /**
  3891. * RGB源混合参数,在blend为BLEND_ENABLE_SEPERATE时生效。
  3892. */
  3893. srcBlendRGB:number;
  3894. /**
  3895. * RGB目标混合参数,在blend为BLEND_ENABLE_SEPERATE时生效。
  3896. */
  3897. dstBlendRGB:number;
  3898. /**
  3899. * Alpha源混合参数,在blend为BLEND_ENABLE_SEPERATE时生效。
  3900. */
  3901. srcBlendAlpha:number;
  3902. /**
  3903. * Alpha目标混合参数,在blend为BLEND_ENABLE_SEPERATE时生效。
  3904. */
  3905. dstBlendAlpha:number;
  3906. /**
  3907. * 混合常量颜色。
  3908. */
  3909. blendConstColor:laya.d3.math.Vector4;
  3910. /**
  3911. * 混合方程。
  3912. */
  3913. blendEquation:number;
  3914. /**
  3915. * RGB混合方程。
  3916. */
  3917. blendEquationRGB:number;
  3918. /**
  3919. * Alpha混合方程。
  3920. */
  3921. blendEquationAlpha:number;
  3922. /**
  3923. * 深度测试函数。
  3924. */
  3925. depthTest:number;
  3926. /**
  3927. * 是否深度写入。
  3928. */
  3929. depthWrite:boolean;
  3930. /**
  3931. * 创建一个 <code>RenderState</code> 实例。
  3932. */
  3933. constructor();
  3934. /**
  3935. * 克隆。
  3936. * @param destObject 克隆源。
  3937. */
  3938. cloneTo(dest:any):void;
  3939. /**
  3940. * 克隆。
  3941. * @return 克隆副本。
  3942. */
  3943. clone():any;
  3944. }
  3945. }
  3946. declare module laya.d3.core.material {
  3947. /**
  3948. * <code>SkyBoxMaterial</code> 类用于实现SkyBoxMaterial材质。
  3949. */
  3950. class SkyBoxMaterial extends laya.d3.core.material.Material {
  3951. static TINTCOLOR:number;
  3952. static EXPOSURE:number;
  3953. static ROTATION:number;
  3954. static TEXTURECUBE:number;
  3955. /**
  3956. * 默认材质,禁止修改
  3957. */
  3958. static defaultMaterial:SkyBoxMaterial;
  3959. /**
  3960. * 颜色。
  3961. */
  3962. get tintColor():laya.d3.math.Vector4;
  3963. set tintColor(value:laya.d3.math.Vector4);
  3964. /**
  3965. * 曝光强度。
  3966. */
  3967. get exposure():number;
  3968. set exposure(value:number);
  3969. /**
  3970. * 旋转角度。
  3971. */
  3972. get rotation():number;
  3973. set rotation(value:number);
  3974. /**
  3975. * 天空盒纹理。
  3976. */
  3977. get textureCube():laya.d3.resource.TextureCube;
  3978. set textureCube(value:laya.d3.resource.TextureCube);
  3979. /**
  3980. * 克隆。
  3981. * @return 克隆副本。
  3982. * @override
  3983. */
  3984. clone():any;
  3985. /**
  3986. * 创建一个 <code>SkyBoxMaterial</code> 实例。
  3987. */
  3988. constructor();
  3989. }
  3990. }
  3991. declare module laya.d3.core.material {
  3992. /**
  3993. * <code>SkyPanoramicMaterial</code> 类用于实现SkyPanoramicMaterial材质。
  3994. */
  3995. class SkyPanoramicMaterial extends laya.d3.core.material.Material {
  3996. static TINTCOLOR:number;
  3997. static EXPOSURE:number;
  3998. static ROTATION:number;
  3999. static TEXTURE:number;
  4000. static TEXTURE_HDR_PARAMS:number;
  4001. /**
  4002. * 颜色。
  4003. */
  4004. get tintColor():laya.d3.math.Vector4;
  4005. set tintColor(value:laya.d3.math.Vector4);
  4006. /**
  4007. * 曝光强度。
  4008. */
  4009. get exposure():number;
  4010. set exposure(value:number);
  4011. /**
  4012. * 旋转角度。
  4013. */
  4014. get rotation():number;
  4015. set rotation(value:number);
  4016. /**
  4017. * 全景天空纹理。
  4018. */
  4019. get panoramicTexture():laya.resource.Texture2D;
  4020. set panoramicTexture(value:laya.resource.Texture2D);
  4021. /**
  4022. * 全景天空纹理解码格式。
  4023. */
  4024. get panoramicTextureDecodeFormat():laya.resource.TextureDecodeFormat;
  4025. set panoramicTextureDecodeFormat(value:laya.resource.TextureDecodeFormat);
  4026. /**
  4027. * 创建一个 <code>SkyPanoramicMaterial</code> 实例。
  4028. */
  4029. constructor();
  4030. }
  4031. }
  4032. declare module laya.d3.core.material {
  4033. /**
  4034. * <code>SkyProceduralMaterial</code> 类用于实现SkyProceduralMaterial材质。
  4035. */
  4036. class SkyProceduralMaterial extends laya.d3.core.material.Material {
  4037. /**
  4038. * 太阳_无
  4039. */
  4040. static SUN_NODE:number;
  4041. /**
  4042. * 太阳_精简
  4043. */
  4044. static SUN_SIMPLE:number;
  4045. /**
  4046. * 太阳_高质量
  4047. */
  4048. static SUN_HIGH_QUALITY:number;
  4049. /**
  4050. * 默认材质,禁止修改
  4051. */
  4052. static defaultMaterial:SkyProceduralMaterial;
  4053. /**
  4054. * 太阳状态。
  4055. */
  4056. get sunDisk():number;
  4057. set sunDisk(value:number);
  4058. /**
  4059. * 太阳尺寸,范围是0到1。
  4060. */
  4061. get sunSize():number;
  4062. set sunSize(value:number);
  4063. /**
  4064. * 太阳尺寸收缩,范围是0到20。
  4065. */
  4066. get sunSizeConvergence():number;
  4067. set sunSizeConvergence(value:number);
  4068. /**
  4069. * 大气厚度,范围是0到5。
  4070. */
  4071. get atmosphereThickness():number;
  4072. set atmosphereThickness(value:number);
  4073. /**
  4074. * 天空颜色。
  4075. */
  4076. get skyTint():laya.d3.math.Vector4;
  4077. set skyTint(value:laya.d3.math.Vector4);
  4078. /**
  4079. * 地面颜色。
  4080. */
  4081. get groundTint():laya.d3.math.Vector4;
  4082. set groundTint(value:laya.d3.math.Vector4);
  4083. /**
  4084. * 曝光强度,范围是0到8。
  4085. */
  4086. get exposure():number;
  4087. set exposure(value:number);
  4088. /**
  4089. * 创建一个 <code>SkyProceduralMaterial</code> 实例。
  4090. */
  4091. constructor();
  4092. /**
  4093. * 克隆。
  4094. * @return 克隆副本。
  4095. * @override
  4096. */
  4097. clone():any;
  4098. }
  4099. }
  4100. declare module laya.d3.core.material {
  4101. /**
  4102. * <code>UnlitMaterial</code> 类用于实现不受光照影响的材质。
  4103. */
  4104. class UnlitMaterial extends laya.d3.core.material.Material {
  4105. /**
  4106. * 渲染状态_不透明。
  4107. */
  4108. static RENDERMODE_OPAQUE:number;
  4109. /**
  4110. * 渲染状态_阿尔法测试。
  4111. */
  4112. static RENDERMODE_CUTOUT:number;
  4113. /**
  4114. * 渲染状态__透明混合。
  4115. */
  4116. static RENDERMODE_TRANSPARENT:number;
  4117. /**
  4118. * 渲染状态__加色法混合。
  4119. */
  4120. static RENDERMODE_ADDTIVE:number;
  4121. static SHADERDEFINE_ALBEDOTEXTURE:laya.d3.shader.ShaderDefine;
  4122. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  4123. static SHADERDEFINE_ENABLEVERTEXCOLOR:laya.d3.shader.ShaderDefine;
  4124. static ALBEDOTEXTURE:number;
  4125. static ALBEDOCOLOR:number;
  4126. static TILINGOFFSET:number;
  4127. static CULL:number;
  4128. static BLEND:number;
  4129. static BLEND_SRC:number;
  4130. static BLEND_DST:number;
  4131. static DEPTH_TEST:number;
  4132. static DEPTH_WRITE:number;
  4133. /**
  4134. * 默认材质,禁止修改
  4135. */
  4136. static defaultMaterial:UnlitMaterial;
  4137. private _albedoColor:any;
  4138. private _albedoIntensity:any;
  4139. private _enableVertexColor:any;
  4140. set _ColorR(value:number);
  4141. set _ColorG(value:number);
  4142. set _ColorB(value:number);
  4143. set _ColorA(value:number);
  4144. set _AlbedoIntensity(value:number);
  4145. set _MainTex_STX(x:number);
  4146. set _MainTex_STY(y:number);
  4147. set _MainTex_STZ(z:number);
  4148. set _MainTex_STW(w:number);
  4149. set _Cutoff(value:number);
  4150. /**
  4151. * 反照率颜色R分量。
  4152. */
  4153. get albedoColorR():number;
  4154. set albedoColorR(value:number);
  4155. /**
  4156. * 反照率颜色G分量。
  4157. */
  4158. get albedoColorG():number;
  4159. set albedoColorG(value:number);
  4160. /**
  4161. * 反照率颜色B分量。
  4162. */
  4163. get albedoColorB():number;
  4164. set albedoColorB(value:number);
  4165. /**
  4166. * 反照率颜色Z分量。
  4167. */
  4168. get albedoColorA():number;
  4169. set albedoColorA(value:number);
  4170. /**
  4171. * 反照率颜色。
  4172. */
  4173. get albedoColor():laya.d3.math.Vector4;
  4174. set albedoColor(value:laya.d3.math.Vector4);
  4175. /**
  4176. * 反照率强度。
  4177. */
  4178. get albedoIntensity():number;
  4179. set albedoIntensity(value:number);
  4180. /**
  4181. * 反照率贴图。
  4182. */
  4183. get albedoTexture():laya.resource.BaseTexture;
  4184. set albedoTexture(value:laya.resource.BaseTexture);
  4185. /**
  4186. * 纹理平铺和偏移X分量。
  4187. */
  4188. get tilingOffsetX():number;
  4189. set tilingOffsetX(x:number);
  4190. /**
  4191. * 纹理平铺和偏移Y分量。
  4192. */
  4193. get tilingOffsetY():number;
  4194. set tilingOffsetY(y:number);
  4195. /**
  4196. * 纹理平铺和偏移Z分量。
  4197. */
  4198. get tilingOffsetZ():number;
  4199. set tilingOffsetZ(z:number);
  4200. /**
  4201. * 纹理平铺和偏移W分量。
  4202. */
  4203. get tilingOffsetW():number;
  4204. set tilingOffsetW(w:number);
  4205. /**
  4206. * 纹理平铺和偏移。
  4207. */
  4208. get tilingOffset():laya.d3.math.Vector4;
  4209. set tilingOffset(value:laya.d3.math.Vector4);
  4210. /**
  4211. * 是否支持顶点色。
  4212. */
  4213. get enableVertexColor():boolean;
  4214. set enableVertexColor(value:boolean);
  4215. /**
  4216. * 渲染模式。
  4217. */
  4218. set renderMode(value:number);
  4219. /**
  4220. * 是否写入深度。
  4221. */
  4222. get depthWrite():boolean;
  4223. set depthWrite(value:boolean);
  4224. /**
  4225. * 剔除方式。
  4226. */
  4227. get cull():number;
  4228. set cull(value:number);
  4229. /**
  4230. * 混合方式。
  4231. */
  4232. get blend():number;
  4233. set blend(value:number);
  4234. /**
  4235. * 混合源。
  4236. */
  4237. get blendSrc():number;
  4238. set blendSrc(value:number);
  4239. /**
  4240. * 混合目标。
  4241. */
  4242. get blendDst():number;
  4243. set blendDst(value:number);
  4244. /**
  4245. * 深度测试方式。
  4246. */
  4247. get depthTest():number;
  4248. set depthTest(value:number);
  4249. constructor();
  4250. /**
  4251. * 克隆。
  4252. * @return 克隆副本。
  4253. * @override
  4254. */
  4255. clone():any;
  4256. }
  4257. }
  4258. declare module laya.d3.core.material {
  4259. /**
  4260. * <code>WaterPrimaryMaterial</code> 类用于实现水材质。
  4261. */
  4262. class WaterPrimaryMaterial extends laya.d3.core.material.Material {
  4263. static HORIZONCOLOR:number;
  4264. static MAINTEXTURE:number;
  4265. static NORMALTEXTURE:number;
  4266. static WAVESCALE:number;
  4267. static WAVESPEED:number;
  4268. static SHADERDEFINE_MAINTEXTURE:laya.d3.shader.ShaderDefine;
  4269. static SHADERDEFINE_NORMALTEXTURE:laya.d3.shader.ShaderDefine;
  4270. /**
  4271. * 默认材质,禁止修改
  4272. */
  4273. static defaultMaterial:WaterPrimaryMaterial;
  4274. /**
  4275. * 地平线颜色。
  4276. */
  4277. get horizonColor():laya.d3.math.Vector4;
  4278. set horizonColor(value:laya.d3.math.Vector4);
  4279. /**
  4280. * 主贴图。
  4281. */
  4282. get mainTexture():laya.resource.BaseTexture;
  4283. set mainTexture(value:laya.resource.BaseTexture);
  4284. /**
  4285. * 法线贴图。
  4286. */
  4287. get normalTexture():laya.resource.BaseTexture;
  4288. set normalTexture(value:laya.resource.BaseTexture);
  4289. /**
  4290. * 波动缩放系数。
  4291. */
  4292. get waveScale():number;
  4293. set waveScale(value:number);
  4294. /**
  4295. * 波动速率。
  4296. */
  4297. get waveSpeed():laya.d3.math.Vector4;
  4298. set waveSpeed(value:laya.d3.math.Vector4);
  4299. constructor();
  4300. /**
  4301. * 克隆。
  4302. * @return 克隆副本。
  4303. * @override
  4304. */
  4305. clone():any;
  4306. }
  4307. }
  4308. declare module laya.d3.core {
  4309. /**
  4310. * <code>MeshFilter</code> 类用于创建网格过滤器。
  4311. */
  4312. class MeshFilter {
  4313. /**
  4314. * 共享网格。
  4315. */
  4316. get sharedMesh():laya.d3.resource.models.Mesh;
  4317. set sharedMesh(value:laya.d3.resource.models.Mesh);
  4318. /**
  4319. * 创建一个新的 <code>MeshFilter</code> 实例。
  4320. * @param owner 所属网格精灵。
  4321. */
  4322. constructor(owner:laya.d3.core.RenderableSprite3D);
  4323. /**
  4324. * @inheritDoc
  4325. */
  4326. destroy():void;
  4327. }
  4328. }
  4329. declare module laya.d3.core {
  4330. /**
  4331. * <code>MeshRenderer</code> 类用于网格渲染器。
  4332. */
  4333. class MeshRenderer extends laya.d3.core.render.BaseRender {
  4334. /**
  4335. * 创建一个新的 <code>MeshRender</code> 实例。
  4336. */
  4337. constructor(owner:laya.d3.core.RenderableSprite3D);
  4338. }
  4339. }
  4340. declare module laya.d3.core {
  4341. /**
  4342. * <code>MeshSprite3D</code> 类用于创建网格。
  4343. */
  4344. class MeshSprite3D extends laya.d3.core.RenderableSprite3D {
  4345. private _meshFilter:any;
  4346. /**
  4347. * 网格过滤器。
  4348. */
  4349. get meshFilter():laya.d3.core.MeshFilter;
  4350. /**
  4351. * 网格渲染器。
  4352. */
  4353. get meshRenderer():laya.d3.core.MeshRenderer;
  4354. /**
  4355. * 创建一个 <code>MeshSprite3D</code> 实例。
  4356. * @param mesh 网格,同时会加载网格所用默认材质。
  4357. * @param name 名字。
  4358. */
  4359. constructor(mesh?:laya.d3.resource.models.Mesh,name?:string);
  4360. /**
  4361. * @inheritDoc
  4362. * @override
  4363. */
  4364. destroy(destroyChild?:boolean):void;
  4365. }
  4366. }
  4367. declare module laya.d3.core {
  4368. class MeshSprite3DShaderDeclaration {
  4369. static SHADERDEFINE_UV0:laya.d3.shader.ShaderDefine;
  4370. static SHADERDEFINE_COLOR:laya.d3.shader.ShaderDefine;
  4371. static SHADERDEFINE_UV1:laya.d3.shader.ShaderDefine;
  4372. static SHADERDEFINE_GPU_INSTANCE:laya.d3.shader.ShaderDefine;
  4373. }
  4374. }
  4375. declare module laya.d3.core {
  4376. /**
  4377. * <code>TerrainMeshSprite3D</code> 类用于创建网格。
  4378. */
  4379. class MeshTerrainSprite3D extends laya.d3.core.MeshSprite3D {
  4380. private static _tempVector3:any;
  4381. private static _tempMatrix4x4:any;
  4382. /**
  4383. * 从网格创建一个TerrainMeshSprite3D实例和其高度图属性。
  4384. * @param mesh 网格。
  4385. * @param heightMapWidth 高度图宽度。
  4386. * @param heightMapHeight 高度图高度。
  4387. * @param name 名字。
  4388. */
  4389. static createFromMesh(mesh:laya.d3.resource.models.Mesh,heightMapWidth:number,heightMapHeight:number,name?:string):MeshTerrainSprite3D;
  4390. /**
  4391. * 从网格创建一个TerrainMeshSprite3D实例、图片读取高度图属性。
  4392. * @param mesh 网格。
  4393. * @param image 高度图。
  4394. * @param name 名字。
  4395. */
  4396. static createFromMeshAndHeightMap(mesh:laya.d3.resource.models.Mesh,texture:laya.resource.Texture2D,minHeight:number,maxHeight:number,name?:string):MeshTerrainSprite3D;
  4397. private _minX:any;
  4398. private _minZ:any;
  4399. private _cellSize:any;
  4400. private _heightMap:any;
  4401. /**
  4402. * 获取地形X轴最小位置。
  4403. * @return 地形X轴最小位置。
  4404. */
  4405. get minX():number;
  4406. /**
  4407. * 获取地形Z轴最小位置。
  4408. * @return 地形X轴最小位置。
  4409. */
  4410. get minZ():number;
  4411. /**
  4412. * 获取地形X轴长度。
  4413. * @return 地形X轴长度。
  4414. */
  4415. get width():number;
  4416. /**
  4417. * 获取地形Z轴长度。
  4418. * @return 地形Z轴长度。
  4419. */
  4420. get depth():number;
  4421. /**
  4422. * 创建一个 <code>TerrainMeshSprite3D</code> 实例。
  4423. * @param mesh 网格。
  4424. * @param heightMap 高度图。
  4425. * @param name 名字。
  4426. */
  4427. constructor(mesh:laya.d3.resource.models.Mesh,heightMap:laya.d3.core.HeightMap,name?:string);
  4428. private _disableRotation:any;
  4429. private _getScaleX:any;
  4430. private _getScaleZ:any;
  4431. private _initCreateFromMesh:any;
  4432. private _initCreateFromMeshHeightMap:any;
  4433. private _computeCellSize:any;
  4434. /**
  4435. * 获取地形高度。
  4436. * @param x X轴坐标。
  4437. * @param z Z轴坐标。
  4438. */
  4439. getHeight(x:number,z:number):number;
  4440. }
  4441. }
  4442. declare module laya.d3.core.particleShuriKen.module {
  4443. /**
  4444. * <code>Burst</code> 类用于粒子的爆裂描述。
  4445. */
  4446. class Burst implements laya.d3.core.IClone {
  4447. /**
  4448. * 爆裂时间,单位为秒。
  4449. */
  4450. private _time:any;
  4451. /**
  4452. * 爆裂的最小数量。
  4453. */
  4454. private _minCount:any;
  4455. /**
  4456. * 爆裂的最大数量。
  4457. */
  4458. private _maxCount:any;
  4459. /**
  4460. * 获取爆裂时间,单位为秒。
  4461. * @return 爆裂时间,单位为秒。
  4462. */
  4463. get time():number;
  4464. /**
  4465. * 获取爆裂的最小数量。
  4466. * @return 爆裂的最小数量。
  4467. */
  4468. get minCount():number;
  4469. /**
  4470. * 获取爆裂的最大数量。
  4471. * @return 爆裂的最大数量。
  4472. */
  4473. get maxCount():number;
  4474. /**
  4475. * 创建一个 <code>Burst</code> 实例。
  4476. * @param time 爆裂时间,单位为秒。
  4477. * @param minCount 爆裂的最小数量。
  4478. * @param time 爆裂的最大数量。
  4479. */
  4480. constructor(time:number,minCount:number,maxCount:number);
  4481. /**
  4482. * 克隆。
  4483. * @param destObject 克隆源。
  4484. */
  4485. cloneTo(destObject:any):void;
  4486. /**
  4487. * 克隆。
  4488. * @return 克隆副本。
  4489. */
  4490. clone():any;
  4491. }
  4492. }
  4493. declare module laya.d3.core.particleShuriKen.module {
  4494. /**
  4495. * <code>ColorOverLifetime</code> 类用于粒子的生命周期颜色。
  4496. */
  4497. class ColorOverLifetime {
  4498. private _color:any;
  4499. /**
  4500. * 是否启用。
  4501. */
  4502. enable:boolean;
  4503. /**
  4504. * 获取颜色。
  4505. */
  4506. get color():laya.d3.core.particleShuriKen.module.GradientColor;
  4507. /**
  4508. * 创建一个 <code>ColorOverLifetime</code> 实例。
  4509. */
  4510. constructor(color:laya.d3.core.particleShuriKen.module.GradientColor);
  4511. /**
  4512. * 克隆。
  4513. * @param destObject 克隆源。
  4514. */
  4515. cloneTo(destObject:any):void;
  4516. /**
  4517. * 克隆。
  4518. * @return 克隆副本。
  4519. */
  4520. clone():any;
  4521. }
  4522. }
  4523. declare module laya.d3.core.particleShuriKen.module {
  4524. /**
  4525. * <code>Emission</code> 类用于粒子发射器。
  4526. */
  4527. class Emission implements laya.d3.core.IClone,laya.resource.IDestroy {
  4528. /**
  4529. * 是否启用。
  4530. */
  4531. enable:boolean;
  4532. /**
  4533. * 设置粒子发射速率。
  4534. * @param emissionRate 粒子发射速率 (个/秒)。
  4535. */
  4536. set emissionRate(value:number);
  4537. /**
  4538. * 获取粒子发射速率。
  4539. * @return 粒子发射速率 (个/秒)。
  4540. */
  4541. get emissionRate():number;
  4542. /**
  4543. * 获取是否已销毁。
  4544. * @return 是否已销毁。
  4545. */
  4546. get destroyed():boolean;
  4547. /**
  4548. * 创建一个 <code>Emission</code> 实例。
  4549. */
  4550. constructor();
  4551. /**
  4552. * @private
  4553. */
  4554. destroy():void;
  4555. /**
  4556. * 获取粒子爆裂个数。
  4557. * @return 粒子爆裂个数。
  4558. */
  4559. getBurstsCount():number;
  4560. /**
  4561. * 通过索引获取粒子爆裂。
  4562. * @param index 爆裂索引。
  4563. * @return 粒子爆裂。
  4564. */
  4565. getBurstByIndex(index:number):laya.d3.core.particleShuriKen.module.Burst;
  4566. /**
  4567. * 增加粒子爆裂。
  4568. * @param burst 爆裂。
  4569. */
  4570. addBurst(burst:laya.d3.core.particleShuriKen.module.Burst):void;
  4571. /**
  4572. * 移除粒子爆裂。
  4573. * @param burst 爆裂。
  4574. */
  4575. removeBurst(burst:laya.d3.core.particleShuriKen.module.Burst):void;
  4576. /**
  4577. * 通过索引移除粒子爆裂。
  4578. * @param index 爆裂索引。
  4579. */
  4580. removeBurstByIndex(index:number):void;
  4581. /**
  4582. * 清空粒子爆裂。
  4583. */
  4584. clearBurst():void;
  4585. /**
  4586. * 克隆。
  4587. * @param destObject 克隆源。
  4588. */
  4589. cloneTo(destObject:any):void;
  4590. /**
  4591. * 克隆。
  4592. * @return 克隆副本。
  4593. */
  4594. clone():any;
  4595. }
  4596. }
  4597. declare module laya.d3.core.particleShuriKen.module {
  4598. /**
  4599. * <code>FrameOverTime</code> 类用于创建时间帧。
  4600. */
  4601. class FrameOverTime implements laya.d3.core.IClone {
  4602. /**
  4603. * 通过固定帧创建一个 <code>FrameOverTime</code> 实例。
  4604. * @param constant 固定帧。
  4605. * @return 时间帧。
  4606. */
  4607. static createByConstant(constant?:number):FrameOverTime;
  4608. /**
  4609. * 通过时间帧创建一个 <code>FrameOverTime</code> 实例。
  4610. * @param overTime 时间帧。
  4611. * @return 时间帧。
  4612. */
  4613. static createByOverTime(overTime:laya.d3.core.particleShuriKen.module.GradientDataInt):FrameOverTime;
  4614. /**
  4615. * 通过随机双固定帧创建一个 <code>FrameOverTime</code> 实例。
  4616. * @param constantMin 最小固定帧。
  4617. * @param constantMax 最大固定帧。
  4618. * @return 时间帧。
  4619. */
  4620. static createByRandomTwoConstant(constantMin?:number,constantMax?:number):FrameOverTime;
  4621. /**
  4622. * 通过随机双时间帧创建一个 <code>FrameOverTime</code> 实例。
  4623. * @param gradientFrameMin 最小时间帧。
  4624. * @param gradientFrameMax 最大时间帧。
  4625. * @return 时间帧。
  4626. */
  4627. static createByRandomTwoOverTime(gradientFrameMin:laya.d3.core.particleShuriKen.module.GradientDataInt,gradientFrameMax:laya.d3.core.particleShuriKen.module.GradientDataInt):FrameOverTime;
  4628. private _type:any;
  4629. private _constant:any;
  4630. private _overTime:any;
  4631. private _constantMin:any;
  4632. private _constantMax:any;
  4633. private _overTimeMin:any;
  4634. private _overTimeMax:any;
  4635. /**
  4636. * 生命周期旋转类型,0常量模式,1曲线模式,2随机双常量模式,3随机双曲线模式。
  4637. */
  4638. get type():number;
  4639. /**
  4640. * 固定帧。
  4641. */
  4642. get constant():number;
  4643. /**
  4644. * 时间帧。
  4645. */
  4646. get frameOverTimeData():laya.d3.core.particleShuriKen.module.GradientDataInt;
  4647. /**
  4648. * 最小固定帧。
  4649. */
  4650. get constantMin():number;
  4651. /**
  4652. * 最大固定帧。
  4653. */
  4654. get constantMax():number;
  4655. /**
  4656. * 最小时间帧。
  4657. */
  4658. get frameOverTimeDataMin():laya.d3.core.particleShuriKen.module.GradientDataInt;
  4659. /**
  4660. * 最大时间帧。
  4661. */
  4662. get frameOverTimeDataMax():laya.d3.core.particleShuriKen.module.GradientDataInt;
  4663. /**
  4664. * 创建一个 <code>FrameOverTime,不允许new,请使用静态创建函数。</code> 实例。
  4665. */
  4666. constructor();
  4667. /**
  4668. * 克隆。
  4669. * @param destObject 克隆源。
  4670. */
  4671. cloneTo(destObject:any):void;
  4672. /**
  4673. * 克隆。
  4674. * @return 克隆副本。
  4675. */
  4676. clone():any;
  4677. }
  4678. }
  4679. declare module laya.d3.core.particleShuriKen.module {
  4680. /**
  4681. * <code>GradientRotation</code> 类用于创建渐变角速度。
  4682. */
  4683. class GradientAngularVelocity implements laya.d3.core.IClone {
  4684. /**
  4685. * 通过固定角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4686. * @param constant 固定角速度。
  4687. * @return 渐变角速度。
  4688. */
  4689. static createByConstant(constant:number):GradientAngularVelocity;
  4690. /**
  4691. * 通过分轴固定角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4692. * @param separateConstant 分轴固定角速度。
  4693. * @return 渐变角速度。
  4694. */
  4695. static createByConstantSeparate(separateConstant:laya.d3.math.Vector3):GradientAngularVelocity;
  4696. /**
  4697. * 通过渐变角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4698. * @param gradient 渐变角速度。
  4699. * @return 渐变角速度。
  4700. */
  4701. static createByGradient(gradient:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientAngularVelocity;
  4702. /**
  4703. * 通过分轴渐变角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4704. * @param gradientX X轴渐变角速度。
  4705. * @param gradientY Y轴渐变角速度。
  4706. * @param gradientZ Z轴渐变角速度。
  4707. * @return 渐变角速度。
  4708. */
  4709. static createByGradientSeparate(gradientX:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientY:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZ:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientAngularVelocity;
  4710. /**
  4711. * 通过随机双固定角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4712. * @param constantMin 最小固定角速度。
  4713. * @param constantMax 最大固定角速度。
  4714. * @return 渐变角速度。
  4715. */
  4716. static createByRandomTwoConstant(constantMin:number,constantMax:number):GradientAngularVelocity;
  4717. /**
  4718. * 通过随机分轴双固定角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4719. * @param separateConstantMin 最小分轴固定角速度。
  4720. * @param separateConstantMax 最大分轴固定角速度。
  4721. * @return 渐变角速度。
  4722. */
  4723. static createByRandomTwoConstantSeparate(separateConstantMin:laya.d3.math.Vector3,separateConstantMax:laya.d3.math.Vector3):GradientAngularVelocity;
  4724. /**
  4725. * 通过随机双渐变角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4726. * @param gradientMin 最小渐变角速度。
  4727. * @param gradientMax 最大渐变角速度。
  4728. * @return 渐变角速度。
  4729. */
  4730. static createByRandomTwoGradient(gradientMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientMax:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientAngularVelocity;
  4731. /**
  4732. * 通过分轴随机双渐变角速度创建一个 <code>GradientAngularVelocity</code> 实例。
  4733. * @param gradientXMin 最小X轴渐变角速度。
  4734. * @param gradientXMax 最大X轴渐变角速度。
  4735. * @param gradientYMin 最小Y轴渐变角速度。
  4736. * @param gradientYMax 最大Y轴渐变角速度。
  4737. * @param gradientZMin 最小Z轴渐变角速度。
  4738. * @param gradientZMax 最大Z轴渐变角速度。
  4739. * @return 渐变角速度。
  4740. */
  4741. 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;
  4742. private _type:any;
  4743. private _separateAxes:any;
  4744. private _constant:any;
  4745. private _constantSeparate:any;
  4746. private _gradient:any;
  4747. private _gradientX:any;
  4748. private _gradientY:any;
  4749. private _gradientZ:any;
  4750. private _gradientW:any;
  4751. private _constantMin:any;
  4752. private _constantMax:any;
  4753. private _constantMinSeparate:any;
  4754. private _constantMaxSeparate:any;
  4755. private _gradientMin:any;
  4756. private _gradientMax:any;
  4757. private _gradientXMin:any;
  4758. private _gradientXMax:any;
  4759. private _gradientYMin:any;
  4760. private _gradientYMax:any;
  4761. private _gradientZMin:any;
  4762. private _gradientZMax:any;
  4763. private _gradientWMin:any;
  4764. private _gradientWMax:any;
  4765. /**
  4766. * 生命周期角速度类型,0常量模式,1曲线模式,2随机双常量模式,3随机双曲线模式。
  4767. */
  4768. get type():number;
  4769. /**
  4770. * 是否分轴。
  4771. */
  4772. get separateAxes():boolean;
  4773. /**
  4774. * 固定角速度。
  4775. */
  4776. get constant():number;
  4777. /**
  4778. * 分轴固定角速度。
  4779. */
  4780. get constantSeparate():laya.d3.math.Vector3;
  4781. /**
  4782. * 渐变角速度。
  4783. */
  4784. get gradient():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4785. /**
  4786. * 渐变角角速度X。
  4787. */
  4788. get gradientX():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4789. /**
  4790. * 渐变角速度Y。
  4791. */
  4792. get gradientY():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4793. /**
  4794. * 渐变角速度Z。
  4795. */
  4796. get gradientZ():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4797. /**
  4798. * 渐变角速度Z。
  4799. */
  4800. get gradientW():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4801. /**
  4802. * 最小随机双固定角速度。
  4803. */
  4804. get constantMin():number;
  4805. /**
  4806. * 最大随机双固定角速度。
  4807. */
  4808. get constantMax():number;
  4809. /**
  4810. * 最小分轴随机双固定角速度。
  4811. */
  4812. get constantMinSeparate():laya.d3.math.Vector3;
  4813. /**
  4814. * 最大分轴随机双固定角速度。
  4815. */
  4816. get constantMaxSeparate():laya.d3.math.Vector3;
  4817. /**
  4818. * 最小渐变角速度。
  4819. */
  4820. get gradientMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4821. /**
  4822. * 最大渐变角速度。
  4823. */
  4824. get gradientMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4825. /**
  4826. * 最小渐变角速度X。
  4827. */
  4828. get gradientXMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4829. /**
  4830. * 最大渐变角速度X。
  4831. */
  4832. get gradientXMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4833. /**
  4834. * 最小渐变角速度Y。
  4835. */
  4836. get gradientYMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4837. /**
  4838. * 最大渐变角速度Y。
  4839. */
  4840. get gradientYMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4841. /**
  4842. * 最小渐变角速度Z。
  4843. */
  4844. get gradientZMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4845. /**
  4846. * 最大渐变角速度Z。
  4847. */
  4848. get gradientZMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4849. /**
  4850. * 最小渐变角速度Z。
  4851. */
  4852. get gradientWMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4853. /**
  4854. * 最大渐变角速度Z。
  4855. */
  4856. get gradientWMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  4857. /**
  4858. * 创建一个 <code>GradientAngularVelocity,不允许new,请使用静态创建函数。</code> 实例。
  4859. */
  4860. constructor();
  4861. /**
  4862. * 克隆。
  4863. * @param destObject 克隆源。
  4864. */
  4865. cloneTo(destObject:any):void;
  4866. /**
  4867. * 克隆。
  4868. * @return 克隆副本。
  4869. */
  4870. clone():any;
  4871. }
  4872. }
  4873. declare module laya.d3.core.particleShuriKen.module {
  4874. /**
  4875. * <code>GradientColor</code> 类用于创建渐变颜色。
  4876. */
  4877. class GradientColor implements laya.d3.core.IClone {
  4878. /**
  4879. * 通过固定颜色创建一个 <code>GradientColor</code> 实例。
  4880. * @param constant 固定颜色。
  4881. */
  4882. static createByConstant(constant:laya.d3.math.Vector4):GradientColor;
  4883. /**
  4884. * 通过渐变颜色创建一个 <code>GradientColor</code> 实例。
  4885. * @param gradient 渐变色。
  4886. */
  4887. static createByGradient(gradient:laya.d3.core.Gradient):GradientColor;
  4888. /**
  4889. * 通过随机双固定颜色创建一个 <code>GradientColor</code> 实例。
  4890. * @param minConstant 最小固定颜色。
  4891. * @param maxConstant 最大固定颜色。
  4892. */
  4893. static createByRandomTwoConstant(minConstant:laya.d3.math.Vector4,maxConstant:laya.d3.math.Vector4):GradientColor;
  4894. /**
  4895. * 通过随机双渐变颜色创建一个 <code>GradientColor</code> 实例。
  4896. * @param minGradient 最小渐变颜色。
  4897. * @param maxGradient 最大渐变颜色。
  4898. */
  4899. static createByRandomTwoGradient(minGradient:laya.d3.core.Gradient,maxGradient:laya.d3.core.Gradient):GradientColor;
  4900. private _type:any;
  4901. private _constant:any;
  4902. private _constantMin:any;
  4903. private _constantMax:any;
  4904. private _gradient:any;
  4905. private _gradientMin:any;
  4906. private _gradientMax:any;
  4907. /**
  4908. * 生命周期颜色类型,0为固定颜色模式,1渐变模式,2为随机双固定颜色模式,3随机双渐变模式。
  4909. */
  4910. get type():number;
  4911. /**
  4912. * 固定颜色。
  4913. */
  4914. get constant():laya.d3.math.Vector4;
  4915. /**
  4916. * 最小固定颜色。
  4917. */
  4918. get constantMin():laya.d3.math.Vector4;
  4919. /**
  4920. * 最大固定颜色。
  4921. */
  4922. get constantMax():laya.d3.math.Vector4;
  4923. /**
  4924. * 渐变颜色。
  4925. */
  4926. get gradient():laya.d3.core.Gradient;
  4927. /**
  4928. * 最小渐变颜色。
  4929. */
  4930. get gradientMin():laya.d3.core.Gradient;
  4931. /**
  4932. * 最大渐变颜色。
  4933. */
  4934. get gradientMax():laya.d3.core.Gradient;
  4935. /**
  4936. * 创建一个 <code>GradientColor,不允许new,请使用静态创建函数。</code> 实例。
  4937. */
  4938. constructor();
  4939. /**
  4940. * 克隆。
  4941. * @param destObject 克隆源。
  4942. */
  4943. cloneTo(destObject:any):void;
  4944. /**
  4945. * 克隆。
  4946. * @return 克隆副本。
  4947. */
  4948. clone():any;
  4949. }
  4950. }
  4951. declare module laya.d3.core.particleShuriKen.module {
  4952. /**
  4953. * <code>GradientDataInt</code> 类用于创建整形渐变。
  4954. */
  4955. class GradientDataInt implements laya.d3.core.IClone {
  4956. private _currentLength:any;
  4957. /**
  4958. * 整形渐变数量。
  4959. */
  4960. get gradientCount():number;
  4961. /**
  4962. * 创建一个 <code>GradientDataInt</code> 实例。
  4963. */
  4964. constructor();
  4965. /**
  4966. * 增加整形渐变。
  4967. * @param key 生命周期,范围为0到1。
  4968. * @param value 整形值。
  4969. */
  4970. add(key:number,value:number):void;
  4971. /**
  4972. * 克隆。
  4973. * @param destObject 克隆源。
  4974. */
  4975. cloneTo(destObject:any):void;
  4976. /**
  4977. * 克隆。
  4978. * @return 克隆副本。
  4979. */
  4980. clone():any;
  4981. }
  4982. }
  4983. declare module laya.d3.core.particleShuriKen.module {
  4984. /**
  4985. * <code>GradientDataNumber</code> 类用于创建浮点渐变。
  4986. */
  4987. class GradientDataNumber implements laya.d3.core.IClone {
  4988. private _currentLength:any;
  4989. /**
  4990. * 渐变浮点数量。
  4991. */
  4992. get gradientCount():number;
  4993. /**
  4994. * 创建一个 <code>GradientDataNumber</code> 实例。
  4995. */
  4996. constructor();
  4997. /**
  4998. * 增加浮点渐变。
  4999. * @param key 生命周期,范围为0到1。
  5000. * @param value 浮点值。
  5001. */
  5002. add(key:number,value:number):void;
  5003. /**
  5004. * 通过索引获取键。
  5005. * @param index 索引。
  5006. * @return value 键。
  5007. */
  5008. getKeyByIndex(index:number):number;
  5009. /**
  5010. * 通过索引获取值。
  5011. * @param index 索引。
  5012. * @return value 值。
  5013. */
  5014. getValueByIndex(index:number):number;
  5015. /**
  5016. * 获取平均值。
  5017. */
  5018. getAverageValue():number;
  5019. /**
  5020. * 克隆。
  5021. * @param destObject 克隆源。
  5022. */
  5023. cloneTo(destObject:any):void;
  5024. /**
  5025. * 克隆。
  5026. * @return 克隆副本。
  5027. */
  5028. clone():any;
  5029. }
  5030. }
  5031. declare module laya.d3.core.particleShuriKen.module {
  5032. /**
  5033. * <code>GradientDataVector2</code> 类用于创建二维向量渐变。
  5034. */
  5035. class GradientDataVector2 implements laya.d3.core.IClone {
  5036. private _currentLength:any;
  5037. /**
  5038. * 二维向量渐变数量。
  5039. */
  5040. get gradientCount():number;
  5041. /**
  5042. * 创建一个 <code>GradientDataVector2</code> 实例。
  5043. */
  5044. constructor();
  5045. /**
  5046. * 增加二维向量渐变。
  5047. * @param key 生命周期,范围为0到1。
  5048. * @param value 二维向量值。
  5049. */
  5050. add(key:number,value:laya.d3.math.Vector2):void;
  5051. /**
  5052. * 克隆。
  5053. * @param destObject 克隆源。
  5054. */
  5055. cloneTo(destObject:any):void;
  5056. /**
  5057. * 克隆。
  5058. * @return 克隆副本。
  5059. */
  5060. clone():any;
  5061. }
  5062. }
  5063. declare module laya.d3.core.particleShuriKen.module {
  5064. /**
  5065. * <code>GradientSize</code> 类用于创建渐变尺寸。
  5066. */
  5067. class GradientSize implements laya.d3.core.IClone {
  5068. /**
  5069. * 通过渐变尺寸创建一个 <code>GradientSize</code> 实例。
  5070. * @param gradient 渐变尺寸。
  5071. * @return 渐变尺寸。
  5072. */
  5073. static createByGradient(gradient:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientSize;
  5074. /**
  5075. * 通过分轴渐变尺寸创建一个 <code>GradientSize</code> 实例。
  5076. * @param gradientX 渐变尺寸X。
  5077. * @param gradientY 渐变尺寸Y。
  5078. * @param gradientZ 渐变尺寸Z。
  5079. * @return 渐变尺寸。
  5080. */
  5081. static createByGradientSeparate(gradientX:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientY:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZ:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientSize;
  5082. /**
  5083. * 通过随机双固定尺寸创建一个 <code>GradientSize</code> 实例。
  5084. * @param constantMin 最小固定尺寸。
  5085. * @param constantMax 最大固定尺寸。
  5086. * @return 渐变尺寸。
  5087. */
  5088. static createByRandomTwoConstant(constantMin:number,constantMax:number):GradientSize;
  5089. /**
  5090. * 通过分轴随机双固定尺寸创建一个 <code>GradientSize</code> 实例。
  5091. * @param constantMinSeparate 分轴最小固定尺寸.
  5092. * @param constantMaxSeparate 分轴最大固定尺寸。
  5093. * @return 渐变尺寸。
  5094. */
  5095. static createByRandomTwoConstantSeparate(constantMinSeparate:laya.d3.math.Vector3,constantMaxSeparate:laya.d3.math.Vector3):GradientSize;
  5096. /**
  5097. * 通过随机双渐变尺寸创建一个 <code>GradientSize</code> 实例。
  5098. * @param gradientMin 最小渐变尺寸。
  5099. * @param gradientMax 最大渐变尺寸。
  5100. * @return 渐变尺寸。
  5101. */
  5102. static createByRandomTwoGradient(gradientMin:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientMax:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientSize;
  5103. /**
  5104. * 通过分轴随机双渐变尺寸创建一个 <code>GradientSize</code> 实例。
  5105. * @param gradientXMin X轴最小渐变尺寸。
  5106. * @param gradientXMax X轴最大渐变尺寸。
  5107. * @param gradientYMin Y轴最小渐变尺寸。
  5108. * @param gradientYMax Y轴最大渐变尺寸。
  5109. * @param gradientZMin Z轴最小渐变尺寸。
  5110. * @param gradientZMax Z轴最大渐变尺寸。
  5111. * @return 渐变尺寸。
  5112. */
  5113. 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;
  5114. private _type:any;
  5115. private _separateAxes:any;
  5116. private _gradient:any;
  5117. private _gradientX:any;
  5118. private _gradientY:any;
  5119. private _gradientZ:any;
  5120. private _constantMin:any;
  5121. private _constantMax:any;
  5122. private _constantMinSeparate:any;
  5123. private _constantMaxSeparate:any;
  5124. private _gradientMin:any;
  5125. private _gradientMax:any;
  5126. private _gradientXMin:any;
  5127. private _gradientXMax:any;
  5128. private _gradientYMin:any;
  5129. private _gradientYMax:any;
  5130. private _gradientZMin:any;
  5131. private _gradientZMax:any;
  5132. /**
  5133. * 生命周期尺寸类型,0曲线模式,1随机双常量模式,2随机双曲线模式。
  5134. */
  5135. get type():number;
  5136. /**
  5137. * 是否分轴。
  5138. */
  5139. get separateAxes():boolean;
  5140. /**
  5141. * 渐变尺寸。
  5142. */
  5143. get gradient():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5144. /**
  5145. * 渐变尺寸X。
  5146. */
  5147. get gradientX():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5148. /**
  5149. * 渐变尺寸Y。
  5150. */
  5151. get gradientY():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5152. /**
  5153. * 渐变尺寸Z。
  5154. */
  5155. get gradientZ():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5156. /**
  5157. * 最小随机双固定尺寸。
  5158. */
  5159. get constantMin():number;
  5160. /**
  5161. * 最大随机双固定尺寸。
  5162. */
  5163. get constantMax():number;
  5164. /**
  5165. * 最小分轴随机双固定尺寸。
  5166. */
  5167. get constantMinSeparate():laya.d3.math.Vector3;
  5168. /**
  5169. * 最小分轴随机双固定尺寸。
  5170. */
  5171. get constantMaxSeparate():laya.d3.math.Vector3;
  5172. /**
  5173. * 渐变最小尺寸。
  5174. */
  5175. get gradientMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5176. /**
  5177. * 渐变最大尺寸。
  5178. */
  5179. get gradientMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5180. /**
  5181. * 渐变最小尺寸X。
  5182. */
  5183. get gradientXMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5184. /**
  5185. * 渐变最大尺寸X。
  5186. */
  5187. get gradientXMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5188. /**
  5189. * 渐变最小尺寸Y。
  5190. */
  5191. get gradientYMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5192. /**
  5193. * 渐变最大尺寸Y。
  5194. */
  5195. get gradientYMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5196. /**
  5197. * 渐变最小尺寸Z。
  5198. */
  5199. get gradientZMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5200. /**
  5201. * 渐变最大尺寸Z。
  5202. */
  5203. get gradientZMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5204. /**
  5205. * 创建一个 <code>GradientSize,不允许new,请使用静态创建函数。</code> 实例。
  5206. */
  5207. constructor();
  5208. /**
  5209. * 获取最大尺寸。
  5210. */
  5211. getMaxSizeInGradient():number;
  5212. /**
  5213. * 克隆。
  5214. * @param destObject 克隆源。
  5215. */
  5216. cloneTo(destObject:any):void;
  5217. /**
  5218. * 克隆。
  5219. * @return 克隆副本。
  5220. */
  5221. clone():any;
  5222. }
  5223. }
  5224. declare module laya.d3.core.particleShuriKen.module {
  5225. /**
  5226. * <code>GradientVelocity</code> 类用于创建渐变速度。
  5227. */
  5228. class GradientVelocity implements laya.d3.core.IClone {
  5229. /**
  5230. * 通过固定速度创建一个 <code>GradientVelocity</code> 实例。
  5231. * @param constant 固定速度。
  5232. * @return 渐变速度。
  5233. */
  5234. static createByConstant(constant:laya.d3.math.Vector3):GradientVelocity;
  5235. /**
  5236. * 通过渐变速度创建一个 <code>GradientVelocity</code> 实例。
  5237. * @param gradientX 渐变速度X。
  5238. * @param gradientY 渐变速度Y。
  5239. * @param gradientZ 渐变速度Z。
  5240. * @return 渐变速度。
  5241. */
  5242. static createByGradient(gradientX:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientY:laya.d3.core.particleShuriKen.module.GradientDataNumber,gradientZ:laya.d3.core.particleShuriKen.module.GradientDataNumber):GradientVelocity;
  5243. /**
  5244. * 通过随机双固定速度创建一个 <code>GradientVelocity</code> 实例。
  5245. * @param constantMin 最小固定角速度。
  5246. * @param constantMax 最大固定角速度。
  5247. * @return 渐变速度。
  5248. */
  5249. static createByRandomTwoConstant(constantMin:laya.d3.math.Vector3,constantMax:laya.d3.math.Vector3):GradientVelocity;
  5250. /**
  5251. * 通过随机双渐变速度创建一个 <code>GradientVelocity</code> 实例。
  5252. * @param gradientXMin X轴最小渐变速度。
  5253. * @param gradientXMax X轴最大渐变速度。
  5254. * @param gradientYMin Y轴最小渐变速度。
  5255. * @param gradientYMax Y轴最大渐变速度。
  5256. * @param gradientZMin Z轴最小渐变速度。
  5257. * @param gradientZMax Z轴最大渐变速度。
  5258. * @return 渐变速度。
  5259. */
  5260. 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;
  5261. private _type:any;
  5262. private _constant:any;
  5263. private _gradientX:any;
  5264. private _gradientY:any;
  5265. private _gradientZ:any;
  5266. private _constantMin:any;
  5267. private _constantMax:any;
  5268. private _gradientXMin:any;
  5269. private _gradientXMax:any;
  5270. private _gradientYMin:any;
  5271. private _gradientYMax:any;
  5272. private _gradientZMin:any;
  5273. private _gradientZMax:any;
  5274. /**
  5275. * 生命周期速度类型,0常量模式,1曲线模式,2随机双常量模式,3随机双曲线模式。
  5276. */
  5277. get type():number;
  5278. /**
  5279. * 固定速度。
  5280. */
  5281. get constant():laya.d3.math.Vector3;
  5282. /**
  5283. * 渐变速度X。
  5284. */
  5285. get gradientX():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5286. /**
  5287. * 渐变速度Y。
  5288. */
  5289. get gradientY():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5290. /**
  5291. * 渐变速度Z。
  5292. */
  5293. get gradientZ():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5294. /**
  5295. * 最小固定速度。
  5296. */
  5297. get constantMin():laya.d3.math.Vector3;
  5298. /**
  5299. * 最大固定速度。
  5300. */
  5301. get constantMax():laya.d3.math.Vector3;
  5302. /**
  5303. * 渐变最小速度X。
  5304. */
  5305. get gradientXMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5306. /**
  5307. * 渐变最大速度X。
  5308. */
  5309. get gradientXMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5310. /**
  5311. * 渐变最小速度Y。
  5312. */
  5313. get gradientYMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5314. /**
  5315. * 渐变最大速度Y。
  5316. */
  5317. get gradientYMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5318. /**
  5319. * 渐变最小速度Z。
  5320. */
  5321. get gradientZMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5322. /**
  5323. * 渐变最大速度Z。
  5324. */
  5325. get gradientZMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  5326. /**
  5327. * 创建一个 <code>GradientVelocity,不允许new,请使用静态创建函数。</code> 实例。
  5328. */
  5329. constructor();
  5330. /**
  5331. * 克隆。
  5332. * @param destObject 克隆源。
  5333. */
  5334. cloneTo(destObject:any):void;
  5335. /**
  5336. * 克隆。
  5337. * @return 克隆副本。
  5338. */
  5339. clone():any;
  5340. }
  5341. }
  5342. declare module laya.d3.core.particleShuriKen.module {
  5343. /**
  5344. * <code>RotationOverLifetime</code> 类用于粒子的生命周期旋转。
  5345. */
  5346. class RotationOverLifetime implements laya.d3.core.IClone {
  5347. private _angularVelocity:any;
  5348. /**
  5349. * 是否启用
  5350. */
  5351. enable:boolean;
  5352. /**
  5353. * 获取角速度。
  5354. */
  5355. get angularVelocity():laya.d3.core.particleShuriKen.module.GradientAngularVelocity;
  5356. /**
  5357. * 创建一个 <code>RotationOverLifetime,不允许new,请使用静态创建函数。</code> 实例。
  5358. */
  5359. constructor(angularVelocity:laya.d3.core.particleShuriKen.module.GradientAngularVelocity);
  5360. /**
  5361. * 克隆。
  5362. * @param destObject 克隆源。
  5363. */
  5364. cloneTo(destObject:any):void;
  5365. /**
  5366. * 克隆。
  5367. * @return 克隆副本。
  5368. */
  5369. clone():any;
  5370. }
  5371. }
  5372. declare module laya.d3.core.particleShuriKen.module.shape {
  5373. /**
  5374. * <code>BaseShape</code> 类用于粒子形状。
  5375. */
  5376. class BaseShape implements laya.d3.core.IClone {
  5377. /**
  5378. * 是否启用。
  5379. */
  5380. enable:boolean;
  5381. /**
  5382. * 随机方向。
  5383. */
  5384. randomDirection:number;
  5385. /**
  5386. * 创建一个 <code>BaseShape</code> 实例。
  5387. */
  5388. constructor();
  5389. /**
  5390. * 用于生成粒子初始位置和方向。
  5391. * @param position 粒子位置。
  5392. * @param direction 粒子方向。
  5393. */
  5394. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5395. /**
  5396. * 克隆。
  5397. * @param destObject 克隆源。
  5398. */
  5399. cloneTo(destObject:any):void;
  5400. /**
  5401. * 克隆。
  5402. * @return 克隆副本。
  5403. */
  5404. clone():any;
  5405. }
  5406. }
  5407. declare module laya.d3.core.particleShuriKen.module.shape {
  5408. /**
  5409. * <code>BoxShape</code> 类用于创建球形粒子形状。
  5410. */
  5411. class BoxShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {
  5412. /**
  5413. * 发射器X轴长度。
  5414. */
  5415. x:number;
  5416. /**
  5417. * 发射器Y轴长度。
  5418. */
  5419. y:number;
  5420. /**
  5421. * 发射器Z轴长度。
  5422. */
  5423. z:number;
  5424. /**
  5425. * 创建一个 <code>BoxShape</code> 实例。
  5426. */
  5427. constructor();
  5428. /**
  5429. * 用于生成粒子初始位置和方向。
  5430. * @param position 粒子位置。
  5431. * @param direction 粒子方向。
  5432. * @override
  5433. */
  5434. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5435. /**
  5436. * @param destObject
  5437. * @override
  5438. */
  5439. cloneTo(destObject:any):void;
  5440. /**
  5441. * @override 克隆。
  5442. * @return 克隆副本。
  5443. */
  5444. clone():any;
  5445. }
  5446. }
  5447. declare module laya.d3.core.particleShuriKen.module.shape {
  5448. /**
  5449. * <code>CircleShape</code> 类用于创建环形粒子形状。
  5450. */
  5451. class CircleShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {
  5452. /**
  5453. * 发射器半径。
  5454. */
  5455. radius:number;
  5456. /**
  5457. * 环形弧度。
  5458. */
  5459. arc:number;
  5460. /**
  5461. * 从边缘发射。
  5462. */
  5463. emitFromEdge:boolean;
  5464. /**
  5465. * 创建一个 <code>CircleShape</code> 实例。
  5466. */
  5467. constructor();
  5468. /**
  5469. * 用于生成粒子初始位置和方向。
  5470. * @param position 粒子位置。
  5471. * @param direction 粒子方向。
  5472. * @override
  5473. */
  5474. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5475. /**
  5476. * @param destObject
  5477. * @override
  5478. */
  5479. cloneTo(destObject:any):void;
  5480. /**
  5481. * @override 克隆。
  5482. * @return 克隆副本。
  5483. */
  5484. clone():any;
  5485. }
  5486. }
  5487. declare module laya.d3.core.particleShuriKen.module.shape {
  5488. /**
  5489. * <code>ConeShape</code> 类用于创建锥形粒子形状。
  5490. */
  5491. class ConeShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {
  5492. /**
  5493. * 发射角度。
  5494. */
  5495. angle:number;
  5496. /**
  5497. * 发射器半径。
  5498. */
  5499. radius:number;
  5500. /**
  5501. * 椎体长度。
  5502. */
  5503. length:number;
  5504. /**
  5505. * 发射类型,0为Base,1为BaseShell,2为Volume,3为VolumeShell。
  5506. */
  5507. emitType:number;
  5508. /**
  5509. * 创建一个 <code>ConeShape</code> 实例。
  5510. */
  5511. constructor();
  5512. /**
  5513. * 用于生成粒子初始位置和方向。
  5514. * @param position 粒子位置。
  5515. * @param direction 粒子方向。
  5516. * @override
  5517. */
  5518. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5519. /**
  5520. * @override
  5521. */
  5522. cloneTo(destObject:any):void;
  5523. /**
  5524. * @override 克隆。
  5525. * @return 克隆副本。
  5526. */
  5527. clone():any;
  5528. }
  5529. }
  5530. declare module laya.d3.core.particleShuriKen.module.shape {
  5531. /**
  5532. * <code>HemisphereShape</code> 类用于创建半球形粒子形状。
  5533. */
  5534. class HemisphereShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {
  5535. /**
  5536. * 发射器半径。
  5537. */
  5538. radius:number;
  5539. /**
  5540. * 从外壳发射。
  5541. */
  5542. emitFromShell:boolean;
  5543. /**
  5544. * 创建一个 <code>HemisphereShape</code> 实例。
  5545. */
  5546. constructor();
  5547. /**
  5548. * 用于生成粒子初始位置和方向。
  5549. * @param position 粒子位置。
  5550. * @param direction 粒子方向。
  5551. * @override
  5552. */
  5553. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5554. /**
  5555. * @override
  5556. */
  5557. cloneTo(destObject:any):void;
  5558. /**
  5559. * @override 克隆。
  5560. * @return 克隆副本。
  5561. */
  5562. clone():any;
  5563. }
  5564. }
  5565. declare module laya.d3.core.particleShuriKen.module.shape {
  5566. /**
  5567. * ...
  5568. * @author ...
  5569. */
  5570. class ShapeUtils {
  5571. static _randomPointUnitArcCircle(arc:number,out:laya.d3.math.Vector2,rand?:laya.d3.math.Rand):void;
  5572. static _randomPointInsideUnitArcCircle(arc:number,out:laya.d3.math.Vector2,rand?:laya.d3.math.Rand):void;
  5573. static _randomPointUnitCircle(out:laya.d3.math.Vector2,rand?:laya.d3.math.Rand):void;
  5574. static _randomPointInsideUnitCircle(out:laya.d3.math.Vector2,rand?:laya.d3.math.Rand):void;
  5575. static _randomPointUnitSphere(out:laya.d3.math.Vector3,rand?:laya.d3.math.Rand):void;
  5576. static _randomPointInsideUnitSphere(out:laya.d3.math.Vector3,rand?:laya.d3.math.Rand):void;
  5577. static _randomPointInsideHalfUnitBox(out:laya.d3.math.Vector3,rand?:laya.d3.math.Rand):void;
  5578. constructor();
  5579. }
  5580. }
  5581. declare module laya.d3.core.particleShuriKen.module.shape {
  5582. /**
  5583. * <code>SphereShape</code> 类用于创建球形粒子形状。
  5584. */
  5585. class SphereShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {
  5586. /**
  5587. * 发射器半径。
  5588. */
  5589. radius:number;
  5590. /**
  5591. * 从外壳发射。
  5592. */
  5593. emitFromShell:boolean;
  5594. /**
  5595. * 创建一个 <code>SphereShape</code> 实例。
  5596. */
  5597. constructor();
  5598. /**
  5599. * 用于生成粒子初始位置和方向。
  5600. * @param position 粒子位置。
  5601. * @param direction 粒子方向。
  5602. * @override
  5603. */
  5604. generatePositionAndDirection(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,rand?:laya.d3.math.Rand,randomSeeds?:Uint32Array):void;
  5605. /**
  5606. * @override
  5607. */
  5608. cloneTo(destObject:any):void;
  5609. /**
  5610. * @override 克隆。
  5611. * @return 克隆副本。
  5612. */
  5613. clone():any;
  5614. }
  5615. }
  5616. declare module laya.d3.core.particleShuriKen.module {
  5617. /**
  5618. * <code>SizeOverLifetime</code> 类用于粒子的生命周期尺寸。
  5619. */
  5620. class SizeOverLifetime implements laya.d3.core.IClone {
  5621. private _size:any;
  5622. /**
  5623. * 是否启用
  5624. */
  5625. enable:boolean;
  5626. /**
  5627. * 获取尺寸。
  5628. */
  5629. get size():laya.d3.core.particleShuriKen.module.GradientSize;
  5630. /**
  5631. * 创建一个 <code>SizeOverLifetime</code> 实例。
  5632. */
  5633. constructor(size:laya.d3.core.particleShuriKen.module.GradientSize);
  5634. /**
  5635. * 克隆。
  5636. * @param destObject 克隆源。
  5637. */
  5638. cloneTo(destObject:any):void;
  5639. /**
  5640. * 克隆。
  5641. * @return 克隆副本。
  5642. */
  5643. clone():any;
  5644. }
  5645. }
  5646. declare module laya.d3.core.particleShuriKen.module {
  5647. /**
  5648. * <code>StartFrame</code> 类用于创建开始帧。
  5649. */
  5650. class StartFrame implements laya.d3.core.IClone {
  5651. /**
  5652. * 通过随机常量旋转创建一个 <code>StartFrame</code> 实例。
  5653. * @param constant 固定帧。
  5654. * @return 开始帧。
  5655. */
  5656. static createByConstant(constant?:number):StartFrame;
  5657. /**
  5658. * 通过随机双常量旋转创建一个 <code>StartFrame</code> 实例。
  5659. * @param constantMin 最小固定帧。
  5660. * @param constantMax 最大固定帧。
  5661. * @return 开始帧。
  5662. */
  5663. static createByRandomTwoConstant(constantMin?:number,constantMax?:number):StartFrame;
  5664. private _type:any;
  5665. private _constant:any;
  5666. private _constantMin:any;
  5667. private _constantMax:any;
  5668. /**
  5669. * 开始帧类型,0常量模式,1随机双常量模式。
  5670. */
  5671. get type():number;
  5672. /**
  5673. * 固定帧。
  5674. */
  5675. get constant():number;
  5676. /**
  5677. * 最小固定帧。
  5678. */
  5679. get constantMin():number;
  5680. /**
  5681. * 最大固定帧。
  5682. */
  5683. get constantMax():number;
  5684. /**
  5685. * 创建一个 <code>StartFrame,不允许new,请使用静态创建函数。</code> 实例。
  5686. */
  5687. constructor();
  5688. /**
  5689. * 克隆。
  5690. * @param destObject 克隆源。
  5691. */
  5692. cloneTo(destObject:any):void;
  5693. /**
  5694. * 克隆。
  5695. * @return 克隆副本。
  5696. */
  5697. clone():any;
  5698. }
  5699. }
  5700. declare module laya.d3.core.particleShuriKen.module {
  5701. /**
  5702. * <code>TextureSheetAnimation</code> 类用于创建粒子帧动画。
  5703. */
  5704. class TextureSheetAnimation implements laya.d3.core.IClone {
  5705. /**
  5706. * 纹理平铺。
  5707. */
  5708. tiles:laya.d3.math.Vector2;
  5709. /**
  5710. * 类型,0为whole sheet、1为singal row。
  5711. */
  5712. type:number;
  5713. /**
  5714. * 是否随机行,type为1时有效。
  5715. */
  5716. randomRow:boolean;
  5717. /**
  5718. * 行索引,type为1时有效。
  5719. */
  5720. rowIndex:number;
  5721. /**
  5722. * 循环次数。
  5723. */
  5724. cycles:number;
  5725. /**
  5726. * UV通道类型,0为Noting,1为Everything,待补充,暂不支持。
  5727. */
  5728. enableUVChannels:number;
  5729. /**
  5730. * 是否启用
  5731. */
  5732. enable:boolean;
  5733. /**
  5734. * 获取时间帧率。
  5735. */
  5736. get frame():laya.d3.core.particleShuriKen.module.FrameOverTime;
  5737. /**
  5738. * 获取开始帧率。
  5739. */
  5740. get startFrame():laya.d3.core.particleShuriKen.module.StartFrame;
  5741. /**
  5742. * 创建一个 <code>TextureSheetAnimation</code> 实例。
  5743. * @param frame 动画帧。
  5744. * @param startFrame 开始帧。
  5745. */
  5746. constructor(frame:laya.d3.core.particleShuriKen.module.FrameOverTime,startFrame:laya.d3.core.particleShuriKen.module.StartFrame);
  5747. /**
  5748. * 克隆。
  5749. * @param destObject 克隆源。
  5750. */
  5751. cloneTo(destObject:any):void;
  5752. /**
  5753. * 克隆。
  5754. * @return 克隆副本。
  5755. */
  5756. clone():any;
  5757. }
  5758. }
  5759. declare module laya.d3.core.particleShuriKen.module {
  5760. /**
  5761. * <code>VelocityOverLifetime</code> 类用于粒子的生命周期速度。
  5762. */
  5763. class VelocityOverLifetime implements laya.d3.core.IClone {
  5764. /**
  5765. * 是否启用
  5766. */
  5767. enable:boolean;
  5768. /**
  5769. * 速度空间,0为local,1为world。
  5770. */
  5771. space:number;
  5772. /**
  5773. * 获取尺寸。
  5774. */
  5775. get velocity():laya.d3.core.particleShuriKen.module.GradientVelocity;
  5776. /**
  5777. * 创建一个 <code>VelocityOverLifetime</code> 实例。
  5778. */
  5779. constructor(velocity:laya.d3.core.particleShuriKen.module.GradientVelocity);
  5780. /**
  5781. * 克隆。
  5782. * @param destObject 克隆源。
  5783. */
  5784. cloneTo(destObject:any):void;
  5785. /**
  5786. * 克隆。
  5787. * @return 克隆副本。
  5788. */
  5789. clone():any;
  5790. }
  5791. }
  5792. declare module laya.d3.core.particleShuriKen {
  5793. /**
  5794. * <code>ShuriKenParticle3D</code> 3D粒子。
  5795. */
  5796. class ShuriKenParticle3D extends laya.d3.core.RenderableSprite3D {
  5797. /**
  5798. * 粒子系统。
  5799. */
  5800. get particleSystem():laya.d3.core.particleShuriKen.ShurikenParticleSystem;
  5801. /**
  5802. * 粒子渲染器。
  5803. */
  5804. get particleRenderer():laya.d3.core.particleShuriKen.ShurikenParticleRenderer;
  5805. /**
  5806. * 创建一个 <code>Particle3D</code> 实例。
  5807. */
  5808. constructor();
  5809. /**
  5810. * <p>销毁此对象。</p>
  5811. * @param destroyChild 是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
  5812. * @override
  5813. */
  5814. destroy(destroyChild?:boolean):void;
  5815. }
  5816. }
  5817. declare module laya.d3.core.particleShuriKen {
  5818. class ShuriKenParticle3DShaderDeclaration {
  5819. static SHADERDEFINE_RENDERMODE_BILLBOARD:laya.d3.shader.ShaderDefine;
  5820. static SHADERDEFINE_RENDERMODE_STRETCHEDBILLBOARD:laya.d3.shader.ShaderDefine;
  5821. static SHADERDEFINE_RENDERMODE_HORIZONTALBILLBOARD:laya.d3.shader.ShaderDefine;
  5822. static SHADERDEFINE_RENDERMODE_VERTICALBILLBOARD:laya.d3.shader.ShaderDefine;
  5823. static SHADERDEFINE_COLOROVERLIFETIME:laya.d3.shader.ShaderDefine;
  5824. static SHADERDEFINE_RANDOMCOLOROVERLIFETIME:laya.d3.shader.ShaderDefine;
  5825. static SHADERDEFINE_VELOCITYOVERLIFETIMECONSTANT:laya.d3.shader.ShaderDefine;
  5826. static SHADERDEFINE_VELOCITYOVERLIFETIMECURVE:laya.d3.shader.ShaderDefine;
  5827. static SHADERDEFINE_VELOCITYOVERLIFETIMERANDOMCONSTANT:laya.d3.shader.ShaderDefine;
  5828. static SHADERDEFINE_VELOCITYOVERLIFETIMERANDOMCURVE:laya.d3.shader.ShaderDefine;
  5829. static SHADERDEFINE_TEXTURESHEETANIMATIONCURVE:laya.d3.shader.ShaderDefine;
  5830. static SHADERDEFINE_TEXTURESHEETANIMATIONRANDOMCURVE:laya.d3.shader.ShaderDefine;
  5831. static SHADERDEFINE_ROTATIONOVERLIFETIME:laya.d3.shader.ShaderDefine;
  5832. static SHADERDEFINE_ROTATIONOVERLIFETIMESEPERATE:laya.d3.shader.ShaderDefine;
  5833. static SHADERDEFINE_ROTATIONOVERLIFETIMECONSTANT:laya.d3.shader.ShaderDefine;
  5834. static SHADERDEFINE_ROTATIONOVERLIFETIMECURVE:laya.d3.shader.ShaderDefine;
  5835. static SHADERDEFINE_ROTATIONOVERLIFETIMERANDOMCONSTANTS:laya.d3.shader.ShaderDefine;
  5836. static SHADERDEFINE_ROTATIONOVERLIFETIMERANDOMCURVES:laya.d3.shader.ShaderDefine;
  5837. static SHADERDEFINE_SIZEOVERLIFETIMECURVE:laya.d3.shader.ShaderDefine;
  5838. static SHADERDEFINE_SIZEOVERLIFETIMECURVESEPERATE:laya.d3.shader.ShaderDefine;
  5839. static SHADERDEFINE_SIZEOVERLIFETIMERANDOMCURVES:laya.d3.shader.ShaderDefine;
  5840. static SHADERDEFINE_SIZEOVERLIFETIMERANDOMCURVESSEPERATE:laya.d3.shader.ShaderDefine;
  5841. static SHADERDEFINE_RENDERMODE_MESH:laya.d3.shader.ShaderDefine;
  5842. static SHADERDEFINE_SHAPE:laya.d3.shader.ShaderDefine;
  5843. static WORLDPOSITION:number;
  5844. static WORLDROTATION:number;
  5845. static POSITIONSCALE:number;
  5846. static SIZESCALE:number;
  5847. static SCALINGMODE:number;
  5848. static GRAVITY:number;
  5849. static THREEDSTARTROTATION:number;
  5850. static STRETCHEDBILLBOARDLENGTHSCALE:number;
  5851. static STRETCHEDBILLBOARDSPEEDSCALE:number;
  5852. static SIMULATIONSPACE:number;
  5853. static CURRENTTIME:number;
  5854. static VOLVELOCITYCONST:number;
  5855. static VOLVELOCITYGRADIENTX:number;
  5856. static VOLVELOCITYGRADIENTY:number;
  5857. static VOLVELOCITYGRADIENTZ:number;
  5858. static VOLVELOCITYCONSTMAX:number;
  5859. static VOLVELOCITYGRADIENTXMAX:number;
  5860. static VOLVELOCITYGRADIENTYMAX:number;
  5861. static VOLVELOCITYGRADIENTZMAX:number;
  5862. static VOLSPACETYPE:number;
  5863. static COLOROVERLIFEGRADIENTALPHAS:number;
  5864. static COLOROVERLIFEGRADIENTCOLORS:number;
  5865. static MAXCOLOROVERLIFEGRADIENTALPHAS:number;
  5866. static MAXCOLOROVERLIFEGRADIENTCOLORS:number;
  5867. static SOLSIZEGRADIENT:number;
  5868. static SOLSIZEGRADIENTX:number;
  5869. static SOLSIZEGRADIENTY:number;
  5870. static SOLSizeGradientZ:number;
  5871. static SOLSizeGradientMax:number;
  5872. static SOLSIZEGRADIENTXMAX:number;
  5873. static SOLSIZEGRADIENTYMAX:number;
  5874. static SOLSizeGradientZMAX:number;
  5875. static ROLANGULARVELOCITYCONST:number;
  5876. static ROLANGULARVELOCITYCONSTSEPRARATE:number;
  5877. static ROLANGULARVELOCITYGRADIENT:number;
  5878. static ROLANGULARVELOCITYGRADIENTX:number;
  5879. static ROLANGULARVELOCITYGRADIENTY:number;
  5880. static ROLANGULARVELOCITYGRADIENTZ:number;
  5881. static ROLANGULARVELOCITYCONSTMAX:number;
  5882. static ROLANGULARVELOCITYCONSTMAXSEPRARATE:number;
  5883. static ROLANGULARVELOCITYGRADIENTMAX:number;
  5884. static ROLANGULARVELOCITYGRADIENTXMAX:number;
  5885. static ROLANGULARVELOCITYGRADIENTYMAX:number;
  5886. static ROLANGULARVELOCITYGRADIENTZMAX:number;
  5887. static ROLANGULARVELOCITYGRADIENTWMAX:number;
  5888. static TEXTURESHEETANIMATIONCYCLES:number;
  5889. static TEXTURESHEETANIMATIONSUBUVLENGTH:number;
  5890. static TEXTURESHEETANIMATIONGRADIENTUVS:number;
  5891. static TEXTURESHEETANIMATIONGRADIENTMAXUVS:number;
  5892. }
  5893. }
  5894. declare module laya.d3.core.particleShuriKen {
  5895. /**
  5896. * <code>ShurikenParticleMaterial</code> 类用于实现粒子材质。
  5897. */
  5898. class ShurikenParticleMaterial extends laya.d3.core.material.Material {
  5899. /**
  5900. * 渲染状态_透明混合。
  5901. */
  5902. static RENDERMODE_ALPHABLENDED:number;
  5903. /**
  5904. * 渲染状态_加色法混合。
  5905. */
  5906. static RENDERMODE_ADDTIVE:number;
  5907. static SHADERDEFINE_DIFFUSEMAP:laya.d3.shader.ShaderDefine;
  5908. static SHADERDEFINE_TINTCOLOR:laya.d3.shader.ShaderDefine;
  5909. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  5910. static SHADERDEFINE_ADDTIVEFOG:laya.d3.shader.ShaderDefine;
  5911. static DIFFUSETEXTURE:number;
  5912. static TINTCOLOR:number;
  5913. static TILINGOFFSET:number;
  5914. static CULL:number;
  5915. static BLEND:number;
  5916. static BLEND_SRC:number;
  5917. static BLEND_DST:number;
  5918. static DEPTH_TEST:number;
  5919. static DEPTH_WRITE:number;
  5920. /**
  5921. * 默认材质,禁止修改
  5922. */
  5923. static defaultMaterial:ShurikenParticleMaterial;
  5924. /**
  5925. * 渲染模式。
  5926. */
  5927. set renderMode(value:number);
  5928. /**
  5929. * 颜色R分量。
  5930. */
  5931. get colorR():number;
  5932. set colorR(value:number);
  5933. /**
  5934. * 颜色G分量。
  5935. */
  5936. get colorG():number;
  5937. set colorG(value:number);
  5938. /**
  5939. * 颜色B分量。
  5940. */
  5941. get colorB():number;
  5942. set colorB(value:number);
  5943. /**
  5944. * 颜色Z分量。
  5945. */
  5946. get colorA():number;
  5947. set colorA(value:number);
  5948. /**
  5949. * 颜色。
  5950. */
  5951. get color():laya.d3.math.Vector4;
  5952. set color(value:laya.d3.math.Vector4);
  5953. /**
  5954. * 纹理平铺和偏移X分量。
  5955. */
  5956. get tilingOffsetX():number;
  5957. set tilingOffsetX(x:number);
  5958. /**
  5959. * 纹理平铺和偏移Y分量。
  5960. */
  5961. get tilingOffsetY():number;
  5962. set tilingOffsetY(y:number);
  5963. /**
  5964. * 纹理平铺和偏移Z分量。
  5965. */
  5966. get tilingOffsetZ():number;
  5967. set tilingOffsetZ(z:number);
  5968. /**
  5969. * 纹理平铺和偏移W分量。
  5970. */
  5971. get tilingOffsetW():number;
  5972. set tilingOffsetW(w:number);
  5973. /**
  5974. * 纹理平铺和偏移。
  5975. */
  5976. get tilingOffset():laya.d3.math.Vector4;
  5977. set tilingOffset(value:laya.d3.math.Vector4);
  5978. /**
  5979. * 漫反射贴图。
  5980. */
  5981. get texture():laya.resource.BaseTexture;
  5982. set texture(value:laya.resource.BaseTexture);
  5983. /**
  5984. * 是否写入深度。
  5985. */
  5986. get depthWrite():boolean;
  5987. set depthWrite(value:boolean);
  5988. /**
  5989. * 剔除方式。
  5990. */
  5991. get cull():number;
  5992. set cull(value:number);
  5993. /**
  5994. * 混合方式。
  5995. */
  5996. get blend():number;
  5997. set blend(value:number);
  5998. /**
  5999. * 混合源。
  6000. */
  6001. get blendSrc():number;
  6002. set blendSrc(value:number);
  6003. /**
  6004. * 混合目标。
  6005. */
  6006. get blendDst():number;
  6007. set blendDst(value:number);
  6008. /**
  6009. * 深度测试方式。
  6010. */
  6011. get depthTest():number;
  6012. set depthTest(value:number);
  6013. constructor();
  6014. /**
  6015. * 克隆。
  6016. * @return 克隆副本。
  6017. * @override
  6018. */
  6019. clone():any;
  6020. }
  6021. }
  6022. declare module laya.d3.core.particleShuriKen {
  6023. /**
  6024. * <code>ShurikenParticleRender</code> 类用于创建3D粒子渲染器。
  6025. */
  6026. class ShurikenParticleRenderer extends laya.d3.core.render.BaseRender {
  6027. /**
  6028. * 拉伸广告牌模式摄像机速度缩放,暂不支持。
  6029. */
  6030. stretchedBillboardCameraSpeedScale:number;
  6031. /**
  6032. * 拉伸广告牌模式速度缩放。
  6033. */
  6034. stretchedBillboardSpeedScale:number;
  6035. /**
  6036. * 拉伸广告牌模式长度缩放。
  6037. */
  6038. stretchedBillboardLengthScale:number;
  6039. /**
  6040. * 获取渲染模式,0为BILLBOARD、1为STRETCHEDBILLBOARD、2为HORIZONTALBILLBOARD、3为VERTICALBILLBOARD、4为MESH。
  6041. */
  6042. get renderMode():number;
  6043. set renderMode(value:number);
  6044. /**
  6045. * 获取网格渲染模式所使用的Mesh,rendderMode为4时生效。
  6046. */
  6047. get mesh():laya.d3.resource.models.Mesh;
  6048. set mesh(value:laya.d3.resource.models.Mesh);
  6049. /**
  6050. * 创建一个 <code>ShurikenParticleRender</code> 实例。
  6051. */
  6052. constructor(owner:laya.d3.core.particleShuriKen.ShuriKenParticle3D);
  6053. /**
  6054. * @inheritDoc
  6055. * @override
  6056. */
  6057. get bounds():laya.d3.core.Bounds;
  6058. }
  6059. }
  6060. declare module laya.d3.core.particleShuriKen {
  6061. /**
  6062. * <code>ShurikenParticleSystem</code> 类用于创建3D粒子数据模板。
  6063. */
  6064. class ShurikenParticleSystem extends laya.d3.core.GeometryElement implements laya.d3.core.IClone {
  6065. /**
  6066. * 粒子运行的总时长,单位为秒。
  6067. */
  6068. duration:number;
  6069. /**
  6070. * 是否循环。
  6071. */
  6072. looping:boolean;
  6073. /**
  6074. * 是否预热。暂不支持
  6075. */
  6076. prewarm:boolean;
  6077. /**
  6078. * 开始延迟类型,0为常量模式,1为随机随机双常量模式,不能和prewarm一起使用。
  6079. */
  6080. startDelayType:number;
  6081. /**
  6082. * 开始播放延迟,不能和prewarm一起使用。
  6083. */
  6084. startDelay:number;
  6085. /**
  6086. * 开始播放最小延迟,不能和prewarm一起使用。
  6087. */
  6088. startDelayMin:number;
  6089. /**
  6090. * 开始播放最大延迟,不能和prewarm一起使用。
  6091. */
  6092. startDelayMax:number;
  6093. /**
  6094. * 开始速度模式,0为恒定速度,2为两个恒定速度的随机插值。缺少1、3模式
  6095. */
  6096. startSpeedType:number;
  6097. /**
  6098. * 开始速度,0模式。
  6099. */
  6100. startSpeedConstant:number;
  6101. /**
  6102. * 最小开始速度,1模式。
  6103. */
  6104. startSpeedConstantMin:number;
  6105. /**
  6106. * 最大开始速度,1模式。
  6107. */
  6108. startSpeedConstantMax:number;
  6109. /**
  6110. * 开始尺寸是否为3D模式。
  6111. */
  6112. threeDStartSize:boolean;
  6113. /**
  6114. * 开始尺寸模式,0为恒定尺寸,2为两个恒定尺寸的随机插值。缺少1、3模式和对应的二种3D模式
  6115. */
  6116. startSizeType:number;
  6117. /**
  6118. * 开始尺寸,0模式。
  6119. */
  6120. startSizeConstant:number;
  6121. /**
  6122. * 开始三维尺寸,0模式。
  6123. */
  6124. startSizeConstantSeparate:laya.d3.math.Vector3;
  6125. /**
  6126. * 最小开始尺寸,2模式。
  6127. */
  6128. startSizeConstantMin:number;
  6129. /**
  6130. * 最大开始尺寸,2模式。
  6131. */
  6132. startSizeConstantMax:number;
  6133. /**
  6134. * 最小三维开始尺寸,2模式。
  6135. */
  6136. startSizeConstantMinSeparate:laya.d3.math.Vector3;
  6137. /**
  6138. * 最大三维开始尺寸,2模式。
  6139. */
  6140. startSizeConstantMaxSeparate:laya.d3.math.Vector3;
  6141. /**
  6142. * 3D开始旋转。
  6143. */
  6144. threeDStartRotation:boolean;
  6145. /**
  6146. * 开始旋转模式,0为恒定尺寸,2为两个恒定旋转的随机插值,缺少2种模式,和对应的四种3D模式。
  6147. */
  6148. startRotationType:number;
  6149. /**
  6150. * 开始旋转,0模式。
  6151. */
  6152. startRotationConstant:number;
  6153. /**
  6154. * 开始三维旋转,0模式。
  6155. */
  6156. startRotationConstantSeparate:laya.d3.math.Vector3;
  6157. /**
  6158. * 最小开始旋转,1模式。
  6159. */
  6160. startRotationConstantMin:number;
  6161. /**
  6162. * 最大开始旋转,1模式。
  6163. */
  6164. startRotationConstantMax:number;
  6165. /**
  6166. * 最小开始三维旋转,1模式。
  6167. */
  6168. startRotationConstantMinSeparate:laya.d3.math.Vector3;
  6169. /**
  6170. * 最大开始三维旋转,1模式。
  6171. */
  6172. startRotationConstantMaxSeparate:laya.d3.math.Vector3;
  6173. /**
  6174. * 随机旋转方向,范围为0.0到1.0
  6175. */
  6176. randomizeRotationDirection:number;
  6177. /**
  6178. * 开始颜色模式,0为恒定颜色,2为两个恒定颜色的随机插值,缺少2种模式。
  6179. */
  6180. startColorType:number;
  6181. /**
  6182. * 开始颜色,0模式。
  6183. */
  6184. startColorConstant:laya.d3.math.Vector4;
  6185. /**
  6186. * 最小开始颜色,1模式。
  6187. */
  6188. startColorConstantMin:laya.d3.math.Vector4;
  6189. /**
  6190. * 最大开始颜色,1模式。
  6191. */
  6192. startColorConstantMax:laya.d3.math.Vector4;
  6193. /**
  6194. * 重力敏感度。
  6195. */
  6196. gravityModifier:number;
  6197. /**
  6198. * 模拟器空间,0为World,1为Local。暂不支持Custom。
  6199. */
  6200. simulationSpace:number;
  6201. /**
  6202. * 粒子的播放速度。
  6203. */
  6204. simulationSpeed:number;
  6205. /**
  6206. * 缩放模式,0为Hiercachy,1为Local,2为World。
  6207. */
  6208. scaleMode:number;
  6209. /**
  6210. * 激活时是否自动播放。
  6211. */
  6212. playOnAwake:boolean;
  6213. /**
  6214. * 随机种子,注:play()前设置有效。
  6215. */
  6216. randomSeed:Uint32Array;
  6217. /**
  6218. * 是否使用随机种子。
  6219. */
  6220. autoRandomSeed:boolean;
  6221. /**
  6222. * 是否为性能模式,性能模式下会延迟粒子释放。
  6223. */
  6224. isPerformanceMode:boolean;
  6225. /**
  6226. * 最大粒子数。
  6227. */
  6228. get maxParticles():number;
  6229. set maxParticles(value:number);
  6230. /**
  6231. * 获取发射器。
  6232. */
  6233. get emission():laya.d3.core.particleShuriKen.module.Emission;
  6234. /**
  6235. * 粒子存活个数。
  6236. */
  6237. get aliveParticleCount():number;
  6238. /**
  6239. * 一次循环内的累计时间。
  6240. */
  6241. get emissionTime():number;
  6242. /**
  6243. * 形状。
  6244. */
  6245. get shape():laya.d3.core.particleShuriKen.module.shape.BaseShape;
  6246. set shape(value:laya.d3.core.particleShuriKen.module.shape.BaseShape);
  6247. /**
  6248. * 是否存活。
  6249. */
  6250. get isAlive():boolean;
  6251. /**
  6252. * 是否正在发射。
  6253. */
  6254. get isEmitting():boolean;
  6255. /**
  6256. * 是否正在播放。
  6257. */
  6258. get isPlaying():boolean;
  6259. /**
  6260. * 是否已暂停。
  6261. */
  6262. get isPaused():boolean;
  6263. /**
  6264. * 开始生命周期模式,0为固定时间,1为渐变时间,2为两个固定之间的随机插值,3为两个渐变时间的随机插值。
  6265. */
  6266. get startLifetimeType():number;
  6267. set startLifetimeType(value:number);
  6268. /**
  6269. * 开始生命周期,0模式,单位为秒。
  6270. */
  6271. get startLifetimeConstant():number;
  6272. set startLifetimeConstant(value:number);
  6273. /**
  6274. * 开始渐变生命周期,1模式,单位为秒。
  6275. */
  6276. get startLifeTimeGradient():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  6277. set startLifeTimeGradient(value:laya.d3.core.particleShuriKen.module.GradientDataNumber);
  6278. /**
  6279. * 最小开始生命周期,2模式,单位为秒。
  6280. */
  6281. get startLifetimeConstantMin():number;
  6282. set startLifetimeConstantMin(value:number);
  6283. /**
  6284. * 最大开始生命周期,2模式,单位为秒。
  6285. */
  6286. get startLifetimeConstantMax():number;
  6287. set startLifetimeConstantMax(value:number);
  6288. /**
  6289. * 开始渐变最小生命周期,3模式,单位为秒。
  6290. */
  6291. get startLifeTimeGradientMin():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  6292. set startLifeTimeGradientMin(value:laya.d3.core.particleShuriKen.module.GradientDataNumber);
  6293. /**
  6294. * 开始渐变最大生命周期,3模式,单位为秒。
  6295. */
  6296. get startLifeTimeGradientMax():laya.d3.core.particleShuriKen.module.GradientDataNumber;
  6297. set startLifeTimeGradientMax(value:laya.d3.core.particleShuriKen.module.GradientDataNumber);
  6298. /**
  6299. * 生命周期速度,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6300. */
  6301. get velocityOverLifetime():laya.d3.core.particleShuriKen.module.VelocityOverLifetime;
  6302. set velocityOverLifetime(value:laya.d3.core.particleShuriKen.module.VelocityOverLifetime);
  6303. /**
  6304. * 生命周期颜色,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6305. */
  6306. get colorOverLifetime():laya.d3.core.particleShuriKen.module.ColorOverLifetime;
  6307. set colorOverLifetime(value:laya.d3.core.particleShuriKen.module.ColorOverLifetime);
  6308. /**
  6309. * 生命周期尺寸,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6310. */
  6311. get sizeOverLifetime():laya.d3.core.particleShuriKen.module.SizeOverLifetime;
  6312. set sizeOverLifetime(value:laya.d3.core.particleShuriKen.module.SizeOverLifetime);
  6313. /**
  6314. * 生命周期旋转,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6315. */
  6316. get rotationOverLifetime():laya.d3.core.particleShuriKen.module.RotationOverLifetime;
  6317. set rotationOverLifetime(value:laya.d3.core.particleShuriKen.module.RotationOverLifetime);
  6318. /**
  6319. * 生命周期纹理动画,注意:如修改该值的某些属性,需重新赋值此属性才可生效。
  6320. */
  6321. get textureSheetAnimation():laya.d3.core.particleShuriKen.module.TextureSheetAnimation;
  6322. set textureSheetAnimation(value:laya.d3.core.particleShuriKen.module.TextureSheetAnimation);
  6323. constructor(owner:laya.d3.core.particleShuriKen.ShuriKenParticle3D);
  6324. /**
  6325. * 发射一个粒子。
  6326. */
  6327. emit(time:number):boolean;
  6328. addParticle(position:laya.d3.math.Vector3,direction:laya.d3.math.Vector3,time:number):boolean;
  6329. addNewParticlesToVertexBuffer():void;
  6330. /**
  6331. * @inheritDoc
  6332. * @override
  6333. */
  6334. _getType():number;
  6335. /**
  6336. * 开始发射粒子。
  6337. */
  6338. play():void;
  6339. /**
  6340. * 暂停发射粒子。
  6341. */
  6342. pause():void;
  6343. /**
  6344. * 通过指定时间增加粒子播放进度,并暂停播放。
  6345. * @param time 进度时间.如果restart为true,粒子播放时间会归零后再更新进度。
  6346. * @param restart 是否重置播放状态。
  6347. */
  6348. simulate(time:number,restart?:boolean):void;
  6349. /**
  6350. * 停止发射粒子。
  6351. */
  6352. stop():void;
  6353. /**
  6354. * 克隆。
  6355. * @param destObject 克隆源。
  6356. */
  6357. cloneTo(destObject:any):void;
  6358. /**
  6359. * 克隆。
  6360. * @return 克隆副本。
  6361. */
  6362. clone():any;
  6363. }
  6364. }
  6365. declare module laya.d3.core.pixelLine {
  6366. /**
  6367. * <code>PixelLineData</code> 类用于表示线数据。
  6368. */
  6369. class PixelLineData {
  6370. startPosition:laya.d3.math.Vector3;
  6371. endPosition:laya.d3.math.Vector3;
  6372. startColor:laya.d3.math.Color;
  6373. endColor:laya.d3.math.Color;
  6374. /**
  6375. * 克隆。
  6376. * @param destObject 克隆源。
  6377. */
  6378. cloneTo(destObject:PixelLineData):void;
  6379. }
  6380. }
  6381. declare module laya.d3.core.pixelLine {
  6382. /**
  6383. * <code>PixelLineFilter</code> 类用于线过滤器。
  6384. */
  6385. class PixelLineFilter extends laya.d3.core.GeometryElement {
  6386. /**
  6387. * @private
  6388. */
  6389. private static _tempVector0:any;
  6390. /**
  6391. * @private
  6392. */
  6393. private static _tempVector1:any;
  6394. constructor(owner:laya.d3.core.pixelLine.PixelLineSprite3D,maxLineCount:number);
  6395. /**
  6396. * {@inheritDoc PixelLineFilter._getType}
  6397. * @override
  6398. */
  6399. _getType():number;
  6400. /**
  6401. * 获取线段数据
  6402. * @return 线段数据。
  6403. */
  6404. _getLineData(index:number,out:laya.d3.core.pixelLine.PixelLineData):void;
  6405. /**
  6406. * @inheritDoc
  6407. * @override
  6408. */
  6409. destroy():void;
  6410. }
  6411. }
  6412. declare module laya.d3.core.pixelLine {
  6413. /**
  6414. * <code>PixelLineMaterial</code> 类用于实现像素线材质。
  6415. */
  6416. class PixelLineMaterial extends laya.d3.core.material.Material {
  6417. static COLOR:number;
  6418. /**
  6419. * 默认材质,禁止修改
  6420. */
  6421. static defaultMaterial:PixelLineMaterial;
  6422. static CULL:number;
  6423. static BLEND:number;
  6424. static BLEND_SRC:number;
  6425. static BLEND_DST:number;
  6426. static DEPTH_TEST:number;
  6427. static DEPTH_WRITE:number;
  6428. /**
  6429. * 获取颜色。
  6430. * @return 颜色。
  6431. */
  6432. get color():laya.d3.math.Vector4;
  6433. /**
  6434. * 设置颜色。
  6435. * @param value 颜色。
  6436. */
  6437. set color(value:laya.d3.math.Vector4);
  6438. /**
  6439. * 设置是否写入深度。
  6440. * @param value 是否写入深度。
  6441. */
  6442. set depthWrite(value:boolean);
  6443. /**
  6444. * 获取是否写入深度。
  6445. * @return 是否写入深度。
  6446. */
  6447. get depthWrite():boolean;
  6448. /**
  6449. * 设置剔除方式。
  6450. * @param value 剔除方式。
  6451. */
  6452. set cull(value:number);
  6453. /**
  6454. * 获取剔除方式。
  6455. * @return 剔除方式。
  6456. */
  6457. get cull():number;
  6458. /**
  6459. * 设置混合方式。
  6460. * @param value 混合方式。
  6461. */
  6462. set blend(value:number);
  6463. /**
  6464. * 获取混合方式。
  6465. * @return 混合方式。
  6466. */
  6467. get blend():number;
  6468. /**
  6469. * 设置混合源。
  6470. * @param value 混合源
  6471. */
  6472. set blendSrc(value:number);
  6473. /**
  6474. * 获取混合源。
  6475. * @return 混合源。
  6476. */
  6477. get blendSrc():number;
  6478. /**
  6479. * 设置混合目标。
  6480. * @param value 混合目标
  6481. */
  6482. set blendDst(value:number);
  6483. /**
  6484. * 获取混合目标。
  6485. * @return 混合目标。
  6486. */
  6487. get blendDst():number;
  6488. /**
  6489. * 设置深度测试方式。
  6490. * @param value 深度测试方式
  6491. */
  6492. set depthTest(value:number);
  6493. /**
  6494. * 获取深度测试方式。
  6495. * @return 深度测试方式。
  6496. */
  6497. get depthTest():number;
  6498. constructor();
  6499. }
  6500. }
  6501. declare module laya.d3.core.pixelLine {
  6502. /**
  6503. * <code>PixelLineRenderer</code> 类用于线渲染器。
  6504. */
  6505. class PixelLineRenderer extends laya.d3.core.render.BaseRender {
  6506. constructor(owner:laya.d3.core.pixelLine.PixelLineSprite3D);
  6507. }
  6508. }
  6509. declare module laya.d3.core.pixelLine {
  6510. /**
  6511. * <code>PixelLineSprite3D</code> 类用于像素线渲染精灵。
  6512. */
  6513. class PixelLineSprite3D extends laya.d3.core.RenderableSprite3D {
  6514. /**
  6515. * 最大线数量
  6516. */
  6517. get maxLineCount():number;
  6518. set maxLineCount(value:number);
  6519. /**
  6520. * 获取线数量。
  6521. */
  6522. get lineCount():number;
  6523. set lineCount(value:number);
  6524. /**
  6525. * line渲染器。
  6526. */
  6527. get pixelLineRenderer():laya.d3.core.pixelLine.PixelLineRenderer;
  6528. /**
  6529. * 创建一个 <code>PixelLineSprite3D</code> 实例。
  6530. * @param maxCount 最大线段数量。
  6531. * @param name 名字。
  6532. */
  6533. constructor(maxCount?:number,name?:string);
  6534. /**
  6535. * @inheritDoc
  6536. */
  6537. _changeRenderObjects(sender:laya.d3.core.pixelLine.PixelLineRenderer,index:number,material:laya.d3.core.material.Material):void;
  6538. /**
  6539. * 增加一条线。
  6540. * @param startPosition 初始点位置
  6541. * @param endPosition 结束点位置
  6542. * @param startColor 初始点颜色
  6543. * @param endColor 结束点颜色
  6544. */
  6545. addLine(startPosition:laya.d3.math.Vector3,endPosition:laya.d3.math.Vector3,startColor:laya.d3.math.Color,endColor:laya.d3.math.Color):void;
  6546. /**
  6547. * 添加多条线段。
  6548. * @param lines 线段数据
  6549. */
  6550. addLines(lines:laya.d3.core.pixelLine.PixelLineData[]):void;
  6551. /**
  6552. * 移除一条线段。
  6553. * @param index 索引。
  6554. */
  6555. removeLine(index:number):void;
  6556. /**
  6557. * 更新线
  6558. * @param index 索引
  6559. * @param startPosition 初始点位置
  6560. * @param endPosition 结束点位置
  6561. * @param startColor 初始点颜色
  6562. * @param endColor 结束点颜色
  6563. */
  6564. setLine(index:number,startPosition:laya.d3.math.Vector3,endPosition:laya.d3.math.Vector3,startColor:laya.d3.math.Color,endColor:laya.d3.math.Color):void;
  6565. /**
  6566. * 获取线段数据
  6567. * @param out 线段数据。
  6568. */
  6569. getLine(index:number,out:laya.d3.core.pixelLine.PixelLineData):void;
  6570. /**
  6571. * 清除所有线段。
  6572. */
  6573. clear():void;
  6574. }
  6575. }
  6576. declare module laya.d3.core.pixelLine {
  6577. /**
  6578. * ...
  6579. * @author
  6580. */
  6581. class PixelLineVertex {
  6582. private static _vertexDeclaration:any;
  6583. static get vertexDeclaration():laya.d3.graphics.VertexDeclaration;
  6584. get vertexDeclaration():laya.d3.graphics.VertexDeclaration;
  6585. constructor();
  6586. }
  6587. }
  6588. declare module laya.d3.core {
  6589. /**
  6590. * <code>QuaternionKeyframe</code> 类用于创建四元数关键帧实例。
  6591. */
  6592. class QuaternionKeyframe extends laya.d3.core.Keyframe {
  6593. inTangent:laya.d3.math.Vector4;
  6594. outTangent:laya.d3.math.Vector4;
  6595. value:laya.d3.math.Quaternion;
  6596. /**
  6597. * 创建一个 <code>QuaternionKeyframe</code> 实例。
  6598. */
  6599. constructor();
  6600. /**
  6601. * 克隆。
  6602. * @param destObject 克隆源。
  6603. * @override
  6604. */
  6605. cloneTo(dest:any):void;
  6606. }
  6607. }
  6608. declare module laya.d3.core.render {
  6609. /**
  6610. * <code>Render</code> 类用于渲染器的父类,抽象类不允许实例。
  6611. */
  6612. class BaseRender extends laya.events.EventDispatcher implements laya.resource.ISingletonElement,laya.d3.core.scene.IOctreeObject {
  6613. /**
  6614. * 排序矫正值。
  6615. */
  6616. sortingFudge:number;
  6617. /**
  6618. * 获取唯一标识ID,通常用于识别。
  6619. */
  6620. get id():number;
  6621. /**
  6622. * 光照贴图的索引。
  6623. */
  6624. get lightmapIndex():number;
  6625. set lightmapIndex(value:number);
  6626. /**
  6627. * 光照贴图的缩放和偏移。
  6628. */
  6629. get lightmapScaleOffset():laya.d3.math.Vector4;
  6630. set lightmapScaleOffset(value:laya.d3.math.Vector4);
  6631. /**
  6632. * 是否可用。
  6633. */
  6634. get enable():boolean;
  6635. set enable(value:boolean);
  6636. /**
  6637. * 返回第一个实例材质,第一次使用会拷贝实例对象。
  6638. */
  6639. get material():laya.d3.core.material.Material;
  6640. set material(value:laya.d3.core.material.Material);
  6641. /**
  6642. * 潜拷贝实例材质列表,第一次使用会拷贝实例对象。
  6643. */
  6644. get materials():laya.d3.core.material.Material[];
  6645. set materials(value:laya.d3.core.material.Material[]);
  6646. /**
  6647. * 返回第一个材质。
  6648. */
  6649. get sharedMaterial():laya.d3.core.material.Material;
  6650. set sharedMaterial(value:laya.d3.core.material.Material);
  6651. /**
  6652. * 浅拷贝材质列表。
  6653. */
  6654. get sharedMaterials():laya.d3.core.material.Material[];
  6655. set sharedMaterials(value:laya.d3.core.material.Material[]);
  6656. /**
  6657. * 包围盒,只读,不允许修改其值。
  6658. */
  6659. get bounds():laya.d3.core.Bounds;
  6660. set receiveShadow(value:boolean);
  6661. /**
  6662. * 是否接收阴影属性
  6663. */
  6664. get receiveShadow():boolean;
  6665. /**
  6666. * 是否产生阴影。
  6667. */
  6668. get castShadow():boolean;
  6669. set castShadow(value:boolean);
  6670. /**
  6671. * 是否是静态的一部分。
  6672. */
  6673. get isPartOfStaticBatch():boolean;
  6674. /**
  6675. * 是否被渲染。
  6676. */
  6677. get isRender():boolean;
  6678. /**
  6679. */
  6680. _getOctreeNode():laya.d3.core.scene.BoundsOctreeNode;
  6681. /**
  6682. */
  6683. _setOctreeNode(value:laya.d3.core.scene.BoundsOctreeNode):void;
  6684. /**
  6685. */
  6686. _getIndexInMotionList():number;
  6687. /**
  6688. */
  6689. _setIndexInMotionList(value:number):void;
  6690. /**
  6691. * [实现ISingletonElement接口]
  6692. */
  6693. _getIndexInList():number;
  6694. /**
  6695. * [实现ISingletonElement接口]
  6696. */
  6697. _setIndexInList(index:number):void;
  6698. /**
  6699. * 标记为非静态,静态合并后可用于取消静态限制。
  6700. */
  6701. markAsUnStatic():void;
  6702. }
  6703. }
  6704. declare module laya.d3.core.render {
  6705. /**
  6706. * <code>BloomEffect</code> 类用于创建泛光效果。
  6707. */
  6708. class BloomEffect extends laya.d3.core.render.PostProcessEffect {
  6709. /**
  6710. * 限制泛光像素的数量,该值在伽马空间。
  6711. */
  6712. clamp:number;
  6713. /**
  6714. * 泛光颜色。
  6715. */
  6716. color:laya.d3.math.Color;
  6717. /**
  6718. * 是否开启快速模式。该模式通过降低质量来提升性能。
  6719. */
  6720. fastMode:boolean;
  6721. /**
  6722. * 镜头污渍纹路,用于为泛光特效增加污渍灰尘效果
  6723. */
  6724. dirtTexture:laya.resource.Texture2D;
  6725. /**
  6726. * 获取泛光过滤器强度,最小值为0。
  6727. * @return 强度。
  6728. */
  6729. get intensity():number;
  6730. /**
  6731. * 设置泛光过滤器强度,最小值为0。
  6732. * @param value 强度。
  6733. */
  6734. set intensity(value:number);
  6735. /**
  6736. * 设置泛光阈值,在该阈值亮度以下的像素会被过滤掉,该值在伽马空间。
  6737. * @return 阈值。
  6738. */
  6739. get threshold():number;
  6740. /**
  6741. * 获取泛光阈值,在该阈值亮度以下的像素会被过滤掉,该值在伽马空间。
  6742. * @param value 阈值。
  6743. */
  6744. set threshold(value:number);
  6745. /**
  6746. * 获取软膝盖过渡强度,在阈值以下进行渐变过渡(0为完全硬过度,1为完全软过度)。
  6747. * @return 软膝盖值。
  6748. */
  6749. get softKnee():number;
  6750. /**
  6751. * 设置软膝盖过渡强度,在阈值以下进行渐变过渡(0为完全硬过度,1为完全软过度)。
  6752. * @param value 软膝盖值。
  6753. */
  6754. set softKnee(value:number);
  6755. /**
  6756. * 获取扩散值,改变泛光的扩散范围,最好使用整数值保证效果,该值会改变内部的迭代次数,范围是1到10。
  6757. * @return 光晕的扩散范围。
  6758. */
  6759. get diffusion():number;
  6760. /**
  6761. * 设置扩散值,改变泛光的扩散范围,最好使用整数值保证效果,该值会改变内部的迭代次数,范围是1到10。
  6762. * @param value 光晕的扩散范围。
  6763. */
  6764. set diffusion(value:number);
  6765. /**
  6766. * 获取形变比,通过扭曲泛光产生视觉上形变,负值为垂直扭曲,正值为水平扭曲。
  6767. * @return 形变比。
  6768. */
  6769. get anamorphicRatio():number;
  6770. /**
  6771. * 设置形变比,通过扭曲泛光产生视觉上形变,负值为垂直扭曲,正值为水平扭曲。
  6772. * @param value 形变比。
  6773. */
  6774. set anamorphicRatio(value:number);
  6775. /**
  6776. * 获取污渍强度。
  6777. * @return 污渍强度。
  6778. */
  6779. get dirtIntensity():number;
  6780. /**
  6781. * 设置污渍强度。
  6782. * @param value 污渍强度。
  6783. */
  6784. set dirtIntensity(value:number);
  6785. /**
  6786. * 创建一个 <code>BloomEffect</code> 实例。
  6787. */
  6788. constructor();
  6789. }
  6790. }
  6791. declare module laya.d3.core.render.command {
  6792. /**
  6793. * <code>BlitScreenQuadCMD</code> 类用于创建从一张渲染目标输出到另外一张渲染目标指令。
  6794. */
  6795. class BlitScreenQuadCMD extends laya.d3.core.render.command.Command {
  6796. /**
  6797. */
  6798. static create(source:laya.resource.BaseTexture,dest:laya.d3.resource.RenderTexture,offsetScale?:laya.d3.math.Vector4,shader?:laya.d3.shader.Shader3D,shaderData?:laya.d3.shader.ShaderData,subShader?:number,screenType?:number):BlitScreenQuadCMD;
  6799. /**
  6800. * @inheritDoc
  6801. * @override
  6802. */
  6803. run():void;
  6804. /**
  6805. * @inheritDoc
  6806. * @override
  6807. */
  6808. recover():void;
  6809. }
  6810. }
  6811. declare module laya.d3.core.render.command {
  6812. /**
  6813. * <code>Command</code> 类用于创建指令。
  6814. */
  6815. class Command {
  6816. /**
  6817. * 创建一个 <code>Command</code> 实例。
  6818. */
  6819. constructor();
  6820. /**
  6821. */
  6822. run():void;
  6823. /**
  6824. */
  6825. recover():void;
  6826. }
  6827. }
  6828. declare module laya.d3.core.render.command {
  6829. /**
  6830. * <code>CommandBuffer</code> 类用于创建命令流。
  6831. */
  6832. class CommandBuffer {
  6833. /**
  6834. * 创建一个 <code>CommandBuffer</code> 实例。
  6835. */
  6836. constructor();
  6837. /**
  6838. * 添加一条通过全屏四边形将源纹理渲染到目标渲染纹理指令。
  6839. * @param source 源纹理。
  6840. * @param dest 目标纹理。
  6841. * @param offsetScale 偏移缩放。
  6842. * @param shader 着色器,如果为null使用内部拷贝着色器,不做任何处理。
  6843. * @param shaderData 着色器数据,如果为null只接收sourceTexture。
  6844. * @param subShader subShader索引,默认值为0。
  6845. */
  6846. blitScreenQuad(source:laya.resource.BaseTexture,dest:laya.d3.resource.RenderTexture,offsetScale?:laya.d3.math.Vector4,shader?:laya.d3.shader.Shader3D,shaderData?:laya.d3.shader.ShaderData,subShader?:number):void;
  6847. /**
  6848. * 添加一条通过全屏三角形将源纹理渲染到目标渲染纹理指令。
  6849. * @param source 源纹理。
  6850. * @param dest 目标纹理。
  6851. * @param offsetScale 偏移缩放。
  6852. * @param shader 着色器,如果为null使用内部拷贝着色器,不做任何处理。
  6853. * @param shaderData 着色器数据,如果为null只接收sourceTexture。
  6854. * @param subShader subShader索引,默认值为0。
  6855. */
  6856. blitScreenTriangle(source:laya.resource.BaseTexture,dest:laya.d3.resource.RenderTexture,offsetScale?:laya.d3.math.Vector4,shader?:laya.d3.shader.Shader3D,shaderData?:laya.d3.shader.ShaderData,subShader?:number):void;
  6857. }
  6858. }
  6859. declare module laya.d3.core.render {
  6860. /**
  6861. * <code>PostProcessEffect</code> 类用于创建后期处理渲染效果。
  6862. */
  6863. class PostProcessEffect {
  6864. /**
  6865. * 创建一个 <code>PostProcessEffect</code> 实例。
  6866. */
  6867. constructor();
  6868. }
  6869. }
  6870. declare module laya.d3.core.render {
  6871. /**
  6872. * * <code>PostProcessRenderContext</code> 类用于创建后期处理渲染上下文。
  6873. */
  6874. class PostProcessRenderContext {
  6875. /**
  6876. * 源纹理。
  6877. */
  6878. source:laya.d3.resource.RenderTexture;
  6879. /**
  6880. * 输出纹理。
  6881. */
  6882. destination:laya.d3.resource.RenderTexture;
  6883. /**
  6884. * 渲染相机。
  6885. */
  6886. camera:laya.d3.core.Camera;
  6887. /**
  6888. * 合成着色器数据。
  6889. */
  6890. compositeShaderData:laya.d3.shader.ShaderData;
  6891. /**
  6892. * 后期处理指令流。
  6893. */
  6894. command:laya.d3.core.render.command.CommandBuffer;
  6895. /**
  6896. * 临时纹理数组。
  6897. */
  6898. deferredReleaseTextures:laya.d3.resource.RenderTexture[];
  6899. }
  6900. }
  6901. declare module laya.d3.core.render {
  6902. /**
  6903. * <code>RenderContext3D</code> 类用于实现渲染状态。
  6904. */
  6905. class RenderContext3D {
  6906. /**
  6907. * 渲染区宽度。
  6908. */
  6909. static clientWidth:number;
  6910. /**
  6911. * 渲染区高度。
  6912. */
  6913. static clientHeight:number;
  6914. /**
  6915. * 创建一个 <code>RenderContext3D</code> 实例。
  6916. */
  6917. constructor();
  6918. }
  6919. }
  6920. declare module laya.d3.core.render {
  6921. /**
  6922. * <code>RenderElement</code> 类用于实现渲染元素。
  6923. */
  6924. class RenderElement {
  6925. /**
  6926. * 创建一个 <code>RenderElement</code> 实例。
  6927. */
  6928. constructor();
  6929. }
  6930. }
  6931. declare module laya.d3.core.render {
  6932. /**
  6933. * <code>ScreenQuad</code> 类用于创建全屏四边形。
  6934. */
  6935. class ScreenQuad extends laya.resource.Resource {
  6936. /**
  6937. * 创建一个 <code>ScreenQuad</code> 实例,禁止使用。
  6938. */
  6939. constructor();
  6940. /**
  6941. * @inheritDoc
  6942. * @override
  6943. */
  6944. destroy():void;
  6945. }
  6946. }
  6947. declare module laya.d3.core.render {
  6948. /**
  6949. * <code>ScreenTriangle</code> 类用于创建全屏三角形。
  6950. */
  6951. class ScreenTriangle extends laya.resource.Resource {
  6952. /**
  6953. * 创建一个 <code>ScreenTriangle</code> 实例,禁止使用。
  6954. */
  6955. constructor();
  6956. /**
  6957. * @inheritDoc
  6958. * @override
  6959. */
  6960. destroy():void;
  6961. }
  6962. }
  6963. declare module laya.d3.core {
  6964. /**
  6965. * <code>RenderableSprite3D</code> 类用于可渲染3D精灵的父类,抽象类不允许实例。
  6966. */
  6967. class RenderableSprite3D extends laya.d3.core.Sprite3D {
  6968. /**
  6969. * 精灵级着色器宏定义,接收阴影。
  6970. */
  6971. static SHADERDEFINE_RECEIVE_SHADOW:laya.d3.shader.ShaderDefine;
  6972. /**
  6973. * 精灵级着色器宏定义,光照贴图。
  6974. */
  6975. static SAHDERDEFINE_LIGHTMAP:laya.d3.shader.ShaderDefine;
  6976. /**
  6977. * 精灵级着色器宏定义,光照贴图方向。
  6978. */
  6979. static SHADERDEFINE_LIGHTMAP_DIRECTIONAL:laya.d3.shader.ShaderDefine;
  6980. /**
  6981. * 着色器变量名,光照贴图缩放和偏移。
  6982. */
  6983. static LIGHTMAPSCALEOFFSET:number;
  6984. /**
  6985. * 着色器变量名,光照贴图。
  6986. */
  6987. static LIGHTMAP:number;
  6988. /**
  6989. * 着色器变量名,光照贴图方向。
  6990. */
  6991. static LIGHTMAP_DIRECTION:number;
  6992. /**
  6993. * 拾取颜色。
  6994. */
  6995. static PICKCOLOR:number;
  6996. pickColor:laya.d3.math.Vector4;
  6997. /**
  6998. * 创建一个 <code>RenderableSprite3D</code> 实例。
  6999. */
  7000. constructor(name:string);
  7001. /**
  7002. * @inheritDoc
  7003. * @override
  7004. */
  7005. protected _onInActive():void;
  7006. /**
  7007. * @inheritDoc
  7008. * @override
  7009. */
  7010. protected _onActive():void;
  7011. /**
  7012. * @inheritDoc
  7013. * @override
  7014. */
  7015. protected _onActiveInScene():void;
  7016. /**
  7017. * @inheritDoc
  7018. * @override
  7019. */
  7020. destroy(destroyChild?:boolean):void;
  7021. }
  7022. }
  7023. declare module laya.d3.core.scene {
  7024. /**
  7025. * <code>BoundsOctree</code> 类用于创建八叉树。
  7026. */
  7027. class BoundsOctree {
  7028. /**
  7029. * 创建一个 <code>BoundsOctree</code> 实例。
  7030. * @param initialWorldSize 八叉树尺寸
  7031. * @param initialWorldPos 八叉树中心
  7032. * @param minNodeSize 节点最小尺寸
  7033. * @param loosenessVal 松散值
  7034. */
  7035. constructor(initialWorldSize:number,initialWorldPos:laya.d3.math.Vector3,minNodeSize:number,looseness:number);
  7036. /**
  7037. * 添加物体
  7038. * @param object
  7039. */
  7040. add(object:laya.d3.core.scene.IOctreeObject):void;
  7041. /**
  7042. * 移除物体
  7043. * @return 是否成功
  7044. */
  7045. remove(object:laya.d3.core.scene.IOctreeObject):boolean;
  7046. /**
  7047. * 更新物体
  7048. */
  7049. update(object:laya.d3.core.scene.IOctreeObject):boolean;
  7050. /**
  7051. * 如果可能则收缩根节点。
  7052. */
  7053. shrinkRootIfPossible():void;
  7054. /**
  7055. * 添加运动物体。
  7056. * @param 运动物体 。
  7057. */
  7058. addMotionObject(object:laya.d3.core.scene.IOctreeObject):void;
  7059. /**
  7060. * 移除运动物体。
  7061. * @param 运动物体 。
  7062. */
  7063. removeMotionObject(object:laya.d3.core.scene.IOctreeObject):void;
  7064. /**
  7065. * 更新所有运动物体。
  7066. */
  7067. updateMotionObjects():void;
  7068. /**
  7069. * 获取是否与指定包围盒相交。
  7070. * @param checkBound AABB包围盒。
  7071. * @return 是否相交。
  7072. */
  7073. isCollidingWithBoundBox(checkBounds:laya.d3.math.BoundBox):boolean;
  7074. /**
  7075. * 获取是否与指定射线相交。
  7076. * @param ray 射线。
  7077. * @param maxDistance 射线的最大距离。
  7078. * @return 是否相交。
  7079. */
  7080. isCollidingWithRay(ray:laya.d3.math.Ray,maxDistance?:number):boolean;
  7081. /**
  7082. * 获取与指定包围盒相交的物体列表。
  7083. * @param checkBound AABB包围盒。
  7084. * @param result 相交物体列表
  7085. */
  7086. getCollidingWithBoundBox(checkBound:laya.d3.math.BoundBox,result:any[]):void;
  7087. /**
  7088. * 获取与指定射线相交的的物理列表。
  7089. * @param ray 射线。
  7090. * @param result 相交物体列表。
  7091. * @param maxDistance 射线的最大距离。
  7092. */
  7093. getCollidingWithRay(ray:laya.d3.math.Ray,result:any[],maxDistance?:number):void;
  7094. /**
  7095. * 获取与指定视锥相交的的物理列表。
  7096. * @param 渲染上下文 。
  7097. */
  7098. getCollidingWithFrustum(cameraCullInfo:laya.d3.graphics.CameraCullInfo,context:laya.d3.core.render.RenderContext3D,shader:laya.d3.shader.Shader3D,replacementTag:string,isShadowCasterCull:boolean):void;
  7099. /**
  7100. * 获取最大包围盒
  7101. * @return 最大包围盒
  7102. */
  7103. getMaxBounds():laya.d3.math.BoundBox;
  7104. }
  7105. }
  7106. declare module laya.d3.core.scene {
  7107. /**
  7108. * <code>BoundsOctreeNode</code> 类用于创建八叉树节点。
  7109. */
  7110. class BoundsOctreeNode {
  7111. /**
  7112. * 创建一个 <code>BoundsOctreeNode</code> 实例。
  7113. * @param octree 所属八叉树。
  7114. * @param parent 父节点。
  7115. * @param baseLength 节点基本长度。
  7116. * @param center 节点的中心位置。
  7117. */
  7118. constructor(octree:laya.d3.core.scene.BoundsOctree,parent:BoundsOctreeNode,baseLength:number,center:laya.d3.math.Vector3);
  7119. /**
  7120. * 添加指定物体。
  7121. * @param object 指定物体。
  7122. */
  7123. add(object:laya.d3.core.scene.IOctreeObject):boolean;
  7124. /**
  7125. * 移除指定物体。
  7126. * @param obejct 指定物体。
  7127. * @return 是否成功。
  7128. */
  7129. remove(object:laya.d3.core.scene.IOctreeObject):boolean;
  7130. /**
  7131. * 更新制定物体,
  7132. * @param obejct 指定物体。
  7133. * @return 是否成功。
  7134. */
  7135. update(object:laya.d3.core.scene.IOctreeObject):boolean;
  7136. /**
  7137. * 收缩八叉树节点。
  7138. * -所有物体都在根节点的八分之一区域
  7139. * -该节点无子节点或有子节点但1/8的子节点不包含物体
  7140. * @param minLength 最小尺寸。
  7141. * @return 新的根节点。
  7142. */
  7143. shrinkIfPossible(minLength:number):BoundsOctreeNode;
  7144. /**
  7145. * 检查该节点和其子节点是否包含任意物体。
  7146. * @return 是否包含任意物体。
  7147. */
  7148. hasAnyObjects():boolean;
  7149. /**
  7150. * 获取与指定包围盒相交的物体列表。
  7151. * @param checkBound AABB包围盒。
  7152. * @param result 相交物体列表
  7153. */
  7154. getCollidingWithBoundBox(checkBound:laya.d3.math.BoundBox,result:any[]):void;
  7155. /**
  7156. * 获取与指定射线相交的的物理列表。
  7157. * @param ray 射线。
  7158. * @param result 相交物体列表。
  7159. * @param maxDistance 射线的最大距离。
  7160. */
  7161. getCollidingWithRay(ray:laya.d3.math.Ray,result:any[],maxDistance?:number):void;
  7162. /**
  7163. * 获取与指定视锥相交的的物理列表。
  7164. * @param ray 射线。.
  7165. * @param result 相交物体列表。
  7166. */
  7167. getCollidingWithFrustum(cameraCullInfo:laya.d3.graphics.CameraCullInfo,context:laya.d3.core.render.RenderContext3D,customShader:laya.d3.shader.Shader3D,replacementTag:string,isShadowCasterCull:boolean):void;
  7168. /**
  7169. * 获取是否与指定包围盒相交。
  7170. * @param checkBound AABB包围盒。
  7171. * @return 是否相交。
  7172. */
  7173. isCollidingWithBoundBox(checkBound:laya.d3.math.BoundBox):boolean;
  7174. /**
  7175. * 获取是否与指定射线相交。
  7176. * @param ray 射线。
  7177. * @param maxDistance 射线的最大距离。
  7178. * @return 是否相交。
  7179. */
  7180. isCollidingWithRay(ray:laya.d3.math.Ray,maxDistance?:number):boolean;
  7181. /**
  7182. * 获取包围盒。
  7183. */
  7184. getBound():laya.d3.math.BoundBox;
  7185. }
  7186. }
  7187. declare module laya.d3.core.scene {
  7188. /**
  7189. * <code>IOctreeObject</code> 类用于实现八叉树物体规范。
  7190. */
  7191. interface IOctreeObject{
  7192. _getOctreeNode():laya.d3.core.scene.BoundsOctreeNode;
  7193. _setOctreeNode(value:laya.d3.core.scene.BoundsOctreeNode):void;
  7194. _getIndexInMotionList():number;
  7195. _setIndexInMotionList(value:number):void;
  7196. bounds:laya.d3.core.Bounds;
  7197. }
  7198. }
  7199. declare module laya.d3.core.scene {
  7200. /**
  7201. * 光照贴图。
  7202. */
  7203. class Lightmap {
  7204. /**
  7205. * 光照贴图颜色。
  7206. */
  7207. lightmapColor:laya.resource.Texture2D;
  7208. /**
  7209. * 光照贴图方向。
  7210. */
  7211. lightmapDirection:laya.resource.Texture2D;
  7212. }
  7213. }
  7214. declare module laya.d3.core.scene {
  7215. /**
  7216. * <code>OctreeMotionList</code> 类用于实现物理更新队列。
  7217. */
  7218. class OctreeMotionList extends laya.d3.component.SingletonList<laya.d3.core.scene.IOctreeObject> {
  7219. /**
  7220. * 创建一个新的 <code>OctreeMotionList</code> 实例。
  7221. */
  7222. constructor();
  7223. }
  7224. }
  7225. declare module laya.d3.core.scene {
  7226. enum AmbientMode {
  7227. /** 固定颜色。*/
  7228. SolidColor = 0,
  7229. /** 球谐光照,例如通过天空盒生成的球谐数据。 */
  7230. SphericalHarmonics = 1
  7231. }
  7232. /**
  7233. * 用于实现3D场景。
  7234. */
  7235. class Scene3D extends laya.display.Sprite implements laya.webgl.submit.ISubmit,laya.resource.ICreateResource {
  7236. /**
  7237. * Hierarchy资源。
  7238. */
  7239. static HIERARCHY:string;
  7240. /**
  7241. * 是否开启八叉树裁剪。
  7242. */
  7243. static octreeCulling:boolean;
  7244. /**
  7245. * 八叉树初始化尺寸。
  7246. */
  7247. static octreeInitialSize:number;
  7248. /**
  7249. * 八叉树初始化中心。
  7250. */
  7251. static octreeInitialCenter:laya.d3.math.Vector3;
  7252. /**
  7253. * 八叉树最小尺寸。
  7254. */
  7255. static octreeMinNodeSize:number;
  7256. /**
  7257. * 八叉树松散值。
  7258. */
  7259. static octreeLooseness:number;
  7260. static REFLECTIONMODE_SKYBOX:number;
  7261. static REFLECTIONMODE_CUSTOM:number;
  7262. static FOGCOLOR:number;
  7263. static FOGSTART:number;
  7264. static FOGRANGE:number;
  7265. static DIRECTIONLIGHTCOUNT:number;
  7266. static LIGHTBUFFER:number;
  7267. static CLUSTERBUFFER:number;
  7268. static SUNLIGHTDIRECTION:number;
  7269. static SUNLIGHTDIRCOLOR:number;
  7270. static AMBIENTSHAR:number;
  7271. static AMBIENTSHAG:number;
  7272. static AMBIENTSHAB:number;
  7273. static AMBIENTSHBR:number;
  7274. static AMBIENTSHBG:number;
  7275. static AMBIENTSHBB:number;
  7276. static AMBIENTSHC:number;
  7277. static REFLECTIONPROBE:number;
  7278. static REFLECTIONCUBE_HDR_PARAMS:number;
  7279. static LIGHTDIRECTION:number;
  7280. static LIGHTDIRCOLOR:number;
  7281. static POINTLIGHTPOS:number;
  7282. static POINTLIGHTRANGE:number;
  7283. static POINTLIGHTATTENUATION:number;
  7284. static POINTLIGHTCOLOR:number;
  7285. static SPOTLIGHTPOS:number;
  7286. static SPOTLIGHTDIRECTION:number;
  7287. static SPOTLIGHTSPOTANGLE:number;
  7288. static SPOTLIGHTRANGE:number;
  7289. static SPOTLIGHTCOLOR:number;
  7290. static AMBIENTCOLOR:number;
  7291. static REFLECTIONTEXTURE:number;
  7292. static TIME:number;
  7293. /**
  7294. * 加载场景,注意:不缓存。
  7295. * @param url 模板地址。
  7296. * @param complete 完成回调。
  7297. */
  7298. static load(url:string,complete:laya.utils.Handler):void;
  7299. /**
  7300. * 当前创建精灵所属遮罩层。
  7301. */
  7302. currentCreationLayer:number;
  7303. /**
  7304. * 是否启用灯光。
  7305. */
  7306. enableLight:boolean;
  7307. /**
  7308. * 资源的URL地址。
  7309. */
  7310. get url():string;
  7311. /**
  7312. * 是否允许雾化。
  7313. */
  7314. get enableFog():boolean;
  7315. set enableFog(value:boolean);
  7316. /**
  7317. * 雾化颜色。
  7318. */
  7319. get fogColor():laya.d3.math.Vector3;
  7320. set fogColor(value:laya.d3.math.Vector3);
  7321. /**
  7322. * 雾化起始位置。
  7323. */
  7324. get fogStart():number;
  7325. set fogStart(value:number);
  7326. /**
  7327. * 雾化范围。
  7328. */
  7329. get fogRange():number;
  7330. set fogRange(value:number);
  7331. /**
  7332. * 环境光模式。
  7333. * 如果值为AmbientMode.SolidColor一般使用ambientColor作为环境光源,如果值为如果值为AmbientMode.SphericalHarmonics一般使用ambientSphericalHarmonics作为环境光源。
  7334. */
  7335. get ambientMode():AmbientMode;
  7336. set ambientMode(value:AmbientMode);
  7337. /**
  7338. * 固定颜色环境光。
  7339. */
  7340. get ambientColor():laya.d3.math.Vector3;
  7341. set ambientColor(value:laya.d3.math.Vector3);
  7342. /**
  7343. * 球谐环境光,修改后必须重新赋值。
  7344. */
  7345. get ambientSphericalHarmonics():laya.d3.graphics.SphericalHarmonicsL2;
  7346. set ambientSphericalHarmonics(value:laya.d3.graphics.SphericalHarmonicsL2);
  7347. /**
  7348. * 环境球谐强度。
  7349. */
  7350. get ambientSphericalHarmonicsIntensity():number;
  7351. set ambientSphericalHarmonicsIntensity(value:number);
  7352. /**
  7353. * 反射立方体纹理。
  7354. */
  7355. get reflection():laya.d3.resource.TextureCube;
  7356. set reflection(value:laya.d3.resource.TextureCube);
  7357. /**
  7358. * 反射立方体纹理解码格式。
  7359. */
  7360. get reflectionDecodingFormat():laya.resource.TextureDecodeFormat;
  7361. set reflectionDecodingFormat(value:laya.resource.TextureDecodeFormat);
  7362. /**
  7363. * 反射强度。
  7364. */
  7365. get reflectionIntensity():number;
  7366. set reflectionIntensity(value:number);
  7367. /**
  7368. * 天空渲染器。
  7369. */
  7370. get skyRenderer():laya.d3.resource.models.SkyRenderer;
  7371. /**
  7372. * 物理模拟器。
  7373. */
  7374. get physicsSimulation():laya.d3.physics.PhysicsSimulation;
  7375. get cannonPhysicsSimulation():laya.d3.physicsCannon.CannonPhysicsSimulation;
  7376. /**
  7377. * 场景时钟。
  7378. * @override
  7379. */
  7380. get timer():laya.utils.Timer;
  7381. set timer(value:laya.utils.Timer);
  7382. /**
  7383. * 输入。
  7384. */
  7385. get input():laya.d3.Input3D;
  7386. /**
  7387. * 光照贴图数组,返回值为浅拷贝数组。
  7388. */
  7389. get lightmaps():laya.d3.core.scene.Lightmap[];
  7390. set lightmaps(value:laya.d3.core.scene.Lightmap[]);
  7391. /**
  7392. * 创建一个 <code>Scene3D</code> 实例。
  7393. */
  7394. constructor();
  7395. /**
  7396. */
  7397. _setCreateURL(url:string):void;
  7398. /**
  7399. * @inheritDoc
  7400. * @override
  7401. */
  7402. protected _onActive():void;
  7403. /**
  7404. * @inheritDoc
  7405. * @override
  7406. */
  7407. protected _onInActive():void;
  7408. /**
  7409. * @inheritDoc
  7410. * @override
  7411. */
  7412. destroy(destroyChild?:boolean):void;
  7413. /**
  7414. */
  7415. renderSubmit():number;
  7416. /**
  7417. */
  7418. getRenderType():number;
  7419. /**
  7420. */
  7421. releaseRender():void;
  7422. /**
  7423. */
  7424. reUse(context:laya.resource.Context,pos:number):number;
  7425. /**
  7426. * @deprecated
  7427. */
  7428. get customReflection():laya.d3.resource.TextureCube;
  7429. set customReflection(value:laya.d3.resource.TextureCube);
  7430. /**
  7431. * @deprecated
  7432. */
  7433. get reflectionMode():number;
  7434. set reflectionMode(value:number);
  7435. /**
  7436. * @deprecated 设置光照贴图。
  7437. * @param value 光照贴图。
  7438. */
  7439. setlightmaps(value:laya.resource.Texture2D[]):void;
  7440. /**
  7441. * @deprecated 获取光照贴图浅拷贝列表。
  7442. * @return 获取光照贴图浅拷贝列表。
  7443. */
  7444. getlightmaps():laya.resource.Texture2D[];
  7445. }
  7446. }
  7447. declare module laya.d3.core.scene {
  7448. class Scene3DShaderDeclaration {
  7449. }
  7450. }
  7451. declare module laya.d3.core.scene {
  7452. /**
  7453. * ...
  7454. * @author ...
  7455. */
  7456. class SceneManager {
  7457. constructor();
  7458. }
  7459. }
  7460. declare module laya.d3.core {
  7461. /**
  7462. * <code>SkinMeshRenderer</code> 类用于蒙皮渲染器。
  7463. */
  7464. class SkinnedMeshRenderer extends laya.d3.core.MeshRenderer {
  7465. /**
  7466. * 局部边界。
  7467. */
  7468. get localBounds():laya.d3.core.Bounds;
  7469. set localBounds(value:laya.d3.core.Bounds);
  7470. /**
  7471. * 根节点。
  7472. */
  7473. get rootBone():laya.d3.core.Sprite3D;
  7474. set rootBone(value:laya.d3.core.Sprite3D);
  7475. /**
  7476. * 用于蒙皮的骨骼。
  7477. */
  7478. get bones():laya.d3.core.Sprite3D[];
  7479. /**
  7480. * 创建一个 <code>SkinnedMeshRender</code> 实例。
  7481. */
  7482. constructor(owner:laya.d3.core.RenderableSprite3D);
  7483. /**
  7484. * @override 包围盒。
  7485. */
  7486. get bounds():laya.d3.core.Bounds;
  7487. }
  7488. }
  7489. declare module laya.d3.core {
  7490. /**
  7491. * <code>SkinnedMeshSprite3D</code> 类用于创建网格。
  7492. */
  7493. class SkinnedMeshSprite3D extends laya.d3.core.RenderableSprite3D {
  7494. /**
  7495. * 着色器变量名,蒙皮动画。
  7496. */
  7497. static BONES:number;
  7498. /**
  7499. * 网格过滤器。
  7500. */
  7501. get meshFilter():laya.d3.core.MeshFilter;
  7502. /**
  7503. * 网格渲染器。
  7504. */
  7505. get skinnedMeshRenderer():laya.d3.core.SkinnedMeshRenderer;
  7506. /**
  7507. * 创建一个 <code>MeshSprite3D</code> 实例。
  7508. * @param mesh 网格,同时会加载网格所用默认材质。
  7509. * @param name 名字。
  7510. */
  7511. constructor(mesh?:laya.d3.resource.models.Mesh,name?:string);
  7512. /**
  7513. * @inheritDoc
  7514. * @override
  7515. */
  7516. destroy(destroyChild?:boolean):void;
  7517. }
  7518. }
  7519. declare module laya.d3.core {
  7520. class SkinnedMeshSprite3DShaderDeclaration {
  7521. /**
  7522. * 精灵级着色器宏定义,蒙皮动画。
  7523. */
  7524. static SHADERDEFINE_BONE:laya.d3.shader.ShaderDefine;
  7525. }
  7526. }
  7527. declare module laya.d3.core {
  7528. /**
  7529. * <code>Sprite3D</code> 类用于实现3D精灵。
  7530. */
  7531. class Sprite3D extends laya.display.Node implements laya.resource.ICreateResource {
  7532. /**
  7533. * Hierarchy资源。
  7534. */
  7535. static HIERARCHY:string;
  7536. /**
  7537. * 创建精灵的克隆实例。
  7538. * @param original 原始精灵。
  7539. * @param parent 父节点。
  7540. * @param worldPositionStays 是否保持自身世界变换。
  7541. * @param position 世界位置,worldPositionStays为false时生效。
  7542. * @param rotation 世界旋转,worldPositionStays为false时生效。
  7543. * @return 克隆实例。
  7544. */
  7545. static instantiate(original:Sprite3D,parent?:laya.display.Node,worldPositionStays?:boolean,position?:laya.d3.math.Vector3,rotation?:laya.d3.math.Quaternion):Sprite3D;
  7546. /**
  7547. * 加载网格模板。
  7548. * @param url 模板地址。
  7549. * @param complete 完成回掉。
  7550. */
  7551. static load(url:string,complete:laya.utils.Handler):void;
  7552. /**
  7553. * 唯一标识ID。
  7554. */
  7555. get id():number;
  7556. /**
  7557. * 蒙版层。
  7558. */
  7559. get layer():number;
  7560. set layer(value:number);
  7561. /**
  7562. * 资源的URL地址。
  7563. */
  7564. get url():string;
  7565. /**
  7566. * 是否为静态。
  7567. */
  7568. get isStatic():boolean;
  7569. /**
  7570. * 精灵变换。
  7571. */
  7572. get transform():laya.d3.core.Transform3D;
  7573. /**
  7574. * 创建一个 <code>Sprite3D</code> 实例。
  7575. * @param name 精灵名称。
  7576. * @param isStatic 是否为静态。
  7577. */
  7578. constructor(name?:string,isStatic?:boolean);
  7579. /**
  7580. */
  7581. _setCreateURL(url:string):void;
  7582. /**
  7583. * @inheritDoc
  7584. * @override
  7585. */
  7586. protected _onAdded():void;
  7587. /**
  7588. * @inheritDoc
  7589. * @override
  7590. */
  7591. protected _onRemoved():void;
  7592. /**
  7593. * 克隆。
  7594. * @return 克隆副本。
  7595. */
  7596. clone():laya.display.Node;
  7597. /**
  7598. * @inheritDoc
  7599. * @override
  7600. */
  7601. destroy(destroyChild?:boolean):void;
  7602. }
  7603. }
  7604. declare module laya.d3.core {
  7605. class TextureMode {
  7606. /**
  7607. * 拉伸模式。
  7608. */
  7609. static Stretch:number;
  7610. /**
  7611. * 平铺模式。
  7612. */
  7613. static Tile:number;
  7614. }
  7615. }
  7616. declare module laya.d3.core.trail {
  7617. enum TrailAlignment {
  7618. View = 0,
  7619. TransformZ = 1
  7620. }
  7621. }
  7622. declare module laya.d3.core.trail {
  7623. /**
  7624. * <code>TrailFilter</code> 类用于创建拖尾过滤器。
  7625. */
  7626. class TrailFilter {
  7627. static CURTIME:number;
  7628. static LIFETIME:number;
  7629. static WIDTHCURVE:number;
  7630. static WIDTHCURVEKEYLENGTH:number;
  7631. _owner:laya.d3.core.trail.TrailSprite3D;
  7632. _lastPosition:laya.d3.math.Vector3;
  7633. _curtime:number;
  7634. /**
  7635. * 轨迹准线。
  7636. */
  7637. alignment:number;
  7638. /**
  7639. * 获取淡出时间。
  7640. * @return 淡出时间。
  7641. */
  7642. get time():number;
  7643. /**
  7644. * 设置淡出时间。
  7645. * @param value 淡出时间。
  7646. */
  7647. set time(value:number);
  7648. /**
  7649. * 获取新旧顶点之间最小距离。
  7650. * @return 新旧顶点之间最小距离。
  7651. */
  7652. get minVertexDistance():number;
  7653. /**
  7654. * 设置新旧顶点之间最小距离。
  7655. * @param value 新旧顶点之间最小距离。
  7656. */
  7657. set minVertexDistance(value:number);
  7658. /**
  7659. * 获取宽度倍数。
  7660. * @return 宽度倍数。
  7661. */
  7662. get widthMultiplier():number;
  7663. /**
  7664. * 设置宽度倍数。
  7665. * @param value 宽度倍数。
  7666. */
  7667. set widthMultiplier(value:number);
  7668. /**
  7669. * 获取宽度曲线。
  7670. * @return 宽度曲线。
  7671. */
  7672. get widthCurve():laya.d3.core.FloatKeyframe[];
  7673. /**
  7674. * 设置宽度曲线。
  7675. * @param value 宽度曲线。
  7676. */
  7677. set widthCurve(value:laya.d3.core.FloatKeyframe[]);
  7678. /**
  7679. * 获取颜色梯度。
  7680. * @return 颜色梯度。
  7681. */
  7682. get colorGradient():laya.d3.core.Gradient;
  7683. /**
  7684. * 设置颜色梯度。
  7685. * @param value 颜色梯度。
  7686. */
  7687. set colorGradient(value:laya.d3.core.Gradient);
  7688. /**
  7689. * 获取纹理模式。
  7690. * @return 纹理模式。
  7691. */
  7692. get textureMode():number;
  7693. /**
  7694. * 设置纹理模式。
  7695. * @param value 纹理模式。
  7696. */
  7697. set textureMode(value:number);
  7698. constructor(owner:laya.d3.core.trail.TrailSprite3D);
  7699. clear():void;
  7700. /**
  7701. * 轨迹准线_面向摄像机。
  7702. */
  7703. static ALIGNMENT_VIEW:number;
  7704. /**
  7705. * 轨迹准线_面向运动方向。
  7706. */
  7707. static ALIGNMENT_TRANSFORM_Z:number;
  7708. }
  7709. }
  7710. declare module laya.d3.core.trail {
  7711. /**
  7712. * <code>TrailGeometry</code> 类用于创建拖尾渲染单元。
  7713. */
  7714. class TrailGeometry extends laya.d3.core.GeometryElement {
  7715. /**
  7716. * 轨迹准线_面向摄像机。
  7717. */
  7718. static ALIGNMENT_VIEW:number;
  7719. /**
  7720. * 轨迹准线_面向运动方向。
  7721. */
  7722. static ALIGNMENT_TRANSFORM_Z:number;
  7723. private tmpColor:any;
  7724. /**
  7725. * @private
  7726. */
  7727. private _disappearBoundsMode:any;
  7728. constructor(owner:laya.d3.core.trail.TrailFilter);
  7729. /**
  7730. * @inheritDoc
  7731. * @override
  7732. */
  7733. _getType():number;
  7734. /**
  7735. * @inheritDoc
  7736. * @override
  7737. */
  7738. destroy():void;
  7739. clear():void;
  7740. }
  7741. }
  7742. declare module laya.d3.core.trail {
  7743. /**
  7744. * <code>TrailMaterial</code> 类用于实现拖尾材质。
  7745. */
  7746. class TrailMaterial extends laya.d3.core.material.Material {
  7747. /**
  7748. * 渲染状态_透明混合。
  7749. */
  7750. static RENDERMODE_ALPHABLENDED:number;
  7751. /**
  7752. * 渲染状态_加色法混合。
  7753. */
  7754. static RENDERMODE_ADDTIVE:number;
  7755. /**
  7756. * 默认材质,禁止修改
  7757. */
  7758. static defaultMaterial:TrailMaterial;
  7759. static SHADERDEFINE_MAINTEXTURE:laya.d3.shader.ShaderDefine;
  7760. static SHADERDEFINE_TILINGOFFSET:laya.d3.shader.ShaderDefine;
  7761. static SHADERDEFINE_ADDTIVEFOG:laya.d3.shader.ShaderDefine;
  7762. static MAINTEXTURE:number;
  7763. static TINTCOLOR:number;
  7764. static TILINGOFFSET:number;
  7765. static CULL:number;
  7766. static BLEND:number;
  7767. static BLEND_SRC:number;
  7768. static BLEND_DST:number;
  7769. static DEPTH_TEST:number;
  7770. static DEPTH_WRITE:number;
  7771. /**
  7772. * 设置渲染模式。
  7773. * @return 渲染模式。
  7774. */
  7775. set renderMode(value:number);
  7776. /**
  7777. * 获取颜色R分量。
  7778. * @return 颜色R分量。
  7779. */
  7780. get colorR():number;
  7781. /**
  7782. * 设置颜色R分量。
  7783. * @param value 颜色R分量。
  7784. */
  7785. set colorR(value:number);
  7786. /**
  7787. * 获取颜色G分量。
  7788. * @return 颜色G分量。
  7789. */
  7790. get colorG():number;
  7791. /**
  7792. * 设置颜色G分量。
  7793. * @param value 颜色G分量。
  7794. */
  7795. set colorG(value:number);
  7796. /**
  7797. * 获取颜色B分量。
  7798. * @return 颜色B分量。
  7799. */
  7800. get colorB():number;
  7801. /**
  7802. * 设置颜色B分量。
  7803. * @param value 颜色B分量。
  7804. */
  7805. set colorB(value:number);
  7806. /**
  7807. * 获取颜色Z分量。
  7808. * @return 颜色Z分量。
  7809. */
  7810. get colorA():number;
  7811. /**
  7812. * 设置颜色alpha分量。
  7813. * @param value 颜色alpha分量。
  7814. */
  7815. set colorA(value:number);
  7816. /**
  7817. * 获取颜色。
  7818. * @return 颜色。
  7819. */
  7820. get color():laya.d3.math.Vector4;
  7821. /**
  7822. * 设置颜色。
  7823. * @param value 颜色。
  7824. */
  7825. set color(value:laya.d3.math.Vector4);
  7826. /**
  7827. * 获取贴图。
  7828. * @return 贴图。
  7829. */
  7830. get texture():laya.resource.BaseTexture;
  7831. /**
  7832. * 设置贴图。
  7833. * @param value 贴图。
  7834. */
  7835. set texture(value:laya.resource.BaseTexture);
  7836. /**
  7837. * 获取纹理平铺和偏移X分量。
  7838. * @return 纹理平铺和偏移X分量。
  7839. */
  7840. get tilingOffsetX():number;
  7841. /**
  7842. * 获取纹理平铺和偏移X分量。
  7843. * @param x 纹理平铺和偏移X分量。
  7844. */
  7845. set tilingOffsetX(x:number);
  7846. /**
  7847. * 获取纹理平铺和偏移Y分量。
  7848. * @return 纹理平铺和偏移Y分量。
  7849. */
  7850. get tilingOffsetY():number;
  7851. /**
  7852. * 获取纹理平铺和偏移Y分量。
  7853. * @param y 纹理平铺和偏移Y分量。
  7854. */
  7855. set tilingOffsetY(y:number);
  7856. /**
  7857. * 获取纹理平铺和偏移Z分量。
  7858. * @return 纹理平铺和偏移Z分量。
  7859. */
  7860. get tilingOffsetZ():number;
  7861. /**
  7862. * 获取纹理平铺和偏移Z分量。
  7863. * @param z 纹理平铺和偏移Z分量。
  7864. */
  7865. set tilingOffsetZ(z:number);
  7866. /**
  7867. * 获取纹理平铺和偏移W分量。
  7868. * @return 纹理平铺和偏移W分量。
  7869. */
  7870. get tilingOffsetW():number;
  7871. /**
  7872. * 获取纹理平铺和偏移W分量。
  7873. * @param w 纹理平铺和偏移W分量。
  7874. */
  7875. set tilingOffsetW(w:number);
  7876. /**
  7877. * 获取纹理平铺和偏移。
  7878. * @return 纹理平铺和偏移。
  7879. */
  7880. get tilingOffset():laya.d3.math.Vector4;
  7881. /**
  7882. * 设置纹理平铺和偏移。
  7883. * @param value 纹理平铺和偏移。
  7884. */
  7885. set tilingOffset(value:laya.d3.math.Vector4);
  7886. /**
  7887. * 设置是否写入深度。
  7888. * @param value 是否写入深度。
  7889. */
  7890. set depthWrite(value:boolean);
  7891. /**
  7892. * 获取是否写入深度。
  7893. * @return 是否写入深度。
  7894. */
  7895. get depthWrite():boolean;
  7896. /**
  7897. * 设置剔除方式。
  7898. * @param value 剔除方式。
  7899. */
  7900. set cull(value:number);
  7901. /**
  7902. * 获取剔除方式。
  7903. * @return 剔除方式。
  7904. */
  7905. get cull():number;
  7906. /**
  7907. * 设置混合方式。
  7908. * @param value 混合方式。
  7909. */
  7910. set blend(value:number);
  7911. /**
  7912. * 获取混合方式。
  7913. * @return 混合方式。
  7914. */
  7915. get blend():number;
  7916. /**
  7917. * 设置混合源。
  7918. * @param value 混合源
  7919. */
  7920. set blendSrc(value:number);
  7921. /**
  7922. * 获取混合源。
  7923. * @return 混合源。
  7924. */
  7925. get blendSrc():number;
  7926. /**
  7927. * 设置混合目标。
  7928. * @param value 混合目标
  7929. */
  7930. set blendDst(value:number);
  7931. /**
  7932. * 获取混合目标。
  7933. * @return 混合目标。
  7934. */
  7935. get blendDst():number;
  7936. /**
  7937. * 设置深度测试方式。
  7938. * @param value 深度测试方式
  7939. */
  7940. set depthTest(value:number);
  7941. /**
  7942. * 获取深度测试方式。
  7943. * @return 深度测试方式。
  7944. */
  7945. get depthTest():number;
  7946. constructor();
  7947. /**
  7948. * @inheritdoc
  7949. * @override
  7950. */
  7951. clone():any;
  7952. }
  7953. }
  7954. declare module laya.d3.core.trail {
  7955. /**
  7956. * <code>TrailRenderer</code> 类用于创建拖尾渲染器。
  7957. */
  7958. class TrailRenderer extends laya.d3.core.render.BaseRender {
  7959. constructor(owner:laya.d3.core.trail.TrailSprite3D);
  7960. protected _projectionViewWorldMatrix:laya.d3.math.Matrix4x4;
  7961. }
  7962. }
  7963. declare module laya.d3.core.trail {
  7964. /**
  7965. * <code>TrailSprite3D</code> 类用于创建拖尾渲染精灵。
  7966. */
  7967. class TrailSprite3D extends laya.d3.core.RenderableSprite3D {
  7968. /**
  7969. * Trail过滤器。
  7970. */
  7971. get trailFilter():laya.d3.core.trail.TrailFilter;
  7972. /**
  7973. * Trail渲染器。
  7974. */
  7975. get trailRenderer():laya.d3.core.trail.TrailRenderer;
  7976. constructor(name?:string);
  7977. /**
  7978. * @inheritDoc
  7979. * @override
  7980. */
  7981. protected _onActive():void;
  7982. /**
  7983. * <p>销毁此对象。</p>
  7984. * @param destroyChild 是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
  7985. * @override
  7986. */
  7987. destroy(destroyChild?:boolean):void;
  7988. clear():void;
  7989. }
  7990. }
  7991. declare module laya.d3.core.trail {
  7992. /**
  7993. * <code>VertexTrail</code> 类用于创建拖尾顶点结构。
  7994. */
  7995. class VertexTrail implements laya.d3.graphics.IVertex {
  7996. static TRAIL_POSITION0:number;
  7997. static TRAIL_OFFSETVECTOR:number;
  7998. static TRAIL_TIME0:number;
  7999. static TRAIL_TEXTURECOORDINATE0Y:number;
  8000. static TRAIL_TEXTURECOORDINATE0X:number;
  8001. static TRAIL_COLOR:number;
  8002. static get vertexDeclaration1():laya.d3.graphics.VertexDeclaration;
  8003. static get vertexDeclaration2():laya.d3.graphics.VertexDeclaration;
  8004. get vertexDeclaration():laya.d3.graphics.VertexDeclaration;
  8005. }
  8006. }
  8007. declare module laya.d3.core {
  8008. /**
  8009. * <code>Transform3D</code> 类用于实现3D变换。
  8010. */
  8011. class Transform3D extends laya.events.EventDispatcher {
  8012. /**
  8013. * 所属精灵。
  8014. */
  8015. get owner():laya.d3.core.Sprite3D;
  8016. /**
  8017. * 世界矩阵是否需要更新。
  8018. */
  8019. get worldNeedUpdate():boolean;
  8020. /**
  8021. * 局部位置X轴分量。
  8022. */
  8023. get localPositionX():number;
  8024. set localPositionX(x:number);
  8025. /**
  8026. * 局部位置Y轴分量。
  8027. */
  8028. get localPositionY():number;
  8029. set localPositionY(y:number);
  8030. /**
  8031. * 局部位置Z轴分量。
  8032. */
  8033. get localPositionZ():number;
  8034. set localPositionZ(z:number);
  8035. /**
  8036. * 局部位置。
  8037. */
  8038. get localPosition():laya.d3.math.Vector3;
  8039. set localPosition(value:laya.d3.math.Vector3);
  8040. /**
  8041. * 局部旋转四元数X分量。
  8042. */
  8043. get localRotationX():number;
  8044. set localRotationX(x:number);
  8045. /**
  8046. * 局部旋转四元数Y分量。
  8047. */
  8048. get localRotationY():number;
  8049. set localRotationY(y:number);
  8050. /**
  8051. * 局部旋转四元数Z分量。
  8052. */
  8053. get localRotationZ():number;
  8054. set localRotationZ(z:number);
  8055. /**
  8056. * 局部旋转四元数W分量。
  8057. */
  8058. get localRotationW():number;
  8059. set localRotationW(w:number);
  8060. /**
  8061. * 局部旋转。
  8062. */
  8063. get localRotation():laya.d3.math.Quaternion;
  8064. set localRotation(value:laya.d3.math.Quaternion);
  8065. /**
  8066. * 局部缩放X。
  8067. */
  8068. get localScaleX():number;
  8069. set localScaleX(value:number);
  8070. /**
  8071. * 局部缩放Y。
  8072. */
  8073. get localScaleY():number;
  8074. set localScaleY(value:number);
  8075. /**
  8076. * 局部缩放Z。
  8077. */
  8078. get localScaleZ():number;
  8079. set localScaleZ(value:number);
  8080. /**
  8081. * 局部缩放。
  8082. */
  8083. get localScale():laya.d3.math.Vector3;
  8084. set localScale(value:laya.d3.math.Vector3);
  8085. /**
  8086. * 局部空间的X轴欧拉角。
  8087. */
  8088. get localRotationEulerX():number;
  8089. set localRotationEulerX(value:number);
  8090. /**
  8091. * 局部空间的Y轴欧拉角。
  8092. */
  8093. get localRotationEulerY():number;
  8094. set localRotationEulerY(value:number);
  8095. /**
  8096. * 局部空间的Z轴欧拉角。
  8097. */
  8098. get localRotationEulerZ():number;
  8099. set localRotationEulerZ(value:number);
  8100. /**
  8101. * 局部空间欧拉角。
  8102. */
  8103. get localRotationEuler():laya.d3.math.Vector3;
  8104. set localRotationEuler(value:laya.d3.math.Vector3);
  8105. /**
  8106. * 局部矩阵。
  8107. */
  8108. get localMatrix():laya.d3.math.Matrix4x4;
  8109. set localMatrix(value:laya.d3.math.Matrix4x4);
  8110. /**
  8111. * 世界位置。
  8112. */
  8113. get position():laya.d3.math.Vector3;
  8114. set position(value:laya.d3.math.Vector3);
  8115. /**
  8116. * 世界旋转。
  8117. */
  8118. get rotation():laya.d3.math.Quaternion;
  8119. set rotation(value:laya.d3.math.Quaternion);
  8120. /**
  8121. * 世界空间的旋转角度,顺序为x、y、z。
  8122. */
  8123. get rotationEuler():laya.d3.math.Vector3;
  8124. set rotationEuler(value:laya.d3.math.Vector3);
  8125. /**
  8126. * 世界矩阵。
  8127. */
  8128. get worldMatrix():laya.d3.math.Matrix4x4;
  8129. set worldMatrix(value:laya.d3.math.Matrix4x4);
  8130. /**
  8131. * 创建一个 <code>Transform3D</code> 实例。
  8132. * @param owner 所属精灵。
  8133. */
  8134. constructor(owner:laya.d3.core.Sprite3D);
  8135. /**
  8136. * 平移变换。
  8137. * @param translation 移动距离。
  8138. * @param isLocal 是否局部空间。
  8139. */
  8140. translate(translation:laya.d3.math.Vector3,isLocal?:boolean):void;
  8141. /**
  8142. * 旋转变换。
  8143. * @param rotations 旋转幅度。
  8144. * @param isLocal 是否局部空间。
  8145. * @param isRadian 是否弧度制。
  8146. */
  8147. rotate(rotation:laya.d3.math.Vector3,isLocal?:boolean,isRadian?:boolean):void;
  8148. /**
  8149. * 获取向前方向。
  8150. * @param 前方向 。
  8151. */
  8152. getForward(forward:laya.d3.math.Vector3):void;
  8153. /**
  8154. * 获取向上方向。
  8155. * @param 上方向 。
  8156. */
  8157. getUp(up:laya.d3.math.Vector3):void;
  8158. /**
  8159. * 获取向右方向。
  8160. * @param 右方向 。
  8161. */
  8162. getRight(right:laya.d3.math.Vector3):void;
  8163. /**
  8164. * 观察目标位置。
  8165. * @param target 观察目标。
  8166. * @param up 向上向量。
  8167. * @param isLocal 是否局部空间。
  8168. */
  8169. lookAt(target:laya.d3.math.Vector3,up:laya.d3.math.Vector3,isLocal?:boolean):void;
  8170. /**
  8171. * 世界缩放。
  8172. * 某种条件下获取该值可能不正确(例如:父节点有缩放,子节点有旋转),缩放会倾斜,无法使用Vector3正确表示,必须使用Matrix3x3矩阵才能正确表示。
  8173. * @return 世界缩放。
  8174. */
  8175. getWorldLossyScale():laya.d3.math.Vector3;
  8176. /**
  8177. * 设置世界缩放。
  8178. * 某种条件下设置该值可能不正确(例如:父节点有缩放,子节点有旋转),缩放会倾斜,无法使用Vector3正确表示,必须使用Matrix3x3矩阵才能正确表示。
  8179. * @return 世界缩放。
  8180. */
  8181. setWorldLossyScale(value:laya.d3.math.Vector3):void;
  8182. /**
  8183. * @deprecated
  8184. */
  8185. get scale():laya.d3.math.Vector3;
  8186. /**
  8187. * @deprecated
  8188. */
  8189. set scale(value:laya.d3.math.Vector3);
  8190. }
  8191. }
  8192. declare module laya.d3.core {
  8193. /**
  8194. * <code>Vector3Keyframe</code> 类用于创建三维向量关键帧实例。
  8195. */
  8196. class Vector3Keyframe extends laya.d3.core.Keyframe {
  8197. inTangent:laya.d3.math.Vector3;
  8198. outTangent:laya.d3.math.Vector3;
  8199. value:laya.d3.math.Vector3;
  8200. /**
  8201. * 创建一个 <code>Vector3Keyframe</code> 实例。
  8202. */
  8203. constructor();
  8204. /**
  8205. * 克隆。
  8206. * @param destObject 克隆源。
  8207. * @override
  8208. */
  8209. cloneTo(dest:any):void;
  8210. }
  8211. }
  8212. declare module laya.d3.graphics {
  8213. class CameraCullInfo {
  8214. position:laya.d3.math.Vector3;
  8215. useOcclusionCulling:Boolean;
  8216. boundFrustum:laya.d3.math.BoundFrustum;
  8217. cullingMask:number;
  8218. }
  8219. class ShadowCullInfo {
  8220. position:laya.d3.math.Vector3;
  8221. cullPlanes:laya.d3.math.Plane[];
  8222. cullSphere:laya.d3.math.BoundSphere;
  8223. cullPlaneCount:number;
  8224. direction:laya.d3.math.Vector3;
  8225. }
  8226. }
  8227. declare module laya.d3.graphics {
  8228. /**
  8229. * <code>IndexBuffer3D</code> 类用于创建索引缓冲。
  8230. */
  8231. class IndexBuffer3D extends laya.webgl.utils.Buffer {
  8232. /**
  8233. * 索引类型。
  8234. */
  8235. get indexType():laya.d3.graphics.IndexFormat;
  8236. /**
  8237. * 索引类型字节数量。
  8238. */
  8239. get indexTypeByteCount():number;
  8240. /**
  8241. * 索引个数。
  8242. */
  8243. get indexCount():number;
  8244. /**
  8245. * 是否可读。
  8246. */
  8247. get canRead():boolean;
  8248. /**
  8249. * 创建一个 <code>IndexBuffer3D,不建议开发者使用并用IndexBuffer3D.create()代替</code> 实例。
  8250. * @param indexType 索引类型。
  8251. * @param indexCount 索引个数。
  8252. * @param bufferUsage IndexBuffer3D用途类型。
  8253. * @param canRead 是否可读。
  8254. */
  8255. constructor(indexType:laya.d3.graphics.IndexFormat,indexCount:number,bufferUsage?:number,canRead?:boolean);
  8256. /**
  8257. * @inheritDoc
  8258. * @override
  8259. */
  8260. _bindForVAO():void;
  8261. /**
  8262. * @inheritDoc
  8263. * @override
  8264. */
  8265. bind():boolean;
  8266. /**
  8267. * 设置数据。
  8268. * @param data 索引数据。
  8269. * @param bufferOffset 索引缓冲中的偏移。
  8270. * @param dataStartIndex 索引数据的偏移。
  8271. * @param dataCount 索引数据的数量。
  8272. */
  8273. setData(data:any,bufferOffset?:number,dataStartIndex?:number,dataCount?:number):void;
  8274. /**
  8275. * 获取索引数据。
  8276. * @return 索引数据。
  8277. */
  8278. getData():Uint16Array;
  8279. /**
  8280. * @inheritDoc
  8281. * @override
  8282. */
  8283. destroy():void;
  8284. }
  8285. }
  8286. declare module laya.d3.graphics {
  8287. enum IndexFormat {
  8288. /** 8 位无符号整型索引格式。*/
  8289. UInt8 = 0,
  8290. /** 16 位无符号整型索引格式。*/
  8291. UInt16 = 1,
  8292. /** 32 位无符号整型索引格式。*/
  8293. UInt32 = 2
  8294. }
  8295. }
  8296. declare module laya.d3.graphics {
  8297. /**
  8298. * <code>IVertex</code> 接口用于实现创建顶点声明。
  8299. */
  8300. interface IVertex{
  8301. vertexDeclaration:laya.d3.graphics.VertexDeclaration;
  8302. }
  8303. }
  8304. declare module laya.d3.graphics {
  8305. /**
  8306. * 二阶球谐函数。
  8307. */
  8308. class SphericalHarmonicsL2 {
  8309. /**
  8310. * 获取颜色通道的系数。
  8311. * @param i 通道索引,范围0到2。
  8312. * @param j 系数索引,范围0到8。
  8313. */
  8314. getCoefficient(i:number,j:number):number;
  8315. /**
  8316. * 设置颜色通道的系数。
  8317. * @param i 通道索引,范围0到2。
  8318. * @param j 系数索引,范围0到8。
  8319. */
  8320. setCoefficient(i:number,j:number,coefficient:number):void;
  8321. /**
  8322. * 设置颜色通道的系数。
  8323. * @param i 通道索引,范围0到2。
  8324. * @param coefficient0 系数0
  8325. * @param coefficient1 系数1
  8326. * @param coefficient2 系数2
  8327. * @param coefficient3 系数3
  8328. * @param coefficient4 系数4
  8329. * @param coefficient5 系数5
  8330. * @param coefficient6 系数6
  8331. * @param coefficient7 系数7
  8332. * @param coefficient8 系数8
  8333. */
  8334. setCoefficients(i:number,coefficient0:number,coefficient1:number,coefficient2:number,coefficient3:number,coefficient4:number,coefficient5:number,coefficient6:number,coefficient7:number,coefficient8:number):void;
  8335. /**
  8336. * 克隆
  8337. * @param dest
  8338. */
  8339. cloneTo(dest:SphericalHarmonicsL2):void;
  8340. }
  8341. }
  8342. declare module laya.d3.graphics {
  8343. /**
  8344. * <code>StaticBatchManager</code> 类用于静态批处理管理的父类。
  8345. */
  8346. class StaticBatchManager {
  8347. /**
  8348. * 静态批处理合并,合并后子节点修改Transform属性无效,根节点staticBatchRoot可为null,如果根节点不为null,根节点可移动。
  8349. * 如果renderableSprite3Ds为null,合并staticBatchRoot以及其所有子节点为静态批处理,staticBatchRoot作为静态根节点。
  8350. * 如果renderableSprite3Ds不为null,合并renderableSprite3Ds为静态批处理,staticBatchRoot作为静态根节点。
  8351. * @param staticBatchRoot 静态批处理根节点。
  8352. * @param renderableSprite3Ds 静态批处理子节点队列。
  8353. */
  8354. static combine(staticBatchRoot:laya.d3.core.Sprite3D,renderableSprite3Ds?:laya.d3.core.RenderableSprite3D[]):void;
  8355. /**
  8356. * 创建一个 <code>StaticBatchManager</code> 实例。
  8357. */
  8358. constructor();
  8359. }
  8360. }
  8361. declare module laya.d3.graphics.Vertex {
  8362. /**
  8363. * ...
  8364. * @author ...
  8365. */
  8366. class VertexMesh {
  8367. static MESH_POSITION0:number;
  8368. static MESH_COLOR0:number;
  8369. static MESH_TEXTURECOORDINATE0:number;
  8370. static MESH_NORMAL0:number;
  8371. static MESH_TANGENT0:number;
  8372. static MESH_BLENDINDICES0:number;
  8373. static MESH_BLENDWEIGHT0:number;
  8374. static MESH_TEXTURECOORDINATE1:number;
  8375. static MESH_WORLDMATRIX_ROW0:number;
  8376. static MESH_WORLDMATRIX_ROW1:number;
  8377. static MESH_WORLDMATRIX_ROW2:number;
  8378. static MESH_WORLDMATRIX_ROW3:number;
  8379. static MESH_MVPMATRIX_ROW0:number;
  8380. static MESH_MVPMATRIX_ROW1:number;
  8381. static MESH_MVPMATRIX_ROW2:number;
  8382. static MESH_MVPMATRIX_ROW3:number;
  8383. static instanceWorldMatrixDeclaration:laya.d3.graphics.VertexDeclaration;
  8384. static instanceMVPMatrixDeclaration:laya.d3.graphics.VertexDeclaration;
  8385. /**
  8386. * 获取顶点声明。
  8387. * @param vertexFlag 顶点声明标记字符,格式为:"POSITION,NORMAL,COLOR,UV,UV1,BLENDWEIGHT,BLENDINDICES,TANGENT"。
  8388. * @return 顶点声明。
  8389. */
  8390. static getVertexDeclaration(vertexFlag:string,compatible?:boolean):laya.d3.graphics.VertexDeclaration;
  8391. }
  8392. }
  8393. declare module laya.d3.graphics.Vertex {
  8394. /**
  8395. * <code>VertexPositionTerrain</code> 类用于创建位置、法线、纹理1、纹理2顶点结构。
  8396. */
  8397. class VertexPositionTerrain implements laya.d3.graphics.IVertex {
  8398. static TERRAIN_POSITION0:number;
  8399. static TERRAIN_NORMAL0:number;
  8400. static TERRAIN_TEXTURECOORDINATE0:number;
  8401. static TERRAIN_TEXTURECOORDINATE1:number;
  8402. private static _vertexDeclaration:any;
  8403. static get vertexDeclaration():laya.d3.graphics.VertexDeclaration;
  8404. private _position:any;
  8405. private _normal:any;
  8406. private _textureCoord0:any;
  8407. private _textureCoord1:any;
  8408. get position():laya.d3.math.Vector3;
  8409. get normal():laya.d3.math.Vector3;
  8410. get textureCoord0():laya.d3.math.Vector2;
  8411. get textureCoord1():laya.d3.math.Vector2;
  8412. get vertexDeclaration():laya.d3.graphics.VertexDeclaration;
  8413. constructor(position:laya.d3.math.Vector3,normal:laya.d3.math.Vector3,textureCoord0:laya.d3.math.Vector2,textureCoord1:laya.d3.math.Vector2);
  8414. }
  8415. }
  8416. declare module laya.d3.graphics.Vertex {
  8417. /**
  8418. * <code>VertexPositionNormalTexture</code> 类用于创建位置、纹理顶点结构。
  8419. */
  8420. class VertexPositionTexture0 implements laya.d3.graphics.IVertex {
  8421. private static _vertexDeclaration:any;
  8422. static get vertexDeclaration():laya.d3.graphics.VertexDeclaration;
  8423. private _position:any;
  8424. private _textureCoordinate0:any;
  8425. get position():laya.d3.math.Vector3;
  8426. get textureCoordinate0():laya.d3.math.Vector2;
  8427. get vertexDeclaration():laya.d3.graphics.VertexDeclaration;
  8428. constructor(position:laya.d3.math.Vector3,textureCoordinate0:laya.d3.math.Vector2);
  8429. }
  8430. }
  8431. declare module laya.d3.graphics.Vertex {
  8432. /**
  8433. * ...
  8434. * @author ...
  8435. */
  8436. class VertexShuriKenParticle {
  8437. static PARTICLE_CORNERTEXTURECOORDINATE0:number;
  8438. static PARTICLE_POSITION0:number;
  8439. static PARTICLE_COLOR0:number;
  8440. static PARTICLE_TEXTURECOORDINATE0:number;
  8441. static PARTICLE_SHAPEPOSITIONSTARTLIFETIME:number;
  8442. static PARTICLE_DIRECTIONTIME:number;
  8443. static PARTICLE_STARTCOLOR0:number;
  8444. static PARTICLE_ENDCOLOR0:number;
  8445. static PARTICLE_STARTSIZE:number;
  8446. static PARTICLE_STARTROTATION:number;
  8447. static PARTICLE_STARTSPEED:number;
  8448. static PARTICLE_RANDOM0:number;
  8449. static PARTICLE_RANDOM1:number;
  8450. static PARTICLE_SIMULATIONWORLDPOSTION:number;
  8451. static PARTICLE_SIMULATIONWORLDROTATION:number;
  8452. constructor();
  8453. }
  8454. }
  8455. declare module laya.d3.graphics.Vertex {
  8456. /**
  8457. * <code>VertexShurikenParticle</code> 类用于创建粒子顶点结构。
  8458. */
  8459. class VertexShurikenParticleBillboard extends laya.d3.graphics.Vertex.VertexShuriKenParticle {
  8460. static get vertexDeclaration():laya.d3.graphics.VertexDeclaration;
  8461. get cornerTextureCoordinate():laya.d3.math.Vector4;
  8462. get positionStartLifeTime():laya.d3.math.Vector4;
  8463. get velocity():laya.d3.math.Vector3;
  8464. get startColor():laya.d3.math.Vector4;
  8465. get startSize():laya.d3.math.Vector3;
  8466. get startRotation0():laya.d3.math.Vector3;
  8467. get startRotation1():laya.d3.math.Vector3;
  8468. get startRotation2():laya.d3.math.Vector3;
  8469. get startLifeTime():number;
  8470. get time():number;
  8471. get startSpeed():number;
  8472. get random0():laya.d3.math.Vector4;
  8473. get random1():laya.d3.math.Vector4;
  8474. get simulationWorldPostion():laya.d3.math.Vector3;
  8475. 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);
  8476. }
  8477. }
  8478. declare module laya.d3.graphics.Vertex {
  8479. /**
  8480. * /**
  8481. * <code>VertexShurikenParticle</code> 类用于创建粒子顶点结构。
  8482. */
  8483. class VertexShurikenParticleMesh extends laya.d3.graphics.Vertex.VertexShuriKenParticle {
  8484. static get vertexDeclaration():laya.d3.graphics.VertexDeclaration;
  8485. get cornerTextureCoordinate():laya.d3.math.Vector4;
  8486. get position():laya.d3.math.Vector4;
  8487. get velocity():laya.d3.math.Vector3;
  8488. get startColor():laya.d3.math.Vector4;
  8489. get startSize():laya.d3.math.Vector3;
  8490. get startRotation0():laya.d3.math.Vector3;
  8491. get startRotation1():laya.d3.math.Vector3;
  8492. get startRotation2():laya.d3.math.Vector3;
  8493. get startLifeTime():number;
  8494. get time():number;
  8495. get startSpeed():number;
  8496. get random0():laya.d3.math.Vector4;
  8497. get random1():laya.d3.math.Vector4;
  8498. get simulationWorldPostion():laya.d3.math.Vector3;
  8499. 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);
  8500. }
  8501. }
  8502. declare module laya.d3.graphics {
  8503. /**
  8504. * <code>VertexBuffer3D</code> 类用于创建顶点缓冲。
  8505. */
  8506. class VertexBuffer3D extends laya.webgl.utils.Buffer {
  8507. /**
  8508. * 数据类型_Float32Array类型。
  8509. */
  8510. static DATATYPE_FLOAT32ARRAY:number;
  8511. /**
  8512. * 数据类型_Uint8Array类型。
  8513. */
  8514. static DATATYPE_UINT8ARRAY:number;
  8515. /**
  8516. * 获取顶点声明。
  8517. */
  8518. get vertexDeclaration():laya.d3.graphics.VertexDeclaration;
  8519. set vertexDeclaration(value:laya.d3.graphics.VertexDeclaration);
  8520. /**
  8521. * 是否可读。
  8522. */
  8523. get canRead():boolean;
  8524. /**
  8525. * 创建一个 <code>VertexBuffer3D</code> 实例。
  8526. * @param byteLength 字节长度。
  8527. * @param bufferUsage VertexBuffer3D用途类型。
  8528. * @param canRead 是否可读。
  8529. */
  8530. constructor(byteLength:number,bufferUsage:number,canRead?:boolean);
  8531. /**
  8532. * @inheritDoc
  8533. * @override
  8534. */
  8535. bind():boolean;
  8536. /**
  8537. * 剥离内存块存储。
  8538. */
  8539. orphanStorage():void;
  8540. /**
  8541. * 设置数据。
  8542. * @param data 顶点数据。
  8543. * @param bufferOffset 顶点缓冲中的偏移,以字节为单位。
  8544. * @param dataStartIndex 顶点数据的偏移,以字节为单位。
  8545. * @param dataCount 顶点数据的长度,以字节为单位。
  8546. */
  8547. setData(buffer:ArrayBuffer,bufferOffset?:number,dataStartIndex?:number,dataCount?:number):void;
  8548. /**
  8549. * 获取顶点数据。
  8550. * @return 顶点数据。
  8551. */
  8552. getUint8Data():Uint8Array;
  8553. /**
  8554. * @ignore
  8555. */
  8556. getFloat32Data():Float32Array;
  8557. /**
  8558. * @ignore
  8559. */
  8560. markAsUnreadbale():void;
  8561. /**
  8562. * @inheritDoc
  8563. * @override
  8564. */
  8565. destroy():void;
  8566. }
  8567. }
  8568. declare module laya.d3.graphics {
  8569. /**
  8570. * <code>VertexDeclaration</code> 类用于生成顶点声明。
  8571. */
  8572. class VertexDeclaration {
  8573. /**
  8574. * 获取唯一标识ID(通常用于优化或识别)。
  8575. * @return 唯一标识ID
  8576. */
  8577. get id():number;
  8578. /**
  8579. * 顶点跨度,以字节为单位。
  8580. */
  8581. get vertexStride():number;
  8582. /**
  8583. * 顶点元素的数量。
  8584. */
  8585. get vertexElementCount():number;
  8586. /**
  8587. * 创建一个 <code>VertexDeclaration</code> 实例。
  8588. * @param vertexStride 顶点跨度。
  8589. * @param vertexElements 顶点元素集合。
  8590. */
  8591. constructor(vertexStride:number,vertexElements:Array<laya.d3.graphics.VertexElement>);
  8592. /**
  8593. * 通过索引获取顶点元素。
  8594. * @param index 索引。
  8595. */
  8596. getVertexElementByIndex(index:number):laya.d3.graphics.VertexElement;
  8597. }
  8598. }
  8599. declare module laya.d3.graphics {
  8600. /**
  8601. * <code>VertexElement</code> 类用于创建顶点结构分配。
  8602. */
  8603. class VertexElement {
  8604. get offset():number;
  8605. get elementFormat():string;
  8606. get elementUsage():number;
  8607. constructor(offset:number,elementFormat:string,elementUsage:number);
  8608. }
  8609. }
  8610. declare module laya.d3.graphics {
  8611. /**
  8612. * ...
  8613. * @author ...
  8614. */
  8615. class VertexElementFormat {
  8616. static Single:string;
  8617. static Vector2:string;
  8618. static Vector3:string;
  8619. static Vector4:string;
  8620. static Color:string;
  8621. static Byte4:string;
  8622. static Short2:string;
  8623. static Short4:string;
  8624. static NormalizedShort2:string;
  8625. static NormalizedShort4:string;
  8626. static HalfVector2:string;
  8627. static HalfVector4:string;
  8628. static __init__():void;
  8629. /**
  8630. * 获取顶点元素格式信息。
  8631. */
  8632. static getElementInfos(element:string):any[];
  8633. }
  8634. }
  8635. declare module laya.d3 {
  8636. /**
  8637. * <code>Input3D</code> 类用于实现3D输入。
  8638. */
  8639. class Input3D {
  8640. /**
  8641. * 获取触摸点个数。
  8642. * @return 触摸点个数。
  8643. */
  8644. touchCount():number;
  8645. /**
  8646. * 获取是否可以使用多点触摸。
  8647. * @return 是否可以使用多点触摸。
  8648. */
  8649. get multiTouchEnabled():boolean;
  8650. /**
  8651. * 设置是否可以使用多点触摸。
  8652. * @param 是否可以使用多点触摸 。
  8653. */
  8654. set multiTouchEnabled(value:boolean);
  8655. /**
  8656. * 获取触摸点。
  8657. * @param index 索引。
  8658. * @return 触摸点。
  8659. */
  8660. getTouch(index:number):laya.d3.Touch;
  8661. }
  8662. }
  8663. declare module laya.d3.math {
  8664. /**
  8665. * <code>BoundBox</code> 类用于创建包围盒。
  8666. */
  8667. class BoundBox implements laya.d3.core.IClone {
  8668. /**
  8669. * 最小顶点。
  8670. */
  8671. min:laya.d3.math.Vector3;
  8672. /**
  8673. * 最大顶点。
  8674. */
  8675. max:laya.d3.math.Vector3;
  8676. /**
  8677. * 创建一个 <code>BoundBox</code> 实例。
  8678. * @param min 包围盒的最小顶点。
  8679. * @param max 包围盒的最大顶点。
  8680. */
  8681. constructor(min:laya.d3.math.Vector3,max:laya.d3.math.Vector3);
  8682. /**
  8683. * 获取包围盒的8个角顶点。
  8684. * @param corners 返回顶点的输出队列。
  8685. */
  8686. getCorners(corners:laya.d3.math.Vector3[]):void;
  8687. /**
  8688. * 获取中心点。
  8689. * @param out
  8690. */
  8691. getCenter(out:laya.d3.math.Vector3):void;
  8692. /**
  8693. * 获取范围。
  8694. * @param out
  8695. */
  8696. getExtent(out:laya.d3.math.Vector3):void;
  8697. /**
  8698. * 设置中心点和范围。
  8699. * @param center
  8700. */
  8701. setCenterAndExtent(center:laya.d3.math.Vector3,extent:laya.d3.math.Vector3):void;
  8702. toDefault():void;
  8703. /**
  8704. * 从顶点生成包围盒。
  8705. * @param points 所需顶点队列。
  8706. * @param out 生成的包围盒。
  8707. */
  8708. static createfromPoints(points:laya.d3.math.Vector3[],out:BoundBox):void;
  8709. /**
  8710. * 合并两个包围盒。
  8711. * @param box1 包围盒1。
  8712. * @param box2 包围盒2。
  8713. * @param out 生成的包围盒。
  8714. */
  8715. static merge(box1:BoundBox,box2:BoundBox,out:BoundBox):void;
  8716. /**
  8717. * 克隆。
  8718. * @param destObject 克隆源。
  8719. */
  8720. cloneTo(destObject:any):void;
  8721. /**
  8722. * 克隆。
  8723. * @return 克隆副本。
  8724. */
  8725. clone():any;
  8726. }
  8727. }
  8728. declare module laya.d3.math {
  8729. enum FrustumCorner {
  8730. FarBottomLeft = 0,
  8731. FarTopLeft = 1,
  8732. FarTopRight = 2,
  8733. FarBottomRight = 3,
  8734. nearBottomLeft = 4,
  8735. nearTopLeft = 5,
  8736. nearTopRight = 6,
  8737. nearBottomRight = 7,
  8738. unknown = 8
  8739. }
  8740. /**
  8741. * <code>BoundFrustum</code> 类用于创建锥截体。
  8742. */
  8743. class BoundFrustum {
  8744. /**
  8745. * 根据矩阵获取6个包围平面。
  8746. * @param m 描述矩阵。
  8747. * @param np 近平面。
  8748. * @param fp 远平面。
  8749. * @param lp 左平面。
  8750. * @param rp 右平面。
  8751. * @param tp 顶平面。
  8752. * @param bp 底平面。
  8753. */
  8754. static getPlanesFromMatrix(m:laya.d3.math.Matrix4x4,np:laya.d3.math.Plane,fp:laya.d3.math.Plane,lp:laya.d3.math.Plane,rp:laya.d3.math.Plane,tp:laya.d3.math.Plane,bp:laya.d3.math.Plane):void;
  8755. /**
  8756. * 创建一个 <code>BoundFrustum</code> 实例。
  8757. * @param matrix 锥截体的描述4x4矩阵。
  8758. */
  8759. constructor(matrix:laya.d3.math.Matrix4x4);
  8760. /**
  8761. * 描述矩阵。
  8762. */
  8763. get matrix():laya.d3.math.Matrix4x4;
  8764. set matrix(matrix:laya.d3.math.Matrix4x4);
  8765. /**
  8766. * 近平面。
  8767. */
  8768. get near():laya.d3.math.Plane;
  8769. /**
  8770. * 远平面。
  8771. */
  8772. get far():laya.d3.math.Plane;
  8773. /**
  8774. * 左平面。
  8775. */
  8776. get left():laya.d3.math.Plane;
  8777. /**
  8778. * 右平面。
  8779. */
  8780. get right():laya.d3.math.Plane;
  8781. /**
  8782. * 顶平面。
  8783. */
  8784. get top():laya.d3.math.Plane;
  8785. /**
  8786. * 底平面。
  8787. */
  8788. get bottom():laya.d3.math.Plane;
  8789. /**
  8790. * 判断是否与其他锥截体相等。
  8791. * @param other 锥截体。
  8792. */
  8793. equalsBoundFrustum(other:BoundFrustum):boolean;
  8794. /**
  8795. * 判断是否与其他对象相等。
  8796. * @param obj 对象。
  8797. */
  8798. equalsObj(obj:any):boolean;
  8799. /**
  8800. * 获取锥截体的任意一平面。
  8801. * 0:近平面
  8802. * 1:远平面
  8803. * 2:左平面
  8804. * 3:右平面
  8805. * 4:顶平面
  8806. * 5:底平面
  8807. * @param index 索引。
  8808. */
  8809. getPlane(index:number):laya.d3.math.Plane;
  8810. /**
  8811. * 锥截体三个相交平面的交点。
  8812. * @param p1 平面1。
  8813. * @param p2 平面2。
  8814. * @param p3 平面3。
  8815. */
  8816. static get3PlaneInterPoint(p1:laya.d3.math.Plane,p2:laya.d3.math.Plane,p3:laya.d3.math.Plane,out:laya.d3.math.Vector3):void;
  8817. /**
  8818. * 锥截体的8个顶点。
  8819. * @param corners 返回顶点的输出队列。
  8820. */
  8821. getCorners(corners:laya.d3.math.Vector3[]):void;
  8822. /**
  8823. * 与点的关系。
  8824. * @param point 点。
  8825. * @returns 包涵:1,相交:2,不相交:0
  8826. */
  8827. containsPoint(point:laya.d3.math.Vector3):number;
  8828. /**
  8829. * 是否与包围盒交叉。
  8830. * @param box 包围盒。
  8831. * @returns boolean 是否相交
  8832. */
  8833. intersects(box:laya.d3.math.BoundBox):boolean;
  8834. /**
  8835. * 与包围盒的位置关系。
  8836. * @param box 包围盒。
  8837. * @returns 包涵:1,相交:2,不相交:0
  8838. */
  8839. containsBoundBox(box:laya.d3.math.BoundBox):number;
  8840. /**
  8841. * 与包围球的位置关系
  8842. * @param sphere 包围球。
  8843. * @returns 包涵:1,相交:2,不相交:0
  8844. */
  8845. containsBoundSphere(sphere:laya.d3.math.BoundSphere):number;
  8846. }
  8847. }
  8848. declare module laya.d3.math {
  8849. /**
  8850. * <code>BoundSphere</code> 类用于创建包围球。
  8851. */
  8852. class BoundSphere implements laya.d3.core.IClone {
  8853. private static _tempVector3:any;
  8854. /**
  8855. * 包围球的中心。
  8856. */
  8857. center:laya.d3.math.Vector3;
  8858. /**
  8859. * 包围球的半径。
  8860. */
  8861. radius:number;
  8862. /**
  8863. * 创建一个 <code>BoundSphere</code> 实例。
  8864. * @param center 包围球的中心。
  8865. * @param radius 包围球的半径。
  8866. */
  8867. constructor(center:laya.d3.math.Vector3,radius:number);
  8868. toDefault():void;
  8869. /**
  8870. * 从顶点的子队列生成包围球。
  8871. * @param points 顶点的队列。
  8872. * @param start 顶点子队列的起始偏移。
  8873. * @param count 顶点子队列的顶点数。
  8874. * @param result 生成的包围球。
  8875. */
  8876. static createFromSubPoints(points:laya.d3.math.Vector3[],start:number,count:number,out:BoundSphere):void;
  8877. /**
  8878. * 从顶点队列生成包围球。
  8879. * @param points 顶点的队列。
  8880. * @param result 生成的包围球。
  8881. */
  8882. static createfromPoints(points:laya.d3.math.Vector3[],out:BoundSphere):void;
  8883. /**
  8884. * 判断射线是否与碰撞球交叉,并返回交叉距离。
  8885. * @param ray 射线。
  8886. * @return 距离交叉点的距离,-1表示不交叉。
  8887. */
  8888. intersectsRayDistance(ray:laya.d3.math.Ray):number;
  8889. /**
  8890. * 判断射线是否与碰撞球交叉,并返回交叉点。
  8891. * @param ray 射线。
  8892. * @param outPoint 交叉点。
  8893. * @return 距离交叉点的距离,-1表示不交叉。
  8894. */
  8895. intersectsRayPoint(ray:laya.d3.math.Ray,outPoint:laya.d3.math.Vector3):number;
  8896. /**
  8897. * 克隆。
  8898. * @param destObject 克隆源。
  8899. */
  8900. cloneTo(destObject:any):void;
  8901. /**
  8902. * 克隆。
  8903. * @return 克隆副本。
  8904. */
  8905. clone():any;
  8906. }
  8907. }
  8908. declare module laya.d3.math {
  8909. /**
  8910. * <code>Collision</code> 类用于检测碰撞。
  8911. */
  8912. class CollisionUtils {
  8913. /**
  8914. * 创建一个 <code>Collision</code> 实例。
  8915. */
  8916. constructor();
  8917. /**
  8918. * 空间中点到平面的距离
  8919. * @param plane 平面
  8920. * @param point 点
  8921. */
  8922. static distancePlaneToPoint(plane:laya.d3.math.Plane,point:laya.d3.math.Vector3):number;
  8923. /**
  8924. * 空间中点到包围盒的距离
  8925. * @param box 包围盒
  8926. * @param point 点
  8927. */
  8928. static distanceBoxToPoint(box:laya.d3.math.BoundBox,point:laya.d3.math.Vector3):number;
  8929. /**
  8930. * 空间中包围盒到包围盒的距离
  8931. * @param box1 包围盒1
  8932. * @param box2 包围盒2
  8933. */
  8934. static distanceBoxToBox(box1:laya.d3.math.BoundBox,box2:laya.d3.math.BoundBox):number;
  8935. /**
  8936. * 空间中点到包围球的距离
  8937. * @param sphere 包围球
  8938. * @param point 点
  8939. */
  8940. static distanceSphereToPoint(sphere:laya.d3.math.BoundSphere,point:laya.d3.math.Vector3):number;
  8941. /**
  8942. * 空间中包围球到包围球的距离
  8943. * @param sphere1 包围球1
  8944. * @param sphere2 包围球2
  8945. */
  8946. static distanceSphereToSphere(sphere1:laya.d3.math.BoundSphere,sphere2:laya.d3.math.BoundSphere):number;
  8947. /**
  8948. * 空间中射线和三角面是否相交,输出距离
  8949. * @param ray 射线
  8950. * @param vertex1 三角面顶点1
  8951. * @param vertex2 三角面顶点2
  8952. * @param vertex3 三角面顶点3
  8953. * @param out 点和三角面的距离
  8954. * @return 是否相交
  8955. */
  8956. 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;
  8957. /**
  8958. * 空间中射线和三角面是否相交,输出相交点
  8959. * @param ray 射线
  8960. * @param vertex1 三角面顶点1
  8961. * @param vertex2 三角面顶点2
  8962. * @param vertex3 三角面顶点3
  8963. * @param out 相交点
  8964. * @return 是否相交
  8965. */
  8966. 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;
  8967. /**
  8968. * 空间中射线和点是否相交
  8969. * @param sphere1 包围球1
  8970. * @param sphere2 包围球2
  8971. */
  8972. static intersectsRayAndPoint(ray:laya.d3.math.Ray,point:laya.d3.math.Vector3):boolean;
  8973. /**
  8974. * 空间中射线和射线是否相交
  8975. * @param ray1 射线1
  8976. * @param ray2 射线2
  8977. * @param out 相交点
  8978. */
  8979. static intersectsRayAndRay(ray1:laya.d3.math.Ray,ray2:laya.d3.math.Ray,out:laya.d3.math.Vector3):boolean;
  8980. /**
  8981. * 空间中平面和三角面是否相交
  8982. * @param plane 平面
  8983. * @param vertex1 三角面顶点1
  8984. * @param vertex2 三角面顶点2
  8985. * @param vertex3 三角面顶点3
  8986. * @return 返回空间位置关系
  8987. */
  8988. static intersectsPlaneAndTriangle(plane:laya.d3.math.Plane,vertex1:laya.d3.math.Vector3,vertex2:laya.d3.math.Vector3,vertex3:laya.d3.math.Vector3):number;
  8989. /**
  8990. * 射线和平面是否相交,并返回相交距离。
  8991. * @param ray 射线。
  8992. * @param plane 平面。
  8993. * @return 相交距离,-1为不相交。
  8994. */
  8995. static intersectsRayAndPlaneRD(ray:laya.d3.math.Ray,plane:laya.d3.math.Plane):number;
  8996. /**
  8997. * 空间中射线和平面是否相交,并返回相交点。
  8998. * @param ray 射线。
  8999. * @param plane 平面。
  9000. * @param out 相交点。
  9001. */
  9002. static intersectsRayAndPlaneRP(ray:laya.d3.math.Ray,plane:laya.d3.math.Plane,out:laya.d3.math.Vector3):boolean;
  9003. /**
  9004. * 空间中射线和包围盒是否相交
  9005. * @param ray 射线
  9006. * @param box 包围盒
  9007. * @param out 相交距离,如果为0,不相交
  9008. */
  9009. static intersectsRayAndBoxRD(ray:laya.d3.math.Ray,box:laya.d3.math.BoundBox):number;
  9010. /**
  9011. * 空间中射线和包围盒是否相交
  9012. * @param ray 射线
  9013. * @param box 包围盒
  9014. * @param out 相交点
  9015. */
  9016. static intersectsRayAndBoxRP(ray:laya.d3.math.Ray,box:laya.d3.math.BoundBox,out:laya.d3.math.Vector3):number;
  9017. /**
  9018. * 空间中射线和包围球是否相交
  9019. * @param ray 射线
  9020. * @param sphere 包围球
  9021. * @return 相交距离,-1表示不相交
  9022. */
  9023. static intersectsRayAndSphereRD(ray:laya.d3.math.Ray,sphere:laya.d3.math.BoundSphere):number;
  9024. /**
  9025. * 空间中射线和包围球是否相交
  9026. * @param ray 射线
  9027. * @param sphere 包围球
  9028. * @param out 相交点
  9029. * @return 相交距离,-1表示不相交
  9030. */
  9031. static intersectsRayAndSphereRP(ray:laya.d3.math.Ray,sphere:laya.d3.math.BoundSphere,out:laya.d3.math.Vector3):number;
  9032. /**
  9033. * 空间中包围球和三角面是否相交
  9034. * @param sphere 包围球
  9035. * @param vertex1 三角面顶点1
  9036. * @param vertex2 三角面顶点2
  9037. * @param vertex3 三角面顶点3
  9038. * @return 返回是否相交
  9039. */
  9040. static intersectsSphereAndTriangle(sphere:laya.d3.math.BoundSphere,vertex1:laya.d3.math.Vector3,vertex2:laya.d3.math.Vector3,vertex3:laya.d3.math.Vector3):boolean;
  9041. /**
  9042. * 空间中点和平面是否相交
  9043. * @param plane 平面
  9044. * @param point 点
  9045. * @return 碰撞状态
  9046. */
  9047. static intersectsPlaneAndPoint(plane:laya.d3.math.Plane,point:laya.d3.math.Vector3):number;
  9048. /**
  9049. * 空间中平面和平面是否相交
  9050. * @param plane1 平面1
  9051. * @param plane2 平面2
  9052. * @return 是否相交
  9053. */
  9054. static intersectsPlaneAndPlane(plane1:laya.d3.math.Plane,plane2:laya.d3.math.Plane):boolean;
  9055. /**
  9056. * 空间中平面和平面是否相交
  9057. * @param plane1 平面1
  9058. * @param plane2 平面2
  9059. * @param line 相交线
  9060. * @return 是否相交
  9061. */
  9062. static intersectsPlaneAndPlaneRL(plane1:laya.d3.math.Plane,plane2:laya.d3.math.Plane,line:laya.d3.math.Ray):boolean;
  9063. /**
  9064. * 空间中平面和包围盒是否相交
  9065. * @param plane 平面
  9066. * @param box 包围盒
  9067. * @return 碰撞状态
  9068. */
  9069. static intersectsPlaneAndBox(plane:laya.d3.math.Plane,box:laya.d3.math.BoundBox):number;
  9070. /**
  9071. * 空间中平面和包围球是否相交
  9072. * @param plane 平面
  9073. * @param sphere 包围球
  9074. * @return 碰撞状态
  9075. */
  9076. static intersectsPlaneAndSphere(plane:laya.d3.math.Plane,sphere:laya.d3.math.BoundSphere):number;
  9077. /**
  9078. * 空间中包围盒和包围盒是否相交
  9079. * @param box1 包围盒1
  9080. * @param box2 包围盒2
  9081. * @return 是否相交
  9082. */
  9083. static intersectsBoxAndBox(box1:laya.d3.math.BoundBox,box2:laya.d3.math.BoundBox):boolean;
  9084. /**
  9085. * 空间中包围盒和包围球是否相交
  9086. * @param box 包围盒
  9087. * @param sphere 包围球
  9088. * @return 是否相交
  9089. */
  9090. static intersectsBoxAndSphere(box:laya.d3.math.BoundBox,sphere:laya.d3.math.BoundSphere):boolean;
  9091. /**
  9092. * 空间中包围球和包围球是否相交
  9093. * @param sphere1 包围球1
  9094. * @param sphere2 包围球2
  9095. * @return 是否相交
  9096. */
  9097. static intersectsSphereAndSphere(sphere1:laya.d3.math.BoundSphere,sphere2:laya.d3.math.BoundSphere):boolean;
  9098. /**
  9099. * 空间中包围盒是否包含另一个点
  9100. * @param box 包围盒
  9101. * @param point 点
  9102. * @return 位置关系:0 不想交,1 包含, 2 相交
  9103. */
  9104. static boxContainsPoint(box:laya.d3.math.BoundBox,point:laya.d3.math.Vector3):number;
  9105. /**
  9106. * 空间中包围盒是否包含另一个包围盒
  9107. * @param box1 包围盒1
  9108. * @param box2 包围盒2
  9109. * @return 位置关系:0 不想交,1 包含, 2 相交
  9110. */
  9111. static boxContainsBox(box1:laya.d3.math.BoundBox,box2:laya.d3.math.BoundBox):number;
  9112. /**
  9113. * 空间中包围盒是否包含另一个包围球
  9114. * @param box 包围盒
  9115. * @param sphere 包围球
  9116. * @return 位置关系:0 不想交,1 包含, 2 相交
  9117. */
  9118. static boxContainsSphere(box:laya.d3.math.BoundBox,sphere:laya.d3.math.BoundSphere):number;
  9119. /**
  9120. * 空间中包围球是否包含另一个点
  9121. * @param sphere 包围球
  9122. * @param point 点
  9123. * @return 位置关系:0 不想交,1 包含, 2 相交
  9124. */
  9125. static sphereContainsPoint(sphere:laya.d3.math.BoundSphere,point:laya.d3.math.Vector3):number;
  9126. /**
  9127. * 空间中包围球是否包含另一个三角面
  9128. * @param sphere
  9129. * @param vertex1 三角面顶点1
  9130. * @param vertex2 三角面顶点2
  9131. * @param vertex3 三角面顶点3
  9132. * @return 返回空间位置关系
  9133. */
  9134. static sphereContainsTriangle(sphere:laya.d3.math.BoundSphere,vertex1:laya.d3.math.Vector3,vertex2:laya.d3.math.Vector3,vertex3:laya.d3.math.Vector3):number;
  9135. /**
  9136. * 空间中包围球是否包含另一包围盒
  9137. * @param sphere 包围球
  9138. * @param box 包围盒
  9139. * @return 位置关系:0 不想交,1 包含, 2 相交
  9140. */
  9141. static sphereContainsBox(sphere:laya.d3.math.BoundSphere,box:laya.d3.math.BoundBox):number;
  9142. /**
  9143. * 空间中包围球是否包含另一包围球
  9144. * @param sphere1 包围球
  9145. * @param sphere2 包围球
  9146. * @return 位置关系:0 不想交,1 包含, 2 相交
  9147. */
  9148. static sphereContainsSphere(sphere1:laya.d3.math.BoundSphere,sphere2:laya.d3.math.BoundSphere):number;
  9149. /**
  9150. * 空间中点与三角面的最近点
  9151. * @param point 点
  9152. * @param vertex1 三角面顶点1
  9153. * @param vertex2 三角面顶点2
  9154. * @param vertex3 三角面顶点3
  9155. * @param out 最近点
  9156. */
  9157. 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;
  9158. /**
  9159. * 空间中平面与一点的最近点
  9160. * @param plane 平面
  9161. * @param point 点
  9162. * @param out 最近点
  9163. */
  9164. static closestPointPlanePoint(plane:laya.d3.math.Plane,point:laya.d3.math.Vector3,out:laya.d3.math.Vector3):void;
  9165. /**
  9166. * 空间中包围盒与一点的最近点
  9167. * @param box 包围盒
  9168. * @param point 点
  9169. * @param out 最近点
  9170. */
  9171. static closestPointBoxPoint(box:laya.d3.math.BoundBox,point:laya.d3.math.Vector3,out:laya.d3.math.Vector3):void;
  9172. /**
  9173. * 空间中包围球与一点的最近点
  9174. * @param sphere 包围球
  9175. * @param point 点
  9176. * @param out 最近点
  9177. */
  9178. static closestPointSpherePoint(sphere:laya.d3.math.BoundSphere,point:laya.d3.math.Vector3,out:laya.d3.math.Vector3):void;
  9179. /**
  9180. * 空间中包围球与包围球的最近点
  9181. * @param sphere1 包围球1
  9182. * @param sphere2 包围球2
  9183. * @param out 最近点
  9184. */
  9185. static closestPointSphereSphere(sphere1:laya.d3.math.BoundSphere,sphere2:laya.d3.math.BoundSphere,out:laya.d3.math.Vector3):void;
  9186. }
  9187. }
  9188. declare module laya.d3.math {
  9189. /**
  9190. * <code>Color</code> 类用于创建颜色实例。
  9191. */
  9192. class Color implements laya.d3.core.IClone {
  9193. /**
  9194. * 红色
  9195. */
  9196. static RED:Color;
  9197. /**
  9198. * 绿色
  9199. */
  9200. static GREEN:Color;
  9201. /**
  9202. * 蓝色
  9203. */
  9204. static BLUE:Color;
  9205. /**
  9206. * 蓝绿色
  9207. */
  9208. static CYAN:Color;
  9209. /**
  9210. * 黄色
  9211. */
  9212. static YELLOW:Color;
  9213. /**
  9214. * 品红色
  9215. */
  9216. static MAGENTA:Color;
  9217. /**
  9218. * 灰色
  9219. */
  9220. static GRAY:Color;
  9221. /**
  9222. * 白色
  9223. */
  9224. static WHITE:Color;
  9225. /**
  9226. * 黑色
  9227. */
  9228. static BLACK:Color;
  9229. /**
  9230. * Gamma空间值转换到线性空间。
  9231. * @param value gamma空间值。
  9232. */
  9233. static gammaToLinearSpace(value:number):number;
  9234. /**
  9235. * 线性空间值转换到Gamma空间。
  9236. * @param value 线性空间值。
  9237. */
  9238. static linearToGammaSpace(value:number):number;
  9239. /**
  9240. * red分量
  9241. */
  9242. r:number;
  9243. /**
  9244. * green分量
  9245. */
  9246. g:number;
  9247. /**
  9248. * blue分量
  9249. */
  9250. b:number;
  9251. /**
  9252. * alpha分量
  9253. */
  9254. a:number;
  9255. /**
  9256. * 创建一个 <code>Color</code> 实例。
  9257. * @param r 颜色的red分量。
  9258. * @param g 颜色的green分量。
  9259. * @param b 颜色的blue分量。
  9260. * @param a 颜色的alpha分量。
  9261. */
  9262. constructor(r?:number,g?:number,b?:number,a?:number);
  9263. /**
  9264. * Gamma空间转换到线性空间。
  9265. * @param linear 线性空间颜色。
  9266. */
  9267. toLinear(out:Color):void;
  9268. /**
  9269. * 线性空间转换到Gamma空间。
  9270. * @param gamma Gamma空间颜色。
  9271. */
  9272. toGamma(out:Color):void;
  9273. /**
  9274. * 克隆。
  9275. * @param destObject 克隆源。
  9276. */
  9277. cloneTo(destObject:any):void;
  9278. /**
  9279. * 克隆。
  9280. * @return 克隆副本。
  9281. */
  9282. clone():any;
  9283. forNativeElement():void;
  9284. }
  9285. }
  9286. declare module laya.d3.math {
  9287. /**
  9288. * <code>ContainmentType</code> 类用于定义空间物体位置关系。
  9289. */
  9290. class ContainmentType {
  9291. static Disjoint:number;
  9292. static Contains:number;
  9293. static Intersects:number;
  9294. }
  9295. }
  9296. declare module laya.d3.math {
  9297. /**
  9298. * <code>HalfFloatUtils</code> 类用于创建HalfFloat工具。
  9299. */
  9300. class HalfFloatUtils {
  9301. /**
  9302. * round a number to a half float number bits.
  9303. * @param num
  9304. */
  9305. static roundToFloat16Bits(num:number):number;
  9306. /**
  9307. * convert a half float number bits to a number.
  9308. * @param float16bits - half float number bits
  9309. */
  9310. static convertToNumber(float16bits:number):number;
  9311. }
  9312. }
  9313. declare module laya.d3.math {
  9314. /**
  9315. * <code>MathUtils3D</code> 类用于创建数学工具。
  9316. */
  9317. class MathUtils3D {
  9318. /**
  9319. * 单精度浮点(float)零的容差
  9320. */
  9321. static zeroTolerance:number;
  9322. /**
  9323. * 浮点数默认最大值
  9324. */
  9325. static MaxValue:number;
  9326. /**
  9327. * 浮点数默认最小值
  9328. */
  9329. static MinValue:number;
  9330. /**
  9331. * 角度转弧度系数
  9332. */
  9333. static Deg2Rad:number;
  9334. /**
  9335. * 创建一个 <code>MathUtils</code> 实例。
  9336. */
  9337. constructor();
  9338. /**
  9339. * 是否在容差的范围内近似于0
  9340. * @param 判断值
  9341. * @return 是否近似于0
  9342. */
  9343. static isZero(v:number):boolean;
  9344. /**
  9345. * 两个值是否在容差的范围内近似相等Sqr Magnitude
  9346. * @param 判断值
  9347. * @return 是否近似于0
  9348. */
  9349. static nearEqual(n1:number,n2:number):boolean;
  9350. static fastInvSqrt(value:number):number;
  9351. }
  9352. }
  9353. declare module laya.d3.math {
  9354. /**
  9355. * <code>Matrix3x3</code> 类用于创建3x3矩阵。
  9356. */
  9357. class Matrix3x3 implements laya.d3.core.IClone {
  9358. /**
  9359. * 默认矩阵,禁止修改
  9360. */
  9361. static DEFAULT:Matrix3x3;
  9362. /**
  9363. * 通过四元数创建旋转矩阵。
  9364. * @param rotation 旋转四元数。
  9365. * @param out 旋转矩阵。
  9366. */
  9367. static createRotationQuaternion(rotation:laya.d3.math.Quaternion,out:Matrix3x3):void;
  9368. /**
  9369. * 根据指定平移生成3x3矩阵
  9370. * @param tra 平移
  9371. * @param out 输出矩阵
  9372. */
  9373. static createFromTranslation(trans:laya.d3.math.Vector2,out:Matrix3x3):void;
  9374. /**
  9375. * 根据指定旋转生成3x3矩阵
  9376. * @param rad 旋转值
  9377. * @param out 输出矩阵
  9378. */
  9379. static createFromRotation(rad:number,out:Matrix3x3):void;
  9380. /**
  9381. * 根据制定缩放生成3x3矩阵
  9382. * @param scale 缩放值
  9383. * @param out 输出矩阵
  9384. */
  9385. static createFromScaling(scale:laya.d3.math.Vector3,out:Matrix3x3):void;
  9386. /**
  9387. * 从4x4矩阵转换为一个3x3的矩阵(原则为upper-left,忽略第四行四列)
  9388. * @param sou 4x4源矩阵
  9389. * @param out 3x3输出矩阵
  9390. */
  9391. static createFromMatrix4x4(sou:laya.d3.math.Matrix4x4,out:Matrix3x3):void;
  9392. /**
  9393. * 两个3x3矩阵的相乘
  9394. * @param left 左矩阵
  9395. * @param right 右矩阵
  9396. * @param out 输出矩阵
  9397. */
  9398. static multiply(left:Matrix3x3,right:Matrix3x3,out:Matrix3x3):void;
  9399. /**
  9400. * 矩阵元素数组
  9401. */
  9402. elements:Float32Array;
  9403. /**
  9404. * 创建一个 <code>Matrix3x3</code> 实例。
  9405. */
  9406. constructor();
  9407. /**
  9408. * 计算3x3矩阵的行列式
  9409. * @return 矩阵的行列式
  9410. */
  9411. determinant():number;
  9412. /**
  9413. * 通过一个二维向量转换3x3矩阵
  9414. * @param tra 转换向量
  9415. * @param out 输出矩阵
  9416. */
  9417. translate(trans:laya.d3.math.Vector2,out:Matrix3x3):void;
  9418. /**
  9419. * 根据指定角度旋转3x3矩阵
  9420. * @param rad 旋转角度
  9421. * @param out 输出矩阵
  9422. */
  9423. rotate(rad:number,out:Matrix3x3):void;
  9424. /**
  9425. * 根据制定缩放3x3矩阵
  9426. * @param scale 缩放值
  9427. * @param out 输出矩阵
  9428. */
  9429. scale(scale:laya.d3.math.Vector2,out:Matrix3x3):void;
  9430. /**
  9431. * 计算3x3矩阵的逆矩阵
  9432. * @param out 输出的逆矩阵
  9433. */
  9434. invert(out:Matrix3x3):void;
  9435. /**
  9436. * 计算3x3矩阵的转置矩阵
  9437. * @param out 输出矩阵
  9438. */
  9439. transpose(out:Matrix3x3):void;
  9440. /**
  9441. * 设置已有的矩阵为单位矩阵
  9442. */
  9443. identity():void;
  9444. /**
  9445. * 克隆。
  9446. * @param destObject 克隆源。
  9447. */
  9448. cloneTo(destObject:any):void;
  9449. /**
  9450. * 克隆。
  9451. * @return 克隆副本。
  9452. */
  9453. clone():any;
  9454. /**
  9455. * 计算观察3x3矩阵
  9456. * @param eye 观察者位置
  9457. * @param target 目标位置
  9458. * @param up 上向量
  9459. * @param out 输出3x3矩阵
  9460. */
  9461. static lookAt(eye:laya.d3.math.Vector3,target:laya.d3.math.Vector3,up:laya.d3.math.Vector3,out:Matrix3x3):void;
  9462. }
  9463. }
  9464. declare module laya.d3.math {
  9465. /**
  9466. * <code>Matrix4x4</code> 类用于创建4x4矩阵。
  9467. */
  9468. class Matrix4x4 implements laya.d3.core.IClone {
  9469. /**
  9470. * 默认矩阵,禁止修改
  9471. */
  9472. static DEFAULT:Matrix4x4;
  9473. /**
  9474. * 默认矩阵,禁止修改
  9475. */
  9476. static ZERO:Matrix4x4;
  9477. /**
  9478. * 绕X轴旋转
  9479. * @param rad 旋转角度
  9480. * @param out 输出矩阵
  9481. */
  9482. static createRotationX(rad:number,out:Matrix4x4):void;
  9483. /**
  9484. * 绕Y轴旋转
  9485. * @param rad 旋转角度
  9486. * @param out 输出矩阵
  9487. */
  9488. static createRotationY(rad:number,out:Matrix4x4):void;
  9489. /**
  9490. * 绕Z轴旋转
  9491. * @param rad 旋转角度
  9492. * @param out 输出矩阵
  9493. */
  9494. static createRotationZ(rad:number,out:Matrix4x4):void;
  9495. /**
  9496. * 通过yaw pitch roll旋转创建旋转矩阵。
  9497. * @param yaw
  9498. * @param pitch
  9499. * @param roll
  9500. * @param result
  9501. */
  9502. static createRotationYawPitchRoll(yaw:number,pitch:number,roll:number,result:Matrix4x4):void;
  9503. /**
  9504. * 通过旋转轴axis和旋转角度angle计算旋转矩阵。
  9505. * @param axis 旋转轴,假定已经归一化。
  9506. * @param angle 旋转角度。
  9507. * @param result 结果矩阵。
  9508. */
  9509. static createRotationAxis(axis:laya.d3.math.Vector3,angle:number,result:Matrix4x4):void;
  9510. setRotation(rotation:laya.d3.math.Quaternion):void;
  9511. setPosition(position:laya.d3.math.Vector3):void;
  9512. /**
  9513. * 通过四元数创建旋转矩阵。
  9514. * @param rotation 旋转四元数。
  9515. * @param result 输出旋转矩阵
  9516. */
  9517. static createRotationQuaternion(rotation:laya.d3.math.Quaternion,result:Matrix4x4):void;
  9518. /**
  9519. * 根据平移计算输出矩阵
  9520. * @param trans 平移向量
  9521. * @param out 输出矩阵
  9522. */
  9523. static createTranslate(trans:laya.d3.math.Vector3,out:Matrix4x4):void;
  9524. /**
  9525. * 根据缩放计算输出矩阵
  9526. * @param scale 缩放值
  9527. * @param out 输出矩阵
  9528. */
  9529. static createScaling(scale:laya.d3.math.Vector3,out:Matrix4x4):void;
  9530. /**
  9531. * 计算两个矩阵的乘法
  9532. * @param left left矩阵
  9533. * @param right right矩阵
  9534. * @param out 输出矩阵
  9535. */
  9536. static multiply(left:Matrix4x4,right:Matrix4x4,out:Matrix4x4):void;
  9537. static multiplyForNative(left:Matrix4x4,right:Matrix4x4,out:Matrix4x4):void;
  9538. /**
  9539. * 从四元数计算旋转矩阵
  9540. * @param rotation 四元数
  9541. * @param out 输出矩阵
  9542. */
  9543. static createFromQuaternion(rotation:laya.d3.math.Quaternion,out:Matrix4x4):void;
  9544. /**
  9545. * 计算仿射矩阵
  9546. * @param trans 平移
  9547. * @param rot 旋转
  9548. * @param scale 缩放
  9549. * @param out 输出矩阵
  9550. */
  9551. static createAffineTransformation(trans:laya.d3.math.Vector3,rot:laya.d3.math.Quaternion,scale:laya.d3.math.Vector3,out:Matrix4x4):void;
  9552. /**
  9553. * 计算观察矩阵
  9554. * @param eye 视点位置
  9555. * @param target 视点目标
  9556. * @param up 向上向量
  9557. * @param out 输出矩阵
  9558. */
  9559. static createLookAt(eye:laya.d3.math.Vector3,target:laya.d3.math.Vector3,up:laya.d3.math.Vector3,out:Matrix4x4):void;
  9560. /**
  9561. * 通过FOV创建透视投影矩阵。
  9562. * @param fov 视角。
  9563. * @param aspect 横纵比。
  9564. * @param near 近裁面。
  9565. * @param far 远裁面。
  9566. * @param out 输出矩阵。
  9567. */
  9568. static createPerspective(fov:number,aspect:number,znear:number,zfar:number,out:Matrix4x4):void;
  9569. /**
  9570. * 创建透视投影矩阵。
  9571. * @param left 视椎左边界。
  9572. * @param right 视椎右边界。
  9573. * @param bottom 视椎底边界。
  9574. * @param top 视椎顶边界。
  9575. * @param znear 视椎近边界。
  9576. * @param zfar 视椎远边界。
  9577. * @param out 输出矩阵。
  9578. */
  9579. static createPerspectiveOffCenter(left:number,right:number,bottom:number,top:number,znear:number,zfar:number,out:Matrix4x4):void;
  9580. /**
  9581. * 计算正交投影矩阵。
  9582. * @param left 视椎左边界。
  9583. * @param right 视椎右边界。
  9584. * @param bottom 视椎底边界。
  9585. * @param top 视椎顶边界。
  9586. * @param near 视椎近边界。
  9587. * @param far 视椎远边界。
  9588. * @param out 输出矩阵。
  9589. */
  9590. static createOrthoOffCenter(left:number,right:number,bottom:number,top:number,znear:number,zfar:number,out:Matrix4x4):void;
  9591. /**
  9592. * 矩阵元素数组
  9593. */
  9594. elements:Float32Array;
  9595. /**
  9596. * 创建一个 <code>Matrix4x4</code> 实例。
  9597. * @param 4x4矩阵的各元素
  9598. */
  9599. 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);
  9600. getElementByRowColumn(row:number,column:number):number;
  9601. setElementByRowColumn(row:number,column:number,value:number):void;
  9602. /**
  9603. * 判断两个4x4矩阵的值是否相等。
  9604. * @param other 4x4矩阵
  9605. */
  9606. equalsOtherMatrix(other:Matrix4x4):boolean;
  9607. /**
  9608. * 分解矩阵为平移向量、旋转四元数、缩放向量。
  9609. * @param translation 平移向量。
  9610. * @param rotation 旋转四元数。
  9611. * @param scale 缩放向量。
  9612. * @return 是否分解成功。
  9613. */
  9614. decomposeTransRotScale(translation:laya.d3.math.Vector3,rotation:laya.d3.math.Quaternion,scale:laya.d3.math.Vector3):boolean;
  9615. /**
  9616. * 分解矩阵为平移向量、旋转矩阵、缩放向量。
  9617. * @param translation 平移向量。
  9618. * @param rotationMatrix 旋转矩阵。
  9619. * @param scale 缩放向量。
  9620. * @return 是否分解成功。
  9621. */
  9622. decomposeTransRotMatScale(translation:laya.d3.math.Vector3,rotationMatrix:Matrix4x4,scale:laya.d3.math.Vector3):boolean;
  9623. /**
  9624. * 分解旋转矩阵的旋转为YawPitchRoll欧拉角。
  9625. * @param out float yaw
  9626. * @param out float pitch
  9627. * @param out float roll
  9628. * @return
  9629. */
  9630. decomposeYawPitchRoll(yawPitchRoll:laya.d3.math.Vector3):void;
  9631. /**
  9632. * 归一化矩阵
  9633. */
  9634. normalize():void;
  9635. /**
  9636. * 计算矩阵的转置矩阵
  9637. */
  9638. transpose():Matrix4x4;
  9639. /**
  9640. * 计算一个矩阵的逆矩阵
  9641. * @param out 输出矩阵
  9642. */
  9643. invert(out:Matrix4x4):void;
  9644. /**
  9645. * 计算BlillBoard矩阵
  9646. * @param objectPosition 物体位置
  9647. * @param cameraPosition 相机位置
  9648. * @param cameraUp 相机上向量
  9649. * @param cameraForward 相机前向量
  9650. * @param mat 变换矩阵
  9651. */
  9652. 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;
  9653. /**
  9654. * 设置矩阵为单位矩阵
  9655. */
  9656. identity():void;
  9657. /**
  9658. * 克隆。
  9659. * @param destObject 克隆源。
  9660. */
  9661. cloneTo(destObject:any):void;
  9662. /**
  9663. * 克隆。
  9664. * @return 克隆副本。
  9665. */
  9666. clone():any;
  9667. static translation(v3:laya.d3.math.Vector3,out:Matrix4x4):void;
  9668. /**
  9669. * 获取平移向量。
  9670. * @param out 平移向量。
  9671. */
  9672. getTranslationVector(out:laya.d3.math.Vector3):void;
  9673. /**
  9674. * 设置平移向量。
  9675. * @param translate 平移向量。
  9676. */
  9677. setTranslationVector(translate:laya.d3.math.Vector3):void;
  9678. /**
  9679. * 获取前向量。
  9680. * @param out 前向量。
  9681. */
  9682. getForward(out:laya.d3.math.Vector3):void;
  9683. /**
  9684. * 设置前向量。
  9685. * @param forward 前向量。
  9686. */
  9687. setForward(forward:laya.d3.math.Vector3):void;
  9688. }
  9689. }
  9690. declare module laya.d3.math.Native {
  9691. /**
  9692. * <code>Quaternion</code> 类用于创建四元数。
  9693. */
  9694. class ConchQuaternion implements laya.d3.core.IClone {
  9695. /**
  9696. * 默认矩阵,禁止修改
  9697. */
  9698. static DEFAULT:ConchQuaternion;
  9699. /**
  9700. * 无效矩阵,禁止修改
  9701. */
  9702. static NAN:ConchQuaternion;
  9703. /**
  9704. * 从欧拉角生成四元数(顺序为Yaw、Pitch、Roll)
  9705. * @param yaw yaw值
  9706. * @param pitch pitch值
  9707. * @param roll roll值
  9708. * @param out 输出四元数
  9709. */
  9710. static createFromYawPitchRoll(yaw:number,pitch:number,roll:number,out:ConchQuaternion):void;
  9711. /**
  9712. * 计算两个四元数相乘
  9713. * @param left left四元数
  9714. * @param right right四元数
  9715. * @param out 输出四元数
  9716. */
  9717. static multiply(left:ConchQuaternion,right:ConchQuaternion,out:ConchQuaternion):void;
  9718. private static arcTanAngle:any;
  9719. private static angleTo:any;
  9720. /**
  9721. * 从指定的轴和角度计算四元数
  9722. * @param axis 轴
  9723. * @param rad 角度
  9724. * @param out 输出四元数
  9725. */
  9726. static createFromAxisAngle(axis:laya.d3.math.Native.ConchVector3,rad:number,out:ConchQuaternion):void;
  9727. /**
  9728. * 根据3x3矩阵计算四元数
  9729. * @param sou 源矩阵
  9730. * @param out 输出四元数
  9731. */
  9732. static createFromMatrix3x3(sou:laya.d3.math.Matrix3x3,out:ConchQuaternion):void;
  9733. /**
  9734. * 从旋转矩阵计算四元数
  9735. * @param mat 旋转矩阵
  9736. * @param out 输出四元数
  9737. */
  9738. static createFromMatrix4x4(mat:laya.d3.math.Matrix4x4,out:ConchQuaternion):void;
  9739. /**
  9740. * 球面插值
  9741. * @param left left四元数
  9742. * @param right right四元数
  9743. * @param a 插值比例
  9744. * @param out 输出四元数
  9745. * @return 输出Float32Array
  9746. */
  9747. static slerp(left:ConchQuaternion,right:ConchQuaternion,t:number,out:ConchQuaternion):Float32Array;
  9748. /**
  9749. * 计算两个四元数的线性插值
  9750. * @param left left四元数
  9751. * @param right right四元数b
  9752. * @param t 插值比例
  9753. * @param out 输出四元数
  9754. */
  9755. static lerp(left:ConchQuaternion,right:ConchQuaternion,amount:number,out:ConchQuaternion):void;
  9756. /**
  9757. * 计算两个四元数的和
  9758. * @param left left四元数
  9759. * @param right right 四元数
  9760. * @param out 输出四元数
  9761. */
  9762. static add(left:any,right:ConchQuaternion,out:ConchQuaternion):void;
  9763. /**
  9764. * 计算两个四元数的点积
  9765. * @param left left四元数
  9766. * @param right right四元数
  9767. * @return 点积
  9768. */
  9769. static dot(left:any,right:ConchQuaternion):number;
  9770. /**
  9771. * 四元数元素数组
  9772. */
  9773. elements:Float32Array;
  9774. /**
  9775. * 获取四元数的x值
  9776. */
  9777. get x():number;
  9778. /**
  9779. * 设置四元数的x值
  9780. */
  9781. set x(value:number);
  9782. /**
  9783. * 获取四元数的y值
  9784. */
  9785. get y():number;
  9786. /**
  9787. * 设置四元数的y值
  9788. */
  9789. set y(value:number);
  9790. /**
  9791. * 获取四元数的z值
  9792. */
  9793. get z():number;
  9794. /**
  9795. * 设置四元数的z值
  9796. */
  9797. set z(value:number);
  9798. /**
  9799. * 获取四元数的w值
  9800. */
  9801. get w():number;
  9802. /**
  9803. * 设置四元数的w值
  9804. */
  9805. set w(value:number);
  9806. /**
  9807. * 创建一个 <code>Quaternion</code> 实例。
  9808. * @param x 四元数的x值
  9809. * @param y 四元数的y值
  9810. * @param z 四元数的z值
  9811. * @param w 四元数的w值
  9812. */
  9813. constructor(x?:number,y?:number,z?:number,w?:number,nativeElements?:Float32Array);
  9814. /**
  9815. * 根据缩放值缩放四元数
  9816. * @param scale 缩放值
  9817. * @param out 输出四元数
  9818. */
  9819. scaling(scaling:number,out:ConchQuaternion):void;
  9820. /**
  9821. * 归一化四元数
  9822. * @param out 输出四元数
  9823. */
  9824. normalize(out:ConchQuaternion):void;
  9825. /**
  9826. * 计算四元数的长度
  9827. * @return 长度
  9828. */
  9829. length():number;
  9830. /**
  9831. * 根据绕X轴的角度旋转四元数
  9832. * @param rad 角度
  9833. * @param out 输出四元数
  9834. */
  9835. rotateX(rad:number,out:ConchQuaternion):void;
  9836. /**
  9837. * 根据绕Y轴的制定角度旋转四元数
  9838. * @param rad 角度
  9839. * @param out 输出四元数
  9840. */
  9841. rotateY(rad:number,out:ConchQuaternion):void;
  9842. /**
  9843. * 根据绕Z轴的制定角度旋转四元数
  9844. * @param rad 角度
  9845. * @param out 输出四元数
  9846. */
  9847. rotateZ(rad:number,out:ConchQuaternion):void;
  9848. /**
  9849. * 分解四元数到欧拉角(顺序为Yaw、Pitch、Roll),参考自http://xboxforums.create.msdn.com/forums/p/4574/23988.aspx#23988,问题绕X轴翻转超过±90度时有,会产生瞬间反转
  9850. * @param quaternion 源四元数
  9851. * @param out 欧拉角值
  9852. */
  9853. getYawPitchRoll(out:laya.d3.math.Native.ConchVector3):void;
  9854. /**
  9855. * 求四元数的逆
  9856. * @param out 输出四元数
  9857. */
  9858. invert(out:ConchQuaternion):void;
  9859. /**
  9860. * 设置四元数为单位算数
  9861. * @param out 输出四元数
  9862. */
  9863. identity():void;
  9864. /**
  9865. * 从Array数组拷贝值。
  9866. * @param array 数组。
  9867. * @param offset 数组偏移。
  9868. */
  9869. fromArray(array:any[],offset?:number):void;
  9870. /**
  9871. * 克隆。
  9872. * @param destObject 克隆源。
  9873. */
  9874. cloneTo(destObject:any):void;
  9875. /**
  9876. * 克隆。
  9877. * @return 克隆副本。
  9878. */
  9879. clone():any;
  9880. equals(b:ConchQuaternion):boolean;
  9881. /**
  9882. * 计算旋转观察四元数
  9883. * @param forward 方向
  9884. * @param up 上向量
  9885. * @param out 输出四元数
  9886. */
  9887. static rotationLookAt(forward:laya.d3.math.Native.ConchVector3,up:laya.d3.math.Native.ConchVector3,out:ConchQuaternion):void;
  9888. /**
  9889. * 计算观察四元数
  9890. * @param eye 观察者位置
  9891. * @param target 目标位置
  9892. * @param up 上向量
  9893. * @param out 输出四元数
  9894. */
  9895. static lookAt(eye:any,target:any,up:any,out:ConchQuaternion):void;
  9896. /**
  9897. * 计算长度的平方。
  9898. * @return 长度的平方。
  9899. */
  9900. lengthSquared():number;
  9901. /**
  9902. * 计算四元数的逆四元数。
  9903. * @param value 四元数。
  9904. * @param out 逆四元数。
  9905. */
  9906. static invert(value:ConchQuaternion,out:ConchQuaternion):void;
  9907. /**
  9908. * 通过一个3x3矩阵创建一个四元数
  9909. * @param matrix3x3 3x3矩阵
  9910. * @param out 四元数
  9911. */
  9912. static rotationMatrix(matrix3x3:laya.d3.math.Matrix3x3,out:ConchQuaternion):void;
  9913. }
  9914. }
  9915. declare module laya.d3.math.Native {
  9916. /**
  9917. * <code>Vector3</code> 类用于创建三维向量。
  9918. */
  9919. class ConchVector3 implements laya.d3.core.IClone {
  9920. /**
  9921. * 零向量,禁止修改
  9922. */
  9923. static ZERO:ConchVector3;
  9924. /**
  9925. * 一向量,禁止修改
  9926. */
  9927. static ONE:ConchVector3;
  9928. /**
  9929. * X轴单位向量,禁止修改
  9930. */
  9931. static NegativeUnitX:ConchVector3;
  9932. /**
  9933. * X轴单位向量,禁止修改
  9934. */
  9935. static UnitX:ConchVector3;
  9936. /**
  9937. * Y轴单位向量,禁止修改
  9938. */
  9939. static UnitY:ConchVector3;
  9940. /**
  9941. * Z轴单位向量,禁止修改
  9942. */
  9943. static UnitZ:ConchVector3;
  9944. /**
  9945. * 右手坐标系统前向量,禁止修改
  9946. */
  9947. static ForwardRH:ConchVector3;
  9948. /**
  9949. * 左手坐标系统前向量,禁止修改
  9950. */
  9951. static ForwardLH:ConchVector3;
  9952. /**
  9953. * 上向量,禁止修改
  9954. */
  9955. static Up:ConchVector3;
  9956. /**
  9957. * 无效矩阵,禁止修改
  9958. */
  9959. static NAN:ConchVector3;
  9960. /**
  9961. * [只读]向量元素集合。
  9962. */
  9963. elements:Float32Array;
  9964. /**
  9965. * 两个三维向量距离的平方。
  9966. * @param value1 向量1。
  9967. * @param value2 向量2。
  9968. * @return 距离的平方。
  9969. */
  9970. static distanceSquared(value1:ConchVector3,value2:ConchVector3):number;
  9971. /**
  9972. * 两个三维向量距离。
  9973. * @param value1 向量1。
  9974. * @param value2 向量2。
  9975. * @return 距离。
  9976. */
  9977. static distance(value1:ConchVector3,value2:ConchVector3):number;
  9978. /**
  9979. * 分别取两个三维向量x、y、z的最小值计算新的三维向量。
  9980. * @param a 。
  9981. * @param b 。
  9982. * @param out 。
  9983. */
  9984. static min(a:ConchVector3,b:ConchVector3,out:ConchVector3):void;
  9985. /**
  9986. * 分别取两个三维向量x、y、z的最大值计算新的三维向量。
  9987. * @param a a三维向量。
  9988. * @param b b三维向量。
  9989. * @param out 结果三维向量。
  9990. */
  9991. static max(a:ConchVector3,b:ConchVector3,out:ConchVector3):void;
  9992. /**
  9993. * 根据四元数旋转三维向量。
  9994. * @param source 源三维向量。
  9995. * @param rotation 旋转四元数。
  9996. * @param out 输出三维向量。
  9997. */
  9998. static transformQuat(source:ConchVector3,rotation:laya.d3.math.Native.ConchQuaternion,out:ConchVector3):void;
  9999. /**
  10000. * 计算标量长度。
  10001. * @param a 源三维向量。
  10002. * @return 标量长度。
  10003. */
  10004. static scalarLength(a:ConchVector3):number;
  10005. /**
  10006. * 计算标量长度的平方。
  10007. * @param a 源三维向量。
  10008. * @return 标量长度的平方。
  10009. */
  10010. static scalarLengthSquared(a:ConchVector3):number;
  10011. /**
  10012. * 归一化三维向量。
  10013. * @param s 源三维向量。
  10014. * @param out 输出三维向量。
  10015. */
  10016. static normalize(s:ConchVector3,out:ConchVector3):void;
  10017. /**
  10018. * 计算两个三维向量的乘积。
  10019. * @param a left三维向量。
  10020. * @param b right三维向量。
  10021. * @param out 输出三维向量。
  10022. */
  10023. static multiply(a:ConchVector3,b:ConchVector3,out:ConchVector3):void;
  10024. /**
  10025. * 缩放三维向量。
  10026. * @param a 源三维向量。
  10027. * @param b 缩放值。
  10028. * @param out 输出三维向量。
  10029. */
  10030. static scale(a:ConchVector3,b:number,out:ConchVector3):void;
  10031. /**
  10032. * 插值三维向量。
  10033. * @param a left向量。
  10034. * @param b right向量。
  10035. * @param t 插值比例。
  10036. * @param out 输出向量。
  10037. */
  10038. static lerp(a:ConchVector3,b:ConchVector3,t:number,out:ConchVector3):void;
  10039. /**
  10040. * 通过矩阵转换一个三维向量到另外一个三维向量。
  10041. * @param vector 源三维向量。
  10042. * @param transform 变换矩阵。
  10043. * @param result 输出三维向量。
  10044. */
  10045. static transformV3ToV3(vector:ConchVector3,transform:any,result:ConchVector3):void;
  10046. /**
  10047. * 通过矩阵转换一个三维向量到另外一个四维向量。
  10048. * @param vector 源三维向量。
  10049. * @param transform 变换矩阵。
  10050. * @param result 输出四维向量。
  10051. */
  10052. static transformV3ToV4(vector:ConchVector3,transform:any,result:laya.d3.math.Native.ConchVector4):void;
  10053. /**
  10054. * 通过法线矩阵转换一个法线三维向量到另外一个三维向量。
  10055. * @param normal 源法线三维向量。
  10056. * @param transform 法线变换矩阵。
  10057. * @param result 输出法线三维向量。
  10058. */
  10059. static TransformNormal(normal:ConchVector3,transform:any,result:ConchVector3):void;
  10060. /**
  10061. * 通过矩阵转换一个三维向量到另外一个归一化的三维向量。
  10062. * @param vector 源三维向量。
  10063. * @param transform 变换矩阵。
  10064. * @param result 输出三维向量。
  10065. */
  10066. static transformCoordinate(coordinate:ConchVector3,transform:any,result:ConchVector3):void;
  10067. /**
  10068. * 求一个指定范围的向量
  10069. * @param value clamp向量
  10070. * @param min 最小
  10071. * @param max 最大
  10072. * @param out 输出向量
  10073. */
  10074. static Clamp(value:ConchVector3,min:ConchVector3,max:ConchVector3,out:ConchVector3):void;
  10075. /**
  10076. * 求两个三维向量的和。
  10077. * @param a left三维向量。
  10078. * @param b right三维向量。
  10079. * @param out 输出向量。
  10080. */
  10081. static add(a:ConchVector3,b:ConchVector3,out:ConchVector3):void;
  10082. /**
  10083. * 求两个三维向量的差。
  10084. * @param a left三维向量。
  10085. * @param b right三维向量。
  10086. * @param o out 输出向量。
  10087. */
  10088. static subtract(a:ConchVector3,b:ConchVector3,o:ConchVector3):void;
  10089. /**
  10090. * 求两个三维向量的叉乘。
  10091. * @param a left向量。
  10092. * @param b right向量。
  10093. * @param o 输出向量。
  10094. */
  10095. static cross(a:ConchVector3,b:ConchVector3,o:ConchVector3):void;
  10096. /**
  10097. * 求两个三维向量的点积。
  10098. * @param a left向量。
  10099. * @param b right向量。
  10100. * @return 点积。
  10101. */
  10102. static dot(a:ConchVector3,b:ConchVector3):number;
  10103. /**
  10104. * 判断两个三维向量是否相等。
  10105. * @param a 三维向量。
  10106. * @param b 三维向量。
  10107. * @return 是否相等。
  10108. */
  10109. static equals(a:ConchVector3,b:ConchVector3):boolean;
  10110. /**
  10111. * 获取X轴坐标。
  10112. * @return X轴坐标。
  10113. */
  10114. get x():number;
  10115. /**
  10116. * 设置X轴坐标。
  10117. * @param value X轴坐标。
  10118. */
  10119. set x(value:number);
  10120. /**
  10121. * 获取Y轴坐标。
  10122. * @return Y轴坐标。
  10123. */
  10124. get y():number;
  10125. /**
  10126. * 设置Y轴坐标。
  10127. * @param value Y轴坐标。
  10128. */
  10129. set y(value:number);
  10130. /**
  10131. * 获取Z轴坐标。
  10132. * @return Z轴坐标。
  10133. */
  10134. get z():number;
  10135. /**
  10136. * 设置Z轴坐标。
  10137. * @param value Z轴坐标。
  10138. */
  10139. set z(value:number);
  10140. /**
  10141. * 创建一个 <code>Vector3</code> 实例。
  10142. * @param x X轴坐标。
  10143. * @param y Y轴坐标。
  10144. * @param z Z轴坐标。
  10145. */
  10146. constructor(x?:number,y?:number,z?:number,nativeElements?:Float32Array);
  10147. /**
  10148. * 设置xyz值。
  10149. * @param x X值。
  10150. * @param y Y值。
  10151. * @param z Z值。
  10152. */
  10153. setValue(x:number,y:number,z:number):void;
  10154. /**
  10155. * 从Array数组拷贝值。
  10156. * @param array 数组。
  10157. * @param offset 数组偏移。
  10158. */
  10159. fromArray(array:any[],offset?:number):void;
  10160. /**
  10161. * 克隆。
  10162. * @param destObject 克隆源。
  10163. */
  10164. cloneTo(destObject:any):void;
  10165. /**
  10166. * 克隆。
  10167. * @return 克隆副本。
  10168. */
  10169. clone():any;
  10170. toDefault():void;
  10171. }
  10172. }
  10173. declare module laya.d3.math.Native {
  10174. /**
  10175. * <code>Vector4</code> 类用于创建四维向量。
  10176. */
  10177. class ConchVector4 implements laya.d3.core.IClone {
  10178. /**
  10179. * 零向量,禁止修改
  10180. */
  10181. static ZERO:ConchVector4;
  10182. static ONE:ConchVector4;
  10183. static UnitX:ConchVector4;
  10184. static UnitY:ConchVector4;
  10185. static UnitZ:ConchVector4;
  10186. static UnitW:ConchVector4;
  10187. /**
  10188. * [只读]向量元素集合。
  10189. */
  10190. elements:Float32Array;
  10191. /**
  10192. * 获取X轴坐标。
  10193. * @return X轴坐标。
  10194. */
  10195. get x():number;
  10196. /**
  10197. * 设置X轴坐标。
  10198. * @param value X轴坐标。
  10199. */
  10200. set x(value:number);
  10201. /**
  10202. * 获取Y轴坐标。
  10203. * @return Y轴坐标。
  10204. */
  10205. get y():number;
  10206. /**
  10207. * 设置Y轴坐标。
  10208. * @param value Y轴坐标。
  10209. */
  10210. set y(value:number);
  10211. /**
  10212. * 获取Z轴坐标。
  10213. * @return Z轴坐标。
  10214. */
  10215. get z():number;
  10216. /**
  10217. * 设置Z轴坐标。
  10218. * @param value Z轴坐标。
  10219. */
  10220. set z(value:number);
  10221. /**
  10222. * 获取W轴坐标。
  10223. * @return W轴坐标。
  10224. */
  10225. get w():number;
  10226. /**
  10227. * 设置W轴坐标。
  10228. * @param value W轴坐标。
  10229. */
  10230. set w(value:number);
  10231. /**
  10232. * 创建一个 <code>Vector4</code> 实例。
  10233. * @param x X轴坐标。
  10234. * @param y Y轴坐标。
  10235. * @param z Z轴坐标。
  10236. * @param w W轴坐标。
  10237. */
  10238. constructor(x?:number,y?:number,z?:number,w?:number);
  10239. /**
  10240. * 从Array数组拷贝值。
  10241. * @param array 数组。
  10242. * @param offset 数组偏移。
  10243. */
  10244. fromArray(array:any[],offset?:number):void;
  10245. /**
  10246. * 克隆。
  10247. * @param destObject 克隆源。
  10248. */
  10249. cloneTo(destObject:any):void;
  10250. /**
  10251. * 克隆。
  10252. * @return 克隆副本。
  10253. */
  10254. clone():any;
  10255. /**
  10256. * 插值四维向量。
  10257. * @param a left向量。
  10258. * @param b right向量。
  10259. * @param t 插值比例。
  10260. * @param out 输出向量。
  10261. */
  10262. static lerp(a:ConchVector4,b:ConchVector4,t:number,out:ConchVector4):void;
  10263. /**
  10264. * 通过4x4矩阵把一个四维向量转换为另一个四维向量
  10265. * @param vector4 带转换四维向量。
  10266. * @param M4x4 4x4矩阵。
  10267. * @param out 转换后四维向量。
  10268. */
  10269. static transformByM4x4(vector4:ConchVector4,m4x4:any,out:ConchVector4):void;
  10270. /**
  10271. * 判断两个四维向量是否相等。
  10272. * @param a 四维向量。
  10273. * @param b 四维向量。
  10274. * @return 是否相等。
  10275. */
  10276. static equals(a:ConchVector4,b:ConchVector4):boolean;
  10277. /**
  10278. * 求四维向量的长度。
  10279. * @return 长度。
  10280. */
  10281. length():number;
  10282. /**
  10283. * 求四维向量长度的平方。
  10284. * @return 长度的平方。
  10285. */
  10286. lengthSquared():number;
  10287. /**
  10288. * 归一化四维向量。
  10289. * @param s 源四维向量。
  10290. * @param out 输出四维向量。
  10291. */
  10292. static normalize(s:ConchVector4,out:ConchVector4):void;
  10293. /**
  10294. * 求两个四维向量的和。
  10295. * @param a 四维向量。
  10296. * @param b 四维向量。
  10297. * @param out 输出向量。
  10298. */
  10299. static add(a:ConchVector4,b:ConchVector4,out:ConchVector4):void;
  10300. /**
  10301. * 求两个四维向量的差。
  10302. * @param a 四维向量。
  10303. * @param b 四维向量。
  10304. * @param out 输出向量。
  10305. */
  10306. static subtract(a:ConchVector4,b:ConchVector4,out:ConchVector4):void;
  10307. /**
  10308. * 计算两个四维向量的乘积。
  10309. * @param a 四维向量。
  10310. * @param b 四维向量。
  10311. * @param out 输出向量。
  10312. */
  10313. static multiply(a:ConchVector4,b:ConchVector4,out:ConchVector4):void;
  10314. /**
  10315. * 缩放四维向量。
  10316. * @param a 源四维向量。
  10317. * @param b 缩放值。
  10318. * @param out 输出四维向量。
  10319. */
  10320. static scale(a:ConchVector4,b:number,out:ConchVector4):void;
  10321. /**
  10322. * 求一个指定范围的四维向量
  10323. * @param value clamp向量
  10324. * @param min 最小
  10325. * @param max 最大
  10326. * @param out 输出向量
  10327. */
  10328. static Clamp(value:ConchVector4,min:ConchVector4,max:ConchVector4,out:ConchVector4):void;
  10329. /**
  10330. * 两个四维向量距离的平方。
  10331. * @param value1 向量1。
  10332. * @param value2 向量2。
  10333. * @return 距离的平方。
  10334. */
  10335. static distanceSquared(value1:ConchVector4,value2:ConchVector4):number;
  10336. /**
  10337. * 两个四维向量距离。
  10338. * @param value1 向量1。
  10339. * @param value2 向量2。
  10340. * @return 距离。
  10341. */
  10342. static distance(value1:ConchVector4,value2:ConchVector4):number;
  10343. /**
  10344. * 求两个四维向量的点积。
  10345. * @param a 向量。
  10346. * @param b 向量。
  10347. * @return 点积。
  10348. */
  10349. static dot(a:ConchVector4,b:ConchVector4):number;
  10350. /**
  10351. * 分别取两个四维向量x、y、z的最小值计算新的四维向量。
  10352. * @param a 四维向量。
  10353. * @param b 四维向量。
  10354. * @param out 结果三维向量。
  10355. */
  10356. static min(a:ConchVector4,b:ConchVector4,out:ConchVector4):void;
  10357. /**
  10358. * 分别取两个四维向量x、y、z的最大值计算新的四维向量。
  10359. * @param a 四维向量。
  10360. * @param b 四维向量。
  10361. * @param out 结果三维向量。
  10362. */
  10363. static max(a:ConchVector4,b:ConchVector4,out:ConchVector4):void;
  10364. }
  10365. }
  10366. declare module laya.d3.math {
  10367. /**
  10368. * 平面。
  10369. */
  10370. class Plane {
  10371. /**
  10372. * 平面的向量
  10373. */
  10374. normal:laya.d3.math.Vector3;
  10375. /**
  10376. * 平面到坐标系原点的距离
  10377. */
  10378. distance:number;
  10379. /**
  10380. * 平面与其他几何体相交类型
  10381. */
  10382. static PlaneIntersectionType_Back:number;
  10383. static PlaneIntersectionType_Front:number;
  10384. static PlaneIntersectionType_Intersecting:number;
  10385. /**
  10386. * 创建一个 <code>Plane</code> 实例。
  10387. * @param normal 平面的向量
  10388. * @param d 平面到原点的距离
  10389. */
  10390. constructor(normal:laya.d3.math.Vector3,d?:number);
  10391. /**
  10392. * 通过三个点创建一个平面。
  10393. * @param point0 第零个点
  10394. * @param point1 第一个点
  10395. * @param point2 第二个点
  10396. */
  10397. static createPlaneBy3P(point0:laya.d3.math.Vector3,point1:laya.d3.math.Vector3,point2:laya.d3.math.Vector3,out:Plane):void;
  10398. /**
  10399. * 更改平面法线向量的系数,使之成单位长度。
  10400. */
  10401. normalize():void;
  10402. /**
  10403. * 克隆。
  10404. * @param destObject 克隆源。
  10405. */
  10406. cloneTo(destObject:any):void;
  10407. /**
  10408. * 克隆。
  10409. * @return 克隆副本。
  10410. */
  10411. clone():Plane;
  10412. }
  10413. }
  10414. declare module laya.d3.math {
  10415. /**
  10416. * <code>Quaternion</code> 类用于创建四元数。
  10417. */
  10418. class Quaternion implements laya.d3.core.IClone {
  10419. /**
  10420. * 默认矩阵,禁止修改
  10421. */
  10422. static DEFAULT:Quaternion;
  10423. /**
  10424. * 无效矩阵,禁止修改
  10425. */
  10426. static NAN:Quaternion;
  10427. /**
  10428. * 从欧拉角生成四元数(顺序为Yaw、Pitch、Roll)
  10429. * @param yaw yaw值
  10430. * @param pitch pitch值
  10431. * @param roll roll值
  10432. * @param out 输出四元数
  10433. */
  10434. static createFromYawPitchRoll(yaw:number,pitch:number,roll:number,out:Quaternion):void;
  10435. /**
  10436. * 计算两个四元数相乘
  10437. * @param left left四元数
  10438. * @param right right四元数
  10439. * @param out 输出四元数
  10440. */
  10441. static multiply(left:Quaternion,right:Quaternion,out:Quaternion):void;
  10442. private static arcTanAngle:any;
  10443. private static angleTo:any;
  10444. /**
  10445. * 从指定的轴和角度计算四元数
  10446. * @param axis 轴
  10447. * @param rad 角度
  10448. * @param out 输出四元数
  10449. */
  10450. static createFromAxisAngle(axis:laya.d3.math.Vector3,rad:number,out:Quaternion):void;
  10451. /**
  10452. * 从旋转矩阵计算四元数
  10453. * @param mat 旋转矩阵
  10454. * @param out 输出四元数
  10455. */
  10456. static createFromMatrix4x4(mat:laya.d3.math.Matrix4x4,out:Quaternion):void;
  10457. /**
  10458. * 球面插值
  10459. * @param left left四元数
  10460. * @param right right四元数
  10461. * @param t 插值比例
  10462. * @param out 输出四元数
  10463. * @returns 输出Float32Array
  10464. */
  10465. static slerp(left:Quaternion,right:Quaternion,t:number,out:Quaternion):Quaternion;
  10466. /**
  10467. * 计算两个四元数的线性插值
  10468. * @param left left四元数
  10469. * @param right right四元数b
  10470. * @param t 插值比例
  10471. * @param out 输出四元数
  10472. */
  10473. static lerp(left:Quaternion,right:Quaternion,amount:number,out:Quaternion):void;
  10474. /**
  10475. * 计算两个四元数的和
  10476. * @param left left四元数
  10477. * @param right right 四元数
  10478. * @param out 输出四元数
  10479. */
  10480. static add(left:Quaternion,right:Quaternion,out:Quaternion):void;
  10481. /**
  10482. * 计算两个四元数的点积
  10483. * @param left left四元数
  10484. * @param right right四元数
  10485. * @return 点积
  10486. */
  10487. static dot(left:Quaternion,right:Quaternion):number;
  10488. /**
  10489. * X轴坐标
  10490. */
  10491. x:number;
  10492. /**
  10493. * Y轴坐标
  10494. */
  10495. y:number;
  10496. /**
  10497. * Z轴坐标
  10498. */
  10499. z:number;
  10500. /**
  10501. * W轴坐标
  10502. */
  10503. w:number;
  10504. /**
  10505. * 创建一个 <code>Quaternion</code> 实例。
  10506. * @param x 四元数的x值
  10507. * @param y 四元数的y值
  10508. * @param z 四元数的z值
  10509. * @param w 四元数的w值
  10510. */
  10511. constructor(x?:number,y?:number,z?:number,w?:number,nativeElements?:Float32Array);
  10512. /**
  10513. * 根据缩放值缩放四元数
  10514. * @param scale 缩放值
  10515. * @param out 输出四元数
  10516. */
  10517. scaling(scaling:number,out:Quaternion):void;
  10518. /**
  10519. * 归一化四元数
  10520. * @param out 输出四元数
  10521. */
  10522. normalize(out:Quaternion):void;
  10523. /**
  10524. * 计算四元数的长度
  10525. * @return 长度
  10526. */
  10527. length():number;
  10528. /**
  10529. * 根据绕X轴的角度旋转四元数
  10530. * @param rad 角度
  10531. * @param out 输出四元数
  10532. */
  10533. rotateX(rad:number,out:Quaternion):void;
  10534. /**
  10535. * 根据绕Y轴的制定角度旋转四元数
  10536. * @param rad 角度
  10537. * @param out 输出四元数
  10538. */
  10539. rotateY(rad:number,out:Quaternion):void;
  10540. /**
  10541. * 根据绕Z轴的制定角度旋转四元数
  10542. * @param rad 角度
  10543. * @param out 输出四元数
  10544. */
  10545. rotateZ(rad:number,out:Quaternion):void;
  10546. /**
  10547. * 分解四元数到欧拉角(顺序为Yaw、Pitch、Roll),参考自http://xboxforums.create.msdn.com/forums/p/4574/23988.aspx#23988,问题绕X轴翻转超过±90度时有,会产生瞬间反转
  10548. * @param quaternion 源四元数
  10549. * @param out 欧拉角值
  10550. */
  10551. getYawPitchRoll(out:laya.d3.math.Vector3):void;
  10552. /**
  10553. * 求四元数的逆
  10554. * @param out 输出四元数
  10555. */
  10556. invert(out:Quaternion):void;
  10557. /**
  10558. * 设置四元数为单位算数
  10559. * @param out 输出四元数
  10560. */
  10561. identity():void;
  10562. /**
  10563. * 从Array数组拷贝值。
  10564. * @param array 数组。
  10565. * @param offset 数组偏移。
  10566. */
  10567. fromArray(array:any[],offset?:number):void;
  10568. /**
  10569. * 克隆。
  10570. * @param destObject 克隆源。
  10571. */
  10572. cloneTo(destObject:any):void;
  10573. /**
  10574. * 克隆。
  10575. * @return 克隆副本。
  10576. */
  10577. clone():any;
  10578. equals(b:Quaternion):boolean;
  10579. /**
  10580. * 计算旋转观察四元数
  10581. * @param forward 方向
  10582. * @param up 上向量
  10583. * @param out 输出四元数
  10584. */
  10585. static rotationLookAt(forward:laya.d3.math.Vector3,up:laya.d3.math.Vector3,out:Quaternion):void;
  10586. /**
  10587. * 计算观察四元数
  10588. * @param eye 观察者位置
  10589. * @param target 目标位置
  10590. * @param up 上向量
  10591. * @param out 输出四元数
  10592. */
  10593. static lookAt(eye:laya.d3.math.Vector3,target:laya.d3.math.Vector3,up:laya.d3.math.Vector3,out:Quaternion):void;
  10594. /**
  10595. * 计算长度的平方。
  10596. * @return 长度的平方。
  10597. */
  10598. lengthSquared():number;
  10599. /**
  10600. * 计算四元数的逆四元数。
  10601. * @param value 四元数。
  10602. * @param out 逆四元数。
  10603. */
  10604. static invert(value:Quaternion,out:Quaternion):void;
  10605. /**
  10606. * 通过一个3x3矩阵创建一个四元数
  10607. * @param matrix3x3 3x3矩阵
  10608. * @param out 四元数
  10609. */
  10610. static rotationMatrix(matrix3x3:laya.d3.math.Matrix3x3,out:Quaternion):void;
  10611. forNativeElement(nativeElements?:Float32Array):void;
  10612. }
  10613. }
  10614. declare module laya.d3.math {
  10615. /**
  10616. * <code>Rand</code> 类用于通过32位无符号整型随机种子创建随机数。
  10617. */
  10618. class Rand {
  10619. /**
  10620. * 通过无符号32位整形,获取32位浮点随机数。
  10621. * @param 无符号32位整形随机数 。
  10622. * @return 32位浮点随机数。
  10623. */
  10624. static getFloatFromInt(v:number):number;
  10625. /**
  10626. * 通过无符号32位整形,获取无符号8位字节随机数。
  10627. * @param 无符号32位整形随机数 。
  10628. * @return 无符号8位字节随机数。
  10629. */
  10630. static getByteFromInt(v:number):number;
  10631. /**
  10632. * 获取随机种子。
  10633. */
  10634. seeds:Uint32Array;
  10635. /**
  10636. * 获取随机种子。
  10637. * @return 随机种子。
  10638. */
  10639. get seed():number;
  10640. /**
  10641. * 设置随机种子。
  10642. * @param seed 随机种子。
  10643. */
  10644. set seed(seed:number);
  10645. /**
  10646. * 创建一个 <code>Rand</code> 实例。
  10647. * @param seed 32位无符号整型随机种子。
  10648. */
  10649. constructor(seed:number);
  10650. /**
  10651. * 获取无符号32位整形随机数。
  10652. * @return 无符号32位整形随机数。
  10653. */
  10654. getUint():number;
  10655. /**
  10656. * 获取0到1之间的浮点随机数。
  10657. * @return 0到1之间的浮点随机数。
  10658. */
  10659. getFloat():number;
  10660. /**
  10661. * 获取-1到1之间的浮点随机数。
  10662. * @return -1到1之间的浮点随机数。
  10663. */
  10664. getSignedFloat():number;
  10665. }
  10666. }
  10667. declare module laya.d3.math {
  10668. /**
  10669. * <code>Rand</code> 类用于通过128位整型种子创建随机数,算法来自:https://github.com/AndreasMadsen/xorshift。
  10670. */
  10671. class RandX {
  10672. /**
  10673. * 基于时间种子的随机数。
  10674. */
  10675. static defaultRand:RandX;
  10676. /**
  10677. * 创建一个 <code>Rand</code> 实例。
  10678. * @param seed 随机种子。
  10679. */
  10680. constructor(seed:any[]);
  10681. /**
  10682. * 通过2x32位的数组,返回64位的随机数。
  10683. * @return 64位的随机数。
  10684. */
  10685. randomint():any[];
  10686. /**
  10687. * 返回[0,1)之间的随机数。
  10688. * @return
  10689. */
  10690. random():number;
  10691. }
  10692. }
  10693. declare module laya.d3.math {
  10694. /**
  10695. * <code>Ray</code> 类用于创建射线。
  10696. */
  10697. class Ray {
  10698. /**
  10699. * 原点
  10700. */
  10701. origin:laya.d3.math.Vector3;
  10702. /**
  10703. * 方向
  10704. */
  10705. direction:laya.d3.math.Vector3;
  10706. /**
  10707. * 创建一个 <code>Ray</code> 实例。
  10708. * @param origin 射线的起点
  10709. * @param direction 射线的方向
  10710. */
  10711. constructor(origin:laya.d3.math.Vector3,direction:laya.d3.math.Vector3);
  10712. }
  10713. }
  10714. declare module laya.d3.math {
  10715. /**
  10716. * <code>Vector2</code> 类用于创建二维向量。
  10717. */
  10718. class Vector2 implements laya.d3.core.IClone {
  10719. /**
  10720. * 零向量,禁止修改
  10721. */
  10722. static ZERO:Vector2;
  10723. /**
  10724. * 一向量,禁止修改
  10725. */
  10726. static ONE:Vector2;
  10727. /**
  10728. * X轴坐标
  10729. */
  10730. x:number;
  10731. /**
  10732. * Y轴坐标
  10733. */
  10734. y:number;
  10735. /**
  10736. * 创建一个 <code>Vector2</code> 实例。
  10737. * @param x X轴坐标。
  10738. * @param y Y轴坐标。
  10739. */
  10740. constructor(x?:number,y?:number);
  10741. /**
  10742. * 设置xy值。
  10743. * @param x X值。
  10744. * @param y Y值。
  10745. */
  10746. setValue(x:number,y:number):void;
  10747. /**
  10748. * 缩放二维向量。
  10749. * @param a 源二维向量。
  10750. * @param b 缩放值。
  10751. * @param out 输出二维向量。
  10752. */
  10753. static scale(a:Vector2,b:number,out:Vector2):void;
  10754. /**
  10755. * 从Array数组拷贝值。
  10756. * @param array 数组。
  10757. * @param offset 数组偏移。
  10758. */
  10759. fromArray(array:any[],offset?:number):void;
  10760. /**
  10761. * 克隆。
  10762. * @param destObject 克隆源。
  10763. */
  10764. cloneTo(destObject:any):void;
  10765. /**
  10766. * 求两个二维向量的点积。
  10767. * @param a left向量。
  10768. * @param b right向量。
  10769. * @return 点积。
  10770. */
  10771. static dot(a:Vector2,b:Vector2):number;
  10772. /**
  10773. * 归一化二维向量。
  10774. * @param s 源三维向量。
  10775. * @param out 输出三维向量。
  10776. */
  10777. static normalize(s:Vector2,out:Vector2):void;
  10778. /**
  10779. * 计算标量长度。
  10780. * @param a 源三维向量。
  10781. * @return 标量长度。
  10782. */
  10783. static scalarLength(a:Vector2):number;
  10784. /**
  10785. * 克隆。
  10786. * @return 克隆副本。
  10787. */
  10788. clone():any;
  10789. forNativeElement(nativeElements?:Float32Array):void;
  10790. static rewriteNumProperty(proto:any,name:string,index:number):void;
  10791. }
  10792. }
  10793. declare module laya.d3.math {
  10794. /**
  10795. * <code>Vector3</code> 类用于创建三维向量。
  10796. */
  10797. class Vector3 implements laya.d3.core.IClone {
  10798. /**
  10799. * 两个三维向量距离的平方。
  10800. * @param value1 向量1。
  10801. * @param value2 向量2。
  10802. * @return 距离的平方。
  10803. */
  10804. static distanceSquared(value1:Vector3,value2:Vector3):number;
  10805. /**
  10806. * 两个三维向量距离。
  10807. * @param value1 向量1。
  10808. * @param value2 向量2。
  10809. * @return 距离。
  10810. */
  10811. static distance(value1:Vector3,value2:Vector3):number;
  10812. /**
  10813. * 分别取两个三维向量x、y、z的最小值计算新的三维向量。
  10814. * @param a 。
  10815. * @param b 。
  10816. * @param out 。
  10817. */
  10818. static min(a:Vector3,b:Vector3,out:Vector3):void;
  10819. /**
  10820. * 分别取两个三维向量x、y、z的最大值计算新的三维向量。
  10821. * @param a a三维向量。
  10822. * @param b b三维向量。
  10823. * @param out 结果三维向量。
  10824. */
  10825. static max(a:Vector3,b:Vector3,out:Vector3):void;
  10826. /**
  10827. * 根据四元数旋转三维向量。
  10828. * @param source 源三维向量。
  10829. * @param rotation 旋转四元数。
  10830. * @param out 输出三维向量。
  10831. */
  10832. static transformQuat(source:Vector3,rotation:laya.d3.math.Quaternion,out:Vector3):void;
  10833. /**
  10834. * 计算标量长度。
  10835. * @param a 源三维向量。
  10836. * @return 标量长度。
  10837. */
  10838. static scalarLength(a:Vector3):number;
  10839. /**
  10840. * 计算标量长度的平方。
  10841. * @param a 源三维向量。
  10842. * @return 标量长度的平方。
  10843. */
  10844. static scalarLengthSquared(a:Vector3):number;
  10845. /**
  10846. * 归一化三维向量。
  10847. * @param s 源三维向量。
  10848. * @param out 输出三维向量。
  10849. */
  10850. static normalize(s:Vector3,out:Vector3):void;
  10851. /**
  10852. * 计算两个三维向量的乘积。
  10853. * @param a left三维向量。
  10854. * @param b right三维向量。
  10855. * @param out 输出三维向量。
  10856. */
  10857. static multiply(a:Vector3,b:Vector3,out:Vector3):void;
  10858. /**
  10859. * 缩放三维向量。
  10860. * @param a 源三维向量。
  10861. * @param b 缩放值。
  10862. * @param out 输出三维向量。
  10863. */
  10864. static scale(a:Vector3,b:number,out:Vector3):void;
  10865. /**
  10866. * 插值三维向量。
  10867. * @param a left向量。
  10868. * @param b right向量。
  10869. * @param t 插值比例。
  10870. * @param out 输出向量。
  10871. */
  10872. static lerp(a:Vector3,b:Vector3,t:number,out:Vector3):void;
  10873. /**
  10874. * 通过矩阵转换一个三维向量到另外一个三维向量。
  10875. * @param vector 源三维向量。
  10876. * @param transform 变换矩阵。
  10877. * @param result 输出三维向量。
  10878. */
  10879. static transformV3ToV3(vector:Vector3,transform:laya.d3.math.Matrix4x4,result:Vector3):void;
  10880. /**
  10881. * 通过矩阵转换一个三维向量到另外一个四维向量。
  10882. * @param vector 源三维向量。
  10883. * @param transform 变换矩阵。
  10884. * @param result 输出四维向量。
  10885. */
  10886. static transformV3ToV4(vector:Vector3,transform:laya.d3.math.Matrix4x4,result:laya.d3.math.Vector4):void;
  10887. /**
  10888. * 通过法线矩阵转换一个法线三维向量到另外一个三维向量。
  10889. * @param normal 源法线三维向量。
  10890. * @param transform 法线变换矩阵。
  10891. * @param result 输出法线三维向量。
  10892. */
  10893. static TransformNormal(normal:Vector3,transform:laya.d3.math.Matrix4x4,result:Vector3):void;
  10894. /**
  10895. * 通过矩阵转换一个三维向量到另外一个归一化的三维向量。
  10896. * @param vector 源三维向量。
  10897. * @param transform 变换矩阵。
  10898. * @param result 输出三维向量。
  10899. */
  10900. static transformCoordinate(coordinate:Vector3,transform:laya.d3.math.Matrix4x4,result:Vector3):void;
  10901. /**
  10902. * 求一个指定范围的向量
  10903. * @param value clamp向量
  10904. * @param min 最小
  10905. * @param max 最大
  10906. * @param out 输出向量
  10907. */
  10908. static Clamp(value:Vector3,min:Vector3,max:Vector3,out:Vector3):void;
  10909. /**
  10910. * 求两个三维向量的和。
  10911. * @param a left三维向量。
  10912. * @param b right三维向量。
  10913. * @param out 输出向量。
  10914. */
  10915. static add(a:Vector3,b:Vector3,out:Vector3):void;
  10916. /**
  10917. * 求两个三维向量的差。
  10918. * @param a left三维向量。
  10919. * @param b right三维向量。
  10920. * @param o out 输出向量。
  10921. */
  10922. static subtract(a:Vector3,b:Vector3,o:Vector3):void;
  10923. /**
  10924. * 求两个三维向量的叉乘。
  10925. * @param a left向量。
  10926. * @param b right向量。
  10927. * @param o 输出向量。
  10928. */
  10929. static cross(a:Vector3,b:Vector3,o:Vector3):void;
  10930. /**
  10931. * 求两个三维向量的点积。
  10932. * @param a left向量。
  10933. * @param b right向量。
  10934. * @return 点积。
  10935. */
  10936. static dot(a:Vector3,b:Vector3):number;
  10937. /**
  10938. * 判断两个三维向量是否相等。
  10939. * @param a 三维向量。
  10940. * @param b 三维向量。
  10941. * @return 是否相等。
  10942. */
  10943. static equals(a:Vector3,b:Vector3):boolean;
  10944. /**
  10945. * X轴坐标
  10946. */
  10947. x:number;
  10948. /**
  10949. * Y轴坐标
  10950. */
  10951. y:number;
  10952. /**
  10953. * Z轴坐标
  10954. */
  10955. z:number;
  10956. /**
  10957. * 创建一个 <code>Vector3</code> 实例。
  10958. * @param x X轴坐标。
  10959. * @param y Y轴坐标。
  10960. * @param z Z轴坐标。
  10961. */
  10962. constructor(x?:number,y?:number,z?:number,nativeElements?:Float32Array);
  10963. /**
  10964. * 设置xyz值。
  10965. * @param x X值。
  10966. * @param y Y值。
  10967. * @param z Z值。
  10968. */
  10969. setValue(x:number,y:number,z:number):void;
  10970. /**
  10971. * 从Array数组拷贝值。
  10972. * @param array 数组。
  10973. * @param offset 数组偏移。
  10974. */
  10975. fromArray(array:any[],offset?:number):void;
  10976. /**
  10977. * 克隆。
  10978. * @param destObject 克隆源。
  10979. */
  10980. cloneTo(destObject:any):void;
  10981. /**
  10982. * 克隆。
  10983. * @return 克隆副本。
  10984. */
  10985. clone():any;
  10986. toDefault():void;
  10987. forNativeElement(nativeElements?:Float32Array):void;
  10988. }
  10989. }
  10990. declare module laya.d3.math {
  10991. /**
  10992. * <code>Vector4</code> 类用于创建四维向量。
  10993. */
  10994. class Vector4 implements laya.d3.core.IClone {
  10995. /**
  10996. * 零向量,禁止修改
  10997. */
  10998. static ZERO:Vector4;
  10999. static ONE:Vector4;
  11000. static UnitX:Vector4;
  11001. static UnitY:Vector4;
  11002. static UnitZ:Vector4;
  11003. static UnitW:Vector4;
  11004. /**
  11005. * X轴坐标
  11006. */
  11007. x:number;
  11008. /**
  11009. * Y轴坐标
  11010. */
  11011. y:number;
  11012. /**
  11013. * Z轴坐标
  11014. */
  11015. z:number;
  11016. /**
  11017. * W轴坐标
  11018. */
  11019. w:number;
  11020. /**
  11021. * 创建一个 <code>Vector4</code> 实例。
  11022. * @param x X轴坐标。
  11023. * @param y Y轴坐标。
  11024. * @param z Z轴坐标。
  11025. * @param w W轴坐标。
  11026. */
  11027. constructor(x?:number,y?:number,z?:number,w?:number);
  11028. /**
  11029. * 设置xyzw值。
  11030. * @param x X值。
  11031. * @param y Y值。
  11032. * @param z Z值。
  11033. * @param w W值。
  11034. */
  11035. setValue(x:number,y:number,z:number,w:number):void;
  11036. /**
  11037. * 从Array数组拷贝值。
  11038. * @param array 数组。
  11039. * @param offset 数组偏移。
  11040. */
  11041. fromArray(array:any[],offset?:number):void;
  11042. /**
  11043. * 克隆。
  11044. * @param destObject 克隆源。
  11045. */
  11046. cloneTo(destObject:any):void;
  11047. /**
  11048. * 克隆。
  11049. * @return 克隆副本。
  11050. */
  11051. clone():any;
  11052. /**
  11053. * 插值四维向量。
  11054. * @param a left向量。
  11055. * @param b right向量。
  11056. * @param t 插值比例。
  11057. * @param out 输出向量。
  11058. */
  11059. static lerp(a:Vector4,b:Vector4,t:number,out:Vector4):void;
  11060. /**
  11061. * 通过4x4矩阵把一个四维向量转换为另一个四维向量
  11062. * @param vector4 带转换四维向量。
  11063. * @param M4x4 4x4矩阵。
  11064. * @param out 转换后四维向量。
  11065. */
  11066. static transformByM4x4(vector4:Vector4,m4x4:laya.d3.math.Matrix4x4,out:Vector4):void;
  11067. /**
  11068. * 判断两个四维向量是否相等。
  11069. * @param a 四维向量。
  11070. * @param b 四维向量。
  11071. * @return 是否相等。
  11072. */
  11073. static equals(a:Vector4,b:Vector4):boolean;
  11074. /**
  11075. * 求四维向量的长度。
  11076. * @return 长度。
  11077. */
  11078. length():number;
  11079. /**
  11080. * 求四维向量长度的平方。
  11081. * @return 长度的平方。
  11082. */
  11083. lengthSquared():number;
  11084. /**
  11085. * 归一化四维向量。
  11086. * @param s 源四维向量。
  11087. * @param out 输出四维向量。
  11088. */
  11089. static normalize(s:Vector4,out:Vector4):void;
  11090. /**
  11091. * 求两个四维向量的和。
  11092. * @param a 四维向量。
  11093. * @param b 四维向量。
  11094. * @param out 输出向量。
  11095. */
  11096. static add(a:Vector4,b:Vector4,out:Vector4):void;
  11097. /**
  11098. * 求两个四维向量的差。
  11099. * @param a 四维向量。
  11100. * @param b 四维向量。
  11101. * @param out 输出向量。
  11102. */
  11103. static subtract(a:Vector4,b:Vector4,out:Vector4):void;
  11104. /**
  11105. * 计算两个四维向量的乘积。
  11106. * @param a 四维向量。
  11107. * @param b 四维向量。
  11108. * @param out 输出向量。
  11109. */
  11110. static multiply(a:Vector4,b:Vector4,out:Vector4):void;
  11111. /**
  11112. * 缩放四维向量。
  11113. * @param a 源四维向量。
  11114. * @param b 缩放值。
  11115. * @param out 输出四维向量。
  11116. */
  11117. static scale(a:Vector4,b:number,out:Vector4):void;
  11118. /**
  11119. * 求一个指定范围的四维向量
  11120. * @param value clamp向量
  11121. * @param min 最小
  11122. * @param max 最大
  11123. * @param out 输出向量
  11124. */
  11125. static Clamp(value:Vector4,min:Vector4,max:Vector4,out:Vector4):void;
  11126. /**
  11127. * 两个四维向量距离的平方。
  11128. * @param value1 向量1。
  11129. * @param value2 向量2。
  11130. * @return 距离的平方。
  11131. */
  11132. static distanceSquared(value1:Vector4,value2:Vector4):number;
  11133. /**
  11134. * 两个四维向量距离。
  11135. * @param value1 向量1。
  11136. * @param value2 向量2。
  11137. * @return 距离。
  11138. */
  11139. static distance(value1:Vector4,value2:Vector4):number;
  11140. /**
  11141. * 求两个四维向量的点积。
  11142. * @param a 向量。
  11143. * @param b 向量。
  11144. * @return 点积。
  11145. */
  11146. static dot(a:Vector4,b:Vector4):number;
  11147. /**
  11148. * 分别取两个四维向量x、y、z的最小值计算新的四维向量。
  11149. * @param a 四维向量。
  11150. * @param b 四维向量。
  11151. * @param out 结果三维向量。
  11152. */
  11153. static min(a:Vector4,b:Vector4,out:Vector4):void;
  11154. /**
  11155. * 分别取两个四维向量x、y、z的最大值计算新的四维向量。
  11156. * @param a 四维向量。
  11157. * @param b 四维向量。
  11158. * @param out 结果三维向量。
  11159. */
  11160. static max(a:Vector4,b:Vector4,out:Vector4):void;
  11161. forNativeElement(nativeElements?:Float32Array):void;
  11162. }
  11163. }
  11164. declare module laya.d3.math {
  11165. /**
  11166. * <code>Viewport</code> 类用于创建视口。
  11167. */
  11168. class Viewport {
  11169. /**
  11170. * X轴坐标
  11171. */
  11172. x:number;
  11173. /**
  11174. * Y轴坐标
  11175. */
  11176. y:number;
  11177. /**
  11178. * 宽度
  11179. */
  11180. width:number;
  11181. /**
  11182. * 高度
  11183. */
  11184. height:number;
  11185. /**
  11186. * 最小深度
  11187. */
  11188. minDepth:number;
  11189. /**
  11190. * 最大深度
  11191. */
  11192. maxDepth:number;
  11193. /**
  11194. * 创建一个 <code>Viewport</code> 实例。
  11195. * @param x x坐标。
  11196. * @param y y坐标。
  11197. * @param width 宽度。
  11198. * @param height 高度。
  11199. */
  11200. constructor(x:number,y:number,width:number,height:number);
  11201. /**
  11202. * 投影一个三维向量到视口空间。
  11203. * @param source 三维向量。
  11204. * @param matrix 变换矩阵。
  11205. * @param out x、y、z为视口空间坐标,透视投影下w为相对于变换矩阵的z轴坐标。
  11206. */
  11207. project(source:laya.d3.math.Vector3,matrix:laya.d3.math.Matrix4x4,out:laya.d3.math.Vector4):void;
  11208. /**
  11209. * 反变换一个三维向量。
  11210. * @param source 源三维向量。
  11211. * @param matrix 变换矩阵。
  11212. * @param out 输出三维向量。
  11213. */
  11214. unprojectFromMat(source:laya.d3.math.Vector3,matrix:laya.d3.math.Matrix4x4,out:laya.d3.math.Vector3):void;
  11215. /**
  11216. * 反变换一个三维向量。
  11217. * @param source 源三维向量。
  11218. * @param projection 透视投影矩阵。
  11219. * @param view 视图矩阵。
  11220. * @param world 世界矩阵,可设置为null。
  11221. * @param out 输出向量。
  11222. */
  11223. 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;
  11224. /**
  11225. * 克隆
  11226. * @param out
  11227. */
  11228. cloneTo(out:Viewport):void;
  11229. }
  11230. }
  11231. declare module laya.d3.physics {
  11232. class BulletInteractive {
  11233. }
  11234. }
  11235. declare module laya.d3.physics {
  11236. /**
  11237. * <code>CharacterController</code> 类用于创建角色控制器。
  11238. */
  11239. class CharacterController extends laya.d3.physics.PhysicsComponent {
  11240. static UPAXIS_X:number;
  11241. static UPAXIS_Y:number;
  11242. static UPAXIS_Z:number;
  11243. /**
  11244. * 角色降落速度。
  11245. */
  11246. get fallSpeed():number;
  11247. set fallSpeed(value:number);
  11248. /**
  11249. * 角色跳跃速度。
  11250. */
  11251. get jumpSpeed():number;
  11252. set jumpSpeed(value:number);
  11253. /**
  11254. * 重力。
  11255. */
  11256. get gravity():laya.d3.math.Vector3;
  11257. set gravity(value:laya.d3.math.Vector3);
  11258. /**
  11259. * 最大坡度。
  11260. */
  11261. get maxSlope():number;
  11262. set maxSlope(value:number);
  11263. /**
  11264. * 角色是否在地表。
  11265. */
  11266. get isGrounded():boolean;
  11267. /**
  11268. * 角色行走的脚步高度,表示可跨越的最大高度。
  11269. */
  11270. get stepHeight():number;
  11271. set stepHeight(value:number);
  11272. /**
  11273. * 角色的Up轴。
  11274. */
  11275. get upAxis():laya.d3.math.Vector3;
  11276. set upAxis(value:laya.d3.math.Vector3);
  11277. /**
  11278. * 创建一个 <code>CharacterController</code> 实例。
  11279. * @param stepheight 角色脚步高度。
  11280. * @param upAxis 角色Up轴
  11281. * @param collisionGroup 所属碰撞组。
  11282. * @param canCollideWith 可产生碰撞的碰撞组。
  11283. */
  11284. constructor(stepheight?:number,upAxis?:laya.d3.math.Vector3,collisionGroup?:number,canCollideWith?:number);
  11285. /**
  11286. * 通过指定移动向量移动角色。
  11287. * @param movement 移动向量。
  11288. */
  11289. move(movement:laya.d3.math.Vector3):void;
  11290. /**
  11291. * 跳跃。
  11292. * @param velocity 跳跃速度。
  11293. */
  11294. jump(velocity?:laya.d3.math.Vector3):void;
  11295. }
  11296. }
  11297. declare module laya.d3.physics {
  11298. /**
  11299. * <code>Collision</code> 类用于创建物理碰撞信息。
  11300. */
  11301. class Collision {
  11302. /**
  11303. * @readonly
  11304. */
  11305. contacts:laya.d3.physics.ContactPoint[];
  11306. /**
  11307. * @readonly
  11308. */
  11309. other:laya.d3.physics.PhysicsComponent;
  11310. /**
  11311. * 创建一个 <code>Collision</code> 实例。
  11312. */
  11313. constructor();
  11314. }
  11315. }
  11316. declare module laya.d3.physics {
  11317. /**
  11318. * <code>CollisionMap</code> 类用于实现碰撞组合实例图。
  11319. */
  11320. class CollisionTool {
  11321. /**
  11322. * 创建一个 <code>CollisionMap</code> 实例。
  11323. */
  11324. constructor();
  11325. }
  11326. }
  11327. declare module laya.d3.physics {
  11328. /**
  11329. * ...
  11330. * @author ...
  11331. */
  11332. class Constraint3D {
  11333. /**
  11334. * 获取刚体A。[只读]
  11335. */
  11336. rigidbodyA:laya.d3.physics.Rigidbody3D;
  11337. /**
  11338. * 获取刚体A。[只读]
  11339. */
  11340. rigidbodyB:laya.d3.physics.Rigidbody3D;
  11341. constructor();
  11342. }
  11343. }
  11344. declare module laya.d3.physics.constraints {
  11345. class ConfigurableConstraint extends laya.d3.physics.constraints.ConstraintComponent {
  11346. static CONFIG_MOTION_TYPE_LOCKED:number;
  11347. static CONFIG_MOTION_TYPE_LIMITED:number;
  11348. static CONFIG_MOTION_TYPE_FREE:number;
  11349. /**
  11350. * 创建一个<code>Generic6DofSpring2Constraint</code>实例
  11351. */
  11352. constructor();
  11353. /**
  11354. * 主轴
  11355. */
  11356. get axis():laya.d3.math.Vector3;
  11357. /**
  11358. * 副轴
  11359. */
  11360. get secondaryAxis():laya.d3.math.Vector3;
  11361. set maxAngularLimit(value:laya.d3.math.Vector3);
  11362. set minAngularLimit(value:laya.d3.math.Vector3);
  11363. get maxAngularLimit():laya.d3.math.Vector3;
  11364. get minAngularLimit():laya.d3.math.Vector3;
  11365. set maxLinearLimit(value:laya.d3.math.Vector3);
  11366. set minLinearLimit(value:laya.d3.math.Vector3);
  11367. get maxLinearLimit():laya.d3.math.Vector3;
  11368. get minLinearLimit():laya.d3.math.Vector3;
  11369. /**
  11370. * X轴线性约束模式
  11371. */
  11372. set XMotion(value:number);
  11373. get XMotion():number;
  11374. /**
  11375. * Y轴线性约束模式
  11376. */
  11377. set YMotion(value:number);
  11378. get YMotion():number;
  11379. /**
  11380. * Z轴线性约束模式
  11381. */
  11382. set ZMotion(value:number);
  11383. get ZMotion():number;
  11384. /**
  11385. * X轴旋转约束模式
  11386. */
  11387. set angularXMotion(value:number);
  11388. get angularXMotion():number;
  11389. /**
  11390. * Y轴旋转约束模式
  11391. */
  11392. set angularYMotion(value:number);
  11393. get angularYMotion():number;
  11394. /**
  11395. * Z轴旋转约束模式
  11396. */
  11397. set angularZMotion(value:number);
  11398. get angularZMotion():number;
  11399. /**
  11400. * 线性弹簧
  11401. */
  11402. set linearLimitSpring(value:laya.d3.math.Vector3);
  11403. get linearLimitSpring():laya.d3.math.Vector3;
  11404. /**
  11405. * 角度弹簧
  11406. */
  11407. set angularLimitSpring(value:laya.d3.math.Vector3);
  11408. get angularLimitSpring():laya.d3.math.Vector3;
  11409. /**
  11410. * 线性弹力
  11411. */
  11412. set linearBounce(value:laya.d3.math.Vector3);
  11413. get linearBounce():laya.d3.math.Vector3;
  11414. /**
  11415. * 角度弹力
  11416. */
  11417. set angularBounce(value:laya.d3.math.Vector3);
  11418. get angularBounce():laya.d3.math.Vector3;
  11419. set linearDamp(value:laya.d3.math.Vector3);
  11420. get linearDamp():laya.d3.math.Vector3;
  11421. set angularDamp(value:laya.d3.math.Vector3);
  11422. get angularDamp():laya.d3.math.Vector3;
  11423. set anchor(value:laya.d3.math.Vector3);
  11424. get anchor():laya.d3.math.Vector3;
  11425. set connectAnchor(value:laya.d3.math.Vector3);
  11426. get connectAnchor():laya.d3.math.Vector3;
  11427. /**
  11428. * 设置对象自然旋转的局部轴主轴,axis2为副轴
  11429. * @param axis1
  11430. * @param axis2
  11431. */
  11432. setAxis(axis:laya.d3.math.Vector3,secondaryAxis:laya.d3.math.Vector3):void;
  11433. _initAllConstraintInfo():void;
  11434. _onDisable():void;
  11435. }
  11436. }
  11437. declare module laya.d3.physics.constraints {
  11438. /**
  11439. * <code>ConstraintComponent</code> 类用于创建约束的父类。
  11440. */
  11441. class ConstraintComponent extends laya.components.Component {
  11442. /**
  11443. * @inheritDoc
  11444. * @override
  11445. */
  11446. get enabled():boolean;
  11447. /**
  11448. * @inheritDoc
  11449. * @override
  11450. */
  11451. set enabled(value:boolean);
  11452. /**
  11453. * 获取应用的冲力。
  11454. */
  11455. get appliedImpulse():number;
  11456. /**
  11457. * 获取连接的刚体B。
  11458. * @return 已连接刚体B。
  11459. */
  11460. get connectedBody():laya.d3.physics.Rigidbody3D;
  11461. /**
  11462. * 获取连接的刚体A。
  11463. * @return 已连接刚体A。
  11464. */
  11465. get ownBody():laya.d3.physics.Rigidbody3D;
  11466. /**
  11467. * 获得收到的总力
  11468. */
  11469. get currentForce():laya.d3.math.Vector3;
  11470. /**
  11471. * 获取的总力矩
  11472. */
  11473. get currentTorque():laya.d3.math.Vector3;
  11474. /**
  11475. * 设置最大承受力
  11476. * @param value 最大承受力
  11477. */
  11478. get breakForce():number;
  11479. set breakForce(value:number);
  11480. /**
  11481. * 设置最大承受力矩
  11482. * @param value 最大承受力矩
  11483. */
  11484. get breakTorque():number;
  11485. set breakTorque(value:number);
  11486. set anchor(value:laya.d3.math.Vector3);
  11487. get anchor():laya.d3.math.Vector3;
  11488. set connectAnchor(value:laya.d3.math.Vector3);
  11489. get connectAnchor():laya.d3.math.Vector3;
  11490. /**
  11491. * 创建一个 <code>ConstraintComponent</code> 实例。
  11492. */
  11493. constructor(constraintType:number);
  11494. /**
  11495. * 设置迭代的次数,次数越高,越精确
  11496. * @param overideNumIterations
  11497. */
  11498. setOverrideNumSolverIterations(overideNumIterations:number):void;
  11499. /**
  11500. * 设置约束是否可用
  11501. * @param enable
  11502. */
  11503. setConstraintEnabled(enable:boolean):void;
  11504. _onDisable():void;
  11505. /**
  11506. * 设置约束刚体
  11507. * @param ownerRigid
  11508. * @param connectRigidBody
  11509. * @override
  11510. */
  11511. setConnectRigidBody(ownerRigid:laya.d3.physics.Rigidbody3D,connectRigidBody:laya.d3.physics.Rigidbody3D):void;
  11512. /**
  11513. * 获得当前力
  11514. * @param out
  11515. */
  11516. getcurrentForce(out:laya.d3.math.Vector3):void;
  11517. /**
  11518. * 获得当前力矩
  11519. * @param out
  11520. */
  11521. getcurrentTorque(out:laya.d3.math.Vector3):void;
  11522. }
  11523. }
  11524. declare module laya.d3.physics.constraints {
  11525. class FixedConstraint extends laya.d3.physics.constraints.ConstraintComponent {
  11526. /**
  11527. * 创建一个<code>FixedConstraint</code>实例
  11528. */
  11529. constructor();
  11530. _onDisable():void;
  11531. }
  11532. }
  11533. declare module laya.d3.physics.constraints {
  11534. /**
  11535. * <code>Point2PointConstraint</code> 类用于创建物理组件的父类。
  11536. */
  11537. class Point2PointConstraint {
  11538. get pivotInA():laya.d3.math.Vector3;
  11539. set pivotInA(value:laya.d3.math.Vector3);
  11540. get pivotInB():laya.d3.math.Vector3;
  11541. set pivotInB(value:laya.d3.math.Vector3);
  11542. get damping():number;
  11543. set damping(value:number);
  11544. get impulseClamp():number;
  11545. set impulseClamp(value:number);
  11546. get tau():number;
  11547. set tau(value:number);
  11548. /**
  11549. * 创建一个 <code>Point2PointConstraint</code> 实例。
  11550. */
  11551. constructor();
  11552. }
  11553. }
  11554. declare module laya.d3.physics {
  11555. /**
  11556. * <code>ContactPoint</code> 类用于创建物理碰撞信息。
  11557. */
  11558. class ContactPoint {
  11559. /**
  11560. * 碰撞器A。
  11561. */
  11562. colliderA:laya.d3.physics.PhysicsComponent;
  11563. /**
  11564. * 碰撞器B。
  11565. */
  11566. colliderB:laya.d3.physics.PhysicsComponent;
  11567. /**
  11568. * 距离。
  11569. */
  11570. distance:number;
  11571. /**
  11572. * 法线。
  11573. */
  11574. normal:laya.d3.math.Vector3;
  11575. /**
  11576. * 碰撞器A的碰撞点。
  11577. */
  11578. positionOnA:laya.d3.math.Vector3;
  11579. /**
  11580. * 碰撞器B的碰撞点。
  11581. */
  11582. positionOnB:laya.d3.math.Vector3;
  11583. /**
  11584. * 创建一个 <code>ContactPoint</code> 实例。
  11585. */
  11586. constructor();
  11587. }
  11588. }
  11589. declare module laya.d3.physics {
  11590. /**
  11591. * <code>HitResult</code> 类用于实现射线检测或形状扫描的结果。
  11592. */
  11593. class HitResult {
  11594. /**
  11595. * 是否成功。
  11596. */
  11597. succeeded:boolean;
  11598. /**
  11599. * 发生碰撞的碰撞组件。
  11600. */
  11601. collider:laya.d3.physics.PhysicsComponent;
  11602. /**
  11603. * 碰撞点。
  11604. */
  11605. point:laya.d3.math.Vector3;
  11606. /**
  11607. * 碰撞法线。
  11608. */
  11609. normal:laya.d3.math.Vector3;
  11610. /**
  11611. * 碰撞分数。
  11612. */
  11613. hitFraction:number;
  11614. /**
  11615. * 创建一个 <code>HitResult</code> 实例。
  11616. */
  11617. constructor();
  11618. }
  11619. }
  11620. declare module laya.d3.physics {
  11621. class Physics3D {
  11622. static __cannoninit__():void;
  11623. }
  11624. }
  11625. declare module laya.d3.physics {
  11626. /**
  11627. * <code>PhysicsCollider</code> 类用于创建物理碰撞器。
  11628. */
  11629. class PhysicsCollider extends laya.d3.physics.PhysicsTriggerComponent {
  11630. /**
  11631. * 创建一个 <code>PhysicsCollider</code> 实例。
  11632. * @param collisionGroup 所属碰撞组。
  11633. * @param canCollideWith 可产生碰撞的碰撞组。
  11634. */
  11635. constructor(collisionGroup?:number,canCollideWith?:number);
  11636. }
  11637. }
  11638. declare module laya.d3.physics {
  11639. /**
  11640. * <code>PhysicsComponent</code> 类用于创建物理组件的父类。
  11641. */
  11642. class PhysicsComponent extends laya.components.Component {
  11643. /**
  11644. * 是否可以缩放Shape。
  11645. */
  11646. canScaleShape:boolean;
  11647. /**
  11648. * 弹力。
  11649. */
  11650. get restitution():number;
  11651. set restitution(value:number);
  11652. /**
  11653. * 摩擦力。
  11654. */
  11655. get friction():number;
  11656. set friction(value:number);
  11657. /**
  11658. * 滚动摩擦力。
  11659. */
  11660. get rollingFriction():number;
  11661. set rollingFriction(value:number);
  11662. /**
  11663. * 用于连续碰撞检测(CCD)的速度阈值,当物体移动速度小于该值时不进行CCD检测,防止快速移动物体(例如:子弹)错误的穿过其它物体,0表示禁止。
  11664. */
  11665. get ccdMotionThreshold():number;
  11666. set ccdMotionThreshold(value:number);
  11667. /**
  11668. * 获取用于进入连续碰撞检测(CCD)范围的球半径。
  11669. */
  11670. get ccdSweptSphereRadius():number;
  11671. set ccdSweptSphereRadius(value:number);
  11672. /**
  11673. * 获取是否激活。
  11674. */
  11675. get isActive():boolean;
  11676. /**
  11677. * 碰撞形状。
  11678. */
  11679. get colliderShape():laya.d3.physics.shape.ColliderShape;
  11680. set colliderShape(value:laya.d3.physics.shape.ColliderShape);
  11681. /**
  11682. * 模拟器。
  11683. */
  11684. get simulation():laya.d3.physics.PhysicsSimulation;
  11685. /**
  11686. * 所属碰撞组。
  11687. */
  11688. get collisionGroup():number;
  11689. set collisionGroup(value:number);
  11690. /**
  11691. * 可碰撞的碰撞组,基于位运算。
  11692. */
  11693. get canCollideWith():number;
  11694. set canCollideWith(value:number);
  11695. /**
  11696. * 创建一个 <code>PhysicsComponent</code> 实例。
  11697. * @param collisionGroup 所属碰撞组。
  11698. * @param canCollideWith 可产生碰撞的碰撞组。
  11699. */
  11700. constructor(collisionGroup:number,canCollideWith:number);
  11701. }
  11702. }
  11703. declare module laya.d3.physics {
  11704. /**
  11705. * <code>PhysicsSettings</code> 类用于创建物理配置信息。
  11706. */
  11707. class PhysicsSettings {
  11708. /**
  11709. * 标志集合。
  11710. */
  11711. flags:number;
  11712. /**
  11713. * 物理引擎在一帧中用于补偿减速的最大次数。
  11714. */
  11715. maxSubSteps:number;
  11716. /**
  11717. * 物理模拟器帧的间隔时间。
  11718. */
  11719. fixedTimeStep:number;
  11720. /**
  11721. * 创建一个 <code>PhysicsSettings</code> 实例。
  11722. */
  11723. constructor();
  11724. }
  11725. }
  11726. declare module laya.d3.physics {
  11727. /**
  11728. * <code>Simulation</code> 类用于创建物理模拟器。
  11729. */
  11730. class PhysicsSimulation {
  11731. static disableSimulation:boolean;
  11732. /**
  11733. * 创建限制刚体运动的约束条件。
  11734. */
  11735. static createConstraint():void;
  11736. /**
  11737. * 物理引擎在一帧中用于补偿减速的最大次数:模拟器每帧允许的最大模拟次数,如果引擎运行缓慢,可能需要增加该次数,否则模拟器会丢失“时间",引擎间隔时间小于maxSubSteps*fixedTimeStep非常重要。
  11738. */
  11739. maxSubSteps:number;
  11740. /**
  11741. * 物理模拟器帧的间隔时间:通过减少fixedTimeStep可增加模拟精度,默认是1.0 / 60.0。
  11742. */
  11743. fixedTimeStep:number;
  11744. /**
  11745. * 是否进行连续碰撞检测。
  11746. */
  11747. get continuousCollisionDetection():boolean;
  11748. set continuousCollisionDetection(value:boolean);
  11749. /**
  11750. * 获取重力。
  11751. */
  11752. get gravity():laya.d3.math.Vector3;
  11753. set gravity(value:laya.d3.math.Vector3);
  11754. /**
  11755. * 射线检测第一个碰撞物体。
  11756. * @param from 起始位置。
  11757. * @param to 结束位置。
  11758. * @param out 碰撞结果。
  11759. * @param collisonGroup 射线所属碰撞组。
  11760. * @param collisionMask 与射线可产生碰撞的组。
  11761. * @return 是否成功。
  11762. */
  11763. raycastFromTo(from:laya.d3.math.Vector3,to:laya.d3.math.Vector3,out?:laya.d3.physics.HitResult,collisonGroup?:number,collisionMask?:number):boolean;
  11764. /**
  11765. * 射线检测所有碰撞的物体。
  11766. * @param from 起始位置。
  11767. * @param to 结束位置。
  11768. * @param out 碰撞结果[数组元素会被回收]。
  11769. * @param collisonGroup 射线所属碰撞组。
  11770. * @param collisionMask 与射线可产生碰撞的组。
  11771. * @return 是否成功。
  11772. */
  11773. raycastAllFromTo(from:laya.d3.math.Vector3,to:laya.d3.math.Vector3,out:laya.d3.physics.HitResult[],collisonGroup?:number,collisionMask?:number):boolean;
  11774. /**
  11775. * 射线检测第一个碰撞物体。
  11776. * @param ray 射线
  11777. * @param outHitInfo 与该射线发生碰撞的第一个碰撞器的碰撞信息
  11778. * @param distance 射线长度,默认为最大值
  11779. * @param collisonGroup 射线所属碰撞组。
  11780. * @param collisionMask 与射线可产生碰撞的组。
  11781. * @return 是否检测成功。
  11782. */
  11783. rayCast(ray:laya.d3.math.Ray,outHitResult?:laya.d3.physics.HitResult,distance?:number,collisonGroup?:number,collisionMask?:number):boolean;
  11784. /**
  11785. * 射线检测所有碰撞的物体。
  11786. * @param ray 射线
  11787. * @param out 碰撞结果[数组元素会被回收]。
  11788. * @param distance 射线长度,默认为最大值
  11789. * @param collisonGroup 射线所属碰撞组。
  11790. * @param collisionMask 与射线可产生碰撞的组。
  11791. * @return 是否检测成功。
  11792. */
  11793. rayCastAll(ray:laya.d3.math.Ray,out:laya.d3.physics.HitResult[],distance?:number,collisonGroup?:number,collisionMask?:number):boolean;
  11794. /**
  11795. * 形状检测第一个碰撞的物体。
  11796. * @param shape 形状。
  11797. * @param fromPosition 世界空间起始位置。
  11798. * @param toPosition 世界空间结束位置。
  11799. * @param out 碰撞结果。
  11800. * @param fromRotation 起始旋转。
  11801. * @param toRotation 结束旋转。
  11802. * @param collisonGroup 射线所属碰撞组。
  11803. * @param collisionMask 与射线可产生碰撞的组。
  11804. * @return 是否成功。
  11805. */
  11806. 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;
  11807. /**
  11808. * 形状检测所有碰撞的物体。
  11809. * @param shape 形状。
  11810. * @param fromPosition 世界空间起始位置。
  11811. * @param toPosition 世界空间结束位置。
  11812. * @param out 碰撞结果[数组元素会被回收]。
  11813. * @param fromRotation 起始旋转。
  11814. * @param toRotation 结束旋转。
  11815. * @param collisonGroup 射线所属碰撞组。
  11816. * @param collisionMask 与射线可产生碰撞的组。
  11817. * @return 是否成功。
  11818. */
  11819. 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;
  11820. /**
  11821. * 添加刚体运动的约束条件。
  11822. * @param constraint 约束。
  11823. * @param disableCollisionsBetweenLinkedBodies 是否禁用
  11824. */
  11825. addConstraint(constraint:laya.d3.physics.constraints.ConstraintComponent,disableCollisionsBetweenLinkedBodies?:boolean):void;
  11826. /**
  11827. * 移除刚体运动的约束条件。
  11828. */
  11829. removeConstraint(constraint:laya.d3.physics.constraints.ConstraintComponent):void;
  11830. /**
  11831. * 清除力。
  11832. */
  11833. clearForces():void;
  11834. }
  11835. }
  11836. declare module laya.d3.physics {
  11837. /**
  11838. * <code>PhysicsTriggerComponent</code> 类用于创建物理触发器组件。
  11839. */
  11840. class PhysicsTriggerComponent extends laya.d3.physics.PhysicsComponent {
  11841. /**
  11842. * 是否为触发器。
  11843. */
  11844. get isTrigger():boolean;
  11845. set isTrigger(value:boolean);
  11846. /**
  11847. * 创建一个 <code>PhysicsTriggerComponent</code> 实例。
  11848. * @param collisionGroup 所属碰撞组。
  11849. * @param canCollideWith 可产生碰撞的碰撞组。
  11850. */
  11851. constructor(collisionGroup:number,canCollideWith:number);
  11852. }
  11853. }
  11854. declare module laya.d3.physics {
  11855. /**
  11856. * <code>PhysicsUpdateList</code> 类用于实现物理更新队列。
  11857. */
  11858. class PhysicsUpdateList extends laya.d3.component.SingletonList<laya.resource.ISingletonElement> {
  11859. /**
  11860. * 创建一个新的 <code>PhysicsUpdateList</code> 实例。
  11861. */
  11862. constructor();
  11863. }
  11864. }
  11865. declare module laya.d3.physics {
  11866. /**
  11867. * <code>Rigidbody3D</code> 类用于创建刚体碰撞器。
  11868. */
  11869. class Rigidbody3D extends laya.d3.physics.PhysicsTriggerComponent {
  11870. static TYPE_STATIC:number;
  11871. static TYPE_DYNAMIC:number;
  11872. static TYPE_KINEMATIC:number;
  11873. /**
  11874. * 质量。
  11875. */
  11876. get mass():number;
  11877. set mass(value:number);
  11878. /**
  11879. * 是否为运动物体,如果为true仅可通过transform属性移动物体,而非其他力相关属性。
  11880. */
  11881. get isKinematic():boolean;
  11882. set isKinematic(value:boolean);
  11883. /**
  11884. * 刚体的线阻力。
  11885. */
  11886. get linearDamping():number;
  11887. set linearDamping(value:number);
  11888. /**
  11889. * 刚体的角阻力。
  11890. */
  11891. get angularDamping():number;
  11892. set angularDamping(value:number);
  11893. /**
  11894. * 是否重载重力。
  11895. */
  11896. get overrideGravity():boolean;
  11897. set overrideGravity(value:boolean);
  11898. /**
  11899. * 重力。
  11900. */
  11901. get gravity():laya.d3.math.Vector3;
  11902. set gravity(value:laya.d3.math.Vector3);
  11903. /**
  11904. * 总力。
  11905. */
  11906. get totalForce():laya.d3.math.Vector3;
  11907. /**
  11908. * 每个轴的线性运动缩放因子,如果某一轴的值为0表示冻结在该轴的线性运动。
  11909. */
  11910. get linearFactor():laya.d3.math.Vector3;
  11911. set linearFactor(value:laya.d3.math.Vector3);
  11912. /**
  11913. * 线速度
  11914. */
  11915. get linearVelocity():laya.d3.math.Vector3;
  11916. set linearVelocity(value:laya.d3.math.Vector3);
  11917. /**
  11918. * 每个轴的角度运动缩放因子,如果某一轴的值为0表示冻结在该轴的角度运动。
  11919. */
  11920. get angularFactor():laya.d3.math.Vector3;
  11921. set angularFactor(value:laya.d3.math.Vector3);
  11922. /**
  11923. * 角速度。
  11924. */
  11925. get angularVelocity():laya.d3.math.Vector3;
  11926. set angularVelocity(value:laya.d3.math.Vector3);
  11927. /**
  11928. * 刚体所有扭力。
  11929. */
  11930. get totalTorque():laya.d3.math.Vector3;
  11931. /**
  11932. * 是否进行碰撞检测。
  11933. */
  11934. get detectCollisions():boolean;
  11935. set detectCollisions(value:boolean);
  11936. /**
  11937. * 是否处于睡眠状态。
  11938. */
  11939. get isSleeping():boolean;
  11940. /**
  11941. * 刚体睡眠的线速度阈值。
  11942. */
  11943. get sleepLinearVelocity():number;
  11944. set sleepLinearVelocity(value:number);
  11945. /**
  11946. * 刚体睡眠的角速度阈值。
  11947. */
  11948. get sleepAngularVelocity():number;
  11949. set sleepAngularVelocity(value:number);
  11950. get btColliderObject():number;
  11951. /**
  11952. * 创建一个 <code>RigidBody3D</code> 实例。
  11953. * @param collisionGroup 所属碰撞组。
  11954. * @param canCollideWith 可产生碰撞的碰撞组。
  11955. */
  11956. constructor(collisionGroup?:number,canCollideWith?:number);
  11957. /**
  11958. * 应用作用力。
  11959. * @param force 作用力。
  11960. * @param localOffset 偏移,如果为null则为中心点
  11961. */
  11962. applyForce(force:laya.d3.math.Vector3,localOffset?:laya.d3.math.Vector3):void;
  11963. /**
  11964. * 应用扭转力。
  11965. * @param torque 扭转力。
  11966. */
  11967. applyTorque(torque:laya.d3.math.Vector3):void;
  11968. /**
  11969. * 应用冲量。
  11970. * @param impulse 冲量。
  11971. * @param localOffset 偏移,如果为null则为中心点。
  11972. */
  11973. applyImpulse(impulse:laya.d3.math.Vector3,localOffset?:laya.d3.math.Vector3):void;
  11974. /**
  11975. * 应用扭转冲量。
  11976. * @param torqueImpulse
  11977. */
  11978. applyTorqueImpulse(torqueImpulse:laya.d3.math.Vector3):void;
  11979. /**
  11980. * 唤醒刚体。
  11981. */
  11982. wakeUp():void;
  11983. /**
  11984. * 清除应用到刚体上的所有力。
  11985. */
  11986. clearForces():void;
  11987. }
  11988. }
  11989. declare module laya.d3.physics.shape {
  11990. /**
  11991. * <code>BoxColliderShape</code> 类用于创建盒子形状碰撞器。
  11992. */
  11993. class BoxColliderShape extends laya.d3.physics.shape.ColliderShape {
  11994. /**
  11995. * X轴尺寸。
  11996. */
  11997. get sizeX():number;
  11998. /**
  11999. * Y轴尺寸。
  12000. */
  12001. get sizeY():number;
  12002. /**
  12003. * Z轴尺寸。
  12004. */
  12005. get sizeZ():number;
  12006. /**
  12007. * 创建一个新的 <code>BoxColliderShape</code> 实例。
  12008. * @param sizeX 盒子X轴尺寸。
  12009. * @param sizeY 盒子Y轴尺寸。
  12010. * @param sizeZ 盒子Z轴尺寸。
  12011. */
  12012. constructor(sizeX?:number,sizeY?:number,sizeZ?:number);
  12013. /**
  12014. * @inheritDoc
  12015. * @override
  12016. */
  12017. clone():any;
  12018. }
  12019. }
  12020. declare module laya.d3.physics.shape {
  12021. /**
  12022. * <code>CapsuleColliderShape</code> 类用于创建胶囊形状碰撞器。
  12023. */
  12024. class CapsuleColliderShape extends laya.d3.physics.shape.ColliderShape {
  12025. /**
  12026. * 半径。
  12027. */
  12028. get radius():number;
  12029. /**
  12030. * 长度。
  12031. */
  12032. get length():number;
  12033. /**
  12034. * 方向。
  12035. */
  12036. get orientation():number;
  12037. /**
  12038. * 创建一个新的 <code>CapsuleColliderShape</code> 实例。
  12039. * @param 半径 。
  12040. * @param 高 (包含半径)。
  12041. * @param orientation 胶囊体方向。
  12042. */
  12043. constructor(radius?:number,length?:number,orientation?:number);
  12044. /**
  12045. * @inheritDoc
  12046. * @override
  12047. */
  12048. clone():any;
  12049. }
  12050. }
  12051. declare module laya.d3.physics.shape {
  12052. /**
  12053. * <code>ColliderShape</code> 类用于创建形状碰撞器的父类,该类为抽象类。
  12054. */
  12055. class ColliderShape implements laya.d3.core.IClone {
  12056. /**
  12057. * 形状方向_X轴正向
  12058. */
  12059. static SHAPEORIENTATION_UPX:number;
  12060. /**
  12061. * 形状方向_Y轴正向
  12062. */
  12063. static SHAPEORIENTATION_UPY:number;
  12064. /**
  12065. * 形状方向_Z轴正向
  12066. */
  12067. static SHAPEORIENTATION_UPZ:number;
  12068. needsCustomCollisionCallback:boolean;
  12069. /**
  12070. * 碰撞类型。
  12071. */
  12072. get type():number;
  12073. /**
  12074. * Shape的本地偏移。
  12075. */
  12076. get localOffset():laya.d3.math.Vector3;
  12077. set localOffset(value:laya.d3.math.Vector3);
  12078. /**
  12079. * Shape的本地旋转。
  12080. */
  12081. get localRotation():laya.d3.math.Quaternion;
  12082. set localRotation(value:laya.d3.math.Quaternion);
  12083. /**
  12084. * 创建一个新的 <code>ColliderShape</code> 实例。
  12085. */
  12086. constructor();
  12087. /**
  12088. * 更新本地偏移,如果修改LocalOffset或LocalRotation需要调用。
  12089. */
  12090. updateLocalTransformations():void;
  12091. /**
  12092. * 克隆。
  12093. * @param destObject 克隆源。
  12094. */
  12095. cloneTo(destObject:any):void;
  12096. /**
  12097. * 克隆。
  12098. * @return 克隆副本。
  12099. */
  12100. clone():any;
  12101. /**
  12102. * 销毁。
  12103. */
  12104. destroy():void;
  12105. }
  12106. }
  12107. declare module laya.d3.physics.shape {
  12108. /**
  12109. * <code>CompoundColliderShape</code> 类用于创建盒子形状碰撞器。
  12110. */
  12111. class CompoundColliderShape extends laya.d3.physics.shape.ColliderShape {
  12112. /**
  12113. * 创建一个新的 <code>CompoundColliderShape</code> 实例。
  12114. */
  12115. constructor();
  12116. /**
  12117. * 添加子碰撞器形状。
  12118. * @param shape 子碰撞器形状。
  12119. */
  12120. addChildShape(shape:laya.d3.physics.shape.ColliderShape):void;
  12121. /**
  12122. * 移除子碰撞器形状。
  12123. * @param shape 子碰撞器形状。
  12124. */
  12125. removeChildShape(shape:laya.d3.physics.shape.ColliderShape):void;
  12126. /**
  12127. * 清空子碰撞器形状。
  12128. */
  12129. clearChildShape():void;
  12130. /**
  12131. * 获取子形状数量。
  12132. * @return
  12133. */
  12134. getChildShapeCount():number;
  12135. /**
  12136. * @inheritDoc
  12137. * @override
  12138. */
  12139. cloneTo(destObject:any):void;
  12140. /**
  12141. * @inheritDoc
  12142. * @override
  12143. */
  12144. clone():any;
  12145. /**
  12146. * @inheritDoc
  12147. * @override
  12148. */
  12149. destroy():void;
  12150. }
  12151. }
  12152. declare module laya.d3.physics.shape {
  12153. /**
  12154. * <code>ConeColliderShape</code> 类用于创建圆柱碰撞器。
  12155. */
  12156. class ConeColliderShape extends laya.d3.physics.shape.ColliderShape {
  12157. private _orientation:any;
  12158. private _radius:any;
  12159. private _height:any;
  12160. /**
  12161. * 半径。
  12162. */
  12163. get radius():number;
  12164. /**
  12165. * 高度。
  12166. */
  12167. get height():number;
  12168. /**
  12169. * 方向。
  12170. */
  12171. get orientation():number;
  12172. /**
  12173. * 创建一个新的 <code>ConeColliderShape</code> 实例。
  12174. * @param height 高。
  12175. * @param radius 半径。
  12176. */
  12177. constructor(radius?:number,height?:number,orientation?:number);
  12178. /**
  12179. * @inheritDoc
  12180. * @override
  12181. */
  12182. clone():any;
  12183. }
  12184. }
  12185. declare module laya.d3.physics.shape {
  12186. /**
  12187. * <code>CylinderColliderShape</code> 类用于创建圆柱碰撞器。
  12188. */
  12189. class CylinderColliderShape extends laya.d3.physics.shape.ColliderShape {
  12190. private _orientation:any;
  12191. private _radius:any;
  12192. private _height:any;
  12193. /**
  12194. * 半径。
  12195. */
  12196. get radius():number;
  12197. /**
  12198. * 高度。
  12199. */
  12200. get height():number;
  12201. /**
  12202. * 方向。
  12203. */
  12204. get orientation():number;
  12205. /**
  12206. * 创建一个新的 <code>CylinderColliderShape</code> 实例。
  12207. * @param height 高。
  12208. * @param radius 半径。
  12209. */
  12210. constructor(radius?:number,height?:number,orientation?:number);
  12211. /**
  12212. * @inheritDoc
  12213. * @override
  12214. */
  12215. clone():any;
  12216. }
  12217. }
  12218. declare module laya.d3.physics.shape {
  12219. /**
  12220. * ...
  12221. * @author ...
  12222. */
  12223. class HeightfieldColliderShape {
  12224. constructor();
  12225. }
  12226. }
  12227. declare module laya.d3.physics.shape {
  12228. /**
  12229. * <code>MeshColliderShape</code> 类用于创建网格碰撞器。
  12230. */
  12231. class MeshColliderShape extends laya.d3.physics.shape.ColliderShape {
  12232. /**
  12233. * 网格。
  12234. */
  12235. get mesh():laya.d3.resource.models.Mesh;
  12236. set mesh(value:laya.d3.resource.models.Mesh);
  12237. /**
  12238. * 是否使用凸多边形。
  12239. */
  12240. get convex():boolean;
  12241. set convex(value:boolean);
  12242. /**
  12243. * 创建一个新的 <code>MeshColliderShape</code> 实例。
  12244. */
  12245. constructor();
  12246. /**
  12247. * @inheritDoc
  12248. * @override
  12249. */
  12250. cloneTo(destObject:any):void;
  12251. /**
  12252. * @inheritDoc
  12253. * @override
  12254. */
  12255. clone():any;
  12256. }
  12257. }
  12258. declare module laya.d3.physics.shape {
  12259. /**
  12260. * <code>SphereColliderShape</code> 类用于创建球形碰撞器。
  12261. */
  12262. class SphereColliderShape extends laya.d3.physics.shape.ColliderShape {
  12263. /**
  12264. * 半径。
  12265. */
  12266. get radius():number;
  12267. /**
  12268. * 创建一个新的 <code>SphereColliderShape</code> 实例。
  12269. * @param radius 半径。
  12270. */
  12271. constructor(radius?:number);
  12272. /**
  12273. * @inheritDoc
  12274. * @override
  12275. */
  12276. clone():any;
  12277. }
  12278. }
  12279. declare module laya.d3.physics.shape {
  12280. /**
  12281. * <code>StaticPlaneColliderShape</code> 类用于创建静态平面碰撞器。
  12282. */
  12283. class StaticPlaneColliderShape extends laya.d3.physics.shape.ColliderShape {
  12284. /**
  12285. * 创建一个新的 <code>StaticPlaneColliderShape</code> 实例。
  12286. */
  12287. constructor(normal:laya.d3.math.Vector3,offset:number);
  12288. /**
  12289. * @inheritDoc
  12290. * @override
  12291. */
  12292. clone():any;
  12293. }
  12294. }
  12295. declare module laya.d3.physicsCannon {
  12296. /**
  12297. * <code>Collision</code> 类用于创建物理碰撞信息。
  12298. */
  12299. class CannonCollision {
  12300. /**
  12301. * @readonly
  12302. */
  12303. contacts:laya.d3.physicsCannon.CannonContactPoint[];
  12304. /**
  12305. * @readonly
  12306. */
  12307. other:laya.d3.physicsCannon.CannonPhysicsComponent;
  12308. /**
  12309. * 创建一个 <code>Collision</code> 实例。
  12310. */
  12311. constructor();
  12312. }
  12313. }
  12314. declare module laya.d3.physicsCannon {
  12315. /**
  12316. * <code>CollisionMap</code> 类用于实现碰撞组合实例图。
  12317. */
  12318. class CannonCollisionTool {
  12319. /**
  12320. * 创建一个 <code>CollisionMap</code> 实例。
  12321. */
  12322. constructor();
  12323. }
  12324. }
  12325. declare module laya.d3.physicsCannon {
  12326. /**
  12327. * <code>ContactPoint</code> 类用于创建物理碰撞信息。
  12328. */
  12329. class CannonContactPoint {
  12330. /**
  12331. * 碰撞器A。
  12332. */
  12333. colliderA:laya.d3.physicsCannon.CannonPhysicsComponent;
  12334. /**
  12335. * 碰撞器B。
  12336. */
  12337. colliderB:laya.d3.physicsCannon.CannonPhysicsComponent;
  12338. /**
  12339. * 距离。
  12340. */
  12341. distance:number;
  12342. /**
  12343. * 法线。
  12344. */
  12345. normal:laya.d3.math.Vector3;
  12346. /**
  12347. * 碰撞器A的碰撞点。
  12348. */
  12349. positionOnA:laya.d3.math.Vector3;
  12350. /**
  12351. * 碰撞器B的碰撞点。
  12352. */
  12353. positionOnB:laya.d3.math.Vector3;
  12354. /**
  12355. * 创建一个 <code>ContactPoint</code> 实例。
  12356. */
  12357. constructor();
  12358. }
  12359. }
  12360. declare module laya.d3.physicsCannon {
  12361. /**
  12362. * <code>HitResult</code> 类用于实现射线检测或形状扫描的结果。
  12363. */
  12364. class CannonHitResult {
  12365. /**
  12366. * 是否成功。
  12367. */
  12368. succeeded:boolean;
  12369. /**
  12370. * 发生碰撞的碰撞组件。
  12371. */
  12372. collider:laya.d3.physicsCannon.CannonPhysicsComponent;
  12373. /**
  12374. * 碰撞点。
  12375. */
  12376. point:laya.d3.math.Vector3;
  12377. /**
  12378. * 碰撞法线。
  12379. */
  12380. normal:laya.d3.math.Vector3;
  12381. /**
  12382. * 碰撞分数。
  12383. */
  12384. hitFraction:number;
  12385. /**
  12386. * 创建一个 <code>HitResult</code> 实例。
  12387. */
  12388. constructor();
  12389. }
  12390. }
  12391. declare module laya.d3.physicsCannon {
  12392. /**
  12393. * <code>PhysicsCollider</code> 类用于创建物理碰撞器。
  12394. */
  12395. class CannonPhysicsCollider extends laya.d3.physicsCannon.CannonPhysicsTriggerComponent {
  12396. /**
  12397. * 创建一个 <code>PhysicsCollider</code> 实例。
  12398. * @param collisionGroup 所属碰撞组。
  12399. * @param canCollideWith 可产生碰撞的碰撞组。
  12400. */
  12401. constructor(collisionGroup?:number,canCollideWith?:number);
  12402. }
  12403. }
  12404. declare module laya.d3.physicsCannon {
  12405. /**
  12406. * <code>PhysicsComponent</code> 类用于创建物理组件的父类。
  12407. */
  12408. class CannonPhysicsComponent extends laya.components.Component {
  12409. /**
  12410. * 是否可以缩放Shape。
  12411. */
  12412. canScaleShape:boolean;
  12413. /**
  12414. * 弹力。
  12415. */
  12416. get restitution():number;
  12417. set restitution(value:number);
  12418. /**
  12419. * 摩擦力。
  12420. */
  12421. get friction():number;
  12422. set friction(value:number);
  12423. /**
  12424. * 碰撞形状。
  12425. */
  12426. get colliderShape():laya.d3.physicsCannon.shape.CannonColliderShape;
  12427. set colliderShape(value:laya.d3.physicsCannon.shape.CannonColliderShape);
  12428. /**
  12429. * 模拟器。
  12430. */
  12431. get simulation():laya.d3.physicsCannon.CannonPhysicsSimulation;
  12432. /**
  12433. * 所属碰撞组。
  12434. */
  12435. get collisionGroup():number;
  12436. set collisionGroup(value:number);
  12437. /**
  12438. * 可碰撞的碰撞组,基于位运算。
  12439. */
  12440. get canCollideWith():number;
  12441. set canCollideWith(value:number);
  12442. /**
  12443. * 创建一个 <code>PhysicsComponent</code> 实例。
  12444. * @param collisionGroup 所属碰撞组。
  12445. * @param canCollideWith 可产生碰撞的碰撞组。
  12446. */
  12447. constructor(collisionGroup:number,canCollideWith:number);
  12448. }
  12449. }
  12450. declare module laya.d3.physicsCannon {
  12451. /**
  12452. * <code>PhysicsSettings</code> 类用于创建物理配置信息。
  12453. */
  12454. class CannonPhysicsSettings {
  12455. /**
  12456. * 标志集合。
  12457. */
  12458. flags:number;
  12459. /**
  12460. * 物理引擎在一帧中用于补偿减速的最大次数。
  12461. */
  12462. maxSubSteps:number;
  12463. /**
  12464. * 物理模拟器帧的间隔时间。
  12465. */
  12466. fixedTimeStep:number;
  12467. /**
  12468. * 物理松弛系数
  12469. */
  12470. contactEquationRelaxation:number;
  12471. /**
  12472. * 刚度系数
  12473. */
  12474. contactEquationStiffness:number;
  12475. /**
  12476. * 创建一个 <code>PhysicsSettings</code> 实例。
  12477. */
  12478. constructor();
  12479. }
  12480. }
  12481. declare module laya.d3.physicsCannon {
  12482. /**
  12483. * <code>Simulation</code> 类用于创建物理模拟器。
  12484. */
  12485. class CannonPhysicsSimulation {
  12486. static disableSimulation:boolean;
  12487. /**
  12488. * 创建限制刚体运动的约束条件。
  12489. */
  12490. static createConstraint():void;
  12491. /**
  12492. * 物理引擎在一帧中用于补偿减速的最大次数:模拟器每帧允许的最大模拟次数,如果引擎运行缓慢,可能需要增加该次数,否则模拟器会丢失“时间",引擎间隔时间小于maxSubSteps*fixedTimeStep非常重要。
  12493. */
  12494. maxSubSteps:number;
  12495. /**
  12496. * 物理模拟器帧的间隔时间:通过减少fixedTimeStep可增加模拟精度,默认是1.0 / 60.0。
  12497. */
  12498. fixedTimeStep:number;
  12499. /**
  12500. * 是否进行连续碰撞检测。CCD
  12501. */
  12502. get continuousCollisionDetection():boolean;
  12503. set continuousCollisionDetection(value:boolean);
  12504. /**
  12505. * 获取重力。
  12506. */
  12507. get gravity():laya.d3.math.Vector3;
  12508. set gravity(value:laya.d3.math.Vector3);
  12509. /**
  12510. * 获取重力。
  12511. */
  12512. get solverIterations():number;
  12513. set solverIterations(value:number);
  12514. /**
  12515. * 射线检测第一个碰撞物体。
  12516. * @param from 起始位置。
  12517. * @param to 结束位置。
  12518. * @param out 碰撞结果。
  12519. * @param collisonGroup 射线所属碰撞组。
  12520. * @param collisionMask 与射线可产生碰撞的组。
  12521. * @return 是否成功。
  12522. */
  12523. raycastFromTo(from:laya.d3.math.Vector3,to:laya.d3.math.Vector3,out?:laya.d3.physicsCannon.CannonHitResult,collisonGroup?:number,collisionMask?:number):boolean;
  12524. /**
  12525. * 射线检测所有碰撞的物体。
  12526. * @param from 起始位置。
  12527. * @param to 结束位置。
  12528. * @param out 碰撞结果[数组元素会被回收]。
  12529. * @param collisonGroup 射线所属碰撞组。
  12530. * @param collisionMask 与射线可产生碰撞的组。
  12531. * @return 是否成功。
  12532. */
  12533. raycastAllFromTo(from:laya.d3.math.Vector3,to:laya.d3.math.Vector3,out:laya.d3.physicsCannon.CannonHitResult[],collisonGroup?:number,collisionMask?:number):boolean;
  12534. /**
  12535. * 射线检测第一个碰撞物体。
  12536. * @param ray 射线
  12537. * @param outHitInfo 与该射线发生碰撞的第一个碰撞器的碰撞信息
  12538. * @param distance 射线长度,默认为最大值
  12539. * @param collisonGroup 射线所属碰撞组。
  12540. * @param collisionMask 与射线可产生碰撞的组。
  12541. * @return 是否检测成功。
  12542. */
  12543. rayCast(ray:laya.d3.math.Ray,outHitResult?:laya.d3.physicsCannon.CannonHitResult,distance?:number,collisonGroup?:number,collisionMask?:number):boolean;
  12544. /**
  12545. * 射线检测所有碰撞的物体。
  12546. * @param ray 射线
  12547. * @param out 碰撞结果[数组元素会被回收]。
  12548. * @param distance 射线长度,默认为最大值
  12549. * @param collisonGroup 射线所属碰撞组。
  12550. * @param collisionMask 与射线可产生碰撞的组。
  12551. * @return 是否检测成功。
  12552. */
  12553. rayCastAll(ray:laya.d3.math.Ray,out:laya.d3.physicsCannon.CannonHitResult[],distance?:number,collisonGroup?:number,collisionMask?:number):boolean;
  12554. /**
  12555. * 清除力。
  12556. */
  12557. clearForces():void;
  12558. }
  12559. }
  12560. declare module laya.d3.physicsCannon {
  12561. /**
  12562. * <code>PhysicsTriggerComponent</code> 类用于创建物理触发器组件。
  12563. */
  12564. class CannonPhysicsTriggerComponent extends laya.d3.physicsCannon.CannonPhysicsComponent {
  12565. /**
  12566. * 是否为触发器。
  12567. */
  12568. get isTrigger():boolean;
  12569. set isTrigger(value:boolean);
  12570. /**
  12571. * 创建一个 <code>PhysicsTriggerComponent</code> 实例。
  12572. * @param collisionGroup 所属碰撞组。
  12573. * @param canCollideWith 可产生碰撞的碰撞组。
  12574. */
  12575. constructor(collisionGroup:number,canCollideWith:number);
  12576. }
  12577. }
  12578. declare module laya.d3.physicsCannon {
  12579. /**
  12580. * <code>PhysicsUpdateList</code> 类用于实现物理更新队列。
  12581. */
  12582. class CannonPhysicsUpdateList extends laya.d3.component.SingletonList<laya.resource.ISingletonElement> {
  12583. /**
  12584. * 创建一个新的 <code>PhysicsUpdateList</code> 实例。
  12585. */
  12586. constructor();
  12587. }
  12588. }
  12589. declare module laya.d3.physicsCannon {
  12590. /**
  12591. * <code>Rigidbody3D</code> 类用于创建刚体碰撞器。
  12592. */
  12593. class CannonRigidbody3D extends laya.d3.physicsCannon.CannonPhysicsCollider {
  12594. static TYPE_STATIC:number;
  12595. static TYPE_DYNAMIC:number;
  12596. static TYPE_KINEMATIC:number;
  12597. /**
  12598. * 质量。
  12599. */
  12600. get mass():number;
  12601. set mass(value:number);
  12602. /**
  12603. * 是否为运动物体,如果为true仅可通过transform属性移动物体,而非其他力相关属性。
  12604. */
  12605. get isKinematic():boolean;
  12606. set isKinematic(value:boolean);
  12607. /**
  12608. * 刚体的线阻力。
  12609. */
  12610. get linearDamping():number;
  12611. set linearDamping(value:number);
  12612. /**
  12613. * 刚体的角阻力。
  12614. */
  12615. get angularDamping():number;
  12616. set angularDamping(value:number);
  12617. /**
  12618. * 总力。
  12619. */
  12620. get totalForce():laya.d3.math.Vector3;
  12621. /**
  12622. * 线速度
  12623. */
  12624. get linearVelocity():laya.d3.math.Vector3;
  12625. set linearVelocity(value:laya.d3.math.Vector3);
  12626. /**
  12627. * 角速度。
  12628. */
  12629. get angularVelocity():laya.d3.math.Vector3;
  12630. set angularVelocity(value:laya.d3.math.Vector3);
  12631. /**
  12632. * 刚体所有扭力。
  12633. */
  12634. get totalTorque():laya.d3.math.Vector3;
  12635. /**
  12636. * 是否处于睡眠状态。
  12637. */
  12638. get isSleeping():boolean;
  12639. /**
  12640. * 刚体睡眠的线速度阈值。
  12641. */
  12642. get sleepLinearVelocity():number;
  12643. set sleepLinearVelocity(value:number);
  12644. get btColliderObject():CANNON.Body;
  12645. /**
  12646. * 创建一个 <code>RigidBody3D</code> 实例。
  12647. * @param collisionGroup 所属碰撞组。
  12648. * @param canCollideWith 可产生碰撞的碰撞组。
  12649. */
  12650. constructor(collisionGroup?:number,canCollideWith?:number);
  12651. /**
  12652. * 应用作用力。
  12653. * @param force 作用力。
  12654. * @param localOffset 偏移,如果为null则为中心点
  12655. */
  12656. applyForce(force:laya.d3.math.Vector3,localOffset?:laya.d3.math.Vector3):void;
  12657. /**
  12658. * 应用扭转力。
  12659. * @param torque 扭转力。
  12660. */
  12661. applyTorque(torque:laya.d3.math.Vector3):void;
  12662. /**
  12663. * 应用冲量。
  12664. * @param impulse 冲量。
  12665. * @param localOffset 偏移,如果为null则为中心点。
  12666. */
  12667. applyImpulse(impulse:laya.d3.math.Vector3,localOffset?:laya.d3.math.Vector3):void;
  12668. /**
  12669. * 唤醒刚体。
  12670. */
  12671. wakeUp():void;
  12672. /**
  12673. * 清除应用到刚体上的所有力。
  12674. */
  12675. clearForces():void;
  12676. }
  12677. }
  12678. declare module laya.d3.physicsCannon.shape {
  12679. /**
  12680. * <code>BoxColliderShape</code> 类用于创建盒子形状碰撞器。
  12681. */
  12682. class CannonBoxColliderShape extends laya.d3.physicsCannon.shape.CannonColliderShape {
  12683. /**
  12684. * X轴尺寸。
  12685. */
  12686. get sizeX():number;
  12687. /**
  12688. * Y轴尺寸。
  12689. */
  12690. get sizeY():number;
  12691. /**
  12692. * Z轴尺寸。
  12693. */
  12694. get sizeZ():number;
  12695. /**
  12696. * 创建一个新的 <code>BoxColliderShape</code> 实例。
  12697. * @param sizeX 盒子X轴尺寸。
  12698. * @param sizeY 盒子Y轴尺寸。
  12699. * @param sizeZ 盒子Z轴尺寸。
  12700. */
  12701. constructor(sizeX?:number,sizeY?:number,sizeZ?:number);
  12702. /**
  12703. * @inheritDoc
  12704. * @override
  12705. */
  12706. _setScale(scale:laya.d3.math.Vector3):void;
  12707. /**
  12708. * @inheritDoc
  12709. * @override
  12710. */
  12711. clone():any;
  12712. }
  12713. }
  12714. declare module laya.d3.physicsCannon.shape {
  12715. /**
  12716. * <code>ColliderShape</code> 类用于创建形状碰撞器的父类,该类为抽象类。
  12717. */
  12718. class CannonColliderShape implements laya.d3.core.IClone {
  12719. /**
  12720. * 形状方向_X轴正向
  12721. */
  12722. static SHAPEORIENTATION_UPX:number;
  12723. /**
  12724. * 形状方向_Y轴正向
  12725. */
  12726. static SHAPEORIENTATION_UPY:number;
  12727. /**
  12728. * 形状方向_Z轴正向
  12729. */
  12730. static SHAPEORIENTATION_UPZ:number;
  12731. needsCustomCollisionCallback:boolean;
  12732. /**
  12733. * 碰撞类型。
  12734. */
  12735. get type():number;
  12736. /**
  12737. * Shape的本地偏移。
  12738. */
  12739. get localOffset():laya.d3.math.Vector3;
  12740. set localOffset(value:laya.d3.math.Vector3);
  12741. /**
  12742. * Shape的本地旋转。
  12743. */
  12744. get localRotation():laya.d3.math.Quaternion;
  12745. set localRotation(value:laya.d3.math.Quaternion);
  12746. /**
  12747. * 创建一个新的 <code>ColliderShape</code> 实例。
  12748. */
  12749. constructor();
  12750. /**
  12751. * 更新本地偏移,如果修改LocalOffset或LocalRotation需要调用。
  12752. */
  12753. updateLocalTransformations():void;
  12754. /**
  12755. * 克隆。
  12756. * @param destObject 克隆源。
  12757. */
  12758. cloneTo(destObject:any):void;
  12759. /**
  12760. * 克隆。
  12761. * @return 克隆副本。
  12762. */
  12763. clone():any;
  12764. /**
  12765. * 销毁。
  12766. */
  12767. destroy():void;
  12768. }
  12769. }
  12770. declare module laya.d3.physicsCannon.shape {
  12771. /**
  12772. * <code>CompoundColliderShape</code> 类用于创建盒子形状碰撞器。
  12773. */
  12774. class CannonCompoundColliderShape extends laya.d3.physicsCannon.shape.CannonColliderShape {
  12775. private static _tempCannonQue:any;
  12776. private static _tempCannonVec:any;
  12777. private physicColliderObject:any;
  12778. /**
  12779. * 创建一个新的 <code>CompoundColliderShape</code> 实例。
  12780. */
  12781. constructor();
  12782. addChildShape(shape:laya.d3.physicsCannon.shape.CannonColliderShape,localOffset?:laya.d3.math.Vector3):void;
  12783. /**
  12784. * 移除子碰撞器形状。
  12785. * @param shape 子碰撞器形状。
  12786. */
  12787. removeChildShape(shape:laya.d3.physicsCannon.shape.CannonColliderShape):void;
  12788. bindRigidBody(rigidbody:laya.d3.physicsCannon.CannonPhysicsComponent):void;
  12789. /**
  12790. * @inheritDoc
  12791. * @override
  12792. */
  12793. _setScale(scale:laya.d3.math.Vector3):void;
  12794. /**
  12795. * 获取子形状数量。
  12796. * @return
  12797. */
  12798. getChildShapeCount():number;
  12799. /**
  12800. * @inheritDoc
  12801. * @override
  12802. */
  12803. cloneTo(destObject:any):void;
  12804. /**
  12805. * @inheritDoc
  12806. * @override
  12807. */
  12808. clone():any;
  12809. /**
  12810. * @inheritDoc
  12811. * @override
  12812. */
  12813. destroy():void;
  12814. }
  12815. }
  12816. declare module laya.d3.physicsCannon.shape {
  12817. /**
  12818. * <code>SphereColliderShape</code> 类用于创建球形碰撞器。
  12819. */
  12820. class CannonSphereColliderShape extends laya.d3.physicsCannon.shape.CannonColliderShape {
  12821. /**
  12822. * 半径。
  12823. */
  12824. get radius():number;
  12825. /**
  12826. * 创建一个新的 <code>SphereColliderShape</code> 实例。
  12827. * @param radius 半径。
  12828. */
  12829. constructor(radius?:number);
  12830. /**
  12831. * @inheritDoc
  12832. * @override
  12833. */
  12834. _setScale(scale:laya.d3.math.Vector3):void;
  12835. /**
  12836. * @inheritDoc
  12837. * @override
  12838. */
  12839. clone():any;
  12840. }
  12841. }
  12842. declare module laya.d3.resource {
  12843. /**
  12844. * <code>IReferenceCounter</code> 引用计数器接口。
  12845. */
  12846. interface IReferenceCounter{
  12847. _getReferenceCount():number;
  12848. _addReference(count:number):void;
  12849. _removeReference(count:number):void;
  12850. _clearReference():void;
  12851. }
  12852. }
  12853. declare module laya.d3.resource.models {
  12854. /**
  12855. * <code>Mesh</code> 类用于创建文件网格数据模板。
  12856. */
  12857. class Mesh extends laya.resource.Resource implements laya.d3.core.IClone {
  12858. /**
  12859. * Mesh资源。
  12860. */
  12861. static MESH:string;
  12862. /**
  12863. * 加载网格模板。
  12864. * @param url 模板地址。
  12865. * @param complete 完成回调。
  12866. */
  12867. static load(url:string,complete:laya.utils.Handler):void;
  12868. /**
  12869. * 网格的全局默认绑定动作逆矩阵。
  12870. */
  12871. get inverseAbsoluteBindPoses():laya.d3.math.Matrix4x4[];
  12872. /**
  12873. * 获取顶点个数。
  12874. */
  12875. get vertexCount():number;
  12876. /**
  12877. * 获取索引个数。
  12878. */
  12879. get indexCount():number;
  12880. /**
  12881. * SubMesh的个数。
  12882. */
  12883. get subMeshCount():number;
  12884. /**
  12885. * 边界。
  12886. */
  12887. get bounds():laya.d3.core.Bounds;
  12888. set bounds(value:laya.d3.core.Bounds);
  12889. /**
  12890. * 索引格式。
  12891. */
  12892. get indexFormat():laya.d3.graphics.IndexFormat;
  12893. /**
  12894. * 创建一个 <code>Mesh</code> 实例,禁止使用。
  12895. * @param isReadable 是否可读。
  12896. */
  12897. constructor(isReadable?:boolean);
  12898. /**
  12899. * @inheritDoc
  12900. * @override
  12901. */
  12902. protected _disposeResource():void;
  12903. /**
  12904. * 根据获取子网格。
  12905. * @param index 索引。
  12906. */
  12907. getSubMesh(index:number):laya.d3.resource.models.SubMesh;
  12908. /**
  12909. * 拷贝并填充位置数据至数组。
  12910. * @param positions 位置数组。
  12911. * @remark 该方法为拷贝操作,比较耗费性能。
  12912. */
  12913. getPositions(positions:laya.d3.math.Vector3[]):void;
  12914. /**
  12915. * 设置位置数据。
  12916. * @param positions 位置。
  12917. */
  12918. setPositions(positions:laya.d3.math.Vector3[]):void;
  12919. /**
  12920. * 拷贝并填充颜色数据至数组。
  12921. * @param colors 颜色数组。
  12922. * @remark 该方法为拷贝操作,比较耗费性能。
  12923. */
  12924. getColors(colors:laya.d3.math.Color[]):void;
  12925. /**
  12926. * 设置颜色数据。
  12927. * @param colors 颜色。
  12928. */
  12929. setColors(colors:laya.d3.math.Color[]):void;
  12930. /**
  12931. * 拷贝并填充纹理坐标数据至数组。
  12932. * @param uvs 纹理坐标数组。
  12933. * @param channel 纹理坐标通道。
  12934. * @remark 该方法为拷贝操作,比较耗费性能。
  12935. */
  12936. getUVs(uvs:laya.d3.math.Vector2[],channel?:number):void;
  12937. /**
  12938. * 设置纹理坐标数据。
  12939. * @param uvs 纹理坐标。
  12940. * @param channel 纹理坐标通道。
  12941. */
  12942. setUVs(uvs:laya.d3.math.Vector2[],channel?:number):void;
  12943. /**
  12944. * 拷贝并填充法线数据至数组。
  12945. * @param normals 法线数组。
  12946. * @remark 该方法为拷贝操作,比较耗费性能。
  12947. */
  12948. getNormals(normals:laya.d3.math.Vector3[]):void;
  12949. /**
  12950. * 设置法线数据。
  12951. * @param normals 法线。
  12952. */
  12953. setNormals(normals:laya.d3.math.Vector3[]):void;
  12954. /**
  12955. * 拷贝并填充切线数据至数组。
  12956. * @param tangents 切线。
  12957. */
  12958. getTangents(tangents:laya.d3.math.Vector4[]):void;
  12959. /**
  12960. * 设置切线数据。
  12961. * @param tangents 切线。
  12962. */
  12963. setTangents(tangents:laya.d3.math.Vector4[]):void;
  12964. /**
  12965. * 获取骨骼权重。
  12966. * @param boneWeights 骨骼权重。
  12967. */
  12968. getBoneWeights(boneWeights:laya.d3.math.Vector4[]):void;
  12969. /**
  12970. * 拷贝并填充骨骼权重数据至数组。
  12971. * @param boneWeights 骨骼权重。
  12972. */
  12973. setBoneWeights(boneWeights:laya.d3.math.Vector4[]):void;
  12974. /**
  12975. * 获取骨骼索引。
  12976. * @param boneIndices 骨骼索引。
  12977. */
  12978. getBoneIndices(boneIndices:laya.d3.math.Vector4[]):void;
  12979. /**
  12980. * 拷贝并填充骨骼索引数据至数组。
  12981. * @param boneWeights 骨骼索引。
  12982. */
  12983. setBoneIndices(boneIndices:laya.d3.math.Vector4[]):void;
  12984. /**
  12985. * 将Mesh标记为不可读,可减少内存,标记后不可再调用相关读取方法。
  12986. */
  12987. markAsUnreadbale():void;
  12988. /**
  12989. * 获取顶点声明。
  12990. */
  12991. getVertexDeclaration():laya.d3.graphics.VertexDeclaration;
  12992. /**
  12993. * 拷贝并获取顶点数据的副本。
  12994. * @return 顶点数据。
  12995. */
  12996. getVertices():ArrayBuffer;
  12997. /**
  12998. * 设置顶点数据。
  12999. * @param vertices 顶点数据。
  13000. */
  13001. setVertices(vertices:ArrayBuffer):void;
  13002. /**
  13003. * 拷贝并获取网格索引的副本。
  13004. * @return 网格索引。
  13005. */
  13006. getIndices():Uint8Array|Uint16Array|Uint32Array;
  13007. /**
  13008. * 设置网格索引。
  13009. * @param indices 网格索引。
  13010. */
  13011. setIndices(indices:Uint8Array|Uint16Array|Uint32Array):void;
  13012. /**
  13013. * 从模型位置数据生成包围盒。
  13014. */
  13015. calculateBounds():void;
  13016. /**
  13017. * 克隆。
  13018. * @param destObject 克隆源。
  13019. */
  13020. cloneTo(destObject:any):void;
  13021. /**
  13022. * 克隆。
  13023. * @return 克隆副本。
  13024. */
  13025. clone():any;
  13026. }
  13027. }
  13028. declare module laya.d3.resource.models {
  13029. /**
  13030. * <code>PrimitiveMesh</code> 类用于创建简单网格。
  13031. */
  13032. class PrimitiveMesh {
  13033. static __init__():void;
  13034. /**
  13035. * 创建Box网格。
  13036. * @param long 半径
  13037. * @param height 垂直层数
  13038. * @param width 水平层数
  13039. * @return
  13040. */
  13041. static createBox(long?:number,height?:number,width?:number):laya.d3.resource.models.Mesh;
  13042. /**
  13043. * 创建一个胶囊体模型
  13044. * @param radius 半径
  13045. * @param height 高度
  13046. * @param stacks 水平层数,一般设为垂直层数的一半
  13047. * @param slices 垂直层数
  13048. */
  13049. static createCapsule(radius?:number,height?:number,stacks?:number,slices?:number):laya.d3.resource.models.Mesh;
  13050. /**
  13051. * 创建一个圆锥体模型
  13052. * @param radius 半径
  13053. * @param height 高度
  13054. * @param slices 分段数
  13055. */
  13056. static createCone(radius?:number,height?:number,slices?:number):laya.d3.resource.models.Mesh;
  13057. /**
  13058. * 创建一个圆柱体模型
  13059. * @param radius 半径
  13060. * @param height 高度
  13061. * @param slices 垂直层数
  13062. */
  13063. static createCylinder(radius?:number,height?:number,slices?:number):laya.d3.resource.models.Mesh;
  13064. /**
  13065. * 创建一个平面模型
  13066. * @param long 长
  13067. * @param width 宽
  13068. */
  13069. static createPlane(long?:number,width?:number,stacks?:number,slices?:number):laya.d3.resource.models.Mesh;
  13070. /**
  13071. * 创建一个四边形模型
  13072. * @param long 长
  13073. * @param width 宽
  13074. */
  13075. static createQuad(long?:number,width?:number):laya.d3.resource.models.Mesh;
  13076. /**
  13077. * 创建一个球体模型
  13078. * @param radius 半径
  13079. * @param stacks 水平层数
  13080. * @param slices 垂直层数
  13081. */
  13082. static createSphere(radius?:number,stacks?:number,slices?:number):laya.d3.resource.models.Mesh;
  13083. }
  13084. }
  13085. declare module laya.d3.resource.models {
  13086. /**
  13087. * <code>SkyBox</code> 类用于创建天空盒。
  13088. */
  13089. class SkyBox extends laya.d3.resource.models.SkyMesh {
  13090. static instance:SkyBox;
  13091. /**
  13092. * 创建一个 <code>SkyBox</code> 实例。
  13093. */
  13094. constructor();
  13095. }
  13096. }
  13097. declare module laya.d3.resource.models {
  13098. /**
  13099. * <code>SkyDome</code> 类用于创建天空盒。
  13100. */
  13101. class SkyDome extends laya.d3.resource.models.SkyMesh {
  13102. static instance:SkyDome;
  13103. /**
  13104. * 获取堆数。
  13105. */
  13106. get stacks():number;
  13107. /**
  13108. * 获取层数。
  13109. */
  13110. get slices():number;
  13111. /**
  13112. * 创建一个 <code>SkyDome</code> 实例。
  13113. * @param stacks 堆数。
  13114. * @param slices 层数。
  13115. */
  13116. constructor(stacks?:number,slices?:number);
  13117. }
  13118. }
  13119. declare module laya.d3.resource.models {
  13120. /**
  13121. * <code>SkyMesh</code> 类用于实现天空网格。
  13122. */
  13123. class SkyMesh {
  13124. /**
  13125. * 创建一个新的 <code>SkyMesh</code> 实例。
  13126. */
  13127. constructor();
  13128. }
  13129. }
  13130. declare module laya.d3.resource.models {
  13131. /**
  13132. * <code>SkyRenderer</code> 类用于实现天空渲染器。
  13133. */
  13134. class SkyRenderer {
  13135. /**
  13136. * 材质。
  13137. */
  13138. get material():laya.d3.core.material.Material;
  13139. set material(value:laya.d3.core.material.Material);
  13140. /**
  13141. * 网格。
  13142. */
  13143. get mesh():laya.d3.resource.models.SkyMesh;
  13144. set mesh(value:laya.d3.resource.models.SkyMesh);
  13145. /**
  13146. * 创建一个新的 <code>SkyRenderer</code> 实例。
  13147. */
  13148. constructor();
  13149. }
  13150. }
  13151. declare module laya.d3.resource.models {
  13152. /**
  13153. * <code>SubMesh</code> 类用于创建子网格数据模板。
  13154. */
  13155. class SubMesh extends laya.d3.core.GeometryElement {
  13156. /**
  13157. * 获取索引数量。
  13158. */
  13159. get indexCount():number;
  13160. /**
  13161. * 创建一个 <code>SubMesh</code> 实例。
  13162. * @param mesh 网格数据模板。
  13163. */
  13164. constructor(mesh:laya.d3.resource.models.Mesh);
  13165. /**
  13166. * 拷贝并获取子网格索引数据的副本。
  13167. */
  13168. getIndices():Uint16Array;
  13169. /**
  13170. * 设置子网格索引。
  13171. * @param indices
  13172. */
  13173. setIndices(indices:Uint16Array):void;
  13174. /**
  13175. * {@inheritDoc GeometryElement.destroy}
  13176. * @override
  13177. */
  13178. destroy():void;
  13179. }
  13180. }
  13181. declare module laya.d3.resource {
  13182. /**
  13183. * <code>RenderTexture</code> 类用于创建渲染目标。
  13184. */
  13185. class RenderTexture extends laya.resource.BaseTexture {
  13186. /**
  13187. * 获取当前激活的Rendertexture。
  13188. */
  13189. static get currentActive():RenderTexture;
  13190. /**
  13191. * 从对象池获取临时渲染目标。
  13192. */
  13193. static createFromPool(width:number,height:number,format?:number,depthStencilFormat?:number):RenderTexture;
  13194. /**
  13195. * 回收渲染目标到对象池,释放后可通过createFromPool复用。
  13196. */
  13197. static recoverToPool(renderTexture:RenderTexture):void;
  13198. /**
  13199. * 深度格式。
  13200. */
  13201. get depthStencilFormat():number;
  13202. /**
  13203. * @override
  13204. */
  13205. get defaulteTexture():laya.resource.BaseTexture;
  13206. /**
  13207. * @param width 宽度。
  13208. * @param height 高度。
  13209. * @param format 纹理格式。
  13210. * @param depthStencilFormat 深度格式。
  13211. 创建一个 <code>RenderTexture</code> 实例。
  13212. */
  13213. constructor(width:number,height:number,format?:laya.resource.RenderTextureFormat,depthStencilFormat?:laya.resource.RenderTextureDepthFormat);
  13214. /**
  13215. * 获得像素数据。
  13216. * @param x X像素坐标。
  13217. * @param y Y像素坐标。
  13218. * @param width 宽度。
  13219. * @param height 高度。
  13220. * @return 像素数据。
  13221. */
  13222. getData(x:number,y:number,width:number,height:number,out:Uint8Array):Uint8Array;
  13223. /**
  13224. * @inheritDoc
  13225. * @override
  13226. */
  13227. protected _disposeResource():void;
  13228. }
  13229. }
  13230. declare module laya.d3.resource {
  13231. enum TextureCubeFace {
  13232. PositiveX = 0,
  13233. NegativeX = 1,
  13234. PositiveY = 2,
  13235. NegativeY = 3,
  13236. PositiveZ = 4,
  13237. NegativeZ = 5
  13238. }
  13239. /**
  13240. * <code>TextureCube</code> 类用于生成立方体纹理。
  13241. */
  13242. class TextureCube extends laya.resource.BaseTexture {
  13243. /**
  13244. * TextureCube资源。
  13245. */
  13246. static TEXTURECUBE:string;
  13247. /**
  13248. * @private
  13249. */
  13250. private static _blackTexture:any;
  13251. /**
  13252. * @private
  13253. */
  13254. private static _grayTexture:any;
  13255. /**
  13256. * 黑色纯色纹理。
  13257. */
  13258. static get blackTexture():TextureCube;
  13259. /**
  13260. * 灰色纯色纹理。
  13261. */
  13262. static get grayTexture():TextureCube;
  13263. /**
  13264. * @inheritDoc
  13265. */
  13266. static _parse(data:any,propertyParams?:any,constructParams?:any[]):TextureCube;
  13267. /**
  13268. * @inheritDoc
  13269. */
  13270. static _parseBin(data:any,propertyParams?:any,constructParams?:any[]):TextureCube;
  13271. /**
  13272. * 加载TextureCube。
  13273. * @param url TextureCube地址。
  13274. * @param complete 完成回调。
  13275. */
  13276. static load(url:string,complete:laya.utils.Handler):void;
  13277. /**
  13278. * @inheritDoc
  13279. * @override
  13280. */
  13281. get defaulteTexture():laya.resource.BaseTexture;
  13282. /**
  13283. * 创建一个 <code>TextureCube</code> 实例。
  13284. * @param format 贴图格式。
  13285. * @param mipmap 是否生成mipmap。
  13286. */
  13287. constructor(size:number,format?:number,mipmap?:boolean);
  13288. /**
  13289. * @private
  13290. */
  13291. private _setPixels:any;
  13292. /**
  13293. * 通过六张图片源填充纹理。
  13294. * @param 图片源数组 。
  13295. */
  13296. setSixSideImageSources(source:any[],premultiplyAlpha?:boolean):void;
  13297. /**
  13298. * 通过六张图片源填充纹理。
  13299. * @param 图片源数组 。
  13300. */
  13301. setSixSidePixels(pixels:Array<Uint8Array>,miplevel?:number):void;
  13302. /**
  13303. * 通过图源设置一个面的颜色。
  13304. * @param face 面。
  13305. * @param imageSource 图源。
  13306. * @param miplevel 层级。
  13307. */
  13308. setImageSource(face:TextureCubeFace,imageSource:HTMLImageElement|HTMLCanvasElement,miplevel?:number):void;
  13309. }
  13310. }
  13311. declare module laya.d3.resource {
  13312. /**
  13313. * ...
  13314. * @author
  13315. */
  13316. class TextureGenerator {
  13317. constructor();
  13318. static lightAttenTexture(x:number,y:number,maxX:number,maxY:number,index:number,data:Uint8Array):void;
  13319. static haloTexture(x:number,y:number,maxX:number,maxY:number,index:number,data:Uint8Array):void;
  13320. static _generateTexture2D(texture:laya.resource.Texture2D,textureWidth:number,textureHeight:number,func:Function):void;
  13321. }
  13322. }
  13323. declare module laya.d3.shader {
  13324. /**
  13325. * <code>DefineDatas</code> 类用于创建宏定义数据集合。
  13326. */
  13327. class DefineDatas implements laya.d3.core.IClone {
  13328. /**
  13329. * 创建一个 <code>DefineDatas</code> 实例。
  13330. */
  13331. constructor();
  13332. /**
  13333. * 添加宏定义值。
  13334. * @param define 宏定义值。
  13335. */
  13336. add(define:laya.d3.shader.ShaderDefine):void;
  13337. /**
  13338. * 移除宏定义。
  13339. * @param define 宏定义。
  13340. */
  13341. remove(define:laya.d3.shader.ShaderDefine):void;
  13342. /**
  13343. * 添加宏定义集合。
  13344. * @param define 宏定义集合。
  13345. */
  13346. addDefineDatas(define:DefineDatas):void;
  13347. /**
  13348. * 移除宏定义集合。
  13349. * @param define 宏定义集合。
  13350. */
  13351. removeDefineDatas(define:DefineDatas):void;
  13352. /**
  13353. * 是否有宏定义。
  13354. * @param define 宏定义。
  13355. */
  13356. has(define:laya.d3.shader.ShaderDefine):boolean;
  13357. /**
  13358. * 清空宏定义。
  13359. */
  13360. clear():void;
  13361. /**
  13362. * 克隆。
  13363. * @param destObject 克隆源。
  13364. */
  13365. cloneTo(destObject:any):void;
  13366. /**
  13367. * 克隆。
  13368. * @return 克隆副本。
  13369. */
  13370. clone():any;
  13371. }
  13372. }
  13373. declare module laya.d3.shader {
  13374. /**
  13375. * <code>Shader3D</code> 类用于创建Shader3D。
  13376. */
  13377. class Shader3D {
  13378. /**
  13379. * 渲染状态_剔除。
  13380. */
  13381. static RENDER_STATE_CULL:number;
  13382. /**
  13383. * 渲染状态_混合。
  13384. */
  13385. static RENDER_STATE_BLEND:number;
  13386. /**
  13387. * 渲染状态_混合源。
  13388. */
  13389. static RENDER_STATE_BLEND_SRC:number;
  13390. /**
  13391. * 渲染状态_混合目标。
  13392. */
  13393. static RENDER_STATE_BLEND_DST:number;
  13394. /**
  13395. * 渲染状态_混合源RGB。
  13396. */
  13397. static RENDER_STATE_BLEND_SRC_RGB:number;
  13398. /**
  13399. * 渲染状态_混合目标RGB。
  13400. */
  13401. static RENDER_STATE_BLEND_DST_RGB:number;
  13402. /**
  13403. * 渲染状态_混合源ALPHA。
  13404. */
  13405. static RENDER_STATE_BLEND_SRC_ALPHA:number;
  13406. /**
  13407. * 渲染状态_混合目标ALPHA。
  13408. */
  13409. static RENDER_STATE_BLEND_DST_ALPHA:number;
  13410. /**
  13411. * 渲染状态_混合常量颜色。
  13412. */
  13413. static RENDER_STATE_BLEND_CONST_COLOR:number;
  13414. /**
  13415. * 渲染状态_混合方程。
  13416. */
  13417. static RENDER_STATE_BLEND_EQUATION:number;
  13418. /**
  13419. * 渲染状态_RGB混合方程。
  13420. */
  13421. static RENDER_STATE_BLEND_EQUATION_RGB:number;
  13422. /**
  13423. * 渲染状态_ALPHA混合方程。
  13424. */
  13425. static RENDER_STATE_BLEND_EQUATION_ALPHA:number;
  13426. /**
  13427. * 渲染状态_深度测试。
  13428. */
  13429. static RENDER_STATE_DEPTH_TEST:number;
  13430. /**
  13431. * 渲染状态_深度写入。
  13432. */
  13433. static RENDER_STATE_DEPTH_WRITE:number;
  13434. /**
  13435. * shader变量提交周期,自定义。
  13436. */
  13437. static PERIOD_CUSTOM:number;
  13438. /**
  13439. * shader变量提交周期,逐材质。
  13440. */
  13441. static PERIOD_MATERIAL:number;
  13442. /**
  13443. * shader变量提交周期,逐精灵和相机,注:因为精灵包含MVP矩阵,为复合属性,所以摄像机发生变化时也应提交。
  13444. */
  13445. static PERIOD_SPRITE:number;
  13446. /**
  13447. * shader变量提交周期,逐相机。
  13448. */
  13449. static PERIOD_CAMERA:number;
  13450. /**
  13451. * shader变量提交周期,逐场景。
  13452. */
  13453. static PERIOD_SCENE:number;
  13454. /**
  13455. * 是否开启调试模式。
  13456. */
  13457. static debugMode:boolean;
  13458. /**
  13459. * 调试着色器变种集合。
  13460. */
  13461. static readonly debugShaderVariantCollection:laya.d3.shader.ShaderVariantCollection;
  13462. /**
  13463. * 注册宏定义。
  13464. * @param name
  13465. */
  13466. static getDefineByName(name:string):laya.d3.shader.ShaderDefine;
  13467. /**
  13468. * 通过Shader属性名称获得唯一ID。
  13469. * @param name Shader属性名称。
  13470. * @return 唯一ID。
  13471. */
  13472. static propertyNameToID(name:string):number;
  13473. /**
  13474. * 添加函数库引用。
  13475. * @param fileName 文件名字。
  13476. * @param txt 文件内容
  13477. */
  13478. static addInclude(fileName:string,txt:string):void;
  13479. /**
  13480. * 通过宏定义名字编译shader。
  13481. * @param shaderName Shader名称。
  13482. * @param subShaderIndex 子着色器索引。
  13483. * @param passIndex 通道索引。
  13484. * @param defineNames 宏定义名字集合。
  13485. */
  13486. static compileShaderByDefineNames(shaderName:string,subShaderIndex:number,passIndex:number,defineNames:string[]):void;
  13487. /**
  13488. * 添加预编译shader文件,主要是处理宏定义
  13489. */
  13490. static add(name:string,attributeMap?:any,uniformMap?:any,enableInstancing?:boolean):Shader3D;
  13491. /**
  13492. * 获取ShaderCompile3D。
  13493. * @param name
  13494. * @return ShaderCompile3D。
  13495. */
  13496. static find(name:string):Shader3D;
  13497. /**
  13498. * 名字。
  13499. */
  13500. get name():string;
  13501. /**
  13502. * 创建一个 <code>Shader3D</code> 实例。
  13503. */
  13504. constructor(name:string,attributeMap:any,uniformMap:any,enableInstancing:boolean);
  13505. /**
  13506. * 添加子着色器。
  13507. * @param 子着色器 。
  13508. */
  13509. addSubShader(subShader:laya.d3.shader.SubShader):void;
  13510. /**
  13511. * 在特定索引获取子着色器。
  13512. * @param index 索引。
  13513. * @return 子着色器。
  13514. */
  13515. getSubShaderAt(index:number):laya.d3.shader.SubShader;
  13516. /**
  13517. * @deprecated 通过宏定义遮罩编译shader,建议使用compileShaderByDefineNames。
  13518. * @param shaderName Shader名称。
  13519. * @param subShaderIndex 子着色器索引。
  13520. * @param passIndex 通道索引。
  13521. * @param defineMask 宏定义遮罩集合。
  13522. */
  13523. static compileShader(shaderName:string,subShaderIndex:number,passIndex:number,...defineMask:any[]):void;
  13524. }
  13525. }
  13526. declare module laya.d3.shader {
  13527. /**
  13528. * 着色器数据类。
  13529. */
  13530. class ShaderData implements laya.d3.core.IClone {
  13531. /**
  13532. * 增加Shader宏定义。
  13533. * @param value 宏定义。
  13534. */
  13535. addDefine(define:laya.d3.shader.ShaderDefine):void;
  13536. /**
  13537. * 移除Shader宏定义。
  13538. * @param value 宏定义。
  13539. */
  13540. removeDefine(define:laya.d3.shader.ShaderDefine):void;
  13541. /**
  13542. * 是否包含Shader宏定义。
  13543. * @param value 宏定义。
  13544. */
  13545. hasDefine(define:laya.d3.shader.ShaderDefine):boolean;
  13546. /**
  13547. * 清空宏定义。
  13548. */
  13549. clearDefine():void;
  13550. /**
  13551. * 获取布尔。
  13552. * @param index shader索引。
  13553. * @return 布尔。
  13554. */
  13555. getBool(index:number):boolean;
  13556. /**
  13557. * 设置布尔。
  13558. * @param index shader索引。
  13559. * @param value 布尔。
  13560. */
  13561. setBool(index:number,value:boolean):void;
  13562. /**
  13563. * 获取整形。
  13564. * @param index shader索引。
  13565. * @return 整形。
  13566. */
  13567. getInt(index:number):number;
  13568. /**
  13569. * 设置整型。
  13570. * @param index shader索引。
  13571. * @param value 整形。
  13572. */
  13573. setInt(index:number,value:number):void;
  13574. /**
  13575. * 获取浮点。
  13576. * @param index shader索引。
  13577. * @return 浮点。
  13578. */
  13579. getNumber(index:number):number;
  13580. /**
  13581. * 设置浮点。
  13582. * @param index shader索引。
  13583. * @param value 浮点。
  13584. */
  13585. setNumber(index:number,value:number):void;
  13586. /**
  13587. * 获取Vector2向量。
  13588. * @param index shader索引。
  13589. * @return Vector2向量。
  13590. */
  13591. getVector2(index:number):laya.d3.math.Vector2;
  13592. /**
  13593. * 设置Vector2向量。
  13594. * @param index shader索引。
  13595. * @param value Vector2向量。
  13596. */
  13597. setVector2(index:number,value:laya.d3.math.Vector2):void;
  13598. /**
  13599. * 获取Vector3向量。
  13600. * @param index shader索引。
  13601. * @return Vector3向量。
  13602. */
  13603. getVector3(index:number):laya.d3.math.Vector3;
  13604. /**
  13605. * 设置Vector3向量。
  13606. * @param index shader索引。
  13607. * @param value Vector3向量。
  13608. */
  13609. setVector3(index:number,value:laya.d3.math.Vector3):void;
  13610. /**
  13611. * 获取颜色。
  13612. * @param index shader索引。
  13613. * @return 颜色向量。
  13614. */
  13615. getVector(index:number):laya.d3.math.Vector4;
  13616. /**
  13617. * 设置向量。
  13618. * @param index shader索引。
  13619. * @param value 向量。
  13620. */
  13621. setVector(index:number,value:laya.d3.math.Vector4):void;
  13622. /**
  13623. * 获取四元数。
  13624. * @param index shader索引。
  13625. * @return 四元。
  13626. */
  13627. getQuaternion(index:number):laya.d3.math.Quaternion;
  13628. /**
  13629. * 设置四元数。
  13630. * @param index shader索引。
  13631. * @param value 四元数。
  13632. */
  13633. setQuaternion(index:number,value:laya.d3.math.Quaternion):void;
  13634. /**
  13635. * 获取矩阵。
  13636. * @param index shader索引。
  13637. * @return 矩阵。
  13638. */
  13639. getMatrix4x4(index:number):laya.d3.math.Matrix4x4;
  13640. /**
  13641. * 设置矩阵。
  13642. * @param index shader索引。
  13643. * @param value 矩阵。
  13644. */
  13645. setMatrix4x4(index:number,value:laya.d3.math.Matrix4x4):void;
  13646. /**
  13647. * 获取Buffer。
  13648. * @param index shader索引。
  13649. * @return
  13650. */
  13651. getBuffer(shaderIndex:number):Float32Array;
  13652. /**
  13653. * 设置Buffer。
  13654. * @param index shader索引。
  13655. * @param value buffer数据。
  13656. */
  13657. setBuffer(index:number,value:Float32Array):void;
  13658. /**
  13659. * 设置纹理。
  13660. * @param index shader索引。
  13661. * @param value 纹理。
  13662. */
  13663. setTexture(index:number,value:laya.resource.BaseTexture):void;
  13664. /**
  13665. * 获取纹理。
  13666. * @param index shader索引。
  13667. * @return 纹理。
  13668. */
  13669. getTexture(index:number):laya.resource.BaseTexture;
  13670. /**
  13671. * 设置Attribute。
  13672. * @param index shader索引。
  13673. * @param value 纹理。
  13674. */
  13675. setAttribute(index:number,value:Int32Array):void;
  13676. /**
  13677. * 获取Attribute。
  13678. * @param index shader索引。
  13679. * @return 纹理。
  13680. */
  13681. getAttribute(index:number):any[];
  13682. /**
  13683. * 获取长度。
  13684. * @return 长度。
  13685. */
  13686. getLength():number;
  13687. /**
  13688. * 设置长度。
  13689. * @param 长度 。
  13690. */
  13691. setLength(value:number):void;
  13692. /**
  13693. * 克隆。
  13694. * @param destObject 克隆源。
  13695. */
  13696. cloneTo(destObject:any):void;
  13697. /**
  13698. * 克隆。
  13699. * @return 克隆副本。
  13700. */
  13701. clone():any;
  13702. /**
  13703. * 克隆。
  13704. * @param destObject 克隆源。
  13705. */
  13706. cloneToForNative(destObject:any):void;
  13707. needRenewArrayBufferForNative(index:number):void;
  13708. getDataForNative():any[];
  13709. setReferenceForNative(value:any):number;
  13710. static setRuntimeValueMode(bReference:boolean):void;
  13711. clearRuntimeCopyArray():void;
  13712. }
  13713. }
  13714. declare module laya.d3.shader {
  13715. class ShaderDefine {
  13716. constructor(index:number,value:number);
  13717. }
  13718. }
  13719. declare module laya.d3.shader {
  13720. /**
  13721. * <code>ShaderPass</code> 类用于实现ShaderPass。
  13722. */
  13723. class ShaderPass extends laya.webgl.utils.ShaderCompile {
  13724. /**
  13725. * 渲染状态。
  13726. */
  13727. get renderState():laya.d3.core.material.RenderState;
  13728. constructor(owner:laya.d3.shader.SubShader,vs:string,ps:string,stateMap:object);
  13729. /**
  13730. * @inheritDoc
  13731. * @override
  13732. */
  13733. protected _compileToTree(parent:laya.webgl.utils.ShaderNode,lines:any[],start:number,includefiles:any[],defs:any):void;
  13734. /**
  13735. * 添加标记。
  13736. * @param key 标记键。
  13737. * @param value 标记值。
  13738. */
  13739. setTag(key:string,value:string):void;
  13740. /**
  13741. * 获取标记值。
  13742. * @return key 标记键。
  13743. */
  13744. getTag(key:string):string;
  13745. }
  13746. }
  13747. declare module laya.d3.shader {
  13748. /**
  13749. * 着色器变种。
  13750. */
  13751. class ShaderVariant {
  13752. /**
  13753. * 着色器。
  13754. */
  13755. get shader():laya.d3.shader.Shader3D;
  13756. /**
  13757. * 子着色器索引。
  13758. */
  13759. get subShaderIndex():number;
  13760. /**
  13761. * 通道索引。
  13762. */
  13763. get passIndex():number;
  13764. /**
  13765. * 宏定义集合。
  13766. */
  13767. get defineNames():Readonly<string[]>;
  13768. /**
  13769. * 创建着色器变种。
  13770. * @param shader 着色器
  13771. * @param subShaderIndex 子着色器索引
  13772. * @param passIndex 通道索引
  13773. * @param defines 宏定义集合
  13774. */
  13775. constructor(shader:laya.d3.shader.Shader3D,subShaderIndex:number,passIndex:number,defines:string[]);
  13776. /**
  13777. * 给着色器变种赋值。
  13778. * @param shader 着色器
  13779. * @param subShaderIndex 子着色器索引
  13780. * @param passIndex 通道索引
  13781. * @param defineNames 宏定义集合
  13782. */
  13783. setValue(shader:laya.d3.shader.Shader3D,subShaderIndex:number,passIndex:number,defineNames:string[]):void;
  13784. /**
  13785. * 是否相等。
  13786. * @param other 其它着色器变种
  13787. * @return 是否相等。
  13788. */
  13789. equal(other:ShaderVariant):boolean;
  13790. /**
  13791. * 克隆。
  13792. * @return 着色器变种。
  13793. */
  13794. clone():ShaderVariant;
  13795. }
  13796. /**
  13797. * 着色器变种集合。
  13798. */
  13799. class ShaderVariantCollection {
  13800. /**
  13801. * 是否已经全部编译。
  13802. */
  13803. get allCompiled():boolean;
  13804. /**
  13805. * 包含的变种数量。
  13806. */
  13807. get variantCount():number;
  13808. /**
  13809. * 添加着色器变种。
  13810. * @param variant 着色器变种。
  13811. * @param 是否添加成功 。
  13812. */
  13813. add(variant:ShaderVariant):boolean;
  13814. /**
  13815. * 移除着色器变种。
  13816. * @param variant 着色器变种。
  13817. * @return 是否移除成功。
  13818. */
  13819. remove(variant:ShaderVariant):boolean;
  13820. /**
  13821. * 是否包含着色器变种。
  13822. * @param variant 着色器变种。
  13823. */
  13824. contatins(variant:ShaderVariant):boolean;
  13825. /**
  13826. * 通过索引获取着色器变种。
  13827. * @param index 索引。
  13828. * @returns 着色器变种。
  13829. */
  13830. getByIndex(index:number):ShaderVariant;
  13831. /**
  13832. * 清空。
  13833. */
  13834. clear():void;
  13835. /**
  13836. * 执行编译。
  13837. */
  13838. compile():void;
  13839. }
  13840. }
  13841. declare module laya.d3.shader {
  13842. /**
  13843. * <code>SubShader</code> 类用于创建SubShader。
  13844. */
  13845. class SubShader {
  13846. /**
  13847. * 创建一个 <code>SubShader</code> 实例。
  13848. * @param attributeMap 顶点属性表。
  13849. * @param uniformMap uniform属性表。
  13850. */
  13851. constructor(attributeMap:any,uniformMap:any);
  13852. /**
  13853. * 添加标记。
  13854. * @param key 标记键。
  13855. * @param value 标记值。
  13856. */
  13857. setFlag(key:string,value:string):void;
  13858. /**
  13859. * 获取标记值。
  13860. * @return key 标记键。
  13861. */
  13862. getFlag(key:string):string;
  13863. /**
  13864. * 添加着色器Pass
  13865. * @param vs
  13866. * @param ps
  13867. * @param stateMap
  13868. * @param pipelineMode 渲染管线模式。
  13869. */
  13870. addShaderPass(vs:string,ps:string,stateMap?:object,pipelineMode?:string):laya.d3.shader.ShaderPass;
  13871. }
  13872. }
  13873. declare module laya.d3.shadowMap {
  13874. enum ShadowLightType {
  13875. DirectionLight = 0,
  13876. SpotLight = 1,
  13877. PointLight = 2
  13878. } class ShadowCasterPass {
  13879. constructor();
  13880. /**
  13881. * @interal
  13882. */
  13883. render(context:laya.d3.core.render.RenderContext3D,scene:laya.d3.core.scene.Scene3D,lightType:ShadowLightType):void;
  13884. }
  13885. }
  13886. declare module laya.d3.shadowMap {
  13887. class ShadowSpotData {
  13888. cameraShaderValue:laya.d3.shader.ShaderData;
  13889. position:laya.d3.math.Vector3;
  13890. offsetX:number;
  13891. offsetY:number;
  13892. resolution:number;
  13893. viewMatrix:laya.d3.math.Matrix4x4;
  13894. projectionMatrix:laya.d3.math.Matrix4x4;
  13895. viewProjectMatrix:laya.d3.math.Matrix4x4;
  13896. cameraCullInfo:laya.d3.graphics.CameraCullInfo;
  13897. }
  13898. }
  13899. declare module laya.d3.text {
  13900. /**
  13901. * <code>TextMesh</code> 类用于创建文本网格。
  13902. */
  13903. class TextMesh {
  13904. private static _indexBuffer:any;
  13905. private _vertices:any;
  13906. private _vertexBuffer:any;
  13907. private _text:any;
  13908. private _fontSize:any;
  13909. private _color:any;
  13910. /**
  13911. * 获取文本。
  13912. * @return 文本。
  13913. */
  13914. get text():string;
  13915. /**
  13916. * 设置文本。
  13917. * @param value 文本。
  13918. */
  13919. set text(value:string);
  13920. /**
  13921. * 获取字体尺寸。
  13922. * @param value 字体尺寸。
  13923. */
  13924. get fontSize():number;
  13925. /**
  13926. * 设置字体储存。
  13927. * @return 字体尺寸。
  13928. */
  13929. set fontSize(value:number);
  13930. /**
  13931. * 获取颜色。
  13932. * @return 颜色。
  13933. */
  13934. get color():laya.d3.math.Color;
  13935. /**
  13936. * 设置颜色。
  13937. * @param 颜色 。
  13938. */
  13939. set color(value:laya.d3.math.Color);
  13940. /**
  13941. * 创建一个新的 <code>TextMesh</code> 实例。
  13942. */
  13943. constructor();
  13944. private _createVertexBuffer:any;
  13945. private _resizeVertexBuffer:any;
  13946. private _addChar:any;
  13947. }
  13948. }
  13949. declare module laya.d3 {
  13950. /**
  13951. * <code>Touch</code> 类用于实现触摸描述。
  13952. */
  13953. class Touch implements laya.resource.ISingletonElement {
  13954. /**
  13955. * [实现IListPool接口]
  13956. */
  13957. private _indexInList:any;
  13958. /**
  13959. * 获取唯一识别ID。
  13960. * @return 唯一识别ID。
  13961. */
  13962. get identifier():number;
  13963. /**
  13964. * 获取触摸点的像素坐标。
  13965. * @return 触摸点的像素坐标 [只读]。
  13966. */
  13967. get position():laya.d3.math.Vector2;
  13968. /**
  13969. * [实现ISingletonElement接口]
  13970. */
  13971. _getIndexInList():number;
  13972. /**
  13973. * [实现ISingletonElement接口]
  13974. */
  13975. _setIndexInList(index:number):void;
  13976. }
  13977. }
  13978. declare module laya.d3.utils {
  13979. /**
  13980. * <code>Physics</code> 类用于简单物理检测。
  13981. */
  13982. class Physics3DUtils {
  13983. static COLLISIONFILTERGROUP_DEFAULTFILTER:number;
  13984. static COLLISIONFILTERGROUP_STATICFILTER:number;
  13985. static COLLISIONFILTERGROUP_KINEMATICFILTER:number;
  13986. static COLLISIONFILTERGROUP_DEBRISFILTER:number;
  13987. static COLLISIONFILTERGROUP_SENSORTRIGGER:number;
  13988. static COLLISIONFILTERGROUP_CHARACTERFILTER:number;
  13989. static COLLISIONFILTERGROUP_CUSTOMFILTER1:number;
  13990. static COLLISIONFILTERGROUP_CUSTOMFILTER2:number;
  13991. static COLLISIONFILTERGROUP_CUSTOMFILTER3:number;
  13992. static COLLISIONFILTERGROUP_CUSTOMFILTER4:number;
  13993. static COLLISIONFILTERGROUP_CUSTOMFILTER5:number;
  13994. static COLLISIONFILTERGROUP_CUSTOMFILTER6:number;
  13995. static COLLISIONFILTERGROUP_CUSTOMFILTER7:number;
  13996. static COLLISIONFILTERGROUP_CUSTOMFILTER8:number;
  13997. static COLLISIONFILTERGROUP_CUSTOMFILTER9:number;
  13998. static COLLISIONFILTERGROUP_CUSTOMFILTER10:number;
  13999. static COLLISIONFILTERGROUP_ALLFILTER:number;
  14000. /**
  14001. * 重力值。
  14002. */
  14003. static gravity:laya.d3.math.Vector3;
  14004. /**
  14005. * 创建一个 <code>Physics</code> 实例。
  14006. */
  14007. constructor();
  14008. /**
  14009. * 是否忽略两个碰撞器的碰撞检测。
  14010. * @param collider1 碰撞器一。
  14011. * @param collider2 碰撞器二。
  14012. * @param ignore 是否忽略。
  14013. */
  14014. static setColliderCollision(collider1:laya.d3.physics.PhysicsComponent,collider2:laya.d3.physics.PhysicsComponent,collsion:boolean):void;
  14015. /**
  14016. * 获取是否忽略两个碰撞器的碰撞检测。
  14017. * @param collider1 碰撞器一。
  14018. * @param collider2 碰撞器二。
  14019. * @return 是否忽略。
  14020. */
  14021. static getIColliderCollision(collider1:laya.d3.physics.PhysicsComponent,collider2:laya.d3.physics.PhysicsComponent):boolean;
  14022. }
  14023. }
  14024. declare module laya.d3.utils {
  14025. /**
  14026. * <code>Picker</code> 类用于创建拾取。
  14027. */
  14028. class Picker {
  14029. private static _tempVector30:any;
  14030. private static _tempVector31:any;
  14031. private static _tempVector32:any;
  14032. private static _tempVector33:any;
  14033. private static _tempVector34:any;
  14034. /**
  14035. * 创建一个 <code>Picker</code> 实例。
  14036. */
  14037. constructor();
  14038. /**
  14039. * 计算鼠标生成的射线。
  14040. * @param point 鼠标位置。
  14041. * @param viewPort 视口。
  14042. * @param projectionMatrix 透视投影矩阵。
  14043. * @param viewMatrix 视图矩阵。
  14044. * @param world 世界偏移矩阵。
  14045. * @return out 输出射线。
  14046. */
  14047. 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;
  14048. /**
  14049. * 计算射线和三角形碰撞并返回碰撞距离。
  14050. * @param ray 射线。
  14051. * @param vertex1 顶点1。
  14052. * @param vertex2 顶点2。
  14053. * @param vertex3 顶点3。
  14054. * @return 射线距离三角形的距离,返回Number.NaN则不相交。
  14055. */
  14056. static rayIntersectsTriangle(ray:laya.d3.math.Ray,vertex1:laya.d3.math.Vector3,vertex2:laya.d3.math.Vector3,vertex3:laya.d3.math.Vector3):number;
  14057. }
  14058. }
  14059. declare module laya.d3.utils {
  14060. /**
  14061. * <code>Utils3D</code> 类用于创建3D工具。
  14062. */
  14063. class Scene3DUtils {
  14064. private static _createSprite3DInstance:any;
  14065. private static _createComponentInstance:any;
  14066. }
  14067. }
  14068. declare module laya.d3.utils {
  14069. class Size {
  14070. static get fullScreen():Size;
  14071. private _width:any;
  14072. private _height:any;
  14073. get width():number;
  14074. get height():number;
  14075. constructor(width:number,height:number);
  14076. }
  14077. }
  14078. declare module laya.d3.utils {
  14079. /**
  14080. * <code>Utils3D</code> 类用于创建3D工具。
  14081. */
  14082. class Utils3D {
  14083. private static _tempVector3_0:any;
  14084. private static _tempVector3_1:any;
  14085. private static _tempArray16_0:any;
  14086. private static _tempArray16_1:any;
  14087. private static _tempArray16_2:any;
  14088. private static _tempArray16_3:any;
  14089. /**
  14090. * 通过数平移、旋转、缩放值计算到结果矩阵数组,骨骼动画专用。
  14091. * @param tx left矩阵数组。
  14092. * @param ty left矩阵数组的偏移。
  14093. * @param tz right矩阵数组。
  14094. * @param qx right矩阵数组的偏移。
  14095. * @param qy 输出矩阵数组。
  14096. * @param qz 输出矩阵数组的偏移。
  14097. * @param qw 输出矩阵数组的偏移。
  14098. * @param sx 输出矩阵数组的偏移。
  14099. * @param sy 输出矩阵数组的偏移。
  14100. * @param sz 输出矩阵数组的偏移。
  14101. * @param outArray 结果矩阵数组。
  14102. * @param outOffset 结果矩阵数组的偏移。
  14103. */
  14104. private static _rotationTransformScaleSkinAnimation:any;
  14105. /**
  14106. * 根据四元数旋转三维向量。
  14107. * @param source 源三维向量。
  14108. * @param rotation 旋转四元数。
  14109. * @param out 输出三维向量。
  14110. */
  14111. static transformVector3ArrayByQuat(sourceArray:Float32Array,sourceOffset:number,rotation:laya.d3.math.Quaternion,outArray:Float32Array,outOffset:number):void;
  14112. /**
  14113. * 通过数组数据计算矩阵乘法。
  14114. * @param leftArray left矩阵数组。
  14115. * @param leftOffset left矩阵数组的偏移。
  14116. * @param rightArray right矩阵数组。
  14117. * @param rightOffset right矩阵数组的偏移。
  14118. * @param outArray 输出矩阵数组。
  14119. * @param outOffset 输出矩阵数组的偏移。
  14120. */
  14121. static mulMatrixByArray(leftArray:Float32Array,leftOffset:number,rightArray:Float32Array,rightOffset:number,outArray:Float32Array,outOffset:number):void;
  14122. /**
  14123. * 通过数组数据计算矩阵乘法,rightArray和outArray不能为同一数组引用。
  14124. * @param leftArray left矩阵数组。
  14125. * @param leftOffset left矩阵数组的偏移。
  14126. * @param rightArray right矩阵数组。
  14127. * @param rightOffset right矩阵数组的偏移。
  14128. * @param outArray 结果矩阵数组。
  14129. * @param outOffset 结果矩阵数组的偏移。
  14130. */
  14131. static mulMatrixByArrayFast(leftArray:Float32Array,leftOffset:number,rightArray:Float32Array,rightOffset:number,outArray:Float32Array,outOffset:number):void;
  14132. /**
  14133. * 通过数组数据计算矩阵乘法,rightArray和outArray不能为同一数组引用。
  14134. * @param leftArray left矩阵数组。
  14135. * @param leftOffset left矩阵数组的偏移。
  14136. * @param rightMatrix right矩阵。
  14137. * @param outArray 结果矩阵数组。
  14138. * @param outOffset 结果矩阵数组的偏移。
  14139. */
  14140. static mulMatrixByArrayAndMatrixFast(leftArray:Float32Array,leftOffset:number,rightMatrix:laya.d3.math.Matrix4x4,outArray:Float32Array,outOffset:number):void;
  14141. /**
  14142. * 通过数平移、旋转、缩放值计算到结果矩阵数组。
  14143. * @param tX left矩阵数组。
  14144. * @param tY left矩阵数组的偏移。
  14145. * @param tZ right矩阵数组。
  14146. * @param qX right矩阵数组的偏移。
  14147. * @param qY 输出矩阵数组。
  14148. * @param qZ 输出矩阵数组的偏移。
  14149. * @param qW 输出矩阵数组的偏移。
  14150. * @param sX 输出矩阵数组的偏移。
  14151. * @param sY 输出矩阵数组的偏移。
  14152. * @param sZ 输出矩阵数组的偏移。
  14153. * @param outArray 结果矩阵数组。
  14154. * @param outOffset 结果矩阵数组的偏移。
  14155. */
  14156. 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;
  14157. /**
  14158. * 通过矩阵转换一个三维向量数组到另外一个归一化的三维向量数组。
  14159. * @param source 源三维向量所在数组。
  14160. * @param sourceOffset 源三维向量数组偏移。
  14161. * @param transform 变换矩阵。
  14162. * @param result 输出三维向量所在数组。
  14163. * @param resultOffset 输出三维向量数组偏移。
  14164. */
  14165. static transformVector3ArrayToVector3ArrayCoordinate(source:Float32Array,sourceOffset:number,transform:laya.d3.math.Matrix4x4,result:Float32Array,resultOffset:number):void;
  14166. static transformVector3ArrayToVector3ArrayNormal(source:Float32Array,sourceOffset:number,transform:laya.d3.math.Matrix4x4,result:Float32Array,resultOffset:number):void;
  14167. /**
  14168. * 获取URL版本字符。
  14169. * @param url
  14170. * @return
  14171. */
  14172. static getURLVerion(url:string):string;
  14173. private static arcTanAngle:any;
  14174. private static angleTo:any;
  14175. static transformQuat(source:laya.d3.math.Vector3,rotation:Float32Array,out:laya.d3.math.Vector3):void;
  14176. static quaternionWeight(f:laya.d3.math.Quaternion,weight:number,e:laya.d3.math.Quaternion):void;
  14177. static matrix4x4MultiplyFFF(a:Float32Array,b:Float32Array,e:Float32Array):void;
  14178. static matrix4x4MultiplyFFFForNative(a:Float32Array,b:Float32Array,e:Float32Array):void;
  14179. static matrix4x4MultiplyMFM(left:laya.d3.math.Matrix4x4,right:Float32Array,out:laya.d3.math.Matrix4x4):void;
  14180. }
  14181. }
  14182. declare module laya.device.geolocation {
  14183. /**
  14184. * 使用前可用<code>supported</code>查看浏览器支持。
  14185. */
  14186. class Geolocation {
  14187. private static navigator:any;
  14188. private static position:any;
  14189. /**
  14190. * 由于权限被拒绝造成的地理信息获取失败。
  14191. */
  14192. static PERMISSION_DENIED:number;
  14193. /**
  14194. * 由于内部位置源返回了内部错误导致地理信息获取失败。
  14195. */
  14196. static POSITION_UNAVAILABLE:number;
  14197. /**
  14198. * 信息获取所用时长超出<code>timeout</code>所设置时长。
  14199. */
  14200. static TIMEOUT:number;
  14201. /**
  14202. * 是否支持。
  14203. */
  14204. static supported:boolean;
  14205. /**
  14206. * 如果<code>enableHighAccuracy</code>为true,并且设备能够提供一个更精确的位置,则会获取最佳可能的结果。
  14207. * 请注意,这可能会导致较慢的响应时间或增加电量消耗(如使用GPS)。
  14208. * 另一方面,如果设置为false,将会得到更快速的响应和更少的电量消耗。
  14209. * 默认值为false。
  14210. */
  14211. static enableHighAccuracy:boolean;
  14212. /**
  14213. * 表示允许设备获取位置的最长时间。默认为Infinity,意味着getCurentPosition()直到位置可用时才会返回信息。
  14214. */
  14215. static timeout:number;
  14216. /**
  14217. * 表示可被返回的缓存位置信息的最大时限。
  14218. * 如果设置为0,意味着设备不使用缓存位置,并且尝试获取实时位置。
  14219. * 如果设置为Infinity,设备必须返回缓存位置而无论其时限。
  14220. */
  14221. static maximumAge:number;
  14222. constructor();
  14223. /**
  14224. * 获取设备当前位置。
  14225. * @param onSuccess 带有唯一<code>Position</code>参数的回调处理器。
  14226. * @param onError 可选的。带有错误信息的回调处理器。错误代码为Geolocation.PERMISSION_DENIED、Geolocation.POSITION_UNAVAILABLE和Geolocation.TIMEOUT之一。
  14227. */
  14228. static getCurrentPosition(onSuccess:laya.utils.Handler,onError?:laya.utils.Handler):void;
  14229. /**
  14230. * 监视设备当前位置。回调处理器在设备位置改变时被执行。
  14231. * @param onSuccess 带有唯一<code>Position</code>参数的回调处理器。
  14232. * @param onError 可选的。带有错误信息的回调处理器。错误代码为Geolocation.PERMISSION_DENIED、Geolocation.POSITION_UNAVAILABLE和Geolocation.TIMEOUT之一。
  14233. */
  14234. static watchPosition(onSuccess:laya.utils.Handler,onError:laya.utils.Handler):number;
  14235. /**
  14236. * 移除<code>watchPosition</code>安装的指定处理器。
  14237. * @param id
  14238. */
  14239. static clearWatch(id:number):void;
  14240. }
  14241. }
  14242. declare module laya.device.geolocation {
  14243. class GeolocationInfo {
  14244. private pos:any;
  14245. private coords:any;
  14246. setPosition(pos:any):void;
  14247. get latitude():number;
  14248. get longitude():number;
  14249. get altitude():number;
  14250. get accuracy():number;
  14251. get altitudeAccuracy():number;
  14252. get heading():number;
  14253. get speed():number;
  14254. get timestamp():number;
  14255. }
  14256. }
  14257. declare module laya.device.media {
  14258. /**
  14259. * Media用于捕捉摄像头和麦克风。可以捕捉任意之一,或者同时捕捉两者。<code>getCamera</code>前可以使用<code>supported()</code>检查当前浏览器是否支持。
  14260. * <b>NOTE:</b>
  14261. * <p>目前Media在移动平台只支持Android,不支持IOS。只可在FireFox完整地使用,Chrome测试时无法捕捉视频。</p>
  14262. */
  14263. class Media {
  14264. constructor();
  14265. /**
  14266. * 检查浏览器兼容性。
  14267. */
  14268. static supported():boolean;
  14269. /**
  14270. * 获取用户媒体。
  14271. * @param options 简单的可选项可以使<code>{ audio:true, video:true }</code>表示同时捕捉两者。详情见<i>https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia</i>。
  14272. * @param onSuccess 获取成功的处理器,唯一参数返回媒体的Blob地址,可以将其传给Video。
  14273. * @param onError 获取失败的处理器,唯一参数是Error。
  14274. */
  14275. static getMedia(options:any,onSuccess:laya.utils.Handler,onError:laya.utils.Handler):void;
  14276. }
  14277. }
  14278. declare module laya.device.media {
  14279. const enum VIDEOTYPE {
  14280. MP4 = 1,
  14281. OGG = 2,
  14282. CAMERA = 4,
  14283. WEBM = 8
  14284. }
  14285. /**
  14286. * <code>Video</code>将视频显示到Canvas上。<code>Video</code>可能不会在所有浏览器有效。
  14287. * <p>关于Video支持的所有事件参见:<i>http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp</i>。</p>
  14288. * <p>
  14289. * <b>注意:</b><br/>
  14290. * 在PC端可以在任何时机调用<code>play()</code>因此,可以在程序开始运行时就使Video开始播放。但是在移动端,只有在用户第一次触碰屏幕后才可以调用play(),所以移动端不可能在程序开始运行时就自动开始播放Video。
  14291. * </p>
  14292. *
  14293. * <p>MDN Video链接: <i>https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video</i></p>
  14294. */
  14295. class Video extends laya.display.Sprite {
  14296. static MP4:number;
  14297. static OGG:number;
  14298. static CAMERA:number;
  14299. static WEBM:number;
  14300. /**
  14301. * 表示最有可能支持。
  14302. */
  14303. static SUPPORT_PROBABLY:string;
  14304. /**
  14305. * 表示可能支持。
  14306. */
  14307. static SUPPORT_MAYBY:string;
  14308. /**
  14309. * 表示不支持。
  14310. */
  14311. static SUPPORT_NO:string;
  14312. private htmlVideo:any;
  14313. videoElement:any;
  14314. private internalTexture:any;
  14315. private _clickhandle:any;
  14316. constructor(width?:number,height?:number);
  14317. private static onAbort:any;
  14318. private static onCanplay:any;
  14319. private static onCanplaythrough:any;
  14320. private static onDurationchange:any;
  14321. private static onEmptied:any;
  14322. private static onError:any;
  14323. private static onLoadeddata:any;
  14324. private static onLoadedmetadata:any;
  14325. private static onLoadstart:any;
  14326. private static onPause:any;
  14327. private static onPlay:any;
  14328. private static onPlaying:any;
  14329. private static onProgress:any;
  14330. private static onRatechange:any;
  14331. private static onSeeked:any;
  14332. private static onSeeking:any;
  14333. private static onStalled:any;
  14334. private static onSuspend:any;
  14335. private static onTimeupdate:any;
  14336. private static onVolumechange:any;
  14337. private static onWaiting:any;
  14338. private onPlayComplete:any;
  14339. /**
  14340. * 设置播放源。
  14341. * @param url 播放源路径。
  14342. */
  14343. load(url:string):void;
  14344. /**
  14345. * 开始播放视频。
  14346. */
  14347. play():void;
  14348. /**
  14349. * 暂停视频播放。
  14350. */
  14351. pause():void;
  14352. /**
  14353. * 重新加载视频。
  14354. */
  14355. reload():void;
  14356. /**
  14357. * 检测是否支持播放指定格式视频。
  14358. * @param type 参数为Video.MP4 / Video.OGG / Video.WEBM之一。
  14359. * @return 表示支持的级别。可能的值:
  14360. <ul>
  14361. <li>"probably",Video.SUPPORT_PROBABLY - 浏览器最可能支持该音频/视频类型</li>
  14362. <li>"maybe",Video.SUPPORT_MAYBY - 浏览器也许支持该音频/视频类型</li>
  14363. <li>"",Video.SUPPORT_NO- (空字符串)浏览器不支持该音频/视频类型</li>
  14364. </ul>
  14365. */
  14366. canPlayType(type:number):string;
  14367. private renderCanvas:any;
  14368. private onDocumentClick:any;
  14369. /**
  14370. * buffered 属性返回 TimeRanges(JS)对象。TimeRanges 对象表示用户的音视频缓冲范围。缓冲范围指的是已缓冲音视频的时间范围。如果用户在音视频中跳跃播放,会得到多个缓冲范围。
  14371. * <p>buffered.length返回缓冲范围个数。如获取第一个缓冲范围则是buffered.start(0)和buffered.end(0)。以秒计。</p>
  14372. * @return TimeRanges(JS)对象
  14373. */
  14374. get buffered():any;
  14375. /**
  14376. * 获取当前播放源路径。
  14377. */
  14378. get currentSrc():string;
  14379. /**
  14380. * 设置和获取当前播放头位置。
  14381. */
  14382. get currentTime():number;
  14383. set currentTime(value:number);
  14384. /**
  14385. * 设置和获取当前音量。
  14386. */
  14387. set volume(value:number);
  14388. get volume():number;
  14389. /**
  14390. * 表示视频元素的就绪状态:
  14391. * <ul>
  14392. * <li>0 = HAVE_NOTHING - 没有关于音频/视频是否就绪的信息</li>
  14393. * <li>1 = HAVE_METADATA - 关于音频/视频就绪的元数据</li>
  14394. * <li>2 = HAVE_CURRENT_DATA - 关于当前播放位置的数据是可用的,但没有足够的数据来播放下一帧/毫秒</li>
  14395. * <li>3 = HAVE_FUTURE_DATA - 当前及至少下一帧的数据是可用的</li>
  14396. * <li>4 = HAVE_ENOUGH_DATA - 可用数据足以开始播放</li>
  14397. * </ul>
  14398. */
  14399. get readyState():any;
  14400. /**
  14401. * 获取视频源尺寸。ready事件触发后可用。
  14402. */
  14403. get videoWidth():number;
  14404. get videoHeight():number;
  14405. /**
  14406. * 获取视频长度(秒)。ready事件触发后可用。
  14407. */
  14408. get duration():number;
  14409. /**
  14410. * 返回音频/视频的播放是否已结束
  14411. */
  14412. get ended():boolean;
  14413. /**
  14414. * 返回表示音频/视频错误状态的 MediaError(JS)对象。
  14415. */
  14416. get error():boolean;
  14417. /**
  14418. * 设置或返回音频/视频是否应在结束时重新播放。
  14419. */
  14420. get loop():boolean;
  14421. set loop(value:boolean);
  14422. /**
  14423. * 设置视频的x坐标
  14424. * @override
  14425. */
  14426. set x(val:number);
  14427. /**
  14428. * @override
  14429. */
  14430. get x():number;
  14431. /**
  14432. * 设置视频的y坐标
  14433. * @override
  14434. */
  14435. set y(val:number);
  14436. /**
  14437. * @override
  14438. */
  14439. get y():number;
  14440. /**
  14441. * playbackRate 属性设置或返回音频/视频的当前播放速度。如:
  14442. * <ul>
  14443. * <li>1.0 正常速度</li>
  14444. * <li>0.5 半速(更慢)</li>
  14445. * <li>2.0 倍速(更快)</li>
  14446. * <li>-1.0 向后,正常速度</li>
  14447. * <li>-0.5 向后,半速</li>
  14448. * </ul>
  14449. * <p>只有 Google Chrome 和 Safari 支持 playbackRate 属性。</p>
  14450. */
  14451. get playbackRate():number;
  14452. set playbackRate(value:number);
  14453. /**
  14454. * 获取和设置静音状态。
  14455. */
  14456. get muted():boolean;
  14457. set muted(value:boolean);
  14458. /**
  14459. * 返回视频是否暂停
  14460. */
  14461. get paused():boolean;
  14462. /**
  14463. * preload 属性设置或返回是否在页面加载后立即加载视频。可赋值如下:
  14464. * <ul>
  14465. * <li>auto 指示一旦页面加载,则开始加载视频。</li>
  14466. * <li>metadata 指示当页面加载后仅加载音频/视频的元数据。</li>
  14467. * <li>none 指示页面加载后不应加载音频/视频。</li>
  14468. * </ul>
  14469. */
  14470. get preload():string;
  14471. set preload(value:string);
  14472. /**
  14473. * 参见 <i>http://www.w3school.com.cn/tags/av_prop_seekable.asp</i>。
  14474. */
  14475. get seekable():any;
  14476. /**
  14477. * seeking 属性返回用户目前是否在音频/视频中寻址。
  14478. * 寻址中(Seeking)指的是用户在音频/视频中移动/跳跃到新的位置。
  14479. */
  14480. get seeking():boolean;
  14481. /**
  14482. * @param width
  14483. * @param height
  14484. * @override
  14485. */
  14486. size(width:number,height:number):laya.display.Sprite;
  14487. /**
  14488. * @override
  14489. */
  14490. set width(value:number);
  14491. /**
  14492. * @override
  14493. */
  14494. get width():number;
  14495. /**
  14496. * @override
  14497. */
  14498. set height(value:number);
  14499. /**
  14500. * @override
  14501. */
  14502. get height():number;
  14503. /**
  14504. * 销毁内部事件绑定。
  14505. * @override
  14506. */
  14507. destroy(detroyChildren?:boolean):void;
  14508. private syncVideoPosition:any;
  14509. }
  14510. }
  14511. declare module laya.device.motion {
  14512. /**
  14513. * 加速度x/y/z的单位均为m/s²。
  14514. * 在硬件(陀螺仪)不支持的情况下,alpha、beta和gamma值为null。
  14515. * @author Survivor
  14516. */
  14517. class AccelerationInfo {
  14518. /**
  14519. * x轴上的加速度值。
  14520. */
  14521. x:number;
  14522. /**
  14523. * y轴上的加速度值。
  14524. */
  14525. y:number;
  14526. /**
  14527. * z轴上的加速度值。
  14528. */
  14529. z:number;
  14530. constructor();
  14531. }
  14532. }
  14533. declare module laya.device.motion {
  14534. /**
  14535. * Accelerator.instance获取唯一的Accelerator引用,请勿调用构造函数。
  14536. *
  14537. * <p>
  14538. * listen()的回调处理器接受四个参数:
  14539. * <ol>
  14540. * <li><b>acceleration</b>: 表示用户给予设备的加速度。</li>
  14541. * <li><b>accelerationIncludingGravity</b>: 设备受到的总加速度(包含重力)。</li>
  14542. * <li><b>rotationRate</b>: 设备的自转速率。</li>
  14543. * <li><b>interval</b>: 加速度获取的时间间隔(毫秒)。</li>
  14544. * </ol>
  14545. * </p>
  14546. * <p>
  14547. * <b>NOTE</b><br/>
  14548. * 如,rotationRate的alpha在apple和moz文档中都是z轴旋转角度,但是实测是x轴旋转角度。为了使各属性表示的值与文档所述相同,实际值与其他属性进行了对调。
  14549. * 其中:
  14550. * <ul>
  14551. * <li>alpha使用gamma值。</li>
  14552. * <li>beta使用alpha值。</li>
  14553. * <li>gamma使用beta。</li>
  14554. * </ul>
  14555. * 目前孰是孰非尚未可知,以此为注。
  14556. * </p>
  14557. */
  14558. class Accelerator extends laya.events.EventDispatcher {
  14559. /**
  14560. * Accelerator的唯一引用。
  14561. */
  14562. private static _instance:any;
  14563. static get instance():Accelerator;
  14564. private static acceleration:any;
  14565. private static accelerationIncludingGravity:any;
  14566. private static rotationRate:any;
  14567. constructor(singleton:number);
  14568. /**
  14569. * 侦听加速器运动。
  14570. * @param observer 回调函数接受4个参数,见类说明。
  14571. * @override
  14572. */
  14573. on(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  14574. /**
  14575. * 取消侦听加速器。
  14576. * @param handle 侦听加速器所用处理器。
  14577. * @override
  14578. */
  14579. off(type:string,caller:any,listener:Function,onceOnly?:boolean):laya.events.EventDispatcher;
  14580. private onDeviceOrientationChange:any;
  14581. private static transformedAcceleration:any;
  14582. /**
  14583. * 把加速度值转换为视觉上正确的加速度值。依赖于Browser.window.orientation,可能在部分低端机无效。
  14584. * @param acceleration
  14585. * @return
  14586. */
  14587. static getTransformedAcceleration(acceleration:laya.device.motion.AccelerationInfo):laya.device.motion.AccelerationInfo;
  14588. }
  14589. }
  14590. declare module laya.device.motion {
  14591. /**
  14592. * 使用Gyroscope.instance获取唯一的Gyroscope引用,请勿调用构造函数。
  14593. *
  14594. * <p>
  14595. * listen()的回调处理器接受两个参数:
  14596. * <code>function onOrientationChange(absolute:Boolean, info:RotationInfo):void</code>
  14597. * <ol>
  14598. * <li><b>absolute</b>: 指示设备是否可以提供绝对方位数据(指向地球坐标系),或者设备决定的任意坐标系。关于坐标系参见<i>https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Orientation_and_motion_data_explained</i>。</li>
  14599. * <li><b>info</b>: <code>RotationInfo</code>类型参数,保存设备的旋转值。</li>
  14600. * </ol>
  14601. * </p>
  14602. *
  14603. * <p>
  14604. * 浏览器兼容性参见:<i>http://caniuse.com/#search=deviceorientation</i>
  14605. * </p>
  14606. */
  14607. class Gyroscope extends laya.events.EventDispatcher {
  14608. private static info:any;
  14609. /**
  14610. * Gyroscope的唯一引用。
  14611. */
  14612. private static _instance:any;
  14613. static get instance():Gyroscope;
  14614. constructor(singleton:number);
  14615. /**
  14616. * 监视陀螺仪运动。
  14617. * @param observer 回调函数接受一个Boolean类型的<code>absolute</code>和<code>GyroscopeInfo</code>类型参数。
  14618. * @override
  14619. */
  14620. on(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  14621. /**
  14622. * 取消指定处理器对陀螺仪的监视。
  14623. * @param observer
  14624. * @override
  14625. */
  14626. off(type:string,caller:any,listener:Function,onceOnly?:boolean):laya.events.EventDispatcher;
  14627. private onDeviceOrientationChange:any;
  14628. }
  14629. }
  14630. declare module laya.device.motion {
  14631. /**
  14632. * 保存旋转信息的类。请勿修改本类的属性。
  14633. * @author Survivor
  14634. */
  14635. class RotationInfo {
  14636. /**
  14637. * <p>
  14638. * 指示设备是否可以提供绝对方位数据(指向地球坐标系),或者设备决定的任意坐标系。
  14639. * 关于坐标系参见<i>https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Orientation_and_motion_data_explained</i>。
  14640. * </p>
  14641. * 需要注意的是,IOS环境下,该值始终为false。即使如此,你依旧可以从<code>alpha</code>中取得正确的值。
  14642. */
  14643. absolute:boolean;
  14644. /**
  14645. * Z轴旋转角度,其值范围从0至360。
  14646. * 若<code>absolute</code>为true或者在IOS中,alpha值是从北方到当前设备方向的角度值。
  14647. */
  14648. alpha:number;
  14649. /**
  14650. * X轴旋转角度, 其值范围从-180至180。代表设备从前至后的运动。
  14651. */
  14652. beta:number;
  14653. /**
  14654. * Y轴旋转角度,其值范围从-90至90。代表设备从左至右的运动。
  14655. */
  14656. gamma:number;
  14657. /**
  14658. * 罗盘数据的精确度(角度)。仅IOS可用。
  14659. */
  14660. compassAccuracy:number;
  14661. constructor();
  14662. }
  14663. }
  14664. declare module laya.device {
  14665. /**
  14666. * Shake只能在支持此操作的设备上有效。
  14667. */
  14668. class Shake extends laya.events.EventDispatcher {
  14669. private throushold:any;
  14670. private shakeInterval:any;
  14671. private callback:any;
  14672. private lastX:any;
  14673. private lastY:any;
  14674. private lastZ:any;
  14675. private lastMillSecond:any;
  14676. constructor();
  14677. private static _instance:any;
  14678. static get instance():Shake;
  14679. /**
  14680. * 开始响应设备摇晃。
  14681. * @param throushold 响应的瞬时速度阈值,轻度摇晃的值约在5~10间。
  14682. * @param timeout 设备摇晃的响应间隔时间。
  14683. * @param callback 在设备摇晃触发时调用的处理器。
  14684. */
  14685. start(throushold:number,interval:number):void;
  14686. /**
  14687. * 停止响应设备摇晃。
  14688. */
  14689. stop():void;
  14690. private onShake:any;
  14691. private isShaked:any;
  14692. }
  14693. }
  14694. declare module laya.display {
  14695. /**
  14696. * 动画播放完毕后调度。
  14697. * @eventType Event.COMPLETE
  14698. */
  14699. /**
  14700. * 播放到某标签后调度。
  14701. * @eventType Event.LABEL
  14702. */
  14703. /**
  14704. * <p> <code>Animation</code> 是Graphics动画类。实现了基于Graphics的动画创建、播放、控制接口。</p>
  14705. * <p>本类使用了动画模版缓存池,它以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。</p>
  14706. * <p>动画模版缓存池,以key-value键值对存储,key可以自定义,也可以从指定的配置文件中读取,value为对应的动画模版,是一个Graphics对象数组,每个Graphics对象对应一个帧图像,动画的播放实质就是定时切换Graphics对象。</p>
  14707. * <p>使用set source、loadImages(...)、loadAtlas(...)、loadAnimation(...)方法可以创建动画模版。使用play(...)可以播放指定动画。</p>
  14708. * @example <caption>以下示例代码,创建了一个 <code>Text</code> 实例。</caption>
  14709. package
  14710. {
  14711. import laya.display.Animation;
  14712. import laya.net.Loader;
  14713. import laya.utils.Handler;
  14714. public class Animation_Example
  14715. {
  14716. public function Animation_Example()
  14717. {
  14718. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  14719. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  14720. init();//初始化
  14721. }
  14722. private function init():void
  14723. {
  14724. var animation:Animation = new Animation();//创建一个 Animation 类的实例对象 animation 。
  14725. animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放
  14726. animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  14727. animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  14728. animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。
  14729. animation.play();//播放动画。
  14730. Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。
  14731. }
  14732. }
  14733. }
  14734. * @example Animation_Example();
  14735. function Animation_Example(){
  14736. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  14737. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  14738. init();//初始化
  14739. }
  14740. function init()
  14741. {
  14742. var animation = new Laya.Animation();//创建一个 Animation 类的实例对象 animation 。
  14743. animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放
  14744. animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  14745. animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  14746. animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。
  14747. animation.play();//播放动画。
  14748. Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。
  14749. }
  14750. * @example import Animation = laya.display.Animation;
  14751. class Animation_Example {
  14752. constructor() {
  14753. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  14754. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  14755. this.init();
  14756. }
  14757. private init(): void {
  14758. var animation:Animation = new Laya.Animation();//创建一个 Animation 类的实例对象 animation 。
  14759. animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放
  14760. animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  14761. animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  14762. animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。
  14763. animation.play();//播放动画。
  14764. Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。
  14765. }
  14766. }
  14767. new Animation_Example();
  14768. */
  14769. class Animation extends laya.display.AnimationBase {
  14770. /**
  14771. * <p>动画模版缓存池,以key-value键值对存储,key可以自定义,也可以从指定的配置文件中读取,value为对应的动画模版,是一个Graphics对象数组,每个Graphics对象对应一个帧图像,动画的播放实质就是定时切换Graphics对象。</p>
  14772. * <p>使用loadImages(...)、loadAtlas(...)、loadAnimation(...)、set source方法可以创建动画模版。使用play(...)可以播放指定动画。</p>
  14773. */
  14774. static framesMap:any;
  14775. /**
  14776. * @private
  14777. */
  14778. protected _frames:any[];
  14779. /**
  14780. * @private
  14781. */
  14782. protected _url:string;
  14783. /**
  14784. * 创建一个新的 <code>Animation</code> 实例。
  14785. */
  14786. constructor();
  14787. /**
  14788. * @inheritDoc
  14789. * @override
  14790. */
  14791. destroy(destroyChild?:boolean):void;
  14792. /**
  14793. * <p>开始播放动画。会在动画模版缓存池中查找key值为name的动画模版,存在则用此动画模版初始化当前序列帧, 如果不存在,则使用当前序列帧。</p>
  14794. * <p>play(...)方法被设计为在创建实例后的任何时候都可以被调用,调用后就处于播放状态,当相应的资源加载完毕、调用动画帧填充方法(set frames)或者将实例显示在舞台上时,会判断是否处于播放状态,如果是,则开始播放。</p>
  14795. * <p>配合wrapMode属性,可设置动画播放顺序类型。</p>
  14796. * @param start (可选)指定动画播放开始的索引(int)或帧标签(String)。帧标签可以通过addLabel(...)和removeLabel(...)进行添加和删除。
  14797. * @param loop (可选)是否循环播放。
  14798. * @param name (可选)动画模板在动画模版缓存池中的key,也可认为是动画名称。如果name为空,则播放当前动画序列帧;如果不为空,则在动画模版缓存池中寻找key值为name的动画模版,如果存在则用此动画模版初始化当前序列帧并播放,如果不存在,则仍然播放当前动画序列帧;如果没有当前动画的帧数据,则不播放,但该实例仍然处于播放状态。
  14799. * @override
  14800. */
  14801. play(start?:any,loop?:boolean,name?:string):void;
  14802. /**
  14803. * @private
  14804. */
  14805. protected _setFramesFromCache(name:string,showWarn?:boolean):boolean;
  14806. /**
  14807. * @private
  14808. */
  14809. private _copyLabels:any;
  14810. /**
  14811. * @private
  14812. * @override
  14813. */
  14814. protected _frameLoop():void;
  14815. /**
  14816. * @private
  14817. * @override
  14818. */
  14819. protected _displayToIndex(value:number):void;
  14820. /**
  14821. * 当前动画的帧图像数组。本类中,每个帧图像是一个Graphics对象,而动画播放就是定时切换Graphics对象的过程。
  14822. */
  14823. get frames():any[];
  14824. set frames(value:any[]);
  14825. /**
  14826. * <p>动画数据源。</p>
  14827. * <p>类型如下:<br/>
  14828. * 1. LayaAir IDE动画文件路径:使用此类型需要预加载所需的图集资源,否则会创建失败,如果不想预加载或者需要创建完毕的回调,请使用loadAnimation(...)方法;<br/>
  14829. * 2. 图集路径:使用此类型创建的动画模版不会被缓存到动画模版缓存池中,如果需要缓存或者创建完毕的回调,请使用loadAtlas(...)方法;<br/>
  14830. * 3. 图片路径集合:使用此类型创建的动画模版不会被缓存到动画模版缓存池中,如果需要缓存,请使用loadImages(...)方法。</p>
  14831. * @param value 数据源。比如:图集:"xx/a1.atlas";图片集合:"a1.png,a2.png,a3.png";LayaAir IDE动画"xx/a1.ani"。
  14832. */
  14833. set source(value:string);
  14834. /**
  14835. * 设置自动播放的动画名称,在LayaAir IDE中可以创建的多个动画组成的动画集合,选择其中一个动画名称进行播放。
  14836. */
  14837. set autoAnimation(value:string);
  14838. /**
  14839. * 是否自动播放,默认为false。如果设置为true,则动画被创建并添加到舞台后自动播放。
  14840. */
  14841. set autoPlay(value:boolean);
  14842. /**
  14843. * 停止动画播放,并清理对象属性。之后可存入对象池,方便对象复用。
  14844. * @override
  14845. */
  14846. clear():laya.display.AnimationBase;
  14847. /**
  14848. * <p>根据指定的动画模版初始化当前动画序列帧。选择动画模版的过程如下:1. 动画模版缓存池中key为cacheName的动画模版;2. 如果不存在,则加载指定的图片集合并创建动画模版。注意:只有指定不为空的cacheName,才能将创建好的动画模版以此为key缓存到动画模版缓存池,否则不进行缓存。</p>
  14849. * <p>动画模版缓存池是以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。</p>
  14850. * <p>因为返回值为Animation对象本身,所以可以使用如下语法:loadImages(...).loadImages(...).play(...);。</p>
  14851. * @param urls 图片路径集合。需要创建动画模版时,会以此为数据源。参数形如:[url1,url2,url3,...]。
  14852. * @param cacheName (可选)动画模板在动画模版缓存池中的key。如果此参数不为空,表示使用动画模版缓存池。如果动画模版缓存池中存在key为cacheName的动画模版,则使用此模版。否则,创建新的动画模版,如果cacheName不为空,则以cacheName为key缓存到动画模版缓存池中,如果cacheName为空,不进行缓存。
  14853. * @return 返回Animation对象本身。
  14854. */
  14855. loadImages(urls:any[],cacheName?:string):Animation;
  14856. /**
  14857. * <p>根据指定的动画模版初始化当前动画序列帧。选择动画模版的过程如下:1. 动画模版缓存池中key为cacheName的动画模版;2. 如果不存在,则加载指定的图集并创建动画模版。</p>
  14858. * <p>注意:只有指定不为空的cacheName,才能将创建好的动画模版以此为key缓存到动画模版缓存池,否则不进行缓存。</p>
  14859. * <p>动画模版缓存池是以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。</p>
  14860. * <p>因为返回值为Animation对象本身,所以可以使用如下语法:loadAtlas(...).loadAtlas(...).play(...);。</p>
  14861. * @param url 图集路径。需要创建动画模版时,会以此为数据源。
  14862. * @param loaded (可选)使用指定图集初始化动画完毕的回调。
  14863. * @param cacheName (可选)动画模板在动画模版缓存池中的key。如果此参数不为空,表示使用动画模版缓存池。如果动画模版缓存池中存在key为cacheName的动画模版,则使用此模版。否则,创建新的动画模版,如果cacheName不为空,则以cacheName为key缓存到动画模版缓存池中,如果cacheName为空,不进行缓存。
  14864. * @return 返回动画本身。
  14865. */
  14866. loadAtlas(url:string,loaded?:laya.utils.Handler,cacheName?:string):Animation;
  14867. /**
  14868. * <p>加载并解析由LayaAir IDE制作的动画文件,此文件中可能包含多个动画。默认帧率为在IDE中设计的帧率,如果调用过set interval,则使用此帧间隔对应的帧率。加载后创建动画模版,并缓存到动画模版缓存池,key "url#动画名称" 对应相应动画名称的动画模板,key "url#" 对应动画模版集合的默认动画模版。</p>
  14869. * <p>注意:如果调用本方法前,还没有预加载动画使用的图集,请将atlas参数指定为对应的图集路径,否则会导致动画创建失败。</p>
  14870. * <p>动画模版缓存池是以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。</p>
  14871. * <p>因为返回值为Animation对象本身,所以可以使用如下语法:loadAnimation(...).loadAnimation(...).play(...);。</p>
  14872. * @param url 动画文件路径。可由LayaAir IDE创建并发布。
  14873. * @param loaded (可选)使用指定动画资源初始化动画完毕的回调。
  14874. * @param atlas (可选)动画用到的图集地址(可选)。
  14875. * @return 返回动画本身。
  14876. */
  14877. loadAnimation(url:string,loaded?:laya.utils.Handler,atlas?:string):Animation;
  14878. /**
  14879. * @private
  14880. */
  14881. private _loadAnimationData:any;
  14882. /**
  14883. * <p>创建动画模板,多个动画可共享同一份动画模板,而不必每次都创建一份新的,从而节省创建Graphics集合的开销。</p>
  14884. * @param url 图集路径或者图片路径数组。如果是图集路径,需要相应图集已经被预加载,如果没有预加载,会导致创建失败。
  14885. * @param name 动画模板在动画模版缓存池中的key。如果不为空,则以此为key缓存动画模板,否则不缓存。
  14886. * @return 动画模板。
  14887. */
  14888. static createFrames(url:string|string[],name:string):any[];
  14889. /**
  14890. * <p>从动画模版缓存池中清除指定key值的动画数据。</p>
  14891. * <p>开发者在调用创建动画模版函数时,可以手动指定此值。而如果是由LayaAir IDE创建的动画集,解析后的key格式为:"url#":表示动画集的默认动画模版,如果以此值为参数,会清除整个动画集数据;"url#aniName":表示相应名称的动画模版。</p>
  14892. * @param key 动画模板在动画模版缓存池中的key。
  14893. */
  14894. static clearCache(key:string):void;
  14895. }
  14896. }
  14897. declare module laya.display {
  14898. /**
  14899. * 动画播放完毕后调度。
  14900. * @eventType Event.COMPLETE
  14901. */
  14902. /**
  14903. * 播放到某标签后调度。
  14904. * @eventType Event.LABEL
  14905. */
  14906. /**
  14907. * <p>动画基类,提供了基础的动画播放控制方法和帧标签事件相关功能。</p>
  14908. * <p>可以继承此类,但不要直接实例化此类,因为有些方法需要由子类实现。</p>
  14909. */
  14910. class AnimationBase extends laya.display.Sprite {
  14911. /**
  14912. * 动画播放顺序类型:正序播放。
  14913. */
  14914. static WRAP_POSITIVE:number;
  14915. /**
  14916. * 动画播放顺序类型:逆序播放。
  14917. */
  14918. static WRAP_REVERSE:number;
  14919. /**
  14920. * 动画播放顺序类型:pingpong播放(当按指定顺序播放完结尾后,如果继续播放,则会改变播放顺序)。
  14921. */
  14922. static WRAP_PINGPONG:number;
  14923. /**
  14924. * 是否循环播放,调用play(...)方法时,会将此值设置为指定的参数值。
  14925. */
  14926. loop:boolean;
  14927. /**
  14928. * 播放顺序类型:AnimationBase.WRAP_POSITIVE为正序播放(默认值),AnimationBase.WRAP_REVERSE为倒序播放,AnimationBase.WRAP_PINGPONG为pingpong播放(当按指定顺序播放完结尾后,如果继续播发,则会改变播放顺序)。
  14929. */
  14930. wrapMode:number;
  14931. /**
  14932. * @private 播放间隔(单位:毫秒)。
  14933. */
  14934. protected _interval:number;
  14935. /**
  14936. * @private
  14937. */
  14938. protected _index:number;
  14939. /**
  14940. * @private
  14941. */
  14942. protected _count:number;
  14943. /**
  14944. * @private
  14945. */
  14946. protected _isPlaying:boolean;
  14947. /**
  14948. * @private
  14949. */
  14950. protected _labels:any;
  14951. /**
  14952. * 是否是逆序播放
  14953. */
  14954. protected _isReverse:boolean;
  14955. /**
  14956. * @private
  14957. */
  14958. protected _frameRateChanged:boolean;
  14959. /**
  14960. * @private
  14961. */
  14962. protected _actionName:string;
  14963. /**
  14964. * @private
  14965. */
  14966. private _controlNode:any;
  14967. /**
  14968. * 可以继承此类,但不要直接实例化此类,因为有些方法需要由子类实现。
  14969. */
  14970. constructor();
  14971. /**
  14972. * <p>开始播放动画。play(...)方法被设计为在创建实例后的任何时候都可以被调用,当相应的资源加载完毕、调用动画帧填充方法(set frames)或者将实例显示在舞台上时,会判断是否正在播放中,如果是,则进行播放。</p>
  14973. * <p>配合wrapMode属性,可设置动画播放顺序类型。</p>
  14974. * @param start (可选)指定动画播放开始的索引(int)或帧标签(String)。帧标签可以通过addLabel(...)和removeLabel(...)进行添加和删除。
  14975. * @param loop (可选)是否循环播放。
  14976. * @param name (可选)动画名称。
  14977. */
  14978. play(start?:any,loop?:boolean,name?:string):void;
  14979. /**
  14980. * <p>动画播放的帧间隔时间(单位:毫秒)。默认值依赖于Config.animationInterval=50,通过Config.animationInterval可以修改默认帧间隔时间。</p>
  14981. * <p>要想为某动画设置独立的帧间隔时间,可以使用set interval,注意:如果动画正在播放,设置后会重置帧循环定时器的起始时间为当前时间,也就是说,如果频繁设置interval,会导致动画帧更新的时间间隔会比预想的要慢,甚至不更新。</p>
  14982. */
  14983. get interval():number;
  14984. set interval(value:number);
  14985. /**
  14986. * @private
  14987. */
  14988. protected _getFrameByLabel(label:string):number;
  14989. /**
  14990. * @private
  14991. */
  14992. protected _frameLoop():void;
  14993. /**
  14994. * @private
  14995. */
  14996. protected _resumePlay():void;
  14997. /**
  14998. * 停止动画播放。
  14999. */
  15000. stop():void;
  15001. /**
  15002. * 是否正在播放中。
  15003. */
  15004. get isPlaying():boolean;
  15005. /**
  15006. * 增加一个帧标签到指定索引的帧上。当动画播放到此索引的帧时会派发Event.LABEL事件,派发事件是在完成当前帧画面更新之后。
  15007. * @param label 帧标签名称
  15008. * @param index 帧索引
  15009. */
  15010. addLabel(label:string,index:number):void;
  15011. /**
  15012. * 删除指定的帧标签。
  15013. * @param label 帧标签名称。注意:如果为空,则删除所有帧标签!
  15014. */
  15015. removeLabel(label:string):void;
  15016. /**
  15017. * @private
  15018. */
  15019. private _removeLabelFromList:any;
  15020. /**
  15021. * 将动画切换到指定帧并停在那里。
  15022. * @param position 帧索引或帧标签
  15023. */
  15024. gotoAndStop(position:any):void;
  15025. /**
  15026. * 动画当前帧的索引。
  15027. */
  15028. get index():number;
  15029. set index(value:number);
  15030. /**
  15031. * @private 显示到某帧
  15032. * @param value 帧索引
  15033. */
  15034. protected _displayToIndex(value:number):void;
  15035. /**
  15036. * 当前动画中帧的总数。
  15037. */
  15038. get count():number;
  15039. /**
  15040. * 停止动画播放,并清理对象属性。之后可存入对象池,方便对象复用。
  15041. * @return 返回对象本身
  15042. */
  15043. clear():AnimationBase;
  15044. }
  15045. }
  15046. declare module laya.display {
  15047. /**
  15048. * <code>BitmapFont</code> 是位图字体类,用于定义位图字体信息。
  15049. * 字体制作及使用方法,请参考文章
  15050. * @see http://ldc2.layabox.com/doc/?nav=ch-js-1-2-5
  15051. */
  15052. class BitmapFont {
  15053. private _texture:any;
  15054. private _fontCharDic:any;
  15055. private _fontWidthMap:any;
  15056. private _complete:any;
  15057. private _path:any;
  15058. private _maxWidth:any;
  15059. private _spaceWidth:any;
  15060. private _padding:any;
  15061. /**
  15062. * 当前位图字体字号,使用时,如果字号和设置不同,并且autoScaleSize=true,则按照设置字号比率进行缩放显示。
  15063. */
  15064. fontSize:number;
  15065. /**
  15066. * 表示是否根据实际使用的字体大小缩放位图字体大小。
  15067. */
  15068. autoScaleSize:boolean;
  15069. /**
  15070. * 字符间距(以像素为单位)。
  15071. */
  15072. letterSpacing:number;
  15073. /**
  15074. * 通过指定位图字体文件路径,加载位图字体文件,加载完成后会自动解析。
  15075. * @param path 位图字体文件的路径。
  15076. * @param complete 加载并解析完成的回调。
  15077. */
  15078. loadFont(path:string,complete:laya.utils.Handler):void;
  15079. /**
  15080. * @private
  15081. */
  15082. private _onLoaded:any;
  15083. /**
  15084. * 解析字体文件。
  15085. * @param xml 字体文件XML。
  15086. * @param texture 字体的纹理。
  15087. */
  15088. parseFont(xml:XMLDocument,texture:laya.resource.Texture):void;
  15089. /**
  15090. * 解析字体文件。
  15091. * @param xml 字体文件XML。
  15092. * @param texture 字体的纹理。
  15093. */
  15094. parseFont2(xml:XMLDocument,texture:laya.resource.Texture):void;
  15095. /**
  15096. * 获取指定字符的字体纹理对象。
  15097. * @param char 字符。
  15098. * @return 指定的字体纹理对象。
  15099. */
  15100. getCharTexture(char:string):laya.resource.Texture;
  15101. /**
  15102. * 销毁位图字体,调用Text.unregisterBitmapFont 时,默认会销毁。
  15103. */
  15104. destroy():void;
  15105. /**
  15106. * 设置空格的宽(如果字体库有空格,这里就可以不用设置了)。
  15107. * @param spaceWidth 宽度,单位为像素。
  15108. */
  15109. setSpaceWidth(spaceWidth:number):void;
  15110. /**
  15111. * 获取指定字符的宽度。
  15112. * @param char 字符。
  15113. * @return 宽度。
  15114. */
  15115. getCharWidth(char:string):number;
  15116. /**
  15117. * 获取指定文本内容的宽度。
  15118. * @param text 文本内容。
  15119. * @return 宽度。
  15120. */
  15121. getTextWidth(text:string):number;
  15122. /**
  15123. * 获取最大字符宽度。
  15124. */
  15125. getMaxWidth():number;
  15126. /**
  15127. * 获取最大字符高度。
  15128. */
  15129. getMaxHeight():number;
  15130. }
  15131. }
  15132. declare module laya.display.cmd {
  15133. /**
  15134. * 透明命令
  15135. */
  15136. class AlphaCmd {
  15137. static ID:string;
  15138. /**
  15139. * 透明度
  15140. */
  15141. alpha:number;
  15142. /**
  15143. * @private
  15144. */
  15145. static create(alpha:number):AlphaCmd;
  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. get cmdID():string;
  15158. }
  15159. }
  15160. declare module laya.display.cmd {
  15161. /**
  15162. * 裁剪命令
  15163. */
  15164. class ClipRectCmd {
  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. * @private
  15184. */
  15185. static create(x:number,y:number,width:number,height:number):ClipRectCmd;
  15186. /**
  15187. * 回收到对象池
  15188. */
  15189. recover():void;
  15190. /**
  15191. * @private
  15192. */
  15193. run(context:laya.resource.Context,gx:number,gy:number):void;
  15194. /**
  15195. * @private
  15196. */
  15197. get cmdID():string;
  15198. }
  15199. }
  15200. declare module laya.display.cmd {
  15201. /**
  15202. * 绘制圆形
  15203. */
  15204. class DrawCircleCmd {
  15205. static ID:string;
  15206. /**
  15207. * 圆点X 轴位置。
  15208. */
  15209. x:number;
  15210. /**
  15211. * 圆点Y 轴位置。
  15212. */
  15213. y:number;
  15214. /**
  15215. * 半径。
  15216. */
  15217. radius:number;
  15218. /**
  15219. * 填充颜色,或者填充绘图的渐变对象。
  15220. */
  15221. fillColor:any;
  15222. /**
  15223. * (可选)边框颜色,或者填充绘图的渐变对象。
  15224. */
  15225. lineColor:any;
  15226. /**
  15227. * (可选)边框宽度。
  15228. */
  15229. lineWidth:number;
  15230. /**
  15231. * @private
  15232. */
  15233. vid:number;
  15234. /**
  15235. * @private
  15236. */
  15237. static create(x:number,y:number,radius:number,fillColor:any,lineColor:any,lineWidth:number,vid:number):DrawCircleCmd;
  15238. /**
  15239. * 回收到对象池
  15240. */
  15241. recover():void;
  15242. /**
  15243. * @private
  15244. */
  15245. run(context:laya.resource.Context,gx:number,gy:number):void;
  15246. /**
  15247. * @private
  15248. */
  15249. get cmdID():string;
  15250. }
  15251. }
  15252. declare module laya.display.cmd {
  15253. /**
  15254. * 绘制曲线
  15255. */
  15256. class DrawCurvesCmd {
  15257. static ID:string;
  15258. /**
  15259. * 开始绘制的 X 轴位置。
  15260. */
  15261. x:number;
  15262. /**
  15263. * 开始绘制的 Y 轴位置。
  15264. */
  15265. y:number;
  15266. /**
  15267. * 线段的点集合,格式[controlX, controlY, anchorX, anchorY...]。
  15268. */
  15269. points:number[]|null;
  15270. /**
  15271. * 线段颜色,或者填充绘图的渐变对象。
  15272. */
  15273. lineColor:any;
  15274. /**
  15275. * (可选)线段宽度。
  15276. */
  15277. lineWidth:number;
  15278. /**
  15279. * @private
  15280. */
  15281. static create(x:number,y:number,points:any[],lineColor:any,lineWidth:number):DrawCurvesCmd;
  15282. /**
  15283. * 回收到对象池
  15284. */
  15285. recover():void;
  15286. /**
  15287. * @private
  15288. */
  15289. run(context:laya.resource.Context,gx:number,gy:number):void;
  15290. /**
  15291. * @private
  15292. */
  15293. get cmdID():string;
  15294. }
  15295. }
  15296. declare module laya.display.cmd {
  15297. /**
  15298. * 绘制图片
  15299. */
  15300. class DrawImageCmd {
  15301. static ID:string;
  15302. /**
  15303. * 纹理。
  15304. */
  15305. texture:laya.resource.Texture|null;
  15306. /**
  15307. * (可选)X轴偏移量。
  15308. */
  15309. x:number;
  15310. /**
  15311. * (可选)Y轴偏移量。
  15312. */
  15313. y:number;
  15314. /**
  15315. * (可选)宽度。
  15316. */
  15317. width:number;
  15318. /**
  15319. * (可选)高度。
  15320. */
  15321. height:number;
  15322. /**
  15323. * @private
  15324. */
  15325. static create(texture:laya.resource.Texture,x:number,y:number,width:number,height:number):DrawImageCmd;
  15326. /**
  15327. * 回收到对象池
  15328. */
  15329. recover():void;
  15330. /**
  15331. * @private
  15332. */
  15333. run(context:laya.resource.Context,gx:number,gy:number):void;
  15334. /**
  15335. * @private
  15336. */
  15337. get cmdID():string;
  15338. }
  15339. }
  15340. declare module laya.display.cmd {
  15341. /**
  15342. * 绘制单条曲线
  15343. */
  15344. class DrawLineCmd {
  15345. static ID:string;
  15346. /**
  15347. * X轴开始位置。
  15348. */
  15349. fromX:number;
  15350. /**
  15351. * Y轴开始位置。
  15352. */
  15353. fromY:number;
  15354. /**
  15355. * X轴结束位置。
  15356. */
  15357. toX:number;
  15358. /**
  15359. * Y轴结束位置。
  15360. */
  15361. toY:number;
  15362. /**
  15363. * 颜色。
  15364. */
  15365. lineColor:string;
  15366. /**
  15367. * (可选)线条宽度。
  15368. */
  15369. lineWidth:number;
  15370. /**
  15371. * @private
  15372. */
  15373. vid:number;
  15374. /**
  15375. * @private
  15376. */
  15377. static create(fromX:number,fromY:number,toX:number,toY:number,lineColor:string,lineWidth:number,vid:number):DrawLineCmd;
  15378. /**
  15379. * 回收到对象池
  15380. */
  15381. recover():void;
  15382. /**
  15383. * @private
  15384. */
  15385. run(context:laya.resource.Context,gx:number,gy:number):void;
  15386. /**
  15387. * @private
  15388. */
  15389. get cmdID():string;
  15390. }
  15391. }
  15392. declare module laya.display.cmd {
  15393. /**
  15394. * 绘制连续曲线
  15395. */
  15396. class DrawLinesCmd {
  15397. static ID:string;
  15398. /**
  15399. * 开始绘制的X轴位置。
  15400. */
  15401. x:number;
  15402. /**
  15403. * 开始绘制的Y轴位置。
  15404. */
  15405. y:number;
  15406. /**
  15407. * 线段的点集合。格式:[x1,y1,x2,y2,x3,y3...]。
  15408. */
  15409. points:number[]|null;
  15410. /**
  15411. * 线段颜色,或者填充绘图的渐变对象。
  15412. */
  15413. lineColor:any;
  15414. /**
  15415. * (可选)线段宽度。
  15416. */
  15417. lineWidth:number;
  15418. /**
  15419. * @private
  15420. */
  15421. vid:number;
  15422. /**
  15423. * @private
  15424. */
  15425. static create(x:number,y:number,points:any[],lineColor:any,lineWidth:number,vid:number):DrawLinesCmd;
  15426. /**
  15427. * 回收到对象池
  15428. */
  15429. recover():void;
  15430. /**
  15431. * @private
  15432. */
  15433. run(context:laya.resource.Context,gx:number,gy:number):void;
  15434. /**
  15435. * @private
  15436. */
  15437. get cmdID():string;
  15438. }
  15439. }
  15440. declare module laya.display.cmd {
  15441. /**
  15442. * 绘制粒子
  15443. * @private
  15444. */
  15445. class DrawParticleCmd {
  15446. static ID:string;
  15447. private _templ:any;
  15448. /**
  15449. * @private
  15450. */
  15451. static create(_temp:any):DrawParticleCmd;
  15452. /**
  15453. * 回收到对象池
  15454. */
  15455. recover():void;
  15456. /**
  15457. * @private
  15458. */
  15459. run(context:laya.resource.Context,gx:number,gy:number):void;
  15460. /**
  15461. * @private
  15462. */
  15463. get cmdID():string;
  15464. }
  15465. }
  15466. declare module laya.display.cmd {
  15467. /**
  15468. * 根据路径绘制矢量图形
  15469. */
  15470. class DrawPathCmd {
  15471. static ID:string;
  15472. /**
  15473. * 开始绘制的 X 轴位置。
  15474. */
  15475. x:number;
  15476. /**
  15477. * 开始绘制的 Y 轴位置。
  15478. */
  15479. y:number;
  15480. /**
  15481. * 路径集合,路径支持以下格式:[["moveTo",x,y],["lineTo",x,y],["arcTo",x1,y1,x2,y2,r],["closePath"]]。
  15482. */
  15483. paths:any[]|null;
  15484. /**
  15485. * (可选)刷子定义,支持以下设置{fillStyle:"#FF0000"}。
  15486. */
  15487. brush:any;
  15488. /**
  15489. * (可选)画笔定义,支持以下设置{strokeStyle,lineWidth,lineJoin:"bevel|round|miter",lineCap:"butt|round|square",miterLimit}。
  15490. */
  15491. pen:any;
  15492. /**
  15493. * @private
  15494. */
  15495. static create(x:number,y:number,paths:any[],brush:any,pen:any):DrawPathCmd;
  15496. /**
  15497. * 回收到对象池
  15498. */
  15499. recover():void;
  15500. /**
  15501. * @private
  15502. */
  15503. run(context:laya.resource.Context,gx:number,gy:number):void;
  15504. /**
  15505. * @private
  15506. */
  15507. get cmdID():string;
  15508. }
  15509. }
  15510. declare module laya.display.cmd {
  15511. /**
  15512. * 绘制扇形
  15513. */
  15514. class DrawPieCmd {
  15515. static ID:string;
  15516. /**
  15517. * 开始绘制的 X 轴位置。
  15518. */
  15519. x:number;
  15520. /**
  15521. * 开始绘制的 Y 轴位置。
  15522. */
  15523. y:number;
  15524. /**
  15525. * 扇形半径。
  15526. */
  15527. radius:number;
  15528. private _startAngle:any;
  15529. private _endAngle:any;
  15530. /**
  15531. * 填充颜色,或者填充绘图的渐变对象。
  15532. */
  15533. fillColor:any;
  15534. /**
  15535. * (可选)边框颜色,或者填充绘图的渐变对象。
  15536. */
  15537. lineColor:any;
  15538. /**
  15539. * (可选)边框宽度。
  15540. */
  15541. lineWidth:number;
  15542. /**
  15543. * @private
  15544. */
  15545. vid:number;
  15546. /**
  15547. * @private
  15548. */
  15549. static create(x:number,y:number,radius:number,startAngle:number,endAngle:number,fillColor:any,lineColor:any,lineWidth:number,vid:number):DrawPieCmd;
  15550. /**
  15551. * 回收到对象池
  15552. */
  15553. recover():void;
  15554. /**
  15555. * @private
  15556. */
  15557. run(context:laya.resource.Context,gx:number,gy:number):void;
  15558. /**
  15559. * @private
  15560. */
  15561. get cmdID():string;
  15562. /**
  15563. * 开始角度。
  15564. */
  15565. get startAngle():number;
  15566. set startAngle(value:number);
  15567. /**
  15568. * 结束角度。
  15569. */
  15570. get endAngle():number;
  15571. set endAngle(value:number);
  15572. }
  15573. }
  15574. declare module laya.display.cmd {
  15575. /**
  15576. * 绘制多边形
  15577. */
  15578. class DrawPolyCmd {
  15579. static ID:string;
  15580. /**
  15581. * 开始绘制的 X 轴位置。
  15582. */
  15583. x:number;
  15584. /**
  15585. * 开始绘制的 Y 轴位置。
  15586. */
  15587. y:number;
  15588. /**
  15589. * 多边形的点集合。
  15590. */
  15591. points:number[]|null;
  15592. /**
  15593. * 填充颜色,或者填充绘图的渐变对象。
  15594. */
  15595. fillColor:any;
  15596. /**
  15597. * (可选)边框颜色,或者填充绘图的渐变对象。
  15598. */
  15599. lineColor:any;
  15600. /**
  15601. * 可选)边框宽度。
  15602. */
  15603. lineWidth:number;
  15604. /**
  15605. * @private
  15606. */
  15607. isConvexPolygon:boolean;
  15608. /**
  15609. * @private
  15610. */
  15611. vid:number;
  15612. /**
  15613. * @private
  15614. */
  15615. static create(x:number,y:number,points:any[],fillColor:any,lineColor:any,lineWidth:number,isConvexPolygon:boolean,vid:number):DrawPolyCmd;
  15616. /**
  15617. * 回收到对象池
  15618. */
  15619. recover():void;
  15620. /**
  15621. * @private
  15622. */
  15623. run(context:laya.resource.Context,gx:number,gy:number):void;
  15624. /**
  15625. * @private
  15626. */
  15627. get cmdID():string;
  15628. }
  15629. }
  15630. declare module laya.display.cmd {
  15631. /**
  15632. * 绘制矩形
  15633. */
  15634. class DrawRectCmd {
  15635. static ID:string;
  15636. /**
  15637. * 开始绘制的 X 轴位置。
  15638. */
  15639. x:number;
  15640. /**
  15641. * 开始绘制的 Y 轴位置。
  15642. */
  15643. y:number;
  15644. /**
  15645. * 矩形宽度。
  15646. */
  15647. width:number;
  15648. /**
  15649. * 矩形高度。
  15650. */
  15651. height:number;
  15652. /**
  15653. * 填充颜色,或者填充绘图的渐变对象。
  15654. */
  15655. fillColor:any;
  15656. /**
  15657. * (可选)边框颜色,或者填充绘图的渐变对象。
  15658. */
  15659. lineColor:any;
  15660. /**
  15661. * (可选)边框宽度。
  15662. */
  15663. lineWidth:number;
  15664. /**
  15665. * @private
  15666. */
  15667. static create(x:number,y:number,width:number,height:number,fillColor:any,lineColor:any,lineWidth:number):DrawRectCmd;
  15668. /**
  15669. * 回收到对象池
  15670. */
  15671. recover():void;
  15672. /**
  15673. * @private
  15674. */
  15675. run(context:laya.resource.Context,gx:number,gy:number):void;
  15676. /**
  15677. * @private
  15678. */
  15679. get cmdID():string;
  15680. }
  15681. }
  15682. declare module laya.display.cmd {
  15683. /**
  15684. * 绘制单个贴图
  15685. */
  15686. class DrawTextureCmd {
  15687. static ID:string;
  15688. /**
  15689. * 纹理。
  15690. */
  15691. texture:laya.resource.Texture|null;
  15692. /**
  15693. * (可选)X轴偏移量。
  15694. */
  15695. x:number;
  15696. /**
  15697. * (可选)Y轴偏移量。
  15698. */
  15699. y:number;
  15700. /**
  15701. * (可选)宽度。
  15702. */
  15703. width:number;
  15704. /**
  15705. * (可选)高度。
  15706. */
  15707. height:number;
  15708. /**
  15709. * (可选)矩阵信息。
  15710. */
  15711. matrix:laya.maths.Matrix|null;
  15712. /**
  15713. * (可选)透明度。
  15714. */
  15715. alpha:number;
  15716. /**
  15717. * (可选)颜色滤镜。
  15718. */
  15719. color:string;
  15720. colorFlt:laya.filters.ColorFilter|null;
  15721. /**
  15722. * (可选)混合模式。
  15723. */
  15724. blendMode:string;
  15725. uv:number[]|null;
  15726. /**
  15727. * @private
  15728. */
  15729. 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;
  15730. /**
  15731. * 回收到对象池
  15732. */
  15733. recover():void;
  15734. /**
  15735. * @private
  15736. */
  15737. run(context:laya.resource.Context,gx:number,gy:number):void;
  15738. /**
  15739. * @private
  15740. */
  15741. get cmdID():string;
  15742. }
  15743. }
  15744. declare module laya.display.cmd {
  15745. /**
  15746. * 根据坐标集合绘制多个贴图
  15747. */
  15748. class DrawTexturesCmd {
  15749. static ID:string;
  15750. /**
  15751. * 纹理。
  15752. */
  15753. texture:laya.resource.Texture;
  15754. /**
  15755. * 绘制次数和坐标。
  15756. */
  15757. pos:any[];
  15758. /**
  15759. * @private
  15760. */
  15761. static create(texture:laya.resource.Texture,pos:any[]):DrawTexturesCmd;
  15762. /**
  15763. * 回收到对象池
  15764. */
  15765. recover():void;
  15766. /**
  15767. * @private
  15768. */
  15769. run(context:laya.resource.Context,gx:number,gy:number):void;
  15770. /**
  15771. * @private
  15772. */
  15773. get cmdID():string;
  15774. }
  15775. }
  15776. declare module laya.display.cmd {
  15777. /**
  15778. * 绘制三角形命令
  15779. */
  15780. class DrawTrianglesCmd {
  15781. static ID:string;
  15782. /**
  15783. * 纹理。
  15784. */
  15785. texture:laya.resource.Texture|null;
  15786. /**
  15787. * X轴偏移量。
  15788. */
  15789. x:number;
  15790. /**
  15791. * Y轴偏移量。
  15792. */
  15793. y:number;
  15794. /**
  15795. * 顶点数组。
  15796. */
  15797. vertices:Float32Array;
  15798. /**
  15799. * UV数据。
  15800. */
  15801. uvs:Float32Array;
  15802. /**
  15803. * 顶点索引。
  15804. */
  15805. indices:Uint16Array;
  15806. /**
  15807. * 缩放矩阵。
  15808. */
  15809. matrix:laya.maths.Matrix;
  15810. /**
  15811. * alpha
  15812. */
  15813. alpha:number;
  15814. /**
  15815. * blend模式
  15816. */
  15817. blendMode:string;
  15818. /**
  15819. * 颜色变换
  15820. */
  15821. color:laya.filters.ColorFilter;
  15822. colorNum:number;
  15823. /**
  15824. * @private
  15825. */
  15826. 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;
  15827. /**
  15828. * 回收到对象池
  15829. */
  15830. recover():void;
  15831. /**
  15832. * @private
  15833. */
  15834. run(context:laya.resource.Context,gx:number,gy:number):void;
  15835. /**
  15836. * @private
  15837. */
  15838. get cmdID():string;
  15839. }
  15840. }
  15841. declare module laya.display.cmd {
  15842. /**
  15843. * 绘制文字
  15844. */
  15845. class FillTextCmd {
  15846. static ID:string;
  15847. private _text:any;
  15848. _words:laya.utils.HTMLChar[];
  15849. /**
  15850. * 开始绘制文本的 x 坐标位置(相对于画布)。
  15851. */
  15852. x:number;
  15853. /**
  15854. * 开始绘制文本的 y 坐标位置(相对于画布)。
  15855. */
  15856. y:number;
  15857. private _font:any;
  15858. private _color:any;
  15859. private _borderColor:any;
  15860. private _lineWidth:any;
  15861. private _textAlign:any;
  15862. private _fontColor:any;
  15863. private _strokeColor:any;
  15864. private static _defFontObj:any;
  15865. private _fontObj:any;
  15866. private _nTexAlign:any;
  15867. /**
  15868. * @private
  15869. */
  15870. 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;
  15871. /**
  15872. * 回收到对象池
  15873. */
  15874. recover():void;
  15875. /**
  15876. * @private
  15877. */
  15878. run(context:laya.resource.Context,gx:number,gy:number):void;
  15879. /**
  15880. * @private
  15881. */
  15882. get cmdID():string;
  15883. /**
  15884. * 在画布上输出的文本。
  15885. */
  15886. get text():string|laya.utils.WordText;
  15887. set text(value:string|laya.utils.WordText);
  15888. /**
  15889. * 定义字号和字体,比如"20px Arial"。
  15890. */
  15891. get font():string;
  15892. set font(value:string);
  15893. /**
  15894. * 定义文本颜色,比如"#ff0000"。
  15895. */
  15896. get color():string;
  15897. set color(value:string);
  15898. /**
  15899. * 文本对齐方式,可选值:"left","center","right"。
  15900. */
  15901. get textAlign():string;
  15902. set textAlign(value:string);
  15903. }
  15904. }
  15905. declare module laya.display.cmd {
  15906. /**
  15907. * 填充贴图
  15908. */
  15909. class FillTextureCmd {
  15910. static ID:string;
  15911. /**
  15912. * 纹理。
  15913. */
  15914. texture:laya.resource.Texture;
  15915. /**
  15916. * X轴偏移量。
  15917. */
  15918. x:number;
  15919. /**
  15920. * Y轴偏移量。
  15921. */
  15922. y:number;
  15923. /**
  15924. * (可选)宽度。
  15925. */
  15926. width:number;
  15927. /**
  15928. * (可选)高度。
  15929. */
  15930. height:number;
  15931. /**
  15932. * (可选)填充类型 repeat|repeat-x|repeat-y|no-repeat
  15933. */
  15934. type:string;
  15935. /**
  15936. * (可选)贴图纹理偏移
  15937. */
  15938. offset:laya.maths.Point;
  15939. /**
  15940. * @private
  15941. */
  15942. other:any;
  15943. /**
  15944. * @private
  15945. */
  15946. static create(texture:laya.resource.Texture,x:number,y:number,width:number,height:number,type:string,offset:laya.maths.Point,other:any):FillTextureCmd;
  15947. /**
  15948. * 回收到对象池
  15949. */
  15950. recover():void;
  15951. /**
  15952. * @private
  15953. */
  15954. run(context:laya.resource.Context,gx:number,gy:number):void;
  15955. /**
  15956. * @private
  15957. */
  15958. get cmdID():string;
  15959. }
  15960. }
  15961. declare module laya.display.cmd {
  15962. /**
  15963. * 恢复命令,和save配套使用
  15964. */
  15965. class RestoreCmd {
  15966. static ID:string;
  15967. /**
  15968. * @private
  15969. */
  15970. static create():RestoreCmd;
  15971. /**
  15972. * 回收到对象池
  15973. */
  15974. recover():void;
  15975. /**
  15976. * @private
  15977. */
  15978. run(context:laya.resource.Context,gx:number,gy:number):void;
  15979. /**
  15980. * @private
  15981. */
  15982. get cmdID():string;
  15983. }
  15984. }
  15985. declare module laya.display.cmd {
  15986. /**
  15987. * 旋转命令
  15988. */
  15989. class RotateCmd {
  15990. static ID:string;
  15991. /**
  15992. * 旋转角度,以弧度计。
  15993. */
  15994. angle:number;
  15995. /**
  15996. * (可选)水平方向轴心点坐标。
  15997. */
  15998. pivotX:number;
  15999. /**
  16000. * (可选)垂直方向轴心点坐标。
  16001. */
  16002. pivotY:number;
  16003. /**
  16004. * @private
  16005. */
  16006. static create(angle:number,pivotX:number,pivotY:number):RotateCmd;
  16007. /**
  16008. * 回收到对象池
  16009. */
  16010. recover():void;
  16011. /**
  16012. * @private
  16013. */
  16014. run(context:laya.resource.Context,gx:number,gy:number):void;
  16015. /**
  16016. * @private
  16017. */
  16018. get cmdID():string;
  16019. }
  16020. }
  16021. declare module laya.display.cmd {
  16022. /**
  16023. * 存储命令,和restore配套使用
  16024. */
  16025. class SaveCmd {
  16026. static ID:string;
  16027. /**
  16028. * @private
  16029. */
  16030. static create():SaveCmd;
  16031. /**
  16032. * 回收到对象池
  16033. */
  16034. recover():void;
  16035. /**
  16036. * @private
  16037. */
  16038. run(context:laya.resource.Context,gx:number,gy:number):void;
  16039. /**
  16040. * @private
  16041. */
  16042. get cmdID():string;
  16043. }
  16044. }
  16045. declare module laya.display.cmd {
  16046. /**
  16047. * 缩放命令
  16048. */
  16049. class ScaleCmd {
  16050. static ID:string;
  16051. /**
  16052. * 水平方向缩放值。
  16053. */
  16054. scaleX:number;
  16055. /**
  16056. * 垂直方向缩放值。
  16057. */
  16058. scaleY:number;
  16059. /**
  16060. * (可选)水平方向轴心点坐标。
  16061. */
  16062. pivotX:number;
  16063. /**
  16064. * (可选)垂直方向轴心点坐标。
  16065. */
  16066. pivotY:number;
  16067. /**
  16068. * @private
  16069. */
  16070. static create(scaleX:number,scaleY:number,pivotX:number,pivotY:number):ScaleCmd;
  16071. /**
  16072. * 回收到对象池
  16073. */
  16074. recover():void;
  16075. /**
  16076. * @private
  16077. */
  16078. run(context:laya.resource.Context,gx:number,gy:number):void;
  16079. /**
  16080. * @private
  16081. */
  16082. get cmdID():string;
  16083. }
  16084. }
  16085. declare module laya.display.cmd {
  16086. /**
  16087. * 矩阵命令
  16088. */
  16089. class TransformCmd {
  16090. static ID:string;
  16091. /**
  16092. * 矩阵。
  16093. */
  16094. matrix:laya.maths.Matrix;
  16095. /**
  16096. * (可选)水平方向轴心点坐标。
  16097. */
  16098. pivotX:number;
  16099. /**
  16100. * (可选)垂直方向轴心点坐标。
  16101. */
  16102. pivotY:number;
  16103. /**
  16104. * @private
  16105. */
  16106. static create(matrix:laya.maths.Matrix,pivotX:number,pivotY:number):TransformCmd;
  16107. /**
  16108. * 回收到对象池
  16109. */
  16110. recover():void;
  16111. /**
  16112. * @private
  16113. */
  16114. run(context:laya.resource.Context,gx:number,gy:number):void;
  16115. /**
  16116. * @private
  16117. */
  16118. get cmdID():string;
  16119. }
  16120. }
  16121. declare module laya.display.cmd {
  16122. /**
  16123. * 位移命令
  16124. */
  16125. class TranslateCmd {
  16126. static ID:string;
  16127. /**
  16128. * 添加到水平坐标(x)上的值。
  16129. */
  16130. tx:number;
  16131. /**
  16132. * 添加到垂直坐标(y)上的值。
  16133. */
  16134. ty:number;
  16135. /**
  16136. * @private
  16137. */
  16138. static create(tx:number,ty:number):TranslateCmd;
  16139. /**
  16140. * 回收到对象池
  16141. */
  16142. recover():void;
  16143. /**
  16144. * @private
  16145. */
  16146. run(context:laya.resource.Context,gx:number,gy:number):void;
  16147. /**
  16148. * @private
  16149. */
  16150. get cmdID():string;
  16151. }
  16152. }
  16153. declare module laya.display.css {
  16154. /**
  16155. * 元素样式
  16156. */
  16157. class SpriteStyle {
  16158. static EMPTY:SpriteStyle;
  16159. scaleX:number;
  16160. scaleY:number;
  16161. skewX:number;
  16162. skewY:number;
  16163. pivotX:number;
  16164. pivotY:number;
  16165. rotation:number;
  16166. alpha:number;
  16167. scrollRect:laya.maths.Rectangle;
  16168. viewport:laya.maths.Rectangle;
  16169. hitArea:any;
  16170. dragging:laya.utils.Dragging;
  16171. blendMode:string;
  16172. constructor();
  16173. /**
  16174. * 重置,方便下次复用
  16175. */
  16176. reset():SpriteStyle;
  16177. /**
  16178. * 回收
  16179. */
  16180. recover():void;
  16181. /**
  16182. * 从对象池中创建
  16183. */
  16184. static create():SpriteStyle;
  16185. }
  16186. }
  16187. declare module laya.display.css {
  16188. /**
  16189. * 文本的样式类
  16190. */
  16191. class TextStyle extends laya.display.css.SpriteStyle {
  16192. /**
  16193. * 一个已初始化的 <code>TextStyle</code> 实例。
  16194. */
  16195. static EMPTY:TextStyle;
  16196. /**
  16197. * 表示使用此文本格式的文本是否为斜体。
  16198. * @default false
  16199. */
  16200. italic:boolean;
  16201. /**
  16202. * <p>表示使用此文本格式的文本段落的水平对齐方式。</p>
  16203. * @default "left"
  16204. */
  16205. align:string;
  16206. /**
  16207. * <p>表示使用此文本格式的文本字段是否自动换行。</p>
  16208. * 如果 wordWrap 的值为 true,则该文本字段自动换行;如果值为 false,则该文本字段不自动换行。
  16209. * @default false。
  16210. */
  16211. wordWrap:boolean;
  16212. /**
  16213. * <p>垂直行间距(以像素为单位)</p>
  16214. */
  16215. leading:number;
  16216. /**
  16217. * <p>默认边距信息</p>
  16218. * <p>[左边距,上边距,右边距,下边距](边距以像素为单位)</p>
  16219. */
  16220. padding:any[];
  16221. /**
  16222. * 文本背景颜色,以字符串表示。
  16223. */
  16224. bgColor:string|null;
  16225. /**
  16226. * 文本边框背景颜色,以字符串表示。
  16227. */
  16228. borderColor:string|null;
  16229. /**
  16230. * <p>指定文本字段是否是密码文本字段。</p>
  16231. * 如果此属性的值为 true,则文本字段被视为密码文本字段,并使用星号而不是实际字符来隐藏输入的字符。如果为 false,则不会将文本字段视为密码文本字段。
  16232. */
  16233. asPassword:boolean;
  16234. /**
  16235. * <p>描边宽度(以像素为单位)。</p>
  16236. * 默认值0,表示不描边。
  16237. * @default 0
  16238. */
  16239. stroke:number;
  16240. /**
  16241. * <p>描边颜色,以字符串表示。</p>
  16242. * @default "#000000";
  16243. */
  16244. strokeColor:string;
  16245. /**
  16246. * 是否为粗体
  16247. */
  16248. bold:boolean;
  16249. /**
  16250. * 是否显示下划线
  16251. */
  16252. underline:boolean;
  16253. /**
  16254. * 下划线颜色
  16255. */
  16256. underlineColor:string|null;
  16257. /**
  16258. * 当前使用的位置字体。
  16259. */
  16260. currBitmapFont:laya.display.BitmapFont|null;
  16261. /**
  16262. * @override
  16263. */
  16264. reset():laya.display.css.SpriteStyle;
  16265. /**
  16266. * @override
  16267. */
  16268. recover():void;
  16269. /**
  16270. * 从对象池中创建
  16271. */
  16272. static create():TextStyle;
  16273. /**
  16274. * @inheritDoc
  16275. */
  16276. render(sprite:laya.display.Sprite,context:laya.resource.Context,x:number,y:number):void;
  16277. }
  16278. }
  16279. declare module laya.display {
  16280. /**
  16281. * <p> 动效模板。用于为指定目标对象添加动画效果。每个动效有唯一的目标对象,而同一个对象可以添加多个动效。 当一个动效开始播放时,其他动效会自动停止播放。</p>
  16282. * <p> 可以通过LayaAir IDE创建。 </p>
  16283. */
  16284. class EffectAnimation extends laya.display.FrameAnimation {
  16285. /**
  16286. * @private 动效开始事件。
  16287. */
  16288. private static EFFECT_BEGIN:any;
  16289. /**
  16290. * 本实例的目标对象。通过本实例控制目标对象的属性变化。
  16291. * @param v 指定的目标对象。
  16292. */
  16293. set target(v:any);
  16294. get target():any;
  16295. /**
  16296. * @private
  16297. */
  16298. private _onOtherBegin:any;
  16299. /**
  16300. * 设置开始播放的事件。本实例会侦听目标对象的指定事件,触发后播放相应动画效果。
  16301. * @param event
  16302. */
  16303. set playEvent(event:string);
  16304. /**
  16305. * @param start
  16306. * @param loop
  16307. * @param name
  16308. * @override
  16309. */
  16310. play(start?:any,loop?:boolean,name?:string):void;
  16311. /**
  16312. * @private
  16313. */
  16314. private _recordInitData:any;
  16315. /**
  16316. * 设置提供数据的类。
  16317. * @param classStr 类路径
  16318. */
  16319. set effectClass(classStr:string);
  16320. /**
  16321. * 设置动画数据。
  16322. * @param uiData
  16323. */
  16324. set effectData(uiData:any);
  16325. /**
  16326. * @override
  16327. */
  16328. protected _displayNodeToFrame(node:any,frame:number,targetDic?:any):void;
  16329. }
  16330. }
  16331. declare module laya.display {
  16332. /**
  16333. * 动画播放完毕后调度。
  16334. * @eventType Event.COMPLETE
  16335. */
  16336. /**
  16337. * 播放到某标签后调度。
  16338. * @eventType Event.LABEL
  16339. */
  16340. /**
  16341. * 节点关键帧动画播放类。解析播放IDE内制作的节点动画。
  16342. */
  16343. class FrameAnimation extends laya.display.AnimationBase {
  16344. /**
  16345. * @private
  16346. */
  16347. private static _sortIndexFun:any;
  16348. /**
  16349. * @private
  16350. */
  16351. protected _usedFrames:any[];
  16352. constructor();
  16353. /**
  16354. * @inheritDoc
  16355. * @override
  16356. */
  16357. clear():laya.display.AnimationBase;
  16358. /**
  16359. * @inheritDoc
  16360. * @override
  16361. */
  16362. protected _displayToIndex(value:number):void;
  16363. /**
  16364. * @private 将节点设置到某一帧的状态
  16365. * @param node 节点ID
  16366. * @param frame
  16367. * @param targetDic 节点表
  16368. */
  16369. protected _displayNodeToFrame(node:any,frame:number,targetDic?:any):void;
  16370. /**
  16371. * @private 计算帧数据
  16372. */
  16373. private _calculateDatas:any;
  16374. /**
  16375. * @private 计算某个节点的帧数据
  16376. */
  16377. protected _calculateKeyFrames(node:any):void;
  16378. /**
  16379. * 重置节点,使节点恢复到动画之前的状态,方便其他动画控制
  16380. */
  16381. resetNodes():void;
  16382. /**
  16383. * @private 计算节点某个属性的帧数据
  16384. */
  16385. private _calculateNodePropFrames:any;
  16386. /**
  16387. * @private
  16388. */
  16389. private _dealKeyFrame:any;
  16390. /**
  16391. * @private 计算两个关键帧直接的帧数据
  16392. */
  16393. private _calculateFrameValues:any;
  16394. }
  16395. }
  16396. declare module laya.display {
  16397. /**
  16398. * <code>Graphics</code> 类用于创建绘图显示对象。Graphics可以同时绘制多个位图或者矢量图,还可以结合save,restore,transform,scale,rotate,translate,alpha等指令对绘图效果进行变化。
  16399. * Graphics以命令流方式存储,可以通过cmds属性访问所有命令流。Graphics是比Sprite更轻量级的对象,合理使用能提高应用性能(比如把大量的节点绘图改为一个节点的Graphics命令集合,能减少大量节点创建消耗)。
  16400. * @see laya.display.Sprite#graphics
  16401. */
  16402. class Graphics {
  16403. /**
  16404. * @private
  16405. */
  16406. private _cmds:any;
  16407. /**
  16408. * @private
  16409. */
  16410. protected _vectorgraphArray:any[];
  16411. /**
  16412. * @private
  16413. */
  16414. private _graphicBounds:any;
  16415. /**
  16416. * @private
  16417. */
  16418. autoDestroy:boolean;
  16419. constructor();
  16420. /**
  16421. * <p>销毁此对象。</p>
  16422. */
  16423. destroy():void;
  16424. /**
  16425. * <p>清空绘制命令。</p>
  16426. * @param recoverCmds 是否回收绘图指令数组,设置为true,则对指令数组进行回收以节省内存开销,建议设置为true进行回收,但如果手动引用了数组,不建议回收
  16427. */
  16428. clear(recoverCmds?:boolean):void;
  16429. /**
  16430. * @private
  16431. */
  16432. private _clearBoundsCache:any;
  16433. /**
  16434. * @private
  16435. */
  16436. private _initGraphicBounds:any;
  16437. /**
  16438. * @private 命令流。存储了所有绘制命令。
  16439. */
  16440. get cmds():any[];
  16441. set cmds(value:any[]);
  16442. /**
  16443. * 获取位置及宽高信息矩阵(比较耗CPU,频繁使用会造成卡顿,尽量少用)。
  16444. * @param realSize (可选)使用图片的真实大小,默认为false
  16445. * @return 位置与宽高组成的 一个 Rectangle 对象。
  16446. */
  16447. getBounds(realSize?:boolean):laya.maths.Rectangle;
  16448. /**
  16449. * @private
  16450. * @param realSize (可选)使用图片的真实大小,默认为false
  16451. 获取端点列表。
  16452. */
  16453. getBoundPoints(realSize?:boolean):any[];
  16454. /**
  16455. * 绘制单独图片
  16456. * @param texture 纹理。
  16457. * @param x (可选)X轴偏移量。
  16458. * @param y (可选)Y轴偏移量。
  16459. * @param width (可选)宽度。
  16460. * @param height (可选)高度。
  16461. */
  16462. drawImage(texture:laya.resource.Texture,x?:number,y?:number,width?:number,height?:number):laya.display.cmd.DrawImageCmd;
  16463. /**
  16464. * 绘制纹理,相比drawImage功能更强大,性能会差一些
  16465. * @param texture 纹理。
  16466. * @param x (可选)X轴偏移量。
  16467. * @param y (可选)Y轴偏移量。
  16468. * @param width (可选)宽度。
  16469. * @param height (可选)高度。
  16470. * @param matrix (可选)矩阵信息。
  16471. * @param alpha (可选)透明度。
  16472. * @param color (可选)颜色滤镜。
  16473. * @param blendMode (可选)混合模式。
  16474. */
  16475. 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;
  16476. /**
  16477. * 批量绘制同样纹理。
  16478. * @param texture 纹理。
  16479. * @param pos 绘制次数和坐标。
  16480. */
  16481. drawTextures(texture:laya.resource.Texture,pos:any[]):laya.display.cmd.DrawTexturesCmd|null;
  16482. /**
  16483. * 绘制一组三角形
  16484. * @param texture 纹理。
  16485. * @param x X轴偏移量。
  16486. * @param y Y轴偏移量。
  16487. * @param vertices 顶点数组。
  16488. * @param indices 顶点索引。
  16489. * @param uvData UV数据。
  16490. * @param matrix 缩放矩阵。
  16491. * @param alpha alpha
  16492. * @param color 颜色变换
  16493. * @param blendMode blend模式
  16494. */
  16495. 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;
  16496. /**
  16497. * 用texture填充。
  16498. * @param texture 纹理。
  16499. * @param x X轴偏移量。
  16500. * @param y Y轴偏移量。
  16501. * @param width (可选)宽度。
  16502. * @param height (可选)高度。
  16503. * @param type (可选)填充类型 repeat|repeat-x|repeat-y|no-repeat
  16504. * @param offset (可选)贴图纹理偏移
  16505. */
  16506. 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;
  16507. /**
  16508. * 设置剪裁区域,超出剪裁区域的坐标不显示。
  16509. * @param x X 轴偏移量。
  16510. * @param y Y 轴偏移量。
  16511. * @param width 宽度。
  16512. * @param height 高度。
  16513. */
  16514. clipRect(x:number,y:number,width:number,height:number):laya.display.cmd.ClipRectCmd;
  16515. /**
  16516. * 在画布上绘制文本。
  16517. * @param text 在画布上输出的文本。
  16518. * @param x 开始绘制文本的 x 坐标位置(相对于画布)。
  16519. * @param y 开始绘制文本的 y 坐标位置(相对于画布)。
  16520. * @param font 定义字号和字体,比如"20px Arial"。
  16521. * @param color 定义文本颜色,比如"#ff0000"。
  16522. * @param textAlign 文本对齐方式,可选值:"left","center","right"。
  16523. */
  16524. fillText(text:string,x:number,y:number,font:string,color:string,textAlign:string):laya.display.cmd.FillTextCmd;
  16525. /**
  16526. * 在画布上绘制“被填充且镶边的”文本。
  16527. * @param text 在画布上输出的文本。
  16528. * @param x 开始绘制文本的 x 坐标位置(相对于画布)。
  16529. * @param y 开始绘制文本的 y 坐标位置(相对于画布)。
  16530. * @param font 定义字体和字号,比如"20px Arial"。
  16531. * @param fillColor 定义文本颜色,比如"#ff0000"。
  16532. * @param textAlign 文本对齐方式,可选值:"left","center","right"。
  16533. * @param lineWidth 镶边线条宽度。
  16534. * @param borderColor 定义镶边文本颜色。
  16535. */
  16536. fillBorderText(text:string,x:number,y:number,font:string,fillColor:string,textAlign:string,lineWidth:number,borderColor:string):laya.display.cmd.FillTextCmd;
  16537. /**
  16538. * * @private
  16539. */
  16540. fillWords(words:any[],x:number,y:number,font:string,color:string):laya.display.cmd.FillTextCmd;
  16541. /**
  16542. * * @private
  16543. */
  16544. fillBorderWords(words:any[],x:number,y:number,font:string,fillColor:string,borderColor:string,lineWidth:number):laya.display.cmd.FillTextCmd;
  16545. /**
  16546. * 在画布上绘制文本(没有填色)。文本的默认颜色是黑色。
  16547. * @param text 在画布上输出的文本。
  16548. * @param x 开始绘制文本的 x 坐标位置(相对于画布)。
  16549. * @param y 开始绘制文本的 y 坐标位置(相对于画布)。
  16550. * @param font 定义字体和字号,比如"20px Arial"。
  16551. * @param color 定义文本颜色,比如"#ff0000"。
  16552. * @param lineWidth 线条宽度。
  16553. * @param textAlign 文本对齐方式,可选值:"left","center","right"。
  16554. */
  16555. strokeText(text:string,x:number,y:number,font:string,color:string,lineWidth:number,textAlign:string):laya.display.cmd.FillTextCmd;
  16556. /**
  16557. * 设置透明度。
  16558. * @param value 透明度。
  16559. */
  16560. alpha(alpha:number):laya.display.cmd.AlphaCmd;
  16561. /**
  16562. * 替换绘图的当前转换矩阵。
  16563. * @param mat 矩阵。
  16564. * @param pivotX (可选)水平方向轴心点坐标。
  16565. * @param pivotY (可选)垂直方向轴心点坐标。
  16566. */
  16567. transform(matrix:laya.maths.Matrix,pivotX?:number,pivotY?:number):laya.display.cmd.TransformCmd;
  16568. /**
  16569. * 旋转当前绘图。(推荐使用transform,性能更高)
  16570. * @param angle 旋转角度,以弧度计。
  16571. * @param pivotX (可选)水平方向轴心点坐标。
  16572. * @param pivotY (可选)垂直方向轴心点坐标。
  16573. */
  16574. rotate(angle:number,pivotX?:number,pivotY?:number):laya.display.cmd.RotateCmd;
  16575. /**
  16576. * 缩放当前绘图至更大或更小。(推荐使用transform,性能更高)
  16577. * @param scaleX 水平方向缩放值。
  16578. * @param scaleY 垂直方向缩放值。
  16579. * @param pivotX (可选)水平方向轴心点坐标。
  16580. * @param pivotY (可选)垂直方向轴心点坐标。
  16581. */
  16582. scale(scaleX:number,scaleY:number,pivotX?:number,pivotY?:number):laya.display.cmd.ScaleCmd;
  16583. /**
  16584. * 重新映射画布上的 (0,0) 位置。
  16585. * @param x 添加到水平坐标(x)上的值。
  16586. * @param y 添加到垂直坐标(y)上的值。
  16587. */
  16588. translate(tx:number,ty:number):laya.display.cmd.TranslateCmd;
  16589. /**
  16590. * 保存当前环境的状态。
  16591. */
  16592. save():laya.display.cmd.SaveCmd;
  16593. /**
  16594. * 返回之前保存过的路径状态和属性。
  16595. */
  16596. restore():laya.display.cmd.RestoreCmd;
  16597. /**
  16598. * @private 替换文本内容。
  16599. * @param text 文本内容。
  16600. * @return 替换成功则值为true,否则值为flase。
  16601. */
  16602. replaceText(text:string):boolean;
  16603. /**
  16604. * @private
  16605. */
  16606. private _isTextCmd:any;
  16607. /**
  16608. * @private 替换文本颜色。
  16609. * @param color 颜色。
  16610. */
  16611. replaceTextColor(color:string):void;
  16612. /**
  16613. * @private
  16614. */
  16615. private _setTextCmdColor:any;
  16616. /**
  16617. * 加载并显示一个图片。
  16618. * @param url 图片地址。
  16619. * @param x (可选)显示图片的x位置。
  16620. * @param y (可选)显示图片的y位置。
  16621. * @param width (可选)显示图片的宽度,设置为0表示使用图片默认宽度。
  16622. * @param height (可选)显示图片的高度,设置为0表示使用图片默认高度。
  16623. * @param complete (可选)加载完成回调。
  16624. */
  16625. loadImage(url:string,x?:number,y?:number,width?:number,height?:number,complete?:Function):void;
  16626. /**
  16627. * 绘制一条线。
  16628. * @param fromX X轴开始位置。
  16629. * @param fromY Y轴开始位置。
  16630. * @param toX X轴结束位置。
  16631. * @param toY Y轴结束位置。
  16632. * @param lineColor 颜色。
  16633. * @param lineWidth (可选)线条宽度。
  16634. */
  16635. drawLine(fromX:number,fromY:number,toX:number,toY:number,lineColor:string,lineWidth?:number):laya.display.cmd.DrawLineCmd;
  16636. /**
  16637. * 绘制一系列线段。
  16638. * @param x 开始绘制的X轴位置。
  16639. * @param y 开始绘制的Y轴位置。
  16640. * @param points 线段的点集合。格式:[x1,y1,x2,y2,x3,y3...]。
  16641. * @param lineColor 线段颜色,或者填充绘图的渐变对象。
  16642. * @param lineWidth (可选)线段宽度。
  16643. */
  16644. drawLines(x:number,y:number,points:any[],lineColor:any,lineWidth?:number):laya.display.cmd.DrawLinesCmd;
  16645. /**
  16646. * 绘制一系列曲线。
  16647. * @param x 开始绘制的 X 轴位置。
  16648. * @param y 开始绘制的 Y 轴位置。
  16649. * @param points 线段的点集合,格式[controlX, controlY, anchorX, anchorY...]。
  16650. * @param lineColor 线段颜色,或者填充绘图的渐变对象。
  16651. * @param lineWidth (可选)线段宽度。
  16652. */
  16653. drawCurves(x:number,y:number,points:any[],lineColor:any,lineWidth?:number):laya.display.cmd.DrawCurvesCmd;
  16654. /**
  16655. * 绘制矩形。
  16656. * @param x 开始绘制的 X 轴位置。
  16657. * @param y 开始绘制的 Y 轴位置。
  16658. * @param width 矩形宽度。
  16659. * @param height 矩形高度。
  16660. * @param fillColor 填充颜色,或者填充绘图的渐变对象。
  16661. * @param lineColor (可选)边框颜色,或者填充绘图的渐变对象。
  16662. * @param lineWidth (可选)边框宽度。
  16663. */
  16664. drawRect(x:number,y:number,width:number,height:number,fillColor:any,lineColor?:any,lineWidth?:number):laya.display.cmd.DrawRectCmd;
  16665. /**
  16666. * 绘制圆形。
  16667. * @param x 圆点X 轴位置。
  16668. * @param y 圆点Y 轴位置。
  16669. * @param radius 半径。
  16670. * @param fillColor 填充颜色,或者填充绘图的渐变对象。
  16671. * @param lineColor (可选)边框颜色,或者填充绘图的渐变对象。
  16672. * @param lineWidth (可选)边框宽度。
  16673. */
  16674. drawCircle(x:number,y:number,radius:number,fillColor:any,lineColor?:any,lineWidth?:number):laya.display.cmd.DrawCircleCmd;
  16675. /**
  16676. * 绘制扇形。
  16677. * @param x 开始绘制的 X 轴位置。
  16678. * @param y 开始绘制的 Y 轴位置。
  16679. * @param radius 扇形半径。
  16680. * @param startAngle 开始角度。
  16681. * @param endAngle 结束角度。
  16682. * @param fillColor 填充颜色,或者填充绘图的渐变对象。
  16683. * @param lineColor (可选)边框颜色,或者填充绘图的渐变对象。
  16684. * @param lineWidth (可选)边框宽度。
  16685. */
  16686. drawPie(x:number,y:number,radius:number,startAngle:number,endAngle:number,fillColor:any,lineColor?:any,lineWidth?:number):laya.display.cmd.DrawPieCmd;
  16687. /**
  16688. * 绘制多边形。
  16689. * @param x 开始绘制的 X 轴位置。
  16690. * @param y 开始绘制的 Y 轴位置。
  16691. * @param points 多边形的点集合。
  16692. * @param fillColor 填充颜色,或者填充绘图的渐变对象。
  16693. * @param lineColor (可选)边框颜色,或者填充绘图的渐变对象。
  16694. * @param lineWidth (可选)边框宽度。
  16695. */
  16696. drawPoly(x:number,y:number,points:any[],fillColor:any,lineColor?:any,lineWidth?:number):laya.display.cmd.DrawPolyCmd;
  16697. /**
  16698. * 绘制路径。
  16699. * @param x 开始绘制的 X 轴位置。
  16700. * @param y 开始绘制的 Y 轴位置。
  16701. * @param paths 路径集合,路径支持以下格式:[["moveTo",x,y],["lineTo",x,y],["arcTo",x1,y1,x2,y2,r],["closePath"]]。
  16702. * @param brush (可选)刷子定义,支持以下设置{fillStyle:"#FF0000"}。
  16703. * @param pen (可选)画笔定义,支持以下设置{strokeStyle,lineWidth,lineJoin:"bevel|round|miter",lineCap:"butt|round|square",miterLimit}。
  16704. */
  16705. drawPath(x:number,y:number,paths:any[],brush?:any,pen?:any):laya.display.cmd.DrawPathCmd;
  16706. /**
  16707. * @private 绘制带九宫格的图片
  16708. * @param texture
  16709. * @param x
  16710. * @param y
  16711. * @param width
  16712. * @param height
  16713. * @param sizeGrid
  16714. */
  16715. draw9Grid(texture:laya.resource.Texture,x?:number,y?:number,width?:number,height?:number,sizeGrid?:any[]):void;
  16716. }
  16717. }
  16718. declare module laya.display {
  16719. /**
  16720. * @private Graphic bounds数据类
  16721. */
  16722. class GraphicsBounds {
  16723. /**
  16724. * @private
  16725. */
  16726. private static _tempMatrix:any;
  16727. /**
  16728. * @private
  16729. */
  16730. private static _initMatrix:any;
  16731. /**
  16732. * @private
  16733. */
  16734. private static _tempPoints:any;
  16735. /**
  16736. * @private
  16737. */
  16738. private static _tempMatrixArrays:any;
  16739. /**
  16740. * @private
  16741. */
  16742. private static _tempCmds:any;
  16743. /**
  16744. * @private
  16745. */
  16746. private _temp:any;
  16747. /**
  16748. * @private
  16749. */
  16750. private _bounds:any;
  16751. /**
  16752. * @private
  16753. */
  16754. private _rstBoundPoints:any;
  16755. /**
  16756. * @private
  16757. */
  16758. private _cacheBoundsType:any;
  16759. /**
  16760. * 销毁
  16761. */
  16762. destroy():void;
  16763. /**
  16764. * 创建
  16765. */
  16766. static create():GraphicsBounds;
  16767. /**
  16768. * 重置数据
  16769. */
  16770. reset():void;
  16771. /**
  16772. * 获取位置及宽高信息矩阵(比较耗CPU,频繁使用会造成卡顿,尽量少用)。
  16773. * @param realSize (可选)使用图片的真实大小,默认为false
  16774. * @return 位置与宽高组成的 一个 Rectangle 对象。
  16775. */
  16776. getBounds(realSize?:boolean):laya.maths.Rectangle;
  16777. /**
  16778. * @private
  16779. * @param realSize (可选)使用图片的真实大小,默认为false
  16780. 获取端点列表。
  16781. */
  16782. getBoundPoints(realSize?:boolean):any[];
  16783. private _getCmdPoints:any;
  16784. private _switchMatrix:any;
  16785. private static _addPointArrToRst:any;
  16786. private static _addPointToRst:any;
  16787. /**
  16788. * 获得drawPie命令可能的产生的点。注意 这里只假设用在包围盒计算上。
  16789. * @param x
  16790. * @param y
  16791. * @param radius
  16792. * @param startAngle
  16793. * @param endAngle
  16794. * @return
  16795. */
  16796. private _getPiePoints:any;
  16797. private _getTriAngBBXPoints:any;
  16798. private _getDraw9GridBBXPoints:any;
  16799. private _getPathPoints:any;
  16800. }
  16801. }
  16802. declare module laya.display {
  16803. /**
  16804. * 用户输入一个或多个文本字符时后调度。
  16805. * @eventType Event.INPUT
  16806. */
  16807. /**
  16808. * 文本发生变化后调度。
  16809. * @eventType Event.CHANGE
  16810. */
  16811. /**
  16812. * 用户在输入框内敲回车键后,将会调度 <code>enter</code> 事件。
  16813. * @eventType Event.ENTER
  16814. */
  16815. /**
  16816. * 显示对象获得焦点后调度。
  16817. * @eventType Event.FOCUS
  16818. */
  16819. /**
  16820. * 显示对象失去焦点后调度。
  16821. * @eventType Event.BLUR
  16822. */
  16823. /**
  16824. * <p><code>Input</code> 类用于创建显示对象以显示和输入文本。</p>
  16825. * <p>Input 类封装了原生的文本输入框,由于不同浏览器的差异,会导致此对象的默认文本的位置与用户点击输入时的文本的位置有少许的偏差。</p>
  16826. */
  16827. class Input extends laya.display.Text {
  16828. /**
  16829. * 常规文本域。
  16830. */
  16831. static TYPE_TEXT:string;
  16832. /**
  16833. * password 类型用于密码域输入。
  16834. */
  16835. static TYPE_PASSWORD:string;
  16836. /**
  16837. * email 类型用于应该包含 e-mail 地址的输入域。
  16838. */
  16839. static TYPE_EMAIL:string;
  16840. /**
  16841. * url 类型用于应该包含 URL 地址的输入域。
  16842. */
  16843. static TYPE_URL:string;
  16844. /**
  16845. * number 类型用于应该包含数值的输入域。
  16846. */
  16847. static TYPE_NUMBER:string;
  16848. /**
  16849. * <p>range 类型用于应该包含一定范围内数字值的输入域。</p>
  16850. * <p>range 类型显示为滑动条。</p>
  16851. * <p>您还能够设定对所接受的数字的限定。</p>
  16852. */
  16853. static TYPE_RANGE:string;
  16854. /**
  16855. * 选取日、月、年。
  16856. */
  16857. static TYPE_DATE:string;
  16858. /**
  16859. * month - 选取月、年。
  16860. */
  16861. static TYPE_MONTH:string;
  16862. /**
  16863. * week - 选取周和年。
  16864. */
  16865. static TYPE_WEEK:string;
  16866. /**
  16867. * time - 选取时间(小时和分钟)。
  16868. */
  16869. static TYPE_TIME:string;
  16870. /**
  16871. * datetime - 选取时间、日、月、年(UTC 时间)。
  16872. */
  16873. static TYPE_DATE_TIME:string;
  16874. /**
  16875. * datetime-local - 选取时间、日、月、年(本地时间)。
  16876. */
  16877. static TYPE_DATE_TIME_LOCAL:string;
  16878. /**
  16879. * <p>search 类型用于搜索域,比如站点搜索或 Google 搜索。</p>
  16880. * <p>search 域显示为常规的文本域。</p>
  16881. */
  16882. static TYPE_SEARCH:string;
  16883. /**
  16884. * @private
  16885. */
  16886. protected static input:any;
  16887. /**
  16888. * @private
  16889. */
  16890. protected static area:any;
  16891. /**
  16892. * @private
  16893. */
  16894. protected static inputElement:any;
  16895. /**
  16896. * @private
  16897. */
  16898. protected static inputContainer:any;
  16899. /**
  16900. * @private
  16901. */
  16902. protected static confirmButton:any;
  16903. /**
  16904. * @private
  16905. */
  16906. protected static promptStyleDOM:any;
  16907. /**
  16908. * @private
  16909. */
  16910. protected _focus:boolean;
  16911. /**
  16912. * @private
  16913. */
  16914. protected _multiline:boolean;
  16915. /**
  16916. * @private
  16917. */
  16918. protected _editable:boolean;
  16919. /**
  16920. * @private
  16921. */
  16922. protected _restrictPattern:any;
  16923. /**
  16924. * @private
  16925. */
  16926. protected _maxChars:number;
  16927. private _type:any;
  16928. /**
  16929. * 输入提示符。
  16930. */
  16931. private _prompt:any;
  16932. /**
  16933. * 输入提示符颜色。
  16934. */
  16935. private _promptColor:any;
  16936. private _originColor:any;
  16937. private _content:any;
  16938. /**
  16939. * @private
  16940. */
  16941. static IOS_IFRAME:boolean;
  16942. private static inputHeight:any;
  16943. /**
  16944. * 表示是否处于输入状态。
  16945. */
  16946. static isInputting:boolean;
  16947. /**
  16948. * 创建一个新的 <code>Input</code> 类实例。
  16949. */
  16950. constructor();
  16951. private static _popupInputMethod:any;
  16952. private static _createInputElement:any;
  16953. private static _initInput:any;
  16954. private static _processInputting:any;
  16955. private static _stopEvent:any;
  16956. /**
  16957. * 设置光标位置和选取字符。
  16958. * @param startIndex 光标起始位置。
  16959. * @param endIndex 光标结束位置。
  16960. */
  16961. setSelection(startIndex:number,endIndex:number):void;
  16962. /**
  16963. * 表示是否是多行输入框。
  16964. */
  16965. get multiline():boolean;
  16966. set multiline(value:boolean);
  16967. /**
  16968. * 获取对输入框的引用实例。
  16969. */
  16970. get nativeInput():any;
  16971. private _onUnDisplay:any;
  16972. private _onMouseDown:any;
  16973. private static stageMatrix:any;
  16974. /**
  16975. * 在输入期间,如果 Input 实例的位置改变,调用_syncInputTransform同步输入框的位置。
  16976. */
  16977. private _syncInputTransform:any;
  16978. /**
  16979. * 选中当前实例的所有文本。
  16980. */
  16981. select():void;
  16982. /**
  16983. * 表示焦点是否在此实例上。
  16984. */
  16985. get focus():boolean;
  16986. set focus(value:boolean);
  16987. private _setInputMethod:any;
  16988. private _focusIn:any;
  16989. private _setPromptColor:any;
  16990. /**
  16991. * @private
  16992. */
  16993. private _focusOut:any;
  16994. /**
  16995. * @private
  16996. */
  16997. private _onKeyDown:any;
  16998. /**
  16999. * @inheritDoc
  17000. * @override
  17001. */
  17002. set text(value:string);
  17003. /**
  17004. * @override
  17005. */
  17006. get text():string;
  17007. /**
  17008. * @param text
  17009. * @override
  17010. */
  17011. changeText(text:string):void;
  17012. /**
  17013. * @inheritDoc
  17014. * @override
  17015. */
  17016. set color(value:string);
  17017. /**
  17018. * @inheritDoc
  17019. * @override
  17020. */
  17021. get color():string;
  17022. /**
  17023. * @inheritDoc
  17024. * @override
  17025. */
  17026. set bgColor(value:string);
  17027. /**
  17028. * @inheritDoc
  17029. * @override
  17030. */
  17031. get bgColor():string;
  17032. /**
  17033. * 限制输入的字符。
  17034. */
  17035. get restrict():string;
  17036. set restrict(pattern:string);
  17037. /**
  17038. * 是否可编辑。
  17039. */
  17040. set editable(value:boolean);
  17041. get editable():boolean;
  17042. /**
  17043. * <p>字符数量限制,默认为10000。</p>
  17044. * <p>设置字符数量限制时,小于等于0的值将会限制字符数量为10000。</p>
  17045. */
  17046. get maxChars():number;
  17047. set maxChars(value:number);
  17048. /**
  17049. * 设置输入提示符。
  17050. */
  17051. get prompt():string;
  17052. set prompt(value:string);
  17053. /**
  17054. * 设置输入提示符颜色。
  17055. */
  17056. get promptColor():string;
  17057. set promptColor(value:string);
  17058. /**
  17059. * <p>输入框类型为Input静态常量之一。</p>
  17060. * <ul>
  17061. * <li>TYPE_TEXT</li>
  17062. * <li>TYPE_PASSWORD</li>
  17063. * <li>TYPE_EMAIL</li>
  17064. * <li>TYPE_URL</li>
  17065. * <li>TYPE_NUMBER</li>
  17066. * <li>TYPE_RANGE</li>
  17067. * <li>TYPE_DATE</li>
  17068. * <li>TYPE_MONTH</li>
  17069. * <li>TYPE_WEEK</li>
  17070. * <li>TYPE_TIME</li>
  17071. * <li>TYPE_DATE_TIME</li>
  17072. * <li>TYPE_DATE_TIME_LOCAL</li>
  17073. * </ul>
  17074. * <p>平台兼容性参见http://www.w3school.com.cn/html5/html_5_form_input_types.asp。</p>
  17075. */
  17076. get type():string;
  17077. set type(value:string);
  17078. }
  17079. }
  17080. declare module laya.display {
  17081. /**
  17082. * 添加到父对象后调度。
  17083. * @eventType Event.ADDED
  17084. */
  17085. /**
  17086. * 被父对象移除后调度。
  17087. * @eventType Event.REMOVED
  17088. */
  17089. /**
  17090. * 加入节点树时调度。
  17091. * @eventType Event.DISPLAY
  17092. */
  17093. /**
  17094. * 从节点树移除时调度。
  17095. * @eventType Event.UNDISPLAY
  17096. */
  17097. /**
  17098. * <code>Node</code> 类是可放在显示列表中的所有对象的基类。该显示列表管理 Laya 运行时中显示的所有对象。使用 Node 类排列显示列表中的显示对象。Node 对象可以有子显示对象。
  17099. */
  17100. class Node extends laya.events.EventDispatcher {
  17101. /**
  17102. * @private
  17103. */
  17104. protected static ARRAY_EMPTY:any[];
  17105. /**
  17106. * @private
  17107. */
  17108. private _bits:any;
  17109. /**
  17110. * 节点名称。
  17111. */
  17112. name:string;
  17113. /**
  17114. * [只读]是否已经销毁。对象销毁后不能再使用。
  17115. */
  17116. destroyed:boolean;
  17117. constructor();
  17118. createGLBuffer():void;
  17119. /**
  17120. * <p>增加事件侦听器,以使侦听器能够接收事件通知。</p>
  17121. * <p>如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。</p>
  17122. * @param type 事件的类型。
  17123. * @param caller 事件侦听函数的执行域。
  17124. * @param listener 事件侦听函数。
  17125. * @param args (可选)事件侦听函数的回调参数。
  17126. * @return 此 EventDispatcher 对象。
  17127. * @override
  17128. */
  17129. on(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  17130. /**
  17131. * <p>增加事件侦听器,以使侦听器能够接收事件通知,此侦听事件响应一次后则自动移除侦听。</p>
  17132. * <p>如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。</p>
  17133. * @param type 事件的类型。
  17134. * @param caller 事件侦听函数的执行域。
  17135. * @param listener 事件侦听函数。
  17136. * @param args (可选)事件侦听函数的回调参数。
  17137. * @return 此 EventDispatcher 对象。
  17138. * @override
  17139. */
  17140. once(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  17141. /**
  17142. * <p>销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。</p>
  17143. * <p>destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。</p>
  17144. * @param destroyChild (可选)是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
  17145. */
  17146. destroy(destroyChild?:boolean):void;
  17147. /**
  17148. * 销毁时执行
  17149. * 此方法为虚方法,使用时重写覆盖即可
  17150. */
  17151. onDestroy():void;
  17152. /**
  17153. * 销毁所有子对象,不销毁自己本身。
  17154. */
  17155. destroyChildren():void;
  17156. /**
  17157. * 添加子节点。
  17158. * @param node 节点对象
  17159. * @return 返回添加的节点
  17160. */
  17161. addChild(node:Node):Node;
  17162. addInputChild(node:Node):Node;
  17163. removeInputChild(node:Node):void;
  17164. /**
  17165. * 批量增加子节点
  17166. * @param ...args 无数子节点。
  17167. */
  17168. addChildren(...args:any[]):void;
  17169. /**
  17170. * 添加子节点到指定的索引位置。
  17171. * @param node 节点对象。
  17172. * @param index 索引位置。
  17173. * @return 返回添加的节点。
  17174. */
  17175. addChildAt(node:Node,index:number):Node;
  17176. /**
  17177. * 根据子节点对象,获取子节点的索引位置。
  17178. * @param node 子节点。
  17179. * @return 子节点所在的索引位置。
  17180. */
  17181. getChildIndex(node:Node):number;
  17182. /**
  17183. * 根据子节点的名字,获取子节点对象。
  17184. * @param name 子节点的名字。
  17185. * @return 节点对象。
  17186. */
  17187. getChildByName(name:string):Node;
  17188. /**
  17189. * 根据子节点的索引位置,获取子节点对象。
  17190. * @param index 索引位置
  17191. * @return 子节点
  17192. */
  17193. getChildAt(index:number):Node;
  17194. /**
  17195. * 设置子节点的索引位置。
  17196. * @param node 子节点。
  17197. * @param index 新的索引。
  17198. * @return 返回子节点本身。
  17199. */
  17200. setChildIndex(node:Node,index:number):Node;
  17201. /**
  17202. * 子节点发生改变。
  17203. * @private
  17204. * @param child 子节点。
  17205. */
  17206. protected _childChanged(child?:Node):void;
  17207. /**
  17208. * 删除子节点。
  17209. * @param node 子节点
  17210. * @return 被删除的节点
  17211. */
  17212. removeChild(node:Node):Node;
  17213. /**
  17214. * 从父容器删除自己,如已经被删除不会抛出异常。
  17215. * @return 当前节点( Node )对象。
  17216. */
  17217. removeSelf():Node;
  17218. /**
  17219. * 根据子节点名字删除对应的子节点对象,如果找不到不会抛出异常。
  17220. * @param name 对象名字。
  17221. * @return 查找到的节点( Node )对象。
  17222. */
  17223. removeChildByName(name:string):Node;
  17224. /**
  17225. * 根据子节点索引位置,删除对应的子节点对象。
  17226. * @param index 节点索引位置。
  17227. * @return 被删除的节点。
  17228. */
  17229. removeChildAt(index:number):Node;
  17230. /**
  17231. * 删除指定索引区间的所有子对象。
  17232. * @param beginIndex 开始索引。
  17233. * @param endIndex 结束索引。
  17234. * @return 当前节点对象。
  17235. */
  17236. removeChildren(beginIndex?:number,endIndex?:number):Node;
  17237. /**
  17238. * 替换子节点。
  17239. * 将传入的新节点对象替换到已有子节点索引位置处。
  17240. * @param newNode 新节点。
  17241. * @param oldNode 老节点。
  17242. * @return 返回新节点。
  17243. */
  17244. replaceChild(newNode:Node,oldNode:Node):Node;
  17245. /**
  17246. * 子对象数量。
  17247. */
  17248. get numChildren():number;
  17249. /**
  17250. * 父节点。
  17251. */
  17252. get parent():Node;
  17253. /**
  17254. * @private
  17255. */
  17256. protected _setParent(value:Node):void;
  17257. /**
  17258. * 表示是否在显示列表中显示。
  17259. */
  17260. get displayedInStage():boolean;
  17261. /**
  17262. * @private
  17263. */
  17264. private _updateDisplayedInstage:any;
  17265. /**
  17266. * 设置指定节点对象是否可见(是否在渲染列表中)。
  17267. * @private
  17268. * @param node 节点。
  17269. * @param display 是否可见。
  17270. */
  17271. private _displayChild:any;
  17272. /**
  17273. * 当前容器是否包含指定的 <code>Node</code> 节点对象 。
  17274. * @param node 指定的 <code>Node</code> 节点对象 。
  17275. * @return 一个布尔值表示是否包含指定的 <code>Node</code> 节点对象 。
  17276. */
  17277. contains(node:Node):boolean;
  17278. /**
  17279. * 定时重复执行某函数。功能同Laya.timer.timerLoop()。
  17280. * @param delay 间隔时间(单位毫秒)。
  17281. * @param caller 执行域(this)。
  17282. * @param method 结束时的回调方法。
  17283. * @param args (可选)回调参数。
  17284. * @param coverBefore (可选)是否覆盖之前的延迟执行,默认为true。
  17285. * @param jumpFrame 时钟是否跳帧。基于时间的循环回调,单位时间间隔内,如能执行多次回调,出于性能考虑,引擎默认只执行一次,设置jumpFrame=true后,则回调会连续执行多次
  17286. */
  17287. timerLoop(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean,jumpFrame?:boolean):void;
  17288. /**
  17289. * 定时执行某函数一次。功能同Laya.timer.timerOnce()。
  17290. * @param delay 延迟时间(单位毫秒)。
  17291. * @param caller 执行域(this)。
  17292. * @param method 结束时的回调方法。
  17293. * @param args (可选)回调参数。
  17294. * @param coverBefore (可选)是否覆盖之前的延迟执行,默认为true。
  17295. */
  17296. timerOnce(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  17297. /**
  17298. * 定时重复执行某函数(基于帧率)。功能同Laya.timer.frameLoop()。
  17299. * @param delay 间隔几帧(单位为帧)。
  17300. * @param caller 执行域(this)。
  17301. * @param method 结束时的回调方法。
  17302. * @param args (可选)回调参数。
  17303. * @param coverBefore (可选)是否覆盖之前的延迟执行,默认为true。
  17304. */
  17305. frameLoop(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  17306. /**
  17307. * 定时执行一次某函数(基于帧率)。功能同Laya.timer.frameOnce()。
  17308. * @param delay 延迟几帧(单位为帧)。
  17309. * @param caller 执行域(this)
  17310. * @param method 结束时的回调方法
  17311. * @param args (可选)回调参数
  17312. * @param coverBefore (可选)是否覆盖之前的延迟执行,默认为true
  17313. */
  17314. frameOnce(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  17315. /**
  17316. * 清理定时器。功能同Laya.timer.clearTimer()。
  17317. * @param caller 执行域(this)。
  17318. * @param method 结束时的回调方法。
  17319. */
  17320. clearTimer(caller:any,method:Function):void;
  17321. /**
  17322. * <p>延迟运行指定的函数。</p>
  17323. * <p>在控件被显示在屏幕之前调用,一般用于延迟计算数据。</p>
  17324. * @param method 要执行的函数的名称。例如,functionName。
  17325. * @param args 传递给 <code>method</code> 函数的可选参数列表。
  17326. * @see #runCallLater()
  17327. */
  17328. callLater(method:Function,args?:any[]):void;
  17329. /**
  17330. * <p>如果有需要延迟调用的函数(通过 <code>callLater</code> 函数设置),则立即执行延迟调用函数。</p>
  17331. * @param method 要执行的函数名称。例如,functionName。
  17332. * @see #callLater()
  17333. */
  17334. runCallLater(method:Function):void;
  17335. /**
  17336. * @private
  17337. */
  17338. private _components:any;
  17339. /**
  17340. * @private
  17341. */
  17342. private _activeChangeScripts:any;
  17343. /**
  17344. * 获得所属场景。
  17345. * @return 场景。
  17346. */
  17347. get scene():any;
  17348. /**
  17349. * 获取自身是否激活。
  17350. * @return 自身是否激活。
  17351. */
  17352. get active():boolean;
  17353. /**
  17354. * 设置是否激活。
  17355. * @param value 是否激活。
  17356. */
  17357. set active(value:boolean);
  17358. /**
  17359. * 获取在场景中是否激活。
  17360. * @return 在场景中是否激活。
  17361. */
  17362. get activeInHierarchy():boolean;
  17363. /**
  17364. * @private
  17365. */
  17366. protected _onActive():void;
  17367. /**
  17368. * @private
  17369. */
  17370. protected _onInActive():void;
  17371. /**
  17372. * @private
  17373. */
  17374. protected _onActiveInScene():void;
  17375. /**
  17376. * @private
  17377. */
  17378. protected _onInActiveInScene():void;
  17379. /**
  17380. * 组件被激活后执行,此时所有节点和组件均已创建完毕,次方法只执行一次
  17381. * 此方法为虚方法,使用时重写覆盖即可
  17382. */
  17383. onAwake():void;
  17384. /**
  17385. * 组件被启用后执行,比如节点被添加到舞台后
  17386. * 此方法为虚方法,使用时重写覆盖即可
  17387. */
  17388. onEnable():void;
  17389. /**
  17390. * @private
  17391. */
  17392. private _activeScripts:any;
  17393. /**
  17394. * @private
  17395. */
  17396. private _processInActive:any;
  17397. /**
  17398. * @private
  17399. */
  17400. private _inActiveScripts:any;
  17401. /**
  17402. * 组件被禁用时执行,比如从节点从舞台移除后
  17403. * 此方法为虚方法,使用时重写覆盖即可
  17404. */
  17405. onDisable():void;
  17406. /**
  17407. * @private
  17408. */
  17409. protected _onAdded():void;
  17410. /**
  17411. * @private
  17412. */
  17413. protected _onRemoved():void;
  17414. /**
  17415. * 添加组件实例。
  17416. * @param component 组建实例。
  17417. * @return 组件。
  17418. */
  17419. addComponentIntance(component:laya.components.Component):any;
  17420. /**
  17421. * 添加组件。
  17422. * @param componentType 组件类型。
  17423. * @return 组件。
  17424. */
  17425. addComponent(componentType:typeof laya.components.Component):any;
  17426. /**
  17427. * 获得组件实例,如果没有则返回为null
  17428. * @param componentType 组建类型
  17429. * @return 返回组件
  17430. */
  17431. getComponent(componentType:typeof laya.components.Component):any;
  17432. /**
  17433. * 获得组件实例,如果没有则返回为null
  17434. * @param componentType 组建类型
  17435. * @return 返回组件数组
  17436. */
  17437. getComponents(componentType:typeof laya.components.Component):any[];
  17438. /**
  17439. * @private 获取timer
  17440. */
  17441. get timer():laya.utils.Timer;
  17442. }
  17443. }
  17444. declare module laya.display {
  17445. /**
  17446. * 场景类,负责场景创建,加载,销毁等功能
  17447. * 场景被从节点移除后,并不会被自动垃圾机制回收,如果想回收,请调用destroy接口,可以通过unDestroyedScenes属性查看还未被销毁的场景列表
  17448. */
  17449. class Scene extends laya.display.Sprite {
  17450. /**
  17451. * 创建后,还未被销毁的场景列表,方便查看还未被销毁的场景列表,方便内存管理,本属性只读,请不要直接修改
  17452. */
  17453. static unDestroyedScenes:any[];
  17454. /**
  17455. * 获取根节点
  17456. */
  17457. private static _root:any;
  17458. /**
  17459. * @private
  17460. */
  17461. private static _loadPage:any;
  17462. /**
  17463. * 场景被关闭后,是否自动销毁(销毁节点和使用到的资源),默认为false
  17464. */
  17465. autoDestroyAtClosed:boolean;
  17466. /**
  17467. * 场景地址
  17468. */
  17469. url:string;
  17470. /**
  17471. * 场景时钟
  17472. */
  17473. private _timer:any;
  17474. /**
  17475. * @private
  17476. */
  17477. private _viewCreated:any;
  17478. constructor(createChildren?:boolean);
  17479. /**
  17480. * @private 兼容老项目
  17481. */
  17482. protected createChildren():void;
  17483. /**
  17484. * 加载模式设置uimap
  17485. * @param url uimapJosn的url
  17486. */
  17487. static setUIMap(url:any):void;
  17488. /**
  17489. * @private 兼容老项目
  17490. 装载场景视图。用于加载模式。
  17491. * @param path 场景地址。
  17492. */
  17493. loadScene(path:string):void;
  17494. private _onSceneLoaded:any;
  17495. /**
  17496. * @private 兼容老项目
  17497. 通过视图数据创建视图。
  17498. * @param uiView 视图数据信息。
  17499. */
  17500. createView(view:any):void;
  17501. /**
  17502. * 根据IDE内的节点id,获得节点实例
  17503. */
  17504. getNodeByID(id:number):any;
  17505. /**
  17506. * 打开场景。【注意】被关闭的场景,如果没有设置autoDestroyAtRemoved=true,则资源可能不能被回收,需要自己手动回收
  17507. * @param closeOther 是否关闭其他场景,默认为true(可选)
  17508. * @param param 打开页面的参数,会传递给onOpened方法(可选)
  17509. */
  17510. open(closeOther?:boolean,param?:any):void;
  17511. /**
  17512. * 场景打开完成后,调用此方法(如果有弹出动画,则在动画完成后执行)
  17513. */
  17514. onOpened(param:any):void;
  17515. /**
  17516. * 关闭场景
  17517. * 【注意】被关闭的场景,如果没有设置autoDestroyAtRemoved=true,则资源可能不能被回收,需要自己手动回收
  17518. * @param type 关闭的原因,会传递给onClosed函数
  17519. */
  17520. close(type?:string):void;
  17521. /**
  17522. * 关闭完成后,调用此方法(如果有关闭动画,则在动画完成后执行)
  17523. * @param type 如果是点击默认关闭按钮触发,则传入关闭按钮的名字(name),否则为null。
  17524. */
  17525. onClosed(type?:string):void;
  17526. /**
  17527. * @inheritDoc
  17528. * @override
  17529. */
  17530. destroy(destroyChild?:boolean):void;
  17531. /**
  17532. * @inheritDoc
  17533. * @override
  17534. */
  17535. set scaleX(value:number);
  17536. /**
  17537. * @inheritDoc
  17538. * @override
  17539. */
  17540. get scaleX():number;
  17541. /**
  17542. * @inheritDoc
  17543. * @override
  17544. */
  17545. set scaleY(value:number);
  17546. /**
  17547. * @inheritDoc
  17548. * @override
  17549. */
  17550. get scaleY():number;
  17551. /**
  17552. * @inheritDoc
  17553. * @override
  17554. */
  17555. get width():number;
  17556. /**
  17557. * @inheritDoc
  17558. * @override
  17559. */
  17560. set width(value:number);
  17561. /**
  17562. * @inheritDoc
  17563. * @override
  17564. */
  17565. get height():number;
  17566. /**
  17567. * @inheritDoc
  17568. * @override
  17569. */
  17570. set height(value:number);
  17571. /**
  17572. * @private
  17573. */
  17574. protected _sizeChanged():void;
  17575. /**
  17576. * 获取场景根容器
  17577. */
  17578. static get root():laya.display.Sprite;
  17579. /**
  17580. * 场景时钟
  17581. * @override
  17582. */
  17583. get timer():laya.utils.Timer;
  17584. set timer(value:laya.utils.Timer);
  17585. /**
  17586. * 加载场景及场景使用到的资源
  17587. * @param url 场景地址
  17588. * @param complete 加载完成回调,返回场景实例(可选)
  17589. * @param progress 加载进度回调(可选)
  17590. */
  17591. static load(url:string,complete?:laya.utils.Handler,progress?:laya.utils.Handler):void;
  17592. /**
  17593. * 加载并打开场景
  17594. * @param url 场景地址
  17595. * @param closeOther 是否关闭其他场景,默认为true(可选),【注意】被关闭的场景,如果没有设置autoDestroyAtRemoved=true,则资源可能不能被回收,需要自己手动回收
  17596. * @param param 打开页面的参数,会传递给onOpened方法(可选)
  17597. * @param complete 打开完成回调,返回场景实例(可选)
  17598. * @param progress 加载进度回调(可选)
  17599. */
  17600. static open(url:string,closeOther?:boolean,param?:any,complete?:laya.utils.Handler,progress?:laya.utils.Handler):void;
  17601. /**
  17602. * @private
  17603. */
  17604. private static _onSceneLoaded:any;
  17605. /**
  17606. * 根据地址,关闭场景(包括对话框)
  17607. * @param url 场景地址
  17608. * @param name 如果name不为空,name必须相同才能关闭
  17609. * @return 返回是否关闭成功,如果url找不到,则不成功
  17610. */
  17611. static close(url:string,name?:string):boolean;
  17612. /**
  17613. * 关闭所有场景,不包括对话框,如果关闭对话框,请使用Dialog.closeAll()
  17614. * 【注意】被关闭的场景,如果没有设置autoDestroyAtRemoved=true,则资源可能不能被回收,需要自己手动回收
  17615. */
  17616. static closeAll():void;
  17617. /**
  17618. * 根据地址,销毁场景(包括对话框)
  17619. * @param url 场景地址
  17620. * @param name 如果name不为空,name必须相同才能关闭
  17621. * @return 返回是否销毁成功,如果url找不到,则不成功
  17622. */
  17623. static destroy(url:string,name?:string):boolean;
  17624. /**
  17625. * 销毁当前没有被使用的资源,该函数会忽略lock=true的资源。
  17626. */
  17627. static gc():void;
  17628. /**
  17629. * 设置loading界面,引擎会在调用open方法后,延迟打开loading界面,在页面添加到舞台之后,关闭loading界面
  17630. * @param loadPage load界面实例
  17631. */
  17632. static setLoadingPage(loadPage:Scene):void;
  17633. /**
  17634. * 显示loading界面
  17635. * @param param 打开参数,如果是scene,则会传递给onOpened方法
  17636. * @param delay 延迟打开时间,默认500毫秒
  17637. */
  17638. static showLoadingPage(param?:any,delay?:number):void;
  17639. private static _showLoading:any;
  17640. private static _hideLoading:any;
  17641. /**
  17642. * 隐藏loading界面
  17643. * @param delay 延迟关闭时间,默认500毫秒
  17644. */
  17645. static hideLoadingPage(delay?:number):void;
  17646. }
  17647. }
  17648. declare module laya.display {
  17649. /**
  17650. * 在显示对象上按下后调度。
  17651. * @eventType Event.MOUSE_DOWN
  17652. */
  17653. /**
  17654. * 在显示对象抬起后调度。
  17655. * @eventType Event.MOUSE_UP
  17656. */
  17657. /**
  17658. * 鼠标在对象身上进行移动后调度
  17659. * @eventType Event.MOUSE_MOVE
  17660. */
  17661. /**
  17662. * 鼠标经过对象后调度。
  17663. * @eventType Event.MOUSE_OVER
  17664. */
  17665. /**
  17666. * 鼠标离开对象后调度。
  17667. * @eventType Event.MOUSE_OUT
  17668. */
  17669. /**
  17670. * 鼠标点击对象后调度。
  17671. * @eventType Event.CLICK
  17672. */
  17673. /**
  17674. * 开始拖动后调度。
  17675. * @eventType Event.DRAG_START
  17676. */
  17677. /**
  17678. * 拖动中调度。
  17679. * @eventType Event.DRAG_MOVE
  17680. */
  17681. /**
  17682. * 拖动结束后调度。
  17683. * @eventType Event.DRAG_END
  17684. */
  17685. /**
  17686. * <p> <code>Sprite</code> 是基本的显示图形的显示列表节点。 <code>Sprite</code> 默认没有宽高,默认不接受鼠标事件。通过 <code>graphics</code> 可以绘制图片或者矢量图,支持旋转,缩放,位移等操作。<code>Sprite</code>同时也是容器类,可用来添加多个子节点。</p>
  17687. * <p>注意: <code>Sprite</code> 默认没有宽高,可以通过<code>getBounds</code>函数获取;也可手动设置宽高;还可以设置<code>autoSize=true</code>,然后再获取宽高。<code>Sprite</code>的宽高一般用于进行碰撞检测和排版,并不影响显示图像大小,如果需要更改显示图像大小,请使用 <code>scaleX</code> , <code>scaleY</code> , <code>scale</code>。</p>
  17688. * <p> <code>Sprite</code> 默认不接受鼠标事件,即<code>mouseEnabled=false</code>,但是只要对其监听任意鼠标事件,会自动打开自己以及所有父对象的<code>mouseEnabled=true</code>。所以一般也无需手动设置<code>mouseEnabled</code>。</p>
  17689. * <p>LayaAir引擎API设计精简巧妙。核心显示类只有一个<code>Sprite</code>。<code>Sprite</code>针对不同的情况做了渲染优化,所以保证一个类实现丰富功能的同时,又达到高性能。</p>
  17690. * @example <caption>创建了一个 <code>Sprite</code> 实例。</caption>
  17691. package
  17692. {
  17693. import laya.display.Sprite;
  17694. import laya.events.Event;
  17695. public class Sprite_Example
  17696. {
  17697. private var sprite:Sprite;
  17698. private var shape:Sprite
  17699. public function Sprite_Example()
  17700. {
  17701. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  17702. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  17703. onInit();
  17704. }
  17705. private function onInit():void
  17706. {
  17707. sprite = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  17708. sprite.loadImage("resource/ui/bg.png");//加载并显示图片。
  17709. sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。
  17710. sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。
  17711. sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。
  17712. sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。
  17713. Laya.stage.addChild(sprite);//将此 sprite 对象添加到显示列表。
  17714. sprite.on(Event.CLICK, this, onClickSprite);//给 sprite 对象添加点击事件侦听。
  17715. shape = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  17716. shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。
  17717. shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。
  17718. shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。
  17719. shape.width = 100;//设置 shape 对象的宽度。
  17720. shape.height = 100;//设置 shape 对象的高度。
  17721. shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。
  17722. shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。
  17723. Laya.stage.addChild(shape);//将此 shape 对象添加到显示列表。
  17724. shape.on(Event.CLICK, this, onClickShape);//给 shape 对象添加点击事件侦听。
  17725. }
  17726. private function onClickSprite():void
  17727. {
  17728. trace("点击 sprite 对象。");
  17729. sprite.rotation += 5;//旋转 sprite 对象。
  17730. }
  17731. private function onClickShape():void
  17732. {
  17733. trace("点击 shape 对象。");
  17734. shape.rotation += 5;//旋转 shape 对象。
  17735. }
  17736. }
  17737. }
  17738. * @example var sprite;
  17739. var shape;
  17740. Sprite_Example();
  17741. function Sprite_Example()
  17742. {
  17743. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  17744. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  17745. onInit();
  17746. }
  17747. function onInit()
  17748. {
  17749. sprite = new laya.display.Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  17750. sprite.loadImage("resource/ui/bg.png");//加载并显示图片。
  17751. sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。
  17752. sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。
  17753. sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。
  17754. sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。
  17755. Laya.stage.addChild(sprite);//将此 sprite 对象添加到显示列表。
  17756. sprite.on(Event.CLICK, this, onClickSprite);//给 sprite 对象添加点击事件侦听。
  17757. shape = new laya.display.Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  17758. shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。
  17759. shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。
  17760. shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。
  17761. shape.width = 100;//设置 shape 对象的宽度。
  17762. shape.height = 100;//设置 shape 对象的高度。
  17763. shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。
  17764. shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。
  17765. Laya.stage.addChild(shape);//将此 shape 对象添加到显示列表。
  17766. shape.on(laya.events.Event.CLICK, this, onClickShape);//给 shape 对象添加点击事件侦听。
  17767. }
  17768. function onClickSprite()
  17769. {
  17770. console.log("点击 sprite 对象。");
  17771. sprite.rotation += 5;//旋转 sprite 对象。
  17772. }
  17773. function onClickShape()
  17774. {
  17775. console.log("点击 shape 对象。");
  17776. shape.rotation += 5;//旋转 shape 对象。
  17777. }
  17778. * @example import Sprite = laya.display.Sprite;
  17779. class Sprite_Example {
  17780. private sprite: Sprite;
  17781. private shape: Sprite
  17782. public Sprite_Example() {
  17783. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  17784. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  17785. this.onInit();
  17786. }
  17787. private onInit(): void {
  17788. this.sprite = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  17789. this.sprite.loadImage("resource/ui/bg.png");//加载并显示图片。
  17790. this.sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。
  17791. this.sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。
  17792. this.sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。
  17793. this.sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。
  17794. Laya.stage.addChild(this.sprite);//将此 sprite 对象添加到显示列表。
  17795. this.sprite.on(laya.events.Event.CLICK, this, this.onClickSprite);//给 sprite 对象添加点击事件侦听。
  17796. this.shape = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  17797. this.shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。
  17798. this.shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。
  17799. this.shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。
  17800. this.shape.width = 100;//设置 shape 对象的宽度。
  17801. this.shape.height = 100;//设置 shape 对象的高度。
  17802. this.shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。
  17803. this.shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。
  17804. Laya.stage.addChild(this.shape);//将此 shape 对象添加到显示列表。
  17805. this.shape.on(laya.events.Event.CLICK, this, this.onClickShape);//给 shape 对象添加点击事件侦听。
  17806. }
  17807. private onClickSprite(): void {
  17808. console.log("点击 sprite 对象。");
  17809. this.sprite.rotation += 5;//旋转 sprite 对象。
  17810. }
  17811. private onClickShape(): void {
  17812. console.log("点击 shape 对象。");
  17813. this.shape.rotation += 5;//旋转 shape 对象。
  17814. }
  17815. }
  17816. */
  17817. class Sprite extends laya.display.Node {
  17818. _setY(value: number);
  17819. _setX(value: number);
  17820. /**
  17821. * <p>鼠标事件与此对象的碰撞检测是否可穿透。碰撞检测发生在鼠标事件的捕获阶段,此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象。</p>
  17822. * <p>穿透表示鼠标事件发生的位置处于本对象绘图区域内时,才算命中,而与对象宽高和值为Rectangle对象的hitArea属性无关。如果sprite.hitArea值是HitArea对象,表示显式声明了此对象的鼠标事件响应区域,而忽略对象的宽高、mouseThrough属性。</p>
  17823. * <p>影响对象鼠标事件响应区域的属性为:width、height、hitArea,优先级顺序为:hitArea(type:HitArea)>hitArea(type:Rectangle)>width/height。</p>
  17824. * @default false 不可穿透,此对象的鼠标响应区域由width、height、hitArea属性决定。</p>
  17825. */
  17826. mouseThrough:boolean;
  17827. /**
  17828. * <p>指定是否自动计算宽高数据。默认值为 false 。</p>
  17829. * <p>Sprite宽高默认为0,并且不会随着绘制内容的变化而变化,如果想根据绘制内容获取宽高,可以设置本属性为true,或者通过getBounds方法获取。设置为true,对性能有一定影响。</p>
  17830. */
  17831. autoSize:boolean;
  17832. /**
  17833. * <p>指定鼠标事件检测是优先检测自身,还是优先检测其子对象。鼠标事件检测发生在鼠标事件的捕获阶段,此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象。</p>
  17834. * <p>如果为false,优先检测子对象,当有子对象被命中时,中断检测,获得命中目标。如果未命中任何子对象,最后再检测此对象;如果为true,则优先检测本对象,如果本对象没有被命中,直接中断检测,表示没有命中目标;如果本对象被命中,则进一步递归检测其子对象,以确认最终的命中目标。</p>
  17835. * <p>合理使用本属性,能减少鼠标事件检测的节点,提高性能。可以设置为true的情况:开发者并不关心此节点的子节点的鼠标事件检测结果,也就是以此节点作为其子节点的鼠标事件检测依据。</p>
  17836. * <p>Stage对象和UI的View组件默认为true。</p>
  17837. * @default false 优先检测此对象的子对象,当递归检测完所有子对象后,仍然没有找到目标对象,最后再检测此对象。
  17838. */
  17839. hitTestPrior:boolean;
  17840. /**
  17841. * @inheritDoc
  17842. * @override
  17843. */
  17844. destroy(destroyChild?:boolean):void;
  17845. constructor();
  17846. /**
  17847. * 根据zOrder进行重新排序。
  17848. */
  17849. updateZOrder():void;
  17850. /**
  17851. * 设置是否开启自定义渲染,只有开启自定义渲染,才能使用customRender函数渲染。
  17852. */
  17853. set customRenderEnable(b:boolean);
  17854. /**
  17855. * <p>指定显示对象是否缓存为静态图像,cacheAs时,子对象发生变化,会自动重新缓存,同时也可以手动调用reCache方法更新缓存。</p>
  17856. * <p>建议把不经常变化的“复杂内容”缓存为静态图像,能极大提高渲染性能。cacheAs有"none","normal"和"bitmap"三个值可选。
  17857. * <li>默认为"none",不做任何缓存。</li>
  17858. * <li>当值为"normal"时,canvas模式下进行画布缓存,webgl模式下进行命令缓存。</li>
  17859. * <li>当值为"bitmap"时,canvas模式下进行依然是画布缓存,webgl模式下使用renderTarget缓存。</li></p>
  17860. * <p>webgl下renderTarget缓存模式缺点:会额外创建renderTarget对象,增加内存开销,缓存面积有最大2048限制,不断重绘时会增加CPU开销。优点:大幅减少drawcall,渲染性能最高。
  17861. * webgl下命令缓存模式缺点:只会减少节点遍历及命令组织,不会减少drawcall数,性能中等。优点:没有额外内存开销,无需renderTarget支持。</p>
  17862. */
  17863. get cacheAs():string;
  17864. set cacheAs(value:string);
  17865. /**
  17866. * 更新_cnavas相关的状态
  17867. */
  17868. private _checkCanvasEnable:any;
  17869. /**
  17870. * 设置cacheAs为非空时此值才有效,staticCache=true时,子对象变化时不会自动更新缓存,只能通过调用reCache方法手动刷新。
  17871. */
  17872. get staticCache():boolean;
  17873. set staticCache(value:boolean);
  17874. /**
  17875. * 在设置cacheAs的情况下,调用此方法会重新刷新缓存。
  17876. */
  17877. reCache():void;
  17878. getRepaint():number;
  17879. /**
  17880. * 表示显示对象相对于父容器的水平方向坐标值。
  17881. */
  17882. get x():number;
  17883. set x(value:number);
  17884. /**
  17885. * 表示显示对象相对于父容器的垂直方向坐标值。
  17886. */
  17887. get y():number;
  17888. set y(value:number);
  17889. /**
  17890. * <p>显示对象的宽度,单位为像素,默认为0。</p>
  17891. * <p>此宽度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。</p>
  17892. * <p>可以通过getbounds获取显示对象图像的实际宽度。</p>
  17893. */
  17894. get width():number;
  17895. set width(value:number);
  17896. set_width(value:number):void;
  17897. get_width():number;
  17898. /**
  17899. * <p>显示对象的高度,单位为像素,默认为0。</p>
  17900. * <p>此高度用于鼠标碰撞检测,并不影响显示对象图像大小。需要对显示对象的图像进行缩放,请使用scale、scaleX、scaleY。</p>
  17901. * <p>可以通过getbounds获取显示对象图像的实际高度。</p>
  17902. */
  17903. get height():number;
  17904. set height(value:number);
  17905. set_height(value:number):void;
  17906. get_height():number;
  17907. /**
  17908. * <p>对象的显示宽度(以像素为单位)。</p>
  17909. */
  17910. get displayWidth():number;
  17911. /**
  17912. * <p>对象的显示高度(以像素为单位)。</p>
  17913. */
  17914. get displayHeight():number;
  17915. /**
  17916. * 设置对象bounds大小,如果有设置,则不再通过getBounds计算,合理使用能提高性能。
  17917. * @param bound bounds矩形区域
  17918. */
  17919. setSelfBounds(bound:laya.maths.Rectangle):void;
  17920. /**
  17921. * <p>获取本对象在父容器坐标系的矩形显示区域。</p>
  17922. * <p><b>注意:</b>计算量较大,尽量少用。</p>
  17923. * @return 矩形区域。
  17924. */
  17925. getBounds():laya.maths.Rectangle;
  17926. /**
  17927. * 获取本对象在自己坐标系的矩形显示区域。
  17928. * <p><b>注意:</b>计算量较大,尽量少用。</p>
  17929. * @return 矩形区域。
  17930. */
  17931. getSelfBounds():laya.maths.Rectangle;
  17932. /**
  17933. * 返回此实例中的绘图对象( <code>Graphics</code> )的显示区域,不包括子对象。
  17934. * @param realSize (可选)使用图片的真实大小,默认为false
  17935. * @return 一个 Rectangle 对象,表示获取到的显示区域。
  17936. */
  17937. getGraphicBounds(realSize?:boolean):laya.maths.Rectangle;
  17938. /**
  17939. * @private 获取样式。
  17940. * @return 样式 Style 。
  17941. */
  17942. getStyle():laya.display.css.SpriteStyle;
  17943. /**
  17944. * @private 设置样式。
  17945. * @param value 样式。
  17946. */
  17947. setStyle(value:laya.display.css.SpriteStyle):void;
  17948. /**
  17949. * X轴缩放值,默认值为1。设置为负数,可以实现水平反转效果,比如scaleX=-1。
  17950. */
  17951. get scaleX():number;
  17952. set scaleX(value:number);
  17953. /**
  17954. * Y轴缩放值,默认值为1。设置为负数,可以实现垂直反转效果,比如scaleX=-1。
  17955. */
  17956. get scaleY():number;
  17957. set scaleY(value:number);
  17958. set_scaleX(value:number):void;
  17959. get_scaleX():number;
  17960. set_scaleY(value:number):void;
  17961. get_scaleY():number;
  17962. /**
  17963. * 旋转角度,默认值为0。以角度为单位。
  17964. */
  17965. get rotation():number;
  17966. set rotation(value:number);
  17967. /**
  17968. * 水平倾斜角度,默认值为0。以角度为单位。
  17969. */
  17970. get skewX():number;
  17971. set skewX(value:number);
  17972. /**
  17973. * 垂直倾斜角度,默认值为0。以角度为单位。
  17974. */
  17975. get skewY():number;
  17976. set skewY(value:number);
  17977. /**
  17978. * @private
  17979. */
  17980. protected _adjustTransform():laya.maths.Matrix;
  17981. /**
  17982. * <p>对象的矩阵信息。通过设置矩阵可以实现节点旋转,缩放,位移效果。</p>
  17983. * <p>矩阵更多信息请参考 <code>Matrix</code></p>
  17984. */
  17985. get transform():laya.maths.Matrix;
  17986. set transform(value:laya.maths.Matrix);
  17987. get_transform():laya.maths.Matrix;
  17988. set_transform(value:laya.maths.Matrix):void;
  17989. /**
  17990. * X轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。
  17991. */
  17992. get pivotX():number;
  17993. set pivotX(value:number);
  17994. /**
  17995. * Y轴 轴心点的位置,单位为像素,默认为0。轴心点会影响对象位置,缩放中心,旋转中心。
  17996. */
  17997. get pivotY():number;
  17998. set pivotY(value:number);
  17999. /**
  18000. * 透明度,值为0-1,默认值为1,表示不透明。更改alpha值会影响drawcall。
  18001. */
  18002. get alpha():number;
  18003. set alpha(value:number);
  18004. /**
  18005. * 表示是否可见,默认为true。如果设置不可见,节点将不被渲染。
  18006. */
  18007. get visible():boolean;
  18008. set visible(value:boolean);
  18009. get_visible():boolean;
  18010. set_visible(value:boolean):void;
  18011. /**
  18012. * 指定要使用的混合模式。目前只支持"lighter"。
  18013. */
  18014. get blendMode():string;
  18015. set blendMode(value:string);
  18016. /**
  18017. * 绘图对象。封装了绘制位图和矢量图的接口,Sprite所有的绘图操作都通过Graphics来实现的。
  18018. */
  18019. get graphics():laya.display.Graphics;
  18020. set graphics(value:laya.display.Graphics);
  18021. /**
  18022. * <p>显示对象的滚动矩形范围,具有裁剪效果(如果只想限制子对象渲染区域,请使用viewport)</p>
  18023. * <p> srollRect和viewport的区别:<br/>
  18024. * 1.srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。<br/>
  18025. * 2.设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。</p>
  18026. */
  18027. get scrollRect():laya.maths.Rectangle;
  18028. set scrollRect(value:laya.maths.Rectangle);
  18029. /**
  18030. * <p>设置坐标位置。相当于分别设置x和y属性。</p>
  18031. * <p>因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pos(...).scale(...);</p>
  18032. * @param x X轴坐标。
  18033. * @param y Y轴坐标。
  18034. * @param speedMode (可选)是否极速模式,正常是调用this.x=value进行赋值,极速模式直接调用内部函数处理,如果未重写x,y属性,建议设置为急速模式性能更高。
  18035. * @return 返回对象本身。
  18036. */
  18037. pos(x:number,y:number,speedMode?:boolean):Sprite;
  18038. /**
  18039. * <p>设置轴心点。相当于分别设置pivotX和pivotY属性。</p>
  18040. * <p>因为返回值为Sprite对象本身,所以可以使用如下语法:spr.pivot(...).pos(50, 100);</p>
  18041. * @param x X轴心点。
  18042. * @param y Y轴心点。
  18043. * @return 返回对象本身。
  18044. */
  18045. pivot(x:number,y:number):Sprite;
  18046. /**
  18047. * <p>设置宽高。相当于分别设置width和height属性。</p>
  18048. * <p>因为返回值为Sprite对象本身,所以可以使用如下语法:spr.size(...).pos(50, 100);</p>
  18049. * @param width 宽度值。
  18050. * @param hegiht 高度值。
  18051. * @return 返回对象本身。
  18052. */
  18053. size(width:number,height:number):Sprite;
  18054. /**
  18055. * <p>设置缩放。相当于分别设置scaleX和scaleY属性。</p>
  18056. * <p>因为返回值为Sprite对象本身,所以可以使用如下语法:spr.scale(...).pos(50, 100);</p>
  18057. * @param scaleX X轴缩放比例。
  18058. * @param scaleY Y轴缩放比例。
  18059. * @param speedMode (可选)是否极速模式,正常是调用this.scaleX=value进行赋值,极速模式直接调用内部函数处理,如果未重写scaleX,scaleY属性,建议设置为急速模式性能更高。
  18060. * @return 返回对象本身。
  18061. */
  18062. scale(scaleX:number,scaleY:number,speedMode?:boolean):Sprite;
  18063. /**
  18064. * <p>设置倾斜角度。相当于分别设置skewX和skewY属性。</p>
  18065. * <p>因为返回值为Sprite对象本身,所以可以使用如下语法:spr.skew(...).pos(50, 100);</p>
  18066. * @param skewX 水平倾斜角度。
  18067. * @param skewY 垂直倾斜角度。
  18068. * @return 返回对象本身
  18069. */
  18070. skew(skewX:number,skewY:number):Sprite;
  18071. /**
  18072. * 更新、呈现显示对象。由系统调用。
  18073. * @param context 渲染的上下文引用。
  18074. * @param x X轴坐标。
  18075. * @param y Y轴坐标。
  18076. */
  18077. render(ctx:laya.resource.Context,x:number,y:number):void;
  18078. /**
  18079. * <p>绘制 当前<code>Sprite</code> 到 <code>Canvas</code> 上,并返回一个HtmlCanvas。</p>
  18080. * <p>绘制的结果可以当作图片源,再次绘制到其他Sprite里面,示例:</p>
  18081. *
  18082. * var htmlCanvas:HTMLCanvas = sprite.drawToCanvas(100, 100, 0, 0);//把精灵绘制到canvas上面
  18083. * var sp:Sprite = new Sprite();//创建精灵
  18084. * sp.graphics.drawTexture(htmlCanvas.getTexture());//把截图绘制到精灵上
  18085. * Laya.stage.addChild(sp);//把精灵显示到舞台
  18086. *
  18087. * <p>也可以获取原始图片数据,分享到网上,从而实现截图效果,示例:</p>
  18088. *
  18089. * var htmlCanvas:HTMLCanvas = sprite.drawToCanvas(100, 100, 0, 0);//把精灵绘制到canvas上面
  18090. * htmlCanvas.toBase64("image/png",0.9);//打印图片base64信息,可以发给服务器或者保存为图片
  18091. * @param canvasWidth 画布宽度。
  18092. * @param canvasHeight 画布高度。
  18093. * @param x 绘制的 X 轴偏移量。
  18094. * @param y 绘制的 Y 轴偏移量。
  18095. * @return HTMLCanvas 对象。
  18096. */
  18097. drawToCanvas(canvasWidth:number,canvasHeight:number,offsetX:number,offsetY:number):laya.resource.HTMLCanvas;
  18098. /**
  18099. * 绘制到一个Texture对象
  18100. * @param canvasWidth
  18101. * @param canvasHeight
  18102. * @param offsetX
  18103. * @param offsetY
  18104. */
  18105. drawToTexture(canvasWidth:number,canvasHeight:number,offsetX:number,offsetY:number,rt?:laya.resource.RenderTexture2D|null):laya.resource.Texture|laya.resource.RenderTexture2D;
  18106. /**
  18107. * 把当前对象渲染到指定的贴图上。贴图由外部指定,避免每次都创建。
  18108. * @param offx
  18109. * @param offy
  18110. * @param tex 输出渲染结果
  18111. */
  18112. drawToTexture3D(offx:number,offy:number,tex:laya.resource.Texture2D):void;
  18113. /**
  18114. * @private 绘制到画布。
  18115. */
  18116. static drawToCanvas(sprite:Sprite,_renderType:number,canvasWidth:number,canvasHeight:number,offsetX:number,offsetY:number):laya.resource.HTMLCanvas;
  18117. static drawtocanvCtx:laya.resource.Context;
  18118. /**
  18119. * @private
  18120. */
  18121. static drawToTexture(sprite:Sprite,_renderType:number,canvasWidth:number,canvasHeight:number,offsetX:number,offsetY:number,rt?:laya.resource.RenderTexture2D|null):laya.resource.Texture|laya.resource.RenderTexture2D;
  18122. /**
  18123. * <p>自定义更新、呈现显示对象。一般用来扩展渲染模式,请合理使用,可能会导致在加速器上无法渲染。</p>
  18124. * <p><b>注意</b>不要在此函数内增加或删除树节点,否则会对树节点遍历造成影响。</p>
  18125. * @param context 渲染的上下文引用。
  18126. * @param x X轴坐标。
  18127. * @param y Y轴坐标。
  18128. */
  18129. customRender(context:laya.resource.Context,x:number,y:number):void;
  18130. /**
  18131. * 滤镜集合。可以设置多个滤镜组合。
  18132. */
  18133. get filters():any[];
  18134. set filters(value:any[]);
  18135. /**
  18136. * 把本地坐标转换为相对stage的全局坐标。
  18137. * @param point 本地坐标点。
  18138. * @param createNewPoint (可选)是否创建一个新的Point对象作为返回值,默认为false,使用输入的point对象返回,减少对象创建开销。
  18139. * @param globalNode global节点,默认为Laya.stage
  18140. * @return 转换后的坐标的点。
  18141. */
  18142. localToGlobal(point:laya.maths.Point,createNewPoint?:boolean,globalNode?:Sprite|null):laya.maths.Point;
  18143. /**
  18144. * 把stage的全局坐标转换为本地坐标。
  18145. * @param point 全局坐标点。
  18146. * @param createNewPoint (可选)是否创建一个新的Point对象作为返回值,默认为false,使用输入的point对象返回,减少对象创建开销。
  18147. * @param globalNode global节点,默认为Laya.stage
  18148. * @return 转换后的坐标的点。
  18149. */
  18150. globalToLocal(point:laya.maths.Point,createNewPoint?:boolean,globalNode?:Sprite|null):laya.maths.Point;
  18151. /**
  18152. * 将本地坐标系坐标转转换到父容器坐标系。
  18153. * @param point 本地坐标点。
  18154. * @return 转换后的点。
  18155. */
  18156. toParentPoint(point:laya.maths.Point):laya.maths.Point;
  18157. /**
  18158. * 将父容器坐标系坐标转换到本地坐标系。
  18159. * @param point 父容器坐标点。
  18160. * @return 转换后的点。
  18161. */
  18162. fromParentPoint(point:laya.maths.Point):laya.maths.Point;
  18163. /**
  18164. * 将Stage坐标系坐标转换到本地坐标系。
  18165. * @param point 父容器坐标点。
  18166. * @return 转换后的点。
  18167. */
  18168. fromStagePoint(point:laya.maths.Point):laya.maths.Point;
  18169. /**
  18170. * <p>增加事件侦听器,以使侦听器能够接收事件通知。</p>
  18171. * <p>如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。</p>
  18172. * @param type 事件的类型。
  18173. * @param caller 事件侦听函数的执行域。
  18174. * @param listener 事件侦听函数。
  18175. * @param args (可选)事件侦听函数的回调参数。
  18176. * @return 此 EventDispatcher 对象。
  18177. * @override
  18178. */
  18179. on(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  18180. /**
  18181. * <p>增加事件侦听器,以使侦听器能够接收事件通知,此侦听事件响应一次后则自动移除侦听。</p>
  18182. * <p>如果侦听鼠标事件,则会自动设置自己和父亲节点的属性 mouseEnabled 的值为 true(如果父节点mouseEnabled=false,则停止设置父节点mouseEnabled属性)。</p>
  18183. * @param type 事件的类型。
  18184. * @param caller 事件侦听函数的执行域。
  18185. * @param listener 事件侦听函数。
  18186. * @param args (可选)事件侦听函数的回调参数。
  18187. * @return 此 EventDispatcher 对象。
  18188. * @override
  18189. */
  18190. once(type:string,caller:any,listener:Function,args?:any[]):laya.events.EventDispatcher;
  18191. /**
  18192. * @private
  18193. */
  18194. protected _onDisplay(v?:boolean):void;
  18195. /**
  18196. * @private
  18197. * @override
  18198. */
  18199. protected _setParent(value:laya.display.Node):void;
  18200. /**
  18201. * <p>加载并显示一个图片。相当于加载图片后,设置texture属性</p>
  18202. * <p>注意:2.0改动:多次调用,只会显示一个图片(1.0会显示多个图片),x,y,width,height参数取消。</p>
  18203. * @param url 图片地址。
  18204. * @param complete (可选)加载完成回调。
  18205. * @return 返回精灵对象本身。
  18206. */
  18207. loadImage(url:string,complete?:laya.utils.Handler):Sprite;
  18208. /**
  18209. * 根据图片地址创建一个新的 <code>Sprite</code> 对象用于加载并显示此图片。
  18210. * @param url 图片地址。
  18211. * @return 返回新的 <code>Sprite</code> 对象。
  18212. */
  18213. static fromImage(url:string):Sprite;
  18214. /**
  18215. * cacheAs后,设置自己和父对象缓存失效。
  18216. */
  18217. repaint(type?:number):void;
  18218. /**
  18219. * @private
  18220. * @override
  18221. */
  18222. protected _childChanged(child?:laya.display.Node):void;
  18223. /**
  18224. * cacheAs时,设置所有父对象缓存失效。
  18225. */
  18226. parentRepaint(type?:number):void;
  18227. /**
  18228. * 对舞台 <code>stage</code> 的引用。
  18229. */
  18230. get stage():laya.display.Stage;
  18231. /**
  18232. * <p>可以设置一个Rectangle区域作为点击区域,或者设置一个<code>HitArea</code>实例作为点击区域,HitArea内可以设置可点击和不可点击区域。</p>
  18233. * <p>如果不设置hitArea,则根据宽高形成的区域进行碰撞。</p>
  18234. */
  18235. get hitArea():any;
  18236. set hitArea(value:any);
  18237. /**
  18238. * <p>遮罩,可以设置一个对象(支持位图和矢量图),根据对象形状进行遮罩显示。</p>
  18239. * <p>【注意】遮罩对象坐标系是相对遮罩对象本身的,和Flash机制不同</p>
  18240. */
  18241. get mask():Sprite;
  18242. set mask(value:Sprite);
  18243. /**
  18244. * 是否接受鼠标事件。
  18245. * 默认为false,如果监听鼠标事件,则会自动设置本对象及父节点的属性 mouseEnable 的值都为 true(如果父节点手动设置为false,则不会更改)。
  18246. */
  18247. get mouseEnabled():boolean;
  18248. set mouseEnabled(value:boolean);
  18249. /**
  18250. * 开始拖动此对象。
  18251. * @param area (可选)拖动区域,此区域为当前对象注册点活动区域(不包括对象宽高),可选。
  18252. * @param hasInertia (可选)鼠标松开后,是否还惯性滑动,默认为false,可选。
  18253. * @param elasticDistance (可选)橡皮筋效果的距离值,0为无橡皮筋效果,默认为0,可选。
  18254. * @param elasticBackTime (可选)橡皮筋回弹时间,单位为毫秒,默认为300毫秒,可选。
  18255. * @param data (可选)拖动事件携带的数据,可选。
  18256. * @param disableMouseEvent (可选)禁用其他对象的鼠标检测,默认为false,设置为true能提高性能。
  18257. * @param ratio (可选)惯性阻尼系数,影响惯性力度和时长。
  18258. */
  18259. startDrag(area?:laya.maths.Rectangle,hasInertia?:boolean,elasticDistance?:number,elasticBackTime?:number,data?:any,disableMouseEvent?:boolean,ratio?:number):void;
  18260. /**
  18261. * 停止拖动此对象。
  18262. */
  18263. stopDrag():void;
  18264. /**
  18265. * 检测某个点是否在此对象内。
  18266. * @param x 全局x坐标。
  18267. * @param y 全局y坐标。
  18268. * @return 表示是否在对象内。
  18269. */
  18270. hitTestPoint(x:number,y:number):boolean;
  18271. /**
  18272. * 获得相对于本对象上的鼠标坐标信息。
  18273. */
  18274. getMousePoint():laya.maths.Point;
  18275. /**
  18276. * 获得相对于stage的全局X轴缩放值(会叠加父亲节点的缩放值)。
  18277. */
  18278. get globalScaleX():number;
  18279. /**
  18280. * 获得相对于stage的全局旋转值(会叠加父亲节点的旋转值)。
  18281. */
  18282. get globalRotation():number;
  18283. /**
  18284. * 获得相对于stage的全局Y轴缩放值(会叠加父亲节点的缩放值)。
  18285. */
  18286. get globalScaleY():number;
  18287. /**
  18288. * 返回鼠标在此对象坐标系上的 X 轴坐标信息。
  18289. */
  18290. get mouseX():number;
  18291. /**
  18292. * 返回鼠标在此对象坐标系上的 Y 轴坐标信息。
  18293. */
  18294. get mouseY():number;
  18295. /**
  18296. * z排序,更改此值,则会按照值的大小对同一容器的所有对象重新排序。值越大,越靠上。默认为0,则根据添加顺序排序。
  18297. */
  18298. get zOrder():number;
  18299. set zOrder(value:number);
  18300. /**
  18301. * 设置一个Texture实例,并显示此图片(如果之前有其他绘制,则会被清除掉)。
  18302. * 等同于graphics.clear();graphics.drawImage(),但性能更高
  18303. * 还可以赋值一个图片地址,则会自动加载图片,然后显示
  18304. */
  18305. get texture():laya.resource.Texture;
  18306. set texture(value:laya.resource.Texture);
  18307. /**
  18308. * <p>视口大小,视口外的子对象,将不被渲染(如果想实现裁剪效果,请使用srollRect),合理使用能提高渲染性能。比如由一个个小图片拼成的地图块,viewport外面的小图片将不渲染</p>
  18309. * <p>srollRect和viewport的区别:<br/>
  18310. * 1. srollRect自带裁剪效果,viewport只影响子对象渲染是否渲染,不具有裁剪效果(性能更高)。<br/>
  18311. * 2. 设置rect的x,y属性均能实现区域滚动效果,但scrollRect会保持0,0点位置不变。</p>
  18312. * @default null
  18313. */
  18314. get viewport():laya.maths.Rectangle;
  18315. set viewport(value:laya.maths.Rectangle);
  18316. /**
  18317. * @private
  18318. */
  18319. captureMouseEvent(exclusive:boolean):void;
  18320. /**
  18321. * @private
  18322. */
  18323. releaseMouseEvent():void;
  18324. set drawCallOptimize(value:boolean);
  18325. get drawCallOptimize():boolean;
  18326. }
  18327. }
  18328. declare module laya.display {
  18329. /**
  18330. * @private
  18331. */
  18332. class SpriteConst {
  18333. /**
  18334. * @private
  18335. */
  18336. static ALPHA:number;
  18337. /**
  18338. * @private
  18339. */
  18340. static TRANSFORM:number;
  18341. /**
  18342. * @private
  18343. */
  18344. static BLEND:number;
  18345. /**
  18346. * @private
  18347. */
  18348. static CANVAS:number;
  18349. /**
  18350. * @private
  18351. */
  18352. static FILTERS:number;
  18353. /**
  18354. * @private
  18355. */
  18356. static MASK:number;
  18357. /**
  18358. * @private
  18359. */
  18360. static CLIP:number;
  18361. /**
  18362. * @private
  18363. */
  18364. static STYLE:number;
  18365. /**
  18366. * @private
  18367. */
  18368. static TEXTURE:number;
  18369. /**
  18370. * @private
  18371. */
  18372. static GRAPHICS:number;
  18373. /**
  18374. * @private
  18375. */
  18376. static LAYAGL3D:number;
  18377. /**
  18378. * @private
  18379. */
  18380. static CUSTOM:number;
  18381. /**
  18382. * @private
  18383. */
  18384. static ONECHILD:number;
  18385. /**
  18386. * @private
  18387. */
  18388. static CHILDS:number;
  18389. /**
  18390. * @private
  18391. */
  18392. static REPAINT_NONE:number;
  18393. /**
  18394. * @private
  18395. */
  18396. static REPAINT_NODE:number;
  18397. /**
  18398. * @private
  18399. */
  18400. static REPAINT_CACHE:number;
  18401. /**
  18402. * @private
  18403. */
  18404. static REPAINT_ALL:number;
  18405. }
  18406. }
  18407. declare module laya.display {
  18408. /**
  18409. * stage大小经过重新调整时进行调度。
  18410. * @eventType Event.RESIZE
  18411. */
  18412. /**
  18413. * 舞台获得焦点时调度。比如浏览器或者当前标签处于后台,重新切换回来时进行调度。
  18414. * @eventType Event.FOCUS
  18415. */
  18416. /**
  18417. * 舞台失去焦点时调度。比如浏览器或者当前标签被切换到后台后调度。
  18418. * @eventType Event.BLUR
  18419. */
  18420. /**
  18421. * 舞台焦点变化时调度,使用Laya.stage.isFocused可以获取当前舞台是否获得焦点。
  18422. * @eventType Event.FOCUS_CHANGE
  18423. */
  18424. /**
  18425. * 舞台可见性发生变化时调度(比如浏览器或者当前标签被切换到后台后调度),使用Laya.stage.isVisibility可以获取当前是否处于显示状态。
  18426. * @eventType Event.VISIBILITY_CHANGE
  18427. */
  18428. /**
  18429. * 浏览器全屏更改时调度,比如进入全屏或者退出全屏。
  18430. * @eventType Event.FULL_SCREEN_CHANGE
  18431. */
  18432. /**
  18433. * <p> <code>Stage</code> 是舞台类,显示列表的根节点,所有显示对象都在舞台上显示。通过 Laya.stage 单例访问。</p>
  18434. * <p>Stage提供几种适配模式,不同的适配模式会产生不同的画布大小,画布越大,渲染压力越大,所以要选择合适的适配方案。</p>
  18435. * <p>Stage提供不同的帧率模式,帧率越高,渲染压力越大,越费电,合理使用帧率甚至动态更改帧率有利于改进手机耗电。</p>
  18436. */
  18437. class Stage extends laya.display.Sprite {
  18438. /**
  18439. * 应用保持设计宽高不变,不缩放不变形,stage的宽高等于设计宽高。
  18440. */
  18441. static SCALE_NOSCALE:string;
  18442. /**
  18443. * 应用根据屏幕大小铺满全屏,非等比缩放会变形,stage的宽高等于设计宽高。
  18444. */
  18445. static SCALE_EXACTFIT:string;
  18446. /**
  18447. * 应用显示全部内容,按照最小比率缩放,等比缩放不变形,一边可能会留空白,stage的宽高等于设计宽高。
  18448. */
  18449. static SCALE_SHOWALL:string;
  18450. /**
  18451. * 应用按照最大比率缩放显示,宽或高方向会显示一部分,等比缩放不变形,stage的宽高等于设计宽高。
  18452. */
  18453. static SCALE_NOBORDER:string;
  18454. /**
  18455. * 应用保持设计宽高不变,不缩放不变形,stage的宽高等于屏幕宽高。
  18456. */
  18457. static SCALE_FULL:string;
  18458. /**
  18459. * 应用保持设计宽度不变,高度根据屏幕比缩放,stage的宽度等于设计高度,高度根据屏幕比率大小而变化
  18460. */
  18461. static SCALE_FIXED_WIDTH:string;
  18462. /**
  18463. * 应用保持设计高度不变,宽度根据屏幕比缩放,stage的高度等于设计宽度,宽度根据屏幕比率大小而变化
  18464. */
  18465. static SCALE_FIXED_HEIGHT:string;
  18466. /**
  18467. * 应用保持设计比例不变,全屏显示全部内容(类似showall,但showall非全屏,会有黑边),根据屏幕长宽比,自动选择使用SCALE_FIXED_WIDTH或SCALE_FIXED_HEIGHT
  18468. */
  18469. static SCALE_FIXED_AUTO:string;
  18470. /**
  18471. * 画布水平居左对齐。
  18472. */
  18473. static ALIGN_LEFT:string;
  18474. /**
  18475. * 画布水平居右对齐。
  18476. */
  18477. static ALIGN_RIGHT:string;
  18478. /**
  18479. * 画布水平居中对齐。
  18480. */
  18481. static ALIGN_CENTER:string;
  18482. /**
  18483. * 画布垂直居上对齐。
  18484. */
  18485. static ALIGN_TOP:string;
  18486. /**
  18487. * 画布垂直居中对齐。
  18488. */
  18489. static ALIGN_MIDDLE:string;
  18490. /**
  18491. * 画布垂直居下对齐。
  18492. */
  18493. static ALIGN_BOTTOM:string;
  18494. /**
  18495. * 不更改屏幕。
  18496. */
  18497. static SCREEN_NONE:string;
  18498. /**
  18499. * 自动横屏。
  18500. */
  18501. static SCREEN_HORIZONTAL:string;
  18502. /**
  18503. * 自动竖屏。
  18504. */
  18505. static SCREEN_VERTICAL:string;
  18506. /**
  18507. * 全速模式,以60的帧率运行。
  18508. */
  18509. static FRAME_FAST:string;
  18510. /**
  18511. * 慢速模式,以30的帧率运行。
  18512. */
  18513. static FRAME_SLOW:string;
  18514. /**
  18515. * 自动模式,以30的帧率运行,但鼠标活动后会自动加速到60,鼠标不动2秒后降低为30帧,以节省消耗。
  18516. */
  18517. static FRAME_MOUSE:string;
  18518. /**
  18519. * 休眠模式,以1的帧率运行
  18520. */
  18521. static FRAME_SLEEP:string;
  18522. /**
  18523. * 当前焦点对象,此对象会影响当前键盘事件的派发主体。
  18524. */
  18525. focus:laya.display.Node;
  18526. /**
  18527. * @private 相对浏览器左上角的偏移,弃用,请使用_canvasTransform。
  18528. */
  18529. offset:laya.maths.Point;
  18530. /**
  18531. * 帧率类型,支持三种模式:fast-60帧(默认),slow-30帧,mouse-30帧(鼠标活动后会自动加速到60,鼠标不动2秒后降低为30帧,以节省消耗),sleep-1帧。
  18532. */
  18533. private _frameRate:any;
  18534. /**
  18535. * 设计宽度(初始化时设置的宽度Laya.init(width,height))
  18536. */
  18537. designWidth:number;
  18538. /**
  18539. * 设计高度(初始化时设置的高度Laya.init(width,height))
  18540. */
  18541. designHeight:number;
  18542. /**
  18543. * 画布是否发生翻转。
  18544. */
  18545. canvasRotation:boolean;
  18546. /**
  18547. * 画布的旋转角度。
  18548. */
  18549. canvasDegree:number;
  18550. /**
  18551. * <p>设置是否渲染,设置为false,可以停止渲染,画面会停留到最后一次渲染上,减少cpu消耗,此设置不影响时钟。</p>
  18552. * <p>比如非激活状态,可以设置renderingEnabled=false以节省消耗。</p>
  18553. */
  18554. renderingEnabled:boolean;
  18555. /**
  18556. * 是否启用屏幕适配,可以适配后,在某个时候关闭屏幕适配,防止某些操作导致的屏幕意外改变
  18557. */
  18558. screenAdaptationEnabled:boolean;
  18559. /**
  18560. * @private
  18561. */
  18562. private _screenMode:any;
  18563. /**
  18564. * @private
  18565. */
  18566. private _scaleMode:any;
  18567. /**
  18568. * @private
  18569. */
  18570. private _alignV:any;
  18571. /**
  18572. * @private
  18573. */
  18574. private _alignH:any;
  18575. /**
  18576. * @private
  18577. */
  18578. private _bgColor:any;
  18579. /**
  18580. * @private
  18581. */
  18582. private _mouseMoveTime:any;
  18583. /**
  18584. * @private
  18585. */
  18586. private _renderCount:any;
  18587. /**
  18588. * @private
  18589. */
  18590. private _safariOffsetY:any;
  18591. /**
  18592. * @private
  18593. */
  18594. private _frameStartTime:any;
  18595. /**
  18596. * @private
  18597. */
  18598. private _previousOrientation:any;
  18599. /**
  18600. * @private
  18601. */
  18602. private _isFocused:any;
  18603. /**
  18604. * @private
  18605. */
  18606. private _isVisibility:any;
  18607. /**
  18608. * @private
  18609. */
  18610. private _globalRepaintSet:any;
  18611. /**
  18612. * @private
  18613. */
  18614. private _globalRepaintGet:any;
  18615. /**
  18616. * 使用物理分辨率作为canvas大小,会改进渲染效果,但是会降低性能
  18617. */
  18618. useRetinalCanvas:boolean;
  18619. /**
  18620. * 场景类,引擎中只有一个stage实例,此实例可以通过Laya.stage访问。
  18621. */
  18622. constructor();
  18623. /**
  18624. * @private 在移动端输入时,输入法弹出期间不进行画布尺寸重置。
  18625. */
  18626. private _isInputting:any;
  18627. /**
  18628. * @inheritDoc
  18629. * @override
  18630. */
  18631. set width(value:number);
  18632. /**
  18633. * @inheritDoc
  18634. * @override
  18635. */
  18636. get width():number;
  18637. /**
  18638. * @inheritDoc
  18639. * @override
  18640. */
  18641. set height(value:number);
  18642. /**
  18643. * @override
  18644. */
  18645. get height():number;
  18646. /**
  18647. * @override
  18648. */
  18649. set transform(value:laya.maths.Matrix);
  18650. /**
  18651. * @inheritDoc
  18652. * @override
  18653. */
  18654. get transform():laya.maths.Matrix;
  18655. /**
  18656. * 舞台是否获得焦点。
  18657. */
  18658. get isFocused():boolean;
  18659. /**
  18660. * 舞台是否处于可见状态(是否进入后台)。
  18661. */
  18662. get isVisibility():boolean;
  18663. /**
  18664. * @private
  18665. */
  18666. private _changeCanvasSize:any;
  18667. /**
  18668. * @private
  18669. */
  18670. protected _resetCanvas():void;
  18671. /**
  18672. * 设置屏幕大小,场景会根据屏幕大小进行适配。可以动态调用此方法,来更改游戏显示的大小。
  18673. * @param screenWidth 屏幕宽度。
  18674. * @param screenHeight 屏幕高度。
  18675. */
  18676. setScreenSize(screenWidth:number,screenHeight:number):void;
  18677. /**
  18678. * @private
  18679. */
  18680. private _formatData:any;
  18681. /**
  18682. * <p>缩放模式。默认值为 "noscale"。</p>
  18683. * <p><ul>取值范围:
  18684. * <li>"noscale" :不缩放;</li>
  18685. * <li>"exactfit" :全屏不等比缩放;</li>
  18686. * <li>"showall" :最小比例缩放;</li>
  18687. * <li>"noborder" :最大比例缩放;</li>
  18688. * <li>"full" :不缩放,stage的宽高等于屏幕宽高;</li>
  18689. * <li>"fixedwidth" :宽度不变,高度根据屏幕比缩放;</li>
  18690. * <li>"fixedheight" :高度不变,宽度根据屏幕比缩放;</li>
  18691. * <li>"fixedauto" :根据宽高比,自动选择使用fixedwidth或fixedheight;</li>
  18692. * </ul></p>
  18693. */
  18694. get scaleMode():string;
  18695. set scaleMode(value:string);
  18696. /**
  18697. * <p>水平对齐方式。默认值为"left"。</p>
  18698. * <p><ul>取值范围:
  18699. * <li>"left" :居左对齐;</li>
  18700. * <li>"center" :居中对齐;</li>
  18701. * <li>"right" :居右对齐;</li>
  18702. * </ul></p>
  18703. */
  18704. get alignH():string;
  18705. set alignH(value:string);
  18706. /**
  18707. * <p>垂直对齐方式。默认值为"top"。</p>
  18708. * <p><ul>取值范围:
  18709. * <li>"top" :居顶部对齐;</li>
  18710. * <li>"middle" :居中对齐;</li>
  18711. * <li>"bottom" :居底部对齐;</li>
  18712. * </ul></p>
  18713. */
  18714. get alignV():string;
  18715. set alignV(value:string);
  18716. /**
  18717. * 舞台的背景颜色,默认为黑色,null为透明。
  18718. */
  18719. get bgColor():string;
  18720. set bgColor(value:string);
  18721. /**
  18722. * 鼠标在 Stage 上的 X 轴坐标。@override
  18723. */
  18724. get mouseX():number;
  18725. /**
  18726. * 鼠标在 Stage 上的 Y 轴坐标。@override
  18727. */
  18728. get mouseY():number;
  18729. /**
  18730. * @inheritDoc
  18731. * @override
  18732. */
  18733. getMousePoint():laya.maths.Point;
  18734. /**
  18735. * 当前视窗由缩放模式导致的 X 轴缩放系数。
  18736. */
  18737. get clientScaleX():number;
  18738. /**
  18739. * 当前视窗由缩放模式导致的 Y 轴缩放系数。
  18740. */
  18741. get clientScaleY():number;
  18742. /**
  18743. * <p>场景布局类型。</p>
  18744. * <p><ul>取值范围:
  18745. * <li>"none" :不更改屏幕</li>
  18746. * <li>"horizontal" :自动横屏</li>
  18747. * <li>"vertical" :自动竖屏</li>
  18748. * </ul></p>
  18749. */
  18750. get screenMode():string;
  18751. set screenMode(value:string);
  18752. /**
  18753. * @inheritDoc
  18754. * @override
  18755. */
  18756. repaint(type?:number):void;
  18757. /**
  18758. * @inheritDoc
  18759. * @override
  18760. */
  18761. parentRepaint(type?:number):void;
  18762. /**
  18763. * @private
  18764. */
  18765. getFrameTm():number;
  18766. /**
  18767. * @private
  18768. */
  18769. private _onmouseMove:any;
  18770. /**
  18771. * <p>获得距当前帧开始后,过了多少时间,单位为毫秒。</p>
  18772. * <p>可以用来判断函数内时间消耗,通过合理控制每帧函数处理消耗时长,避免一帧做事情太多,对复杂计算分帧处理,能有效降低帧率波动。</p>
  18773. */
  18774. getTimeFromFrameStart():number;
  18775. /**
  18776. * @inheritDoc
  18777. * @override
  18778. */
  18779. set visible(value:boolean);
  18780. /**
  18781. * @inheritDoc
  18782. * @override
  18783. */
  18784. get visible():boolean;
  18785. /**
  18786. * @private
  18787. */
  18788. static clear:Function;
  18789. /**
  18790. * @inheritDoc
  18791. * @override
  18792. */
  18793. render(context:laya.resource.Context,x:number,y:number):void;
  18794. renderToNative(context:laya.resource.Context,x:number,y:number):void;
  18795. private _updateTimers:any;
  18796. /**
  18797. * <p>是否开启全屏,用户点击后进入全屏。</p>
  18798. * <p>兼容性提示:部分浏览器不允许点击进入全屏,比如Iphone等。</p>
  18799. */
  18800. set fullScreenEnabled(value:boolean);
  18801. get frameRate():string;
  18802. set frameRate(value:string);
  18803. /**
  18804. * @private
  18805. */
  18806. private _requestFullscreen:any;
  18807. /**
  18808. * @private
  18809. */
  18810. private _fullScreenChanged:any;
  18811. /**
  18812. * 退出全屏模式
  18813. */
  18814. exitFullscreen():void;
  18815. /**
  18816. * @private
  18817. */
  18818. isGlobalRepaint():boolean;
  18819. /**
  18820. * @private
  18821. */
  18822. setGlobalRepaint():void;
  18823. /**
  18824. * @private
  18825. */
  18826. add3DUI(uibase:laya.display.Sprite):void;
  18827. /**
  18828. * @private
  18829. */
  18830. remove3DUI(uibase:laya.display.Sprite):boolean;
  18831. }
  18832. }
  18833. declare module laya.display {
  18834. /**
  18835. * 文本内容发生改变后调度。
  18836. * @eventType Event.CHANGE
  18837. */
  18838. /**
  18839. * <p> <code>Text</code> 类用于创建显示对象以显示文本。</p>
  18840. * <p>
  18841. * 注意:如果运行时系统找不到设定的字体,则用系统默认的字体渲染文字,从而导致显示异常。(通常电脑上显示正常,在一些移动端因缺少设置的字体而显示异常)。
  18842. * </p>
  18843. * @example package
  18844. {
  18845. import laya.display.Text;
  18846. public class Text_Example
  18847. {
  18848. public function Text_Example()
  18849. {
  18850. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  18851. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  18852. onInit();
  18853. }
  18854. private function onInit():void
  18855. {
  18856. var text:Text = new Text();//创建一个 Text 类的实例对象 text 。
  18857. text.text = "这个是一个 Text 文本示例。";
  18858. text.color = "#008fff";//设置 text 的文本颜色。
  18859. text.font = "Arial";//设置 text 的文本字体。
  18860. text.bold = true;//设置 text 的文本显示为粗体。
  18861. text.fontSize = 30;//设置 text 的字体大小。
  18862. text.wordWrap = true;//设置 text 的文本自动换行。
  18863. text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。
  18864. text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。
  18865. text.width = 300;//设置 text 的宽度。
  18866. text.height = 200;//设置 text 的高度。
  18867. text.italic = true;//设置 text 的文本显示为斜体。
  18868. text.borderColor = "#fff000";//设置 text 的文本边框颜色。
  18869. Laya.stage.addChild(text);//将 text 添加到显示列表。
  18870. }
  18871. }
  18872. }
  18873. * @example Text_Example();
  18874. function Text_Example()
  18875. {
  18876. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  18877. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  18878. onInit();
  18879. }
  18880. function onInit()
  18881. {
  18882. var text = new laya.display.Text();//创建一个 Text 类的实例对象 text 。
  18883. text.text = "这个是一个 Text 文本示例。";
  18884. text.color = "#008fff";//设置 text 的文本颜色。
  18885. text.font = "Arial";//设置 text 的文本字体。
  18886. text.bold = true;//设置 text 的文本显示为粗体。
  18887. text.fontSize = 30;//设置 text 的字体大小。
  18888. text.wordWrap = true;//设置 text 的文本自动换行。
  18889. text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。
  18890. text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。
  18891. text.width = 300;//设置 text 的宽度。
  18892. text.height = 200;//设置 text 的高度。
  18893. text.italic = true;//设置 text 的文本显示为斜体。
  18894. text.borderColor = "#fff000";//设置 text 的文本边框颜色。
  18895. Laya.stage.addChild(text);//将 text 添加到显示列表。
  18896. }
  18897. * @example class Text_Example {
  18898. constructor() {
  18899. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  18900. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  18901. this.onInit();
  18902. }
  18903. private onInit(): void {
  18904. var text: laya.display.Text = new laya.display.Text();//创建一个 Text 类的实例对象 text 。
  18905. text.text = "这个是一个 Text 文本示例。";
  18906. text.color = "#008fff";//设置 text 的文本颜色。
  18907. text.font = "Arial";//设置 text 的文本字体。
  18908. text.bold = true;//设置 text 的文本显示为粗体。
  18909. text.fontSize = 30;//设置 text 的字体大小。
  18910. text.wordWrap = true;//设置 text 的文本自动换行。
  18911. text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。
  18912. text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。
  18913. text.width = 300;//设置 text 的宽度。
  18914. text.height = 200;//设置 text 的高度。
  18915. text.italic = true;//设置 text 的文本显示为斜体。
  18916. text.borderColor = "#fff000";//设置 text 的文本边框颜色。
  18917. Laya.stage.addChild(text);//将 text 添加到显示列表。
  18918. }
  18919. }
  18920. */
  18921. class Text extends laya.display.Sprite {
  18922. /**
  18923. * visible不进行任何裁切。
  18924. */
  18925. static VISIBLE:string;
  18926. /**
  18927. * scroll 不显示文本域外的字符像素,并且支持 scroll 接口。
  18928. */
  18929. static SCROLL:string;
  18930. /**
  18931. * hidden 不显示超出文本域的字符。
  18932. */
  18933. static HIDDEN:string;
  18934. /**
  18935. * 默认文本大小,默认为12
  18936. */
  18937. static defaultFontSize:number;
  18938. /**
  18939. * 默认文本字体,默认为Arial
  18940. */
  18941. static defaultFont:string;
  18942. /**
  18943. * @private
  18944. */
  18945. static defaultFontStr():string;
  18946. /**
  18947. * 语言包,是一个包含key:value的集合,用key索引,替换为目标value语言
  18948. */
  18949. static langPacks:any;
  18950. /**
  18951. * WebGL下,文字会被拆分为单个字符进行渲染,一些语系不能拆开显示,比如阿拉伯文,这时可以设置isComplexText=true,禁用文字拆分。
  18952. */
  18953. static isComplexText:boolean;
  18954. /**
  18955. * 在IOS下,一些字体会找不到,引擎提供了字体映射功能,比如默认会把 "黑体" 映射为 "黑体-简",更多映射,可以自己添加
  18956. */
  18957. static fontFamilyMap:any;
  18958. /**
  18959. * @private 位图字体字典。
  18960. */
  18961. private static _bitmapFonts:any;
  18962. static CharacterCache:boolean;
  18963. /**
  18964. * 是否是从右向左的显示顺序
  18965. */
  18966. static RightToLeft:boolean;
  18967. /**
  18968. * @private
  18969. */
  18970. private _clipPoint:any;
  18971. /**
  18972. * @private 表示文本内容字符串。
  18973. */
  18974. protected _text:string;
  18975. /**
  18976. * @private 表示文本内容是否发生改变。
  18977. */
  18978. protected _isChanged:boolean;
  18979. /**
  18980. * @private 表示文本的宽度,以像素为单位。
  18981. */
  18982. protected _textWidth:number;
  18983. /**
  18984. * @private 表示文本的高度,以像素为单位。
  18985. */
  18986. protected _textHeight:number;
  18987. /**
  18988. * @private 存储文字行数信息。
  18989. */
  18990. protected _lines:any[]|null;
  18991. /**
  18992. * @private 保存每行宽度
  18993. */
  18994. protected _lineWidths:number[]|null;
  18995. /**
  18996. * @private 文本的内容位置 X 轴信息。
  18997. */
  18998. protected _startX:number;
  18999. /**
  19000. * @private 文本的内容位置X轴信息。
  19001. */
  19002. protected _startY:number;
  19003. /**
  19004. * @private
  19005. */
  19006. protected _words:laya.utils.WordText[]|null;
  19007. /**
  19008. * @private
  19009. */
  19010. protected _charSize:any;
  19011. /**
  19012. * @private
  19013. */
  19014. protected _valign:string;
  19015. /**
  19016. * @private
  19017. */
  19018. private _singleCharRender:any;
  19019. /**
  19020. * <p>overflow 指定文本超出文本域后的行为。其值为"hidden"、"visible"和"scroll"之一。</p>
  19021. * <p>性能从高到低依次为:hidden > visible > scroll。</p>
  19022. */
  19023. overflow:string;
  19024. /**
  19025. * 创建一个新的 <code>Text</code> 实例。
  19026. */
  19027. constructor();
  19028. /**
  19029. * @private 获取样式。
  19030. * @return 样式 Style 。
  19031. * @override
  19032. */
  19033. getStyle():laya.display.css.SpriteStyle;
  19034. protected _getTextStyle():laya.display.css.TextStyle;
  19035. /**
  19036. * 注册位图字体。
  19037. * @param name 位图字体的名称。
  19038. * @param bitmapFont 位图字体文件。
  19039. */
  19040. static registerBitmapFont(name:string,bitmapFont:laya.display.BitmapFont):void;
  19041. /**
  19042. * 移除注册的位图字体文件。
  19043. * @param name 位图字体的名称。
  19044. * @param destroy 是否销毁指定的字体文件。
  19045. */
  19046. static unregisterBitmapFont(name:string,destroy?:boolean):void;
  19047. /**
  19048. * @inheritDoc
  19049. * @override
  19050. */
  19051. destroy(destroyChild?:boolean):void;
  19052. /**
  19053. * @inheritDoc
  19054. * @override
  19055. */
  19056. getGraphicBounds(realSize?:boolean):laya.maths.Rectangle;
  19057. /**
  19058. * @inheritDoc
  19059. * @override
  19060. */
  19061. get width():number;
  19062. /**
  19063. * @override
  19064. */
  19065. set width(value:number);
  19066. /**
  19067. * @inheritDoc
  19068. * @override
  19069. */
  19070. get height():number;
  19071. /**
  19072. * @override
  19073. */
  19074. set height(value:number);
  19075. /**
  19076. * 表示文本的宽度,以像素为单位。
  19077. */
  19078. get textWidth():number;
  19079. /**
  19080. * 表示文本的高度,以像素为单位。
  19081. */
  19082. get textHeight():number;
  19083. /**
  19084. * 当前文本的内容字符串。
  19085. */
  19086. get text():string;
  19087. get_text():string;
  19088. set_text(value:string):void;
  19089. set text(value:string);
  19090. /**
  19091. * <p>根据指定的文本,从语言包中取当前语言的文本内容。并对此文本中的{i}文本进行替换。</p>
  19092. * <p>设置Text.langPacks语言包后,即可使用lang获取里面的语言</p>
  19093. * <p>例如:
  19094. * <li>(1)text 的值为“我的名字”,先取到这个文本对应的当前语言版本里的值“My name”,将“My name”设置为当前文本的内容。</li>
  19095. * <li>(2)text 的值为“恭喜你赢得{0}个钻石,{1}经验。”,arg1 的值为100,arg2 的值为200。
  19096. * 则先取到这个文本对应的当前语言版本里的值“Congratulations on your winning {0} diamonds, {1} experience.”,
  19097. * 然后将文本里的{0}、{1},依据括号里的数字从0开始替换为 arg1、arg2 的值。
  19098. * 将替换处理后的文本“Congratulations on your winning 100 diamonds, 200 experience.”设置为当前文本的内容。
  19099. * </li>
  19100. * </p>
  19101. * @param text 文本内容。
  19102. * @param ...args 文本替换参数。
  19103. */
  19104. lang(text:string,arg1?:any,arg2?:any,arg3?:any,arg4?:any,arg5?:any,arg6?:any,arg7?:any,arg8?:any,arg9?:any,arg10?:any):void;
  19105. /**
  19106. * <p>文本的字体名称,以字符串形式表示。</p>
  19107. * <p>默认值为:"Arial",可以通过Text.defaultFont设置默认字体。</p>
  19108. * <p>如果运行时系统找不到设定的字体,则用系统默认的字体渲染文字,从而导致显示异常。(通常电脑上显示正常,在一些移动端因缺少设置的字体而显示异常)。</p>
  19109. * @see laya.display.Text#defaultFont
  19110. */
  19111. get font():string;
  19112. set font(value:string);
  19113. /**
  19114. * <p>指定文本的字体大小(以像素为单位)。</p>
  19115. * <p>默认为20像素,可以通过 <code>Text.defaultFontSize</code> 设置默认大小。</p>
  19116. */
  19117. get fontSize():number;
  19118. set fontSize(value:number);
  19119. /**
  19120. * <p>指定文本是否为粗体字。</p>
  19121. * <p>默认值为 false,这意味着不使用粗体字。如果值为 true,则文本为粗体字。</p>
  19122. */
  19123. get bold():boolean;
  19124. set bold(value:boolean);
  19125. /**
  19126. * <p>表示文本的颜色值。可以通过 <code>Text.defaultColor</code> 设置默认颜色。</p>
  19127. * <p>默认值为黑色。</p>
  19128. */
  19129. get color():string;
  19130. set color(value:string);
  19131. get_color():string;
  19132. set_color(value:string):void;
  19133. /**
  19134. * <p>表示使用此文本格式的文本是否为斜体。</p>
  19135. * <p>默认值为 false,这意味着不使用斜体。如果值为 true,则文本为斜体。</p>
  19136. */
  19137. get italic():boolean;
  19138. set italic(value:boolean);
  19139. /**
  19140. * <p>表示文本的水平显示方式。</p>
  19141. * <p><b>取值:</b>
  19142. * <li>"left": 居左对齐显示。</li>
  19143. * <li>"center": 居中对齐显示。</li>
  19144. * <li>"right": 居右对齐显示。</li>
  19145. * </p>
  19146. */
  19147. get align():string;
  19148. set align(value:string);
  19149. /**
  19150. * <p>表示文本的垂直显示方式。</p>
  19151. * <p><b>取值:</b>
  19152. * <li>"top": 居顶部对齐显示。</li>
  19153. * <li>"middle": 居中对齐显示。</li>
  19154. * <li>"bottom": 居底部对齐显示。</li>
  19155. * </p>
  19156. */
  19157. get valign():string;
  19158. set valign(value:string);
  19159. /**
  19160. * <p>表示文本是否自动换行,默认为false。</p>
  19161. * <p>若值为true,则自动换行;否则不自动换行。</p>
  19162. */
  19163. get wordWrap():boolean;
  19164. set wordWrap(value:boolean);
  19165. /**
  19166. * 垂直行间距(以像素为单位)。
  19167. */
  19168. get leading():number;
  19169. set leading(value:number);
  19170. /**
  19171. * <p>边距信息。</p>
  19172. * <p>数据格式:[上边距,右边距,下边距,左边距](边距以像素为单位)。</p>
  19173. */
  19174. get padding():any[];
  19175. set padding(value:any[]);
  19176. /**
  19177. * 文本背景颜色,以字符串表示。
  19178. */
  19179. get bgColor():string;
  19180. set bgColor(value:string);
  19181. set_bgColor(value:string):void;
  19182. get_bgColor():string;
  19183. /**
  19184. * 文本边框背景颜色,以字符串表示。
  19185. */
  19186. get borderColor():string;
  19187. set borderColor(value:string);
  19188. /**
  19189. * <p>描边宽度(以像素为单位)。</p>
  19190. * <p>默认值0,表示不描边。</p>
  19191. */
  19192. get stroke():number;
  19193. set stroke(value:number);
  19194. /**
  19195. * <p>描边颜色,以字符串表示。</p>
  19196. * <p>默认值为 "#000000"(黑色);</p>
  19197. */
  19198. get strokeColor():string;
  19199. set strokeColor(value:string);
  19200. /**
  19201. * @private 一个布尔值,表示文本的属性是否有改变。若为true表示有改变。
  19202. */
  19203. protected set isChanged(value:boolean);
  19204. /**
  19205. * @private
  19206. */
  19207. protected _getContextFont():string;
  19208. /**
  19209. * @private
  19210. */
  19211. protected _isPassWordMode():boolean;
  19212. /**
  19213. * @private
  19214. */
  19215. protected _getPassWordTxt(txt:string):string;
  19216. /**
  19217. * @private 渲染文字。
  19218. * @param begin 开始渲染的行索引。
  19219. * @param visibleLineCount 渲染的行数。
  19220. */
  19221. protected _renderText():void;
  19222. /**
  19223. * @private 绘制下划线
  19224. * @param x 本行坐标
  19225. * @param y 本行坐标
  19226. * @param lineIndex 本行索引
  19227. */
  19228. private _drawUnderline:any;
  19229. /**
  19230. * <p>排版文本。</p>
  19231. * <p>进行宽高计算,渲染、重绘文本。</p>
  19232. */
  19233. typeset():void;
  19234. /**
  19235. * @private
  19236. */
  19237. private _evalTextSize:any;
  19238. /**
  19239. * @private
  19240. */
  19241. private _checkEnabledViewportOrNot:any;
  19242. /**
  19243. * <p>快速更改显示文本。不进行排版计算,效率较高。</p>
  19244. * <p>如果只更改文字内容,不更改文字样式,建议使用此接口,能提高效率。</p>
  19245. * @param text 文本内容。
  19246. */
  19247. changeText(text:string):void;
  19248. /**
  19249. * @private 分析文本换行。
  19250. */
  19251. protected _parseLines(text:string):void;
  19252. /**
  19253. * @private 解析行文本。
  19254. * @param line 某行的文本。
  19255. * @param wordWrapWidth 文本的显示宽度。
  19256. */
  19257. protected _parseLine(line:string,wordWrapWidth:number):void;
  19258. /**
  19259. * @private
  19260. */
  19261. private _getTextWidth:any;
  19262. /**
  19263. * @private 获取换行所需的宽度。
  19264. */
  19265. private _getWordWrapWidth:any;
  19266. /**
  19267. * 返回字符在本类实例的父坐标系下的坐标。
  19268. * @param charIndex 索引位置。
  19269. * @param out (可选)输出的Point引用。
  19270. * @return Point 字符在本类实例的父坐标系下的坐标。如果out参数不为空,则将结果赋值给指定的Point对象,否则创建一个新的Point对象返回。建议使用Point.TEMP作为out参数,可以省去Point对象创建和垃圾回收的开销,尤其是在需要频繁执行的逻辑中,比如帧循环和MOUSE_MOVE事件回调函数里面。
  19271. */
  19272. getCharPoint(charIndex:number,out?:laya.maths.Point):laya.maths.Point;
  19273. /**
  19274. * <p>设置横向滚动量。</p>
  19275. * <p>即使设置超出滚动范围的值,也会被自动限制在可能的最大值处。</p>
  19276. */
  19277. set scrollX(value:number);
  19278. /**
  19279. * 获取横向滚动量。
  19280. */
  19281. get scrollX():number;
  19282. /**
  19283. * 设置纵向滚动量(px)。即使设置超出滚动范围的值,也会被自动限制在可能的最大值处。
  19284. */
  19285. set scrollY(value:number);
  19286. /**
  19287. * 获取纵向滚动量。
  19288. */
  19289. get scrollY():number;
  19290. /**
  19291. * 获取横向可滚动最大值。
  19292. */
  19293. get maxScrollX():number;
  19294. /**
  19295. * 获取纵向可滚动最大值。
  19296. */
  19297. get maxScrollY():number;
  19298. /**
  19299. * 返回文字行信息
  19300. */
  19301. get lines():any[];
  19302. /**
  19303. * 下划线的颜色,为null则使用字体颜色。
  19304. */
  19305. get underlineColor():string;
  19306. set underlineColor(value:string);
  19307. /**
  19308. * 是否显示下划线。
  19309. */
  19310. get underline():boolean;
  19311. set underline(value:boolean);
  19312. /**
  19313. * 设置是否单个字符渲染,如果Textd的内容一直改变,例如是一个增加的数字,就设置这个,防止无效占用缓存
  19314. */
  19315. set singleCharRender(value:boolean);
  19316. get singleCharRender():boolean;
  19317. }
  19318. }
  19319. declare module laya.effect {
  19320. /**
  19321. * ...
  19322. * @author ww
  19323. */
  19324. class BlurFilterSetter extends laya.effect.FilterSetterBase {
  19325. private _strength:any;
  19326. constructor();
  19327. /**
  19328. * @override
  19329. */
  19330. protected buildFilter():void;
  19331. get strength():number;
  19332. set strength(value:number);
  19333. }
  19334. }
  19335. declare module laya.effect {
  19336. /**
  19337. * @Script {name:ButtonEffect}
  19338. * @author ww
  19339. */
  19340. class ButtonEffect {
  19341. private _tar:any;
  19342. private _curState:any;
  19343. private _curTween:any;
  19344. /**
  19345. * effectScale
  19346. * @prop {name:effectScale,type:number, tips:"缩放值",default:"1.5"}
  19347. */
  19348. effectScale:number;
  19349. /**
  19350. * tweenTime
  19351. * @prop {name:tweenTime,type:number, tips:"缓动时长",default:"300"}
  19352. */
  19353. tweenTime:number;
  19354. /**
  19355. * effectEase
  19356. * @prop {name:effectEase,type:ease, tips:"效果缓动类型"}
  19357. */
  19358. effectEase:string;
  19359. /**
  19360. * backEase
  19361. * @prop {name:backEase,type:ease, tips:"恢复缓动类型"}
  19362. */
  19363. backEase:string;
  19364. /**
  19365. * 设置控制对象
  19366. * @param tar
  19367. */
  19368. set target(tar:laya.display.Sprite);
  19369. private toChangedState:any;
  19370. private toInitState:any;
  19371. private tweenComplete:any;
  19372. }
  19373. }
  19374. declare module laya.effect {
  19375. /**
  19376. * ...
  19377. * @author ww
  19378. */
  19379. class ColorFilterSetter extends laya.effect.FilterSetterBase {
  19380. /**
  19381. * brightness 亮度,范围:-100~100
  19382. */
  19383. private _brightness:any;
  19384. /**
  19385. * contrast 对比度,范围:-100~100
  19386. */
  19387. private _contrast:any;
  19388. /**
  19389. * saturation 饱和度,范围:-100~100
  19390. */
  19391. private _saturation:any;
  19392. /**
  19393. * hue 色调,范围:-180~180
  19394. */
  19395. private _hue:any;
  19396. /**
  19397. * red red增量,范围:0~255
  19398. */
  19399. private _red:any;
  19400. /**
  19401. * green green增量,范围:0~255
  19402. */
  19403. private _green:any;
  19404. /**
  19405. * blue blue增量,范围:0~255
  19406. */
  19407. private _blue:any;
  19408. /**
  19409. * alpha alpha增量,范围:0~255
  19410. */
  19411. private _alpha:any;
  19412. constructor();
  19413. /**
  19414. * @override
  19415. */
  19416. protected buildFilter():void;
  19417. get brightness():number;
  19418. set brightness(value:number);
  19419. get contrast():number;
  19420. set contrast(value:number);
  19421. get saturation():number;
  19422. set saturation(value:number);
  19423. get hue():number;
  19424. set hue(value:number);
  19425. get red():number;
  19426. set red(value:number);
  19427. get green():number;
  19428. set green(value:number);
  19429. get blue():number;
  19430. set blue(value:number);
  19431. private _color:any;
  19432. get color():string;
  19433. set color(value:string);
  19434. get alpha():number;
  19435. set alpha(value:number);
  19436. }
  19437. }
  19438. declare module laya.effect {
  19439. /**
  19440. * 效果插件基类,基于对象池管理
  19441. */
  19442. class EffectBase extends laya.components.Component {
  19443. /**
  19444. * 动画持续时间,单位为毫秒
  19445. */
  19446. duration:number;
  19447. /**
  19448. * 动画延迟时间,单位为毫秒
  19449. */
  19450. delay:number;
  19451. /**
  19452. * 重复次数,默认为播放一次
  19453. */
  19454. repeat:number;
  19455. /**
  19456. * 缓动类型,如果为空,则默认为匀速播放
  19457. */
  19458. ease:string;
  19459. /**
  19460. * 触发事件,如果为空,则创建时触发
  19461. */
  19462. eventName:string;
  19463. /**
  19464. * 效用作用的目标对象,如果为空,则是脚本所在的节点本身
  19465. */
  19466. target:laya.display.Sprite;
  19467. /**
  19468. * 效果结束后,是否自动移除节点
  19469. */
  19470. autoDestroyAtComplete:boolean;
  19471. protected _comlete:laya.utils.Handler;
  19472. protected _tween:laya.utils.Tween;
  19473. protected _exeTween():void;
  19474. protected _doTween():laya.utils.Tween;
  19475. /**
  19476. * @override
  19477. */
  19478. onReset():void;
  19479. }
  19480. }
  19481. declare module laya.effect {
  19482. /**
  19483. * 淡入效果
  19484. */
  19485. class FadeIn extends laya.effect.EffectBase {
  19486. /**
  19487. * @override
  19488. */
  19489. protected _doTween():laya.utils.Tween;
  19490. }
  19491. }
  19492. declare module laya.effect {
  19493. /**
  19494. * 淡出效果
  19495. */
  19496. class FadeOut extends laya.effect.EffectBase {
  19497. /**
  19498. * @override
  19499. */
  19500. protected _doTween():laya.utils.Tween;
  19501. }
  19502. }
  19503. declare module laya.effect {
  19504. /**
  19505. * ...
  19506. * @author ww
  19507. */
  19508. class FilterSetterBase {
  19509. _filter:any;
  19510. constructor();
  19511. paramChanged():void;
  19512. protected buildFilter():void;
  19513. protected addFilter(sprite:laya.display.Sprite):void;
  19514. protected removeFilter(sprite:laya.display.Sprite):void;
  19515. private _target:any;
  19516. set target(value:any);
  19517. }
  19518. }
  19519. declare module laya.effect {
  19520. /**
  19521. * ...
  19522. * @author ww
  19523. */
  19524. class GlowFilterSetter extends laya.effect.FilterSetterBase {
  19525. /**
  19526. * 滤镜的颜色
  19527. */
  19528. private _color:any;
  19529. /**
  19530. * 边缘模糊的大小 0~20
  19531. */
  19532. private _blur:any;
  19533. /**
  19534. * X轴方向的偏移
  19535. */
  19536. private _offX:any;
  19537. /**
  19538. * Y轴方向的偏移
  19539. */
  19540. private _offY:any;
  19541. constructor();
  19542. /**
  19543. * @override
  19544. */
  19545. protected buildFilter():void;
  19546. get color():string;
  19547. set color(value:string);
  19548. get blur():number;
  19549. set blur(value:number);
  19550. get offX():number;
  19551. set offX(value:number);
  19552. get offY():number;
  19553. set offY(value:number);
  19554. }
  19555. }
  19556. declare module laya.events {
  19557. /**
  19558. * <code>Event</code> 是事件类型的集合。一般当发生事件时,<code>Event</code> 对象将作为参数传递给事件侦听器。
  19559. */
  19560. class Event {
  19561. /**
  19562. * 一个空的 Event 对象。用于事件派发中转使用。
  19563. */
  19564. static EMPTY:Event;
  19565. /**
  19566. * 定义 mousedown 事件对象的 type 属性值。
  19567. */
  19568. static MOUSE_DOWN:string;
  19569. /**
  19570. * 定义 mouseup 事件对象的 type 属性值。
  19571. */
  19572. static MOUSE_UP:string;
  19573. /**
  19574. * 定义 click 事件对象的 type 属性值。
  19575. */
  19576. static CLICK:string;
  19577. /**
  19578. * 定义 rightmousedown 事件对象的 type 属性值。
  19579. */
  19580. static RIGHT_MOUSE_DOWN:string;
  19581. /**
  19582. * 定义 rightmouseup 事件对象的 type 属性值。
  19583. */
  19584. static RIGHT_MOUSE_UP:string;
  19585. /**
  19586. * 定义 rightclick 事件对象的 type 属性值。
  19587. */
  19588. static RIGHT_CLICK:string;
  19589. /**
  19590. * 定义 mousemove 事件对象的 type 属性值。
  19591. */
  19592. static MOUSE_MOVE:string;
  19593. /**
  19594. * 定义 mouseover 事件对象的 type 属性值。
  19595. */
  19596. static MOUSE_OVER:string;
  19597. /**
  19598. * 定义 mouseout 事件对象的 type 属性值。
  19599. */
  19600. static MOUSE_OUT:string;
  19601. /**
  19602. * 定义 mousewheel 事件对象的 type 属性值。
  19603. */
  19604. static MOUSE_WHEEL:string;
  19605. /**
  19606. * 定义 mouseover 事件对象的 type 属性值。
  19607. */
  19608. static ROLL_OVER:string;
  19609. /**
  19610. * 定义 mouseout 事件对象的 type 属性值。
  19611. */
  19612. static ROLL_OUT:string;
  19613. /**
  19614. * 定义 doubleclick 事件对象的 type 属性值。
  19615. */
  19616. static DOUBLE_CLICK:string;
  19617. /**
  19618. * 定义 change 事件对象的 type 属性值。
  19619. */
  19620. static CHANGE:string;
  19621. /**
  19622. * 定义 changed 事件对象的 type 属性值。
  19623. */
  19624. static CHANGED:string;
  19625. /**
  19626. * 定义 resize 事件对象的 type 属性值。
  19627. */
  19628. static RESIZE:string;
  19629. /**
  19630. * 定义 added 事件对象的 type 属性值。
  19631. */
  19632. static ADDED:string;
  19633. /**
  19634. * 定义 removed 事件对象的 type 属性值。
  19635. */
  19636. static REMOVED:string;
  19637. /**
  19638. * 定义 display 事件对象的 type 属性值。
  19639. */
  19640. static DISPLAY:string;
  19641. /**
  19642. * 定义 undisplay 事件对象的 type 属性值。
  19643. */
  19644. static UNDISPLAY:string;
  19645. /**
  19646. * 定义 error 事件对象的 type 属性值。
  19647. */
  19648. static ERROR:string;
  19649. /**
  19650. * 定义 complete 事件对象的 type 属性值。
  19651. */
  19652. static COMPLETE:string;
  19653. /**
  19654. * 定义 loaded 事件对象的 type 属性值。
  19655. */
  19656. static LOADED:string;
  19657. /**
  19658. * 定义 loaded 事件对象的 type 属性值。
  19659. */
  19660. static READY:string;
  19661. /**
  19662. * 定义 progress 事件对象的 type 属性值。
  19663. */
  19664. static PROGRESS:string;
  19665. /**
  19666. * 定义 input 事件对象的 type 属性值。
  19667. */
  19668. static INPUT:string;
  19669. /**
  19670. * 定义 render 事件对象的 type 属性值。
  19671. */
  19672. static RENDER:string;
  19673. /**
  19674. * 定义 open 事件对象的 type 属性值。
  19675. */
  19676. static OPEN:string;
  19677. /**
  19678. * 定义 message 事件对象的 type 属性值。
  19679. */
  19680. static MESSAGE:string;
  19681. /**
  19682. * 定义 close 事件对象的 type 属性值。
  19683. */
  19684. static CLOSE:string;
  19685. /**
  19686. * 定义 keydown 事件对象的 type 属性值。
  19687. */
  19688. static KEY_DOWN:string;
  19689. /**
  19690. * 定义 keypress 事件对象的 type 属性值。
  19691. */
  19692. static KEY_PRESS:string;
  19693. /**
  19694. * 定义 keyup 事件对象的 type 属性值。
  19695. */
  19696. static KEY_UP:string;
  19697. /**
  19698. * 定义 frame 事件对象的 type 属性值。
  19699. */
  19700. static FRAME:string;
  19701. /**
  19702. * 定义 dragstart 事件对象的 type 属性值。
  19703. */
  19704. static DRAG_START:string;
  19705. /**
  19706. * 定义 dragmove 事件对象的 type 属性值。
  19707. */
  19708. static DRAG_MOVE:string;
  19709. /**
  19710. * 定义 dragend 事件对象的 type 属性值。
  19711. */
  19712. static DRAG_END:string;
  19713. /**
  19714. * 定义 enter 事件对象的 type 属性值。
  19715. */
  19716. static ENTER:string;
  19717. /**
  19718. * 定义 select 事件对象的 type 属性值。
  19719. */
  19720. static SELECT:string;
  19721. /**
  19722. * 定义 blur 事件对象的 type 属性值。
  19723. */
  19724. static BLUR:string;
  19725. /**
  19726. * 定义 focus 事件对象的 type 属性值。
  19727. */
  19728. static FOCUS:string;
  19729. /**
  19730. * 定义 visibilitychange 事件对象的 type 属性值。
  19731. */
  19732. static VISIBILITY_CHANGE:string;
  19733. /**
  19734. * 定义 focuschange 事件对象的 type 属性值。
  19735. */
  19736. static FOCUS_CHANGE:string;
  19737. /**
  19738. * 定义 played 事件对象的 type 属性值。
  19739. */
  19740. static PLAYED:string;
  19741. /**
  19742. * 定义 paused 事件对象的 type 属性值。
  19743. */
  19744. static PAUSED:string;
  19745. /**
  19746. * 定义 stopped 事件对象的 type 属性值。
  19747. */
  19748. static STOPPED:string;
  19749. /**
  19750. * 定义 start 事件对象的 type 属性值。
  19751. */
  19752. static START:string;
  19753. /**
  19754. * 定义 end 事件对象的 type 属性值。
  19755. */
  19756. static END:string;
  19757. /**
  19758. * 定义 componentadded 事件对象的 type 属性值。
  19759. */
  19760. static COMPONENT_ADDED:string;
  19761. /**
  19762. * 定义 componentremoved 事件对象的 type 属性值。
  19763. */
  19764. static COMPONENT_REMOVED:string;
  19765. /**
  19766. * 定义 released 事件对象的 type 属性值。
  19767. */
  19768. static RELEASED:string;
  19769. /**
  19770. * 定义 link 事件对象的 type 属性值。
  19771. */
  19772. static LINK:string;
  19773. /**
  19774. * 定义 label 事件对象的 type 属性值。
  19775. */
  19776. static LABEL:string;
  19777. /**
  19778. * 浏览器全屏更改时触发
  19779. */
  19780. static FULL_SCREEN_CHANGE:string;
  19781. /**
  19782. * 显卡设备丢失时触发
  19783. */
  19784. static DEVICE_LOST:string;
  19785. /**
  19786. * 世界矩阵更新时触发。
  19787. */
  19788. static TRANSFORM_CHANGED:string;
  19789. /**
  19790. * 更换动作时触发。
  19791. */
  19792. static ANIMATION_CHANGED:string;
  19793. /**
  19794. * 拖尾渲染节点改变时触发。
  19795. */
  19796. static TRAIL_FILTER_CHANGE:string;
  19797. /**
  19798. * 物理碰撞开始
  19799. */
  19800. static TRIGGER_ENTER:string;
  19801. /**
  19802. * 物理碰撞持续
  19803. */
  19804. static TRIGGER_STAY:string;
  19805. /**
  19806. * 物理碰撞结束
  19807. */
  19808. static TRIGGER_EXIT:string;
  19809. /**
  19810. * 事件类型。
  19811. */
  19812. type:string;
  19813. /**
  19814. * 原生浏览器事件。
  19815. */
  19816. nativeEvent:any;
  19817. /**
  19818. * 事件目标触发对象。
  19819. */
  19820. target:laya.display.Sprite;
  19821. /**
  19822. * 事件当前冒泡对象。
  19823. */
  19824. currentTarget:laya.display.Sprite;
  19825. /**
  19826. * 分配给触摸点的唯一标识号(作为 int)。
  19827. */
  19828. touchId:number;
  19829. /**
  19830. * 键盘值
  19831. */
  19832. keyCode:number;
  19833. /**
  19834. * 滚轮滑动增量
  19835. */
  19836. delta:number;
  19837. /**
  19838. * 设置事件数据。
  19839. * @param type 事件类型。
  19840. * @param currentTarget 事件目标触发对象。
  19841. * @param target 事件当前冒泡对象。
  19842. * @return 返回当前 Event 对象。
  19843. */
  19844. setTo(type:string,currentTarget:laya.display.Sprite,target:laya.display.Sprite):Event;
  19845. /**
  19846. * 阻止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。此方法不会影响当前节点 (currentTarget) 中的任何事件侦听器。
  19847. */
  19848. stopPropagation():void;
  19849. /**
  19850. * 触摸点列表。
  19851. */
  19852. get touches():any[];
  19853. /**
  19854. * 表示 Alt 键是处于活动状态 (true) 还是非活动状态 (false)。
  19855. */
  19856. get altKey():boolean;
  19857. /**
  19858. * 表示 Ctrl 键是处于活动状态 (true) 还是非活动状态 (false)。
  19859. */
  19860. get ctrlKey():boolean;
  19861. /**
  19862. * 表示 Shift 键是处于活动状态 (true) 还是非活动状态 (false)。
  19863. */
  19864. get shiftKey():boolean;
  19865. /**
  19866. * 包含按下或释放的键的字符代码值。字符代码值为英文键盘值。
  19867. */
  19868. get charCode():boolean;
  19869. /**
  19870. * 表示键在键盘上的位置。这对于区分在键盘上多次出现的键非常有用。<br>
  19871. * 例如,您可以根据此属性的值来区分左 Shift 键和右 Shift 键:左 Shift 键的值为 KeyLocation.LEFT,右 Shift 键的值为 KeyLocation.RIGHT。另一个示例是区分标准键盘 (KeyLocation.STANDARD) 与数字键盘 (KeyLocation.NUM_PAD) 上按下的数字键。
  19872. */
  19873. get keyLocation():number;
  19874. /**
  19875. * 鼠标在 Stage 上的 X 轴坐标
  19876. */
  19877. get stageX():number;
  19878. /**
  19879. * 鼠标在 Stage 上的 Y 轴坐标
  19880. */
  19881. get stageY():number;
  19882. }
  19883. }
  19884. declare module laya.events {
  19885. /**
  19886. * <code>EventDispatcher</code> 类是可调度事件的所有类的基类。
  19887. */
  19888. class EventDispatcher {
  19889. /**
  19890. * @private
  19891. */
  19892. static MOUSE_EVENTS:any;
  19893. /**
  19894. * @private
  19895. */
  19896. private _events:any;
  19897. /**
  19898. * 检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
  19899. * @param type 事件的类型。
  19900. * @return 如果指定类型的侦听器已注册,则值为 true;否则,值为 false。
  19901. */
  19902. hasListener(type:string):boolean;
  19903. /**
  19904. * 派发事件。
  19905. * @param type 事件类型。
  19906. * @param data (可选)回调数据。<b>注意:</b>如果是需要传递多个参数 p1,p2,p3,...可以使用数组结构如:[p1,p2,p3,...] ;如果需要回调单个参数 p ,且 p 是一个数组,则需要使用结构如:[p],其他的单个参数 p ,可以直接传入参数 p。
  19907. * @return 此事件类型是否有侦听者,如果有侦听者则值为 true,否则值为 false。
  19908. */
  19909. event(type:string,data?:any):boolean;
  19910. /**
  19911. * 使用 EventDispatcher 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知。
  19912. * @param type 事件的类型。
  19913. * @param caller 事件侦听函数的执行域。
  19914. * @param listener 事件侦听函数。
  19915. * @param args (可选)事件侦听函数的回调参数。
  19916. * @return 此 EventDispatcher 对象。
  19917. */
  19918. on(type:string,caller:any,listener:Function,args?:any[]):EventDispatcher;
  19919. /**
  19920. * 使用 EventDispatcher 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知,此侦听事件响应一次后自动移除。
  19921. * @param type 事件的类型。
  19922. * @param caller 事件侦听函数的执行域。
  19923. * @param listener 事件侦听函数。
  19924. * @param args (可选)事件侦听函数的回调参数。
  19925. * @return 此 EventDispatcher 对象。
  19926. */
  19927. once(type:string,caller:any,listener:Function,args?:any[]):EventDispatcher;
  19928. /**
  19929. * 从 EventDispatcher 对象中删除侦听器。
  19930. * @param type 事件的类型。
  19931. * @param caller 事件侦听函数的执行域。
  19932. * @param listener 事件侦听函数。
  19933. * @param onceOnly (可选)如果值为 true ,则只移除通过 once 方法添加的侦听器。
  19934. * @return 此 EventDispatcher 对象。
  19935. */
  19936. off(type:string,caller:any,listener:Function,onceOnly?:boolean):EventDispatcher;
  19937. /**
  19938. * 从 EventDispatcher 对象中删除指定事件类型的所有侦听器。
  19939. * @param type (可选)事件类型,如果值为 null,则移除本对象所有类型的侦听器。
  19940. * @return 此 EventDispatcher 对象。
  19941. */
  19942. offAll(type?:string):EventDispatcher;
  19943. /**
  19944. * 移除caller为target的所有事件监听
  19945. * @param caller caller对象
  19946. */
  19947. offAllCaller(caller:any):EventDispatcher;
  19948. private _recoverHandlers:any;
  19949. /**
  19950. * 检测指定事件类型是否是鼠标事件。
  19951. * @param type 事件的类型。
  19952. * @return 如果是鼠标事件,则值为 true;否则,值为 false。
  19953. */
  19954. isMouseEvent(type:string):boolean;
  19955. }
  19956. }
  19957. declare module laya.events {
  19958. /**
  19959. * <code>Keyboard</code> 类的属性是一些常数,这些常数表示控制游戏时最常用的键。
  19960. */
  19961. class Keyboard {
  19962. /**
  19963. * 与 0 的键控代码值 (48) 关联的常数。
  19964. */
  19965. static NUMBER_0:number;
  19966. /**
  19967. * 与 1 的键控代码值 (49) 关联的常数。
  19968. */
  19969. static NUMBER_1:number;
  19970. /**
  19971. * 与 2 的键控代码值 (50) 关联的常数。
  19972. */
  19973. static NUMBER_2:number;
  19974. /**
  19975. * 与 3 的键控代码值 (51) 关联的常数。
  19976. */
  19977. static NUMBER_3:number;
  19978. /**
  19979. * 与 4 的键控代码值 (52) 关联的常数。
  19980. */
  19981. static NUMBER_4:number;
  19982. /**
  19983. * 与 5 的键控代码值 (53) 关联的常数。
  19984. */
  19985. static NUMBER_5:number;
  19986. /**
  19987. * 与 6 的键控代码值 (54) 关联的常数。
  19988. */
  19989. static NUMBER_6:number;
  19990. /**
  19991. * 与 7 的键控代码值 (55) 关联的常数。
  19992. */
  19993. static NUMBER_7:number;
  19994. /**
  19995. * 与 8 的键控代码值 (56) 关联的常数。
  19996. */
  19997. static NUMBER_8:number;
  19998. /**
  19999. * 与 9 的键控代码值 (57) 关联的常数。
  20000. */
  20001. static NUMBER_9:number;
  20002. /**
  20003. * 与 A 键的键控代码值 (65) 关联的常数。
  20004. */
  20005. static A:number;
  20006. /**
  20007. * 与 B 键的键控代码值 (66) 关联的常数。
  20008. */
  20009. static B:number;
  20010. /**
  20011. * 与 C 键的键控代码值 (67) 关联的常数。
  20012. */
  20013. static C:number;
  20014. /**
  20015. * 与 D 键的键控代码值 (68) 关联的常数。
  20016. */
  20017. static D:number;
  20018. /**
  20019. * 与 E 键的键控代码值 (69) 关联的常数。
  20020. */
  20021. static E:number;
  20022. /**
  20023. * 与 F 键的键控代码值 (70) 关联的常数。
  20024. */
  20025. static F:number;
  20026. /**
  20027. * 与 G 键的键控代码值 (71) 关联的常数。
  20028. */
  20029. static G:number;
  20030. /**
  20031. * 与 H 键的键控代码值 (72) 关联的常数。
  20032. */
  20033. static H:number;
  20034. /**
  20035. * 与 I 键的键控代码值 (73) 关联的常数。
  20036. */
  20037. static I:number;
  20038. /**
  20039. * 与 J 键的键控代码值 (74) 关联的常数。
  20040. */
  20041. static J:number;
  20042. /**
  20043. * 与 K 键的键控代码值 (75) 关联的常数。
  20044. */
  20045. static K:number;
  20046. /**
  20047. * 与 L 键的键控代码值 (76) 关联的常数。
  20048. */
  20049. static L:number;
  20050. /**
  20051. * 与 M 键的键控代码值 (77) 关联的常数。
  20052. */
  20053. static M:number;
  20054. /**
  20055. * 与 N 键的键控代码值 (78) 关联的常数。
  20056. */
  20057. static N:number;
  20058. /**
  20059. * 与 O 键的键控代码值 (79) 关联的常数。
  20060. */
  20061. static O:number;
  20062. /**
  20063. * 与 P 键的键控代码值 (80) 关联的常数。
  20064. */
  20065. static P:number;
  20066. /**
  20067. * 与 Q 键的键控代码值 (81) 关联的常数。
  20068. */
  20069. static Q:number;
  20070. /**
  20071. * 与 R 键的键控代码值 (82) 关联的常数。
  20072. */
  20073. static R:number;
  20074. /**
  20075. * 与 S 键的键控代码值 (83) 关联的常数。
  20076. */
  20077. static S:number;
  20078. /**
  20079. * 与 T 键的键控代码值 (84) 关联的常数。
  20080. */
  20081. static T:number;
  20082. /**
  20083. * 与 U 键的键控代码值 (85) 关联的常数。
  20084. */
  20085. static U:number;
  20086. /**
  20087. * 与 V 键的键控代码值 (86) 关联的常数。
  20088. */
  20089. static V:number;
  20090. /**
  20091. * 与 W 键的键控代码值 (87) 关联的常数。
  20092. */
  20093. static W:number;
  20094. /**
  20095. * 与 X 键的键控代码值 (88) 关联的常数。
  20096. */
  20097. static X:number;
  20098. /**
  20099. * 与 Y 键的键控代码值 (89) 关联的常数。
  20100. */
  20101. static Y:number;
  20102. /**
  20103. * 与 Z 键的键控代码值 (90) 关联的常数。
  20104. */
  20105. static Z:number;
  20106. /**
  20107. * 与 F1 的键控代码值 (112) 关联的常数。
  20108. */
  20109. static F1:number;
  20110. /**
  20111. * 与 F2 的键控代码值 (113) 关联的常数。
  20112. */
  20113. static F2:number;
  20114. /**
  20115. * 与 F3 的键控代码值 (114) 关联的常数。
  20116. */
  20117. static F3:number;
  20118. /**
  20119. * 与 F4 的键控代码值 (115) 关联的常数。
  20120. */
  20121. static F4:number;
  20122. /**
  20123. * 与 F5 的键控代码值 (116) 关联的常数。
  20124. */
  20125. static F5:number;
  20126. /**
  20127. * 与 F6 的键控代码值 (117) 关联的常数。
  20128. */
  20129. static F6:number;
  20130. /**
  20131. * 与 F7 的键控代码值 (118) 关联的常数。
  20132. */
  20133. static F7:number;
  20134. /**
  20135. * 与 F8 的键控代码值 (119) 关联的常数。
  20136. */
  20137. static F8:number;
  20138. /**
  20139. * 与 F9 的键控代码值 (120) 关联的常数。
  20140. */
  20141. static F9:number;
  20142. /**
  20143. * 与 F10 的键控代码值 (121) 关联的常数。
  20144. */
  20145. static F10:number;
  20146. /**
  20147. * 与 F11 的键控代码值 (122) 关联的常数。
  20148. */
  20149. static F11:number;
  20150. /**
  20151. * 与 F12 的键控代码值 (123) 关联的常数。
  20152. */
  20153. static F12:number;
  20154. /**
  20155. * 与 F13 的键控代码值 (124) 关联的常数。
  20156. */
  20157. static F13:number;
  20158. /**
  20159. * 与 F14 的键控代码值 (125) 关联的常数。
  20160. */
  20161. static F14:number;
  20162. /**
  20163. * 与 F15 的键控代码值 (126) 关联的常数。
  20164. */
  20165. static F15:number;
  20166. /**
  20167. * 与数字键盘的伪键控代码 (21) 关联的常数。
  20168. */
  20169. static NUMPAD:number;
  20170. /**
  20171. * 与数字键盘上的数字 0 的键控代码值 (96) 关联的常数。
  20172. */
  20173. static NUMPAD_0:number;
  20174. /**
  20175. * 与数字键盘上的数字 1 的键控代码值 (97) 关联的常数。
  20176. */
  20177. static NUMPAD_1:number;
  20178. /**
  20179. * 与数字键盘上的数字 2 的键控代码值 (98) 关联的常数。
  20180. */
  20181. static NUMPAD_2:number;
  20182. /**
  20183. * 与数字键盘上的数字 3 的键控代码值 (99) 关联的常数。
  20184. */
  20185. static NUMPAD_3:number;
  20186. /**
  20187. * 与数字键盘上的数字 4 的键控代码值 (100) 关联的常数。
  20188. */
  20189. static NUMPAD_4:number;
  20190. /**
  20191. * 与数字键盘上的数字 5 的键控代码值 (101) 关联的常数。
  20192. */
  20193. static NUMPAD_5:number;
  20194. /**
  20195. * 与数字键盘上的数字 6 的键控代码值 (102) 关联的常数。
  20196. */
  20197. static NUMPAD_6:number;
  20198. /**
  20199. * 与数字键盘上的数字 7 的键控代码值 (103) 关联的常数。
  20200. */
  20201. static NUMPAD_7:number;
  20202. /**
  20203. * 与数字键盘上的数字 8 的键控代码值 (104) 关联的常数。
  20204. */
  20205. static NUMPAD_8:number;
  20206. /**
  20207. * 与数字键盘上的数字 9 的键控代码值 (105) 关联的常数。
  20208. */
  20209. static NUMPAD_9:number;
  20210. /**
  20211. * 与数字键盘上的加号 (+) 的键控代码值 (107) 关联的常数。
  20212. */
  20213. static NUMPAD_ADD:number;
  20214. /**
  20215. * 与数字键盘上的小数点 (.) 的键控代码值 (110) 关联的常数。
  20216. */
  20217. static NUMPAD_DECIMAL:number;
  20218. /**
  20219. * 与数字键盘上的除号 (/) 的键控代码值 (111) 关联的常数。
  20220. */
  20221. static NUMPAD_DIVIDE:number;
  20222. /**
  20223. * 与数字键盘上的 Enter 的键控代码值 (108) 关联的常数。
  20224. */
  20225. static NUMPAD_ENTER:number;
  20226. /**
  20227. * 与数字键盘上的乘号 (*) 的键控代码值 (106) 关联的常数。
  20228. */
  20229. static NUMPAD_MULTIPLY:number;
  20230. /**
  20231. * 与数字键盘上的减号 (-) 的键控代码值 (109) 关联的常数。
  20232. */
  20233. static NUMPAD_SUBTRACT:number;
  20234. /**
  20235. * 与 ; 键的键控代码值 (186) 关联的常数。
  20236. */
  20237. static SEMICOLON:number;
  20238. /**
  20239. * 与 = 键的键控代码值 (187) 关联的常数。
  20240. */
  20241. static EQUAL:number;
  20242. /**
  20243. * 与 F15 的键控代码值 (188) 关联的常数。
  20244. */
  20245. static COMMA:number;
  20246. /**
  20247. * 与 - 键的键控代码值 (189) 关联的常数。
  20248. */
  20249. static MINUS:number;
  20250. /**
  20251. * 与 . 键的键控代码值 (190) 关联的常数。
  20252. */
  20253. static PERIOD:number;
  20254. /**
  20255. * 与 / 键的键控代码值 (191) 关联的常数。
  20256. */
  20257. static SLASH:number;
  20258. /**
  20259. * 与 ` 键的键控代码值 (192) 关联的常数。
  20260. */
  20261. static BACKQUOTE:number;
  20262. /**
  20263. * 与 [ 键的键控代码值 (219) 关联的常数。
  20264. */
  20265. static LEFTBRACKET:number;
  20266. /**
  20267. * 与 \ 键的键控代码值 (220) 关联的常数。
  20268. */
  20269. static BACKSLASH:number;
  20270. /**
  20271. * 与 ] 键的键控代码值 (221) 关联的常数。
  20272. */
  20273. static RIGHTBRACKET:number;
  20274. /**
  20275. * 与 ' 键的键控代码值 (222) 关联的常数。
  20276. */
  20277. static QUOTE:number;
  20278. /**
  20279. * 与 Alternate (Option) 键的键控代码值 (18) 关联的常数。
  20280. */
  20281. static ALTERNATE:number;
  20282. /**
  20283. * 与 Backspace 的键控代码值 (8) 关联的常数。
  20284. */
  20285. static BACKSPACE:number;
  20286. /**
  20287. * 与 Caps Lock 的键控代码值 (20) 关联的常数。
  20288. */
  20289. static CAPS_LOCK:number;
  20290. /**
  20291. * 与 Mac 命令键 (15) 关联的常数。
  20292. */
  20293. static COMMAND:number;
  20294. /**
  20295. * 与 Ctrl 的键控代码值 (17) 关联的常数。
  20296. */
  20297. static CONTROL:number;
  20298. /**
  20299. * 与 Delete 的键控代码值 (46) 关联的常数。
  20300. */
  20301. static DELETE:number;
  20302. /**
  20303. * 与 Enter 的键控代码值 (13) 关联的常数。
  20304. */
  20305. static ENTER:number;
  20306. /**
  20307. * 与 Esc 的键控代码值 (27) 关联的常数。
  20308. */
  20309. static ESCAPE:number;
  20310. /**
  20311. * 与 Page Up 的键控代码值 (33) 关联的常数。
  20312. */
  20313. static PAGE_UP:number;
  20314. /**
  20315. * 与 Page Down 的键控代码值 (34) 关联的常数。
  20316. */
  20317. static PAGE_DOWN:number;
  20318. /**
  20319. * 与 End 的键控代码值 (35) 关联的常数。
  20320. */
  20321. static END:number;
  20322. /**
  20323. * 与 Home 的键控代码值 (36) 关联的常数。
  20324. */
  20325. static HOME:number;
  20326. /**
  20327. * 与向左箭头键的键控代码值 (37) 关联的常数。
  20328. */
  20329. static LEFT:number;
  20330. /**
  20331. * 与向上箭头键的键控代码值 (38) 关联的常数。
  20332. */
  20333. static UP:number;
  20334. /**
  20335. * 与向右箭头键的键控代码值 (39) 关联的常数。
  20336. */
  20337. static RIGHT:number;
  20338. /**
  20339. * 与向下箭头键的键控代码值 (40) 关联的常数。
  20340. */
  20341. static DOWN:number;
  20342. /**
  20343. * 与 Shift 的键控代码值 (16) 关联的常数。
  20344. */
  20345. static SHIFT:number;
  20346. /**
  20347. * 与空格键的键控代码值 (32) 关联的常数。
  20348. */
  20349. static SPACE:number;
  20350. /**
  20351. * 与 Tab 的键控代码值 (9) 关联的常数。
  20352. */
  20353. static TAB:number;
  20354. /**
  20355. * 与 Insert 的键控代码值 (45) 关联的常数。
  20356. */
  20357. static INSERT:number;
  20358. }
  20359. }
  20360. declare module laya.events {
  20361. /**
  20362. * <p><code>KeyBoardManager</code> 是键盘事件管理类。该类从浏览器中接收键盘事件,并派发该事件。</p>
  20363. * <p>派发事件时若 Stage.focus 为空则只从 Stage 上派发该事件,否则将从 Stage.focus 对象开始一直冒泡派发该事件。所以在 Laya.stage 上监听键盘事件一定能够收到,如果在其他地方监听,则必须处在Stage.focus的冒泡链上才能收到该事件。</p>
  20364. * <p>用户可以通过代码 Laya.stage.focus=someNode 的方式来设置focus对象。</p>
  20365. * <p>用户可统一的根据事件对象中 e.keyCode 来判断按键类型,该属性兼容了不同浏览器的实现。</p>
  20366. */
  20367. class KeyBoardManager {
  20368. private static _pressKeys:any;
  20369. /**
  20370. * 是否开启键盘事件,默认为true
  20371. */
  20372. static enabled:boolean;
  20373. private static _addEvent:any;
  20374. private static _dispatch:any;
  20375. /**
  20376. * 返回指定键是否被按下。
  20377. * @param key 键值。
  20378. * @return 是否被按下。
  20379. */
  20380. static hasKeyDown(key:number):boolean;
  20381. }
  20382. }
  20383. declare module laya.events {
  20384. /**
  20385. * <p><code>KeyLocation</code> 类包含表示在键盘或类似键盘的输入设备上按键位置的常量。</p>
  20386. * <p><code>KeyLocation</code> 常数用在键盘事件对象的 <code>keyLocation </code>属性中。</p>
  20387. */
  20388. class KeyLocation {
  20389. /**
  20390. * 表示激活的键不区分位于左侧还是右侧,也不区分是否位于数字键盘(或者是使用对应于数字键盘的虚拟键激活的)。
  20391. */
  20392. static STANDARD:number;
  20393. /**
  20394. * 表示激活的键在左侧键位置(此键有多个可能的位置)。
  20395. */
  20396. static LEFT:number;
  20397. /**
  20398. * 表示激活的键在右侧键位置(此键有多个可能的位置)。
  20399. */
  20400. static RIGHT:number;
  20401. /**
  20402. * <p>表示激活的键位于数字键盘或者是使用对应于数字键盘的虚拟键激活的。</p>
  20403. * <p>注意:此属性只在flash模式下有效。</p>
  20404. */
  20405. static NUM_PAD:number;
  20406. }
  20407. }
  20408. declare module laya.events {
  20409. /**
  20410. * <p><code>MouseManager</code> 是鼠标、触摸交互管理器。</p>
  20411. * <p>鼠标事件流包括捕获阶段、目标阶段、冒泡阶段。<br/>
  20412. * 捕获阶段:此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象;<br/>
  20413. * 目标阶段:找到命中的目标对象;<br/>
  20414. * 冒泡阶段:事件离开目标对象,按节点层级向上逐层通知,直到到达舞台的过程。</p>
  20415. */
  20416. class MouseManager {
  20417. /**
  20418. * MouseManager 单例引用。
  20419. */
  20420. static instance:MouseManager;
  20421. /**
  20422. * 是否开启鼠标检测,默认为true
  20423. */
  20424. static enabled:boolean;
  20425. /**
  20426. * 是否开启多点触控
  20427. */
  20428. static multiTouchEnabled:boolean;
  20429. /**
  20430. * canvas 上的鼠标X坐标。
  20431. */
  20432. mouseX:number;
  20433. /**
  20434. * canvas 上的鼠标Y坐标。
  20435. */
  20436. mouseY:number;
  20437. /**
  20438. * 是否禁用除 stage 以外的鼠标事件检测。
  20439. */
  20440. disableMouseEvent:boolean;
  20441. /**
  20442. * 鼠标按下的时间。单位为毫秒。
  20443. */
  20444. mouseDownTime:number;
  20445. /**
  20446. * 鼠标移动精度。
  20447. */
  20448. mouseMoveAccuracy:number;
  20449. /**
  20450. * @private
  20451. */
  20452. private static _isTouchRespond:any;
  20453. private _stage:any;
  20454. /**
  20455. * @private 希望capture鼠标事件的对象。
  20456. */
  20457. private _captureSp:any;
  20458. /**
  20459. * @private 现在不支持直接把绝对坐标转到本地坐标,只能一级一级做下去,因此记录一下这个链
  20460. */
  20461. private _captureChain:any;
  20462. /**
  20463. * @private capture对象独占消息
  20464. */
  20465. private _captureExlusiveMode:any;
  20466. /**
  20467. * @private 在发送事件的过程中,是否发送给了_captureSp
  20468. */
  20469. private _hitCaputreSp:any;
  20470. private _point:any;
  20471. private _rect:any;
  20472. private _target:any;
  20473. private _lastMoveTimer:any;
  20474. private _isLeftMouse:any;
  20475. private _prePoint:any;
  20476. private _touchIDs:any;
  20477. private _curTouchID:any;
  20478. private _id:any;
  20479. private static _isFirstTouch:any;
  20480. /**
  20481. * @private 初始化。
  20482. */
  20483. __init__(stage:laya.display.Stage,canvas:any):void;
  20484. private _tTouchID:any;
  20485. private initEvent:any;
  20486. private checkMouseWheel:any;
  20487. private onMouseMove:any;
  20488. private onMouseDown:any;
  20489. private onMouseUp:any;
  20490. private check:any;
  20491. private hitTest:any;
  20492. private _checkAllBaseUI:any;
  20493. /**
  20494. * 处理3d界面。
  20495. * @param mousex
  20496. * @param mousey
  20497. * @param callback
  20498. * @return
  20499. */
  20500. check3DUI(mousex:number,mousey:number,callback:Function):boolean;
  20501. handleExclusiveCapture(mousex:number,mousey:number,callback:Function):boolean;
  20502. handleCapture(mousex:number,mousey:number,callback:Function):boolean;
  20503. /**
  20504. * 执行事件处理。
  20505. */
  20506. runEvent(evt:any):void;
  20507. /**
  20508. * @param sp
  20509. * @param exlusive 是否是独占模式
  20510. */
  20511. setCapture(sp:laya.display.Sprite,exclusive?:boolean):void;
  20512. releaseCapture():void;
  20513. }
  20514. }
  20515. declare module laya.events {
  20516. /**
  20517. * @private Touch事件管理类,处理多点触控下的鼠标事件
  20518. */
  20519. class TouchManager {
  20520. static I:TouchManager;
  20521. private static _oldArr:any;
  20522. private static _newArr:any;
  20523. private static _tEleArr:any;
  20524. /**
  20525. * 当前over的touch表
  20526. */
  20527. private preOvers:any;
  20528. /**
  20529. * 当前down的touch表
  20530. */
  20531. private preDowns:any;
  20532. private preRightDowns:any;
  20533. /**
  20534. * 是否启用
  20535. */
  20536. enable:boolean;
  20537. private _lastClickTime:any;
  20538. private _clearTempArrs:any;
  20539. /**
  20540. * 从touch表里查找对应touchID的数据
  20541. * @param touchID touch ID
  20542. * @param arr touch表
  20543. * @return
  20544. */
  20545. private getTouchFromArr:any;
  20546. /**
  20547. * 从touch表里移除一个元素
  20548. * @param touchID touch ID
  20549. * @param arr touch表
  20550. */
  20551. private removeTouchFromArr:any;
  20552. /**
  20553. * 创建一个touch数据
  20554. * @param ele 当前的根节点
  20555. * @param touchID touchID
  20556. * @return
  20557. */
  20558. private createTouchO:any;
  20559. /**
  20560. * 处理touchStart
  20561. * @param ele 根节点
  20562. * @param touchID touchID
  20563. * @param isLeft (可选)是否为左键
  20564. */
  20565. onMouseDown(ele:any,touchID:number,isLeft?:boolean):void;
  20566. /**
  20567. * 派发事件。
  20568. * @param eles 对象列表。
  20569. * @param type 事件类型。
  20570. */
  20571. private sendEvents:any;
  20572. /**
  20573. * 获取对象列表。
  20574. * @param start 起始节点。
  20575. * @param end 结束节点。
  20576. * @param rst 返回值。如果此值不为空,则将其赋值为计算结果,从而避免创建新数组;如果此值为空,则创建新数组返回。
  20577. * @return Array 返回节点列表。
  20578. */
  20579. private getEles:any;
  20580. /**
  20581. * touchMove时处理out事件和over时间。
  20582. * @param eleNew 新的根节点。
  20583. * @param elePre 旧的根节点。
  20584. * @param touchID (可选)touchID,默认为0。
  20585. */
  20586. private checkMouseOutAndOverOfMove:any;
  20587. /**
  20588. * 处理TouchMove事件
  20589. * @param ele 根节点
  20590. * @param touchID touchID
  20591. */
  20592. onMouseMove(ele:any,touchID:number):void;
  20593. getLastOvers():any[];
  20594. stageMouseOut():void;
  20595. /**
  20596. * 处理TouchEnd事件
  20597. * @param ele 根节点
  20598. * @param touchID touchID
  20599. * @param isLeft 是否为左键
  20600. */
  20601. onMouseUp(ele:any,touchID:number,isLeft?:boolean):void;
  20602. }
  20603. }
  20604. declare module laya.filters {
  20605. /**
  20606. * 模糊滤镜
  20607. */
  20608. class BlurFilter extends laya.filters.Filter {
  20609. /**
  20610. * 模糊滤镜的强度(值越大,越不清晰
  20611. */
  20612. strength:number;
  20613. strength_sig2_2sig2_gauss1:any[];
  20614. strength_sig2_native:Float32Array;
  20615. renderFunc:any;
  20616. /**
  20617. * 模糊滤镜
  20618. * @param strength 模糊滤镜的强度值
  20619. */
  20620. constructor(strength?:number);
  20621. /**
  20622. * @private 当前滤镜的类型
  20623. * @override
  20624. */
  20625. get type():number;
  20626. getStrenth_sig2_2sig2_native():Float32Array;
  20627. }
  20628. }
  20629. declare module laya.filters {
  20630. /**
  20631. * @private
  20632. */
  20633. class BlurFilterGLRender {
  20634. private static blurinfo:any;
  20635. render(rt:laya.resource.RenderTexture2D,ctx:laya.resource.Context,width:number,height:number,filter:laya.filters.BlurFilter):void;
  20636. setShaderInfo(shader:laya.webgl.shader.d2.value.Value2D,filter:laya.filters.BlurFilter,w:number,h:number):void;
  20637. }
  20638. }
  20639. declare module laya.filters {
  20640. /**
  20641. * <p><code>ColorFilter</code> 是颜色滤镜。使用 ColorFilter 类可以将 4 x 5 矩阵转换应用于输入图像上的每个像素的 RGBA 颜色和 Alpha 值,以生成具有一组新的 RGBA 颜色和 Alpha 值的结果。该类允许饱和度更改、色相旋转、亮度转 Alpha 以及各种其他效果。您可以将滤镜应用于任何显示对象(即,从 Sprite 类继承的对象)。</p>
  20642. * <p>注意:对于 RGBA 值,最高有效字节代表红色通道值,其后的有效字节分别代表绿色、蓝色和 Alpha 通道值。</p>
  20643. */
  20644. class ColorFilter extends laya.filters.Filter implements laya.filters.IFilter {
  20645. /**
  20646. * 对比度列表
  20647. */
  20648. private static DELTA_INDEX:any;
  20649. /**
  20650. * 灰色矩阵
  20651. */
  20652. private static GRAY_MATRIX:any;
  20653. /**
  20654. * 单位矩阵,表示什么效果都没有
  20655. */
  20656. private static IDENTITY_MATRIX:any;
  20657. /**
  20658. * 标准矩阵长度
  20659. */
  20660. private static LENGTH:any;
  20661. /**
  20662. * 当前使用的矩阵
  20663. */
  20664. private _matrix:any;
  20665. /**
  20666. * 创建一个 <code>ColorFilter</code> 实例。
  20667. * @param mat (可选)由 20 个项目(排列成 4 x 5 矩阵)组成的数组,用于颜色转换。
  20668. */
  20669. constructor(mat?:any[]);
  20670. /**
  20671. * 设置为灰色滤镜
  20672. */
  20673. gray():ColorFilter;
  20674. /**
  20675. * 设置为变色滤镜
  20676. * @param red 红色增量,范围:0~255
  20677. * @param green 绿色增量,范围:0~255
  20678. * @param blue 蓝色增量,范围:0~255
  20679. * @param alpha alpha,范围:0~1
  20680. */
  20681. color(red?:number,green?:number,blue?:number,alpha?:number):ColorFilter;
  20682. /**
  20683. * 设置滤镜色
  20684. * @param color 颜色值
  20685. */
  20686. setColor(color:string):ColorFilter;
  20687. /**
  20688. * 设置矩阵数据
  20689. * @param matrix 由 20 个项目(排列成 4 x 5 矩阵)组成的数组
  20690. * @return this
  20691. */
  20692. setByMatrix(matrix:any[]):ColorFilter;
  20693. /**
  20694. * @private
  20695. * @override
  20696. */
  20697. get type():number;
  20698. /**
  20699. * 调整颜色,包括亮度,对比度,饱和度和色调
  20700. * @param brightness 亮度,范围:-100~100
  20701. * @param contrast 对比度,范围:-100~100
  20702. * @param saturation 饱和度,范围:-100~100
  20703. * @param hue 色调,范围:-180~180
  20704. * @return this
  20705. */
  20706. adjustColor(brightness:number,contrast:number,saturation:number,hue:number):ColorFilter;
  20707. /**
  20708. * 调整亮度
  20709. * @param brightness 亮度,范围:-100~100
  20710. * @return this
  20711. */
  20712. adjustBrightness(brightness:number):ColorFilter;
  20713. /**
  20714. * 调整对比度
  20715. * @param contrast 对比度,范围:-100~100
  20716. * @return this
  20717. */
  20718. adjustContrast(contrast:number):ColorFilter;
  20719. /**
  20720. * 调整饱和度
  20721. * @param saturation 饱和度,范围:-100~100
  20722. * @return this
  20723. */
  20724. adjustSaturation(saturation:number):ColorFilter;
  20725. /**
  20726. * 调整色调
  20727. * @param hue 色调,范围:-180~180
  20728. * @return this
  20729. */
  20730. adjustHue(hue:number):ColorFilter;
  20731. /**
  20732. * 重置成单位矩阵,去除滤镜效果
  20733. */
  20734. reset():ColorFilter;
  20735. /**
  20736. * 矩阵乘法
  20737. * @param matrix
  20738. * @return this
  20739. */
  20740. private _multiplyMatrix:any;
  20741. /**
  20742. * 规范值的范围
  20743. * @param val 当前值
  20744. * @param limit 值的范围-limit~limit
  20745. */
  20746. private _clampValue:any;
  20747. /**
  20748. * 规范矩阵,将矩阵调整到正确的大小
  20749. * @param matrix 需要调整的矩阵
  20750. */
  20751. private _fixMatrix:any;
  20752. /**
  20753. * 复制矩阵
  20754. */
  20755. private _copyMatrix:any;
  20756. }
  20757. }
  20758. declare module laya.filters {
  20759. /**
  20760. * <code>Filter</code> 是滤镜基类。
  20761. */
  20762. class Filter implements laya.filters.IFilter {
  20763. /**
  20764. * @private 模糊滤镜。
  20765. */
  20766. static BLUR:number;
  20767. /**
  20768. * @private 颜色滤镜。
  20769. */
  20770. static COLOR:number;
  20771. /**
  20772. * @private 发光滤镜。
  20773. */
  20774. static GLOW:number;
  20775. /**
  20776. * 创建一个 <code>Filter</code> 实例。
  20777. */
  20778. constructor();
  20779. /**
  20780. * @private 滤镜类型。
  20781. */
  20782. get type():number;
  20783. static _filter:(sprite:laya.display.Sprite,context:laya.resource.Context,x:number,y:number) =>void;
  20784. }
  20785. }
  20786. declare module laya.filters {
  20787. /**
  20788. * 发光滤镜(也可以当成阴影滤使用)
  20789. */
  20790. class GlowFilter extends laya.filters.Filter {
  20791. /**
  20792. * 数据的存储,顺序R,G,B,A,blurWidth,offX,offY;
  20793. */
  20794. private _elements:any;
  20795. /**
  20796. * 滤镜的颜色
  20797. */
  20798. private _color:any;
  20799. /**
  20800. * 创建发光滤镜
  20801. * @param color 滤镜的颜色
  20802. * @param blur 边缘模糊的大小
  20803. * @param offX X轴方向的偏移
  20804. * @param offY Y轴方向的偏移
  20805. */
  20806. constructor(color:string,blur?:number,offX?:number,offY?:number);
  20807. /**
  20808. * @private 滤镜类型
  20809. * @override
  20810. */
  20811. get type():number;
  20812. /**
  20813. * @private
  20814. */
  20815. get offY():number;
  20816. /**
  20817. * @private
  20818. */
  20819. set offY(value:number);
  20820. /**
  20821. * @private
  20822. */
  20823. get offX():number;
  20824. /**
  20825. * @private
  20826. */
  20827. set offX(value:number);
  20828. /**
  20829. * @private
  20830. */
  20831. getColor():any[];
  20832. /**
  20833. * @private
  20834. */
  20835. get blur():number;
  20836. /**
  20837. * @private
  20838. */
  20839. set blur(value:number);
  20840. getColorNative():Float32Array;
  20841. getBlurInfo1Native():Float32Array;
  20842. getBlurInfo2Native():Float32Array;
  20843. }
  20844. }
  20845. declare module laya.filters {
  20846. /**
  20847. * @private
  20848. */
  20849. class GlowFilterGLRender {
  20850. private setShaderInfo:any;
  20851. render(rt:laya.resource.RenderTexture2D,ctx:laya.resource.Context,width:number,height:number,filter:laya.filters.GlowFilter):void;
  20852. }
  20853. }
  20854. declare module laya.filters {
  20855. /**
  20856. * 滤镜接口。
  20857. */
  20858. interface IFilter{
  20859. type:number;
  20860. }
  20861. }
  20862. declare module laya.html.dom {
  20863. /**
  20864. * HTML图文类,用于显示html内容
  20865. *
  20866. * 支持的标签如下:
  20867. * a:链接标签,点击后会派发"link"事件 比如:<a href='alink'>a</a>
  20868. * div:div容器标签,比如:<div>abc</div>
  20869. * span:行内元素标签,比如:<span style='color:#ff0000'>abc</span>
  20870. * p:行元素标签,p标签会自动换行,div不会,比如:<p>abc</p>
  20871. * img:图片标签,比如:<img src='res/boy.png'></img>
  20872. * br:换行标签,比如:<div>abc<br/>def</div>
  20873. * style:样式标签,比如:<div style='width:130px;height:50px;color:#ff0000'>abc</div>
  20874. * link:外链样式标签,可以加载一个css文件来当style使用,比如:<link type='text/css' href='html/test.css'/>
  20875. *
  20876. * style支持的属性如下:
  20877. * italic:true|false; 是否是斜体
  20878. * bold:true|false; 是否是粗体
  20879. * letter-spacing:10px; 字间距
  20880. * font-family:宋体; 字体
  20881. * font-size:20px; 字体大小
  20882. * font-weight:bold:none; 字体是否是粗体,功能同bold
  20883. * color:#ff0000; 字体颜色
  20884. * stroke:2px; 字体描边宽度
  20885. * strokeColor:#ff0000; 字体描边颜色
  20886. * padding:10px 10px 20px 20px; 边缘的距离
  20887. * vertical-align:top|bottom|middle; 垂直对齐方式
  20888. * align:left|right|center; 水平对齐方式
  20889. * line-height:20px; 行高
  20890. * background-color:#ff0000; 背景颜色
  20891. * border-color:#ff0000; 边框颜色
  20892. * width:100px; 对象宽度
  20893. * height:100px; 对象高度
  20894. *
  20895. * 示例用法:
  20896. * var div:HTMLDivElement=new HTMLDivElement();
  20897. * 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>";
  20898. */
  20899. class HTMLDivElement extends laya.display.Sprite {
  20900. /**
  20901. * @private
  20902. */
  20903. private _recList:any;
  20904. /**
  20905. * @private
  20906. */
  20907. private _innerHTML:any;
  20908. /**
  20909. * @private
  20910. */
  20911. private _repaintState:any;
  20912. constructor();
  20913. /**
  20914. * @private
  20915. * @override
  20916. */
  20917. destroy(destroyChild?:boolean):void;
  20918. /**
  20919. * @private
  20920. */
  20921. private _htmlDivRepaint:any;
  20922. private _updateGraphicWork:any;
  20923. private _setGraphicDirty:any;
  20924. /**
  20925. * @private
  20926. */
  20927. private _doClears:any;
  20928. /**
  20929. * @private
  20930. */
  20931. private _updateGraphic:any;
  20932. /**
  20933. * 获取HTML样式
  20934. */
  20935. get style():laya.html.utils.HTMLStyle;
  20936. /**
  20937. * 设置标签内容
  20938. */
  20939. set innerHTML(text:string);
  20940. private _refresh:any;
  20941. /**
  20942. * 获取內容宽度
  20943. */
  20944. get contextWidth():number;
  20945. /**
  20946. * 获取內容高度
  20947. */
  20948. get contextHeight():number;
  20949. /**
  20950. * @private
  20951. */
  20952. private _onMouseClick:any;
  20953. /**
  20954. * @private
  20955. */
  20956. private _eventLink:any;
  20957. }
  20958. }
  20959. declare module laya.html.dom {
  20960. /**
  20961. * @private
  20962. */
  20963. class HTMLDivParser extends laya.html.dom.HTMLElement {
  20964. /**
  20965. * 实际内容的高
  20966. */
  20967. contextHeight:number;
  20968. /**
  20969. * 实际内容的宽
  20970. */
  20971. contextWidth:number;
  20972. /**
  20973. * @private
  20974. */
  20975. private _htmlBounds:any;
  20976. /**
  20977. * @private
  20978. */
  20979. private _boundsRec:any;
  20980. /**
  20981. * 重绘回调
  20982. */
  20983. repaintHandler:laya.utils.Handler;
  20984. /**
  20985. * @override
  20986. */
  20987. reset():laya.html.dom.HTMLElement;
  20988. /**
  20989. * 设置标签内容
  20990. */
  20991. set innerHTML(text:string);
  20992. /**
  20993. * @override
  20994. */
  20995. set width(value:number);
  20996. /**
  20997. * 追加内容,解析并对显示对象排版
  20998. * @param text
  20999. */
  21000. appendHTML(text:string):void;
  21001. /**
  21002. * 获取bounds
  21003. * @return
  21004. */
  21005. getBounds():laya.maths.Rectangle;
  21006. /**
  21007. * @override
  21008. */
  21009. parentRepaint(recreate?:boolean):void;
  21010. /**
  21011. * @private 对显示内容进行排版
  21012. */
  21013. layout():void;
  21014. /**
  21015. * 获取对象的高
  21016. * @override
  21017. */
  21018. get height():number;
  21019. /**
  21020. * @override
  21021. */
  21022. set height(value:number);
  21023. /**
  21024. * 获取对象的宽
  21025. * @override
  21026. */
  21027. get width():number;
  21028. }
  21029. }
  21030. declare module laya.html.dom {
  21031. /**
  21032. * @private
  21033. */
  21034. class HTMLDocument {
  21035. static document:HTMLDocument;
  21036. all:laya.html.dom.HTMLElement[];
  21037. styleSheets:any;
  21038. getElementById(id:string):laya.html.dom.HTMLElement;
  21039. setElementById(id:string,e:laya.html.dom.HTMLElement):void;
  21040. }
  21041. }
  21042. declare module laya.html.dom {
  21043. enum HTMLElementType {
  21044. BASE = 0,
  21045. IMAGE = 1
  21046. }
  21047. /**
  21048. * @private
  21049. */
  21050. class HTMLElement {
  21051. private static _EMPTYTEXT:any;
  21052. eletype:HTMLElementType;
  21053. URI:laya.net.URL;
  21054. parent:HTMLElement;
  21055. _style:laya.html.utils.HTMLStyle;
  21056. protected _text:any;
  21057. protected _children:any[];
  21058. protected _x:number;
  21059. protected _y:number;
  21060. protected _width:number;
  21061. protected _height:number;
  21062. /**
  21063. * 格式化指定的地址并返回。
  21064. * @param url 地址。
  21065. * @param base 基础路径,如果没有,则使用basePath。
  21066. * @return 格式化处理后的地址。
  21067. */
  21068. static formatURL1(url:string,basePath?:string):string;
  21069. constructor();
  21070. protected _creates():void;
  21071. /**
  21072. * 重置
  21073. */
  21074. reset():HTMLElement;
  21075. set id(value:string);
  21076. repaint(recreate?:boolean):void;
  21077. parentRepaint(recreate?:boolean):void;
  21078. set innerTEXT(value:string);
  21079. get innerTEXT():string;
  21080. protected _setParent(value:HTMLElement):void;
  21081. appendChild(c:HTMLElement):HTMLElement;
  21082. addChild(c:HTMLElement):HTMLElement;
  21083. removeChild(c:HTMLElement):HTMLElement;
  21084. static getClassName(tar:any):string;
  21085. /**
  21086. * <p>销毁此对象。destroy对象默认会把自己从父节点移除,并且清理自身引用关系,等待js自动垃圾回收机制回收。destroy后不能再使用。</p>
  21087. * <p>destroy时会移除自身的事情监听,自身的timer监听,移除子对象及从父节点移除自己。</p>
  21088. * @param destroyChild (可选)是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。
  21089. */
  21090. destroy():void;
  21091. /**
  21092. * 销毁所有子对象,不销毁自己本身。
  21093. */
  21094. destroyChildren():void;
  21095. get style():laya.html.utils.HTMLStyle;
  21096. set x(v:number);
  21097. get x():number;
  21098. set y(v:number);
  21099. get y():number;
  21100. get width():number;
  21101. set width(value:number);
  21102. get height():number;
  21103. set height(value:number);
  21104. set href(url:string);
  21105. get href():string;
  21106. formatURL(url:string):string;
  21107. set color(value:string);
  21108. set className(value:string);
  21109. drawToGraphic(graphic:laya.display.Graphics,gX:number,gY:number,recList:any[]):void;
  21110. renderSelfToGraphic(graphic:laya.display.Graphics,gX:number,gY:number,recList:any[]):void;
  21111. private workLines:any;
  21112. private createOneLine:any;
  21113. }
  21114. }
  21115. declare module laya.html.dom {
  21116. /**
  21117. * @private
  21118. */
  21119. class HTMLHitRect {
  21120. rec:laya.maths.Rectangle;
  21121. href:string;
  21122. constructor();
  21123. reset():HTMLHitRect;
  21124. recover():void;
  21125. static create():HTMLHitRect;
  21126. }
  21127. }
  21128. declare module laya.html.dom {
  21129. /**
  21130. * iframe标签类,目前用于加载外并解析数据
  21131. */
  21132. class HTMLIframeElement extends laya.html.dom.HTMLDivElement {
  21133. constructor();
  21134. /**
  21135. * 加载html文件,并解析数据
  21136. * @param url
  21137. */
  21138. set href(url:string);
  21139. }
  21140. }
  21141. declare module laya.html.dom {
  21142. /**
  21143. * @private
  21144. */
  21145. class HTMLImageElement extends laya.html.dom.HTMLElement {
  21146. private _tex:any;
  21147. private _url:any;
  21148. constructor();
  21149. /**
  21150. * @override
  21151. */
  21152. reset():laya.html.dom.HTMLElement;
  21153. set src(url:string);
  21154. private onloaded:any;
  21155. /**
  21156. * @param graphic
  21157. * @param gX
  21158. * @param gY
  21159. * @param recList
  21160. * @override
  21161. */
  21162. renderSelfToGraphic(graphic:laya.display.Graphics,gX:number,gY:number,recList:any[]):void;
  21163. }
  21164. }
  21165. declare module laya.html.dom {
  21166. /**
  21167. * @private
  21168. */
  21169. class HTMLLinkElement extends laya.html.dom.HTMLElement {
  21170. static _cuttingStyle:RegExp;
  21171. type:string;
  21172. private _loader:any;
  21173. /**
  21174. * @override
  21175. */
  21176. protected _creates():void;
  21177. /**
  21178. * @param graphic
  21179. * @param gX
  21180. * @param gY
  21181. * @param recList
  21182. * @override
  21183. */
  21184. drawToGraphic(graphic:laya.display.Graphics,gX:number,gY:number,recList:any[]):void;
  21185. /**
  21186. * @override
  21187. */
  21188. reset():laya.html.dom.HTMLElement;
  21189. /**
  21190. * @override
  21191. */
  21192. set href(url:string);
  21193. /**
  21194. * @override
  21195. */
  21196. get href():string;
  21197. }
  21198. }
  21199. declare module laya.html.dom {
  21200. /**
  21201. * @private
  21202. */
  21203. class HTMLStyleElement extends laya.html.dom.HTMLElement {
  21204. /**
  21205. * @override
  21206. */
  21207. protected _creates():void;
  21208. /**
  21209. * @param graphic
  21210. * @param gX
  21211. * @param gY
  21212. * @param recList
  21213. * @override
  21214. */
  21215. drawToGraphic(graphic:laya.display.Graphics,gX:number,gY:number,recList:any[]):void;
  21216. /**
  21217. * @override
  21218. */
  21219. reset():laya.html.dom.HTMLElement;
  21220. /**
  21221. * 解析样式
  21222. * @override
  21223. */
  21224. set innerTEXT(value:string);
  21225. /**
  21226. * @override
  21227. */
  21228. get innerTEXT():string;
  21229. }
  21230. }
  21231. declare module laya.html.utils {
  21232. /**
  21233. * @private
  21234. */
  21235. class HTMLExtendStyle {
  21236. static EMPTY:HTMLExtendStyle;
  21237. /**
  21238. * <p>描边宽度(以像素为单位)。</p>
  21239. * 默认值0,表示不描边。
  21240. * @default 0
  21241. */
  21242. stroke:number;
  21243. /**
  21244. * <p>描边颜色,以字符串表示。</p>
  21245. * @default "#000000";
  21246. */
  21247. strokeColor:string;
  21248. /**
  21249. * <p>垂直行间距(以像素为单位)</p>
  21250. */
  21251. leading:number;
  21252. /**
  21253. * 行高。
  21254. */
  21255. lineHeight:number;
  21256. letterSpacing:number;
  21257. href:string;
  21258. constructor();
  21259. reset():HTMLExtendStyle;
  21260. recover():void;
  21261. /**
  21262. * 从对象池中创建
  21263. */
  21264. static create():HTMLExtendStyle;
  21265. }
  21266. }
  21267. declare module laya.html.utils {
  21268. /**
  21269. * @private
  21270. */
  21271. class HTMLParse {
  21272. private static char255:any;
  21273. private static spacePattern:any;
  21274. private static char255AndOneSpacePattern:any;
  21275. private static _htmlClassMapShort:any;
  21276. /**
  21277. * 根据类型获取对应的节点
  21278. * @param type
  21279. */
  21280. static getInstance(type:string):any;
  21281. /**
  21282. * 解析HTML
  21283. * @param ower
  21284. * @param xmlString
  21285. * @param url
  21286. */
  21287. static parse(ower:laya.html.dom.HTMLDivParser,xmlString:string,url:laya.net.URL):void;
  21288. /**
  21289. * 解析xml节点 该函数会被递归调用
  21290. * @param xml
  21291. */
  21292. private static _parseXML:any;
  21293. }
  21294. }
  21295. declare module laya.html.utils {
  21296. /**
  21297. * @private
  21298. */
  21299. class HTMLStyle {
  21300. private static _CSSTOVALUE:any;
  21301. private static _parseCSSRegExp:any;
  21302. /**
  21303. * 需要继承的属性
  21304. */
  21305. private static _inheritProps:any;
  21306. /**
  21307. * 水平居左对齐方式。
  21308. */
  21309. static ALIGN_LEFT:string;
  21310. /**
  21311. * 水平居中对齐方式。
  21312. */
  21313. static ALIGN_CENTER:string;
  21314. /**
  21315. * 水平居右对齐方式。
  21316. */
  21317. static ALIGN_RIGHT:string;
  21318. /**
  21319. * 垂直居中对齐方式。
  21320. */
  21321. static VALIGN_TOP:string;
  21322. /**
  21323. * 垂直居中对齐方式。
  21324. */
  21325. static VALIGN_MIDDLE:string;
  21326. /**
  21327. * 垂直居底部对齐方式。
  21328. */
  21329. static VALIGN_BOTTOM:string;
  21330. /**
  21331. * 样式表信息。
  21332. */
  21333. static styleSheets:any;
  21334. /**
  21335. * 添加布局。
  21336. */
  21337. static ADDLAYOUTED:number;
  21338. private static _PADDING:any;
  21339. protected static _HEIGHT_SET:number;
  21340. protected static _LINE_ELEMENT:number;
  21341. protected static _NOWARP:number;
  21342. protected static _WIDTHAUTO:number;
  21343. protected static _BOLD:number;
  21344. protected static _ITALIC:number;
  21345. /**
  21346. * @private
  21347. */
  21348. protected static _CSS_BLOCK:number;
  21349. /**
  21350. * @private
  21351. */
  21352. protected static _DISPLAY_NONE:number;
  21353. /**
  21354. * @private
  21355. */
  21356. protected static _ABSOLUTE:number;
  21357. /**
  21358. * @private
  21359. */
  21360. protected static _WIDTH_SET:number;
  21361. protected static alignVDic:any;
  21362. protected static align_Value:any;
  21363. protected static vAlign_Value:any;
  21364. protected static _ALIGN:number;
  21365. protected static _VALIGN:number;
  21366. fontSize:number;
  21367. family:string;
  21368. color:string;
  21369. ower:laya.html.dom.HTMLElement;
  21370. private _extendStyle:any;
  21371. textDecoration:string;
  21372. /**
  21373. * 文本背景颜色,以字符串表示。
  21374. */
  21375. bgColor:string;
  21376. /**
  21377. * 文本边框背景颜色,以字符串表示。
  21378. */
  21379. borderColor:string;
  21380. /**
  21381. * 边距信息。
  21382. */
  21383. padding:any[];
  21384. constructor();
  21385. private _getExtendStyle:any;
  21386. get href():string;
  21387. set href(value:string);
  21388. /**
  21389. * <p>描边宽度(以像素为单位)。</p>
  21390. * 默认值0,表示不描边。
  21391. * @default 0
  21392. */
  21393. get stroke():number;
  21394. set stroke(value:number);
  21395. /**
  21396. * <p>描边颜色,以字符串表示。</p>
  21397. * @default "#000000";
  21398. */
  21399. get strokeColor():string;
  21400. set strokeColor(value:string);
  21401. /**
  21402. * <p>垂直行间距(以像素为单位)</p>
  21403. */
  21404. get leading():number;
  21405. set leading(value:number);
  21406. /**
  21407. * 行高。
  21408. */
  21409. get lineHeight():number;
  21410. set lineHeight(value:number);
  21411. set align(v:string);
  21412. /**
  21413. * <p>表示使用此文本格式的文本段落的水平对齐方式。</p>
  21414. * @default "left"
  21415. */
  21416. get align():string;
  21417. set valign(v:string);
  21418. /**
  21419. * <p>表示使用此文本格式的文本段落的水平对齐方式。</p>
  21420. * @default "left"
  21421. */
  21422. get valign():string;
  21423. /**
  21424. * 字体样式字符串。
  21425. */
  21426. set font(value:string);
  21427. get font():string;
  21428. /**
  21429. * 是否显示为块级元素。
  21430. */
  21431. set block(value:boolean);
  21432. /**
  21433. * 表示元素是否显示为块级元素。
  21434. */
  21435. get block():boolean;
  21436. /**
  21437. * 重置,方便下次复用
  21438. */
  21439. reset():HTMLStyle;
  21440. /**
  21441. * 回收
  21442. */
  21443. recover():void;
  21444. /**
  21445. * 从对象池中创建
  21446. */
  21447. static create():HTMLStyle;
  21448. /**
  21449. * 复制传入的 CSSStyle 属性值。
  21450. * @param src 待复制的 CSSStyle 对象。
  21451. */
  21452. inherit(src:HTMLStyle):void;
  21453. /**
  21454. * 表示是否换行。
  21455. */
  21456. get wordWrap():boolean;
  21457. set wordWrap(value:boolean);
  21458. /**
  21459. * 是否为粗体
  21460. */
  21461. get bold():boolean;
  21462. set bold(value:boolean);
  21463. get fontWeight():string;
  21464. set fontWeight(value:string);
  21465. /**
  21466. * 表示使用此文本格式的文本是否为斜体。
  21467. * @default false
  21468. */
  21469. get italic():boolean;
  21470. set italic(value:boolean);
  21471. /**
  21472. * @inheritDoc
  21473. */
  21474. widthed(sprite:any):boolean;
  21475. set whiteSpace(type:string);
  21476. /**
  21477. * 设置如何处理元素内的空白。
  21478. */
  21479. get whiteSpace():string;
  21480. /**
  21481. * 宽度。
  21482. */
  21483. set width(w:any);
  21484. /**
  21485. * 高度。
  21486. */
  21487. set height(h:any);
  21488. /**
  21489. * 是否已设置高度。
  21490. * @param sprite 显示对象 Sprite。
  21491. * @return 一个Boolean 表示是否已设置高度。
  21492. */
  21493. heighted(sprite:any):boolean;
  21494. /**
  21495. * 设置宽高。
  21496. * @param w 宽度。
  21497. * @param h 高度。
  21498. */
  21499. size(w:number,h:number):void;
  21500. /**
  21501. * 是否是行元素。
  21502. */
  21503. getLineElement():boolean;
  21504. setLineElement(value:boolean):void;
  21505. /**
  21506. * 间距。
  21507. */
  21508. get letterSpacing():number;
  21509. set letterSpacing(d:number);
  21510. /**
  21511. * 设置 CSS 样式字符串。
  21512. * @param text CSS样式字符串。
  21513. */
  21514. cssText(text:string):void;
  21515. /**
  21516. * 根据传入的属性名、属性值列表,设置此对象的属性值。
  21517. * @param attrs 属性名与属性值列表。
  21518. */
  21519. attrs(attrs:any[]):void;
  21520. set position(value:string);
  21521. /**
  21522. * 元素的定位类型。
  21523. */
  21524. get position():string;
  21525. /**
  21526. * @inheritDoc
  21527. */
  21528. get absolute():boolean;
  21529. /**
  21530. * @inheritDoc
  21531. */
  21532. get paddingLeft():number;
  21533. /**
  21534. * @inheritDoc
  21535. */
  21536. get paddingTop():number;
  21537. /**
  21538. * 通过传入的分割符,分割解析CSS样式字符串,返回样式列表。
  21539. * @param text CSS样式字符串。
  21540. * @param clipWord 分割符;
  21541. * @return 样式列表。
  21542. */
  21543. static parseOneCSS(text:string,clipWord:string):any[];
  21544. /**
  21545. * 解析 CSS 样式文本。
  21546. * @param text CSS 样式文本。
  21547. * @param uri URL对象。
  21548. */
  21549. static parseCSS(text:string,uri:laya.net.URL):void;
  21550. }
  21551. }
  21552. declare module laya.html.utils {
  21553. /**
  21554. * @private <code>ILayout</code> 类是显示对象的布局接口。
  21555. */
  21556. interface ILayout{
  21557. x:number;
  21558. y:number;
  21559. width:number;
  21560. height:number;
  21561. }
  21562. }
  21563. declare module laya.html.utils {
  21564. /**
  21565. * @private HTML的布局类
  21566. 对HTML的显示对象进行排版
  21567. */
  21568. class Layout {
  21569. private static DIV_ELEMENT_PADDING:any;
  21570. private static _will:any;
  21571. static later(element:laya.html.dom.HTMLElement):void;
  21572. static layout(element:laya.html.dom.HTMLElement):any[];
  21573. static _multiLineLayout(element:laya.html.dom.HTMLElement):any[];
  21574. }
  21575. }
  21576. declare module laya.html.utils {
  21577. /**
  21578. * @private
  21579. */
  21580. class LayoutLine {
  21581. elements:laya.html.utils.ILayout[];
  21582. x:number;
  21583. y:number;
  21584. w:number;
  21585. h:number;
  21586. wordStartIndex:number;
  21587. minTextHeight:number;
  21588. mWidth:number;
  21589. /**
  21590. * 底对齐(默认)
  21591. * @param left
  21592. * @param width
  21593. * @param dy
  21594. * @param align 水平
  21595. * @param valign 垂直
  21596. * @param lineHeight 行高
  21597. */
  21598. updatePos(left:number,width:number,lineNum:number,dy:number,align:string,valign:string,lineHeight:number):void;
  21599. }
  21600. }
  21601. declare module laya.layagl {
  21602. /**
  21603. * @private CommandEncoder
  21604. */
  21605. class CommandEncoder {
  21606. constructor(layagl:any,reserveSize:number,adjustSize:number,isSyncToRenderThread:boolean);
  21607. getArrayData():any[];
  21608. getPtrID():number;
  21609. beginEncoding():void;
  21610. endEncoding():void;
  21611. clearEncoding():void;
  21612. getCount():number;
  21613. add_ShaderValue(o:any):void;
  21614. addShaderUniform(one:any):void;
  21615. }
  21616. }
  21617. declare module laya.layagl {
  21618. /**
  21619. * ...
  21620. * @author ww
  21621. */
  21622. class QuickTestTool {
  21623. private static showedDic:any;
  21624. private static _rendertypeToStrDic:any;
  21625. private static _typeToNameDic:any;
  21626. static getMCDName(type:number):string;
  21627. static showRenderTypeInfo(type:any,force?:boolean):void;
  21628. static __init__():void;
  21629. _renderType:number;
  21630. _repaint:number;
  21631. _x:number;
  21632. _y:number;
  21633. constructor();
  21634. /**
  21635. * 更新、呈现显示对象。由系统调用。
  21636. * @param context 渲染的上下文引用。
  21637. * @param x X轴坐标。
  21638. * @param y Y轴坐标。
  21639. */
  21640. render(context:laya.resource.Context,x:number,y:number):void;
  21641. private static _PreStageRender:any;
  21642. private static _countDic:any;
  21643. private static _countStart:any;
  21644. private static _i:any;
  21645. private static _countEnd:any;
  21646. static showCountInfo():void;
  21647. static enableQuickTest():void;
  21648. }
  21649. }
  21650. declare module laya.map {
  21651. /**
  21652. * 地图的每层都会分块渲染处理
  21653. * 本类就是地图的块数据
  21654. * @author ...
  21655. */
  21656. class GridSprite extends laya.display.Sprite {
  21657. /**
  21658. * 相对于地图X轴的坐标
  21659. */
  21660. relativeX:number;
  21661. /**
  21662. * 相对于地图Y轴的坐标
  21663. */
  21664. relativeY:number;
  21665. /**
  21666. * 是否用于对象层的独立物件
  21667. */
  21668. isAloneObject:boolean;
  21669. /**
  21670. * 当前GRID中是否有动画
  21671. */
  21672. isHaveAnimation:boolean;
  21673. /**
  21674. * 当前GRID包含的动画
  21675. */
  21676. aniSpriteArray:any[];
  21677. /**
  21678. * 当前GRID包含多少个TILE(包含动画)
  21679. */
  21680. drawImageNum:number;
  21681. private _map:any;
  21682. /**
  21683. * 传入必要的参数,用于裁剪,跟确认此对象类型
  21684. * @param map 把地图的引用传进来,参与一些裁剪计算
  21685. * @param objectKey true:表示当前GridSprite是个活动对象,可以控制,false:地图层的组成块
  21686. */
  21687. initData(map:laya.map.TiledMap,objectKey?:boolean):void;
  21688. /**
  21689. * 把一个动画对象绑定到当前GridSprite
  21690. * @param sprite 动画的显示对象
  21691. */
  21692. addAniSprite(sprite:laya.map.TileAniSprite):void;
  21693. /**
  21694. * 显示当前GridSprite,并把上面的动画全部显示
  21695. */
  21696. show():void;
  21697. /**
  21698. * 隐藏当前GridSprite,并把上面绑定的动画全部移除
  21699. */
  21700. hide():void;
  21701. /**
  21702. * 刷新坐标,当我们自己控制一个GridSprite移动时,需要调用此函数,手动刷新
  21703. */
  21704. updatePos():void;
  21705. /**
  21706. * 重置当前对象的所有属性
  21707. */
  21708. clearAll():void;
  21709. }
  21710. }
  21711. declare module laya.map {
  21712. /**
  21713. * 地图支持多层渲染(例如,地表层,植被层,建筑层等)
  21714. * 本类就是层级类
  21715. * @author ...
  21716. */
  21717. class MapLayer extends laya.display.Sprite {
  21718. private _map:any;
  21719. private _tileWidthHalf:any;
  21720. private _tileHeightHalf:any;
  21721. private _mapWidthHalf:any;
  21722. private _mapHeightHalf:any;
  21723. private _objDic:any;
  21724. private _dataDic:any;
  21725. private _tempMapPos:any;
  21726. private _properties:any;
  21727. /**
  21728. * 被合到的层
  21729. */
  21730. tarLayer:MapLayer;
  21731. /**
  21732. * 当前Layer的名称
  21733. */
  21734. layerName:string;
  21735. /**
  21736. * 解析LAYER数据,以及初始化一些数据
  21737. * @param layerData 地图数据中,layer数据的引用
  21738. * @param map 地图的引用
  21739. */
  21740. init(layerData:any,map:laya.map.TiledMap):void;
  21741. /**
  21742. * ****************************************对外接口********************************************
  21743. */
  21744. /**
  21745. * 通过名字获取控制对象,如果找不到返回为null
  21746. * @param objName 所要获取对象的名字
  21747. * @return
  21748. */
  21749. getObjectByName(objName:string):laya.map.GridSprite;
  21750. /**
  21751. * 通过名字获取数据,如果找不到返回为null
  21752. * @param objName 所要获取对象的名字
  21753. * @return
  21754. */
  21755. getObjectDataByName(objName:string):any;
  21756. /**
  21757. * 得到地图层的自定义属性
  21758. * @param name
  21759. * @return
  21760. */
  21761. getLayerProperties(name:string):any;
  21762. /**
  21763. * 得到指定格子的数据
  21764. * @param tileX 格子坐标X
  21765. * @param tileY 格子坐标Y
  21766. * @return
  21767. */
  21768. getTileData(tileX:number,tileY:number):number;
  21769. /**
  21770. * 通过地图坐标得到屏幕坐标
  21771. * @param tileX 格子坐标X
  21772. * @param tileY 格子坐标Y
  21773. * @param screenPos 把计算好的屏幕坐标数据,放到此对象中
  21774. */
  21775. getScreenPositionByTilePos(tileX:number,tileY:number,screenPos?:laya.maths.Point):void;
  21776. /**
  21777. * 通过屏幕坐标来获取选中格子的数据
  21778. * @param screenX 屏幕坐标x
  21779. * @param screenY 屏幕坐标y
  21780. * @return
  21781. */
  21782. getTileDataByScreenPos(screenX:number,screenY:number):number;
  21783. /**
  21784. * 通过屏幕坐标来获取选中格子的索引
  21785. * @param screenX 屏幕坐标x
  21786. * @param screenY 屏幕坐标y
  21787. * @param result 把计算好的格子坐标,放到此对象中
  21788. * @return
  21789. */
  21790. getTilePositionByScreenPos(screenX:number,screenY:number,result?:laya.maths.Point):boolean;
  21791. /**
  21792. * ********************************************************************************************
  21793. */
  21794. /**
  21795. * 得到一个GridSprite
  21796. * @param gridX 当前Grid的X轴索引
  21797. * @param gridY 当前Grid的Y轴索引
  21798. * @return 一个GridSprite对象
  21799. */
  21800. getDrawSprite(gridX:number,gridY:number):laya.map.GridSprite;
  21801. /**
  21802. * 更新此层中块的坐标
  21803. * 手动刷新的目的是,保持层级的宽和高保持最小,加快渲染
  21804. */
  21805. updateGridPos():void;
  21806. /**
  21807. * @private 把tile画到指定的显示对象上
  21808. * @param gridSprite 被指定显示的目标
  21809. * @param tileX 格子的X轴坐标
  21810. * @param tileY 格子的Y轴坐标
  21811. * @return
  21812. */
  21813. drawTileTexture(gridSprite:laya.map.GridSprite,tileX:number,tileY:number):boolean;
  21814. /**
  21815. * @private 清理当前对象
  21816. */
  21817. clearAll():void;
  21818. }
  21819. }
  21820. declare module laya.map {
  21821. /**
  21822. * TildMap的动画显示对象(一个动画(TileTexSet),可以绑定多个动画显示对象(TileAniSprite))
  21823. * @author ...
  21824. */
  21825. class TileAniSprite extends laya.display.Sprite {
  21826. private _tileTextureSet:any;
  21827. private _aniName:any;
  21828. /**
  21829. * 确定当前显示对象的名称以及属于哪个动画
  21830. * @param aniName 当前动画显示对象的名字,名字唯一
  21831. * @param tileTextureSet 当前显示对象属于哪个动画(一个动画,可以绑定多个同类显示对象)
  21832. */
  21833. setTileTextureSet(aniName:string,tileTextureSet:laya.map.TileTexSet):void;
  21834. /**
  21835. * 把当前动画加入到对应的动画刷新列表中
  21836. */
  21837. show():void;
  21838. /**
  21839. * 把当前动画从对应的动画刷新列表中移除
  21840. */
  21841. hide():void;
  21842. /**
  21843. * 清理
  21844. */
  21845. clearAll():void;
  21846. }
  21847. }
  21848. declare module laya.map {
  21849. /**
  21850. * tiledMap是整个地图的核心
  21851. * 地图以层级来划分地图(例如:地表层,植被层,建筑层)
  21852. * 每层又以分块(GridSprite)来处理显示对象,只显示在视口区域的区
  21853. * 每块又包括N*N个格子(tile)
  21854. * 格子类型又分为动画格子跟图片格子两种
  21855. * @author ...
  21856. */
  21857. class TiledMap {
  21858. /**
  21859. * 四边形地图
  21860. */
  21861. static ORIENTATION_ORTHOGONAL:string;
  21862. /**
  21863. * 菱形地图
  21864. */
  21865. static ORIENTATION_ISOMETRIC:string;
  21866. /**
  21867. * 45度交错地图
  21868. */
  21869. static ORIENTATION_STAGGERED:string;
  21870. /**
  21871. * 六边形地图
  21872. */
  21873. static ORIENTATION_HEXAGONAL:string;
  21874. /**
  21875. * 地图格子从左上角开始渲染
  21876. */
  21877. static RENDERORDER_RIGHTDOWN:string;
  21878. /**
  21879. * 地图格子从左下角开始渲染
  21880. */
  21881. static RENDERORDER_RIGHTUP:string;
  21882. /**
  21883. * 地图格子从右上角开始渲染
  21884. */
  21885. static RENDERORDER_LEFTDOWN:string;
  21886. /**
  21887. * 地图格子右下角开始渲染
  21888. */
  21889. static RENDERORDER_LEFTUP:string;
  21890. private _jsonData:any;
  21891. private _tileTexSetArr:any;
  21892. private _texArray:any;
  21893. private _x:any;
  21894. private _y:any;
  21895. private _width:any;
  21896. private _height:any;
  21897. private _mapW:any;
  21898. private _mapH:any;
  21899. private _mapTileW:any;
  21900. private _mapTileH:any;
  21901. private _rect:any;
  21902. private _paddingRect:any;
  21903. private _mapSprite:any;
  21904. private _layerArray:any;
  21905. private _renderLayerArray:any;
  21906. private _gridArray:any;
  21907. private _showGridKey:any;
  21908. private _totalGridNum:any;
  21909. private _gridW:any;
  21910. private _gridH:any;
  21911. private _gridWidth:any;
  21912. private _gridHeight:any;
  21913. private _jsonLoader:any;
  21914. private _loader:any;
  21915. private _tileSetArray:any;
  21916. private _currTileSet:any;
  21917. private _completeHandler:any;
  21918. private _mapRect:any;
  21919. private _mapLastRect:any;
  21920. private _index:any;
  21921. private _animationDic:any;
  21922. private _properties:any;
  21923. private _tileProperties:any;
  21924. private _tileProperties2:any;
  21925. private _orientation:any;
  21926. private _renderOrder:any;
  21927. private _colorArray:any;
  21928. private _scale:any;
  21929. private _pivotScaleX:any;
  21930. private _pivotScaleY:any;
  21931. private _centerX:any;
  21932. private _centerY:any;
  21933. private _viewPortWidth:any;
  21934. private _viewPortHeight:any;
  21935. private _enableLinear:any;
  21936. private _resPath:any;
  21937. private _pathArray:any;
  21938. private _limitRange:any;
  21939. /**
  21940. * 是否自动缓存没有动画的地块
  21941. */
  21942. autoCache:boolean;
  21943. /**
  21944. * 自动缓存类型,地图较大时建议使用normal
  21945. */
  21946. autoCacheType:string;
  21947. /**
  21948. * 是否合并图层,开启合并图层时,图层属性内可添加layer属性,运行时将会将相邻的layer属性相同的图层进行合并以提高性能
  21949. */
  21950. enableMergeLayer:boolean;
  21951. /**
  21952. * 是否移除被覆盖的格子,地块可添加type属性,type不为0时表示不透明,被不透明地块遮挡的地块将会被剔除以提高性能
  21953. */
  21954. removeCoveredTile:boolean;
  21955. /**
  21956. * 是否显示大格子里显示的贴图数量
  21957. */
  21958. showGridTextureCount:boolean;
  21959. /**
  21960. * 是否调整地块边缘消除缩放导致的缝隙
  21961. */
  21962. antiCrack:boolean;
  21963. /**
  21964. * 是否在加载完成之后cache所有大格子
  21965. */
  21966. cacheAllAfterInit:boolean;
  21967. constructor();
  21968. /**
  21969. * 创建地图
  21970. * @param mapName JSON文件名字
  21971. * @param viewRect 视口区域
  21972. * @param completeHandler 地图创建完成的回调函数
  21973. * @param viewRectPadding 视口扩充区域,把视口区域上、下、左、右扩充一下,防止视口移动时的穿帮
  21974. * @param gridSize grid大小
  21975. * @param enableLinear 是否开启线性取样(为false时,可以解决地图黑线的问题,但画质会锐化)
  21976. * @param limitRange 把地图限制在显示区域
  21977. */
  21978. createMap(mapName:string,viewRect:laya.maths.Rectangle,completeHandler:laya.utils.Handler,viewRectPadding?:laya.maths.Rectangle,gridSize?:laya.maths.Point,enableLinear?:boolean,limitRange?:boolean):void;
  21979. /**
  21980. * json文件读取成功后,解析里面的纹理数据,进行加载
  21981. * @param e JSON数据
  21982. */
  21983. private onJsonComplete:any;
  21984. /**
  21985. * 合并路径
  21986. * @param resPath
  21987. * @param relativePath
  21988. * @return
  21989. */
  21990. private mergePath:any;
  21991. private _texutreStartDic:any;
  21992. /**
  21993. * 纹理加载完成,如果所有的纹理加载,开始初始化地图
  21994. * @param e 纹理数据
  21995. */
  21996. private onTextureComplete:any;
  21997. private adptTexture:any;
  21998. /**
  21999. * 初始化地图
  22000. */
  22001. private initMap:any;
  22002. private addTileProperties:any;
  22003. getTileUserData(id:number,sign:string,defaultV?:any):any;
  22004. private adptTiledMapData:any;
  22005. private removeCoverd:any;
  22006. private collectCovers:any;
  22007. /**
  22008. * 得到一块指定的地图纹理
  22009. * @param index 纹理的索引值,默认从1开始
  22010. * @return
  22011. */
  22012. getTexture(index:number):laya.map.TileTexSet;
  22013. /**
  22014. * 得到地图的自定义属性
  22015. * @param name 属性名称
  22016. * @return
  22017. */
  22018. getMapProperties(name:string):any;
  22019. /**
  22020. * 得到tile自定义属性
  22021. * @param index 地图块索引
  22022. * @param id 具体的TileSetID
  22023. * @param name 属性名称
  22024. * @return
  22025. */
  22026. getTileProperties(index:number,id:number,name:string):any;
  22027. /**
  22028. * 通过纹理索引,生成一个可控制物件
  22029. * @param index 纹理的索引值,默认从1开始
  22030. * @return
  22031. */
  22032. getSprite(index:number,width:number,height:number):laya.map.GridSprite;
  22033. /**
  22034. * 设置视口的缩放中心点(例如:scaleX= scaleY= 0.5,就是以视口中心缩放)
  22035. * @param scaleX
  22036. * @param scaleY
  22037. */
  22038. setViewPortPivotByScale(scaleX:number,scaleY:number):void;
  22039. /**
  22040. * 设置地图缩放
  22041. * @param scale
  22042. */
  22043. set scale(scale:number);
  22044. /**
  22045. * 得到当前地图的缩放
  22046. */
  22047. get scale():number;
  22048. /**
  22049. * 移动视口
  22050. * @param moveX 视口的坐标x
  22051. * @param moveY 视口的坐标y
  22052. */
  22053. moveViewPort(moveX:number,moveY:number):void;
  22054. /**
  22055. * 改变视口大小
  22056. * @param moveX 视口的坐标x
  22057. * @param moveY 视口的坐标y
  22058. * @param width 视口的宽
  22059. * @param height 视口的高
  22060. */
  22061. changeViewPort(moveX:number,moveY:number,width:number,height:number):void;
  22062. /**
  22063. * 在锚点的基础上计算,通过宽和高,重新计算视口
  22064. * @param width 新视口宽
  22065. * @param height 新视口高
  22066. * @param rect 返回的结果
  22067. * @return
  22068. */
  22069. changeViewPortBySize(width:number,height:number,rect?:laya.maths.Rectangle):laya.maths.Rectangle;
  22070. /**
  22071. * 刷新视口
  22072. */
  22073. private updateViewPort:any;
  22074. /**
  22075. * GRID裁剪
  22076. */
  22077. private clipViewPort:any;
  22078. /**
  22079. * 显示指定的GRID
  22080. * @param gridX
  22081. * @param gridY
  22082. */
  22083. private showGrid:any;
  22084. private cacheAllGrid:any;
  22085. private static _tempCanvas:any;
  22086. private cacheGridsArray:any;
  22087. private getGridArray:any;
  22088. /**
  22089. * 隐藏指定的GRID
  22090. * @param gridX
  22091. * @param gridY
  22092. */
  22093. private hideGrid:any;
  22094. /**
  22095. * 得到对象层上的某一个物品
  22096. * @param layerName 层的名称
  22097. * @param objectName 所找物品的名称
  22098. * @return
  22099. */
  22100. getLayerObject(layerName:string,objectName:string):laya.map.GridSprite;
  22101. /**
  22102. * 销毁地图
  22103. */
  22104. destroy():void;
  22105. /**
  22106. * **************************地图的基本数据**************************
  22107. */
  22108. /**
  22109. * 格子的宽度
  22110. */
  22111. get tileWidth():number;
  22112. /**
  22113. * 格子的高度
  22114. */
  22115. get tileHeight():number;
  22116. /**
  22117. * 地图的宽度
  22118. */
  22119. get width():number;
  22120. /**
  22121. * 地图的高度
  22122. */
  22123. get height():number;
  22124. /**
  22125. * 地图横向的格子数
  22126. */
  22127. get numColumnsTile():number;
  22128. /**
  22129. * 地图竖向的格子数
  22130. */
  22131. get numRowsTile():number;
  22132. /**
  22133. * @private 视口x坐标
  22134. */
  22135. get viewPortX():number;
  22136. /**
  22137. * @private 视口的y坐标
  22138. */
  22139. get viewPortY():number;
  22140. /**
  22141. * @private 视口的宽度
  22142. */
  22143. get viewPortWidth():number;
  22144. /**
  22145. * @private 视口的高度
  22146. */
  22147. get viewPortHeight():number;
  22148. /**
  22149. * 地图的x坐标
  22150. */
  22151. get x():number;
  22152. /**
  22153. * 地图的y坐标
  22154. */
  22155. get y():number;
  22156. /**
  22157. * 块的宽度
  22158. */
  22159. get gridWidth():number;
  22160. /**
  22161. * 块的高度
  22162. */
  22163. get gridHeight():number;
  22164. /**
  22165. * 地图的横向块数
  22166. */
  22167. get numColumnsGrid():number;
  22168. /**
  22169. * 地图的坚向块数
  22170. */
  22171. get numRowsGrid():number;
  22172. /**
  22173. * 当前地图类型
  22174. */
  22175. get orientation():string;
  22176. /**
  22177. * tile渲染顺序
  22178. */
  22179. get renderOrder():string;
  22180. /**
  22181. * ***************************************对外接口*********************************************
  22182. */
  22183. /**
  22184. * 整个地图的显示容器
  22185. * @return 地图的显示容器
  22186. */
  22187. mapSprite():laya.display.Sprite;
  22188. /**
  22189. * 得到指定的MapLayer
  22190. * @param layerName 要找的层名称
  22191. * @return
  22192. */
  22193. getLayerByName(layerName:string):laya.map.MapLayer;
  22194. /**
  22195. * 通过索引得MapLayer
  22196. * @param index 要找的层索引
  22197. * @return
  22198. */
  22199. getLayerByIndex(index:number):laya.map.MapLayer;
  22200. }
  22201. }
  22202. declare module laya.map {
  22203. /**
  22204. * 此类是子纹理类,也包括同类动画的管理
  22205. * TiledMap会把纹理分割成无数子纹理,也可以把其中的某块子纹理替换成一个动画序列
  22206. * 本类的实现就是如果发现子纹理被替换成一个动画序列,animationKey会被设为true
  22207. * 即animationKey为true,就使用TileAniSprite来做显示,把动画序列根据时间画到TileAniSprite上
  22208. * @author ...
  22209. */
  22210. class TileTexSet {
  22211. /**
  22212. * 唯一标识
  22213. */
  22214. gid:number;
  22215. /**
  22216. * 子纹理的引用
  22217. */
  22218. texture:laya.resource.Texture;
  22219. /**
  22220. * 纹理显示时的坐标偏移X
  22221. */
  22222. offX:number;
  22223. /**
  22224. * 纹理显示时的坐标偏移Y
  22225. */
  22226. offY:number;
  22227. /**
  22228. * 当前要播放动画的纹理序列
  22229. */
  22230. textureArray:any[];
  22231. /**
  22232. * 当前动画每帧的时间间隔
  22233. */
  22234. durationTimeArray:any[];
  22235. /**
  22236. * 动画播放的总时间
  22237. */
  22238. animationTotalTime:number;
  22239. /**
  22240. * true表示当前纹理,是一组动画,false表示当前只有一个纹理
  22241. */
  22242. isAnimation:boolean;
  22243. private _spriteNum:any;
  22244. private _aniDic:any;
  22245. private _frameIndex:any;
  22246. private _time:any;
  22247. private _interval:any;
  22248. private _preFrameTime:any;
  22249. /**
  22250. * 加入一个动画显示对象到此动画中
  22251. * @param aniName //显示对象的名字
  22252. * @param sprite //显示对象
  22253. */
  22254. addAniSprite(aniName:string,sprite:laya.map.TileAniSprite):void;
  22255. /**
  22256. * 把动画画到所有注册的SPRITE上
  22257. */
  22258. private animate:any;
  22259. private drawTexture:any;
  22260. /**
  22261. * 移除不需要更新的SPRITE
  22262. * @param _name
  22263. */
  22264. removeAniSprite(_name:string):void;
  22265. /**
  22266. * 显示当前动画的使用情况
  22267. */
  22268. showDebugInfo():string;
  22269. /**
  22270. * 清理
  22271. */
  22272. clearAll():void;
  22273. }
  22274. }
  22275. declare module laya.maths {
  22276. /**
  22277. * @private 计算贝塞尔曲线的工具类。
  22278. */
  22279. class Bezier {
  22280. /**
  22281. * 工具类单例
  22282. */
  22283. static I:Bezier;
  22284. /**
  22285. * @private
  22286. */
  22287. private _controlPoints:any;
  22288. /**
  22289. * @private
  22290. */
  22291. private _calFun:any;
  22292. /**
  22293. * @private
  22294. */
  22295. private _switchPoint:any;
  22296. /**
  22297. * 计算二次贝塞尔点。
  22298. */
  22299. getPoint2(t:number,rst:any[]):void;
  22300. /**
  22301. * 计算三次贝塞尔点
  22302. */
  22303. getPoint3(t:number,rst:any[]):void;
  22304. /**
  22305. * 计算贝塞尔点序列
  22306. */
  22307. insertPoints(count:number,rst:any[]):void;
  22308. /**
  22309. * 获取贝塞尔曲线上的点。
  22310. * @param pList 控制点[x0,y0,x1,y1...]
  22311. * @param inSertCount 每次曲线的插值数量
  22312. */
  22313. getBezierPoints(pList:any[],inSertCount?:number,count?:number):any[];
  22314. }
  22315. }
  22316. declare module laya.maths {
  22317. /**
  22318. * @private 凸包算法。
  22319. */
  22320. class GrahamScan {
  22321. private static _mPointList:any;
  22322. private static _tempPointList:any;
  22323. private static _temPList:any;
  22324. private static _temArr:any;
  22325. static multiply(p1:laya.maths.Point,p2:laya.maths.Point,p0:laya.maths.Point):number;
  22326. /**
  22327. * 计算两个点的距离。
  22328. * @param p1
  22329. * @param p2
  22330. * @return
  22331. */
  22332. static dis(p1:laya.maths.Point,p2:laya.maths.Point):number;
  22333. private static _getPoints:any;
  22334. /**
  22335. * 将数组 src 从索引0位置 依次取 cout 个项添加至 tst 数组的尾部。
  22336. * @param rst 原始数组,用于添加新的子元素。
  22337. * @param src 用于取子元素的数组。
  22338. * @param count 需要取得子元素个数。
  22339. * @return 添加完子元素的 rst 对象。
  22340. */
  22341. static getFrom(rst:any[],src:any[],count:number):any[];
  22342. /**
  22343. * 将数组 src 从末尾索引位置往头部索引位置方向 依次取 cout 个项添加至 tst 数组的尾部。
  22344. * @param rst 原始数组,用于添加新的子元素。
  22345. * @param src 用于取子元素的数组。
  22346. * @param count 需要取得子元素个数。
  22347. * @return 添加完子元素的 rst 对象。
  22348. */
  22349. static getFromR(rst:any[],src:any[],count:number):any[];
  22350. /**
  22351. * [x,y...]列表 转 Point列表
  22352. * @param pList Point列表
  22353. * @return [x,y...]列表
  22354. */
  22355. static pListToPointList(pList:any[],tempUse?:boolean):any[];
  22356. /**
  22357. * Point列表转[x,y...]列表
  22358. * @param pointList Point列表
  22359. * @return [x,y...]列表
  22360. */
  22361. static pointListToPlist(pointList:any[]):any[];
  22362. /**
  22363. * 寻找包括所有点的最小多边形顶点集合
  22364. * @param pList 形如[x0,y0,x1,y1...]的点列表
  22365. * @return 最小多边形顶点集合
  22366. */
  22367. static scanPList(pList:any[]):any[];
  22368. /**
  22369. * 寻找包括所有点的最小多边形顶点集合
  22370. * @param PointSet Point列表
  22371. * @return 最小多边形顶点集合
  22372. */
  22373. static scan(PointSet:any[]):any[];
  22374. }
  22375. }
  22376. declare module laya.maths {
  22377. /**
  22378. * @private <code>MathUtil</code> 是一个数据处理工具类。
  22379. */
  22380. class MathUtil {
  22381. static subtractVector3(l:Float32Array,r:Float32Array,o:Float32Array):void;
  22382. static lerp(left:number,right:number,amount:number):number;
  22383. static scaleVector3(f:Float32Array,b:number,e:Float32Array):void;
  22384. static lerpVector3(l:Float32Array,r:Float32Array,t:number,o:Float32Array):void;
  22385. static lerpVector4(l:Float32Array,r:Float32Array,t:number,o:Float32Array):void;
  22386. static slerpQuaternionArray(a:Float32Array,Offset1:number,b:Float32Array,Offset2:number,t:number,out:Float32Array,Offset3:number):Float32Array;
  22387. /**
  22388. * 获取指定的两个点组成的线段的角度值。
  22389. * @param x0 点一的 X 轴坐标值。
  22390. * @param y0 点一的 Y 轴坐标值。
  22391. * @param x1 点二的 X 轴坐标值。
  22392. * @param y1 点二的 Y 轴坐标值。
  22393. * @return 角度值。
  22394. */
  22395. static getRotation(x0:number,y0:number,x1:number,y1:number):number;
  22396. /**
  22397. * 一个用来确定数组元素排序顺序的比较函数。
  22398. * @param a 待比较数字。
  22399. * @param b 待比较数字。
  22400. * @return 如果a等于b 则值为0;如果b>a则值为1;如果b<则值为-1。
  22401. */
  22402. static sortBigFirst(a:number,b:number):number;
  22403. /**
  22404. * 一个用来确定数组元素排序顺序的比较函数。
  22405. * @param a 待比较数字。
  22406. * @param b 待比较数字。
  22407. * @return 如果a等于b 则值为0;如果b>a则值为-1;如果b<则值为1。
  22408. */
  22409. static sortSmallFirst(a:number,b:number):number;
  22410. /**
  22411. * 将指定的元素转为数字进行比较。
  22412. * @param a 待比较元素。
  22413. * @param b 待比较元素。
  22414. * @return b、a转化成数字的差值 (b-a)。
  22415. */
  22416. static sortNumBigFirst(a:any,b:any):number;
  22417. /**
  22418. * 将指定的元素转为数字进行比较。
  22419. * @param a 待比较元素。
  22420. * @param b 待比较元素。
  22421. * @return a、b转化成数字的差值 (a-b)。
  22422. */
  22423. static sortNumSmallFirst(a:any,b:any):number;
  22424. /**
  22425. * 返回根据对象指定的属性进行排序的比较函数。
  22426. * @param key 排序要依据的元素属性名。
  22427. * @param bigFirst 如果值为true,则按照由大到小的顺序进行排序,否则按照由小到大的顺序进行排序。
  22428. * @param forceNum 如果值为true,则将排序的元素转为数字进行比较。
  22429. * @return 排序函数。
  22430. */
  22431. static sortByKey(key:string,bigFirst?:boolean,forceNum?:boolean):(a:any,b:any) =>number;
  22432. }
  22433. }
  22434. declare module laya.maths {
  22435. /**
  22436. * <p> <code>Matrix</code> 类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间。</p>
  22437. * <p>您可以对一个显示对象执行不同的图形转换,方法是设置 Matrix 对象的属性,将该 Matrix 对象应用于 Transform 对象的 matrix 属性,然后应用该 Transform 对象作为显示对象的 transform 属性。这些转换函数包括平移(x 和 y 重新定位)、旋转、缩放和倾斜。</p>
  22438. */
  22439. class Matrix {
  22440. /**
  22441. * @private 一个初始化的 <code>Matrix</code> 对象,不允许修改此对象内容。
  22442. */
  22443. static EMPTY:Matrix;
  22444. /**
  22445. * 用于中转使用的 <code>Matrix</code> 对象。
  22446. */
  22447. static TEMP:Matrix;
  22448. /**
  22449. * 缩放或旋转图像时影响像素沿 x 轴定位的值。
  22450. */
  22451. a:number;
  22452. /**
  22453. * 旋转或倾斜图像时影响像素沿 y 轴定位的值。
  22454. */
  22455. b:number;
  22456. /**
  22457. * 旋转或倾斜图像时影响像素沿 x 轴定位的值。
  22458. */
  22459. c:number;
  22460. /**
  22461. * 缩放或旋转图像时影响像素沿 y 轴定位的值。
  22462. */
  22463. d:number;
  22464. /**
  22465. * 沿 x 轴平移每个点的距离。
  22466. */
  22467. tx:number;
  22468. /**
  22469. * 沿 y 轴平移每个点的距离。
  22470. */
  22471. ty:number;
  22472. /**
  22473. * 使用指定参数创建新的 <code>Matrix</code> 对象。
  22474. * @param a (可选)缩放或旋转图像时影响像素沿 x 轴定位的值。
  22475. * @param b (可选)旋转或倾斜图像时影响像素沿 y 轴定位的值。
  22476. * @param c (可选)旋转或倾斜图像时影响像素沿 x 轴定位的值。
  22477. * @param d (可选)缩放或旋转图像时影响像素沿 y 轴定位的值。
  22478. * @param tx (可选)沿 x 轴平移每个点的距离。
  22479. * @param ty (可选)沿 y 轴平移每个点的距离。
  22480. */
  22481. constructor(a?:number,b?:number,c?:number,d?:number,tx?:number,ty?:number,nums?:number);
  22482. /**
  22483. * 将本矩阵设置为单位矩阵。
  22484. * @return 返回当前矩形。
  22485. */
  22486. identity():Matrix;
  22487. /**
  22488. * 设置沿 x 、y 轴平移每个点的距离。
  22489. * @param x 沿 x 轴平移每个点的距离。
  22490. * @param y 沿 y 轴平移每个点的距离。
  22491. * @return 返回对象本身
  22492. */
  22493. setTranslate(x:number,y:number):Matrix;
  22494. /**
  22495. * 沿 x 和 y 轴平移矩阵,平移的变化量由 x 和 y 参数指定。
  22496. * @param x 沿 x 轴向右移动的量(以像素为单位)。
  22497. * @param y 沿 y 轴向下移动的量(以像素为单位)。
  22498. * @return 返回此矩形对象。
  22499. */
  22500. translate(x:number,y:number):Matrix;
  22501. /**
  22502. * 对矩阵应用缩放转换。
  22503. * @param x 用于沿 x 轴缩放对象的乘数。
  22504. * @param y 用于沿 y 轴缩放对象的乘数。
  22505. * @return 返回矩阵对象本身
  22506. */
  22507. scale(x:number,y:number):Matrix;
  22508. /**
  22509. * 对 Matrix 对象应用旋转转换。
  22510. * @param angle 以弧度为单位的旋转角度。
  22511. * @return 返回矩阵对象本身
  22512. */
  22513. rotate(angle:number):Matrix;
  22514. /**
  22515. * 对 Matrix 对象应用倾斜转换。
  22516. * @param x 沿着 X 轴的 2D 倾斜弧度。
  22517. * @param y 沿着 Y 轴的 2D 倾斜弧度。
  22518. * @return 当前 Matrix 对象。
  22519. */
  22520. skew(x:number,y:number):Matrix;
  22521. /**
  22522. * 对指定的点应用当前矩阵的逆转化并返回此点。
  22523. * @param out 待转化的点 Point 对象。
  22524. * @return 返回out
  22525. */
  22526. invertTransformPoint(out:laya.maths.Point):laya.maths.Point;
  22527. /**
  22528. * 将 Matrix 对象表示的几何转换应用于指定点。
  22529. * @param out 用来设定输出结果的点。
  22530. * @return 返回out
  22531. */
  22532. transformPoint(out:laya.maths.Point):laya.maths.Point;
  22533. /**
  22534. * 将 Matrix 对象表示的几何转换应用于指定点,忽略tx、ty。
  22535. * @param out 用来设定输出结果的点。
  22536. * @return 返回out
  22537. */
  22538. transformPointN(out:laya.maths.Point):laya.maths.Point;
  22539. /**
  22540. * 获取 X 轴缩放值。
  22541. * @return X 轴缩放值。
  22542. */
  22543. getScaleX():number;
  22544. /**
  22545. * 获取 Y 轴缩放值。
  22546. * @return Y 轴缩放值。
  22547. */
  22548. getScaleY():number;
  22549. /**
  22550. * 执行原始矩阵的逆转换。
  22551. * @return 当前矩阵对象。
  22552. */
  22553. invert():Matrix;
  22554. /**
  22555. * 将 Matrix 的成员设置为指定值。
  22556. * @param a 缩放或旋转图像时影响像素沿 x 轴定位的值。
  22557. * @param b 旋转或倾斜图像时影响像素沿 y 轴定位的值。
  22558. * @param c 旋转或倾斜图像时影响像素沿 x 轴定位的值。
  22559. * @param d 缩放或旋转图像时影响像素沿 y 轴定位的值。
  22560. * @param tx 沿 x 轴平移每个点的距离。
  22561. * @param ty 沿 y 轴平移每个点的距离。
  22562. * @return 当前矩阵对象。
  22563. */
  22564. setTo(a:number,b:number,c:number,d:number,tx:number,ty:number):Matrix;
  22565. /**
  22566. * 将指定矩阵与当前矩阵连接,从而将这两个矩阵的几何效果有效地结合在一起。
  22567. * @param matrix 要连接到源矩阵的矩阵。
  22568. * @return 当前矩阵。
  22569. */
  22570. concat(matrix:Matrix):Matrix;
  22571. /**
  22572. * 将指定的两个矩阵相乘后的结果赋值给指定的输出对象。
  22573. * @param m1 矩阵一。
  22574. * @param m2 矩阵二。
  22575. * @param out 输出对象。
  22576. * @return 结果输出对象 out。
  22577. */
  22578. static mul(m1:Matrix,m2:Matrix,out:Matrix):Matrix;
  22579. /**
  22580. * 将指定的两个矩阵相乘,结果赋值给指定的输出数组,长度为16。
  22581. * @param m1 矩阵一。
  22582. * @param m2 矩阵二。
  22583. * @param out 输出对象Array。
  22584. * @return 结果输出对象 out。
  22585. */
  22586. static mul16(m1:Matrix,m2:Matrix,out:any[]):any[];
  22587. /**
  22588. * @private 对矩阵应用缩放转换。反向相乘
  22589. * @param x 用于沿 x 轴缩放对象的乘数。
  22590. * @param y 用于沿 y 轴缩放对象的乘数。
  22591. */
  22592. scaleEx(x:number,y:number):void;
  22593. /**
  22594. * @private 对 Matrix 对象应用旋转转换。反向相乘
  22595. * @param angle 以弧度为单位的旋转角度。
  22596. */
  22597. rotateEx(angle:number):void;
  22598. /**
  22599. * 返回此 Matrix 对象的副本。
  22600. * @return 与原始实例具有完全相同的属性的新 Matrix 实例。
  22601. */
  22602. clone():Matrix;
  22603. /**
  22604. * 将当前 Matrix 对象中的所有矩阵数据复制到指定的 Matrix 对象中。
  22605. * @param dec 要复制当前矩阵数据的 Matrix 对象。
  22606. * @return 已复制当前矩阵数据的 Matrix 对象。
  22607. */
  22608. copyTo(dec:Matrix):Matrix;
  22609. /**
  22610. * 返回列出该 Matrix 对象属性的文本值。
  22611. * @return 一个字符串,它包含 Matrix 对象的属性值:a、b、c、d、tx 和 ty。
  22612. */
  22613. toString():string;
  22614. /**
  22615. * 销毁此对象。
  22616. */
  22617. destroy():void;
  22618. /**
  22619. * 回收到对象池,方便复用
  22620. */
  22621. recover():void;
  22622. /**
  22623. * 从对象池中创建一个 <code>Matrix</code> 对象。
  22624. * @return <code>Matrix</code> 对象。
  22625. */
  22626. static create():Matrix;
  22627. }
  22628. }
  22629. declare module laya.maths {
  22630. /**
  22631. * <code>Point</code> 对象表示二维坐标系统中的某个位置,其中 x 表示水平轴,y 表示垂直轴。
  22632. */
  22633. class Point {
  22634. /**
  22635. * 临时使用的公用对象。
  22636. */
  22637. static TEMP:Point;
  22638. /**
  22639. * @private 全局空的point对象(x=0,y=0),不允许修改此对象内容
  22640. */
  22641. static EMPTY:Point;
  22642. /**
  22643. * 该点的水平坐标。
  22644. */
  22645. x:number;
  22646. /**
  22647. * 该点的垂直坐标。
  22648. */
  22649. y:number;
  22650. /**
  22651. * 根据指定坐标,创建一个新的 <code>Point</code> 对象。
  22652. * @param x (可选)水平坐标。
  22653. * @param y (可选)垂直坐标。
  22654. */
  22655. constructor(x?:number,y?:number);
  22656. /**
  22657. * 从对象池创建
  22658. */
  22659. static create():Point;
  22660. /**
  22661. * 将 <code>Point</code> 的成员设置为指定值。
  22662. * @param x 水平坐标。
  22663. * @param y 垂直坐标。
  22664. * @return 当前 Point 对象。
  22665. */
  22666. setTo(x:number,y:number):Point;
  22667. /**
  22668. * 重置
  22669. */
  22670. reset():Point;
  22671. /**
  22672. * 回收到对象池,方便复用
  22673. */
  22674. recover():void;
  22675. /**
  22676. * 计算当前点和目标点(x,y)的距离。
  22677. * @param x 水平坐标。
  22678. * @param y 垂直坐标。
  22679. * @return 返回当前点和目标点之间的距离。
  22680. */
  22681. distance(x:number,y:number):number;
  22682. /**
  22683. * 返回包含 x 和 y 坐标的值的字符串。
  22684. */
  22685. toString():string;
  22686. /**
  22687. * 标准化向量。
  22688. */
  22689. normalize():void;
  22690. /**
  22691. * copy point坐标
  22692. * @param point 需要被copy的point
  22693. */
  22694. copy(point:Point):Point;
  22695. }
  22696. }
  22697. declare module laya.maths {
  22698. /**
  22699. * <p><code>Rectangle</code> 对象是按其位置(由它左上角的点 (x, y) 确定)以及宽度和高度定义的区域。</p>
  22700. * <p>Rectangle 类的 x、y、width 和 height 属性相互独立;更改一个属性的值不会影响其他属性。</p>
  22701. */
  22702. class Rectangle {
  22703. /**
  22704. * @private 全局空的矩形区域x=0,y=0,width=0,height=0,不允许修改此对象内容
  22705. */
  22706. static EMPTY:Rectangle;
  22707. /**
  22708. * 全局临时的矩形区域,此对象用于全局复用,以减少对象创建
  22709. */
  22710. static TEMP:Rectangle;
  22711. /**
  22712. * @private
  22713. */
  22714. private static _temB:any;
  22715. /**
  22716. * @private
  22717. */
  22718. private static _temA:any;
  22719. /**
  22720. * 矩形左上角的 X 轴坐标。
  22721. */
  22722. x:number;
  22723. /**
  22724. * 矩形左上角的 Y 轴坐标。
  22725. */
  22726. y:number;
  22727. /**
  22728. * 矩形的宽度。
  22729. */
  22730. width:number;
  22731. /**
  22732. * 矩形的高度。
  22733. */
  22734. height:number;
  22735. /**
  22736. * 创建一个 <code>Rectangle</code> 对象。
  22737. * @param x 矩形左上角的 X 轴坐标。
  22738. * @param y 矩形左上角的 Y 轴坐标。
  22739. * @param width 矩形的宽度。
  22740. * @param height 矩形的高度。
  22741. */
  22742. constructor(x?:number,y?:number,width?:number,height?:number);
  22743. /**
  22744. * 此矩形右侧的 X 轴坐标。 x 和 width 属性的和。
  22745. */
  22746. get right():number;
  22747. /**
  22748. * 此矩形底端的 Y 轴坐标。y 和 height 属性的和。
  22749. */
  22750. get bottom():number;
  22751. /**
  22752. * 将 Rectangle 的属性设置为指定值。
  22753. * @param x x 矩形左上角的 X 轴坐标。
  22754. * @param y x 矩形左上角的 Y 轴坐标。
  22755. * @param width 矩形的宽度。
  22756. * @param height 矩形的高。
  22757. * @return 返回属性值修改后的矩形对象本身。
  22758. */
  22759. setTo(x:number,y:number,width:number,height:number):Rectangle;
  22760. /**
  22761. * 重置
  22762. */
  22763. reset():Rectangle;
  22764. /**
  22765. * 回收
  22766. */
  22767. recover():void;
  22768. /**
  22769. * 创建
  22770. */
  22771. static create():Rectangle;
  22772. /**
  22773. * 复制 source 对象的属性值到此矩形对象中。
  22774. * @param sourceRect 源 Rectangle 对象。
  22775. * @return 返回属性值修改后的矩形对象本身。
  22776. */
  22777. copyFrom(source:Rectangle):Rectangle;
  22778. /**
  22779. * 确定由此 Rectangle 对象定义的矩形区域内是否包含指定的点。
  22780. * @param x 点的 X 轴坐标值(水平位置)。
  22781. * @param y 点的 Y 轴坐标值(垂直位置)。
  22782. * @return 如果 Rectangle 对象包含指定的点,则值为 true;否则为 false。
  22783. */
  22784. contains(x:number,y:number):boolean;
  22785. /**
  22786. * 确定在 rect 参数中指定的对象是否与此 Rectangle 对象相交。此方法检查指定的 Rectangle 对象的 x、y、width 和 height 属性,以查看它是否与此 Rectangle 对象相交。
  22787. * @param rect Rectangle 对象。
  22788. * @return 如果传入的矩形对象与此对象相交,则返回 true 值,否则返回 false。
  22789. */
  22790. intersects(rect:Rectangle):boolean;
  22791. /**
  22792. * 如果在 rect 参数中指定的 Rectangle 对象与此 Rectangle 对象相交,则返回交集区域作为 Rectangle 对象。如果矩形不相交,则此方法返回null。
  22793. * @param rect 待比较的矩形区域。
  22794. * @param out (可选)待输出的矩形区域。如果为空则创建一个新的。建议:尽量复用对象,减少对象创建消耗。
  22795. * @return 返回相交的矩形区域对象。
  22796. */
  22797. intersection(rect:Rectangle,out?:Rectangle|null):Rectangle|null;
  22798. /**
  22799. * <p>矩形联合,通过填充两个矩形之间的水平和垂直空间,将这两个矩形组合在一起以创建一个新的 Rectangle 对象。</p>
  22800. * <p>注意:union() 方法忽略高度或宽度值为 0 的矩形,如:var rect2:Rectangle = new Rectangle(300,300,50,0);</p>
  22801. * @param 要添加到此 Rectangle 对象的 Rectangle 对象。
  22802. * @param out 用于存储输出结果的矩形对象。如果为空,则创建一个新的。建议:尽量复用对象,减少对象创建消耗。Rectangle.TEMP对象用于对象复用。
  22803. * @return 充当两个矩形的联合的新 Rectangle 对象。
  22804. */
  22805. union(source:Rectangle,out?:Rectangle|null):Rectangle;
  22806. /**
  22807. * 返回一个 Rectangle 对象,其 x、y、width 和 height 属性的值与当前 Rectangle 对象的对应值相同。
  22808. * @param out (可选)用于存储结果的矩形对象。如果为空,则创建一个新的。建议:尽量复用对象,减少对象创建消耗。。Rectangle.TEMP对象用于对象复用。
  22809. * @return Rectangle 对象,其 x、y、width 和 height 属性的值与当前 Rectangle 对象的对应值相同。
  22810. */
  22811. clone(out?:Rectangle|null):Rectangle;
  22812. /**
  22813. * 当前 Rectangle 对象的水平位置 x 和垂直位置 y 以及高度 width 和宽度 height 以逗号连接成的字符串。
  22814. */
  22815. toString():string;
  22816. /**
  22817. * 检测传入的 Rectangle 对象的属性是否与当前 Rectangle 对象的属性 x、y、width、height 属性值都相等。
  22818. * @param rect 待比较的 Rectangle 对象。
  22819. * @return 如果判断的属性都相等,则返回 true ,否则返回 false。
  22820. */
  22821. equals(rect:Rectangle):boolean;
  22822. /**
  22823. * <p>为当前矩形对象加一个点,以使当前矩形扩展为包含当前矩形和此点的最小矩形。</p>
  22824. * <p>此方法会修改本对象。</p>
  22825. * @param x 点的 X 坐标。
  22826. * @param y 点的 Y 坐标。
  22827. * @return 返回此 Rectangle 对象。
  22828. */
  22829. addPoint(x:number,y:number):Rectangle;
  22830. /**
  22831. * 确定此 Rectangle 对象是否为空。
  22832. * @return 如果 Rectangle 对象的宽度或高度小于等于 0,则返回 true 值,否则返回 false。
  22833. */
  22834. isEmpty():boolean;
  22835. }
  22836. }
  22837. declare module laya.media.h5audio {
  22838. /**
  22839. * @private 使用Audio标签播放声音
  22840. */
  22841. class AudioSound extends laya.events.EventDispatcher {
  22842. /**
  22843. * @private
  22844. */
  22845. private static _audioCache:any;
  22846. /**
  22847. * 声音URL
  22848. */
  22849. url:string;
  22850. /**
  22851. * 播放用的audio标签
  22852. */
  22853. audio:HTMLAudioElement;
  22854. /**
  22855. * 是否已加载完成
  22856. */
  22857. loaded:boolean;
  22858. /**
  22859. * 释放声音
  22860. */
  22861. dispose():void;
  22862. /**
  22863. * @private
  22864. */
  22865. private static _makeMusicOK:any;
  22866. /**
  22867. * 加载声音
  22868. * @param url
  22869. */
  22870. load(url:string):void;
  22871. /**
  22872. * 播放声音
  22873. * @param startTime 起始时间
  22874. * @param loops 循环次数
  22875. * @return
  22876. */
  22877. play(startTime?:number,loops?:number):laya.media.SoundChannel;
  22878. /**
  22879. * 获取总时间。
  22880. */
  22881. get duration():number;
  22882. }
  22883. }
  22884. declare module laya.media.h5audio {
  22885. /**
  22886. * @private audio标签播放声音的音轨控制
  22887. */
  22888. class AudioSoundChannel extends laya.media.SoundChannel {
  22889. /**
  22890. * 播放用的audio标签
  22891. */
  22892. private _audio:any;
  22893. private _onEnd:any;
  22894. private _resumePlay:any;
  22895. constructor(audio:HTMLAudioElement);
  22896. private __onEnd:any;
  22897. private __resumePlay:any;
  22898. /**
  22899. * 播放
  22900. * @override
  22901. */
  22902. play():void;
  22903. /**
  22904. * 当前播放到的位置
  22905. * @return
  22906. * @override
  22907. */
  22908. get position():number;
  22909. /**
  22910. * 获取总时间。
  22911. * @override
  22912. */
  22913. get duration():number;
  22914. /**
  22915. * 停止播放
  22916. * @override
  22917. */
  22918. stop():void;
  22919. /**
  22920. * @override
  22921. */
  22922. pause():void;
  22923. /**
  22924. * @override
  22925. */
  22926. resume():void;
  22927. /**
  22928. * 设置音量
  22929. * @param v
  22930. * @override
  22931. */
  22932. set volume(v:number);
  22933. /**
  22934. * 获取音量
  22935. * @return
  22936. * @override
  22937. */
  22938. get volume():number;
  22939. }
  22940. }
  22941. declare module laya.media {
  22942. /**
  22943. * <code>Sound</code> 类是用来播放控制声音的类。
  22944. * 引擎默认有两套声音方案,优先使用WebAudio播放声音,如果WebAudio不可用,则用H5Audio播放,H5Audio在部分机器上有兼容问题(比如不能混音,播放有延迟等)。
  22945. */
  22946. class Sound extends laya.events.EventDispatcher {
  22947. /**
  22948. * 加载声音。
  22949. * @param url 地址。
  22950. */
  22951. load(url:string):void;
  22952. /**
  22953. * 播放声音。
  22954. * @param startTime 开始时间,单位秒
  22955. * @param loops 循环次数,0表示一直循环
  22956. * @return 声道 SoundChannel 对象。
  22957. */
  22958. play(startTime?:number,loops?:number):laya.media.SoundChannel;
  22959. /**
  22960. * 获取总时间。
  22961. */
  22962. get duration():number;
  22963. /**
  22964. * 释放声音资源。
  22965. */
  22966. dispose():void;
  22967. }
  22968. }
  22969. declare module laya.media {
  22970. /**
  22971. * <p> <code>SoundChannel</code> 用来控制程序中的声音。每个声音均分配给一个声道,而且应用程序可以具有混合在一起的多个声道。</p>
  22972. * <p> <code>SoundChannel</code> 类包含控制声音的播放、暂停、停止、音量的方法,以及获取声音的播放状态、总时间、当前播放时间、总循环次数、播放地址等信息的方法。</p>
  22973. */
  22974. class SoundChannel extends laya.events.EventDispatcher {
  22975. /**
  22976. * 声音地址。
  22977. */
  22978. url:string;
  22979. /**
  22980. * 循环次数。
  22981. */
  22982. loops:number;
  22983. /**
  22984. * 播放声音开始时间。
  22985. */
  22986. startTime:number;
  22987. /**
  22988. * 表示声音是否已暂停。
  22989. */
  22990. isStopped:boolean;
  22991. /**
  22992. * 播放完成处理器。
  22993. */
  22994. completeHandler:laya.utils.Handler;
  22995. /**
  22996. * 音量范围从 0(静音)至 1(最大音量)。
  22997. */
  22998. set volume(v:number);
  22999. get volume():number;
  23000. /**
  23001. * 获取当前播放时间,单位是秒。
  23002. */
  23003. get position():number;
  23004. /**
  23005. * 获取总时间,单位是秒。
  23006. */
  23007. get duration():number;
  23008. /**
  23009. * 播放声音。
  23010. */
  23011. play():void;
  23012. /**
  23013. * 停止播放。
  23014. */
  23015. stop():void;
  23016. /**
  23017. * 暂停播放。
  23018. */
  23019. pause():void;
  23020. /**
  23021. * 继续播放。
  23022. */
  23023. resume():void;
  23024. /**
  23025. * private
  23026. */
  23027. protected __runComplete(handler:laya.utils.Handler):void;
  23028. }
  23029. }
  23030. declare module laya.media {
  23031. /**
  23032. * <code>SoundManager</code> 是一个声音管理类。提供了对背景音乐、音效的播放控制方法。
  23033. * 引擎默认有两套声音方案:WebAudio和H5Audio
  23034. * 播放音效,优先使用WebAudio播放声音,如果WebAudio不可用,则用H5Audio播放,H5Audio在部分机器上有兼容问题(比如不能混音,播放有延迟等)。
  23035. * 播放背景音乐,则使用H5Audio播放(使用WebAudio会增加特别大的内存,并且要等加载完毕后才能播放,有延迟)
  23036. * 建议背景音乐用mp3类型,音效用wav或者mp3类型(如果打包为app,音效只能用wav格式)。
  23037. * 详细教程及声音格式请参考:http://ldc2.layabox.com/doc/?nav=ch-as-1-7-0
  23038. */
  23039. class SoundManager {
  23040. /**
  23041. * 背景音乐音量。
  23042. * @default 1
  23043. */
  23044. static musicVolume:number;
  23045. /**
  23046. * 音效音量。
  23047. * @default 1
  23048. */
  23049. static soundVolume:number;
  23050. /**
  23051. * 声音播放速率。
  23052. * @default 1
  23053. */
  23054. static playbackRate:number;
  23055. /**
  23056. * 背景音乐使用Audio标签播放。
  23057. * @default true
  23058. */
  23059. private static _useAudioMusic:any;
  23060. /**
  23061. * @private 是否静音,默认为false。
  23062. */
  23063. private static _muted:any;
  23064. /**
  23065. * @private 是否音效静音,默认为false。
  23066. */
  23067. private static _soundMuted:any;
  23068. /**
  23069. * @private 是否背景音乐静音,默认为false。
  23070. */
  23071. private static _musicMuted:any;
  23072. /**
  23073. * @private 当前背景音乐声道。
  23074. */
  23075. private static _musicChannel:any;
  23076. /**
  23077. * @private 当前播放的Channel列表。
  23078. */
  23079. private static _channels:any;
  23080. /**
  23081. * @private
  23082. */
  23083. private static _autoStopMusic:any;
  23084. /**
  23085. * @private
  23086. */
  23087. private static _blurPaused:any;
  23088. /**
  23089. * @private
  23090. */
  23091. private static _isActive:any;
  23092. /**
  23093. * @private
  23094. */
  23095. private static _lastSoundUsedTimeDic:any;
  23096. /**
  23097. * @private
  23098. */
  23099. private static _isCheckingDispose:any;
  23100. /**
  23101. * 音效播放后自动删除。
  23102. * @default true
  23103. */
  23104. static autoReleaseSound:boolean;
  23105. /**
  23106. * 添加播放的声音实例。
  23107. * @param channel <code>SoundChannel</code> 对象。
  23108. */
  23109. static addChannel(channel:laya.media.SoundChannel):void;
  23110. /**
  23111. * 移除播放的声音实例。
  23112. * @param channel <code>SoundChannel</code> 对象。
  23113. */
  23114. static removeChannel(channel:laya.media.SoundChannel):void;
  23115. /**
  23116. * @private
  23117. */
  23118. static disposeSoundLater(url:string):void;
  23119. /**
  23120. * @private
  23121. */
  23122. private static _checkDisposeSound:any;
  23123. /**
  23124. * @private
  23125. */
  23126. static disposeSoundIfNotUsed(url:string):void;
  23127. /**
  23128. * 失去焦点后是否自动停止背景音乐。
  23129. * @param v Boolean 失去焦点后是否自动停止背景音乐。
  23130. */
  23131. static set autoStopMusic(v:boolean);
  23132. /**
  23133. * 失去焦点后是否自动停止背景音乐。
  23134. */
  23135. static get autoStopMusic():boolean;
  23136. private static _visibilityChange:any;
  23137. private static _stageOnBlur:any;
  23138. private static _recoverWebAudio:any;
  23139. private static _stageOnFocus:any;
  23140. /**
  23141. * 背景音乐和所有音效是否静音。
  23142. */
  23143. static set muted(value:boolean);
  23144. static get muted():boolean;
  23145. /**
  23146. * 所有音效(不包括背景音乐)是否静音。
  23147. */
  23148. static set soundMuted(value:boolean);
  23149. static get soundMuted():boolean;
  23150. /**
  23151. * 背景音乐(不包括音效)是否静音。
  23152. */
  23153. static set musicMuted(value:boolean);
  23154. static get musicMuted():boolean;
  23155. static get useAudioMusic():boolean;
  23156. static set useAudioMusic(value:boolean);
  23157. /**
  23158. * 播放音效。音效可以同时播放多个。
  23159. * @param url 声音文件地址。
  23160. * @param loops 循环次数,0表示无限循环。
  23161. * @param complete 声音播放完成回调 Handler对象。
  23162. * @param soundClass 使用哪个声音类进行播放,null表示自动选择。
  23163. * @param startTime 声音播放起始时间。
  23164. * @return SoundChannel对象,通过此对象可以对声音进行控制,以及获取声音信息。
  23165. */
  23166. static playSound(url:string,loops?:number,complete?:laya.utils.Handler,soundClass?:new () => any,startTime?:number):laya.media.SoundChannel;
  23167. /**
  23168. * 释放声音资源。
  23169. * @param url 声音播放地址。
  23170. */
  23171. static destroySound(url:string):void;
  23172. /**
  23173. * 播放背景音乐。背景音乐同时只能播放一个,如果在播放背景音乐时再次调用本方法,会先停止之前的背景音乐,再播放当前的背景音乐。
  23174. * @param url 声音文件地址。
  23175. * @param loops 循环次数,0表示无限循环。
  23176. * @param complete 声音播放完成回调,complete 结果参数 true: 播放完成, false/undefined :stop触发的complete。
  23177. * @param startTime 声音播放起始时间。
  23178. * @return SoundChannel对象,通过此对象可以对声音进行控制,以及获取声音信息。
  23179. */
  23180. static playMusic(url:string,loops?:number,complete?:laya.utils.Handler,startTime?:number):laya.media.SoundChannel;
  23181. /**
  23182. * 停止声音播放。此方法能够停止任意声音的播放(包括背景音乐和音效),只需传入对应的声音播放地址。
  23183. * @param url 声音文件地址。
  23184. */
  23185. static stopSound(url:string):void;
  23186. /**
  23187. * 停止播放所有声音(包括背景音乐和音效)。
  23188. */
  23189. static stopAll():void;
  23190. /**
  23191. * 停止播放所有音效(不包括背景音乐)。
  23192. */
  23193. static stopAllSound():void;
  23194. /**
  23195. * 停止播放背景音乐(不包括音效)。
  23196. * @param url 声音文件地址。
  23197. */
  23198. static stopMusic():void;
  23199. /**
  23200. * 设置声音音量。根据参数不同,可以分别设置指定声音(背景音乐或音效)音量或者所有音效(不包括背景音乐)音量。
  23201. * @param volume 音量。初始值为1。音量范围从 0(静音)至 1(最大音量)。
  23202. * @param url (default = null)声音播放地址。默认为null。为空表示设置所有音效(不包括背景音乐)的音量,不为空表示设置指定声音(背景音乐或音效)的音量。
  23203. */
  23204. static setSoundVolume(volume:number,url?:string):void;
  23205. /**
  23206. * 设置背景音乐音量。音量范围从 0(静音)至 1(最大音量)。
  23207. * @param volume 音量。初始值为1。音量范围从 0(静音)至 1(最大音量)。
  23208. */
  23209. static setMusicVolume(volume:number):void;
  23210. /**
  23211. * 设置指定声音的音量。
  23212. * @param url 声音文件url
  23213. * @param volume 音量。初始值为1。
  23214. */
  23215. private static _setVolume:any;
  23216. }
  23217. }
  23218. declare module laya.media {
  23219. /**
  23220. * @private
  23221. */
  23222. class SoundNode extends laya.display.Sprite {
  23223. url:string;
  23224. private _channel:any;
  23225. private _tar:any;
  23226. private _playEvents:any;
  23227. private _stopEvents:any;
  23228. constructor();
  23229. /**
  23230. * @private
  23231. */
  23232. private _onParentChange:any;
  23233. /**
  23234. * 播放
  23235. * @param loops 循环次数
  23236. * @param complete 完成回调
  23237. */
  23238. play(loops?:number,complete?:laya.utils.Handler):void;
  23239. /**
  23240. * 停止播放
  23241. */
  23242. stop():void;
  23243. /**
  23244. * @private
  23245. */
  23246. private _setPlayAction:any;
  23247. /**
  23248. * @private
  23249. */
  23250. private _setPlayActions:any;
  23251. /**
  23252. * 设置触发播放的事件
  23253. * @param events
  23254. */
  23255. set playEvent(events:string);
  23256. /**
  23257. * 设置控制播放的对象
  23258. * @param tar
  23259. */
  23260. set target(tar:laya.display.Sprite);
  23261. /**
  23262. * 设置触发停止的事件
  23263. * @param events
  23264. */
  23265. set stopEvent(events:string);
  23266. }
  23267. }
  23268. declare module laya.media.webaudio {
  23269. /**
  23270. * @private web audio api方式播放声音
  23271. */
  23272. class WebAudioSound extends laya.events.EventDispatcher {
  23273. private static _dataCache:any;
  23274. /**
  23275. * 是否支持web audio api
  23276. */
  23277. static webAudioEnabled:boolean;
  23278. /**
  23279. * 播放设备
  23280. */
  23281. static ctx:any;
  23282. /**
  23283. * 当前要解码的声音文件列表
  23284. */
  23285. static buffs:any[];
  23286. /**
  23287. * 是否在解码中
  23288. */
  23289. static isDecoding:boolean;
  23290. /**
  23291. * 用于播放解锁声音以及解决Ios9版本的内存释放
  23292. */
  23293. static _miniBuffer:any;
  23294. /**
  23295. * 事件派发器,用于处理加载解码完成事件的广播
  23296. */
  23297. static e:laya.events.EventDispatcher;
  23298. /**
  23299. * 是否已解锁声音播放
  23300. */
  23301. private static _unlocked:any;
  23302. /**
  23303. * 当前解码的声音信息
  23304. */
  23305. static tInfo:any;
  23306. private static __loadingSound:any;
  23307. /**
  23308. * 声音URL
  23309. */
  23310. url:string;
  23311. /**
  23312. * 是否已加载完成
  23313. */
  23314. loaded:boolean;
  23315. /**
  23316. * 声音文件数据
  23317. */
  23318. data:ArrayBuffer;
  23319. /**
  23320. * 声音原始文件数据
  23321. */
  23322. audioBuffer:any;
  23323. /**
  23324. * 待播放的声音列表
  23325. */
  23326. private __toPlays:any;
  23327. /**
  23328. * @private
  23329. */
  23330. private _disposed:any;
  23331. /**
  23332. * 解码声音文件
  23333. */
  23334. static decode():void;
  23335. /**
  23336. * 解码成功回调
  23337. * @param audioBuffer
  23338. */
  23339. private static _done:any;
  23340. /**
  23341. * 解码失败回调
  23342. * @return
  23343. */
  23344. private static _fail:any;
  23345. /**
  23346. * 播放声音以解锁IOS的声音
  23347. */
  23348. private static _playEmptySound:any;
  23349. /**
  23350. * 尝试解锁声音
  23351. */
  23352. private static _unlock:any;
  23353. static initWebAudio():void;
  23354. /**
  23355. * 加载声音
  23356. * @param url
  23357. */
  23358. load(url:string):void;
  23359. private _err:any;
  23360. private _loaded:any;
  23361. private _removeLoadEvents:any;
  23362. private __playAfterLoaded:any;
  23363. /**
  23364. * 播放声音
  23365. * @param startTime 起始时间
  23366. * @param loops 循环次数
  23367. * @return
  23368. */
  23369. play(startTime?:number,loops?:number,channel?:laya.media.webaudio.WebAudioSoundChannel):laya.media.SoundChannel;
  23370. get duration():number;
  23371. dispose():void;
  23372. }
  23373. }
  23374. declare module laya.media.webaudio {
  23375. /**
  23376. * @private web audio api方式播放声音的音轨控制
  23377. */
  23378. class WebAudioSoundChannel extends laya.media.SoundChannel {
  23379. /**
  23380. * 声音原始文件数据
  23381. */
  23382. audioBuffer:any;
  23383. /**
  23384. * gain节点
  23385. */
  23386. private gain:any;
  23387. /**
  23388. * 播放用的数据
  23389. */
  23390. private bufferSource:any;
  23391. /**
  23392. * 当前时间
  23393. */
  23394. private _currentTime:any;
  23395. /**
  23396. * 当前音量
  23397. */
  23398. private _volume:any;
  23399. /**
  23400. * 播放开始时的时间戳
  23401. */
  23402. private _startTime:any;
  23403. private _pauseTime:any;
  23404. /**
  23405. * 播放设备
  23406. */
  23407. private context:any;
  23408. private _onPlayEnd:any;
  23409. private static _tryCleanFailed:any;
  23410. static SetTargetDelay:number;
  23411. constructor();
  23412. /**
  23413. * 播放声音
  23414. * @override
  23415. */
  23416. play():void;
  23417. private __onPlayEnd:any;
  23418. /**
  23419. * 获取当前播放位置
  23420. * @override
  23421. */
  23422. get position():number;
  23423. /**
  23424. * @override
  23425. */
  23426. get duration():number;
  23427. private _clearBufferSource:any;
  23428. private _tryClearBuffer:any;
  23429. /**
  23430. * 停止播放
  23431. * @override
  23432. */
  23433. stop():void;
  23434. /**
  23435. * @override
  23436. */
  23437. pause():void;
  23438. /**
  23439. * @override
  23440. */
  23441. resume():void;
  23442. /**
  23443. * 设置音量
  23444. * @override
  23445. */
  23446. set volume(v:number);
  23447. /**
  23448. * 获取音量
  23449. * @override
  23450. */
  23451. get volume():number;
  23452. }
  23453. }
  23454. declare module laya.net {
  23455. /**
  23456. * @private
  23457. */
  23458. class AtlasInfoManager {
  23459. private static _fileLoadDic:any;
  23460. static enable(infoFile:string,callback?:laya.utils.Handler|null):void;
  23461. /**
  23462. * @private
  23463. */
  23464. private static _onInfoLoaded:any;
  23465. static getFileLoadPath(file:string):string;
  23466. static getFileLoadMapPath(file:string):string;
  23467. static isResLang(file:string):boolean;
  23468. }
  23469. }
  23470. declare module laya.net {
  23471. /**
  23472. * 请求进度改变时调度。
  23473. * @eventType Event.PROGRESS
  23474. */
  23475. /**
  23476. * 请求结束后调度。
  23477. * @eventType Event.COMPLETE
  23478. */
  23479. /**
  23480. * 请求出错时调度。
  23481. * @eventType Event.ERROR
  23482. */
  23483. /**
  23484. * <p> <code>HttpRequest</code> 通过封装 HTML <code>XMLHttpRequest</code> 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。 <code>HttpRequest</code> 只提供以异步的形式返回 Web 服务器的响应,并且能够以文本或者二进制的形式返回内容。</p>
  23485. * <p><b>注意:</b>建议每次请求都使用新的 <code>HttpRequest</code> 对象,因为每次调用该对象的send方法时,都会清空之前设置的数据,并重置 HTTP 请求的状态,这会导致之前还未返回响应的请求被重置,从而得不到之前请求的响应结果。</p>
  23486. */
  23487. class HttpRequest extends laya.events.EventDispatcher {
  23488. /**
  23489. * @private
  23490. */
  23491. protected _http:XMLHttpRequest;
  23492. /**
  23493. * @private
  23494. */
  23495. private static _urlEncode:any;
  23496. /**
  23497. * @private
  23498. */
  23499. protected _responseType:string;
  23500. /**
  23501. * @private
  23502. */
  23503. protected _data:any;
  23504. /**
  23505. * @private
  23506. */
  23507. protected _url:string;
  23508. /**
  23509. * 发送 HTTP 请求。
  23510. * @param url 请求的地址。大多数浏览器实施了一个同源安全策略,并且要求这个 URL 与包含脚本的文本具有相同的主机名和端口。
  23511. * @param data (default = null)发送的数据。
  23512. * @param method (default = "get")用于请求的 HTTP 方法。值包括 "get"、"post"、"head"。
  23513. * @param responseType (default = "text")Web 服务器的响应类型,可设置为 "text"、"json"、"xml"、"arraybuffer"。
  23514. * @param headers (default = null) HTTP 请求的头部信息。参数形如key-value数组:key是头部的名称,不应该包括空白、冒号或换行;value是头部的值,不应该包括换行。比如["Content-Type", "application/json"]。
  23515. */
  23516. send(url:string,data?:any,method?:string,responseType?:string,headers?:any[]|null):void;
  23517. /**
  23518. * @private 请求进度的侦听处理函数。
  23519. * @param e 事件对象。
  23520. */
  23521. protected _onProgress(e:any):void;
  23522. /**
  23523. * @private 请求中断的侦听处理函数。
  23524. * @param e 事件对象。
  23525. */
  23526. protected _onAbort(e:any):void;
  23527. /**
  23528. * @private 请求出错侦的听处理函数。
  23529. * @param e 事件对象。
  23530. */
  23531. protected _onError(e:any):void;
  23532. /**
  23533. * @private 请求消息返回的侦听处理函数。
  23534. * @param e 事件对象。
  23535. */
  23536. protected _onLoad(e:any):void;
  23537. /**
  23538. * @private 请求错误的处理函数。
  23539. * @param message 错误信息。
  23540. */
  23541. protected error(message:string):void;
  23542. /**
  23543. * @private 请求成功完成的处理函数。
  23544. */
  23545. protected complete():void;
  23546. /**
  23547. * @private 清除当前请求。
  23548. */
  23549. protected clear():void;
  23550. /**
  23551. * 请求的地址。
  23552. */
  23553. get url():string;
  23554. /**
  23555. * 返回的数据。
  23556. */
  23557. get data():any;
  23558. /**
  23559. * 本对象所封装的原生 XMLHttpRequest 引用。
  23560. */
  23561. get http():any;
  23562. }
  23563. }
  23564. declare module laya.net {
  23565. /**
  23566. * 加载进度发生改变时调度。
  23567. * @eventType Event.PROGRESS
  23568. */
  23569. /**
  23570. * 加载完成后调度。
  23571. * @eventType Event.COMPLETE
  23572. */
  23573. /**
  23574. * 加载出错时调度。
  23575. * @eventType Event.ERROR
  23576. */
  23577. /**
  23578. * <code>Loader</code> 类可用来加载文本、JSON、XML、二进制、图像等资源。
  23579. */
  23580. class Loader extends laya.events.EventDispatcher {
  23581. /**
  23582. * 文本类型,加载完成后返回文本。
  23583. */
  23584. static TEXT:string;
  23585. /**
  23586. * JSON 类型,加载完成后返回json数据。
  23587. */
  23588. static JSON:string;
  23589. /**
  23590. * prefab 类型,加载完成后返回Prefab实例。
  23591. */
  23592. static PREFAB:string;
  23593. /**
  23594. * XML 类型,加载完成后返回domXML。
  23595. */
  23596. static XML:string;
  23597. /**
  23598. * 二进制类型,加载完成后返回arraybuffer二进制数据。
  23599. */
  23600. static BUFFER:string;
  23601. /**
  23602. * 纹理类型,加载完成后返回Texture。
  23603. */
  23604. static IMAGE:string;
  23605. /**
  23606. * 声音类型,加载完成后返回sound。
  23607. */
  23608. static SOUND:string;
  23609. /**
  23610. * 图集类型,加载完成后返回图集json信息(并创建图集内小图Texture)。
  23611. */
  23612. static ATLAS:string;
  23613. /**
  23614. * 位图字体类型,加载完成后返回BitmapFont,加载后,会根据文件名自动注册为位图字体。
  23615. */
  23616. static FONT:string;
  23617. /**
  23618. * TTF字体类型,加载完成后返回null。
  23619. */
  23620. static TTF:string;
  23621. /**
  23622. * 预加载文件类型,加载完成后自动解析到preLoadedMap。
  23623. */
  23624. static PLF:string;
  23625. /**
  23626. * 二进制预加载文件类型,加载完成后自动解析到preLoadedMap。
  23627. */
  23628. static PLFB:string;
  23629. /**
  23630. * Hierarchy资源。
  23631. */
  23632. static HIERARCHY:string;
  23633. /**
  23634. * Mesh资源。
  23635. */
  23636. static MESH:string;
  23637. /**
  23638. * Material资源。
  23639. */
  23640. static MATERIAL:string;
  23641. /**
  23642. * Texture2D资源。
  23643. */
  23644. static TEXTURE2D:string;
  23645. /**
  23646. * TextureCube资源。
  23647. */
  23648. static TEXTURECUBE:string;
  23649. /**
  23650. * AnimationClip资源。
  23651. */
  23652. static ANIMATIONCLIP:string;
  23653. /**
  23654. * Avatar资源。
  23655. */
  23656. static AVATAR:string;
  23657. /**
  23658. * Terrain资源。
  23659. */
  23660. static TERRAINHEIGHTDATA:string;
  23661. /**
  23662. * Terrain资源。
  23663. */
  23664. static TERRAINRES:string;
  23665. /**
  23666. * 文件后缀和类型对应表。
  23667. */
  23668. static typeMap:{[key:string]:string;};
  23669. /**
  23670. * 资源解析函数对应表,用来扩展更多类型的资源加载解析。
  23671. */
  23672. static parserMap:any;
  23673. /**
  23674. * 每帧加载完成回调使用的最大超时时间,如果超时,则下帧再处理,防止帧卡顿。
  23675. */
  23676. static maxTimeOut:number;
  23677. /**
  23678. * 资源分组对应表。
  23679. */
  23680. static groupMap:{[key:string]:string[];};
  23681. /**
  23682. * 已加载的资源池。
  23683. */
  23684. static loadedMap:{[key:string]:any;};
  23685. /**
  23686. * 已加载的图集资源池。
  23687. */
  23688. static atlasMap:{[key:string]:any[];};
  23689. /**
  23690. * 已加载的纹理资源池。
  23691. */
  23692. static textureMap:{[key:string]:laya.resource.Texture;};
  23693. /**
  23694. * @private 已加载的数据文件。
  23695. */
  23696. static preLoadedMap:{[key:string]:ArrayBuffer;};
  23697. /**
  23698. * @private 引用image对象,防止垃圾回收
  23699. */
  23700. protected static _imgCache:{[key:string]:HTMLImageElement;};
  23701. /**
  23702. * @private
  23703. */
  23704. protected static _loaders:Loader[];
  23705. /**
  23706. * @private
  23707. */
  23708. protected static _isWorking:boolean;
  23709. /**
  23710. * @private
  23711. */
  23712. protected static _startIndex:number;
  23713. /**
  23714. * 获取指定资源地址的数据类型。
  23715. * @param url 资源地址。
  23716. * @return 数据类型。
  23717. */
  23718. static getTypeFromUrl(url:string):string;
  23719. /**
  23720. * @private
  23721. */
  23722. protected _url:string;
  23723. /**
  23724. * @private
  23725. */
  23726. protected _type:string;
  23727. /**
  23728. * @private
  23729. */
  23730. protected _http:laya.net.HttpRequest;
  23731. /**
  23732. * @private
  23733. */
  23734. protected _useWorkerLoader:boolean;
  23735. /**
  23736. * 加载资源。加载错误会派发 Event.ERROR 事件,参数为错误信息。
  23737. * @param url 资源地址。
  23738. * @param type (default = null)资源类型。可选值为:Loader.TEXT、Loader.JSON、Loader.XML、Loader.BUFFER、Loader.IMAGE、Loader.SOUND、Loader.ATLAS、Loader.FONT。如果为null,则根据文件后缀分析类型。
  23739. * @param cache (default = true)是否缓存数据。
  23740. * @param group (default = null)分组名称。
  23741. * @param ignoreCache (default = false)是否忽略缓存,强制重新加载。
  23742. * @param useWorkerLoader (default = false)是否使用worker加载(只针对IMAGE类型和ATLAS类型,并且浏览器支持的情况下生效)
  23743. */
  23744. load(url:string,type?:string|null,cache?:boolean,group?:string|null,ignoreCache?:boolean,useWorkerLoader?:boolean):void;
  23745. /**
  23746. * @private onload、onprocess、onerror必须写在本类
  23747. */
  23748. private _loadHttpRequest:any;
  23749. /**
  23750. * @private
  23751. */
  23752. private _loadHtmlImage:any;
  23753. /**
  23754. * @private 加载TTF资源。
  23755. * @param url 资源地址。
  23756. */
  23757. protected _loadTTF(url:string):void;
  23758. /**
  23759. * @private
  23760. */
  23761. protected _loadImage(url:string,isformatURL?:boolean):void;
  23762. /**
  23763. * @private
  23764. */
  23765. protected onProgress(value:number):void;
  23766. /**
  23767. * @private
  23768. */
  23769. protected onError(message:string):void;
  23770. /**
  23771. * 资源加载完成的处理函数。
  23772. * @param data 数据。
  23773. */
  23774. protected onLoaded(data?:any):void;
  23775. private parsePLFData:any;
  23776. private parsePLFBData:any;
  23777. private parseOnePLFBFile:any;
  23778. /**
  23779. * 加载完成。
  23780. * @param data 加载的数据。
  23781. */
  23782. protected complete(data:any):void;
  23783. /**
  23784. * @private
  23785. */
  23786. private static checkNext:any;
  23787. /**
  23788. * 结束加载,处理是否缓存及派发完成事件 <code>Event.COMPLETE</code> 。
  23789. * @param content 加载后的数据
  23790. */
  23791. endLoad(content?:any):void;
  23792. /**
  23793. * 加载地址。
  23794. */
  23795. get url():string;
  23796. /**
  23797. * 加载类型。
  23798. */
  23799. get type():string;
  23800. /**
  23801. * 是否缓存。
  23802. */
  23803. get cache():boolean;
  23804. /**
  23805. * 返回的数据。
  23806. */
  23807. get data():any;
  23808. /**
  23809. * 清理指定资源地址的缓存。
  23810. * @param url 资源地址。
  23811. */
  23812. static clearRes(url:string):void;
  23813. /**
  23814. * 销毁Texture使用的图片资源,保留texture壳,如果下次渲染的时候,发现texture使用的图片资源不存在,则会自动恢复
  23815. * 相比clearRes,clearTextureRes只是清理texture里面使用的图片资源,并不销毁texture,再次使用到的时候会自动恢复图片资源
  23816. * 而clearRes会彻底销毁texture,导致不能再使用;clearTextureRes能确保立即销毁图片资源,并且不用担心销毁错误,clearRes则采用引用计数方式销毁
  23817. * 【注意】如果图片本身在自动合集里面(默认图片小于512*512),内存是不能被销毁的,此图片被大图合集管理器管理
  23818. * @param url 图集地址或者texture地址,比如 Loader.clearTextureRes("res/atlas/comp.atlas"); Loader.clearTextureRes("hall/bg.jpg");
  23819. */
  23820. static clearTextureRes(url:string):void;
  23821. /**
  23822. * 获取指定资源地址的资源或纹理。
  23823. * @param url 资源地址。
  23824. * @return 返回资源。
  23825. */
  23826. static getRes(url:string):any;
  23827. /**
  23828. * 获取指定资源地址的图集地址列表。
  23829. * @param url 图集地址。
  23830. * @return 返回地址集合。
  23831. */
  23832. static getAtlas(url:string):any[];
  23833. /**
  23834. * 缓存资源。
  23835. * @param url 资源地址。
  23836. * @param data 要缓存的内容。
  23837. */
  23838. static cacheRes(url:string,data:any):void;
  23839. /**
  23840. * 缓存Teture。
  23841. * @param url 资源地址。
  23842. * @param data 要缓存的Texture。
  23843. */
  23844. static cacheTexture(url:string,data:laya.resource.Texture):void;
  23845. /**
  23846. * 设置资源分组。
  23847. * @param url 资源地址。
  23848. * @param group 分组名。
  23849. */
  23850. static setGroup(url:string,group:string):void;
  23851. /**
  23852. * 根据分组清理资源。
  23853. * @param group 分组名。
  23854. */
  23855. static clearResByGroup(group:string):void;
  23856. }
  23857. }
  23858. declare module laya.net {
  23859. /**
  23860. * 所有资源加载完成时调度。
  23861. * @eventType Event.COMPLETE
  23862. */
  23863. /**
  23864. * 任何资源加载出错时调度。
  23865. * @eventType Event.ERROR
  23866. */
  23867. /**
  23868. * <p> <code>LoaderManager</code> 类用于用于批量加载资源。此类是单例,不要手动实例化此类,请通过Laya.loader访问。</p>
  23869. * <p>全部队列加载完成,会派发 Event.COMPLETE 事件;如果队列中任意一个加载失败,会派发 Event.ERROR 事件,事件回调参数值为加载出错的资源地址。</p>
  23870. * <p> <code>LoaderManager</code> 类提供了以下几种功能:<br/>
  23871. * 多线程:默认5个加载线程,可以通过maxLoader属性修改线程数量;<br/>
  23872. * 多优先级:有0-4共5个优先级,优先级高的优先加载。0最高,4最低;<br/>
  23873. * 重复过滤:自动过滤重复加载(不会有多个相同地址的资源同时加载)以及复用缓存资源,防止重复加载;<br/>
  23874. * 错误重试:资源加载失败后,会重试加载(以最低优先级插入加载队列),retryNum设定加载失败后重试次数,retryDelay设定加载重试的时间间隔。</p>
  23875. * @see laya.net.Loader
  23876. */
  23877. class LoaderManager extends laya.events.EventDispatcher {
  23878. /**
  23879. * @private
  23880. */
  23881. private static _resMap:any;
  23882. /**
  23883. * @private
  23884. */
  23885. static createMap:any;
  23886. /**
  23887. * 加载出错后的重试次数,默认重试一次
  23888. */
  23889. retryNum:number;
  23890. /**
  23891. * 延迟时间多久再进行错误重试,默认立即重试
  23892. */
  23893. retryDelay:number;
  23894. /**
  23895. * 最大下载线程,默认为5个
  23896. */
  23897. maxLoader:number;
  23898. /**
  23899. * @private
  23900. */
  23901. private _loaders:any;
  23902. /**
  23903. * @private
  23904. */
  23905. private _loaderCount:any;
  23906. /**
  23907. * @private
  23908. */
  23909. private _resInfos:any;
  23910. /**
  23911. * @private
  23912. */
  23913. private _infoPool:any;
  23914. /**
  23915. * @private
  23916. */
  23917. private _maxPriority:any;
  23918. /**
  23919. * @private
  23920. */
  23921. private _failRes:any;
  23922. /**
  23923. * @private
  23924. */
  23925. private _statInfo:any;
  23926. /**
  23927. * @private
  23928. */
  23929. getProgress():number;
  23930. /**
  23931. * @private
  23932. */
  23933. resetProgress():void;
  23934. /**
  23935. * <p>创建一个新的 <code>LoaderManager</code> 实例。</p>
  23936. * <p><b>注意:</b>请使用Laya.loader加载资源,这是一个单例,不要手动实例化此类,否则会导致不可预料的问题。</p>
  23937. */
  23938. constructor();
  23939. /**
  23940. * <p>根据clas类型创建一个未初始化资源的对象,随后进行异步加载,资源加载完成后,初始化对象的资源,并通过此对象派发 Event.LOADED 事件,事件回调参数值为此对象本身。套嵌资源的子资源会保留资源路径"?"后的部分。</p>
  23941. * <p>如果url为数组,返回true;否则返回指定的资源类对象,可以通过侦听此对象的 Event.LOADED 事件来判断资源是否已经加载完毕。</p>
  23942. * <p><b>注意:</b>cache参数只能对文件后缀为atlas的资源进行缓存控制,其他资源会忽略缓存,强制重新加载。</p>
  23943. * @param url 资源地址或者数组。如果url和clas同时指定了资源类型,优先使用url指定的资源类型。参数形如:[{url:xx,clas:xx,priority:xx,params:xx},{url:xx,clas:xx,priority:xx,params:xx}]。
  23944. * @param complete 加载结束回调。根据url类型不同分为2种情况:1. url为String类型,也就是单个资源地址,如果加载成功,则回调参数值为加载完成的资源,否则为null;2. url为数组类型,指定了一组要加载的资源,如果全部加载成功,则回调参数值为true,否则为false。
  23945. * @param progress 资源加载进度回调,回调参数值为当前资源加载的进度信息(0-1)。
  23946. * @param type 资源类型。
  23947. * @param constructParams 资源构造函数参数。
  23948. * @param propertyParams 资源属性参数。
  23949. * @param priority (default = 1)加载的优先级,优先级高的优先加载。有0-4共5个优先级,0最高,4最低。
  23950. * @param cache 是否缓存加载的资源。
  23951. * @return 如果url为数组,返回true;否则返回指定的资源类对象。
  23952. */
  23953. 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;
  23954. /**
  23955. * @private
  23956. */
  23957. private _createOne:any;
  23958. /**
  23959. * <p>加载资源。资源加载错误时,本对象会派发 Event.ERROR 事件,事件回调参数值为加载出错的资源地址。</p>
  23960. * <p>因为返回值为 LoaderManager 对象本身,所以可以使用如下语法:loaderManager.load(...).load(...);</p>
  23961. * @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}]。
  23962. * @param complete 加载结束回调。根据url类型不同分为2种情况:1. url为String类型,也就是单个资源地址,如果加载成功,则回调参数值为加载完成的资源,否则为null;2. url为数组类型,指定了一组要加载的资源,如果全部加载成功,则回调参数值为true,否则为false。
  23963. * @param progress 加载进度回调。回调参数值为当前资源的加载进度信息(0-1)。
  23964. * @param type 资源类型。比如:Loader.IMAGE。
  23965. * @param priority (default = 1)加载的优先级,优先级高的优先加载。有0-4共5个优先级,0最高,4最低。
  23966. * @param cache 是否缓存加载结果。
  23967. * @param group 分组,方便对资源进行管理。
  23968. * @param ignoreCache 是否忽略缓存,强制重新加载。
  23969. * @param useWorkerLoader (default = false)是否使用worker加载(只针对IMAGE类型和ATLAS类型,并且浏览器支持的情况下生效)
  23970. * @return 此 LoaderManager 对象本身。
  23971. */
  23972. 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;
  23973. private _resInfoLoaded:any;
  23974. private _next:any;
  23975. private _doLoad:any;
  23976. private _endLoad:any;
  23977. private _addReTry:any;
  23978. /**
  23979. * 清理指定资源地址缓存。
  23980. * @param url 资源地址。
  23981. */
  23982. clearRes(url:string):void;
  23983. /**
  23984. * 销毁Texture使用的图片资源,保留texture壳,如果下次渲染的时候,发现texture使用的图片资源不存在,则会自动恢复
  23985. * 相比clearRes,clearTextureRes只是清理texture里面使用的图片资源,并不销毁texture,再次使用到的时候会自动恢复图片资源
  23986. * 而clearRes会彻底销毁texture,导致不能再使用;clearTextureRes能确保立即销毁图片资源,并且不用担心销毁错误,clearRes则采用引用计数方式销毁
  23987. * 【注意】如果图片本身在自动合集里面(默认图片小于512*512),内存是不能被销毁的,此图片被大图合集管理器管理
  23988. * @param url 图集地址或者texture地址,比如 Loader.clearTextureRes("res/atlas/comp.atlas"); Loader.clearTextureRes("hall/bg.jpg");
  23989. */
  23990. clearTextureRes(url:string):void;
  23991. /**
  23992. * 获取指定资源地址的资源。
  23993. * @param url 资源地址。
  23994. * @return 返回资源。
  23995. */
  23996. getRes(url:string):any;
  23997. /**
  23998. * 缓存资源。
  23999. * @param url 资源地址。
  24000. * @param data 要缓存的内容。
  24001. */
  24002. cacheRes(url:string,data:any):void;
  24003. /**
  24004. * 设置资源分组。
  24005. * @param url 资源地址。
  24006. * @param group 分组名
  24007. */
  24008. setGroup(url:string,group:string):void;
  24009. /**
  24010. * 根据分组清理资源。
  24011. * @param group 分组名
  24012. */
  24013. clearResByGroup(group:string):void;
  24014. /**
  24015. * @private 缓存资源。
  24016. * @param url 资源地址。
  24017. * @param data 要缓存的内容。
  24018. */
  24019. static cacheRes(url:string,data:any):void;
  24020. /**
  24021. * 清理当前未完成的加载,所有未加载的内容全部停止加载。
  24022. */
  24023. clearUnLoaded():void;
  24024. /**
  24025. * 根据地址集合清理掉未加载的内容
  24026. * @param urls 资源地址集合
  24027. */
  24028. cancelLoadByUrls(urls:any[]):void;
  24029. /**
  24030. * 根据地址清理掉未加载的内容
  24031. * @param url 资源地址
  24032. */
  24033. cancelLoadByUrl(url:string):void;
  24034. /**
  24035. * @private 加载数组里面的资源。
  24036. * @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}]
  24037. */
  24038. private _loadAssets:any;
  24039. /**
  24040. * 解码Texture或者图集
  24041. * @param urls texture地址或者图集地址集合
  24042. */
  24043. decodeBitmaps(urls:any[]):void;
  24044. private _decodeTexture:any;
  24045. }
  24046. interface loadItem{
  24047. url:string;
  24048. type?:string;
  24049. size?:number;
  24050. priority?:number;
  24051. useWorkerLoader?:boolean;
  24052. progress?:number;
  24053. group?:string;
  24054. }
  24055. }
  24056. declare module laya.net {
  24057. /**
  24058. * <p> <code>LocalStorage</code> 类用于没有时间限制的数据存储。</p>
  24059. */
  24060. class LocalStorage {
  24061. /**
  24062. * @ 基础类
  24063. */
  24064. static _baseClass:any;
  24065. /**
  24066. * 数据列表。
  24067. */
  24068. static items:any;
  24069. /**
  24070. * 表示是否支持 <code>LocalStorage</code>。
  24071. */
  24072. static support:boolean;
  24073. /**
  24074. * 存储指定键名和键值,字符串类型。
  24075. * @param key 键名。
  24076. * @param value 键值。
  24077. */
  24078. static setItem(key:string,value:string):void;
  24079. /**
  24080. * 获取指定键名的值。
  24081. * @param key 键名。
  24082. * @return 字符串型值。
  24083. */
  24084. static getItem(key:string):string;
  24085. /**
  24086. * 存储指定键名及其对应的 <code>Object</code> 类型值。
  24087. * @param key 键名。
  24088. * @param value 键值。是 <code>Object</code> 类型,此致会被转化为 JSON 字符串存储。
  24089. */
  24090. static setJSON(key:string,value:any):void;
  24091. /**
  24092. * 获取指定键名对应的 <code>Object</code> 类型值。
  24093. * @param key 键名。
  24094. * @return <code>Object</code> 类型值
  24095. */
  24096. static getJSON(key:string):any;
  24097. /**
  24098. * 删除指定键名的信息。
  24099. * @param key 键名。
  24100. */
  24101. static removeItem(key:string):void;
  24102. /**
  24103. * 清除本地存储信息。
  24104. */
  24105. static clear():void;
  24106. }
  24107. }
  24108. declare module laya.net {
  24109. /**
  24110. * <p>资源版本的生成由layacmd或IDE完成,使用 <code>ResourceVersion</code> 简化使用过程。</p>
  24111. * <p>调用 <code>enable</code> 启用资源版本管理。</p>
  24112. */
  24113. class ResourceVersion {
  24114. /**
  24115. * 基于文件夹的资源管理方式(老版本IDE默认类型)
  24116. */
  24117. static FOLDER_VERSION:number;
  24118. /**
  24119. * 基于文件名映射管理方式(新版本IDE默认类型)
  24120. */
  24121. static FILENAME_VERSION:number;
  24122. /**
  24123. * 版本清单
  24124. */
  24125. static manifest:any;
  24126. /**
  24127. * 当前使用的版本管理类型
  24128. */
  24129. static type:number;
  24130. /**
  24131. * <p>启用资源版本管理。</p>
  24132. * <p>由于只有发布版本需要资源管理。因此没有资源管理文件时,可以设置manifestFile为null或者不存在的路径。</p>
  24133. * @param manifestFile 清单(json)文件的路径。
  24134. * @param callback 清单(json)文件加载完成后执行。
  24135. * @param type FOLDER_VERSION为基于文件夹管理方式(老版本IDE默认类型),FILENAME_VERSION为基于文件名映射管理(新版本IDE默认类型
  24136. */
  24137. static enable(manifestFile:string,callback:laya.utils.Handler,type?:number):void;
  24138. private static onManifestLoaded:any;
  24139. /**
  24140. * 为加载路径添加版本前缀。
  24141. * @param originURL 源路径。
  24142. * @return 格式化后的新路径。
  24143. */
  24144. static addVersionPrefix(originURL:string):string;
  24145. }
  24146. }
  24147. declare module laya.net {
  24148. /**
  24149. * @private 场景资源加载器
  24150. */
  24151. class SceneLoader extends laya.events.EventDispatcher {
  24152. static LoadableExtensions:any;
  24153. static No3dLoadTypes:any;
  24154. totalCount:number;
  24155. private _completeHandler:any;
  24156. private _toLoadList:any;
  24157. private _isLoading:any;
  24158. private _curUrl:any;
  24159. constructor();
  24160. reset():void;
  24161. get leftCount():number;
  24162. get loadedCount():number;
  24163. load(url:any,is3D?:boolean,ifCheck?:boolean):void;
  24164. private _addToLoadList:any;
  24165. private _checkNext:any;
  24166. private loadOne:any;
  24167. private onOneLoadComplete:any;
  24168. getProgress():number;
  24169. }
  24170. }
  24171. declare module laya.net {
  24172. /**
  24173. * 连接建立成功后调度。
  24174. * @eventType Event.OPEN
  24175. */
  24176. /**
  24177. * 接收到数据后调度。
  24178. * @eventType Event.MESSAGE
  24179. */
  24180. /**
  24181. * 连接被关闭后调度。
  24182. * @eventType Event.CLOSE
  24183. */
  24184. /**
  24185. * 出现异常后调度。
  24186. * @eventType Event.ERROR
  24187. */
  24188. /**
  24189. * <p> <code>Socket</code> 封装了 HTML5 WebSocket ,允许服务器端与客户端进行全双工(full-duplex)的实时通信,并且允许跨域通信。在建立连接后,服务器和 Browser/Client Agent 都能主动的向对方发送或接收文本和二进制数据。</p>
  24190. * <p>要使用 <code>Socket</code> 类的方法,请先使用构造函数 <code>new Socket</code> 创建一个 <code>Socket</code> 对象。 <code>Socket</code> 以异步方式传输和接收数据。</p>
  24191. */
  24192. class Socket extends laya.events.EventDispatcher {
  24193. /**
  24194. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。</p>
  24195. * <p> LITTLE_ENDIAN :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  24196. * <p> BIG_ENDIAN :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。</p>
  24197. */
  24198. static LITTLE_ENDIAN:string;
  24199. /**
  24200. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。</p>
  24201. * <p> BIG_ENDIAN :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。</p>
  24202. * <p> LITTLE_ENDIAN :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  24203. */
  24204. static BIG_ENDIAN:string;
  24205. /**
  24206. * @private
  24207. */
  24208. protected _socket:any;
  24209. /**
  24210. * @private
  24211. */
  24212. private _connected:any;
  24213. /**
  24214. * @private
  24215. */
  24216. private _addInputPosition:any;
  24217. /**
  24218. * @private
  24219. */
  24220. private _input:any;
  24221. /**
  24222. * @private
  24223. */
  24224. private _output:any;
  24225. /**
  24226. * 不再缓存服务端发来的数据,如果传输的数据为字符串格式,建议设置为true,减少二进制转换消耗。
  24227. */
  24228. disableInput:boolean;
  24229. /**
  24230. * 用来发送和接收数据的 <code>Byte</code> 类。
  24231. */
  24232. private _byteClass:any;
  24233. /**
  24234. * <p>子协议名称。子协议名称字符串,或由多个子协议名称字符串构成的数组。必须在调用 connect 或者 connectByUrl 之前进行赋值,否则无效。</p>
  24235. * <p>指定后,只有当服务器选择了其中的某个子协议,连接才能建立成功,否则建立失败,派发 Event.ERROR 事件。</p>
  24236. * @see https://html.spec.whatwg.org/multipage/comms.html#dom-websocket
  24237. */
  24238. protocols:any;
  24239. /**
  24240. * 缓存的服务端发来的数据。
  24241. */
  24242. get input():any;
  24243. /**
  24244. * 表示需要发送至服务端的缓冲区中的数据。
  24245. */
  24246. get output():any;
  24247. /**
  24248. * 表示此 Socket 对象目前是否已连接。
  24249. */
  24250. get connected():boolean;
  24251. /**
  24252. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。</p>
  24253. * <p> LITTLE_ENDIAN :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  24254. * <p> BIG_ENDIAN :大端字节序,地址低位存储值的高位,地址高位存储值的低位。</p>
  24255. */
  24256. get endian():string;
  24257. set endian(value:string);
  24258. /**
  24259. * <p>创建新的 Socket 对象。默认字节序为 Socket.BIG_ENDIAN 。若未指定参数,将创建一个最初处于断开状态的套接字。若指定了有效参数,则尝试连接到指定的主机和端口。</p>
  24260. * @param host 服务器地址。
  24261. * @param port 服务器端口。
  24262. * @param byteClass 用于接收和发送数据的 Byte 类。如果为 null ,则使用 Byte 类,也可传入 Byte 类的子类。
  24263. * @param protocols 子协议名称。子协议名称字符串,或由多个子协议名称字符串构成的数组
  24264. * @see laya.utils.Byte
  24265. */
  24266. constructor(host?:string|null,port?:number,byteClass?:new () => any,protocols?:any[]|null);
  24267. /**
  24268. * <p>连接到指定的主机和端口。</p>
  24269. * <p>连接成功派发 Event.OPEN 事件;连接失败派发 Event.ERROR 事件;连接被关闭派发 Event.CLOSE 事件;接收到数据派发 Event.MESSAGE 事件; 除了 Event.MESSAGE 事件参数为数据内容,其他事件参数都是原生的 HTML DOM Event 对象。</p>
  24270. * @param host 服务器地址。
  24271. * @param port 服务器端口。
  24272. */
  24273. connect(host:string,port:number):void;
  24274. /**
  24275. * <p>连接到指定的服务端 WebSocket URL。 URL 类似 ws://yourdomain:port。</p>
  24276. * <p>连接成功派发 Event.OPEN 事件;连接失败派发 Event.ERROR 事件;连接被关闭派发 Event.CLOSE 事件;接收到数据派发 Event.MESSAGE 事件; 除了 Event.MESSAGE 事件参数为数据内容,其他事件参数都是原生的 HTML DOM Event 对象。</p>
  24277. * @param url 要连接的服务端 WebSocket URL。 URL 类似 ws://yourdomain:port。
  24278. */
  24279. connectByUrl(url:string):void;
  24280. /**
  24281. * 清理Socket:关闭Socket链接,关闭事件监听,重置Socket
  24282. */
  24283. cleanSocket():void;
  24284. /**
  24285. * 关闭连接。
  24286. */
  24287. close():void;
  24288. /**
  24289. * @private 连接建立成功 。
  24290. */
  24291. protected _onOpen(e:any):void;
  24292. /**
  24293. * @private 接收到数据处理方法。
  24294. * @param msg 数据。
  24295. */
  24296. protected _onMessage(msg:any):void;
  24297. /**
  24298. * @private 连接被关闭处理方法。
  24299. */
  24300. protected _onClose(e:any):void;
  24301. /**
  24302. * @private 出现异常处理方法。
  24303. */
  24304. protected _onError(e:any):void;
  24305. /**
  24306. * 发送数据到服务器。
  24307. * @param data 需要发送的数据,可以是String或者ArrayBuffer。
  24308. */
  24309. send(data:any):void;
  24310. /**
  24311. * 发送缓冲区中的数据到服务器。
  24312. */
  24313. flush():void;
  24314. }
  24315. }
  24316. declare module laya.net {
  24317. /**
  24318. * @private
  24319. */
  24320. class TTFLoader {
  24321. private static _testString:any;
  24322. fontName:string;
  24323. complete:laya.utils.Handler|null;
  24324. err:laya.utils.Handler|null;
  24325. private _fontTxt:any;
  24326. private _url:any;
  24327. private _div:any;
  24328. private _txtWidth:any;
  24329. private _http:any;
  24330. load(fontPath:string):void;
  24331. private _loadConch:any;
  24332. private _onHttpLoaded:any;
  24333. private _clearHttp:any;
  24334. private _onErr:any;
  24335. private _complete:any;
  24336. private _checkComplete:any;
  24337. private _loadWithFontFace:any;
  24338. private _createDiv:any;
  24339. private _loadWithCSS:any;
  24340. }
  24341. }
  24342. declare module laya.net {
  24343. /**
  24344. * <p><code>URL</code> 提供URL格式化,URL版本管理的类。</p>
  24345. * <p>引擎加载资源的时候,会自动调用formatURL函数格式化URL路径</p>
  24346. * <p>通过basePath属性可以设置网络基础路径</p>
  24347. * <p>通过设置customFormat函数,可以自定义URL格式化的方式</p>
  24348. * <p>除了默认的通过增加后缀的格式化外,通过VersionManager类,可以开启IDE提供的,基于目录的管理方式来替代 "?v=" 的管理方式</p>
  24349. * @see laya.net.VersionManager
  24350. */
  24351. class URL {
  24352. /**
  24353. * URL地址版本映射表,比如{"aaa/bb.png":99,"aaa/bb.png":12},默认情况下,通过formatURL格式化后,会自动生成为"aaa/bb.png?v=99"的一个地址
  24354. */
  24355. static version:any;
  24356. /**
  24357. * @private
  24358. */
  24359. private _url:any;
  24360. /**
  24361. * @private
  24362. */
  24363. private _path:any;
  24364. /**
  24365. * 兼容微信不支持加载scene后缀场景,设置为true,则会把scene加载替换为json
  24366. */
  24367. static exportSceneToJson:boolean;
  24368. /**
  24369. * 创建一个新的 <code>URL</code> 实例。
  24370. */
  24371. constructor(url:string);
  24372. /**
  24373. * 格式化后的地址。
  24374. */
  24375. get url():string;
  24376. /**
  24377. * 地址的文件夹路径(不包括文件名)。
  24378. */
  24379. get path():string;
  24380. /**
  24381. * root路径。只针对'~'类型的url路径有效
  24382. */
  24383. static rootPath:string;
  24384. static set basePath(value:string);
  24385. /**
  24386. * 基础路径。如果不设置,默认为当前网页的路径。最终地址将被格式化为 basePath+相对URL地址,
  24387. */
  24388. static get basePath():string;
  24389. /**
  24390. * 自定义URL格式化的方式。例如: customFormat = function(url:String):String{}
  24391. */
  24392. static customFormat:Function;
  24393. /**
  24394. * 格式化指定的地址并返回。
  24395. * @param url 地址。
  24396. * @param base 基础路径,如果没有,则使用basePath。
  24397. * @return 格式化处理后的地址。
  24398. */
  24399. static formatURL(url:string):string;
  24400. /**
  24401. * 获取指定 URL 的文件夹路径(不包括文件名)。
  24402. * <p><b>注意:</b>末尾有斜杠(/)。</p>
  24403. * @param url url地址。
  24404. * @return 返回文件夹路径。
  24405. */
  24406. static getPath(url:string):string;
  24407. /**
  24408. * 获取指定 URL 的文件名。
  24409. * @param url 地址。
  24410. * @return 返回文件名。
  24411. */
  24412. static getFileName(url:string):string;
  24413. /**
  24414. * @private
  24415. */
  24416. private static _adpteTypeList:any;
  24417. /**
  24418. * @private 兼容微信
  24419. */
  24420. static getAdptedFilePath(url:string):string;
  24421. }
  24422. }
  24423. declare module laya.net {
  24424. /**
  24425. * @private Worker Image加载器
  24426. */
  24427. class WorkerLoader extends laya.events.EventDispatcher {
  24428. /**
  24429. * 单例
  24430. */
  24431. static I:WorkerLoader;
  24432. /**
  24433. * worker.js的路径
  24434. */
  24435. static workerPath:string;
  24436. /**
  24437. * @private
  24438. */
  24439. private static _preLoadFun:any;
  24440. /**
  24441. * @private
  24442. */
  24443. private static _enable:any;
  24444. /**
  24445. * @private
  24446. */
  24447. private static _tryEnabled:any;
  24448. /**
  24449. * 使用的Worker对象。
  24450. */
  24451. worker:Worker;
  24452. /**
  24453. * @private
  24454. */
  24455. protected _useWorkerLoader:boolean;
  24456. constructor();
  24457. /**
  24458. * 是否支持worker
  24459. * @return 是否支持worker
  24460. */
  24461. static workerSupported():boolean;
  24462. /**
  24463. * 尝试启用WorkerLoader,只有第一次调用有效
  24464. */
  24465. static enableWorkerLoader():void;
  24466. /**
  24467. * 是否启用。
  24468. */
  24469. static set enable(value:boolean);
  24470. static get enable():boolean;
  24471. /**
  24472. * @private
  24473. */
  24474. private workerMessage:any;
  24475. /**
  24476. * @private
  24477. */
  24478. private imageLoaded:any;
  24479. /**
  24480. * 加载图片
  24481. * @param url 图片地址
  24482. */
  24483. loadImage(url:string):void;
  24484. /**
  24485. * @private 加载图片资源。
  24486. * @param url 资源地址。
  24487. */
  24488. protected _loadImage(url:string):void;
  24489. }
  24490. }
  24491. declare module laya.particle.emitter {
  24492. /**
  24493. * @private
  24494. */
  24495. class Emitter2D extends laya.particle.emitter.EmitterBase {
  24496. setting:laya.particle.ParticleSetting;
  24497. private _posRange:any;
  24498. private _canvasTemplate:any;
  24499. private _emitFun:any;
  24500. constructor(_template:laya.particle.ParticleTemplateBase);
  24501. set template(template:laya.particle.ParticleTemplateBase);
  24502. get template():laya.particle.ParticleTemplateBase;
  24503. /**
  24504. * @override
  24505. */
  24506. emit():void;
  24507. getRandom(value:number):number;
  24508. webGLEmit():void;
  24509. canvasEmit():void;
  24510. }
  24511. }
  24512. declare module laya.particle.emitter {
  24513. /**
  24514. * <code>EmitterBase</code> 类是粒子发射器类
  24515. */
  24516. class EmitterBase {
  24517. /**
  24518. * 积累的帧时间
  24519. */
  24520. protected _frameTime:number;
  24521. /**
  24522. * 粒子发射速率
  24523. */
  24524. protected _emissionRate:number;
  24525. /**
  24526. * 当前剩余发射时间
  24527. */
  24528. protected _emissionTime:number;
  24529. /**
  24530. * 发射粒子最小时间间隔
  24531. */
  24532. minEmissionTime:number;
  24533. /**
  24534. * 设置粒子粒子模板
  24535. * @param particleTemplate 粒子模板
  24536. */
  24537. set particleTemplate(particleTemplate:laya.particle.ParticleTemplateBase);
  24538. /**
  24539. * 设置粒子发射速率
  24540. * @param emissionRate 粒子发射速率 (个/秒)
  24541. */
  24542. set emissionRate(_emissionRate:number);
  24543. /**
  24544. * 获取粒子发射速率
  24545. * @return 发射速率 粒子发射速率 (个/秒)
  24546. */
  24547. get emissionRate():number;
  24548. /**
  24549. * 开始发射粒子
  24550. * @param duration 发射持续的时间(秒)
  24551. */
  24552. start(duration?:number):void;
  24553. /**
  24554. * 停止发射粒子
  24555. * @param clearParticles 是否清理当前的粒子
  24556. */
  24557. stop():void;
  24558. /**
  24559. * 清理当前的活跃粒子
  24560. * @param clearTexture 是否清理贴图数据,若清除贴图数据将无法再播放
  24561. */
  24562. clear():void;
  24563. /**
  24564. * 发射一个粒子
  24565. */
  24566. emit():void;
  24567. /**
  24568. * 时钟前进
  24569. * @param passedTime 前进时间
  24570. */
  24571. advanceTime(passedTime?:number):void;
  24572. }
  24573. }
  24574. declare module laya.particle {
  24575. /**
  24576. * <code>Particle2D</code> 类是2D粒子播放类
  24577. */
  24578. class Particle2D extends laya.display.Sprite {
  24579. /**
  24580. * @private
  24581. */
  24582. private _matrix4:any;
  24583. /**
  24584. * @private
  24585. */
  24586. private _particleTemplate:any;
  24587. /**
  24588. * @private
  24589. */
  24590. private _canvasTemplate:any;
  24591. /**
  24592. * @private
  24593. */
  24594. private _emitter:any;
  24595. /**
  24596. * 是否自动播放
  24597. */
  24598. autoPlay:boolean;
  24599. tempCmd:any;
  24600. /**
  24601. * 创建一个新的 <code>Particle2D</code> 类实例。
  24602. * @param setting 粒子配置数据
  24603. */
  24604. constructor(setting:laya.particle.ParticleSetting);
  24605. /**
  24606. * 设置 粒子文件地址
  24607. * @param path 粒子文件地址
  24608. */
  24609. set url(url:string);
  24610. /**
  24611. * 加载粒子文件
  24612. * @param url 粒子文件地址
  24613. */
  24614. load(url:string):void;
  24615. /**
  24616. * 设置粒子配置数据
  24617. * @param settings 粒子配置数据
  24618. */
  24619. setParticleSetting(setting:laya.particle.ParticleSetting):void;
  24620. /**
  24621. * 获取粒子发射器
  24622. */
  24623. get emitter():laya.particle.emitter.EmitterBase;
  24624. /**
  24625. * 播放
  24626. */
  24627. play():void;
  24628. /**
  24629. * 停止
  24630. */
  24631. stop():void;
  24632. /**
  24633. * @private
  24634. */
  24635. private _loop:any;
  24636. /**
  24637. * 时钟前进
  24638. * @param passedTime 时钟前进时间
  24639. */
  24640. advanceTime(passedTime?:number):void;
  24641. /**
  24642. * @param context
  24643. * @param x
  24644. * @param y
  24645. * @override
  24646. */
  24647. customRender(context:laya.resource.Context,x:number,y:number):void;
  24648. /**
  24649. * @param destroyChild
  24650. * @override
  24651. */
  24652. destroy(destroyChild?:boolean):void;
  24653. }
  24654. }
  24655. declare module laya.particle {
  24656. /**
  24657. * @private
  24658. */
  24659. class ParticleData {
  24660. private static _tempVelocity:any;
  24661. private static _tempStartColor:any;
  24662. private static _tempEndColor:any;
  24663. private static _tempSizeRotation:any;
  24664. private static _tempRadius:any;
  24665. private static _tempRadian:any;
  24666. position:Float32Array;
  24667. velocity:Float32Array;
  24668. startColor:Float32Array;
  24669. endColor:Float32Array;
  24670. sizeRotation:Float32Array;
  24671. radius:Float32Array;
  24672. radian:Float32Array;
  24673. durationAddScale:number;
  24674. time:number;
  24675. constructor();
  24676. static Create(settings:laya.particle.ParticleSetting,position:Float32Array,velocity:Float32Array,time:number):ParticleData;
  24677. }
  24678. }
  24679. declare module laya.particle {
  24680. /**
  24681. * @private
  24682. */
  24683. class ParticleEmitter {
  24684. private _templet:any;
  24685. private _timeBetweenParticles:any;
  24686. private _previousPosition:any;
  24687. private _timeLeftOver:any;
  24688. private _tempVelocity:any;
  24689. private _tempPosition:any;
  24690. constructor(templet:laya.particle.ParticleTemplateBase,particlesPerSecond:number,initialPosition:Float32Array);
  24691. update(elapsedTime:number,newPosition:Float32Array):void;
  24692. }
  24693. }
  24694. declare module laya.particle {
  24695. /**
  24696. * <code>ParticleSettings</code> 类是粒子配置数据类
  24697. */
  24698. class ParticleSetting {
  24699. /**
  24700. * 贴图
  24701. */
  24702. textureName:string;
  24703. /**
  24704. * 贴图个数,默认为1可不设置
  24705. */
  24706. textureCount:number;
  24707. /**
  24708. * 由于循环队列判断算法,最大饱和粒子数为maxPartices-1
  24709. */
  24710. maxPartices:number;
  24711. /**
  24712. * 粒子持续时间(单位:秒)
  24713. */
  24714. duration:number;
  24715. /**
  24716. * 如果大于0,某些粒子的持续时间会小于其他粒子,并具有随机性(单位:无)
  24717. */
  24718. ageAddScale:number;
  24719. /**
  24720. * 粒子受发射器速度的敏感度(需在自定义发射器中编码设置)
  24721. */
  24722. emitterVelocitySensitivity:number;
  24723. /**
  24724. * 最小开始尺寸(单位:2D像素、3D坐标)
  24725. */
  24726. minStartSize:number;
  24727. /**
  24728. * 最大开始尺寸(单位:2D像素、3D坐标)
  24729. */
  24730. maxStartSize:number;
  24731. /**
  24732. * 最小结束尺寸(单位:2D像素、3D坐标)
  24733. */
  24734. minEndSize:number;
  24735. /**
  24736. * 最大结束尺寸(单位:2D像素、3D坐标)
  24737. */
  24738. maxEndSize:number;
  24739. /**
  24740. * 最小水平速度(单位:2D像素、3D坐标)
  24741. */
  24742. minHorizontalVelocity:number;
  24743. /**
  24744. * 最大水平速度(单位:2D像素、3D坐标)
  24745. */
  24746. maxHorizontalVelocity:number;
  24747. /**
  24748. * 最小垂直速度(单位:2D像素、3D坐标)
  24749. */
  24750. minVerticalVelocity:number;
  24751. /**
  24752. * 最大垂直速度(单位:2D像素、3D坐标)
  24753. */
  24754. maxVerticalVelocity:number;
  24755. /**
  24756. * 等于1时粒子从出生到消亡保持一致的速度,等于0时粒子消亡时速度为0,大于1时粒子会保持加速(单位:无)
  24757. */
  24758. endVelocity:number;
  24759. /**
  24760. * (单位:2D像素、3D坐标)
  24761. */
  24762. gravity:Float32Array;
  24763. /**
  24764. * 最小旋转速度(单位:2D弧度/秒、3D弧度/秒)
  24765. */
  24766. minRotateSpeed:number;
  24767. /**
  24768. * 最大旋转速度(单位:2D弧度/秒、3D弧度/秒)
  24769. */
  24770. maxRotateSpeed:number;
  24771. /**
  24772. * 最小开始半径(单位:2D像素、3D坐标)
  24773. */
  24774. minStartRadius:number;
  24775. /**
  24776. * 最大开始半径(单位:2D像素、3D坐标)
  24777. */
  24778. maxStartRadius:number;
  24779. /**
  24780. * 最小结束半径(单位:2D像素、3D坐标)
  24781. */
  24782. minEndRadius:number;
  24783. /**
  24784. * 最大结束半径(单位:2D像素、3D坐标)
  24785. */
  24786. maxEndRadius:number;
  24787. /**
  24788. * 最小水平开始弧度(单位:2D弧度、3D弧度)
  24789. */
  24790. minHorizontalStartRadian:number;
  24791. /**
  24792. * 最大水平开始弧度(单位:2D弧度、3D弧度)
  24793. */
  24794. maxHorizontalStartRadian:number;
  24795. /**
  24796. * 最小垂直开始弧度(单位:2D弧度、3D弧度)
  24797. */
  24798. minVerticalStartRadian:number;
  24799. /**
  24800. * 最大垂直开始弧度(单位:2D弧度、3D弧度)
  24801. */
  24802. maxVerticalStartRadian:number;
  24803. /**
  24804. * 是否使用结束弧度,false为结束时与起始弧度保持一致,true为根据minHorizontalEndRadian、maxHorizontalEndRadian、minVerticalEndRadian、maxVerticalEndRadian计算结束弧度。
  24805. */
  24806. useEndRadian:boolean;
  24807. /**
  24808. * 最小水平结束弧度(单位:2D弧度、3D弧度)
  24809. */
  24810. minHorizontalEndRadian:number;
  24811. /**
  24812. * 最大水平结束弧度(单位:2D弧度、3D弧度)
  24813. */
  24814. maxHorizontalEndRadian:number;
  24815. /**
  24816. * 最小垂直结束弧度(单位:2D弧度、3D弧度)
  24817. */
  24818. minVerticalEndRadian:number;
  24819. /**
  24820. * 最大垂直结束弧度(单位:2D弧度、3D弧度)
  24821. */
  24822. maxVerticalEndRadian:number;
  24823. /**
  24824. * 最小开始颜色
  24825. */
  24826. minStartColor:Float32Array;
  24827. /**
  24828. * 最大开始颜色
  24829. */
  24830. maxStartColor:Float32Array;
  24831. /**
  24832. * 最小结束颜色
  24833. */
  24834. minEndColor:Float32Array;
  24835. /**
  24836. * 最大结束颜色
  24837. */
  24838. maxEndColor:Float32Array;
  24839. /**
  24840. * false代表RGBA整体插值,true代表RGBA逐分量插值
  24841. */
  24842. colorComponentInter:boolean;
  24843. /**
  24844. * false代表使用参数颜色数据,true代表使用原图颜色数据
  24845. */
  24846. disableColor:boolean;
  24847. /**
  24848. * 混合模式,待调整,引擎中暂无BlendState抽象
  24849. */
  24850. blendState:number;
  24851. /**
  24852. * 发射器类型,"point","box","sphere","ring"
  24853. */
  24854. emitterType:string;
  24855. /**
  24856. * 发射器发射速率
  24857. */
  24858. emissionRate:number;
  24859. /**
  24860. * 点发射器位置
  24861. */
  24862. pointEmitterPosition:Float32Array;
  24863. /**
  24864. * 点发射器位置随机值
  24865. */
  24866. pointEmitterPositionVariance:Float32Array;
  24867. /**
  24868. * 点发射器速度
  24869. */
  24870. pointEmitterVelocity:Float32Array;
  24871. /**
  24872. * 点发射器速度随机值
  24873. */
  24874. pointEmitterVelocityAddVariance:Float32Array;
  24875. /**
  24876. * 盒发射器中心位置
  24877. */
  24878. boxEmitterCenterPosition:Float32Array;
  24879. /**
  24880. * 盒发射器尺寸
  24881. */
  24882. boxEmitterSize:Float32Array;
  24883. /**
  24884. * 盒发射器速度
  24885. */
  24886. boxEmitterVelocity:Float32Array;
  24887. /**
  24888. * 盒发射器速度随机值
  24889. */
  24890. boxEmitterVelocityAddVariance:Float32Array;
  24891. /**
  24892. * 球发射器中心位置
  24893. */
  24894. sphereEmitterCenterPosition:Float32Array;
  24895. /**
  24896. * 球发射器半径
  24897. */
  24898. sphereEmitterRadius:number;
  24899. /**
  24900. * 球发射器速度
  24901. */
  24902. sphereEmitterVelocity:number;
  24903. /**
  24904. * 球发射器速度随机值
  24905. */
  24906. sphereEmitterVelocityAddVariance:number;
  24907. /**
  24908. * 环发射器中心位置
  24909. */
  24910. ringEmitterCenterPosition:Float32Array;
  24911. /**
  24912. * 环发射器半径
  24913. */
  24914. ringEmitterRadius:number;
  24915. /**
  24916. * 环发射器速度
  24917. */
  24918. ringEmitterVelocity:number;
  24919. /**
  24920. * 环发射器速度随机值
  24921. */
  24922. ringEmitterVelocityAddVariance:number;
  24923. /**
  24924. * 环发射器up向量,0代表X轴,1代表Y轴,2代表Z轴
  24925. */
  24926. ringEmitterUp:number;
  24927. /**
  24928. * 发射器位置随机值,2D使用
  24929. */
  24930. positionVariance:Float32Array;
  24931. /**
  24932. * 创建一个新的 <code>ParticleSettings</code> 类实例。
  24933. */
  24934. constructor();
  24935. private static _defaultSetting:any;
  24936. static checkSetting(setting:any):void;
  24937. }
  24938. }
  24939. declare module laya.particle {
  24940. /**
  24941. * <code>ParticleTemplateBase</code> 类是粒子模板基类
  24942. */
  24943. class ParticleTemplateBase {
  24944. /**
  24945. * 粒子配置数据
  24946. */
  24947. settings:laya.particle.ParticleSetting;
  24948. /**
  24949. * 粒子贴图
  24950. */
  24951. protected texture:laya.resource.Texture;
  24952. /**
  24953. * 创建一个新的 <code>ParticleTemplateBase</code> 类实例。
  24954. */
  24955. constructor();
  24956. /**
  24957. * 添加一个粒子
  24958. * @param position 粒子位置
  24959. * @param velocity 粒子速度
  24960. */
  24961. addParticleArray(position:Float32Array,velocity:Float32Array):void;
  24962. }
  24963. }
  24964. declare module laya.particle {
  24965. /**
  24966. * @private
  24967. */
  24968. class ParticleTemplateWebGL extends laya.particle.ParticleTemplateBase {
  24969. protected _vertices:Float32Array;
  24970. protected _mesh:laya.webgl.utils.MeshParticle2D;
  24971. protected _conchMesh:any;
  24972. protected _floatCountPerVertex:number;
  24973. protected _firstActiveElement:number;
  24974. protected _firstNewElement:number;
  24975. protected _firstFreeElement:number;
  24976. protected _firstRetiredElement:number;
  24977. protected _drawCounter:number;
  24978. constructor(parSetting:laya.particle.ParticleSetting);
  24979. reUse(context:laya.resource.Context,pos:number):number;
  24980. protected initialize():void;
  24981. update(elapsedTime:number):void;
  24982. private retireActiveParticles:any;
  24983. private freeRetiredParticles:any;
  24984. addNewParticlesToVertexBuffer():void;
  24985. /**
  24986. * @param position
  24987. * @param velocity
  24988. * @override
  24989. */
  24990. addParticleArray(position:Float32Array,velocity:Float32Array):void;
  24991. }
  24992. }
  24993. declare module laya.particle.shader {
  24994. /**
  24995. * @private
  24996. */
  24997. class ParticleShader extends laya.webgl.shader.Shader {
  24998. static vs:string;
  24999. static ps:string;
  25000. constructor();
  25001. }
  25002. }
  25003. declare module laya.physics {
  25004. /**
  25005. * 2D矩形碰撞体
  25006. */
  25007. class BoxCollider extends laya.physics.ColliderBase {
  25008. /**
  25009. * 相对节点的x轴偏移
  25010. */
  25011. private _x:any;
  25012. /**
  25013. * 相对节点的y轴偏移
  25014. */
  25015. private _y:any;
  25016. /**
  25017. * 矩形宽度
  25018. */
  25019. private _width:any;
  25020. /**
  25021. * 矩形高度
  25022. */
  25023. private _height:any;
  25024. /**
  25025. * @override
  25026. */
  25027. protected getDef():any;
  25028. private _setShape:any;
  25029. /**
  25030. * 相对节点的x轴偏移
  25031. */
  25032. get x():number;
  25033. set x(value:number);
  25034. /**
  25035. * 相对节点的y轴偏移
  25036. */
  25037. get y():number;
  25038. set y(value:number);
  25039. /**
  25040. * 矩形宽度
  25041. */
  25042. get width():number;
  25043. set width(value:number);
  25044. /**
  25045. * 矩形高度
  25046. */
  25047. get height():number;
  25048. set height(value:number);
  25049. /**
  25050. * @private 重置形状
  25051. * @override
  25052. */
  25053. resetShape(re?:boolean):void;
  25054. }
  25055. }
  25056. declare module laya.physics {
  25057. /**
  25058. * 2D线形碰撞体
  25059. */
  25060. class ChainCollider extends laya.physics.ColliderBase {
  25061. /**
  25062. * 相对节点的x轴偏移
  25063. */
  25064. private _x:any;
  25065. /**
  25066. * 相对节点的y轴偏移
  25067. */
  25068. private _y:any;
  25069. /**
  25070. * 用逗号隔开的点的集合,格式:x,y,x,y ...
  25071. */
  25072. private _points:any;
  25073. /**
  25074. * 是否是闭环,注意不要有自相交的链接形状,它可能不能正常工作
  25075. */
  25076. private _loop:any;
  25077. /**
  25078. * @override
  25079. */
  25080. protected getDef():any;
  25081. private _setShape:any;
  25082. /**
  25083. * 相对节点的x轴偏移
  25084. */
  25085. get x():number;
  25086. set x(value:number);
  25087. /**
  25088. * 相对节点的y轴偏移
  25089. */
  25090. get y():number;
  25091. set y(value:number);
  25092. /**
  25093. * 用逗号隔开的点的集合,格式:x,y,x,y ...
  25094. */
  25095. get points():string;
  25096. set points(value:string);
  25097. /**
  25098. * 是否是闭环,注意不要有自相交的链接形状,它可能不能正常工作
  25099. */
  25100. get loop():boolean;
  25101. set loop(value:boolean);
  25102. }
  25103. }
  25104. declare module laya.physics {
  25105. /**
  25106. * 2D圆形碰撞体
  25107. */
  25108. class CircleCollider extends laya.physics.ColliderBase {
  25109. /**
  25110. * @private
  25111. */
  25112. private static _temp:any;
  25113. /**
  25114. * 相对节点的x轴偏移
  25115. */
  25116. private _x:any;
  25117. /**
  25118. * 相对节点的y轴偏移
  25119. */
  25120. private _y:any;
  25121. /**
  25122. * 圆形半径,必须为正数
  25123. */
  25124. private _radius:any;
  25125. /**
  25126. * @override
  25127. */
  25128. protected getDef():any;
  25129. private _setShape:any;
  25130. /**
  25131. * 相对节点的x轴偏移
  25132. */
  25133. get x():number;
  25134. set x(value:number);
  25135. /**
  25136. * 相对节点的y轴偏移
  25137. */
  25138. get y():number;
  25139. set y(value:number);
  25140. /**
  25141. * 圆形半径,必须为正数
  25142. */
  25143. get radius():number;
  25144. set radius(value:number);
  25145. /**
  25146. * @private 重置形状
  25147. * @override
  25148. */
  25149. resetShape(re?:boolean):void;
  25150. }
  25151. }
  25152. declare module laya.physics {
  25153. /**
  25154. * 碰撞体基类
  25155. */
  25156. class ColliderBase extends laya.components.Component {
  25157. /**
  25158. * 是否是传感器,传感器能够触发碰撞事件,但不会产生碰撞反应
  25159. */
  25160. private _isSensor:any;
  25161. /**
  25162. * 密度值,值可以为零或者是正数,建议使用相似的密度,这样做可以改善堆叠稳定性,默认值为10
  25163. */
  25164. private _density:any;
  25165. /**
  25166. * 摩擦力,取值范围0-1,值越大,摩擦越大,默认值为0.2
  25167. */
  25168. private _friction:any;
  25169. /**
  25170. * 弹性系数,取值范围0-1,值越大,弹性越大,默认值为0
  25171. */
  25172. private _restitution:any;
  25173. /**
  25174. * 标签
  25175. */
  25176. label:string;
  25177. /**
  25178. * @private b2Shape对象
  25179. */
  25180. protected _shape:any;
  25181. /**
  25182. * @private b2FixtureDef对象
  25183. */
  25184. protected _def:any;
  25185. /**
  25186. * [只读]b2Fixture对象
  25187. */
  25188. fixture:any;
  25189. /**
  25190. * [只读]刚体引用
  25191. */
  25192. rigidBody:laya.physics.RigidBody;
  25193. /**
  25194. * @private 获取碰撞体信息
  25195. */
  25196. protected getDef():any;
  25197. private _checkRigidBody:any;
  25198. /**
  25199. * 是否是传感器,传感器能够触发碰撞事件,但不会产生碰撞反应
  25200. */
  25201. get isSensor():boolean;
  25202. set isSensor(value:boolean);
  25203. /**
  25204. * 密度值,值可以为零或者是正数,建议使用相似的密度,这样做可以改善堆叠稳定性,默认值为10
  25205. */
  25206. get density():number;
  25207. set density(value:number);
  25208. /**
  25209. * 摩擦力,取值范围0-1,值越大,摩擦越大,默认值为0.2
  25210. */
  25211. get friction():number;
  25212. set friction(value:number);
  25213. /**
  25214. * 弹性系数,取值范围0-1,值越大,弹性越大,默认值为0
  25215. */
  25216. get restitution():number;
  25217. set restitution(value:number);
  25218. /**
  25219. * @private 碰撞体参数发生变化后,刷新物理世界碰撞信息
  25220. */
  25221. refresh():void;
  25222. /**
  25223. * @private 重置形状
  25224. */
  25225. resetShape(re?:boolean):void;
  25226. /**
  25227. * 获取是否为单实例组件。
  25228. * @override
  25229. */
  25230. get isSingleton():boolean;
  25231. }
  25232. }
  25233. declare module laya.physics {
  25234. /**
  25235. * JS实现Box2D SayGoodbyeParticle
  25236. * 相关类型对象被隐性移除时触发对应的SayGoodBye方法
  25237. */
  25238. class DestructionListener {
  25239. /**
  25240. * Joint被隐性移除时触发
  25241. * @param params box2d的Joint相关对象
  25242. */
  25243. SayGoodbyeJoint(params:any):void;
  25244. /**
  25245. * Fixtures被隐性移除时触发
  25246. * @param params box2d的Fixtures相关对象
  25247. */
  25248. SayGoodbyeFixture(params:any):void;
  25249. /**
  25250. * ParticleGroup被隐性移除时触发
  25251. * @param params box2d的ParticleGroup相关对象
  25252. */
  25253. SayGoodbyeParticleGroup(params:any):void;
  25254. /**
  25255. * Particle被隐性移除时触发
  25256. * @param params box2d的Particle相关对象
  25257. */
  25258. SayGoodbyeParticle(params:any):void;
  25259. }
  25260. }
  25261. declare module laya.physics.joint {
  25262. /**
  25263. * 距离关节:两个物体上面各自有一点,两点之间的距离固定不变
  25264. */
  25265. class DistanceJoint extends laya.physics.joint.JointBase {
  25266. /**
  25267. * @private
  25268. */
  25269. private static _temp:any;
  25270. /**
  25271. * [首次设置有效]关节的自身刚体
  25272. */
  25273. selfBody:laya.physics.RigidBody;
  25274. /**
  25275. * [首次设置有效]关节的连接刚体,可不设置,默认为左上角空刚体
  25276. */
  25277. otherBody:laya.physics.RigidBody;
  25278. /**
  25279. * [首次设置有效]自身刚体链接点,是相对于自身刚体的左上角位置偏移
  25280. */
  25281. selfAnchor:any[];
  25282. /**
  25283. * [首次设置有效]链接刚体链接点,是相对于otherBody的左上角位置偏移
  25284. */
  25285. otherAnchor:any[];
  25286. /**
  25287. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  25288. */
  25289. collideConnected:boolean;
  25290. /**
  25291. * 约束的目标静止长度
  25292. */
  25293. private _length:any;
  25294. /**
  25295. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  25296. */
  25297. private _frequency:any;
  25298. /**
  25299. * 刚体在回归到节点过程中受到的阻尼,建议取值0~1
  25300. */
  25301. private _damping:any;
  25302. /**
  25303. * @override
  25304. */
  25305. protected _createJoint():void;
  25306. /**
  25307. * 约束的目标静止长度
  25308. */
  25309. get length():number;
  25310. set length(value:number);
  25311. /**
  25312. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  25313. */
  25314. get frequency():number;
  25315. set frequency(value:number);
  25316. /**
  25317. * 刚体在回归到节点过程中受到的阻尼,建议取值0~1
  25318. */
  25319. get damping():number;
  25320. set damping(value:number);
  25321. }
  25322. }
  25323. declare module laya.physics.joint {
  25324. /**
  25325. * 齿轮关节:用来模拟两个齿轮间的约束关系,齿轮旋转时,产生的动量有两种输出方式,一种是齿轮本身的角速度,另一种是齿轮表面的线速度
  25326. */
  25327. class GearJoint extends laya.physics.joint.JointBase {
  25328. /**
  25329. * @private
  25330. */
  25331. private static _temp:any;
  25332. /**
  25333. * [首次设置有效]要绑定的第1个关节,类型可以是RevoluteJoint或者PrismaticJoint
  25334. */
  25335. joint1:any;
  25336. /**
  25337. * [首次设置有效]要绑定的第2个关节,类型可以是RevoluteJoint或者PrismaticJoint
  25338. */
  25339. joint2:any;
  25340. /**
  25341. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  25342. */
  25343. collideConnected:boolean;
  25344. /**
  25345. * 两个齿轮角速度比例,默认1
  25346. */
  25347. private _ratio:any;
  25348. /**
  25349. * @override
  25350. */
  25351. protected _createJoint():void;
  25352. /**
  25353. * 两个齿轮角速度比例,默认1
  25354. */
  25355. get ratio():number;
  25356. set ratio(value:number);
  25357. }
  25358. }
  25359. declare module laya.physics.joint {
  25360. /**
  25361. * 关节基类
  25362. */
  25363. class JointBase extends laya.components.Component {
  25364. /**
  25365. * 原生关节对象
  25366. */
  25367. protected _joint:any;
  25368. /**
  25369. * [只读]原生关节对象
  25370. */
  25371. get joint():any;
  25372. protected _createJoint():void;
  25373. }
  25374. }
  25375. declare module laya.physics.joint {
  25376. /**
  25377. * 马达关节:用来限制两个刚体,使其相对位置和角度保持不变
  25378. */
  25379. class MotorJoint extends laya.physics.joint.JointBase {
  25380. /**
  25381. * @private
  25382. */
  25383. private static _temp:any;
  25384. /**
  25385. * [首次设置有效]关节的自身刚体
  25386. */
  25387. selfBody:laya.physics.RigidBody;
  25388. /**
  25389. * [首次设置有效]关节的连接刚体
  25390. */
  25391. otherBody:laya.physics.RigidBody;
  25392. /**
  25393. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  25394. */
  25395. collideConnected:boolean;
  25396. /**
  25397. * 基于otherBody坐标位置的偏移量,也是selfBody的目标位置
  25398. */
  25399. private _linearOffset:any;
  25400. /**
  25401. * 基于otherBody的角度偏移量,也是selfBody的目标角度
  25402. */
  25403. private _angularOffset:any;
  25404. /**
  25405. * 当selfBody偏离目标位置时,为使其恢复到目标位置,马达关节所施加的最大作用力
  25406. */
  25407. private _maxForce:any;
  25408. /**
  25409. * 当selfBody角度与目标角度不同时,为使其达到目标角度,马达关节施加的最大扭力
  25410. */
  25411. private _maxTorque:any;
  25412. /**
  25413. * selfBody向目标位置移动时的缓动因子,取值0~1,值越大速度越快
  25414. */
  25415. private _correctionFactor:any;
  25416. /**
  25417. * @override
  25418. */
  25419. protected _createJoint():void;
  25420. /**
  25421. * 基于otherBody坐标位置的偏移量,也是selfBody的目标位置
  25422. */
  25423. get linearOffset():any[];
  25424. set linearOffset(value:any[]);
  25425. /**
  25426. * 基于otherBody的角度偏移量,也是selfBody的目标角度
  25427. */
  25428. get angularOffset():number;
  25429. set angularOffset(value:number);
  25430. /**
  25431. * 当selfBody偏离目标位置时,为使其恢复到目标位置,马达关节所施加的最大作用力
  25432. */
  25433. get maxForce():number;
  25434. set maxForce(value:number);
  25435. /**
  25436. * 当selfBody角度与目标角度不同时,为使其达到目标角度,马达关节施加的最大扭力
  25437. */
  25438. get maxTorque():number;
  25439. set maxTorque(value:number);
  25440. /**
  25441. * selfBody向目标位置移动时的缓动因子,取值0~1,值越大速度越快
  25442. */
  25443. get correctionFactor():number;
  25444. set correctionFactor(value:number);
  25445. }
  25446. }
  25447. declare module laya.physics.joint {
  25448. /**
  25449. * 鼠标关节:鼠标关节用于通过鼠标来操控物体。它试图将物体拖向当前鼠标光标的位置。而在旋转方面就没有限制。
  25450. */
  25451. class MouseJoint extends laya.physics.joint.JointBase {
  25452. /**
  25453. * @private
  25454. */
  25455. private static _temp:any;
  25456. /**
  25457. * [首次设置有效]关节的自身刚体
  25458. */
  25459. selfBody:laya.physics.RigidBody;
  25460. /**
  25461. * [首次设置有效]关节的链接点,是相对于自身刚体的左上角位置偏移,如果不设置,则根据鼠标点击点作为连接点
  25462. */
  25463. anchor:any[];
  25464. /**
  25465. * 鼠标关节在拖曳刚体bodyB时施加的最大作用力
  25466. */
  25467. private _maxForce:any;
  25468. /**
  25469. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  25470. */
  25471. private _frequency:any;
  25472. /**
  25473. * 刚体在回归到节点过程中受到的阻尼,取值0~1
  25474. */
  25475. private _damping:any;
  25476. private onMouseDown:any;
  25477. /**
  25478. * @override
  25479. */
  25480. protected _createJoint():void;
  25481. private onStageMouseUp:any;
  25482. private onMouseMove:any;
  25483. /**
  25484. * 鼠标关节在拖曳刚体bodyB时施加的最大作用力
  25485. */
  25486. get maxForce():number;
  25487. set maxForce(value:number);
  25488. /**
  25489. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  25490. */
  25491. get frequency():number;
  25492. set frequency(value:number);
  25493. /**
  25494. * 刚体在回归到节点过程中受到的阻尼,取值0~1
  25495. */
  25496. get damping():number;
  25497. set damping(value:number);
  25498. }
  25499. }
  25500. declare module laya.physics.joint {
  25501. /**
  25502. * 平移关节:移动关节允许两个物体沿指定轴相对移动,它会阻止相对旋转
  25503. */
  25504. class PrismaticJoint extends laya.physics.joint.JointBase {
  25505. /**
  25506. * @private
  25507. */
  25508. private static _temp:any;
  25509. /**
  25510. * [首次设置有效]关节的自身刚体
  25511. */
  25512. selfBody:laya.physics.RigidBody;
  25513. /**
  25514. * [首次设置有效]关节的连接刚体,可不设置,默认为左上角空刚体
  25515. */
  25516. otherBody:laya.physics.RigidBody;
  25517. /**
  25518. * [首次设置有效]关节的控制点,是相对于自身刚体的左上角位置偏移
  25519. */
  25520. anchor:any[];
  25521. /**
  25522. * [首次设置有效]一个向量值,描述运动方向,比如1,0是沿X轴向右
  25523. */
  25524. axis:any[];
  25525. /**
  25526. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  25527. */
  25528. collideConnected:boolean;
  25529. /**
  25530. * 是否开启马达,开启马达可使目标刚体运动
  25531. */
  25532. private _enableMotor:any;
  25533. /**
  25534. * 启用马达后,在axis坐标轴上移动可以达到的最大速度
  25535. */
  25536. private _motorSpeed:any;
  25537. /**
  25538. * 启用马达后,可以施加的最大作用力
  25539. */
  25540. private _maxMotorForce:any;
  25541. /**
  25542. * 是否对刚体的移动范围加以约束
  25543. */
  25544. private _enableLimit:any;
  25545. /**
  25546. * 启用约束后,刚体移动范围的下限,是距离anchor的偏移量
  25547. */
  25548. private _lowerTranslation:any;
  25549. /**
  25550. * 启用约束后,刚体移动范围的上限,是距离anchor的偏移量
  25551. */
  25552. private _upperTranslation:any;
  25553. /**
  25554. * @override
  25555. */
  25556. protected _createJoint():void;
  25557. /**
  25558. * 是否开启马达,开启马达可使目标刚体运动
  25559. */
  25560. get enableMotor():boolean;
  25561. set enableMotor(value:boolean);
  25562. /**
  25563. * 启用马达后,在axis坐标轴上移动可以达到的最大速度
  25564. */
  25565. get motorSpeed():number;
  25566. set motorSpeed(value:number);
  25567. /**
  25568. * 启用马达后,可以施加的最大作用力
  25569. */
  25570. get maxMotorForce():number;
  25571. set maxMotorForce(value:number);
  25572. /**
  25573. * 是否对刚体的移动范围加以约束
  25574. */
  25575. get enableLimit():boolean;
  25576. set enableLimit(value:boolean);
  25577. /**
  25578. * 启用约束后,刚体移动范围的下限,是距离anchor的偏移量
  25579. */
  25580. get lowerTranslation():number;
  25581. set lowerTranslation(value:number);
  25582. /**
  25583. * 启用约束后,刚体移动范围的上限,是距离anchor的偏移量
  25584. */
  25585. get upperTranslation():number;
  25586. set upperTranslation(value:number);
  25587. }
  25588. }
  25589. declare module laya.physics.joint {
  25590. /**
  25591. * 滑轮关节:它将两个物体接地(ground)并彼此连接,当一个物体上升,另一个物体就会下降
  25592. */
  25593. class PulleyJoint extends laya.physics.joint.JointBase {
  25594. /**
  25595. * @private
  25596. */
  25597. private static _temp:any;
  25598. /**
  25599. * [首次设置有效]关节的自身刚体
  25600. */
  25601. selfBody:laya.physics.RigidBody;
  25602. /**
  25603. * [首次设置有效]关节的连接刚体
  25604. */
  25605. otherBody:laya.physics.RigidBody;
  25606. /**
  25607. * [首次设置有效]自身刚体链接点,是相对于自身刚体的左上角位置偏移
  25608. */
  25609. selfAnchor:any[];
  25610. /**
  25611. * [首次设置有效]链接刚体链接点,是相对于otherBody的左上角位置偏移
  25612. */
  25613. otherAnchor:any[];
  25614. /**
  25615. * [首次设置有效]滑轮上与节点selfAnchor相连接的节点,是相对于自身刚体的左上角位置偏移
  25616. */
  25617. selfGroundPoint:any[];
  25618. /**
  25619. * [首次设置有效]滑轮上与节点otherAnchor相连接的节点,是相对于otherBody的左上角位置偏移
  25620. */
  25621. otherGroundPoint:any[];
  25622. /**
  25623. * [首次设置有效]两刚体移动距离比率
  25624. */
  25625. ratio:number;
  25626. /**
  25627. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  25628. */
  25629. collideConnected:boolean;
  25630. /**
  25631. * @override
  25632. */
  25633. protected _createJoint():void;
  25634. }
  25635. }
  25636. declare module laya.physics.joint {
  25637. /**
  25638. * 旋转关节强制两个物体共享一个锚点,两个物体相对旋转
  25639. */
  25640. class RevoluteJoint extends laya.physics.joint.JointBase {
  25641. /**
  25642. * @private
  25643. */
  25644. private static _temp:any;
  25645. /**
  25646. * [首次设置有效]关节的自身刚体
  25647. */
  25648. selfBody:laya.physics.RigidBody;
  25649. /**
  25650. * [首次设置有效]关节的连接刚体,可不设置
  25651. */
  25652. otherBody:laya.physics.RigidBody;
  25653. /**
  25654. * [首次设置有效]关节的链接点,是相对于自身刚体的左上角位置偏移
  25655. */
  25656. anchor:any[];
  25657. /**
  25658. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  25659. */
  25660. collideConnected:boolean;
  25661. /**
  25662. * 是否开启马达,开启马达可使目标刚体运动
  25663. */
  25664. private _enableMotor:any;
  25665. /**
  25666. * 启用马达后,可以达到的最大旋转速度
  25667. */
  25668. private _motorSpeed:any;
  25669. /**
  25670. * 启用马达后,可以施加的最大扭距,如果最大扭矩太小,会导致不旋转
  25671. */
  25672. private _maxMotorTorque:any;
  25673. /**
  25674. * 是否对刚体的旋转范围加以约束
  25675. */
  25676. private _enableLimit:any;
  25677. /**
  25678. * 启用约束后,刚体旋转范围的下限弧度
  25679. */
  25680. private _lowerAngle:any;
  25681. /**
  25682. * 启用约束后,刚体旋转范围的上限弧度
  25683. */
  25684. private _upperAngle:any;
  25685. /**
  25686. * @override
  25687. */
  25688. protected _createJoint():void;
  25689. /**
  25690. * 是否开启马达,开启马达可使目标刚体运动
  25691. */
  25692. get enableMotor():boolean;
  25693. set enableMotor(value:boolean);
  25694. /**
  25695. * 启用马达后,可以达到的最大旋转速度
  25696. */
  25697. get motorSpeed():number;
  25698. set motorSpeed(value:number);
  25699. /**
  25700. * 启用马达后,可以施加的最大扭距,如果最大扭矩太小,会导致不旋转
  25701. */
  25702. get maxMotorTorque():number;
  25703. set maxMotorTorque(value:number);
  25704. /**
  25705. * 是否对刚体的旋转范围加以约束
  25706. */
  25707. get enableLimit():boolean;
  25708. set enableLimit(value:boolean);
  25709. /**
  25710. * 启用约束后,刚体旋转范围的下限弧度
  25711. */
  25712. get lowerAngle():number;
  25713. set lowerAngle(value:number);
  25714. /**
  25715. * 启用约束后,刚体旋转范围的上限弧度
  25716. */
  25717. get upperAngle():number;
  25718. set upperAngle(value:number);
  25719. }
  25720. }
  25721. declare module laya.physics.joint {
  25722. /**
  25723. * 绳索关节:限制了两个点之间的最大距离。它能够阻止连接的物体之间的拉伸,即使在很大的负载下
  25724. */
  25725. class RopeJoint extends laya.physics.joint.JointBase {
  25726. /**
  25727. * @private
  25728. */
  25729. private static _temp:any;
  25730. /**
  25731. * [首次设置有效]关节的自身刚体
  25732. */
  25733. selfBody:laya.physics.RigidBody;
  25734. /**
  25735. * [首次设置有效]关节的连接刚体,可不设置,默认为左上角空刚体
  25736. */
  25737. otherBody:laya.physics.RigidBody;
  25738. /**
  25739. * [首次设置有效]自身刚体链接点,是相对于自身刚体的左上角位置偏移
  25740. */
  25741. selfAnchor:any[];
  25742. /**
  25743. * [首次设置有效]链接刚体链接点,是相对于otherBody的左上角位置偏移
  25744. */
  25745. otherAnchor:any[];
  25746. /**
  25747. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  25748. */
  25749. collideConnected:boolean;
  25750. /**
  25751. * selfAnchor和otherAnchor之间的最大距离
  25752. */
  25753. private _maxLength:any;
  25754. /**
  25755. * @override
  25756. */
  25757. protected _createJoint():void;
  25758. /**
  25759. * selfAnchor和otherAnchor之间的最大距离
  25760. */
  25761. get maxLength():number;
  25762. set maxLength(value:number);
  25763. }
  25764. }
  25765. declare module laya.physics.joint {
  25766. /**
  25767. * 焊接关节:焊接关节的用途是使两个物体不能相对运动,受到关节的限制,两个刚体的相对位置和角度都保持不变,看上去像一个整体
  25768. */
  25769. class WeldJoint extends laya.physics.joint.JointBase {
  25770. /**
  25771. * @private
  25772. */
  25773. private static _temp:any;
  25774. /**
  25775. * [首次设置有效]关节的自身刚体
  25776. */
  25777. selfBody:laya.physics.RigidBody;
  25778. /**
  25779. * [首次设置有效]关节的连接刚体
  25780. */
  25781. otherBody:laya.physics.RigidBody;
  25782. /**
  25783. * [首次设置有效]关节的链接点,是相对于自身刚体的左上角位置偏移
  25784. */
  25785. anchor:any[];
  25786. /**
  25787. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  25788. */
  25789. collideConnected:boolean;
  25790. /**
  25791. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  25792. */
  25793. private _frequency:any;
  25794. /**
  25795. * 刚体在回归到节点过程中受到的阻尼,取值0~1
  25796. */
  25797. private _damping:any;
  25798. /**
  25799. * @override
  25800. */
  25801. protected _createJoint():void;
  25802. /**
  25803. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  25804. */
  25805. get frequency():number;
  25806. set frequency(value:number);
  25807. /**
  25808. * 刚体在回归到节点过程中受到的阻尼,建议取值0~1
  25809. */
  25810. get damping():number;
  25811. set damping(value:number);
  25812. }
  25813. }
  25814. declare module laya.physics.joint {
  25815. /**
  25816. * 轮子关节:围绕节点旋转,包含弹性属性,使得刚体在节点位置发生弹性偏移
  25817. */
  25818. class WheelJoint extends laya.physics.joint.JointBase {
  25819. /**
  25820. * @private
  25821. */
  25822. private static _temp:any;
  25823. /**
  25824. * [首次设置有效]关节的自身刚体
  25825. */
  25826. selfBody:laya.physics.RigidBody;
  25827. /**
  25828. * [首次设置有效]关节的连接刚体
  25829. */
  25830. otherBody:laya.physics.RigidBody;
  25831. /**
  25832. * [首次设置有效]关节的链接点,是相对于自身刚体的左上角位置偏移
  25833. */
  25834. anchor:any[];
  25835. /**
  25836. * [首次设置有效]两个刚体是否可以发生碰撞,默认为false
  25837. */
  25838. collideConnected:boolean;
  25839. /**
  25840. * [首次设置有效]一个向量值,描述运动方向,比如1,0是沿X轴向右
  25841. */
  25842. axis:any[];
  25843. /**
  25844. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  25845. */
  25846. private _frequency:any;
  25847. /**
  25848. * 刚体在回归到节点过程中受到的阻尼,取值0~1
  25849. */
  25850. private _damping:any;
  25851. /**
  25852. * 是否开启马达,开启马达可使目标刚体运动
  25853. */
  25854. private _enableMotor:any;
  25855. /**
  25856. * 启用马达后,可以达到的最大旋转速度
  25857. */
  25858. private _motorSpeed:any;
  25859. /**
  25860. * 启用马达后,可以施加的最大扭距,如果最大扭矩太小,会导致不旋转
  25861. */
  25862. private _maxMotorTorque:any;
  25863. /**
  25864. * @override
  25865. */
  25866. protected _createJoint():void;
  25867. /**
  25868. * 弹簧系统的震动频率,可以视为弹簧的弹性系数
  25869. */
  25870. get frequency():number;
  25871. set frequency(value:number);
  25872. /**
  25873. * 刚体在回归到节点过程中受到的阻尼,取值0~1
  25874. */
  25875. get damping():number;
  25876. set damping(value:number);
  25877. /**
  25878. * 是否开启马达,开启马达可使目标刚体运动
  25879. */
  25880. get enableMotor():boolean;
  25881. set enableMotor(value:boolean);
  25882. /**
  25883. * 启用马达后,可以达到的最大旋转速度
  25884. */
  25885. get motorSpeed():number;
  25886. set motorSpeed(value:number);
  25887. /**
  25888. * 启用马达后,可以施加的最大扭距,如果最大扭矩太小,会导致不旋转
  25889. */
  25890. get maxMotorTorque():number;
  25891. set maxMotorTorque(value:number);
  25892. }
  25893. }
  25894. declare module laya.physics {
  25895. /**
  25896. * 2D物理引擎,使用Box2d驱动
  25897. */
  25898. class Physics extends laya.events.EventDispatcher {
  25899. /**
  25900. * 2D游戏默认单位为像素,物理默认单位为米,此值设置了像素和米的转换比率,默认50像素=1米
  25901. */
  25902. static PIXEL_RATIO:number;
  25903. /**
  25904. * @private
  25905. */
  25906. private static _I:any;
  25907. /**
  25908. * Box2d引擎的全局引用,更多属性和api请参考 http://box2d.org
  25909. */
  25910. box2d:any;
  25911. /**
  25912. * [只读]物理世界引用,更多属性请参考官网
  25913. */
  25914. world:any;
  25915. /**
  25916. * 旋转迭代次数,增大数字会提高精度,但是会降低性能
  25917. */
  25918. velocityIterations:number;
  25919. /**
  25920. * 位置迭代次数,增大数字会提高精度,但是会降低性能
  25921. */
  25922. positionIterations:number;
  25923. /**
  25924. * @private 是否已经激活
  25925. */
  25926. private _enabled:any;
  25927. /**
  25928. * @private 根容器
  25929. */
  25930. private _worldRoot:any;
  25931. /**
  25932. * @private 空的body节点,给一些不需要节点的关节使用
  25933. */
  25934. _emptyBody:any;
  25935. /**
  25936. * @private
  25937. */
  25938. _eventList:any[];
  25939. /**
  25940. * 全局物理单例
  25941. */
  25942. static get I():Physics;
  25943. constructor();
  25944. /**
  25945. * 开启物理世界
  25946. * options值参考如下:
  25947. * allowSleeping:true,
  25948. * gravity:10,
  25949. * customUpdate:false 自己控制物理更新时机,自己调用Physics.update
  25950. */
  25951. static enable(options?:any):void;
  25952. /**
  25953. * 开启物理世界
  25954. * options值参考如下:
  25955. * allowSleeping:true,
  25956. * gravity:10,
  25957. * customUpdate:false 自己控制物理更新时机,自己调用Physics.update
  25958. */
  25959. start(options?:any):void;
  25960. private _update:any;
  25961. private _sendEvent:any;
  25962. /**
  25963. * @private
  25964. */
  25965. _createBody(def:any):any;
  25966. /**
  25967. * @private
  25968. */
  25969. _removeBody(body:any):void;
  25970. /**
  25971. * @private
  25972. */
  25973. _createJoint(def:any):any;
  25974. /**
  25975. * @private
  25976. */
  25977. _removeJoint(joint:any):void;
  25978. /**
  25979. * 停止物理世界
  25980. */
  25981. stop():void;
  25982. /**
  25983. * 设置是否允许休眠,休眠可以提高稳定性和性能,但通常会牺牲准确性
  25984. */
  25985. get allowSleeping():boolean;
  25986. set allowSleeping(value:boolean);
  25987. /**
  25988. * 物理世界重力环境,默认值为{x:0,y:1}
  25989. * 如果修改y方向重力方向向上,可以直接设置gravity.y=-1;
  25990. */
  25991. get gravity():any;
  25992. set gravity(value:any);
  25993. /**
  25994. * 获得刚体总数量
  25995. */
  25996. getBodyCount():number;
  25997. /**
  25998. * 获得碰撞总数量
  25999. */
  26000. getContactCount():number;
  26001. /**
  26002. * 获得关节总数量
  26003. */
  26004. getJointCount():number;
  26005. /**
  26006. * 物理世界根容器,将根据此容器作为物理世界坐标世界,进行坐标变换,默认值为stage
  26007. * 设置特定容器后,就可整体位移物理对象,保持物理世界不变
  26008. */
  26009. get worldRoot():laya.display.Sprite;
  26010. set worldRoot(value:laya.display.Sprite);
  26011. }
  26012. }
  26013. declare module laya.physics {
  26014. /**
  26015. * 物理辅助线,调用PhysicsDebugDraw.enable()开启,或者通过IDE设置打开
  26016. */
  26017. class PhysicsDebugDraw extends laya.display.Sprite {
  26018. /**
  26019. * @private
  26020. */
  26021. m_drawFlags:number;
  26022. /**
  26023. * @private
  26024. */
  26025. static box2d:any;
  26026. /**
  26027. * @private
  26028. */
  26029. static DrawString_s_color:any;
  26030. /**
  26031. * @private
  26032. */
  26033. static DrawStringWorld_s_p:any;
  26034. /**
  26035. * @private
  26036. */
  26037. static DrawStringWorld_s_cc:any;
  26038. /**
  26039. * @private
  26040. */
  26041. static DrawStringWorld_s_color:any;
  26042. /**
  26043. * @private
  26044. */
  26045. world:any;
  26046. /**
  26047. * @private
  26048. */
  26049. private _camera:any;
  26050. /**
  26051. * @private
  26052. */
  26053. private static _canvas:any;
  26054. /**
  26055. * @private
  26056. */
  26057. private static _inited:any;
  26058. /**
  26059. * @private
  26060. */
  26061. private _mG:any;
  26062. /**
  26063. * @private
  26064. */
  26065. private _textSp:any;
  26066. /**
  26067. * @private
  26068. */
  26069. private _textG:any;
  26070. /**
  26071. * @private
  26072. */
  26073. static init():void;
  26074. constructor();
  26075. /**
  26076. * @private
  26077. * @override
  26078. */
  26079. render(ctx:laya.resource.Context,x:number,y:number):void;
  26080. /**
  26081. * @private
  26082. */
  26083. private lineWidth:any;
  26084. /**
  26085. * @private
  26086. */
  26087. private _renderToGraphic:any;
  26088. /**
  26089. * @private
  26090. */
  26091. SetFlags(flags:number):void;
  26092. /**
  26093. * @private
  26094. */
  26095. GetFlags():number;
  26096. /**
  26097. * @private
  26098. */
  26099. AppendFlags(flags:number):void;
  26100. /**
  26101. * @private
  26102. */
  26103. ClearFlags(flags:any):void;
  26104. /**
  26105. * @private
  26106. */
  26107. PushTransform(xf:any):void;
  26108. /**
  26109. * @private
  26110. */
  26111. PopTransform(xf:any):void;
  26112. /**
  26113. * @private
  26114. */
  26115. DrawPolygon(vertices:any,vertexCount:any,color:any):void;
  26116. /**
  26117. * @private
  26118. */
  26119. DrawSolidPolygon(vertices:any,vertexCount:any,color:any):void;
  26120. /**
  26121. * @private
  26122. */
  26123. DrawCircle(center:any,radius:any,color:any):void;
  26124. /**
  26125. * @private
  26126. */
  26127. DrawSolidCircle(center:any,radius:any,axis:any,color:any):void;
  26128. /**
  26129. * @private
  26130. */
  26131. DrawParticles(centers:any,radius:any,colors:any,count:any):void;
  26132. /**
  26133. * @private
  26134. */
  26135. DrawSegment(p1:any,p2:any,color:any):void;
  26136. /**
  26137. * @private
  26138. */
  26139. DrawTransform(xf:any):void;
  26140. /**
  26141. * @private
  26142. */
  26143. DrawPoint(p:any,size:any,color:any):void;
  26144. /**
  26145. * @private
  26146. */
  26147. DrawString(x:any,y:any,message:any):void;
  26148. /**
  26149. * @private
  26150. */
  26151. DrawStringWorld(x:any,y:any,message:any):void;
  26152. /**
  26153. * @private
  26154. */
  26155. DrawAABB(aabb:any,color:any):void;
  26156. /**
  26157. * @private
  26158. */
  26159. static I:PhysicsDebugDraw;
  26160. /**
  26161. * 激活物理辅助线
  26162. * @param flags 位标记值,其值是AND的结果,其值有-1:显示形状,2:显示关节,4:显示AABB包围盒,8:显示broad-phase pairs,16:显示质心
  26163. * @return 返回一个Sprite对象,本对象用来显示物理辅助线
  26164. */
  26165. static enable(flags?:number):PhysicsDebugDraw;
  26166. }
  26167. }
  26168. declare module laya.physics {
  26169. /**
  26170. * 2D多边形碰撞体,暂时不支持凹多边形,如果是凹多边形,先手动拆分为多个凸多边形
  26171. * 节点个数最多是b2_maxPolygonVertices,这数值默认是8,所以点的数量不建议超过8个,也不能小于3个
  26172. */
  26173. class PolygonCollider extends laya.physics.ColliderBase {
  26174. /**
  26175. * 相对节点的x轴偏移
  26176. */
  26177. private _x:any;
  26178. /**
  26179. * 相对节点的y轴偏移
  26180. */
  26181. private _y:any;
  26182. /**
  26183. * 用逗号隔开的点的集合,格式:x,y,x,y ...
  26184. */
  26185. private _points:any;
  26186. /**
  26187. * @override
  26188. */
  26189. protected getDef():any;
  26190. private _setShape:any;
  26191. /**
  26192. * 相对节点的x轴偏移
  26193. */
  26194. get x():number;
  26195. set x(value:number);
  26196. /**
  26197. * 相对节点的y轴偏移
  26198. */
  26199. get y():number;
  26200. set y(value:number);
  26201. /**
  26202. * 用逗号隔开的点的集合,格式:x,y,x,y ...
  26203. */
  26204. get points():string;
  26205. set points(value:string);
  26206. }
  26207. }
  26208. declare module laya.physics {
  26209. /**
  26210. * 2D刚体,显示对象通过RigidBody和物理世界进行绑定,保持物理和显示对象之间的位置同步
  26211. * 物理世界的位置变化会自动同步到显示对象,显示对象本身的位移,旋转(父对象位移无效)也会自动同步到物理世界
  26212. * 由于引擎限制,暂时不支持以下情形:
  26213. * 1.不支持绑定节点缩放
  26214. * 2.不支持绑定节点的父节点缩放和旋转
  26215. * 3.不支持实时控制父对象位移,IDE内父对象位移是可以的
  26216. * 如果想整体位移物理世界,可以Physics.I.worldRoot=场景,然后移动场景即可
  26217. * 可以通过IDE-"项目设置" 开启物理辅助线显示,或者通过代码PhysicsDebugDraw.enable();
  26218. */
  26219. class RigidBody extends laya.components.Component {
  26220. /**
  26221. * 刚体类型,支持三种类型static,dynamic和kinematic类型,默认为dynamic类型
  26222. * static为静态类型,静止不动,不受重力影响,质量无限大,可以通过节点移动,旋转,缩放进行控制
  26223. * dynamic为动态类型,受重力影响
  26224. * kinematic为运动类型,不受重力影响,可以通过施加速度或者力的方式使其运动
  26225. */
  26226. protected _type:string;
  26227. /**
  26228. * 是否允许休眠,允许休眠能提高性能
  26229. */
  26230. protected _allowSleep:boolean;
  26231. /**
  26232. * 角速度,设置会导致旋转
  26233. */
  26234. protected _angularVelocity:number;
  26235. /**
  26236. * 旋转速度阻尼系数,范围可以在0到无穷大之间,0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间
  26237. */
  26238. protected _angularDamping:number;
  26239. /**
  26240. * 线性运动速度,比如{x:10,y:10}
  26241. */
  26242. protected _linearVelocity:any;
  26243. /**
  26244. * 线性速度阻尼系数,范围可以在0到无穷大之间,0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间
  26245. */
  26246. protected _linearDamping:number;
  26247. /**
  26248. * 是否高速移动的物体,设置为true,可以防止高速穿透
  26249. */
  26250. protected _bullet:boolean;
  26251. /**
  26252. * 是否允许旋转,如果不希望刚体旋转,这设置为false
  26253. */
  26254. protected _allowRotation:boolean;
  26255. /**
  26256. * 重力缩放系数,设置为0为没有重力
  26257. */
  26258. protected _gravityScale:number;
  26259. /**
  26260. * [只读] 指定了该主体所属的碰撞组,默认为0,碰撞规则如下:
  26261. * 1.如果两个对象group相等
  26262. * group值大于零,它们将始终发生碰撞
  26263. * group值小于零,它们将永远不会发生碰撞
  26264. * group值等于0,则使用规则3
  26265. * 2.如果group值不相等,则使用规则3
  26266. * 3.每个刚体都有一个category类别,此属性接收位字段,范围为[1,2^31]范围内的2的幂
  26267. * 每个刚体也都有一个mask类别,指定与其碰撞的类别值之和(值是所有category按位AND的值)
  26268. */
  26269. group:number;
  26270. /**
  26271. * [只读]碰撞类别,使用2的幂次方值指定,有32种不同的碰撞类别可用
  26272. */
  26273. category:number;
  26274. /**
  26275. * [只读]指定冲突位掩码碰撞的类别,category位操作的结果
  26276. */
  26277. mask:number;
  26278. /**
  26279. * [只读]自定义标签
  26280. */
  26281. label:string;
  26282. /**
  26283. * [只读]原始刚体
  26284. */
  26285. protected _body:any;
  26286. private _createBody:any;
  26287. /**
  26288. * 获取对象某属性的get set方法
  26289. * 通过其本身无法获取该方法,只能从原型上获取
  26290. * @param obj
  26291. * @param prop
  26292. * @param accessor
  26293. */
  26294. private accessGetSetFunc:any;
  26295. /**
  26296. * 重置Collider
  26297. * @param resetShape 是否先重置形状,比如缩放导致碰撞体变化
  26298. */
  26299. private resetCollider:any;
  26300. /**
  26301. * @private 同步物理坐标到游戏坐标
  26302. */
  26303. private _sysPhysicToNode:any;
  26304. /**
  26305. * @private 同步节点坐标及旋转到物理世界
  26306. */
  26307. private _sysNodeToPhysic:any;
  26308. /**
  26309. * @private 同步节点坐标到物理世界
  26310. */
  26311. private _sysPosToPhysic:any;
  26312. /**
  26313. * @private
  26314. */
  26315. private _overSet:any;
  26316. /**
  26317. * 获得原始body对象
  26318. */
  26319. getBody():any;
  26320. _getOriBody():any;
  26321. /**
  26322. * [只读]获得原始body对象
  26323. */
  26324. get body():any;
  26325. /**
  26326. * 对刚体施加力
  26327. * @param position 施加力的点,如{x:100,y:100},全局坐标
  26328. * @param force 施加的力,如{x:0.1,y:0.1}
  26329. */
  26330. applyForce(position:any,force:any):void;
  26331. /**
  26332. * 从中心点对刚体施加力,防止对象旋转
  26333. * @param force 施加的力,如{x:0.1,y:0.1}
  26334. */
  26335. applyForceToCenter(force:any):void;
  26336. /**
  26337. * 施加速度冲量,添加的速度冲量会与刚体原有的速度叠加,产生新的速度
  26338. * @param position 施加力的点,如{x:100,y:100},全局坐标
  26339. * @param impulse 施加的速度冲量,如{x:0.1,y:0.1}
  26340. */
  26341. applyLinearImpulse(position:any,impulse:any):void;
  26342. /**
  26343. * 施加速度冲量,添加的速度冲量会与刚体原有的速度叠加,产生新的速度
  26344. * @param impulse 施加的速度冲量,如{x:0.1,y:0.1}
  26345. */
  26346. applyLinearImpulseToCenter(impulse:any):void;
  26347. /**
  26348. * 对刚体施加扭矩,使其旋转
  26349. * @param torque 施加的扭矩
  26350. */
  26351. applyTorque(torque:number):void;
  26352. /**
  26353. * 设置速度,比如{x:10,y:10}
  26354. * @param velocity
  26355. */
  26356. setVelocity(velocity:any):void;
  26357. /**
  26358. * 设置角度
  26359. * @param value 单位为弧度
  26360. */
  26361. setAngle(value:any):void;
  26362. /**
  26363. * 获得刚体质量
  26364. */
  26365. getMass():number;
  26366. /**
  26367. * 获得质心的相对节点0,0点的位置偏移
  26368. */
  26369. getCenter():any;
  26370. /**
  26371. * 获得质心的世界坐标,相对于Physics.I.worldRoot节点
  26372. */
  26373. getWorldCenter():any;
  26374. /**
  26375. * 刚体类型,支持三种类型static,dynamic和kinematic类型
  26376. * static为静态类型,静止不动,不受重力影响,质量无限大,可以通过节点移动,旋转,缩放进行控制
  26377. * dynamic为动态类型,接受重力影响
  26378. * kinematic为运动类型,不受重力影响,可以通过施加速度或者力的方式使其运动
  26379. */
  26380. get type():string;
  26381. set type(value:string);
  26382. /**
  26383. * 重力缩放系数,设置为0为没有重力
  26384. */
  26385. get gravityScale():number;
  26386. set gravityScale(value:number);
  26387. /**
  26388. * 是否允许旋转,如果不希望刚体旋转,这设置为false
  26389. */
  26390. get allowRotation():boolean;
  26391. set allowRotation(value:boolean);
  26392. /**
  26393. * 是否允许休眠,允许休眠能提高性能
  26394. */
  26395. get allowSleep():boolean;
  26396. set allowSleep(value:boolean);
  26397. /**
  26398. * 旋转速度阻尼系数,范围可以在0到无穷大之间,0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间
  26399. */
  26400. get angularDamping():number;
  26401. set angularDamping(value:number);
  26402. /**
  26403. * 角速度,设置会导致旋转
  26404. */
  26405. get angularVelocity():number;
  26406. set angularVelocity(value:number);
  26407. /**
  26408. * 线性速度阻尼系数,范围可以在0到无穷大之间,0表示没有阻尼,无穷大表示满阻尼,通常阻尼的值应该在0到0.1之间
  26409. */
  26410. get linearDamping():number;
  26411. set linearDamping(value:number);
  26412. /**
  26413. * 线性运动速度,比如{x:5,y:5}
  26414. */
  26415. get linearVelocity():any;
  26416. set linearVelocity(value:any);
  26417. /**
  26418. * 是否高速移动的物体,设置为true,可以防止高速穿透
  26419. */
  26420. get bullet():boolean;
  26421. set bullet(value:boolean);
  26422. }
  26423. }
  26424. declare module laya.renders {
  26425. /**
  26426. * <code>Render</code> 是渲染管理类。它是一个单例,可以使用 Laya.render 访问。
  26427. */
  26428. class Render {
  26429. static supportWebGLPlusCulling:boolean;
  26430. static supportWebGLPlusAnimation:boolean;
  26431. static supportWebGLPlusRendering:boolean;
  26432. /**
  26433. * 是否是加速器 只读
  26434. */
  26435. static isConchApp:boolean;
  26436. /**
  26437. * 表示是否是 3D 模式。
  26438. */
  26439. static is3DMode:boolean;
  26440. /**
  26441. * 初始化引擎。
  26442. * @param width 游戏窗口宽度。
  26443. * @param height 游戏窗口高度。
  26444. */
  26445. constructor(width:number,height:number,mainCanv:laya.resource.HTMLCanvas);
  26446. /**
  26447. * @private
  26448. */
  26449. private _timeId:any;
  26450. /**
  26451. * @private
  26452. */
  26453. private _onVisibilitychange:any;
  26454. initRender(canvas:laya.resource.HTMLCanvas,w:number,h:number):boolean;
  26455. /**
  26456. * @private
  26457. */
  26458. private _enterFrame:any;
  26459. /**
  26460. * 目前使用的渲染器。
  26461. */
  26462. static get context():laya.resource.Context;
  26463. /**
  26464. * 渲染使用的原生画布引用。
  26465. */
  26466. static get canvas():any;
  26467. }
  26468. }
  26469. declare module laya.renders {
  26470. /**
  26471. * @author laya
  26472. */
  26473. class RenderInfo {
  26474. static loopStTm:number;
  26475. static loopCount:number;
  26476. }
  26477. }
  26478. declare module laya.renders {
  26479. /**
  26480. * @private
  26481. */
  26482. interface _RenderFunction{
  26483. (sp:laya.display.Sprite,ctx:laya.resource.Context,x:number,y:number):void }
  26484. /**
  26485. * @private 精灵渲染器
  26486. */
  26487. class RenderSprite {
  26488. /**
  26489. * @private
  26490. */
  26491. /**
  26492. * @private
  26493. */
  26494. /**
  26495. * @private
  26496. */
  26497. /**
  26498. * @private
  26499. */
  26500. /**
  26501. * @private
  26502. */
  26503. /**
  26504. * @private
  26505. */
  26506. /**
  26507. * @private
  26508. */
  26509. /**
  26510. * @private
  26511. */
  26512. /**
  26513. * @private
  26514. */
  26515. /**
  26516. * @private
  26517. */
  26518. /**
  26519. * @private
  26520. */
  26521. /**
  26522. * @private
  26523. */
  26524. /**
  26525. * @private
  26526. */
  26527. static INIT:number;
  26528. /**
  26529. * @private
  26530. */
  26531. static renders:RenderSprite[];
  26532. /**
  26533. * @private
  26534. */
  26535. protected static NORENDER:RenderSprite;
  26536. private static _initRenderFun:any;
  26537. private static _getTypeRender:any;
  26538. constructor(type:number,next:RenderSprite|null);
  26539. protected onCreate(type:number):void;
  26540. static tempUV:any[];
  26541. static tmpTarget(ctx:laya.resource.Context,rt:laya.resource.RenderTexture2D,w:number,h:number):void;
  26542. static recycleTarget(rt:laya.resource.RenderTexture2D):void;
  26543. static setBlendMode(blendMode:string):void;
  26544. }
  26545. }
  26546. declare module laya.resource {
  26547. /**
  26548. * <code>BaseTexture</code> 纹理的父类,抽象类,不允许实例。
  26549. */
  26550. class BaseTexture extends laya.resource.Bitmap {
  26551. /**
  26552. * 是否使用mipLevel
  26553. */
  26554. get mipmap():boolean;
  26555. /**
  26556. * 纹理格式
  26557. */
  26558. get format():number;
  26559. /**
  26560. * 纹理横向循环模式。
  26561. */
  26562. get wrapModeU():number;
  26563. set wrapModeU(value:number);
  26564. /**
  26565. * 纹理纵向循环模式。
  26566. */
  26567. get wrapModeV():number;
  26568. set wrapModeV(value:number);
  26569. /**
  26570. * 缩小过滤器
  26571. */
  26572. get filterMode():laya.resource.FilterMode;
  26573. set filterMode(value:laya.resource.FilterMode);
  26574. /**
  26575. * 各向异性等级
  26576. */
  26577. get anisoLevel():number;
  26578. set anisoLevel(value:number);
  26579. /**
  26580. * 获取mipmap数量。
  26581. */
  26582. get mipmapCount():number;
  26583. get defaulteTexture():BaseTexture;
  26584. /**
  26585. * 创建一个 <code>BaseTexture</code> 实例。
  26586. */
  26587. constructor(format:number,mipMap:boolean);
  26588. /**
  26589. * @inheritDoc
  26590. * @override
  26591. */
  26592. protected _disposeResource():void;
  26593. /**
  26594. * 通过基础数据生成mipMap。
  26595. */
  26596. generateMipmap():void;
  26597. /**
  26598. * @deprecated use TextureFormat.FORMAT_R8G8B8 instead.
  26599. */
  26600. static FORMAT_R8G8B8:number;
  26601. /**
  26602. * @deprecated use TextureFormat.FORMAT_R8G8B8A8 instead.
  26603. */
  26604. static FORMAT_R8G8B8A8:number;
  26605. /**
  26606. * @deprecated use TextureFormat.FORMAT_ALPHA8 instead.
  26607. */
  26608. static FORMAT_ALPHA8:number;
  26609. /**
  26610. * @deprecated use TextureFormat.FORMAT_DXT1 instead.
  26611. */
  26612. static FORMAT_DXT1:number;
  26613. /**
  26614. * @deprecated use TextureFormat.FORMAT_DXT5 instead.
  26615. */
  26616. static FORMAT_DXT5:number;
  26617. /**
  26618. * @deprecated use TextureFormat.FORMAT_ETC1RGB instead.
  26619. */
  26620. static FORMAT_ETC1RGB:number;
  26621. /**
  26622. * @deprecated use TextureFormat.FORMAT_PVRTCRGB_2BPPV instead.
  26623. */
  26624. static FORMAT_PVRTCRGB_2BPPV:number;
  26625. /**
  26626. * @deprecated use TextureFormat.FORMAT_PVRTCRGBA_2BPPV instead.
  26627. */
  26628. static FORMAT_PVRTCRGBA_2BPPV:number;
  26629. /**
  26630. * @deprecated use TextureFormat.FORMAT_PVRTCRGB_4BPPV instead.
  26631. */
  26632. static FORMAT_PVRTCRGB_4BPPV:number;
  26633. /**
  26634. * @deprecated use TextureFormat.FORMAT_PVRTCRGBA_4BPPV instead.
  26635. */
  26636. static FORMAT_PVRTCRGBA_4BPPV:number;
  26637. /**
  26638. * @deprecated use RenderTextureFormat.R16G16B16A16 instead.
  26639. */
  26640. static RENDERTEXTURE_FORMAT_RGBA_HALF_FLOAT:number;
  26641. /**
  26642. * @deprecated use TextureFormat.R32G32B32A32 instead.
  26643. */
  26644. static FORMAT_R32G32B32A32:number;
  26645. /**
  26646. * @deprecated use RenderTextureDepthFormat.DEPTH_16 instead.
  26647. */
  26648. static FORMAT_DEPTH_16:number;
  26649. /**
  26650. * @deprecated use RenderTextureDepthFormat.STENCIL_8 instead.
  26651. */
  26652. static FORMAT_STENCIL_8:number;
  26653. /**
  26654. * @deprecated use RenderTextureDepthFormat.DEPTHSTENCIL_16_8 instead.
  26655. */
  26656. static FORMAT_DEPTHSTENCIL_16_8:number;
  26657. /**
  26658. * @deprecated use RenderTextureDepthFormat.DEPTHSTENCIL_NONE instead.
  26659. */
  26660. static FORMAT_DEPTHSTENCIL_NONE:number;
  26661. /**
  26662. * @deprecated use FilterMode.Point instead.
  26663. */
  26664. static FILTERMODE_POINT:number;
  26665. /**
  26666. * @deprecated use FilterMode.Bilinear instead.
  26667. */
  26668. static FILTERMODE_BILINEAR:number;
  26669. /**
  26670. * @deprecated use FilterMode.Trilinear instead.
  26671. */
  26672. static FILTERMODE_TRILINEAR:number;
  26673. /**
  26674. * @deprecated use WarpMode.Repeat instead.
  26675. */
  26676. static WARPMODE_REPEAT:number;
  26677. /**
  26678. * @deprecated use WarpMode.Clamp instead.
  26679. */
  26680. static WARPMODE_CLAMP:number;
  26681. }
  26682. }
  26683. declare module laya.resource {
  26684. /**
  26685. * @private <code>Bitmap</code> 图片资源类。
  26686. */
  26687. class Bitmap extends laya.resource.Resource {
  26688. /**
  26689. * @private
  26690. */
  26691. protected _width:number;
  26692. /**
  26693. * @private
  26694. */
  26695. protected _height:number;
  26696. /**
  26697. * 获取宽度。
  26698. */
  26699. get width():number;
  26700. set width(width:number);
  26701. /**
  26702. * *
  26703. * 获取高度。
  26704. */
  26705. get height():number;
  26706. set height(height:number);
  26707. /**
  26708. * 创建一个 <code>Bitmap</code> 实例。
  26709. */
  26710. constructor();
  26711. }
  26712. }
  26713. declare module laya.resource {
  26714. /**
  26715. * @private Context扩展类
  26716. */
  26717. class Context {
  26718. static ENUM_TEXTALIGN_DEFAULT:number;
  26719. static ENUM_TEXTALIGN_CENTER:number;
  26720. static ENUM_TEXTALIGN_RIGHT:number;
  26721. static _SUBMITVBSIZE:number;
  26722. static _MAXSIZE:number;
  26723. private static _MAXVERTNUM:any;
  26724. static MAXCLIPRECT:laya.maths.Rectangle;
  26725. static _COUNT:number;
  26726. private static SEGNUM:any;
  26727. private static _contextcount:any;
  26728. private _drawTexToDrawTri_Vert:any;
  26729. private _drawTexToDrawTri_Index:any;
  26730. private _tempUV:any;
  26731. private _drawTriUseAbsMatrix:any;
  26732. static __init__():void;
  26733. /**
  26734. * @private
  26735. */
  26736. drawImage(...args:any[]):void;
  26737. /**
  26738. * @private
  26739. */
  26740. getImageData(...args:any[]):any;
  26741. /**
  26742. * @private
  26743. */
  26744. measureText(text:string):any;
  26745. /**
  26746. * @private
  26747. */
  26748. setTransform(...args:any[]):void;
  26749. /**
  26750. * @private
  26751. */
  26752. $transform(a:number,b:number,c:number,d:number,tx:number,ty:number):void;
  26753. /**
  26754. * @private
  26755. */
  26756. get lineJoin():string;
  26757. /**
  26758. * @private
  26759. */
  26760. set lineJoin(value:string);
  26761. /**
  26762. * @private
  26763. */
  26764. get lineCap():string;
  26765. /**
  26766. * @private
  26767. */
  26768. set lineCap(value:string);
  26769. /**
  26770. * @private
  26771. */
  26772. get miterLimit():string;
  26773. /**
  26774. * @private
  26775. */
  26776. set miterLimit(value:string);
  26777. /**
  26778. * @private
  26779. */
  26780. clearRect(x:number,y:number,width:number,height:number):void;
  26781. /**
  26782. * @private
  26783. */
  26784. /**
  26785. * @private
  26786. */
  26787. drawTexture2(x:number,y:number,pivotX:number,pivotY:number,m:laya.maths.Matrix,args2:any[]):void;
  26788. transformByMatrix(matrix:laya.maths.Matrix,tx:number,ty:number):void;
  26789. saveTransform(matrix:laya.maths.Matrix):void;
  26790. restoreTransform(matrix:laya.maths.Matrix):void;
  26791. drawRect(x:number,y:number,width:number,height:number,fillColor:any,lineColor:any,lineWidth:number):void;
  26792. alpha(value:number):void;
  26793. drawCurves(x:number,y:number,points:any[],lineColor:any,lineWidth:number):void;
  26794. private _fillAndStroke:any;
  26795. /**
  26796. * Math.PI*2的结果缓存
  26797. */
  26798. static PI2:number;
  26799. static set2DRenderConfig():void;
  26800. private _other:any;
  26801. private _renderNextSubmitIndex:any;
  26802. private _path:any;
  26803. private _width:any;
  26804. private _height:any;
  26805. private _renderCount:any;
  26806. meshlist:any[];
  26807. private _transedPoints:any;
  26808. private _temp4Points:any;
  26809. private _clipID_Gen:any;
  26810. private _lastMat_a:any;
  26811. private _lastMat_b:any;
  26812. private _lastMat_c:any;
  26813. private _lastMat_d:any;
  26814. /**
  26815. * 所cacheAs精灵
  26816. * 对于cacheas bitmap的情况,如果图片还没准备好,需要有机会重画,所以要保存sprite。例如在图片
  26817. * 加载完成后,调用repaint
  26818. */
  26819. sprite:laya.display.Sprite|null;
  26820. private _fillColor:any;
  26821. private _flushCnt:any;
  26822. private defTexture:any;
  26823. drawTexAlign:boolean;
  26824. isMain:boolean;
  26825. constructor();
  26826. clearBG(r:number,g:number,b:number,a:number):void;
  26827. /**
  26828. * 释放占用内存
  26829. * @param keepRT 是否保留rendertarget
  26830. */
  26831. private _releaseMem:any;
  26832. /**
  26833. * 释放所有资源
  26834. * @param keepRT 是否保留rendertarget
  26835. */
  26836. destroy(keepRT?:boolean):void;
  26837. clear():void;
  26838. /**
  26839. * 设置ctx的size,这个不允许直接设置,必须是canvas调过来的。所以这个函数里也不用考虑canvas相关的东西
  26840. * @param w
  26841. * @param h
  26842. */
  26843. size(w:number,h:number):void;
  26844. /**
  26845. * 当前canvas请求保存渲染结果。
  26846. * 实现:
  26847. * 如果value==true,就要给_target赋值
  26848. * @param value
  26849. */
  26850. set asBitmap(value:boolean);
  26851. /**
  26852. * 获得当前矩阵的缩放值
  26853. * 避免每次都计算getScaleX
  26854. * @return
  26855. */
  26856. getMatScaleX():number;
  26857. getMatScaleY():number;
  26858. setFillColor(color:number):void;
  26859. getFillColor():number;
  26860. set fillStyle(value:any);
  26861. get fillStyle():any;
  26862. set globalAlpha(value:number);
  26863. get globalAlpha():number;
  26864. set textAlign(value:string);
  26865. get textAlign():string;
  26866. set textBaseline(value:string);
  26867. get textBaseline():string;
  26868. set globalCompositeOperation(value:string);
  26869. get globalCompositeOperation():string;
  26870. set strokeStyle(value:any);
  26871. get strokeStyle():any;
  26872. translate(x:number,y:number):void;
  26873. set lineWidth(value:number);
  26874. get lineWidth():number;
  26875. save():void;
  26876. restore():void;
  26877. set font(str:string);
  26878. fillText(txt:string|laya.utils.WordText,x:number,y:number,fontStr:string,color:string,align:string,lineWidth?:number,borderColor?:string):void;
  26879. drawText(text:string|laya.utils.WordText,x:number,y:number,font:string,color:string,textAlign:string):void;
  26880. fillWords(words:laya.utils.HTMLChar[],x:number,y:number,fontStr:string,color:string):void;
  26881. strokeWord(text:string|laya.utils.WordText,x:number,y:number,font:string,color:string,lineWidth:number,textAlign:string):void;
  26882. fillBorderText(txt:string|laya.utils.WordText,x:number,y:number,font:string,color:string,borderColor:string,lineWidth:number,textAlign:string):void;
  26883. fillBorderWords(words:laya.utils.HTMLChar[],x:number,y:number,font:string,color:string,borderColor:string,lineWidth:number):void;
  26884. private _fillRect:any;
  26885. fillRect(x:number,y:number,width:number,height:number,fillStyle:any):void;
  26886. fillTexture(texture:laya.resource.Texture,x:number,y:number,width:number,height:number,type:string,offset:laya.maths.Point,other:any):void;
  26887. /**
  26888. * 反正只支持一种filter,就不要叫setFilter了,直接叫setColorFilter
  26889. * @param value
  26890. */
  26891. setColorFilter(filter:laya.filters.ColorFilter):void;
  26892. drawTexture(tex:laya.resource.Texture,x:number,y:number,width:number,height:number):void;
  26893. drawTextures(tex:laya.resource.Texture,pos:any[],tx:number,ty:number):void;
  26894. /**
  26895. * 为drawTexture添加一个新的submit。类型是 SubmitTexture
  26896. * @param vbSize
  26897. * @param alpha
  26898. * @param webGLImg
  26899. * @param tex
  26900. */
  26901. private _drawTextureAddSubmit:any;
  26902. submitDebugger():void;
  26903. private isSameClipInfo:any;
  26904. drawCallOptimize(enable:boolean):boolean;
  26905. /**
  26906. * 转换4个顶点。为了效率这个不做任何检查。需要调用者的配合。
  26907. * @param a 输入。8个元素表示4个点
  26908. * @param out 输出
  26909. */
  26910. transform4Points(a:any[],m:laya.maths.Matrix,out:any[]):void;
  26911. /**
  26912. * pt所描述的多边形完全在clip外边,整个被裁掉了
  26913. * @param pt
  26914. * @return
  26915. */
  26916. clipedOff(pt:any[]):boolean;
  26917. /**
  26918. * 应用当前矩阵。把转换后的位置放到输出数组中。
  26919. * @param x
  26920. * @param y
  26921. * @param w
  26922. * @param h
  26923. * @param italicDeg 倾斜角度,单位是度。0度无,目前是下面不动。以后要做成可调的
  26924. */
  26925. transformQuad(x:number,y:number,w:number,h:number,italicDeg:number,m:laya.maths.Matrix,out:any[]):void;
  26926. pushRT():void;
  26927. popRT():void;
  26928. useRT(rt:laya.resource.RenderTexture2D):void;
  26929. /**
  26930. * 异步执行rt的restore函数
  26931. * @param rt
  26932. */
  26933. RTRestore(rt:laya.resource.RenderTexture2D):void;
  26934. /**
  26935. * 强制拒绝submit合并
  26936. * 例如切换rt的时候
  26937. */
  26938. breakNextMerge():void;
  26939. private _repaintSprite:any;
  26940. /**
  26941. * @param tex
  26942. * @param x
  26943. * @param y
  26944. * @param width
  26945. * @param height
  26946. * @param transform 图片本身希望的矩阵
  26947. * @param tx 节点的位置
  26948. * @param ty
  26949. * @param alpha
  26950. */
  26951. 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;
  26952. /**
  26953. * * 把ctx中的submits提交。结果渲染到target上
  26954. * @param ctx
  26955. * @param target
  26956. */
  26957. private _flushToTarget:any;
  26958. drawCanvas(canvas:laya.resource.HTMLCanvas,x:number,y:number,width:number,height:number):void;
  26959. 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;
  26960. 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;
  26961. transform(a:number,b:number,c:number,d:number,tx:number,ty:number):void;
  26962. setTransformByMatrix(value:laya.maths.Matrix):void;
  26963. rotate(angle:number):void;
  26964. scale(scaleX:number,scaleY:number):void;
  26965. clipRect(x:number,y:number,width:number,height:number):void;
  26966. /**
  26967. * 从setIBVB改为drawMesh
  26968. * type 参数不知道是干什么的,先删掉。offset好像跟attribute有关,删掉
  26969. * @param x
  26970. * @param y
  26971. * @param ib
  26972. * @param vb
  26973. * @param numElement
  26974. * @param mat
  26975. * @param shader
  26976. * @param shaderValues
  26977. * @param startIndex
  26978. * @param offset
  26979. */
  26980. 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;
  26981. addRenderObject(o:laya.webgl.submit.ISubmit):void;
  26982. /**
  26983. * @param start
  26984. * @param end
  26985. */
  26986. submitElement(start:number,end:number):number;
  26987. flush():number;
  26988. /**
  26989. * *****************************************start矢量绘制**************************************************
  26990. */
  26991. beginPath(convex?:boolean):void;
  26992. closePath():void;
  26993. /**
  26994. * 添加一个path。
  26995. * @param points [x,y,x,y....] 这个会被保存下来,所以调用者需要注意复制。
  26996. * @param close 是否闭合
  26997. * @param convex 是否是凸多边形。convex的优先级是这个最大。fill的时候的次之。其实fill的时候不应该指定convex,因为可以多个path
  26998. * @param dx 需要添加的平移。这个需要在应用矩阵之前应用。
  26999. * @param dy
  27000. */
  27001. addPath(points:any[],close:boolean,convex:boolean,dx:number,dy:number):void;
  27002. fill():void;
  27003. private addVGSubmit:any;
  27004. stroke():void;
  27005. moveTo(x:number,y:number):void;
  27006. /**
  27007. * @param x
  27008. * @param y
  27009. * @param b 是否应用矩阵
  27010. */
  27011. lineTo(x:number,y:number):void;
  27012. arcTo(x1:number,y1:number,x2:number,y2:number,r:number):void;
  27013. arc(cx:number,cy:number,r:number,startAngle:number,endAngle:number,counterclockwise?:boolean,b?:boolean):void;
  27014. quadraticCurveTo(cpx:number,cpy:number,x:number,y:number):void;
  27015. /**
  27016. * 把颜色跟当前设置的alpha混合
  27017. * @return
  27018. */
  27019. mixRGBandAlpha(color:number):number;
  27020. strokeRect(x:number,y:number,width:number,height:number,parameterLineWidth:number):void;
  27021. clip():void;
  27022. /**
  27023. * *****************************************end矢量绘制**************************************************
  27024. */
  27025. drawParticle(x:number,y:number,pt:any):void;
  27026. private _getPath:any;
  27027. /**
  27028. * 获取canvas
  27029. */
  27030. get canvas():laya.resource.HTMLCanvas;
  27031. private static tmpuv1:any;
  27032. /**
  27033. * 专用函数。通过循环创建来水平填充
  27034. * @param tex
  27035. * @param bmpid
  27036. * @param uv 希望循环的部分的uv
  27037. * @param oriw
  27038. * @param orih
  27039. * @param x
  27040. * @param y
  27041. * @param w
  27042. */
  27043. private _fillTexture_h:any;
  27044. /**
  27045. * 专用函数。通过循环创建来垂直填充
  27046. * @param tex
  27047. * @param imgid
  27048. * @param uv
  27049. * @param oriw
  27050. * @param orih
  27051. * @param x
  27052. * @param y
  27053. * @param h
  27054. */
  27055. private _fillTexture_v:any;
  27056. private static tmpUV:any;
  27057. private static tmpUVRect:any;
  27058. drawTextureWithSizeGrid(tex:laya.resource.Texture,tx:number,ty:number,width:number,height:number,sizeGrid:any[],gx:number,gy:number):void;
  27059. }
  27060. }
  27061. declare module laya.resource {
  27062. enum FilterMode {
  27063. /**点过滤。*/
  27064. Point = 0,
  27065. /**双线性过滤。*/
  27066. Bilinear = 1,
  27067. /**三线性过滤。*/
  27068. Trilinear = 2
  27069. }
  27070. }
  27071. declare module laya.resource {
  27072. /**
  27073. * <code>HTMLCanvas</code> 是 Html Canvas 的代理类,封装了 Canvas 的属性和方法。
  27074. */
  27075. class HTMLCanvas extends laya.resource.Bitmap {
  27076. private _ctx:any;
  27077. /**
  27078. * @inheritDoc
  27079. */
  27080. get source():HTMLCanvasElement;
  27081. /**
  27082. * 根据指定的类型,创建一个 <code>HTMLCanvas</code> 实例。
  27083. */
  27084. constructor(createCanvas?:boolean);
  27085. /**
  27086. * 清空画布内容。
  27087. */
  27088. clear():void;
  27089. /**
  27090. * 销毁。
  27091. * @override
  27092. */
  27093. destroy():void;
  27094. /**
  27095. * 释放。
  27096. */
  27097. release():void;
  27098. /**
  27099. * Canvas 渲染上下文。
  27100. */
  27101. get context():laya.resource.Context;
  27102. /**
  27103. * 获取 Canvas 渲染上下文。
  27104. * @param contextID 上下文ID.
  27105. * @param other
  27106. * @return Canvas 渲染上下文 Context 对象。
  27107. */
  27108. getContext(contextID:string,other?:any):laya.resource.Context;
  27109. /**
  27110. * 获取内存大小。
  27111. * @return 内存大小。
  27112. */
  27113. getMemSize():number;
  27114. /**
  27115. * 设置宽高。
  27116. * @param w 宽度。
  27117. * @param h 高度。
  27118. */
  27119. size(w:number,h:number):void;
  27120. /**
  27121. * 获取texture实例
  27122. */
  27123. getTexture():laya.resource.Texture;
  27124. /**
  27125. * 把图片转换为base64信息
  27126. * @param type "image/png"
  27127. * @param encoderOptions 质量参数,取值范围为0-1
  27128. */
  27129. toBase64(type:string,encoderOptions:number):string|null;
  27130. toBase64Async(type:string,encoderOptions:number,callBack:Function):void;
  27131. }
  27132. }
  27133. declare module laya.resource {
  27134. /**
  27135. * @private <p> <code>HTMLImage</code> 用于创建 HTML Image 元素。</p>
  27136. <p>请使用 <code>HTMLImage.create()<code>获取新实例,不要直接使用 <code>new HTMLImage<code> 。</p>
  27137. */
  27138. class HTMLImage extends laya.resource.Bitmap {
  27139. /**
  27140. * <p><b>不支持canvas了,所以备Texture2D替换了</p>
  27141. * <p>创建一个 <code>HTMLImage</code> 实例。</p>
  27142. * <p>请使用 <code>HTMLImage.create()<code>创建实例,不要直接使用 <code>new HTMLImage<code> 。</p>
  27143. */
  27144. static create:Function;
  27145. }
  27146. }
  27147. declare module laya.resource {
  27148. /**
  27149. * <code>ICreateResource</code> 对象创建接口。
  27150. */
  27151. interface ICreateResource{
  27152. _setCreateURL(url:string):void;
  27153. }
  27154. }
  27155. declare module laya.resource {
  27156. /**
  27157. * <code>IDestroy</code> 是对象销毁的接口。
  27158. */
  27159. interface IDestroy{
  27160. destroyed:boolean;
  27161. destroy():void;
  27162. }
  27163. }
  27164. declare module laya.resource {
  27165. /**
  27166. * <code>IList</code> 可加入队列接口。
  27167. */
  27168. interface ISingletonElement{
  27169. _getIndexInList():number;
  27170. _setIndexInList(index:number):void;
  27171. }
  27172. }
  27173. declare module laya.resource {
  27174. /**
  27175. * <code>RenderTexture</code> 类用于创建渲染目标。
  27176. */
  27177. class RenderTexture2D extends laya.resource.BaseTexture {
  27178. /**
  27179. * @private
  27180. */
  27181. private static _currentActive:any;
  27182. private _lastRT:any;
  27183. private _lastWidth:any;
  27184. private _lastHeight:any;
  27185. private static rtStack:any;
  27186. static defuv:any[];
  27187. static flipyuv:any[];
  27188. /**
  27189. * 获取当前激活的Rendertexture
  27190. */
  27191. static get currentActive():RenderTexture2D;
  27192. /**
  27193. * @private
  27194. */
  27195. private _frameBuffer:any;
  27196. /**
  27197. * @private
  27198. */
  27199. private _depthStencilBuffer:any;
  27200. /**
  27201. * @private
  27202. */
  27203. private _depthStencilFormat:any;
  27204. /**
  27205. * 获取深度格式。
  27206. * @return 深度格式。
  27207. */
  27208. get depthStencilFormat():number;
  27209. /**
  27210. * @inheritDoc
  27211. * @override
  27212. */
  27213. get defaulteTexture():laya.resource.BaseTexture;
  27214. getIsReady():boolean;
  27215. /**
  27216. * 获取宽度。
  27217. */
  27218. get sourceWidth():number;
  27219. /**
  27220. * *
  27221. * 获取高度。
  27222. */
  27223. get sourceHeight():number;
  27224. /**
  27225. * 获取offsetX。
  27226. */
  27227. get offsetX():number;
  27228. /**
  27229. * *
  27230. * 获取offsetY
  27231. */
  27232. get offsetY():number;
  27233. /**
  27234. * @param width 宽度。
  27235. * @param height 高度。
  27236. * @param format 纹理格式。
  27237. * @param depthStencilFormat 深度格式。
  27238. 创建一个 <code>RenderTexture</code> 实例。
  27239. */
  27240. constructor(width:number,height:number,format?:number,depthStencilFormat?:number);
  27241. /**
  27242. * @private
  27243. */
  27244. private _create:any;
  27245. /**
  27246. * 生成mipMap。
  27247. * @override
  27248. */
  27249. generateMipmap():void;
  27250. /**
  27251. * 保存当前的RT信息。
  27252. */
  27253. static pushRT():void;
  27254. /**
  27255. * 恢复上次保存的RT信息
  27256. */
  27257. static popRT():void;
  27258. /**
  27259. * 开始绑定。
  27260. */
  27261. start():void;
  27262. /**
  27263. * 结束绑定。
  27264. */
  27265. end():void;
  27266. /**
  27267. * 恢复上一次的RenderTarge.由于使用自己保存的,所以如果被外面打断了的话,会出错。
  27268. */
  27269. restore():void;
  27270. clear(r?:number,g?:number,b?:number,a?:number):void;
  27271. /**
  27272. * 获得像素数据。
  27273. * @param x X像素坐标。
  27274. * @param y Y像素坐标。
  27275. * @param width 宽度。
  27276. * @param height 高度。
  27277. * @return 像素数据。
  27278. */
  27279. getData(x:number,y:number,width:number,height:number):Uint8Array;
  27280. /**
  27281. * native多线程
  27282. */
  27283. getDataAsync(x:number,y:number,width:number,height:number,callBack:Function):void;
  27284. recycle():void;
  27285. }
  27286. }
  27287. declare module laya.resource {
  27288. enum RenderTextureFormat {
  27289. /**RGB格式,每个通道8位。*/
  27290. R8G8B8 = 0,
  27291. /**RGBA格式,每个通道8位。*/
  27292. R8G8B8A8 = 1,
  27293. /**Alpha格式,8位。*/
  27294. Alpha8 = 2,
  27295. /**RGBA格式,每个通道16位。*/
  27296. R16G16B16A16 = 14,
  27297. /**深度格式。*/
  27298. Depth = 15,
  27299. /**阴影贴图格式格式。*/
  27300. ShadowMap = 16
  27301. }enum RenderTextureDepthFormat {
  27302. /**深度格式_DEPTH_16。*/
  27303. DEPTH_16 = 0,
  27304. /**深度格式_STENCIL_8。*/
  27305. STENCIL_8 = 1,
  27306. /**深度格式_DEPTHSTENCIL_24_8。*/
  27307. DEPTHSTENCIL_24_8 = 2,
  27308. /**深度格式_DEPTHSTENCIL_NONE。*/
  27309. DEPTHSTENCIL_NONE = 3,
  27310. /** @deprecated*/
  27311. DEPTHSTENCIL_16_8 = 2
  27312. }
  27313. }
  27314. declare module laya.resource {
  27315. /**
  27316. * <code>Resource</code> 资源存取类。
  27317. */
  27318. class Resource extends laya.events.EventDispatcher implements laya.resource.ICreateResource,laya.resource.IDestroy {
  27319. /**
  27320. * @private
  27321. */
  27322. private static _uniqueIDCounter:any;
  27323. /**
  27324. * @private
  27325. */
  27326. private static _idResourcesMap:any;
  27327. /**
  27328. * @private
  27329. */
  27330. private static _urlResourcesMap:any;
  27331. /**
  27332. * @private 以字节为单位。
  27333. */
  27334. private static _cpuMemory:any;
  27335. /**
  27336. * @private 以字节为单位。
  27337. */
  27338. private static _gpuMemory:any;
  27339. /**
  27340. * 当前内存,以字节为单位。
  27341. */
  27342. static get cpuMemory():number;
  27343. /**
  27344. * 当前显存,以字节为单位。
  27345. */
  27346. static get gpuMemory():number;
  27347. /**
  27348. * 通过资源ID返回已载入资源。
  27349. * @param id 资源ID
  27350. * @return 资源 <code>Resource</code> 对象。
  27351. */
  27352. static getResourceByID(id:number):Resource;
  27353. /**
  27354. * 通过url返回已载入资源。
  27355. * @param url 资源URL
  27356. * @param index 索引
  27357. * @return 资源 <code>Resource</code> 对象。
  27358. */
  27359. static getResourceByURL(url:string,index?:number):Resource;
  27360. /**
  27361. * 销毁当前没有被使用的资源,该函数会忽略lock=true的资源。
  27362. * @param group 指定分组。
  27363. */
  27364. static destroyUnusedResources():void;
  27365. /**
  27366. * @private
  27367. */
  27368. protected _id:number;
  27369. /**
  27370. * @private
  27371. */
  27372. private _url:any;
  27373. /**
  27374. * @private
  27375. */
  27376. private _cpuMemory:any;
  27377. /**
  27378. * @private
  27379. */
  27380. private _gpuMemory:any;
  27381. /**
  27382. * @private
  27383. */
  27384. private _destroyed:any;
  27385. /**
  27386. * @private
  27387. */
  27388. protected _referenceCount:number;
  27389. /**
  27390. * 是否加锁,如果true为不能使用自动释放机制。
  27391. */
  27392. lock:boolean;
  27393. /**
  27394. * 名称。
  27395. */
  27396. name:string;
  27397. /**
  27398. * 获取唯一标识ID,通常用于识别。
  27399. */
  27400. get id():number;
  27401. /**
  27402. * 获取资源的URL地址。
  27403. * @return URL地址。
  27404. */
  27405. get url():string;
  27406. /**
  27407. * 内存大小。
  27408. */
  27409. get cpuMemory():number;
  27410. /**
  27411. * 显存大小。
  27412. */
  27413. get gpuMemory():number;
  27414. /**
  27415. * 是否已处理。
  27416. */
  27417. get destroyed():boolean;
  27418. /**
  27419. * 获取资源的引用计数。
  27420. */
  27421. get referenceCount():number;
  27422. /**
  27423. * 创建一个 <code>Resource</code> 实例。
  27424. */
  27425. constructor();
  27426. /**
  27427. * @private
  27428. */
  27429. _setCreateURL(url:string):void;
  27430. /**
  27431. * @private
  27432. */
  27433. protected _recoverResource():void;
  27434. /**
  27435. * @private
  27436. */
  27437. protected _disposeResource():void;
  27438. /**
  27439. * @private
  27440. */
  27441. protected _activeResource():void;
  27442. /**
  27443. * 销毁资源,销毁后资源不能恢复。
  27444. */
  27445. destroy():void;
  27446. }
  27447. }
  27448. declare module laya.resource {
  27449. /**
  27450. * 资源加载完成后调度。
  27451. * @eventType Event.READY
  27452. */
  27453. /**
  27454. * <code>Texture</code> 是一个纹理处理类。
  27455. */
  27456. class Texture extends laya.events.EventDispatcher {
  27457. /**
  27458. * @private 默认 UV 信息。
  27459. */
  27460. static DEF_UV:Float32Array;
  27461. /**
  27462. * @private
  27463. */
  27464. static NO_UV:Float32Array;
  27465. /**
  27466. * @private 反转 UV 信息。
  27467. */
  27468. static INV_UV:Float32Array;
  27469. /**
  27470. * @private
  27471. */
  27472. private static _rect1:any;
  27473. /**
  27474. * @private
  27475. */
  27476. private static _rect2:any;
  27477. /**
  27478. * @private uv的范围
  27479. */
  27480. uvrect:any[];
  27481. /**
  27482. * @private
  27483. */
  27484. private _destroyed:any;
  27485. /**
  27486. * @private
  27487. */
  27488. private _bitmap:any;
  27489. /**
  27490. * @private
  27491. */
  27492. private _referenceCount:any;
  27493. /**
  27494. * 沿 X 轴偏移量。
  27495. */
  27496. offsetX:number;
  27497. /**
  27498. * 沿 Y 轴偏移量。
  27499. */
  27500. offsetY:number;
  27501. /**
  27502. * @private
  27503. */
  27504. private _w:any;
  27505. /**
  27506. * @private
  27507. */
  27508. private _h:any;
  27509. /**
  27510. * 原始宽度(包括被裁剪的透明区域)。
  27511. */
  27512. sourceWidth:number;
  27513. /**
  27514. * 原始高度(包括被裁剪的透明区域)。
  27515. */
  27516. sourceHeight:number;
  27517. /**
  27518. * 图片地址
  27519. */
  27520. url:string;
  27521. /**
  27522. * @private
  27523. */
  27524. scaleRate:number;
  27525. /**
  27526. * 平移 UV。
  27527. * @param offsetX 沿 X 轴偏移量。
  27528. * @param offsetY 沿 Y 轴偏移量。
  27529. * @param uv 需要平移操作的的 UV。
  27530. * @return 平移后的UV。
  27531. */
  27532. static moveUV(offsetX:number,offsetY:number,uv:any[]):any[];
  27533. /**
  27534. * 根据指定资源和坐标、宽高、偏移量等创建 <code>Texture</code> 对象。
  27535. * @param source 绘图资源 Texture2D 或者 Texture对象。
  27536. * @param x 起始绝对坐标 x 。
  27537. * @param y 起始绝对坐标 y 。
  27538. * @param width 宽绝对值。
  27539. * @param height 高绝对值。
  27540. * @param offsetX X 轴偏移量(可选)。 就是[x,y]相对于原始小图片的位置。一般都是正的,表示裁掉了空白边的大小,如果是负的一般表示加了保护边
  27541. * @param offsetY Y 轴偏移量(可选)。
  27542. * @param sourceWidth 原始宽度,包括被裁剪的透明区域(可选)。
  27543. * @param sourceHeight 原始高度,包括被裁剪的透明区域(可选)。
  27544. * @return <code>Texture</code> 对象。
  27545. */
  27546. static create(source:laya.resource.Texture2D|Texture,x:number,y:number,width:number,height:number,offsetX?:number,offsetY?:number,sourceWidth?:number,sourceHeight?:number):Texture;
  27547. /**
  27548. * 截取Texture的一部分区域,生成新的Texture,如果两个区域没有相交,则返回null。
  27549. * @param texture 目标Texture。
  27550. * @param x 相对于目标Texture的x位置。
  27551. * @param y 相对于目标Texture的y位置。
  27552. * @param width 截取的宽度。
  27553. * @param height 截取的高度。
  27554. * @return 返回一个新的Texture。
  27555. */
  27556. static createFromTexture(texture:Texture,x:number,y:number,width:number,height:number):Texture;
  27557. get uv():ArrayLike<number>;
  27558. set uv(value:ArrayLike<number>);
  27559. /**
  27560. * 实际宽度。
  27561. */
  27562. get width():number;
  27563. set width(value:number);
  27564. /**
  27565. * 实际高度。
  27566. */
  27567. get height():number;
  27568. set height(value:number);
  27569. /**
  27570. * 获取位图。
  27571. * @return 位图。
  27572. */
  27573. get bitmap():laya.resource.Texture2D|Texture;
  27574. /**
  27575. * 设置位图。
  27576. * @param 位图 。
  27577. */
  27578. set bitmap(value:laya.resource.Texture2D|Texture);
  27579. /**
  27580. * 获取是否已经销毁。
  27581. * @return 是否已经销毁。
  27582. */
  27583. get destroyed():boolean;
  27584. /**
  27585. * 创建一个 <code>Texture</code> 实例。
  27586. * @param bitmap 位图资源。
  27587. * @param uv UV 数据信息。
  27588. */
  27589. constructor(bitmap?:laya.resource.Texture2D|Texture,uv?:ArrayLike<number>,sourceWidth?:number,sourceHeight?:number);
  27590. /**
  27591. * @private
  27592. */
  27593. private _onLoaded:any;
  27594. /**
  27595. * 获取是否可以使用。
  27596. */
  27597. getIsReady():boolean;
  27598. /**
  27599. * 设置此对象的位图资源、UV数据信息。
  27600. * @param bitmap 位图资源
  27601. * @param uv UV数据信息
  27602. */
  27603. setTo(bitmap?:laya.resource.Texture2D|Texture,uv?:ArrayLike<number>,sourceWidth?:number,sourceHeight?:number):void;
  27604. /**
  27605. * 加载指定地址的图片。
  27606. * @param url 图片地址。
  27607. * @param complete 加载完成回调
  27608. */
  27609. load(url:string,complete?:laya.utils.Handler):void;
  27610. getTexturePixels(x:number,y:number,width:number,height:number):Uint8Array;
  27611. /**
  27612. * 获取Texture上的某个区域的像素点
  27613. * @param x
  27614. * @param y
  27615. * @param width
  27616. * @param height
  27617. * @return 返回像素点集合
  27618. */
  27619. getPixels(x:number,y:number,width:number,height:number):Uint8Array;
  27620. /**
  27621. * 通过url强制恢复bitmap。
  27622. */
  27623. recoverBitmap(onok?:Function):void;
  27624. /**
  27625. * 强制释放Bitmap,无论是否被引用。
  27626. */
  27627. disposeBitmap():void;
  27628. /**
  27629. * 销毁纹理。
  27630. */
  27631. destroy(force?:boolean):void;
  27632. }
  27633. }
  27634. declare module laya.resource {
  27635. /**
  27636. * <code>Texture2D</code> 类用于生成2D纹理。
  27637. */
  27638. class Texture2D extends laya.resource.BaseTexture {
  27639. /**
  27640. * Texture2D资源。
  27641. */
  27642. static TEXTURE2D:string;
  27643. /**
  27644. * 纯灰色纹理。
  27645. */
  27646. static grayTexture:Texture2D;
  27647. /**
  27648. * 纯白色纹理。
  27649. */
  27650. static whiteTexture:Texture2D;
  27651. /**
  27652. * 纯黑色纹理。
  27653. */
  27654. static blackTexture:Texture2D;
  27655. /**
  27656. * 加载Texture2D。
  27657. * @param url Texture2D地址。
  27658. * @param complete 完成回掉。
  27659. */
  27660. static load(url:string,complete:laya.utils.Handler):void;
  27661. /**
  27662. * @inheritDoc
  27663. * @override
  27664. */
  27665. get defaulteTexture():laya.resource.BaseTexture;
  27666. /**
  27667. * 创建一个 <code>Texture2D</code> 实例。
  27668. * @param width 宽。
  27669. * @param height 高。
  27670. * @param format 贴图格式。
  27671. * @param mipmap 是否生成mipmap。
  27672. * @param canRead 是否可读像素,如果为true,会在内存保留像素数据。
  27673. */
  27674. constructor(width?:number,height?:number,format?:laya.resource.TextureFormat,mipmap?:boolean,canRead?:boolean);
  27675. /**
  27676. * 通过图片源填充纹理,可为HTMLImageElement、HTMLCanvasElement、HTMLVideoElement、ImageBitmap、ImageData,
  27677. * 设置之后纹理宽高可能会发生变化。
  27678. */
  27679. loadImageSource(source:any,premultiplyAlpha?:boolean):void;
  27680. /**
  27681. * 通过像素填充纹理。
  27682. * @param pixels 像素。
  27683. * @param miplevel 层级。
  27684. */
  27685. setPixels(pixels:Uint8Array|Uint16Array|Float32Array,miplevel?:number):void;
  27686. /**
  27687. * 通过像素填充部分纹理。
  27688. * @param x X轴像素起点。
  27689. * @param y Y轴像素起点。
  27690. * @param width 像素宽度。
  27691. * @param height 像素高度。
  27692. * @param pixels 像素数组。
  27693. * @param miplevel 层级。
  27694. */
  27695. setSubPixels(x:number,y:number,width:number,height:number,pixels:Uint8Array|Uint16Array|Float32Array,miplevel?:number):void;
  27696. /**
  27697. * 通过压缩数据填充纹理。
  27698. * @param data 压缩数据。
  27699. * @param miplevel 层级。
  27700. */
  27701. setCompressData(data:ArrayBuffer):void;
  27702. /**
  27703. * 返回图片像素。
  27704. * @return 图片像素。
  27705. */
  27706. getPixels():Uint8Array|Uint16Array|Float32Array;
  27707. }
  27708. }
  27709. declare module laya.resource {
  27710. enum TextureDecodeFormat {
  27711. /** 常规解码方式,直接采样纹理颜色。*/
  27712. Normal = 0,
  27713. /** 按照RGBM方式解码并计算最终RGB颜色。 */
  27714. RGBM = 1
  27715. }
  27716. }
  27717. declare module laya.resource {
  27718. enum TextureFormat {
  27719. /**纹理格式_R8G8B8。*/
  27720. R8G8B8 = 0,
  27721. /**纹理格式_R8G8B8A8。*/
  27722. R8G8B8A8 = 1,
  27723. /**RGB格式纹理,R通道5位,G通道6位,B通道5位。*/
  27724. R5G6B5 = 16,
  27725. /**纹理格式_ALPHA8。*/
  27726. Alpha8 = 2,
  27727. /**纹理格式_DXT1。*/
  27728. DXT1 = 3,
  27729. /**纹理格式_DXT5。*/
  27730. DXT5 = 4,
  27731. /**纹理格式_ETC2RGB。*/
  27732. ETC1RGB = 5,
  27733. /**纹理格式_ETC2RGB_PUNCHTHROUGHALPHA。*/
  27734. /**纹理格式_PVRTCRGB_2BPPV。*/
  27735. PVRTCRGB_2BPPV = 9,
  27736. /**纹理格式_PVRTCRGBA_2BPPV。*/
  27737. PVRTCRGBA_2BPPV = 10,
  27738. /**纹理格式_PVRTCRGB_4BPPV。*/
  27739. PVRTCRGB_4BPPV = 11,
  27740. /**纹理格式_PVRTCRGBA_4BPPV。*/
  27741. PVRTCRGBA_4BPPV = 12,
  27742. /**RGBA格式纹理,每个通道32位浮点数。*/
  27743. R32G32B32A32 = 15
  27744. }
  27745. }
  27746. declare module laya.resource {
  27747. /**
  27748. * WebGLRTMgr 管理WebGLRenderTarget的创建和回收
  27749. * TODO 需求不大,管理成本高。先去掉。
  27750. */
  27751. class WebGLRTMgr {
  27752. private static dict:any;
  27753. /**
  27754. * 获得一个renderTarget
  27755. * 暂时先按照严格大小判断。
  27756. * @param w
  27757. * @param h
  27758. * @return
  27759. */
  27760. static getRT(w:number,h:number):laya.resource.RenderTexture2D;
  27761. /**
  27762. * 回收一个renderTarget
  27763. * @param rt
  27764. */
  27765. static releaseRT(rt:laya.resource.RenderTexture2D):void;
  27766. }
  27767. }
  27768. declare module laya.resource {
  27769. enum WarpMode {
  27770. /** 循环平铺。*/
  27771. Repeat = 0,
  27772. /** 超过UV边界后采用最后一个像素。*/
  27773. Clamp = 1
  27774. }
  27775. }
  27776. declare module laya.system {
  27777. /**
  27778. * @private
  27779. */
  27780. class System {
  27781. /**
  27782. * 替换指定名称的定义。用来动态更改类的定义。
  27783. * @param name 属性名。
  27784. * @param classObj 属性值。
  27785. */
  27786. static changeDefinition(name:string,classObj:any):void;
  27787. }
  27788. }
  27789. declare module laya.ui {
  27790. /**
  27791. * 广告插件
  27792. * @author 小松
  27793. * @date -2018-09-19
  27794. */
  27795. class AdvImage extends laya.ui.Image {
  27796. /**
  27797. * 广告列表数据*
  27798. */
  27799. private advsListArr:any;
  27800. /**
  27801. * 资源列表请求地址*
  27802. */
  27803. private resUrl:any;
  27804. /**
  27805. * 加载请求实例*
  27806. */
  27807. private _http:any;
  27808. /**
  27809. * 广告列表信息*
  27810. */
  27811. private _data:any;
  27812. /**
  27813. * 每6分钟重新请求一次新广告列表*
  27814. */
  27815. private _resquestTime:any;
  27816. /**
  27817. * 微信跳转appid*
  27818. */
  27819. private _appid:any;
  27820. /**
  27821. * 播放索引*
  27822. */
  27823. private _playIndex:any;
  27824. /**
  27825. * 轮播间隔时间*
  27826. */
  27827. private _lunboTime:any;
  27828. constructor(skin?:string);
  27829. /**
  27830. * 设置导量加载地址*
  27831. */
  27832. private setLoadUrl:any;
  27833. private init:any;
  27834. private initEvent:any;
  27835. private onAdvsImgClick:any;
  27836. private revertAdvsData:any;
  27837. /**
  27838. * 当前小游戏环境是否支持游戏跳转功能*
  27839. */
  27840. isSupportJump():boolean;
  27841. /**
  27842. * 跳转游戏
  27843. * @param callBack Function 回调参数说明:type 0 跳转成功;1跳转失败;2跳转接口调用成功
  27844. */
  27845. private jumptoGame:any;
  27846. private updateAdvsInfo:any;
  27847. private onLunbo:any;
  27848. /**
  27849. * 获取轮播数据*
  27850. */
  27851. private getCurrentAppidObj:any;
  27852. /**
  27853. * 获取广告列表数据信息
  27854. */
  27855. private onGetAdvsListData:any;
  27856. /**
  27857. * 生成指定范围的随机数
  27858. * @param minNum 最小值
  27859. * @param maxNum 最大值
  27860. */
  27861. static randRange(minNum:any,maxNum:any):number;
  27862. /**
  27863. * @private 请求出错侦的听处理函数。
  27864. * @param e 事件对象。
  27865. */
  27866. private _onError:any;
  27867. /**
  27868. * @private 请求消息返回的侦听处理函数。
  27869. * @param e 事件对象。
  27870. */
  27871. private _onLoad:any;
  27872. /**
  27873. * @private 请求错误的处理函数。
  27874. * @param message 错误信息。
  27875. */
  27876. private error:any;
  27877. /**
  27878. * @private 请求成功完成的处理函数。
  27879. */
  27880. private complete:any;
  27881. /**
  27882. * 转换数据*
  27883. */
  27884. private getAdvsQArr:any;
  27885. /**
  27886. * @private 清除当前请求。
  27887. */
  27888. private clear:any;
  27889. /**
  27890. * @override
  27891. * @param destroyChild
  27892. */
  27893. destroy(destroyChild?:boolean):void;
  27894. }
  27895. }
  27896. declare module laya.ui {
  27897. /**
  27898. * <code>AutoBitmap</code> 类是用于表示位图图像或绘制图形的显示对象。
  27899. * <p>封装了位置,宽高及九宫格的处理,供UI组件使用。</p>
  27900. */
  27901. class AutoBitmap extends laya.display.Graphics {
  27902. /**
  27903. * @private 是否自动缓存命令
  27904. */
  27905. autoCacheCmd:boolean;
  27906. /**
  27907. * @private 宽度
  27908. */
  27909. private _width:any;
  27910. /**
  27911. * @private 高度
  27912. */
  27913. private _height:any;
  27914. /**
  27915. * @private 源数据
  27916. */
  27917. private _source:any;
  27918. /**
  27919. * @private 网格数据
  27920. */
  27921. private _sizeGrid:any;
  27922. /**
  27923. * @private
  27924. */
  27925. protected _isChanged:boolean;
  27926. uv:number[];
  27927. /**
  27928. * @inheritDoc
  27929. * @override
  27930. */
  27931. destroy():void;
  27932. /**
  27933. * 当前实例的有效缩放网格数据。
  27934. * <p>如果设置为null,则在应用任何缩放转换时,将正常缩放整个显示对象。</p>
  27935. * <p>数据格式:[上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)]。
  27936. * <ul><li>例如:[4,4,4,4,1]</li></ul></p>
  27937. * <p> <code>sizeGrid</code> 的值如下所示:
  27938. * <ol>
  27939. * <li>上边距</li>
  27940. * <li>右边距</li>
  27941. * <li>下边距</li>
  27942. * <li>左边距</li>
  27943. * <li>是否重复填充(值为0:不重复填充,1:重复填充)</li>
  27944. * </ol></p>
  27945. * <p>当定义 <code>sizeGrid</code> 属性时,该显示对象被分割到以 <code>sizeGrid</code> 数据中的"上边距,右边距,下边距,左边距" 组成的矩形为基础的具有九个区域的网格中,该矩形定义网格的中心区域。网格的其它八个区域如下所示:
  27946. * <ul>
  27947. * <li>矩形上方的区域</li>
  27948. * <li>矩形外的右上角</li>
  27949. * <li>矩形左侧的区域</li>
  27950. * <li>矩形右侧的区域</li>
  27951. * <li>矩形外的左下角</li>
  27952. * <li>矩形下方的区域</li>
  27953. * <li>矩形外的右下角</li>
  27954. * <li>矩形外的左上角</li>
  27955. * </ul>
  27956. * 同时也支持3宫格,比如0,4,0,4,1为水平3宫格,4,0,4,0,1为垂直3宫格,3宫格性能比9宫格高。
  27957. * </p>
  27958. */
  27959. get sizeGrid():number[];
  27960. set sizeGrid(value:number[]);
  27961. /**
  27962. * 表示显示对象的宽度,以像素为单位。
  27963. */
  27964. get width():number;
  27965. set width(value:number);
  27966. /**
  27967. * 表示显示对象的高度,以像素为单位。
  27968. */
  27969. get height():number;
  27970. set height(value:number);
  27971. /**
  27972. * 对象的纹理资源。
  27973. * @see laya.resource.Texture
  27974. */
  27975. get source():laya.resource.Texture;
  27976. set source(value:laya.resource.Texture);
  27977. /**
  27978. * @private
  27979. */
  27980. protected _setChanged():void;
  27981. /**
  27982. * @private 修改纹理资源。
  27983. */
  27984. protected changeSource():void;
  27985. private drawBitmap:any;
  27986. private static getTexture:any;
  27987. }
  27988. }
  27989. declare module laya.ui {
  27990. /**
  27991. * <code>Box</code> 类是一个控件容器类。
  27992. */
  27993. class Box extends laya.ui.UIComponent implements laya.ui.IBox {
  27994. private _bgColor:any;
  27995. /**
  27996. * @inheritDoc
  27997. * @override
  27998. */
  27999. set dataSource(value:any);
  28000. /**
  28001. * @inheritDoc
  28002. * @override
  28003. */
  28004. get dataSource():any;
  28005. /**
  28006. * 背景颜色
  28007. */
  28008. get bgColor():string;
  28009. set bgColor(value:string);
  28010. private _onResize:any;
  28011. }
  28012. }
  28013. declare module laya.ui {
  28014. /**
  28015. * 当按钮的选中状态( <code>selected</code> 属性)发生改变时调度。
  28016. * @eventType laya.events.Event
  28017. */
  28018. /**
  28019. * <code>Button</code> 组件用来表示常用的多态按钮。 <code>Button</code> 组件可显示文本标签、图标或同时显示两者。 *
  28020. * <p>可以是单态,两态和三态,默认三态(up,over,down)。</p>
  28021. * @example <caption>以下示例代码,创建了一个 <code>Button</code> 实例。</caption>
  28022. package
  28023. {
  28024. import laya.ui.Button;
  28025. import laya.utils.Handler;
  28026. public class Button_Example
  28027. {
  28028. public function Button_Example()
  28029. {
  28030. Laya.init(640, 800);//设置游戏画布宽高。
  28031. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28032. Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete));//加载资源。
  28033. }
  28034. private function onLoadComplete():void
  28035. {
  28036. trace("资源加载完成!");
  28037. var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。
  28038. button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。
  28039. button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。
  28040. button.clickHandler = new Handler(this, onClickButton,[button]);//设置 button 的点击事件处理器。
  28041. Laya.stage.addChild(button);//将此 button 对象添加到显示列表。
  28042. }
  28043. private function onClickButton(button:Button):void
  28044. {
  28045. trace("按钮button被点击了!");
  28046. }
  28047. }
  28048. }
  28049. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  28050. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28051. Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源
  28052. function loadComplete()
  28053. {
  28054. console.log("资源加载完成!");
  28055. var button = new laya.ui.Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。
  28056. button.x =100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。
  28057. button.y =100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。
  28058. button.clickHandler = laya.utils.Handler.create(this,onClickButton,[button],false);//设置 button 的点击事件处理函数。
  28059. Laya.stage.addChild(button);//将此 button 对象添加到显示列表。
  28060. }
  28061. function onClickButton(button)
  28062. {
  28063. console.log("按钮被点击了。",button);
  28064. }
  28065. * @example import Button=laya.ui.Button;
  28066. import Handler=laya.utils.Handler;
  28067. class Button_Example{
  28068. constructor()
  28069. {
  28070. Laya.init(640, 800);
  28071. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28072. Laya.loader.load("resource/ui/button.png", laya.utils.Handler.create(this,this.onLoadComplete));//加载资源。
  28073. }
  28074. private onLoadComplete()
  28075. {
  28076. var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。
  28077. button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。
  28078. button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。
  28079. button.clickHandler = new Handler(this, this.onClickButton,[button]);//设置 button 的点击事件处理器。
  28080. Laya.stage.addChild(button);//将此 button 对象添加到显示列表。
  28081. }
  28082. private onClickButton(button:Button):void
  28083. {
  28084. console.log("按钮button被点击了!")
  28085. }
  28086. }
  28087. */
  28088. class Button extends laya.ui.UIComponent implements laya.ui.ISelect {
  28089. /**
  28090. * 按钮状态集。
  28091. */
  28092. protected static stateMap:any;
  28093. /**
  28094. * 指定按钮按下时是否是切换按钮的显示状态。
  28095. * @example 以下示例代码,创建了一个 <code>Button</code> 实例,并设置为切换按钮。
  28096. * @example package
  28097. {
  28098. import laya.ui.Button;
  28099. import laya.utils.Handler;
  28100. public class Button_toggle
  28101. {
  28102. public function Button_toggle()
  28103. {
  28104. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  28105. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28106. Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete));
  28107. }
  28108. private function onLoadComplete():void
  28109. {
  28110. trace("资源加载完成!");
  28111. var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 实例对象 button ,传入它的皮肤skin和标签label。
  28112. button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。
  28113. button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。
  28114. button.toggle = true;//设置 button 对象为切换按钮。
  28115. button.clickHandler = new Handler(this, onClickButton,[button]);//设置 button 的点击事件处理器。
  28116. Laya.stage.addChild(button);//将此 button 对象添加到显示列表。
  28117. }
  28118. private function onClickButton(button:Button):void
  28119. {
  28120. trace("button.selected = "+ button.selected);
  28121. }
  28122. }
  28123. }
  28124. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  28125. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28126. Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源
  28127. function loadComplete()
  28128. {
  28129. console.log("资源加载完成!");
  28130. var button = new laya.ui.Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。
  28131. button.x =100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。
  28132. button.y =100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。
  28133. button.toggle = true;//设置 button 对象为切换按钮。
  28134. button.clickHandler = laya.utils.Handler.create(this,onClickButton,[button],false);//设置 button 的点击事件处理器。
  28135. Laya.stage.addChild(button);//将此 button 对象添加到显示列表。
  28136. }
  28137. function onClickButton(button)
  28138. {
  28139. console.log("button.selected = ",button.selected);
  28140. }
  28141. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  28142. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28143. Laya.loader.load("button.png", null,null, null, null, null);//加载资源
  28144. function loadComplete() {
  28145. console.log("资源加载完成!");
  28146. var button:laya.ui.Button = new laya.ui.Button("button.png", "label");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。
  28147. button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。
  28148. button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。
  28149. button.toggle = true;//设置 button 对象为切换按钮。
  28150. button.clickHandler = laya.utils.Handler.create(this, onClickButton, [button], false);//设置 button 的点击事件处理器。
  28151. Laya.stage.addChild(button);//将此 button 对象添加到显示列表。
  28152. }
  28153. function onClickButton(button) {
  28154. console.log("button.selected = ", button.selected);
  28155. }
  28156. */
  28157. toggle:boolean;
  28158. /**
  28159. * @private
  28160. */
  28161. protected _bitmap:laya.ui.AutoBitmap;
  28162. /**
  28163. * @private 按钮上的文本。
  28164. */
  28165. protected _text:laya.display.Text;
  28166. /**
  28167. * @private 按钮文本标签的颜色值。
  28168. */
  28169. protected _labelColors:any[];
  28170. /**
  28171. * @private 按钮文本标签描边的颜色值。
  28172. */
  28173. protected _strokeColors:any[];
  28174. /**
  28175. * @private 按钮的状态值。
  28176. */
  28177. protected _state:number;
  28178. /**
  28179. * @private 表示按钮的选中状态。
  28180. */
  28181. protected _selected:boolean;
  28182. /**
  28183. * @private 按钮的皮肤资源。
  28184. */
  28185. protected _skin:string;
  28186. /**
  28187. * @private 指定此显示对象是否自动计算并改变大小等属性。
  28188. */
  28189. protected _autoSize:boolean;
  28190. /**
  28191. * @private 按钮的状态数。
  28192. */
  28193. protected _stateNum:number;
  28194. /**
  28195. * @private 源数据。
  28196. */
  28197. protected _sources:any[];
  28198. /**
  28199. * @private 按钮的点击事件函数。
  28200. */
  28201. protected _clickHandler:laya.utils.Handler;
  28202. /**
  28203. * @private
  28204. */
  28205. protected _stateChanged:boolean;
  28206. /**
  28207. * 创建一个新的 <code>Button</code> 类实例。
  28208. * @param skin 皮肤资源地址。
  28209. * @param label 按钮的文本内容。
  28210. */
  28211. constructor(skin?:string,label?:string);
  28212. /**
  28213. * @inheritDoc
  28214. * @override
  28215. */
  28216. destroy(destroyChild?:boolean):void;
  28217. /**
  28218. * @inheritDoc
  28219. * @override
  28220. */
  28221. protected createChildren():void;
  28222. /**
  28223. * @private
  28224. */
  28225. protected createText():void;
  28226. /**
  28227. * @inheritDoc
  28228. * @override
  28229. */
  28230. protected initialize():void;
  28231. /**
  28232. * 对象的 <code>Event.MOUSE_OVER、Event.MOUSE_OUT、Event.MOUSE_DOWN、Event.MOUSE_UP、Event.CLICK</code> 事件侦听处理函数。
  28233. * @param e Event 对象。
  28234. */
  28235. protected onMouse(e:laya.events.Event):void;
  28236. /**
  28237. * <p>对象的皮肤资源地址。</p>
  28238. * 支持单态,两态和三态,用 <code>stateNum</code> 属性设置
  28239. * <p>对象的皮肤地址,以字符串表示。</p>
  28240. * @see #stateNum
  28241. */
  28242. get skin():string;
  28243. set skin(value:string);
  28244. protected _skinLoaded():void;
  28245. /**
  28246. * <p>指定对象的状态值,以数字表示。</p>
  28247. * <p>默认值为3。此值决定皮肤资源图片的切割方式。</p>
  28248. * <p><b>取值:</b>
  28249. * <li>1:单态。图片不做切割,按钮的皮肤状态只有一种。</li>
  28250. * <li>2:两态。图片将以竖直方向被等比切割为2部分,从上向下,依次为
  28251. * 弹起状态皮肤、
  28252. * 按下和经过及选中状态皮肤。</li>
  28253. * <li>3:三态。图片将以竖直方向被等比切割为3部分,从上向下,依次为
  28254. * 弹起状态皮肤、
  28255. * 经过状态皮肤、
  28256. * 按下和选中状态皮肤</li>
  28257. * </p>
  28258. */
  28259. get stateNum():number;
  28260. set stateNum(value:number);
  28261. /**
  28262. * @private 对象的资源切片发生改变。
  28263. */
  28264. protected changeClips():void;
  28265. /**
  28266. * @inheritDoc
  28267. * @override
  28268. */
  28269. protected measureWidth():number;
  28270. /**
  28271. * @inheritDoc
  28272. * @override
  28273. */
  28274. protected measureHeight():number;
  28275. /**
  28276. * 按钮的文本内容。
  28277. */
  28278. get label():string;
  28279. set label(value:string);
  28280. /**
  28281. * 表示按钮的选中状态。
  28282. * <p>如果值为true,表示该对象处于选中状态。否则该对象处于未选中状态。</p>
  28283. * @implements
  28284. */
  28285. get selected():boolean;
  28286. set selected(value:boolean);
  28287. /**
  28288. * 对象的状态值。
  28289. * @see #stateMap
  28290. */
  28291. protected get state():number;
  28292. protected set state(value:number);
  28293. /**
  28294. * @private 改变对象的状态。
  28295. */
  28296. protected changeState():void;
  28297. /**
  28298. * 表示按钮各个状态下的文本颜色。
  28299. * <p><b>格式:</b> "upColor,overColor,downColor,disableColor"。</p>
  28300. */
  28301. get labelColors():string;
  28302. set labelColors(value:string);
  28303. /**
  28304. * 表示按钮各个状态下的描边颜色。
  28305. * <p><b>格式:</b> "upColor,overColor,downColor,disableColor"。</p>
  28306. */
  28307. get strokeColors():string;
  28308. set strokeColors(value:string);
  28309. /**
  28310. * 表示按钮文本标签的边距。
  28311. * <p><b>格式:</b>"上边距,右边距,下边距,左边距"。</p>
  28312. */
  28313. get labelPadding():string;
  28314. set labelPadding(value:string);
  28315. /**
  28316. * 表示按钮文本标签的字体大小。
  28317. * @see laya.display.Text.fontSize()
  28318. */
  28319. get labelSize():number;
  28320. set labelSize(value:number);
  28321. /**
  28322. * <p>描边宽度(以像素为单位)。</p>
  28323. * 默认值0,表示不描边。
  28324. * @see laya.display.Text.stroke()
  28325. */
  28326. get labelStroke():number;
  28327. set labelStroke(value:number);
  28328. /**
  28329. * <p>描边颜色,以字符串表示。</p>
  28330. * 默认值为 "#000000"(黑色);
  28331. * @see laya.display.Text.strokeColor()
  28332. */
  28333. get labelStrokeColor():string;
  28334. set labelStrokeColor(value:string);
  28335. /**
  28336. * 表示按钮文本标签是否为粗体字。
  28337. * @see laya.display.Text.bold()
  28338. */
  28339. get labelBold():boolean;
  28340. set labelBold(value:boolean);
  28341. /**
  28342. * 表示按钮文本标签的字体名称,以字符串形式表示。
  28343. * @see laya.display.Text.font()
  28344. */
  28345. get labelFont():string;
  28346. set labelFont(value:string);
  28347. /**
  28348. * 标签对齐模式,默认为居中对齐。
  28349. */
  28350. get labelAlign():string;
  28351. set labelAlign(value:string);
  28352. /**
  28353. * 对象的点击事件处理器函数(无默认参数)。
  28354. * @implements
  28355. */
  28356. get clickHandler():laya.utils.Handler;
  28357. set clickHandler(value:laya.utils.Handler);
  28358. /**
  28359. * 按钮文本标签 <code>Text</code> 控件。
  28360. */
  28361. get text():laya.display.Text;
  28362. /**
  28363. * <p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>
  28364. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  28365. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  28366. * @see laya.ui.AutoBitmap.sizeGrid
  28367. */
  28368. get sizeGrid():string;
  28369. set sizeGrid(value:string);
  28370. /**
  28371. * @inheritDoc
  28372. * @override
  28373. */
  28374. set width(value:number);
  28375. /**
  28376. * @inheritDoc
  28377. * @override
  28378. */
  28379. get width():number;
  28380. /**
  28381. * @inheritDoc
  28382. * @override
  28383. */
  28384. set height(value:number);
  28385. /**
  28386. * @inheritDoc
  28387. * @override
  28388. */
  28389. get height():number;
  28390. /**
  28391. * @inheritDoc
  28392. * @override
  28393. */
  28394. set dataSource(value:any);
  28395. /**
  28396. * @inheritDoc
  28397. * @override
  28398. */
  28399. get dataSource():any;
  28400. /**
  28401. * 图标x,y偏移,格式:100,100
  28402. */
  28403. get iconOffset():string;
  28404. set iconOffset(value:string);
  28405. /**
  28406. * @private
  28407. */
  28408. protected _setStateChanged():void;
  28409. }
  28410. }
  28411. declare module laya.ui {
  28412. /**
  28413. * 当按钮的选中状态( <code>selected</code> 属性)发生改变时调度。
  28414. * @eventType laya.events.Event
  28415. */
  28416. /**
  28417. * <code>CheckBox</code> 组件显示一个小方框,该方框内可以有选中标记。
  28418. * <code>CheckBox</code> 组件还可以显示可选的文本标签,默认该标签位于 CheckBox 右侧。
  28419. * <p><code>CheckBox</code> 使用 <code>dataSource</code>赋值时的的默认属性是:<code>selected</code>。</p>
  28420. * @example <caption>以下示例代码,创建了一个 <code>CheckBox</code> 实例。</caption>
  28421. package
  28422. {
  28423. import laya.ui.CheckBox;
  28424. import laya.utils.Handler;
  28425. public class CheckBox_Example
  28426. {
  28427. public function CheckBox_Example()
  28428. {
  28429. Laya.init(640, 800);//设置游戏画布宽高。
  28430. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28431. Laya.loader.load("resource/ui/check.png", Handler.create(this,onLoadComplete));//加载资源。
  28432. }
  28433. private function onLoadComplete():void
  28434. {
  28435. trace("资源加载完成!");
  28436. var checkBox:CheckBox = new CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的实例对象 checkBox ,传入它的皮肤skin和标签label。
  28437. checkBox.x = 100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。
  28438. checkBox.y = 100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。
  28439. checkBox.clickHandler = new Handler(this, onClick, [checkBox]);//设置 checkBox 的点击事件处理器。
  28440. Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。
  28441. }
  28442. private function onClick(checkBox:CheckBox):void
  28443. {
  28444. trace("输出选中状态: checkBox.selected = " + checkBox.selected);
  28445. }
  28446. }
  28447. }
  28448. * @example Laya.init(640, 800);//设置游戏画布宽高
  28449. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  28450. Laya.loader.load("resource/ui/check.png",laya.utils.Handler.create(this,loadComplete));//加载资源
  28451. function loadComplete()
  28452. {
  28453. console.log("资源加载完成!");
  28454. var checkBox:laya.ui.CheckBox= new laya.ui.CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的类的实例对象 checkBox ,传入它的皮肤skin和标签label。
  28455. checkBox.x =100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。
  28456. checkBox.y =100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。
  28457. checkBox.clickHandler = new laya.utils.Handler(this,this.onClick,[checkBox],false);//设置 checkBox 的点击事件处理器。
  28458. Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。
  28459. }
  28460. function onClick(checkBox)
  28461. {
  28462. console.log("checkBox.selected = ",checkBox.selected);
  28463. }
  28464. * @example import CheckBox= laya.ui.CheckBox;
  28465. import Handler=laya.utils.Handler;
  28466. class CheckBox_Example{
  28467. constructor()
  28468. {
  28469. Laya.init(640, 800);
  28470. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28471. Laya.loader.load("resource/ui/check.png", Handler.create(this,this.onLoadComplete));//加载资源。
  28472. }
  28473. private onLoadComplete()
  28474. {
  28475. var checkBox:CheckBox = new CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的实例对象 checkBox ,传入它的皮肤skin和标签label。
  28476. checkBox.x = 100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。
  28477. checkBox.y = 100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。
  28478. checkBox.clickHandler = new Handler(this, this.onClick,[checkBox]);//设置 checkBox 的点击事件处理器。
  28479. Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。
  28480. }
  28481. private onClick(checkBox:CheckBox):void
  28482. {
  28483. console.log("输出选中状态: checkBox.selected = " + checkBox.selected);
  28484. }
  28485. }
  28486. */
  28487. class CheckBox extends laya.ui.Button {
  28488. /**
  28489. * 创建一个新的 <code>CheckBox</code> 组件实例。
  28490. * @param skin 皮肤资源地址。
  28491. * @param label 文本标签的内容。
  28492. */
  28493. constructor(skin?:string,label?:string);
  28494. /**
  28495. * @inheritDoc
  28496. * @override
  28497. */
  28498. protected preinitialize():void;
  28499. /**
  28500. * @inheritDoc
  28501. * @override
  28502. */
  28503. protected initialize():void;
  28504. /**
  28505. * @inheritDoc
  28506. * @override
  28507. */
  28508. set dataSource(value:any);
  28509. /**
  28510. * @inheritDoc
  28511. * @override
  28512. */
  28513. get dataSource():any;
  28514. }
  28515. }
  28516. declare module laya.ui {
  28517. /**
  28518. * 图片加载完成后调度。
  28519. * @eventType Event.LOADED
  28520. */
  28521. /**
  28522. * 当前帧发生变化后调度。
  28523. * @eventType laya.events.Event
  28524. */
  28525. /**
  28526. * <p> <code>Clip</code> 类是位图切片动画。</p>
  28527. * <p> <code>Clip</code> 可将一张图片,按横向分割数量 <code>clipX</code> 、竖向分割数量 <code>clipY</code> ,
  28528. * 或横向分割每个切片的宽度 <code>clipWidth</code> 、竖向分割每个切片的高度 <code>clipHeight</code> ,
  28529. * 从左向右,从上到下,分割组合为一个切片动画。</p>
  28530. * Image和Clip组件是唯一支持异步加载的两个组件,比如clip.skin = "abc/xxx.png",其他UI组件均不支持异步加载。
  28531. * @example <caption>以下示例代码,创建了一个 <code>Clip</code> 实例。</caption>
  28532. package
  28533. {
  28534. import laya.ui.Clip;
  28535. public class Clip_Example
  28536. {
  28537. private var clip:Clip;
  28538. public function Clip_Example()
  28539. {
  28540. Laya.init(640, 800);//设置游戏画布宽高。
  28541. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28542. onInit();
  28543. }
  28544. private function onInit():void
  28545. {
  28546. clip = new Clip("resource/ui/clip_num.png", 10, 1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。
  28547. clip.autoPlay = true;//设置 clip 动画自动播放。
  28548. clip.interval = 100;//设置 clip 动画的播放时间间隔。
  28549. clip.x = 100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。
  28550. clip.y = 100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。
  28551. clip.on(Event.CLICK, this, onClick);//给 clip 添加点击事件函数侦听。
  28552. Laya.stage.addChild(clip);//将此 clip 对象添加到显示列表。
  28553. }
  28554. private function onClick():void
  28555. {
  28556. trace("clip 的点击事件侦听处理函数。clip.total="+ clip.total);
  28557. if (clip.isPlaying == true)
  28558. {
  28559. clip.stop();//停止动画。
  28560. }else {
  28561. clip.play();//播放动画。
  28562. }
  28563. }
  28564. }
  28565. }
  28566. * @example Laya.init(640, 800);//设置游戏画布宽高
  28567. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  28568. var clip;
  28569. Laya.loader.load("resource/ui/clip_num.png",laya.utils.Handler.create(this,loadComplete));//加载资源
  28570. function loadComplete() {
  28571. console.log("资源加载完成!");
  28572. clip = new laya.ui.Clip("resource/ui/clip_num.png",10,1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。
  28573. clip.autoPlay = true;//设置 clip 动画自动播放。
  28574. clip.interval = 100;//设置 clip 动画的播放时间间隔。
  28575. clip.x =100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。
  28576. clip.y =100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。
  28577. clip.on(Event.CLICK,this,onClick);//给 clip 添加点击事件函数侦听。
  28578. Laya.stage.addChild(clip);//将此 clip 对象添加到显示列表。
  28579. }
  28580. function onClick()
  28581. {
  28582. console.log("clip 的点击事件侦听处理函数。");
  28583. if(clip.isPlaying == true)
  28584. {
  28585. clip.stop();
  28586. }else {
  28587. clip.play();
  28588. }
  28589. }
  28590. * @example import Clip = laya.ui.Clip;
  28591. import Handler = laya.utils.Handler;
  28592. class Clip_Example {
  28593. private clip: Clip;
  28594. constructor() {
  28595. Laya.init(640, 800);//设置游戏画布宽高。
  28596. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28597. this.onInit();
  28598. }
  28599. private onInit(): void {
  28600. this.clip = new Clip("resource/ui/clip_num.png", 10, 1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。
  28601. this.clip.autoPlay = true;//设置 clip 动画自动播放。
  28602. this.clip.interval = 100;//设置 clip 动画的播放时间间隔。
  28603. this.clip.x = 100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。
  28604. this.clip.y = 100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。
  28605. this.clip.on(laya.events.Event.CLICK, this, this.onClick);//给 clip 添加点击事件函数侦听。
  28606. Laya.stage.addChild(this.clip);//将此 clip 对象添加到显示列表。
  28607. }
  28608. private onClick(): void {
  28609. console.log("clip 的点击事件侦听处理函数。clip.total=" + this.clip.total);
  28610. if (this.clip.isPlaying == true) {
  28611. this.clip.stop();//停止动画。
  28612. } else {
  28613. this.clip.play();//播放动画。
  28614. }
  28615. }
  28616. }
  28617. */
  28618. class Clip extends laya.ui.UIComponent {
  28619. /**
  28620. * @private
  28621. */
  28622. protected _sources:any[];
  28623. /**
  28624. * @private
  28625. */
  28626. protected _bitmap:laya.ui.AutoBitmap;
  28627. /**
  28628. * @private
  28629. */
  28630. protected _skin:string;
  28631. /**
  28632. * @private
  28633. */
  28634. protected _clipX:number;
  28635. /**
  28636. * @private
  28637. */
  28638. protected _clipY:number;
  28639. /**
  28640. * @private
  28641. */
  28642. protected _clipWidth:number;
  28643. /**
  28644. * @private
  28645. */
  28646. protected _clipHeight:number;
  28647. /**
  28648. * @private
  28649. */
  28650. protected _autoPlay:boolean;
  28651. /**
  28652. * @private
  28653. */
  28654. protected _interval:number;
  28655. /**
  28656. * @private
  28657. */
  28658. protected _complete:laya.utils.Handler;
  28659. /**
  28660. * @private
  28661. */
  28662. protected _isPlaying:boolean;
  28663. /**
  28664. * @private
  28665. */
  28666. protected _index:number;
  28667. /**
  28668. * @private
  28669. */
  28670. protected _clipChanged:boolean;
  28671. /**
  28672. * @private
  28673. */
  28674. protected _group:string;
  28675. /**
  28676. * @private
  28677. */
  28678. protected _toIndex:number;
  28679. /**
  28680. * 创建一个新的 <code>Clip</code> 示例。
  28681. * @param url 资源类库名或者地址
  28682. * @param clipX x方向分割个数
  28683. * @param clipY y方向分割个数
  28684. */
  28685. constructor(url?:string,clipX?:number,clipY?:number);
  28686. /**
  28687. * @inheritDoc
  28688. * @override
  28689. */
  28690. destroy(destroyChild?:boolean):void;
  28691. /**
  28692. * 销毁对象并释放加载的皮肤资源。
  28693. */
  28694. dispose():void;
  28695. /**
  28696. * @inheritDoc
  28697. * @override
  28698. */
  28699. protected createChildren():void;
  28700. /**
  28701. * @private
  28702. * @override
  28703. */
  28704. protected _onDisplay(e?:boolean):void;
  28705. /**
  28706. * @copy laya.ui.Image#skin
  28707. */
  28708. get skin():string;
  28709. set skin(value:string);
  28710. protected _skinLoaded():void;
  28711. /**
  28712. * X轴(横向)切片数量。
  28713. */
  28714. get clipX():number;
  28715. set clipX(value:number);
  28716. /**
  28717. * Y轴(竖向)切片数量。
  28718. */
  28719. get clipY():number;
  28720. set clipY(value:number);
  28721. /**
  28722. * 横向分割时每个切片的宽度,与 <code>clipX</code> 同时设置时优先级高于 <code>clipX</code> 。
  28723. */
  28724. get clipWidth():number;
  28725. set clipWidth(value:number);
  28726. /**
  28727. * 竖向分割时每个切片的高度,与 <code>clipY</code> 同时设置时优先级高于 <code>clipY</code> 。
  28728. */
  28729. get clipHeight():number;
  28730. set clipHeight(value:number);
  28731. /**
  28732. * @private 改变切片的资源、切片的大小。
  28733. */
  28734. protected changeClip():void;
  28735. /**
  28736. * @private 加载切片图片资源完成函数。
  28737. * @param url 资源地址。
  28738. * @param img 纹理。
  28739. */
  28740. protected loadComplete(url:string,img:laya.resource.Texture):void;
  28741. /**
  28742. * 源数据。
  28743. */
  28744. get sources():any[];
  28745. set sources(value:any[]);
  28746. /**
  28747. * 资源分组。
  28748. */
  28749. get group():string;
  28750. set group(value:string);
  28751. /**
  28752. * @inheritDoc
  28753. * @override
  28754. */
  28755. set width(value:number);
  28756. /**
  28757. * @inheritDoc
  28758. * @override
  28759. */
  28760. get width():number;
  28761. /**
  28762. * @inheritDoc
  28763. * @override
  28764. */
  28765. set height(value:number);
  28766. /**
  28767. * @inheritDoc
  28768. * @override
  28769. */
  28770. get height():number;
  28771. /**
  28772. * @inheritDoc
  28773. * @override
  28774. */
  28775. protected measureWidth():number;
  28776. /**
  28777. * @inheritDoc
  28778. * @override
  28779. */
  28780. protected measureHeight():number;
  28781. /**
  28782. * <p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>
  28783. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  28784. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  28785. * @see laya.ui.AutoBitmap.sizeGrid
  28786. */
  28787. get sizeGrid():string;
  28788. set sizeGrid(value:string);
  28789. /**
  28790. * 当前帧索引。
  28791. */
  28792. get index():number;
  28793. set index(value:number);
  28794. /**
  28795. * 切片动画的总帧数。
  28796. */
  28797. get total():number;
  28798. /**
  28799. * 表示是否自动播放动画,若自动播放值为true,否则值为false;
  28800. * <p>可控制切片动画的播放、停止。</p>
  28801. */
  28802. get autoPlay():boolean;
  28803. set autoPlay(value:boolean);
  28804. /**
  28805. * 表示动画播放间隔时间(以毫秒为单位)。
  28806. */
  28807. get interval():number;
  28808. set interval(value:number);
  28809. /**
  28810. * 表示动画的当前播放状态。
  28811. * 如果动画正在播放中,则为true,否则为flash。
  28812. */
  28813. get isPlaying():boolean;
  28814. set isPlaying(value:boolean);
  28815. /**
  28816. * 播放动画。
  28817. * @param from 开始索引
  28818. * @param to 结束索引,-1为不限制
  28819. */
  28820. play(from?:number,to?:number):void;
  28821. /**
  28822. * @private
  28823. */
  28824. protected _loop():void;
  28825. /**
  28826. * 停止动画。
  28827. */
  28828. stop():void;
  28829. /**
  28830. * @inheritDoc
  28831. * @override
  28832. */
  28833. set dataSource(value:any);
  28834. /**
  28835. * @inheritDoc
  28836. * @override
  28837. */
  28838. get dataSource():any;
  28839. /**
  28840. * <code>AutoBitmap</code> 位图实例。
  28841. */
  28842. get bitmap():laya.ui.AutoBitmap;
  28843. /**
  28844. * @private
  28845. */
  28846. protected _setClipChanged():void;
  28847. }
  28848. }
  28849. declare module laya.ui {
  28850. /**
  28851. * 选择项改变后调度。
  28852. * @eventType laya.events.Event
  28853. */
  28854. /**
  28855. * <code>ColorPicker</code> 组件将显示包含多个颜色样本的列表,用户可以从中选择颜色。
  28856. * @example <caption>以下示例代码,创建了一个 <code>ColorPicker</code> 实例。</caption>
  28857. package
  28858. {
  28859. import laya.ui.ColorPicker;
  28860. import laya.utils.Handler;
  28861. public class ColorPicker_Example
  28862. {
  28863. public function ColorPicker_Example()
  28864. {
  28865. Laya.init(640, 800);//设置游戏画布宽高。
  28866. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28867. Laya.loader.load("resource/ui/color.png", Handler.create(this,onLoadComplete));//加载资源。
  28868. }
  28869. private function onLoadComplete():void
  28870. {
  28871. trace("资源加载完成!");
  28872. var colorPicket:ColorPicker = new ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。
  28873. colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。
  28874. colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。
  28875. colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。
  28876. colorPicket.changeHandler = new Handler(this, onChangeColor,[colorPicket]);//设置 colorPicket 的颜色改变回调函数。
  28877. Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。
  28878. }
  28879. private function onChangeColor(colorPicket:ColorPicker):void
  28880. {
  28881. trace("当前选择的颜色: " + colorPicket.selectedColor);
  28882. }
  28883. }
  28884. }
  28885. * @example Laya.init(640, 800);//设置游戏画布宽高
  28886. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  28887. Laya.loader.load("resource/ui/color.png",laya.utils.Handler.create(this,loadComplete));//加载资源
  28888. function loadComplete()
  28889. {
  28890. console.log("资源加载完成!");
  28891. var colorPicket = new laya.ui.ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。
  28892. colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。
  28893. colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。
  28894. colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。
  28895. colorPicket.changeHandler = laya.utils.Handler.create(this, onChangeColor,[colorPicket],false);//设置 colorPicket 的颜色改变回调函数。
  28896. Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。
  28897. }
  28898. function onChangeColor(colorPicket)
  28899. {
  28900. console.log("当前选择的颜色: " + colorPicket.selectedColor);
  28901. }
  28902. * @example import ColorPicker = laya.ui.ColorPicker;
  28903. import Handler = laya.utils.Handler;
  28904. class ColorPicker_Example {
  28905. constructor() {
  28906. Laya.init(640, 800);//设置游戏画布宽高。
  28907. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  28908. Laya.loader.load("resource/ui/color.png", Handler.create(this, this.onLoadComplete));//加载资源。
  28909. }
  28910. private onLoadComplete(): void {
  28911. console.log("资源加载完成!");
  28912. var colorPicket: ColorPicker = new ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。
  28913. colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。
  28914. colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。
  28915. colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。
  28916. colorPicket.changeHandler = new Handler(this, this.onChangeColor, [colorPicket]);//设置 colorPicket 的颜色改变回调函数。
  28917. Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。
  28918. }
  28919. private onChangeColor(colorPicket: ColorPicker): void {
  28920. console.log("当前选择的颜色: " + colorPicket.selectedColor);
  28921. }
  28922. }
  28923. */
  28924. class ColorPicker extends laya.ui.UIComponent {
  28925. /**
  28926. * 当颜色发生改变时执行的函数处理器。
  28927. * 默认返回参数color:颜色值字符串。
  28928. */
  28929. changeHandler:laya.utils.Handler;
  28930. /**
  28931. * @private 指定每个正方形的颜色小格子的宽高(以像素为单位)。
  28932. */
  28933. protected _gridSize:number;
  28934. /**
  28935. * @private 表示颜色样本列表面板的背景颜色值。
  28936. */
  28937. protected _bgColor:string;
  28938. /**
  28939. * @private 表示颜色样本列表面板的边框颜色值。
  28940. */
  28941. protected _borderColor:string;
  28942. /**
  28943. * @private 表示颜色样本列表面板选择或输入的颜色值。
  28944. */
  28945. protected _inputColor:string;
  28946. /**
  28947. * @private 表示颜色输入框的背景颜色值。
  28948. */
  28949. protected _inputBgColor:string;
  28950. /**
  28951. * @private 表示颜色样本列表面板。
  28952. */
  28953. protected _colorPanel:laya.ui.Box;
  28954. /**
  28955. * @private 表示颜色网格。
  28956. */
  28957. protected _colorTiles:laya.display.Sprite;
  28958. /**
  28959. * @private 表示颜色块显示对象。
  28960. */
  28961. protected _colorBlock:laya.display.Sprite;
  28962. /**
  28963. * @private 表示颜色输入框控件 <code>Input</code> 。
  28964. */
  28965. protected _colorInput:laya.display.Input;
  28966. /**
  28967. * @private 表示点击后显示颜色样本列表面板的按钮控件 <code>Button</code> 。
  28968. */
  28969. protected _colorButton:laya.ui.Button;
  28970. /**
  28971. * @private 表示颜色值列表。
  28972. */
  28973. protected _colors:any[];
  28974. /**
  28975. * @private 表示选择的颜色值。
  28976. */
  28977. protected _selectedColor:string;
  28978. /**
  28979. * @private
  28980. */
  28981. protected _panelChanged:boolean;
  28982. constructor(createChildren?:boolean);
  28983. /**
  28984. * @inheritDoc
  28985. * @override
  28986. */
  28987. destroy(destroyChild?:boolean):void;
  28988. /**
  28989. * @inheritDoc
  28990. * @override
  28991. */
  28992. protected createChildren():void;
  28993. /**
  28994. * @inheritDoc
  28995. * @override
  28996. */
  28997. protected initialize():void;
  28998. private onPanelMouseDown:any;
  28999. /**
  29000. * 改变颜色样本列表面板。
  29001. */
  29002. protected changePanel():void;
  29003. /**
  29004. * 颜色样本列表面板的显示按钮的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  29005. */
  29006. private onColorButtonClick:any;
  29007. /**
  29008. * 打开颜色样本列表面板。
  29009. */
  29010. open():void;
  29011. /**
  29012. * 关闭颜色样本列表面板。
  29013. */
  29014. close():void;
  29015. /**
  29016. * 舞台的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  29017. */
  29018. private removeColorBox:any;
  29019. /**
  29020. * 小格子色块的 <code>Event.KEY_DOWN</code> 事件侦听处理函数。
  29021. */
  29022. private onColorFieldKeyDown:any;
  29023. /**
  29024. * 颜色值输入框 <code>Event.CHANGE</code> 事件侦听处理函数。
  29025. */
  29026. private onColorInputChange:any;
  29027. /**
  29028. * 小格子色块的 <code>Event.CLICK</code> 事件侦听处理函数。
  29029. */
  29030. private onColorTilesClick:any;
  29031. /**
  29032. * @private 小格子色块的 <code>Event.MOUSE_MOVE</code> 事件侦听处理函数。
  29033. */
  29034. private onColorTilesMouseMove:any;
  29035. /**
  29036. * 通过鼠标位置取对应的颜色块的颜色值。
  29037. */
  29038. protected getColorByMouse():string;
  29039. /**
  29040. * 绘制颜色块。
  29041. * @param color 需要绘制的颜色块的颜色值。
  29042. */
  29043. private drawBlock:any;
  29044. /**
  29045. * 表示选择的颜色值。
  29046. */
  29047. get selectedColor():string;
  29048. set selectedColor(value:string);
  29049. /**
  29050. * @copy laya.ui.Button#skin
  29051. */
  29052. get skin():string;
  29053. set skin(value:string);
  29054. /**
  29055. * 改变颜色。
  29056. */
  29057. private changeColor:any;
  29058. /**
  29059. * 表示颜色样本列表面板的背景颜色值。
  29060. */
  29061. get bgColor():string;
  29062. set bgColor(value:string);
  29063. /**
  29064. * 表示颜色样本列表面板的边框颜色值。
  29065. */
  29066. get borderColor():string;
  29067. set borderColor(value:string);
  29068. /**
  29069. * 表示颜色样本列表面板选择或输入的颜色值。
  29070. */
  29071. get inputColor():string;
  29072. set inputColor(value:string);
  29073. /**
  29074. * 表示颜色输入框的背景颜色值。
  29075. */
  29076. get inputBgColor():string;
  29077. set inputBgColor(value:string);
  29078. /**
  29079. * @private
  29080. */
  29081. protected _setPanelChanged():void;
  29082. }
  29083. }
  29084. declare module laya.ui {
  29085. /**
  29086. * 当用户更改 <code>ComboBox</code> 组件中的选定内容时调度。
  29087. * @eventType laya.events.Event
  29088. selectedIndex属性变化时调度。
  29089. */
  29090. /**
  29091. * <code>ComboBox</code> 组件包含一个下拉列表,用户可以从该列表中选择单个值。
  29092. * @example <caption>以下示例代码,创建了一个 <code>ComboBox</code> 实例。</caption>
  29093. package
  29094. {
  29095. import laya.ui.ComboBox;
  29096. import laya.utils.Handler;
  29097. public class ComboBox_Example
  29098. {
  29099. public function ComboBox_Example()
  29100. {
  29101. Laya.init(640, 800);//设置游戏画布宽高。
  29102. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  29103. Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete));//加载资源。
  29104. }
  29105. private function onLoadComplete():void
  29106. {
  29107. trace("资源加载完成!");
  29108. var comboBox:ComboBox = new ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。
  29109. comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  29110. comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  29111. comboBox.selectHandler = new Handler(this, onSelect);//设置 comboBox 选择项改变时执行的处理器。
  29112. Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。
  29113. }
  29114. private function onSelect(index:int):void
  29115. {
  29116. trace("当前选中的项对象索引: ",index);
  29117. }
  29118. }
  29119. }
  29120. * @example Laya.init(640, 800);//设置游戏画布宽高。
  29121. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  29122. Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源
  29123. function loadComplete() {
  29124. console.log("资源加载完成!");
  29125. var comboBox = new laya.ui.ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。
  29126. comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  29127. comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  29128. comboBox.selectHandler = new laya.utils.Handler(this, onSelect);//设置 comboBox 选择项改变时执行的处理器。
  29129. Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。
  29130. }
  29131. function onSelect(index)
  29132. {
  29133. console.log("当前选中的项对象索引: ",index);
  29134. }
  29135. * @example import ComboBox = laya.ui.ComboBox;
  29136. import Handler = laya.utils.Handler;
  29137. class ComboBox_Example {
  29138. constructor() {
  29139. Laya.init(640, 800);//设置游戏画布宽高。
  29140. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  29141. Laya.loader.load("resource/ui/button.png", Handler.create(this, this.onLoadComplete));//加载资源。
  29142. }
  29143. private onLoadComplete(): void {
  29144. console.log("资源加载完成!");
  29145. var comboBox: ComboBox = new ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。
  29146. comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  29147. comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  29148. comboBox.selectHandler = new Handler(this, this.onSelect);//设置 comboBox 选择项改变时执行的处理器。
  29149. Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。
  29150. }
  29151. private onSelect(index: number): void {
  29152. console.log("当前选中的项对象索引: ", index);
  29153. }
  29154. }
  29155. */
  29156. class ComboBox extends laya.ui.UIComponent {
  29157. /**
  29158. * @private
  29159. */
  29160. protected _visibleNum:number;
  29161. /**
  29162. * @private
  29163. */
  29164. protected _button:laya.ui.Button;
  29165. /**
  29166. * @private
  29167. */
  29168. protected _list:laya.ui.List;
  29169. /**
  29170. * @private
  29171. */
  29172. protected _isOpen:boolean;
  29173. /**
  29174. * @private
  29175. */
  29176. protected _itemColors:any[];
  29177. /**
  29178. * @private
  29179. */
  29180. protected _itemSize:number;
  29181. /**
  29182. * @private
  29183. */
  29184. protected _labels:any[];
  29185. /**
  29186. * @private
  29187. */
  29188. protected _selectedIndex:number;
  29189. /**
  29190. * @private
  29191. */
  29192. protected _selectHandler:laya.utils.Handler;
  29193. /**
  29194. * @private
  29195. */
  29196. protected _itemHeight:number;
  29197. /**
  29198. * @private
  29199. */
  29200. protected _listHeight:number;
  29201. /**
  29202. * @private
  29203. */
  29204. protected _listChanged:boolean;
  29205. /**
  29206. * @private
  29207. */
  29208. protected _itemChanged:boolean;
  29209. /**
  29210. * @private
  29211. */
  29212. protected _scrollBarSkin:string;
  29213. /**
  29214. * @private
  29215. */
  29216. protected _isCustomList:boolean;
  29217. /**
  29218. * 渲染项,用来显示下拉列表展示对象
  29219. */
  29220. itemRender:any;
  29221. /**
  29222. * 创建一个新的 <code>ComboBox</code> 组件实例。
  29223. * @param skin 皮肤资源地址。
  29224. * @param labels 下拉列表的标签集字符串。以逗号做分割,如"item0,item1,item2,item3,item4,item5"。
  29225. */
  29226. constructor(skin?:string,labels?:string);
  29227. /**
  29228. * @inheritDoc
  29229. * @override
  29230. */
  29231. destroy(destroyChild?:boolean):void;
  29232. /**
  29233. * @inheritDoc
  29234. * @override
  29235. */
  29236. protected createChildren():void;
  29237. private _createList:any;
  29238. private _setListEvent:any;
  29239. /**
  29240. * @private
  29241. */
  29242. private onListDown:any;
  29243. private onScrollBarDown:any;
  29244. private onButtonMouseDown:any;
  29245. /**
  29246. * @copy laya.ui.Button#skin
  29247. */
  29248. get skin():string;
  29249. set skin(value:string);
  29250. /**
  29251. * @inheritDoc
  29252. * @override
  29253. */
  29254. protected measureWidth():number;
  29255. /**
  29256. * @inheritDoc
  29257. * @override
  29258. */
  29259. protected measureHeight():number;
  29260. /**
  29261. * @private
  29262. */
  29263. protected changeList():void;
  29264. /**
  29265. * @private 下拉列表的鼠标事件响应函数。
  29266. */
  29267. protected onlistItemMouse(e:laya.events.Event,index:number):void;
  29268. /**
  29269. * @private
  29270. */
  29271. private switchTo:any;
  29272. /**
  29273. * 更改下拉列表的打开状态。
  29274. */
  29275. protected changeOpen():void;
  29276. /**
  29277. * @inheritDoc
  29278. * @override
  29279. */
  29280. set width(value:number);
  29281. /**
  29282. * @inheritDoc
  29283. * @override
  29284. */
  29285. get width():number;
  29286. /**
  29287. * @inheritDoc
  29288. * @override
  29289. */
  29290. set height(value:number);
  29291. /**
  29292. * @inheritDoc
  29293. * @override
  29294. */
  29295. get height():number;
  29296. /**
  29297. * 标签集合字符串。
  29298. */
  29299. get labels():string;
  29300. set labels(value:string);
  29301. /**
  29302. * 更改下拉列表。
  29303. */
  29304. protected changeItem():void;
  29305. /**
  29306. * 表示选择的下拉列表项的索引。
  29307. */
  29308. get selectedIndex():number;
  29309. set selectedIndex(value:number);
  29310. private changeSelected:any;
  29311. /**
  29312. * 改变下拉列表的选择项时执行的处理器(默认返回参数index:int)。
  29313. */
  29314. get selectHandler():laya.utils.Handler;
  29315. set selectHandler(value:laya.utils.Handler);
  29316. /**
  29317. * 表示选择的下拉列表项的的标签。
  29318. */
  29319. get selectedLabel():string;
  29320. set selectedLabel(value:string);
  29321. /**
  29322. * 获取或设置没有滚动条的下拉列表中可显示的最大行数。
  29323. */
  29324. get visibleNum():number;
  29325. set visibleNum(value:number);
  29326. /**
  29327. * 下拉列表项颜色。
  29328. * <p><b>格式:</b>"悬停或被选中时背景颜色,悬停或被选中时标签颜色,标签颜色,边框颜色,背景颜色"</p>
  29329. */
  29330. get itemColors():string;
  29331. set itemColors(value:string);
  29332. /**
  29333. * 下拉列表项标签的字体大小。
  29334. */
  29335. get itemSize():number;
  29336. set itemSize(value:number);
  29337. /**
  29338. * 表示下拉列表的打开状态。
  29339. */
  29340. get isOpen():boolean;
  29341. set isOpen(value:boolean);
  29342. private _onStageMouseWheel:any;
  29343. /**
  29344. * 关闭下拉列表。
  29345. */
  29346. protected removeList(e:laya.events.Event):void;
  29347. /**
  29348. * 滚动条皮肤。
  29349. */
  29350. get scrollBarSkin():string;
  29351. set scrollBarSkin(value:string);
  29352. /**
  29353. * <p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>
  29354. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  29355. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  29356. * @see laya.ui.AutoBitmap.sizeGrid
  29357. */
  29358. get sizeGrid():string;
  29359. set sizeGrid(value:string);
  29360. /**
  29361. * 获取对 <code>ComboBox</code> 组件所包含的 <code>VScrollBar</code> 滚动条组件的引用。
  29362. */
  29363. get scrollBar():laya.ui.VScrollBar;
  29364. /**
  29365. * 获取对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的引用。
  29366. */
  29367. get button():laya.ui.Button;
  29368. /**
  29369. * 获取对 <code>ComboBox</code> 组件所包含的 <code>List</code> 列表组件的引用。
  29370. */
  29371. get list():laya.ui.List;
  29372. set list(value:laya.ui.List);
  29373. /**
  29374. * @inheritDoc
  29375. * @override
  29376. */
  29377. set dataSource(value:any);
  29378. /**
  29379. * @inheritDoc
  29380. * @override
  29381. */
  29382. get dataSource():any;
  29383. /**
  29384. * 获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的文本标签颜色。
  29385. * <p><b>格式:</b>upColor,overColor,downColor,disableColor</p>
  29386. */
  29387. get labelColors():string;
  29388. set labelColors(value:string);
  29389. /**
  29390. * 获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的文本边距。
  29391. * <p><b>格式:</b>上边距,右边距,下边距,左边距</p>
  29392. */
  29393. get labelPadding():string;
  29394. set labelPadding(value:string);
  29395. /**
  29396. * 获取或设置对 <code>ComboBox</code> 组件所包含的 <code>Button</code> 组件的标签字体大小。
  29397. */
  29398. get labelSize():number;
  29399. set labelSize(value:number);
  29400. /**
  29401. * 表示按钮文本标签是否为粗体字。
  29402. * @see laya.display.Text#bold
  29403. */
  29404. get labelBold():boolean;
  29405. set labelBold(value:boolean);
  29406. /**
  29407. * 表示按钮文本标签的字体名称,以字符串形式表示。
  29408. * @see laya.display.Text#font
  29409. */
  29410. get labelFont():string;
  29411. set labelFont(value:string);
  29412. /**
  29413. * 表示按钮的状态值。
  29414. * @see laya.ui.Button#stateNum
  29415. */
  29416. get stateNum():number;
  29417. set stateNum(value:number);
  29418. }
  29419. }
  29420. declare module laya.ui {
  29421. /**
  29422. * <code>Dialog</code> 组件是一个弹出对话框,实现对话框弹出,拖动,模式窗口功能。
  29423. * 可以通过UIConfig设置弹出框背景透明度,模式窗口点击边缘是否关闭等
  29424. * 通过设置zOrder属性,可以更改弹出的层次
  29425. * 通过设置popupEffect和closeEffect可以设置弹出效果和关闭效果,如果不想有任何弹出关闭效果,可以设置前述属性为空
  29426. * @example <caption>以下示例代码,创建了一个 <code>Dialog</code> 实例。</caption>
  29427. package
  29428. {
  29429. import laya.ui.Dialog;
  29430. import laya.utils.Handler;
  29431. public class Dialog_Example
  29432. {
  29433. private var dialog:Dialog_Instance;
  29434. public function Dialog_Example()
  29435. {
  29436. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  29437. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  29438. Laya.loader.load("resource/ui/btn_close.png", Handler.create(this, onLoadComplete));//加载资源。
  29439. }
  29440. private function onLoadComplete():void
  29441. {
  29442. dialog = new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。
  29443. dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。
  29444. dialog.show();//显示 dialog。
  29445. dialog.closeHandler = new Handler(this, onClose);//设置 dialog 的关闭函数处理器。
  29446. }
  29447. private function onClose(name:String):void
  29448. {
  29449. if (name == Dialog.CLOSE)
  29450. {
  29451. trace("通过点击 name 为" + name +"的组件,关闭了dialog。");
  29452. }
  29453. }
  29454. }
  29455. }
  29456. import laya.ui.Button;
  29457. import laya.ui.Dialog;
  29458. import laya.ui.Image;
  29459. class Dialog_Instance extends Dialog
  29460. {
  29461. function Dialog_Instance():void
  29462. {
  29463. var bg:Image = new Image("resource/ui/bg.png");
  29464. bg.sizeGrid = "40,10,5,10";
  29465. bg.width = 150;
  29466. bg.height = 250;
  29467. addChild(bg);
  29468. var image:Image = new Image("resource/ui/image.png");
  29469. addChild(image);
  29470. var button:Button = new Button("resource/ui/btn_close.png");
  29471. button.name = Dialog.CLOSE;//设置button的name属性值。
  29472. button.x = 0;
  29473. button.y = 0;
  29474. addChild(button);
  29475. }
  29476. }
  29477. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式
  29478. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  29479. var dialog;
  29480. Laya.loader.load("resource/ui/btn_close.png", laya.utils.Handler.create(this, loadComplete));//加载资源
  29481. (function (_super) {//新建一个类Dialog_Instance继承自laya.ui.Dialog。
  29482. function Dialog_Instance() {
  29483. Dialog_Instance.__super.call(this);//初始化父类
  29484. var bg = new laya.ui.Image("resource/ui/bg.png");//新建一个 Image 类的实例 bg 。
  29485. bg.sizeGrid = "10,40,10,5";//设置 bg 的网格信息。
  29486. bg.width = 150;//设置 bg 的宽度。
  29487. bg.height = 250;//设置 bg 的高度。
  29488. this.addChild(bg);//将 bg 添加到显示列表。
  29489. var image = new laya.ui.Image("resource/ui/image.png");//新建一个 Image 类的实例 image 。
  29490. this.addChild(image);//将 image 添加到显示列表。
  29491. var button = new laya.ui.Button("resource/ui/btn_close.png");//新建一个 Button 类的实例 bg 。
  29492. button.name = laya.ui.Dialog.CLOSE;//设置 button 的 name 属性值。
  29493. button.x = 0;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。
  29494. button.y = 0;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。
  29495. this.addChild(button);//将 button 添加到显示列表。
  29496. };
  29497. Laya.class(Dialog_Instance,"mypackage.dialogExample.Dialog_Instance",_super);//注册类Dialog_Instance。
  29498. })(laya.ui.Dialog);
  29499. function loadComplete() {
  29500. console.log("资源加载完成!");
  29501. dialog = new mypackage.dialogExample.Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。
  29502. dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。
  29503. dialog.show();//显示 dialog。
  29504. dialog.closeHandler = new laya.utils.Handler(this, onClose);//设置 dialog 的关闭函数处理器。
  29505. }
  29506. function onClose(name) {
  29507. if (name == laya.ui.Dialog.CLOSE) {
  29508. console.log("通过点击 name 为" + name + "的组件,关闭了dialog。");
  29509. }
  29510. }
  29511. * @example import Dialog = laya.ui.Dialog;
  29512. import Handler = laya.utils.Handler;
  29513. class Dialog_Example {
  29514. private dialog: Dialog_Instance;
  29515. constructor() {
  29516. Laya.init(640, 800);//设置游戏画布宽高。
  29517. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  29518. Laya.loader.load("resource/ui/btn_close.png", Handler.create(this, this.onLoadComplete));//加载资源。
  29519. }
  29520. private onLoadComplete(): void {
  29521. this.dialog = new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。
  29522. this.dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。
  29523. this.dialog.show();//显示 dialog。
  29524. this.dialog.closeHandler = new Handler(this, this.onClose);//设置 dialog 的关闭函数处理器。
  29525. }
  29526. private onClose(name: string): void {
  29527. if (name == Dialog.CLOSE) {
  29528. console.log("通过点击 name 为" + name + "的组件,关闭了dialog。");
  29529. }
  29530. }
  29531. }
  29532. import Button = laya.ui.Button;
  29533. class Dialog_Instance extends Dialog {
  29534. Dialog_Instance(): void {
  29535. var bg: laya.ui.Image = new laya.ui.Image("resource/ui/bg.png");
  29536. bg.sizeGrid = "40,10,5,10";
  29537. bg.width = 150;
  29538. bg.height = 250;
  29539. this.addChild(bg);
  29540. var image: laya.ui.Image = new laya.ui.Image("resource/ui/image.png");
  29541. this.addChild(image);
  29542. var button: Button = new Button("resource/ui/btn_close.png");
  29543. button.name = Dialog.CLOSE;//设置button的name属性值。
  29544. button.x = 0;
  29545. button.y = 0;
  29546. this.addChild(button);
  29547. }
  29548. }
  29549. */
  29550. class Dialog extends laya.ui.View {
  29551. /**
  29552. * 对话框内的某个按钮命名为close,点击此按钮则会关闭
  29553. */
  29554. static CLOSE:string;
  29555. /**
  29556. * 对话框内的某个按钮命名为cancel,点击此按钮则会关闭
  29557. */
  29558. static CANCEL:string;
  29559. /**
  29560. * 对话框内的某个按钮命名为sure,点击此按钮则会关闭
  29561. */
  29562. static SURE:string;
  29563. /**
  29564. * 对话框内的某个按钮命名为no,点击此按钮则会关闭
  29565. */
  29566. static NO:string;
  29567. /**
  29568. * 对话框内的某个按钮命名为yes,点击此按钮则会关闭
  29569. */
  29570. static YES:string;
  29571. /**
  29572. * 对话框内的某个按钮命名为ok,点击此按钮则会关闭
  29573. */
  29574. static OK:string;
  29575. /**
  29576. * @private 表示对话框管理器。
  29577. */
  29578. private static _manager:any;
  29579. /**
  29580. * 对话框管理容器,所有的对话框都在该容器内,并且受管理器管理,可以自定义自己的管理器,来更改窗口管理的流程。
  29581. * 任意对话框打开和关闭,都会触发管理类的open和close事件
  29582. */
  29583. static get manager():laya.ui.DialogManager;
  29584. static set manager(value:laya.ui.DialogManager);
  29585. /**
  29586. * 对话框被关闭时会触发的回调函数处理器。
  29587. * <p>回调函数参数为用户点击的按钮名字name:String。</p>
  29588. */
  29589. closeHandler:laya.utils.Handler;
  29590. /**
  29591. * 弹出对话框效果,可以设置一个效果代替默认的弹出效果,如果不想有任何效果,可以赋值为null
  29592. * 全局默认弹出效果可以通过manager.popupEffect修改
  29593. */
  29594. popupEffect:laya.utils.Handler;
  29595. /**
  29596. * 关闭对话框效果,可以设置一个效果代替默认的关闭效果,如果不想有任何效果,可以赋值为null
  29597. * 全局默认关闭效果可以通过manager.closeEffect修改
  29598. */
  29599. closeEffect:laya.utils.Handler;
  29600. /**
  29601. * 组名称
  29602. */
  29603. group:string;
  29604. /**
  29605. * 是否是模式窗口
  29606. */
  29607. isModal:boolean;
  29608. /**
  29609. * 是否显示弹出效果
  29610. */
  29611. isShowEffect:boolean;
  29612. /**
  29613. * 指定对话框是否居中弹。<p>如果值为true,则居中弹出,否则,则根据对象坐标显示,默认为true。</p>
  29614. */
  29615. isPopupCenter:boolean;
  29616. /**
  29617. * 关闭类型,点击name为"close","cancel","sure","no","yes","no"的按钮时,会自动记录点击按钮的名称
  29618. */
  29619. closeType:string;
  29620. /**
  29621. * @private
  29622. */
  29623. private _dragArea:any;
  29624. constructor();
  29625. /**
  29626. * @private 提取拖拽区域
  29627. */
  29628. protected _dealDragArea():void;
  29629. /**
  29630. * 用来指定对话框的拖拽区域。默认值为"0,0,0,0"。
  29631. * <p><b>格式:</b>构成一个矩形所需的 x,y,width,heith 值,用逗号连接为字符串。
  29632. * 例如:"0,0,100,200"。</p>
  29633. * @see #includeExamplesSummary 请参考示例
  29634. */
  29635. get dragArea():string;
  29636. set dragArea(value:string);
  29637. /**
  29638. * @private
  29639. */
  29640. private _onMouseDown:any;
  29641. /**
  29642. * @private 处理默认点击事件
  29643. */
  29644. protected _onClick(e:laya.events.Event):void;
  29645. /**
  29646. * @inheritDoc
  29647. * @override
  29648. */
  29649. open(closeOther?:boolean,param?:any):void;
  29650. /**
  29651. * 关闭对话框。
  29652. * @param type 关闭的原因,会传递给onClosed函数
  29653. * @override
  29654. */
  29655. close(type?:string):void;
  29656. /**
  29657. * @inheritDoc
  29658. * @override
  29659. */
  29660. destroy(destroyChild?:boolean):void;
  29661. /**
  29662. * 显示对话框(以非模式窗口方式显示)。
  29663. * @param closeOther 是否关闭其它的对话框。若值为true则关闭其它对话框。
  29664. * @param showEffect 是否显示弹出效果
  29665. */
  29666. show(closeOther?:boolean,showEffect?:boolean):void;
  29667. /**
  29668. * 显示对话框(以模式窗口方式显示)。
  29669. * @param closeOther 是否关闭其它的对话框。若值为true则关闭其它对话框。
  29670. * @param showEffect 是否显示弹出效果
  29671. */
  29672. popup(closeOther?:boolean,showEffect?:boolean):void;
  29673. /**
  29674. * @private
  29675. */
  29676. protected _open(modal:boolean,closeOther:boolean,showEffect:boolean):void;
  29677. /**
  29678. * 弹出框的显示状态;如果弹框处于显示中,则为true,否则为false;
  29679. */
  29680. get isPopup():boolean;
  29681. /**
  29682. * @inheritDoc
  29683. * @override
  29684. */
  29685. set zOrder(value:number);
  29686. /**
  29687. * @inheritDoc
  29688. * @override
  29689. */
  29690. get zOrder():number;
  29691. /**
  29692. * 设置锁定界面,在界面未准备好前显示锁定界面,准备完毕后则移除锁定层,如果为空则什么都不显示
  29693. * @param view 锁定界面内容
  29694. */
  29695. static setLockView(view:laya.ui.UIComponent):void;
  29696. /**
  29697. * 锁定所有层,显示加载条信息,防止下面内容被点击
  29698. */
  29699. static lock(value:boolean):void;
  29700. /**
  29701. * 关闭所有对话框。
  29702. */
  29703. static closeAll():void;
  29704. /**
  29705. * 根据组获取对话框集合
  29706. * @param group 组名称
  29707. * @return 对话框数组
  29708. */
  29709. static getDialogsByGroup(group:string):any[];
  29710. /**
  29711. * 根据组关闭所有弹出框
  29712. * @param group 需要关闭的组名称
  29713. */
  29714. static closeByGroup(group:string):any[];
  29715. }
  29716. }
  29717. declare module laya.ui {
  29718. /**
  29719. * 打开任意窗口后调度。
  29720. * @eventType Event.OPEN
  29721. */
  29722. /**
  29723. * 关闭任意窗口后调度。
  29724. * @eventType Event.CLOSE
  29725. */
  29726. /**
  29727. * <code>DialogManager</code> 对话框管理容器,所有的对话框都在该容器内,并且受管理器管理。
  29728. * 任意对话框打开和关闭,都会出发管理类的open和close事件
  29729. * 可以通过UIConfig设置弹出框背景透明度,模式窗口点击边缘是否关闭,点击窗口是否切换层次等
  29730. * 通过设置对话框的zOrder属性,可以更改弹出的层次
  29731. */
  29732. class DialogManager extends laya.display.Sprite {
  29733. /**
  29734. * 遮罩层
  29735. */
  29736. maskLayer:laya.display.Sprite;
  29737. /**
  29738. * 锁屏层
  29739. */
  29740. lockLayer:laya.display.Sprite;
  29741. /**
  29742. * @private 全局默认弹出对话框效果,可以设置一个效果代替默认的弹出效果,如果不想有任何效果,可以赋值为null
  29743. */
  29744. popupEffect:(dialog:laya.ui.Dialog) =>void;
  29745. /**
  29746. * @private 全局默认关闭对话框效果,可以设置一个效果代替默认的关闭效果,如果不想有任何效果,可以赋值为null
  29747. */
  29748. closeEffect:(dialog:laya.ui.Dialog) =>void;
  29749. /**
  29750. * 全局默认关闭对话框效果,可以设置一个效果代替默认的关闭效果,如果不想有任何效果,可以赋值为null
  29751. */
  29752. popupEffectHandler:laya.utils.Handler;
  29753. /**
  29754. * 全局默认弹出对话框效果,可以设置一个效果代替默认的弹出效果,如果不想有任何效果,可以赋值为null
  29755. */
  29756. closeEffectHandler:laya.utils.Handler;
  29757. /**
  29758. * 创建一个新的 <code>DialogManager</code> 类实例。
  29759. */
  29760. constructor();
  29761. private _closeOnSide:any;
  29762. /**
  29763. * 设置锁定界面,如果为空则什么都不显示
  29764. */
  29765. setLockView(value:laya.ui.UIComponent):void;
  29766. /**
  29767. * @private
  29768. */
  29769. private _onResize:any;
  29770. private _centerDialog:any;
  29771. /**
  29772. * 显示对话框
  29773. * @param dialog 需要显示的对象框 <code>Dialog</code> 实例。
  29774. * @param closeOther 是否关闭其它对话框,若值为ture,则关闭其它的对话框。
  29775. * @param showEffect 是否显示弹出效果
  29776. */
  29777. open(dialog:laya.ui.Dialog,closeOther?:boolean,showEffect?:boolean):void;
  29778. /**
  29779. * @private
  29780. */
  29781. private _clearDialogEffect:any;
  29782. /**
  29783. * 执行打开对话框。
  29784. * @param dialog 需要关闭的对象框 <code>Dialog</code> 实例。
  29785. */
  29786. doOpen(dialog:laya.ui.Dialog):void;
  29787. /**
  29788. * 锁定所有层,显示加载条信息,防止双击
  29789. */
  29790. lock(value:boolean):void;
  29791. /**
  29792. * 关闭对话框。
  29793. * @param dialog 需要关闭的对象框 <code>Dialog</code> 实例。
  29794. */
  29795. close(dialog:laya.ui.Dialog):void;
  29796. /**
  29797. * 执行关闭对话框。
  29798. * @param dialog 需要关闭的对象框 <code>Dialog</code> 实例。
  29799. */
  29800. doClose(dialog:laya.ui.Dialog):void;
  29801. /**
  29802. * 关闭所有的对话框。
  29803. */
  29804. closeAll():void;
  29805. /**
  29806. * @private
  29807. */
  29808. private _closeAll:any;
  29809. /**
  29810. * 根据组获取所有对话框
  29811. * @param group 组名称
  29812. * @return 对话框数组
  29813. */
  29814. getDialogsByGroup(group:string):any[];
  29815. /**
  29816. * 根据组关闭所有弹出框
  29817. * @param group 需要关闭的组名称
  29818. * @return 需要关闭的对话框数组
  29819. */
  29820. closeByGroup(group:string):any[];
  29821. }
  29822. }
  29823. declare module laya.ui {
  29824. /**
  29825. * 字体切片,简化版的位图字体,只需设置一个切片图片和文字内容即可使用,效果同位图字体
  29826. * 使用方式:设置位图字体皮肤skin,设置皮肤对应的字体内容sheet(如果多行,可以使用空格换行),示例:
  29827. * fontClip.skin = "font1.png";//设置皮肤
  29828. * fontClip.sheet = "abc123 456";//设置皮肤对应的内容,空格换行。此皮肤为2行5列(显示时skin会被等分为2行5列),第一行对应的文字为"abc123",第二行为"456"
  29829. * fontClip.value = "a1326";//显示"a1326"文字
  29830. */
  29831. class FontClip extends laya.ui.Clip {
  29832. /**
  29833. * 数值
  29834. */
  29835. protected _valueArr:string;
  29836. /**
  29837. * 文字内容数组*
  29838. */
  29839. protected _indexMap:any;
  29840. /**
  29841. * 位图字体内容*
  29842. */
  29843. protected _sheet:string;
  29844. /**
  29845. * @private
  29846. */
  29847. protected _direction:string;
  29848. /**
  29849. * X方向间隙
  29850. */
  29851. protected _spaceX:number;
  29852. /**
  29853. * Y方向间隙
  29854. */
  29855. protected _spaceY:number;
  29856. /**
  29857. * @private 水平对齐方式
  29858. */
  29859. private _align:any;
  29860. /**
  29861. * @private 显示文字宽
  29862. */
  29863. private _wordsW:any;
  29864. /**
  29865. * @private 显示文字高
  29866. */
  29867. private _wordsH:any;
  29868. /**
  29869. * @param skin 位图字体皮肤
  29870. * @param sheet 位图字体内容,空格代表换行
  29871. */
  29872. constructor(skin?:string,sheet?:string);
  29873. /**
  29874. * @override
  29875. */
  29876. protected createChildren():void;
  29877. /**
  29878. * 资源加载完毕
  29879. */
  29880. private _onClipLoaded:any;
  29881. /**
  29882. * 设置位图字体内容,空格代表换行。比如"abc123 456",代表第一行对应的文字为"abc123",第二行为"456"
  29883. */
  29884. get sheet():string;
  29885. set sheet(value:string);
  29886. /**
  29887. * 设置位图字体的显示内容
  29888. */
  29889. get value():string;
  29890. set value(value:string);
  29891. /**
  29892. * 布局方向。
  29893. * <p>默认值为"horizontal"。</p>
  29894. * <p><b>取值:</b>
  29895. * <li>"horizontal":表示水平布局。</li>
  29896. * <li>"vertical":表示垂直布局。</li>
  29897. * </p>
  29898. */
  29899. get direction():string;
  29900. set direction(value:string);
  29901. /**
  29902. * X方向文字间隙
  29903. */
  29904. get spaceX():number;
  29905. set spaceX(value:number);
  29906. /**
  29907. * Y方向文字间隙
  29908. */
  29909. get spaceY():number;
  29910. set spaceY(value:number);
  29911. set align(v:string);
  29912. /**
  29913. * 水平对齐方式
  29914. */
  29915. get align():string;
  29916. /**
  29917. * 渲染数值
  29918. */
  29919. protected changeValue():void;
  29920. /**
  29921. * @override
  29922. */
  29923. set width(value:number);
  29924. /**
  29925. * @inheritDoc
  29926. * @override
  29927. */
  29928. get width():number;
  29929. /**
  29930. * @override
  29931. */
  29932. set height(value:number);
  29933. /**
  29934. * @inheritDoc
  29935. * @override
  29936. */
  29937. get height():number;
  29938. /**
  29939. * @override
  29940. */
  29941. protected measureWidth():number;
  29942. /**
  29943. * @override
  29944. */
  29945. protected measureHeight():number;
  29946. /**
  29947. * @param destroyChild
  29948. * @override
  29949. */
  29950. destroy(destroyChild?:boolean):void;
  29951. }
  29952. }
  29953. declare module laya.ui {
  29954. /**
  29955. * <code>HBox</code> 是一个水平布局容器类。
  29956. */
  29957. class HBox extends laya.ui.LayoutBox {
  29958. /**
  29959. * 无对齐。
  29960. */
  29961. static NONE:string;
  29962. /**
  29963. * 居顶部对齐。
  29964. */
  29965. static TOP:string;
  29966. /**
  29967. * 居中对齐。
  29968. */
  29969. static MIDDLE:string;
  29970. /**
  29971. * 居底部对齐。
  29972. */
  29973. static BOTTOM:string;
  29974. /**
  29975. * @inheritDoc
  29976. * @override
  29977. */
  29978. protected sortItem(items:any[]):void;
  29979. /**
  29980. * @inheritDoc
  29981. * @override
  29982. */
  29983. set height(value:number);
  29984. /**
  29985. * @inheritDoc
  29986. * @override
  29987. */
  29988. get height():number;
  29989. /**
  29990. * @inheritDoc
  29991. * @override
  29992. */
  29993. protected changeItems():void;
  29994. }
  29995. }
  29996. declare module laya.ui {
  29997. /**
  29998. * 使用 <code>HScrollBar</code> (水平 <code>ScrollBar</code> )控件,可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。
  29999. * @example <caption>以下示例代码,创建了一个 <code>HScrollBar</code> 实例。</caption>
  30000. package
  30001. {
  30002. import laya.ui.HScrollBar;
  30003. import laya.utils.Handler;
  30004. public class HScrollBar_Example
  30005. {
  30006. private var hScrollBar:HScrollBar;
  30007. public function HScrollBar_Example()
  30008. {
  30009. Laya.init(640, 800);//设置游戏画布宽高。
  30010. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  30011. 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));//加载资源。
  30012. }
  30013. private function onLoadComplete():void
  30014. {
  30015. hScrollBar = new HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。
  30016. hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。
  30017. hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。
  30018. hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。
  30019. hScrollBar.changeHandler = new Handler(this, onChange);//设置 hScrollBar 的滚动变化处理器。
  30020. Laya.stage.addChild(hScrollBar);//将此 hScrollBar 对象添加到显示列表。
  30021. }
  30022. private function onChange(value:Number):void
  30023. {
  30024. trace("滚动条的位置: value=" + value);
  30025. }
  30026. }
  30027. }
  30028. * @example Laya.init(640, 800);//设置游戏画布宽高
  30029. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  30030. var hScrollBar;
  30031. var res = ["resource/ui/hscroll.png", "resource/ui/hscroll$bar.png", "resource/ui/hscroll$down.png", "resource/ui/hscroll$up.png"];
  30032. Laya.loader.load(res,laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  30033. function onLoadComplete() {
  30034. console.log("资源加载完成!");
  30035. hScrollBar = new laya.ui.HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。
  30036. hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。
  30037. hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。
  30038. hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。
  30039. hScrollBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 hScrollBar 的滚动变化处理器。
  30040. Laya.stage.addChild(hScrollBar);//将此 hScrollBar 对象添加到显示列表。
  30041. }
  30042. function onChange(value)
  30043. {
  30044. console.log("滚动条的位置: value=" + value);
  30045. }
  30046. * @example import HScrollBar = laya.ui.HScrollBar;
  30047. import Handler = laya.utils.Handler;
  30048. class HScrollBar_Example {
  30049. private hScrollBar: HScrollBar;
  30050. constructor() {
  30051. Laya.init(640, 800);//设置游戏画布宽高。
  30052. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  30053. 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));//加载资源。
  30054. }
  30055. private onLoadComplete(): void {
  30056. this.hScrollBar = new HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。
  30057. this.hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。
  30058. this.hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。
  30059. this.hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。
  30060. this.hScrollBar.changeHandler = new Handler(this, this.onChange);//设置 hScrollBar 的滚动变化处理器。
  30061. Laya.stage.addChild(this.hScrollBar);//将此 hScrollBar 对象添加到显示列表。
  30062. }
  30063. private onChange(value: number): void {
  30064. console.log("滚动条的位置: value=" + value);
  30065. }
  30066. }
  30067. */
  30068. class HScrollBar extends laya.ui.ScrollBar {
  30069. /**
  30070. * @override
  30071. * @inheritDoc
  30072. */
  30073. protected initialize():void;
  30074. }
  30075. }
  30076. declare module laya.ui {
  30077. /**
  30078. * 使用 <code>HSlider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  30079. * <p> <code>HSlider</code> 控件采用水平方向。滑块轨道从左向右扩展,而标签位于轨道的顶部或底部。</p>
  30080. * @example <caption>以下示例代码,创建了一个 <code>HSlider</code> 实例。</caption>
  30081. package
  30082. {
  30083. import laya.ui.HSlider;
  30084. import laya.utils.Handler;
  30085. public class HSlider_Example
  30086. {
  30087. private var hSlider:HSlider;
  30088. public function HSlider_Example()
  30089. {
  30090. Laya.init(640, 800);//设置游戏画布宽高。
  30091. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  30092. Laya.loader.load(["resource/ui/hslider.png", "resource/ui/hslider$bar.png"], Handler.create(this, onLoadComplete));//加载资源。
  30093. }
  30094. private function onLoadComplete():void
  30095. {
  30096. hSlider = new HSlider();//创建一个 HSlider 类的实例对象 hSlider 。
  30097. hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。
  30098. hSlider.min = 0;//设置 hSlider 最低位置值。
  30099. hSlider.max = 10;//设置 hSlider 最高位置值。
  30100. hSlider.value = 2;//设置 hSlider 当前位置值。
  30101. hSlider.tick = 1;//设置 hSlider 刻度值。
  30102. hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。
  30103. hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。
  30104. hSlider.changeHandler = new Handler(this, onChange);//设置 hSlider 位置变化处理器。
  30105. Laya.stage.addChild(hSlider);//把 hSlider 添加到显示列表。
  30106. }
  30107. private function onChange(value:Number):void
  30108. {
  30109. trace("滑块的位置: value=" + value);
  30110. }
  30111. }
  30112. }
  30113. * @example Laya.init(640, 800, "canvas");//设置游戏画布宽高、渲染模式
  30114. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  30115. var hSlider;
  30116. var res = ["resource/ui/hslider.png", "resource/ui/hslider$bar.png"];
  30117. Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete));
  30118. function onLoadComplete() {
  30119. console.log("资源加载完成!");
  30120. hSlider = new laya.ui.HSlider();//创建一个 HSlider 类的实例对象 hSlider 。
  30121. hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。
  30122. hSlider.min = 0;//设置 hSlider 最低位置值。
  30123. hSlider.max = 10;//设置 hSlider 最高位置值。
  30124. hSlider.value = 2;//设置 hSlider 当前位置值。
  30125. hSlider.tick = 1;//设置 hSlider 刻度值。
  30126. hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。
  30127. hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。
  30128. hSlider.changeHandler = new laya.utils.Handler(this, onChange);//设置 hSlider 位置变化处理器。
  30129. Laya.stage.addChild(hSlider);//把 hSlider 添加到显示列表。
  30130. }
  30131. function onChange(value)
  30132. {
  30133. console.log("滑块的位置: value=" + value);
  30134. }
  30135. * @example import Handler = laya.utils.Handler;
  30136. import HSlider = laya.ui.HSlider;
  30137. class HSlider_Example {
  30138. private hSlider: HSlider;
  30139. constructor() {
  30140. Laya.init(640, 800);//设置游戏画布宽高。
  30141. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  30142. Laya.loader.load(["resource/ui/hslider.png", "resource/ui/hslider$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  30143. }
  30144. private onLoadComplete(): void {
  30145. this.hSlider = new HSlider();//创建一个 HSlider 类的实例对象 hSlider 。
  30146. this.hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。
  30147. this.hSlider.min = 0;//设置 hSlider 最低位置值。
  30148. this.hSlider.max = 10;//设置 hSlider 最高位置值。
  30149. this.hSlider.value = 2;//设置 hSlider 当前位置值。
  30150. this.hSlider.tick = 1;//设置 hSlider 刻度值。
  30151. this.hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。
  30152. this.hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。
  30153. this.hSlider.changeHandler = new Handler(this, this.onChange);//设置 hSlider 位置变化处理器。
  30154. Laya.stage.addChild(this.hSlider);//把 hSlider 添加到显示列表。
  30155. }
  30156. private onChange(value: number): void {
  30157. console.log("滑块的位置: value=" + value);
  30158. }
  30159. }
  30160. * @see laya.ui.Slider
  30161. */
  30162. class HSlider extends laya.ui.Slider {
  30163. /**
  30164. * 创建一个 <code>HSlider</code> 类实例。
  30165. * @param skin 皮肤。
  30166. */
  30167. constructor(skin?:string);
  30168. }
  30169. }
  30170. declare module laya.ui {
  30171. /**
  30172. * 容器接口,实现了编辑器容器类型。
  30173. */
  30174. interface IBox{
  30175. }
  30176. }
  30177. declare module laya.ui {
  30178. /**
  30179. * Item接口。
  30180. */
  30181. interface IItem{
  30182. /**
  30183. * 初始化列表项。
  30184. */
  30185. initItems():void;
  30186. }
  30187. }
  30188. declare module laya.ui {
  30189. /**
  30190. * 资源加载完成后调度。
  30191. * @eventType Event.LOADED
  30192. */
  30193. /**
  30194. * <code>Image</code> 类是用于表示位图图像或绘制图形的显示对象。
  30195. * Image和Clip组件是唯一支持异步加载的两个组件,比如img.skin = "abc/xxx.png",其他UI组件均不支持异步加载。
  30196. * @example <caption>以下示例代码,创建了一个新的 <code>Image</code> 实例,设置了它的皮肤、位置信息,并添加到舞台上。</caption>
  30197. package
  30198. {
  30199. import laya.ui.Image;
  30200. public class Image_Example
  30201. {
  30202. public function Image_Example()
  30203. {
  30204. Laya.init(640, 800);//设置游戏画布宽高。
  30205. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  30206. onInit();
  30207. }
  30208. private function onInit():void
  30209. {
  30210. var bg:Image = new Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。
  30211. bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。
  30212. bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。
  30213. bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。
  30214. bg.width = 150;//设置 bg 对象的宽度。
  30215. bg.height = 250;//设置 bg 对象的高度。
  30216. Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。
  30217. var image:Image = new Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。
  30218. image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。
  30219. image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。
  30220. Laya.stage.addChild(image);//将此 image 对象添加到显示列表。
  30221. }
  30222. }
  30223. }
  30224. * @example Laya.init(640, 800);//设置游戏画布宽高
  30225. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  30226. onInit();
  30227. function onInit() {
  30228. var bg = new laya.ui.Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。
  30229. bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。
  30230. bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。
  30231. bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。
  30232. bg.width = 150;//设置 bg 对象的宽度。
  30233. bg.height = 250;//设置 bg 对象的高度。
  30234. Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。
  30235. var image = new laya.ui.Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。
  30236. image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。
  30237. image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。
  30238. Laya.stage.addChild(image);//将此 image 对象添加到显示列表。
  30239. }
  30240. * @example class Image_Example {
  30241. constructor() {
  30242. Laya.init(640, 800);//设置游戏画布宽高。
  30243. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  30244. this.onInit();
  30245. }
  30246. private onInit(): void {
  30247. var bg: laya.ui.Image = new laya.ui.Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。
  30248. bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。
  30249. bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。
  30250. bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。
  30251. bg.width = 150;//设置 bg 对象的宽度。
  30252. bg.height = 250;//设置 bg 对象的高度。
  30253. Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。
  30254. var image: laya.ui.Image = new laya.ui.Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。
  30255. image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。
  30256. image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。
  30257. Laya.stage.addChild(image);//将此 image 对象添加到显示列表。
  30258. }
  30259. }
  30260. * @see laya.ui.AutoBitmap
  30261. */
  30262. class Image extends laya.ui.UIComponent {
  30263. /**
  30264. * @private
  30265. */
  30266. protected _skin:string;
  30267. /**
  30268. * @private
  30269. */
  30270. protected _group:string;
  30271. /**
  30272. * 创建一个 <code>Image</code> 实例。
  30273. * @param skin 皮肤资源地址。
  30274. */
  30275. constructor(skin?:string);
  30276. /**
  30277. * @inheritDoc
  30278. * @override
  30279. */
  30280. destroy(destroyChild?:boolean):void;
  30281. /**
  30282. * 销毁对象并释放加载的皮肤资源。
  30283. */
  30284. dispose():void;
  30285. /**
  30286. * @inheritDoc
  30287. * @override
  30288. */
  30289. protected createChildren():void;
  30290. /**
  30291. * <p>对象的皮肤地址,以字符串表示。</p>
  30292. * <p>如果资源未加载,则先加载资源,加载完成后应用于此对象。</p>
  30293. * <b>注意:</b>资源加载完成后,会自动缓存至资源库中。
  30294. */
  30295. get skin():string;
  30296. set skin(value:string);
  30297. /**
  30298. * @copy laya.ui.AutoBitmap#source
  30299. */
  30300. get source():laya.resource.Texture;
  30301. set source(value:laya.resource.Texture);
  30302. /**
  30303. * 资源分组。
  30304. */
  30305. get group():string;
  30306. set group(value:string);
  30307. /**
  30308. * @private 设置皮肤资源。
  30309. */
  30310. protected setSource(url:string,img?:any):void;
  30311. /**
  30312. * @inheritDoc
  30313. * @override
  30314. */
  30315. protected measureWidth():number;
  30316. /**
  30317. * @inheritDoc
  30318. * @override
  30319. */
  30320. protected measureHeight():number;
  30321. /**
  30322. * @inheritDoc
  30323. * @override
  30324. */
  30325. set width(value:number);
  30326. /**
  30327. * @inheritDoc
  30328. * @override
  30329. */
  30330. get width():number;
  30331. /**
  30332. * @inheritDoc
  30333. * @override
  30334. */
  30335. set height(value:number);
  30336. /**
  30337. * @inheritDoc
  30338. * @override
  30339. */
  30340. get height():number;
  30341. /**
  30342. * <p>当前实例的位图 <code>AutoImage</code> 实例的有效缩放网格数据。</p>
  30343. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  30344. * <ul><li>例如:"4,4,4,4,1"。</li></ul></p>
  30345. * @see laya.ui.AutoBitmap#sizeGrid
  30346. */
  30347. get sizeGrid():string;
  30348. set sizeGrid(value:string);
  30349. /**
  30350. * @inheritDoc
  30351. * @override
  30352. */
  30353. set dataSource(value:any);
  30354. /**
  30355. * @inheritDoc
  30356. * @override
  30357. */
  30358. get dataSource():any;
  30359. }
  30360. }
  30361. declare module laya.ui {
  30362. /**
  30363. * <code>IRender</code> 接口,实现设置项的渲染类型。
  30364. */
  30365. interface IRender{
  30366. /**
  30367. * 渲染项。
  30368. */
  30369. itemRender:any;
  30370. }
  30371. }
  30372. declare module laya.ui {
  30373. /**
  30374. * <code>ISelect</code> 接口,实现对象的 <code>selected</code> 属性和 <code>clickHandler</code> 选择回调函数处理器。
  30375. */
  30376. interface ISelect{
  30377. /**
  30378. * 一个布尔值,表示是否被选择。
  30379. */
  30380. selected:boolean;
  30381. /**
  30382. * 对象的点击事件回掉函数处理器。
  30383. */
  30384. clickHandler:laya.utils.Handler;
  30385. }
  30386. }
  30387. declare module laya.ui {
  30388. /**
  30389. * 文本内容发生改变后调度。
  30390. * @eventType laya.events.Event
  30391. */
  30392. /**
  30393. * <p> <code>Label</code> 类用于创建显示对象以显示文本。</p>
  30394. * @example <caption>以下示例代码,创建了一个 <code>Label</code> 实例。</caption>
  30395. package
  30396. {
  30397. import laya.ui.Label;
  30398. public class Label_Example
  30399. {
  30400. public function Label_Example()
  30401. {
  30402. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  30403. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  30404. onInit();
  30405. }
  30406. private function onInit():void
  30407. {
  30408. var label:Label = new Label();//创建一个 Label 类的实例对象 label 。
  30409. label.font = "Arial";//设置 label 的字体。
  30410. label.bold = true;//设置 label 显示为粗体。
  30411. label.leading = 4;//设置 label 的行间距。
  30412. label.wordWrap = true;//设置 label 自动换行。
  30413. label.padding = "10,10,10,10";//设置 label 的边距。
  30414. label.color = "#ff00ff";//设置 label 的颜色。
  30415. label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。
  30416. label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。
  30417. label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。
  30418. label.width = 300;//设置 label 的宽度。
  30419. label.height = 200;//设置 label 的高度。
  30420. Laya.stage.addChild(label);//将 label 添加到显示列表。
  30421. var passwordLabel:Label = new Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。
  30422. passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。
  30423. passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。
  30424. passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。
  30425. passwordLabel.width = 300;//设置 passwordLabel 的宽度。
  30426. passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。
  30427. passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。
  30428. passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。
  30429. Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。
  30430. }
  30431. }
  30432. }
  30433. * @example Laya.init(640, 800);//设置游戏画布宽高
  30434. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  30435. onInit();
  30436. function onInit(){
  30437. var label = new laya.ui.Label();//创建一个 Label 类的实例对象 label 。
  30438. label.font = "Arial";//设置 label 的字体。
  30439. label.bold = true;//设置 label 显示为粗体。
  30440. label.leading = 4;//设置 label 的行间距。
  30441. label.wordWrap = true;//设置 label 自动换行。
  30442. label.padding = "10,10,10,10";//设置 label 的边距。
  30443. label.color = "#ff00ff";//设置 label 的颜色。
  30444. label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。
  30445. label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。
  30446. label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。
  30447. label.width = 300;//设置 label 的宽度。
  30448. label.height = 200;//设置 label 的高度。
  30449. Laya.stage.addChild(label);//将 label 添加到显示列表。
  30450. var passwordLabel = new laya.ui.Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。
  30451. passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。
  30452. passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。
  30453. passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。
  30454. passwordLabel.width = 300;//设置 passwordLabel 的宽度。
  30455. passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。
  30456. passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。
  30457. passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。
  30458. Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。
  30459. }
  30460. * @example import Label = laya.ui.Label;
  30461. class Label_Example {
  30462. constructor() {
  30463. Laya.init(640, 800);//设置游戏画布宽高。
  30464. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  30465. this.onInit();
  30466. }
  30467. private onInit(): void {
  30468. var label: Label = new Label();//创建一个 Label 类的实例对象 label 。
  30469. label.font = "Arial";//设置 label 的字体。
  30470. label.bold = true;//设置 label 显示为粗体。
  30471. label.leading = 4;//设置 label 的行间距。
  30472. label.wordWrap = true;//设置 label 自动换行。
  30473. label.padding = "10,10,10,10";//设置 label 的边距。
  30474. label.color = "#ff00ff";//设置 label 的颜色。
  30475. label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。
  30476. label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。
  30477. label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。
  30478. label.width = 300;//设置 label 的宽度。
  30479. label.height = 200;//设置 label 的高度。
  30480. Laya.stage.addChild(label);//将 label 添加到显示列表。
  30481. var passwordLabel: Label = new Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。
  30482. passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。
  30483. passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。
  30484. passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。
  30485. passwordLabel.width = 300;//设置 passwordLabel 的宽度。
  30486. passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。
  30487. passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。
  30488. passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。
  30489. Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。
  30490. }
  30491. }
  30492. * @see laya.display.Text
  30493. */
  30494. class Label extends laya.ui.UIComponent {
  30495. /**
  30496. * @private 文本 <code>Text</code> 实例。
  30497. */
  30498. protected _tf:laya.display.Text;
  30499. /**
  30500. * 创建一个新的 <code>Label</code> 实例。
  30501. * @param text 文本内容字符串。
  30502. */
  30503. constructor(text?:string);
  30504. /**
  30505. * @inheritDoc
  30506. * @override
  30507. */
  30508. destroy(destroyChild?:boolean):void;
  30509. /**
  30510. * @override
  30511. * @inheritDoc
  30512. */
  30513. protected createChildren():void;
  30514. /**
  30515. * 当前文本内容字符串。
  30516. * @see laya.display.Text.text
  30517. */
  30518. get text():string;
  30519. set text(value:string);
  30520. /**
  30521. * @copy laya.display.Text#changeText()
  30522. */
  30523. changeText(text:string):void;
  30524. /**
  30525. * @copy laya.display.Text#wordWrap
  30526. */
  30527. get wordWrap():boolean;
  30528. /**
  30529. * @copy laya.display.Text#wordWrap
  30530. */
  30531. set wordWrap(value:boolean);
  30532. /**
  30533. * @copy laya.display.Text#color
  30534. */
  30535. get color():string;
  30536. set color(value:string);
  30537. /**
  30538. * @copy laya.display.Text#font
  30539. */
  30540. get font():string;
  30541. set font(value:string);
  30542. /**
  30543. * @copy laya.display.Text#align
  30544. */
  30545. get align():string;
  30546. set align(value:string);
  30547. /**
  30548. * @copy laya.display.Text#valign
  30549. */
  30550. get valign():string;
  30551. set valign(value:string);
  30552. /**
  30553. * @copy laya.display.Text#bold
  30554. */
  30555. get bold():boolean;
  30556. set bold(value:boolean);
  30557. /**
  30558. * @copy laya.display.Text#italic
  30559. */
  30560. get italic():boolean;
  30561. set italic(value:boolean);
  30562. /**
  30563. * @copy laya.display.Text#leading
  30564. */
  30565. get leading():number;
  30566. set leading(value:number);
  30567. /**
  30568. * @copy laya.display.Text#fontSize
  30569. */
  30570. get fontSize():number;
  30571. set fontSize(value:number);
  30572. /**
  30573. * <p>边距信息</p>
  30574. * <p>"上边距,右边距,下边距 , 左边距(边距以像素为单位)"</p>
  30575. * @see laya.display.Text.padding
  30576. */
  30577. get padding():string;
  30578. set padding(value:string);
  30579. /**
  30580. * @copy laya.display.Text#bgColor
  30581. */
  30582. get bgColor():string;
  30583. set bgColor(value:string);
  30584. /**
  30585. * @copy laya.display.Text#borderColor
  30586. */
  30587. get borderColor():string;
  30588. set borderColor(value:string);
  30589. /**
  30590. * @copy laya.display.Text#stroke
  30591. */
  30592. get stroke():number;
  30593. set stroke(value:number);
  30594. /**
  30595. * @copy laya.display.Text#strokeColor
  30596. */
  30597. get strokeColor():string;
  30598. set strokeColor(value:string);
  30599. /**
  30600. * 文本控件实体 <code>Text</code> 实例。
  30601. */
  30602. get textField():laya.display.Text;
  30603. /**
  30604. * @inheritDoc
  30605. * @override
  30606. */
  30607. protected measureWidth():number;
  30608. /**
  30609. * @inheritDoc
  30610. * @override
  30611. */
  30612. protected measureHeight():number;
  30613. /**
  30614. * @inheritDoc
  30615. * @override
  30616. */
  30617. get width():number;
  30618. /**
  30619. * @inheritDoc
  30620. * @override
  30621. */
  30622. set width(value:number);
  30623. /**
  30624. * @inheritDoc
  30625. * @override
  30626. */
  30627. get height():number;
  30628. /**
  30629. * @inheritDoc
  30630. * @override
  30631. */
  30632. set height(value:number);
  30633. /**
  30634. * @inheritDoc
  30635. * @override
  30636. */
  30637. set dataSource(value:any);
  30638. /**
  30639. * @inheritDoc
  30640. * @override
  30641. */
  30642. get dataSource():any;
  30643. /**
  30644. * @copy laya.display.Text#overflow
  30645. */
  30646. get overflow():string;
  30647. /**
  30648. * @copy laya.display.Text#overflow
  30649. */
  30650. set overflow(value:string);
  30651. /**
  30652. * @copy laya.display.Text#underline
  30653. */
  30654. get underline():boolean;
  30655. /**
  30656. * @copy laya.display.Text#underline
  30657. */
  30658. set underline(value:boolean);
  30659. /**
  30660. * @copy laya.display.Text#underlineColor
  30661. */
  30662. get underlineColor():string;
  30663. /**
  30664. * @copy laya.display.Text#underlineColor
  30665. */
  30666. set underlineColor(value:string);
  30667. }
  30668. }
  30669. declare module laya.ui {
  30670. /**
  30671. * <code>LayoutBox</code> 是一个布局容器类。
  30672. */
  30673. class LayoutBox extends laya.ui.Box {
  30674. /**
  30675. * @private
  30676. */
  30677. protected _space:number;
  30678. /**
  30679. * @private
  30680. */
  30681. protected _align:string;
  30682. /**
  30683. * @private
  30684. */
  30685. protected _itemChanged:boolean;
  30686. /**
  30687. * @inheritDoc
  30688. * @override
  30689. */
  30690. addChild(child:laya.display.Node):laya.display.Node;
  30691. private onResize:any;
  30692. /**
  30693. * @inheritDoc
  30694. * @override
  30695. */
  30696. addChildAt(child:laya.display.Node,index:number):laya.display.Node;
  30697. /**
  30698. * @inheritDoc
  30699. * @override
  30700. */
  30701. removeChildAt(index:number):laya.display.Node;
  30702. /**
  30703. * 刷新。
  30704. */
  30705. refresh():void;
  30706. /**
  30707. * 改变子对象的布局。
  30708. */
  30709. protected changeItems():void;
  30710. /**
  30711. * 子对象的间隔。
  30712. */
  30713. get space():number;
  30714. set space(value:number);
  30715. /**
  30716. * 子对象对齐方式。
  30717. */
  30718. get align():string;
  30719. set align(value:string);
  30720. /**
  30721. * 排序项目列表。可通过重写改变默认排序规则。
  30722. * @param items 项目列表。
  30723. */
  30724. protected sortItem(items:any[]):void;
  30725. protected _setItemChanged():void;
  30726. }
  30727. }
  30728. declare module laya.ui {
  30729. /**
  30730. * 当对象的 <code>selectedIndex</code> 属性发生变化时调度。
  30731. * @eventType laya.events.Event
  30732. */
  30733. /**
  30734. * 渲染列表的单元项对象时调度。
  30735. * @eventType Event.RENDER
  30736. */
  30737. /**
  30738. * <code>List</code> 控件可显示项目列表。默认为垂直方向列表。可通过UI编辑器自定义列表。
  30739. * @example <caption>以下示例代码,创建了一个 <code>List</code> 实例。</caption>
  30740. package
  30741. {
  30742. import laya.ui.List;
  30743. import laya.utils.Handler;
  30744. public class List_Example
  30745. {
  30746. public function List_Example()
  30747. {
  30748. Laya.init(640, 800, "false");//设置游戏画布宽高、渲染模式。
  30749. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  30750. 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));
  30751. }
  30752. private function onLoadComplete():void
  30753. {
  30754. var arr:Array = [];//创建一个数组,用于存贮列表的数据信息。
  30755. for (var i:int = 0; i &lt; 20; i++)
  30756. {
  30757. arr.push({label: "item" + i});
  30758. }
  30759. var list:List = new List();//创建一个 List 类的实例对象 list 。
  30760. list.itemRender = Item;//设置 list 的单元格渲染器。
  30761. list.repeatX = 1;//设置 list 的水平方向单元格数量。
  30762. list.repeatY = 10;//设置 list 的垂直方向单元格数量。
  30763. list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。
  30764. list.array = arr;//设置 list 的列表数据源。
  30765. list.pos(100, 100);//设置 list 的位置。
  30766. list.selectEnable = true;//设置 list 可选。
  30767. list.selectHandler = new Handler(this, onSelect);//设置 list 改变选择项执行的处理器。
  30768. Laya.stage.addChild(list);//将 list 添加到显示列表。
  30769. }
  30770. private function onSelect(index:int):void
  30771. {
  30772. trace("当前选择的项目索引: index= ", index);
  30773. }
  30774. }
  30775. }
  30776. import laya.ui.Box;
  30777. import laya.ui.Label;
  30778. class Item extends Box
  30779. {
  30780. public function Item()
  30781. {
  30782. graphics.drawRect(0, 0, 100, 20,null, "#ff0000");
  30783. var label:Label = new Label();
  30784. label.text = "100000";
  30785. label.name = "label";//设置 label 的name属性值。
  30786. label.size(100, 20);
  30787. addChild(label);
  30788. }
  30789. }
  30790. * @example (function (_super){
  30791. function Item(){
  30792. Item.__super.call(this);//初始化父类
  30793. this.graphics.drawRect(0, 0, 100, 20, "#ff0000");
  30794. var label = new laya.ui.Label();//创建一个 Label 类的实例对象 label 。
  30795. label.text = "100000";//设置 label 的文本内容。
  30796. label.name = "label";//设置 label 的name属性值。
  30797. label.size(100, 20);//设置 label 的宽度、高度。
  30798. this.addChild(label);//将 label 添加到显示列表。
  30799. };
  30800. Laya.class(Item,"mypackage.listExample.Item",_super);//注册类 Item 。
  30801. })(laya.ui.Box);
  30802. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  30803. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  30804. var res = ["resource/ui/vscroll.png", "resource/ui/vscroll$bar.png", "resource/ui/vscroll$down.png", "resource/ui/vscroll$up.png"];
  30805. Laya.loader.load(res, new laya.utils.Handler(this, onLoadComplete));//加载资源。
  30806. function onLoadComplete() {
  30807. var arr = [];//创建一个数组,用于存贮列表的数据信息。
  30808. for (var i = 0; i &lt; 20; i++) {
  30809. arr.push({label: "item" + i});
  30810. }
  30811. var list = new laya.ui.List();//创建一个 List 类的实例对象 list 。
  30812. list.itemRender = mypackage.listExample.Item;//设置 list 的单元格渲染器。
  30813. list.repeatX = 1;//设置 list 的水平方向单元格数量。
  30814. list.repeatY = 10;//设置 list 的垂直方向单元格数量。
  30815. list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。
  30816. list.array = arr;//设置 list 的列表数据源。
  30817. list.pos(100, 100);//设置 list 的位置。
  30818. list.selectEnable = true;//设置 list 可选。
  30819. list.selectHandler = new laya.utils.Handler(this, onSelect);//设置 list 改变选择项执行的处理器。
  30820. Laya.stage.addChild(list);//将 list 添加到显示列表。
  30821. }
  30822. function onSelect(index)
  30823. {
  30824. console.log("当前选择的项目索引: index= ", index);
  30825. }
  30826. * @example import List = laya.ui.List;
  30827. import Handler = laya.utils.Handler;
  30828. public class List_Example {
  30829. public List_Example() {
  30830. Laya.init(640, 800);//设置游戏画布宽高。
  30831. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  30832. 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));
  30833. }
  30834. private onLoadComplete(): void {
  30835. var arr= [];//创建一个数组,用于存贮列表的数据信息。
  30836. for (var i: number = 0; i &lt; 20; i++)
  30837. {
  30838. arr.push({ label: "item" + i });
  30839. }
  30840. var list: List = new List();//创建一个 List 类的实例对象 list 。
  30841. list.itemRender = Item;//设置 list 的单元格渲染器。
  30842. list.repeatX = 1;//设置 list 的水平方向单元格数量。
  30843. list.repeatY = 10;//设置 list 的垂直方向单元格数量。
  30844. list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。
  30845. list.array = arr;//设置 list 的列表数据源。
  30846. list.pos(100, 100);//设置 list 的位置。
  30847. list.selectEnable = true;//设置 list 可选。
  30848. list.selectHandler = new Handler(this, this.onSelect);//设置 list 改变选择项执行的处理器。
  30849. Laya.stage.addChild(list);//将 list 添加到显示列表。
  30850. }
  30851. private onSelect(index: number): void {
  30852. console.log("当前选择的项目索引: index= ", index);
  30853. }
  30854. }
  30855. import Box = laya.ui.Box;
  30856. import Label = laya.ui.Label;
  30857. class Item extends Box {
  30858. constructor() {
  30859. this.graphics.drawRect(0, 0, 100, 20, null, "#ff0000");
  30860. var label: Label = new Label();
  30861. label.text = "100000";
  30862. label.name = "label";//设置 label 的name属性值。
  30863. label.size(100, 20);
  30864. this.addChild(label);
  30865. }
  30866. }
  30867. */
  30868. class List extends laya.ui.Box implements laya.ui.IRender,laya.ui.IItem {
  30869. /**
  30870. * 改变 <code>List</code> 的选择项时执行的处理器,(默认返回参数: 项索引(index:int))。
  30871. */
  30872. selectHandler:laya.utils.Handler;
  30873. /**
  30874. * 单元格渲染处理器(默认返回参数cell:Box,index:int)。
  30875. */
  30876. renderHandler:laya.utils.Handler;
  30877. /**
  30878. * 单元格鼠标事件处理器(默认返回参数e:Event,index:int)。
  30879. */
  30880. mouseHandler:laya.utils.Handler;
  30881. /**
  30882. * 指定是否可以选择,若值为true则可以选择,否则不可以选择。 @default false
  30883. */
  30884. selectEnable:boolean;
  30885. /**
  30886. * 最大分页数。
  30887. */
  30888. totalPage:number;
  30889. /**
  30890. * @private
  30891. */
  30892. protected _content:laya.ui.Box;
  30893. /**
  30894. * @private
  30895. */
  30896. protected _scrollBar:laya.ui.ScrollBar;
  30897. /**
  30898. * @private
  30899. */
  30900. protected _itemRender:any;
  30901. /**
  30902. * @private
  30903. */
  30904. protected _repeatX:number;
  30905. /**
  30906. * @private
  30907. */
  30908. protected _repeatY:number;
  30909. /**
  30910. * @private
  30911. */
  30912. protected _repeatX2:number;
  30913. /**
  30914. * @private
  30915. */
  30916. protected _repeatY2:number;
  30917. /**
  30918. * @private
  30919. */
  30920. protected _spaceX:number;
  30921. /**
  30922. * @private
  30923. */
  30924. protected _spaceY:number;
  30925. /**
  30926. * @private
  30927. */
  30928. protected _cells:laya.ui.Box[];
  30929. /**
  30930. * @private
  30931. */
  30932. protected _array:any[];
  30933. /**
  30934. * @private
  30935. */
  30936. protected _startIndex:number;
  30937. /**
  30938. * @private
  30939. */
  30940. protected _selectedIndex:number;
  30941. /**
  30942. * @private
  30943. */
  30944. protected _page:number;
  30945. /**
  30946. * @private
  30947. */
  30948. protected _isVertical:boolean;
  30949. /**
  30950. * @private
  30951. */
  30952. protected _cellSize:number;
  30953. /**
  30954. * @private
  30955. */
  30956. protected _cellOffset:number;
  30957. /**
  30958. * @private
  30959. */
  30960. protected _isMoved:boolean;
  30961. /**
  30962. * 是否缓存内容,如果数据源较少,并且list内无动画,设置此属性为true能大大提高性能
  30963. */
  30964. cacheContent:boolean;
  30965. /**
  30966. * @private
  30967. */
  30968. protected _createdLine:number;
  30969. /**
  30970. * @private
  30971. */
  30972. protected _cellChanged:boolean;
  30973. /**
  30974. * @private
  30975. */
  30976. protected _offset:laya.maths.Point;
  30977. /**
  30978. * @private
  30979. */
  30980. protected _usedCache:string;
  30981. /**
  30982. * @private
  30983. */
  30984. protected _elasticEnabled:boolean;
  30985. /**
  30986. * @inheritDoc
  30987. * @override
  30988. */
  30989. destroy(destroyChild?:boolean):void;
  30990. /**
  30991. * @inheritDoc
  30992. * @override
  30993. */
  30994. protected createChildren():void;
  30995. /**
  30996. * @inheritDoc
  30997. * @override
  30998. */
  30999. set cacheAs(value:string);
  31000. /**
  31001. * @inheritDoc
  31002. * @override
  31003. */
  31004. get cacheAs():string;
  31005. private onScrollStart:any;
  31006. private onScrollEnd:any;
  31007. /**
  31008. * 获取对 <code>List</code> 组件所包含的内容容器 <code>Box</code> 组件的引用。
  31009. */
  31010. get content():laya.ui.Box;
  31011. /**
  31012. * 垂直方向滚动条皮肤。
  31013. */
  31014. get vScrollBarSkin():string;
  31015. set vScrollBarSkin(value:string);
  31016. private _removePreScrollBar:any;
  31017. /**
  31018. * 水平方向滚动条皮肤。
  31019. */
  31020. get hScrollBarSkin():string;
  31021. set hScrollBarSkin(value:string);
  31022. /**
  31023. * 获取对 <code>List</code> 组件所包含的滚动条 <code>ScrollBar</code> 组件的引用。
  31024. */
  31025. get scrollBar():laya.ui.ScrollBar;
  31026. set scrollBar(value:laya.ui.ScrollBar);
  31027. /**
  31028. * 单元格渲染器。
  31029. * <p><b>取值:</b>
  31030. * <ol>
  31031. * <li>单元格类对象。</li>
  31032. * <li> UI 的 JSON 描述。</li>
  31033. * </ol></p>
  31034. * @implements
  31035. */
  31036. get itemRender():any;
  31037. set itemRender(value:any);
  31038. /**
  31039. * @inheritDoc
  31040. * @override
  31041. */
  31042. set width(value:number);
  31043. /**
  31044. * @inheritDoc
  31045. * @override
  31046. */
  31047. get width():number;
  31048. /**
  31049. * @inheritDoc
  31050. * @override
  31051. */
  31052. set height(value:number);
  31053. /**
  31054. * @inheritDoc
  31055. * @override
  31056. */
  31057. get height():number;
  31058. /**
  31059. * 水平方向显示的单元格数量。
  31060. */
  31061. get repeatX():number;
  31062. set repeatX(value:number);
  31063. /**
  31064. * 垂直方向显示的单元格数量。
  31065. */
  31066. get repeatY():number;
  31067. set repeatY(value:number);
  31068. /**
  31069. * 水平方向显示的单元格之间的间距(以像素为单位)。
  31070. */
  31071. get spaceX():number;
  31072. set spaceX(value:number);
  31073. /**
  31074. * 垂直方向显示的单元格之间的间距(以像素为单位)。
  31075. */
  31076. get spaceY():number;
  31077. set spaceY(value:number);
  31078. /**
  31079. * @private 更改单元格的信息。
  31080. 在此销毁、创建单元格,并设置单元格的位置等属性。相当于此列表内容发送改变时调用此函数。
  31081. */
  31082. protected changeCells():void;
  31083. private _getOneCell:any;
  31084. private _createItems:any;
  31085. protected createItem():laya.ui.Box;
  31086. /**
  31087. * @private 添加单元格。
  31088. * @param cell 需要添加的单元格对象。
  31089. */
  31090. protected addCell(cell:laya.ui.Box):void;
  31091. /**
  31092. * 初始化单元格信息。
  31093. */
  31094. initItems():void;
  31095. /**
  31096. * 设置可视区域大小。
  31097. * <p>以(0,0,width参数,height参数)组成的矩形区域为可视区域。</p>
  31098. * @param width 可视区域宽度。
  31099. * @param height 可视区域高度。
  31100. */
  31101. setContentSize(width:number,height:number):void;
  31102. /**
  31103. * @private 单元格的鼠标事件侦听处理函数。
  31104. */
  31105. protected onCellMouse(e:laya.events.Event):void;
  31106. /**
  31107. * @private 改变单元格的可视状态。
  31108. * @param cell 单元格对象。
  31109. * @param visable 是否显示。
  31110. * @param index 单元格的属性 <code>index</code> 值。
  31111. */
  31112. protected changeCellState(cell:laya.ui.Box,visible:boolean,index:number):void;
  31113. /**
  31114. * @inheritDoc
  31115. * @override
  31116. */
  31117. protected _sizeChanged():void;
  31118. /**
  31119. * @private 滚动条的 <code>Event.CHANGE</code> 事件侦听处理函数。
  31120. */
  31121. protected onScrollBarChange(e?:laya.events.Event):void;
  31122. private posCell:any;
  31123. /**
  31124. * 表示当前选择的项索引。selectedIndex值更改会引起list重新渲染
  31125. */
  31126. get selectedIndex():number;
  31127. set selectedIndex(value:number);
  31128. /**
  31129. * @private 改变单元格的选择状态。
  31130. */
  31131. protected changeSelectStatus():void;
  31132. /**
  31133. * 当前选中的单元格数据源。
  31134. */
  31135. get selectedItem():any;
  31136. set selectedItem(value:any);
  31137. /**
  31138. * 获取或设置当前选择的单元格对象。
  31139. */
  31140. get selection():laya.ui.Box;
  31141. set selection(value:laya.ui.Box);
  31142. /**
  31143. * 当前显示的单元格列表的开始索引。
  31144. */
  31145. get startIndex():number;
  31146. set startIndex(value:number);
  31147. /**
  31148. * @private 渲染单元格列表。
  31149. */
  31150. protected renderItems(from?:number,to?:number):void;
  31151. /**
  31152. * 渲染一个单元格。
  31153. * @param cell 需要渲染的单元格对象。
  31154. * @param index 单元格索引。
  31155. */
  31156. protected renderItem(cell:laya.ui.Box,index:number):void;
  31157. private _bindData:any;
  31158. /**
  31159. * 列表数据源。
  31160. */
  31161. get array():any[];
  31162. private _preLen:any;
  31163. set array(value:any[]);
  31164. /**
  31165. * 更新数据源,不刷新list,只增加滚动长度
  31166. * @param array 数据源
  31167. */
  31168. updateArray(array:any[]):void;
  31169. /**
  31170. * 列表的当前页码。
  31171. */
  31172. get page():number;
  31173. set page(value:number);
  31174. /**
  31175. * 列表的数据总个数。
  31176. */
  31177. get length():number;
  31178. /**
  31179. * @inheritDoc
  31180. * @override
  31181. */
  31182. set dataSource(value:any);
  31183. /**
  31184. * @inheritDoc
  31185. * @override
  31186. */
  31187. get dataSource():any;
  31188. /**
  31189. * 单元格集合。
  31190. */
  31191. get cells():laya.ui.Box[];
  31192. /**
  31193. * 是否开启橡皮筋效果
  31194. */
  31195. get elasticEnabled():boolean;
  31196. set elasticEnabled(value:boolean);
  31197. /**
  31198. * 刷新列表数据源。
  31199. */
  31200. refresh():void;
  31201. /**
  31202. * 获取单元格数据源。
  31203. * @param index 单元格索引。
  31204. */
  31205. getItem(index:number):any;
  31206. /**
  31207. * 修改单元格数据源。
  31208. * @param index 单元格索引。
  31209. * @param source 单元格数据源。
  31210. */
  31211. changeItem(index:number,source:any):void;
  31212. /**
  31213. * 设置单元格数据源。
  31214. * @param index 单元格索引。
  31215. * @param source 单元格数据源。
  31216. */
  31217. setItem(index:number,source:any):void;
  31218. /**
  31219. * 添加单元格数据源。
  31220. * @param souce 数据源。
  31221. */
  31222. addItem(souce:any):void;
  31223. /**
  31224. * 添加单元格数据源到对应的数据索引处。
  31225. * @param souce 单元格数据源。
  31226. * @param index 索引。
  31227. */
  31228. addItemAt(souce:any,index:number):void;
  31229. /**
  31230. * 通过数据源索引删除单元格数据源。
  31231. * @param index 需要删除的数据源索引值。
  31232. */
  31233. deleteItem(index:number):void;
  31234. /**
  31235. * 通过可视单元格索引,获取单元格。
  31236. * @param index 可视单元格索引。
  31237. * @return 单元格对象。
  31238. */
  31239. getCell(index:number):laya.ui.Box;
  31240. /**
  31241. * <p>滚动列表,以设定的数据索引对应的单元格为当前可视列表的第一项。</p>
  31242. * @param index 单元格在数据列表中的索引。
  31243. */
  31244. scrollTo(index:number):void;
  31245. /**
  31246. * <p>缓动滚动列表,以设定的数据索引对应的单元格为当前可视列表的第一项。</p>
  31247. * @param index 单元格在数据列表中的索引。
  31248. * @param time 缓动时间。
  31249. * @param complete 缓动结束回掉
  31250. */
  31251. tweenTo(index:number,time?:number,complete?:laya.utils.Handler):void;
  31252. /**
  31253. * @private
  31254. */
  31255. protected _setCellChanged():void;
  31256. /**
  31257. * @override
  31258. */
  31259. protected commitMeasure():void;
  31260. }
  31261. }
  31262. declare module laya.ui {
  31263. /**
  31264. * <code>Panel</code> 是一个面板容器类。
  31265. */
  31266. class Panel extends laya.ui.Box {
  31267. /**
  31268. * @private
  31269. */
  31270. protected _content:laya.ui.Box;
  31271. /**
  31272. * @private
  31273. */
  31274. protected _vScrollBar:laya.ui.VScrollBar;
  31275. /**
  31276. * @private
  31277. */
  31278. protected _hScrollBar:laya.ui.HScrollBar;
  31279. /**
  31280. * @private
  31281. */
  31282. protected _scrollChanged:boolean;
  31283. /**
  31284. * @private
  31285. */
  31286. protected _usedCache:string;
  31287. /**
  31288. * @private
  31289. */
  31290. protected _elasticEnabled:boolean;
  31291. /**
  31292. * 创建一个新的 <code>Panel</code> 类实例。
  31293. * <p>在 <code>Panel</code> 构造函数中设置属性width、height的值都为100。</p>
  31294. */
  31295. constructor();
  31296. /**
  31297. * @inheritDoc
  31298. * @override
  31299. */
  31300. destroy(destroyChild?:boolean):void;
  31301. /**
  31302. * @inheritDoc
  31303. * @override
  31304. */
  31305. destroyChildren():void;
  31306. /**
  31307. * @inheritDoc
  31308. * @override
  31309. */
  31310. protected createChildren():void;
  31311. /**
  31312. * @inheritDoc
  31313. * @override
  31314. */
  31315. addChild(child:laya.display.Node):laya.display.Node;
  31316. /**
  31317. * @private 子对象的 <code>Event.RESIZE</code> 事件侦听处理函数。
  31318. */
  31319. private onResize:any;
  31320. /**
  31321. * @inheritDoc
  31322. * @override
  31323. */
  31324. addChildAt(child:laya.display.Node,index:number):laya.display.Node;
  31325. /**
  31326. * @inheritDoc
  31327. * @override
  31328. */
  31329. removeChild(child:laya.display.Node):laya.display.Node;
  31330. /**
  31331. * @inheritDoc
  31332. * @override
  31333. */
  31334. removeChildAt(index:number):laya.display.Node;
  31335. /**
  31336. * @inheritDoc
  31337. * @override
  31338. */
  31339. removeChildren(beginIndex?:number,endIndex?:number):laya.display.Node;
  31340. /**
  31341. * @inheritDoc
  31342. * @override
  31343. */
  31344. getChildAt(index:number):laya.display.Node;
  31345. /**
  31346. * @inheritDoc
  31347. * @override
  31348. */
  31349. getChildByName(name:string):laya.display.Node;
  31350. /**
  31351. * @inheritDoc
  31352. * @override
  31353. */
  31354. getChildIndex(child:laya.display.Node):number;
  31355. /**
  31356. * @inheritDoc
  31357. * @override
  31358. */
  31359. get numChildren():number;
  31360. /**
  31361. * @private
  31362. */
  31363. private changeScroll:any;
  31364. /**
  31365. * @inheritDoc
  31366. * @override
  31367. */
  31368. protected _sizeChanged():void;
  31369. /**
  31370. * @private 获取内容宽度(以像素为单位)。
  31371. */
  31372. get contentWidth():number;
  31373. /**
  31374. * @private 获取内容高度(以像素为单位)。
  31375. */
  31376. get contentHeight():number;
  31377. /**
  31378. * @private 设置内容的宽度、高度(以像素为单位)。
  31379. * @param width 宽度。
  31380. * @param height 高度。
  31381. */
  31382. private setContentSize:any;
  31383. /**
  31384. * @inheritDoc
  31385. * @override
  31386. */
  31387. set width(value:number);
  31388. /**
  31389. * @inheritDoc
  31390. * @override
  31391. */
  31392. get width():number;
  31393. /**
  31394. * @inheritDoc
  31395. * @override
  31396. */
  31397. set height(value:number);
  31398. /**
  31399. * @inheritDoc
  31400. * @override
  31401. */
  31402. get height():number;
  31403. /**
  31404. * 垂直方向滚动条皮肤。
  31405. */
  31406. get vScrollBarSkin():string;
  31407. set vScrollBarSkin(value:string);
  31408. /**
  31409. * 水平方向滚动条皮肤。
  31410. */
  31411. get hScrollBarSkin():string;
  31412. set hScrollBarSkin(value:string);
  31413. /**
  31414. * 垂直方向滚动条对象。
  31415. */
  31416. get vScrollBar():laya.ui.ScrollBar;
  31417. /**
  31418. * 水平方向滚动条对象。
  31419. */
  31420. get hScrollBar():laya.ui.ScrollBar;
  31421. /**
  31422. * 获取内容容器对象。
  31423. */
  31424. get content():laya.display.Sprite;
  31425. /**
  31426. * @private 滚动条的<code><code>Event.MOUSE_DOWN</code>事件侦听处理函数。</code>事件侦听处理函数。
  31427. * @param scrollBar 滚动条对象。
  31428. * @param e Event 对象。
  31429. */
  31430. protected onScrollBarChange(scrollBar:laya.ui.ScrollBar):void;
  31431. /**
  31432. * <p>滚动内容容器至设定的垂直、水平方向滚动条位置。</p>
  31433. * @param x 水平方向滚动条属性value值。滚动条位置数字。
  31434. * @param y 垂直方向滚动条属性value值。滚动条位置数字。
  31435. */
  31436. scrollTo(x?:number,y?:number):void;
  31437. /**
  31438. * 刷新滚动内容。
  31439. */
  31440. refresh():void;
  31441. /**
  31442. * @inheritDoc
  31443. * @override
  31444. */
  31445. set cacheAs(value:string);
  31446. /**
  31447. * @inheritDoc
  31448. * @override
  31449. */
  31450. get cacheAs():string;
  31451. /**
  31452. * 是否开启橡皮筋效果
  31453. */
  31454. get elasticEnabled():boolean;
  31455. set elasticEnabled(value:boolean);
  31456. private onScrollStart:any;
  31457. private onScrollEnd:any;
  31458. /**
  31459. * @private
  31460. */
  31461. protected _setScrollChanged():void;
  31462. }
  31463. }
  31464. declare module laya.ui {
  31465. /**
  31466. * 值发生改变后调度。
  31467. * @eventType laya.events.Event
  31468. */
  31469. /**
  31470. * <code>ProgressBar</code> 组件显示内容的加载进度。
  31471. * @example <caption>以下示例代码,创建了一个新的 <code>ProgressBar</code> 实例,设置了它的皮肤、位置、宽高、网格等信息,并添加到舞台上。</caption>
  31472. package
  31473. {
  31474. import laya.ui.ProgressBar;
  31475. import laya.utils.Handler;
  31476. public class ProgressBar_Example
  31477. {
  31478. private var progressBar:ProgressBar;
  31479. public function ProgressBar_Example()
  31480. {
  31481. Laya.init(640, 800);//设置游戏画布宽高。
  31482. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  31483. Laya.loader.load(["resource/ui/progress.png", "resource/ui/progress$bar.png"], Handler.create(this, onLoadComplete));//加载资源。
  31484. }
  31485. private function onLoadComplete():void
  31486. {
  31487. progressBar = new ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。
  31488. progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。
  31489. progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。
  31490. progressBar.value = 0.3;//设置 progressBar 的进度值。
  31491. progressBar.width = 200;//设置 progressBar 的宽度。
  31492. progressBar.height = 50;//设置 progressBar 的高度。
  31493. progressBar.sizeGrid = "5,10,5,10";//设置 progressBar 的网格信息。
  31494. progressBar.changeHandler = new Handler(this, onChange);//设置 progressBar 的value值改变时执行的处理器。
  31495. Laya.stage.addChild(progressBar);//将 progressBar 添加到显示列表。
  31496. Laya.timer.once(3000, this, changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。
  31497. }
  31498. private function changeValue():void
  31499. {
  31500. trace("改变进度条的进度值。");
  31501. progressBar.value = 0.6;
  31502. }
  31503. private function onChange(value:Number):void
  31504. {
  31505. trace("进度发生改变: value=" ,value);
  31506. }
  31507. }
  31508. }
  31509. * @example Laya.init(640, 800);//设置游戏画布宽高
  31510. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  31511. var res = ["resource/ui/progress.png", "resource/ui/progress$bar.png"];
  31512. Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  31513. function onLoadComplete()
  31514. {
  31515. progressBar = new laya.ui.ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。
  31516. progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。
  31517. progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。
  31518. progressBar.value = 0.3;//设置 progressBar 的进度值。
  31519. progressBar.width = 200;//设置 progressBar 的宽度。
  31520. progressBar.height = 50;//设置 progressBar 的高度。
  31521. progressBar.sizeGrid = "10,5,10,5";//设置 progressBar 的网格信息。
  31522. progressBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 progressBar 的value值改变时执行的处理器。
  31523. Laya.stage.addChild(progressBar);//将 progressBar 添加到显示列表。
  31524. Laya.timer.once(3000, this, changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。
  31525. }
  31526. function changeValue()
  31527. {
  31528. console.log("改变进度条的进度值。");
  31529. progressBar.value = 0.6;
  31530. }
  31531. function onChange(value)
  31532. {
  31533. console.log("进度发生改变: value=" ,value);
  31534. }
  31535. * @example import ProgressBar = laya.ui.ProgressBar;
  31536. import Handler = laya.utils.Handler;
  31537. class ProgressBar_Example {
  31538. private progressBar: ProgressBar;
  31539. public ProgressBar_Example() {
  31540. Laya.init(640, 800);//设置游戏画布宽高。
  31541. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  31542. Laya.loader.load(["resource/ui/progress.png", "resource/ui/progress$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  31543. }
  31544. private onLoadComplete(): void {
  31545. this.progressBar = new ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。
  31546. this.progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。
  31547. this.progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。
  31548. this.progressBar.value = 0.3;//设置 progressBar 的进度值。
  31549. this.progressBar.width = 200;//设置 progressBar 的宽度。
  31550. this.progressBar.height = 50;//设置 progressBar 的高度。
  31551. this.progressBar.sizeGrid = "5,10,5,10";//设置 progressBar 的网格信息。
  31552. this.progressBar.changeHandler = new Handler(this, this.onChange);//设置 progressBar 的value值改变时执行的处理器。
  31553. Laya.stage.addChild(this.progressBar);//将 progressBar 添加到显示列表。
  31554. Laya.timer.once(3000, this, this.changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。
  31555. }
  31556. private changeValue(): void {
  31557. console.log("改变进度条的进度值。");
  31558. this.progressBar.value = 0.6;
  31559. }
  31560. private onChange(value: number): void {
  31561. console.log("进度发生改变: value=", value);
  31562. }
  31563. }
  31564. */
  31565. class ProgressBar extends laya.ui.UIComponent {
  31566. /**
  31567. * 当 <code>ProgressBar</code> 实例的 <code>value</code> 属性发生变化时的函数处理器。
  31568. * <p>默认返回参数<code>value</code> 属性(进度值)。</p>
  31569. */
  31570. changeHandler:laya.utils.Handler;
  31571. /**
  31572. * @private
  31573. */
  31574. protected _bg:laya.ui.Image;
  31575. /**
  31576. * @private
  31577. */
  31578. protected _bar:laya.ui.Image;
  31579. /**
  31580. * @private
  31581. */
  31582. protected _skin:string;
  31583. /**
  31584. * @private
  31585. */
  31586. protected _value:number;
  31587. /**
  31588. * 创建一个新的 <code>ProgressBar</code> 类实例。
  31589. * @param skin 皮肤地址。
  31590. */
  31591. constructor(skin?:string);
  31592. /**
  31593. * @inheritDoc
  31594. * @override
  31595. */
  31596. destroy(destroyChild?:boolean):void;
  31597. /**
  31598. * @inheritDoc
  31599. * @override
  31600. */
  31601. protected createChildren():void;
  31602. /**
  31603. * @copy laya.ui.Image#skin
  31604. */
  31605. get skin():string;
  31606. set skin(value:string);
  31607. protected _skinLoaded():void;
  31608. /**
  31609. * @inheritDoc
  31610. * @override
  31611. */
  31612. protected measureWidth():number;
  31613. /**
  31614. * @inheritDoc
  31615. * @override
  31616. */
  31617. protected measureHeight():number;
  31618. /**
  31619. * 当前的进度量。
  31620. * <p><b>取值:</b>介于0和1之间。</p>
  31621. */
  31622. get value():number;
  31623. set value(num:number);
  31624. /**
  31625. * @private 更改进度值的显示。
  31626. */
  31627. protected changeValue():void;
  31628. /**
  31629. * 获取进度条对象。
  31630. */
  31631. get bar():laya.ui.Image;
  31632. /**
  31633. * 获取背景条对象。
  31634. */
  31635. get bg():laya.ui.Image;
  31636. /**
  31637. * <p>当前 <code>ProgressBar</code> 实例的进度条背景位图( <code>Image</code> 实例)的有效缩放网格数据。</p>
  31638. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  31639. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  31640. * @see laya.ui.AutoBitmap.sizeGrid
  31641. */
  31642. get sizeGrid():string;
  31643. set sizeGrid(value:string);
  31644. /**
  31645. * @inheritDoc
  31646. * @override
  31647. */
  31648. set width(value:number);
  31649. /**
  31650. * @inheritDoc
  31651. * @override
  31652. */
  31653. get width():number;
  31654. /**
  31655. * @inheritDoc
  31656. * @override
  31657. */
  31658. set height(value:number);
  31659. /**
  31660. * @inheritDoc
  31661. * @override
  31662. */
  31663. get height():number;
  31664. /**
  31665. * @inheritDoc
  31666. * @override
  31667. */
  31668. set dataSource(value:any);
  31669. /**
  31670. * @inheritDoc
  31671. * @override
  31672. */
  31673. get dataSource():any;
  31674. }
  31675. }
  31676. declare module laya.ui {
  31677. /**
  31678. * <code>Radio</code> 控件使用户可在一组互相排斥的选择中做出一种选择。
  31679. * 用户一次只能选择 <code>Radio</code> 组中的一个成员。选择未选中的组成员将取消选择该组中当前所选的 <code>Radio</code> 控件。
  31680. * @see laya.ui.RadioGroup
  31681. */
  31682. class Radio extends laya.ui.Button {
  31683. /**
  31684. * @private
  31685. */
  31686. protected _value:any;
  31687. /**
  31688. * 创建一个新的 <code>Radio</code> 类实例。
  31689. * @param skin 皮肤。
  31690. * @param label 标签。
  31691. */
  31692. constructor(skin?:string,label?:string);
  31693. /**
  31694. * @inheritDoc
  31695. * @override
  31696. */
  31697. destroy(destroyChild?:boolean):void;
  31698. /**
  31699. * @override
  31700. */
  31701. protected preinitialize():void;
  31702. /**
  31703. * @inheritDoc
  31704. * @override
  31705. */
  31706. protected initialize():void;
  31707. /**
  31708. * @private 对象的<code>Event.CLICK</code>事件侦听处理函数。
  31709. */
  31710. protected onClick(e:laya.events.Event):void;
  31711. /**
  31712. * 获取或设置 <code>Radio</code> 关联的可选用户定义值。
  31713. */
  31714. get value():any;
  31715. set value(obj:any);
  31716. }
  31717. }
  31718. declare module laya.ui {
  31719. /**
  31720. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  31721. * @eventType laya.events.Event
  31722. */
  31723. /**
  31724. * <code>RadioGroup</code> 控件定义一组 <code>Radio</code> 控件,这些控件相互排斥;
  31725. * 因此,用户每次只能选择一个 <code>Radio</code> 控件。
  31726. * @example <caption>以下示例代码,创建了一个 <code>RadioGroup</code> 实例。</caption>
  31727. package
  31728. {
  31729. import laya.ui.Radio;
  31730. import laya.ui.RadioGroup;
  31731. import laya.utils.Handler;
  31732. public class RadioGroup_Example
  31733. {
  31734. public function RadioGroup_Example()
  31735. {
  31736. Laya.init(640, 800);//设置游戏画布宽高。
  31737. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  31738. Laya.loader.load(["resource/ui/radio.png"], Handler.create(this, onLoadComplete));//加载资源。
  31739. }
  31740. private function onLoadComplete():void
  31741. {
  31742. var radioGroup:RadioGroup = new RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。
  31743. radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。
  31744. radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。
  31745. radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。
  31746. radioGroup.space = 10;//设置 radioGroup 的项间隔距离。
  31747. radioGroup.selectHandler = new Handler(this, onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。
  31748. Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。
  31749. }
  31750. private function onSelect(index:int):void
  31751. {
  31752. trace("当前选择的单选按钮索引: index= ", index);
  31753. }
  31754. }
  31755. }
  31756. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式
  31757. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  31758. Laya.loader.load(["resource/ui/radio.png"], laya.utils.Handler.create(this, onLoadComplete));
  31759. function onLoadComplete() {
  31760. var radioGroup= new laya.ui.RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。
  31761. radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。
  31762. radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。
  31763. radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。
  31764. radioGroup.space = 10;//设置 radioGroup 的项间隔距离。
  31765. radioGroup.selectHandler = new laya.utils.Handler(this, onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。
  31766. Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。
  31767. }
  31768. function onSelect(index) {
  31769. console.log("当前选择的单选按钮索引: index= ", index);
  31770. }
  31771. * @example import Radio = laya.ui.Radio;
  31772. import RadioGroup = laya.ui.RadioGroup;
  31773. import Handler = laya.utils.Handler;
  31774. class RadioGroup_Example {
  31775. constructor() {
  31776. Laya.init(640, 800);//设置游戏画布宽高。
  31777. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  31778. Laya.loader.load(["resource/ui/radio.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  31779. }
  31780. private onLoadComplete(): void {
  31781. var radioGroup: RadioGroup = new RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。
  31782. radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。
  31783. radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。
  31784. radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。
  31785. radioGroup.space = 10;//设置 radioGroup 的项间隔距离。
  31786. radioGroup.selectHandler = new Handler(this, this.onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。
  31787. Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。
  31788. }
  31789. private onSelect(index: number): void {
  31790. console.log("当前选择的单选按钮索引: index= ", index);
  31791. }
  31792. }
  31793. */
  31794. class RadioGroup extends laya.ui.UIGroup {
  31795. /**
  31796. * @inheritDoc
  31797. * @override
  31798. */
  31799. protected createItem(skin:string,label:string):laya.display.Sprite;
  31800. }
  31801. }
  31802. declare module laya.ui {
  31803. /**
  31804. * 自适应缩放容器,容器设置大小后,容器大小始终保持stage大小,子内容按照原始最小宽高比缩放
  31805. */
  31806. class ScaleBox extends laya.ui.Box {
  31807. private _oldW:any;
  31808. private _oldH:any;
  31809. /**
  31810. * @override
  31811. */
  31812. onEnable():void;
  31813. /**
  31814. * @override
  31815. */
  31816. onDisable():void;
  31817. private onResize:any;
  31818. /**
  31819. * @override
  31820. */
  31821. set width(value:number);
  31822. /**
  31823. * @inheritDoc
  31824. * @override
  31825. */
  31826. get width():number;
  31827. /**
  31828. * @override
  31829. */
  31830. set height(value:number);
  31831. /**
  31832. * @inheritDoc
  31833. * @override
  31834. */
  31835. get height():number;
  31836. }
  31837. }
  31838. declare module laya.ui {
  31839. /**
  31840. * 滚动条滑块位置发生变化后调度。
  31841. * @eventType laya.events.Event
  31842. */
  31843. /**
  31844. * 开始滑动。
  31845. * @eventType laya.events.Event
  31846. */
  31847. /**
  31848. * 结束滑动。
  31849. * @eventType laya.events.Event
  31850. */
  31851. /**
  31852. * <code>ScrollBar</code> 组件是一个滚动条组件。
  31853. * <p>当数据太多以至于显示区域无法容纳时,最终用户可以使用 <code>ScrollBar</code> 组件控制所显示的数据部分。</p>
  31854. * <p> 滚动条由四部分组成:两个箭头按钮、一个轨道和一个滑块。 </p> *
  31855. * @see laya.ui.VScrollBar
  31856. * @see laya.ui.HScrollBar
  31857. */
  31858. class ScrollBar extends laya.ui.UIComponent {
  31859. /**
  31860. * 滚动衰减系数
  31861. */
  31862. rollRatio:number;
  31863. /**
  31864. * 滚动变化时回调,回传value参数。
  31865. */
  31866. changeHandler:laya.utils.Handler;
  31867. /**
  31868. * 是否缩放滑动条,默认值为true。
  31869. */
  31870. scaleBar:boolean;
  31871. /**
  31872. * 一个布尔值,指定是否自动隐藏滚动条(无需滚动时),默认值为false。
  31873. */
  31874. autoHide:boolean;
  31875. /**
  31876. * 橡皮筋效果极限距离,0为没有橡皮筋效果。
  31877. */
  31878. elasticDistance:number;
  31879. /**
  31880. * 橡皮筋回弹时间,单位为毫秒。
  31881. */
  31882. elasticBackTime:number;
  31883. /**
  31884. * 上按钮
  31885. */
  31886. upButton:laya.ui.Button;
  31887. /**
  31888. * 下按钮
  31889. */
  31890. downButton:laya.ui.Button;
  31891. /**
  31892. * 滑条
  31893. */
  31894. slider:laya.ui.Slider;
  31895. /**
  31896. * @private
  31897. */
  31898. protected _showButtons:boolean;
  31899. /**
  31900. * @private
  31901. */
  31902. protected _scrollSize:number;
  31903. /**
  31904. * @private
  31905. */
  31906. protected _skin:string;
  31907. /**
  31908. * @private
  31909. */
  31910. protected _thumbPercent:number;
  31911. /**
  31912. * @private
  31913. */
  31914. protected _target:laya.display.Sprite;
  31915. /**
  31916. * @private
  31917. */
  31918. protected _lastPoint:laya.maths.Point;
  31919. /**
  31920. * @private
  31921. */
  31922. protected _lastOffset:number;
  31923. /**
  31924. * @private
  31925. */
  31926. protected _checkElastic:boolean;
  31927. /**
  31928. * @private
  31929. */
  31930. protected _isElastic:boolean;
  31931. /**
  31932. * @private
  31933. */
  31934. protected _value:number;
  31935. /**
  31936. * @private
  31937. */
  31938. protected _hide:boolean;
  31939. /**
  31940. * @private
  31941. */
  31942. protected _clickOnly:boolean;
  31943. /**
  31944. * @private
  31945. */
  31946. protected _offsets:any[];
  31947. /**
  31948. * @private
  31949. */
  31950. protected _touchScrollEnable:boolean;
  31951. /**
  31952. * @private
  31953. */
  31954. protected _mouseWheelEnable:boolean;
  31955. /**
  31956. * 创建一个新的 <code>ScrollBar</code> 实例。
  31957. * @param skin 皮肤资源地址。
  31958. */
  31959. constructor(skin?:string);
  31960. /**
  31961. * @inheritDoc
  31962. * @override
  31963. */
  31964. destroy(destroyChild?:boolean):void;
  31965. /**
  31966. * @override
  31967. */
  31968. protected createChildren():void;
  31969. /**
  31970. * @override
  31971. */
  31972. protected initialize():void;
  31973. /**
  31974. * @private 滑块位置发生改变的处理函数。
  31975. */
  31976. protected onSliderChange():void;
  31977. /**
  31978. * @private 向上和向下按钮的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  31979. */
  31980. protected onButtonMouseDown(e:laya.events.Event):void;
  31981. /**
  31982. * @private
  31983. */
  31984. protected startLoop(isUp:boolean):void;
  31985. /**
  31986. * @private
  31987. */
  31988. protected slide(isUp:boolean):void;
  31989. /**
  31990. * @private 舞台的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  31991. */
  31992. protected onStageMouseUp(e:laya.events.Event):void;
  31993. /**
  31994. * @copy laya.ui.Image#skin
  31995. */
  31996. get skin():string;
  31997. set skin(value:string);
  31998. protected _skinLoaded():void;
  31999. /**
  32000. * @private 更改对象的皮肤及位置。
  32001. */
  32002. protected changeScrollBar():void;
  32003. /**
  32004. * @inheritDoc
  32005. * @override
  32006. */
  32007. protected _sizeChanged():void;
  32008. /**
  32009. * @private
  32010. */
  32011. private resetPositions:any;
  32012. /**
  32013. * @private
  32014. */
  32015. protected resetButtonPosition():void;
  32016. /**
  32017. * @inheritDoc
  32018. * @override
  32019. */
  32020. protected measureWidth():number;
  32021. /**
  32022. * @inheritDoc
  32023. * @override
  32024. */
  32025. protected measureHeight():number;
  32026. /**
  32027. * 设置滚动条信息。
  32028. * @param min 滚动条最小位置值。
  32029. * @param max 滚动条最大位置值。
  32030. * @param value 滚动条当前位置值。
  32031. */
  32032. setScroll(min:number,max:number,value:number):void;
  32033. /**
  32034. * 获取或设置表示最高滚动位置的数字。
  32035. */
  32036. get max():number;
  32037. set max(value:number);
  32038. /**
  32039. * 获取或设置表示最低滚动位置的数字。
  32040. */
  32041. get min():number;
  32042. set min(value:number);
  32043. /**
  32044. * 获取或设置表示当前滚动位置的数字。
  32045. */
  32046. get value():number;
  32047. set value(v:number);
  32048. /**
  32049. * 一个布尔值,指示滚动条是否为垂直滚动。如果值为true,则为垂直滚动,否则为水平滚动。
  32050. * <p>默认值为:true。</p>
  32051. */
  32052. get isVertical():boolean;
  32053. set isVertical(value:boolean);
  32054. /**
  32055. * <p>当前实例的 <code>Slider</code> 实例的有效缩放网格数据。</p>
  32056. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  32057. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  32058. * @see laya.ui.AutoBitmap.sizeGrid
  32059. */
  32060. get sizeGrid():string;
  32061. set sizeGrid(value:string);
  32062. /**
  32063. * 获取或设置一个值,该值表示按下滚动条轨道时页面滚动的增量。
  32064. */
  32065. get scrollSize():number;
  32066. set scrollSize(value:number);
  32067. /**
  32068. * @inheritDoc
  32069. * @override
  32070. */
  32071. set dataSource(value:any);
  32072. /**
  32073. * @inheritDoc
  32074. * @override
  32075. */
  32076. get dataSource():any;
  32077. /**
  32078. * 获取或设置一个值,该值表示滑条长度比例,值为:(0-1)。
  32079. */
  32080. get thumbPercent():number;
  32081. set thumbPercent(value:number);
  32082. /**
  32083. * 设置滚动对象。
  32084. * @see laya.ui.TouchScroll#target
  32085. */
  32086. get target():laya.display.Sprite;
  32087. set target(value:laya.display.Sprite);
  32088. /**
  32089. * 是否隐藏滚动条,不显示滚动条,但是可以正常滚动,默认为false。
  32090. */
  32091. get hide():boolean;
  32092. set hide(value:boolean);
  32093. /**
  32094. * 一个布尔值,指定是否显示向上、向下按钮,默认值为true。
  32095. */
  32096. get showButtons():boolean;
  32097. set showButtons(value:boolean);
  32098. /**
  32099. * 一个布尔值,指定是否开启触摸,默认值为true。
  32100. */
  32101. get touchScrollEnable():boolean;
  32102. set touchScrollEnable(value:boolean);
  32103. /**
  32104. * 一个布尔值,指定是否滑轮滚动,默认值为true。
  32105. */
  32106. get mouseWheelEnable():boolean;
  32107. set mouseWheelEnable(value:boolean);
  32108. /**
  32109. * @private
  32110. */
  32111. protected onTargetMouseWheel(e:laya.events.Event):void;
  32112. isLockedFun:Function;
  32113. /**
  32114. * @private
  32115. */
  32116. protected onTargetMouseDown(e:laya.events.Event):void;
  32117. startDragForce():void;
  32118. private cancelDragOp:any;
  32119. triggerDownDragLimit:Function;
  32120. triggerUpDragLimit:Function;
  32121. private checkTriggers:any;
  32122. get lastOffset():number;
  32123. startTweenMoveForce(lastOffset:number):void;
  32124. /**
  32125. * @private
  32126. */
  32127. protected loop():void;
  32128. /**
  32129. * @private
  32130. */
  32131. protected onStageMouseUp2(e:laya.events.Event):void;
  32132. /**
  32133. * @private
  32134. */
  32135. private elasticOver:any;
  32136. /**
  32137. * @private
  32138. */
  32139. protected tweenMove(maxDistance:number):void;
  32140. /**
  32141. * 停止滑动。
  32142. */
  32143. stopScroll():void;
  32144. /**
  32145. * 滚动的刻度值,滑动数值为tick的整数倍。默认值为1。
  32146. */
  32147. get tick():number;
  32148. set tick(value:number);
  32149. }
  32150. }
  32151. declare module laya.ui {
  32152. /**
  32153. * 移动滑块位置时调度。
  32154. * @eventType laya.events.Event
  32155. */
  32156. /**
  32157. * 移动滑块位置完成(用户鼠标抬起)后调度。
  32158. * @eventType
  32159. * @eventType laya.events.EventD
  32160. */
  32161. /**
  32162. * 使用 <code>Slider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  32163. * <p>滑块的当前值由滑块端点(对应于滑块的最小值和最大值)之间滑块的相对位置确定。</p>
  32164. * <p>滑块允许最小值和最大值之间特定间隔内的值。滑块还可以使用数据提示显示其当前值。</p>
  32165. * @see laya.ui.HSlider
  32166. * @see laya.ui.VSlider
  32167. */
  32168. class Slider extends laya.ui.UIComponent {
  32169. /**
  32170. * @private 获取对 <code>Slider</code> 组件所包含的 <code>Label</code> 组件的引用。
  32171. */
  32172. static label:laya.ui.Label;
  32173. /**
  32174. * 数据变化处理器。
  32175. * <p>默认回调参数为滑块位置属性 <code>value</code>属性值:Number 。</p>
  32176. */
  32177. changeHandler:laya.utils.Handler;
  32178. /**
  32179. * 一个布尔值,指示是否为垂直滚动。如果值为true,则为垂直方向,否则为水平方向。
  32180. * <p>默认值为:true。</p>
  32181. * @default true
  32182. */
  32183. isVertical:boolean;
  32184. /**
  32185. * 一个布尔值,指示是否显示标签。
  32186. * @default true
  32187. */
  32188. showLabel:boolean;
  32189. /**
  32190. * @private
  32191. */
  32192. protected _allowClickBack:boolean;
  32193. /**
  32194. * @private
  32195. */
  32196. protected _max:number;
  32197. /**
  32198. * @private
  32199. */
  32200. protected _min:number;
  32201. /**
  32202. * @private
  32203. */
  32204. protected _tick:number;
  32205. /**
  32206. * @private
  32207. */
  32208. protected _value:number;
  32209. /**
  32210. * @private
  32211. */
  32212. protected _skin:string;
  32213. /**
  32214. * @private
  32215. */
  32216. protected _bg:laya.ui.Image;
  32217. /**
  32218. * @private
  32219. */
  32220. protected _progress:laya.ui.Image;
  32221. /**
  32222. * @private
  32223. */
  32224. protected _bar:laya.ui.Button;
  32225. /**
  32226. * @private
  32227. */
  32228. protected _tx:number;
  32229. /**
  32230. * @private
  32231. */
  32232. protected _ty:number;
  32233. /**
  32234. * @private
  32235. */
  32236. protected _maxMove:number;
  32237. /**
  32238. * @private
  32239. */
  32240. protected _globalSacle:laya.maths.Point;
  32241. /**
  32242. * 创建一个新的 <code>Slider</code> 类示例。
  32243. * @param skin 皮肤。
  32244. */
  32245. constructor(skin?:string);
  32246. /**
  32247. * @inheritDoc
  32248. * @override
  32249. */
  32250. destroy(destroyChild?:boolean):void;
  32251. /**
  32252. * @inheritDoc
  32253. * @override
  32254. */
  32255. protected createChildren():void;
  32256. /**
  32257. * @inheritDoc
  32258. * @override
  32259. */
  32260. protected initialize():void;
  32261. /**
  32262. * @private 滑块的的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  32263. */
  32264. protected onBarMouseDown(e:laya.events.Event):void;
  32265. /**
  32266. * @private 显示标签。
  32267. */
  32268. protected showValueText():void;
  32269. /**
  32270. * @private 隐藏标签。
  32271. */
  32272. protected hideValueText():void;
  32273. /**
  32274. * @private
  32275. */
  32276. private mouseUp:any;
  32277. /**
  32278. * @private
  32279. */
  32280. private mouseMove:any;
  32281. /**
  32282. * @private
  32283. */
  32284. protected sendChangeEvent(type?:string):void;
  32285. /**
  32286. * @copy laya.ui.Image#skin
  32287. */
  32288. get skin():string;
  32289. set skin(value:string);
  32290. protected _skinLoaded():void;
  32291. /**
  32292. * @private 设置滑块的位置信息。
  32293. */
  32294. protected setBarPoint():void;
  32295. /**
  32296. * @inheritDoc
  32297. * @override
  32298. */
  32299. protected measureWidth():number;
  32300. /**
  32301. * @inheritDoc
  32302. * @override
  32303. */
  32304. protected measureHeight():number;
  32305. /**
  32306. * @inheritDoc
  32307. * @override
  32308. */
  32309. protected _sizeChanged():void;
  32310. /**
  32311. * <p>当前实例的背景图( <code>Image</code> )和滑块按钮( <code>Button</code> )实例的有效缩放网格数据。</p>
  32312. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  32313. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  32314. * @see laya.ui.AutoBitmap.sizeGrid
  32315. */
  32316. get sizeGrid():string;
  32317. set sizeGrid(value:string);
  32318. /**
  32319. * 设置滑动条的信息。
  32320. * @param min 滑块的最小值。
  32321. * @param max 滑块的最小值。
  32322. * @param value 滑块的当前值。
  32323. */
  32324. setSlider(min:number,max:number,value:number):void;
  32325. /**
  32326. * 滑动的刻度值,滑动数值为tick的整数倍。默认值为1。
  32327. */
  32328. get tick():number;
  32329. set tick(value:number);
  32330. /**
  32331. * @private 改变滑块的位置值。
  32332. */
  32333. changeValue():void;
  32334. /**
  32335. * 获取或设置表示最高位置的数字。 默认值为100。
  32336. */
  32337. get max():number;
  32338. set max(value:number);
  32339. /**
  32340. * 获取或设置表示最低位置的数字。 默认值为0。
  32341. */
  32342. get min():number;
  32343. set min(value:number);
  32344. /**
  32345. * 获取或设置表示当前滑块位置的数字。
  32346. */
  32347. get value():number;
  32348. set value(num:number);
  32349. /**
  32350. * 一个布尔值,指定是否允许通过点击滑动条改变 <code>Slider</code> 的 <code>value</code> 属性值。
  32351. */
  32352. get allowClickBack():boolean;
  32353. set allowClickBack(value:boolean);
  32354. /**
  32355. * @private 滑动条的 <code>Event.MOUSE_DOWN</code> 事件侦听处理函数。
  32356. */
  32357. protected onBgMouseDown(e:laya.events.Event):void;
  32358. /**
  32359. * @inheritDoc
  32360. * @override
  32361. */
  32362. set dataSource(value:any);
  32363. /**
  32364. * @inheritDoc
  32365. * @override
  32366. */
  32367. get dataSource():any;
  32368. /**
  32369. * 表示滑块按钮的引用。
  32370. */
  32371. get bar():laya.ui.Button;
  32372. }
  32373. }
  32374. declare module laya.ui {
  32375. /**
  32376. * <code>Styles</code> 定义了组件常用的样式属性。
  32377. */
  32378. class Styles {
  32379. /**
  32380. * 默认九宫格信息。
  32381. * @see laya.ui.AutoBitmap#sizeGrid
  32382. */
  32383. static defaultSizeGrid:any[];
  32384. /**
  32385. * 标签颜色。
  32386. */
  32387. static labelColor:string;
  32388. /**
  32389. * 标签的边距。
  32390. * <p><b>格式:</b>[上边距,右边距,下边距,左边距]。</p>
  32391. */
  32392. static labelPadding:any[];
  32393. /**
  32394. * 标签的边距。
  32395. * <p><b>格式:</b>[上边距,右边距,下边距,左边距]。</p>
  32396. */
  32397. static inputLabelPadding:any[];
  32398. /**
  32399. * 按钮皮肤的状态数,支持1,2,3三种状态值。
  32400. */
  32401. static buttonStateNum:number;
  32402. /**
  32403. * 按钮标签颜色。
  32404. * <p><b>格式:</b>[upColor,overColor,downColor,disableColor]。</p>
  32405. */
  32406. static buttonLabelColors:any[];
  32407. /**
  32408. * 下拉框项颜色。
  32409. * <p><b>格式:</b>[overBgColor,overLabelColor,outLabelColor,borderColor,bgColor]。</p>
  32410. */
  32411. static comboBoxItemColors:any[];
  32412. /**
  32413. * 滚动条的最小值。
  32414. */
  32415. static scrollBarMinNum:number;
  32416. /**
  32417. * 长按按钮,等待时间,使其可激活连续滚动。
  32418. */
  32419. static scrollBarDelayTime:number;
  32420. }
  32421. }
  32422. declare module laya.ui {
  32423. /**
  32424. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  32425. * @eventType laya.events.Event
  32426. */
  32427. /**
  32428. * <code>Tab</code> 组件用来定义选项卡按钮组。 *
  32429. * <p>属性:<code>selectedIndex</code> 的默认值为-1。</p>
  32430. * @example <caption>以下示例代码,创建了一个 <code>Tab</code> 实例。</caption>
  32431. package
  32432. {
  32433. import laya.ui.Tab;
  32434. import laya.utils.Handler;
  32435. public class Tab_Example
  32436. {
  32437. public function Tab_Example()
  32438. {
  32439. Laya.init(640, 800);//设置游戏画布宽高。
  32440. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  32441. Laya.loader.load(["resource/ui/tab.png"], Handler.create(this, onLoadComplete));//加载资源。
  32442. }
  32443. private function onLoadComplete():void
  32444. {
  32445. var tab:Tab = new Tab();//创建一个 Tab 类的实例对象 tab 。
  32446. tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。
  32447. tab.labels = "item0,item1,item2";//设置 tab 的标签集。
  32448. tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。
  32449. tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。
  32450. tab.selectHandler = new Handler(this, onSelect);//设置 tab 的选择项发生改变时执行的处理器。
  32451. Laya.stage.addChild(tab);//将 tab 添到显示列表。
  32452. }
  32453. private function onSelect(index:int):void
  32454. {
  32455. trace("当前选择的表情页索引: index= ", index);
  32456. }
  32457. }
  32458. }
  32459. * @example Laya.init(640, 800);//设置游戏画布宽高
  32460. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  32461. Laya.loader.load(["resource/ui/tab.png"], laya.utils.Handler.create(this, onLoadComplete));
  32462. function onLoadComplete() {
  32463. var tab = new laya.ui.Tab();//创建一个 Tab 类的实例对象 tab 。
  32464. tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。
  32465. tab.labels = "item0,item1,item2";//设置 tab 的标签集。
  32466. tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。
  32467. tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。
  32468. tab.selectHandler = new laya.utils.Handler(this, onSelect);//设置 tab 的选择项发生改变时执行的处理器。
  32469. Laya.stage.addChild(tab);//将 tab 添到显示列表。
  32470. }
  32471. function onSelect(index) {
  32472. console.log("当前选择的标签页索引: index= ", index);
  32473. }
  32474. * @example import Tab = laya.ui.Tab;
  32475. import Handler = laya.utils.Handler;
  32476. class Tab_Example {
  32477. constructor() {
  32478. Laya.init(640, 800);//设置游戏画布宽高。
  32479. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  32480. Laya.loader.load(["resource/ui/tab.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  32481. }
  32482. private onLoadComplete(): void {
  32483. var tab: Tab = new Tab();//创建一个 Tab 类的实例对象 tab 。
  32484. tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。
  32485. tab.labels = "item0,item1,item2";//设置 tab 的标签集。
  32486. tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。
  32487. tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。
  32488. tab.selectHandler = new Handler(this, this.onSelect);//设置 tab 的选择项发生改变时执行的处理器。
  32489. Laya.stage.addChild(tab);//将 tab 添到显示列表。
  32490. }
  32491. private onSelect(index: number): void {
  32492. console.log("当前选择的表情页索引: index= ", index);
  32493. }
  32494. }
  32495. */
  32496. class Tab extends laya.ui.UIGroup {
  32497. /**
  32498. * @private
  32499. * @inheritDoc
  32500. * @override
  32501. */
  32502. protected createItem(skin:string,label:string):laya.display.Sprite;
  32503. }
  32504. }
  32505. declare module laya.ui {
  32506. /**
  32507. * <code>TextArea</code> 类用于创建显示对象以显示和输入文本。
  32508. * @example <caption>以下示例代码,创建了一个 <code>TextArea</code> 实例。</caption>
  32509. package
  32510. {
  32511. import laya.ui.TextArea;
  32512. import laya.utils.Handler;
  32513. public class TextArea_Example
  32514. {
  32515. public function TextArea_Example()
  32516. {
  32517. Laya.init(640, 800);//设置游戏画布宽高。
  32518. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  32519. Laya.loader.load(["resource/ui/input.png"], Handler.create(this, onLoadComplete));//加载资源。
  32520. }
  32521. private function onLoadComplete():void
  32522. {
  32523. var textArea:TextArea = new TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。
  32524. textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。
  32525. textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。
  32526. textArea.color = "#008fff";//设置 textArea 的文本颜色。
  32527. textArea.font = "Arial";//设置 textArea 的字体。
  32528. textArea.bold = true;//设置 textArea 的文本显示为粗体。
  32529. textArea.fontSize = 20;//设置 textArea 的文本字体大小。
  32530. textArea.wordWrap = true;//设置 textArea 的文本自动换行。
  32531. textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。
  32532. textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。
  32533. textArea.width = 300;//设置 textArea 的宽度。
  32534. textArea.height = 200;//设置 textArea 的高度。
  32535. Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。
  32536. }
  32537. }
  32538. }
  32539. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式
  32540. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  32541. Laya.loader.load(["resource/ui/input.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  32542. function onLoadComplete() {
  32543. var textArea = new laya.ui.TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。
  32544. textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。
  32545. textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。
  32546. textArea.color = "#008fff";//设置 textArea 的文本颜色。
  32547. textArea.font = "Arial";//设置 textArea 的字体。
  32548. textArea.bold = true;//设置 textArea 的文本显示为粗体。
  32549. textArea.fontSize = 20;//设置 textArea 的文本字体大小。
  32550. textArea.wordWrap = true;//设置 textArea 的文本自动换行。
  32551. textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。
  32552. textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。
  32553. textArea.width = 300;//设置 textArea 的宽度。
  32554. textArea.height = 200;//设置 textArea 的高度。
  32555. Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。
  32556. }
  32557. * @example import TextArea = laya.ui.TextArea;
  32558. import Handler = laya.utils.Handler;
  32559. class TextArea_Example {
  32560. constructor() {
  32561. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  32562. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  32563. Laya.loader.load(["resource/ui/input.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  32564. }
  32565. private onLoadComplete(): void {
  32566. var textArea: TextArea = new TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。
  32567. textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。
  32568. textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。
  32569. textArea.color = "#008fff";//设置 textArea 的文本颜色。
  32570. textArea.font = "Arial";//设置 textArea 的字体。
  32571. textArea.bold = true;//设置 textArea 的文本显示为粗体。
  32572. textArea.fontSize = 20;//设置 textArea 的文本字体大小。
  32573. textArea.wordWrap = true;//设置 textArea 的文本自动换行。
  32574. textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。
  32575. textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。
  32576. textArea.width = 300;//设置 textArea 的宽度。
  32577. textArea.height = 200;//设置 textArea 的高度。
  32578. Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。
  32579. }
  32580. }
  32581. */
  32582. class TextArea extends laya.ui.TextInput {
  32583. /**
  32584. * @private
  32585. */
  32586. protected _vScrollBar:laya.ui.VScrollBar;
  32587. /**
  32588. * @private
  32589. */
  32590. protected _hScrollBar:laya.ui.HScrollBar;
  32591. /**
  32592. * <p>创建一个新的 <code>TextArea</code> 示例。</p>
  32593. * @param text 文本内容字符串。
  32594. */
  32595. constructor(text?:string);
  32596. private _onTextChange:any;
  32597. /**
  32598. * @param destroyChild
  32599. * @override
  32600. */
  32601. destroy(destroyChild?:boolean):void;
  32602. /**
  32603. * @override
  32604. */
  32605. protected initialize():void;
  32606. /**
  32607. * @override
  32608. */
  32609. set width(value:number);
  32610. /**
  32611. * @inheritDoc
  32612. * @override
  32613. */
  32614. get width():number;
  32615. /**
  32616. * @override
  32617. */
  32618. set height(value:number);
  32619. /**
  32620. * @inheritDoc
  32621. * @override
  32622. */
  32623. get height():number;
  32624. /**
  32625. * 垂直滚动条皮肤
  32626. */
  32627. get vScrollBarSkin():string;
  32628. set vScrollBarSkin(value:string);
  32629. /**
  32630. * 水平滚动条皮肤
  32631. */
  32632. get hScrollBarSkin():string;
  32633. set hScrollBarSkin(value:string);
  32634. protected onVBarChanged(e:laya.events.Event):void;
  32635. protected onHBarChanged(e:laya.events.Event):void;
  32636. /**
  32637. * 垂直滚动条实体
  32638. */
  32639. get vScrollBar():laya.ui.VScrollBar;
  32640. /**
  32641. * 水平滚动条实体
  32642. */
  32643. get hScrollBar():laya.ui.HScrollBar;
  32644. /**
  32645. * 垂直滚动最大值
  32646. */
  32647. get maxScrollY():number;
  32648. /**
  32649. * 垂直滚动值
  32650. */
  32651. get scrollY():number;
  32652. /**
  32653. * 水平滚动最大值
  32654. */
  32655. get maxScrollX():number;
  32656. /**
  32657. * 水平滚动值
  32658. */
  32659. get scrollX():number;
  32660. private changeScroll:any;
  32661. /**
  32662. * 滚动到某个位置
  32663. */
  32664. scrollTo(y:number):void;
  32665. }
  32666. }
  32667. declare module laya.ui {
  32668. /**
  32669. * 输入文本后调度。
  32670. * @eventType Event.INPUT
  32671. */
  32672. /**
  32673. * 在输入框内敲回车键后调度。
  32674. * @eventType Event.ENTER
  32675. */
  32676. /**
  32677. * 当获得输入焦点后调度。
  32678. * @eventType Event.FOCUS
  32679. */
  32680. /**
  32681. * 当失去输入焦点后调度。
  32682. * @eventType Event.BLUR
  32683. */
  32684. /**
  32685. * <code>TextInput</code> 类用于创建显示对象以显示和输入文本。
  32686. * @example <caption>以下示例代码,创建了一个 <code>TextInput</code> 实例。</caption>
  32687. package
  32688. {
  32689. import laya.display.Stage;
  32690. import laya.ui.TextInput;
  32691. import laya.utils.Handler;
  32692. public class TextInput_Example
  32693. {
  32694. public function TextInput_Example()
  32695. {
  32696. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  32697. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  32698. Laya.loader.load(["resource/ui/input.png"], Handler.create(this, onLoadComplete));//加载资源。
  32699. }
  32700. private function onLoadComplete():void
  32701. {
  32702. var textInput:TextInput = new TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。
  32703. textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。
  32704. textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。
  32705. textInput.color = "#008fff";//设置 textInput 的文本颜色。
  32706. textInput.font = "Arial";//设置 textInput 的文本字体。
  32707. textInput.bold = true;//设置 textInput 的文本显示为粗体。
  32708. textInput.fontSize = 30;//设置 textInput 的字体大小。
  32709. textInput.wordWrap = true;//设置 textInput 的文本自动换行。
  32710. textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。
  32711. textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。
  32712. textInput.width = 300;//设置 textInput 的宽度。
  32713. textInput.height = 200;//设置 textInput 的高度。
  32714. Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。
  32715. }
  32716. }
  32717. }
  32718. * @example Laya.init(640, 800);//设置游戏画布宽高
  32719. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  32720. Laya.loader.load(["resource/ui/input.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  32721. function onLoadComplete() {
  32722. var textInput = new laya.ui.TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。
  32723. textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。
  32724. textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。
  32725. textInput.color = "#008fff";//设置 textInput 的文本颜色。
  32726. textInput.font = "Arial";//设置 textInput 的文本字体。
  32727. textInput.bold = true;//设置 textInput 的文本显示为粗体。
  32728. textInput.fontSize = 30;//设置 textInput 的字体大小。
  32729. textInput.wordWrap = true;//设置 textInput 的文本自动换行。
  32730. textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。
  32731. textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。
  32732. textInput.width = 300;//设置 textInput 的宽度。
  32733. textInput.height = 200;//设置 textInput 的高度。
  32734. Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。
  32735. }
  32736. * @example import Stage = laya.display.Stage;
  32737. import TextInput = laya.ui.TextInput;
  32738. import Handler = laya.utils.Handler;
  32739. class TextInput_Example {
  32740. constructor() {
  32741. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  32742. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  32743. Laya.loader.load(["resource/ui/input.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  32744. }
  32745. private onLoadComplete(): void {
  32746. var textInput: TextInput = new TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。
  32747. textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。
  32748. textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。
  32749. textInput.color = "#008fff";//设置 textInput 的文本颜色。
  32750. textInput.font = "Arial";//设置 textInput 的文本字体。
  32751. textInput.bold = true;//设置 textInput 的文本显示为粗体。
  32752. textInput.fontSize = 30;//设置 textInput 的字体大小。
  32753. textInput.wordWrap = true;//设置 textInput 的文本自动换行。
  32754. textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。
  32755. textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。
  32756. textInput.width = 300;//设置 textInput 的宽度。
  32757. textInput.height = 200;//设置 textInput 的高度。
  32758. Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。
  32759. }
  32760. }
  32761. */
  32762. class TextInput extends laya.ui.Label {
  32763. /**
  32764. * @private
  32765. */
  32766. protected _bg:laya.ui.AutoBitmap;
  32767. /**
  32768. * @private
  32769. */
  32770. protected _skin:string;
  32771. /**
  32772. * 创建一个新的 <code>TextInput</code> 类实例。
  32773. * @param text 文本内容。
  32774. */
  32775. constructor(text?:string);
  32776. /**
  32777. * @inheritDoc
  32778. * @override
  32779. */
  32780. protected preinitialize():void;
  32781. /**
  32782. * @inheritDoc
  32783. * @override
  32784. */
  32785. destroy(destroyChild?:boolean):void;
  32786. /**
  32787. * @inheritDoc
  32788. * @override
  32789. */
  32790. protected createChildren():void;
  32791. /**
  32792. * @private
  32793. */
  32794. private _onFocus:any;
  32795. /**
  32796. * @private
  32797. */
  32798. private _onBlur:any;
  32799. /**
  32800. * @private
  32801. */
  32802. private _onInput:any;
  32803. /**
  32804. * @private
  32805. */
  32806. private _onEnter:any;
  32807. /**
  32808. * @inheritDoc
  32809. * @override
  32810. */
  32811. protected initialize():void;
  32812. /**
  32813. * 表示此对象包含的文本背景 <code>AutoBitmap</code> 组件实例。
  32814. */
  32815. get bg():laya.ui.AutoBitmap;
  32816. set bg(value:laya.ui.AutoBitmap);
  32817. /**
  32818. * @copy laya.ui.Image#skin
  32819. */
  32820. get skin():string;
  32821. set skin(value:string);
  32822. protected _skinLoaded():void;
  32823. /**
  32824. * <p>当前实例的背景图( <code>AutoBitmap</code> )实例的有效缩放网格数据。</p>
  32825. * <p>数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。
  32826. * <ul><li>例如:"4,4,4,4,1"</li></ul></p>
  32827. * @see laya.ui.AutoBitmap.sizeGrid
  32828. */
  32829. get sizeGrid():string;
  32830. set sizeGrid(value:string);
  32831. /**
  32832. * 当前文本内容字符串。
  32833. * @see laya.display.Text.text
  32834. * @override
  32835. */
  32836. set text(value:string);
  32837. /**
  32838. * @override
  32839. */
  32840. get text():string;
  32841. /**
  32842. * @inheritDoc
  32843. * @override
  32844. */
  32845. set width(value:number);
  32846. /**
  32847. * @inheritDoc
  32848. * @override
  32849. */
  32850. get width():number;
  32851. /**
  32852. * @inheritDoc
  32853. * @override
  32854. */
  32855. set height(value:number);
  32856. /**
  32857. * @inheritDoc
  32858. * @override
  32859. */
  32860. get height():number;
  32861. /**
  32862. * <p>指示当前是否是文本域。</p>
  32863. * 值为true表示当前是文本域,否则不是文本域。
  32864. */
  32865. get multiline():boolean;
  32866. set multiline(value:boolean);
  32867. /**
  32868. * 设置可编辑状态。
  32869. */
  32870. set editable(value:boolean);
  32871. get editable():boolean;
  32872. /**
  32873. * 选中输入框内的文本。
  32874. */
  32875. select():void;
  32876. /**
  32877. * 限制输入的字符。
  32878. */
  32879. get restrict():string;
  32880. set restrict(pattern:string);
  32881. /**
  32882. * @copy laya.display.Input#prompt
  32883. */
  32884. get prompt():string;
  32885. set prompt(value:string);
  32886. /**
  32887. * @copy laya.display.Input#promptColor
  32888. */
  32889. get promptColor():string;
  32890. set promptColor(value:string);
  32891. /**
  32892. * @copy laya.display.Input#maxChars
  32893. */
  32894. get maxChars():number;
  32895. set maxChars(value:number);
  32896. /**
  32897. * @copy laya.display.Input#focus
  32898. */
  32899. get focus():boolean;
  32900. set focus(value:boolean);
  32901. /**
  32902. * @copy laya.display.Input#type
  32903. */
  32904. get type():string;
  32905. set type(value:string);
  32906. setSelection(startIndex:number,endIndex:number):void;
  32907. }
  32908. }
  32909. declare module laya.ui {
  32910. /**
  32911. * 鼠标提示管理类
  32912. */
  32913. class TipManager extends laya.ui.UIComponent {
  32914. static offsetX:number;
  32915. static offsetY:number;
  32916. static tipTextColor:string;
  32917. static tipBackColor:string;
  32918. static tipDelay:number;
  32919. private _tipBox:any;
  32920. private _tipText:any;
  32921. private _defaultTipHandler:any;
  32922. constructor();
  32923. /**
  32924. * @private
  32925. */
  32926. private _onStageHideTip:any;
  32927. /**
  32928. * @private
  32929. */
  32930. private _onStageShowTip:any;
  32931. /**
  32932. * @private
  32933. */
  32934. private _showTip:any;
  32935. /**
  32936. * @private
  32937. */
  32938. private _onStageMouseDown:any;
  32939. /**
  32940. * @private
  32941. */
  32942. private _onStageMouseMove:any;
  32943. /**
  32944. * @private
  32945. */
  32946. private _showToStage:any;
  32947. /**
  32948. * 关闭所有鼠标提示
  32949. */
  32950. closeAll():void;
  32951. /**
  32952. * 显示显示对象类型的tip
  32953. */
  32954. showDislayTip(tip:laya.display.Sprite):void;
  32955. /**
  32956. * @private
  32957. */
  32958. private _showDefaultTip:any;
  32959. /**
  32960. * 默认鼠标提示函数
  32961. */
  32962. get defaultTipHandler():Function;
  32963. set defaultTipHandler(value:Function);
  32964. }
  32965. }
  32966. declare module laya.ui {
  32967. /**
  32968. * 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  32969. * @eventType laya.events.Event
  32970. */
  32971. /**
  32972. * 节点打开关闭时触发。
  32973. * @eventType laya.events.Event
  32974. */
  32975. /**
  32976. * <code>Tree</code> 控件使用户可以查看排列为可扩展树的层次结构数据。
  32977. * @example package
  32978. {
  32979. import laya.ui.Tree;
  32980. import laya.utils.Browser;
  32981. import laya.utils.Handler;
  32982. public class Tree_Example
  32983. {
  32984. public function Tree_Example()
  32985. {
  32986. Laya.init(640, 800);
  32987. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  32988. 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));
  32989. }
  32990. private function onLoadComplete():void
  32991. {
  32992. var xmlString:String;//创建一个xml字符串,用于存储树结构数据。
  32993. 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;";
  32994. var domParser:* = new Browser.window.DOMParser();//创建一个DOMParser实例domParser。
  32995. var xml:* = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。
  32996. var tree:Tree = new Tree();//创建一个 Tree 类的实例对象 tree 。
  32997. tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。
  32998. tree.itemRender = Item;//设置 tree 的项渲染器。
  32999. tree.xml = xml;//设置 tree 的树结构数据。
  33000. tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。
  33001. tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。
  33002. tree.width = 200;//设置 tree 的宽度。
  33003. tree.height = 100;//设置 tree 的高度。
  33004. Laya.stage.addChild(tree);//将 tree 添加到显示列表。
  33005. }
  33006. }
  33007. }
  33008. import laya.ui.Box;
  33009. import laya.ui.Clip;
  33010. import laya.ui.Label;
  33011. class Item extends Box
  33012. {
  33013. public function Item()
  33014. {
  33015. this.name = "render";
  33016. this.right = 0;
  33017. this.left = 0;
  33018. var selectBox:Clip = new Clip("resource/ui/clip_selectBox.png", 1, 2);
  33019. selectBox.name = "selectBox";
  33020. selectBox.height = 24;
  33021. selectBox.x = 13;
  33022. selectBox.y = 0;
  33023. selectBox.left = 12;
  33024. addChild(selectBox);
  33025. var folder:Clip = new Clip("resource/ui/clip_tree_folder.png", 1, 3);
  33026. folder.name = "folder";
  33027. folder.x = 14;
  33028. folder.y = 4;
  33029. addChild(folder);
  33030. var label:Label = new Label("treeItem");
  33031. label.name = "label";
  33032. label.color = "#ffff00";
  33033. label.width = 150;
  33034. label.height = 22;
  33035. label.x = 33;
  33036. label.y = 1;
  33037. label.left = 33;
  33038. label.right = 0;
  33039. addChild(label);
  33040. var arrow:Clip = new Clip("resource/ui/clip_tree_arrow.png", 1, 2);
  33041. arrow.name = "arrow";
  33042. arrow.x = 0;
  33043. arrow.y = 5;
  33044. addChild(arrow);
  33045. }
  33046. }
  33047. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式
  33048. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  33049. 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"];
  33050. Laya.loader.load(res, new laya.utils.Handler(this, onLoadComplete));
  33051. function onLoadComplete() {
  33052. var xmlString;//创建一个xml字符串,用于存储树结构数据。
  33053. 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;";
  33054. var domParser = new laya.utils.Browser.window.DOMParser();//创建一个DOMParser实例domParser。
  33055. var xml = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。
  33056. var tree = new laya.ui.Tree();//创建一个 Tree 类的实例对象 tree 。
  33057. tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。
  33058. tree.itemRender = mypackage.treeExample.Item;//设置 tree 的项渲染器。
  33059. tree.xml = xml;//设置 tree 的树结构数据。
  33060. tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。
  33061. tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。
  33062. tree.width = 200;//设置 tree 的宽度。
  33063. tree.height = 100;//设置 tree 的高度。
  33064. Laya.stage.addChild(tree);//将 tree 添加到显示列表。
  33065. }
  33066. (function (_super) {
  33067. function Item() {
  33068. Item.__super.call(this);//初始化父类。
  33069. this.right = 0;
  33070. this.left = 0;
  33071. var selectBox = new laya.ui.Clip("resource/ui/clip_selectBox.png", 1, 2);
  33072. selectBox.name = "selectBox";//设置 selectBox 的name 为“selectBox”时,将被识别为树结构的项的背景。2帧:悬停时背景、选中时背景。
  33073. selectBox.height = 24;
  33074. selectBox.x = 13;
  33075. selectBox.y = 0;
  33076. selectBox.left = 12;
  33077. this.addChild(selectBox);//需要使用this.访问父类的属性或方法。
  33078. var folder = new laya.ui.Clip("resource/ui/clip_tree_folder.png", 1, 3);
  33079. folder.name = "folder";//设置 folder 的name 为“folder”时,将被识别为树结构的文件夹开启状态图表。2帧:折叠状态、打开状态。
  33080. folder.x = 14;
  33081. folder.y = 4;
  33082. this.addChild(folder);
  33083. var label = new laya.ui.Label("treeItem");
  33084. label.name = "label";//设置 label 的name 为“label”时,此值将用于树结构数据赋值。
  33085. label.color = "#ffff00";
  33086. label.width = 150;
  33087. label.height = 22;
  33088. label.x = 33;
  33089. label.y = 1;
  33090. label.left = 33;
  33091. label.right = 0;
  33092. this.addChild(label);
  33093. var arrow = new laya.ui.Clip("resource/ui/clip_tree_arrow.png", 1, 2);
  33094. arrow.name = "arrow";//设置 arrow 的name 为“arrow”时,将被识别为树结构的文件夹开启状态图表。2帧:折叠状态、打开状态。
  33095. arrow.x = 0;
  33096. arrow.y = 5;
  33097. this.addChild(arrow);
  33098. };
  33099. Laya.class(Item,"mypackage.treeExample.Item",_super);//注册类 Item 。
  33100. })(laya.ui.Box);
  33101. * @example import Tree = laya.ui.Tree;
  33102. import Browser = laya.utils.Browser;
  33103. import Handler = laya.utils.Handler;
  33104. class Tree_Example {
  33105. constructor() {
  33106. Laya.init(640, 800);
  33107. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  33108. 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));
  33109. }
  33110. private onLoadComplete(): void {
  33111. var xmlString: String;//创建一个xml字符串,用于存储树结构数据。
  33112. 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;";
  33113. var domParser: any = new Browser.window.DOMParser();//创建一个DOMParser实例domParser。
  33114. var xml: any = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。
  33115. var tree: Tree = new Tree();//创建一个 Tree 类的实例对象 tree 。
  33116. tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。
  33117. tree.itemRender = Item;//设置 tree 的项渲染器。
  33118. tree.xml = xml;//设置 tree 的树结构数据。
  33119. tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。
  33120. tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。
  33121. tree.width = 200;//设置 tree 的宽度。
  33122. tree.height = 100;//设置 tree 的高度。
  33123. Laya.stage.addChild(tree);//将 tree 添加到显示列表。
  33124. }
  33125. }
  33126. import Box = laya.ui.Box;
  33127. import Clip = laya.ui.Clip;
  33128. import Label = laya.ui.Label;
  33129. class Item extends Box {
  33130. constructor() {
  33131. super();
  33132. this.name = "render";
  33133. this.right = 0;
  33134. this.left = 0;
  33135. var selectBox: Clip = new Clip("resource/ui/clip_selectBox.png", 1, 2);
  33136. selectBox.name = "selectBox";
  33137. selectBox.height = 24;
  33138. selectBox.x = 13;
  33139. selectBox.y = 0;
  33140. selectBox.left = 12;
  33141. this.addChild(selectBox);
  33142. var folder: Clip = new Clip("resource/ui/clip_tree_folder.png", 1, 3);
  33143. folder.name = "folder";
  33144. folder.x = 14;
  33145. folder.y = 4;
  33146. this.addChild(folder);
  33147. var label: Label = new Label("treeItem");
  33148. label.name = "label";
  33149. label.color = "#ffff00";
  33150. label.width = 150;
  33151. label.height = 22;
  33152. label.x = 33;
  33153. label.y = 1;
  33154. label.left = 33;
  33155. label.right = 0;
  33156. this.addChild(label);
  33157. var arrow: Clip = new Clip("resource/ui/clip_tree_arrow.png", 1, 2);
  33158. arrow.name = "arrow";
  33159. arrow.x = 0;
  33160. arrow.y = 5;
  33161. this.addChild(arrow);
  33162. }
  33163. }
  33164. */
  33165. class Tree extends laya.ui.Box implements laya.ui.IRender {
  33166. /**
  33167. * @private
  33168. */
  33169. protected _list:laya.ui.List;
  33170. /**
  33171. * @private
  33172. */
  33173. protected _source:any[];
  33174. /**
  33175. * @private
  33176. */
  33177. protected _renderHandler:laya.utils.Handler;
  33178. /**
  33179. * @private
  33180. */
  33181. protected _spaceLeft:number;
  33182. /**
  33183. * @private
  33184. */
  33185. protected _spaceBottom:number;
  33186. /**
  33187. * @private
  33188. */
  33189. protected _keepStatus:boolean;
  33190. /**
  33191. * 创建一个新的 <code>Tree</code> 类实例。
  33192. * <p>在 <code>Tree</code> 构造函数中设置属性width、height的值都为200。</p>
  33193. */
  33194. constructor();
  33195. /**
  33196. * @inheritDoc
  33197. * @override
  33198. */
  33199. destroy(destroyChild?:boolean):void;
  33200. /**
  33201. * @override
  33202. */
  33203. protected createChildren():void;
  33204. /**
  33205. * @private 此对象包含的<code>List</code>实例的<code>Event.CHANGE</code>事件侦听处理函数。
  33206. */
  33207. protected onListChange(e?:laya.events.Event):void;
  33208. /**
  33209. * 数据源发生变化后,是否保持之前打开状态,默认为true。
  33210. * <p><b>取值:</b>
  33211. * <li>true:保持之前打开状态。</li>
  33212. * <li>false:不保持之前打开状态。</li>
  33213. * </p>
  33214. */
  33215. get keepStatus():boolean;
  33216. set keepStatus(value:boolean);
  33217. /**
  33218. * 列表数据源,只包含当前可视节点数据。
  33219. */
  33220. get array():any[];
  33221. set array(value:any[]);
  33222. /**
  33223. * 数据源,全部节点数据。
  33224. */
  33225. get source():any[];
  33226. /**
  33227. * 此对象包含的<code>List</code>实例对象。
  33228. */
  33229. get list():laya.ui.List;
  33230. /**
  33231. * 此对象包含的<code>List</code>实例的单元格渲染器。
  33232. * <p><b>取值:</b>
  33233. * <ol>
  33234. * <li>单元格类对象。</li>
  33235. * <li> UI 的 JSON 描述。</li>
  33236. * </ol></p>
  33237. * @implements
  33238. */
  33239. get itemRender():any;
  33240. set itemRender(value:any);
  33241. /**
  33242. * 滚动条皮肤。
  33243. */
  33244. get scrollBarSkin():string;
  33245. set scrollBarSkin(value:string);
  33246. /**
  33247. * 滚动条
  33248. */
  33249. get scrollBar():laya.ui.ScrollBar;
  33250. /**
  33251. * 单元格鼠标事件处理器。
  33252. * <p>默认返回参数(e:Event,index:int)。</p>
  33253. */
  33254. get mouseHandler():laya.utils.Handler;
  33255. set mouseHandler(value:laya.utils.Handler);
  33256. /**
  33257. * <code>Tree</code> 实例的渲染处理器。
  33258. */
  33259. get renderHandler():laya.utils.Handler;
  33260. set renderHandler(value:laya.utils.Handler);
  33261. /**
  33262. * 左侧缩进距离(以像素为单位)。
  33263. */
  33264. get spaceLeft():number;
  33265. set spaceLeft(value:number);
  33266. /**
  33267. * 每一项之间的间隔距离(以像素为单位)。
  33268. */
  33269. get spaceBottom():number;
  33270. set spaceBottom(value:number);
  33271. /**
  33272. * 表示当前选择的项索引。
  33273. */
  33274. get selectedIndex():number;
  33275. set selectedIndex(value:number);
  33276. /**
  33277. * 当前选中的项对象的数据源。
  33278. */
  33279. get selectedItem():any;
  33280. set selectedItem(value:any);
  33281. /**
  33282. * @inheritDoc
  33283. * @override
  33284. */
  33285. set width(value:number);
  33286. /**
  33287. * @inheritDoc
  33288. * @override
  33289. */
  33290. get width():number;
  33291. /**
  33292. * @inheritDoc
  33293. * @override
  33294. */
  33295. set height(value:number);
  33296. /**
  33297. * @inheritDoc
  33298. * @override
  33299. */
  33300. get height():number;
  33301. /**
  33302. * @private 获取数据源集合。
  33303. */
  33304. protected getArray():any[];
  33305. /**
  33306. * @private 获取项对象的深度。
  33307. */
  33308. protected getDepth(item:any,num?:number):number;
  33309. /**
  33310. * @private 获取项对象的上一级的打开状态。
  33311. */
  33312. protected getParentOpenStatus(item:any):boolean;
  33313. /**
  33314. * @private 渲染一个项对象。
  33315. * @param cell 一个项对象。
  33316. * @param index 项的索引。
  33317. */
  33318. protected renderItem(cell:laya.ui.Box,index:number):void;
  33319. /**
  33320. * @private
  33321. */
  33322. private onArrowClick:any;
  33323. /**
  33324. * 设置指定项索引的项对象的打开状态。
  33325. * @param index 项索引。
  33326. * @param isOpen 是否处于打开状态。
  33327. */
  33328. setItemState(index:number,isOpen:boolean):void;
  33329. /**
  33330. * 刷新项列表。
  33331. */
  33332. fresh():void;
  33333. /**
  33334. * @inheritDoc
  33335. * @override
  33336. */
  33337. set dataSource(value:any);
  33338. /**
  33339. * @inheritDoc
  33340. * @override
  33341. */
  33342. get dataSource():any;
  33343. /**
  33344. * xml结构的数据源。
  33345. */
  33346. set xml(value:XMLDocument);
  33347. /**
  33348. * @private 解析并处理XML类型的数据源。
  33349. */
  33350. protected parseXml(xml:ChildNode,source:any[],nodeParent:any,isRoot:boolean):void;
  33351. /**
  33352. * @private 处理数据项的打开状态。
  33353. */
  33354. protected parseOpenStatus(oldSource:any[],newSource:any[]):void;
  33355. /**
  33356. * @private 判断两个项对象在树结构中的父节点是否相同。
  33357. * @param item1 项对象。
  33358. * @param item2 项对象。
  33359. * @return 如果父节点相同值为true,否则值为false。
  33360. */
  33361. protected isSameParent(item1:any,item2:any):boolean;
  33362. /**
  33363. * 表示选择的树节点项的<code>path</code>属性值。
  33364. */
  33365. get selectedPath():string;
  33366. /**
  33367. * 更新项列表,显示指定键名的数据项。
  33368. * @param key 键名。
  33369. */
  33370. filter(key:string):void;
  33371. /**
  33372. * @private 获取数据源中指定键名的值。
  33373. */
  33374. private getFilterSource:any;
  33375. }
  33376. }
  33377. declare module laya.ui {
  33378. /**
  33379. * <code>Component</code> 是ui控件类的基类。
  33380. * <p>生命周期:preinitialize > createChildren > initialize > 组件构造函数</p>
  33381. */
  33382. class UIComponent extends laya.display.Sprite {
  33383. /**
  33384. * X锚点,值为0-1,设置anchorX值最终通过pivotX值来改变节点轴心点。
  33385. */
  33386. protected _anchorX:number;
  33387. /**
  33388. * Y锚点,值为0-1,设置anchorY值最终通过pivotY值来改变节点轴心点。
  33389. */
  33390. protected _anchorY:number;
  33391. /**
  33392. * @private 控件的数据源。
  33393. */
  33394. protected _dataSource:any;
  33395. /**
  33396. * @private 鼠标悬停提示
  33397. */
  33398. protected _toolTip:any;
  33399. /**
  33400. * @private 标签
  33401. */
  33402. protected _tag:any;
  33403. /**
  33404. * @private 禁用
  33405. */
  33406. protected _disabled:boolean;
  33407. /**
  33408. * @private 变灰
  33409. */
  33410. protected _gray:boolean;
  33411. /**
  33412. * @private 相对布局组件
  33413. */
  33414. protected _widget:laya.ui.Widget;
  33415. /**
  33416. * <p>创建一个新的 <code>Component</code> 实例。</p>
  33417. */
  33418. constructor(createChildren?:boolean);
  33419. /**
  33420. * @inheritDoc
  33421. * @override
  33422. */
  33423. destroy(destroyChild?:boolean):void;
  33424. /**
  33425. * <p>预初始化。</p>
  33426. * 子类可在此函数内设置、修改属性默认值
  33427. */
  33428. protected preinitialize():void;
  33429. /**
  33430. * <p>创建并添加控件子节点。</p>
  33431. * 子类可在此函数内创建并添加子节点。
  33432. */
  33433. protected createChildren():void;
  33434. /**
  33435. * <p>控件初始化。</p>
  33436. * 在此子对象已被创建,可以对子对象进行修改。
  33437. */
  33438. protected initialize():void;
  33439. /**
  33440. * <p>表示显示对象的宽度,以像素为单位。</p>
  33441. * <p><b>注:</b>当值为0时,宽度为自适应大小。</p>
  33442. * @override
  33443. */
  33444. get width():number;
  33445. /**
  33446. * @override
  33447. */
  33448. get_width():number;
  33449. /**
  33450. * <p>显示对象的实际显示区域宽度(以像素为单位)。</p>
  33451. */
  33452. protected measureWidth():number;
  33453. /**
  33454. * <p>立即执行影响宽高度量的延迟调用函数。</p>
  33455. * <p>使用 <code>runCallLater</code> 函数,立即执行影响宽高度量的延迟运行函数(使用 <code>callLater</code> 设置延迟执行函数)。</p>
  33456. * @see #callLater()
  33457. * @see #runCallLater()
  33458. */
  33459. protected commitMeasure():void;
  33460. /**
  33461. * <p>表示显示对象的高度,以像素为单位。</p>
  33462. * <p><b>注:</b>当值为0时,高度为自适应大小。</p>
  33463. * @override
  33464. */
  33465. get height():number;
  33466. /**
  33467. * @override
  33468. */
  33469. get_height():number;
  33470. /**
  33471. * <p>显示对象的实际显示区域高度(以像素为单位)。</p>
  33472. */
  33473. protected measureHeight():number;
  33474. /**
  33475. * @implements <p>数据赋值,通过对UI赋值来控制UI显示逻辑。</p>
  33476. <p>简单赋值会更改组件的默认属性,使用大括号可以指定组件的任意属性进行赋值。</p>
  33477. * @example //默认属性赋值
  33478. dataSource = {label1: "改变了label", checkbox1: true};//(更改了label1的text属性值,更改checkbox1的selected属性)。
  33479. //任意属性赋值
  33480. dataSource = {label2: {text:"改变了label",size:14}, checkbox2: {selected:true,x:10}};
  33481. */
  33482. get dataSource():any;
  33483. get_dataSource():any;
  33484. set dataSource(value:any);
  33485. set_dataSource(value:any):void;
  33486. /**
  33487. * <p>从组件顶边到其内容区域顶边之间的垂直距离(以像素为单位)。</p>
  33488. */
  33489. get top():number;
  33490. get_top():number;
  33491. set top(value:number);
  33492. set_top(value:number):void;
  33493. /**
  33494. * <p>从组件底边到其内容区域底边之间的垂直距离(以像素为单位)。</p>
  33495. */
  33496. get bottom():number;
  33497. get_bottom():number;
  33498. set bottom(value:number);
  33499. set_bottom(value:number):void;
  33500. /**
  33501. * <p>从组件左边到其内容区域左边之间的水平距离(以像素为单位)。</p>
  33502. */
  33503. get left():number;
  33504. set left(value:number);
  33505. /**
  33506. * <p>从组件右边到其内容区域右边之间的水平距离(以像素为单位)。</p>
  33507. */
  33508. get right():number;
  33509. set right(value:number);
  33510. /**
  33511. * <p>在父容器中,此对象的水平方向中轴线与父容器的水平方向中心线的距离(以像素为单位)。</p>
  33512. */
  33513. get centerX():number;
  33514. set centerX(value:number);
  33515. /**
  33516. * <p>在父容器中,此对象的垂直方向中轴线与父容器的垂直方向中心线的距离(以像素为单位)。</p>
  33517. */
  33518. get centerY():number;
  33519. set centerY(value:number);
  33520. protected _sizeChanged():void;
  33521. /**
  33522. * <p>对象的标签。</p>
  33523. * 冗余字段,可以用来储存数据。
  33524. */
  33525. get tag():any;
  33526. set tag(value:any);
  33527. /**
  33528. * <p>鼠标悬停提示。</p>
  33529. * <p>可以赋值为文本 <code>String</code> 或函数 <code>Handler</code> ,用来实现自定义样式的鼠标提示和参数携带等。</p>
  33530. * @example private var _testTips:TestTipsUI = new TestTipsUI();
  33531. private function testTips():void {
  33532. //简单鼠标提示
  33533. btn2.toolTip = "这里是鼠标提示&lt;b&gt;粗体&lt;/b&gt;&lt;br&gt;换行";
  33534. //自定义的鼠标提示
  33535. btn1.toolTip = showTips1;
  33536. //带参数的自定义鼠标提示
  33537. clip.toolTip = new Handler(this,showTips2, ["clip"]);
  33538. }
  33539. private function showTips1():void {
  33540. _testTips.label.text = "这里是按钮[" + btn1.label + "]";
  33541. tip.addChild(_testTips);
  33542. }
  33543. private function showTips2(name:String):void {
  33544. _testTips.label.text = "这里是" + name;
  33545. tip.addChild(_testTips);
  33546. }
  33547. */
  33548. get toolTip():any;
  33549. set toolTip(value:any);
  33550. /**
  33551. * 对象的 <code>Event.MOUSE_OVER</code> 事件侦听处理函数。
  33552. */
  33553. private onMouseOver:any;
  33554. /**
  33555. * 对象的 <code>Event.MOUSE_OUT</code> 事件侦听处理函数。
  33556. */
  33557. private onMouseOut:any;
  33558. /**
  33559. * 是否变灰。
  33560. */
  33561. get gray():boolean;
  33562. set gray(value:boolean);
  33563. /**
  33564. * 是否禁用页面,设置为true后,会变灰并且禁用鼠标。
  33565. */
  33566. get disabled():boolean;
  33567. set disabled(value:boolean);
  33568. /**
  33569. * @private <p>获取对象的布局样式。请不要直接修改此对象</p>
  33570. */
  33571. private _getWidget:any;
  33572. /**
  33573. * @inheritDoc
  33574. * @override
  33575. */
  33576. set scaleX(value:number);
  33577. /**
  33578. * @override
  33579. */
  33580. set_scaleX(value:number):void;
  33581. /**
  33582. * @inheritDoc
  33583. * @override
  33584. */
  33585. get scaleX():number;
  33586. /**
  33587. * @inheritDoc
  33588. * @override
  33589. */
  33590. set scaleY(value:number);
  33591. /**
  33592. * @override
  33593. */
  33594. set_scaleY(value:number):void;
  33595. /**
  33596. * @inheritDoc
  33597. * @override
  33598. */
  33599. get scaleY():number;
  33600. /**
  33601. * @private
  33602. */
  33603. protected onCompResize():void;
  33604. /**
  33605. * @inheritDoc
  33606. * @override
  33607. */
  33608. set width(value:number);
  33609. /**
  33610. * @override
  33611. */
  33612. set_width(value:number):void;
  33613. /**
  33614. * @inheritDoc
  33615. * @override
  33616. */
  33617. set height(value:number);
  33618. /**
  33619. * @override
  33620. */
  33621. set_height(value:number):void;
  33622. /**
  33623. * X锚点,值为0-1,设置anchorX值最终通过pivotX值来改变节点轴心点。
  33624. */
  33625. get anchorX():number;
  33626. get_anchorX():number;
  33627. set anchorX(value:number);
  33628. set_anchorX(value:number):void;
  33629. /**
  33630. * Y锚点,值为0-1,设置anchorY值最终通过pivotY值来改变节点轴心点。
  33631. */
  33632. get anchorY():number;
  33633. get_anchorY():number;
  33634. set anchorY(value:number);
  33635. set_anchorY(value:number):void;
  33636. /**
  33637. * @param child
  33638. * @override
  33639. */
  33640. protected _childChanged(child?:laya.display.Node):void;
  33641. }
  33642. }
  33643. declare module laya.ui {
  33644. /**
  33645. * <code>UIEvent</code> 类用来定义UI组件类的事件类型。
  33646. */
  33647. class UIEvent extends laya.events.Event {
  33648. /**
  33649. * 显示提示信息。
  33650. */
  33651. static SHOW_TIP:string;
  33652. /**
  33653. * 隐藏提示信息。
  33654. */
  33655. static HIDE_TIP:string;
  33656. }
  33657. }
  33658. declare module laya.ui {
  33659. /**
  33660. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  33661. * @eventType laya.events.Event
  33662. */
  33663. /**
  33664. * <code>Group</code> 是一个可以自动布局的项集合控件。
  33665. * <p> <code>Group</code> 的默认项对象为 <code>Button</code> 类实例。
  33666. * <code>Group</code> 是 <code>Tab</code> 和 <code>RadioGroup</code> 的基类。</p>
  33667. */
  33668. class UIGroup extends laya.ui.Box implements laya.ui.IItem {
  33669. /**
  33670. * 改变 <code>Group</code> 的选择项时执行的处理器,(默认返回参数: 项索引(index:int))。
  33671. */
  33672. selectHandler:laya.utils.Handler;
  33673. /**
  33674. * @private
  33675. */
  33676. protected _items:laya.ui.ISelect[];
  33677. /**
  33678. * @private
  33679. */
  33680. protected _selectedIndex:number;
  33681. /**
  33682. * @private
  33683. */
  33684. protected _skin:string;
  33685. /**
  33686. * @private
  33687. */
  33688. protected _direction:string;
  33689. /**
  33690. * @private
  33691. */
  33692. protected _space:number;
  33693. /**
  33694. * @private
  33695. */
  33696. protected _labels:string;
  33697. /**
  33698. * @private
  33699. */
  33700. protected _labelColors:string;
  33701. /**
  33702. * @private
  33703. */
  33704. private _labelFont:any;
  33705. /**
  33706. * @private
  33707. */
  33708. protected _labelStrokeColor:string;
  33709. /**
  33710. * @private
  33711. */
  33712. protected _strokeColors:string;
  33713. /**
  33714. * @private
  33715. */
  33716. protected _labelStroke:number;
  33717. /**
  33718. * @private
  33719. */
  33720. protected _labelSize:number;
  33721. /**
  33722. * @private
  33723. */
  33724. protected _labelBold:boolean;
  33725. /**
  33726. * @private
  33727. */
  33728. protected _labelPadding:string;
  33729. /**
  33730. * @private
  33731. */
  33732. protected _labelAlign:string;
  33733. /**
  33734. * @private
  33735. */
  33736. protected _stateNum:number;
  33737. /**
  33738. * @private
  33739. */
  33740. protected _labelChanged:boolean;
  33741. /**
  33742. * 创建一个新的 <code>Group</code> 类实例。
  33743. * @param labels 标签集字符串。以逗号做分割,如"item0,item1,item2,item3,item4,item5"。
  33744. * @param skin 皮肤。
  33745. */
  33746. constructor(labels?:string,skin?:string);
  33747. /**
  33748. * @override
  33749. */
  33750. protected preinitialize():void;
  33751. /**
  33752. * @inheritDoc
  33753. * @override
  33754. */
  33755. destroy(destroyChild?:boolean):void;
  33756. /**
  33757. * 添加一个项对象,返回此项对象的索引id。
  33758. * @param item 需要添加的项对象。
  33759. * @param autoLayOut 是否自动布局,如果为true,会根据 <code>direction</code> 和 <code>space</code> 属性计算item的位置。
  33760. * @return
  33761. */
  33762. addItem(item:laya.ui.ISelect,autoLayOut?:boolean):number;
  33763. /**
  33764. * 删除一个项对象。
  33765. * @param item 需要删除的项对象。
  33766. * @param autoLayOut 是否自动布局,如果为true,会根据 <code>direction</code> 和 <code>space</code> 属性计算item的位置。
  33767. */
  33768. delItem(item:laya.ui.ISelect,autoLayOut?:boolean):void;
  33769. /**
  33770. * 初始化项对象们。
  33771. */
  33772. initItems():void;
  33773. /**
  33774. * @private 项对象的点击事件侦听处理函数。
  33775. * @param index 项索引。
  33776. */
  33777. protected itemClick(index:number):void;
  33778. /**
  33779. * 表示当前选择的项索引。默认值为-1。
  33780. */
  33781. get selectedIndex():number;
  33782. set selectedIndex(value:number);
  33783. /**
  33784. * @private 通过对象的索引设置项对象的 <code>selected</code> 属性值。
  33785. * @param index 需要设置的项对象的索引。
  33786. * @param selected 表示项对象的选中状态。
  33787. */
  33788. protected setSelect(index:number,selected:boolean):void;
  33789. /**
  33790. * @copy laya.ui.Image#skin
  33791. */
  33792. get skin():string;
  33793. set skin(value:string);
  33794. protected _skinLoaded():void;
  33795. /**
  33796. * 标签集合字符串。以逗号做分割,如"item0,item1,item2,item3,item4,item5"。
  33797. */
  33798. get labels():string;
  33799. set labels(value:string);
  33800. /**
  33801. * @private 创建一个项显示对象。
  33802. * @param skin 项对象的皮肤。
  33803. * @param label 项对象标签。
  33804. */
  33805. protected createItem(skin:string,label:string):laya.display.Sprite;
  33806. /**
  33807. * @copy laya.ui.Button#labelColors()
  33808. */
  33809. get labelColors():string;
  33810. set labelColors(value:string);
  33811. /**
  33812. * <p>描边宽度(以像素为单位)。</p>
  33813. * 默认值0,表示不描边。
  33814. * @see laya.display.Text.stroke()
  33815. */
  33816. get labelStroke():number;
  33817. set labelStroke(value:number);
  33818. /**
  33819. * <p>描边颜色,以字符串表示。</p>
  33820. * 默认值为 "#000000"(黑色);
  33821. * @see laya.display.Text.strokeColor()
  33822. */
  33823. get labelStrokeColor():string;
  33824. set labelStrokeColor(value:string);
  33825. /**
  33826. * <p>表示各个状态下的描边颜色。</p>
  33827. * @see laya.display.Text.strokeColor()
  33828. */
  33829. get strokeColors():string;
  33830. set strokeColors(value:string);
  33831. /**
  33832. * 表示按钮文本标签的字体大小。
  33833. */
  33834. get labelSize():number;
  33835. set labelSize(value:number);
  33836. /**
  33837. * 表示按钮的状态值,以数字表示,默认为3态。
  33838. * @see laya.ui.Button#stateNum
  33839. */
  33840. get stateNum():number;
  33841. set stateNum(value:number);
  33842. /**
  33843. * 表示按钮文本标签是否为粗体字。
  33844. */
  33845. get labelBold():boolean;
  33846. set labelBold(value:boolean);
  33847. /**
  33848. * 表示按钮文本标签的字体名称,以字符串形式表示。
  33849. * @see laya.display.Text.font()
  33850. */
  33851. get labelFont():string;
  33852. set labelFont(value:string);
  33853. /**
  33854. * 表示按钮文本标签的边距。
  33855. * <p><b>格式:</b>"上边距,右边距,下边距,左边距"。</p>
  33856. */
  33857. get labelPadding():string;
  33858. set labelPadding(value:string);
  33859. /**
  33860. * 布局方向。
  33861. * <p>默认值为"horizontal"。</p>
  33862. * <p><b>取值:</b>
  33863. * <li>"horizontal":表示水平布局。</li>
  33864. * <li>"vertical":表示垂直布局。</li>
  33865. * </p>
  33866. */
  33867. get direction():string;
  33868. set direction(value:string);
  33869. /**
  33870. * 项对象们之间的间隔(以像素为单位)。
  33871. */
  33872. get space():number;
  33873. set space(value:number);
  33874. /**
  33875. * @private 更改项对象的属性值。
  33876. */
  33877. protected changeLabels():void;
  33878. /**
  33879. * @inheritDoc
  33880. * @override
  33881. */
  33882. protected commitMeasure():void;
  33883. /**
  33884. * 项对象们的存放数组。
  33885. */
  33886. get items():laya.ui.ISelect[];
  33887. /**
  33888. * 获取或设置当前选择的项对象。
  33889. */
  33890. get selection():laya.ui.ISelect;
  33891. set selection(value:laya.ui.ISelect);
  33892. /**
  33893. * @inheritDoc
  33894. * @override
  33895. */
  33896. set dataSource(value:any);
  33897. /**
  33898. * @inheritDoc
  33899. * @override
  33900. */
  33901. get dataSource():any;
  33902. /**
  33903. * @private
  33904. */
  33905. protected _setLabelChanged():void;
  33906. }
  33907. }
  33908. declare module laya.ui {
  33909. class UILib {
  33910. static __init__():void;
  33911. }
  33912. }
  33913. declare module laya.ui {
  33914. /**
  33915. * <code>UIUtils</code> 是文本工具集。
  33916. */
  33917. class UIUtils {
  33918. private static grayFilter:any;
  33919. /**
  33920. * 需要替换的转义字符表
  33921. */
  33922. static escapeSequence:any;
  33923. /**
  33924. * 用字符串填充数组,并返回数组副本。
  33925. * @param arr 源数组对象。
  33926. * @param str 用逗号连接的字符串。如"p1,p2,p3,p4"。
  33927. * @param type 如果值不为null,则填充的是新增值得类型。
  33928. * @return 填充后的数组。
  33929. */
  33930. static fillArray(arr:any[],str:string,type?:typeof Number|typeof String):any[];
  33931. /**
  33932. * 转换uint类型颜色值为字符型颜色值。
  33933. * @param color uint颜色值。
  33934. * @return 字符型颜色值。
  33935. */
  33936. static toColor(color:number):string;
  33937. /**
  33938. * 给指定的目标显示对象添加或移除灰度滤镜。
  33939. * @param traget 目标显示对象。
  33940. * @param isGray 如果值true,则添加灰度滤镜,否则移除灰度滤镜。
  33941. */
  33942. static gray(traget:laya.display.Sprite,isGray?:boolean):void;
  33943. /**
  33944. * 给指定的目标显示对象添加滤镜。
  33945. * @param target 目标显示对象。
  33946. * @param filter 滤镜对象。
  33947. */
  33948. static addFilter(target:laya.display.Sprite,filter:laya.filters.IFilter):void;
  33949. /**
  33950. * 移除目标显示对象的指定类型滤镜。
  33951. * @param target 目标显示对象。
  33952. * @param filterType 滤镜类型。
  33953. */
  33954. static clearFilter(target:laya.display.Sprite,filterType:new () => any):void;
  33955. /**
  33956. * 获取当前要替换的转移字符
  33957. * @param word
  33958. * @return
  33959. */
  33960. private static _getReplaceStr:any;
  33961. /**
  33962. * 替换字符串中的转义字符
  33963. * @param str
  33964. */
  33965. static adptString(str:string):string;
  33966. /**
  33967. * @private
  33968. */
  33969. private static _funMap:any;
  33970. /**
  33971. * @private 根据字符串,返回函数表达式
  33972. */
  33973. static getBindFun(value:string):Function;
  33974. }
  33975. }
  33976. declare module laya.ui {
  33977. /**
  33978. * <code>VBox</code> 是一个垂直布局容器类。
  33979. */
  33980. class VBox extends laya.ui.LayoutBox {
  33981. /**
  33982. * 无对齐。
  33983. */
  33984. static NONE:string;
  33985. /**
  33986. * 左对齐。
  33987. */
  33988. static LEFT:string;
  33989. /**
  33990. * 居中对齐。
  33991. */
  33992. static CENTER:string;
  33993. /**
  33994. * 右对齐。
  33995. */
  33996. static RIGHT:string;
  33997. /**
  33998. * @override
  33999. */
  34000. set width(value:number);
  34001. /**
  34002. * @inheritDoc
  34003. * @override
  34004. */
  34005. get width():number;
  34006. /**
  34007. * @inheritDoc
  34008. * @override
  34009. */
  34010. protected changeItems():void;
  34011. }
  34012. }
  34013. declare module laya.ui {
  34014. /**
  34015. * <code>View</code> 是一个视图类,2.0开始,更改继承至Scene类,相对于Scene,增加相对布局功能。
  34016. */
  34017. class View extends laya.display.Scene {
  34018. /**
  34019. * @private 兼容老版本
  34020. */
  34021. static uiMap:any;
  34022. /**
  34023. * @private 相对布局组件
  34024. */
  34025. protected _widget:laya.ui.Widget;
  34026. /**
  34027. * @private 控件的数据源。
  34028. */
  34029. protected _dataSource:any;
  34030. /**
  34031. * X锚点,值为0-1,设置anchorX值最终通过pivotX值来改变节点轴心点。
  34032. */
  34033. protected _anchorX:number;
  34034. /**
  34035. * Y锚点,值为0-1,设置anchorY值最终通过pivotY值来改变节点轴心点。
  34036. */
  34037. protected _anchorY:number;
  34038. static __init__():void;
  34039. constructor();
  34040. /**
  34041. * @private 兼容老版本
  34042. 注册组件类映射。
  34043. <p>用于扩展组件及修改组件对应关系。</p>
  34044. * @param key 组件类的关键字。
  34045. * @param compClass 组件类对象。
  34046. */
  34047. static regComponent(key:string,compClass:new () => any):void;
  34048. /**
  34049. * @private 兼容老版本
  34050. 注册UI视图类的逻辑处理类。
  34051. 注册runtime解析。
  34052. * @param key UI视图类的关键字。
  34053. * @param compClass UI视图类对应的逻辑处理类。
  34054. */
  34055. static regViewRuntime(key:string,compClass:new () => any):void;
  34056. /**
  34057. * @private 兼容老版本
  34058. 注册UI配置信息,比如注册一个路径为"test/TestPage"的页面,UI内容是IDE生成的json
  34059. * @param url UI的路径
  34060. * @param json UI内容
  34061. */
  34062. static regUI(url:string,json:any):void;
  34063. /**
  34064. * @inheritDoc
  34065. * @override
  34066. */
  34067. destroy(destroyChild?:boolean):void;
  34068. /**
  34069. * @private
  34070. */
  34071. changeData(key:string):void;
  34072. /**
  34073. * <p>从组件顶边到其内容区域顶边之间的垂直距离(以像素为单位)。</p>
  34074. */
  34075. get top():number;
  34076. set top(value:number);
  34077. /**
  34078. * <p>从组件底边到其内容区域底边之间的垂直距离(以像素为单位)。</p>
  34079. */
  34080. get bottom():number;
  34081. set bottom(value:number);
  34082. /**
  34083. * <p>从组件左边到其内容区域左边之间的水平距离(以像素为单位)。</p>
  34084. */
  34085. get left():number;
  34086. set left(value:number);
  34087. /**
  34088. * <p>从组件右边到其内容区域右边之间的水平距离(以像素为单位)。</p>
  34089. */
  34090. get right():number;
  34091. set right(value:number);
  34092. /**
  34093. * <p>在父容器中,此对象的水平方向中轴线与父容器的水平方向中心线的距离(以像素为单位)。</p>
  34094. */
  34095. get centerX():number;
  34096. set centerX(value:number);
  34097. /**
  34098. * <p>在父容器中,此对象的垂直方向中轴线与父容器的垂直方向中心线的距离(以像素为单位)。</p>
  34099. */
  34100. get centerY():number;
  34101. set centerY(value:number);
  34102. /**
  34103. * X锚点,值为0-1,设置anchorX值最终通过pivotX值来改变节点轴心点。
  34104. */
  34105. get anchorX():number;
  34106. set anchorX(value:number);
  34107. /**
  34108. * Y锚点,值为0-1,设置anchorY值最终通过pivotY值来改变节点轴心点。
  34109. */
  34110. get anchorY():number;
  34111. set anchorY(value:number);
  34112. /**
  34113. * @private
  34114. * @override
  34115. */
  34116. protected _sizeChanged():void;
  34117. /**
  34118. * @private <p>获取对象的布局样式。请不要直接修改此对象</p>
  34119. */
  34120. private _getWidget:any;
  34121. /**
  34122. * @private 兼容老版本
  34123. */
  34124. protected loadUI(path:string):void;
  34125. /**
  34126. * @implements laya.ui.UIComponent#dataSource
  34127. */
  34128. get dataSource():any;
  34129. set dataSource(value:any);
  34130. }
  34131. }
  34132. declare module laya.ui {
  34133. /**
  34134. * <code>ViewStack</code> 类用于视图堆栈类,用于视图的显示等设置处理。
  34135. */
  34136. class ViewStack extends laya.ui.Box implements laya.ui.IItem {
  34137. /**
  34138. * @private
  34139. */
  34140. protected _items:any[];
  34141. /**
  34142. * @private
  34143. */
  34144. protected _setIndexHandler:laya.utils.Handler;
  34145. /**
  34146. * @private
  34147. */
  34148. protected _selectedIndex:number;
  34149. /**
  34150. * 批量设置视图对象。
  34151. * @param views 视图对象数组。
  34152. */
  34153. setItems(views:any[]):void;
  34154. /**
  34155. * 添加视图。
  34156. * 添加视图对象,并设置此视图对象的<code>name</code> 属性。
  34157. * @param view 需要添加的视图对象。
  34158. */
  34159. addItem(view:laya.display.Node):void;
  34160. /**
  34161. * 初始化视图对象集合。
  34162. */
  34163. initItems():void;
  34164. /**
  34165. * 表示当前视图索引。
  34166. */
  34167. get selectedIndex():number;
  34168. set selectedIndex(value:number);
  34169. /**
  34170. * @private 通过对象的索引设置项对象的 <code>selected</code> 属性值。
  34171. * @param index 需要设置的对象的索引。
  34172. * @param selected 表示对象的选中状态。
  34173. */
  34174. protected setSelect(index:number,selected:boolean):void;
  34175. /**
  34176. * 获取或设置当前选择的项对象。
  34177. */
  34178. get selection():laya.display.Node;
  34179. set selection(value:laya.display.Node);
  34180. /**
  34181. * 索引设置处理器。
  34182. * <p>默认回调参数:index:int</p>
  34183. */
  34184. get setIndexHandler():laya.utils.Handler;
  34185. set setIndexHandler(value:laya.utils.Handler);
  34186. /**
  34187. * @private 设置属性<code>selectedIndex</code>的值。
  34188. * @param index 选中项索引值。
  34189. */
  34190. protected setIndex(index:number):void;
  34191. /**
  34192. * 视图集合数组。
  34193. */
  34194. get items():any[];
  34195. /**
  34196. * @inheritDoc
  34197. * @override
  34198. */
  34199. set dataSource(value:any);
  34200. /**
  34201. * @inheritDoc
  34202. * @override
  34203. */
  34204. get dataSource():any;
  34205. }
  34206. }
  34207. declare module laya.ui {
  34208. /**
  34209. * 使用 <code>VScrollBar</code> (垂直 <code>ScrollBar</code> )控件,可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。
  34210. * @example <caption>以下示例代码,创建了一个 <code>VScrollBar</code> 实例。</caption>
  34211. package
  34212. {
  34213. import laya.ui.vScrollBar;
  34214. import laya.ui.VScrollBar;
  34215. import laya.utils.Handler;
  34216. public class VScrollBar_Example
  34217. {
  34218. private var vScrollBar:VScrollBar;
  34219. public function VScrollBar_Example()
  34220. {
  34221. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  34222. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  34223. 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));
  34224. }
  34225. private function onLoadComplete():void
  34226. {
  34227. vScrollBar = new VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。
  34228. vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。
  34229. vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。
  34230. vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。
  34231. vScrollBar.changeHandler = new Handler(this, onChange);//设置 vScrollBar 的滚动变化处理器。
  34232. Laya.stage.addChild(vScrollBar);//将此 vScrollBar 对象添加到显示列表。
  34233. }
  34234. private function onChange(value:Number):void
  34235. {
  34236. trace("滚动条的位置: value=" + value);
  34237. }
  34238. }
  34239. }
  34240. * @example Laya.init(640, 800);//设置游戏画布宽高
  34241. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  34242. var vScrollBar;
  34243. var res = ["resource/ui/vscroll.png", "resource/ui/vscroll$bar.png", "resource/ui/vscroll$down.png", "resource/ui/vscroll$up.png"];
  34244. Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  34245. function onLoadComplete() {
  34246. vScrollBar = new laya.ui.VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。
  34247. vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。
  34248. vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。
  34249. vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。
  34250. vScrollBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 vScrollBar 的滚动变化处理器。
  34251. Laya.stage.addChild(vScrollBar);//将此 vScrollBar 对象添加到显示列表。
  34252. }
  34253. function onChange(value) {
  34254. console.log("滚动条的位置: value=" + value);
  34255. }
  34256. * @example import VScrollBar = laya.ui.VScrollBar;
  34257. import Handler = laya.utils.Handler;
  34258. class VScrollBar_Example {
  34259. private vScrollBar: VScrollBar;
  34260. constructor() {
  34261. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  34262. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  34263. 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));
  34264. }
  34265. private onLoadComplete(): void {
  34266. this.vScrollBar = new VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。
  34267. this.vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。
  34268. this.vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。
  34269. this.vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。
  34270. this.vScrollBar.changeHandler = new Handler(this, this.onChange);//设置 vScrollBar 的滚动变化处理器。
  34271. Laya.stage.addChild(this.vScrollBar);//将此 vScrollBar 对象添加到显示列表。
  34272. }
  34273. private onChange(value: number): void {
  34274. console.log("滚动条的位置: value=" + value);
  34275. }
  34276. }
  34277. */
  34278. class VScrollBar extends laya.ui.ScrollBar {
  34279. }
  34280. }
  34281. declare module laya.ui {
  34282. /**
  34283. * 使用 <code>VSlider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  34284. * <p> <code>VSlider</code> 控件采用垂直方向。滑块轨道从下往上扩展,而标签位于轨道的左右两侧。</p>
  34285. * @example <caption>以下示例代码,创建了一个 <code>VSlider</code> 实例。</caption>
  34286. package
  34287. {
  34288. import laya.ui.HSlider;
  34289. import laya.ui.VSlider;
  34290. import laya.utils.Handler;
  34291. public class VSlider_Example
  34292. {
  34293. private var vSlider:VSlider;
  34294. public function VSlider_Example()
  34295. {
  34296. Laya.init(640, 800);//设置游戏画布宽高。
  34297. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  34298. Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], Handler.create(this, onLoadComplete));//加载资源。
  34299. }
  34300. private function onLoadComplete():void
  34301. {
  34302. vSlider = new VSlider();//创建一个 VSlider 类的实例对象 vSlider 。
  34303. vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。
  34304. vSlider.min = 0;//设置 vSlider 最低位置值。
  34305. vSlider.max = 10;//设置 vSlider 最高位置值。
  34306. vSlider.value = 2;//设置 vSlider 当前位置值。
  34307. vSlider.tick = 1;//设置 vSlider 刻度值。
  34308. vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。
  34309. vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。
  34310. vSlider.changeHandler = new Handler(this, onChange);//设置 vSlider 位置变化处理器。
  34311. Laya.stage.addChild(vSlider);//把 vSlider 添加到显示列表。
  34312. }
  34313. private function onChange(value:Number):void
  34314. {
  34315. trace("滑块的位置: value=" + value);
  34316. }
  34317. }
  34318. }
  34319. * @example Laya.init(640, 800);//设置游戏画布宽高
  34320. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  34321. var vSlider;
  34322. Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  34323. function onLoadComplete() {
  34324. vSlider = new laya.ui.VSlider();//创建一个 VSlider 类的实例对象 vSlider 。
  34325. vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。
  34326. vSlider.min = 0;//设置 vSlider 最低位置值。
  34327. vSlider.max = 10;//设置 vSlider 最高位置值。
  34328. vSlider.value = 2;//设置 vSlider 当前位置值。
  34329. vSlider.tick = 1;//设置 vSlider 刻度值。
  34330. vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。
  34331. vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。
  34332. vSlider.changeHandler = new laya.utils.Handler(this, onChange);//设置 vSlider 位置变化处理器。
  34333. Laya.stage.addChild(vSlider);//把 vSlider 添加到显示列表。
  34334. }
  34335. function onChange(value) {
  34336. console.log("滑块的位置: value=" + value);
  34337. }
  34338. * @example import HSlider = laya.ui.HSlider;
  34339. import VSlider = laya.ui.VSlider;
  34340. import Handler = laya.utils.Handler;
  34341. class VSlider_Example {
  34342. private vSlider: VSlider;
  34343. constructor() {
  34344. Laya.init(640, 800);//设置游戏画布宽高。
  34345. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  34346. Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  34347. }
  34348. private onLoadComplete(): void {
  34349. this.vSlider = new VSlider();//创建一个 VSlider 类的实例对象 vSlider 。
  34350. this.vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。
  34351. this.vSlider.min = 0;//设置 vSlider 最低位置值。
  34352. this.vSlider.max = 10;//设置 vSlider 最高位置值。
  34353. this.vSlider.value = 2;//设置 vSlider 当前位置值。
  34354. this.vSlider.tick = 1;//设置 vSlider 刻度值。
  34355. this.vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。
  34356. this.vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。
  34357. this.vSlider.changeHandler = new Handler(this, this.onChange);//设置 vSlider 位置变化处理器。
  34358. Laya.stage.addChild(this.vSlider);//把 vSlider 添加到显示列表。
  34359. }
  34360. private onChange(value: number): void {
  34361. console.log("滑块的位置: value=" + value);
  34362. }
  34363. }
  34364. * @see laya.ui.Slider
  34365. */
  34366. class VSlider extends laya.ui.Slider {
  34367. }
  34368. }
  34369. declare module laya.ui {
  34370. /**
  34371. * 相对布局插件
  34372. */
  34373. class Widget extends laya.components.Component {
  34374. /**
  34375. * 一个已初始化的 <code>Widget</code> 实例。
  34376. */
  34377. static EMPTY:Widget;
  34378. private _top:any;
  34379. private _bottom:any;
  34380. private _left:any;
  34381. private _right:any;
  34382. private _centerX:any;
  34383. private _centerY:any;
  34384. /**
  34385. * @override
  34386. */
  34387. onReset():void;
  34388. /**
  34389. * 父容器的 <code>Event.RESIZE</code> 事件侦听处理函数。
  34390. */
  34391. protected _onParentResize():void;
  34392. /**
  34393. * <p>重置对象的 <code>X</code> 轴(水平方向)布局。</p>
  34394. * @private
  34395. */
  34396. resetLayoutX():boolean;
  34397. /**
  34398. * <p>重置对象的 <code>Y</code> 轴(垂直方向)布局。</p>
  34399. * @private
  34400. */
  34401. resetLayoutY():boolean;
  34402. /**
  34403. * 重新计算布局
  34404. */
  34405. resetLayout():void;
  34406. /**
  34407. * 表示距顶边的距离(以像素为单位)。
  34408. */
  34409. get top():number;
  34410. set top(value:number);
  34411. /**
  34412. * 表示距底边的距离(以像素为单位)。
  34413. */
  34414. get bottom():number;
  34415. set bottom(value:number);
  34416. /**
  34417. * 表示距左边的距离(以像素为单位)。
  34418. */
  34419. get left():number;
  34420. set left(value:number);
  34421. /**
  34422. * 表示距右边的距离(以像素为单位)。
  34423. */
  34424. get right():number;
  34425. set right(value:number);
  34426. /**
  34427. * 表示距水平方向中心轴的距离(以像素为单位)。
  34428. */
  34429. get centerX():number;
  34430. set centerX(value:number);
  34431. /**
  34432. * 表示距垂直方向中心轴的距离(以像素为单位)。
  34433. */
  34434. get centerY():number;
  34435. set centerY(value:number);
  34436. }
  34437. }
  34438. declare module laya.ui {
  34439. /**
  34440. * 微信开放数据展示组件,直接实例本组件,即可根据组件宽高,位置,以最优的方式显示开放域数据
  34441. */
  34442. class WXOpenDataViewer extends laya.ui.UIComponent {
  34443. constructor();
  34444. /**
  34445. * @override
  34446. */
  34447. onEnable():void;
  34448. /**
  34449. * @override
  34450. */
  34451. onDisable():void;
  34452. private _onLoop:any;
  34453. /**
  34454. * @override
  34455. */
  34456. set width(value:number);
  34457. /**
  34458. * @override
  34459. */
  34460. get width():number;
  34461. /**
  34462. * @override
  34463. */
  34464. set height(value:number);
  34465. /**
  34466. * @override
  34467. */
  34468. get height():number;
  34469. /**
  34470. * @override
  34471. */
  34472. set x(value:number);
  34473. /**
  34474. * @override
  34475. */
  34476. get x():number;
  34477. /**
  34478. * @override
  34479. */
  34480. set y(value:number);
  34481. /**
  34482. * @override
  34483. */
  34484. get y():number;
  34485. private _postMsg:any;
  34486. /**
  34487. * 向开放数据域发送消息
  34488. */
  34489. postMsg(msg:any):void;
  34490. }
  34491. }
  34492. declare module laya.utils {
  34493. /**
  34494. * <code>Browser</code> 是浏览器代理类。封装浏览器及原生 js 提供的一些功能。
  34495. */
  34496. class Browser {
  34497. /**
  34498. * 浏览器代理信息。
  34499. */
  34500. static userAgent:string;
  34501. /**
  34502. * 表示是否在移动设备,包括IOS和安卓等设备内。
  34503. */
  34504. static onMobile:boolean;
  34505. /**
  34506. * 表示是否在 IOS 设备内。
  34507. */
  34508. static onIOS:boolean;
  34509. /**
  34510. * 表示是否在 Mac 设备。
  34511. */
  34512. static onMac:boolean;
  34513. /**
  34514. * 表示是否在 IPhone 设备内。
  34515. */
  34516. static onIPhone:boolean;
  34517. /**
  34518. * 表示是否在 IPad 设备内。
  34519. */
  34520. static onIPad:boolean;
  34521. /**
  34522. * 表示是否在 Android 设备内。
  34523. */
  34524. static onAndroid:boolean;
  34525. /**
  34526. * 表示是否在 Windows Phone 设备内。
  34527. */
  34528. static onWP:boolean;
  34529. /**
  34530. * 表示是否在 QQ 浏览器内。
  34531. */
  34532. static onQQBrowser:boolean;
  34533. /**
  34534. * 表示是否在移动端 QQ 或 QQ 浏览器内。
  34535. */
  34536. static onMQQBrowser:boolean;
  34537. /**
  34538. * 表示是否在 Safari 内。
  34539. */
  34540. static onSafari:boolean;
  34541. /**
  34542. * 表示是否在 IE 浏览器内
  34543. */
  34544. static onIE:boolean;
  34545. /**
  34546. * 表示是否在 微信 内
  34547. */
  34548. static onWeiXin:boolean;
  34549. /**
  34550. * 表示是否在 PC 端。
  34551. */
  34552. static onPC:boolean;
  34553. /**
  34554. * 微信小游戏 *
  34555. */
  34556. static onMiniGame:boolean;
  34557. /**
  34558. * 百度小游戏 *
  34559. */
  34560. static onBDMiniGame:boolean;
  34561. /**
  34562. * 小米戏小游戏 *
  34563. */
  34564. static onKGMiniGame:boolean;
  34565. /**
  34566. * OPPO小游戏 *
  34567. */
  34568. static onQGMiniGame:boolean;
  34569. /**
  34570. * VIVO小游戏 *
  34571. */
  34572. static onVVMiniGame:boolean;
  34573. /**
  34574. * 阿里小游戏 *
  34575. */
  34576. static onAlipayMiniGame:boolean;
  34577. /**
  34578. * *手机QQ小游戏
  34579. */
  34580. static onQQMiniGame:boolean;
  34581. /**
  34582. * * BILIBILI小游戏
  34583. */
  34584. static onBLMiniGame:boolean;
  34585. /**
  34586. * 字节跳动小游戏
  34587. */
  34588. static onTTMiniGame:boolean;
  34589. /**
  34590. * 华为快游戏
  34591. */
  34592. static onHWMiniGame:boolean;
  34593. /**
  34594. * @private
  34595. */
  34596. static onFirefox:boolean;
  34597. /**
  34598. * @private
  34599. */
  34600. static onEdge:boolean;
  34601. /**
  34602. * @private
  34603. */
  34604. static onLayaRuntime:boolean;
  34605. /**
  34606. * 表示是否支持WebAudio
  34607. */
  34608. static supportWebAudio:boolean;
  34609. /**
  34610. * 表示是否支持LocalStorage
  34611. */
  34612. static supportLocalStorage:boolean;
  34613. /**
  34614. * 全局离线画布(非主画布)。主要用来测量字体、获取image数据。
  34615. */
  34616. static canvas:laya.resource.HTMLCanvas;
  34617. /**
  34618. * 全局离线画布上绘图的环境(非主画布)。
  34619. */
  34620. static context:CanvasRenderingContext2D;
  34621. /**
  34622. * @private
  34623. */
  34624. private static _window:any;
  34625. /**
  34626. * @private
  34627. */
  34628. private static _document:any;
  34629. /**
  34630. * @private
  34631. */
  34632. private static _container:any;
  34633. /**
  34634. * @private
  34635. */
  34636. private static _pixelRatio:any;
  34637. /**
  34638. * @private
  34639. */
  34640. static mainCanvas:any;
  34641. /**
  34642. * @private
  34643. */
  34644. private static hanzi:any;
  34645. /**
  34646. * @private
  34647. */
  34648. private static fontMap:any;
  34649. /**
  34650. * @private
  34651. */
  34652. static measureText:Function;
  34653. /**
  34654. * 创建浏览器原生节点。
  34655. * @param type 节点类型。
  34656. * @return 创建的节点对象的引用。
  34657. */
  34658. static createElement(type:string):any;
  34659. /**
  34660. * 返回 Document 对象中拥有指定 id 的第一个对象的引用。
  34661. * @param type 节点id。
  34662. * @return 节点对象。
  34663. */
  34664. static getElementById(type:string):any;
  34665. /**
  34666. * 移除指定的浏览器原生节点对象。
  34667. * @param type 节点对象。
  34668. */
  34669. static removeElement(ele:any):void;
  34670. /**
  34671. * 获取浏览器当前时间戳,单位为毫秒。
  34672. */
  34673. static now():number;
  34674. /**
  34675. * 浏览器窗口可视宽度。
  34676. * 通过分析浏览器信息获得。浏览器多个属性值优先级为:window.innerWidth(包含滚动条宽度) > document.body.clientWidth(不包含滚动条宽度),如果前者为0或为空,则选择后者。
  34677. */
  34678. static get clientWidth():number;
  34679. /**
  34680. * 浏览器窗口可视高度。
  34681. * 通过分析浏览器信息获得。浏览器多个属性值优先级为:window.innerHeight(包含滚动条高度) > document.body.clientHeight(不包含滚动条高度) > document.documentElement.clientHeight(不包含滚动条高度),如果前者为0或为空,则选择后者。
  34682. */
  34683. static get clientHeight():number;
  34684. /**
  34685. * 浏览器窗口物理宽度。考虑了设备像素比。
  34686. */
  34687. static get width():number;
  34688. /**
  34689. * 浏览器窗口物理高度。考虑了设备像素比。
  34690. */
  34691. static get height():number;
  34692. /**
  34693. * 获得设备像素比。
  34694. */
  34695. static get pixelRatio():number;
  34696. /**
  34697. * 画布容器,用来盛放画布的容器。方便对画布进行控制
  34698. */
  34699. static get container():any;
  34700. static set container(value:any);
  34701. /**
  34702. * 浏览器原生 window 对象的引用。
  34703. */
  34704. static get window():any;
  34705. /**
  34706. * 浏览器原生 document 对象的引用。
  34707. */
  34708. static get document():any;
  34709. }
  34710. }
  34711. declare module laya.utils {
  34712. /**
  34713. * <p> <code>Byte</code> 类提供用于优化读取、写入以及处理二进制数据的方法和属性。</p>
  34714. * <p> <code>Byte</code> 类适用于需要在字节层访问数据的高级开发人员。</p>
  34715. */
  34716. class Byte {
  34717. /**
  34718. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。通过 <code>getSystemEndian</code> 可以获取当前系统的字节序。</p>
  34719. * <p> <code>BIG_ENDIAN</code> :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。<br/>
  34720. * <code>LITTLE_ENDIAN</code> :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  34721. */
  34722. static BIG_ENDIAN:string;
  34723. /**
  34724. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。通过 <code>getSystemEndian</code> 可以获取当前系统的字节序。</p>
  34725. * <p> <code>LITTLE_ENDIAN</code> :小端字节序,地址低位存储值的低位,地址高位存储值的高位。<br/>
  34726. * <code>BIG_ENDIAN</code> :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。</p>
  34727. */
  34728. static LITTLE_ENDIAN:string;
  34729. /**
  34730. * @private
  34731. */
  34732. private static _sysEndian:any;
  34733. /**
  34734. * @private 是否为小端数据。
  34735. */
  34736. protected _xd_:boolean;
  34737. /**
  34738. * @private
  34739. */
  34740. private _allocated_:any;
  34741. /**
  34742. * @private 原始数据。
  34743. */
  34744. protected _d_:any;
  34745. /**
  34746. * @private DataView
  34747. */
  34748. protected _u8d_:any;
  34749. /**
  34750. * @private
  34751. */
  34752. protected _pos_:number;
  34753. /**
  34754. * @private
  34755. */
  34756. protected _length:number;
  34757. /**
  34758. * <p>获取当前主机的字节序。</p>
  34759. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。</p>
  34760. * <p> <code>BIG_ENDIAN</code> :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。<br/>
  34761. * <code>LITTLE_ENDIAN</code> :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  34762. * @return 当前系统的字节序。
  34763. */
  34764. static getSystemEndian():string;
  34765. /**
  34766. * 创建一个 <code>Byte</code> 类的实例。
  34767. * @param data 用于指定初始化的元素数目,或者用于初始化的TypedArray对象、ArrayBuffer对象。如果为 null ,则预分配一定的内存空间,当可用空间不足时,优先使用这部分内存,如果还不够,则重新分配所需内存。
  34768. */
  34769. constructor(data?:any);
  34770. /**
  34771. * 获取此对象的 ArrayBuffer 数据,数据只包含有效数据部分。
  34772. */
  34773. get buffer():ArrayBuffer;
  34774. /**
  34775. * <p> <code>Byte</code> 实例的字节序。取值为:<code>BIG_ENDIAN</code> 或 <code>BIG_ENDIAN</code> 。</p>
  34776. * <p>主机字节序,是 CPU 存放数据的两种不同顺序,包括小端字节序和大端字节序。通过 <code>getSystemEndian</code> 可以获取当前系统的字节序。</p>
  34777. * <p> <code>BIG_ENDIAN</code> :大端字节序,地址低位存储值的高位,地址高位存储值的低位。有时也称之为网络字节序。<br/>
  34778. * <code>LITTLE_ENDIAN</code> :小端字节序,地址低位存储值的低位,地址高位存储值的高位。</p>
  34779. */
  34780. get endian():string;
  34781. set endian(value:string);
  34782. /**
  34783. * <p> <code>Byte</code> 对象的长度(以字节为单位)。</p>
  34784. * <p>如果将长度设置为大于当前长度的值,则用零填充字节数组的右侧;如果将长度设置为小于当前长度的值,将会截断该字节数组。</p>
  34785. * <p>如果要设置的长度大于当前已分配的内存空间的字节长度,则重新分配内存空间,大小为以下两者较大者:要设置的长度、当前已分配的长度的2倍,并将原有数据拷贝到新的内存空间中;如果要设置的长度小于当前已分配的内存空间的字节长度,也会重新分配内存空间,大小为要设置的长度,并将原有数据从头截断为要设置的长度存入新的内存空间中。</p>
  34786. */
  34787. set length(value:number);
  34788. get length():number;
  34789. /**
  34790. * @private
  34791. */
  34792. private _resizeBuffer:any;
  34793. /**
  34794. * @private <p>常用于解析固定格式的字节流。</p>
  34795. <p>先从字节流的当前字节偏移位置处读取一个 <code>Uint16</code> 值,然后以此值为长度,读取此长度的字符串。</p>
  34796. * @return 读取的字符串。
  34797. */
  34798. getString():string;
  34799. /**
  34800. * <p>常用于解析固定格式的字节流。</p>
  34801. * <p>先从字节流的当前字节偏移位置处读取一个 <code>Uint16</code> 值,然后以此值为长度,读取此长度的字符串。</p>
  34802. * @return 读取的字符串。
  34803. */
  34804. readString():string;
  34805. /**
  34806. * @private <p>从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Float32Array</code> 对象并返回此对象。</p>
  34807. <p><b>注意:</b>返回的 Float32Array 对象,在 JavaScript 环境下,是原生的 HTML5 Float32Array 对象,对此对象的读取操作都是基于运行此程序的当前主机字节序,此顺序可能与实际数据的字节序不同,如果使用此对象进行读取,需要用户知晓实际数据的字节序和当前主机字节序,如果相同,可正常读取,否则需要用户对实际数据(Float32Array.buffer)包装一层 DataView ,使用 DataView 对象可按照指定的字节序进行读取。</p>
  34808. * @param start 开始位置。
  34809. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  34810. * @return 读取的 Float32Array 对象。
  34811. */
  34812. getFloat32Array(start:number,len:number):any;
  34813. /**
  34814. * 从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Float32Array</code> 对象并返回此对象。
  34815. * @param start 开始位置。
  34816. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  34817. * @return 读取的 Float32Array 对象。
  34818. */
  34819. readFloat32Array(start:number,len:number):any;
  34820. /**
  34821. * @private 从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Uint8Array</code> 对象并返回此对象。
  34822. * @param start 开始位置。
  34823. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  34824. * @return 读取的 Uint8Array 对象。
  34825. */
  34826. getUint8Array(start:number,len:number):Uint8Array;
  34827. /**
  34828. * 从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Uint8Array</code> 对象并返回此对象。
  34829. * @param start 开始位置。
  34830. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  34831. * @return 读取的 Uint8Array 对象。
  34832. */
  34833. readUint8Array(start:number,len:number):Uint8Array;
  34834. /**
  34835. * @private <p>从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Int16Array</code> 对象并返回此对象。</p>
  34836. <p><b>注意:</b>返回的 Int16Array 对象,在 JavaScript 环境下,是原生的 HTML5 Int16Array 对象,对此对象的读取操作都是基于运行此程序的当前主机字节序,此顺序可能与实际数据的字节序不同,如果使用此对象进行读取,需要用户知晓实际数据的字节序和当前主机字节序,如果相同,可正常读取,否则需要用户对实际数据(Int16Array.buffer)包装一层 DataView ,使用 DataView 对象可按照指定的字节序进行读取。</p>
  34837. * @param start 开始读取的字节偏移量位置。
  34838. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  34839. * @return 读取的 Int16Array 对象。
  34840. */
  34841. getInt16Array(start:number,len:number):any;
  34842. /**
  34843. * 从字节流中 <code>start</code> 参数指定的位置开始,读取 <code>len</code> 参数指定的字节数的数据,用于创建一个 <code>Int16Array</code> 对象并返回此对象。
  34844. * @param start 开始读取的字节偏移量位置。
  34845. * @param len 需要读取的字节长度。如果要读取的长度超过可读取范围,则只返回可读范围内的值。
  34846. * @return 读取的 Uint8Array 对象。
  34847. */
  34848. readInt16Array(start:number,len:number):any;
  34849. /**
  34850. * @private 从字节流的当前字节偏移位置处读取一个 IEEE 754 单精度(32 位)浮点数。
  34851. * @return 单精度(32 位)浮点数。
  34852. */
  34853. getFloat32():number;
  34854. /**
  34855. * 从字节流的当前字节偏移位置处读取一个 IEEE 754 单精度(32 位)浮点数。
  34856. * @return 单精度(32 位)浮点数。
  34857. */
  34858. readFloat32():number;
  34859. /**
  34860. * @private 从字节流的当前字节偏移量位置处读取一个 IEEE 754 双精度(64 位)浮点数。
  34861. * @return 双精度(64 位)浮点数。
  34862. */
  34863. getFloat64():number;
  34864. /**
  34865. * 从字节流的当前字节偏移量位置处读取一个 IEEE 754 双精度(64 位)浮点数。
  34866. * @return 双精度(64 位)浮点数。
  34867. */
  34868. readFloat64():number;
  34869. /**
  34870. * 在字节流的当前字节偏移量位置处写入一个 IEEE 754 单精度(32 位)浮点数。
  34871. * @param value 单精度(32 位)浮点数。
  34872. */
  34873. writeFloat32(value:number):void;
  34874. /**
  34875. * 在字节流的当前字节偏移量位置处写入一个 IEEE 754 双精度(64 位)浮点数。
  34876. * @param value 双精度(64 位)浮点数。
  34877. */
  34878. writeFloat64(value:number):void;
  34879. /**
  34880. * @private 从字节流的当前字节偏移量位置处读取一个 Int32 值。
  34881. * @return Int32 值。
  34882. */
  34883. getInt32():number;
  34884. /**
  34885. * 从字节流的当前字节偏移量位置处读取一个 Int32 值。
  34886. * @return Int32 值。
  34887. */
  34888. readInt32():number;
  34889. /**
  34890. * @private 从字节流的当前字节偏移量位置处读取一个 Uint32 值。
  34891. * @return Uint32 值。
  34892. */
  34893. getUint32():number;
  34894. /**
  34895. * 从字节流的当前字节偏移量位置处读取一个 Uint32 值。
  34896. * @return Uint32 值。
  34897. */
  34898. readUint32():number;
  34899. /**
  34900. * 在字节流的当前字节偏移量位置处写入指定的 Int32 值。
  34901. * @param value 需要写入的 Int32 值。
  34902. */
  34903. writeInt32(value:number):void;
  34904. /**
  34905. * 在字节流的当前字节偏移量位置处写入 Uint32 值。
  34906. * @param value 需要写入的 Uint32 值。
  34907. */
  34908. writeUint32(value:number):void;
  34909. /**
  34910. * @private 从字节流的当前字节偏移量位置处读取一个 Int16 值。
  34911. * @return Int16 值。
  34912. */
  34913. getInt16():number;
  34914. /**
  34915. * 从字节流的当前字节偏移量位置处读取一个 Int16 值。
  34916. * @return Int16 值。
  34917. */
  34918. readInt16():number;
  34919. /**
  34920. * @private 从字节流的当前字节偏移量位置处读取一个 Uint16 值。
  34921. * @return Uint16 值。
  34922. */
  34923. getUint16():number;
  34924. /**
  34925. * 从字节流的当前字节偏移量位置处读取一个 Uint16 值。
  34926. * @return Uint16 值。
  34927. */
  34928. readUint16():number;
  34929. /**
  34930. * 在字节流的当前字节偏移量位置处写入指定的 Uint16 值。
  34931. * @param value 需要写入的Uint16 值。
  34932. */
  34933. writeUint16(value:number):void;
  34934. /**
  34935. * 在字节流的当前字节偏移量位置处写入指定的 Int16 值。
  34936. * @param value 需要写入的 Int16 值。
  34937. */
  34938. writeInt16(value:number):void;
  34939. /**
  34940. * @private 从字节流的当前字节偏移量位置处读取一个 Uint8 值。
  34941. * @return Uint8 值。
  34942. */
  34943. getUint8():number;
  34944. /**
  34945. * 从字节流的当前字节偏移量位置处读取一个 Uint8 值。
  34946. * @return Uint8 值。
  34947. */
  34948. readUint8():number;
  34949. /**
  34950. * 在字节流的当前字节偏移量位置处写入指定的 Uint8 值。
  34951. * @param value 需要写入的 Uint8 值。
  34952. */
  34953. writeUint8(value:number):void;
  34954. /**
  34955. * @private 读取指定长度的 UTF 型字符串。
  34956. * @param len 需要读取的长度。
  34957. * @return 读取的字符串。
  34958. */
  34959. private _rUTF:any;
  34960. /**
  34961. * @private 读取 <code>len</code> 参数指定的长度的字符串。
  34962. * @param len 要读取的字符串的长度。
  34963. * @return 指定长度的字符串。
  34964. */
  34965. getCustomString(len:number):string;
  34966. /**
  34967. * @private 读取 <code>len</code> 参数指定的长度的字符串。
  34968. * @param len 要读取的字符串的长度。
  34969. * @return 指定长度的字符串。
  34970. */
  34971. readCustomString(len:number):string;
  34972. /**
  34973. * 移动或返回 Byte 对象的读写指针的当前位置(以字节为单位)。下一次调用读取方法时将在此位置开始读取,或者下一次调用写入方法时将在此位置开始写入。
  34974. */
  34975. get pos():number;
  34976. set pos(value:number);
  34977. /**
  34978. * 可从字节流的当前位置到末尾读取的数据的字节数。
  34979. */
  34980. get bytesAvailable():number;
  34981. /**
  34982. * 清除字节数组的内容,并将 length 和 pos 属性重置为 0。调用此方法将释放 Byte 实例占用的内存。
  34983. */
  34984. clear():void;
  34985. /**
  34986. * <p>将 UTF-8 字符串写入字节流。类似于 writeUTF() 方法,但 writeUTFBytes() 不使用 16 位长度的字为字符串添加前缀。</p>
  34987. * <p>对应的读取方法为: getUTFBytes 。</p>
  34988. * @param value 要写入的字符串。
  34989. */
  34990. writeUTFBytes(value:string):void;
  34991. /**
  34992. * <p>将 UTF-8 字符串写入字节流。先写入以字节表示的 UTF-8 字符串长度(作为 16 位整数),然后写入表示字符串字符的字节。</p>
  34993. * <p>对应的读取方法为: getUTFString 。</p>
  34994. * @param value 要写入的字符串值。
  34995. */
  34996. writeUTFString(value:string):void;
  34997. /**
  34998. * @private 读取 UTF-8 字符串。
  34999. * @return 读取的字符串。
  35000. */
  35001. readUTFString():string;
  35002. /**
  35003. * <p>从字节流中读取一个 UTF-8 字符串。假定字符串的前缀是一个无符号的短整型(以此字节表示要读取的长度)。</p>
  35004. * <p>对应的写入方法为: writeUTFString 。</p>
  35005. * @return 读取的字符串。
  35006. */
  35007. getUTFString():string;
  35008. /**
  35009. * @private 读字符串,必须是 writeUTFBytes 方法写入的字符串。
  35010. * @param len 要读的buffer长度,默认将读取缓冲区全部数据。
  35011. * @return 读取的字符串。
  35012. */
  35013. readUTFBytes(len?:number):string;
  35014. /**
  35015. * <p>从字节流中读取一个由 length 参数指定的长度的 UTF-8 字节序列,并返回一个字符串。</p>
  35016. * <p>一般读取的是由 writeUTFBytes 方法写入的字符串。</p>
  35017. * @param len 要读的buffer长度,默认将读取缓冲区全部数据。
  35018. * @return 读取的字符串。
  35019. */
  35020. getUTFBytes(len?:number):string;
  35021. /**
  35022. * <p>在字节流中写入一个字节。</p>
  35023. * <p>使用参数的低 8 位。忽略高 24 位。</p>
  35024. * @param value
  35025. */
  35026. writeByte(value:number):void;
  35027. /**
  35028. * <p>从字节流中读取带符号的字节。</p>
  35029. * <p>返回值的范围是从 -128 到 127。</p>
  35030. * @return 介于 -128 和 127 之间的整数。
  35031. */
  35032. readByte():number;
  35033. /**
  35034. * @private 从字节流中读取带符号的字节。
  35035. */
  35036. getByte():number;
  35037. /**
  35038. * <p>将指定 arraybuffer 对象中的以 offset 为起始偏移量, length 为长度的字节序列写入字节流。</p>
  35039. * <p>如果省略 length 参数,则使用默认长度 0,该方法将从 offset 开始写入整个缓冲区;如果还省略了 offset 参数,则写入整个缓冲区。</p>
  35040. * <p>如果 offset 或 length 小于0,本函数将抛出异常。</p>
  35041. * @param arraybuffer 需要写入的 Arraybuffer 对象。
  35042. * @param offset Arraybuffer 对象的索引的偏移量(以字节为单位)
  35043. * @param length 从 Arraybuffer 对象写入到 Byte 对象的长度(以字节为单位)
  35044. */
  35045. writeArrayBuffer(arraybuffer:any,offset?:number,length?:number):void;
  35046. /**
  35047. * 读取ArrayBuffer数据
  35048. * @param length
  35049. * @return
  35050. */
  35051. readArrayBuffer(length:number):ArrayBuffer;
  35052. }
  35053. }
  35054. declare module laya.utils {
  35055. /**
  35056. * @private 对象缓存统一管理类
  35057. */
  35058. class CacheManger {
  35059. /**
  35060. * 单次清理检测允许执行的时间,单位ms。
  35061. */
  35062. static loopTimeLimit:number;
  35063. /**
  35064. * @private
  35065. */
  35066. private static _cacheList:any;
  35067. /**
  35068. * @private 当前检测的索引
  35069. */
  35070. private static _index:any;
  35071. constructor();
  35072. /**
  35073. * 注册cache管理函数
  35074. * @param disposeFunction 释放函数 fun(force:Boolean)
  35075. * @param getCacheListFunction 获取cache列表函数fun():Array
  35076. */
  35077. static regCacheByFunction(disposeFunction:Function,getCacheListFunction:Function):void;
  35078. /**
  35079. * 移除cache管理函数
  35080. * @param disposeFunction 释放函数 fun(force:Boolean)
  35081. * @param getCacheListFunction 获取cache列表函数fun():Array
  35082. */
  35083. static unRegCacheByFunction(disposeFunction:Function,getCacheListFunction:Function):void;
  35084. /**
  35085. * 强制清理所有管理器
  35086. */
  35087. static forceDispose():void;
  35088. /**
  35089. * 开始检测循环
  35090. * @param waitTime 检测间隔时间
  35091. */
  35092. static beginCheck(waitTime?:number):void;
  35093. /**
  35094. * 停止检测循环
  35095. */
  35096. static stopCheck():void;
  35097. /**
  35098. * @private 检测函数
  35099. */
  35100. private static _checkLoop:any;
  35101. }
  35102. }
  35103. declare module laya.utils {
  35104. /**
  35105. * @private
  35106. */
  35107. class CallLater {
  35108. static I:CallLater;
  35109. /**
  35110. * @private
  35111. */
  35112. private _pool:any;
  35113. /**
  35114. * @private
  35115. */
  35116. private _map:any;
  35117. /**
  35118. * @private
  35119. */
  35120. private _laters:any;
  35121. /**
  35122. * @private
  35123. */
  35124. private _getHandler:any;
  35125. /**
  35126. * 延迟执行。
  35127. * @param caller 执行域(this)。
  35128. * @param method 定时器回调函数。
  35129. * @param args 回调参数。
  35130. */
  35131. callLater(caller:any,method:Function,args?:any[]):void;
  35132. /**
  35133. * 立即执行 callLater 。
  35134. * @param caller 执行域(this)。
  35135. * @param method 定时器回调函数。
  35136. */
  35137. runCallLater(caller:any,method:Function):void;
  35138. }
  35139. }
  35140. declare module laya.utils {
  35141. /**
  35142. * <code>ClassUtils</code> 是一个类工具类。
  35143. */
  35144. class ClassUtils {
  35145. /**
  35146. * @private
  35147. */
  35148. private static DrawTypeDic:any;
  35149. /**
  35150. * @private
  35151. */
  35152. private static _temParam:any;
  35153. /**
  35154. * @private
  35155. */
  35156. private static _classMap:any;
  35157. /**
  35158. * @private
  35159. */
  35160. private static _tM:any;
  35161. /**
  35162. * @private
  35163. */
  35164. private static _alpha:any;
  35165. /**
  35166. * 注册 Class 映射,方便在class反射时获取。
  35167. * @param className 映射的名字或者别名。
  35168. * @param classDef 类的全名或者类的引用,全名比如:"laya.display.Sprite"。
  35169. */
  35170. static regClass(className:string,classDef:any):void;
  35171. /**
  35172. * 根据类名短名字注册类,比如传入[Sprite],功能同regClass("Sprite",Sprite);
  35173. * @param classes 类数组
  35174. */
  35175. static regShortClassName(classes:any[]):void;
  35176. /**
  35177. * 返回注册的 Class 映射。
  35178. * @param className 映射的名字。
  35179. */
  35180. static getRegClass(className:string):any;
  35181. /**
  35182. * 根据名字返回类对象。
  35183. * @param className 类名(比如laya.display.Sprite)或者注册的别名(比如Sprite)。
  35184. * @return 类对象
  35185. */
  35186. static getClass(className:string):any;
  35187. /**
  35188. * 根据名称创建 Class 实例。
  35189. * @param className 类名(比如laya.display.Sprite)或者注册的别名(比如Sprite)。
  35190. * @return 返回类的实例。
  35191. */
  35192. static getInstance(className:string):any;
  35193. /**
  35194. * 根据指定的 json 数据创建节点对象。
  35195. * 比如:
  35196. * {
  35197. * "type":"Sprite",
  35198. * "props":{
  35199. * "x":100,
  35200. * "y":50,
  35201. * "name":"item1",
  35202. * "scale":[2,2]
  35203. * },
  35204. * "customProps":{
  35205. * "x":100,
  35206. * "y":50,
  35207. * "name":"item1",
  35208. * "scale":[2,2]
  35209. * },
  35210. * "child":[
  35211. * {
  35212. * "type":"Text",
  35213. * "props":{
  35214. * "text":"this is a test",
  35215. * "var":"label",
  35216. * "rumtime":""
  35217. * }
  35218. * }
  35219. * ]
  35220. * }
  35221. * @param json json字符串或者Object对象。
  35222. * @param node node节点,如果为空,则新创建一个。
  35223. * @param root 根节点,用来设置var定义。
  35224. * @return 生成的节点。
  35225. */
  35226. static createByJson(json:any,node?:any,root?:laya.display.Node,customHandler?:laya.utils.Handler,instanceHandler?:laya.utils.Handler):any;
  35227. /**
  35228. * @private
  35229. */
  35230. private static _getGraphicsFromSprite:any;
  35231. /**
  35232. * @private
  35233. */
  35234. private static _getTransformData:any;
  35235. /**
  35236. * @private
  35237. */
  35238. private static _addGraphicToGraphics:any;
  35239. /**
  35240. * @private
  35241. */
  35242. private static _adptLineData:any;
  35243. /**
  35244. * @private
  35245. */
  35246. private static _adptTextureData:any;
  35247. /**
  35248. * @private
  35249. */
  35250. private static _adptLinesData:any;
  35251. /**
  35252. * @private
  35253. */
  35254. private static _getParams:any;
  35255. /**
  35256. * @private
  35257. */
  35258. private static _getObjVar:any;
  35259. }
  35260. }
  35261. declare module laya.utils {
  35262. /**
  35263. * @private <code>ColorUtils</code> 是一个颜色值处理类。
  35264. */
  35265. class ColorUtils {
  35266. /**
  35267. * @private
  35268. */
  35269. static _SAVE:any;
  35270. /**
  35271. * @private
  35272. */
  35273. static _SAVE_SIZE:number;
  35274. /**
  35275. * @private
  35276. */
  35277. private static _COLOR_MAP:any;
  35278. /**
  35279. * @private
  35280. */
  35281. private static _DEFAULT:any;
  35282. /**
  35283. * @private
  35284. */
  35285. private static _COLODID:any;
  35286. /**
  35287. * rgba 取值范围0-1
  35288. */
  35289. arrColor:any[];
  35290. /**
  35291. * 字符串型颜色值。
  35292. */
  35293. strColor:string;
  35294. /**
  35295. * uint 型颜色值。
  35296. */
  35297. numColor:number;
  35298. /**
  35299. * 根据指定的属性值,创建一个 <code>Color</code> 类的实例。
  35300. * @param value 颜色值,可以是字符串:"#ff0000"或者16进制颜色 0xff0000。
  35301. */
  35302. constructor(value:any);
  35303. /**
  35304. * @private
  35305. */
  35306. static _initDefault():any;
  35307. /**
  35308. * @private 缓存太大,则清理缓存
  35309. */
  35310. static _initSaveMap():void;
  35311. /**
  35312. * 根据指定的属性值,创建并返回一个 <code>Color</code> 类的实例。
  35313. * @param value 颜色值,可以是字符串:"#ff0000"或者16进制颜色 0xff0000。
  35314. * @return 一个 <code>Color</code> 类的实例。
  35315. */
  35316. static create(value:any):ColorUtils;
  35317. }
  35318. }
  35319. declare module laya.utils {
  35320. /**
  35321. * @private <code>Dragging</code> 类是触摸滑动控件。
  35322. */
  35323. class Dragging {
  35324. /**
  35325. * 被拖动的对象。
  35326. */
  35327. target:laya.display.Sprite;
  35328. /**
  35329. * 缓动衰减系数。
  35330. */
  35331. ratio:number;
  35332. /**
  35333. * 单帧最大偏移量。
  35334. */
  35335. maxOffset:number;
  35336. /**
  35337. * 滑动范围。
  35338. */
  35339. area:laya.maths.Rectangle;
  35340. /**
  35341. * 表示拖动是否有惯性。
  35342. */
  35343. hasInertia:boolean;
  35344. /**
  35345. * 橡皮筋最大值。
  35346. */
  35347. elasticDistance:number;
  35348. /**
  35349. * 橡皮筋回弹时间,单位为毫秒。
  35350. */
  35351. elasticBackTime:number;
  35352. /**
  35353. * 事件携带数据。
  35354. */
  35355. data:any;
  35356. private _dragging:any;
  35357. private _clickOnly:any;
  35358. private _elasticRateX:any;
  35359. private _elasticRateY:any;
  35360. private _lastX:any;
  35361. private _lastY:any;
  35362. private _offsetX:any;
  35363. private _offsetY:any;
  35364. private _offsets:any;
  35365. private _disableMouseEvent:any;
  35366. private _tween:any;
  35367. private _parent:any;
  35368. /**
  35369. * 开始拖拽。
  35370. * @param target 待拖拽的 <code>Sprite</code> 对象。
  35371. * @param area 滑动范围。
  35372. * @param hasInertia 拖动是否有惯性。
  35373. * @param elasticDistance 橡皮筋最大值。
  35374. * @param elasticBackTime 橡皮筋回弹时间,单位为毫秒。
  35375. * @param data 事件携带数据。
  35376. * @param disableMouseEvent 鼠标事件是否有效。
  35377. * @param ratio 惯性阻尼系数
  35378. */
  35379. start(target:laya.display.Sprite,area:laya.maths.Rectangle,hasInertia:boolean,elasticDistance:number,elasticBackTime:number,data:any,disableMouseEvent:boolean,ratio?:number):void;
  35380. /**
  35381. * 清除计时器。
  35382. */
  35383. private clearTimer:any;
  35384. /**
  35385. * 停止拖拽。
  35386. */
  35387. stop():void;
  35388. /**
  35389. * 拖拽的循环处理函数。
  35390. */
  35391. private loop:any;
  35392. /**
  35393. * 拖拽区域检测。
  35394. */
  35395. private checkArea:any;
  35396. /**
  35397. * 移动至设定的拖拽区域。
  35398. */
  35399. private backToArea:any;
  35400. /**
  35401. * 舞台的抬起事件侦听函数。
  35402. * @param e Event 对象。
  35403. */
  35404. private onStageMouseUp:any;
  35405. /**
  35406. * 橡皮筋效果检测。
  35407. */
  35408. private checkElastic:any;
  35409. /**
  35410. * 移动。
  35411. */
  35412. private tweenMove:any;
  35413. /**
  35414. * 结束拖拽。
  35415. */
  35416. private clear:any;
  35417. }
  35418. }
  35419. declare module laya.utils {
  35420. /**
  35421. * <code>Ease</code> 类定义了缓动函数,以便实现 <code>Tween</code> 动画的缓动效果。
  35422. */
  35423. class Ease {
  35424. /**
  35425. * @private
  35426. */
  35427. private static HALF_PI:any;
  35428. /**
  35429. * @private
  35430. */
  35431. private static PI2:any;
  35432. /**
  35433. * 定义无加速持续运动。
  35434. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35435. * @param b 指定动画属性的初始值。
  35436. * @param c 指定动画属性的更改总计。
  35437. * @param d 指定运动的持续时间。
  35438. * @return 指定时间的插补属性的值。
  35439. */
  35440. static linearNone(t:number,b:number,c:number,d:number):number;
  35441. /**
  35442. * 定义无加速持续运动。
  35443. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35444. * @param b 指定动画属性的初始值。
  35445. * @param c 指定动画属性的更改总计。
  35446. * @param d 指定运动的持续时间。
  35447. * @return 指定时间的插补属性的值。
  35448. */
  35449. static linearIn(t:number,b:number,c:number,d:number):number;
  35450. /**
  35451. * 定义无加速持续运动。
  35452. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35453. * @param b 指定动画属性的初始值。
  35454. * @param c 指定动画属性的更改总计。
  35455. * @param d 指定运动的持续时间。
  35456. * @return 指定时间的插补属性的值。
  35457. */
  35458. static linearInOut(t:number,b:number,c:number,d:number):number;
  35459. /**
  35460. * 定义无加速持续运动。
  35461. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35462. * @param b 指定动画属性的初始值。
  35463. * @param c 指定动画属性的更改总计。
  35464. * @param d 指定运动的持续时间。
  35465. * @return 指定时间的插补属性的值。
  35466. */
  35467. static linearOut(t:number,b:number,c:number,d:number):number;
  35468. /**
  35469. * 方法以零速率开始运动,然后在执行时加快运动速度。
  35470. * 它的运动是类似一个球落向地板又弹起后,几次逐渐减小的回弹运动。
  35471. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35472. * @param b 指定动画属性的初始值。
  35473. * @param c 指定动画属性的更改总计。
  35474. * @param d 指定运动的持续时间。
  35475. * @return 指定时间的插补属性的值。
  35476. */
  35477. static bounceIn(t:number,b:number,c:number,d:number):number;
  35478. /**
  35479. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  35480. * 它的运动是类似一个球落向地板又弹起后,几次逐渐减小的回弹运动。
  35481. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35482. * @param b 指定动画属性的初始值。
  35483. * @param c 指定动画属性的更改总计。
  35484. * @param d 指定运动的持续时间。
  35485. * @return 指定时间的插补属性的值。
  35486. */
  35487. static bounceInOut(t:number,b:number,c:number,d:number):number;
  35488. /**
  35489. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  35490. * 它的运动是类似一个球落向地板又弹起后,几次逐渐减小的回弹运动。
  35491. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35492. * @param b 指定动画属性的初始值。
  35493. * @param c 指定动画属性的更改总计。
  35494. * @param d 指定运动的持续时间。
  35495. * @return 指定时间的插补属性的值。
  35496. */
  35497. static bounceOut(t:number,b:number,c:number,d:number):number;
  35498. /**
  35499. * 开始时往后运动,然后反向朝目标移动。
  35500. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35501. * @param b 指定动画属性的初始值。
  35502. * @param c 指定动画属性的更改总计。
  35503. * @param d 指定运动的持续时间。
  35504. * @param s 指定过冲量,此处数值越大,过冲越大。
  35505. * @return 指定时间的插补属性的值。
  35506. */
  35507. static backIn(t:number,b:number,c:number,d:number,s?:number):number;
  35508. /**
  35509. * 开始运动时是向后跟踪,再倒转方向并朝目标移动,稍微过冲目标,然后再次倒转方向,回来朝目标移动。
  35510. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35511. * @param b 指定动画属性的初始值。
  35512. * @param c 指定动画属性的更改总计。
  35513. * @param d 指定运动的持续时间。
  35514. * @param s 指定过冲量,此处数值越大,过冲越大。
  35515. * @return 指定时间的插补属性的值。
  35516. */
  35517. static backInOut(t:number,b:number,c:number,d:number,s?:number):number;
  35518. /**
  35519. * 开始运动时是朝目标移动,稍微过冲,再倒转方向回来朝着目标。
  35520. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35521. * @param b 指定动画属性的初始值。
  35522. * @param c 指定动画属性的更改总计。
  35523. * @param d 指定运动的持续时间。
  35524. * @param s 指定过冲量,此处数值越大,过冲越大。
  35525. * @return 指定时间的插补属性的值。
  35526. */
  35527. static backOut(t:number,b:number,c:number,d:number,s?:number):number;
  35528. /**
  35529. * 方法以零速率开始运动,然后在执行时加快运动速度。
  35530. * 其中的运动由按照指数方式衰减的正弦波来定义。
  35531. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35532. * @param b 指定动画属性的初始值。
  35533. * @param c 指定动画属性的更改总计。
  35534. * @param d 指定运动的持续时间。
  35535. * @param a 指定正弦波的幅度。
  35536. * @param p 指定正弦波的周期。
  35537. * @return 指定时间的插补属性的值。
  35538. */
  35539. static elasticIn(t:number,b:number,c:number,d:number,a?:number,p?:number):number;
  35540. /**
  35541. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  35542. * 其中的运动由按照指数方式衰减的正弦波来定义。
  35543. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35544. * @param b 指定动画属性的初始值。
  35545. * @param c 指定动画属性的更改总计。
  35546. * @param d 指定运动的持续时间。
  35547. * @param a 指定正弦波的幅度。
  35548. * @param p 指定正弦波的周期。
  35549. * @return 指定时间的插补属性的值。
  35550. */
  35551. static elasticInOut(t:number,b:number,c:number,d:number,a?:number,p?:number):number;
  35552. /**
  35553. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  35554. * 其中的运动由按照指数方式衰减的正弦波来定义。
  35555. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35556. * @param b 指定动画属性的初始值。
  35557. * @param c 指定动画属性的更改总计。
  35558. * @param d 指定运动的持续时间。
  35559. * @param a 指定正弦波的幅度。
  35560. * @param p 指定正弦波的周期。
  35561. * @return 指定时间的插补属性的值。
  35562. */
  35563. static elasticOut(t:number,b:number,c:number,d:number,a?:number,p?:number):number;
  35564. /**
  35565. * 以零速率开始运动,然后在执行时加快运动速度。
  35566. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35567. * @param b 指定动画属性的初始值。
  35568. * @param c 指定动画属性的更改总计。
  35569. * @param d 指定运动的持续时间。
  35570. * @return 指定时间的插补属性的值。
  35571. */
  35572. static strongIn(t:number,b:number,c:number,d:number):number;
  35573. /**
  35574. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  35575. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35576. * @param b 指定动画属性的初始值。
  35577. * @param c 指定动画属性的更改总计。
  35578. * @param d 指定运动的持续时间。
  35579. * @return 指定时间的插补属性的值。
  35580. */
  35581. static strongInOut(t:number,b:number,c:number,d:number):number;
  35582. /**
  35583. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  35584. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35585. * @param b 指定动画属性的初始值。
  35586. * @param c 指定动画属性的更改总计。
  35587. * @param d 指定运动的持续时间。
  35588. * @return 指定时间的插补属性的值。
  35589. */
  35590. static strongOut(t:number,b:number,c:number,d:number):number;
  35591. /**
  35592. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  35593. * Sine 缓动方程中的运动加速度小于 Quad 方程中的运动加速度。
  35594. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35595. * @param b 指定动画属性的初始值。
  35596. * @param c 指定动画属性的更改总计。
  35597. * @param d 指定运动的持续时间。
  35598. * @return 指定时间的插补属性的值。
  35599. */
  35600. static sineInOut(t:number,b:number,c:number,d:number):number;
  35601. /**
  35602. * 以零速率开始运动,然后在执行时加快运动速度。
  35603. * Sine 缓动方程中的运动加速度小于 Quad 方程中的运动加速度。
  35604. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35605. * @param b 指定动画属性的初始值。
  35606. * @param c 指定动画属性的更改总计。
  35607. * @param d 指定运动的持续时间。
  35608. * @return 指定时间的插补属性的值。
  35609. */
  35610. static sineIn(t:number,b:number,c:number,d:number):number;
  35611. /**
  35612. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  35613. * Sine 缓动方程中的运动加速度小于 Quad 方程中的运动加速度。
  35614. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35615. * @param b 指定动画属性的初始值。
  35616. * @param c 指定动画属性的更改总计。
  35617. * @param d 指定运动的持续时间。
  35618. * @return 指定时间的插补属性的值。
  35619. */
  35620. static sineOut(t:number,b:number,c:number,d:number):number;
  35621. /**
  35622. * 以零速率开始运动,然后在执行时加快运动速度。
  35623. * Quint 缓动方程的运动加速大于 Quart 缓动方程。
  35624. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35625. * @param b 指定动画属性的初始值。
  35626. * @param c 指定动画属性的更改总计。
  35627. * @param d 指定运动的持续时间。
  35628. * @return 指定时间的插补属性的值。
  35629. */
  35630. static quintIn(t:number,b:number,c:number,d:number):number;
  35631. /**
  35632. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  35633. * Quint 缓动方程的运动加速大于 Quart 缓动方程。
  35634. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35635. * @param b 指定动画属性的初始值。
  35636. * @param c 指定动画属性的更改总计。
  35637. * @param d 指定运动的持续时间。
  35638. * @return 指定时间的插补属性的值。
  35639. */
  35640. static quintInOut(t:number,b:number,c:number,d:number):number;
  35641. /**
  35642. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  35643. * Quint 缓动方程的运动加速大于 Quart 缓动方程。
  35644. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35645. * @param b 指定动画属性的初始值。
  35646. * @param c 指定动画属性的更改总计。
  35647. * @param d 指定运动的持续时间。
  35648. * @return 指定时间的插补属性的值。
  35649. */
  35650. static quintOut(t:number,b:number,c:number,d:number):number;
  35651. /**
  35652. * 方法以零速率开始运动,然后在执行时加快运动速度。
  35653. * Quart 缓动方程的运动加速大于 Cubic 缓动方程。
  35654. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35655. * @param b 指定动画属性的初始值。
  35656. * @param c 指定动画属性的更改总计。
  35657. * @param d 指定运动的持续时间。
  35658. * @return 指定时间的插补属性的值。
  35659. */
  35660. static quartIn(t:number,b:number,c:number,d:number):number;
  35661. /**
  35662. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  35663. * Quart 缓动方程的运动加速大于 Cubic 缓动方程。
  35664. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35665. * @param b 指定动画属性的初始值。
  35666. * @param c 指定动画属性的更改总计。
  35667. * @param d 指定运动的持续时间。
  35668. * @return 指定时间的插补属性的值。
  35669. */
  35670. static quartInOut(t:number,b:number,c:number,d:number):number;
  35671. /**
  35672. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  35673. * Quart 缓动方程的运动加速大于 Cubic 缓动方程。
  35674. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35675. * @param b 指定动画属性的初始值。
  35676. * @param c 指定动画属性的更改总计。
  35677. * @param d 指定运动的持续时间。
  35678. * @return 指定时间的插补属性的值。
  35679. */
  35680. static quartOut(t:number,b:number,c:number,d:number):number;
  35681. /**
  35682. * 方法以零速率开始运动,然后在执行时加快运动速度。
  35683. * Cubic 缓动方程的运动加速大于 Quad 缓动方程。
  35684. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35685. * @param b 指定动画属性的初始值。
  35686. * @param c 指定动画属性的更改总计。
  35687. * @param d 指定运动的持续时间。
  35688. * @return 指定时间的插补属性的值。
  35689. */
  35690. static cubicIn(t:number,b:number,c:number,d:number):number;
  35691. /**
  35692. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  35693. * Cubic 缓动方程的运动加速大于 Quad 缓动方程。
  35694. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35695. * @param b 指定动画属性的初始值。
  35696. * @param c 指定动画属性的更改总计。
  35697. * @param d 指定运动的持续时间。
  35698. * @return 指定时间的插补属性的值。
  35699. */
  35700. static cubicInOut(t:number,b:number,c:number,d:number):number;
  35701. /**
  35702. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  35703. * Cubic 缓动方程的运动加速大于 Quad 缓动方程。
  35704. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35705. * @param b 指定动画属性的初始值。
  35706. * @param c 指定动画属性的更改总计。
  35707. * @param d 指定运动的持续时间。
  35708. * @return 指定时间的插补属性的值。
  35709. */
  35710. static cubicOut(t:number,b:number,c:number,d:number):number;
  35711. /**
  35712. * 方法以零速率开始运动,然后在执行时加快运动速度。
  35713. * Quad 缓动方程中的运动加速度等于 100% 缓动的时间轴补间的运动加速度,并且显著小于 Cubic 缓动方程中的运动加速度。
  35714. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35715. * @param b 指定动画属性的初始值。
  35716. * @param c 指定动画属性的更改总计。
  35717. * @param d 指定运动的持续时间。
  35718. * @return 指定时间的插补属性的值。
  35719. */
  35720. static quadIn(t:number,b:number,c:number,d:number):number;
  35721. /**
  35722. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  35723. * Quad 缓动方程中的运动加速度等于 100% 缓动的时间轴补间的运动加速度,并且显著小于 Cubic 缓动方程中的运动加速度。
  35724. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35725. * @param b 指定动画属性的初始值。
  35726. * @param c 指定动画属性的更改总计。
  35727. * @param d 指定运动的持续时间。
  35728. * @return 指定时间的插补属性的值。
  35729. */
  35730. static quadInOut(t:number,b:number,c:number,d:number):number;
  35731. /**
  35732. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  35733. * Quad 缓动方程中的运动加速度等于 100% 缓动的时间轴补间的运动加速度,并且显著小于 Cubic 缓动方程中的运动加速度。
  35734. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35735. * @param b 指定动画属性的初始值。
  35736. * @param c 指定动画属性的更改总计。
  35737. * @param d 指定运动的持续时间。
  35738. * @return 指定时间的插补属性的值。
  35739. */
  35740. static quadOut(t:number,b:number,c:number,d:number):number;
  35741. /**
  35742. * 方法以零速率开始运动,然后在执行时加快运动速度。
  35743. * 其中每个时间间隔是剩余距离减去一个固定比例部分。
  35744. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35745. * @param b 指定动画属性的初始值。
  35746. * @param c 指定动画属性的更改总计。
  35747. * @param d 指定运动的持续时间。
  35748. * @return 指定时间的插补属性的值。
  35749. */
  35750. static expoIn(t:number,b:number,c:number,d:number):number;
  35751. /**
  35752. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  35753. * 其中每个时间间隔是剩余距离减去一个固定比例部分。
  35754. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35755. * @param b 指定动画属性的初始值。
  35756. * @param c 指定动画属性的更改总计。
  35757. * @param d 指定运动的持续时间。
  35758. * @return 指定时间的插补属性的值。
  35759. */
  35760. static expoInOut(t:number,b:number,c:number,d:number):number;
  35761. /**
  35762. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  35763. * 其中每个时间间隔是剩余距离减去一个固定比例部分。
  35764. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35765. * @param b 指定动画属性的初始值。
  35766. * @param c 指定动画属性的更改总计。
  35767. * @param d 指定运动的持续时间。
  35768. * @return 指定时间的插补属性的值。
  35769. */
  35770. static expoOut(t:number,b:number,c:number,d:number):number;
  35771. /**
  35772. * 方法以零速率开始运动,然后在执行时加快运动速度。
  35773. * 缓动方程的运动加速会产生突然的速率变化。
  35774. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35775. * @param b 指定动画属性的初始值。
  35776. * @param c 指定动画属性的更改总计。
  35777. * @param d 指定运动的持续时间。
  35778. * @return 指定时间的插补属性的值。
  35779. */
  35780. static circIn(t:number,b:number,c:number,d:number):number;
  35781. /**
  35782. * 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
  35783. * 缓动方程的运动加速会产生突然的速率变化。
  35784. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35785. * @param b 指定动画属性的初始值。
  35786. * @param c 指定动画属性的更改总计。
  35787. * @param d 指定运动的持续时间。
  35788. * @return 指定时间的插补属性的值。
  35789. */
  35790. static circInOut(t:number,b:number,c:number,d:number):number;
  35791. /**
  35792. * 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
  35793. * 缓动方程的运动加速会产生突然的速率变化。
  35794. * @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
  35795. * @param b 指定动画属性的初始值。
  35796. * @param c 指定动画属性的更改总计。
  35797. * @param d 指定运动的持续时间。
  35798. * @return 指定时间的插补属性的值。
  35799. */
  35800. static circOut(t:number,b:number,c:number,d:number):number;
  35801. }
  35802. }
  35803. declare module laya.utils {
  35804. class FontInfo {
  35805. static EMPTY:FontInfo;
  35806. private static _cache:any;
  35807. private static _gfontID:any;
  35808. private static _lastFont:any;
  35809. private static _lastFontInfo:any;
  35810. static Parse(font:string):FontInfo;
  35811. constructor(font:string);
  35812. setFont(value:string):void;
  35813. }
  35814. }
  35815. declare module laya.utils {
  35816. /**
  35817. * Graphics动画解析器
  35818. * @private
  35819. */
  35820. class GraphicAnimation extends laya.display.FrameAnimation {
  35821. /**
  35822. * @private
  35823. */
  35824. animationList:any[];
  35825. /**
  35826. * @private
  35827. */
  35828. animationDic:any;
  35829. /**
  35830. * @private
  35831. */
  35832. protected _nodeList:any[];
  35833. /**
  35834. * @private
  35835. */
  35836. protected _nodeDefaultProps:any;
  35837. /**
  35838. * @private
  35839. */
  35840. protected _gList:any[];
  35841. /**
  35842. * @private
  35843. */
  35844. protected _nodeIDAniDic:any;
  35845. /**
  35846. * @private
  35847. */
  35848. protected static _drawTextureCmd:any[];
  35849. /**
  35850. * @private
  35851. */
  35852. protected static _temParam:any[];
  35853. /**
  35854. * @private
  35855. */
  35856. private static _I:any;
  35857. /**
  35858. * @private
  35859. */
  35860. private static _rootMatrix:any;
  35861. /**
  35862. * @private
  35863. */
  35864. private _rootNode:any;
  35865. /**
  35866. * @private
  35867. */
  35868. protected _nodeGDic:any;
  35869. /**
  35870. * @private
  35871. */
  35872. private _parseNodeList:any;
  35873. /**
  35874. * @private
  35875. */
  35876. private _calGraphicData:any;
  35877. /**
  35878. * @private
  35879. */
  35880. private _createGraphicData:any;
  35881. /**
  35882. * @private
  35883. */
  35884. protected _createFrameGraphic(frame:number):any;
  35885. protected _updateNodeGraphic(node:any,frame:number,parentTransfrom:laya.maths.Matrix,g:laya.display.Graphics,alpha?:number):void;
  35886. protected _updateNoChilds(tNodeG:GraphicNode,g:laya.display.Graphics):void;
  35887. protected _updateNodeGraphic2(node:any,frame:number,g:laya.display.Graphics):void;
  35888. /**
  35889. * @private
  35890. * @override
  35891. */
  35892. protected _calculateKeyFrames(node:any):void;
  35893. /**
  35894. * @private
  35895. */
  35896. protected getNodeDataByID(nodeID:number):any;
  35897. /**
  35898. * @private
  35899. */
  35900. protected _getParams(obj:any,params:any[],frame:number,obj2:any):any[];
  35901. /**
  35902. * @private
  35903. */
  35904. private _getObjVar:any;
  35905. protected _getNodeGraphicData(nodeID:number,frame:number,rst:GraphicNode):GraphicNode;
  35906. private static _tempMt:any;
  35907. /**
  35908. * @private
  35909. */
  35910. protected _getTextureByUrl(url:string):any;
  35911. /**
  35912. * @private
  35913. */
  35914. setAniData(uiView:any,aniName?:string):void;
  35915. parseByData(aniData:any):any;
  35916. /**
  35917. * @private
  35918. */
  35919. setUpAniData(uiView:any):void;
  35920. /**
  35921. * @private
  35922. */
  35923. protected _clear():void;
  35924. static parseAnimationByData(animationObject:any):any;
  35925. static parseAnimationData(aniData:any):any;
  35926. }
  35927. class GraphicNode {
  35928. skin:string;
  35929. transform:laya.maths.Matrix;
  35930. resultTransform:laya.maths.Matrix;
  35931. width:number;
  35932. height:number;
  35933. alpha:number;
  35934. }
  35935. }
  35936. declare module laya.utils {
  35937. /**
  35938. * <p><code>Handler</code> 是事件处理器类。</p>
  35939. * <p>推荐使用 Handler.create() 方法从对象池创建,减少对象创建消耗。创建的 Handler 对象不再使用后,可以使用 Handler.recover() 将其回收到对象池,回收后不要再使用此对象,否则会导致不可预料的错误。</p>
  35940. * <p><b>注意:</b>由于鼠标事件也用本对象池,不正确的回收及调用,可能会影响鼠标事件的执行。</p>
  35941. */
  35942. class Handler {
  35943. /**
  35944. * @private handler对象池
  35945. */
  35946. protected static _pool:Handler[];
  35947. /**
  35948. * @private
  35949. */
  35950. private static _gid:any;
  35951. /**
  35952. * 执行域(this)。
  35953. */
  35954. caller:Object|null;
  35955. /**
  35956. * 处理方法。
  35957. */
  35958. method:Function|null;
  35959. /**
  35960. * 参数。
  35961. */
  35962. args:any[]|null;
  35963. /**
  35964. * 表示是否只执行一次。如果为true,回调后执行recover()进行回收,回收后会被再利用,默认为false 。
  35965. */
  35966. once:boolean;
  35967. /**
  35968. * @private
  35969. */
  35970. protected _id:number;
  35971. /**
  35972. * 根据指定的属性值,创建一个 <code>Handler</code> 类的实例。
  35973. * @param caller 执行域。
  35974. * @param method 处理函数。
  35975. * @param args 函数参数。
  35976. * @param once 是否只执行一次。
  35977. */
  35978. constructor(caller?:Object|null,method?:Function|null,args?:any[]|null,once?:boolean);
  35979. /**
  35980. * 设置此对象的指定属性值。
  35981. * @param caller 执行域(this)。
  35982. * @param method 回调方法。
  35983. * @param args 携带的参数。
  35984. * @param once 是否只执行一次,如果为true,执行后执行recover()进行回收。
  35985. * @return 返回 handler 本身。
  35986. */
  35987. setTo(caller:any,method:Function|null,args:any[]|null,once?:boolean):Handler;
  35988. /**
  35989. * 执行处理器。
  35990. */
  35991. run():any;
  35992. /**
  35993. * 执行处理器,并携带额外数据。
  35994. * @param data 附加的回调数据,可以是单数据或者Array(作为多参)。
  35995. */
  35996. runWith(data:any):any;
  35997. /**
  35998. * 清理对象引用。
  35999. */
  36000. clear():Handler;
  36001. /**
  36002. * 清理并回收到 Handler 对象池内。
  36003. */
  36004. recover():void;
  36005. /**
  36006. * 从对象池内创建一个Handler,默认会执行一次并立即回收,如果不需要自动回收,设置once参数为false。
  36007. * @param caller 执行域(this)。
  36008. * @param method 回调方法。
  36009. * @param args 携带的参数。
  36010. * @param once 是否只执行一次,如果为true,回调后执行recover()进行回收,默认为true。
  36011. * @return 返回创建的handler实例。
  36012. */
  36013. static create(caller:any,method:Function|null,args?:any[]|null,once?:boolean):Handler;
  36014. }
  36015. }
  36016. declare module laya.utils {
  36017. /**
  36018. * 鼠标点击区域,可以设置绘制一系列矢量图作为点击区域和非点击区域(目前只支持圆形,矩形,多边形)
  36019. */
  36020. class HitArea {
  36021. /**
  36022. * @private
  36023. */
  36024. private static _cmds:any;
  36025. /**
  36026. * @private
  36027. */
  36028. private static _rect:any;
  36029. /**
  36030. * @private
  36031. */
  36032. private static _ptPoint:any;
  36033. /**
  36034. * @private
  36035. */
  36036. private _hit:any;
  36037. /**
  36038. * @private
  36039. */
  36040. private _unHit:any;
  36041. /**
  36042. * 检测对象是否包含指定的点。
  36043. * @param x 点的 X 轴坐标值(水平位置)。
  36044. * @param y 点的 Y 轴坐标值(垂直位置)。
  36045. * @return 如果包含指定的点,则值为 true;否则为 false。
  36046. */
  36047. contains(x:number,y:number):boolean;
  36048. /**
  36049. * 可点击区域,可以设置绘制一系列矢量图作为点击区域(目前只支持圆形,矩形,多边形)
  36050. */
  36051. get hit():laya.display.Graphics;
  36052. set hit(value:laya.display.Graphics);
  36053. /**
  36054. * 不可点击区域,可以设置绘制一系列矢量图作为非点击区域(目前只支持圆形,矩形,多边形)
  36055. */
  36056. get unHit():laya.display.Graphics;
  36057. set unHit(value:laya.display.Graphics);
  36058. }
  36059. }
  36060. declare module laya.utils {
  36061. /**
  36062. * @private <code>HTMLChar</code> 是一个 HTML 字符类。
  36063. */
  36064. class HTMLChar {
  36065. private static _isWordRegExp:any;
  36066. /**
  36067. * x坐标
  36068. */
  36069. x:number;
  36070. /**
  36071. * y坐标
  36072. */
  36073. y:number;
  36074. /**
  36075. * 宽
  36076. */
  36077. width:number;
  36078. /**
  36079. * 高
  36080. */
  36081. height:number;
  36082. /**
  36083. * 表示是否是正常单词(英文|.|数字)。
  36084. */
  36085. isWord:boolean;
  36086. /**
  36087. * 字符。
  36088. */
  36089. char:string|null;
  36090. /**
  36091. * 字符数量。
  36092. */
  36093. charNum:number;
  36094. /**
  36095. * CSS 样式。
  36096. */
  36097. style:any;
  36098. /**
  36099. * 创建实例
  36100. */
  36101. constructor();
  36102. /**
  36103. * 根据指定的字符、宽高、样式,创建一个 <code>HTMLChar</code> 类的实例。
  36104. * @param char 字符。
  36105. * @param w 宽度。
  36106. * @param h 高度。
  36107. * @param style CSS 样式。
  36108. */
  36109. setData(char:string,w:number,h:number,style:any):HTMLChar;
  36110. /**
  36111. * 重置
  36112. */
  36113. reset():HTMLChar;
  36114. /**
  36115. * 回收
  36116. */
  36117. recover():void;
  36118. /**
  36119. * 创建
  36120. */
  36121. static create():HTMLChar;
  36122. }
  36123. }
  36124. declare module laya.utils {
  36125. /**
  36126. * @author laya
  36127. */
  36128. class IStatRender {
  36129. /**
  36130. * 显示性能统计信息。
  36131. * @param x X轴显示位置。
  36132. * @param y Y轴显示位置。
  36133. */
  36134. show(x?:number,y?:number):void;
  36135. /**
  36136. * 激活性能统计
  36137. */
  36138. enable():void;
  36139. /**
  36140. * 隐藏性能统计信息。
  36141. */
  36142. hide():void;
  36143. /**
  36144. * 点击性能统计显示区域的处理函数。
  36145. */
  36146. set_onclick(fn:Function):void;
  36147. isCanvasRender():boolean;
  36148. renderNotCanvas(ctx:any,x:number,y:number):void;
  36149. }
  36150. }
  36151. declare module laya.utils {
  36152. /**
  36153. * <code>Log</code> 类用于在界面内显示日志记录信息。
  36154. * 注意:在加速器内不可使用
  36155. */
  36156. class Log {
  36157. /**
  36158. * @private
  36159. */
  36160. private static _logdiv:any;
  36161. /**
  36162. * @private
  36163. */
  36164. private static _btn:any;
  36165. /**
  36166. * @private
  36167. */
  36168. private static _count:any;
  36169. /**
  36170. * 最大打印数量,超过这个数量,则自动清理一次,默认为50次
  36171. */
  36172. static maxCount:number;
  36173. /**
  36174. * 是否自动滚动到底部,默认为true
  36175. */
  36176. static autoScrollToBottom:boolean;
  36177. /**
  36178. * 激活Log系统,使用方法Laya.init(800,600,Laya.Log);
  36179. */
  36180. static enable():void;
  36181. /**
  36182. * 隐藏/显示日志面板
  36183. */
  36184. static toggle():void;
  36185. /**
  36186. * 增加日志内容。
  36187. * @param value 需要增加的日志内容。
  36188. */
  36189. static print(value:string):void;
  36190. /**
  36191. * 清理日志
  36192. */
  36193. static clear():void;
  36194. }
  36195. }
  36196. declare module laya.utils {
  36197. /**
  36198. * <code>Mouse</code> 类用于控制鼠标光标样式。
  36199. */
  36200. class Mouse {
  36201. /**
  36202. * @private
  36203. */
  36204. private static _style:any;
  36205. /**
  36206. * @private
  36207. */
  36208. private static _preCursor:any;
  36209. /**
  36210. * 设置鼠标样式
  36211. * @param cursorStr 例如auto move no-drop col-resize
  36212. all-scroll pointer not-allowed row-resize
  36213. crosshair progress e-resize ne-resize
  36214. default text n-resize nw-resize
  36215. help vertical-text s-resize se-resize
  36216. inherit wait w-resize sw-resize
  36217. */
  36218. static set cursor(cursorStr:string);
  36219. static get cursor():string;
  36220. /**
  36221. * 隐藏鼠标
  36222. */
  36223. static hide():void;
  36224. /**
  36225. * 显示鼠标
  36226. */
  36227. static show():void;
  36228. }
  36229. }
  36230. declare module laya.utils {
  36231. class PerfData {
  36232. id:number;
  36233. name:string;
  36234. color:number;
  36235. scale:number;
  36236. datas:any[];
  36237. datapos:number;
  36238. constructor(id:number,color:number,name:string,scale:number);
  36239. addData(v:number):void;
  36240. }
  36241. }
  36242. declare module laya.utils {
  36243. class PerfHUD extends laya.display.Sprite {
  36244. private static _lastTm:any;
  36245. private static _now:any;
  36246. private datas:any;
  36247. static DATANUM:number;
  36248. xdata:any[];
  36249. ydata:any[];
  36250. hud_width:number;
  36251. hud_height:number;
  36252. gMinV:number;
  36253. gMaxV:number;
  36254. private textSpace:any;
  36255. static inst:PerfHUD;
  36256. private _now:any;
  36257. private sttm:any;
  36258. static drawTexTm:number;
  36259. constructor();
  36260. now():number;
  36261. start():void;
  36262. end(i:number):void;
  36263. config(w:number,h:number):void;
  36264. addDataDef(id:number,color:number,name:string,scale:number):void;
  36265. updateValue(id:number,v:number):void;
  36266. v2y(v:number):number;
  36267. drawHLine(ctx:laya.resource.Context,v:number,color:string,text:string):void;
  36268. /**
  36269. * @param ctx
  36270. * @param x
  36271. * @param y
  36272. * @override
  36273. */
  36274. customRender(ctx:laya.resource.Context,x:number,y:number):void;
  36275. }
  36276. }
  36277. declare module laya.utils {
  36278. /**
  36279. * <p> <code>Pool</code> 是对象池类,用于对象的存储、重复使用。</p>
  36280. * <p>合理使用对象池,可以有效减少对象创建的开销,避免频繁的垃圾回收,从而优化游戏流畅度。</p>
  36281. */
  36282. class Pool {
  36283. /**
  36284. * @private
  36285. */
  36286. private static _CLSID:any;
  36287. /**
  36288. * @private
  36289. */
  36290. private static POOLSIGN:any;
  36291. /**
  36292. * @private 对象存放池。
  36293. */
  36294. private static _poolDic:any;
  36295. /**
  36296. * 根据对象类型标识字符,获取对象池。
  36297. * @param sign 对象类型标识字符。
  36298. * @return 对象池。
  36299. */
  36300. static getPoolBySign(sign:string):any[];
  36301. /**
  36302. * 清除对象池的对象。
  36303. * @param sign 对象类型标识字符。
  36304. */
  36305. static clearBySign(sign:string):void;
  36306. /**
  36307. * 将对象放到对应类型标识的对象池中。
  36308. * @param sign 对象类型标识字符。
  36309. * @param item 对象。
  36310. */
  36311. static recover(sign:string,item:any):void;
  36312. /**
  36313. * 根据类名进行回收,如果类有类名才进行回收,没有则不回收
  36314. * @param instance 类的具体实例
  36315. */
  36316. static recoverByClass(instance:any):void;
  36317. /**
  36318. * 返回类的唯一标识
  36319. */
  36320. private static _getClassSign:any;
  36321. /**
  36322. * 根据类名回收类的实例
  36323. * @param instance 类的具体实例
  36324. */
  36325. static createByClass<T>(cls:new () => T):T;
  36326. /**
  36327. * <p>根据传入的对象类型标识字符,获取对象池中此类型标识的一个对象实例。</p>
  36328. * <p>当对象池中无此类型标识的对象时,则根据传入的类型,创建一个新的对象返回。</p>
  36329. * @param sign 对象类型标识字符。
  36330. * @param cls 用于创建该类型对象的类。
  36331. * @return 此类型标识的一个对象。
  36332. */
  36333. static getItemByClass<T>(sign:string,cls:new () => T):T;
  36334. /**
  36335. * <p>根据传入的对象类型标识字符,获取对象池中此类型标识的一个对象实例。</p>
  36336. * <p>当对象池中无此类型标识的对象时,则使用传入的创建此类型对象的函数,新建一个对象返回。</p>
  36337. * @param sign 对象类型标识字符。
  36338. * @param createFun 用于创建该类型对象的方法。
  36339. * @param caller this对象
  36340. * @return 此类型标识的一个对象。
  36341. */
  36342. static getItemByCreateFun(sign:string,createFun:Function,caller?:any):any;
  36343. /**
  36344. * 根据传入的对象类型标识字符,获取对象池中已存储的此类型的一个对象,如果对象池中无此类型的对象,则返回 null 。
  36345. * @param sign 对象类型标识字符。
  36346. * @return 对象池中此类型的一个对象,如果对象池中无此类型的对象,则返回 null 。
  36347. */
  36348. static getItem(sign:string):any;
  36349. }
  36350. }
  36351. declare module laya.utils {
  36352. /**
  36353. * @private 基于个数的对象缓存管理器
  36354. */
  36355. class PoolCache {
  36356. /**
  36357. * 对象在Pool中的标识
  36358. */
  36359. sign:string;
  36360. /**
  36361. * 允许缓存的最大数量
  36362. */
  36363. maxCount:number;
  36364. /**
  36365. * 获取缓存的对象列表
  36366. * @return
  36367. */
  36368. getCacheList():any[];
  36369. /**
  36370. * 尝试清理缓存
  36371. * @param force 是否强制清理
  36372. */
  36373. tryDispose(force:boolean):void;
  36374. /**
  36375. * 添加对象缓存管理
  36376. * @param sign 对象在Pool中的标识
  36377. * @param maxCount 允许缓存的最大数量
  36378. */
  36379. static addPoolCacheManager(sign:string,maxCount?:number):void;
  36380. }
  36381. }
  36382. declare module laya.utils {
  36383. /**
  36384. * @private
  36385. */
  36386. class RunDriver {
  36387. static createShaderCondition:Function;
  36388. /**
  36389. * 用于改变 WebGL宽高信息。
  36390. */
  36391. static changeWebGLSize:Function;
  36392. }
  36393. }
  36394. declare module laya.utils {
  36395. /**
  36396. * @private 场景辅助类
  36397. */
  36398. class SceneUtils {
  36399. /**
  36400. * @private
  36401. */
  36402. private static _funMap:any;
  36403. /**
  36404. * @private
  36405. */
  36406. private static _parseWatchData:any;
  36407. /**
  36408. * @private
  36409. */
  36410. private static _parseKeyWord:any;
  36411. static __init():void;
  36412. /**
  36413. * @private 根据字符串,返回函数表达式
  36414. */
  36415. static getBindFun(value:string):Function;
  36416. /**
  36417. * @private 通过视图数据创建视图。
  36418. * @param uiView 视图数据信息。
  36419. */
  36420. static createByData(root:any,uiView:any):any;
  36421. static createInitTool():InitTool;
  36422. /**
  36423. * 根据UI数据实例化组件。
  36424. * @param uiView UI数据。
  36425. * @param comp 组件本体,如果为空,会新创建一个。
  36426. * @param view 组件所在的视图实例,用来注册var全局变量,如果值为空则不注册。
  36427. * @return 一个 Component 对象。
  36428. */
  36429. static createComp(uiView:any,comp?:any,view?:any,dataMap?:any[],initTool?:InitTool):any;
  36430. /**
  36431. * @private 设置组件的属性值。
  36432. * @param comp 组件实例。
  36433. * @param prop 属性名称。
  36434. * @param value 属性值。
  36435. * @param view 组件所在的视图实例,用来注册var全局变量,如果值为空则不注册。
  36436. */
  36437. private static setCompValue:any;
  36438. /**
  36439. * @private 通过组建UI数据,获取组件实例。
  36440. * @param json UI数据。
  36441. * @return Component 对象。
  36442. */
  36443. static getCompInstance(json:any):any;
  36444. }
  36445. /**
  36446. * @private 场景辅助类
  36447. */
  36448. class InitTool {
  36449. /**
  36450. * @private
  36451. */
  36452. private _nodeRefList:any;
  36453. /**
  36454. * @private
  36455. */
  36456. private _initList:any;
  36457. private _loadList:any;
  36458. reset():void;
  36459. recover():void;
  36460. static create():InitTool;
  36461. addLoadRes(url:string,type?:string):void;
  36462. /**
  36463. * @private
  36464. */
  36465. addNodeRef(node:any,prop:string,referStr:string):void;
  36466. /**
  36467. * @private
  36468. */
  36469. setNodeRef():void;
  36470. /**
  36471. * @private
  36472. */
  36473. getReferData(referStr:string):any;
  36474. /**
  36475. * @private
  36476. */
  36477. addInitItem(item:any):void;
  36478. /**
  36479. * @private
  36480. */
  36481. doInits():void;
  36482. /**
  36483. * @private
  36484. */
  36485. finish():void;
  36486. /**
  36487. * @private
  36488. */
  36489. beginLoad(scene:laya.display.Scene):void;
  36490. }
  36491. }
  36492. declare module laya.utils {
  36493. /**
  36494. * <p> <code>Stat</code> 是一个性能统计面板,可以实时更新相关的性能参数。</p>
  36495. * <p>参与统计的性能参数如下(所有参数都是每大约1秒进行更新):<br/>
  36496. * FPS(WebGL):WebGL 模式下的帧频,也就是每秒显示的帧数,值越高、越稳定,感觉越流畅;<br/>
  36497. * Sprite:统计所有渲染节点(包括容器)数量,它的大小会影响引擎进行节点遍历、数据组织和渲染的效率。其值越小,游戏运行效率越高;<br/>
  36498. * DrawCall:此值是决定性能的重要指标,其值越小,游戏运行效率越高。Canvas模式下表示每大约1秒的图像绘制次数;WebGL模式下表示每大约1秒的渲染提交批次,每次准备数据并通知GPU渲染绘制的过程称为1次DrawCall,在每次DrawCall中除了在通知GPU的渲染上比较耗时之外,切换材质与shader也是非常耗时的操作;<br/>
  36499. * CurMem:Canvas模式下,表示内存占用大小,值越小越好,过高会导致游戏闪退;WebGL模式下,表示内存与显存的占用,值越小越好;<br/>
  36500. * Shader:是 WebGL 模式独有的性能指标,表示每大约1秒 Shader 提交次数,值越小越好;<br/>
  36501. * Canvas:由三个数值组成,只有设置 CacheAs 后才会有值,默认为0/0/0。从左到右数值的意义分别为:每帧重绘的画布数量 / 缓存类型为"normal"类型的画布数量 / 缓存类型为"bitmap"类型的画布数量。</p>
  36502. */
  36503. class Stat {
  36504. /**
  36505. * 每秒帧数。
  36506. */
  36507. static FPS:number;
  36508. /**
  36509. * 主舞台 <code>Stage</code> 渲染次数计数。
  36510. */
  36511. static loopCount:number;
  36512. /**
  36513. * 着色器请求次数。
  36514. */
  36515. static shaderCall:number;
  36516. /**
  36517. * 渲染批次。
  36518. */
  36519. static renderBatches:number;
  36520. /**
  36521. * 节省的渲染批次。
  36522. */
  36523. static savedRenderBatches:number;
  36524. /**
  36525. * 三角形面数。
  36526. */
  36527. static trianglesFaces:number;
  36528. /**
  36529. * 精灵<code>Sprite</code> 的数量。
  36530. */
  36531. static spriteCount:number;
  36532. /**
  36533. * 精灵渲染使用缓存<code>Sprite</code> 的数量。
  36534. */
  36535. static spriteRenderUseCacheCount:number;
  36536. /**
  36537. * 视锥剔除次数。
  36538. */
  36539. static frustumCulling:number;
  36540. /**
  36541. * 八叉树节点剔除次数。
  36542. */
  36543. static octreeNodeCulling:number;
  36544. /**
  36545. * 画布 canvas 使用标准渲染的次数。
  36546. */
  36547. static canvasNormal:number;
  36548. /**
  36549. * 画布 canvas 使用位图渲染的次数。
  36550. */
  36551. static canvasBitmap:number;
  36552. /**
  36553. * 画布 canvas 缓冲区重绘次数。
  36554. */
  36555. static canvasReCache:number;
  36556. /**
  36557. * 表示当前使用的是否为慢渲染模式。
  36558. */
  36559. static renderSlow:boolean;
  36560. /**
  36561. * 资源管理器所管理资源的累计内存,以字节为单位。
  36562. */
  36563. static gpuMemory:number;
  36564. static cpuMemory:number;
  36565. /**
  36566. * 显示性能统计信息。
  36567. * @param x X轴显示位置。
  36568. * @param y Y轴显示位置。
  36569. */
  36570. static show(x?:number,y?:number):void;
  36571. /**
  36572. * 激活性能统计
  36573. */
  36574. static enable():void;
  36575. /**
  36576. * 隐藏性能统计信息。
  36577. */
  36578. static hide():void;
  36579. /**
  36580. * @private 清零性能统计计算相关的数据。
  36581. */
  36582. static clear():void;
  36583. /**
  36584. * 点击性能统计显示区域的处理函数。
  36585. */
  36586. static set onclick(fn:Function);
  36587. }
  36588. }
  36589. declare module laya.utils {
  36590. /**
  36591. * 显示Stat的结果。由于stat会引入很多的循环引用,所以把显示部分拆开
  36592. * @author laya
  36593. */
  36594. class StatUI extends laya.utils.IStatRender {
  36595. private static _fontSize:any;
  36596. private _txt:any;
  36597. private _leftText:any;
  36598. private _canvas:any;
  36599. private _ctx:any;
  36600. private _first:any;
  36601. private _vx:any;
  36602. private _width:any;
  36603. private _height:any;
  36604. private _view:any;
  36605. /**
  36606. * @override 显示性能统计信息。
  36607. * @param x X轴显示位置。
  36608. * @param y Y轴显示位置。
  36609. */
  36610. show(x?:number,y?:number):void;
  36611. private createUIPre:any;
  36612. private createUI:any;
  36613. /**
  36614. * @override 激活性能统计
  36615. */
  36616. enable():void;
  36617. /**
  36618. * @override 隐藏性能统计信息。
  36619. */
  36620. hide():void;
  36621. /**
  36622. * @override 点击性能统计显示区域的处理函数。
  36623. */
  36624. set_onclick(fn:(this:GlobalEventHandlers,ev:MouseEvent) =>any):void;
  36625. /**
  36626. * @private 性能统计参数计算循环处理函数。
  36627. */
  36628. loop():void;
  36629. private renderInfoPre:any;
  36630. private renderInfo:any;
  36631. /**
  36632. * @override
  36633. */
  36634. isCanvasRender():boolean;
  36635. /**
  36636. * @override 非canvas模式的渲染
  36637. */
  36638. renderNotCanvas(ctx:any,x:number,y:number):void;
  36639. }
  36640. }
  36641. declare module laya.utils {
  36642. /**
  36643. * @private <code>StringKey</code> 类用于存取字符串对应的数字。
  36644. */
  36645. class StringKey {
  36646. private _strsToID:any;
  36647. private _idToStrs:any;
  36648. private _length:any;
  36649. /**
  36650. * 添加一个字符。
  36651. * @param str 字符,将作为key 存储相应生成的数字。
  36652. * @return 此字符对应的数字。
  36653. */
  36654. add(str:string):number;
  36655. /**
  36656. * 获取指定字符对应的ID。
  36657. * @param str 字符。
  36658. * @return 此字符对应的ID。
  36659. */
  36660. getID(str:string):number;
  36661. /**
  36662. * 根据指定ID获取对应字符。
  36663. * @param id ID。
  36664. * @return 此id对应的字符。
  36665. */
  36666. getName(id:number):string;
  36667. }
  36668. }
  36669. declare module laya.utils {
  36670. /**
  36671. * 整个缓动结束的时候会调度
  36672. * @eventType Event.COMPLETE
  36673. */
  36674. /**
  36675. * 当缓动到达标签时会调度。
  36676. * @eventType Event.LABEL
  36677. */
  36678. /**
  36679. * <code>TimeLine</code> 是一个用来创建时间轴动画的类。
  36680. */
  36681. class TimeLine extends laya.events.EventDispatcher {
  36682. private _labelDic:any;
  36683. private _tweenDic:any;
  36684. private _tweenDataList:any;
  36685. private _endTweenDataList:any;
  36686. private _currTime:any;
  36687. private _lastTime:any;
  36688. private _startTime:any;
  36689. /**
  36690. * 当前动画数据播放到第几个了
  36691. */
  36692. private _index:any;
  36693. /**
  36694. * 为TWEEN创建属于自己的唯一标识,方便管理
  36695. */
  36696. private _gidIndex:any;
  36697. /**
  36698. * 保留所有对象第一次注册动画时的状态(根据时间跳转时,需要把对象的恢复,再计算接下来的状态)
  36699. */
  36700. private _firstTweenDic:any;
  36701. /**
  36702. * 是否需要排序
  36703. */
  36704. private _startTimeSort:any;
  36705. private _endTimeSort:any;
  36706. /**
  36707. * 是否循环
  36708. */
  36709. private _loopKey:any;
  36710. /**
  36711. * 缩放动画播放的速度。
  36712. */
  36713. scale:number;
  36714. private _frameRate:any;
  36715. private _frameIndex:any;
  36716. private _total:any;
  36717. /**
  36718. * 控制一个对象,从当前点移动到目标点。
  36719. * @param target 要控制的对象。
  36720. * @param props 要控制对象的属性。
  36721. * @param duration 对象TWEEN的时间。
  36722. * @param ease 缓动类型
  36723. * @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)。
  36724. */
  36725. static to(target:any,props:any,duration:number,ease?:Function,offset?:number):TimeLine;
  36726. /**
  36727. * 从 props 属性,缓动到当前状态。
  36728. * @param target target 目标对象(即将更改属性值的对象)
  36729. * @param props 要控制对象的属性
  36730. * @param duration 对象TWEEN的时间
  36731. * @param ease 缓动类型
  36732. * @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)
  36733. */
  36734. static from(target:any,props:any,duration:number,ease?:Function,offset?:number):TimeLine;
  36735. /**
  36736. * 控制一个对象,从当前点移动到目标点。
  36737. * @param target 要控制的对象。
  36738. * @param props 要控制对象的属性。
  36739. * @param duration 对象TWEEN的时间。
  36740. * @param ease 缓动类型
  36741. * @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)。
  36742. */
  36743. to(target:any,props:any,duration:number,ease?:Function,offset?:number):TimeLine;
  36744. /**
  36745. * 从 props 属性,缓动到当前状态。
  36746. * @param target target 目标对象(即将更改属性值的对象)
  36747. * @param props 要控制对象的属性
  36748. * @param duration 对象TWEEN的时间
  36749. * @param ease 缓动类型
  36750. * @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)
  36751. */
  36752. from(target:any,props:any,duration:number,ease?:Function,offset?:number):TimeLine;
  36753. /**
  36754. * @private
  36755. */
  36756. private _create:any;
  36757. /**
  36758. * 在时间队列中加入一个标签。
  36759. * @param label 标签名称。
  36760. * @param offset 标签相对于上个动画的偏移时间(单位:毫秒)。
  36761. */
  36762. addLabel(label:string,offset:number):TimeLine;
  36763. /**
  36764. * 移除指定的标签
  36765. * @param label
  36766. */
  36767. removeLabel(label:string):void;
  36768. /**
  36769. * 动画从整个动画的某一时间开始。
  36770. * @param time (单位:毫秒)。
  36771. */
  36772. gotoTime(time:number):void;
  36773. /**
  36774. * 从指定的标签开始播。
  36775. * @param Label 标签名。
  36776. */
  36777. gotoLabel(Label:string):void;
  36778. /**
  36779. * 暂停整个动画。
  36780. */
  36781. pause():void;
  36782. /**
  36783. * 恢复暂停动画的播放。
  36784. */
  36785. resume():void;
  36786. /**
  36787. * 播放动画。
  36788. * @param timeOrLabel 开启播放的时间点或标签名。
  36789. * @param loop 是否循环播放。
  36790. */
  36791. play(timeOrLabel?:any,loop?:boolean):void;
  36792. /**
  36793. * 更新当前动画。
  36794. */
  36795. private _update:any;
  36796. /**
  36797. * 指定的动画索引处的动画播放完成后,把此动画从列表中删除。
  36798. * @param index
  36799. */
  36800. private _animComplete:any;
  36801. /**
  36802. * @private
  36803. */
  36804. private _complete:any;
  36805. /**
  36806. * @private 得到帧索引
  36807. */
  36808. get index():number;
  36809. /**
  36810. * @private 设置帧索引
  36811. */
  36812. set index(value:number);
  36813. /**
  36814. * 得到总帧数。
  36815. */
  36816. get total():number;
  36817. /**
  36818. * 重置所有对象,复用对象的时候使用。
  36819. */
  36820. reset():void;
  36821. /**
  36822. * 彻底销毁此对象。
  36823. */
  36824. destroy():void;
  36825. }
  36826. }
  36827. declare module laya.utils {
  36828. /**
  36829. * <code>Timer</code> 是时钟管理类。它是一个单例,不要手动实例化此类,应该通过 Laya.timer 访问。
  36830. */
  36831. class Timer {
  36832. /**
  36833. * @private
  36834. */
  36835. static gSysTimer:Timer;
  36836. /**
  36837. * @private
  36838. */
  36839. private static _pool:any;
  36840. /**
  36841. * @private
  36842. */
  36843. static _mid:number;
  36844. /**
  36845. * 时针缩放。
  36846. */
  36847. scale:number;
  36848. /**
  36849. * 当前帧开始的时间。
  36850. */
  36851. currTimer:number;
  36852. /**
  36853. * 当前的帧数。
  36854. */
  36855. currFrame:number;
  36856. /**
  36857. * @private
  36858. */
  36859. private _map:any;
  36860. /**
  36861. * @private
  36862. */
  36863. private _handlers:any;
  36864. /**
  36865. * @private
  36866. */
  36867. private _temp:any;
  36868. /**
  36869. * @private
  36870. */
  36871. private _count:any;
  36872. /**
  36873. * 创建 <code>Timer</code> 类的一个实例。
  36874. */
  36875. constructor(autoActive?:boolean);
  36876. /**
  36877. * 两帧之间的时间间隔,单位毫秒。
  36878. */
  36879. get delta():number;
  36880. /**
  36881. * @private
  36882. */
  36883. private _clearHandlers:any;
  36884. /**
  36885. * @private
  36886. */
  36887. private _recoverHandler:any;
  36888. /**
  36889. * @private
  36890. */
  36891. private _indexHandler:any;
  36892. /**
  36893. * 定时执行一次。
  36894. * @param delay 延迟时间(单位为毫秒)。
  36895. * @param caller 执行域(this)。
  36896. * @param method 定时器回调函数。
  36897. * @param args 回调参数。
  36898. * @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
  36899. */
  36900. once(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  36901. /**
  36902. * 定时重复执行。
  36903. * @param delay 间隔时间(单位毫秒)。
  36904. * @param caller 执行域(this)。
  36905. * @param method 定时器回调函数。
  36906. * @param args 回调参数。
  36907. * @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
  36908. * @param jumpFrame 时钟是否跳帧。基于时间的循环回调,单位时间间隔内,如能执行多次回调,出于性能考虑,引擎默认只执行一次,设置jumpFrame=true后,则回调会连续执行多次
  36909. */
  36910. loop(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean,jumpFrame?:boolean):void;
  36911. /**
  36912. * 定时执行一次(基于帧率)。
  36913. * @param delay 延迟几帧(单位为帧)。
  36914. * @param caller 执行域(this)。
  36915. * @param method 定时器回调函数。
  36916. * @param args 回调参数。
  36917. * @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
  36918. */
  36919. frameOnce(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  36920. /**
  36921. * 定时重复执行(基于帧率)。
  36922. * @param delay 间隔几帧(单位为帧)。
  36923. * @param caller 执行域(this)。
  36924. * @param method 定时器回调函数。
  36925. * @param args 回调参数。
  36926. * @param coverBefore 是否覆盖之前的延迟执行,默认为 true 。
  36927. */
  36928. frameLoop(delay:number,caller:any,method:Function,args?:any[],coverBefore?:boolean):void;
  36929. /**
  36930. * 返回统计信息。
  36931. */
  36932. toString():string;
  36933. /**
  36934. * 清理定时器。
  36935. * @param caller 执行域(this)。
  36936. * @param method 定时器回调函数。
  36937. */
  36938. clear(caller:any,method:Function):void;
  36939. /**
  36940. * 清理对象身上的所有定时器。
  36941. * @param caller 执行域(this)。
  36942. */
  36943. clearAll(caller:any):void;
  36944. /**
  36945. * @private
  36946. */
  36947. private _getHandler:any;
  36948. /**
  36949. * 延迟执行。
  36950. * @param caller 执行域(this)。
  36951. * @param method 定时器回调函数。
  36952. * @param args 回调参数。
  36953. */
  36954. callLater(caller:any,method:Function,args?:any[]):void;
  36955. /**
  36956. * 立即执行 callLater 。
  36957. * @param caller 执行域(this)。
  36958. * @param method 定时器回调函数。
  36959. */
  36960. runCallLater(caller:any,method:Function):void;
  36961. /**
  36962. * 立即提前执行定时器,执行之后从队列中删除
  36963. * @param caller 执行域(this)。
  36964. * @param method 定时器回调函数。
  36965. */
  36966. runTimer(caller:any,method:Function):void;
  36967. /**
  36968. * 暂停时钟
  36969. */
  36970. pause():void;
  36971. /**
  36972. * 恢复时钟
  36973. */
  36974. resume():void;
  36975. }
  36976. }
  36977. declare module laya.utils {
  36978. /**
  36979. * <code>Tween</code> 是一个缓动类。使用此类能够实现对目标对象属性的渐变。
  36980. */
  36981. class Tween {
  36982. /**
  36983. * @private
  36984. */
  36985. private static tweenMap:any;
  36986. /**
  36987. * @private
  36988. */
  36989. private _complete:any;
  36990. /**
  36991. * @private
  36992. */
  36993. private _target:any;
  36994. /**
  36995. * @private
  36996. */
  36997. private _ease:any;
  36998. /**
  36999. * @private
  37000. */
  37001. private _props:any;
  37002. /**
  37003. * @private
  37004. */
  37005. private _duration:any;
  37006. /**
  37007. * @private
  37008. */
  37009. private _delay:any;
  37010. /**
  37011. * @private
  37012. */
  37013. private _startTimer:any;
  37014. /**
  37015. * @private
  37016. */
  37017. private _usedTimer:any;
  37018. /**
  37019. * @private
  37020. */
  37021. private _usedPool:any;
  37022. /**
  37023. * @private
  37024. */
  37025. private _delayParam:any;
  37026. /**
  37027. * @private 唯一标识,TimeLintLite用到
  37028. */
  37029. gid:number;
  37030. /**
  37031. * 更新回调,缓动数值发生变化时,回调变化的值
  37032. */
  37033. update:laya.utils.Handler;
  37034. /**
  37035. * 重播次数,如果repeat=0,则表示无限循环播放
  37036. */
  37037. repeat:number;
  37038. /**
  37039. * 当前播放次数
  37040. */
  37041. private _count:any;
  37042. /**
  37043. * 缓动对象的props属性到目标值。
  37044. * @param target 目标对象(即将更改属性值的对象)。
  37045. * @param props 变化的属性列表,比如{x:100,y:20,ease:Ease.backOut,complete:Handler.create(this,onComplete),update:new Handler(this,onComplete)}。
  37046. * @param duration 花费的时间,单位毫秒。
  37047. * @param ease 缓动类型,默认为匀速运动。
  37048. * @param complete 结束回调函数。
  37049. * @param delay 延迟执行时间。
  37050. * @param coverBefore 是否覆盖之前的缓动。
  37051. * @param autoRecover 是否自动回收,默认为true,缓动结束之后自动回收到对象池。
  37052. * @return 返回Tween对象。
  37053. */
  37054. static to(target:any,props:any,duration:number,ease?:Function,complete?:laya.utils.Handler,delay?:number,coverBefore?:boolean,autoRecover?:boolean):Tween;
  37055. /**
  37056. * 从props属性,缓动到当前状态。
  37057. * @param target 目标对象(即将更改属性值的对象)。
  37058. * @param props 变化的属性列表,比如{x:100,y:20,ease:Ease.backOut,complete:Handler.create(this,onComplete),update:new Handler(this,onComplete)}。
  37059. * @param duration 花费的时间,单位毫秒。
  37060. * @param ease 缓动类型,默认为匀速运动。
  37061. * @param complete 结束回调函数。
  37062. * @param delay 延迟执行时间。
  37063. * @param coverBefore 是否覆盖之前的缓动。
  37064. * @param autoRecover 是否自动回收,默认为true,缓动结束之后自动回收到对象池。
  37065. * @return 返回Tween对象。
  37066. */
  37067. static from(target:any,props:any,duration:number,ease?:Function,complete?:laya.utils.Handler,delay?:number,coverBefore?:boolean,autoRecover?:boolean):Tween;
  37068. /**
  37069. * 缓动对象的props属性到目标值。
  37070. * @param target 目标对象(即将更改属性值的对象)。
  37071. * @param props 变化的属性列表,比如{x:100,y:20,ease:Ease.backOut,complete:Handler.create(this,onComplete),update:new Handler(this,onComplete)}。
  37072. * @param duration 花费的时间,单位毫秒。
  37073. * @param ease 缓动类型,默认为匀速运动。
  37074. * @param complete 结束回调函数。
  37075. * @param delay 延迟执行时间。
  37076. * @param coverBefore 是否覆盖之前的缓动。
  37077. * @return 返回Tween对象。
  37078. */
  37079. to(target:any,props:any,duration:number,ease?:Function,complete?:laya.utils.Handler,delay?:number,coverBefore?:boolean):Tween;
  37080. /**
  37081. * 从props属性,缓动到当前状态。
  37082. * @param target 目标对象(即将更改属性值的对象)。
  37083. * @param props 变化的属性列表,比如{x:100,y:20,ease:Ease.backOut,complete:Handler.create(this,onComplete),update:new Handler(this,onComplete)}。
  37084. * @param duration 花费的时间,单位毫秒。
  37085. * @param ease 缓动类型,默认为匀速运动。
  37086. * @param complete 结束回调函数。
  37087. * @param delay 延迟执行时间。
  37088. * @param coverBefore 是否覆盖之前的缓动。
  37089. * @return 返回Tween对象。
  37090. */
  37091. from(target:any,props:any,duration:number,ease?:Function,complete?:laya.utils.Handler,delay?:number,coverBefore?:boolean):Tween;
  37092. private firstStart:any;
  37093. private _initProps:any;
  37094. private _beginLoop:any;
  37095. /**
  37096. * 执行缓动*
  37097. */
  37098. private _doEase:any;
  37099. /**
  37100. * 设置当前执行比例*
  37101. */
  37102. set progress(v:number);
  37103. /**
  37104. * 立即结束缓动并到终点。
  37105. */
  37106. complete():void;
  37107. /**
  37108. * 暂停缓动,可以通过resume或restart重新开始。
  37109. */
  37110. pause():void;
  37111. /**
  37112. * 设置开始时间。
  37113. * @param startTime 开始时间。
  37114. */
  37115. setStartTime(startTime:number):void;
  37116. /**
  37117. * 清理指定目标对象上的所有缓动。
  37118. * @param target 目标对象。
  37119. */
  37120. static clearAll(target:any):void;
  37121. /**
  37122. * 清理某个缓动。
  37123. * @param tween 缓动对象。
  37124. */
  37125. static clear(tween:Tween):void;
  37126. /**
  37127. * @private 同clearAll,废弃掉,尽量别用。
  37128. */
  37129. static clearTween(target:any):void;
  37130. /**
  37131. * 停止并清理当前缓动。
  37132. */
  37133. clear():void;
  37134. /**
  37135. * 回收到对象池。
  37136. */
  37137. recover():void;
  37138. private _remove:any;
  37139. /**
  37140. * 重新开始暂停的缓动。
  37141. */
  37142. restart():void;
  37143. /**
  37144. * 恢复暂停的缓动。
  37145. */
  37146. resume():void;
  37147. private static easeNone:any;
  37148. }
  37149. }
  37150. declare module laya.utils {
  37151. /**
  37152. * <code>Utils</code> 是工具类。
  37153. */
  37154. class Utils {
  37155. /**
  37156. * @private
  37157. */
  37158. static gStage:laya.display.Stage;
  37159. /**
  37160. * @private
  37161. */
  37162. private static _gid:any;
  37163. /**
  37164. * @private
  37165. */
  37166. private static _pi:any;
  37167. /**
  37168. * @private
  37169. */
  37170. private static _pi2:any;
  37171. /**
  37172. * @private
  37173. */
  37174. protected static _extReg:RegExp;
  37175. /**
  37176. * 角度转弧度。
  37177. * @param angle 角度值。
  37178. * @return 返回弧度值。
  37179. */
  37180. static toRadian(angle:number):number;
  37181. /**
  37182. * 弧度转换为角度。
  37183. * @param radian 弧度值。
  37184. * @return 返回角度值。
  37185. */
  37186. static toAngle(radian:number):number;
  37187. /**
  37188. * 将传入的 uint 类型颜色值转换为字符串型颜色值。
  37189. * @param color 颜色值。
  37190. * @return 字符串型颜色值。
  37191. */
  37192. static toHexColor(color:number):string;
  37193. /**
  37194. * 获取一个全局唯一ID。
  37195. */
  37196. static getGID():number;
  37197. /**
  37198. * 将字符串解析成 XML 对象。
  37199. * @param value 需要解析的字符串。
  37200. * @return js原生的XML对象。
  37201. */
  37202. static parseXMLFromString:Function;
  37203. /**
  37204. * @private <p>连接数组。和array的concat相比,此方法不创建新对象</p>
  37205. <b>注意:</b>若 参数 a 不为空,则会改变参数 source 的值为连接后的数组。
  37206. * @param source 待连接的数组目标对象。
  37207. * @param array 待连接的数组对象。
  37208. * @return 连接后的数组。
  37209. */
  37210. static concatArray(source:any[],array:any[]):any[];
  37211. /**
  37212. * @private 清空数组对象。
  37213. * @param array 数组。
  37214. * @return 清空后的 array 对象。
  37215. */
  37216. static clearArray(array:any[]):any[];
  37217. /**
  37218. * @private 清空source数组,复制array数组的值。
  37219. * @param source 需要赋值的数组。
  37220. * @param array 新的数组值。
  37221. * @return 复制后的数据 source 。
  37222. */
  37223. static copyArray(source:any[],array:any[]):any[];
  37224. /**
  37225. * @private 根据传入的显示对象 <code>Sprite</code> 和此显示对象上的 两个点,返回此对象上的两个点在舞台坐标系上组成的最小的矩形区域对象。
  37226. * @param sprite 显示对象 <code>Sprite</code>。
  37227. * @param x0 点一的 X 轴坐标点。
  37228. * @param y0 点一的 Y 轴坐标点。
  37229. * @param x1 点二的 X 轴坐标点。
  37230. * @param y1 点二的 Y 轴坐标点。
  37231. * @return 两个点在舞台坐标系组成的矩形对象 <code>Rectangle</code>。
  37232. */
  37233. static getGlobalRecByPoints(sprite:laya.display.Sprite,x0:number,y0:number,x1:number,y1:number):laya.maths.Rectangle;
  37234. /**
  37235. * 计算传入的显示对象 <code>Sprite</code> 的全局坐标系的坐标和缩放值,返回 <code>Rectangle</code> 对象存放计算出的坐标X值、Y值、ScaleX值、ScaleY值。
  37236. * @param sprite <code>Sprite</code> 对象。
  37237. * @return 矩形对象 <code>Rectangle</code>
  37238. */
  37239. static getGlobalPosAndScale(sprite:laya.display.Sprite):laya.maths.Rectangle;
  37240. /**
  37241. * 给传入的函数绑定作用域,返回绑定后的函数。
  37242. * @param fun 函数对象。
  37243. * @param scope 函数作用域。
  37244. * @return 绑定后的函数。
  37245. */
  37246. static bind(fun:Function,scope:any):Function;
  37247. /**
  37248. * @private 对传入的数组列表,根据子项的属性 Z 值进行重新排序。返回是否已重新排序的 Boolean 值。
  37249. * @param array 子对象数组。
  37250. * @return Boolean 值,表示是否已重新排序。
  37251. */
  37252. static updateOrder(array:any[]):boolean;
  37253. /**
  37254. * @private 批量移动点坐标。
  37255. * @param points 坐标列表。
  37256. * @param x x轴偏移量。
  37257. * @param y y轴偏移量。
  37258. */
  37259. static transPointList(points:any[],x:number,y:number):void;
  37260. /**
  37261. * 解析一个字符串,并返回一个整数。和JS原生的parseInt不同:如果str为空或者非数字,原生返回NaN,这里返回0。
  37262. * @param str 要被解析的字符串。
  37263. * @param radix 表示要解析的数字的基数。默认值为0,表示10进制,其他值介于 2 ~ 36 之间。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数不在上述范围内,则此方法返回 0。
  37264. * @return 返回解析后的数字。
  37265. */
  37266. static parseInt(str:string,radix?:number):number;
  37267. /**
  37268. * @private
  37269. */
  37270. static getFileExtension(path:string):string;
  37271. /**
  37272. * @private 为兼容平台后缀名不能用的特殊兼容TODO:
  37273. */
  37274. static getFilecompatibleExtension(path:string):string;
  37275. /**
  37276. * 获取指定区域内相对于窗口左上角的transform。
  37277. * @param coordinateSpace 坐标空间,不能是Stage引用
  37278. * @param x 相对于coordinateSpace的x坐标
  37279. * @param y 相对于coordinateSpace的y坐标
  37280. * @return
  37281. */
  37282. static getTransformRelativeToWindow(coordinateSpace:laya.display.Sprite,x:number,y:number):any;
  37283. /**
  37284. * 使DOM元素使用舞台内的某块区域内。
  37285. * @param dom DOM元素引用
  37286. * @param coordinateSpace 坐标空间,不能是Stage引用
  37287. * @param x 相对于coordinateSpace的x坐标
  37288. * @param y 相对于coordinateSpace的y坐标
  37289. * @param width 宽度
  37290. * @param height 高度
  37291. */
  37292. static fitDOMElementInArea(dom:any,coordinateSpace:laya.display.Sprite,x:number,y:number,width:number,height:number):void;
  37293. /**
  37294. * @private 是否是可用的Texture数组
  37295. * @param textureList
  37296. * @return
  37297. */
  37298. static isOkTextureList(textureList:any[]):boolean;
  37299. /**
  37300. * @private 是否是可用的绘图指令数组
  37301. * @param cmds
  37302. * @return
  37303. */
  37304. static isOKCmdList(cmds:any[]):boolean;
  37305. /**
  37306. * 获得URL参数值
  37307. * @param name 参数名称
  37308. * @return 参数值
  37309. */
  37310. static getQueryString(name:string):string;
  37311. }
  37312. }
  37313. declare module laya.utils {
  37314. /**
  37315. * @private TODO:
  37316. */
  37317. class VectorGraphManager {
  37318. static instance:VectorGraphManager;
  37319. useDic:any;
  37320. shapeDic:any;
  37321. shapeLineDic:any;
  37322. private _id:any;
  37323. private _checkKey:any;
  37324. private _freeIdArray:any;
  37325. constructor();
  37326. static getInstance():VectorGraphManager;
  37327. /**
  37328. * 得到个空闲的ID
  37329. * @return
  37330. */
  37331. getId():number;
  37332. /**
  37333. * 添加一个图形到列表中
  37334. * @param id
  37335. * @param shape
  37336. */
  37337. addShape(id:number,shape:any):void;
  37338. /**
  37339. * 添加一个线图形到列表中
  37340. * @param id
  37341. * @param Line
  37342. */
  37343. addLine(id:number,Line:any):void;
  37344. /**
  37345. * 检测一个对象是否在使用中
  37346. * @param id
  37347. */
  37348. getShape(id:number):void;
  37349. /**
  37350. * 删除一个图形对象
  37351. * @param id
  37352. */
  37353. deleteShape(id:number):void;
  37354. /**
  37355. * 得到缓存列表
  37356. * @return
  37357. */
  37358. getCacheList():any[];
  37359. /**
  37360. * 开始清理状态,准备销毁
  37361. */
  37362. startDispose(key:boolean):void;
  37363. /**
  37364. * 确认销毁
  37365. */
  37366. endDispose():void;
  37367. }
  37368. }
  37369. declare module laya.utils {
  37370. /**
  37371. * 封装弱引用WeakMap
  37372. * 如果支持WeakMap,则使用WeakMap,如果不支持,则用Object代替
  37373. * 注意:如果采用Object,为了防止内存泄漏,则采用定时清理缓存策略
  37374. *
  37375. * 这里的设计是错误的,为了兼容,先不删掉这个类,直接采用Object
  37376. */
  37377. class WeakObject {
  37378. /**
  37379. * 是否支持WeakMap
  37380. */
  37381. static supportWeakMap:boolean;
  37382. /**
  37383. * 如果不支持WeakMap,则多少时间清理一次缓存,默认10分钟清理一次
  37384. */
  37385. static delInterval:number;
  37386. /**
  37387. * 全局WeakObject单例
  37388. */
  37389. static I:WeakObject;
  37390. /**
  37391. * @private
  37392. */
  37393. private static _maps:any;
  37394. /**
  37395. * 清理缓存,回收内存
  37396. */
  37397. static clearCache():void;
  37398. constructor();
  37399. /**
  37400. * 设置缓存
  37401. * @param key kye对象,可被回收
  37402. * @param value object对象,可被回收
  37403. */
  37404. set(key:any,value:any):void;
  37405. /**
  37406. * 获取缓存
  37407. * @param key kye对象,可被回收
  37408. */
  37409. get(key:any):any;
  37410. /**
  37411. * 删除缓存
  37412. */
  37413. del(key:any):void;
  37414. /**
  37415. * 是否有缓存
  37416. */
  37417. has(key:any):boolean;
  37418. }
  37419. }
  37420. declare module laya.utils {
  37421. /**
  37422. * @private
  37423. */
  37424. class WordText {
  37425. id:number;
  37426. save:any[];
  37427. toUpperCase:string;
  37428. changed:boolean;
  37429. width:number;
  37430. pageChars:any[];
  37431. startID:number;
  37432. startIDStroke:number;
  37433. lastGCCnt:number;
  37434. splitRender:boolean;
  37435. scalex:number;
  37436. scaley:number;
  37437. setText(txt:string):void;
  37438. toString():string;
  37439. get length():number;
  37440. charCodeAt(i:number):number;
  37441. charAt(i:number):string;
  37442. /**
  37443. * 自己主动清理缓存,需要把关联的贴图删掉
  37444. * 不做也可以,textrender会自动清理不用的
  37445. * TODO 重用
  37446. */
  37447. cleanCache():void;
  37448. }
  37449. }
  37450. declare module laya.webgl {
  37451. /**
  37452. * ...
  37453. * @author ...
  37454. */
  37455. class BufferState2D extends laya.webgl.BufferStateBase {
  37456. constructor();
  37457. }
  37458. }
  37459. declare module laya.webgl {
  37460. /**
  37461. * ...
  37462. * @author ...
  37463. */
  37464. class BufferStateBase {
  37465. /**
  37466. * @private [只读]
  37467. */
  37468. private _nativeVertexArrayObject:any;
  37469. constructor();
  37470. /**
  37471. * @private
  37472. */
  37473. bind():void;
  37474. /**
  37475. * @private
  37476. */
  37477. unBind():void;
  37478. /**
  37479. * @private
  37480. */
  37481. destroy():void;
  37482. /**
  37483. * @private
  37484. */
  37485. bindForNative():void;
  37486. /**
  37487. * @private
  37488. */
  37489. unBindForNative():void;
  37490. }
  37491. }
  37492. declare module laya.webgl.canvas {
  37493. class BlendMode {
  37494. static activeBlendFunction:Function;
  37495. static NAMES:any[];
  37496. static TOINT:any;
  37497. static NORMAL:string;
  37498. static ADD:string;
  37499. static MULTIPLY:string;
  37500. static SCREEN:string;
  37501. static OVERLAY:string;
  37502. static LIGHT:string;
  37503. static MASK:string;
  37504. static DESTINATIONOUT:string;
  37505. static LIGHTER:string;
  37506. static fns:any[];
  37507. static targetFns:any[];
  37508. static BlendNormal(gl:WebGLRenderingContext):void;
  37509. static BlendAdd(gl:WebGLRenderingContext):void;
  37510. static BlendMultiply(gl:WebGLRenderingContext):void;
  37511. static BlendScreen(gl:WebGLRenderingContext):void;
  37512. static BlendOverlay(gl:WebGLRenderingContext):void;
  37513. static BlendLight(gl:WebGLRenderingContext):void;
  37514. static BlendNormalTarget(gl:WebGLRenderingContext):void;
  37515. static BlendAddTarget(gl:WebGLRenderingContext):void;
  37516. static BlendMultiplyTarget(gl:WebGLRenderingContext):void;
  37517. static BlendScreenTarget(gl:WebGLRenderingContext):void;
  37518. static BlendOverlayTarget(gl:WebGLRenderingContext):void;
  37519. static BlendLightTarget(gl:WebGLRenderingContext):void;
  37520. static BlendMask(gl:WebGLRenderingContext):void;
  37521. static BlendDestinationOut(gl:WebGLRenderingContext):void;
  37522. }
  37523. }
  37524. declare module laya.webgl.canvas {
  37525. class DrawStyle {
  37526. static DEFAULT:DrawStyle;
  37527. _color:laya.utils.ColorUtils;
  37528. static create(value:any):DrawStyle;
  37529. constructor(value:any);
  37530. setValue(value:any):void;
  37531. reset():void;
  37532. toInt():number;
  37533. equal(value:any):boolean;
  37534. toColorStr():string;
  37535. }
  37536. }
  37537. declare module laya.webgl.canvas {
  37538. class Path {
  37539. paths:any[];
  37540. private _curPath:any;
  37541. constructor();
  37542. beginPath(convex:boolean):void;
  37543. closePath():void;
  37544. newPath():void;
  37545. addPoint(pointX:number,pointY:number):void;
  37546. push(points:any[],convex:boolean):void;
  37547. reset():void;
  37548. }
  37549. }
  37550. declare module laya.webgl.canvas.save {
  37551. interface ISaveData{
  37552. isSaveMark():boolean;
  37553. restore(context:laya.resource.Context):void;
  37554. }
  37555. }
  37556. declare module laya.webgl.canvas.save {
  37557. class SaveBase implements laya.webgl.canvas.save.ISaveData {
  37558. static TYPE_ALPHA:number;
  37559. static TYPE_FILESTYLE:number;
  37560. static TYPE_FONT:number;
  37561. static TYPE_LINEWIDTH:number;
  37562. static TYPE_STROKESTYLE:number;
  37563. static TYPE_MARK:number;
  37564. static TYPE_TRANSFORM:number;
  37565. static TYPE_TRANSLATE:number;
  37566. static TYPE_ENABLEMERGE:number;
  37567. static TYPE_TEXTBASELINE:number;
  37568. static TYPE_TEXTALIGN:number;
  37569. static TYPE_GLOBALCOMPOSITEOPERATION:number;
  37570. static TYPE_CLIPRECT:number;
  37571. static TYPE_CLIPRECT_STENCIL:number;
  37572. static TYPE_IBVB:number;
  37573. static TYPE_SHADER:number;
  37574. static TYPE_FILTERS:number;
  37575. static TYPE_FILTERS_TYPE:number;
  37576. static TYPE_COLORFILTER:number;
  37577. private static POOL:any;
  37578. private static _namemap:any;
  37579. private _valueName:any;
  37580. private _value:any;
  37581. private _dataObj:any;
  37582. private _newSubmit:any;
  37583. constructor();
  37584. isSaveMark():boolean;
  37585. restore(context:laya.resource.Context):void;
  37586. static save(context:laya.resource.Context,type:number,dataObj:any,newSubmit:boolean):void;
  37587. }
  37588. }
  37589. declare module laya.webgl.canvas.save {
  37590. class SaveClipRect implements laya.webgl.canvas.save.ISaveData {
  37591. private static POOL:any;
  37592. private _globalClipMatrix:any;
  37593. private _clipInfoID:any;
  37594. incache:boolean;
  37595. isSaveMark():boolean;
  37596. restore(context:laya.resource.Context):void;
  37597. static save(context:laya.resource.Context):void;
  37598. }
  37599. }
  37600. declare module laya.webgl.canvas.save {
  37601. class SaveMark implements laya.webgl.canvas.save.ISaveData {
  37602. private static POOL:any;
  37603. constructor();
  37604. isSaveMark():boolean;
  37605. restore(context:laya.resource.Context):void;
  37606. static Create(context:laya.resource.Context):SaveMark;
  37607. }
  37608. }
  37609. declare module laya.webgl.canvas.save {
  37610. class SaveTransform implements laya.webgl.canvas.save.ISaveData {
  37611. private static POOL:any;
  37612. constructor();
  37613. isSaveMark():boolean;
  37614. restore(context:laya.resource.Context):void;
  37615. static save(context:laya.resource.Context):void;
  37616. }
  37617. }
  37618. declare module laya.webgl.canvas.save {
  37619. class SaveTranslate implements laya.webgl.canvas.save.ISaveData {
  37620. private static POOL:any;
  37621. isSaveMark():boolean;
  37622. restore(context:laya.resource.Context):void;
  37623. static save(context:laya.resource.Context):void;
  37624. }
  37625. }
  37626. declare module laya.webgl.canvas {
  37627. /**
  37628. * 对象 cacheas normal的时候,本质上只是想把submit缓存起来,以后直接执行
  37629. * 为了避免各种各样的麻烦,这里采用复制相应部分的submit的方法。执行环境还是在原来的context中
  37630. * 否则包括clip等都非常难以处理
  37631. */
  37632. class WebGLCacheAsNormalCanvas {
  37633. submitStartPos:number;
  37634. submitEndPos:number;
  37635. context:laya.resource.Context;
  37636. touches:any[];
  37637. submits:any[];
  37638. sprite:laya.display.Sprite|null;
  37639. private _pathMesh:any;
  37640. private _triangleMesh:any;
  37641. meshlist:any[];
  37642. private _oldMesh:any;
  37643. private _oldPathMesh:any;
  37644. private _oldTriMesh:any;
  37645. private _oldMeshList:any;
  37646. private cachedClipInfo:any;
  37647. private oldTx:any;
  37648. private oldTy:any;
  37649. private static matI:any;
  37650. invMat:laya.maths.Matrix;
  37651. constructor(ctx:laya.resource.Context,sp:laya.display.Sprite);
  37652. startRec():void;
  37653. endRec():void;
  37654. /**
  37655. * 当前缓存是否还有效。例如clip变了就失效了,因为clip太难自动处理
  37656. * @return
  37657. */
  37658. isCacheValid():boolean;
  37659. flushsubmit():void;
  37660. releaseMem():void;
  37661. }
  37662. }
  37663. declare module laya.webgl.shader {
  37664. /**
  37665. * ...
  37666. * @author ...
  37667. */
  37668. class BaseShader extends laya.resource.Resource {
  37669. static activeShader:BaseShader|null;
  37670. static bindShader:BaseShader;
  37671. constructor();
  37672. }
  37673. }
  37674. declare module laya.webgl.shader.d2 {
  37675. class Shader2D {
  37676. ALPHA:number;
  37677. shader:laya.webgl.shader.Shader;
  37678. filters:any[];
  37679. defines:laya.webgl.shader.d2.ShaderDefines2D;
  37680. shaderType:number;
  37681. colorAdd:any[];
  37682. fillStyle:laya.webgl.canvas.DrawStyle;
  37683. strokeStyle:laya.webgl.canvas.DrawStyle;
  37684. destroy():void;
  37685. static __init__():void;
  37686. }
  37687. }
  37688. declare module laya.webgl.shader.d2 {
  37689. class Shader2X extends laya.webgl.shader.Shader {
  37690. _params2dQuick2:any[]|null;
  37691. _shaderValueWidth:number;
  37692. _shaderValueHeight:number;
  37693. constructor(vs:string,ps:string,saveName?:any,nameMap?:any,bindAttrib?:any[]|null);
  37694. /**
  37695. * @override
  37696. */
  37697. protected _disposeResource():void;
  37698. upload2dQuick2(shaderValue:laya.webgl.shader.ShaderValue):void;
  37699. _make2dQuick2():any[];
  37700. static create(vs:string,ps:string,saveName?:any,nameMap?:any,bindAttrib?:any[]|null):laya.webgl.shader.Shader;
  37701. }
  37702. }
  37703. declare module laya.webgl.shader.d2 {
  37704. class ShaderDefines2D extends laya.webgl.shader.ShaderDefinesBase {
  37705. static TEXTURE2D:number;
  37706. static PRIMITIVE:number;
  37707. static FILTERGLOW:number;
  37708. static FILTERBLUR:number;
  37709. static FILTERCOLOR:number;
  37710. static COLORADD:number;
  37711. static WORLDMAT:number;
  37712. static FILLTEXTURE:number;
  37713. static SKINMESH:number;
  37714. static MVP3D:number;
  37715. static NOOPTMASK:number;
  37716. private static __name2int:any;
  37717. private static __int2name:any;
  37718. private static __int2nameMap:any;
  37719. static __init__():void;
  37720. constructor();
  37721. static reg(name:string,value:number):void;
  37722. static toText(value:number,int2name:any[],int2nameMap:any):any;
  37723. static toInt(names:string):number;
  37724. }
  37725. }
  37726. declare module laya.webgl.shader.d2.skinAnishader {
  37727. class SkinMeshBuffer {
  37728. ib:laya.webgl.utils.IndexBuffer2D;
  37729. vb:laya.webgl.utils.VertexBuffer2D;
  37730. static instance:SkinMeshBuffer;
  37731. constructor();
  37732. static getInstance():SkinMeshBuffer;
  37733. addSkinMesh(skinMesh:any):void;
  37734. reset():void;
  37735. }
  37736. }
  37737. declare module laya.webgl.shader.d2.skinAnishader {
  37738. class SkinSV extends laya.webgl.shader.d2.value.Value2D {
  37739. texcoord:any;
  37740. position:any;
  37741. offsetX:number;
  37742. offsetY:number;
  37743. constructor(type:any);
  37744. }
  37745. }
  37746. declare module laya.webgl.shader.d2.value {
  37747. class PrimitiveSV extends laya.webgl.shader.d2.value.Value2D {
  37748. constructor(args:any);
  37749. }
  37750. }
  37751. declare module laya.webgl.shader.d2.value {
  37752. class TextureSV extends laya.webgl.shader.d2.value.Value2D {
  37753. u_colorMatrix:any[];
  37754. strength:number;
  37755. blurInfo:any[];
  37756. colorMat:Float32Array;
  37757. colorAlpha:Float32Array;
  37758. constructor(subID?:number);
  37759. /**
  37760. * @override
  37761. */
  37762. clear():void;
  37763. }
  37764. }
  37765. declare module laya.webgl.shader.d2.value {
  37766. class Value2D {
  37767. protected static _cache:any[];
  37768. protected static _typeClass:any;
  37769. static TEMPMAT4_ARRAY:any[];
  37770. static _initone(type:number,classT:any):void;
  37771. static __init__():void;
  37772. defines:laya.webgl.shader.d2.ShaderDefines2D;
  37773. size:any[];
  37774. alpha:number;
  37775. mmat:any[];
  37776. u_MvpMatrix:any[];
  37777. texture:any;
  37778. ALPHA:number;
  37779. shader:laya.webgl.shader.Shader;
  37780. mainID:number;
  37781. subID:number;
  37782. filters:any[];
  37783. textureHost:laya.resource.Texture;
  37784. color:any[];
  37785. colorAdd:any[];
  37786. u_mmat2:any[];
  37787. ref:number;
  37788. protected _attribLocation:any[];
  37789. private _inClassCache:any;
  37790. private _cacheID:any;
  37791. clipMatDir:any[];
  37792. clipMatPos:any[];
  37793. clipOff:any[];
  37794. constructor(mainID:number,subID:number);
  37795. setValue(value:laya.webgl.shader.d2.Shader2D):void;
  37796. private _ShaderWithCompile:any;
  37797. upload():void;
  37798. setFilters(value:any[]):void;
  37799. clear():void;
  37800. release():void;
  37801. static create(mainType:number,subType:number):Value2D;
  37802. }
  37803. }
  37804. declare module laya.webgl.shader {
  37805. class Shader extends laya.webgl.shader.BaseShader {
  37806. private static _count:any;
  37807. private _attribInfo:any;
  37808. static SHADERNAME2ID:number;
  37809. static nameKey:laya.utils.StringKey;
  37810. static sharders:any[];
  37811. static getShader(name:any):Shader;
  37812. static create(vs:string,ps:string,saveName?:any,nameMap?:any,bindAttrib?:any[]):Shader;
  37813. /**
  37814. * 根据宏动态生成shader文件,支持#include?COLOR_FILTER "parts/ColorFilter_ps_logic.glsl";条件嵌入文件
  37815. * @param name
  37816. * @param vs
  37817. * @param ps
  37818. * @param define 宏定义,格式:{name:value...}
  37819. * @return
  37820. */
  37821. static withCompile(nameID:number,define:any,shaderName:any,createShader:Function):Shader;
  37822. /**
  37823. * 根据宏动态生成shader文件,支持#include?COLOR_FILTER "parts/ColorFilter_ps_logic.glsl";条件嵌入文件
  37824. * @param name
  37825. * @param vs
  37826. * @param ps
  37827. * @param define 宏定义,格式:{name:value...}
  37828. * @return
  37829. */
  37830. static withCompile2D(nameID:number,mainID:number,define:any,shaderName:any,createShader:Function,bindAttrib?:any[]):Shader;
  37831. static addInclude(fileName:string,txt:string):void;
  37832. /**
  37833. * 预编译shader文件,主要是处理宏定义
  37834. * @param nameID ,一般是特殊宏+shaderNameID*0.0002组成的一个浮点数当做唯一标识
  37835. * @param vs
  37836. * @param ps
  37837. */
  37838. static preCompile(nameID:number,vs:string,ps:string,nameMap:any):void;
  37839. /**
  37840. * 预编译shader文件,主要是处理宏定义
  37841. * @param nameID ,一般是特殊宏+shaderNameID*0.0002组成的一个浮点数当做唯一标识
  37842. * @param vs
  37843. * @param ps
  37844. */
  37845. static preCompile2D(nameID:number,mainID:number,vs:string,ps:string,nameMap:any):void;
  37846. private customCompile:any;
  37847. private _nameMap:any;
  37848. private _vs:any;
  37849. private _ps:any;
  37850. private _curActTexIndex:any;
  37851. private _reCompile:any;
  37852. tag:any;
  37853. /**
  37854. * 根据vs和ps信息生成shader对象
  37855. * 把自己存储在 sharders 数组中
  37856. * @param vs
  37857. * @param ps
  37858. * @param name :
  37859. * @param nameMap 帮助里要详细解释为什么需要nameMap
  37860. */
  37861. constructor(vs:string,ps:string,saveName?:any,nameMap?:any,bindAttrib?:any[]|null);
  37862. protected recreateResource():void;
  37863. /**
  37864. * @override
  37865. */
  37866. protected _disposeResource():void;
  37867. private _compile:any;
  37868. private static _createShader:any;
  37869. /**
  37870. * 根据变量名字获得
  37871. * @param name
  37872. * @return
  37873. */
  37874. getUniform(name:string):any;
  37875. private _uniform1f:any;
  37876. private _uniform1fv:any;
  37877. private _uniform_vec2:any;
  37878. private _uniform_vec2v:any;
  37879. private _uniform_vec3:any;
  37880. private _uniform_vec3v:any;
  37881. private _uniform_vec4:any;
  37882. private _uniform_vec4v:any;
  37883. private _uniformMatrix2fv:any;
  37884. private _uniformMatrix3fv:any;
  37885. private _uniformMatrix4fv:any;
  37886. private _uniform1i:any;
  37887. private _uniform1iv:any;
  37888. private _uniform_ivec2:any;
  37889. private _uniform_ivec2v:any;
  37890. private _uniform_vec3i:any;
  37891. private _uniform_vec3vi:any;
  37892. private _uniform_vec4i:any;
  37893. private _uniform_vec4vi:any;
  37894. private _uniform_sampler2D:any;
  37895. private _uniform_samplerCube:any;
  37896. private _noSetValue:any;
  37897. uploadOne(name:string,value:any):void;
  37898. uploadTexture2D(value:any):void;
  37899. /**
  37900. * 提交shader到GPU
  37901. * @param shaderValue
  37902. */
  37903. upload(shaderValue:laya.webgl.shader.ShaderValue,params?:any[]):void;
  37904. /**
  37905. * 按数组的定义提交
  37906. * @param shaderValue 数组格式[name,value,...]
  37907. */
  37908. uploadArray(shaderValue:any[],length:number,_bufferUsage:any):void;
  37909. /**
  37910. * 得到编译后的变量及相关预定义
  37911. * @return
  37912. */
  37913. getParams():any[];
  37914. /**
  37915. * 设置shader里面的attribute绑定到哪个location,必须与mesh2d的对应起来,
  37916. * 这个必须在编译之前设置。
  37917. * @param attribDesc 属性描述,格式是 [attributeName, location, attributeName, location ... ]
  37918. */
  37919. setAttributesLocation(attribDesc:any[]):void;
  37920. }
  37921. }
  37922. declare module laya.webgl.shader {
  37923. class ShaderDefinesBase {
  37924. private _name2int:any;
  37925. private _int2name:any;
  37926. private _int2nameMap:any;
  37927. constructor(name2int:any,int2name:any[],int2nameMap:any[]);
  37928. add(value:any):number;
  37929. addInt(value:number):number;
  37930. remove(value:any):number;
  37931. isDefine(def:number):boolean;
  37932. getValue():number;
  37933. setValue(value:number):void;
  37934. toNameDic():any;
  37935. static _reg(name:string,value:number,_name2int:any,_int2name:any[]):void;
  37936. static _toText(value:number,_int2name:any[],_int2nameMap:any):any;
  37937. static _toInt(names:string,_name2int:any):number;
  37938. }
  37939. }
  37940. declare module laya.webgl.shader {
  37941. class ShaderValue {
  37942. constructor();
  37943. }
  37944. }
  37945. declare module laya.webgl.shapes {
  37946. class BasePoly {
  37947. private static tempData:any;
  37948. /**
  37949. * 构造线的三角形数据。根据一个位置数组生成vb和ib
  37950. * @param p
  37951. * @param indices
  37952. * @param lineWidth
  37953. * @param indexBase 顶点开始的值,ib中的索引会加上这个
  37954. * @param outVertex
  37955. * @return
  37956. */
  37957. static createLine2(p:any[],indices:any[],lineWidth:number,indexBase:number,outVertex:any[],loop:boolean):any[];
  37958. /**
  37959. * 相邻的两段线,边界会相交,这些交点可以作为三角形的顶点。有两种可选,一种是采用左左,右右交点,一种是采用 左右,左右交点。当两段线夹角很小的时候,如果采用
  37960. * 左左,右右会产生很长很长的交点,这时候就要采用左右左右交点,相当于把尖角截断。
  37961. * 当采用左左右右交点的时候,直接用切线的垂线。采用左右左右的时候,用切线
  37962. * 切线直接采用两个方向的平均值。不能用3-1的方式,那样垂线和下一段可能都在同一方向(例如都在右方)
  37963. * 注意把重合的点去掉
  37964. * @param path
  37965. * @param color
  37966. * @param width
  37967. * @param loop
  37968. * @param outvb
  37969. * @param vbstride 顶点占用几个float,(bytelength/4)
  37970. * @param outib test:
  37971. 横线
  37972. [100,100, 400,100]
  37973. 竖线
  37974. [100,100, 100,400]
  37975. 直角
  37976. [100,100, 400,100, 400,400]
  37977. 重合点
  37978. [100,100,100,100,400,100]
  37979. 同一直线上的点
  37980. [100,100,100,200,100,3000]
  37981. 像老式电视的左边不封闭的图形
  37982. [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]
  37983. */
  37984. static createLineTriangle(path:any[],color:number,width:number,loop:boolean,outvb:Float32Array,vbstride:number,outib:Uint16Array):void;
  37985. }
  37986. }
  37987. declare module laya.webgl.shapes {
  37988. class Earcut {
  37989. static earcut(data:any,holeIndices:any,dim:any):any;
  37990. static linkedList(data:any,start:any,end:any,dim:any,clockwise:any):any;
  37991. static filterPoints(start:any,end:any):any;
  37992. static earcutLinked(ear:any,triangles:any,dim:any,minX:any,minY:any,invSize:any,pass?:any):any;
  37993. static isEar(ear:any):any;
  37994. static isEarHashed(ear:any,minX:any,minY:any,invSize:any):boolean;
  37995. static cureLocalIntersections(start:any,triangles:any,dim:any):any;
  37996. static splitEarcut(start:any,triangles:any,dim:any,minX:any,minY:any,invSize:any):void;
  37997. static eliminateHoles(data:any,holeIndices:any,outerNode:any,dim:any):any;
  37998. static compareX(a:any,b:any):any;
  37999. static eliminateHole(hole:any,outerNode:any):void;
  38000. static findHoleBridge(hole:any,outerNode:any):any;
  38001. static indexCurve(start:any,minX:any,minY:any,invSize:any):void;
  38002. static sortLinked(list:any):any;
  38003. static zOrder(x:any,y:any,minX:any,minY:any,invSize:any):any;
  38004. static getLeftmost(start:any):any;
  38005. static pointInTriangle(ax:any,ay:any,bx:any,by:any,cx:any,cy:any,px:any,py:any):boolean;
  38006. static isValidDiagonal(a:any,b:any):boolean;
  38007. static area(p:any,q:any,r:any):any;
  38008. static equals(p1:any,p2:any):boolean;
  38009. static intersects(p1:any,q1:any,p2:any,q2:any):boolean;
  38010. static intersectsPolygon(a:any,b:any):boolean;
  38011. static locallyInside(a:any,b:any):boolean;
  38012. static middleInside(a:any,b:any):boolean;
  38013. static splitPolygon(a:any,b:any):any;
  38014. static insertNode(i:any,x:any,y:any,last:any):any;
  38015. static removeNode(p:any):void;
  38016. static signedArea(data:any,start:any,end:any,dim:any):any;
  38017. }
  38018. }
  38019. declare module laya.webgl.shapes {
  38020. class EarcutNode {
  38021. i:any;
  38022. x:any;
  38023. y:any;
  38024. prev:any;
  38025. next:any;
  38026. z:any;
  38027. prevZ:any;
  38028. nextZ:any;
  38029. steiner:any;
  38030. constructor(i:any,x:any,y:any);
  38031. }
  38032. }
  38033. declare module laya.webgl.submit {
  38034. interface ISubmit{
  38035. renderSubmit():number;
  38036. getRenderType():number;
  38037. releaseRender():void;
  38038. }
  38039. }
  38040. declare module laya.webgl.submit {
  38041. class Submit extends laya.webgl.submit.SubmitBase {
  38042. protected static _poolSize:number;
  38043. protected static POOL:any[];
  38044. constructor(renderType?:number);
  38045. /**
  38046. * @override
  38047. */
  38048. renderSubmit():number;
  38049. /**
  38050. * @override
  38051. */
  38052. releaseRender():void;
  38053. static create(context:laya.resource.Context,mesh:laya.webgl.utils.Mesh2D,sv:laya.webgl.shader.d2.value.Value2D):Submit;
  38054. /**
  38055. * 创建一个矢量submit
  38056. * @param ctx
  38057. * @param mesh
  38058. * @param numEle 对应drawElement的第二个参数:count
  38059. * @param offset drawElement的时候的ib的偏移。
  38060. * @param sv Value2D
  38061. * @return
  38062. */
  38063. static createShape(ctx:laya.resource.Context,mesh:laya.webgl.utils.Mesh2D,numEle:number,sv:laya.webgl.shader.d2.value.Value2D):Submit;
  38064. }
  38065. }
  38066. declare module laya.webgl.submit {
  38067. class SubmitBase implements laya.webgl.submit.ISubmit {
  38068. static TYPE_2D:number;
  38069. static TYPE_CANVAS:number;
  38070. static TYPE_CMDSETRT:number;
  38071. static TYPE_CUSTOM:number;
  38072. static TYPE_BLURRT:number;
  38073. static TYPE_CMDDESTORYPRERT:number;
  38074. static TYPE_DISABLESTENCIL:number;
  38075. static TYPE_OTHERIBVB:number;
  38076. static TYPE_PRIMITIVE:number;
  38077. static TYPE_RT:number;
  38078. static TYPE_BLUR_RT:number;
  38079. static TYPE_TARGET:number;
  38080. static TYPE_CHANGE_VALUE:number;
  38081. static TYPE_SHAPE:number;
  38082. static TYPE_TEXTURE:number;
  38083. static TYPE_FILLTEXTURE:number;
  38084. static KEY_ONCE:number;
  38085. static KEY_FILLRECT:number;
  38086. static KEY_DRAWTEXTURE:number;
  38087. static KEY_VG:number;
  38088. static KEY_TRIANGLES:number;
  38089. static RENDERBASE:SubmitBase;
  38090. static ID:number;
  38091. static preRender:laya.webgl.submit.ISubmit;
  38092. clipInfoID:number;
  38093. protected _id:number;
  38094. shaderValue:laya.webgl.shader.d2.value.Value2D;
  38095. static __init__():void;
  38096. constructor(renderType?:number);
  38097. getID():number;
  38098. getRenderType():number;
  38099. toString():string;
  38100. renderSubmit():number;
  38101. releaseRender():void;
  38102. }
  38103. }
  38104. declare module laya.webgl.submit {
  38105. /**
  38106. * cache as normal 模式下的生成的canvas的渲染。
  38107. */
  38108. class SubmitCanvas extends laya.webgl.submit.SubmitBase {
  38109. canv:laya.resource.Context;
  38110. static create(canvas:any,alpha:number,filters:any[]):SubmitCanvas;
  38111. constructor();
  38112. /**
  38113. * @override
  38114. */
  38115. renderSubmit():number;
  38116. /**
  38117. * @override
  38118. */
  38119. releaseRender():void;
  38120. /**
  38121. * @override
  38122. */
  38123. getRenderType():number;
  38124. static POOL:any;
  38125. }
  38126. }
  38127. declare module laya.webgl.submit {
  38128. class SubmitCMD implements laya.webgl.submit.ISubmit {
  38129. static POOL:any;
  38130. fun:Function;
  38131. args:any[];
  38132. constructor();
  38133. renderSubmit():number;
  38134. getRenderType():number;
  38135. releaseRender():void;
  38136. static create(args:any[],fun:Function,thisobj:any):SubmitCMD;
  38137. }
  38138. }
  38139. declare module laya.webgl.submit {
  38140. /**
  38141. * ...
  38142. * @author xie
  38143. */
  38144. class SubmitKey {
  38145. blendShader:number;
  38146. submitType:number;
  38147. other:number;
  38148. constructor();
  38149. clear():void;
  38150. copyFrom(src:SubmitKey):void;
  38151. copyFrom2(src:SubmitKey,submitType:number,other:number):void;
  38152. equal3_2(next:SubmitKey,submitType:number,other:number):boolean;
  38153. equal4_2(next:SubmitKey,submitType:number,other:number):boolean;
  38154. equal_3(next:SubmitKey):boolean;
  38155. equal(next:SubmitKey):boolean;
  38156. }
  38157. }
  38158. declare module laya.webgl.submit {
  38159. class SubmitTarget implements laya.webgl.submit.ISubmit {
  38160. shaderValue:laya.webgl.shader.d2.value.Value2D;
  38161. blendType:number;
  38162. srcRT:laya.resource.RenderTexture2D;
  38163. constructor();
  38164. static POOL:any;
  38165. renderSubmit():number;
  38166. blend():void;
  38167. getRenderType():number;
  38168. releaseRender():void;
  38169. static create(context:laya.resource.Context,mesh:laya.webgl.utils.Mesh2D,sv:laya.webgl.shader.d2.value.Value2D,rt:laya.resource.RenderTexture2D):SubmitTarget;
  38170. }
  38171. }
  38172. declare module laya.webgl.submit {
  38173. class SubmitTexture extends laya.webgl.submit.SubmitBase {
  38174. private static _poolSize:any;
  38175. private static POOL:any;
  38176. constructor(renderType?:number);
  38177. /**
  38178. * @override
  38179. */
  38180. releaseRender():void;
  38181. /**
  38182. * @override
  38183. */
  38184. renderSubmit():number;
  38185. static create(context:laya.resource.Context,mesh:laya.webgl.utils.Mesh2D,sv:laya.webgl.shader.d2.value.Value2D):SubmitTexture;
  38186. }
  38187. }
  38188. declare module laya.webgl {
  38189. /**
  38190. * 系统工具。
  38191. */
  38192. class SystemUtils {
  38193. /**
  38194. * 图形设备支持的最大纹理数量。
  38195. */
  38196. static get maxTextureCount():number;
  38197. /**
  38198. * 图形设备支持的最大纹理尺寸。
  38199. */
  38200. static get maxTextureSize():number;
  38201. /**
  38202. * 图形设备着色器的大致能力等级,类似于DirectX的shader model概念。
  38203. */
  38204. static get shaderCapailityLevel():number;
  38205. /**
  38206. * 是否支持纹理格式。
  38207. * @param format 纹理格式。
  38208. * @returns 是否支持。
  38209. */
  38210. static supportTextureFormat(format:number):boolean;
  38211. /**
  38212. * 是否支持渲染纹理格式。
  38213. * @param format 渲染纹理格式。
  38214. * @returns 是否支持。
  38215. */
  38216. static supportRenderTextureFormat(format:number):boolean;
  38217. }
  38218. }
  38219. declare module laya.webgl.text {
  38220. /**
  38221. * 阿拉伯文的转码。把unicode的阿拉伯文字母编码转成他们的老的能描述不同写法的编码。
  38222. * 这个是从GitHub上 Javascript-Arabic-Reshaper 项目转来的
  38223. * https://github.com/louy/Javascript-Arabic-Reshaper/blob/master/src/index.js
  38224. */
  38225. /**
  38226. * Javascript Arabic Reshaper by Louy Alakkad
  38227. * https://github.com/louy/Javascript-Arabic-Reshaper
  38228. * Based on (http://git.io/vsnAd)
  38229. */
  38230. class ArabicReshaper {
  38231. private static charsMap:any;
  38232. private static combCharsMap:any;
  38233. private static transChars:any;
  38234. characterMapContains(c:number):boolean;
  38235. getCharRep(c:number):boolean;
  38236. getCombCharRep(c1:any,c2:any):boolean;
  38237. isTransparent(c:any):boolean;
  38238. getOriginalCharsFromCode(code:any):string;
  38239. /**
  38240. * 转换函数。从normal转到presentB
  38241. * 这个返回的字符串可以直接按照从左到右的顺序渲染。
  38242. * 例如
  38243. * graphics.fillText(convertArabic('سلام'),....)
  38244. */
  38245. convertArabic(normal:any):string;
  38246. convertArabicBack(apfb:any):string;
  38247. }
  38248. }
  38249. declare module laya.webgl.text {
  38250. class AtlasGrid {
  38251. atlasID:number;
  38252. private _width:any;
  38253. private _height:any;
  38254. private _texCount:any;
  38255. private _rowInfo:any;
  38256. private _cells:any;
  38257. _used:number;
  38258. constructor(width?:number,height?:number,id?:number);
  38259. addRect(type:number,width:number,height:number,pt:laya.maths.Point):boolean;
  38260. private _release:any;
  38261. private _init:any;
  38262. private _get:any;
  38263. private _fill:any;
  38264. private _check:any;
  38265. private _clear:any;
  38266. }
  38267. }
  38268. declare module laya.webgl.text {
  38269. /**
  38270. * TODO如果占用内存较大,这个结构有很多成员可以临时计算
  38271. */
  38272. class CharRenderInfo {
  38273. char:string;
  38274. tex:any;
  38275. deleted:boolean;
  38276. uv:any[];
  38277. pos:number;
  38278. width:number;
  38279. height:number;
  38280. bmpWidth:number;
  38281. bmpHeight:number;
  38282. orix:number;
  38283. oriy:number;
  38284. touchTick:number;
  38285. isSpace:boolean;
  38286. touch():void;
  38287. }
  38288. }
  38289. declare module laya.webgl.text {
  38290. class CharRender_Canvas extends laya.webgl.text.ICharRender {
  38291. private static canvas:any;
  38292. private ctx:any;
  38293. private lastScaleX:any;
  38294. private lastScaleY:any;
  38295. private maxTexW:any;
  38296. private maxTexH:any;
  38297. private scaleFontSize:any;
  38298. private showDbgInfo:any;
  38299. private supportImageData:any;
  38300. constructor(maxw:number,maxh:number,scalefont?:boolean,useImageData?:boolean,showdbg?:boolean);
  38301. /**
  38302. * @override
  38303. */
  38304. get canvasWidth():number;
  38305. /**
  38306. * @override
  38307. */
  38308. set canvasWidth(w:number);
  38309. /**
  38310. * @param font
  38311. * @param str
  38312. * @override
  38313. */
  38314. getWidth(font:string,str:string):number;
  38315. /**
  38316. * @param sx
  38317. * @param sy
  38318. * @override
  38319. */
  38320. scale(sx:number,sy:number):void;
  38321. /**
  38322. * TODO stroke
  38323. * @param char
  38324. * @param font
  38325. * @param cri 修改里面的width。
  38326. * @return
  38327. * @override
  38328. */
  38329. 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|null;
  38330. 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;
  38331. }
  38332. }
  38333. declare module laya.webgl.text {
  38334. class CharRender_Native extends laya.webgl.text.ICharRender {
  38335. private lastFont:any;
  38336. private lastScaleX:any;
  38337. private lastScaleY:any;
  38338. constructor();
  38339. /**
  38340. * @param font
  38341. * @param str
  38342. * @override
  38343. */
  38344. getWidth(font:string,str:string):number;
  38345. /**
  38346. * @param sx
  38347. * @param sy
  38348. * @override
  38349. */
  38350. scale(sx:number,sy:number):void;
  38351. /**
  38352. * TODO stroke
  38353. * @param char
  38354. * @param font
  38355. * @param size 返回宽高
  38356. * @return
  38357. * @override
  38358. */
  38359. 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;
  38360. }
  38361. }
  38362. declare module laya.webgl.text {
  38363. /**
  38364. * ...
  38365. * @author laoxie
  38366. */
  38367. class CharSubmitCache {
  38368. private static __posPool:any;
  38369. private static __nPosPool:any;
  38370. private _data:any;
  38371. private _ndata:any;
  38372. private _tex:any;
  38373. private _imgId:any;
  38374. private _clipid:any;
  38375. private _clipMatrix:any;
  38376. constructor();
  38377. clear():void;
  38378. destroy():void;
  38379. add(ctx:laya.resource.Context,tex:laya.resource.Texture,imgid:number,pos:any[],uv:ArrayLike<number>,color:number):void;
  38380. getPos():any[];
  38381. enable(value:boolean,ctx:laya.resource.Context):void;
  38382. submit(ctx:laya.resource.Context):void;
  38383. }
  38384. }
  38385. declare module laya.webgl.text {
  38386. class ICharRender {
  38387. fontsz:number;
  38388. getWidth(font:string,str:string):number;
  38389. scale(sx:number,sy:number):void;
  38390. get canvasWidth():number;
  38391. set canvasWidth(w:number);
  38392. /**
  38393. * TODO stroke
  38394. * @param char
  38395. * @param font
  38396. * @param size 返回宽高
  38397. * @return
  38398. */
  38399. 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;
  38400. }
  38401. }
  38402. declare module laya.webgl.text {
  38403. /**
  38404. * 文字贴图的大图集。
  38405. */
  38406. class TextAtlas {
  38407. texWidth:number;
  38408. texHeight:number;
  38409. private atlasgrid:any;
  38410. texture:laya.webgl.text.TextTexture|null;
  38411. charMaps:any;
  38412. static atlasGridW:number;
  38413. constructor();
  38414. setProtecteDist(d:number):void;
  38415. /**
  38416. * 如果返回null,则表示无法加入了
  38417. * 分配的时候优先选择最接近自己高度的节点
  38418. * @param w
  38419. * @param h
  38420. * @return
  38421. */
  38422. getAEmpty(w:number,h:number,pt:laya.maths.Point):boolean;
  38423. /**
  38424. * 大图集格子单元的占用率,老的也算上了。只是表示这个大图集还能插入多少东西。
  38425. */
  38426. get usedRate():number;
  38427. destroy():void;
  38428. printDebugInfo():void;
  38429. }
  38430. }
  38431. declare module laya.webgl.text {
  38432. class TextRender {
  38433. static useOldCharBook:boolean;
  38434. static atlasWidth:number;
  38435. static noAtlas:boolean;
  38436. static forceSplitRender:boolean;
  38437. static forceWholeRender:boolean;
  38438. static scaleFontWithCtx:boolean;
  38439. static standardFontSize:number;
  38440. static destroyAtlasDt:number;
  38441. static checkCleanTextureDt:number;
  38442. static destroyUnusedTextureDt:number;
  38443. static cleanMem:number;
  38444. static isWan1Wan:boolean;
  38445. static showLog:boolean;
  38446. static debugUV:boolean;
  38447. /**
  38448. * fontSizeInfo
  38449. * 记录每种字体的像素的大小。标准是32px的字体。由4个byte组成,分别表示[xdist,ydist,w,h]。
  38450. * xdist,ydist 是像素起点到排版原点的距离,都是正的,表示实际数据往左和上偏多少,如果实际往右和下偏,则算作0,毕竟这个只是一个大概
  38451. * 例如 [Arial]=0x00002020, 表示宽高都是32
  38452. */
  38453. private fontSizeInfo:any;
  38454. static atlasWidth2:number;
  38455. private charRender:any;
  38456. private static tmpRI:any;
  38457. private static pixelBBX:any;
  38458. private mapFont:any;
  38459. private fontID:any;
  38460. private mapColor:any;
  38461. private colorID:any;
  38462. private fontScaleX:any;
  38463. private fontScaleY:any;
  38464. private _curStrPos:any;
  38465. static textRenderInst:TextRender;
  38466. textAtlases:laya.webgl.text.TextAtlas[];
  38467. private isoTextures:any;
  38468. private bmpData32:any;
  38469. private static imgdtRect:any;
  38470. private lastFont:any;
  38471. private fontSizeW:any;
  38472. private fontSizeH:any;
  38473. private fontSizeOffX:any;
  38474. private fontSizeOffY:any;
  38475. private renderPerChar:any;
  38476. private tmpAtlasPos:any;
  38477. private textureMem:any;
  38478. private fontStr:any;
  38479. static simClean:boolean;
  38480. constructor();
  38481. /**
  38482. * 设置当前字体,获得字体的大小信息。
  38483. * @param font
  38484. */
  38485. setFont(font:laya.utils.FontInfo):void;
  38486. /**
  38487. * 从string中取出一个完整的char,例如emoji的话要多个
  38488. * 会修改 _curStrPos
  38489. * TODO 由于各种文字中的组合写法,这个需要能扩展,以便支持泰文等
  38490. * @param str
  38491. * @param start 开始位置
  38492. */
  38493. getNextChar(str:string):string|null;
  38494. 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;
  38495. 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;
  38496. _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;
  38497. /**
  38498. * 画出重新按照贴图顺序分组的文字。
  38499. * @param samePagesData
  38500. * @param startx 保存的数据是相对位置,所以需要加上这个偏移。用相对位置更灵活一些。
  38501. * @param y 因为这个只能画在一行上所以没有必要保存y。所以这里再把y传进来
  38502. */
  38503. protected _drawResortedWords(ctx:laya.resource.Context,startx:number,starty:number,samePagesData:any[]):void;
  38504. /**
  38505. * 检查 txts数组中有没有被释放的资源
  38506. * @param txts
  38507. * @param startid
  38508. * @return
  38509. */
  38510. hasFreedText(txts:any[]):boolean;
  38511. getCharRenderInfo(str:string,font:laya.utils.FontInfo,color:string,strokeColor:string,lineWidth:number,isoTexture?:boolean):laya.webgl.text.CharRenderInfo;
  38512. /**
  38513. * 添加数据到大图集
  38514. * @param w
  38515. * @param h
  38516. * @return
  38517. */
  38518. addBmpData(data:ImageData,ri:laya.webgl.text.CharRenderInfo):laya.webgl.text.TextAtlas;
  38519. /**
  38520. * 清理利用率低的大图集
  38521. */
  38522. GC():void;
  38523. /**
  38524. * 尝试清理大图集
  38525. */
  38526. cleanAtlases():void;
  38527. getCharBmp(c:string):any;
  38528. /**
  38529. * 检查当前线是否存在数据
  38530. * @param data
  38531. * @param l
  38532. * @param sx
  38533. * @param ex
  38534. * @return
  38535. */
  38536. private checkBmpLine:any;
  38537. /**
  38538. * 根据bmp数据和当前的包围盒,更新包围盒
  38539. * 由于选择的文字是连续的,所以可以用二分法
  38540. * @param data
  38541. * @param curbbx [l,t,r,b]
  38542. * @param onlyH 不检查左右
  38543. */
  38544. private updateBbx:any;
  38545. getFontSizeInfo(font:string):number;
  38546. printDbgInfo():void;
  38547. showAtlas(n:number,bgcolor:string,x:number,y:number,w:number,h:number):laya.display.Sprite;
  38548. 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;
  38549. }
  38550. }
  38551. declare module laya.webgl.text {
  38552. class TextTexture extends laya.resource.Resource {
  38553. static gTextRender:ITextRender;
  38554. private static pool:any;
  38555. private static poolLen:any;
  38556. private static cleanTm:any;
  38557. genID:number;
  38558. bitmap:any;
  38559. curUsedCovRate:number;
  38560. curUsedCovRateAtlas:number;
  38561. lastTouchTm:number;
  38562. ri:laya.webgl.text.CharRenderInfo;
  38563. constructor(textureW:number,textureH:number);
  38564. recreateResource():void;
  38565. /**
  38566. * @param data
  38567. * @param x 拷贝位置。
  38568. * @param y
  38569. * @param uv
  38570. * @return uv数组 如果uv不为空就返回传入的uv,否则new一个数组
  38571. */
  38572. addChar(data:ImageData,x:number,y:number,uv?:any[]):any[];
  38573. /**
  38574. * 玩一玩不支持 getImageData
  38575. * @param canv
  38576. * @param x
  38577. * @param y
  38578. */
  38579. addCharCanvas(canv:any,x:number,y:number,uv?:any[]):any[];
  38580. /**
  38581. * 填充白色。调试用。
  38582. */
  38583. fillWhite():void;
  38584. discard():void;
  38585. static getTextTexture(w:number,h:number):TextTexture;
  38586. /**
  38587. * @override
  38588. */
  38589. destroy():void;
  38590. /**
  38591. * 定期清理
  38592. * 为了简单,只有发生 getAPage 或者 discardPage的时候才检测是否需要清理
  38593. */
  38594. static clean():void;
  38595. touchRect(ri:laya.webgl.text.CharRenderInfo,curloop:number):void;
  38596. get texture():any;
  38597. drawOnScreen(x:number,y:number):void;
  38598. }
  38599. interface ITextRender{
  38600. atlasWidth:number;
  38601. checkCleanTextureDt:number;
  38602. debugUV:boolean;
  38603. isWan1Wan:boolean;
  38604. destroyUnusedTextureDt:number;
  38605. }
  38606. }
  38607. declare module laya.webgl.utils {
  38608. class Buffer {
  38609. static _bindedVertexBuffer:any;
  38610. static _bindedIndexBuffer:any;
  38611. protected _glBuffer:any;
  38612. protected _buffer:any;
  38613. protected _bufferType:number;
  38614. protected _bufferUsage:number;
  38615. _byteLength:number;
  38616. get bufferUsage():number;
  38617. constructor();
  38618. /**
  38619. * @private 绕过全局状态判断,例如VAO局部状态设置
  38620. */
  38621. _bindForVAO():void;
  38622. /**
  38623. * @private
  38624. */
  38625. bind():boolean;
  38626. /**
  38627. * @private
  38628. */
  38629. destroy():void;
  38630. }
  38631. }
  38632. declare module laya.webgl.utils {
  38633. class Buffer2D extends laya.webgl.utils.Buffer {
  38634. static FLOAT32:number;
  38635. static SHORT:number;
  38636. static __int__(gl:laya.webgl.WebGLContext):void;
  38637. protected _maxsize:number;
  38638. _upload:boolean;
  38639. protected _uploadSize:number;
  38640. protected _bufferSize:number;
  38641. protected _u8Array:Uint8Array;
  38642. get bufferLength():number;
  38643. set byteLength(value:number);
  38644. setByteLength(value:number):void;
  38645. /**
  38646. * 在当前的基础上需要多大空间,单位是byte
  38647. * @param sz
  38648. * @return 增加大小之前的写位置。单位是byte
  38649. */
  38650. needSize(sz:number):number;
  38651. constructor();
  38652. protected _bufferData():void;
  38653. protected _bufferSubData(offset?:number,dataStart?:number,dataLength?:number):void;
  38654. /**
  38655. * buffer重新分配了,继承类根据需要做相应的处理。
  38656. */
  38657. protected _checkArrayUse():void;
  38658. /**
  38659. * 给vao使用的 _bind_upload函数。不要与已经绑定的判断是否相同
  38660. * @return
  38661. */
  38662. _bind_uploadForVAO():boolean;
  38663. _bind_upload():boolean;
  38664. _bind_subUpload(offset?:number,dataStart?:number,dataLength?:number):boolean;
  38665. /**
  38666. * 重新分配buffer大小,如果nsz比原来的小则什么都不做。
  38667. * @param nsz buffer大小,单位是byte。
  38668. * @param copy 是否拷贝原来的buffer的数据。
  38669. * @return
  38670. */
  38671. _resizeBuffer(nsz:number,copy:boolean):Buffer2D;
  38672. append(data:any):void;
  38673. /**
  38674. * 附加Uint16Array的数据。数据长度是len。byte的话要*2
  38675. * @param data
  38676. * @param len
  38677. */
  38678. appendU16Array(data:Uint16Array,len:number):void;
  38679. appendEx(data:any,type:new (buf: any, len: any) => any):void;
  38680. appendEx2(data:any,type:new (buff: any, len: any) => any,dataLen:number,perDataLen?:number):void;
  38681. getBuffer():ArrayBuffer;
  38682. setNeedUpload():void;
  38683. getNeedUpload():boolean;
  38684. upload():boolean;
  38685. subUpload(offset?:number,dataStart?:number,dataLength?:number):boolean;
  38686. protected _disposeResource():void;
  38687. /**
  38688. * 清理数据。保留ArrayBuffer
  38689. */
  38690. clear():void;
  38691. }
  38692. }
  38693. declare module laya.webgl.utils {
  38694. class CONST3D2D {
  38695. static BYTES_PE:number;
  38696. static BYTES_PIDX:number;
  38697. static defaultMatrix4:any[];
  38698. static defaultMinusYMatrix4:any[];
  38699. static uniformMatrix3:any[];
  38700. static _TMPARRAY:any[];
  38701. static _OFFSETX:number;
  38702. static _OFFSETY:number;
  38703. }
  38704. }
  38705. declare module laya.webgl.utils {
  38706. class IndexBuffer2D extends laya.webgl.utils.Buffer2D {
  38707. static create:Function;
  38708. protected _uint16Array:Uint16Array;
  38709. constructor(bufferUsage?:number);
  38710. /**
  38711. * @override
  38712. */
  38713. protected _checkArrayUse():void;
  38714. getUint16Array():Uint16Array;
  38715. /**
  38716. * @inheritDoc
  38717. * @override
  38718. */
  38719. _bindForVAO():void;
  38720. /**
  38721. * @inheritDoc
  38722. * @override
  38723. */
  38724. bind():boolean;
  38725. destory():void;
  38726. disposeResource():void;
  38727. }
  38728. }
  38729. declare module laya.webgl.utils {
  38730. class InlcudeFile {
  38731. script:string;
  38732. codes:any;
  38733. funs:any;
  38734. curUseID:number;
  38735. funnames:string;
  38736. constructor(txt:string);
  38737. getWith(name?:string):string;
  38738. getFunsScript(funsdef:string):string;
  38739. }
  38740. }
  38741. declare module laya.webgl.utils {
  38742. class MatirxArray {
  38743. /**
  38744. * 4*4矩阵数组相乘。
  38745. * o=a*b;
  38746. * @param a 4*4矩阵数组。
  38747. * @param b 4*4矩阵数组。
  38748. * @param o 4*4矩阵数组。
  38749. */
  38750. static ArrayMul(a:any[],b:any[],o:any[]):void;
  38751. static copyArray(f:any[],t:any[]):void;
  38752. }
  38753. }
  38754. declare module laya.webgl.utils {
  38755. /**
  38756. * Mesh2d只是保存数据。描述attribute用的。本身不具有渲染功能。
  38757. */
  38758. class Mesh2D {
  38759. _stride:number;
  38760. vertNum:number;
  38761. indexNum:number;
  38762. protected _applied:boolean;
  38763. _vb:laya.webgl.utils.VertexBuffer2D;
  38764. _ib:laya.webgl.utils.IndexBuffer2D;
  38765. private _vao:any;
  38766. private static _gvaoid:any;
  38767. private _attribInfo:any;
  38768. protected _quadNum:number;
  38769. canReuse:boolean;
  38770. /**
  38771. * @param stride
  38772. * @param vballoc vb预分配的大小。主要是用来提高效率。防止不断的resizebfufer
  38773. * @param iballoc
  38774. */
  38775. constructor(stride:number,vballoc:number,iballoc:number);
  38776. /**
  38777. * 重新创建一个mesh。复用这个对象的vertex结构,ib对象和attribinfo对象
  38778. */
  38779. cloneWithNewVB():Mesh2D;
  38780. /**
  38781. * 创建一个mesh,使用当前对象的vertex结构。vb和ib自己提供。
  38782. * @return
  38783. */
  38784. cloneWithNewVBIB():Mesh2D;
  38785. /**
  38786. * 获得一个可以写的vb对象
  38787. */
  38788. getVBW():laya.webgl.utils.VertexBuffer2D;
  38789. /**
  38790. * 获得一个只读vb
  38791. */
  38792. getVBR():laya.webgl.utils.VertexBuffer2D;
  38793. getIBR():laya.webgl.utils.IndexBuffer2D;
  38794. /**
  38795. * 获得一个可写的ib
  38796. */
  38797. getIBW():laya.webgl.utils.IndexBuffer2D;
  38798. /**
  38799. * 直接创建一个固定的ib。按照固定四边形的索引。
  38800. * @param var QuadNum
  38801. */
  38802. createQuadIB(QuadNum:number):void;
  38803. /**
  38804. * 设置mesh的属性。每3个一组,对应的location分别是0,1,2...
  38805. * 含义是:type,size,offset
  38806. * 不允许多流。因此stride是固定的,offset只是在一个vertex之内。
  38807. * @param attribs
  38808. */
  38809. setAttributes(attribs:any[]):void;
  38810. /**
  38811. * 初始化VAO的配置,只需要执行一次。以后使用的时候直接bind就行
  38812. * @param gl
  38813. */
  38814. private configVAO:any;
  38815. /**
  38816. * 应用这个mesh
  38817. * @param gl
  38818. */
  38819. useMesh(gl:WebGLRenderingContext):void;
  38820. getEleNum():number;
  38821. /**
  38822. * 子类实现。用来把自己放到对应的回收池中,以便复用。
  38823. */
  38824. releaseMesh():void;
  38825. /**
  38826. * 释放资源。
  38827. */
  38828. destroy():void;
  38829. /**
  38830. * 清理vb数据
  38831. */
  38832. clearVB():void;
  38833. }
  38834. }
  38835. declare module laya.webgl.utils {
  38836. /**
  38837. * drawImage,fillRect等会用到的简单的mesh。每次添加必然是一个四边形。
  38838. */
  38839. class MeshParticle2D extends laya.webgl.utils.Mesh2D {
  38840. static const_stride:number;
  38841. private static _fixattriInfo:any;
  38842. private static _POOL:any;
  38843. static __init__():void;
  38844. constructor(maxNum:number);
  38845. setMaxParticleNum(maxNum:number):void;
  38846. /**
  38847. */
  38848. static getAMesh(maxNum:number):MeshParticle2D;
  38849. /**
  38850. * 把本对象放到回收池中,以便getMesh能用。
  38851. * @override
  38852. */
  38853. releaseMesh():void;
  38854. /**
  38855. * @override
  38856. */
  38857. destroy():void;
  38858. }
  38859. }
  38860. declare module laya.webgl.utils {
  38861. /**
  38862. * drawImage,fillRect等会用到的简单的mesh。每次添加必然是一个四边形。
  38863. */
  38864. class MeshQuadTexture extends laya.webgl.utils.Mesh2D {
  38865. static const_stride:number;
  38866. private static _fixib:any;
  38867. private static _maxIB:any;
  38868. private static _fixattriInfo:any;
  38869. private static _POOL:any;
  38870. static __int__():void;
  38871. constructor();
  38872. /**
  38873. */
  38874. static getAMesh(mainctx:boolean):MeshQuadTexture;
  38875. /**
  38876. * 把本对象放到回收池中,以便getMesh能用。
  38877. * @override
  38878. */
  38879. releaseMesh():void;
  38880. /**
  38881. * @override
  38882. */
  38883. destroy():void;
  38884. /**
  38885. * @param pos
  38886. * @param uv
  38887. * @param color
  38888. * @param clip ox,oy,xx,xy,yx,yy
  38889. * @param useTex 是否使用贴图。false的话是给fillRect用的
  38890. */
  38891. addQuad(pos:any[],uv:ArrayLike<number>,color:number,useTex:boolean):void;
  38892. }
  38893. }
  38894. declare module laya.webgl.utils {
  38895. /**
  38896. * 与MeshQuadTexture基本相同。不过index不是固定的
  38897. */
  38898. class MeshTexture extends laya.webgl.utils.Mesh2D {
  38899. static const_stride:number;
  38900. private static _fixattriInfo:any;
  38901. private static _POOL:any;
  38902. static __init__():void;
  38903. constructor();
  38904. /**
  38905. */
  38906. static getAMesh(mainctx:boolean):MeshTexture;
  38907. addData(vertices:Float32Array,uvs:Float32Array,idx:Uint16Array,matrix:laya.maths.Matrix,rgba:number):void;
  38908. /**
  38909. * 把本对象放到回收池中,以便getMesh能用。
  38910. * @override
  38911. */
  38912. releaseMesh():void;
  38913. /**
  38914. * @override
  38915. */
  38916. destroy():void;
  38917. }
  38918. }
  38919. declare module laya.webgl.utils {
  38920. /**
  38921. * 用来画矢量的mesh。顶点格式固定为 x,y,rgba
  38922. */
  38923. class MeshVG extends laya.webgl.utils.Mesh2D {
  38924. static const_stride:number;
  38925. private static _fixattriInfo:any;
  38926. private static _POOL:any;
  38927. static __init__():void;
  38928. constructor();
  38929. static getAMesh(mainctx:boolean):MeshVG;
  38930. /**
  38931. * 往矢量mesh中添加顶点和index。会把rgba和points在mesh中合并。
  38932. * @param points 顶点数组,只包含x,y。[x,y,x,y...]
  38933. * @param rgba rgba颜色
  38934. * @param ib index数组。
  38935. */
  38936. addVertAndIBToMesh(ctx:laya.resource.Context,points:any[],rgba:number,ib:any[]):void;
  38937. /**
  38938. * 把本对象放到回收池中,以便getMesh能用。
  38939. * @override
  38940. */
  38941. releaseMesh():void;
  38942. /**
  38943. * @override
  38944. */
  38945. destroy():void;
  38946. }
  38947. }
  38948. declare module laya.webgl.utils {
  38949. class RenderState2D {
  38950. static _MAXSIZE:number;
  38951. /**
  38952. * @private 一个初始化的 <code>Matrix</code> 对象,不允许修改此对象内容。
  38953. */
  38954. static EMPTYMAT4_ARRAY:any[];
  38955. static TEMPMAT4_ARRAY:any[];
  38956. static worldMatrix4:any[];
  38957. static worldMatrix:laya.maths.Matrix;
  38958. static matWVP:any;
  38959. static worldAlpha:number;
  38960. static worldScissorTest:boolean;
  38961. static worldShaderDefines:laya.webgl.shader.d2.ShaderDefines2D;
  38962. static worldFilters:any[];
  38963. static width:number;
  38964. static height:number;
  38965. static mat2MatArray(mat:laya.maths.Matrix,matArray:any[]):any[];
  38966. static restoreTempArray():void;
  38967. static clear():void;
  38968. }
  38969. }
  38970. declare module laya.webgl.utils {
  38971. /**
  38972. * @private <code>ShaderCompile</code> 类用于实现Shader编译。
  38973. */
  38974. class ShaderCompile {
  38975. static IFDEF_NO:number;
  38976. static IFDEF_YES:number;
  38977. static IFDEF_ELSE:number;
  38978. static IFDEF_PARENT:number;
  38979. static _removeAnnotation:RegExp;
  38980. static _reg:RegExp;
  38981. static _splitToWordExps:RegExp;
  38982. static includes:any;
  38983. static shaderParamsMap:any;
  38984. private _nameMap:any;
  38985. protected _VS:laya.webgl.utils.ShaderNode;
  38986. protected _PS:laya.webgl.utils.ShaderNode;
  38987. private static _parseOne:any;
  38988. static addInclude(fileName:string,txt:string):void;
  38989. static preGetParams(vs:string,ps:string):any;
  38990. static splitToWords(str:string,block:laya.webgl.utils.ShaderNode):any[];
  38991. static _clearCR:RegExp;
  38992. defs:Object;
  38993. constructor(vs:string,ps:string,nameMap:any);
  38994. static _splitToWordExps3:RegExp;
  38995. /**
  38996. * @private
  38997. */
  38998. protected _compileToTree(parent:laya.webgl.utils.ShaderNode,lines:any[],start:number,includefiles:any[],defs:any):void;
  38999. createShader(define:any,shaderName:any,createShader:Function,bindAttrib:any[]):laya.webgl.shader.Shader;
  39000. }
  39001. }
  39002. declare module laya.webgl.utils {
  39003. class ShaderNode {
  39004. private static __id:any;
  39005. childs:any[];
  39006. text:string;
  39007. parent:ShaderNode;
  39008. name:string;
  39009. noCompile:boolean;
  39010. includefiles:any[];
  39011. condition:any;
  39012. conditionType:number;
  39013. useFuns:string;
  39014. z:number;
  39015. src:string;
  39016. constructor(includefiles:any[]);
  39017. setParent(parent:ShaderNode):void;
  39018. setCondition(condition:string,type:number):void;
  39019. toscript(def:any,out:any[]):any[];
  39020. private _toscript:any;
  39021. }
  39022. }
  39023. declare module laya.webgl.utils {
  39024. class VertexBuffer2D extends laya.webgl.utils.Buffer2D {
  39025. static create:Function;
  39026. _floatArray32:Float32Array;
  39027. _uint32Array:Uint32Array;
  39028. private _vertexStride:any;
  39029. get vertexStride():number;
  39030. constructor(vertexStride:number,bufferUsage:number);
  39031. getFloat32Array():Float32Array;
  39032. /**
  39033. * 在当前位置插入float数组。
  39034. * @param data
  39035. * @param pos
  39036. */
  39037. appendArray(data:any[]):void;
  39038. /**
  39039. * @override
  39040. */
  39041. protected _checkArrayUse():void;
  39042. deleteBuffer():void;
  39043. /**
  39044. * @inheritDoc
  39045. * @override
  39046. */
  39047. _bindForVAO():void;
  39048. /**
  39049. * @inheritDoc
  39050. * @override
  39051. */
  39052. bind():boolean;
  39053. /**
  39054. * @override
  39055. */
  39056. destroy():void;
  39057. }
  39058. }
  39059. declare module laya.webgl {
  39060. class VertexArrayObject {
  39061. constructor();
  39062. }
  39063. }
  39064. declare module laya.webgl {
  39065. /**
  39066. * @private
  39067. */
  39068. class WebGL {
  39069. static _isWebGL2:boolean;
  39070. static isNativeRender_enable:boolean;
  39071. private static _uint8ArraySlice:any;
  39072. private static _float32ArraySlice:any;
  39073. private static _uint16ArraySlice:any;
  39074. static _nativeRender_enable():void;
  39075. static enable():boolean;
  39076. static inner_enable():boolean;
  39077. static onStageResize(width:number,height:number):void;
  39078. }
  39079. }
  39080. declare module laya.webgl {
  39081. /**
  39082. * @private
  39083. */
  39084. class WebGLContext {
  39085. }
  39086. }
  39087. /**
  39088. * <code>Laya</code> 是全局对象的引用入口集。
  39089. * Laya类引用了一些常用的全局对象,比如Laya.stage:舞台,Laya.timer:时间管理器,Laya.loader:加载管理器,使用时注意大小写。
  39090. */
  39091. declare class Laya {
  39092. /**
  39093. * 舞台对象的引用。
  39094. */
  39095. static stage:laya.display.Stage;
  39096. /**
  39097. * @private 系统时钟管理器,引擎内部使用
  39098. */
  39099. static systemTimer:laya.utils.Timer;
  39100. /**
  39101. * @private 组件的start时钟管理器
  39102. */
  39103. static startTimer:laya.utils.Timer;
  39104. /**
  39105. * @private 组件的物理时钟管理器
  39106. */
  39107. static physicsTimer:laya.utils.Timer;
  39108. /**
  39109. * @private 组件的update时钟管理器
  39110. */
  39111. static updateTimer:laya.utils.Timer;
  39112. /**
  39113. * @private 组件的lateUpdate时钟管理器
  39114. */
  39115. static lateTimer:laya.utils.Timer;
  39116. /**
  39117. * 游戏主时针,同时也是管理场景,动画,缓动等效果时钟,通过控制本时针缩放,达到快进慢播效果
  39118. */
  39119. static timer:laya.utils.Timer;
  39120. /**
  39121. * 加载管理器的引用。
  39122. */
  39123. static loader:laya.net.LoaderManager;
  39124. /**
  39125. * 当前引擎版本。
  39126. */
  39127. static version:string;
  39128. /**
  39129. * @private Render 类的引用。
  39130. */
  39131. static render:laya.renders.Render;
  39132. /**
  39133. * 是否是微信小游戏子域,默认为false*
  39134. */
  39135. static isWXOpenDataContext:boolean;
  39136. /**
  39137. * 微信小游戏是否需要在主域中自动将加载的文本数据自动传递到子域,默认 false*
  39138. */
  39139. static isWXPosMsg:boolean;
  39140. /**
  39141. * 兼容as3编译工具
  39142. */
  39143. static __init(_classs:any[]):void;
  39144. /**
  39145. * 初始化引擎。使用引擎需要先初始化引擎,否则可能会报错。
  39146. * @param width 初始化的游戏窗口宽度,又称设计宽度。
  39147. * @param height 初始化的游戏窗口高度,又称设计高度。
  39148. * @param plugins 插件列表,比如 WebGL(使用WebGL方式渲染)。
  39149. * @return 返回原生canvas引用,方便对canvas属性进行修改
  39150. */
  39151. static init(width:number,height:number,...plugins:any[]):any;
  39152. /**
  39153. * 表示是否捕获全局错误并弹出提示。默认为false。
  39154. * 适用于移动设备等不方便调试的时候,设置为true后,如有未知错误,可以弹窗抛出详细错误堆栈。
  39155. */
  39156. static alertGlobalError(value:boolean):void;
  39157. /**
  39158. * 开启DebugPanel
  39159. * @param debugJsPath laya.debugtool.js文件路径
  39160. */
  39161. static enableDebugPanel(debugJsPath?:string):void;
  39162. private static isNativeRender_enable:any;
  39163. /**
  39164. * @private
  39165. */
  39166. private static enableWebGLPlus:any;
  39167. /**
  39168. * @private
  39169. */
  39170. private static enableNative:any;
  39171. }
  39172. /**
  39173. * <code>Laya3D</code> 类用于初始化3D设置。
  39174. */
  39175. declare class Laya3D {
  39176. /**
  39177. * Hierarchy资源。
  39178. */
  39179. static HIERARCHY:string;
  39180. /**
  39181. * Mesh资源。
  39182. */
  39183. static MESH:string;
  39184. /**
  39185. * Material资源。
  39186. */
  39187. static MATERIAL:string;
  39188. /**
  39189. * Texture2D资源。
  39190. */
  39191. static TEXTURE2D:string;
  39192. /**
  39193. * TextureCube资源。
  39194. */
  39195. static TEXTURECUBE:string;
  39196. /**
  39197. * TextureCube资源。
  39198. */
  39199. static TEXTURECUBEBIN:string;
  39200. /**
  39201. * AnimationClip资源。
  39202. */
  39203. static ANIMATIONCLIP:string;
  39204. /**
  39205. * Avatar资源。
  39206. */
  39207. static AVATAR:string;
  39208. /**
  39209. * Terrain资源。
  39210. */
  39211. static TERRAINHEIGHTDATA:string;
  39212. /**
  39213. * Terrain资源。
  39214. */
  39215. static TERRAINRES:string;
  39216. /**
  39217. * @private
  39218. */
  39219. static physicsSettings:laya.d3.physics.PhysicsSettings;
  39220. /**
  39221. * 获取是否可以启用物理。
  39222. * @param 是否启用物理 。
  39223. */
  39224. static get enablePhysics():any;
  39225. private static enableNative3D:any;
  39226. /**
  39227. * @private
  39228. */
  39229. private static formatRelativePath:any;
  39230. /**
  39231. * 初始化Laya3D相关设置。
  39232. * @param width 3D画布宽度。
  39233. * @param height 3D画布高度。
  39234. */
  39235. static init(width:number,height:number,config?:Config3D,compolete?:laya.utils.Handler):void;
  39236. /**
  39237. * 创建一个 <code>Laya3D</code> 实例。
  39238. */
  39239. constructor();
  39240. }
  39241. /**
  39242. * 全局配置
  39243. */
  39244. declare class UIConfig {
  39245. /**
  39246. * 是否开启触摸滚动(针对滚动条)
  39247. */
  39248. static touchScrollEnable:boolean;
  39249. /**
  39250. * 是否开启滑轮滚动(针对滚动条)
  39251. */
  39252. static mouseWheelEnable:boolean;
  39253. /**
  39254. * 是否显示滚动条按钮
  39255. */
  39256. static showButtons:boolean;
  39257. /**
  39258. * 弹出框背景颜色
  39259. */
  39260. static popupBgColor:string;
  39261. /**
  39262. * 弹出框背景透明度
  39263. */
  39264. static popupBgAlpha:number;
  39265. /**
  39266. * 模式窗口点击边缘,是否关闭窗口,默认是关闭的
  39267. */
  39268. static closeDialogOnSide:boolean;
  39269. }
  39270. declare module Laya {
  39271. /**
  39272. * 开始播放时调度。
  39273. * @eventType Event.PLAYED
  39274. */
  39275. /**
  39276. * 暂停时调度。
  39277. * @eventType Event.PAUSED
  39278. */
  39279. /**
  39280. * 完成一次循环时调度。
  39281. * @eventType Event.COMPLETE
  39282. */
  39283. /**
  39284. * 停止时调度。
  39285. * @eventType Event.STOPPED
  39286. */
  39287. /**
  39288. * <code>AnimationPlayer</code> 类用于动画播放器。
  39289. */
  39290. class AnimationPlayer extends laya.ani.AnimationPlayer {}
  39291. /**
  39292. * <code>AnimationTemplet</code> 类用于动画模板资源。
  39293. */
  39294. class AnimationTemplet extends laya.ani.AnimationTemplet {}
  39295. /**
  39296. * @private
  39297. */
  39298. class Bone extends laya.ani.bone.Bone {}
  39299. class BoneSlot extends laya.ani.bone.BoneSlot {}
  39300. /**
  39301. */
  39302. class MeshData extends laya.ani.bone.canvasmesh.MeshData {}
  39303. class SkinMeshForGraphic extends laya.ani.bone.canvasmesh.SkinMeshForGraphic {}
  39304. class EventData extends laya.ani.bone.EventData {}
  39305. /**
  39306. * 动画开始播放调度
  39307. * @eventType Event.PLAYED
  39308. */
  39309. /**
  39310. * 动画停止播放调度
  39311. * @eventType Event.STOPPED
  39312. */
  39313. /**
  39314. * 动画暂停播放调度
  39315. * @eventType Event.PAUSED
  39316. */
  39317. /**
  39318. * 自定义事件。
  39319. * @eventType Event.LABEL
  39320. */
  39321. /**
  39322. * 骨骼动画由<code>Templet</code>,<code>AnimationPlayer</code>,<code>Skeleton</code>三部分组成。
  39323. */
  39324. class Skeleton extends laya.ani.bone.Skeleton {}
  39325. class SkinSlotDisplayData extends laya.ani.bone.SkinSlotDisplayData {}
  39326. class SlotData extends laya.ani.bone.SlotData {}
  39327. /**
  39328. * 数据解析完成后的调度。
  39329. * @eventType Event.COMPLETE
  39330. */
  39331. /**
  39332. * 数据解析错误后的调度。
  39333. * @eventType Event.ERROR
  39334. */
  39335. /**
  39336. * 动画模板类
  39337. */
  39338. class Templet extends laya.ani.bone.Templet {}
  39339. class Transform extends laya.ani.bone.Transform {}
  39340. class GraphicsAni extends laya.ani.GraphicsAni {}
  39341. class KeyFramesContent extends laya.ani.KeyFramesContent {}
  39342. /**
  39343. * 动画播放完毕后调度。
  39344. * @eventType Event.COMPLETE
  39345. */
  39346. /**
  39347. * 播放到某标签后调度。
  39348. * @eventType Event.LABEL
  39349. */
  39350. /**
  39351. * 加载完成后调度。
  39352. * @eventType Event.LOADED
  39353. */
  39354. /**
  39355. * 进入帧后调度。
  39356. * @eventType Event.FRAME
  39357. */
  39358. /**
  39359. * <p> <code>MovieClip</code> 用于播放经过工具处理后的 swf 动画。</p>
  39360. */
  39361. class MovieClip extends laya.ani.swf.MovieClip {}
  39362. /**
  39363. * <code>CommonScript</code> 类用于创建公共脚本类。
  39364. */
  39365. class CommonScript extends laya.components.CommonScript {}
  39366. /**
  39367. * <code>Component</code> 类用于创建组件的基类。
  39368. */
  39369. class Component extends laya.components.Component {}
  39370. /**
  39371. * 模板,预制件
  39372. */
  39373. class Prefab extends laya.components.Prefab {}
  39374. /**
  39375. * <code>Script</code> 类用于创建脚本的父类,该类为抽象类,不允许实例。
  39376. * 组件的生命周期
  39377. */
  39378. class Script extends laya.components.Script {}
  39379. /**
  39380. * @private 静态常量集合
  39381. */
  39382. class Const extends laya.Const {}
  39383. /**
  39384. * <code>AnimationClip</code> 类用于动画片段资源。
  39385. */
  39386. class AnimationClip extends laya.d3.animation.AnimationClip {}
  39387. /**
  39388. * <code>AnimationEvent</code> 类用于实现动画事件。
  39389. */
  39390. class AnimationEvent extends laya.d3.animation.AnimationEvent {}
  39391. /**
  39392. * <code>BoneNode</code> 类用于实现骨骼节点。
  39393. */
  39394. class AnimationNode extends laya.d3.animation.AnimationNode {}
  39395. /**
  39396. * <code>AnimationTransform3D</code> 类用于实现3D变换。
  39397. */
  39398. class AnimationTransform3D extends laya.d3.animation.AnimationTransform3D {}
  39399. /**
  39400. * <code>AnimatorStateScript</code> 类用于动画状态脚本的父类,该类为抽象类,不允许实例。
  39401. */
  39402. class AnimatorStateScript extends laya.d3.animation.AnimatorStateScript {}
  39403. /**
  39404. * /**
  39405. * <code>CastShadowList</code> 类用于实现产生阴影者队列。
  39406. */
  39407. class CastShadowList extends laya.d3.CastShadowList {}
  39408. /**
  39409. * <code>Animator</code> 类用于创建动画组件。
  39410. */
  39411. class Animator extends laya.d3.component.Animator {}
  39412. /**
  39413. * <code>AnimatorControllerLayer</code> 类用于创建动画控制器层。
  39414. */
  39415. class AnimatorControllerLayer extends laya.d3.component.AnimatorControllerLayer {}
  39416. /**
  39417. * <code>AnimatorPlayState</code> 类用于创建动画播放状态信息。
  39418. */
  39419. class AnimatorPlayState extends laya.d3.component.AnimatorPlayState {}
  39420. /**
  39421. * <code>AnimatorState</code> 类用于创建动作状态。
  39422. */
  39423. class AnimatorState extends laya.d3.component.AnimatorState {}
  39424. /**
  39425. * <code>PostProcess</code> 类用于创建后期处理组件。
  39426. */
  39427. class PostProcess extends laya.d3.component.PostProcess {}
  39428. /**
  39429. * <code>Script3D</code> 类用于创建脚本的父类,该类为抽象类,不允许实例。
  39430. */
  39431. class Script3D extends laya.d3.component.Script3D {}
  39432. /**
  39433. * <code>SimpleSingletonList</code> 类用于实现单例队列。
  39434. */
  39435. class SimpleSingletonList extends laya.d3.component.SimpleSingletonList {}
  39436. /**
  39437. * <code>SingletonList</code> 类用于实现单例队列。
  39438. */
  39439. class SingletonList<T> extends laya.d3.component.SingletonList<T> {}
  39440. /**
  39441. * <code>Avatar</code> 类用于创建Avatar。
  39442. */
  39443. class Avatar extends laya.d3.core.Avatar {}
  39444. /**
  39445. * <code>BaseCamera</code> 类用于创建摄像机的父类。
  39446. */
  39447. class BaseCamera extends laya.d3.core.BaseCamera {}
  39448. /**
  39449. * <code>Bounds</code> 类用于创建包围体。
  39450. */
  39451. class Bounds extends laya.d3.core.Bounds {}
  39452. enum CameraClearFlags {
  39453. /**固定颜色。*/
  39454. SolidColor = 0,
  39455. /**天空。*/
  39456. Sky = 1,
  39457. /**仅深度。*/
  39458. DepthOnly = 2,
  39459. /**不清除。*/
  39460. Nothing = 3
  39461. }
  39462. /**
  39463. * <code>Camera</code> 类用于创建摄像机。
  39464. */
  39465. class Camera extends laya.d3.core.Camera {}
  39466. /**
  39467. * <code>FloatKeyFrame</code> 类用于创建浮点关键帧实例。
  39468. */
  39469. class FloatKeyframe extends laya.d3.core.FloatKeyframe {}
  39470. /**
  39471. * <code>GeometryElement</code> 类用于实现几何体元素,该类为抽象类。
  39472. */
  39473. class GeometryElement extends laya.d3.core.GeometryElement {}
  39474. /**
  39475. * <code>Gradient</code> 类用于创建颜色渐变。
  39476. */
  39477. class Gradient extends laya.d3.core.Gradient {}
  39478. /**
  39479. * ...
  39480. * @author ...
  39481. */
  39482. class GradientMode extends laya.d3.core.GradientMode {}
  39483. /**
  39484. * <code>HeightMap</code> 类用于实现高度图数据。
  39485. */
  39486. class HeightMap extends laya.d3.core.HeightMap {}
  39487. /**
  39488. * <code>KeyFrame</code> 类用于创建关键帧实例。
  39489. */
  39490. class Keyframe extends laya.d3.core.Keyframe {}
  39491. /**
  39492. * <code>DirectionLight</code> 类用于创建平行光。
  39493. */
  39494. class DirectionLight extends laya.d3.core.light.DirectionLight {}
  39495. /**
  39496. * <code>LightSprite</code> 类用于创建灯光的父类。
  39497. */
  39498. class LightSprite extends laya.d3.core.light.LightSprite {}
  39499. /**
  39500. * <code>PointLight</code> 类用于创建点光。
  39501. */
  39502. class PointLight extends laya.d3.core.light.PointLight {}
  39503. enum ShadowCascadesMode {
  39504. /** 无级联。 */
  39505. NoCascades = 0,
  39506. /** 二级级联。 */
  39507. TwoCascades = 1,
  39508. /** 四级级联。 */
  39509. FourCascades = 2
  39510. }
  39511. enum ShadowMode {
  39512. None = 0,
  39513. Hard = 1,
  39514. SoftLow = 2,
  39515. SoftHigh = 3
  39516. }
  39517. /**
  39518. * <code>SpotLight</code> 类用于创建聚光。
  39519. */
  39520. class SpotLight extends laya.d3.core.light.SpotLight {}
  39521. /**
  39522. * BaseMaterial has deprecated,please use Material instead.
  39523. * @deprecated
  39524. */
  39525. class BaseMaterial extends laya.d3.core.material.BaseMaterial {}
  39526. /**
  39527. * <code>BlinnPhongMaterial</code> 类用于实现Blinn-Phong材质。
  39528. */
  39529. class BlinnPhongMaterial extends laya.d3.core.material.BlinnPhongMaterial {}
  39530. /**
  39531. * <code>EffectMaterial</code> 类用于实现Mesh特效材质。
  39532. */
  39533. class EffectMaterial extends laya.d3.core.material.EffectMaterial {}
  39534. /**
  39535. * ...
  39536. * @author ...
  39537. */
  39538. class ExtendTerrainMaterial extends laya.d3.core.material.ExtendTerrainMaterial {}
  39539. /**
  39540. * <code>Material</code> 类用于创建材质。
  39541. */
  39542. class Material extends laya.d3.core.material.Material {}
  39543. enum PBRRenderMode {
  39544. /**不透明。*/
  39545. Opaque = 0,
  39546. /**透明裁剪。*/
  39547. Cutout = 1,
  39548. /**透明混合_游戏中经常使用的透明。*/
  39549. Fade = 2,
  39550. /**透明混合_物理上看似合理的透明。*/
  39551. Transparent = 3
  39552. }
  39553. /**
  39554. * PBR材质的父类,该类为抽象类。
  39555. */
  39556. class PBRMaterial extends laya.d3.core.material.PBRMaterial {}
  39557. enum PBRRenderQuality {
  39558. /**高质量。*/
  39559. High = 0,
  39560. /**低质量。*/
  39561. Low = 1
  39562. }
  39563. enum PBRSpecularSmoothnessSource {
  39564. /**金属度贴图的Alpha通道。*/
  39565. SpecularTextureAlpha = 0,
  39566. /**反射率贴图的Alpha通道。*/
  39567. AlbedoTextureAlpha = 1
  39568. }
  39569. /**
  39570. * <code>PBRSpecularMaterial</code> 类用于实现PBR(Specular)材质。
  39571. */
  39572. class PBRSpecularMaterial extends laya.d3.core.material.PBRSpecularMaterial {}
  39573. enum PBRMetallicSmoothnessSource {
  39574. /**金属度贴图的Alpha通道。*/
  39575. MetallicGlossTextureAlpha = 0,
  39576. /**反射率贴图的Alpha通道。*/
  39577. AlbedoTextureAlpha = 1
  39578. }
  39579. /**
  39580. * <code>PBRStandardMaterial</code> 类用于实现PBR材质。
  39581. */
  39582. class PBRStandardMaterial extends laya.d3.core.material.PBRStandardMaterial {}
  39583. /**
  39584. * <code>RenderState</code> 类用于控制渲染状态。
  39585. */
  39586. class RenderState extends laya.d3.core.material.RenderState {}
  39587. /**
  39588. * <code>SkyBoxMaterial</code> 类用于实现SkyBoxMaterial材质。
  39589. */
  39590. class SkyBoxMaterial extends laya.d3.core.material.SkyBoxMaterial {}
  39591. /**
  39592. * <code>SkyPanoramicMaterial</code> 类用于实现SkyPanoramicMaterial材质。
  39593. */
  39594. class SkyPanoramicMaterial extends laya.d3.core.material.SkyPanoramicMaterial {}
  39595. /**
  39596. * <code>SkyProceduralMaterial</code> 类用于实现SkyProceduralMaterial材质。
  39597. */
  39598. class SkyProceduralMaterial extends laya.d3.core.material.SkyProceduralMaterial {}
  39599. /**
  39600. * <code>UnlitMaterial</code> 类用于实现不受光照影响的材质。
  39601. */
  39602. class UnlitMaterial extends laya.d3.core.material.UnlitMaterial {}
  39603. /**
  39604. * <code>WaterPrimaryMaterial</code> 类用于实现水材质。
  39605. */
  39606. class WaterPrimaryMaterial extends laya.d3.core.material.WaterPrimaryMaterial {}
  39607. /**
  39608. * <code>MeshFilter</code> 类用于创建网格过滤器。
  39609. */
  39610. class MeshFilter extends laya.d3.core.MeshFilter {}
  39611. /**
  39612. * <code>MeshRenderer</code> 类用于网格渲染器。
  39613. */
  39614. class MeshRenderer extends laya.d3.core.MeshRenderer {}
  39615. /**
  39616. * <code>MeshSprite3D</code> 类用于创建网格。
  39617. */
  39618. class MeshSprite3D extends laya.d3.core.MeshSprite3D {}
  39619. class MeshSprite3DShaderDeclaration extends laya.d3.core.MeshSprite3DShaderDeclaration {}
  39620. /**
  39621. * <code>TerrainMeshSprite3D</code> 类用于创建网格。
  39622. */
  39623. class MeshTerrainSprite3D extends laya.d3.core.MeshTerrainSprite3D {}
  39624. /**
  39625. * <code>Burst</code> 类用于粒子的爆裂描述。
  39626. */
  39627. class Burst extends laya.d3.core.particleShuriKen.module.Burst {}
  39628. /**
  39629. * <code>ColorOverLifetime</code> 类用于粒子的生命周期颜色。
  39630. */
  39631. class ColorOverLifetime extends laya.d3.core.particleShuriKen.module.ColorOverLifetime {}
  39632. /**
  39633. * <code>Emission</code> 类用于粒子发射器。
  39634. */
  39635. class Emission extends laya.d3.core.particleShuriKen.module.Emission {}
  39636. /**
  39637. * <code>FrameOverTime</code> 类用于创建时间帧。
  39638. */
  39639. class FrameOverTime extends laya.d3.core.particleShuriKen.module.FrameOverTime {}
  39640. /**
  39641. * <code>GradientRotation</code> 类用于创建渐变角速度。
  39642. */
  39643. class GradientAngularVelocity extends laya.d3.core.particleShuriKen.module.GradientAngularVelocity {}
  39644. /**
  39645. * <code>GradientColor</code> 类用于创建渐变颜色。
  39646. */
  39647. class GradientColor extends laya.d3.core.particleShuriKen.module.GradientColor {}
  39648. /**
  39649. * <code>GradientDataInt</code> 类用于创建整形渐变。
  39650. */
  39651. class GradientDataInt extends laya.d3.core.particleShuriKen.module.GradientDataInt {}
  39652. /**
  39653. * <code>GradientDataNumber</code> 类用于创建浮点渐变。
  39654. */
  39655. class GradientDataNumber extends laya.d3.core.particleShuriKen.module.GradientDataNumber {}
  39656. /**
  39657. * <code>GradientDataVector2</code> 类用于创建二维向量渐变。
  39658. */
  39659. class GradientDataVector2 extends laya.d3.core.particleShuriKen.module.GradientDataVector2 {}
  39660. /**
  39661. * <code>GradientSize</code> 类用于创建渐变尺寸。
  39662. */
  39663. class GradientSize extends laya.d3.core.particleShuriKen.module.GradientSize {}
  39664. /**
  39665. * <code>GradientVelocity</code> 类用于创建渐变速度。
  39666. */
  39667. class GradientVelocity extends laya.d3.core.particleShuriKen.module.GradientVelocity {}
  39668. /**
  39669. * <code>RotationOverLifetime</code> 类用于粒子的生命周期旋转。
  39670. */
  39671. class RotationOverLifetime extends laya.d3.core.particleShuriKen.module.RotationOverLifetime {}
  39672. /**
  39673. * <code>BaseShape</code> 类用于粒子形状。
  39674. */
  39675. class BaseShape extends laya.d3.core.particleShuriKen.module.shape.BaseShape {}
  39676. /**
  39677. * <code>BoxShape</code> 类用于创建球形粒子形状。
  39678. */
  39679. class BoxShape extends laya.d3.core.particleShuriKen.module.shape.BoxShape {}
  39680. /**
  39681. * <code>CircleShape</code> 类用于创建环形粒子形状。
  39682. */
  39683. class CircleShape extends laya.d3.core.particleShuriKen.module.shape.CircleShape {}
  39684. /**
  39685. * <code>ConeShape</code> 类用于创建锥形粒子形状。
  39686. */
  39687. class ConeShape extends laya.d3.core.particleShuriKen.module.shape.ConeShape {}
  39688. /**
  39689. * <code>HemisphereShape</code> 类用于创建半球形粒子形状。
  39690. */
  39691. class HemisphereShape extends laya.d3.core.particleShuriKen.module.shape.HemisphereShape {}
  39692. /**
  39693. * ...
  39694. * @author ...
  39695. */
  39696. class ShapeUtils extends laya.d3.core.particleShuriKen.module.shape.ShapeUtils {}
  39697. /**
  39698. * <code>SphereShape</code> 类用于创建球形粒子形状。
  39699. */
  39700. class SphereShape extends laya.d3.core.particleShuriKen.module.shape.SphereShape {}
  39701. /**
  39702. * <code>SizeOverLifetime</code> 类用于粒子的生命周期尺寸。
  39703. */
  39704. class SizeOverLifetime extends laya.d3.core.particleShuriKen.module.SizeOverLifetime {}
  39705. /**
  39706. * <code>StartFrame</code> 类用于创建开始帧。
  39707. */
  39708. class StartFrame extends laya.d3.core.particleShuriKen.module.StartFrame {}
  39709. /**
  39710. * <code>TextureSheetAnimation</code> 类用于创建粒子帧动画。
  39711. */
  39712. class TextureSheetAnimation extends laya.d3.core.particleShuriKen.module.TextureSheetAnimation {}
  39713. /**
  39714. * <code>VelocityOverLifetime</code> 类用于粒子的生命周期速度。
  39715. */
  39716. class VelocityOverLifetime extends laya.d3.core.particleShuriKen.module.VelocityOverLifetime {}
  39717. /**
  39718. * <code>ShuriKenParticle3D</code> 3D粒子。
  39719. */
  39720. class ShuriKenParticle3D extends laya.d3.core.particleShuriKen.ShuriKenParticle3D {}
  39721. class ShuriKenParticle3DShaderDeclaration extends laya.d3.core.particleShuriKen.ShuriKenParticle3DShaderDeclaration {}
  39722. /**
  39723. * <code>ShurikenParticleMaterial</code> 类用于实现粒子材质。
  39724. */
  39725. class ShurikenParticleMaterial extends laya.d3.core.particleShuriKen.ShurikenParticleMaterial {}
  39726. /**
  39727. * <code>ShurikenParticleRender</code> 类用于创建3D粒子渲染器。
  39728. */
  39729. class ShurikenParticleRenderer extends laya.d3.core.particleShuriKen.ShurikenParticleRenderer {}
  39730. /**
  39731. * <code>ShurikenParticleSystem</code> 类用于创建3D粒子数据模板。
  39732. */
  39733. class ShurikenParticleSystem extends laya.d3.core.particleShuriKen.ShurikenParticleSystem {}
  39734. /**
  39735. * <code>PixelLineData</code> 类用于表示线数据。
  39736. */
  39737. class PixelLineData extends laya.d3.core.pixelLine.PixelLineData {}
  39738. /**
  39739. * <code>PixelLineFilter</code> 类用于线过滤器。
  39740. */
  39741. class PixelLineFilter extends laya.d3.core.pixelLine.PixelLineFilter {}
  39742. /**
  39743. * <code>PixelLineMaterial</code> 类用于实现像素线材质。
  39744. */
  39745. class PixelLineMaterial extends laya.d3.core.pixelLine.PixelLineMaterial {}
  39746. /**
  39747. * <code>PixelLineRenderer</code> 类用于线渲染器。
  39748. */
  39749. class PixelLineRenderer extends laya.d3.core.pixelLine.PixelLineRenderer {}
  39750. /**
  39751. * <code>PixelLineSprite3D</code> 类用于像素线渲染精灵。
  39752. */
  39753. class PixelLineSprite3D extends laya.d3.core.pixelLine.PixelLineSprite3D {}
  39754. /**
  39755. * ...
  39756. * @author
  39757. */
  39758. class PixelLineVertex extends laya.d3.core.pixelLine.PixelLineVertex {}
  39759. /**
  39760. * <code>QuaternionKeyframe</code> 类用于创建四元数关键帧实例。
  39761. */
  39762. class QuaternionKeyframe extends laya.d3.core.QuaternionKeyframe {}
  39763. /**
  39764. * <code>Render</code> 类用于渲染器的父类,抽象类不允许实例。
  39765. */
  39766. class BaseRender extends laya.d3.core.render.BaseRender {}
  39767. /**
  39768. * <code>BloomEffect</code> 类用于创建泛光效果。
  39769. */
  39770. class BloomEffect extends laya.d3.core.render.BloomEffect {}
  39771. /**
  39772. * <code>BlitScreenQuadCMD</code> 类用于创建从一张渲染目标输出到另外一张渲染目标指令。
  39773. */
  39774. class BlitScreenQuadCMD extends laya.d3.core.render.command.BlitScreenQuadCMD {}
  39775. /**
  39776. * <code>Command</code> 类用于创建指令。
  39777. */
  39778. class Command extends laya.d3.core.render.command.Command {}
  39779. /**
  39780. * <code>CommandBuffer</code> 类用于创建命令流。
  39781. */
  39782. class CommandBuffer extends laya.d3.core.render.command.CommandBuffer {}
  39783. /**
  39784. * <code>PostProcessEffect</code> 类用于创建后期处理渲染效果。
  39785. */
  39786. class PostProcessEffect extends laya.d3.core.render.PostProcessEffect {}
  39787. /**
  39788. * * <code>PostProcessRenderContext</code> 类用于创建后期处理渲染上下文。
  39789. */
  39790. class PostProcessRenderContext extends laya.d3.core.render.PostProcessRenderContext {}
  39791. /**
  39792. * <code>RenderContext3D</code> 类用于实现渲染状态。
  39793. */
  39794. class RenderContext3D extends laya.d3.core.render.RenderContext3D {}
  39795. /**
  39796. * <code>RenderElement</code> 类用于实现渲染元素。
  39797. */
  39798. class RenderElement extends laya.d3.core.render.RenderElement {}
  39799. /**
  39800. * <code>ScreenQuad</code> 类用于创建全屏四边形。
  39801. */
  39802. class ScreenQuad extends laya.d3.core.render.ScreenQuad {}
  39803. /**
  39804. * <code>ScreenTriangle</code> 类用于创建全屏三角形。
  39805. */
  39806. class ScreenTriangle extends laya.d3.core.render.ScreenTriangle {}
  39807. /**
  39808. * <code>RenderableSprite3D</code> 类用于可渲染3D精灵的父类,抽象类不允许实例。
  39809. */
  39810. class RenderableSprite3D extends laya.d3.core.RenderableSprite3D {}
  39811. /**
  39812. * <code>BoundsOctree</code> 类用于创建八叉树。
  39813. */
  39814. class BoundsOctree extends laya.d3.core.scene.BoundsOctree {}
  39815. /**
  39816. * <code>BoundsOctreeNode</code> 类用于创建八叉树节点。
  39817. */
  39818. class BoundsOctreeNode extends laya.d3.core.scene.BoundsOctreeNode {}
  39819. /**
  39820. * 光照贴图。
  39821. */
  39822. class Lightmap extends laya.d3.core.scene.Lightmap {}
  39823. /**
  39824. * <code>OctreeMotionList</code> 类用于实现物理更新队列。
  39825. */
  39826. class OctreeMotionList extends laya.d3.core.scene.OctreeMotionList {}
  39827. enum AmbientMode {
  39828. /** 固定颜色。*/
  39829. SolidColor = 0,
  39830. /** 球谐光照,例如通过天空盒生成的球谐数据。 */
  39831. SphericalHarmonics = 1
  39832. }
  39833. /**
  39834. * 用于实现3D场景。
  39835. */
  39836. class Scene3D extends laya.d3.core.scene.Scene3D {}
  39837. class Scene3DShaderDeclaration extends laya.d3.core.scene.Scene3DShaderDeclaration {}
  39838. /**
  39839. * ...
  39840. * @author ...
  39841. */
  39842. class SceneManager extends laya.d3.core.scene.SceneManager {}
  39843. /**
  39844. * <code>SkinMeshRenderer</code> 类用于蒙皮渲染器。
  39845. */
  39846. class SkinnedMeshRenderer extends laya.d3.core.SkinnedMeshRenderer {}
  39847. /**
  39848. * <code>SkinnedMeshSprite3D</code> 类用于创建网格。
  39849. */
  39850. class SkinnedMeshSprite3D extends laya.d3.core.SkinnedMeshSprite3D {}
  39851. class SkinnedMeshSprite3DShaderDeclaration extends laya.d3.core.SkinnedMeshSprite3DShaderDeclaration {}
  39852. /**
  39853. * <code>Sprite3D</code> 类用于实现3D精灵。
  39854. */
  39855. class Sprite3D extends laya.d3.core.Sprite3D {}
  39856. class TextureMode extends laya.d3.core.TextureMode {}
  39857. enum TrailAlignment {
  39858. View = 0,
  39859. TransformZ = 1
  39860. }
  39861. /**
  39862. * <code>TrailFilter</code> 类用于创建拖尾过滤器。
  39863. */
  39864. class TrailFilter extends laya.d3.core.trail.TrailFilter {}
  39865. /**
  39866. * <code>TrailGeometry</code> 类用于创建拖尾渲染单元。
  39867. */
  39868. class TrailGeometry extends laya.d3.core.trail.TrailGeometry {}
  39869. /**
  39870. * <code>TrailMaterial</code> 类用于实现拖尾材质。
  39871. */
  39872. class TrailMaterial extends laya.d3.core.trail.TrailMaterial {}
  39873. /**
  39874. * <code>TrailRenderer</code> 类用于创建拖尾渲染器。
  39875. */
  39876. class TrailRenderer extends laya.d3.core.trail.TrailRenderer {}
  39877. /**
  39878. * <code>TrailSprite3D</code> 类用于创建拖尾渲染精灵。
  39879. */
  39880. class TrailSprite3D extends laya.d3.core.trail.TrailSprite3D {}
  39881. /**
  39882. * <code>VertexTrail</code> 类用于创建拖尾顶点结构。
  39883. */
  39884. class VertexTrail extends laya.d3.core.trail.VertexTrail {}
  39885. /**
  39886. * <code>Transform3D</code> 类用于实现3D变换。
  39887. */
  39888. class Transform3D extends laya.d3.core.Transform3D {}
  39889. /**
  39890. * <code>Vector3Keyframe</code> 类用于创建三维向量关键帧实例。
  39891. */
  39892. class Vector3Keyframe extends laya.d3.core.Vector3Keyframe {}
  39893. class CameraCullInfo extends laya.d3.graphics.CameraCullInfo {}
  39894. class ShadowCullInfo extends laya.d3.graphics.ShadowCullInfo {}
  39895. /**
  39896. * <code>IndexBuffer3D</code> 类用于创建索引缓冲。
  39897. */
  39898. class IndexBuffer3D extends laya.d3.graphics.IndexBuffer3D {}
  39899. enum IndexFormat {
  39900. /** 8 位无符号整型索引格式。*/
  39901. UInt8 = 0,
  39902. /** 16 位无符号整型索引格式。*/
  39903. UInt16 = 1,
  39904. /** 32 位无符号整型索引格式。*/
  39905. UInt32 = 2
  39906. }
  39907. /**
  39908. * 二阶球谐函数。
  39909. */
  39910. class SphericalHarmonicsL2 extends laya.d3.graphics.SphericalHarmonicsL2 {}
  39911. /**
  39912. * <code>StaticBatchManager</code> 类用于静态批处理管理的父类。
  39913. */
  39914. class StaticBatchManager extends laya.d3.graphics.StaticBatchManager {}
  39915. /**
  39916. * ...
  39917. * @author ...
  39918. */
  39919. class VertexMesh extends laya.d3.graphics.Vertex.VertexMesh {}
  39920. /**
  39921. * <code>VertexPositionTerrain</code> 类用于创建位置、法线、纹理1、纹理2顶点结构。
  39922. */
  39923. class VertexPositionTerrain extends laya.d3.graphics.Vertex.VertexPositionTerrain {}
  39924. /**
  39925. * <code>VertexPositionNormalTexture</code> 类用于创建位置、纹理顶点结构。
  39926. */
  39927. class VertexPositionTexture0 extends laya.d3.graphics.Vertex.VertexPositionTexture0 {}
  39928. /**
  39929. * ...
  39930. * @author ...
  39931. */
  39932. class VertexShuriKenParticle extends laya.d3.graphics.Vertex.VertexShuriKenParticle {}
  39933. /**
  39934. * <code>VertexShurikenParticle</code> 类用于创建粒子顶点结构。
  39935. */
  39936. class VertexShurikenParticleBillboard extends laya.d3.graphics.Vertex.VertexShurikenParticleBillboard {}
  39937. /**
  39938. * /**
  39939. * <code>VertexShurikenParticle</code> 类用于创建粒子顶点结构。
  39940. */
  39941. class VertexShurikenParticleMesh extends laya.d3.graphics.Vertex.VertexShurikenParticleMesh {}
  39942. /**
  39943. * <code>VertexBuffer3D</code> 类用于创建顶点缓冲。
  39944. */
  39945. class VertexBuffer3D extends laya.d3.graphics.VertexBuffer3D {}
  39946. /**
  39947. * <code>VertexDeclaration</code> 类用于生成顶点声明。
  39948. */
  39949. class VertexDeclaration extends laya.d3.graphics.VertexDeclaration {}
  39950. /**
  39951. * <code>VertexElement</code> 类用于创建顶点结构分配。
  39952. */
  39953. class VertexElement extends laya.d3.graphics.VertexElement {}
  39954. /**
  39955. * ...
  39956. * @author ...
  39957. */
  39958. class VertexElementFormat extends laya.d3.graphics.VertexElementFormat {}
  39959. /**
  39960. * <code>Input3D</code> 类用于实现3D输入。
  39961. */
  39962. class Input3D extends laya.d3.Input3D {}
  39963. /**
  39964. * <code>BoundBox</code> 类用于创建包围盒。
  39965. */
  39966. class BoundBox extends laya.d3.math.BoundBox {}
  39967. enum FrustumCorner {
  39968. FarBottomLeft = 0,
  39969. FarTopLeft = 1,
  39970. FarTopRight = 2,
  39971. FarBottomRight = 3,
  39972. nearBottomLeft = 4,
  39973. nearTopLeft = 5,
  39974. nearTopRight = 6,
  39975. nearBottomRight = 7,
  39976. unknown = 8
  39977. }
  39978. /**
  39979. * <code>BoundFrustum</code> 类用于创建锥截体。
  39980. */
  39981. class BoundFrustum extends laya.d3.math.BoundFrustum {}
  39982. /**
  39983. * <code>BoundSphere</code> 类用于创建包围球。
  39984. */
  39985. class BoundSphere extends laya.d3.math.BoundSphere {}
  39986. /**
  39987. * <code>Collision</code> 类用于检测碰撞。
  39988. */
  39989. class CollisionUtils extends laya.d3.math.CollisionUtils {}
  39990. /**
  39991. * <code>Color</code> 类用于创建颜色实例。
  39992. */
  39993. class Color extends laya.d3.math.Color {}
  39994. /**
  39995. * <code>ContainmentType</code> 类用于定义空间物体位置关系。
  39996. */
  39997. class ContainmentType extends laya.d3.math.ContainmentType {}
  39998. /**
  39999. * <code>HalfFloatUtils</code> 类用于创建HalfFloat工具。
  40000. */
  40001. class HalfFloatUtils extends laya.d3.math.HalfFloatUtils {}
  40002. /**
  40003. * <code>MathUtils3D</code> 类用于创建数学工具。
  40004. */
  40005. class MathUtils3D extends laya.d3.math.MathUtils3D {}
  40006. /**
  40007. * <code>Matrix3x3</code> 类用于创建3x3矩阵。
  40008. */
  40009. class Matrix3x3 extends laya.d3.math.Matrix3x3 {}
  40010. /**
  40011. * <code>Matrix4x4</code> 类用于创建4x4矩阵。
  40012. */
  40013. class Matrix4x4 extends laya.d3.math.Matrix4x4 {}
  40014. /**
  40015. * <code>Quaternion</code> 类用于创建四元数。
  40016. */
  40017. class ConchQuaternion extends laya.d3.math.Native.ConchQuaternion {}
  40018. /**
  40019. * <code>Vector3</code> 类用于创建三维向量。
  40020. */
  40021. class ConchVector3 extends laya.d3.math.Native.ConchVector3 {}
  40022. /**
  40023. * <code>Vector4</code> 类用于创建四维向量。
  40024. */
  40025. class ConchVector4 extends laya.d3.math.Native.ConchVector4 {}
  40026. /**
  40027. * 平面。
  40028. */
  40029. class Plane extends laya.d3.math.Plane {}
  40030. /**
  40031. * <code>Quaternion</code> 类用于创建四元数。
  40032. */
  40033. class Quaternion extends laya.d3.math.Quaternion {}
  40034. /**
  40035. * <code>Rand</code> 类用于通过32位无符号整型随机种子创建随机数。
  40036. */
  40037. class Rand extends laya.d3.math.Rand {}
  40038. /**
  40039. * <code>Rand</code> 类用于通过128位整型种子创建随机数,算法来自:https://github.com/AndreasMadsen/xorshift。
  40040. */
  40041. class RandX extends laya.d3.math.RandX {}
  40042. /**
  40043. * <code>Ray</code> 类用于创建射线。
  40044. */
  40045. class Ray extends laya.d3.math.Ray {}
  40046. /**
  40047. * <code>Vector2</code> 类用于创建二维向量。
  40048. */
  40049. class Vector2 extends laya.d3.math.Vector2 {}
  40050. /**
  40051. * <code>Vector3</code> 类用于创建三维向量。
  40052. */
  40053. class Vector3 extends laya.d3.math.Vector3 {}
  40054. /**
  40055. * <code>Vector4</code> 类用于创建四维向量。
  40056. */
  40057. class Vector4 extends laya.d3.math.Vector4 {}
  40058. /**
  40059. * <code>Viewport</code> 类用于创建视口。
  40060. */
  40061. class Viewport extends laya.d3.math.Viewport {}
  40062. class BulletInteractive extends laya.d3.physics.BulletInteractive {}
  40063. /**
  40064. * <code>CharacterController</code> 类用于创建角色控制器。
  40065. */
  40066. class CharacterController extends laya.d3.physics.CharacterController {}
  40067. /**
  40068. * <code>Collision</code> 类用于创建物理碰撞信息。
  40069. */
  40070. class Collision extends laya.d3.physics.Collision {}
  40071. /**
  40072. * <code>CollisionMap</code> 类用于实现碰撞组合实例图。
  40073. */
  40074. class CollisionTool extends laya.d3.physics.CollisionTool {}
  40075. /**
  40076. * ...
  40077. * @author ...
  40078. */
  40079. class Constraint3D extends laya.d3.physics.Constraint3D {}
  40080. class ConfigurableConstraint extends laya.d3.physics.constraints.ConfigurableConstraint {}
  40081. /**
  40082. * <code>ConstraintComponent</code> 类用于创建约束的父类。
  40083. */
  40084. class ConstraintComponent extends laya.d3.physics.constraints.ConstraintComponent {}
  40085. class FixedConstraint extends laya.d3.physics.constraints.FixedConstraint {}
  40086. /**
  40087. * <code>Point2PointConstraint</code> 类用于创建物理组件的父类。
  40088. */
  40089. class Point2PointConstraint extends laya.d3.physics.constraints.Point2PointConstraint {}
  40090. /**
  40091. * <code>ContactPoint</code> 类用于创建物理碰撞信息。
  40092. */
  40093. class ContactPoint extends laya.d3.physics.ContactPoint {}
  40094. /**
  40095. * <code>HitResult</code> 类用于实现射线检测或形状扫描的结果。
  40096. */
  40097. class HitResult extends laya.d3.physics.HitResult {}
  40098. class Physics3D extends laya.d3.physics.Physics3D {}
  40099. /**
  40100. * <code>PhysicsCollider</code> 类用于创建物理碰撞器。
  40101. */
  40102. class PhysicsCollider extends laya.d3.physics.PhysicsCollider {}
  40103. /**
  40104. * <code>PhysicsComponent</code> 类用于创建物理组件的父类。
  40105. */
  40106. class PhysicsComponent extends laya.d3.physics.PhysicsComponent {}
  40107. /**
  40108. * <code>PhysicsSettings</code> 类用于创建物理配置信息。
  40109. */
  40110. class PhysicsSettings extends laya.d3.physics.PhysicsSettings {}
  40111. /**
  40112. * <code>Simulation</code> 类用于创建物理模拟器。
  40113. */
  40114. class PhysicsSimulation extends laya.d3.physics.PhysicsSimulation {}
  40115. /**
  40116. * <code>PhysicsTriggerComponent</code> 类用于创建物理触发器组件。
  40117. */
  40118. class PhysicsTriggerComponent extends laya.d3.physics.PhysicsTriggerComponent {}
  40119. /**
  40120. * <code>PhysicsUpdateList</code> 类用于实现物理更新队列。
  40121. */
  40122. class PhysicsUpdateList extends laya.d3.physics.PhysicsUpdateList {}
  40123. /**
  40124. * <code>Rigidbody3D</code> 类用于创建刚体碰撞器。
  40125. */
  40126. class Rigidbody3D extends laya.d3.physics.Rigidbody3D {}
  40127. /**
  40128. * <code>BoxColliderShape</code> 类用于创建盒子形状碰撞器。
  40129. */
  40130. class BoxColliderShape extends laya.d3.physics.shape.BoxColliderShape {}
  40131. /**
  40132. * <code>CapsuleColliderShape</code> 类用于创建胶囊形状碰撞器。
  40133. */
  40134. class CapsuleColliderShape extends laya.d3.physics.shape.CapsuleColliderShape {}
  40135. /**
  40136. * <code>ColliderShape</code> 类用于创建形状碰撞器的父类,该类为抽象类。
  40137. */
  40138. class ColliderShape extends laya.d3.physics.shape.ColliderShape {}
  40139. /**
  40140. * <code>CompoundColliderShape</code> 类用于创建盒子形状碰撞器。
  40141. */
  40142. class CompoundColliderShape extends laya.d3.physics.shape.CompoundColliderShape {}
  40143. /**
  40144. * <code>ConeColliderShape</code> 类用于创建圆柱碰撞器。
  40145. */
  40146. class ConeColliderShape extends laya.d3.physics.shape.ConeColliderShape {}
  40147. /**
  40148. * <code>CylinderColliderShape</code> 类用于创建圆柱碰撞器。
  40149. */
  40150. class CylinderColliderShape extends laya.d3.physics.shape.CylinderColliderShape {}
  40151. /**
  40152. * ...
  40153. * @author ...
  40154. */
  40155. class HeightfieldColliderShape extends laya.d3.physics.shape.HeightfieldColliderShape {}
  40156. /**
  40157. * <code>MeshColliderShape</code> 类用于创建网格碰撞器。
  40158. */
  40159. class MeshColliderShape extends laya.d3.physics.shape.MeshColliderShape {}
  40160. /**
  40161. * <code>SphereColliderShape</code> 类用于创建球形碰撞器。
  40162. */
  40163. class SphereColliderShape extends laya.d3.physics.shape.SphereColliderShape {}
  40164. /**
  40165. * <code>StaticPlaneColliderShape</code> 类用于创建静态平面碰撞器。
  40166. */
  40167. class StaticPlaneColliderShape extends laya.d3.physics.shape.StaticPlaneColliderShape {}
  40168. /**
  40169. * <code>Collision</code> 类用于创建物理碰撞信息。
  40170. */
  40171. class CannonCollision extends laya.d3.physicsCannon.CannonCollision {}
  40172. /**
  40173. * <code>CollisionMap</code> 类用于实现碰撞组合实例图。
  40174. */
  40175. class CannonCollisionTool extends laya.d3.physicsCannon.CannonCollisionTool {}
  40176. /**
  40177. * <code>ContactPoint</code> 类用于创建物理碰撞信息。
  40178. */
  40179. class CannonContactPoint extends laya.d3.physicsCannon.CannonContactPoint {}
  40180. /**
  40181. * <code>HitResult</code> 类用于实现射线检测或形状扫描的结果。
  40182. */
  40183. class CannonHitResult extends laya.d3.physicsCannon.CannonHitResult {}
  40184. /**
  40185. * <code>PhysicsCollider</code> 类用于创建物理碰撞器。
  40186. */
  40187. class CannonPhysicsCollider extends laya.d3.physicsCannon.CannonPhysicsCollider {}
  40188. /**
  40189. * <code>PhysicsComponent</code> 类用于创建物理组件的父类。
  40190. */
  40191. class CannonPhysicsComponent extends laya.d3.physicsCannon.CannonPhysicsComponent {}
  40192. /**
  40193. * <code>PhysicsSettings</code> 类用于创建物理配置信息。
  40194. */
  40195. class CannonPhysicsSettings extends laya.d3.physicsCannon.CannonPhysicsSettings {}
  40196. /**
  40197. * <code>Simulation</code> 类用于创建物理模拟器。
  40198. */
  40199. class CannonPhysicsSimulation extends laya.d3.physicsCannon.CannonPhysicsSimulation {}
  40200. /**
  40201. * <code>PhysicsTriggerComponent</code> 类用于创建物理触发器组件。
  40202. */
  40203. class CannonPhysicsTriggerComponent extends laya.d3.physicsCannon.CannonPhysicsTriggerComponent {}
  40204. /**
  40205. * <code>PhysicsUpdateList</code> 类用于实现物理更新队列。
  40206. */
  40207. class CannonPhysicsUpdateList extends laya.d3.physicsCannon.CannonPhysicsUpdateList {}
  40208. /**
  40209. * <code>Rigidbody3D</code> 类用于创建刚体碰撞器。
  40210. */
  40211. class CannonRigidbody3D extends laya.d3.physicsCannon.CannonRigidbody3D {}
  40212. /**
  40213. * <code>BoxColliderShape</code> 类用于创建盒子形状碰撞器。
  40214. */
  40215. class CannonBoxColliderShape extends laya.d3.physicsCannon.shape.CannonBoxColliderShape {}
  40216. /**
  40217. * <code>ColliderShape</code> 类用于创建形状碰撞器的父类,该类为抽象类。
  40218. */
  40219. class CannonColliderShape extends laya.d3.physicsCannon.shape.CannonColliderShape {}
  40220. /**
  40221. * <code>CompoundColliderShape</code> 类用于创建盒子形状碰撞器。
  40222. */
  40223. class CannonCompoundColliderShape extends laya.d3.physicsCannon.shape.CannonCompoundColliderShape {}
  40224. /**
  40225. * <code>SphereColliderShape</code> 类用于创建球形碰撞器。
  40226. */
  40227. class CannonSphereColliderShape extends laya.d3.physicsCannon.shape.CannonSphereColliderShape {}
  40228. /**
  40229. * <code>Mesh</code> 类用于创建文件网格数据模板。
  40230. */
  40231. class Mesh extends laya.d3.resource.models.Mesh {}
  40232. /**
  40233. * <code>PrimitiveMesh</code> 类用于创建简单网格。
  40234. */
  40235. class PrimitiveMesh extends laya.d3.resource.models.PrimitiveMesh {}
  40236. /**
  40237. * <code>SkyBox</code> 类用于创建天空盒。
  40238. */
  40239. class SkyBox extends laya.d3.resource.models.SkyBox {}
  40240. /**
  40241. * <code>SkyDome</code> 类用于创建天空盒。
  40242. */
  40243. class SkyDome extends laya.d3.resource.models.SkyDome {}
  40244. /**
  40245. * <code>SkyMesh</code> 类用于实现天空网格。
  40246. */
  40247. class SkyMesh extends laya.d3.resource.models.SkyMesh {}
  40248. /**
  40249. * <code>SkyRenderer</code> 类用于实现天空渲染器。
  40250. */
  40251. class SkyRenderer extends laya.d3.resource.models.SkyRenderer {}
  40252. /**
  40253. * <code>SubMesh</code> 类用于创建子网格数据模板。
  40254. */
  40255. class SubMesh extends laya.d3.resource.models.SubMesh {}
  40256. /**
  40257. * <code>RenderTexture</code> 类用于创建渲染目标。
  40258. */
  40259. class RenderTexture extends laya.d3.resource.RenderTexture {}
  40260. enum TextureCubeFace {
  40261. PositiveX = 0,
  40262. NegativeX = 1,
  40263. PositiveY = 2,
  40264. NegativeY = 3,
  40265. PositiveZ = 4,
  40266. NegativeZ = 5
  40267. }
  40268. /**
  40269. * <code>TextureCube</code> 类用于生成立方体纹理。
  40270. */
  40271. class TextureCube extends laya.d3.resource.TextureCube {}
  40272. /**
  40273. * ...
  40274. * @author
  40275. */
  40276. class TextureGenerator extends laya.d3.resource.TextureGenerator {}
  40277. /**
  40278. * <code>DefineDatas</code> 类用于创建宏定义数据集合。
  40279. */
  40280. class DefineDatas extends laya.d3.shader.DefineDatas {}
  40281. /**
  40282. * <code>Shader3D</code> 类用于创建Shader3D。
  40283. */
  40284. class Shader3D extends laya.d3.shader.Shader3D {}
  40285. /**
  40286. * 着色器数据类。
  40287. */
  40288. class ShaderData extends laya.d3.shader.ShaderData {}
  40289. class ShaderDefine extends laya.d3.shader.ShaderDefine {}
  40290. /**
  40291. * <code>ShaderPass</code> 类用于实现ShaderPass。
  40292. */
  40293. class ShaderPass extends laya.d3.shader.ShaderPass {}
  40294. /**
  40295. * 着色器变种。
  40296. */
  40297. class ShaderVariant extends laya.d3.shader.ShaderVariant {}
  40298. /**
  40299. * 着色器变种集合。
  40300. */
  40301. class ShaderVariantCollection extends laya.d3.shader.ShaderVariantCollection {}
  40302. /**
  40303. * <code>SubShader</code> 类用于创建SubShader。
  40304. */
  40305. class SubShader extends laya.d3.shader.SubShader {}
  40306. enum ShadowLightType {
  40307. DirectionLight = 0,
  40308. SpotLight = 1,
  40309. PointLight = 2
  40310. }
  40311. class ShadowCasterPass extends laya.d3.shadowMap.ShadowCasterPass {}
  40312. class ShadowSpotData extends laya.d3.shadowMap.ShadowSpotData {}
  40313. /**
  40314. * <code>TextMesh</code> 类用于创建文本网格。
  40315. */
  40316. class TextMesh extends laya.d3.text.TextMesh {}
  40317. /**
  40318. * <code>Touch</code> 类用于实现触摸描述。
  40319. */
  40320. class Touch extends laya.d3.Touch {}
  40321. /**
  40322. * <code>Physics</code> 类用于简单物理检测。
  40323. */
  40324. class Physics3DUtils extends laya.d3.utils.Physics3DUtils {}
  40325. /**
  40326. * <code>Picker</code> 类用于创建拾取。
  40327. */
  40328. class Picker extends laya.d3.utils.Picker {}
  40329. /**
  40330. * <code>Utils3D</code> 类用于创建3D工具。
  40331. */
  40332. class Scene3DUtils extends laya.d3.utils.Scene3DUtils {}
  40333. class Size extends laya.d3.utils.Size {}
  40334. /**
  40335. * <code>Utils3D</code> 类用于创建3D工具。
  40336. */
  40337. class Utils3D extends laya.d3.utils.Utils3D {}
  40338. /**
  40339. * 使用前可用<code>supported</code>查看浏览器支持。
  40340. */
  40341. class Geolocation extends laya.device.geolocation.Geolocation {}
  40342. class GeolocationInfo extends laya.device.geolocation.GeolocationInfo {}
  40343. /**
  40344. * Media用于捕捉摄像头和麦克风。可以捕捉任意之一,或者同时捕捉两者。<code>getCamera</code>前可以使用<code>supported()</code>检查当前浏览器是否支持。
  40345. * <b>NOTE:</b>
  40346. * <p>目前Media在移动平台只支持Android,不支持IOS。只可在FireFox完整地使用,Chrome测试时无法捕捉视频。</p>
  40347. */
  40348. class Media extends laya.device.media.Media {}
  40349. const enum VIDEOTYPE {
  40350. MP4 = 1,
  40351. OGG = 2,
  40352. CAMERA = 4,
  40353. WEBM = 8
  40354. }
  40355. /**
  40356. * <code>Video</code>将视频显示到Canvas上。<code>Video</code>可能不会在所有浏览器有效。
  40357. * <p>关于Video支持的所有事件参见:<i>http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp</i>。</p>
  40358. * <p>
  40359. * <b>注意:</b><br/>
  40360. * 在PC端可以在任何时机调用<code>play()</code>因此,可以在程序开始运行时就使Video开始播放。但是在移动端,只有在用户第一次触碰屏幕后才可以调用play(),所以移动端不可能在程序开始运行时就自动开始播放Video。
  40361. * </p>
  40362. *
  40363. * <p>MDN Video链接: <i>https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video</i></p>
  40364. */
  40365. class Video extends laya.device.media.Video {}
  40366. /**
  40367. * 加速度x/y/z的单位均为m/s²。
  40368. * 在硬件(陀螺仪)不支持的情况下,alpha、beta和gamma值为null。
  40369. * @author Survivor
  40370. */
  40371. class AccelerationInfo extends laya.device.motion.AccelerationInfo {}
  40372. /**
  40373. * Accelerator.instance获取唯一的Accelerator引用,请勿调用构造函数。
  40374. *
  40375. * <p>
  40376. * listen()的回调处理器接受四个参数:
  40377. * <ol>
  40378. * <li><b>acceleration</b>: 表示用户给予设备的加速度。</li>
  40379. * <li><b>accelerationIncludingGravity</b>: 设备受到的总加速度(包含重力)。</li>
  40380. * <li><b>rotationRate</b>: 设备的自转速率。</li>
  40381. * <li><b>interval</b>: 加速度获取的时间间隔(毫秒)。</li>
  40382. * </ol>
  40383. * </p>
  40384. * <p>
  40385. * <b>NOTE</b><br/>
  40386. * 如,rotationRate的alpha在apple和moz文档中都是z轴旋转角度,但是实测是x轴旋转角度。为了使各属性表示的值与文档所述相同,实际值与其他属性进行了对调。
  40387. * 其中:
  40388. * <ul>
  40389. * <li>alpha使用gamma值。</li>
  40390. * <li>beta使用alpha值。</li>
  40391. * <li>gamma使用beta。</li>
  40392. * </ul>
  40393. * 目前孰是孰非尚未可知,以此为注。
  40394. * </p>
  40395. */
  40396. class Accelerator extends laya.device.motion.Accelerator {}
  40397. /**
  40398. * 使用Gyroscope.instance获取唯一的Gyroscope引用,请勿调用构造函数。
  40399. *
  40400. * <p>
  40401. * listen()的回调处理器接受两个参数:
  40402. * <code>function onOrientationChange(absolute:Boolean, info:RotationInfo):void</code>
  40403. * <ol>
  40404. * <li><b>absolute</b>: 指示设备是否可以提供绝对方位数据(指向地球坐标系),或者设备决定的任意坐标系。关于坐标系参见<i>https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Orientation_and_motion_data_explained</i>。</li>
  40405. * <li><b>info</b>: <code>RotationInfo</code>类型参数,保存设备的旋转值。</li>
  40406. * </ol>
  40407. * </p>
  40408. *
  40409. * <p>
  40410. * 浏览器兼容性参见:<i>http://caniuse.com/#search=deviceorientation</i>
  40411. * </p>
  40412. */
  40413. class Gyroscope extends laya.device.motion.Gyroscope {}
  40414. /**
  40415. * 保存旋转信息的类。请勿修改本类的属性。
  40416. * @author Survivor
  40417. */
  40418. class RotationInfo extends laya.device.motion.RotationInfo {}
  40419. /**
  40420. * Shake只能在支持此操作的设备上有效。
  40421. */
  40422. class Shake extends laya.device.Shake {}
  40423. /**
  40424. * 动画播放完毕后调度。
  40425. * @eventType Event.COMPLETE
  40426. */
  40427. /**
  40428. * 播放到某标签后调度。
  40429. * @eventType Event.LABEL
  40430. */
  40431. /**
  40432. * <p> <code>Animation</code> 是Graphics动画类。实现了基于Graphics的动画创建、播放、控制接口。</p>
  40433. * <p>本类使用了动画模版缓存池,它以一定的内存开销来节省CPU开销,当相同的动画模版被多次使用时,相比于每次都创建新的动画模版,使用动画模版缓存池,只需创建一次,缓存之后多次复用,从而节省了动画模版创建的开销。</p>
  40434. * <p>动画模版缓存池,以key-value键值对存储,key可以自定义,也可以从指定的配置文件中读取,value为对应的动画模版,是一个Graphics对象数组,每个Graphics对象对应一个帧图像,动画的播放实质就是定时切换Graphics对象。</p>
  40435. * <p>使用set source、loadImages(...)、loadAtlas(...)、loadAnimation(...)方法可以创建动画模版。使用play(...)可以播放指定动画。</p>
  40436. * @example <caption>以下示例代码,创建了一个 <code>Text</code> 实例。</caption>
  40437. package
  40438. {
  40439. import laya.display.Animation;
  40440. import laya.net.Loader;
  40441. import laya.utils.Handler;
  40442. public class Animation_Example
  40443. {
  40444. public function Animation_Example()
  40445. {
  40446. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  40447. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  40448. init();//初始化
  40449. }
  40450. private function init():void
  40451. {
  40452. var animation:Animation = new Animation();//创建一个 Animation 类的实例对象 animation 。
  40453. animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放
  40454. animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  40455. animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  40456. animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。
  40457. animation.play();//播放动画。
  40458. Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。
  40459. }
  40460. }
  40461. }
  40462. * @example Animation_Example();
  40463. function Animation_Example(){
  40464. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  40465. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  40466. init();//初始化
  40467. }
  40468. function init()
  40469. {
  40470. var animation = new Laya.Animation();//创建一个 Animation 类的实例对象 animation 。
  40471. animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放
  40472. animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  40473. animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  40474. animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。
  40475. animation.play();//播放动画。
  40476. Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。
  40477. }
  40478. * @example import Animation = laya.display.Animation;
  40479. class Animation_Example {
  40480. constructor() {
  40481. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  40482. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  40483. this.init();
  40484. }
  40485. private init(): void {
  40486. var animation:Animation = new Laya.Animation();//创建一个 Animation 类的实例对象 animation 。
  40487. animation.loadAtlas("resource/ani/fighter.json");//加载图集并播放
  40488. animation.x = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  40489. animation.y = 200;//设置 animation 对象的属性 x 的值,用于控制 animation 对象的显示位置。
  40490. animation.interval = 50;//设置 animation 对象的动画播放间隔时间,单位:毫秒。
  40491. animation.play();//播放动画。
  40492. Laya.stage.addChild(animation);//将 animation 对象添加到显示列表。
  40493. }
  40494. }
  40495. new Animation_Example();
  40496. */
  40497. class Animation extends laya.display.Animation {}
  40498. /**
  40499. * 动画播放完毕后调度。
  40500. * @eventType Event.COMPLETE
  40501. */
  40502. /**
  40503. * 播放到某标签后调度。
  40504. * @eventType Event.LABEL
  40505. */
  40506. /**
  40507. * <p>动画基类,提供了基础的动画播放控制方法和帧标签事件相关功能。</p>
  40508. * <p>可以继承此类,但不要直接实例化此类,因为有些方法需要由子类实现。</p>
  40509. */
  40510. class AnimationBase extends laya.display.AnimationBase {}
  40511. /**
  40512. * <code>BitmapFont</code> 是位图字体类,用于定义位图字体信息。
  40513. * 字体制作及使用方法,请参考文章
  40514. * @see http://ldc2.layabox.com/doc/?nav=ch-js-1-2-5
  40515. */
  40516. class BitmapFont extends laya.display.BitmapFont {}
  40517. /**
  40518. * 透明命令
  40519. */
  40520. class AlphaCmd extends laya.display.cmd.AlphaCmd {}
  40521. /**
  40522. * 裁剪命令
  40523. */
  40524. class ClipRectCmd extends laya.display.cmd.ClipRectCmd {}
  40525. /**
  40526. * 绘制圆形
  40527. */
  40528. class DrawCircleCmd extends laya.display.cmd.DrawCircleCmd {}
  40529. /**
  40530. * 绘制曲线
  40531. */
  40532. class DrawCurvesCmd extends laya.display.cmd.DrawCurvesCmd {}
  40533. /**
  40534. * 绘制图片
  40535. */
  40536. class DrawImageCmd extends laya.display.cmd.DrawImageCmd {}
  40537. /**
  40538. * 绘制单条曲线
  40539. */
  40540. class DrawLineCmd extends laya.display.cmd.DrawLineCmd {}
  40541. /**
  40542. * 绘制连续曲线
  40543. */
  40544. class DrawLinesCmd extends laya.display.cmd.DrawLinesCmd {}
  40545. /**
  40546. * 绘制粒子
  40547. * @private
  40548. */
  40549. class DrawParticleCmd extends laya.display.cmd.DrawParticleCmd {}
  40550. /**
  40551. * 根据路径绘制矢量图形
  40552. */
  40553. class DrawPathCmd extends laya.display.cmd.DrawPathCmd {}
  40554. /**
  40555. * 绘制扇形
  40556. */
  40557. class DrawPieCmd extends laya.display.cmd.DrawPieCmd {}
  40558. /**
  40559. * 绘制多边形
  40560. */
  40561. class DrawPolyCmd extends laya.display.cmd.DrawPolyCmd {}
  40562. /**
  40563. * 绘制矩形
  40564. */
  40565. class DrawRectCmd extends laya.display.cmd.DrawRectCmd {}
  40566. /**
  40567. * 绘制单个贴图
  40568. */
  40569. class DrawTextureCmd extends laya.display.cmd.DrawTextureCmd {}
  40570. /**
  40571. * 根据坐标集合绘制多个贴图
  40572. */
  40573. class DrawTexturesCmd extends laya.display.cmd.DrawTexturesCmd {}
  40574. /**
  40575. * 绘制三角形命令
  40576. */
  40577. class DrawTrianglesCmd extends laya.display.cmd.DrawTrianglesCmd {}
  40578. /**
  40579. * 绘制文字
  40580. */
  40581. class FillTextCmd extends laya.display.cmd.FillTextCmd {}
  40582. /**
  40583. * 填充贴图
  40584. */
  40585. class FillTextureCmd extends laya.display.cmd.FillTextureCmd {}
  40586. /**
  40587. * 恢复命令,和save配套使用
  40588. */
  40589. class RestoreCmd extends laya.display.cmd.RestoreCmd {}
  40590. /**
  40591. * 旋转命令
  40592. */
  40593. class RotateCmd extends laya.display.cmd.RotateCmd {}
  40594. /**
  40595. * 存储命令,和restore配套使用
  40596. */
  40597. class SaveCmd extends laya.display.cmd.SaveCmd {}
  40598. /**
  40599. * 缩放命令
  40600. */
  40601. class ScaleCmd extends laya.display.cmd.ScaleCmd {}
  40602. /**
  40603. * 矩阵命令
  40604. */
  40605. class TransformCmd extends laya.display.cmd.TransformCmd {}
  40606. /**
  40607. * 位移命令
  40608. */
  40609. class TranslateCmd extends laya.display.cmd.TranslateCmd {}
  40610. /**
  40611. * 元素样式
  40612. */
  40613. class SpriteStyle extends laya.display.css.SpriteStyle {}
  40614. /**
  40615. * 文本的样式类
  40616. */
  40617. class TextStyle extends laya.display.css.TextStyle {}
  40618. /**
  40619. * <p> 动效模板。用于为指定目标对象添加动画效果。每个动效有唯一的目标对象,而同一个对象可以添加多个动效。 当一个动效开始播放时,其他动效会自动停止播放。</p>
  40620. * <p> 可以通过LayaAir IDE创建。 </p>
  40621. */
  40622. class EffectAnimation extends laya.display.EffectAnimation {}
  40623. /**
  40624. * 动画播放完毕后调度。
  40625. * @eventType Event.COMPLETE
  40626. */
  40627. /**
  40628. * 播放到某标签后调度。
  40629. * @eventType Event.LABEL
  40630. */
  40631. /**
  40632. * 节点关键帧动画播放类。解析播放IDE内制作的节点动画。
  40633. */
  40634. class FrameAnimation extends laya.display.FrameAnimation {}
  40635. /**
  40636. * <code>Graphics</code> 类用于创建绘图显示对象。Graphics可以同时绘制多个位图或者矢量图,还可以结合save,restore,transform,scale,rotate,translate,alpha等指令对绘图效果进行变化。
  40637. * Graphics以命令流方式存储,可以通过cmds属性访问所有命令流。Graphics是比Sprite更轻量级的对象,合理使用能提高应用性能(比如把大量的节点绘图改为一个节点的Graphics命令集合,能减少大量节点创建消耗)。
  40638. * @see laya.display.Sprite#graphics
  40639. */
  40640. class Graphics extends laya.display.Graphics {}
  40641. /**
  40642. * @private Graphic bounds数据类
  40643. */
  40644. class GraphicsBounds extends laya.display.GraphicsBounds {}
  40645. /**
  40646. * 用户输入一个或多个文本字符时后调度。
  40647. * @eventType Event.INPUT
  40648. */
  40649. /**
  40650. * 文本发生变化后调度。
  40651. * @eventType Event.CHANGE
  40652. */
  40653. /**
  40654. * 用户在输入框内敲回车键后,将会调度 <code>enter</code> 事件。
  40655. * @eventType Event.ENTER
  40656. */
  40657. /**
  40658. * 显示对象获得焦点后调度。
  40659. * @eventType Event.FOCUS
  40660. */
  40661. /**
  40662. * 显示对象失去焦点后调度。
  40663. * @eventType Event.BLUR
  40664. */
  40665. /**
  40666. * <p><code>Input</code> 类用于创建显示对象以显示和输入文本。</p>
  40667. * <p>Input 类封装了原生的文本输入框,由于不同浏览器的差异,会导致此对象的默认文本的位置与用户点击输入时的文本的位置有少许的偏差。</p>
  40668. */
  40669. class Input extends laya.display.Input {}
  40670. /**
  40671. * 添加到父对象后调度。
  40672. * @eventType Event.ADDED
  40673. */
  40674. /**
  40675. * 被父对象移除后调度。
  40676. * @eventType Event.REMOVED
  40677. */
  40678. /**
  40679. * 加入节点树时调度。
  40680. * @eventType Event.DISPLAY
  40681. */
  40682. /**
  40683. * 从节点树移除时调度。
  40684. * @eventType Event.UNDISPLAY
  40685. */
  40686. /**
  40687. * <code>Node</code> 类是可放在显示列表中的所有对象的基类。该显示列表管理 Laya 运行时中显示的所有对象。使用 Node 类排列显示列表中的显示对象。Node 对象可以有子显示对象。
  40688. */
  40689. class Node extends laya.display.Node {}
  40690. /**
  40691. * 场景类,负责场景创建,加载,销毁等功能
  40692. * 场景被从节点移除后,并不会被自动垃圾机制回收,如果想回收,请调用destroy接口,可以通过unDestroyedScenes属性查看还未被销毁的场景列表
  40693. */
  40694. class Scene extends laya.display.Scene {}
  40695. /**
  40696. * 在显示对象上按下后调度。
  40697. * @eventType Event.MOUSE_DOWN
  40698. */
  40699. /**
  40700. * 在显示对象抬起后调度。
  40701. * @eventType Event.MOUSE_UP
  40702. */
  40703. /**
  40704. * 鼠标在对象身上进行移动后调度
  40705. * @eventType Event.MOUSE_MOVE
  40706. */
  40707. /**
  40708. * 鼠标经过对象后调度。
  40709. * @eventType Event.MOUSE_OVER
  40710. */
  40711. /**
  40712. * 鼠标离开对象后调度。
  40713. * @eventType Event.MOUSE_OUT
  40714. */
  40715. /**
  40716. * 鼠标点击对象后调度。
  40717. * @eventType Event.CLICK
  40718. */
  40719. /**
  40720. * 开始拖动后调度。
  40721. * @eventType Event.DRAG_START
  40722. */
  40723. /**
  40724. * 拖动中调度。
  40725. * @eventType Event.DRAG_MOVE
  40726. */
  40727. /**
  40728. * 拖动结束后调度。
  40729. * @eventType Event.DRAG_END
  40730. */
  40731. /**
  40732. * <p> <code>Sprite</code> 是基本的显示图形的显示列表节点。 <code>Sprite</code> 默认没有宽高,默认不接受鼠标事件。通过 <code>graphics</code> 可以绘制图片或者矢量图,支持旋转,缩放,位移等操作。<code>Sprite</code>同时也是容器类,可用来添加多个子节点。</p>
  40733. * <p>注意: <code>Sprite</code> 默认没有宽高,可以通过<code>getBounds</code>函数获取;也可手动设置宽高;还可以设置<code>autoSize=true</code>,然后再获取宽高。<code>Sprite</code>的宽高一般用于进行碰撞检测和排版,并不影响显示图像大小,如果需要更改显示图像大小,请使用 <code>scaleX</code> , <code>scaleY</code> , <code>scale</code>。</p>
  40734. * <p> <code>Sprite</code> 默认不接受鼠标事件,即<code>mouseEnabled=false</code>,但是只要对其监听任意鼠标事件,会自动打开自己以及所有父对象的<code>mouseEnabled=true</code>。所以一般也无需手动设置<code>mouseEnabled</code>。</p>
  40735. * <p>LayaAir引擎API设计精简巧妙。核心显示类只有一个<code>Sprite</code>。<code>Sprite</code>针对不同的情况做了渲染优化,所以保证一个类实现丰富功能的同时,又达到高性能。</p>
  40736. * @example <caption>创建了一个 <code>Sprite</code> 实例。</caption>
  40737. package
  40738. {
  40739. import laya.display.Sprite;
  40740. import laya.events.Event;
  40741. public class Sprite_Example
  40742. {
  40743. private var sprite:Sprite;
  40744. private var shape:Sprite
  40745. public function Sprite_Example()
  40746. {
  40747. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  40748. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  40749. onInit();
  40750. }
  40751. private function onInit():void
  40752. {
  40753. sprite = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  40754. sprite.loadImage("resource/ui/bg.png");//加载并显示图片。
  40755. sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。
  40756. sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。
  40757. sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。
  40758. sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。
  40759. Laya.stage.addChild(sprite);//将此 sprite 对象添加到显示列表。
  40760. sprite.on(Event.CLICK, this, onClickSprite);//给 sprite 对象添加点击事件侦听。
  40761. shape = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  40762. shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。
  40763. shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。
  40764. shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。
  40765. shape.width = 100;//设置 shape 对象的宽度。
  40766. shape.height = 100;//设置 shape 对象的高度。
  40767. shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。
  40768. shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。
  40769. Laya.stage.addChild(shape);//将此 shape 对象添加到显示列表。
  40770. shape.on(Event.CLICK, this, onClickShape);//给 shape 对象添加点击事件侦听。
  40771. }
  40772. private function onClickSprite():void
  40773. {
  40774. trace("点击 sprite 对象。");
  40775. sprite.rotation += 5;//旋转 sprite 对象。
  40776. }
  40777. private function onClickShape():void
  40778. {
  40779. trace("点击 shape 对象。");
  40780. shape.rotation += 5;//旋转 shape 对象。
  40781. }
  40782. }
  40783. }
  40784. * @example var sprite;
  40785. var shape;
  40786. Sprite_Example();
  40787. function Sprite_Example()
  40788. {
  40789. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  40790. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  40791. onInit();
  40792. }
  40793. function onInit()
  40794. {
  40795. sprite = new laya.display.Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  40796. sprite.loadImage("resource/ui/bg.png");//加载并显示图片。
  40797. sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。
  40798. sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。
  40799. sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。
  40800. sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。
  40801. Laya.stage.addChild(sprite);//将此 sprite 对象添加到显示列表。
  40802. sprite.on(Event.CLICK, this, onClickSprite);//给 sprite 对象添加点击事件侦听。
  40803. shape = new laya.display.Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  40804. shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。
  40805. shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。
  40806. shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。
  40807. shape.width = 100;//设置 shape 对象的宽度。
  40808. shape.height = 100;//设置 shape 对象的高度。
  40809. shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。
  40810. shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。
  40811. Laya.stage.addChild(shape);//将此 shape 对象添加到显示列表。
  40812. shape.on(laya.events.Event.CLICK, this, onClickShape);//给 shape 对象添加点击事件侦听。
  40813. }
  40814. function onClickSprite()
  40815. {
  40816. console.log("点击 sprite 对象。");
  40817. sprite.rotation += 5;//旋转 sprite 对象。
  40818. }
  40819. function onClickShape()
  40820. {
  40821. console.log("点击 shape 对象。");
  40822. shape.rotation += 5;//旋转 shape 对象。
  40823. }
  40824. * @example import Sprite = laya.display.Sprite;
  40825. class Sprite_Example {
  40826. private sprite: Sprite;
  40827. private shape: Sprite
  40828. public Sprite_Example() {
  40829. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  40830. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  40831. this.onInit();
  40832. }
  40833. private onInit(): void {
  40834. this.sprite = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  40835. this.sprite.loadImage("resource/ui/bg.png");//加载并显示图片。
  40836. this.sprite.x = 200;//设置 sprite 对象相对于父容器的水平方向坐标值。
  40837. this.sprite.y = 200;//设置 sprite 对象相对于父容器的垂直方向坐标值。
  40838. this.sprite.pivotX = 0;//设置 sprite 对象的水平方法轴心点坐标。
  40839. this.sprite.pivotY = 0;//设置 sprite 对象的垂直方法轴心点坐标。
  40840. Laya.stage.addChild(this.sprite);//将此 sprite 对象添加到显示列表。
  40841. this.sprite.on(laya.events.Event.CLICK, this, this.onClickSprite);//给 sprite 对象添加点击事件侦听。
  40842. this.shape = new Sprite();//创建一个 Sprite 类的实例对象 sprite 。
  40843. this.shape.graphics.drawRect(0, 0, 100, 100, "#ccff00", "#ff0000", 2);//绘制一个有边框的填充矩形。
  40844. this.shape.x = 400;//设置 shape 对象相对于父容器的水平方向坐标值。
  40845. this.shape.y = 200;//设置 shape 对象相对于父容器的垂直方向坐标值。
  40846. this.shape.width = 100;//设置 shape 对象的宽度。
  40847. this.shape.height = 100;//设置 shape 对象的高度。
  40848. this.shape.pivotX = 50;//设置 shape 对象的水平方法轴心点坐标。
  40849. this.shape.pivotY = 50;//设置 shape 对象的垂直方法轴心点坐标。
  40850. Laya.stage.addChild(this.shape);//将此 shape 对象添加到显示列表。
  40851. this.shape.on(laya.events.Event.CLICK, this, this.onClickShape);//给 shape 对象添加点击事件侦听。
  40852. }
  40853. private onClickSprite(): void {
  40854. console.log("点击 sprite 对象。");
  40855. this.sprite.rotation += 5;//旋转 sprite 对象。
  40856. }
  40857. private onClickShape(): void {
  40858. console.log("点击 shape 对象。");
  40859. this.shape.rotation += 5;//旋转 shape 对象。
  40860. }
  40861. }
  40862. */
  40863. class Sprite extends laya.display.Sprite {}
  40864. /**
  40865. * @private
  40866. */
  40867. class SpriteConst extends laya.display.SpriteConst {}
  40868. /**
  40869. * stage大小经过重新调整时进行调度。
  40870. * @eventType Event.RESIZE
  40871. */
  40872. /**
  40873. * 舞台获得焦点时调度。比如浏览器或者当前标签处于后台,重新切换回来时进行调度。
  40874. * @eventType Event.FOCUS
  40875. */
  40876. /**
  40877. * 舞台失去焦点时调度。比如浏览器或者当前标签被切换到后台后调度。
  40878. * @eventType Event.BLUR
  40879. */
  40880. /**
  40881. * 舞台焦点变化时调度,使用Laya.stage.isFocused可以获取当前舞台是否获得焦点。
  40882. * @eventType Event.FOCUS_CHANGE
  40883. */
  40884. /**
  40885. * 舞台可见性发生变化时调度(比如浏览器或者当前标签被切换到后台后调度),使用Laya.stage.isVisibility可以获取当前是否处于显示状态。
  40886. * @eventType Event.VISIBILITY_CHANGE
  40887. */
  40888. /**
  40889. * 浏览器全屏更改时调度,比如进入全屏或者退出全屏。
  40890. * @eventType Event.FULL_SCREEN_CHANGE
  40891. */
  40892. /**
  40893. * <p> <code>Stage</code> 是舞台类,显示列表的根节点,所有显示对象都在舞台上显示。通过 Laya.stage 单例访问。</p>
  40894. * <p>Stage提供几种适配模式,不同的适配模式会产生不同的画布大小,画布越大,渲染压力越大,所以要选择合适的适配方案。</p>
  40895. * <p>Stage提供不同的帧率模式,帧率越高,渲染压力越大,越费电,合理使用帧率甚至动态更改帧率有利于改进手机耗电。</p>
  40896. */
  40897. class Stage extends laya.display.Stage {}
  40898. /**
  40899. * 文本内容发生改变后调度。
  40900. * @eventType Event.CHANGE
  40901. */
  40902. /**
  40903. * <p> <code>Text</code> 类用于创建显示对象以显示文本。</p>
  40904. * <p>
  40905. * 注意:如果运行时系统找不到设定的字体,则用系统默认的字体渲染文字,从而导致显示异常。(通常电脑上显示正常,在一些移动端因缺少设置的字体而显示异常)。
  40906. * </p>
  40907. * @example package
  40908. {
  40909. import laya.display.Text;
  40910. public class Text_Example
  40911. {
  40912. public function Text_Example()
  40913. {
  40914. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  40915. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  40916. onInit();
  40917. }
  40918. private function onInit():void
  40919. {
  40920. var text:Text = new Text();//创建一个 Text 类的实例对象 text 。
  40921. text.text = "这个是一个 Text 文本示例。";
  40922. text.color = "#008fff";//设置 text 的文本颜色。
  40923. text.font = "Arial";//设置 text 的文本字体。
  40924. text.bold = true;//设置 text 的文本显示为粗体。
  40925. text.fontSize = 30;//设置 text 的字体大小。
  40926. text.wordWrap = true;//设置 text 的文本自动换行。
  40927. text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。
  40928. text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。
  40929. text.width = 300;//设置 text 的宽度。
  40930. text.height = 200;//设置 text 的高度。
  40931. text.italic = true;//设置 text 的文本显示为斜体。
  40932. text.borderColor = "#fff000";//设置 text 的文本边框颜色。
  40933. Laya.stage.addChild(text);//将 text 添加到显示列表。
  40934. }
  40935. }
  40936. }
  40937. * @example Text_Example();
  40938. function Text_Example()
  40939. {
  40940. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  40941. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  40942. onInit();
  40943. }
  40944. function onInit()
  40945. {
  40946. var text = new laya.display.Text();//创建一个 Text 类的实例对象 text 。
  40947. text.text = "这个是一个 Text 文本示例。";
  40948. text.color = "#008fff";//设置 text 的文本颜色。
  40949. text.font = "Arial";//设置 text 的文本字体。
  40950. text.bold = true;//设置 text 的文本显示为粗体。
  40951. text.fontSize = 30;//设置 text 的字体大小。
  40952. text.wordWrap = true;//设置 text 的文本自动换行。
  40953. text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。
  40954. text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。
  40955. text.width = 300;//设置 text 的宽度。
  40956. text.height = 200;//设置 text 的高度。
  40957. text.italic = true;//设置 text 的文本显示为斜体。
  40958. text.borderColor = "#fff000";//设置 text 的文本边框颜色。
  40959. Laya.stage.addChild(text);//将 text 添加到显示列表。
  40960. }
  40961. * @example class Text_Example {
  40962. constructor() {
  40963. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  40964. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  40965. this.onInit();
  40966. }
  40967. private onInit(): void {
  40968. var text: laya.display.Text = new laya.display.Text();//创建一个 Text 类的实例对象 text 。
  40969. text.text = "这个是一个 Text 文本示例。";
  40970. text.color = "#008fff";//设置 text 的文本颜色。
  40971. text.font = "Arial";//设置 text 的文本字体。
  40972. text.bold = true;//设置 text 的文本显示为粗体。
  40973. text.fontSize = 30;//设置 text 的字体大小。
  40974. text.wordWrap = true;//设置 text 的文本自动换行。
  40975. text.x = 100;//设置 text 对象的属性 x 的值,用于控制 text 对象的显示位置。
  40976. text.y = 100;//设置 text 对象的属性 y 的值,用于控制 text 对象的显示位置。
  40977. text.width = 300;//设置 text 的宽度。
  40978. text.height = 200;//设置 text 的高度。
  40979. text.italic = true;//设置 text 的文本显示为斜体。
  40980. text.borderColor = "#fff000";//设置 text 的文本边框颜色。
  40981. Laya.stage.addChild(text);//将 text 添加到显示列表。
  40982. }
  40983. }
  40984. */
  40985. class Text extends laya.display.Text {}
  40986. /**
  40987. * ...
  40988. * @author ww
  40989. */
  40990. class BlurFilterSetter extends laya.effect.BlurFilterSetter {}
  40991. /**
  40992. * @Script {name:ButtonEffect}
  40993. * @author ww
  40994. */
  40995. class ButtonEffect extends laya.effect.ButtonEffect {}
  40996. /**
  40997. * ...
  40998. * @author ww
  40999. */
  41000. class ColorFilterSetter extends laya.effect.ColorFilterSetter {}
  41001. /**
  41002. * 效果插件基类,基于对象池管理
  41003. */
  41004. class EffectBase extends laya.effect.EffectBase {}
  41005. /**
  41006. * 淡入效果
  41007. */
  41008. class FadeIn extends laya.effect.FadeIn {}
  41009. /**
  41010. * 淡出效果
  41011. */
  41012. class FadeOut extends laya.effect.FadeOut {}
  41013. /**
  41014. * ...
  41015. * @author ww
  41016. */
  41017. class FilterSetterBase extends laya.effect.FilterSetterBase {}
  41018. /**
  41019. * ...
  41020. * @author ww
  41021. */
  41022. class GlowFilterSetter extends laya.effect.GlowFilterSetter {}
  41023. /**
  41024. * <code>Event</code> 是事件类型的集合。一般当发生事件时,<code>Event</code> 对象将作为参数传递给事件侦听器。
  41025. */
  41026. class Event extends laya.events.Event {}
  41027. /**
  41028. * <code>EventDispatcher</code> 类是可调度事件的所有类的基类。
  41029. */
  41030. class EventDispatcher extends laya.events.EventDispatcher {}
  41031. /**
  41032. * <code>Keyboard</code> 类的属性是一些常数,这些常数表示控制游戏时最常用的键。
  41033. */
  41034. class Keyboard extends laya.events.Keyboard {}
  41035. /**
  41036. * <p><code>KeyBoardManager</code> 是键盘事件管理类。该类从浏览器中接收键盘事件,并派发该事件。</p>
  41037. * <p>派发事件时若 Stage.focus 为空则只从 Stage 上派发该事件,否则将从 Stage.focus 对象开始一直冒泡派发该事件。所以在 Laya.stage 上监听键盘事件一定能够收到,如果在其他地方监听,则必须处在Stage.focus的冒泡链上才能收到该事件。</p>
  41038. * <p>用户可以通过代码 Laya.stage.focus=someNode 的方式来设置focus对象。</p>
  41039. * <p>用户可统一的根据事件对象中 e.keyCode 来判断按键类型,该属性兼容了不同浏览器的实现。</p>
  41040. */
  41041. class KeyBoardManager extends laya.events.KeyBoardManager {}
  41042. /**
  41043. * <p><code>KeyLocation</code> 类包含表示在键盘或类似键盘的输入设备上按键位置的常量。</p>
  41044. * <p><code>KeyLocation</code> 常数用在键盘事件对象的 <code>keyLocation </code>属性中。</p>
  41045. */
  41046. class KeyLocation extends laya.events.KeyLocation {}
  41047. /**
  41048. * <p><code>MouseManager</code> 是鼠标、触摸交互管理器。</p>
  41049. * <p>鼠标事件流包括捕获阶段、目标阶段、冒泡阶段。<br/>
  41050. * 捕获阶段:此阶段引擎会从stage开始递归检测stage及其子对象,直到找到命中的目标对象或者未命中任何对象;<br/>
  41051. * 目标阶段:找到命中的目标对象;<br/>
  41052. * 冒泡阶段:事件离开目标对象,按节点层级向上逐层通知,直到到达舞台的过程。</p>
  41053. */
  41054. class MouseManager extends laya.events.MouseManager {}
  41055. /**
  41056. * @private Touch事件管理类,处理多点触控下的鼠标事件
  41057. */
  41058. class TouchManager extends laya.events.TouchManager {}
  41059. /**
  41060. * 模糊滤镜
  41061. */
  41062. class BlurFilter extends laya.filters.BlurFilter {}
  41063. /**
  41064. * @private
  41065. */
  41066. class BlurFilterGLRender extends laya.filters.BlurFilterGLRender {}
  41067. /**
  41068. * <p><code>ColorFilter</code> 是颜色滤镜。使用 ColorFilter 类可以将 4 x 5 矩阵转换应用于输入图像上的每个像素的 RGBA 颜色和 Alpha 值,以生成具有一组新的 RGBA 颜色和 Alpha 值的结果。该类允许饱和度更改、色相旋转、亮度转 Alpha 以及各种其他效果。您可以将滤镜应用于任何显示对象(即,从 Sprite 类继承的对象)。</p>
  41069. * <p>注意:对于 RGBA 值,最高有效字节代表红色通道值,其后的有效字节分别代表绿色、蓝色和 Alpha 通道值。</p>
  41070. */
  41071. class ColorFilter extends laya.filters.ColorFilter {}
  41072. /**
  41073. * <code>Filter</code> 是滤镜基类。
  41074. */
  41075. class Filter extends laya.filters.Filter {}
  41076. /**
  41077. * 发光滤镜(也可以当成阴影滤使用)
  41078. */
  41079. class GlowFilter extends laya.filters.GlowFilter {}
  41080. /**
  41081. * @private
  41082. */
  41083. class GlowFilterGLRender extends laya.filters.GlowFilterGLRender {}
  41084. /**
  41085. * HTML图文类,用于显示html内容
  41086. *
  41087. * 支持的标签如下:
  41088. * a:链接标签,点击后会派发"link"事件 比如:<a href='alink'>a</a>
  41089. * div:div容器标签,比如:<div>abc</div>
  41090. * span:行内元素标签,比如:<span style='color:#ff0000'>abc</span>
  41091. * p:行元素标签,p标签会自动换行,div不会,比如:<p>abc</p>
  41092. * img:图片标签,比如:<img src='res/boy.png'></img>
  41093. * br:换行标签,比如:<div>abc<br/>def</div>
  41094. * style:样式标签,比如:<div style='width:130px;height:50px;color:#ff0000'>abc</div>
  41095. * link:外链样式标签,可以加载一个css文件来当style使用,比如:<link type='text/css' href='html/test.css'/>
  41096. *
  41097. * style支持的属性如下:
  41098. * italic:true|false; 是否是斜体
  41099. * bold:true|false; 是否是粗体
  41100. * letter-spacing:10px; 字间距
  41101. * font-family:宋体; 字体
  41102. * font-size:20px; 字体大小
  41103. * font-weight:bold:none; 字体是否是粗体,功能同bold
  41104. * color:#ff0000; 字体颜色
  41105. * stroke:2px; 字体描边宽度
  41106. * strokeColor:#ff0000; 字体描边颜色
  41107. * padding:10px 10px 20px 20px; 边缘的距离
  41108. * vertical-align:top|bottom|middle; 垂直对齐方式
  41109. * align:left|right|center; 水平对齐方式
  41110. * line-height:20px; 行高
  41111. * background-color:#ff0000; 背景颜色
  41112. * border-color:#ff0000; 边框颜色
  41113. * width:100px; 对象宽度
  41114. * height:100px; 对象高度
  41115. *
  41116. * 示例用法:
  41117. * var div:HTMLDivElement=new HTMLDivElement();
  41118. * 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>";
  41119. */
  41120. class HTMLDivElement extends laya.html.dom.HTMLDivElement {}
  41121. /**
  41122. * @private
  41123. */
  41124. class HTMLDivParser extends laya.html.dom.HTMLDivParser {}
  41125. /**
  41126. * @private
  41127. */
  41128. class HTMLDocument extends laya.html.dom.HTMLDocument {}
  41129. enum HTMLElementType {
  41130. BASE = 0,
  41131. IMAGE = 1
  41132. }
  41133. /**
  41134. * @private
  41135. */
  41136. class HTMLElement extends laya.html.dom.HTMLElement {}
  41137. /**
  41138. * @private
  41139. */
  41140. class HTMLHitRect extends laya.html.dom.HTMLHitRect {}
  41141. /**
  41142. * iframe标签类,目前用于加载外并解析数据
  41143. */
  41144. class HTMLIframeElement extends laya.html.dom.HTMLIframeElement {}
  41145. /**
  41146. * @private
  41147. */
  41148. class HTMLImageElement extends laya.html.dom.HTMLImageElement {}
  41149. /**
  41150. * @private
  41151. */
  41152. class HTMLLinkElement extends laya.html.dom.HTMLLinkElement {}
  41153. /**
  41154. * @private
  41155. */
  41156. class HTMLStyleElement extends laya.html.dom.HTMLStyleElement {}
  41157. /**
  41158. * @private
  41159. */
  41160. class HTMLExtendStyle extends laya.html.utils.HTMLExtendStyle {}
  41161. /**
  41162. * @private
  41163. */
  41164. class HTMLParse extends laya.html.utils.HTMLParse {}
  41165. /**
  41166. * @private
  41167. */
  41168. class HTMLStyle extends laya.html.utils.HTMLStyle {}
  41169. /**
  41170. * @private HTML的布局类
  41171. 对HTML的显示对象进行排版
  41172. */
  41173. class Layout extends laya.html.utils.Layout {}
  41174. /**
  41175. * @private
  41176. */
  41177. class LayoutLine extends laya.html.utils.LayoutLine {}
  41178. /**
  41179. * @private CommandEncoder
  41180. */
  41181. class CommandEncoder extends laya.layagl.CommandEncoder {}
  41182. /**
  41183. * ...
  41184. * @author ww
  41185. */
  41186. class QuickTestTool extends laya.layagl.QuickTestTool {}
  41187. /**
  41188. * 地图的每层都会分块渲染处理
  41189. * 本类就是地图的块数据
  41190. * @author ...
  41191. */
  41192. class GridSprite extends laya.map.GridSprite {}
  41193. /**
  41194. * 地图支持多层渲染(例如,地表层,植被层,建筑层等)
  41195. * 本类就是层级类
  41196. * @author ...
  41197. */
  41198. class MapLayer extends laya.map.MapLayer {}
  41199. /**
  41200. * TildMap的动画显示对象(一个动画(TileTexSet),可以绑定多个动画显示对象(TileAniSprite))
  41201. * @author ...
  41202. */
  41203. class TileAniSprite extends laya.map.TileAniSprite {}
  41204. /**
  41205. * tiledMap是整个地图的核心
  41206. * 地图以层级来划分地图(例如:地表层,植被层,建筑层)
  41207. * 每层又以分块(GridSprite)来处理显示对象,只显示在视口区域的区
  41208. * 每块又包括N*N个格子(tile)
  41209. * 格子类型又分为动画格子跟图片格子两种
  41210. * @author ...
  41211. */
  41212. class TiledMap extends laya.map.TiledMap {}
  41213. /**
  41214. * 此类是子纹理类,也包括同类动画的管理
  41215. * TiledMap会把纹理分割成无数子纹理,也可以把其中的某块子纹理替换成一个动画序列
  41216. * 本类的实现就是如果发现子纹理被替换成一个动画序列,animationKey会被设为true
  41217. * 即animationKey为true,就使用TileAniSprite来做显示,把动画序列根据时间画到TileAniSprite上
  41218. * @author ...
  41219. */
  41220. class TileTexSet extends laya.map.TileTexSet {}
  41221. /**
  41222. * @private 计算贝塞尔曲线的工具类。
  41223. */
  41224. class Bezier extends laya.maths.Bezier {}
  41225. /**
  41226. * @private 凸包算法。
  41227. */
  41228. class GrahamScan extends laya.maths.GrahamScan {}
  41229. /**
  41230. * @private <code>MathUtil</code> 是一个数据处理工具类。
  41231. */
  41232. class MathUtil extends laya.maths.MathUtil {}
  41233. /**
  41234. * <p> <code>Matrix</code> 类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间。</p>
  41235. * <p>您可以对一个显示对象执行不同的图形转换,方法是设置 Matrix 对象的属性,将该 Matrix 对象应用于 Transform 对象的 matrix 属性,然后应用该 Transform 对象作为显示对象的 transform 属性。这些转换函数包括平移(x 和 y 重新定位)、旋转、缩放和倾斜。</p>
  41236. */
  41237. class Matrix extends laya.maths.Matrix {}
  41238. /**
  41239. * <code>Point</code> 对象表示二维坐标系统中的某个位置,其中 x 表示水平轴,y 表示垂直轴。
  41240. */
  41241. class Point extends laya.maths.Point {}
  41242. /**
  41243. * <p><code>Rectangle</code> 对象是按其位置(由它左上角的点 (x, y) 确定)以及宽度和高度定义的区域。</p>
  41244. * <p>Rectangle 类的 x、y、width 和 height 属性相互独立;更改一个属性的值不会影响其他属性。</p>
  41245. */
  41246. class Rectangle extends laya.maths.Rectangle {}
  41247. /**
  41248. * @private 使用Audio标签播放声音
  41249. */
  41250. class AudioSound extends laya.media.h5audio.AudioSound {}
  41251. /**
  41252. * @private audio标签播放声音的音轨控制
  41253. */
  41254. class AudioSoundChannel extends laya.media.h5audio.AudioSoundChannel {}
  41255. /**
  41256. * <code>Sound</code> 类是用来播放控制声音的类。
  41257. * 引擎默认有两套声音方案,优先使用WebAudio播放声音,如果WebAudio不可用,则用H5Audio播放,H5Audio在部分机器上有兼容问题(比如不能混音,播放有延迟等)。
  41258. */
  41259. class Sound extends laya.media.Sound {}
  41260. /**
  41261. * <p> <code>SoundChannel</code> 用来控制程序中的声音。每个声音均分配给一个声道,而且应用程序可以具有混合在一起的多个声道。</p>
  41262. * <p> <code>SoundChannel</code> 类包含控制声音的播放、暂停、停止、音量的方法,以及获取声音的播放状态、总时间、当前播放时间、总循环次数、播放地址等信息的方法。</p>
  41263. */
  41264. class SoundChannel extends laya.media.SoundChannel {}
  41265. /**
  41266. * <code>SoundManager</code> 是一个声音管理类。提供了对背景音乐、音效的播放控制方法。
  41267. * 引擎默认有两套声音方案:WebAudio和H5Audio
  41268. * 播放音效,优先使用WebAudio播放声音,如果WebAudio不可用,则用H5Audio播放,H5Audio在部分机器上有兼容问题(比如不能混音,播放有延迟等)。
  41269. * 播放背景音乐,则使用H5Audio播放(使用WebAudio会增加特别大的内存,并且要等加载完毕后才能播放,有延迟)
  41270. * 建议背景音乐用mp3类型,音效用wav或者mp3类型(如果打包为app,音效只能用wav格式)。
  41271. * 详细教程及声音格式请参考:http://ldc2.layabox.com/doc/?nav=ch-as-1-7-0
  41272. */
  41273. class SoundManager extends laya.media.SoundManager {}
  41274. /**
  41275. * @private
  41276. */
  41277. class SoundNode extends laya.media.SoundNode {}
  41278. /**
  41279. * @private web audio api方式播放声音
  41280. */
  41281. class WebAudioSound extends laya.media.webaudio.WebAudioSound {}
  41282. /**
  41283. * @private web audio api方式播放声音的音轨控制
  41284. */
  41285. class WebAudioSoundChannel extends laya.media.webaudio.WebAudioSoundChannel {}
  41286. /**
  41287. * @private
  41288. */
  41289. class AtlasInfoManager extends laya.net.AtlasInfoManager {}
  41290. /**
  41291. * 请求进度改变时调度。
  41292. * @eventType Event.PROGRESS
  41293. */
  41294. /**
  41295. * 请求结束后调度。
  41296. * @eventType Event.COMPLETE
  41297. */
  41298. /**
  41299. * 请求出错时调度。
  41300. * @eventType Event.ERROR
  41301. */
  41302. /**
  41303. * <p> <code>HttpRequest</code> 通过封装 HTML <code>XMLHttpRequest</code> 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。 <code>HttpRequest</code> 只提供以异步的形式返回 Web 服务器的响应,并且能够以文本或者二进制的形式返回内容。</p>
  41304. * <p><b>注意:</b>建议每次请求都使用新的 <code>HttpRequest</code> 对象,因为每次调用该对象的send方法时,都会清空之前设置的数据,并重置 HTTP 请求的状态,这会导致之前还未返回响应的请求被重置,从而得不到之前请求的响应结果。</p>
  41305. */
  41306. class HttpRequest extends laya.net.HttpRequest {}
  41307. /**
  41308. * 加载进度发生改变时调度。
  41309. * @eventType Event.PROGRESS
  41310. */
  41311. /**
  41312. * 加载完成后调度。
  41313. * @eventType Event.COMPLETE
  41314. */
  41315. /**
  41316. * 加载出错时调度。
  41317. * @eventType Event.ERROR
  41318. */
  41319. /**
  41320. * <code>Loader</code> 类可用来加载文本、JSON、XML、二进制、图像等资源。
  41321. */
  41322. class Loader extends laya.net.Loader {}
  41323. /**
  41324. * 所有资源加载完成时调度。
  41325. * @eventType Event.COMPLETE
  41326. */
  41327. /**
  41328. * 任何资源加载出错时调度。
  41329. * @eventType Event.ERROR
  41330. */
  41331. /**
  41332. * <p> <code>LoaderManager</code> 类用于用于批量加载资源。此类是单例,不要手动实例化此类,请通过Laya.loader访问。</p>
  41333. * <p>全部队列加载完成,会派发 Event.COMPLETE 事件;如果队列中任意一个加载失败,会派发 Event.ERROR 事件,事件回调参数值为加载出错的资源地址。</p>
  41334. * <p> <code>LoaderManager</code> 类提供了以下几种功能:<br/>
  41335. * 多线程:默认5个加载线程,可以通过maxLoader属性修改线程数量;<br/>
  41336. * 多优先级:有0-4共5个优先级,优先级高的优先加载。0最高,4最低;<br/>
  41337. * 重复过滤:自动过滤重复加载(不会有多个相同地址的资源同时加载)以及复用缓存资源,防止重复加载;<br/>
  41338. * 错误重试:资源加载失败后,会重试加载(以最低优先级插入加载队列),retryNum设定加载失败后重试次数,retryDelay设定加载重试的时间间隔。</p>
  41339. * @see laya.net.Loader
  41340. */
  41341. class LoaderManager extends laya.net.LoaderManager {}
  41342. /**
  41343. * <p> <code>LocalStorage</code> 类用于没有时间限制的数据存储。</p>
  41344. */
  41345. class LocalStorage extends laya.net.LocalStorage {}
  41346. /**
  41347. * <p>资源版本的生成由layacmd或IDE完成,使用 <code>ResourceVersion</code> 简化使用过程。</p>
  41348. * <p>调用 <code>enable</code> 启用资源版本管理。</p>
  41349. */
  41350. class ResourceVersion extends laya.net.ResourceVersion {}
  41351. /**
  41352. * @private 场景资源加载器
  41353. */
  41354. class SceneLoader extends laya.net.SceneLoader {}
  41355. /**
  41356. * 连接建立成功后调度。
  41357. * @eventType Event.OPEN
  41358. */
  41359. /**
  41360. * 接收到数据后调度。
  41361. * @eventType Event.MESSAGE
  41362. */
  41363. /**
  41364. * 连接被关闭后调度。
  41365. * @eventType Event.CLOSE
  41366. */
  41367. /**
  41368. * 出现异常后调度。
  41369. * @eventType Event.ERROR
  41370. */
  41371. /**
  41372. * <p> <code>Socket</code> 封装了 HTML5 WebSocket ,允许服务器端与客户端进行全双工(full-duplex)的实时通信,并且允许跨域通信。在建立连接后,服务器和 Browser/Client Agent 都能主动的向对方发送或接收文本和二进制数据。</p>
  41373. * <p>要使用 <code>Socket</code> 类的方法,请先使用构造函数 <code>new Socket</code> 创建一个 <code>Socket</code> 对象。 <code>Socket</code> 以异步方式传输和接收数据。</p>
  41374. */
  41375. class Socket extends laya.net.Socket {}
  41376. /**
  41377. * @private
  41378. */
  41379. class TTFLoader extends laya.net.TTFLoader {}
  41380. /**
  41381. * <p><code>URL</code> 提供URL格式化,URL版本管理的类。</p>
  41382. * <p>引擎加载资源的时候,会自动调用formatURL函数格式化URL路径</p>
  41383. * <p>通过basePath属性可以设置网络基础路径</p>
  41384. * <p>通过设置customFormat函数,可以自定义URL格式化的方式</p>
  41385. * <p>除了默认的通过增加后缀的格式化外,通过VersionManager类,可以开启IDE提供的,基于目录的管理方式来替代 "?v=" 的管理方式</p>
  41386. * @see laya.net.VersionManager
  41387. */
  41388. class URL extends laya.net.URL {}
  41389. /**
  41390. * @private Worker Image加载器
  41391. */
  41392. class WorkerLoader extends laya.net.WorkerLoader {}
  41393. /**
  41394. * @private
  41395. */
  41396. class Emitter2D extends laya.particle.emitter.Emitter2D {}
  41397. /**
  41398. * <code>EmitterBase</code> 类是粒子发射器类
  41399. */
  41400. class EmitterBase extends laya.particle.emitter.EmitterBase {}
  41401. /**
  41402. * <code>Particle2D</code> 类是2D粒子播放类
  41403. */
  41404. class Particle2D extends laya.particle.Particle2D {}
  41405. /**
  41406. * @private
  41407. */
  41408. class ParticleData extends laya.particle.ParticleData {}
  41409. /**
  41410. * @private
  41411. */
  41412. class ParticleEmitter extends laya.particle.ParticleEmitter {}
  41413. /**
  41414. * <code>ParticleSettings</code> 类是粒子配置数据类
  41415. */
  41416. class ParticleSetting extends laya.particle.ParticleSetting {}
  41417. /**
  41418. * <code>ParticleTemplateBase</code> 类是粒子模板基类
  41419. */
  41420. class ParticleTemplateBase extends laya.particle.ParticleTemplateBase {}
  41421. /**
  41422. * @private
  41423. */
  41424. class ParticleTemplateWebGL extends laya.particle.ParticleTemplateWebGL {}
  41425. /**
  41426. * @private
  41427. */
  41428. class ParticleShader extends laya.particle.shader.ParticleShader {}
  41429. /**
  41430. * 2D矩形碰撞体
  41431. */
  41432. class BoxCollider extends laya.physics.BoxCollider {}
  41433. /**
  41434. * 2D线形碰撞体
  41435. */
  41436. class ChainCollider extends laya.physics.ChainCollider {}
  41437. /**
  41438. * 2D圆形碰撞体
  41439. */
  41440. class CircleCollider extends laya.physics.CircleCollider {}
  41441. /**
  41442. * 碰撞体基类
  41443. */
  41444. class ColliderBase extends laya.physics.ColliderBase {}
  41445. /**
  41446. * JS实现Box2D SayGoodbyeParticle
  41447. * 相关类型对象被隐性移除时触发对应的SayGoodBye方法
  41448. */
  41449. class DestructionListener extends laya.physics.DestructionListener {}
  41450. /**
  41451. * 距离关节:两个物体上面各自有一点,两点之间的距离固定不变
  41452. */
  41453. class DistanceJoint extends laya.physics.joint.DistanceJoint {}
  41454. /**
  41455. * 齿轮关节:用来模拟两个齿轮间的约束关系,齿轮旋转时,产生的动量有两种输出方式,一种是齿轮本身的角速度,另一种是齿轮表面的线速度
  41456. */
  41457. class GearJoint extends laya.physics.joint.GearJoint {}
  41458. /**
  41459. * 关节基类
  41460. */
  41461. class JointBase extends laya.physics.joint.JointBase {}
  41462. /**
  41463. * 马达关节:用来限制两个刚体,使其相对位置和角度保持不变
  41464. */
  41465. class MotorJoint extends laya.physics.joint.MotorJoint {}
  41466. /**
  41467. * 鼠标关节:鼠标关节用于通过鼠标来操控物体。它试图将物体拖向当前鼠标光标的位置。而在旋转方面就没有限制。
  41468. */
  41469. class MouseJoint extends laya.physics.joint.MouseJoint {}
  41470. /**
  41471. * 平移关节:移动关节允许两个物体沿指定轴相对移动,它会阻止相对旋转
  41472. */
  41473. class PrismaticJoint extends laya.physics.joint.PrismaticJoint {}
  41474. /**
  41475. * 滑轮关节:它将两个物体接地(ground)并彼此连接,当一个物体上升,另一个物体就会下降
  41476. */
  41477. class PulleyJoint extends laya.physics.joint.PulleyJoint {}
  41478. /**
  41479. * 旋转关节强制两个物体共享一个锚点,两个物体相对旋转
  41480. */
  41481. class RevoluteJoint extends laya.physics.joint.RevoluteJoint {}
  41482. /**
  41483. * 绳索关节:限制了两个点之间的最大距离。它能够阻止连接的物体之间的拉伸,即使在很大的负载下
  41484. */
  41485. class RopeJoint extends laya.physics.joint.RopeJoint {}
  41486. /**
  41487. * 焊接关节:焊接关节的用途是使两个物体不能相对运动,受到关节的限制,两个刚体的相对位置和角度都保持不变,看上去像一个整体
  41488. */
  41489. class WeldJoint extends laya.physics.joint.WeldJoint {}
  41490. /**
  41491. * 轮子关节:围绕节点旋转,包含弹性属性,使得刚体在节点位置发生弹性偏移
  41492. */
  41493. class WheelJoint extends laya.physics.joint.WheelJoint {}
  41494. /**
  41495. * 2D物理引擎,使用Box2d驱动
  41496. */
  41497. class Physics extends laya.physics.Physics {}
  41498. /**
  41499. * 物理辅助线,调用PhysicsDebugDraw.enable()开启,或者通过IDE设置打开
  41500. */
  41501. class PhysicsDebugDraw extends laya.physics.PhysicsDebugDraw {}
  41502. /**
  41503. * 2D多边形碰撞体,暂时不支持凹多边形,如果是凹多边形,先手动拆分为多个凸多边形
  41504. * 节点个数最多是b2_maxPolygonVertices,这数值默认是8,所以点的数量不建议超过8个,也不能小于3个
  41505. */
  41506. class PolygonCollider extends laya.physics.PolygonCollider {}
  41507. /**
  41508. * 2D刚体,显示对象通过RigidBody和物理世界进行绑定,保持物理和显示对象之间的位置同步
  41509. * 物理世界的位置变化会自动同步到显示对象,显示对象本身的位移,旋转(父对象位移无效)也会自动同步到物理世界
  41510. * 由于引擎限制,暂时不支持以下情形:
  41511. * 1.不支持绑定节点缩放
  41512. * 2.不支持绑定节点的父节点缩放和旋转
  41513. * 3.不支持实时控制父对象位移,IDE内父对象位移是可以的
  41514. * 如果想整体位移物理世界,可以Physics.I.worldRoot=场景,然后移动场景即可
  41515. * 可以通过IDE-"项目设置" 开启物理辅助线显示,或者通过代码PhysicsDebugDraw.enable();
  41516. */
  41517. class RigidBody extends laya.physics.RigidBody {}
  41518. /**
  41519. * <code>Render</code> 是渲染管理类。它是一个单例,可以使用 Laya.render 访问。
  41520. */
  41521. class Render extends laya.renders.Render {}
  41522. /**
  41523. * @author laya
  41524. */
  41525. class RenderInfo extends laya.renders.RenderInfo {}
  41526. /**
  41527. * @private 精灵渲染器
  41528. */
  41529. class RenderSprite extends laya.renders.RenderSprite {}
  41530. /**
  41531. * <code>BaseTexture</code> 纹理的父类,抽象类,不允许实例。
  41532. */
  41533. class BaseTexture extends laya.resource.BaseTexture {}
  41534. /**
  41535. * @private <code>Bitmap</code> 图片资源类。
  41536. */
  41537. class Bitmap extends laya.resource.Bitmap {}
  41538. /**
  41539. * @private Context扩展类
  41540. */
  41541. class Context extends laya.resource.Context {}
  41542. enum FilterMode {
  41543. /**点过滤。*/
  41544. Point = 0,
  41545. /**双线性过滤。*/
  41546. Bilinear = 1,
  41547. /**三线性过滤。*/
  41548. Trilinear = 2
  41549. }
  41550. /**
  41551. * <code>HTMLCanvas</code> 是 Html Canvas 的代理类,封装了 Canvas 的属性和方法。
  41552. */
  41553. class HTMLCanvas extends laya.resource.HTMLCanvas {}
  41554. /**
  41555. * @private <p> <code>HTMLImage</code> 用于创建 HTML Image 元素。</p>
  41556. <p>请使用 <code>HTMLImage.create()<code>获取新实例,不要直接使用 <code>new HTMLImage<code> 。</p>
  41557. */
  41558. class HTMLImage extends laya.resource.HTMLImage {}
  41559. /**
  41560. * <code>RenderTexture</code> 类用于创建渲染目标。
  41561. */
  41562. class RenderTexture2D extends laya.resource.RenderTexture2D {}
  41563. enum RenderTextureFormat {
  41564. /**RGB格式,每个通道8位。*/
  41565. R8G8B8 = 0,
  41566. /**RGBA格式,每个通道8位。*/
  41567. R8G8B8A8 = 1,
  41568. /**Alpha格式,8位。*/
  41569. Alpha8 = 2,
  41570. /**RGBA格式,每个通道16位。*/
  41571. R16G16B16A16 = 14,
  41572. /**深度格式。*/
  41573. Depth = 15,
  41574. /**阴影贴图格式格式。*/
  41575. ShadowMap = 16
  41576. }
  41577. enum RenderTextureDepthFormat {
  41578. /**深度格式_DEPTH_16。*/
  41579. DEPTH_16 = 0,
  41580. /**深度格式_STENCIL_8。*/
  41581. STENCIL_8 = 1,
  41582. /**深度格式_DEPTHSTENCIL_24_8。*/
  41583. DEPTHSTENCIL_24_8 = 2,
  41584. /**深度格式_DEPTHSTENCIL_NONE。*/
  41585. DEPTHSTENCIL_NONE = 3,
  41586. /** @deprecated*/
  41587. DEPTHSTENCIL_16_8 = 2
  41588. }
  41589. /**
  41590. * <code>Resource</code> 资源存取类。
  41591. */
  41592. class Resource extends laya.resource.Resource {}
  41593. /**
  41594. * 资源加载完成后调度。
  41595. * @eventType Event.READY
  41596. */
  41597. /**
  41598. * <code>Texture</code> 是一个纹理处理类。
  41599. */
  41600. class Texture extends laya.resource.Texture {}
  41601. /**
  41602. * <code>Texture2D</code> 类用于生成2D纹理。
  41603. */
  41604. class Texture2D extends laya.resource.Texture2D {}
  41605. enum TextureDecodeFormat {
  41606. /** 常规解码方式,直接采样纹理颜色。*/
  41607. Normal = 0,
  41608. /** 按照RGBM方式解码并计算最终RGB颜色。 */
  41609. RGBM = 1
  41610. }
  41611. enum TextureFormat {
  41612. /**纹理格式_R8G8B8。*/
  41613. R8G8B8 = 0,
  41614. /**纹理格式_R8G8B8A8。*/
  41615. R8G8B8A8 = 1,
  41616. /**RGB格式纹理,R通道5位,G通道6位,B通道5位。*/
  41617. R5G6B5 = 16,
  41618. /**纹理格式_ALPHA8。*/
  41619. Alpha8 = 2,
  41620. /**纹理格式_DXT1。*/
  41621. DXT1 = 3,
  41622. /**纹理格式_DXT5。*/
  41623. DXT5 = 4,
  41624. /**纹理格式_ETC2RGB。*/
  41625. ETC1RGB = 5,
  41626. /**纹理格式_ETC2RGB_PUNCHTHROUGHALPHA。*/
  41627. /**纹理格式_PVRTCRGB_2BPPV。*/
  41628. PVRTCRGB_2BPPV = 9,
  41629. /**纹理格式_PVRTCRGBA_2BPPV。*/
  41630. PVRTCRGBA_2BPPV = 10,
  41631. /**纹理格式_PVRTCRGB_4BPPV。*/
  41632. PVRTCRGB_4BPPV = 11,
  41633. /**纹理格式_PVRTCRGBA_4BPPV。*/
  41634. PVRTCRGBA_4BPPV = 12,
  41635. /**RGBA格式纹理,每个通道32位浮点数。*/
  41636. R32G32B32A32 = 15
  41637. }
  41638. /**
  41639. * WebGLRTMgr 管理WebGLRenderTarget的创建和回收
  41640. * TODO 需求不大,管理成本高。先去掉。
  41641. */
  41642. class WebGLRTMgr extends laya.resource.WebGLRTMgr {}
  41643. enum WarpMode {
  41644. /** 循环平铺。*/
  41645. Repeat = 0,
  41646. /** 超过UV边界后采用最后一个像素。*/
  41647. Clamp = 1
  41648. }
  41649. /**
  41650. * @private
  41651. */
  41652. class System extends laya.system.System {}
  41653. /**
  41654. * 广告插件
  41655. * @author 小松
  41656. * @date -2018-09-19
  41657. */
  41658. class AdvImage extends laya.ui.AdvImage {}
  41659. /**
  41660. * <code>AutoBitmap</code> 类是用于表示位图图像或绘制图形的显示对象。
  41661. * <p>封装了位置,宽高及九宫格的处理,供UI组件使用。</p>
  41662. */
  41663. class AutoBitmap extends laya.ui.AutoBitmap {}
  41664. /**
  41665. * <code>Box</code> 类是一个控件容器类。
  41666. */
  41667. class Box extends laya.ui.Box {}
  41668. /**
  41669. * 当按钮的选中状态( <code>selected</code> 属性)发生改变时调度。
  41670. * @eventType laya.events.Event
  41671. */
  41672. /**
  41673. * <code>Button</code> 组件用来表示常用的多态按钮。 <code>Button</code> 组件可显示文本标签、图标或同时显示两者。 *
  41674. * <p>可以是单态,两态和三态,默认三态(up,over,down)。</p>
  41675. * @example <caption>以下示例代码,创建了一个 <code>Button</code> 实例。</caption>
  41676. package
  41677. {
  41678. import laya.ui.Button;
  41679. import laya.utils.Handler;
  41680. public class Button_Example
  41681. {
  41682. public function Button_Example()
  41683. {
  41684. Laya.init(640, 800);//设置游戏画布宽高。
  41685. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  41686. Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete));//加载资源。
  41687. }
  41688. private function onLoadComplete():void
  41689. {
  41690. trace("资源加载完成!");
  41691. var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。
  41692. button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。
  41693. button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。
  41694. button.clickHandler = new Handler(this, onClickButton,[button]);//设置 button 的点击事件处理器。
  41695. Laya.stage.addChild(button);//将此 button 对象添加到显示列表。
  41696. }
  41697. private function onClickButton(button:Button):void
  41698. {
  41699. trace("按钮button被点击了!");
  41700. }
  41701. }
  41702. }
  41703. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  41704. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  41705. Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源
  41706. function loadComplete()
  41707. {
  41708. console.log("资源加载完成!");
  41709. var button = new laya.ui.Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,传入它的皮肤skin和标签label。
  41710. button.x =100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。
  41711. button.y =100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。
  41712. button.clickHandler = laya.utils.Handler.create(this,onClickButton,[button],false);//设置 button 的点击事件处理函数。
  41713. Laya.stage.addChild(button);//将此 button 对象添加到显示列表。
  41714. }
  41715. function onClickButton(button)
  41716. {
  41717. console.log("按钮被点击了。",button);
  41718. }
  41719. * @example import Button=laya.ui.Button;
  41720. import Handler=laya.utils.Handler;
  41721. class Button_Example{
  41722. constructor()
  41723. {
  41724. Laya.init(640, 800);
  41725. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  41726. Laya.loader.load("resource/ui/button.png", laya.utils.Handler.create(this,this.onLoadComplete));//加载资源。
  41727. }
  41728. private onLoadComplete()
  41729. {
  41730. var button:Button = new Button("resource/ui/button.png","label");//创建一个 Button 类的实例对象 button ,并传入它的皮肤。
  41731. button.x = 100;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。
  41732. button.y = 100;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。
  41733. button.clickHandler = new Handler(this, this.onClickButton,[button]);//设置 button 的点击事件处理器。
  41734. Laya.stage.addChild(button);//将此 button 对象添加到显示列表。
  41735. }
  41736. private onClickButton(button:Button):void
  41737. {
  41738. console.log("按钮button被点击了!")
  41739. }
  41740. }
  41741. */
  41742. class Button extends laya.ui.Button {}
  41743. /**
  41744. * 当按钮的选中状态( <code>selected</code> 属性)发生改变时调度。
  41745. * @eventType laya.events.Event
  41746. */
  41747. /**
  41748. * <code>CheckBox</code> 组件显示一个小方框,该方框内可以有选中标记。
  41749. * <code>CheckBox</code> 组件还可以显示可选的文本标签,默认该标签位于 CheckBox 右侧。
  41750. * <p><code>CheckBox</code> 使用 <code>dataSource</code>赋值时的的默认属性是:<code>selected</code>。</p>
  41751. * @example <caption>以下示例代码,创建了一个 <code>CheckBox</code> 实例。</caption>
  41752. package
  41753. {
  41754. import laya.ui.CheckBox;
  41755. import laya.utils.Handler;
  41756. public class CheckBox_Example
  41757. {
  41758. public function CheckBox_Example()
  41759. {
  41760. Laya.init(640, 800);//设置游戏画布宽高。
  41761. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  41762. Laya.loader.load("resource/ui/check.png", Handler.create(this,onLoadComplete));//加载资源。
  41763. }
  41764. private function onLoadComplete():void
  41765. {
  41766. trace("资源加载完成!");
  41767. var checkBox:CheckBox = new CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的实例对象 checkBox ,传入它的皮肤skin和标签label。
  41768. checkBox.x = 100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。
  41769. checkBox.y = 100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。
  41770. checkBox.clickHandler = new Handler(this, onClick, [checkBox]);//设置 checkBox 的点击事件处理器。
  41771. Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。
  41772. }
  41773. private function onClick(checkBox:CheckBox):void
  41774. {
  41775. trace("输出选中状态: checkBox.selected = " + checkBox.selected);
  41776. }
  41777. }
  41778. }
  41779. * @example Laya.init(640, 800);//设置游戏画布宽高
  41780. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  41781. Laya.loader.load("resource/ui/check.png",laya.utils.Handler.create(this,loadComplete));//加载资源
  41782. function loadComplete()
  41783. {
  41784. console.log("资源加载完成!");
  41785. var checkBox:laya.ui.CheckBox= new laya.ui.CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的类的实例对象 checkBox ,传入它的皮肤skin和标签label。
  41786. checkBox.x =100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。
  41787. checkBox.y =100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。
  41788. checkBox.clickHandler = new laya.utils.Handler(this,this.onClick,[checkBox],false);//设置 checkBox 的点击事件处理器。
  41789. Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。
  41790. }
  41791. function onClick(checkBox)
  41792. {
  41793. console.log("checkBox.selected = ",checkBox.selected);
  41794. }
  41795. * @example import CheckBox= laya.ui.CheckBox;
  41796. import Handler=laya.utils.Handler;
  41797. class CheckBox_Example{
  41798. constructor()
  41799. {
  41800. Laya.init(640, 800);
  41801. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  41802. Laya.loader.load("resource/ui/check.png", Handler.create(this,this.onLoadComplete));//加载资源。
  41803. }
  41804. private onLoadComplete()
  41805. {
  41806. var checkBox:CheckBox = new CheckBox("resource/ui/check.png", "这个是一个CheckBox组件。");//创建一个 CheckBox 类的实例对象 checkBox ,传入它的皮肤skin和标签label。
  41807. checkBox.x = 100;//设置 checkBox 对象的属性 x 的值,用于控制 checkBox 对象的显示位置。
  41808. checkBox.y = 100;//设置 checkBox 对象的属性 y 的值,用于控制 checkBox 对象的显示位置。
  41809. checkBox.clickHandler = new Handler(this, this.onClick,[checkBox]);//设置 checkBox 的点击事件处理器。
  41810. Laya.stage.addChild(checkBox);//将此 checkBox 对象添加到显示列表。
  41811. }
  41812. private onClick(checkBox:CheckBox):void
  41813. {
  41814. console.log("输出选中状态: checkBox.selected = " + checkBox.selected);
  41815. }
  41816. }
  41817. */
  41818. class CheckBox extends laya.ui.CheckBox {}
  41819. /**
  41820. * 图片加载完成后调度。
  41821. * @eventType Event.LOADED
  41822. */
  41823. /**
  41824. * 当前帧发生变化后调度。
  41825. * @eventType laya.events.Event
  41826. */
  41827. /**
  41828. * <p> <code>Clip</code> 类是位图切片动画。</p>
  41829. * <p> <code>Clip</code> 可将一张图片,按横向分割数量 <code>clipX</code> 、竖向分割数量 <code>clipY</code> ,
  41830. * 或横向分割每个切片的宽度 <code>clipWidth</code> 、竖向分割每个切片的高度 <code>clipHeight</code> ,
  41831. * 从左向右,从上到下,分割组合为一个切片动画。</p>
  41832. * Image和Clip组件是唯一支持异步加载的两个组件,比如clip.skin = "abc/xxx.png",其他UI组件均不支持异步加载。
  41833. * @example <caption>以下示例代码,创建了一个 <code>Clip</code> 实例。</caption>
  41834. package
  41835. {
  41836. import laya.ui.Clip;
  41837. public class Clip_Example
  41838. {
  41839. private var clip:Clip;
  41840. public function Clip_Example()
  41841. {
  41842. Laya.init(640, 800);//设置游戏画布宽高。
  41843. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  41844. onInit();
  41845. }
  41846. private function onInit():void
  41847. {
  41848. clip = new Clip("resource/ui/clip_num.png", 10, 1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。
  41849. clip.autoPlay = true;//设置 clip 动画自动播放。
  41850. clip.interval = 100;//设置 clip 动画的播放时间间隔。
  41851. clip.x = 100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。
  41852. clip.y = 100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。
  41853. clip.on(Event.CLICK, this, onClick);//给 clip 添加点击事件函数侦听。
  41854. Laya.stage.addChild(clip);//将此 clip 对象添加到显示列表。
  41855. }
  41856. private function onClick():void
  41857. {
  41858. trace("clip 的点击事件侦听处理函数。clip.total="+ clip.total);
  41859. if (clip.isPlaying == true)
  41860. {
  41861. clip.stop();//停止动画。
  41862. }else {
  41863. clip.play();//播放动画。
  41864. }
  41865. }
  41866. }
  41867. }
  41868. * @example Laya.init(640, 800);//设置游戏画布宽高
  41869. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  41870. var clip;
  41871. Laya.loader.load("resource/ui/clip_num.png",laya.utils.Handler.create(this,loadComplete));//加载资源
  41872. function loadComplete() {
  41873. console.log("资源加载完成!");
  41874. clip = new laya.ui.Clip("resource/ui/clip_num.png",10,1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。
  41875. clip.autoPlay = true;//设置 clip 动画自动播放。
  41876. clip.interval = 100;//设置 clip 动画的播放时间间隔。
  41877. clip.x =100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。
  41878. clip.y =100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。
  41879. clip.on(Event.CLICK,this,onClick);//给 clip 添加点击事件函数侦听。
  41880. Laya.stage.addChild(clip);//将此 clip 对象添加到显示列表。
  41881. }
  41882. function onClick()
  41883. {
  41884. console.log("clip 的点击事件侦听处理函数。");
  41885. if(clip.isPlaying == true)
  41886. {
  41887. clip.stop();
  41888. }else {
  41889. clip.play();
  41890. }
  41891. }
  41892. * @example import Clip = laya.ui.Clip;
  41893. import Handler = laya.utils.Handler;
  41894. class Clip_Example {
  41895. private clip: Clip;
  41896. constructor() {
  41897. Laya.init(640, 800);//设置游戏画布宽高。
  41898. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  41899. this.onInit();
  41900. }
  41901. private onInit(): void {
  41902. this.clip = new Clip("resource/ui/clip_num.png", 10, 1);//创建一个 Clip 类的实例对象 clip ,传入它的皮肤skin和横向分割数量、竖向分割数量。
  41903. this.clip.autoPlay = true;//设置 clip 动画自动播放。
  41904. this.clip.interval = 100;//设置 clip 动画的播放时间间隔。
  41905. this.clip.x = 100;//设置 clip 对象的属性 x 的值,用于控制 clip 对象的显示位置。
  41906. this.clip.y = 100;//设置 clip 对象的属性 y 的值,用于控制 clip 对象的显示位置。
  41907. this.clip.on(laya.events.Event.CLICK, this, this.onClick);//给 clip 添加点击事件函数侦听。
  41908. Laya.stage.addChild(this.clip);//将此 clip 对象添加到显示列表。
  41909. }
  41910. private onClick(): void {
  41911. console.log("clip 的点击事件侦听处理函数。clip.total=" + this.clip.total);
  41912. if (this.clip.isPlaying == true) {
  41913. this.clip.stop();//停止动画。
  41914. } else {
  41915. this.clip.play();//播放动画。
  41916. }
  41917. }
  41918. }
  41919. */
  41920. class Clip extends laya.ui.Clip {}
  41921. /**
  41922. * 选择项改变后调度。
  41923. * @eventType laya.events.Event
  41924. */
  41925. /**
  41926. * <code>ColorPicker</code> 组件将显示包含多个颜色样本的列表,用户可以从中选择颜色。
  41927. * @example <caption>以下示例代码,创建了一个 <code>ColorPicker</code> 实例。</caption>
  41928. package
  41929. {
  41930. import laya.ui.ColorPicker;
  41931. import laya.utils.Handler;
  41932. public class ColorPicker_Example
  41933. {
  41934. public function ColorPicker_Example()
  41935. {
  41936. Laya.init(640, 800);//设置游戏画布宽高。
  41937. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  41938. Laya.loader.load("resource/ui/color.png", Handler.create(this,onLoadComplete));//加载资源。
  41939. }
  41940. private function onLoadComplete():void
  41941. {
  41942. trace("资源加载完成!");
  41943. var colorPicket:ColorPicker = new ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。
  41944. colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。
  41945. colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。
  41946. colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。
  41947. colorPicket.changeHandler = new Handler(this, onChangeColor,[colorPicket]);//设置 colorPicket 的颜色改变回调函数。
  41948. Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。
  41949. }
  41950. private function onChangeColor(colorPicket:ColorPicker):void
  41951. {
  41952. trace("当前选择的颜色: " + colorPicket.selectedColor);
  41953. }
  41954. }
  41955. }
  41956. * @example Laya.init(640, 800);//设置游戏画布宽高
  41957. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  41958. Laya.loader.load("resource/ui/color.png",laya.utils.Handler.create(this,loadComplete));//加载资源
  41959. function loadComplete()
  41960. {
  41961. console.log("资源加载完成!");
  41962. var colorPicket = new laya.ui.ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。
  41963. colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。
  41964. colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。
  41965. colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。
  41966. colorPicket.changeHandler = laya.utils.Handler.create(this, onChangeColor,[colorPicket],false);//设置 colorPicket 的颜色改变回调函数。
  41967. Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。
  41968. }
  41969. function onChangeColor(colorPicket)
  41970. {
  41971. console.log("当前选择的颜色: " + colorPicket.selectedColor);
  41972. }
  41973. * @example import ColorPicker = laya.ui.ColorPicker;
  41974. import Handler = laya.utils.Handler;
  41975. class ColorPicker_Example {
  41976. constructor() {
  41977. Laya.init(640, 800);//设置游戏画布宽高。
  41978. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  41979. Laya.loader.load("resource/ui/color.png", Handler.create(this, this.onLoadComplete));//加载资源。
  41980. }
  41981. private onLoadComplete(): void {
  41982. console.log("资源加载完成!");
  41983. var colorPicket: ColorPicker = new ColorPicker();//创建一个 ColorPicker 类的实例对象 colorPicket 。
  41984. colorPicket.skin = "resource/ui/color.png";//设置 colorPicket 的皮肤。
  41985. colorPicket.x = 100;//设置 colorPicket 对象的属性 x 的值,用于控制 colorPicket 对象的显示位置。
  41986. colorPicket.y = 100;//设置 colorPicket 对象的属性 y 的值,用于控制 colorPicket 对象的显示位置。
  41987. colorPicket.changeHandler = new Handler(this, this.onChangeColor, [colorPicket]);//设置 colorPicket 的颜色改变回调函数。
  41988. Laya.stage.addChild(colorPicket);//将此 colorPicket 对象添加到显示列表。
  41989. }
  41990. private onChangeColor(colorPicket: ColorPicker): void {
  41991. console.log("当前选择的颜色: " + colorPicket.selectedColor);
  41992. }
  41993. }
  41994. */
  41995. class ColorPicker extends laya.ui.ColorPicker {}
  41996. /**
  41997. * 当用户更改 <code>ComboBox</code> 组件中的选定内容时调度。
  41998. * @eventType laya.events.Event
  41999. selectedIndex属性变化时调度。
  42000. */
  42001. /**
  42002. * <code>ComboBox</code> 组件包含一个下拉列表,用户可以从该列表中选择单个值。
  42003. * @example <caption>以下示例代码,创建了一个 <code>ComboBox</code> 实例。</caption>
  42004. package
  42005. {
  42006. import laya.ui.ComboBox;
  42007. import laya.utils.Handler;
  42008. public class ComboBox_Example
  42009. {
  42010. public function ComboBox_Example()
  42011. {
  42012. Laya.init(640, 800);//设置游戏画布宽高。
  42013. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42014. Laya.loader.load("resource/ui/button.png", Handler.create(this,onLoadComplete));//加载资源。
  42015. }
  42016. private function onLoadComplete():void
  42017. {
  42018. trace("资源加载完成!");
  42019. var comboBox:ComboBox = new ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。
  42020. comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  42021. comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  42022. comboBox.selectHandler = new Handler(this, onSelect);//设置 comboBox 选择项改变时执行的处理器。
  42023. Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。
  42024. }
  42025. private function onSelect(index:int):void
  42026. {
  42027. trace("当前选中的项对象索引: ",index);
  42028. }
  42029. }
  42030. }
  42031. * @example Laya.init(640, 800);//设置游戏画布宽高。
  42032. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42033. Laya.loader.load("resource/ui/button.png",laya.utils.Handler.create(this,loadComplete));//加载资源
  42034. function loadComplete() {
  42035. console.log("资源加载完成!");
  42036. var comboBox = new laya.ui.ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。
  42037. comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  42038. comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  42039. comboBox.selectHandler = new laya.utils.Handler(this, onSelect);//设置 comboBox 选择项改变时执行的处理器。
  42040. Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。
  42041. }
  42042. function onSelect(index)
  42043. {
  42044. console.log("当前选中的项对象索引: ",index);
  42045. }
  42046. * @example import ComboBox = laya.ui.ComboBox;
  42047. import Handler = laya.utils.Handler;
  42048. class ComboBox_Example {
  42049. constructor() {
  42050. Laya.init(640, 800);//设置游戏画布宽高。
  42051. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42052. Laya.loader.load("resource/ui/button.png", Handler.create(this, this.onLoadComplete));//加载资源。
  42053. }
  42054. private onLoadComplete(): void {
  42055. console.log("资源加载完成!");
  42056. var comboBox: ComboBox = new ComboBox("resource/ui/button.png", "item0,item1,item2,item3,item4,item5");//创建一个 ComboBox 类的实例对象 comboBox ,传入它的皮肤和标签集。
  42057. comboBox.x = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  42058. comboBox.y = 100;//设置 comboBox 对象的属性 x 的值,用于控制 comboBox 对象的显示位置。
  42059. comboBox.selectHandler = new Handler(this, this.onSelect);//设置 comboBox 选择项改变时执行的处理器。
  42060. Laya.stage.addChild(comboBox);//将此 comboBox 对象添加到显示列表。
  42061. }
  42062. private onSelect(index: number): void {
  42063. console.log("当前选中的项对象索引: ", index);
  42064. }
  42065. }
  42066. */
  42067. class ComboBox extends laya.ui.ComboBox {}
  42068. /**
  42069. * <code>Dialog</code> 组件是一个弹出对话框,实现对话框弹出,拖动,模式窗口功能。
  42070. * 可以通过UIConfig设置弹出框背景透明度,模式窗口点击边缘是否关闭等
  42071. * 通过设置zOrder属性,可以更改弹出的层次
  42072. * 通过设置popupEffect和closeEffect可以设置弹出效果和关闭效果,如果不想有任何弹出关闭效果,可以设置前述属性为空
  42073. * @example <caption>以下示例代码,创建了一个 <code>Dialog</code> 实例。</caption>
  42074. package
  42075. {
  42076. import laya.ui.Dialog;
  42077. import laya.utils.Handler;
  42078. public class Dialog_Example
  42079. {
  42080. private var dialog:Dialog_Instance;
  42081. public function Dialog_Example()
  42082. {
  42083. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  42084. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42085. Laya.loader.load("resource/ui/btn_close.png", Handler.create(this, onLoadComplete));//加载资源。
  42086. }
  42087. private function onLoadComplete():void
  42088. {
  42089. dialog = new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。
  42090. dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。
  42091. dialog.show();//显示 dialog。
  42092. dialog.closeHandler = new Handler(this, onClose);//设置 dialog 的关闭函数处理器。
  42093. }
  42094. private function onClose(name:String):void
  42095. {
  42096. if (name == Dialog.CLOSE)
  42097. {
  42098. trace("通过点击 name 为" + name +"的组件,关闭了dialog。");
  42099. }
  42100. }
  42101. }
  42102. }
  42103. import laya.ui.Button;
  42104. import laya.ui.Dialog;
  42105. import laya.ui.Image;
  42106. class Dialog_Instance extends Dialog
  42107. {
  42108. function Dialog_Instance():void
  42109. {
  42110. var bg:Image = new Image("resource/ui/bg.png");
  42111. bg.sizeGrid = "40,10,5,10";
  42112. bg.width = 150;
  42113. bg.height = 250;
  42114. addChild(bg);
  42115. var image:Image = new Image("resource/ui/image.png");
  42116. addChild(image);
  42117. var button:Button = new Button("resource/ui/btn_close.png");
  42118. button.name = Dialog.CLOSE;//设置button的name属性值。
  42119. button.x = 0;
  42120. button.y = 0;
  42121. addChild(button);
  42122. }
  42123. }
  42124. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式
  42125. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  42126. var dialog;
  42127. Laya.loader.load("resource/ui/btn_close.png", laya.utils.Handler.create(this, loadComplete));//加载资源
  42128. (function (_super) {//新建一个类Dialog_Instance继承自laya.ui.Dialog。
  42129. function Dialog_Instance() {
  42130. Dialog_Instance.__super.call(this);//初始化父类
  42131. var bg = new laya.ui.Image("resource/ui/bg.png");//新建一个 Image 类的实例 bg 。
  42132. bg.sizeGrid = "10,40,10,5";//设置 bg 的网格信息。
  42133. bg.width = 150;//设置 bg 的宽度。
  42134. bg.height = 250;//设置 bg 的高度。
  42135. this.addChild(bg);//将 bg 添加到显示列表。
  42136. var image = new laya.ui.Image("resource/ui/image.png");//新建一个 Image 类的实例 image 。
  42137. this.addChild(image);//将 image 添加到显示列表。
  42138. var button = new laya.ui.Button("resource/ui/btn_close.png");//新建一个 Button 类的实例 bg 。
  42139. button.name = laya.ui.Dialog.CLOSE;//设置 button 的 name 属性值。
  42140. button.x = 0;//设置 button 对象的属性 x 的值,用于控制 button 对象的显示位置。
  42141. button.y = 0;//设置 button 对象的属性 y 的值,用于控制 button 对象的显示位置。
  42142. this.addChild(button);//将 button 添加到显示列表。
  42143. };
  42144. Laya.class(Dialog_Instance,"mypackage.dialogExample.Dialog_Instance",_super);//注册类Dialog_Instance。
  42145. })(laya.ui.Dialog);
  42146. function loadComplete() {
  42147. console.log("资源加载完成!");
  42148. dialog = new mypackage.dialogExample.Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。
  42149. dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。
  42150. dialog.show();//显示 dialog。
  42151. dialog.closeHandler = new laya.utils.Handler(this, onClose);//设置 dialog 的关闭函数处理器。
  42152. }
  42153. function onClose(name) {
  42154. if (name == laya.ui.Dialog.CLOSE) {
  42155. console.log("通过点击 name 为" + name + "的组件,关闭了dialog。");
  42156. }
  42157. }
  42158. * @example import Dialog = laya.ui.Dialog;
  42159. import Handler = laya.utils.Handler;
  42160. class Dialog_Example {
  42161. private dialog: Dialog_Instance;
  42162. constructor() {
  42163. Laya.init(640, 800);//设置游戏画布宽高。
  42164. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42165. Laya.loader.load("resource/ui/btn_close.png", Handler.create(this, this.onLoadComplete));//加载资源。
  42166. }
  42167. private onLoadComplete(): void {
  42168. this.dialog = new Dialog_Instance();//创建一个 Dialog_Instance 类的实例对象 dialog。
  42169. this.dialog.dragArea = "0,0,150,50";//设置 dialog 的拖拽区域。
  42170. this.dialog.show();//显示 dialog。
  42171. this.dialog.closeHandler = new Handler(this, this.onClose);//设置 dialog 的关闭函数处理器。
  42172. }
  42173. private onClose(name: string): void {
  42174. if (name == Dialog.CLOSE) {
  42175. console.log("通过点击 name 为" + name + "的组件,关闭了dialog。");
  42176. }
  42177. }
  42178. }
  42179. import Button = laya.ui.Button;
  42180. class Dialog_Instance extends Dialog {
  42181. Dialog_Instance(): void {
  42182. var bg: laya.ui.Image = new laya.ui.Image("resource/ui/bg.png");
  42183. bg.sizeGrid = "40,10,5,10";
  42184. bg.width = 150;
  42185. bg.height = 250;
  42186. this.addChild(bg);
  42187. var image: laya.ui.Image = new laya.ui.Image("resource/ui/image.png");
  42188. this.addChild(image);
  42189. var button: Button = new Button("resource/ui/btn_close.png");
  42190. button.name = Dialog.CLOSE;//设置button的name属性值。
  42191. button.x = 0;
  42192. button.y = 0;
  42193. this.addChild(button);
  42194. }
  42195. }
  42196. */
  42197. class Dialog extends laya.ui.Dialog {}
  42198. /**
  42199. * 打开任意窗口后调度。
  42200. * @eventType Event.OPEN
  42201. */
  42202. /**
  42203. * 关闭任意窗口后调度。
  42204. * @eventType Event.CLOSE
  42205. */
  42206. /**
  42207. * <code>DialogManager</code> 对话框管理容器,所有的对话框都在该容器内,并且受管理器管理。
  42208. * 任意对话框打开和关闭,都会出发管理类的open和close事件
  42209. * 可以通过UIConfig设置弹出框背景透明度,模式窗口点击边缘是否关闭,点击窗口是否切换层次等
  42210. * 通过设置对话框的zOrder属性,可以更改弹出的层次
  42211. */
  42212. class DialogManager extends laya.ui.DialogManager {}
  42213. /**
  42214. * 字体切片,简化版的位图字体,只需设置一个切片图片和文字内容即可使用,效果同位图字体
  42215. * 使用方式:设置位图字体皮肤skin,设置皮肤对应的字体内容sheet(如果多行,可以使用空格换行),示例:
  42216. * fontClip.skin = "font1.png";//设置皮肤
  42217. * fontClip.sheet = "abc123 456";//设置皮肤对应的内容,空格换行。此皮肤为2行5列(显示时skin会被等分为2行5列),第一行对应的文字为"abc123",第二行为"456"
  42218. * fontClip.value = "a1326";//显示"a1326"文字
  42219. */
  42220. class FontClip extends laya.ui.FontClip {}
  42221. /**
  42222. * <code>HBox</code> 是一个水平布局容器类。
  42223. */
  42224. class HBox extends laya.ui.HBox {}
  42225. /**
  42226. * 使用 <code>HScrollBar</code> (水平 <code>ScrollBar</code> )控件,可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。
  42227. * @example <caption>以下示例代码,创建了一个 <code>HScrollBar</code> 实例。</caption>
  42228. package
  42229. {
  42230. import laya.ui.HScrollBar;
  42231. import laya.utils.Handler;
  42232. public class HScrollBar_Example
  42233. {
  42234. private var hScrollBar:HScrollBar;
  42235. public function HScrollBar_Example()
  42236. {
  42237. Laya.init(640, 800);//设置游戏画布宽高。
  42238. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42239. 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));//加载资源。
  42240. }
  42241. private function onLoadComplete():void
  42242. {
  42243. hScrollBar = new HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。
  42244. hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。
  42245. hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。
  42246. hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。
  42247. hScrollBar.changeHandler = new Handler(this, onChange);//设置 hScrollBar 的滚动变化处理器。
  42248. Laya.stage.addChild(hScrollBar);//将此 hScrollBar 对象添加到显示列表。
  42249. }
  42250. private function onChange(value:Number):void
  42251. {
  42252. trace("滚动条的位置: value=" + value);
  42253. }
  42254. }
  42255. }
  42256. * @example Laya.init(640, 800);//设置游戏画布宽高
  42257. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  42258. var hScrollBar;
  42259. var res = ["resource/ui/hscroll.png", "resource/ui/hscroll$bar.png", "resource/ui/hscroll$down.png", "resource/ui/hscroll$up.png"];
  42260. Laya.loader.load(res,laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  42261. function onLoadComplete() {
  42262. console.log("资源加载完成!");
  42263. hScrollBar = new laya.ui.HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。
  42264. hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。
  42265. hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。
  42266. hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。
  42267. hScrollBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 hScrollBar 的滚动变化处理器。
  42268. Laya.stage.addChild(hScrollBar);//将此 hScrollBar 对象添加到显示列表。
  42269. }
  42270. function onChange(value)
  42271. {
  42272. console.log("滚动条的位置: value=" + value);
  42273. }
  42274. * @example import HScrollBar = laya.ui.HScrollBar;
  42275. import Handler = laya.utils.Handler;
  42276. class HScrollBar_Example {
  42277. private hScrollBar: HScrollBar;
  42278. constructor() {
  42279. Laya.init(640, 800);//设置游戏画布宽高。
  42280. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42281. 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));//加载资源。
  42282. }
  42283. private onLoadComplete(): void {
  42284. this.hScrollBar = new HScrollBar();//创建一个 HScrollBar 类的实例对象 hScrollBar 。
  42285. this.hScrollBar.skin = "resource/ui/hscroll.png";//设置 hScrollBar 的皮肤。
  42286. this.hScrollBar.x = 100;//设置 hScrollBar 对象的属性 x 的值,用于控制 hScrollBar 对象的显示位置。
  42287. this.hScrollBar.y = 100;//设置 hScrollBar 对象的属性 y 的值,用于控制 hScrollBar 对象的显示位置。
  42288. this.hScrollBar.changeHandler = new Handler(this, this.onChange);//设置 hScrollBar 的滚动变化处理器。
  42289. Laya.stage.addChild(this.hScrollBar);//将此 hScrollBar 对象添加到显示列表。
  42290. }
  42291. private onChange(value: number): void {
  42292. console.log("滚动条的位置: value=" + value);
  42293. }
  42294. }
  42295. */
  42296. class HScrollBar extends laya.ui.HScrollBar {}
  42297. /**
  42298. * 使用 <code>HSlider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  42299. * <p> <code>HSlider</code> 控件采用水平方向。滑块轨道从左向右扩展,而标签位于轨道的顶部或底部。</p>
  42300. * @example <caption>以下示例代码,创建了一个 <code>HSlider</code> 实例。</caption>
  42301. package
  42302. {
  42303. import laya.ui.HSlider;
  42304. import laya.utils.Handler;
  42305. public class HSlider_Example
  42306. {
  42307. private var hSlider:HSlider;
  42308. public function HSlider_Example()
  42309. {
  42310. Laya.init(640, 800);//设置游戏画布宽高。
  42311. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42312. Laya.loader.load(["resource/ui/hslider.png", "resource/ui/hslider$bar.png"], Handler.create(this, onLoadComplete));//加载资源。
  42313. }
  42314. private function onLoadComplete():void
  42315. {
  42316. hSlider = new HSlider();//创建一个 HSlider 类的实例对象 hSlider 。
  42317. hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。
  42318. hSlider.min = 0;//设置 hSlider 最低位置值。
  42319. hSlider.max = 10;//设置 hSlider 最高位置值。
  42320. hSlider.value = 2;//设置 hSlider 当前位置值。
  42321. hSlider.tick = 1;//设置 hSlider 刻度值。
  42322. hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。
  42323. hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。
  42324. hSlider.changeHandler = new Handler(this, onChange);//设置 hSlider 位置变化处理器。
  42325. Laya.stage.addChild(hSlider);//把 hSlider 添加到显示列表。
  42326. }
  42327. private function onChange(value:Number):void
  42328. {
  42329. trace("滑块的位置: value=" + value);
  42330. }
  42331. }
  42332. }
  42333. * @example Laya.init(640, 800, "canvas");//设置游戏画布宽高、渲染模式
  42334. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  42335. var hSlider;
  42336. var res = ["resource/ui/hslider.png", "resource/ui/hslider$bar.png"];
  42337. Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete));
  42338. function onLoadComplete() {
  42339. console.log("资源加载完成!");
  42340. hSlider = new laya.ui.HSlider();//创建一个 HSlider 类的实例对象 hSlider 。
  42341. hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。
  42342. hSlider.min = 0;//设置 hSlider 最低位置值。
  42343. hSlider.max = 10;//设置 hSlider 最高位置值。
  42344. hSlider.value = 2;//设置 hSlider 当前位置值。
  42345. hSlider.tick = 1;//设置 hSlider 刻度值。
  42346. hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。
  42347. hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。
  42348. hSlider.changeHandler = new laya.utils.Handler(this, onChange);//设置 hSlider 位置变化处理器。
  42349. Laya.stage.addChild(hSlider);//把 hSlider 添加到显示列表。
  42350. }
  42351. function onChange(value)
  42352. {
  42353. console.log("滑块的位置: value=" + value);
  42354. }
  42355. * @example import Handler = laya.utils.Handler;
  42356. import HSlider = laya.ui.HSlider;
  42357. class HSlider_Example {
  42358. private hSlider: HSlider;
  42359. constructor() {
  42360. Laya.init(640, 800);//设置游戏画布宽高。
  42361. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42362. Laya.loader.load(["resource/ui/hslider.png", "resource/ui/hslider$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  42363. }
  42364. private onLoadComplete(): void {
  42365. this.hSlider = new HSlider();//创建一个 HSlider 类的实例对象 hSlider 。
  42366. this.hSlider.skin = "resource/ui/hslider.png";//设置 hSlider 的皮肤。
  42367. this.hSlider.min = 0;//设置 hSlider 最低位置值。
  42368. this.hSlider.max = 10;//设置 hSlider 最高位置值。
  42369. this.hSlider.value = 2;//设置 hSlider 当前位置值。
  42370. this.hSlider.tick = 1;//设置 hSlider 刻度值。
  42371. this.hSlider.x = 100;//设置 hSlider 对象的属性 x 的值,用于控制 hSlider 对象的显示位置。
  42372. this.hSlider.y = 100;//设置 hSlider 对象的属性 y 的值,用于控制 hSlider 对象的显示位置。
  42373. this.hSlider.changeHandler = new Handler(this, this.onChange);//设置 hSlider 位置变化处理器。
  42374. Laya.stage.addChild(this.hSlider);//把 hSlider 添加到显示列表。
  42375. }
  42376. private onChange(value: number): void {
  42377. console.log("滑块的位置: value=" + value);
  42378. }
  42379. }
  42380. * @see laya.ui.Slider
  42381. */
  42382. class HSlider extends laya.ui.HSlider {}
  42383. /**
  42384. * 资源加载完成后调度。
  42385. * @eventType Event.LOADED
  42386. */
  42387. /**
  42388. * <code>Image</code> 类是用于表示位图图像或绘制图形的显示对象。
  42389. * Image和Clip组件是唯一支持异步加载的两个组件,比如img.skin = "abc/xxx.png",其他UI组件均不支持异步加载。
  42390. * @example <caption>以下示例代码,创建了一个新的 <code>Image</code> 实例,设置了它的皮肤、位置信息,并添加到舞台上。</caption>
  42391. package
  42392. {
  42393. import laya.ui.Image;
  42394. public class Image_Example
  42395. {
  42396. public function Image_Example()
  42397. {
  42398. Laya.init(640, 800);//设置游戏画布宽高。
  42399. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42400. onInit();
  42401. }
  42402. private function onInit():void
  42403. {
  42404. var bg:Image = new Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。
  42405. bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。
  42406. bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。
  42407. bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。
  42408. bg.width = 150;//设置 bg 对象的宽度。
  42409. bg.height = 250;//设置 bg 对象的高度。
  42410. Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。
  42411. var image:Image = new Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。
  42412. image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。
  42413. image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。
  42414. Laya.stage.addChild(image);//将此 image 对象添加到显示列表。
  42415. }
  42416. }
  42417. }
  42418. * @example Laya.init(640, 800);//设置游戏画布宽高
  42419. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  42420. onInit();
  42421. function onInit() {
  42422. var bg = new laya.ui.Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。
  42423. bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。
  42424. bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。
  42425. bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。
  42426. bg.width = 150;//设置 bg 对象的宽度。
  42427. bg.height = 250;//设置 bg 对象的高度。
  42428. Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。
  42429. var image = new laya.ui.Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。
  42430. image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。
  42431. image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。
  42432. Laya.stage.addChild(image);//将此 image 对象添加到显示列表。
  42433. }
  42434. * @example class Image_Example {
  42435. constructor() {
  42436. Laya.init(640, 800);//设置游戏画布宽高。
  42437. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42438. this.onInit();
  42439. }
  42440. private onInit(): void {
  42441. var bg: laya.ui.Image = new laya.ui.Image("resource/ui/bg.png");//创建一个 Image 类的实例对象 bg ,并传入它的皮肤。
  42442. bg.x = 100;//设置 bg 对象的属性 x 的值,用于控制 bg 对象的显示位置。
  42443. bg.y = 100;//设置 bg 对象的属性 y 的值,用于控制 bg 对象的显示位置。
  42444. bg.sizeGrid = "40,10,5,10";//设置 bg 对象的网格信息。
  42445. bg.width = 150;//设置 bg 对象的宽度。
  42446. bg.height = 250;//设置 bg 对象的高度。
  42447. Laya.stage.addChild(bg);//将此 bg 对象添加到显示列表。
  42448. var image: laya.ui.Image = new laya.ui.Image("resource/ui/image.png");//创建一个 Image 类的实例对象 image ,并传入它的皮肤。
  42449. image.x = 100;//设置 image 对象的属性 x 的值,用于控制 image 对象的显示位置。
  42450. image.y = 100;//设置 image 对象的属性 y 的值,用于控制 image 对象的显示位置。
  42451. Laya.stage.addChild(image);//将此 image 对象添加到显示列表。
  42452. }
  42453. }
  42454. * @see laya.ui.AutoBitmap
  42455. */
  42456. class Image extends laya.ui.Image {}
  42457. /**
  42458. * 文本内容发生改变后调度。
  42459. * @eventType laya.events.Event
  42460. */
  42461. /**
  42462. * <p> <code>Label</code> 类用于创建显示对象以显示文本。</p>
  42463. * @example <caption>以下示例代码,创建了一个 <code>Label</code> 实例。</caption>
  42464. package
  42465. {
  42466. import laya.ui.Label;
  42467. public class Label_Example
  42468. {
  42469. public function Label_Example()
  42470. {
  42471. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  42472. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42473. onInit();
  42474. }
  42475. private function onInit():void
  42476. {
  42477. var label:Label = new Label();//创建一个 Label 类的实例对象 label 。
  42478. label.font = "Arial";//设置 label 的字体。
  42479. label.bold = true;//设置 label 显示为粗体。
  42480. label.leading = 4;//设置 label 的行间距。
  42481. label.wordWrap = true;//设置 label 自动换行。
  42482. label.padding = "10,10,10,10";//设置 label 的边距。
  42483. label.color = "#ff00ff";//设置 label 的颜色。
  42484. label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。
  42485. label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。
  42486. label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。
  42487. label.width = 300;//设置 label 的宽度。
  42488. label.height = 200;//设置 label 的高度。
  42489. Laya.stage.addChild(label);//将 label 添加到显示列表。
  42490. var passwordLabel:Label = new Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。
  42491. passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。
  42492. passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。
  42493. passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。
  42494. passwordLabel.width = 300;//设置 passwordLabel 的宽度。
  42495. passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。
  42496. passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。
  42497. passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。
  42498. Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。
  42499. }
  42500. }
  42501. }
  42502. * @example Laya.init(640, 800);//设置游戏画布宽高
  42503. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  42504. onInit();
  42505. function onInit(){
  42506. var label = new laya.ui.Label();//创建一个 Label 类的实例对象 label 。
  42507. label.font = "Arial";//设置 label 的字体。
  42508. label.bold = true;//设置 label 显示为粗体。
  42509. label.leading = 4;//设置 label 的行间距。
  42510. label.wordWrap = true;//设置 label 自动换行。
  42511. label.padding = "10,10,10,10";//设置 label 的边距。
  42512. label.color = "#ff00ff";//设置 label 的颜色。
  42513. label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。
  42514. label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。
  42515. label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。
  42516. label.width = 300;//设置 label 的宽度。
  42517. label.height = 200;//设置 label 的高度。
  42518. Laya.stage.addChild(label);//将 label 添加到显示列表。
  42519. var passwordLabel = new laya.ui.Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。
  42520. passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。
  42521. passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。
  42522. passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。
  42523. passwordLabel.width = 300;//设置 passwordLabel 的宽度。
  42524. passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。
  42525. passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。
  42526. passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。
  42527. Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。
  42528. }
  42529. * @example import Label = laya.ui.Label;
  42530. class Label_Example {
  42531. constructor() {
  42532. Laya.init(640, 800);//设置游戏画布宽高。
  42533. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42534. this.onInit();
  42535. }
  42536. private onInit(): void {
  42537. var label: Label = new Label();//创建一个 Label 类的实例对象 label 。
  42538. label.font = "Arial";//设置 label 的字体。
  42539. label.bold = true;//设置 label 显示为粗体。
  42540. label.leading = 4;//设置 label 的行间距。
  42541. label.wordWrap = true;//设置 label 自动换行。
  42542. label.padding = "10,10,10,10";//设置 label 的边距。
  42543. label.color = "#ff00ff";//设置 label 的颜色。
  42544. label.text = "Hello everyone,我是一个可爱的文本!";//设置 label 的文本内容。
  42545. label.x = 100;//设置 label 对象的属性 x 的值,用于控制 label 对象的显示位置。
  42546. label.y = 100;//设置 label 对象的属性 y 的值,用于控制 label 对象的显示位置。
  42547. label.width = 300;//设置 label 的宽度。
  42548. label.height = 200;//设置 label 的高度。
  42549. Laya.stage.addChild(label);//将 label 添加到显示列表。
  42550. var passwordLabel: Label = new Label("请原谅我,我不想被人看到我心里话。");//创建一个 Label 类的实例对象 passwordLabel 。
  42551. passwordLabel.asPassword = true;//设置 passwordLabel 的显示反式为密码显示。
  42552. passwordLabel.x = 100;//设置 passwordLabel 对象的属性 x 的值,用于控制 passwordLabel 对象的显示位置。
  42553. passwordLabel.y = 350;//设置 passwordLabel 对象的属性 y 的值,用于控制 passwordLabel 对象的显示位置。
  42554. passwordLabel.width = 300;//设置 passwordLabel 的宽度。
  42555. passwordLabel.color = "#000000";//设置 passwordLabel 的文本颜色。
  42556. passwordLabel.bgColor = "#ccffff";//设置 passwordLabel 的背景颜色。
  42557. passwordLabel.fontSize = 20;//设置 passwordLabel 的文本字体大小。
  42558. Laya.stage.addChild(passwordLabel);//将 passwordLabel 添加到显示列表。
  42559. }
  42560. }
  42561. * @see laya.display.Text
  42562. */
  42563. class Label extends laya.ui.Label {}
  42564. /**
  42565. * <code>LayoutBox</code> 是一个布局容器类。
  42566. */
  42567. class LayoutBox extends laya.ui.LayoutBox {}
  42568. /**
  42569. * 当对象的 <code>selectedIndex</code> 属性发生变化时调度。
  42570. * @eventType laya.events.Event
  42571. */
  42572. /**
  42573. * 渲染列表的单元项对象时调度。
  42574. * @eventType Event.RENDER
  42575. */
  42576. /**
  42577. * <code>List</code> 控件可显示项目列表。默认为垂直方向列表。可通过UI编辑器自定义列表。
  42578. * @example <caption>以下示例代码,创建了一个 <code>List</code> 实例。</caption>
  42579. package
  42580. {
  42581. import laya.ui.List;
  42582. import laya.utils.Handler;
  42583. public class List_Example
  42584. {
  42585. public function List_Example()
  42586. {
  42587. Laya.init(640, 800, "false");//设置游戏画布宽高、渲染模式。
  42588. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42589. 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));
  42590. }
  42591. private function onLoadComplete():void
  42592. {
  42593. var arr:Array = [];//创建一个数组,用于存贮列表的数据信息。
  42594. for (var i:int = 0; i &lt; 20; i++)
  42595. {
  42596. arr.push({label: "item" + i});
  42597. }
  42598. var list:List = new List();//创建一个 List 类的实例对象 list 。
  42599. list.itemRender = Item;//设置 list 的单元格渲染器。
  42600. list.repeatX = 1;//设置 list 的水平方向单元格数量。
  42601. list.repeatY = 10;//设置 list 的垂直方向单元格数量。
  42602. list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。
  42603. list.array = arr;//设置 list 的列表数据源。
  42604. list.pos(100, 100);//设置 list 的位置。
  42605. list.selectEnable = true;//设置 list 可选。
  42606. list.selectHandler = new Handler(this, onSelect);//设置 list 改变选择项执行的处理器。
  42607. Laya.stage.addChild(list);//将 list 添加到显示列表。
  42608. }
  42609. private function onSelect(index:int):void
  42610. {
  42611. trace("当前选择的项目索引: index= ", index);
  42612. }
  42613. }
  42614. }
  42615. import laya.ui.Box;
  42616. import laya.ui.Label;
  42617. class Item extends Box
  42618. {
  42619. public function Item()
  42620. {
  42621. graphics.drawRect(0, 0, 100, 20,null, "#ff0000");
  42622. var label:Label = new Label();
  42623. label.text = "100000";
  42624. label.name = "label";//设置 label 的name属性值。
  42625. label.size(100, 20);
  42626. addChild(label);
  42627. }
  42628. }
  42629. * @example (function (_super){
  42630. function Item(){
  42631. Item.__super.call(this);//初始化父类
  42632. this.graphics.drawRect(0, 0, 100, 20, "#ff0000");
  42633. var label = new laya.ui.Label();//创建一个 Label 类的实例对象 label 。
  42634. label.text = "100000";//设置 label 的文本内容。
  42635. label.name = "label";//设置 label 的name属性值。
  42636. label.size(100, 20);//设置 label 的宽度、高度。
  42637. this.addChild(label);//将 label 添加到显示列表。
  42638. };
  42639. Laya.class(Item,"mypackage.listExample.Item",_super);//注册类 Item 。
  42640. })(laya.ui.Box);
  42641. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  42642. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42643. var res = ["resource/ui/vscroll.png", "resource/ui/vscroll$bar.png", "resource/ui/vscroll$down.png", "resource/ui/vscroll$up.png"];
  42644. Laya.loader.load(res, new laya.utils.Handler(this, onLoadComplete));//加载资源。
  42645. function onLoadComplete() {
  42646. var arr = [];//创建一个数组,用于存贮列表的数据信息。
  42647. for (var i = 0; i &lt; 20; i++) {
  42648. arr.push({label: "item" + i});
  42649. }
  42650. var list = new laya.ui.List();//创建一个 List 类的实例对象 list 。
  42651. list.itemRender = mypackage.listExample.Item;//设置 list 的单元格渲染器。
  42652. list.repeatX = 1;//设置 list 的水平方向单元格数量。
  42653. list.repeatY = 10;//设置 list 的垂直方向单元格数量。
  42654. list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。
  42655. list.array = arr;//设置 list 的列表数据源。
  42656. list.pos(100, 100);//设置 list 的位置。
  42657. list.selectEnable = true;//设置 list 可选。
  42658. list.selectHandler = new laya.utils.Handler(this, onSelect);//设置 list 改变选择项执行的处理器。
  42659. Laya.stage.addChild(list);//将 list 添加到显示列表。
  42660. }
  42661. function onSelect(index)
  42662. {
  42663. console.log("当前选择的项目索引: index= ", index);
  42664. }
  42665. * @example import List = laya.ui.List;
  42666. import Handler = laya.utils.Handler;
  42667. public class List_Example {
  42668. public List_Example() {
  42669. Laya.init(640, 800);//设置游戏画布宽高。
  42670. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42671. 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));
  42672. }
  42673. private onLoadComplete(): void {
  42674. var arr= [];//创建一个数组,用于存贮列表的数据信息。
  42675. for (var i: number = 0; i &lt; 20; i++)
  42676. {
  42677. arr.push({ label: "item" + i });
  42678. }
  42679. var list: List = new List();//创建一个 List 类的实例对象 list 。
  42680. list.itemRender = Item;//设置 list 的单元格渲染器。
  42681. list.repeatX = 1;//设置 list 的水平方向单元格数量。
  42682. list.repeatY = 10;//设置 list 的垂直方向单元格数量。
  42683. list.vScrollBarSkin = "resource/ui/vscroll.png";//设置 list 的垂直方向滚动条皮肤。
  42684. list.array = arr;//设置 list 的列表数据源。
  42685. list.pos(100, 100);//设置 list 的位置。
  42686. list.selectEnable = true;//设置 list 可选。
  42687. list.selectHandler = new Handler(this, this.onSelect);//设置 list 改变选择项执行的处理器。
  42688. Laya.stage.addChild(list);//将 list 添加到显示列表。
  42689. }
  42690. private onSelect(index: number): void {
  42691. console.log("当前选择的项目索引: index= ", index);
  42692. }
  42693. }
  42694. import Box = laya.ui.Box;
  42695. import Label = laya.ui.Label;
  42696. class Item extends Box {
  42697. constructor() {
  42698. this.graphics.drawRect(0, 0, 100, 20, null, "#ff0000");
  42699. var label: Label = new Label();
  42700. label.text = "100000";
  42701. label.name = "label";//设置 label 的name属性值。
  42702. label.size(100, 20);
  42703. this.addChild(label);
  42704. }
  42705. }
  42706. */
  42707. class List extends laya.ui.List {}
  42708. /**
  42709. * <code>Panel</code> 是一个面板容器类。
  42710. */
  42711. class Panel extends laya.ui.Panel {}
  42712. /**
  42713. * 值发生改变后调度。
  42714. * @eventType laya.events.Event
  42715. */
  42716. /**
  42717. * <code>ProgressBar</code> 组件显示内容的加载进度。
  42718. * @example <caption>以下示例代码,创建了一个新的 <code>ProgressBar</code> 实例,设置了它的皮肤、位置、宽高、网格等信息,并添加到舞台上。</caption>
  42719. package
  42720. {
  42721. import laya.ui.ProgressBar;
  42722. import laya.utils.Handler;
  42723. public class ProgressBar_Example
  42724. {
  42725. private var progressBar:ProgressBar;
  42726. public function ProgressBar_Example()
  42727. {
  42728. Laya.init(640, 800);//设置游戏画布宽高。
  42729. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42730. Laya.loader.load(["resource/ui/progress.png", "resource/ui/progress$bar.png"], Handler.create(this, onLoadComplete));//加载资源。
  42731. }
  42732. private function onLoadComplete():void
  42733. {
  42734. progressBar = new ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。
  42735. progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。
  42736. progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。
  42737. progressBar.value = 0.3;//设置 progressBar 的进度值。
  42738. progressBar.width = 200;//设置 progressBar 的宽度。
  42739. progressBar.height = 50;//设置 progressBar 的高度。
  42740. progressBar.sizeGrid = "5,10,5,10";//设置 progressBar 的网格信息。
  42741. progressBar.changeHandler = new Handler(this, onChange);//设置 progressBar 的value值改变时执行的处理器。
  42742. Laya.stage.addChild(progressBar);//将 progressBar 添加到显示列表。
  42743. Laya.timer.once(3000, this, changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。
  42744. }
  42745. private function changeValue():void
  42746. {
  42747. trace("改变进度条的进度值。");
  42748. progressBar.value = 0.6;
  42749. }
  42750. private function onChange(value:Number):void
  42751. {
  42752. trace("进度发生改变: value=" ,value);
  42753. }
  42754. }
  42755. }
  42756. * @example Laya.init(640, 800);//设置游戏画布宽高
  42757. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  42758. var res = ["resource/ui/progress.png", "resource/ui/progress$bar.png"];
  42759. Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  42760. function onLoadComplete()
  42761. {
  42762. progressBar = new laya.ui.ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。
  42763. progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。
  42764. progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。
  42765. progressBar.value = 0.3;//设置 progressBar 的进度值。
  42766. progressBar.width = 200;//设置 progressBar 的宽度。
  42767. progressBar.height = 50;//设置 progressBar 的高度。
  42768. progressBar.sizeGrid = "10,5,10,5";//设置 progressBar 的网格信息。
  42769. progressBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 progressBar 的value值改变时执行的处理器。
  42770. Laya.stage.addChild(progressBar);//将 progressBar 添加到显示列表。
  42771. Laya.timer.once(3000, this, changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。
  42772. }
  42773. function changeValue()
  42774. {
  42775. console.log("改变进度条的进度值。");
  42776. progressBar.value = 0.6;
  42777. }
  42778. function onChange(value)
  42779. {
  42780. console.log("进度发生改变: value=" ,value);
  42781. }
  42782. * @example import ProgressBar = laya.ui.ProgressBar;
  42783. import Handler = laya.utils.Handler;
  42784. class ProgressBar_Example {
  42785. private progressBar: ProgressBar;
  42786. public ProgressBar_Example() {
  42787. Laya.init(640, 800);//设置游戏画布宽高。
  42788. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42789. Laya.loader.load(["resource/ui/progress.png", "resource/ui/progress$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  42790. }
  42791. private onLoadComplete(): void {
  42792. this.progressBar = new ProgressBar("resource/ui/progress.png");//创建一个 ProgressBar 类的实例对象 progressBar 。
  42793. this.progressBar.x = 100;//设置 progressBar 对象的属性 x 的值,用于控制 progressBar 对象的显示位置。
  42794. this.progressBar.y = 100;//设置 progressBar 对象的属性 y 的值,用于控制 progressBar 对象的显示位置。
  42795. this.progressBar.value = 0.3;//设置 progressBar 的进度值。
  42796. this.progressBar.width = 200;//设置 progressBar 的宽度。
  42797. this.progressBar.height = 50;//设置 progressBar 的高度。
  42798. this.progressBar.sizeGrid = "5,10,5,10";//设置 progressBar 的网格信息。
  42799. this.progressBar.changeHandler = new Handler(this, this.onChange);//设置 progressBar 的value值改变时执行的处理器。
  42800. Laya.stage.addChild(this.progressBar);//将 progressBar 添加到显示列表。
  42801. Laya.timer.once(3000, this, this.changeValue);//设定 3000ms(毫秒)后,执行函数changeValue。
  42802. }
  42803. private changeValue(): void {
  42804. console.log("改变进度条的进度值。");
  42805. this.progressBar.value = 0.6;
  42806. }
  42807. private onChange(value: number): void {
  42808. console.log("进度发生改变: value=", value);
  42809. }
  42810. }
  42811. */
  42812. class ProgressBar extends laya.ui.ProgressBar {}
  42813. /**
  42814. * <code>Radio</code> 控件使用户可在一组互相排斥的选择中做出一种选择。
  42815. * 用户一次只能选择 <code>Radio</code> 组中的一个成员。选择未选中的组成员将取消选择该组中当前所选的 <code>Radio</code> 控件。
  42816. * @see laya.ui.RadioGroup
  42817. */
  42818. class Radio extends laya.ui.Radio {}
  42819. /**
  42820. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  42821. * @eventType laya.events.Event
  42822. */
  42823. /**
  42824. * <code>RadioGroup</code> 控件定义一组 <code>Radio</code> 控件,这些控件相互排斥;
  42825. * 因此,用户每次只能选择一个 <code>Radio</code> 控件。
  42826. * @example <caption>以下示例代码,创建了一个 <code>RadioGroup</code> 实例。</caption>
  42827. package
  42828. {
  42829. import laya.ui.Radio;
  42830. import laya.ui.RadioGroup;
  42831. import laya.utils.Handler;
  42832. public class RadioGroup_Example
  42833. {
  42834. public function RadioGroup_Example()
  42835. {
  42836. Laya.init(640, 800);//设置游戏画布宽高。
  42837. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42838. Laya.loader.load(["resource/ui/radio.png"], Handler.create(this, onLoadComplete));//加载资源。
  42839. }
  42840. private function onLoadComplete():void
  42841. {
  42842. var radioGroup:RadioGroup = new RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。
  42843. radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。
  42844. radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。
  42845. radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。
  42846. radioGroup.space = 10;//设置 radioGroup 的项间隔距离。
  42847. radioGroup.selectHandler = new Handler(this, onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。
  42848. Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。
  42849. }
  42850. private function onSelect(index:int):void
  42851. {
  42852. trace("当前选择的单选按钮索引: index= ", index);
  42853. }
  42854. }
  42855. }
  42856. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式
  42857. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  42858. Laya.loader.load(["resource/ui/radio.png"], laya.utils.Handler.create(this, onLoadComplete));
  42859. function onLoadComplete() {
  42860. var radioGroup= new laya.ui.RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。
  42861. radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。
  42862. radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。
  42863. radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。
  42864. radioGroup.space = 10;//设置 radioGroup 的项间隔距离。
  42865. radioGroup.selectHandler = new laya.utils.Handler(this, onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。
  42866. Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。
  42867. }
  42868. function onSelect(index) {
  42869. console.log("当前选择的单选按钮索引: index= ", index);
  42870. }
  42871. * @example import Radio = laya.ui.Radio;
  42872. import RadioGroup = laya.ui.RadioGroup;
  42873. import Handler = laya.utils.Handler;
  42874. class RadioGroup_Example {
  42875. constructor() {
  42876. Laya.init(640, 800);//设置游戏画布宽高。
  42877. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42878. Laya.loader.load(["resource/ui/radio.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  42879. }
  42880. private onLoadComplete(): void {
  42881. var radioGroup: RadioGroup = new RadioGroup();//创建一个 RadioGroup 类的实例对象 radioGroup 。
  42882. radioGroup.pos(100, 100);//设置 radioGroup 的位置信息。
  42883. radioGroup.labels = "item0,item1,item2";//设置 radioGroup 的标签集。
  42884. radioGroup.skin = "resource/ui/radio.png";//设置 radioGroup 的皮肤。
  42885. radioGroup.space = 10;//设置 radioGroup 的项间隔距离。
  42886. radioGroup.selectHandler = new Handler(this, this.onSelect);//设置 radioGroup 的选择项发生改变时执行的处理器。
  42887. Laya.stage.addChild(radioGroup);//将 radioGroup 添加到显示列表。
  42888. }
  42889. private onSelect(index: number): void {
  42890. console.log("当前选择的单选按钮索引: index= ", index);
  42891. }
  42892. }
  42893. */
  42894. class RadioGroup extends laya.ui.RadioGroup {}
  42895. /**
  42896. * 自适应缩放容器,容器设置大小后,容器大小始终保持stage大小,子内容按照原始最小宽高比缩放
  42897. */
  42898. class ScaleBox extends laya.ui.ScaleBox {}
  42899. /**
  42900. * 滚动条滑块位置发生变化后调度。
  42901. * @eventType laya.events.Event
  42902. */
  42903. /**
  42904. * 开始滑动。
  42905. * @eventType laya.events.Event
  42906. */
  42907. /**
  42908. * 结束滑动。
  42909. * @eventType laya.events.Event
  42910. */
  42911. /**
  42912. * <code>ScrollBar</code> 组件是一个滚动条组件。
  42913. * <p>当数据太多以至于显示区域无法容纳时,最终用户可以使用 <code>ScrollBar</code> 组件控制所显示的数据部分。</p>
  42914. * <p> 滚动条由四部分组成:两个箭头按钮、一个轨道和一个滑块。 </p> *
  42915. * @see laya.ui.VScrollBar
  42916. * @see laya.ui.HScrollBar
  42917. */
  42918. class ScrollBar extends laya.ui.ScrollBar {}
  42919. /**
  42920. * 移动滑块位置时调度。
  42921. * @eventType laya.events.Event
  42922. */
  42923. /**
  42924. * 移动滑块位置完成(用户鼠标抬起)后调度。
  42925. * @eventType
  42926. * @eventType laya.events.EventD
  42927. */
  42928. /**
  42929. * 使用 <code>Slider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  42930. * <p>滑块的当前值由滑块端点(对应于滑块的最小值和最大值)之间滑块的相对位置确定。</p>
  42931. * <p>滑块允许最小值和最大值之间特定间隔内的值。滑块还可以使用数据提示显示其当前值。</p>
  42932. * @see laya.ui.HSlider
  42933. * @see laya.ui.VSlider
  42934. */
  42935. class Slider extends laya.ui.Slider {}
  42936. /**
  42937. * <code>Styles</code> 定义了组件常用的样式属性。
  42938. */
  42939. class Styles extends laya.ui.Styles {}
  42940. /**
  42941. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  42942. * @eventType laya.events.Event
  42943. */
  42944. /**
  42945. * <code>Tab</code> 组件用来定义选项卡按钮组。 *
  42946. * <p>属性:<code>selectedIndex</code> 的默认值为-1。</p>
  42947. * @example <caption>以下示例代码,创建了一个 <code>Tab</code> 实例。</caption>
  42948. package
  42949. {
  42950. import laya.ui.Tab;
  42951. import laya.utils.Handler;
  42952. public class Tab_Example
  42953. {
  42954. public function Tab_Example()
  42955. {
  42956. Laya.init(640, 800);//设置游戏画布宽高。
  42957. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42958. Laya.loader.load(["resource/ui/tab.png"], Handler.create(this, onLoadComplete));//加载资源。
  42959. }
  42960. private function onLoadComplete():void
  42961. {
  42962. var tab:Tab = new Tab();//创建一个 Tab 类的实例对象 tab 。
  42963. tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。
  42964. tab.labels = "item0,item1,item2";//设置 tab 的标签集。
  42965. tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。
  42966. tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。
  42967. tab.selectHandler = new Handler(this, onSelect);//设置 tab 的选择项发生改变时执行的处理器。
  42968. Laya.stage.addChild(tab);//将 tab 添到显示列表。
  42969. }
  42970. private function onSelect(index:int):void
  42971. {
  42972. trace("当前选择的表情页索引: index= ", index);
  42973. }
  42974. }
  42975. }
  42976. * @example Laya.init(640, 800);//设置游戏画布宽高
  42977. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  42978. Laya.loader.load(["resource/ui/tab.png"], laya.utils.Handler.create(this, onLoadComplete));
  42979. function onLoadComplete() {
  42980. var tab = new laya.ui.Tab();//创建一个 Tab 类的实例对象 tab 。
  42981. tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。
  42982. tab.labels = "item0,item1,item2";//设置 tab 的标签集。
  42983. tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。
  42984. tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。
  42985. tab.selectHandler = new laya.utils.Handler(this, onSelect);//设置 tab 的选择项发生改变时执行的处理器。
  42986. Laya.stage.addChild(tab);//将 tab 添到显示列表。
  42987. }
  42988. function onSelect(index) {
  42989. console.log("当前选择的标签页索引: index= ", index);
  42990. }
  42991. * @example import Tab = laya.ui.Tab;
  42992. import Handler = laya.utils.Handler;
  42993. class Tab_Example {
  42994. constructor() {
  42995. Laya.init(640, 800);//设置游戏画布宽高。
  42996. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  42997. Laya.loader.load(["resource/ui/tab.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  42998. }
  42999. private onLoadComplete(): void {
  43000. var tab: Tab = new Tab();//创建一个 Tab 类的实例对象 tab 。
  43001. tab.skin = "resource/ui/tab.png";//设置 tab 的皮肤。
  43002. tab.labels = "item0,item1,item2";//设置 tab 的标签集。
  43003. tab.x = 100;//设置 tab 对象的属性 x 的值,用于控制 tab 对象的显示位置。
  43004. tab.y = 100;//设置 tab 对象的属性 y 的值,用于控制 tab 对象的显示位置。
  43005. tab.selectHandler = new Handler(this, this.onSelect);//设置 tab 的选择项发生改变时执行的处理器。
  43006. Laya.stage.addChild(tab);//将 tab 添到显示列表。
  43007. }
  43008. private onSelect(index: number): void {
  43009. console.log("当前选择的表情页索引: index= ", index);
  43010. }
  43011. }
  43012. */
  43013. class Tab extends laya.ui.Tab {}
  43014. /**
  43015. * <code>TextArea</code> 类用于创建显示对象以显示和输入文本。
  43016. * @example <caption>以下示例代码,创建了一个 <code>TextArea</code> 实例。</caption>
  43017. package
  43018. {
  43019. import laya.ui.TextArea;
  43020. import laya.utils.Handler;
  43021. public class TextArea_Example
  43022. {
  43023. public function TextArea_Example()
  43024. {
  43025. Laya.init(640, 800);//设置游戏画布宽高。
  43026. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  43027. Laya.loader.load(["resource/ui/input.png"], Handler.create(this, onLoadComplete));//加载资源。
  43028. }
  43029. private function onLoadComplete():void
  43030. {
  43031. var textArea:TextArea = new TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。
  43032. textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。
  43033. textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。
  43034. textArea.color = "#008fff";//设置 textArea 的文本颜色。
  43035. textArea.font = "Arial";//设置 textArea 的字体。
  43036. textArea.bold = true;//设置 textArea 的文本显示为粗体。
  43037. textArea.fontSize = 20;//设置 textArea 的文本字体大小。
  43038. textArea.wordWrap = true;//设置 textArea 的文本自动换行。
  43039. textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。
  43040. textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。
  43041. textArea.width = 300;//设置 textArea 的宽度。
  43042. textArea.height = 200;//设置 textArea 的高度。
  43043. Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。
  43044. }
  43045. }
  43046. }
  43047. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式
  43048. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  43049. Laya.loader.load(["resource/ui/input.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  43050. function onLoadComplete() {
  43051. var textArea = new laya.ui.TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。
  43052. textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。
  43053. textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。
  43054. textArea.color = "#008fff";//设置 textArea 的文本颜色。
  43055. textArea.font = "Arial";//设置 textArea 的字体。
  43056. textArea.bold = true;//设置 textArea 的文本显示为粗体。
  43057. textArea.fontSize = 20;//设置 textArea 的文本字体大小。
  43058. textArea.wordWrap = true;//设置 textArea 的文本自动换行。
  43059. textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。
  43060. textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。
  43061. textArea.width = 300;//设置 textArea 的宽度。
  43062. textArea.height = 200;//设置 textArea 的高度。
  43063. Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。
  43064. }
  43065. * @example import TextArea = laya.ui.TextArea;
  43066. import Handler = laya.utils.Handler;
  43067. class TextArea_Example {
  43068. constructor() {
  43069. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  43070. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  43071. Laya.loader.load(["resource/ui/input.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  43072. }
  43073. private onLoadComplete(): void {
  43074. var textArea: TextArea = new TextArea("这个一个TextArea实例。");//创建一个 TextArea 类的实例对象 textArea 。
  43075. textArea.skin = "resource/ui/input.png";//设置 textArea 的皮肤。
  43076. textArea.sizeGrid = "4,4,4,4";//设置 textArea 的网格信息。
  43077. textArea.color = "#008fff";//设置 textArea 的文本颜色。
  43078. textArea.font = "Arial";//设置 textArea 的字体。
  43079. textArea.bold = true;//设置 textArea 的文本显示为粗体。
  43080. textArea.fontSize = 20;//设置 textArea 的文本字体大小。
  43081. textArea.wordWrap = true;//设置 textArea 的文本自动换行。
  43082. textArea.x = 100;//设置 textArea 对象的属性 x 的值,用于控制 textArea 对象的显示位置。
  43083. textArea.y = 100;//设置 textArea 对象的属性 y 的值,用于控制 textArea 对象的显示位置。
  43084. textArea.width = 300;//设置 textArea 的宽度。
  43085. textArea.height = 200;//设置 textArea 的高度。
  43086. Laya.stage.addChild(textArea);//将 textArea 添加到显示列表。
  43087. }
  43088. }
  43089. */
  43090. class TextArea extends laya.ui.TextArea {}
  43091. /**
  43092. * 输入文本后调度。
  43093. * @eventType Event.INPUT
  43094. */
  43095. /**
  43096. * 在输入框内敲回车键后调度。
  43097. * @eventType Event.ENTER
  43098. */
  43099. /**
  43100. * 当获得输入焦点后调度。
  43101. * @eventType Event.FOCUS
  43102. */
  43103. /**
  43104. * 当失去输入焦点后调度。
  43105. * @eventType Event.BLUR
  43106. */
  43107. /**
  43108. * <code>TextInput</code> 类用于创建显示对象以显示和输入文本。
  43109. * @example <caption>以下示例代码,创建了一个 <code>TextInput</code> 实例。</caption>
  43110. package
  43111. {
  43112. import laya.display.Stage;
  43113. import laya.ui.TextInput;
  43114. import laya.utils.Handler;
  43115. public class TextInput_Example
  43116. {
  43117. public function TextInput_Example()
  43118. {
  43119. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  43120. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  43121. Laya.loader.load(["resource/ui/input.png"], Handler.create(this, onLoadComplete));//加载资源。
  43122. }
  43123. private function onLoadComplete():void
  43124. {
  43125. var textInput:TextInput = new TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。
  43126. textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。
  43127. textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。
  43128. textInput.color = "#008fff";//设置 textInput 的文本颜色。
  43129. textInput.font = "Arial";//设置 textInput 的文本字体。
  43130. textInput.bold = true;//设置 textInput 的文本显示为粗体。
  43131. textInput.fontSize = 30;//设置 textInput 的字体大小。
  43132. textInput.wordWrap = true;//设置 textInput 的文本自动换行。
  43133. textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。
  43134. textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。
  43135. textInput.width = 300;//设置 textInput 的宽度。
  43136. textInput.height = 200;//设置 textInput 的高度。
  43137. Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。
  43138. }
  43139. }
  43140. }
  43141. * @example Laya.init(640, 800);//设置游戏画布宽高
  43142. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  43143. Laya.loader.load(["resource/ui/input.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  43144. function onLoadComplete() {
  43145. var textInput = new laya.ui.TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。
  43146. textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。
  43147. textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。
  43148. textInput.color = "#008fff";//设置 textInput 的文本颜色。
  43149. textInput.font = "Arial";//设置 textInput 的文本字体。
  43150. textInput.bold = true;//设置 textInput 的文本显示为粗体。
  43151. textInput.fontSize = 30;//设置 textInput 的字体大小。
  43152. textInput.wordWrap = true;//设置 textInput 的文本自动换行。
  43153. textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。
  43154. textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。
  43155. textInput.width = 300;//设置 textInput 的宽度。
  43156. textInput.height = 200;//设置 textInput 的高度。
  43157. Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。
  43158. }
  43159. * @example import Stage = laya.display.Stage;
  43160. import TextInput = laya.ui.TextInput;
  43161. import Handler = laya.utils.Handler;
  43162. class TextInput_Example {
  43163. constructor() {
  43164. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  43165. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  43166. Laya.loader.load(["resource/ui/input.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  43167. }
  43168. private onLoadComplete(): void {
  43169. var textInput: TextInput = new TextInput("这是一个TextInput实例。");//创建一个 TextInput 类的实例对象 textInput 。
  43170. textInput.skin = "resource/ui/input.png";//设置 textInput 的皮肤。
  43171. textInput.sizeGrid = "4,4,4,4";//设置 textInput 的网格信息。
  43172. textInput.color = "#008fff";//设置 textInput 的文本颜色。
  43173. textInput.font = "Arial";//设置 textInput 的文本字体。
  43174. textInput.bold = true;//设置 textInput 的文本显示为粗体。
  43175. textInput.fontSize = 30;//设置 textInput 的字体大小。
  43176. textInput.wordWrap = true;//设置 textInput 的文本自动换行。
  43177. textInput.x = 100;//设置 textInput 对象的属性 x 的值,用于控制 textInput 对象的显示位置。
  43178. textInput.y = 100;//设置 textInput 对象的属性 y 的值,用于控制 textInput 对象的显示位置。
  43179. textInput.width = 300;//设置 textInput 的宽度。
  43180. textInput.height = 200;//设置 textInput 的高度。
  43181. Laya.stage.addChild(textInput);//将 textInput 添加到显示列表。
  43182. }
  43183. }
  43184. */
  43185. class TextInput extends laya.ui.TextInput {}
  43186. /**
  43187. * 鼠标提示管理类
  43188. */
  43189. class TipManager extends laya.ui.TipManager {}
  43190. /**
  43191. * 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  43192. * @eventType laya.events.Event
  43193. */
  43194. /**
  43195. * 节点打开关闭时触发。
  43196. * @eventType laya.events.Event
  43197. */
  43198. /**
  43199. * <code>Tree</code> 控件使用户可以查看排列为可扩展树的层次结构数据。
  43200. * @example package
  43201. {
  43202. import laya.ui.Tree;
  43203. import laya.utils.Browser;
  43204. import laya.utils.Handler;
  43205. public class Tree_Example
  43206. {
  43207. public function Tree_Example()
  43208. {
  43209. Laya.init(640, 800);
  43210. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  43211. 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));
  43212. }
  43213. private function onLoadComplete():void
  43214. {
  43215. var xmlString:String;//创建一个xml字符串,用于存储树结构数据。
  43216. 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;";
  43217. var domParser:* = new Browser.window.DOMParser();//创建一个DOMParser实例domParser。
  43218. var xml:* = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。
  43219. var tree:Tree = new Tree();//创建一个 Tree 类的实例对象 tree 。
  43220. tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。
  43221. tree.itemRender = Item;//设置 tree 的项渲染器。
  43222. tree.xml = xml;//设置 tree 的树结构数据。
  43223. tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。
  43224. tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。
  43225. tree.width = 200;//设置 tree 的宽度。
  43226. tree.height = 100;//设置 tree 的高度。
  43227. Laya.stage.addChild(tree);//将 tree 添加到显示列表。
  43228. }
  43229. }
  43230. }
  43231. import laya.ui.Box;
  43232. import laya.ui.Clip;
  43233. import laya.ui.Label;
  43234. class Item extends Box
  43235. {
  43236. public function Item()
  43237. {
  43238. this.name = "render";
  43239. this.right = 0;
  43240. this.left = 0;
  43241. var selectBox:Clip = new Clip("resource/ui/clip_selectBox.png", 1, 2);
  43242. selectBox.name = "selectBox";
  43243. selectBox.height = 24;
  43244. selectBox.x = 13;
  43245. selectBox.y = 0;
  43246. selectBox.left = 12;
  43247. addChild(selectBox);
  43248. var folder:Clip = new Clip("resource/ui/clip_tree_folder.png", 1, 3);
  43249. folder.name = "folder";
  43250. folder.x = 14;
  43251. folder.y = 4;
  43252. addChild(folder);
  43253. var label:Label = new Label("treeItem");
  43254. label.name = "label";
  43255. label.color = "#ffff00";
  43256. label.width = 150;
  43257. label.height = 22;
  43258. label.x = 33;
  43259. label.y = 1;
  43260. label.left = 33;
  43261. label.right = 0;
  43262. addChild(label);
  43263. var arrow:Clip = new Clip("resource/ui/clip_tree_arrow.png", 1, 2);
  43264. arrow.name = "arrow";
  43265. arrow.x = 0;
  43266. arrow.y = 5;
  43267. addChild(arrow);
  43268. }
  43269. }
  43270. * @example Laya.init(640, 800);//设置游戏画布宽高、渲染模式
  43271. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  43272. 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"];
  43273. Laya.loader.load(res, new laya.utils.Handler(this, onLoadComplete));
  43274. function onLoadComplete() {
  43275. var xmlString;//创建一个xml字符串,用于存储树结构数据。
  43276. 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;";
  43277. var domParser = new laya.utils.Browser.window.DOMParser();//创建一个DOMParser实例domParser。
  43278. var xml = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。
  43279. var tree = new laya.ui.Tree();//创建一个 Tree 类的实例对象 tree 。
  43280. tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。
  43281. tree.itemRender = mypackage.treeExample.Item;//设置 tree 的项渲染器。
  43282. tree.xml = xml;//设置 tree 的树结构数据。
  43283. tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。
  43284. tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。
  43285. tree.width = 200;//设置 tree 的宽度。
  43286. tree.height = 100;//设置 tree 的高度。
  43287. Laya.stage.addChild(tree);//将 tree 添加到显示列表。
  43288. }
  43289. (function (_super) {
  43290. function Item() {
  43291. Item.__super.call(this);//初始化父类。
  43292. this.right = 0;
  43293. this.left = 0;
  43294. var selectBox = new laya.ui.Clip("resource/ui/clip_selectBox.png", 1, 2);
  43295. selectBox.name = "selectBox";//设置 selectBox 的name 为“selectBox”时,将被识别为树结构的项的背景。2帧:悬停时背景、选中时背景。
  43296. selectBox.height = 24;
  43297. selectBox.x = 13;
  43298. selectBox.y = 0;
  43299. selectBox.left = 12;
  43300. this.addChild(selectBox);//需要使用this.访问父类的属性或方法。
  43301. var folder = new laya.ui.Clip("resource/ui/clip_tree_folder.png", 1, 3);
  43302. folder.name = "folder";//设置 folder 的name 为“folder”时,将被识别为树结构的文件夹开启状态图表。2帧:折叠状态、打开状态。
  43303. folder.x = 14;
  43304. folder.y = 4;
  43305. this.addChild(folder);
  43306. var label = new laya.ui.Label("treeItem");
  43307. label.name = "label";//设置 label 的name 为“label”时,此值将用于树结构数据赋值。
  43308. label.color = "#ffff00";
  43309. label.width = 150;
  43310. label.height = 22;
  43311. label.x = 33;
  43312. label.y = 1;
  43313. label.left = 33;
  43314. label.right = 0;
  43315. this.addChild(label);
  43316. var arrow = new laya.ui.Clip("resource/ui/clip_tree_arrow.png", 1, 2);
  43317. arrow.name = "arrow";//设置 arrow 的name 为“arrow”时,将被识别为树结构的文件夹开启状态图表。2帧:折叠状态、打开状态。
  43318. arrow.x = 0;
  43319. arrow.y = 5;
  43320. this.addChild(arrow);
  43321. };
  43322. Laya.class(Item,"mypackage.treeExample.Item",_super);//注册类 Item 。
  43323. })(laya.ui.Box);
  43324. * @example import Tree = laya.ui.Tree;
  43325. import Browser = laya.utils.Browser;
  43326. import Handler = laya.utils.Handler;
  43327. class Tree_Example {
  43328. constructor() {
  43329. Laya.init(640, 800);
  43330. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  43331. 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));
  43332. }
  43333. private onLoadComplete(): void {
  43334. var xmlString: String;//创建一个xml字符串,用于存储树结构数据。
  43335. 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;";
  43336. var domParser: any = new Browser.window.DOMParser();//创建一个DOMParser实例domParser。
  43337. var xml: any = domParser.parseFromString(xmlString, "text/xml");//解析xml字符。
  43338. var tree: Tree = new Tree();//创建一个 Tree 类的实例对象 tree 。
  43339. tree.scrollBarSkin = "resource/ui/vscroll.png";//设置 tree 的皮肤。
  43340. tree.itemRender = Item;//设置 tree 的项渲染器。
  43341. tree.xml = xml;//设置 tree 的树结构数据。
  43342. tree.x = 100;//设置 tree 对象的属性 x 的值,用于控制 tree 对象的显示位置。
  43343. tree.y = 100;//设置 tree 对象的属性 y 的值,用于控制 tree 对象的显示位置。
  43344. tree.width = 200;//设置 tree 的宽度。
  43345. tree.height = 100;//设置 tree 的高度。
  43346. Laya.stage.addChild(tree);//将 tree 添加到显示列表。
  43347. }
  43348. }
  43349. import Box = laya.ui.Box;
  43350. import Clip = laya.ui.Clip;
  43351. import Label = laya.ui.Label;
  43352. class Item extends Box {
  43353. constructor() {
  43354. super();
  43355. this.name = "render";
  43356. this.right = 0;
  43357. this.left = 0;
  43358. var selectBox: Clip = new Clip("resource/ui/clip_selectBox.png", 1, 2);
  43359. selectBox.name = "selectBox";
  43360. selectBox.height = 24;
  43361. selectBox.x = 13;
  43362. selectBox.y = 0;
  43363. selectBox.left = 12;
  43364. this.addChild(selectBox);
  43365. var folder: Clip = new Clip("resource/ui/clip_tree_folder.png", 1, 3);
  43366. folder.name = "folder";
  43367. folder.x = 14;
  43368. folder.y = 4;
  43369. this.addChild(folder);
  43370. var label: Label = new Label("treeItem");
  43371. label.name = "label";
  43372. label.color = "#ffff00";
  43373. label.width = 150;
  43374. label.height = 22;
  43375. label.x = 33;
  43376. label.y = 1;
  43377. label.left = 33;
  43378. label.right = 0;
  43379. this.addChild(label);
  43380. var arrow: Clip = new Clip("resource/ui/clip_tree_arrow.png", 1, 2);
  43381. arrow.name = "arrow";
  43382. arrow.x = 0;
  43383. arrow.y = 5;
  43384. this.addChild(arrow);
  43385. }
  43386. }
  43387. */
  43388. class Tree extends laya.ui.Tree {}
  43389. /**
  43390. * <code>Component</code> 是ui控件类的基类。
  43391. * <p>生命周期:preinitialize > createChildren > initialize > 组件构造函数</p>
  43392. */
  43393. class UIComponent extends laya.ui.UIComponent {}
  43394. /**
  43395. * <code>UIEvent</code> 类用来定义UI组件类的事件类型。
  43396. */
  43397. class UIEvent extends laya.ui.UIEvent {}
  43398. /**
  43399. * 当 <code>Group</code> 实例的 <code>selectedIndex</code> 属性发生变化时调度。
  43400. * @eventType laya.events.Event
  43401. */
  43402. /**
  43403. * <code>Group</code> 是一个可以自动布局的项集合控件。
  43404. * <p> <code>Group</code> 的默认项对象为 <code>Button</code> 类实例。
  43405. * <code>Group</code> 是 <code>Tab</code> 和 <code>RadioGroup</code> 的基类。</p>
  43406. */
  43407. class UIGroup extends laya.ui.UIGroup {}
  43408. class UILib extends laya.ui.UILib {}
  43409. /**
  43410. * <code>UIUtils</code> 是文本工具集。
  43411. */
  43412. class UIUtils extends laya.ui.UIUtils {}
  43413. /**
  43414. * <code>VBox</code> 是一个垂直布局容器类。
  43415. */
  43416. class VBox extends laya.ui.VBox {}
  43417. /**
  43418. * <code>View</code> 是一个视图类,2.0开始,更改继承至Scene类,相对于Scene,增加相对布局功能。
  43419. */
  43420. class View extends laya.ui.View {}
  43421. /**
  43422. * <code>ViewStack</code> 类用于视图堆栈类,用于视图的显示等设置处理。
  43423. */
  43424. class ViewStack extends laya.ui.ViewStack {}
  43425. /**
  43426. * 使用 <code>VScrollBar</code> (垂直 <code>ScrollBar</code> )控件,可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。
  43427. * @example <caption>以下示例代码,创建了一个 <code>VScrollBar</code> 实例。</caption>
  43428. package
  43429. {
  43430. import laya.ui.vScrollBar;
  43431. import laya.ui.VScrollBar;
  43432. import laya.utils.Handler;
  43433. public class VScrollBar_Example
  43434. {
  43435. private var vScrollBar:VScrollBar;
  43436. public function VScrollBar_Example()
  43437. {
  43438. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  43439. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  43440. 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));
  43441. }
  43442. private function onLoadComplete():void
  43443. {
  43444. vScrollBar = new VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。
  43445. vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。
  43446. vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。
  43447. vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。
  43448. vScrollBar.changeHandler = new Handler(this, onChange);//设置 vScrollBar 的滚动变化处理器。
  43449. Laya.stage.addChild(vScrollBar);//将此 vScrollBar 对象添加到显示列表。
  43450. }
  43451. private function onChange(value:Number):void
  43452. {
  43453. trace("滚动条的位置: value=" + value);
  43454. }
  43455. }
  43456. }
  43457. * @example Laya.init(640, 800);//设置游戏画布宽高
  43458. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  43459. var vScrollBar;
  43460. var res = ["resource/ui/vscroll.png", "resource/ui/vscroll$bar.png", "resource/ui/vscroll$down.png", "resource/ui/vscroll$up.png"];
  43461. Laya.loader.load(res, laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  43462. function onLoadComplete() {
  43463. vScrollBar = new laya.ui.VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。
  43464. vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。
  43465. vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。
  43466. vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。
  43467. vScrollBar.changeHandler = new laya.utils.Handler(this, onChange);//设置 vScrollBar 的滚动变化处理器。
  43468. Laya.stage.addChild(vScrollBar);//将此 vScrollBar 对象添加到显示列表。
  43469. }
  43470. function onChange(value) {
  43471. console.log("滚动条的位置: value=" + value);
  43472. }
  43473. * @example import VScrollBar = laya.ui.VScrollBar;
  43474. import Handler = laya.utils.Handler;
  43475. class VScrollBar_Example {
  43476. private vScrollBar: VScrollBar;
  43477. constructor() {
  43478. Laya.init(640, 800);//设置游戏画布宽高、渲染模式。
  43479. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  43480. 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));
  43481. }
  43482. private onLoadComplete(): void {
  43483. this.vScrollBar = new VScrollBar();//创建一个 vScrollBar 类的实例对象 hScrollBar 。
  43484. this.vScrollBar.skin = "resource/ui/vscroll.png";//设置 vScrollBar 的皮肤。
  43485. this.vScrollBar.x = 100;//设置 vScrollBar 对象的属性 x 的值,用于控制 vScrollBar 对象的显示位置。
  43486. this.vScrollBar.y = 100;//设置 vScrollBar 对象的属性 y 的值,用于控制 vScrollBar 对象的显示位置。
  43487. this.vScrollBar.changeHandler = new Handler(this, this.onChange);//设置 vScrollBar 的滚动变化处理器。
  43488. Laya.stage.addChild(this.vScrollBar);//将此 vScrollBar 对象添加到显示列表。
  43489. }
  43490. private onChange(value: number): void {
  43491. console.log("滚动条的位置: value=" + value);
  43492. }
  43493. }
  43494. */
  43495. class VScrollBar extends laya.ui.VScrollBar {}
  43496. /**
  43497. * 使用 <code>VSlider</code> 控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
  43498. * <p> <code>VSlider</code> 控件采用垂直方向。滑块轨道从下往上扩展,而标签位于轨道的左右两侧。</p>
  43499. * @example <caption>以下示例代码,创建了一个 <code>VSlider</code> 实例。</caption>
  43500. package
  43501. {
  43502. import laya.ui.HSlider;
  43503. import laya.ui.VSlider;
  43504. import laya.utils.Handler;
  43505. public class VSlider_Example
  43506. {
  43507. private var vSlider:VSlider;
  43508. public function VSlider_Example()
  43509. {
  43510. Laya.init(640, 800);//设置游戏画布宽高。
  43511. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  43512. Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], Handler.create(this, onLoadComplete));//加载资源。
  43513. }
  43514. private function onLoadComplete():void
  43515. {
  43516. vSlider = new VSlider();//创建一个 VSlider 类的实例对象 vSlider 。
  43517. vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。
  43518. vSlider.min = 0;//设置 vSlider 最低位置值。
  43519. vSlider.max = 10;//设置 vSlider 最高位置值。
  43520. vSlider.value = 2;//设置 vSlider 当前位置值。
  43521. vSlider.tick = 1;//设置 vSlider 刻度值。
  43522. vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。
  43523. vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。
  43524. vSlider.changeHandler = new Handler(this, onChange);//设置 vSlider 位置变化处理器。
  43525. Laya.stage.addChild(vSlider);//把 vSlider 添加到显示列表。
  43526. }
  43527. private function onChange(value:Number):void
  43528. {
  43529. trace("滑块的位置: value=" + value);
  43530. }
  43531. }
  43532. }
  43533. * @example Laya.init(640, 800);//设置游戏画布宽高
  43534. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色
  43535. var vSlider;
  43536. Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], laya.utils.Handler.create(this, onLoadComplete));//加载资源。
  43537. function onLoadComplete() {
  43538. vSlider = new laya.ui.VSlider();//创建一个 VSlider 类的实例对象 vSlider 。
  43539. vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。
  43540. vSlider.min = 0;//设置 vSlider 最低位置值。
  43541. vSlider.max = 10;//设置 vSlider 最高位置值。
  43542. vSlider.value = 2;//设置 vSlider 当前位置值。
  43543. vSlider.tick = 1;//设置 vSlider 刻度值。
  43544. vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。
  43545. vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。
  43546. vSlider.changeHandler = new laya.utils.Handler(this, onChange);//设置 vSlider 位置变化处理器。
  43547. Laya.stage.addChild(vSlider);//把 vSlider 添加到显示列表。
  43548. }
  43549. function onChange(value) {
  43550. console.log("滑块的位置: value=" + value);
  43551. }
  43552. * @example import HSlider = laya.ui.HSlider;
  43553. import VSlider = laya.ui.VSlider;
  43554. import Handler = laya.utils.Handler;
  43555. class VSlider_Example {
  43556. private vSlider: VSlider;
  43557. constructor() {
  43558. Laya.init(640, 800);//设置游戏画布宽高。
  43559. Laya.stage.bgColor = "#efefef";//设置画布的背景颜色。
  43560. Laya.loader.load(["resource/ui/vslider.png", "resource/ui/vslider$bar.png"], Handler.create(this, this.onLoadComplete));//加载资源。
  43561. }
  43562. private onLoadComplete(): void {
  43563. this.vSlider = new VSlider();//创建一个 VSlider 类的实例对象 vSlider 。
  43564. this.vSlider.skin = "resource/ui/vslider.png";//设置 vSlider 的皮肤。
  43565. this.vSlider.min = 0;//设置 vSlider 最低位置值。
  43566. this.vSlider.max = 10;//设置 vSlider 最高位置值。
  43567. this.vSlider.value = 2;//设置 vSlider 当前位置值。
  43568. this.vSlider.tick = 1;//设置 vSlider 刻度值。
  43569. this.vSlider.x = 100;//设置 vSlider 对象的属性 x 的值,用于控制 vSlider 对象的显示位置。
  43570. this.vSlider.y = 100;//设置 vSlider 对象的属性 y 的值,用于控制 vSlider 对象的显示位置。
  43571. this.vSlider.changeHandler = new Handler(this, this.onChange);//设置 vSlider 位置变化处理器。
  43572. Laya.stage.addChild(this.vSlider);//把 vSlider 添加到显示列表。
  43573. }
  43574. private onChange(value: number): void {
  43575. console.log("滑块的位置: value=" + value);
  43576. }
  43577. }
  43578. * @see laya.ui.Slider
  43579. */
  43580. class VSlider extends laya.ui.VSlider {}
  43581. /**
  43582. * 相对布局插件
  43583. */
  43584. class Widget extends laya.ui.Widget {}
  43585. /**
  43586. * 微信开放数据展示组件,直接实例本组件,即可根据组件宽高,位置,以最优的方式显示开放域数据
  43587. */
  43588. class WXOpenDataViewer extends laya.ui.WXOpenDataViewer {}
  43589. /**
  43590. * <code>Browser</code> 是浏览器代理类。封装浏览器及原生 js 提供的一些功能。
  43591. */
  43592. class Browser extends laya.utils.Browser {}
  43593. /**
  43594. * <p> <code>Byte</code> 类提供用于优化读取、写入以及处理二进制数据的方法和属性。</p>
  43595. * <p> <code>Byte</code> 类适用于需要在字节层访问数据的高级开发人员。</p>
  43596. */
  43597. class Byte extends laya.utils.Byte {}
  43598. /**
  43599. * @private 对象缓存统一管理类
  43600. */
  43601. class CacheManger extends laya.utils.CacheManger {}
  43602. /**
  43603. * @private
  43604. */
  43605. class CallLater extends laya.utils.CallLater {}
  43606. /**
  43607. * <code>ClassUtils</code> 是一个类工具类。
  43608. */
  43609. class ClassUtils extends laya.utils.ClassUtils {}
  43610. /**
  43611. * @private <code>ColorUtils</code> 是一个颜色值处理类。
  43612. */
  43613. class ColorUtils extends laya.utils.ColorUtils {}
  43614. /**
  43615. * @private <code>Dragging</code> 类是触摸滑动控件。
  43616. */
  43617. class Dragging extends laya.utils.Dragging {}
  43618. /**
  43619. * <code>Ease</code> 类定义了缓动函数,以便实现 <code>Tween</code> 动画的缓动效果。
  43620. */
  43621. class Ease extends laya.utils.Ease {}
  43622. class FontInfo extends laya.utils.FontInfo {}
  43623. /**
  43624. * Graphics动画解析器
  43625. * @private
  43626. */
  43627. class GraphicAnimation extends laya.utils.GraphicAnimation {}
  43628. class GraphicNode extends laya.utils.GraphicNode {}
  43629. /**
  43630. * <p><code>Handler</code> 是事件处理器类。</p>
  43631. * <p>推荐使用 Handler.create() 方法从对象池创建,减少对象创建消耗。创建的 Handler 对象不再使用后,可以使用 Handler.recover() 将其回收到对象池,回收后不要再使用此对象,否则会导致不可预料的错误。</p>
  43632. * <p><b>注意:</b>由于鼠标事件也用本对象池,不正确的回收及调用,可能会影响鼠标事件的执行。</p>
  43633. */
  43634. class Handler extends laya.utils.Handler {}
  43635. /**
  43636. * 鼠标点击区域,可以设置绘制一系列矢量图作为点击区域和非点击区域(目前只支持圆形,矩形,多边形)
  43637. */
  43638. class HitArea extends laya.utils.HitArea {}
  43639. /**
  43640. * @private <code>HTMLChar</code> 是一个 HTML 字符类。
  43641. */
  43642. class HTMLChar extends laya.utils.HTMLChar {}
  43643. /**
  43644. * @author laya
  43645. */
  43646. class IStatRender extends laya.utils.IStatRender {}
  43647. /**
  43648. * <code>Log</code> 类用于在界面内显示日志记录信息。
  43649. * 注意:在加速器内不可使用
  43650. */
  43651. class Log extends laya.utils.Log {}
  43652. /**
  43653. * <code>Mouse</code> 类用于控制鼠标光标样式。
  43654. */
  43655. class Mouse extends laya.utils.Mouse {}
  43656. class PerfData extends laya.utils.PerfData {}
  43657. class PerfHUD extends laya.utils.PerfHUD {}
  43658. /**
  43659. * <p> <code>Pool</code> 是对象池类,用于对象的存储、重复使用。</p>
  43660. * <p>合理使用对象池,可以有效减少对象创建的开销,避免频繁的垃圾回收,从而优化游戏流畅度。</p>
  43661. */
  43662. class Pool extends laya.utils.Pool {}
  43663. /**
  43664. * @private 基于个数的对象缓存管理器
  43665. */
  43666. class PoolCache extends laya.utils.PoolCache {}
  43667. /**
  43668. * @private
  43669. */
  43670. class RunDriver extends laya.utils.RunDriver {}
  43671. /**
  43672. * @private 场景辅助类
  43673. */
  43674. class SceneUtils extends laya.utils.SceneUtils {}
  43675. /**
  43676. * @private 场景辅助类
  43677. */
  43678. class InitTool extends laya.utils.InitTool {}
  43679. /**
  43680. * <p> <code>Stat</code> 是一个性能统计面板,可以实时更新相关的性能参数。</p>
  43681. * <p>参与统计的性能参数如下(所有参数都是每大约1秒进行更新):<br/>
  43682. * FPS(WebGL):WebGL 模式下的帧频,也就是每秒显示的帧数,值越高、越稳定,感觉越流畅;<br/>
  43683. * Sprite:统计所有渲染节点(包括容器)数量,它的大小会影响引擎进行节点遍历、数据组织和渲染的效率。其值越小,游戏运行效率越高;<br/>
  43684. * DrawCall:此值是决定性能的重要指标,其值越小,游戏运行效率越高。Canvas模式下表示每大约1秒的图像绘制次数;WebGL模式下表示每大约1秒的渲染提交批次,每次准备数据并通知GPU渲染绘制的过程称为1次DrawCall,在每次DrawCall中除了在通知GPU的渲染上比较耗时之外,切换材质与shader也是非常耗时的操作;<br/>
  43685. * CurMem:Canvas模式下,表示内存占用大小,值越小越好,过高会导致游戏闪退;WebGL模式下,表示内存与显存的占用,值越小越好;<br/>
  43686. * Shader:是 WebGL 模式独有的性能指标,表示每大约1秒 Shader 提交次数,值越小越好;<br/>
  43687. * Canvas:由三个数值组成,只有设置 CacheAs 后才会有值,默认为0/0/0。从左到右数值的意义分别为:每帧重绘的画布数量 / 缓存类型为"normal"类型的画布数量 / 缓存类型为"bitmap"类型的画布数量。</p>
  43688. */
  43689. class Stat extends laya.utils.Stat {}
  43690. /**
  43691. * 显示Stat的结果。由于stat会引入很多的循环引用,所以把显示部分拆开
  43692. * @author laya
  43693. */
  43694. class StatUI extends laya.utils.StatUI {}
  43695. /**
  43696. * @private <code>StringKey</code> 类用于存取字符串对应的数字。
  43697. */
  43698. class StringKey extends laya.utils.StringKey {}
  43699. /**
  43700. * 整个缓动结束的时候会调度
  43701. * @eventType Event.COMPLETE
  43702. */
  43703. /**
  43704. * 当缓动到达标签时会调度。
  43705. * @eventType Event.LABEL
  43706. */
  43707. /**
  43708. * <code>TimeLine</code> 是一个用来创建时间轴动画的类。
  43709. */
  43710. class TimeLine extends laya.utils.TimeLine {}
  43711. /**
  43712. * <code>Timer</code> 是时钟管理类。它是一个单例,不要手动实例化此类,应该通过 Laya.timer 访问。
  43713. */
  43714. class Timer extends laya.utils.Timer {}
  43715. /**
  43716. * <code>Tween</code> 是一个缓动类。使用此类能够实现对目标对象属性的渐变。
  43717. */
  43718. class Tween extends laya.utils.Tween {}
  43719. /**
  43720. * <code>Utils</code> 是工具类。
  43721. */
  43722. class Utils extends laya.utils.Utils {}
  43723. /**
  43724. * @private TODO:
  43725. */
  43726. class VectorGraphManager extends laya.utils.VectorGraphManager {}
  43727. /**
  43728. * 封装弱引用WeakMap
  43729. * 如果支持WeakMap,则使用WeakMap,如果不支持,则用Object代替
  43730. * 注意:如果采用Object,为了防止内存泄漏,则采用定时清理缓存策略
  43731. *
  43732. * 这里的设计是错误的,为了兼容,先不删掉这个类,直接采用Object
  43733. */
  43734. class WeakObject extends laya.utils.WeakObject {}
  43735. /**
  43736. * @private
  43737. */
  43738. class WordText extends laya.utils.WordText {}
  43739. /**
  43740. * ...
  43741. * @author ...
  43742. */
  43743. class BufferState2D extends laya.webgl.BufferState2D {}
  43744. /**
  43745. * ...
  43746. * @author ...
  43747. */
  43748. class BufferStateBase extends laya.webgl.BufferStateBase {}
  43749. class BlendMode extends laya.webgl.canvas.BlendMode {}
  43750. class DrawStyle extends laya.webgl.canvas.DrawStyle {}
  43751. class Path extends laya.webgl.canvas.Path {}
  43752. class SaveBase extends laya.webgl.canvas.save.SaveBase {}
  43753. class SaveClipRect extends laya.webgl.canvas.save.SaveClipRect {}
  43754. class SaveMark extends laya.webgl.canvas.save.SaveMark {}
  43755. class SaveTransform extends laya.webgl.canvas.save.SaveTransform {}
  43756. class SaveTranslate extends laya.webgl.canvas.save.SaveTranslate {}
  43757. /**
  43758. * 对象 cacheas normal的时候,本质上只是想把submit缓存起来,以后直接执行
  43759. * 为了避免各种各样的麻烦,这里采用复制相应部分的submit的方法。执行环境还是在原来的context中
  43760. * 否则包括clip等都非常难以处理
  43761. */
  43762. class WebGLCacheAsNormalCanvas extends laya.webgl.canvas.WebGLCacheAsNormalCanvas {}
  43763. /**
  43764. * ...
  43765. * @author ...
  43766. */
  43767. class BaseShader extends laya.webgl.shader.BaseShader {}
  43768. class Shader2D extends laya.webgl.shader.d2.Shader2D {}
  43769. class Shader2X extends laya.webgl.shader.d2.Shader2X {}
  43770. class ShaderDefines2D extends laya.webgl.shader.d2.ShaderDefines2D {}
  43771. class SkinMeshBuffer extends laya.webgl.shader.d2.skinAnishader.SkinMeshBuffer {}
  43772. class SkinSV extends laya.webgl.shader.d2.skinAnishader.SkinSV {}
  43773. class PrimitiveSV extends laya.webgl.shader.d2.value.PrimitiveSV {}
  43774. class TextureSV extends laya.webgl.shader.d2.value.TextureSV {}
  43775. class Value2D extends laya.webgl.shader.d2.value.Value2D {}
  43776. class Shader extends laya.webgl.shader.Shader {}
  43777. class ShaderDefinesBase extends laya.webgl.shader.ShaderDefinesBase {}
  43778. class ShaderValue extends laya.webgl.shader.ShaderValue {}
  43779. class BasePoly extends laya.webgl.shapes.BasePoly {}
  43780. class Earcut extends laya.webgl.shapes.Earcut {}
  43781. class EarcutNode extends laya.webgl.shapes.EarcutNode {}
  43782. class Submit extends laya.webgl.submit.Submit {}
  43783. class SubmitBase extends laya.webgl.submit.SubmitBase {}
  43784. /**
  43785. * cache as normal 模式下的生成的canvas的渲染。
  43786. */
  43787. class SubmitCanvas extends laya.webgl.submit.SubmitCanvas {}
  43788. class SubmitCMD extends laya.webgl.submit.SubmitCMD {}
  43789. /**
  43790. * ...
  43791. * @author xie
  43792. */
  43793. class SubmitKey extends laya.webgl.submit.SubmitKey {}
  43794. class SubmitTarget extends laya.webgl.submit.SubmitTarget {}
  43795. class SubmitTexture extends laya.webgl.submit.SubmitTexture {}
  43796. /**
  43797. * 系统工具。
  43798. */
  43799. class SystemUtils extends laya.webgl.SystemUtils {}
  43800. /**
  43801. * 阿拉伯文的转码。把unicode的阿拉伯文字母编码转成他们的老的能描述不同写法的编码。
  43802. * 这个是从GitHub上 Javascript-Arabic-Reshaper 项目转来的
  43803. * https://github.com/louy/Javascript-Arabic-Reshaper/blob/master/src/index.js
  43804. */
  43805. /**
  43806. * Javascript Arabic Reshaper by Louy Alakkad
  43807. * https://github.com/louy/Javascript-Arabic-Reshaper
  43808. * Based on (http://git.io/vsnAd)
  43809. */
  43810. class ArabicReshaper extends laya.webgl.text.ArabicReshaper {}
  43811. class AtlasGrid extends laya.webgl.text.AtlasGrid {}
  43812. /**
  43813. * TODO如果占用内存较大,这个结构有很多成员可以临时计算
  43814. */
  43815. class CharRenderInfo extends laya.webgl.text.CharRenderInfo {}
  43816. class CharRender_Canvas extends laya.webgl.text.CharRender_Canvas {}
  43817. class CharRender_Native extends laya.webgl.text.CharRender_Native {}
  43818. /**
  43819. * ...
  43820. * @author laoxie
  43821. */
  43822. class CharSubmitCache extends laya.webgl.text.CharSubmitCache {}
  43823. class ICharRender extends laya.webgl.text.ICharRender {}
  43824. /**
  43825. * 文字贴图的大图集。
  43826. */
  43827. class TextAtlas extends laya.webgl.text.TextAtlas {}
  43828. class TextRender extends laya.webgl.text.TextRender {}
  43829. class TextTexture extends laya.webgl.text.TextTexture {}
  43830. class Buffer extends laya.webgl.utils.Buffer {}
  43831. class Buffer2D extends laya.webgl.utils.Buffer2D {}
  43832. class CONST3D2D extends laya.webgl.utils.CONST3D2D {}
  43833. class IndexBuffer2D extends laya.webgl.utils.IndexBuffer2D {}
  43834. class InlcudeFile extends laya.webgl.utils.InlcudeFile {}
  43835. class MatirxArray extends laya.webgl.utils.MatirxArray {}
  43836. /**
  43837. * Mesh2d只是保存数据。描述attribute用的。本身不具有渲染功能。
  43838. */
  43839. class Mesh2D extends laya.webgl.utils.Mesh2D {}
  43840. /**
  43841. * drawImage,fillRect等会用到的简单的mesh。每次添加必然是一个四边形。
  43842. */
  43843. class MeshParticle2D extends laya.webgl.utils.MeshParticle2D {}
  43844. /**
  43845. * drawImage,fillRect等会用到的简单的mesh。每次添加必然是一个四边形。
  43846. */
  43847. class MeshQuadTexture extends laya.webgl.utils.MeshQuadTexture {}
  43848. /**
  43849. * 与MeshQuadTexture基本相同。不过index不是固定的
  43850. */
  43851. class MeshTexture extends laya.webgl.utils.MeshTexture {}
  43852. /**
  43853. * 用来画矢量的mesh。顶点格式固定为 x,y,rgba
  43854. */
  43855. class MeshVG extends laya.webgl.utils.MeshVG {}
  43856. class RenderState2D extends laya.webgl.utils.RenderState2D {}
  43857. /**
  43858. * @private <code>ShaderCompile</code> 类用于实现Shader编译。
  43859. */
  43860. class ShaderCompile extends laya.webgl.utils.ShaderCompile {}
  43861. class ShaderNode extends laya.webgl.utils.ShaderNode {}
  43862. class VertexBuffer2D extends laya.webgl.utils.VertexBuffer2D {}
  43863. class VertexArrayObject extends laya.webgl.VertexArrayObject {}
  43864. /**
  43865. * @private
  43866. */
  43867. class WebGL extends laya.webgl.WebGL {}
  43868. /**
  43869. * @private
  43870. */
  43871. class WebGLContext extends laya.webgl.WebGLContext {}
  43872. }