当前位置:首页 > 工业技术
HTML5 Canvas  网站本地化交互和动画设计  原书第2版  英文
HTML5 Canvas  网站本地化交互和动画设计  原书第2版  英文

HTML5 Canvas 网站本地化交互和动画设计 原书第2版 英文PDF电子书下载

工业技术

  • 电子书积分:20 积分如何计算积分?
  • 作 者:(美)富尔顿著
  • 出 版 社:南京:东南大学出版社
  • 出版年份:2014
  • ISBN:9787564146009
  • 页数:730 页
图书介绍:Flash日渐衰弱而Canvas正逐步走强。这本畅销书的第二版为你展示了如何创建互动多媒体应用,带你上手HTML5 Canvas.你将学到如何绘图、渲染文本、操纵图像和创建动画。这一切都包含在本书中构建交互网站游戏的课程里。本版根据最新的Canvas实现和相关的HTML5技术做了修订,它包括清晰而且可重用的示例代码来帮助你快速学习基础知识——无论你现在正在使用Flash、Siverlight还是只用HTML和JavaScript。
《HTML5 Canvas 网站本地化交互和动画设计 原书第2版 英文》目录

1.Introduction to HTML5 Canvas 1

What Is HTML5? 2

The Basic HTML5 Page 3

<!doctype html> 3

<htmllang="en"> 4

<meta charset="UTF-8"> 4

<title>…</title> 4

A Simple HTML5 Page 4

Basic HTML We Will Use in This Book 5

<div> 5

<canvas> 7

The Document Object Model (DOM)and Canvas 7

JavaScript and Canvas 7

Where Does JavaScript Go and Why? 8

HTML5 Canvas"Hello World!" 8

Encapsulating Your JavaScript Code for Canvas 9

Adding Canvas to the HTML Page 10

Using the document Object to Reference the Canvas Element in JavaScript 11

Testing to See Whether the Browser Supports Canvas 11

Retrieving the 2D Context 12

The drawScreen() Function 12

Debugging with console.log 16

The 2D Context and the Current State 17

The HTML5 Canvas Object 18

Another Example:Guess The Letter 19

How the Game Works 20

The"Guess The Letter"Game Variables 20

The initGame() Function 21

The eventKeyPressed() Function 21

The drawScreen()Function 23

Exporting Canvas to an Image 24

The Final Game Code 25

Hello World Animated Edition 25

Some Necessary Properties 26

Animation Loop 27

Alpha Transparency with the globalAlpha Property 28

Clearing and Displaying the Background 28

Updating the globalAlpha Property for Text Display 29

Drawing the Text 29

HTML5 Canvas and Accessibility:Sub Dom 31

Hit Testing Proposal 32

What's Next? 33

2.Drawing on the Canvas 35

The Basic File Setup for This Chapter 35

The Basic Rectangle Shape 36

The Canvas State 37

What's Not Part of the State? 38

How Do We Save and Restore the Canvas State? 38

Using Paths to Create Lines 38

Starting and Ending a Path 39

The Actual Drawing 39

Examples of More Advanced Line Drawing 40

Advanced Path Methods 42

Arcs 42

Bezier Curves 44

The Canvas Clipping Region 45

Compositing on the Canvas 47

Simple Canvas Transformations 50

Rotation and Translation Transformations 50

Scale Transformations 56

Combining Scale and Rotation Transformations 57

Filling Objects with Colors and Gradients 60

Setting Basic Fill Colors 60

Filling Shapes with Gradients 61

Filling Shapes with Patterns 71

Creating Shadows on Canvas Shapes 75

Methods to Clear the Canvas 77

Simple Fill 77

Resetting the Canvas Width and Height 77

Resetting the Canvas clearRect Function 77

Checking to See Whether a Point Is in the Current Path 79

Drawing a Focus Ring 80

What's Next? 80

3.The HTML5 Canvas Text API 81

Canvas Text and CSS 81

Displaying Basic Text 82

Basic Text Display 82

Handling Basic Text in Text Arranger 82

Communicating Between HTML Forms and the Canvas 83

Using measure Text 84

fill Text and stroke Text 85

Setting the Text Font 89

Font Size,Face,Weight,and Style Basics 89

Handling Font Size and Face in Text Arranger 89

Font Color 94

Font Baseline and Alignment 96

Text Arranger Version 2.0 101

Text and the Canvas Context 101

Global Alpha and Text 101

Global Shadows and Text 103

Text with Gradients and Patterns 106

Linear Gradients and Text 107

Radial Gradients and Text 109

Image Patterns and Text 109

Handling Gradients and Patterns in Text Arranger 110

Width,Height,Scale,and to Data URL()Revisited 114

Dynamically Resizing the Canvas 114

Dynamically Scaling the Canvas 116

The to Data URL() Method of the Canvas Object 117

Final Version of Text Arranger 119

Animated Gradients 128

The Future of Text on the Canvas 132

CSS Text 133

Making Text Accessible 133

What's Next? 133

4.Images on the Canvas 135

The Basic File Setup for This Chapter 135

Image Basics 136

Preloading Images 137

Displaying an Image on the Canvas with drawImage() 137

Resizing an Image Painted to the Canvas 139

Copying Part of an Image to the Canvas 140

Simple Cell-Based Sprite Animation 142

Creating an Animation Frame Counter 143

Creating a Timer Loop 143

Changing the Tile to Display 143

Advanced Cell-Based Animation 145

Examining the Tile Sheet 145

Creating an Animation Array 145

Choosing the Tile to Display 146

Looping Through the Tiles 146

Drawing the Tile 147

Moving the Image Across the Canvas 148

Applying Rotation Transformations to an Image 149

Canvas Transformation Basics 150

Animating a Transformed Image 153

Creating a Grid of Tiles 155

Defining aTile Map 155

Creating a Tile Map with Tiled 156

Displaying the Map on the Canvas 158

Diving into Drawing Properties with a Large Image 161

Creating a Window for the Image 162

Drawing the Image Window 162

Changing the ViewPort Property of the Image 164

Changing the Image Source Scale 166

Panning to a Spot on the Source Image 167

Pan and Scale in the Same Operation 168

Pixel Manipulation 170

The Canvas Pixel Manipulation API 170

Application Tile Stamper 172

Copying from One Canvas to Another 179

Using Pixel Data to Detect Object Collisions 182

The Colliding Objects 183

How We Will Test Collisions 184

Checking for Intersection Between Two Objects 184

What's Next? 190

5.Math,Physics,and Animation 191

Moving in a Straight Line 191

Moving Between Two Points:The Distance of a Line 194

Moving on a Vector 199

Bouncing Off Walls 204

Bouncing a Single Ball 205

Multiple Balls Bouncing Off Walls 208

Multiple Balls Bouncing with a Dynamically Resized Canvas 214

Multiple Balls Bouncing and Colliding 219

Multiple Balls Bouncing with Friction 233

Curve and Circular Movement 239

Uniform Circular Motion 239

Moving in a Simple Spiral 243

Cubic Bezier Curve Movement 245

Moving an Image 251

Creating a Cubic Bezier Curve Loop 255

Simple Gravity,Elasticity,and Friction 259

Simple Gravity 260

Simple Gravity with a Bounce 263

Gravity with Bounce and Applied Simple Elasticity 266

Simple Gravity,Simple Elasticity,and Simple Friction 270

Easing 273

Easing Out(Landing the Ship) 273

Easing In(Taking Off) 277

Box2D and the Canvas 281

Downloading Box2dWeb 281

How Does Box2dWeb Work? 281

Box2D Hello World 282

Including the Library 282

Creating a Box2dWeb World 282

Units in Box2dWeb 283

Defining the Walls in Box2D 284

Creating Balls 285

Rendering b2debugDraw vs.Canvas Rendering 286

drawScreen() 287

Bouncing Balls Revisited 289

Translating to the Canvas 290

Interactivity with Box2D 293

Creating the Boxes 294

Rendering the Boxes 295

Adding Interactivity 296

Creating Boxes 296

Handling the Balls 297

Box2D Further Reading 303

What's Next? 303

6.Mixing HTML5 Video and Canvas 305

HTML5 Video Support 305

Theora+Vorbis=.ogg 305

H.264+$$$=.mp4 306

VP8+Vbrbis=.webm 306

Combining All Three 307

Converting Video Formats 307

Basic HTML5 Video Implementation 308

Plain-Vanilla Video Embed 309

Video with Controls,Loop,and Autoplay 311

Altering the Width and Height of the Video 312

Preloading Video in JavaScript 317

Video and the Canvas 321

Displaying a Video on HTML5 Canvas 321

HTML5 Video Properties 327

Video on the Canvas Examples 331

Using the currentTime Property to Create Video Events 331

Canvas Video Transformations:Rotation 335

Canvas Video Puzzle 341

Creating Video Controls on the Canvas 355

Animation Revisited:Moving Videos 364

Capturing Video with JavaScript 369

Web RTC Media Capture and Streams API 370

Example 1:Show Video 370

Example 2:Put Video on the Canvas and Take a Screenshot 373

Example 3:Create a Video Puzzle out of User-Captured Video 376

Video and Mobile 378

What's Next? 379

7.Working with Audio 381

The Basic<audio>Tag 381

Audio Formats 382

Supported Formats 382

Audacity 382

Example:Using All Three Formats 384

Audio Tag Properties,Functions,and Events 385

Audio Functions 385

Important Audio Properties 385

Important Audio Events 386

Loading and Playing the Audio 387

Displaying Attributes on the Canvas 388

Playing a Sound with No Audio Tag 391

Dynamically Creating an Audio Element in JavaScript 392

Finding the Supported Audio Format 393

Playing the Sound 394

Look Ma,No Tag! 395

Creating a Canvas Audio Player 397

Creating Custom User Controls on the Canvas 398

Loading the Button Assets 399

Setting Up the Audio Player Values 400

Mouse Events 401

Sliding Play Indicator 402

Play/Pause Push Button:Hit Test Point Revisited 403

Loop/No Loop Toggle Button 406

Click-and-Drag Volume Slider 406

Case Study in Audio:Space Raiders Game 416

Whv Sounds in Apps Are Different:Event Sounds 416

Iterations 416

Space Raiders Game Structure 417

Iteration#1:Playing Sounds Using a Single Object 426

Iteration#2:Creating Unlimited Dynamic Sound Objects 427

Iteration#3:Creating a Sound Pool 429

Iteration#4:Reusing Preloaded Sounds 431

Web Audio API 435

What Is the Web Audio API? 436

Space Raiders with the Web Audio API Applied 436

What's Next? 439

8.Canvas Games:PartⅠ 441

Whv Games in HTML5? 441

Canvas Compared to Flash 442

What Does Canvas Offer? 442

Our Basic Game HTML5 File 442

Our Game's Design 444

Game Graphics:Drawing with Paths 444

Needed Assets 445

Using Paths to Draw the Game's Main Character 445

Animating on the Canvas 448

Game Timer Loop 448

The Player Ship State Changes 449

Applying Transformations to Game Graphics 451

The Canvas Stack 451

Game Graphic Transformations 453

Rotating the Player Ship from the Center 453

Alpha Fading the Player Ship 455

Game Object Physics and Animation 456

How Our Player Ship Will Move 456

Controlling the Player Ship with the Keyboard 458

Giving the Player Ship a Maximum Velocity 462

A Basic Game Framework 463

The Game State Machine 463

The Update/Render(Repeat)Cycle 467

The FrameRateCounter Object Prototype 469

Putting It All Together 471

Geo Blaster Game Structure 471

Geo Blaster Global Game Variables 475

The Player Object 476

Geo Blaster Game Algorithms 477

Arrays of Logical Display Objects 477

Level Knobs 479

Level and Game End 480

Awarding the Player Extra Ships 481

Applying Collision Detection 481

The Geo Blaster Basic Full Source 483

Rock Object Prototype 484

Simple A Path Finding on a Tile Grid 486

What Is A? 486

A Applied to a Larger Tile Map 493

A Taking Diagonal Moves into Account 498

A with Node Weights 502

A with Node Weights and Diagonals 506

Moving a Game Character Along the A Path 514

Tanks That Pass Through Walls? 518

What's Next? 528

9.Canvas Games:PartⅡ 529

Geo Blaster Extended 529

Geo Blaster Tile Sheet 530

Rendering the Other Game Objects 535

Adding Sound 541

Pooling Object Instances 546

Adding a Step Timer 548

Creating a Dynamic Tile Sheet at Runtime 550

A Simple Tile-Based Game 555

Micro Tank Maze Description 556

The Tile Sheet for Our Game 556

The Playfield 558

The Player 559

The Enemy 560

The Goal 561

The Explosions 561

Turn-Based Game Flow and the State Machine 562

Simple Tile Movement Logic Overview 566

Rendering Logic Overview 568

Simple Homegrown AI Overview 569

Micro Tank Maze Complete Game Code 570

Scrolling a Tile-Based World 570

First,a Tile Sheet That Contains the Tiles We Want to Paint to the Screen 570

Second,a Two-Dimensional Array to Describe Our Game World 571

Third,Paint the Tile-Based World to the Canvas 571

Coarse Scrolling vs.Fine Scrolling 572

The Camera Object 572

The World Object 573

Fine Scrolling the Row and Column Buffers 574

Coarse Scrolling Full Code Example 580

Fine Scrolling Full Code Example 585

What's Next? 589

10.Going Mobile! 591

The First Application 591

The Code 592

Examining the Code for BSBingo.html 597

The Application Code 600

Scaling the Game for the Browser 601

Testing the Game on an Actual Device 606

Retro Blaster Touch 607

Mobilizing Retro Blaster Touch 610

Jumping to Full Screen 610

Touch Move Events 612

Retro Blaster Tcuch Complete Game Code 618

Beyond the Canvas 619

What's Next? 619

11.Further Explorations 621

3D with WebGL 621

What Is WebGL? 621

How Does One Test WebGL? 622

How Do I Learn More About WebGL? 622

What Does a WebGL Application Look Like? 623

Further Explorations with WebGL 628

WebGL JavaScript Libraries 629

Multiplayer Applications with ElectroServer 5 630

Installing ElectroServer 631

The Basic Architecture of a Socket-Server Application 634

The Basic Architecture of an ElectroServer Application 634

Creating a Chat Application with ElectroServer 636

Testing the Application in Google Chrome 641

Further Explorations with ElectroServer 642

This Is Just the Tip of the Iceberg 645

Creating a Simple Object Framework for the Canvas 646

Creating the Drag-and-Drop Application 646

Application Design 647

Windows 8 Apps and the HTML5 Canvas 659

What's Next in HTML5.1 and Canvas Level 2? 663

HTML5.1 Canvas Context 663

Canvas Level-2 664

Conclusion 664

A.Full Code Listings 667

Index 711

相关图书
作者其它书籍
返回顶部