175 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!doctype html>
 | |
| <html lang="en">
 | |
| <head>
 | |
|     <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | |
| 
 | |
|     <title>PIXI Flippable</title>
 | |
| 
 | |
|     <link rel="stylesheet" href="../3rdparty/highlight/styles/default.css">
 | |
|     <link rel="stylesheet" href="../../css/doctest.css">
 | |
| 
 | |
|     <script src="../3rdparty/highlight/highlight.pack.js"></script>
 | |
|     <script src="../3rdparty/all.js"></script>
 | |
| 
 | |
|     <script src="../all.js"></script>
 | |
|     <script src="./all.js"></script>
 | |
| </head>
 | |
| <body onload="Doctest.run()">
 | |
|     <h1>Flippable</h1>
 | |
|     <p>
 | |
|         Using the Flippable class, any PIXI element (PIXI.DisplayObject) can be back-mounted
 | |
|         (which can include another PIXI.DisplayObject), and turning it over to the back can
 | |
|         be adjusted by many parameters in speed and behavior.
 | |
|     </p>
 | |
|     <p><a href="../../doc/out/Flippable.html">JavaScript API</a></p>
 | |
|     <p>Let's look at some flippable examples:</p><br />
 | |
|     <canvas id="canvas" class="interactive"></canvas>
 | |
|     <p>
 | |
|         What you should see: Six flippable elements and one button.
 | |
|     </p>
 | |
|     <script class="doctest">
 | |
| const app = new PIXIApp({
 | |
|     view: canvas,
 | |
|     width: 900,
 | |
|     height: 420,
 | |
|     transparent: false
 | |
| }).setup().run()
 | |
| 
 | |
| app.loadTextures([
 | |
|     './assets/fruit-1.jpg',
 | |
|     './assets/fruit-2.jpg',
 | |
|     './assets/fruit-3.jpg',
 | |
|     './assets/fruit-4.jpg',
 | |
|     './assets/fruit-5.jpg',
 | |
|     './assets/fruit-6.jpg',
 | |
|     './assets/fruit-7.jpg',
 | |
|     './assets/fruit-8.jpg',
 | |
|     './assets/fruit-9.jpg',
 | |
|     './assets/fruit-10.jpg'
 | |
| ], textures => {
 | |
| 
 | |
|     // Example 1
 | |
|     //--------------------
 | |
|     const sprite1 = new PIXI.Sprite(textures.get('./assets/fruit-1.jpg'))
 | |
|     sprite1.position.set(10, 10)
 | |
|     sprite1.scale.set(.2, .2)
 | |
|     const sprite2 = new PIXI.Sprite(textures.get('./assets/fruit-2.jpg'))
 | |
| 
 | |
|     const flippable1 = new Flippable(sprite1, sprite2, app.renderer)
 | |
| 
 | |
|     // Example 2
 | |
|     //--------------------
 | |
|     const sprite3 = new PIXI.Sprite(textures.get('./assets/fruit-3.jpg'))
 | |
|     sprite3.position.set(10, 120)
 | |
|     sprite3.scale.set(.2, .2)
 | |
|     const sprite4 = new PIXI.Sprite(textures.get('./assets/fruit-4.jpg'))
 | |
| 
 | |
|     const flippable2 = new Flippable(sprite3, sprite4, app.renderer, {
 | |
|         duration: 6,
 | |
|         ease: Bounce.easeOut,
 | |
|         shadow: true,
 | |
|         eulerX: .8
 | |
|     })
 | |
| 
 | |
|     // Example 3
 | |
|     //--------------------
 | |
|     const sprite5 = new PIXI.Sprite(textures.get('./assets/fruit-5.jpg'))
 | |
|     sprite5.position.set(10, 240)
 | |
|     sprite5.scale.set(.2, .2)
 | |
|     const sprite6 = new PIXI.Sprite(textures.get('./assets/fruit-6.jpg'))
 | |
|     sprite6.position.set(400, 180)
 | |
|     sprite6.scale.set(.3, .3)
 | |
|     sprite6.rotation = .3
 | |
| 
 | |
|     const flippable3 = new Flippable(sprite5, sprite6, app.renderer, {
 | |
|         duration: 4,
 | |
|         ease: Circ.easeInOut,
 | |
|         shadow: true,
 | |
|         useBackTransforms: true
 | |
|     })
 | |
| 
 | |
|     // Example 4
 | |
|     //--------------------
 | |
|     const sprite7 = new PIXI.Sprite(textures.get('./assets/fruit-7.jpg'))
 | |
|     sprite7.position.set(700, 10)
 | |
|     sprite7.scale.set(.2, .2)
 | |
|     const sprite8 = new PIXI.Sprite(textures.get('./assets/fruit-8.jpg'))
 | |
|     sprite8.position.set(550, 180)
 | |
|     sprite8.scale.set(.15, .15)
 | |
|     sprite8.skew.set(0, .1)
 | |
| 
 | |
|     const flippable4 = new Flippable(sprite7, sprite8, app.renderer, {
 | |
|         duration: 5,
 | |
|         ease: Elastic.easeOut.config(1, 0.3),
 | |
|         transformEase: Elastic.easeOut.config(1, 0.3),
 | |
|         shadow: true,
 | |
|         focus: 600,
 | |
|         near: 50,
 | |
|         far: 10000,
 | |
|         useBackTransforms: true
 | |
|     })
 | |
| 
 | |
|     // Example 5
 | |
|     //--------------------
 | |
|     const sprite9 = new PIXI.Sprite(textures.get('./assets/fruit-9.jpg'))
 | |
|     sprite9.position.set(700, 130)
 | |
|     sprite9.scale.set(.2, .2)
 | |
|     sprite9.skew.set(.2, .2)
 | |
|     const sprite10 = new PIXI.Sprite(textures.get('./assets/fruit-10.jpg'))
 | |
|     sprite10.position.set(700, 130)
 | |
|     sprite10.scale.set(.2, .2)
 | |
|     sprite10.skew.set(-.2, -.2)
 | |
| 
 | |
|     const flippable5 = new Flippable(sprite9, sprite10, app.renderer, {
 | |
|         duration: 2,
 | |
|         useBackTransforms: true
 | |
|     })
 | |
| 
 | |
|     // Example 6
 | |
|     //--------------------
 | |
|     const graphic1 = new PIXI.Graphics()
 | |
|     graphic1.position.set(700, 280)
 | |
|     graphic1.beginFill(0x6b6acf, 1)
 | |
|     graphic1.drawRect(0, 0, 160, 100)
 | |
|     graphic1.lineStyle(1, 0xe7bc51, 1)
 | |
|     for (let i = 0; i < 100; i++) {
 | |
|         graphic1.drawCircle(Math.random() * 160, Math.random() * 100, 2)
 | |
|     }
 | |
| 
 | |
|     const graphic2 = new PIXI.Graphics()
 | |
|     graphic2.position.set(700, 280)
 | |
|     graphic2.beginFill(0xcedc9c, 1)
 | |
|     graphic2.drawRect(0, 0, 160, 100)
 | |
|     for (let i = 0; i < 1000; i++) {
 | |
|         graphic2.beginFill(Math.random() * 0xffffff << 0, 1)
 | |
|         graphic2.lineStyle(1, Math.random() * 0xffffff << 0, 1)
 | |
|         graphic2.drawCircle(Math.random() * 160, Math.random() * 100, 2)
 | |
|     }
 | |
| 
 | |
|     const flippable6 = new Flippable(graphic1, graphic2, app.renderer, {
 | |
|         eulerX: -.3
 | |
|     })
 | |
| 
 | |
|     // Button
 | |
|     //--------------------
 | |
|     const button = new Button({
 | |
|         x: 400,
 | |
|         y: 10,
 | |
|         label: 'Toggle',
 | |
|         type: 'checkbox',
 | |
|         action: e => {
 | |
|             flippable1.toggle()
 | |
|             flippable2.toggle()
 | |
|             flippable3.toggle()
 | |
|             flippable4.toggle()
 | |
|             flippable5.toggle()
 | |
|             flippable6.toggle()
 | |
|         }
 | |
|     })
 | |
| 
 | |
|     app.scene.addChild(sprite1, sprite3, sprite5, sprite7, sprite9, graphic1, button)
 | |
| 
 | |
| }, {resolutionDependent: false})
 | |
|     </script>
 | |
| </body>
 |