Best JavaScript code snippet using playwright-internal
effects.js
Source:effects.js
...121 delay: 0.0122 }, arguments[2] || {});123 var masterDelay = options.delay;124 $A(elements).each( function(element, index) {125 new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay }));126 });127 },128 PAIRS: {129 'slide': ['SlideDown','SlideUp'],130 'blind': ['BlindDown','BlindUp'],131 'appear': ['Appear','Fade']132 },133 toggle: function(element, effect) {134 element = $(element);135 effect = (effect || 'appear').toLowerCase();136 var options = Object.extend({137 queue: { position:'end', scope:(element.id || 'global'), limit: 1 }138 }, arguments[2] || {});139 Effect[element.visible() ? ...
system_effect.js
Source:system_effect.js
1/**2 * Created by exodus4d on 06.07.2015.3 * static system effects4 */5define([], () => {6 'use strict';7 /**8 * get system effect multiplier9 * @param areaId10 * @returns {number}11 */12 let getMultiplierByAreaId = areaId => {13 let multiply = 0;14 switch(areaId){15 case 1:16 case 2:17 case 3:18 case 4:19 case 5:20 case 6:21 multiply = areaId; // C1-C6 holes22 break;23 case 13:24 multiply = 6; // Shattered frigate holes25 break;26 case 14:27 case 15:28 case 16:29 case 17:30 case 18:31 multiply = 2; // Drifter space32 break;33 }34 return multiply;35 };36 let magnetar = {37 1: [38 {39 effect: 'Damage',40 value: '+30%'41 }, {42 effect: 'Missile exp. radius',43 value: '+15%'44 }, {45 effect: 'Drone tracking',46 value: '-15%'47 }, {48 effect: 'Targeting range',49 value: '-15%'50 }, {51 effect: 'Tracking speed',52 value: '-15%'53 }, {54 effect: 'Target Painter strength',55 value: '-15%'56 }57 ],58 2: [59 {60 effect: 'Damage',61 value: '+44%'62 }, {63 effect: 'Missile exp. radius',64 value: '+22%'65 }, {66 effect: 'Drone tracking',67 value: '-22%'68 }, {69 effect: 'Targeting range',70 value: '-22%'71 }, {72 effect: 'Tracking speed',73 value: '-22%'74 }, {75 effect: 'Target Painter strength',76 value: '-22%'77 }78 ],79 3: [80 {81 effect: 'Damage',82 value: '+58%'83 }, {84 effect: 'Missile exp. radius',85 value: '+29%'86 }, {87 effect: 'Drone tracking',88 value: '-29%'89 }, {90 effect: 'Targeting range',91 value: '-29%'92 }, {93 effect: 'Tracking speed',94 value: '-29%'95 }, {96 effect: 'Target Painter strength',97 value: '-29%'98 }99 ],100 4: [101 {102 effect: 'Damage',103 value: '+72%'104 }, {105 effect: 'Missile exp. radius',106 value: '+36%'107 }, {108 effect: 'Drone tracking',109 value: '-36%'110 }, {111 effect: 'Targeting range',112 value: '-36%'113 }, {114 effect: 'Tracking speed',115 value: '-36%'116 }, {117 effect: 'Target Painter strength',118 value: '-36%'119 }120 ],121 5: [122 {123 effect: 'Damage',124 value: '+86%'125 }, {126 effect: 'Missile exp. radius',127 value: '+43%'128 }, {129 effect: 'Drone tracking',130 value: '-43%'131 }, {132 effect: 'Targeting range',133 value: '-43%'134 }, {135 effect: 'Tracking speed',136 value: '-43%'137 }, {138 effect: 'Target Painter strength',139 value: '-43%'140 }141 ],142 6: [143 {144 effect: 'Damage',145 value: '+100%'146 }, {147 effect: 'Missile exp. radius',148 value: '+50%'149 }, {150 effect: 'Drone tracking',151 value: '-50%'152 }, {153 effect: 'Targeting range',154 value: '-50%'155 }, {156 effect: 'Tracking speed',157 value: '-50%'158 }, {159 effect: 'Target Painter strength',160 value: '-50%'161 }162 ]163 };164 let redGiant = {165 1: [166 {167 effect: 'Heat damage',168 value: '+15%'169 }, {170 effect: 'Overload bonus',171 value: '+30%'172 }, {173 effect: 'Smart Bomb range',174 value: '+30%'175 }, {176 effect: 'Smart Bomb damage',177 value: '+30%'178 }, {179 effect: 'Bomb damage',180 value: '+30%'181 }182 ],183 2: [184 {185 effect: 'Heat damage',186 value: '+22%'187 }, {188 effect: 'Overload bonus',189 value: '+44%'190 }, {191 effect: 'Smart Bomb range',192 value: '+44%'193 }, {194 effect: 'Smart Bomb damage',195 value: '+44%'196 }, {197 effect: 'Bomb damage',198 value: '+44%'199 }200 ],201 3: [202 {203 effect: 'Heat damage',204 value: '+29%'205 }, {206 effect: 'Overload bonus',207 value: '+58%'208 }, {209 effect: 'Smart Bomb range',210 value: '+58%'211 }, {212 effect: 'Smart Bomb damage',213 value: '+58%'214 }, {215 effect: 'Bomb damage',216 value: '+58%'217 }218 ],219 4: [220 {221 effect: 'Heat damage',222 value: '+36%'223 }, {224 effect: 'Overload bonus',225 value: '+72%'226 }, {227 effect: 'Smart Bomb range',228 value: '+72%'229 }, {230 effect: 'Smart Bomb damage',231 value: '+72%'232 }, {233 effect: 'Bomb damage',234 value: '+72%'235 }236 ],237 5: [238 {239 effect: 'Heat damage',240 value: '+43%'241 }, {242 effect: 'Overload bonus',243 value: '+86%'244 }, {245 effect: 'Smart Bomb range',246 value: '+86%'247 }, {248 effect: 'Smart Bomb damage',249 value: '+86%'250 }, {251 effect: 'Bomb damage',252 value: '+86%'253 }254 ],255 6: [256 {257 effect: 'Heat damage',258 value: '+50%'259 }, {260 effect: 'Overload bonus',261 value: '+100%'262 }, {263 effect: 'Smart Bomb range',264 value: '+100%'265 }, {266 effect: 'Smart Bomb damage',267 value: '+100%'268 }, {269 effect: 'Bomb damage',270 value: '+100%'271 }272 ]273 };274 let pulsar = {275 1: [276 {277 effect: 'Shield HP',278 value: '+30%'279 }, {280 effect: 'Armor resist',281 value: '-15%'282 }, {283 effect: 'Capacitor recharge',284 value: '-15%'285 }, {286 effect: 'Signature',287 value: '+30%'288 }, {289 effect: 'NOS/Neut drain',290 value: '+30%'291 }292 ],293 2: [294 {295 effect: 'Shield HP',296 value: '+44%'297 }, {298 effect: 'Armor resist',299 value: '-22%'300 }, {301 effect: 'Capacitor recharge',302 value: '-22%'303 }, {304 effect: 'Signature',305 value: '+44%'306 }, {307 effect: 'NOS/Neut drain',308 value: '+44%'309 }310 ],311 3: [312 {313 effect: 'Shield HP',314 value: '+58%'315 }, {316 effect: 'Armor resist',317 value: '-29%'318 }, {319 effect: 'Capacitor recharge',320 value: '-29%'321 }, {322 effect: 'Signature',323 value: '+58%'324 }, {325 effect: 'NOS/Neut drain',326 value: '+58%'327 }328 ],329 4: [330 {331 effect: 'Shield HP',332 value: '+72%'333 }, {334 effect: 'Armor resist',335 value: '-36%'336 }, {337 effect: 'Capacitor recharge',338 value: '-36%'339 }, {340 effect: 'Signature',341 value: '+72%'342 }, {343 effect: 'NOS/Neut drain',344 value: '+72%'345 }346 ],347 5: [348 {349 effect: 'Shield HP',350 value: '+86%'351 }, {352 effect: 'Armor resist',353 value: '-43%'354 }, {355 effect: 'Capacitor recharge',356 value: '-43%'357 }, {358 effect: 'Signature',359 value: '+86%'360 }, {361 effect: 'NOS/Neut drain',362 value: '+86%'363 }364 ],365 6: [366 {367 effect: 'Shield HP',368 value: '+100%'369 }, {370 effect: 'Armor resist',371 value: '-50%'372 }, {373 effect: 'Capacitor recharge',374 value: '-50%'375 }, {376 effect: 'Signature',377 value: '+100%'378 }, {379 effect: 'NOS/Neut drain',380 value: '+100%'381 }382 ]383 };384 let wolfRayet = {385 1: [386 {387 effect: 'Armor HP',388 value: '+30%'389 }, {390 effect: 'Shield resist',391 value: '-15%'392 }, {393 effect: 'Small Weapon damage',394 value: '+60%'395 }, {396 effect: 'Signature size',397 value: '-15%'398 }399 ],400 2: [401 {402 effect: 'Armor HP',403 value: '+44%'404 }, {405 effect: 'Shield resist',406 value: '-22%'407 }, {408 effect: 'Small Weapon damage',409 value: '+88%'410 }, {411 effect: 'Signature size',412 value: '-22%'413 }414 ],415 3: [416 {417 effect: 'Armor HP',418 value: '+58%'419 }, {420 effect: 'Shield resist',421 value: '-29%'422 }, {423 effect: 'Small Weapon damage',424 value: '+116%'425 }, {426 effect: 'Signature size',427 value: '-29%'428 }429 ],430 4: [431 {432 effect: 'Armor HP',433 value: '+72%'434 }, {435 effect: 'Shield resist',436 value: '-36%'437 }, {438 effect: 'Small Weapon damage',439 value: '+144%'440 }, {441 effect: 'Signature size',442 value: '-36%'443 }444 ],445 5: [446 {447 effect: 'Armor HP',448 value: '+86%'449 }, {450 effect: 'Shield resist',451 value: '-43%'452 }, {453 effect: 'Small Weapon damage',454 value: '+172%'455 }, {456 effect: 'Signature size',457 value: '-43%'458 }459 ],460 6: [461 {462 effect: 'Armor HP',463 value: '+100%'464 }, {465 effect: 'Shield resist',466 value: '-50%'467 }, {468 effect: 'Small Weapon damage',469 value: '+200%'470 }, {471 effect: 'Signature size',472 value: '-50%'473 }474 ]475 };476 let cataclysmic = {477 1: [478 {479 effect: 'Local armor repair amount',480 value: '-15%'481 }, {482 effect: 'Local shield boost amount',483 value: '-15%'484 }, {485 effect: 'Shield transfer amount',486 value: '+30%'487 }, {488 effect: 'Remote repair amount',489 value: '+30%'490 }, {491 effect: 'Capacitor capacity',492 value: '+30%'493 }, {494 effect: 'Capacitor recharge time',495 value: '+15%'496 }, {497 effect: 'Remote Capacitor Transmitter amount',498 value: '-15%'499 }500 ],501 2: [502 {503 effect: 'Local armor repair amount',504 value: '-22%'505 }, {506 effect: 'Local shield boost amount',507 value: '-22%'508 }, {509 effect: 'Shield transfer amount',510 value: '+44%'511 }, {512 effect: 'Remote repair amount',513 value: '+44%'514 }, {515 effect: 'Capacitor capacity',516 value: '+44%'517 }, {518 effect: 'Capacitor recharge time',519 value: '+22%'520 }, {521 effect: 'Remote Capacitor Transmitter amount',522 value: '-22%'523 }524 ],525 3: [526 {527 effect: 'Local armor repair amount',528 value: '-29%'529 }, {530 effect: 'Local shield boost amount',531 value: '-29%'532 }, {533 effect: 'Shield transfer amount',534 value: '+58%'535 }, {536 effect: 'Remote repair amount',537 value: '+58%'538 }, {539 effect: 'Capacitor capacity',540 value: '+58%'541 }, {542 effect: 'Capacitor recharge time',543 value: '+29%'544 }, {545 effect: 'Remote Capacitor Transmitter amount',546 value: '-29%'547 }548 ],549 4: [550 {551 effect: 'Local armor repair amount',552 value: '-36%'553 }, {554 effect: 'Local shield boost amount',555 value: '-36%'556 }, {557 effect: 'Shield transfer amount',558 value: '+72%'559 }, {560 effect: 'Remote repair amount',561 value: '+72%'562 }, {563 effect: 'Capacitor capacity',564 value: '+72%'565 }, {566 effect: 'Capacitor recharge time',567 value: '+36%'568 }, {569 effect: 'Remote Capacitor Transmitter amount',570 value: '-36%'571 }572 ],573 5: [574 {575 effect: 'Local armor repair amount',576 value: '-43%'577 }, {578 effect: 'Local shield boost amount',579 value: '-43%'580 }, {581 effect: 'Shield transfer amount',582 value: '+86%'583 }, {584 effect: 'Remote repair amount',585 value: '+86%'586 }, {587 effect: 'Capacitor capacity',588 value: '+86%'589 }, {590 effect: 'Capacitor recharge time',591 value: '+43%'592 }, {593 effect: 'Remote Capacitor Transmitter amount',594 value: '-43%'595 }596 ],597 6: [598 {599 effect: 'Local armor repair amount',600 value: '-50%'601 }, {602 effect: 'Local shield boost amount',603 value: '-50%'604 }, {605 effect: 'Shield transfer amount',606 value: '+100%'607 }, {608 effect: 'Remote repair amount',609 value: '+100%'610 }, {611 effect: 'Capacitor capacity',612 value: '+100%'613 }, {614 effect: 'Capacitor recharge time',615 value: '+50%'616 }, {617 effect: 'Remote Capacitor Transmitter amount',618 value: '-50%'619 }620 ]621 };622 let blackHole = {623 1: [624 {625 effect: 'Missile velocity',626 value: '+15%'627 }, {628 effect: 'Missile exp. velocity',629 value: '+30%'630 }, {631 effect: 'Ship velocity',632 value: '+30%'633 }, {634 effect: 'Stasis Webifier strength',635 value: '-15%'636 }, {637 effect: 'Inertia',638 value: '+15%'639 }, {640 effect: 'Targeting range',641 value: '+30%'642 }643 ],644 2: [645 {646 effect: 'Missile velocity',647 value: '+22%'648 }, {649 effect: 'Missile exp. velocity',650 value: '+44%'651 }, {652 effect: 'Ship velocity',653 value: '+44%'654 }, {655 effect: 'Stasis Webifier strength',656 value: '-22%'657 }, {658 effect: 'Inertia',659 value: '+22%'660 }, {661 effect: 'Targeting range',662 value: '+44%'663 }664 ],665 3: [666 {667 effect: 'Missile velocity',668 value: '+29%'669 }, {670 effect: 'Missile exp. velocity',671 value: '+58%'672 }, {673 effect: 'Ship velocity',674 value: '+58%'675 }, {676 effect: 'Stasis Webifier strength',677 value: '-29%'678 }, {679 effect: 'Inertia',680 value: '+29%'681 }, {682 effect: 'Targeting range',683 value: '+58%'684 }685 ],686 4: [687 {688 effect: 'Missile velocity',689 value: '+36%'690 }, {691 effect: 'Missile exp. velocity',692 value: '+72%'693 }, {694 effect: 'Ship velocity',695 value: '+72%'696 }, {697 effect: 'Stasis Webifier strength',698 value: '-36%'699 }, {700 effect: 'Inertia',701 value: '+36%'702 }, {703 effect: 'Targeting range',704 value: '+72%'705 }706 ],707 5: [708 {709 effect: 'Missile velocity',710 value: '+43%'711 }, {712 effect: 'Missile exp. velocity',713 value: '+86%'714 }, {715 effect: 'Ship velocity',716 value: '+86%'717 }, {718 effect: 'Stasis Webifier strength',719 value: '-43%'720 }, {721 effect: 'Inertia',722 value: '+43%'723 }, {724 effect: 'Targeting range',725 value: '+86%'726 }727 ],728 6: [729 {730 effect: 'Missile velocity',731 value: '+50%'732 }, {733 effect: 'Missile exp. velocity',734 value: '+100%'735 }, {736 effect: 'Ship velocity',737 value: '+100%'738 }, {739 effect: 'Stasis Webifier strength',740 value: '-50%'741 }, {742 effect: 'Inertia',743 value: '+50%'744 }, {745 effect: 'Targeting range',746 value: '+100%'747 }748 ]749 };750 // system effects751 return {752 getMultiplierByAreaId: getMultiplierByAreaId,753 wh: {754 magnetar: {755 1: magnetar[getMultiplierByAreaId(1)],756 2: magnetar[getMultiplierByAreaId(2)],757 3: magnetar[getMultiplierByAreaId(3)],758 4: magnetar[getMultiplierByAreaId(4)],759 5: magnetar[getMultiplierByAreaId(5)],760 6: magnetar[getMultiplierByAreaId(6)],761 16: magnetar[getMultiplierByAreaId(16)]762 },763 redGiant: {764 1: redGiant[getMultiplierByAreaId(1)],765 2: redGiant[getMultiplierByAreaId(2)],766 3: redGiant[getMultiplierByAreaId(3)],767 4: redGiant[getMultiplierByAreaId(4)],768 5: redGiant[getMultiplierByAreaId(5)],769 6: redGiant[getMultiplierByAreaId(6)],770 14: redGiant[getMultiplierByAreaId(14)]771 },772 pulsar: {773 1: pulsar[getMultiplierByAreaId(1)],774 2: pulsar[getMultiplierByAreaId(2)],775 3: pulsar[getMultiplierByAreaId(3)],776 4: pulsar[getMultiplierByAreaId(4)],777 5: pulsar[getMultiplierByAreaId(5)],778 6: pulsar[getMultiplierByAreaId(6)],779 17: pulsar[getMultiplierByAreaId(17)]780 },781 wolfRayet: {782 1: wolfRayet[getMultiplierByAreaId(1)],783 2: wolfRayet[getMultiplierByAreaId(2)],784 3: wolfRayet[getMultiplierByAreaId(3)],785 4: wolfRayet[getMultiplierByAreaId(4)],786 5: wolfRayet[getMultiplierByAreaId(5)],787 6: wolfRayet[getMultiplierByAreaId(6)],788 13: wolfRayet[getMultiplierByAreaId(13)],789 18: wolfRayet[getMultiplierByAreaId(18)]790 },791 cataclysmic: {792 1: cataclysmic[getMultiplierByAreaId(1)],793 2: cataclysmic[getMultiplierByAreaId(2)],794 3: cataclysmic[getMultiplierByAreaId(3)],795 4: cataclysmic[getMultiplierByAreaId(4)],796 5: cataclysmic[getMultiplierByAreaId(5)],797 6: cataclysmic[getMultiplierByAreaId(6)],798 15: cataclysmic[getMultiplierByAreaId(15)]799 },800 blackHole: {801 1: blackHole[getMultiplierByAreaId(1)],802 2: blackHole[getMultiplierByAreaId(2)],803 3: blackHole[getMultiplierByAreaId(3)],804 4: blackHole[getMultiplierByAreaId(4)],805 5: blackHole[getMultiplierByAreaId(5)],806 6: blackHole[getMultiplierByAreaId(6)]807 }808 }809 };...
ecEffect.js
Source:ecEffect.js
1/**2 * echartså¾è¡¨ç¹æåºç±»3 *4 * @desc echartsåºäºCanvasï¼çº¯Javascriptå¾è¡¨åºï¼æä¾ç´è§ï¼çå¨ï¼å¯äº¤äºï¼å¯ä¸ªæ§åå®å¶çæ°æ®ç»è®¡å¾è¡¨ã5 * @author Kener (@Kener-æå³°, kener.linfeng@gmail.com)6 *7 */8define(function (require) {9 var ecData = require('../util/ecData');10 11 var CircleShape = require('zrender/shape/Circle');12 var ImageShape = require('zrender/shape/Image');13 var curveTool = require('zrender/tool/curve');14 var IconShape = require('../util/shape/Icon');15 var SymbolShape = require('../util/shape/Symbol');16 var ShapeBundle = require('zrender/shape/ShapeBundle');17 var Polyline = require('zrender/shape/Polyline');18 var vec2 = require('zrender/tool/vector');19 var canvasSupported = require('zrender/tool/env').canvasSupported;20 21 function point(zr, effectList, shape, zlevel) {22 var effect = shape.effect;23 var color = effect.color || shape.style.strokeColor || shape.style.color;24 var shadowColor = effect.shadowColor || color;25 var size = effect.scaleSize;26 var distance = effect.bounceDistance;27 var shadowBlur = typeof effect.shadowBlur != 'undefined'28 ? effect.shadowBlur : size;29 var effectShape;30 if (shape.type !== 'image') {31 effectShape = new IconShape({32 zlevel : zlevel,33 style : {34 brushType : 'stroke',35 iconType : shape.style.iconType != 'droplet'36 ? shape.style.iconType37 : 'circle',38 x : shadowBlur + 1, // 线宽39 y : shadowBlur + 1,40 n : shape.style.n,41 width : shape.style._width * size,42 height : shape.style._height * size,43 lineWidth : 1,44 strokeColor : color,45 shadowColor : shadowColor,46 shadowBlur : shadowBlur47 },48 draggable : false,49 hoverable : false50 });51 if (shape.style.iconType == 'pin') {52 effectShape.style.y += effectShape.style.height / 2 * 1.5;53 }54 if (canvasSupported) { // æé«æ§è½ï¼æ¢æimage55 effectShape.style.image = zr.shapeToImage(56 effectShape, 57 effectShape.style.width + shadowBlur * 2 + 2, 58 effectShape.style.height + shadowBlur * 2 + 259 ).style.image;60 61 effectShape = new ImageShape({62 zlevel : effectShape.zlevel,63 style : effectShape.style,64 draggable : false,65 hoverable : false66 });67 }68 }69 else {70 effectShape = new ImageShape({71 zlevel : zlevel,72 style : shape.style,73 draggable : false,74 hoverable : false75 });76 }77 78 ecData.clone(shape, effectShape);79 80 // æ¹ååæ ï¼ä¸è½ç§»å°åé¢81 effectShape.position = shape.position;82 effectList.push(effectShape);83 zr.addShape(effectShape);84 85 var devicePixelRatio = shape.type !== 'image' ? (window.devicePixelRatio || 1) : 1;86 var offset = (effectShape.style.width / devicePixelRatio - shape.style._width) / 2;87 effectShape.style.x = shape.style._x - offset;88 effectShape.style.y = shape.style._y - offset;89 if (shape.style.iconType == 'pin') {90 effectShape.style.y -= shape.style.height / 2 * 1.5;91 }92 var duration = (effect.period + Math.random() * 10) * 100;93 94 zr.modShape(95 shape.id, 96 { invisible : true}97 );98 99 var centerX = effectShape.style.x + (effectShape.style.width) / 2 / devicePixelRatio;100 var centerY = effectShape.style.y + (effectShape.style.height) / 2 / devicePixelRatio;101 if (effect.type === 'scale') {102 // æ¾å¤§ææ103 zr.modShape(104 effectShape.id, 105 {106 scale : [0.1, 0.1, centerX, centerY]107 }108 );109 110 zr.animate(effectShape.id, '', effect.loop)111 .when(112 duration,113 {114 scale : [1, 1, centerX, centerY]115 }116 )117 .done(function() {118 shape.effect.show = false;119 zr.delShape(effectShape.id);120 })121 .start();122 }123 else {124 zr.animate(effectShape.id, 'style', effect.loop)125 .when(126 duration,127 {128 y : effectShape.style.y - distance129 }130 )131 .when(132 duration * 2,133 {134 y : effectShape.style.y135 }136 )137 .done(function() {138 shape.effect.show = false;139 zr.delShape(effectShape.id);140 })141 .start();142 }143 144 }145 146 function largePoint(zr, effectList, shape, zlevel) {147 var effect = shape.effect;148 var color = effect.color || shape.style.strokeColor || shape.style.color;149 var size = effect.scaleSize;150 var shadowColor = effect.shadowColor || color;151 var shadowBlur = typeof effect.shadowBlur != 'undefined'152 ? effect.shadowBlur : (size * 2);153 var devicePixelRatio = window.devicePixelRatio || 1;154 var effectShape = new SymbolShape({155 zlevel : zlevel,156 position : shape.position,157 scale : shape.scale,158 style : {159 pointList : shape.style.pointList,160 iconType : shape.style.iconType,161 color : color,162 strokeColor : color,163 shadowColor : shadowColor,164 shadowBlur : shadowBlur * devicePixelRatio,165 random : true,166 brushType: 'fill',167 lineWidth:1,168 size : shape.style.size169 },170 draggable : false,171 hoverable : false172 });173 174 effectList.push(effectShape);175 zr.addShape(effectShape);176 zr.modShape(177 shape.id, 178 { invisible : true}179 );180 181 var duration = Math.round(effect.period * 100);182 var clip1 = {};183 var clip2 = {};184 for (var i = 0; i < 20; i++) {185 effectShape.style['randomMap' + i] = 0;186 clip1 = {};187 clip1['randomMap' + i] = 100;188 clip2 = {};189 clip2['randomMap' + i] = 0;190 effectShape.style['randomMap' + i] = Math.random() * 100;191 zr.animate(effectShape.id, 'style', true)192 .when(duration, clip1)193 .when(duration * 2, clip2)194 .when(duration * 3, clip1)195 .when(duration * 4, clip1)196 .delay(Math.random() * duration * i)197 //.delay(duration / 15 * (15 - i + 1))198 .start();199 200 }201 }202 203 function line(zr, effectList, shape, zlevel, isLarge) {204 var effect = shape.effect;205 var shapeStyle = shape.style;206 var color = effect.color || shapeStyle.strokeColor || shapeStyle.color;207 var shadowColor = effect.shadowColor || shapeStyle.strokeColor || color;208 var size = shapeStyle.lineWidth * effect.scaleSize;209 var shadowBlur = typeof effect.shadowBlur != 'undefined'210 ? effect.shadowBlur : size;211 var effectShape = new CircleShape({212 zlevel : zlevel,213 style : {214 x : shadowBlur,215 y : shadowBlur,216 r : size,217 color : color,218 shadowColor : shadowColor,219 shadowBlur : shadowBlur220 },221 hoverable : false222 });223 var offset = 0;224 if (canvasSupported && ! isLarge) { // æé«æ§è½ï¼æ¢æimage225 var zlevel = effectShape.zlevel;226 effectShape = zr.shapeToImage(227 effectShape,228 (size + shadowBlur) * 2,229 (size + shadowBlur) * 2230 );231 effectShape.zlevel = zlevel;232 effectShape.hoverable = false;233 offset = shadowBlur;234 }235 if (! isLarge) {236 ecData.clone(shape, effectShape);237 // æ¹ååæ ï¼ ä¸è½ç§»å°åé¢238 effectShape.position = shape.position;239 effectList.push(effectShape);240 zr.addShape(effectShape);241 }242 var effectDone = function () {243 if (! isLarge) {244 shape.effect.show = false;245 zr.delShape(effectShape.id); 246 }247 effectShape.effectAnimator = null;248 };249 if (shape instanceof Polyline) {250 var distanceList = [0];251 var totalDist = 0;252 var pointList = shapeStyle.pointList;253 var controlPointList = shapeStyle.controlPointList;254 for (var i = 1; i < pointList.length; i++) {255 if (controlPointList) {256 var cp1 = controlPointList[(i - 1) * 2];257 var cp2 = controlPointList[(i - 1) * 2 + 1];258 totalDist += vec2.dist(pointList[i - 1], cp1)259 + vec2.dist(cp1, cp2)260 + vec2.dist(cp2, pointList[i]);261 }262 else {263 totalDist += vec2.dist(pointList[i - 1], pointList[i]);264 }265 distanceList.push(totalDist);266 }267 var obj = { p: 0 };268 var animator = zr.animation.animate(obj, { loop: effect.loop });269 for (var i = 0; i < distanceList.length; i++) {270 animator.when(distanceList[i] * effect.period, { p: i });271 }272 animator.during(function () {273 var i = Math.floor(obj.p);274 var x, y;275 if (i == pointList.length - 1) {276 x = pointList[i][0];277 y = pointList[i][1];278 }279 else {280 var t = obj.p - i;281 var p0 = pointList[i];282 var p1 = pointList[i + 1];283 if (controlPointList) {284 var cp1 = controlPointList[i * 2];285 var cp2 = controlPointList[i * 2 + 1];286 x = curveTool.cubicAt(287 p0[0], cp1[0], cp2[0], p1[0], t288 );289 y = curveTool.cubicAt(290 p0[1], cp1[1], cp2[1], p1[1], t291 );292 }293 else {294 x = (p1[0] - p0[0]) * t + p0[0];295 y = (p1[1] - p0[1]) * t + p0[1]; 296 }297 }298 effectShape.style.x = x;299 effectShape.style.y = y;300 if (! isLarge) {301 zr.modShape(effectShape);302 }303 })304 .done(effectDone)305 .start();306 animator.duration = totalDist * effect.period;307 effectShape.effectAnimator = animator;308 }309 else {310 var x0 = shapeStyle.xStart - offset;311 var y0 = shapeStyle.yStart - offset;312 var x2 = shapeStyle.xEnd - offset;313 var y2 = shapeStyle.yEnd - offset;314 effectShape.style.x = x0;315 effectShape.style.y = y0;316 var distance = (x2 - x0) * (x2 - x0) + (y2 - y0) * (y2 - y0);317 var duration = Math.round(Math.sqrt(Math.round(318 distance * effect.period * effect.period319 )));320 if (shape.style.curveness > 0) {321 var x1 = shapeStyle.cpX1 - offset;322 var y1 = shapeStyle.cpY1 - offset;323 effectShape.effectAnimator = zr.animation.animate(effectShape, { loop: effect.loop })324 .when(duration, { p: 1 })325 .during(function (target, t) {326 effectShape.style.x = curveTool.quadraticAt(327 x0, x1, x2, t328 );329 effectShape.style.y = curveTool.quadraticAt(330 y0, y1, y2, t331 );332 if (! isLarge) {333 zr.modShape(effectShape);334 }335 })336 .done(effectDone)337 .start();338 }339 else {340 // ä¸ç¨ zr.animateï¼å 为å¨ç¨ ShapeBundle çæ¶åå个 effectShape ä¸ä¼341 // 被å å° zrender ä¸342 effectShape.effectAnimator = zr.animation.animate(effectShape.style, { loop: effect.loop })343 .when(duration, {344 x: x2,345 y: y2346 })347 .during(function () {348 if (! isLarge) {349 zr.modShape(effectShape);350 }351 })352 .done(effectDone)353 .start();354 }355 effectShape.effectAnimator.duration = duration;356 }357 return effectShape;358 }359 function largeLine(zr, effectList, shape, zlevel) {360 var effectShape = new ShapeBundle({361 style: {362 shapeList: []363 },364 zlevel: zlevel,365 hoverable: false366 });367 var shapeList = shape.style.shapeList;368 var effect = shape.effect;369 effectShape.position = shape.position;370 var maxDuration = 0;371 var subEffectAnimators = [];372 for (var i = 0; i < shapeList.length; i++) {373 shapeList[i].effect = effect;374 var subEffectShape = line(zr, null, shapeList[i], zlevel, true);375 var subEffectAnimator = subEffectShape.effectAnimator;376 effectShape.style.shapeList.push(subEffectShape);377 if (subEffectAnimator.duration > maxDuration) {378 maxDuration = subEffectAnimator.duration;379 }380 if (i === 0) {381 effectShape.style.color = subEffectShape.style.color;382 effectShape.style.shadowBlur = subEffectShape.style.shadowBlur;383 effectShape.style.shadowColor = subEffectShape.style.shadowColor;384 }385 subEffectAnimators.push(subEffectAnimator);386 }387 effectList.push(effectShape);388 zr.addShape(effectShape);389 var clearAllAnimators = function () {390 for (var i = 0; i < subEffectAnimators.length; i++) {391 subEffectAnimators[i].stop();392 }393 };394 if (maxDuration) {395 effectShape.__dummy = 0;396 // Proxy animator397 var animator = zr.animate(effectShape.id, '', effect.loop)398 .when(maxDuration, {399 __dummy: 1400 })401 .during(function () {402 zr.modShape(effectShape);403 })404 .done(function () {405 shape.effect.show = false;406 zr.delShape(effectShape.id);407 })408 .start();409 var oldStop = animator.stop;410 animator.stop = function () {411 clearAllAnimators();412 oldStop.call(this);413 };414 }415 }416 return {417 point : point,418 largePoint : largePoint,419 line : line,420 largeLine: largeLine421 };...
TextEffectsUtils.js
Source:TextEffectsUtils.js
1/**2 * TextEffectsUtils3 * @Author Ace.c4 * @Time 2016-08-09 13:475 */6var TextEffectsUtils = (function () {7 function TextEffectsUtils() {8 }9 var d = __define,c=TextEffectsUtils,p=c.prototype;10 /**11 * æåæºç¹æ12 * @param display ææ¬å¯¹è±¡13 * @param content ææ¬å
容14 * @param delay æåé´é(åä½:毫ç§)15 */16 TextEffectsUtils.typewriter = function (display, content, delay) {17 if (content === void 0) { content = ""; }18 if (delay === void 0) { delay = 50; }19 var strArr = content.split("");20 for (var i = 0; i < strArr.length; i++) {21 egret.setTimeout(function () {22 display.appendText(strArr[Number(this)]);23 }, i, delay * i);24 }25 };26 /**27 * æ°åæ»å¨ç¹æ28 * @param display ææ¬å¯¹è±¡29 * @param target ç®æ æ°å30 * @param delay æåé´é(åä½:毫ç§)31 */32 TextEffectsUtils.numberRolling = function (display, target, delay) {33 if (delay === void 0) { delay = 2000; }34 this.rollingStart = Number(display.text);35 function onChange() {36 display.text = Math.round(this.rollingStart).toString();37 }38 egret.Tween.get(this, { onChange: onChange, onChangeObj: this }).to({ rollingStart: target }, delay);39 };40 /**41 * æ示ç¹æ42 * @param content æ示å
容43 * @param type ç±»å 1ï¼ä»ä¸å°ä¸å¼¹åº 2ï¼ä»å·¦è³å³å¼¹åº 3ï¼ä»å³è³å·¦å¼¹åº 4ï¼ä»ä¸é´å¼¹åºæ¸æ¸æ¶å¤± 5ï¼ä»å¤§åå° çç44 * @param isWarning æ¯å¦æ¯è¦åï¼è¦åæ¯çº¢è²45 */46 TextEffectsUtils.showTips = function (content, type, isWarning) {47 if (content === void 0) { content = ""; }48 if (type === void 0) { type = 1; }49 if (isWarning === void 0) { isWarning = false; }50 switch (type) {51 case 1:52 this.showTipsDownToUp(content, isWarning);53 break;54 case 2:55 this.showTipsLeftOrRight(content, isWarning, true);56 break;57 case 3:58 this.showTipsLeftOrRight(content, isWarning, false);59 break;60 case 4:61 this.showTipsFromCenter(content, isWarning);62 break;63 case 5:64 this.showTipsBigToSmall(content, isWarning);65 break;66 default:67 break;68 }69 };70 /**71 * ä»ä¸å°ä¸å¼¹åº72 * @param str73 * @param isWarning74 */75 TextEffectsUtils.showTipsDownToUp = function (str, isWarning) {76 if (str === void 0) { str = ""; }77 if (isWarning === void 0) { isWarning = false; }78 var effectTips = new egret.TextField();79 effectTips.size = 24;80 effectTips.y = H5Core.stageHeight / 2;81 if (isWarning) {82 effectTips.textColor = ColorType.red;83 }84 else {85 effectTips.textColor = ColorType.green;86 }87 effectTips.alpha = 0;88 effectTips.text = str;89 effectTips.strokeColor = 0x000000;90 effectTips.x = H5Core.stageWidth / 2 - effectTips.width / 2;91 effectTips.stroke = 2;92 effectTips.bold = true;93 effectTips.textAlign = egret.HorizontalAlign.CENTER;94 if (!H5Core.stage.contains(effectTips)) {95 H5Core.stage.addChild(effectTips);96 }97 var onComplete2 = function () {98 if (H5Core.stage.contains(effectTips)) {99 H5Core.stage.removeChild(effectTips);100 effectTips = null;101 }102 };103 var onComplete1 = function () {104 egret.Tween.get(effectTips).to({ alpha: 0 }, 500).call(onComplete2, this);105 };106 effectTips.visible = true;107 egret.Tween.get(effectTips).to({108 y: effectTips.y - 120,109 alpha: 1110 }, 800, egret.Ease.backOut).call(onComplete1, this);111 };112 /**113 * ä»å·¦è³å³ æè
ä»å³è³å·¦114 * @param str115 * @param isWarning116 * @param isFromeLeft117 */118 TextEffectsUtils.showTipsLeftOrRight = function (str, isWarning, isFromeLeft) {119 if (str === void 0) { str = ""; }120 if (isWarning === void 0) { isWarning = false; }121 if (isFromeLeft === void 0) { isFromeLeft = true; }122 var effectTips = new egret.TextField();123 effectTips.size = 24;124 effectTips.y = H5Core.stageHeight / 2;125 if (isWarning) {126 effectTips.textColor = ColorType.red;127 }128 else {129 effectTips.textColor = ColorType.green;130 }131 effectTips.alpha = 0;132 effectTips.text = str;133 effectTips.strokeColor = 0x000000;134 if (isFromeLeft) {135 effectTips.x = -effectTips.width;136 }137 else {138 effectTips.x = H5Core.stageWidth;139 }140 effectTips.stroke = 2;141 effectTips.bold = true;142 effectTips.textAlign = egret.HorizontalAlign.CENTER;143 if (!H5Core.stage.contains(effectTips)) {144 H5Core.stage.addChild(effectTips);145 }146 if (isFromeLeft) {147 egret.Tween.get(effectTips).to({148 x: H5Core.stageWidth / 2 - effectTips.width / 2 - 50,149 alpha: 1150 }, 300, egret.Ease.sineInOut);151 }152 else {153 egret.Tween.get(effectTips).to({154 x: H5Core.stageWidth / 2 - effectTips.width / 2 + 50,155 alpha: 1156 }, 300, egret.Ease.sineInOut);157 }158 egret.setTimeout(function () {159 if (isFromeLeft) {160 egret.Tween.get(effectTips).to({ x: effectTips.x + 100 }, 500);161 }162 else {163 egret.Tween.get(effectTips).to({ x: effectTips.x - 100 }, 500);164 }165 }, this, 300);166 egret.setTimeout(function () {167 if (isFromeLeft) {168 egret.Tween.get(effectTips).to({ x: H5Core.stageWidth }, 300, egret.Ease.sineIn);169 }170 else {171 egret.Tween.get(effectTips).to({ x: -effectTips.width }, 300, egret.Ease.sineIn);172 }173 }, this, 800);174 egret.setTimeout(function () {175 if (H5Core.stage.contains(effectTips)) {176 H5Core.stage.removeChild(effectTips);177 effectTips = null;178 }179 }, this, 1100);180 };181 /**182 * ä»éå°å¤183 * @param str184 * @param isWarning185 */186 TextEffectsUtils.showTipsFromCenter = function (str, isWarning) {187 if (str === void 0) { str = ""; }188 if (isWarning === void 0) { isWarning = false; }189 var effectTips = new egret.TextField();190 effectTips.size = 24;191 effectTips.y = H5Core.stageHeight / 2;192 if (isWarning) {193 effectTips.textColor = ColorType.red;194 }195 else {196 effectTips.textColor = ColorType.green;197 }198 effectTips.alpha = 0;199 effectTips.text = str;200 effectTips.strokeColor = 0x000000;201 effectTips.x = H5Core.stageWidth / 2;202 effectTips.stroke = 2;203 effectTips.bold = true;204 effectTips.textAlign = egret.HorizontalAlign.CENTER;205 effectTips.anchorOffsetX = effectTips.width >> 1;206 effectTips.anchorOffsetY = effectTips.height >> 1;207 effectTips.scaleX = 0;208 effectTips.scaleY = 0;209 if (!H5Core.stage.contains(effectTips)) {210 H5Core.stage.addChild(effectTips);211 }212 var onComplete2 = function () {213 if (H5Core.stage.contains(effectTips)) {214 H5Core.stage.removeChild(effectTips);215 effectTips = null;216 }217 };218 egret.Tween.get(effectTips).to({ scaleX: 1, scaleY: 1, alpha: 1 }, 200);219 egret.setTimeout(function () {220 egret.Tween.get(effectTips).to({ alpha: 0 }, 500).call(onComplete2, this);221 }, this, 1000);222 };223 /**224 * ä»å¤å°é225 * @param str226 * @param isWarning227 */228 TextEffectsUtils.showTipsBigToSmall = function (str, isWarning) {229 if (str === void 0) { str = ""; }230 if (isWarning === void 0) { isWarning = false; }231 var effectTips = new egret.TextField();232 effectTips.size = 24;233 effectTips.y = H5Core.stageHeight / 2;234 if (isWarning) {235 effectTips.textColor = ColorType.red;236 }237 else {238 effectTips.textColor = ColorType.green;239 }240 effectTips.alpha = 0;241 effectTips.text = str;242 effectTips.strokeColor = 0x000000;243 effectTips.x = H5Core.stageWidth / 2;244 effectTips.stroke = 2;245 effectTips.bold = true;246 effectTips.textAlign = egret.HorizontalAlign.CENTER;247 effectTips.anchorOffsetX = effectTips.width >> 1;248 effectTips.anchorOffsetY = effectTips.height >> 1;249 effectTips.scaleX = 4;250 effectTips.scaleY = 4;251 if (!H5Core.stage.contains(effectTips)) {252 H5Core.stage.addChild(effectTips);253 }254 var onComplete2 = function () {255 if (H5Core.stage.contains(effectTips)) {256 H5Core.stage.removeChild(effectTips);257 effectTips = null;258 }259 };260 egret.Tween.get(effectTips).to({ scaleX: 1, scaleY: 1, alpha: 1 }, 200);261 egret.setTimeout(function () {262 egret.Tween.get(effectTips).to({ alpha: 0 }, 500).call(onComplete2, this);263 }, this, 1000);264 };265 return TextEffectsUtils;266}());...
pipeline.js
Source:pipeline.js
1/**2 * Post-effects pipeline3 *4 * @author xeolabs / http://xeolabs.com5 *6 * IN DEVELOPMENT7 *8 * Usage example:9 *10 * someNode.addNode({11 * type: "postprocess/pipeline",12 * effects: [13 * {14 * effectId: "dof",15 * type: "postprocess/dof",16 * params: {17 * ppm: 10000.0,18 * blurCoeff: 0.00119 * },20 * enabled: true21 * },22 * {23 * effectId: "technicolor",24 * type: "postprocess/technicolor",25 * enabled: false26 * }27 * ]28 * },29 * function(pipeline) {30 *31 * pipeline.setEnabled({32 * dof: false,33 * technicolor: true34 * });35 * });36 */37SceneJS.Types.addType("postprocess/pipeline", {38 construct: function (params) {39 var self = this;40 /**41 * Effects in the order in which they will be applied42 *43 * @type {[{}]}44 */45 this.pipeline = [];46 /**47 * Effects mapped to their IDs48 *49 * @type {{}}50 */51 this.effects = {};52 // True when effects pipeline in the53 // scene graph needs to be rebuilt54 this._dirty = false;55 // Add effects56 if (params.effects) {57 for (var i = 0, len = params.effects.length; i < len; i++) {58 this.addEffect(params.effects[i]);59 }60 }61 if (params.enabled) {62 this.setEnabled(params.enabled);63 }64 if (params.params) {65 this.setParams(params.params);66 }67 this._subtree = this.addNode({68 id: this.id + ".subtree",69 nodes: params.nodes70 });71 this._needRebuild();72 },73 _needRebuild: function () {74 if (!this._tick) {75 var self = this;76 this._tick = this.getScene().once("tick",77 function () {78 self._rebuildScene();79 self._tick = null;80 });81 }82 },83 _rebuildScene: function () {84 // Disconnect scene content85 this._subtree.disconnect();86 // Blow away effect nodes87 this.removeNodes();88 // Rebuild effect nodes89 var effect;90 var json = {91 nodes: []92 };93 var node = json;94 var scene = this.getScene();95 for (var i = 0, len = this.pipeline.length; i < len; i++) {96 effect = this.pipeline[i];97 if (effect.enabled) {98 var effectId = this.id + "." + effect.effectId;99 var child = SceneJS._applyIf(effect.params, {100 type: effect.type,101 id: effectId,102 nodes: []103 });104 node.nodes.push(child);105 node = child;106 // Save scene node on effect for param updates107 scene.getNode(effectId,108 (function () {109 var _effect = effect;110 return function (node) {111 _effect.node = node;112 }113 })());114 } else {115 // No scene nodes exist for disabled effects116 effect.node = null;117 }118 }119 // Append scene content to lowest effect node, thus applying120 // all the effects to it, in order of each effect on the path121 // up to the scene root122 node.nodes.push({ id: this.id + ".effectsSubTree" });123 var self = this;124 this.addNode(json,125 function () {126 scene.getNode(this.id + ".effectsSubTree",127 function (leaf) {128 if (self._subtree.parent == null) {129 leaf.addNode(self._subtree);130 }131 });132 self._dirty = false;133 });134 },135 /**136 * Adds a effect137 * @param params138 */139 addEffect: function (params) {140 var effect = params;141 this.effects[params.effectId] = effect;142 this.pipeline.unshift(effect);143 this._needRebuild();144 },145 /**146 * Enables or disables effects147 * @param params148 */149 setEnabled: function (params) {150 // Option to replace the set of enabled effects151 if (params.replace) {152 for (var i = 0, len = this.pipeline.length; i < len; i++) {153 this.pipeline[i].enabled = false;154 }155 }156 var effect;157 if (params.effectId) {158 var effectId = params.effectId;159 effect = this.effects[effectId];160 if (!effect) {161 //Human.log.error("Human.view.effects.setEnabled", "Effect not found: " + effectId);162 return;163 }164 effect.enabled = !!params.enable;165 } else if (params.effectIds) {166 var effectIds = params.effectIds;167 var val;168 for (var effectId in effectIds) {169 if (effectIds.hasOwnProperty(effectId)) {170 effect = this.effects[effectId];171 if (!effect) {172 // Human.log.error("Human.view.effects.setEnabled", "Effect not found: " + effectId);173 continue;174 }175 val = effectIds[effectId];176 effect.enabled = !!val;177 if (val && typeof val !== "boolean") {178 // Effect params given179 // effect.setParams(val);180 }181 }182 }183 }184 this._needRebuild();185 },186 /**187 * Sets parameters for effects188 * @param params189 */190 setParams: function (params) {191 var effect;192 for (var effectId in params) {193 if (params.hasOwnProperty(effectId)) {194 effect = this.effects[effectId];195 if (!effect) {196 this.log("error", "Effect not found: " + effectId);197 continue;198 }199 SceneJS._apply(params, effect.params);200 if (effect.node) {201 effect.node.set(params[effectId]);202 }203 }204 }205 },206 _destruct: function () {207 this._subtree.destroy();208 }...
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 for (const browserType of BROWSER) {4 const browser = await playwright[browserType].launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 const consoleMessages = [];8 page.on('console', msg => consoleMessages.push(msg.text()));9 await page.evaluate(() => {10 console.log('hello', 5, {foo: 'bar'});11 });12 console.log(consoleMessages);13 await browser.close();14 }15})();16const playwright = require('playwright');17(async () => {18 for (const browserType of ['chromium', 'firefox', 'webkit']) {19 const browser = await playwright[browserType].launch();20 const context = await browser.newContext();21 const page = await context.newPage();22 const consoleMessages = [];23 page.on('console', msg => consoleMessages.push(msg.text()));24 await page.evaluate(() => {25 console.log('hello', 5, {foo: 'bar'});26 });27 console.log(consoleMessages);28 await browser.close();29 }30})();31const playwright = require('playwright');32(async () => {33 for (const browserType of BROWSER) {34 const browser = await playwright[browserType].launch();35 const context = await browser.newContext();36 const page = await context.newPage();37 const consoleMessages = [];38 page.on('console', msg => consoleMessages.push(msg.text()));39 await page.evaluate(() => {40 console.log('hello', 5, {foo: 'bar'});41 });42 console.log(consoleMessages);43 await browser.close();44 }45})();46const playwright = require('playwright');47(async () => {48 for (const browserType of ['chromium', 'firefox', 'webkit']) {49 const browser = await playwright[browserType].launch();50 const context = await browser.newContext();51 const page = await context.newPage();
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 for (const browserType of BROWSER) {4 const browser = await playwright[browserType].launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 await page.screenshot({ path: `example-${browserType}.png` });8 await browser.close();9 }10})();11const playwright = require('playwright');12(async () => {13 for (const browserType of BROWSER) {14 const browser = await playwright[browserType].launch();15 const context = await browser.newContext();16 const page = await context.newPage();17 await page.screenshot({ path: `example-${browserType}.png` });18 await browser.close();19 }20})();21const playwright = require('playwright');22(async () => {23 for (const browserType of BROWSER) {24 const browser = await playwright[browserType].launch();25 const context = await browser.newContext();26 const page = await context.newPage();27 await page.screenshot({ path: `example-${browserType}.png` });28 await browser.close();29 }30})();31const playwright = require('playwright');32(async () => {33 for (const browserType of BROWSER) {34 const browser = await playwright[browserType].launch();35 const context = await browser.newContext();36 const page = await context.newPage();37 await page.screenshot({ path: `example-${browserType}.png` });38 await browser.close();39 }40})();41const playwright = require('playwright');42(async () => {43 for (const browserType of BROWSER) {44 const browser = await playwright[browserType].launch();45 const context = await browser.newContext();46 const page = await context.newPage();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: `example.png` });7 const { addInitScript } = require('@playwright/test');8 addInitScript(function () {9 window.globalVar = 'value';10 });11 await browser.close();12})();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: `example.png` });7 await browser.close();8})();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: `example.png` });7 await browser.close();8})();9const playwright = require('playwright');10(async () => {11 const browser = await playwright['chromium'].launch();12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.screenshot({ path: `example.png` });15 await browser.close();16})();17const playwright = require('playwright');18(async () => {19 const browser = await playwright.chromium.launch();20 const context = await browser.newContext();21 const page = await context.newPage();22 await page.screenshot({ path: `example.png` });23 await browser.close();24})();25const playwright = require('playwright');26(async () => {27 const browser = await playwright.chromium.launch();28 const context = await browser.newContext();29 const page = await context.newPage();30 await page.screenshot({ path: `example.png` });31 await browser.close();32})();33const playwright = require('playwright');34(async () => {35 const browser = await playwright.chromium.launch();36 const context = await browser.newContext();37 const page = await context.newPage();38 await page.screenshot({ path: `example.png` });39 await browser.close();40})();41const playwright = require('playwright');42(async () => {43 const browser = await playwright.chromium.launch();44 const context = await browser.newContext();45 const page = await context.newPage();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page.screenshot({ path: 'example.png' });6 await browser.close();7})();8const { chromium } = require('playwright');9(async () => {10 const browser = await chromium.launch();11 const page = await browser.newPage();12 await page.screenshot({ path: 'example.png' });13 await browser.close();14})();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page.screenshot({ path: `example.png` });6 await browser.close();7})();8const { chromium } = require('playwright');9(async () => {10 const browser = await chromium.launch();11 const page = await browser.newPage();12 await page.screenshot({ path: `example.png` });13 await browser.close();14})();15const { chromium } = require('playwright');16(async () => {17 const browser = await chromium.launch();18 const page = await browser.newPage();19 await page.screenshot({ path: `example.png` });20 await browser.close();21})();22const { chromium } = require('playwright');23(async () => {24 const browser = await chromium.launch();25 const page = await browser.newPage();26 await page.screenshot({ path: `example.png` });27 await browser.close();28})();29const { chromium } = require('playwright');30(async () => {31 const browser = await chromium.launch();32 const page = await browser.newPage();33 await page.screenshot({ path: `example.png` });34 await browser.close();35})();36const { chromium } = require('playwright');37(async () => {38 const browser = await chromium.launch();
Using AI Code Generation
1const { chromium } = require('playwright');2const fs = require('fs');3const path = require('path');4(async () => {5 const browser = await chromium.launch();6 const page = await browser.newPage();7 await page.screenshot({ path: 'example.png' });8 await browser.close();9})();
Using AI Code Generation
1const { chromium } = require('playwright');2const { getTestState } = require('@playwright/test');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 const testState = getTestState();8 testState.attachments.push({9 path: await page.screenshot({ path: 'example.png' }),10 });11 await browser.close();12})();13const { test } = require('@playwright/test');14test('my test', async ({ page }) => {15 await page.screenshot({ path: 'example.png' });16});17{18 "scripts": {19 },20 "devDependencies": {21 }22}
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!