55
TweenJS for Everything 2013/03/15 yomotsu@PixelGrid, Inc. Friday, March 15, 13

TweenJS for Everything

  • Upload
    yomotsu

  • View
    775

  • Download
    4

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: TweenJS for Everything

TweenJS for Everything

2013/03/15 yomotsu@PixelGrid, Inc.

Friday, March 15, 13

Page 2: TweenJS for Everything

小山田 晃浩

FrontEnd Engineer at PixelGrid

Twitter@yomotsu

Who?

Friday, March 15, 13

Page 3: TweenJS for Everything

TweenJS?

Friday, March 15, 13

Page 4: TweenJS for Everything

Friday, March 15, 13

Page 5: TweenJS for Everything

Friday, March 15, 13

Page 6: TweenJS for Everything

•アニメーションanimation

•トゥイーンtween

•イージングeasing

Friday, March 15, 13

Page 8: TweenJS for Everything

Usage

1. Tween インスタンスを取得get a Tween instance

2. トゥイーン、ディレイ、コールバックを追加then, add tween, delay or callback as needed

Friday, March 15, 13

Page 9: TweenJS for Everything

1. get a Tween instancecreatejs.Tween.get( nyan ).to( { x: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).call( function() { console.log( 'done!' );} );

this behaves as "new createjs.Tween()"

Friday, March 15, 13

Page 10: TweenJS for Everything

1. get a Tween instancecreatejs.Tween.get( nyan ).to( { x: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).call( function() { console.log( 'done!' );} );

EaselJS DisplayObject

Friday, March 15, 13

Page 11: TweenJS for Everything

2. chain, chain, and chain!createjs.Tween.get( nyan ).to( { x: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).call( function() { console.log( 'done!' );} );

adding tween

Friday, March 15, 13

Page 12: TweenJS for Everything

2. chain, chain, and chain!createjs.Tween.get( nyan ).to( { x: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).call( function() { console.log( 'done!' );} );

target value for this tween

Friday, March 15, 13

Page 13: TweenJS for Everything

2. chain, chain, and chain!createjs.Tween.get( nyan ).to( { x: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).call( function() { console.log( 'done!' );} );

duration

Friday, March 15, 13

Page 14: TweenJS for Everything

2. chain, chain, and chain!createjs.Tween.get( nyan ).to( { x: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).call( function() { console.log( 'done!' );} );

easing

Friday, March 15, 13

Page 15: TweenJS for Everything

2. chain, chain, and chain!createjs.Tween.get( nyan ).to( { x: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).call( function() { console.log( 'done!' );} );

2000ms delay

Friday, March 15, 13

Page 16: TweenJS for Everything

2. chain, chain, and chain!createjs.Tween.get( nyan ).to( { x: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).call( function() { console.log( 'done!' );} );

multiple values

Friday, March 15, 13

Page 17: TweenJS for Everything

2. chain, chain, and chain!createjs.Tween.get( nyan ).to( { x: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).call( function() { console.log( 'done!' );} );

callback

Friday, March 15, 13

Page 18: TweenJS for Everything

conclusioncreatejs.Tween.get( nyan ).to( { x: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).call( function() { console.log( 'done!' );} );

Friday, March 15, 13

Page 19: TweenJS for Everything

conclusioncreatejs.Tween.get( nyan, { loop : true } ).to( { x: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 300 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).to( { x: 100, y: 100 }, 1000, createjs.Ease.quadOut ).wait( 2000 ).call( function() { console.log( 'done!' );} );

Friday, March 15, 13

Page 20: TweenJS for Everything

How dose it work?

Friday, March 15, 13

Page 21: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 22: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 23: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 24: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 25: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 26: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 27: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 28: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 29: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 30: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 31: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 32: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 33: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 34: TweenJS for Everything

How dose it work?

1. Tween のインスタンスを作ると...When you created an instance of Tween...

2. TweenJS が登録されたオブジェクトの値を変更TweenJS will change value of applied object

3. EaselJS がオブジェクトを表示then, EaselJS will render the object using changed value

Friday, March 15, 13

Page 35: TweenJS for Everything

TweenJS はオブジェクトの値を変更しているだけTweenJS is just changing value of the object

Friday, March 15, 13

Page 36: TweenJS for Everything

TweenJS can be usedwith other libs

Friday, March 15, 13

Page 40: TweenJS for Everything

TweenJS can get alongwith others!

Friday, March 15, 13

Page 42: TweenJS for Everything

conclusion

Friday, March 15, 13

Page 43: TweenJS for Everything

conclusion

• TweenJS はオブジェクトの値を変えているだけTweenJS is just changing value of an object

• いろいろな表示系ライブラリーと組み合わせ可能TweenJS can be used in combination with several libs

• ただし、TweenJS は EaselJS に依存しているTweenJS is dependent on EaselJS TweenJSの機能だけを利用したくても EaselJS を読みこまなくてはいけない

Friday, March 15, 13

Page 44: TweenJS for Everything

in addition...

Friday, March 15, 13

Page 45: TweenJS for Everything

tween.js

https://github.com/sole/tween.js/

Friday, March 15, 13

Page 46: TweenJS for Everything

tween.jsvar obj = { x : 100, y : 100}

var t1 = new TWEEN.Tween( obj ).to( { x: 300 }, 1000 ).easing( TWEEN.Easing.Quadratic.Out );

var t2 = new TWEEN.Tween( obj ).to( { x: 100, y : 300 }, 1000 ).easing( TWEEN.Easing.Quadratic.Out ).delay( 2000 );

var t3 = new TWEEN.Tween( obj ).to( { x: 100, y : 100 }, 1000 ).easing( TWEEN.Easing.Quadratic.Out ).delay( 2000 ).onComplete( function () { console.log( 'done!' );} );

t1.chain( t2 );t2.chain( t3 );

t1.start();

Friday, March 15, 13

Page 48: TweenJS for Everything

jQuery can also do that similarvar obj = { x : 100, y : 100};

$.when( $( obj ).animate( { x : 300 }, 1000 ) ).then( $( obj ).delay( 2000 ) ).then( $( obj ).animate( { x : 100, y : 300 }, 1000 ) ).then( $( obj ).delay( 2000 ) ).then( $( obj ).animate( { x : 100, y : 100 }, 1000 ) ).then( $( obj ).delay( 2000 ) ).then( function () { console.log( 'done' );} );

Friday, March 15, 13

Page 50: TweenJS for Everything

conclusion

Friday, March 15, 13

Page 51: TweenJS for Everything

難度easily

機能features

依存depending on

TweenJS

tween.js

jQuery

簡単! 充実! EaselJSに依存

すこし複雑 充実!(特にevent) なし!

簡単! それなり 必要に応じて jQuery Easing Plugin

Friday, March 15, 13

Page 52: TweenJS for Everything

Friday, March 15, 13

Page 53: TweenJS for Everything

購読開始から30日間無料

(月額840円)

Friday, March 15, 13

Page 54: TweenJS for Everything

CodeGrid

www.codegrid.net

Friday, March 15, 13

Page 55: TweenJS for Everything

Question?

@yomotsu

Friday, March 15, 13