192 lines
7.9 KiB
HTML
192 lines
7.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
|
|
<title>PIXI List</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="../../dist/iwmlib.3rdparty.js"></script>
|
|
<script src="../3rdparty/gsap/src/uncompressed/plugins/ThrowPropsPlugin.js"></script>
|
|
|
|
<script src="../../dist/iwmlib.pixi.js"></script>
|
|
<script src="../../dist/iwmlib.js"></script>
|
|
</head>
|
|
<body onload="Doctest.run()">
|
|
<h1><a href="../index.html">lib.</a><a href="index.html">pixi.</a>List</h1>
|
|
<p>Using the List class, any PIXI elements (PIXI.DisplayObject) can be included in a scrollable list.</p>
|
|
<p><a href="../../doc/out/List.html">JavaScript API</a></p>
|
|
<p>Let's look at some list examples:</p>
|
|
<br />
|
|
<canvas id="canvas" class="interactive"></canvas>
|
|
<p>What you should see: Three lists, one horizontal and two vertical.</p>
|
|
<script class="doctest">
|
|
const app = new PIXIApp({
|
|
view: canvas,
|
|
width: 900,
|
|
height: 420,
|
|
transparent: false
|
|
})
|
|
.setup()
|
|
.run()
|
|
|
|
app.loadTextures(
|
|
[
|
|
'./assets/elephant-1.jpg',
|
|
'./assets/elephant-2.jpg',
|
|
'./assets/elephant-3.jpg',
|
|
'./assets/elephant-4.jpg',
|
|
'./assets/elephant-5.jpg',
|
|
'./assets/bamboo-1.jpg',
|
|
'./assets/bamboo-2.jpg',
|
|
'./assets/bamboo-3.jpg',
|
|
'./assets/bamboo-4.jpg',
|
|
'./assets/bamboo-5.jpg'
|
|
],
|
|
(textures) => {
|
|
// Example 1
|
|
//--------------------
|
|
const elephant1 = new PIXI.Sprite(textures.get('./assets/elephant-1.jpg'))
|
|
const elephant2 = new PIXI.Sprite(textures.get('./assets/elephant-2.jpg'))
|
|
const elephant3 = new PIXI.Sprite(textures.get('./assets/elephant-3.jpg'))
|
|
const elephant4 = new PIXI.Sprite(textures.get('./assets/elephant-4.jpg'))
|
|
const elephant5 = new PIXI.Sprite(textures.get('./assets/elephant-5.jpg'))
|
|
|
|
const elephants = [elephant1, elephant2, elephant3, elephant4, elephant5]
|
|
elephants.forEach((it) => it.scale.set(0.1, 0.1))
|
|
|
|
const elephantList = new List(elephants)
|
|
elephantList.x = 10
|
|
elephantList.y = 10
|
|
|
|
// Example 2
|
|
//--------------------
|
|
const bamboo1 = new PIXI.Sprite(textures.get('./assets/bamboo-1.jpg'))
|
|
const bamboo2 = new PIXI.Sprite(textures.get('./assets/bamboo-2.jpg'))
|
|
const bamboo3 = new PIXI.Sprite(textures.get('./assets/bamboo-3.jpg'))
|
|
const bamboo4 = new PIXI.Sprite(textures.get('./assets/bamboo-4.jpg'))
|
|
const bamboo5 = new PIXI.Sprite(textures.get('./assets/bamboo-5.jpg'))
|
|
|
|
const bamboos = [bamboo1, bamboo2, bamboo3, bamboo4, bamboo5]
|
|
bamboos.forEach((it) => it.scale.set(0.15, 0.15))
|
|
|
|
const bambooList = new List(bamboos, {
|
|
orientation: 'horizontal',
|
|
width: 300,
|
|
app
|
|
})
|
|
bambooList.x = 200
|
|
bambooList.y = 10
|
|
|
|
window.bambooList = bambooList
|
|
|
|
// Example 3
|
|
//--------------------
|
|
const style = { fontSize: 14, fill: 0xe7bc51 }
|
|
|
|
const texts = []
|
|
for (let i = 0; i < 1000; i++) {
|
|
const text = new PIXI.Text(`Example Text ${i}`, style)
|
|
text.interactive = true
|
|
text.on('tap', (event) => console.log(`tap text ${i}`))
|
|
text.on('click', (event) => console.log(`click text ${i}`))
|
|
texts.push(text)
|
|
}
|
|
|
|
const textList = new List(texts, {
|
|
orientation: 'vertical',
|
|
height: 200,
|
|
padding: 2,
|
|
app
|
|
})
|
|
textList.x = 200
|
|
textList.y = 200
|
|
|
|
// Add to scene
|
|
//--------------------
|
|
app.scene.addChild(elephantList, bambooList, textList)
|
|
},
|
|
{ resolutionDependent: false }
|
|
)
|
|
</script>
|
|
|
|
<h1>List in a Scatter</h1>
|
|
<p>A PixiJS UI List is displayed inside a ScatterObject.</p>
|
|
<canvas id="canvas2" class="interactive"></canvas>
|
|
<p>What you should see: A ScatterObject with a list in it.</p>
|
|
<script class="doctest">
|
|
const app2 = new PIXIApp({
|
|
view: canvas2,
|
|
width: 900,
|
|
height: 420,
|
|
transparent: false
|
|
})
|
|
.setup()
|
|
.run()
|
|
|
|
app2.loadTextures(
|
|
[
|
|
'./assets/jungle.jpg',
|
|
'./assets/elephant-1.jpg',
|
|
'./assets/elephant-2.jpg',
|
|
'./assets/elephant-3.jpg',
|
|
'./assets/elephant-4.jpg',
|
|
'./assets/elephant-5.jpg'
|
|
],
|
|
(textures) => {
|
|
// ScatterContainer
|
|
//--------------------
|
|
const scatterContainer = new ScatterContainer(app2.renderer, {
|
|
showBounds: true,
|
|
showPolygon: true,
|
|
app: app2,
|
|
stopEvents: true,
|
|
claimEvents: true
|
|
})
|
|
|
|
app2.scene.addChild(scatterContainer)
|
|
|
|
// ScatterObject
|
|
//--------------------
|
|
const jungle = new PIXI.Sprite(textures.get('./assets/jungle.jpg'))
|
|
jungle.interactive = true
|
|
const scatter = new DisplayObjectScatter(jungle, app2.renderer, {
|
|
x: 200,
|
|
y: 20,
|
|
startScale: 1,
|
|
minScale: 0.25,
|
|
maxScale: 1
|
|
})
|
|
|
|
scatterContainer.addChild(jungle)
|
|
|
|
// Example 1
|
|
//--------------------
|
|
const elephant1 = new PIXI.Sprite(textures.get('./assets/elephant-1.jpg'))
|
|
const elephant2 = new PIXI.Sprite(textures.get('./assets/elephant-2.jpg'))
|
|
const elephant3 = new PIXI.Sprite(textures.get('./assets/elephant-3.jpg'))
|
|
const elephant4 = new PIXI.Sprite(textures.get('./assets/elephant-4.jpg'))
|
|
const elephant5 = new PIXI.Sprite(textures.get('./assets/elephant-5.jpg'))
|
|
|
|
const elephants = [elephant1, elephant2, elephant3, elephant4, elephant5]
|
|
elephants.forEach((it) => it.scale.set(0.15, 0.15))
|
|
|
|
const elephantList = new List(elephants, {
|
|
height: 200
|
|
})
|
|
elephantList.x = 10
|
|
elephantList.y = 10
|
|
|
|
// Add to scene
|
|
//--------------------
|
|
jungle.addChild(elephantList)
|
|
},
|
|
{ resolutionDependent: false }
|
|
)
|
|
</script>
|
|
</body>
|
|
</html>
|